diff --git a/lib/configuration-6.5.0.js b/lib/configuration-6.5.0.js deleted file mode 100644 index 95c418c..0000000 --- a/lib/configuration-6.5.0.js +++ /dev/null @@ -1,438 +0,0 @@ -/** - * Mapea API - * Version 6.5.0 - * Date 23-01-2024 - */ -(function(M) { - /** - * Pixels width for mobile devices - * - * @private - * @type {Number} - */ - M.config('MOBILE_WIDTH', 768); - - /** - * The Mapea URL - * @const - * @type {string} - * @public - * @api stable - */ - M.config('MAPEA_URL', 'https://mapea4-sigc.juntadeandalucia.es/mapea'); - - /** - * The path to the Mapea proxy to send - * jsonp requests - * @const - * @type {string} - * @public - * @api stable - */ - M.config('PROXY_URL', 'https://mapea4-sigc.juntadeandalucia.es/mapea/api/proxy'); - - /** - * The path to the Mapea proxy to send - * jsonp requests - * @const - * @type {string} - * @public - * @api stable - */ - M.config('PROXY_POST_URL', 'https://mapea4-sigc.juntadeandalucia.es/mapea/proxyPost'); - - /** - * The path to the Mapea templates - * @const - * @type {string} - * @public - * @api stable - */ - M.config('TEMPLATES_PATH', '/files/templates/'); - - /** - * The path to the Mapea theme - * @const - * @type {string} - * @public - * @api stable - */ - M.config('THEME_URL', 'https://mapea4-sigc.juntadeandalucia.es/mapea/assets/'); - - /** - * The Geosearch URL - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCH_URL', 'https://geobusquedas-sigc.juntadeandalucia.es'); - - /** - * The Geosearch core - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCH_CORE', 'sigc'); - - /** - * The Geosearch handler - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCH_HANDLER', '/search?'); - - /** - * The Geosearch distance - * @const - * @type {int} - * @public - * @api stable - */ - M.config('GEOSEARCH_DISTANCE', '600'); - - /** - * The Geosearchbylocation spatial field - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCH_SPATIAL_FIELD', 'geom'); - - /** - * The Geosearch rows - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCH_ROWS', '20'); - - /** - * The Geosearch rows - * @const - * @type {string} - * @public - * @api stable - */ - M.config('GEOSEARCHBYLOCATION_ROWS', '100'); - - /** - * Predefined WMC files. It is composed of URL, - * predefined name and context name. - * @type {object} - * @public - * @api stable - */ - M.config('predefinedWMC', { - /** - * Predefined WMC URLs - * @const - * @type {Array} - * @public - * @api stable - */ - 'urls': 'https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/mapa.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/hibrido.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/satelite.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/context_cdau_callejero.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/context_cdau_hibrido.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/context_cdau_satelite.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/contextCallejeroCache.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/contextCallejero.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/callejero2011cache.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/ortofoto2011cache.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/hibrido2011cache.xml,https://mapea4-sigc.juntadeandalucia.es/mapea/files/wmc/contextOrtofoto.xml'.split(',').map(e => e), - - /** - * WMC predefined names - * @const - * @type {Array} - * @public - * @api stable - */ - 'predefinedNames': 'mapa,hibrido,satelite,cdau,cdau_hibrido,cdau_satelite,callejerocacheado,callejero,callejero2011cache,ortofoto2011cache,hibrido2011cache,ortofoto'.split(','), - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'names': 'Mapa,Hibrido,Satelite,Callejero,Hibrido,Satelite,mapa callejero cache,mapa del callejero,Callejero,Ortofoto,Híbrido,mapa ortofoto'.split(',') - }); - - /** - * TODO - * @type {object} - * @public - * @api stable - */ - M.config('tileMappgins', { - /** - * Predefined WMC URLs - * @const - * @type {Array} - * @public - * @api stable - */ - 'tiledNames': 'base,SPOT_Andalucia,orto_2010-11_25830,CallejeroCompleto,orto_2010-11_23030'.split(','), - - /** - * WMC predefined names - * @const - * @type {Array} - * @public - * @api stable - */ - 'tiledUrls': 'https://www.callejerodeandalucia.es/servicios/base/gwc/service/wms?,https://www.callejerodeandalucia.es/servicios/base/gwc/service/wms?,https://www.ideandalucia.es/geowebcache/service/wms?,https://www.juntadeandalucia.es/servicios/mapas/callejero/wms-tiled?,https://www.ideandalucia.es/geowebcache/service/wms?'.split(',').map(e => e), - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'names': 'CDAU_base,mosaico_spot_2005,orto_2010-11,CallejeroCompleto,orto_2010-11'.split(','), - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'urls': 'https://www.callejerodeandalucia.es/servicios/base/wms?,https://www.juntadeandalucia.es/medioambiente/mapwms/REDIAM_SPOT_Andalucia_2005?,https://www.ideandalucia.es/wms/ortofoto2010?,https://www.juntadeandalucia.es/servicios/mapas/callejero/wms?,https://www.ideandalucia.es/wms/ortofoto2010?'.split(',').map(e => e) - }); - - /** - * Default projection - * @const - * @type {string} - * @public - * @api stable - */ - M.config('DEFAULT_PROJ', 'EPSG:25830*m'); - - /** - * Predefined WMC files. It is composed of URL, - * predefined name and context name. - * @type {object} - * @public - * @api stable - */ - M.config('geoprint', { - /** - * Printer service URL - * @const - * @type {Array} - * @public - * @api stable - */ - 'URL': 'https://geoprint-sigc.juntadeandalucia.es/geoprint/pdf', - - /** - * WMC predefined names - * @const - * @type {Array} - * @public - * @api stable - */ - 'DPI': 120, - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'FORMAT': 'pdf', - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'TEMPLATE': 'A4 landscape (SIGC)', - - /** - * WMC context names - * @const - * @type {Array} - * @public - * @api stable - */ - 'FORCE_SCALE': false, - - /** - * TODO - * @const - * @type {boolean} - * @public - * @api stable - */ - 'LEGEND': true - }); - - /** - * Geoprint configuration. - * @type {object} - * @public - * @api stable - */ - M.config('geoprint2', { - /** - * Printer service URL - * @const - * @type {Array} - * @public - * @api stable - */ - 'URL': 'https://geoprint-sigc.juntadeandalucia.es/geoprint3/print/SIGC', - - /** - * Printer service URL - * @const - * @type {Array} - * @public - * @api stable - */ - 'URL_APPLICATION': 'https://geoprint-sigc.juntadeandalucia.es/geoprint3', - }); - - /** - * Predefined WMC files. It is composed of URL, - * predefined name and context name. - * @type {object} - * @public - * @api stable - */ - M.config('panels', { - /** - * TODO - * @const - * @type {Array} - * @public - * @api stable - */ - 'TOOLS': 'measurebar,measurelength,measureclear,measurearea,getfeatureinfo'.split(','), - - /** - * TODO - * @const - * @type {Array} - * @public - * @api stable - */ - 'EDITION': 'drawfeature,modifyfeature,deletefeature,editattribute,savefeature,clearfeature'.split(',') - }); - - /** - * Searchstreet service URL - * @const - * @type {string} - * @public - * @api stable - */ - M.config('SEARCHSTREET_URL', 'https://ws248.juntadeandalucia.es/EXT_PUB_CallejeroREST/geocoderMunProvSrs'); - - /** - * Autocomplete municipality service URL - * @const - * @type {string} - * @public - * @api stable - */ - M.config('SEARCHSTREET_URLCODINEAUTOCOMPLETE', 'https://ws248.juntadeandalucia.es/EXT_PUB_CallejeroREST/autocompletarDireccionMunicipio'); - - /** - * service URL check code INE - * @const - * @type {string} - * @public - * @api stable - */ - M.config('SEARCHSTREET_URLCOMPROBARINE', 'https://ws248.juntadeandalucia.es/EXT_PUB_CallejeroREST/comprobarCodIne'); - - /** - * Normalizar searchstreet service URL - * @const - * @type {string} - * @public - * @api stable - */ - M.config('SEARCHSTREET_NORMALIZAR', 'https://ws248.juntadeandalucia.es/EXT_PUB_CallejeroREST/normalizar'); - - /** - * Minimum number of characters to start autocomplete - * @const - * @type {number} - * @public - * @api stable - */ - M.config('AUTOCOMPLETE_MINLENGTH', '3'); - - /** - * TODO - * - * @private - * @type {Number} - */ - M.config('AUTOCOMPLETE_DELAYTIME', '750'); - - /** - * Number of results to show - * - * @private - * @type {Number} - */ - M.config('AUTOCOMPLETE_LIMIT', '10'); - - /** - * TODO - * - * @private - * @type {String} - */ - M.config('MAPBOX_URL', 'https://api.mapbox.com/v4/'); - - /** - * TODO - * - * @private - * @type {String} - */ - M.config('MAPBOX_EXTENSION', 'png'); - - /** - * TODO - * - * @private - * @type {String} - */ - M.config('MAPBOX_TOKEN_NAME', 'access_token'); - - /** - * TODO - * - * @private - * @type {String} - */ - M.config('MAPBOX_TOKEN_VALUE', 'pk.eyJ1Ijoic2lnY29ycG9yYXRpdm9qYSIsImEiOiJjaXczZ3hlc2YwMDBrMm9wYnRqd3gyMWQ0In0.wF12VawgDM31l5RcAGb6AA'); - - /** - * Number of pages for the plugin AttributeTable - * - * @private - * @type {String} - */ - M.config('ATTRIBUTETABLE_PAGES', '5'); - - /** - * Zoom levels - * - * @private - * @type {Number} - */ - M.config('ZOOM_LEVELS', '16'); -})(window.M); diff --git a/lib/configuration-6.4.0.js b/lib/configuration-6.6.0.js similarity index 99% rename from lib/configuration-6.4.0.js rename to lib/configuration-6.6.0.js index 6c54b80..de5e80f 100644 --- a/lib/configuration-6.4.0.js +++ b/lib/configuration-6.6.0.js @@ -1,7 +1,7 @@ /** * Mapea API - * Version 6.4.0 - * Date 26-06-2023 + * Version 6.6.0 + * Date 01-04-2024 */ (function(M) { /** diff --git a/lib/mapea-6.4.0.ol.min.css b/lib/mapea-6.4.0.ol.min.css deleted file mode 100644 index c9d45dc..0000000 --- a/lib/mapea-6.4.0.ol.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:g-cartografia;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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#iefix) format("embedded-opentype"),url(data:font/ttf;base64,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) format("truetype"),url(data:application/font-woff;base64,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) format("woff"),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxmb250IGlkPSJnLWNhcnRvZ3JhZmlhIiBob3Jpei1hZHYteD0iMTAyNCI+PGZvbnQtZmFjZSB1bml0cy1wZXItZW09IjEwMjQiIGFzY2VudD0iOTYwIiBkZXNjZW50PSItNjQiLz48Z2x5cGggaG9yaXotYWR2LXg9IjUxMiIvPjxnbHlwaCB1bmljb2RlPSLupIAiIGdseXBoLW5hbWU9ImFsZXJ0YSIgZD0iTTEwMTIuNjUxIDEyMC43NzVMNTg1Ljk4NCA4NjAuMzMxYy0xNC43NjMgMjUuNTQzLTQyLjM4MiA0Mi43OC03My45ODQgNDIuNzhzLTU5LjIyMS0xNy4yMzctNzMuOTg0LTQyLjc4TDExLjM0OSAxMjAuNzc1QTg1LjE0MyA4NS4xNDMgMCAwMTAgNzguMjIyQzAgMzEuMTE4IDM4LjIyOS03LjExMSA4NS4zMzMtNy4xMTFoODUzLjMzM2M0Ny4xMDQgMCA4NS4zMzMgMzguMjI5IDg1LjMzMyA4NS4zMzMgMCAxNS41MDItNC4xMjQgMzAuMDM3LTExLjM0OSA0Mi41NTN6TTg1LjI3NiA3OC4xMzdsNDI2Ljc4IDczOS41NTYgNDI2LjYxLTczOS40Ny04NTMuMzktLjA4NXpNNTEyIDI3Ny4zMzNjLTMxLjQwMyAwLTU2Ljg4OS0yNS40ODYtNTYuODg5LTU2Ljg4OSAwLTMxLjQzMSAyNS40NTgtNTYuODg5IDU2Ljg4OS01Ni44ODlzNTYuODg5IDI1LjQ4NiA1Ni44ODkgNTYuODg5YzAgMzEuNDAzLTI1LjQ1OCA1Ni44ODktNTYuODg5IDU2Ljg4OXptLTU2Ljg4OSAyNTZjMC0zLjI0My4yODQtNi40NTcuNzk2LTkuNTU3bDI4LjAxOC0xNjUuODg4YzIuMzA0LTEzLjQ1NCAxMy45OTUtMjMuNjY2IDI4LjA3NS0yMy42NjZzMjUuNzcxIDEwLjIxMiAyOC4wNDYgMjMuNjY2bDI4LjAxOCAxNjUuODg4Yy41NCAzLjEuODI1IDYuMzE1LjgyNSA5LjU1NyAwIDMxLjQwMy0yNS40NTggNTYuODg5LTU2Ljg4OSA1Ni44ODktMzEuNDAzIDAtNTYuODg5LTI1LjQ4Ni01Ni44ODktNTYuODg5eiIvPjxnbHlwaCB1bmljb2RlPSLupIEiIGdseXBoLW5hbWU9ImF5dWRhIiBkPSJNOTIyLjk5NCA2OTguNzE4QzkyMi45NyA3ODcuMTUyIDg1MS4xMjggODU4Ljk3IDc2Mi43MDQgODU5SDI2MS4yOTZjLTg4LjQzLS4wMzItMTYwLjI2Ni03MS44NTgtMTYwLjI5OC0xNjAuMjk0VjE5Ny4zMDRjLjAzLTg4LjQzIDcxLjg3Mi0xNjAuMjYyIDE2MC4yOTgtMTYwLjI5MnYuMDAyaDUwMS40MDZjODguNDMuMDI2IDE2MC4yNjggNzEuODU4IDE2MC4yOTYgMTYwLjI5MnY1MDEuNGwtLjAwNC4wMTJ6bS04MS45OTgtNTAyLjUzNGMtLjMwMi0yMS4xNjgtOC45ODYtNDAuMjI2LTIyLjk1Ni01NC4yMTgtMTQuMjQtMTQuMjEyLTMzLjcyNC0yMi45NTgtNTUuMzM4LTIyLjk2MkwyNjEuMjk0IDExOWMtMjEuNjE2LjAwOC00MS4wOTYgOC43NTQtNTUuMzM0IDIyLjk2Ni0xNC4yMTIgMTQuMjM2LTIyLjk1OCAzMy43MTgtMjIuOTYyIDU1LjMzNmwtLjAwNCA1MDEuNDAyYy4wMDggMjEuNjE0IDguNzU0IDQxLjA5NCAyMi45NjYgNTUuMzMyIDE0LjIzOCAxNC4yMSAzMy43MiAyMi45NTggNTUuMzM2IDIyLjk2SDc2Mi43YzIxLjYyLS4wMDIgNDEuMS04Ljc1IDU1LjMzNi0yMi45NTggMTQuMjA4LTE0LjIzNCAyMi45NTQtMzMuNzE4IDIyLjk1OC01NS4zMzJWMTk2LjE4NHpNNTEyLjAwOCA2OTkuMTkydi0xNi4wMDRoLS4wMDZ2MTYuMDA2Yy03Ni40MTYtLjAzNC0xMzguNDctNjIuMDk4LTEzOC41MDgtMTM4LjUxOC4wMS0yMi42NCAxOC4zNDYtNDAuOTg0IDQxLjAwMi00MSAyMi42NTIuMDE2IDQwLjk4OCAxOC4zNiA0MSA0MSAuMDA2IDE1LjYxIDYuMzA4IDI5LjY0OCAxNi41NzQgMzkuOTQyIDEwLjI5NCAxMC4yNjggMjQuMzI4IDE2LjU3IDM5LjkzNCAxNi41NzggMTUuNjA2LS4wMDggMjkuNjM2LTYuMzEyIDM5LjkyOC0xNi41NzggMTAuMjcyLTEwLjI5NCAxNi41NjQtMjQuMzMyIDE2LjU3NC0zOS45NDItLjEyNi03LjQ4NC0yLjE3OC0xMi43OTQtOC4yNjQtMjAuNjc0LTYuMDY2LTcuNzA0LTE2LjM2OC0xNi43ODYtMjkuOTM0LTI3LjkyNi0xMi41My0xMC4zNjYtMjYuODMtMjEuOTg2LTM4LjU3NC0zNi45NDQtMTEuNzE0LTE0Ljg1Mi0yMC44MDItMzMuOTE4LTIwLjczNi01Ni43NDJ2LTQ4LjIwOGMuMDE2LTIyLjY1IDE4LjM1Mi00MC45ODYgNDEuMDA4LTQxLjAwNCAyMi42NTIuMDIgNDAuOTg0IDE4LjM2IDQxIDQxLjAwMnY0OC4yMDhjMCAuMTc0LjAzLjk0Mi45NjYgMi43MjIgMS4zNDggMi42MjIgNC44MTYgNi44OTYgOS44NjggMTEuNjY0IDUuMDM2IDQuOCAxMS41NCAxMC4xODQgMTguNjM0IDE2LjAzIDEzLjg1NCAxMS40NTggMzAuNDggMjQuOTg2IDQ0LjA4OCA0Mi45NDQgMTMuNjE0IDE3Ljg3MiAyNC4wMjggNDAuOSAyMy45NTQgNjguOTI2LS4wMDQgMC0uMDA0LjAwOC0uMDA0LjAwOC0uMDMyIDc2LjQyMi02Mi4wOTQgMTM4LjQ3OC0xMzguNTA0IDEzOC41MXptLS4wMDYtNDA2LjIzNGMtMjYuNTUyLS4wMzYtNDguMDQtMjEuNTMtNDguMDcyLTQ4LjA3Mi4wMy0yNi41NDYgMjEuNTE4LTQ4LjAzOCA0OC4wNzItNDguMDcgMjYuNTQ2LjAzIDQ4LjAzOCAyMS41MiA0OC4wNjYgNDguMDctLjAyOCAyNi41NTItMjEuNTIgNDguMDM0LTQ4LjA2NiA0OC4wNzJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kgiIgZ2x5cGgtbmFtZT0iYmFuZGVyYSIgZD0iTTkwNC45MjggODk4LjI3MmMtMTQuMjQgOC43MzYtMzIuMTI4IDkuMzQ0LTQ3LjAwOCAxLjYzMkM4MTkuOTY4IDg4MC4yNTYgNzgyLjYyNCA4NjQgNzEwLjUyOCA4NjRjLTc5LjMyOCAwLTExNi42NzIgMTkuNjgtMTU5Ljk2OCA0Mi40NjRDNTAyLjg4IDkzMS41NTIgNDQ4Ljg2NCA5NjAgMzQ1Ljg4OCA5NjBjLTcxLjI2NCAwLTExOC44OC0xMy42MzItMTU3LjM0NC0zMC4yNzJDMTgxLjQ3MiA5NDcuNDI0IDE2NC4yNTYgOTYwIDE0NCA5NjBjLTI2LjQ5NiAwLTQ4LTIxLjQ3Mi00OC00OFYtMTZjMC0yNi41MjggMjEuNTA0LTQ4IDQ4LTQ4czQ4IDIxLjQ3MiA0OCA0OHYzOTIuNzY4QzIzMi43NjggMzk4LjE0NCAyNzAuMzY4IDQxNiAzNDUuODg4IDQxNmM3OS4yOTYgMCAxMTYuNjcyLTE5LjY4IDE1OS45MzYtNDIuNDY0QzU1My41MDQgMzQ4LjQ0OCA2MDcuNDg4IDMyMCA3MTAuNTI4IDMyMGM5My41MzYgMCAxNDUuOTIgMjMuMDQgMTkxLjUyIDQ2LjYyNEE0Ny45ODcgNDcuOTg3IDAgMDE5MjggNDA5LjI4djQ0OGE0Ny45NjQgNDcuOTY0IDAgMDEtMjMuMDcyIDQwLjk5MnpNODMyIDQzOS4yOTZDODAxLjQwOCA0MjUuNzYgNzY2LjQzMiA0MTYgNzEwLjUyOCA0MTZjLTc5LjMyOCAwLTExNi42NzIgMTkuNjgtMTU5Ljk2OCA0Mi40NjRDNTAyLjg4IDQ4My41NTIgNDQ4Ljg2NCA1MTIgMzQ1Ljg4OCA1MTJjLTY5LjA4OCAwLTExNi0xMi43NjgtMTUzLjg4OC0yOC43MzZ2MzQxLjUwNEMyMzIuNzY4IDg0Ni4xNDQgMjcwLjM2OCA4NjQgMzQ1Ljg4OCA4NjRjNzkuMjk2IDAgMTE2LjY3Mi0xOS42OCAxNTkuOTM2LTQyLjQ2NEM1NTMuNTA0IDc5Ni40NDggNjA3LjQ4OCA3NjggNzEwLjUyOCA3NjhjNTAuNzg0IDAgODkuNDQgNi43ODQgMTIxLjQ3MiAxNi43NjhWNDM5LjI5NnoiLz48Z2x5cGggdW5pY29kZT0i7qSDIiBnbHlwaC1uYW1lPSJicnVqdWxhIiBkPSJNNTEyIDk2MEMyMjkuMjI5IDk2MCAwIDczMC43NjkgMCA0NDhTMjI5LjIzMS02NCA1MTItNjRjMjgyLjc3MSAwIDUxMiAyMjkuMjMxIDUxMiA1MTJTNzk0Ljc3MSA5NjAgNTEyIDk2MHptMC05MjcuNzQyQzI4Mi40MDcgMzIuMjU4IDk2LjI1OCAyMTguNDA3IDk2LjI1OCA0NDhjMCAyMjkuNTk1IDE4Ni4xNDkgNDE1Ljc0NCA0MTUuNzQyIDQxNS43NDQgMjI5LjU5NSAwIDQxNS43NDQtMTg2LjE0OSA0MTUuNzQ0LTQxNS43NDRTNzQxLjU5NSAzMi4yNTggNTEyIDMyLjI1OHptLTIzOC42MSAxNzcuMTdzMjcxLjEyNCA5Ny42NDcgMzI1LjM2MiAxNTEuODJjNTQuMjM3IDU0LjIzNyAxNTEuODIyIDMyNS4zNjQgMTUxLjgyMiAzMjUuMzY0UzQ3OS40NSA1ODguOTY1IDQyNS4yNDEgNTM0Ljc1OSAyNzMuMzkgMjA5LjQyOCAyNzMuMzkgMjA5LjQyOHptMTkzLjM1NSAyNjMuOTU3bDcwLjYzMy03MC42MzNjMTcuNjU4LTE3LjY2LTE1OC45MjctODguMjkxLTE1OC45MjctODguMjkxczcwLjYzNiAxNzYuNTg1IDg4LjI5MyAxNTguOTI1eiIvPjxnbHlwaCB1bmljb2RlPSLupIQiIGdseXBoLW5hbWU9ImNhbmNlbGFyIiBkPSJNNjE1LjUzNiA0NDkuNDlMODc3LjA4IDE4Ny45NDRjMjkuODI2LTI5LjgyNCAyOS44MjYtNzUuNzA4IDAtMTA1LjUzNC0xMy43NjYtMTMuNzY2LTM0LjQxMi0yMi45NDQtNTIuNzY4LTIyLjk0NC0xOC4zNTQgMC0zOS4wMDIgOS4xNzgtNTIuNzY4IDIyLjk0NEw1MTAgMzQzLjk1NiAyNDguNDU0IDgyLjQxMmMtMTMuNzY2LTEzLjc2Ni0zNC40MTQtMjIuOTQ0LTUyLjc2OC0yMi45NDRzLTM5LjAwMiA5LjE3OC01Mi43NjggMjIuOTQ0Yy0yOS44MjYgMjkuODI0LTI5LjgyNiA3NS43MDggMCAxMDUuNTM0bDI2MS41NDYgMjYxLjU0Ni0yNjEuNTQ2IDI2MS41NDRjLTI5LjgyNiAyOS44MjYtMjkuODI2IDc1LjcxIDAgMTA1LjUzNnM3NS43MSAyOS44MjYgMTA1LjUzNiAwTDUxMCA1NTUuMDI4bDI2MS41NDQgMjYxLjU0NGMyOS44MjYgMjkuODI2IDc1LjcxIDI5LjgyNiAxMDUuNTM2IDBzMjkuODI2LTc1LjcxIDAtMTA1LjUzNkw2MTUuNTM2IDQ0OS40OXoiLz48Z2x5cGggdW5pY29kZT0i7qSFIiBnbHlwaC1uYW1lPSJjYW5jZWxhcjIiIGQ9Ik03MDMuNTg0IDU5My45MmMtLjQ4IDExLjYxNi00LjggMjMuMTM2LTEzLjY5NiAzMi04Ljg2NCA4Ljg2NC0yMC4zODQgMTMuMjE2LTMyIDEzLjY5Ni0xMi45MjguNTQ0LTI2LjAxNi0zLjgwOC0zNS44NzItMTMuNjk2TDUxMiA1MTUuODcyIDQwMS45ODQgNjI1LjkyYy05Ljg4OCA5Ljg4OC0yMi45NDQgMTQuMjA4LTM1Ljg3MiAxMy42OTYtMTEuNjE2LS40OC0yMy4xMzYtNC44LTMyLTEzLjY5Ni04Ljg2NC04Ljg2NC0xMy4yMTYtMjAuMzg0LTEzLjY5Ni0zMi0uNTQ0LTEyLjkyOCAzLjgwOC0yNS45ODQgMTMuNjk2LTM1Ljg3Mkw0NDQuMTI4IDQ0OCAzMzQuMTEyIDMzNy45ODRjLTkuODg4LTkuODg4LTE0LjIwOC0yMi45NDQtMTMuNjk2LTM1Ljg3Mi40OC0xMS42MTYgNC44LTIzLjEzNiAxMy42OTYtMzIgOC44NjQtOC44NjQgMjAuMzg0LTEzLjIxNiAzMi0xMy42OTYgMTIuOTI4LS41NDQgMjUuOTg0IDMuODA4IDM1Ljg3MiAxMy42OTZMNTEyIDM4MC4xMjggNjIyLjA0OCAyNzAuMDhjOS44ODgtOS44ODggMjIuOTQ0LTE0LjIwOCAzNS44NzItMTMuNjk2IDExLjYxNi40OCAyMy4xMzYgNC44IDMyIDEzLjY5NiA4Ljg2NCA4Ljg2NCAxMy4yMTYgMjAuMzg0IDEzLjY5NiAzMiAuNTQ0IDEyLjkyOC0zLjgwOCAyNS45ODQtMTMuNjk2IDM1Ljg3Mkw1NzkuODcyIDQ0OGwxMTAuMDE2IDExMC4wMTZjOS44ODggOS44ODggMTQuMjQgMjIuOTQ0IDEzLjY5NiAzNS45MDR6TTUxMiA5NjBDMjI5LjI0OCA5NjAgMCA3MzAuNzUyIDAgNDQ4UzIyOS4yNDgtNjQgNTEyLTY0czUxMiAyMjkuMjQ4IDUxMiA1MTItMjI5LjI0OCA1MTItNTEyIDUxMnptMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6khiIgZ2x5cGgtbmFtZT0iY2FwYXMiIGQ9Ik05NjAgOTYwSDMyMGMtMzUuMzI4IDAtNjQtMjguNjQtNjQtNjRWNzA0SDY0Yy0zNS4zMjggMC02NC0yOC42NC02NC02NFYwYzAtMzUuMzI4IDI4LjY3Mi02NCA2NC02NGg2NDBjMzUuMzYgMCA2NCAyOC42NzIgNjQgNjR2MTkyaDE5MmMzNS4zMjggMCA2NCAyOC42NzIgNjQgNjR2NjQwYzAgMzUuMzYtMjguNjcyIDY0LTY0IDY0ek02NzIgMzJIOTZ2NTc2aDE2MFYyNTZjMC0zNS4zNiAyOC42NzItNjQgNjQtNjRoMzUyVjMyem0yNTYgMjU2SDM1MnY1NzZoNTc2VjI4OHoiLz48Z2x5cGggdW5pY29kZT0i7qSHIiBnbHlwaC1uYW1lPSJjYXBhczIiIGQ9Ik03OC4yNDYgNjQ4LjAzOEw0OTguNzA4IDQyMy4yMWM0LjE1LTIuMjIgOC43Mi0zLjMyOCAxMy4yOS0zLjMyOHM5LjE0IDEuMTA4IDEzLjI5MiAzLjMyOGw0MjAuNDYyIDIyNC44MjhhMjguMTkxIDI4LjE5MSAwIDAxMCA0OS43MThMNTI1LjI4OCA5MjIuNTg0YTI4LjE2NyAyOC4xNjcgMCAwMS0yNi41ODIgMEw3OC4yNDYgNjk3Ljc1NmEyOC4xOTQgMjguMTk0IDAgMDEtMTQuODk4LTI0Ljg2IDI4LjE5MyAyOC4xOTMgMCAwMTE0Ljg5OC0yNC44NTh6TTUxMS45OTggODQ5Ljc2bDM0MC42ODYtMTc2Ljg2NC0zNDAuNjg2LTE3MC44NjItMzQwLjY4NiAxNzAuODYyTDUxMS45OTggODQ5Ljc2em00MzMuNzU0LTM3Ni45NzJsLTEyMi41NzIgNjUuNTRjLTEzLjcyOCA3LjM0NC00MS41MDQgMy4wNjQtNDguODQ2LTEwLjY2Mi03LjM0LTEzLjczLTUuNDYyLTM3LjcxIDguMjY4LTQ1LjA1bDYyLjA4Mi0zNC42ODRMNTExLjk5OCAyODMuMDcgMTc5LjMxMiA0NDcuOTNsNjIuOTY2IDM1LjE1NmMxMy43MyA3LjM0MiAxMy4zOTQgMzAuMTg4IDYuMDU0IDQzLjkxNi03LjM0IDEzLjcyNC0zMi45MDggMTkuMTM4LTQ2LjYzNCAxMS43OThMNzguMjQ0IDQ3Mi43OWMtOS4xNy00LjkwNC0xNC44OTgtMTQuNDU4LTE0Ljg5OC0yNC44NThzNS43MjItMTkuOTU0IDE0Ljg5OC0yNC44NThsNDIwLjQ2Mi0yMjQuODI2YzQuMTUtMi4yMjIgOC43Mi0zLjMzMiAxMy4yOS0zLjMzMnM5LjE0IDEuMTEgMTMuMjkyIDMuMzMyTDk0NS43NSA0MjMuMDc0YTI4LjE5MSAyOC4xOTEgMCAwMTE0Ljg5OCAyNC44NTggMjguMTc3IDI4LjE3NyAwIDAxLTE0Ljg5NiAyNC44NTZ6bTAtMjI0LjgyOGwtMTE4LjY4NiA2My40NjJjLTEzLjczMiA3LjM0LTQxLjM5MiAxLjMwMi00OC43MzItMTIuNDI0LTcuMzQtMTMuNzMtNS41NzYtMzUuOTUgOC4xNTQtNDMuMjlsNTguMTk2LTMyLjYwNEw1MTEuOTk4IDU4LjI0MiAxNzkuMzEyIDIyMy4xMDRsNTcuNDE0IDMyLjE4NmMxMy43MyA3LjM0IDE1LjYxMiAyOS45ODQgOC4yNzIgNDMuNzFzLTM1LjEyNiAxOS4zNDgtNDguODUgMTIuMDAyTDc4LjI0NCAyNDcuOTU4Yy05LjE3LTQuOTA0LTE0Ljg5OC0xNC40NTgtMTQuODk4LTI0Ljg1OHM1LjcyMi0xOS45NTQgMTQuODk4LTI0Ljg1OEw0OTguNzA2LTI2LjU4NmM0LjE1LTIuMjIgOC43Mi0zLjMzIDEzLjI5LTMuMzNzOS4xNCAxLjExIDEzLjI5MiAzLjMzTDk0NS43NSAxOTguMjQyYTI4LjE5MSAyOC4xOTEgMCAwMS4wMDIgNDkuNzE4eiIvPjxnbHlwaCB1bmljb2RlPSLupIgiIGdseXBoLW5hbWU9ImNoZWNrIiBkPSJNNTEyIDk2MEMyMjkuMjQ3IDk2MCAwIDczMC43NTEgMCA0NDhTMjI5LjI0OS02NCA1MTItNjRzNTEyIDIyOS4yNDkgNTEyIDUxMi0yMjkuMjQ5IDUxMi01MTIgNTEyem0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMnptMjA5LjkyIDU3NS42MTVjLTEyLjg5Ni41NDUtMjUuOTg1LTMuODA3LTM1Ljg0LTEzLjY5N0w0NjMuOTk5IDM3MS44NzIgMzM3LjkyIDQ5Ny45MmMtOS44NTcgOS44ODgtMjIuOTQ0IDE0LjIwOS0zNS44NCAxMy42OTctMTEuNjE2LS40NzktMjMuMTY5LTQuODAxLTMyLjAzMy0xMy42OTctOC44NjQtOC44NjQtMTMuMjE2LTIwLjQxNy0xMy42OTctMzIuMDMzLS41NDUtMTIuODk2IDMuODA3LTI1Ljk4NSAxMy42OTctMzUuODRsMTYwLTE2MGM5LjM3Ni05LjM3NiAyMS42NjQtMTQuMDQ3IDMzLjk1Mi0xNC4wNDdzMjQuNTc2IDQuNjcxIDMzLjk1MiAxNC4wNDdsMjU2IDI1NmM5Ljg4OCA5Ljg4OCAxNC4yMDkgMjIuOTQ0IDEzLjY5NyAzNS44NC0uNDc5IDExLjYxNi00LjgwMSAyMy4xNjktMTMuNjk3IDMyLjAzMy04Ljg5NCA4Ljg5Ny0yMC40MTQgMTMuMjQ5LTMyLjAzMSAxMy42OTV6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kiSIgZ2x5cGgtbmFtZT0iY2hlY2syIiBkPSJNNzQ5LjcxNCA4MTMuNzE0SDI3NC4yODVxLTM3LjcxNCAwLTY0LjU3MS0yNi44NTd0LTI2Ljg1Ny02NC41NzFWMjQ2Ljg1N3EwLTM3LjcxNCAyNi44NTctNjQuNTcxdDY0LjU3MS0yNi44NTdoNDc1LjQyOXEzNy43MTQgMCA2NC41NzEgMjYuODU3dDI2Ljg1NyA2NC41NzF2NDc1LjQyOXEwIDM3LjcxNC0yNi44NTcgNjQuNTcxdC02NC41NzEgMjYuODU3em0xNjQuNTcyLTkxLjQyOFYyNDYuODU3cTAtNjgtNDguMjg2LTExNi4yODZUNzQ5LjcxNCA4Mi4yODVIMjc0LjI4NXEtNjggMC0xMTYuMjg2IDQ4LjI4NnQtNDguMjg2IDExNi4yODZ2NDc1LjQyOXEwIDY4IDQ4LjI4NiAxMTYuMjg2dDExNi4yODYgNDguMjg2aDQ3NS40MjlxNjggMCAxMTYuMjg2LTQ4LjI4NnQ0OC4yODYtMTE2LjI4NnoiLz48Z2x5cGggdW5pY29kZT0i7qSKIiBnbHlwaC1uYW1lPSJjaGVjazMiIGQ9Ik03NDkuNzE0IDgxMy43MTRIMjc0LjI4NWMtMjUuMTQzIDAtNDYuNjY2LTguOTUyLTY0LjU3MS0yNi44NTdzLTI2Ljg1Ny0zOS40MjktMjYuODU3LTY0LjU3MVYyNDYuODU3YzAtMjUuMTQzIDguOTUzLTQ2LjY2NiAyNi44NTctNjQuNTcxczM5LjQyOS0yNi44NTcgNjQuNTcxLTI2Ljg1N2g0NzUuNDI5YzI1LjE0MyAwIDQ2LjY2NyA4Ljk1MyA2NC41NzEgMjYuODU3czI2Ljg1NyAzOS40MjkgMjYuODU3IDY0LjU3MXY0NzUuNDI5YzAgMjUuMTQzLTguOTUyIDQ2LjY2Ny0yNi44NTcgNjQuNTcxcy0zOS40MjkgMjYuODU3LTY0LjU3MSAyNi44NTd6bTE2NC41NzItOTEuNDI4VjI0Ni44NTdjMC00NS4zMzMtMTYuMDk1LTg0LjA5NS00OC4yODYtMTE2LjI4NnMtNzAuOTUyLTQ4LjI4Ni0xMTYuMjg2LTQ4LjI4NkgyNzQuMjg1Yy00NS4zMzMgMC04NC4wOTUgMTYuMDk1LTExNi4yODYgNDguMjg2cy00OC4yODYgNzAuOTUzLTQ4LjI4NiAxMTYuMjg2djQ3NS40MjljMCA0NS4zMzQgMTYuMDk1IDg0LjA5NSA0OC4yODYgMTE2LjI4NnM3MC45NTMgNDguMjg2IDExNi4yODYgNDguMjg2aDQ3NS40MjljNDUuMzM0IDAgODQuMDk1LTE2LjA5NSAxMTYuMjg2LTQ4LjI4NnM0OC4yODYtNzAuOTUyIDQ4LjI4Ni0xMTYuMjg2em0tMTg5LjExNy02OC4yMTVjLTEyLjg1LjU0Mi0yNS44OTEtMy43OTQtMzUuNzExLTEzLjY0N0w0NjguMTc1IDQxOS4xNzMgMzQyLjU0OCA1NDQuNzY5Yy05LjgyMSA5Ljg1My0yMi44NjIgMTQuMTU3LTM1LjcxMSAxMy42NDctMTEuNTc0LS40NzgtMjMuMDg1LTQuNzgzLTMxLjkxNy0xMy42NDctOC44MzMtOC44MzMtMTMuMTY5LTIwLjM0My0xMy42NDctMzEuOTE3LS41NDItMTIuODUgMy43OTQtMjUuODkxIDEzLjY0Ny0zNS43MTFsMTU5LjQyNi0xNTkuNDI2YzkuMzQyLTkuMzQzIDIxLjU4Ni0xMy45OTggMzMuODMtMTMuOTk4czI0LjQ4OCA0LjY1NSAzMy44MyAxMy45OThsMjU1LjA4MiAyNTUuMDgyYzkuODUzIDkuODUzIDE0LjE1OSAyMi44NjIgMTMuNjQ3IDM1LjcxMS0uNDc4IDExLjU3NC00Ljc4MiAyMy4wODUtMTMuNjQ3IDMxLjkxNy04Ljg2NSA4Ljg2NC0yMC4zNDMgMTMuMjAxLTMxLjkxOCAxMy42NDd6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kiyIgZ2x5cGgtbmFtZT0iY2hlY2s0IiBkPSJNNTEyIDk2MEMyMjkuMjQ3IDk2MCAwIDczMC43NTEgMCA0NDhTMjI5LjI0OS02NCA1MTItNjRjMjgyLjc1MyAwIDUxMiAyMjkuMjQ5IDUxMiA1MTJTNzk0Ljc1MSA5NjAgNTEyIDk2MHptMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kjCIgZ2x5cGgtbmFtZT0iY2hlY2s1IiBkPSJNNTEyIDk2MEMyMjkuMjQ3IDk2MCAwIDczMC43NTEgMCA0NDhTMjI5LjI0OS02NCA1MTItNjRjMjgyLjc1MyAwIDUxMiAyMjkuMjQ5IDUxMiA1MTJTNzk0Ljc1MSA5NjAgNTEyIDk2MHptMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzJ6bTI1Mi45MTIgNDE1Ljk5OGMwLTEzOS42NzQtMTEzLjI0Mi0yNTIuOTQyLTI1Mi45MTQtMjUyLjk0Mi0xMzkuNjM5IDAtMjUyLjkxNCAxMTMuMjA5LTI1Mi45MTQgMjUyLjk0MiAwIDEzOS42NzIgMTEzLjI3NSAyNTIuOTQ0IDI1Mi45MTQgMjUyLjk0NCAxMzkuNjcyLjAwMiAyNTIuOTE0LTExMy4yNzMgMjUyLjkxNC0yNTIuOTQ0eiIvPjxnbHlwaCB1bmljb2RlPSLupI0iIGdseXBoLW5hbWU9ImNvbWVudGFyaW9zIiBkPSJNODI1LjgzNiA5MTEuN0gxOTguMTY0Yy05My40NDYgMC0xNjkuNDY4LTc2LjAyNi0xNjkuNDY4LTE2OS40N1YzNTUuMDgyYzAtOTMuNDQ4IDc2LjAyMi0xNjkuNDcgMTY5LjQ2OC0xNjkuNDdsMzk5Ljc5Mi0uMDAyTDc4OS4zMzItNS43N2EzMy45MDIgMzMuOTAyIDAgMDEyMy45NzYtOS45MjhjNC4zNjggMCA4Ljc3Mi44NDggMTIuOTU4IDIuNTg2YTMzLjg4NiAzMy44ODYgMCAwMTIwLjkyNiAzMS4zMDh2MTY4Ljc2YzgzLjQxIDEwLjUzNCAxNDguMTA2IDgxLjkxMiAxNDguMTA2IDE2OC4xMjh2Mzg3LjE0OGMuMDA2IDkzLjQ0NC03Ni4wMTYgMTY5LjQ2OC0xNjkuNDYyIDE2OS40Njh6bTkxLjgtNTUzLjg0MmMwLTU0LjczNC00NC41MjgtOTkuMjYyLTk5LjI2NC05OS4yNjJoLTguMTY4Yy0xOC4yNjggMC0zMy4wODYtMTQuODE4LTMzLjA4Ni0zMy4wOXYtMTE2LjY0TDYzNy4wODQgMjQ4LjkwNGEzMy4wNiAzMy4wNiAwIDAxLTIzLjM5NCA5LjY5NEgyMDUuNjI2Yy01NC43MzYgMC05OS4yNjQgNDQuNTI4LTk5LjI2NCA5OS4yNjJ2Mzc3Ljk0MmMwIDU0LjczMiA0NC41MjggOTkuMjY0IDk5LjI2NCA5OS4yNjRoNjEyLjc0NmM1NC43MzYgMCA5OS4yNjQtNDQuNTMyIDk5LjI2NC05OS4yNjRWMzU3Ljg1OHptLTE1Ni4xOCAzMjQuMDFjMjQuMzM4LS4wMDggNDQuMDU2LTE5LjcyNCA0NC4wNjQtNDQuMDY0LS4wMDgtMjQuMzM4LTE5LjcyNi00NC4wNTYtNDQuMDY0LTQ0LjA2NGgtNDk4LjkyYy0yNC4zMzQuMDA4LTQ0LjA1NiAxOS43MjYtNDQuMDY0IDQ0LjA2NC4wMDggMjQuMzQ2IDE5LjcyOCA0NC4wNTYgNDQuMDY0IDQ0LjA2NGg0OTguOTJ6bS4wMDQtMTg5LjgwNmMyNC4zMzItLjAwOCA0NC4wNS0xOS43MTYgNDQuMDU4LTQ0LjA2NC0uMDA4LTI0LjMzNC0xOS43MjItNDQuMDUtNDQuMDU4LTQ0LjA1OEgyNjIuNTRjLTI0LjMzNC4wMDgtNDQuMDU2IDE5LjcyMi00NC4wNjQgNDQuMDU4LjAwNCAyNC4zNDYgMTkuNzI4IDQ0LjA1NiA0NC4wNjQgNDQuMDY0aDQ5OC45MnoiLz48Z2x5cGggdW5pY29kZT0i7qSOIiBnbHlwaC1uYW1lPSJkZXNjYXJnYXIiIGQ9Ik05MjggMzcwYzMwIDAgNTQtMjQgNTQtNTRWMjJjMC0zMC0yNC01NC01NC01NEg5MkM2Mi0zMiAzNi04IDM2IDIydjI5NGMwIDMwIDI2IDU0IDU2IDU0czU0LTI0IDU0LTU0Vjc4aDcyOHYyMzhjMCAzMCAyNCA1NCA1NCA1NHpNNDcyIDI0OEwyNTIgNDY4Yy0yMiAyMi0yMiA1NCAwIDc2czU0IDIyIDc2IDBsMTI4LTEyNnY0NjhjMCAzMCAyNCA1NCA1NCA1NHM1NC0yNCA1NC01NFY0MThsMTI2IDEyNmMyMiAyMiA1NiAyMiA3OCAwczIyLTU0IDAtNzZMNTQ4IDI0OGMtMTAtMTAtMjQtMTYtMzgtMTZzLTI4IDYtMzggMTZ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kjyIgZ2x5cGgtbmFtZT0iZWRpdGFyIiBkPSJNMTAxMi44MzIgNjgzLjE2OEw3NDcuMTM2IDk0OC44NjRDNzM5LjY0OCA5NTYuMzUyIDcyOS44MjQgOTYwIDcyMCA5NjBzLTE5LjY0OC0zLjY0OC0yNy4xMzYtMTEuMTY4TDAgMjU2Vi02NGgzMjBsNjkyLjgzMiA2OTIuODMyYzcuNTIgNy41MiAxMS4xNjggMTcuMzQ0IDExLjE2OCAyNy4xNjggMCA5Ljg1Ni0zLjY0OCAxOS42NDgtMTEuMTY4IDI3LjE2OHpNOTYgMzJ2MTU2LjEyOEwyNTIuMTI4IDMySDk2em0yNDEuOTUyIDQ5LjkybC0xOTIgMTkyTDU5MC4wOCA3MTguMDhsMTkyLTE5MkwzMzcuOTUyIDgxLjkyem01MTIgNTEybC0xOTIgMTkyTDcyMCA4NDhsMTkyLTE5Mi02Mi4wNDgtNjIuMDh6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kkCIgZ2x5cGgtbmFtZT0iZWRpdGFyMiIgZD0iTTkxMiA0ODBjLTI2LjUyOCAwLTQ4LTIxLjUwNC00OC00OFYzMkg5NnY3NjhoNDAwYzI2LjUyOCAwIDQ4IDIxLjUwNCA0OCA0OHMtMjEuNDcyIDQ4LTQ4IDQ4SDY0Yy0zNS4zMjggMC02NC0yOC42NC02NC02NFYwYzAtMzUuMzYgMjguNjcyLTY0IDY0LTY0aDgzMmMzNS4zMjggMCA2NCAyOC42NCA2NCA2NHY0MzJjMCAyNi40OTYtMjEuNDcyIDQ4LTQ4IDQ4em0xMDAuODMyIDMzMS4xNjhMODc1LjEzNiA5NDguODY0Qzg2Ny42NDggOTU2LjM1MiA4NTcuODI0IDk2MCA4NDggOTYwcy0xOS42NDgtMy42NDgtMjcuMTM2LTExLjE2OEwyODggNDE2VjIyNGgxOTJsNTMyLjgzMiA1MzIuODMyYzcuNTIgNy41MiAxMS4xNjggMTcuMzQ0IDExLjE2OCAyNy4xNjggMCA5Ljg1Ni0zLjY0OCAxOS42NDgtMTEuMTY4IDI3LjE2OHpNNDQ4IDMyMGgtNjR2NjRsNDY0IDQ2NCA2NC02NC00NjQtNDY0eiIvPjxnbHlwaCB1bmljb2RlPSLupJEiIGdseXBoLW5hbWU9ImVzY2FsYSIgZD0iTTY0NS42OTIgNzc4LjU3OGMwIDU2LjgxNy00Ni4xNzYgMTAzLjAwNi0xMDMuMDA2IDEwMy4wMDYtNTYuNzI0IDAtMTAyLjk2Ni00Ni4xMzYtMTAyLjk2Ni0xMDMuMDA2IDAtNDUuMTkzIDI5LjQ2NC04My4xOTkgNzAuMDA4LTk3LjEyMWgtNjIuNjIydi04OC4yNmg2Mi40NzZ2LTM5LjQwMWgtNjIuNDc2di00NC4xMTdoNjIuNDc2di0zOC4zNzhoLTYyLjQ3NnYtNDQuMTk3aDYyLjQ3NnYtMzguMzEyaC02Mi40NzZ2LTQ0LjE0M2g2Mi40NzZ2LTM4LjM5MWgtNjIuNDc2di00NC4xMTdoNjIuNDc2di0zOC40NDVoLTYyLjQ3NnYtNDQuMTE3aDYyLjQ3NlYxNjQuOThjLTI3LjAzMy0xMi40ODctNDUuOTktMzkuODM5LTQ1Ljk5LTcxLjUzNSAwLTQzLjY2NSAzNS40OTUtNzkuMTIxIDc5LjA1NC03OS4xMjFzNzkuMTIxIDM1LjQwMiA3OS4xMjEgNzkuMTIxYzAgMzEuNjctMTguOTMgNTkuMDM1LTQ2LjAwMyA3MS41MzV2MTQuNTk5aDcwLjcyNXY0NC4yMWgtNzAuNzUydjM4LjQwNWg3MC43MjV2NDQuMTNoLTcwLjcyNXYzOC40MThoNzAuNzI1djQ0LjEzaC03MC43MjV2MzguMzUyaDcwLjcyNXY0NC4xNTdoLTcwLjcyNXYzOC4zNzhoNzAuNzI1djQ0LjExN2gtNzAuNzI1djM5LjQwMWg3MC43MjV2ODguMjg3aC03MC44OThjNDAuNjYzIDEzLjgyOSA3MC4xMjcgNTEuODIyIDcwLjEyNyA5Ny4wMTV6bS0xNjEuODI4IDBjMCAzMi41MDYgMjYuNDM2IDU4Ljg4OSA1OC44ODkgNTguODg5IDMyLjQ2NyAwIDU4Ljg0OS0yNi4zODIgNTguODQ5LTU4Ljg4OSAwLTMyLjQxMy0yNi4zNjktNTguODM2LTU4Ljg0OS01OC44MzYtMzIuNDQgMC01OC44ODkgMjYuNDIyLTU4Ljg4OSA1OC44MzZ6bTkzLjgtNjg0Ljk0OGMwLTE5LjMxNS0xNS42MzYtMzQuOTM3LTM0LjkxMS0zNC45MzdzLTM0LjkzNyAxNS42MjItMzQuOTM3IDM0LjkzN2MwIDE5LjI3NSAxNS42NDkgMzQuOTUxIDM0LjkzNyAzNC45NTEgMTkuMjg5LjAyNyAzNC45MTEtMTUuNjc1IDM0LjkxMS0zNC45NTF6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kkiIgZ2x5cGgtbmFtZT0iZXNjYWxhMiIgZD0iTTEwMDkuMjAyIDIyLjIxNkw2MDUuMzMzIDQyNi4wODNjOTYuNTk1IDEzMS4yMDkgODUuOTI0IDMxNy4xNTYtMzIuNzExIDQzNS44MDItMTMwLjgyNiAxMzAuODE4LTM0My42ODkgMTMwLjgxOC00NzQuNTA3IDBzLTEzMC44MTgtMzQzLjY4MSAwLTQ3NC40OTljMTE4LjY2LTExOC42NiAzMDQuNjA1LTEyOS4zMTkgNDM1LjgwOC0zMi43MzhMOTM3Ljc4Mi00OS4yMDZjMTkuNzEzLTE5LjcyNSA1MS42OTMtMTkuNzI1IDcxLjQyMSAwIDE5LjcyNyAxOS43MjkgMTkuNzI3IDUxLjcyIDAgNzEuNDIzek01MDEuMjAxIDQ1OC44MDNjLTkxLjQzOC05MS40MjMtMjQwLjIxOS05MS40MjMtMzMxLjY3IDAtOTEuNDQyIDkxLjQzNi05MS40NDIgMjQwLjIyNiAwIDMzMS42NTcgOTEuNDQ4IDkxLjQ0MiAyNDAuMjMyIDkxLjQ0MiAzMzEuNjcgMCA5MS40My05MS40MzIgOTEuNDMtMjQwLjIyMiAwLTMzMS42NTd6TTI1MC4yOSA1NTYuOTAxaDEzLjQ4MXYtMzMuNTE5aC02OC45OTh2MzMuNTE5aDE2LjAyNXYxNDMuNzkybC0yMi41NTYtMTcuNzk2LTguODIyIDM0LjczOCAzOC44MjMgMjcuNzQyaDMyLjA0N1Y1NTYuOTAxem0xMTUuMTQzLTcuNDI5YzAtMTUuMTkzLTEwLjY0LTI2LjA5Mi0yNS4yODktMjYuMDkyLTE0LjIyOCAwLTI0Ljk1MyAxMS4xMzUtMjQuOTUzIDI1LjkxNCAwIDE1LjE4NyAxMC42NCAyNi4yMjcgMjUuMzAxIDI2LjIyNyAxNC4yNjEuMDAyIDI0LjUxMi0xMC43MTUgMjQuOTQxLTI2LjA0OXptMCAxMTEuODQ1YzAtMTUuMTg3LTEwLjY0LTI2LjA5Mi0yNS4yODktMjYuMDkyLTE0LjIyOCAwLTI0Ljk1MyAxMS4xNDMtMjQuOTUzIDI1LjkxNiAwIDE1LjIwNSAxMC42NCAyNi4yMzEgMjUuMzAxIDI2LjIzMSAxNC4yNjEuMDEyIDI0LjUxMi0xMC43MDIgMjQuOTQxLTI2LjA1NXptMTI3Ljk4NC0xMDQuNDE2di0zMy41MTloLTY4Ljk5OHYzMy41MTloMTQuNjg2djE0My43OTJsLTIyLjU3NC0xNy43OTYtOC44MTYgMzQuNzM4IDM4LjgxOSAyNy43NDJoMzIuMDQ3VjU1Ni44OThoMTQuODM3eiIvPjxnbHlwaCB1bmljb2RlPSLupJMiIGdseXBoLW5hbWU9ImVzY2FsYTMiIGQ9Ik05NjEuNTA0IDY1Ni45ODJINjguNDc5Yy0yMi44ODQgMC00MS40MjMtMTguNTUxLTQxLjQyMy00MS40MTNWMjg0LjNjMC0yMi44ODQgMTguNTQtNDEuNDEzIDQxLjQyMy00MS40MTNoODkzLjAxNGMyMi44NjIgMCA0MS40MjMgMTguNTI5IDQxLjQyMyA0MS40MTNoLjAxMXYzMzEuMjY5YzAgMjIuODYyLTE4LjU1MSA0MS40MTMtNDEuNDIzIDQxLjQxM3ptLTMwLjgzOS0zMTYuODI1YzAtMTUuMTAxLTEyLjI1Ni0yNy4zNTctMjcuMzU3LTI3LjM1N0gxMjIuMzA5Yy0xNS4xMDEgMC0yNy4zNTcgMTIuMjU2LTI3LjM1NyAyNy4zNTd2MjE4Ljg2N2MwIDE1LjEwMSAxMi4yNTYgMjcuMzU3IDI3LjM1NyAyNy4zNTdoNzgwLjk5OWMxNS4xMDEgMCAyNy4zNTctMTIuMjU2IDI3LjM1Ny0yNy4zNTdWMzQwLjE1N3pNMzI2Ljk5IDUyNS44OTlIMTk2LjEyM2MtNi44ODggMC0xMi40Ni01LjU4My0xMi40Ni0xMi40NlYzODIuNTgzYzAtNi44ODggNS41ODMtMTIuNDcxIDEyLjQ2LTEyLjQ3MUgzMjYuOTljNi44NzcgMCAxMi40NzEgNS41OTQgMTIuNDcxIDEyLjQ3MXYxMzAuODU2Yy0uMDExIDYuODY2LTUuNTk0IDEyLjQ2LTEyLjQ3MSAxMi40NnptMjUwLjQzOCAwSDQ0Ni41NzJjLTYuODc3IDAtMTIuNDYtNS41ODMtMTIuNDYtMTIuNDZWMzgyLjU4M2MwLTYuODg4IDUuNTgzLTEyLjQ3MSAxMi40Ni0xMi40NzFoMTMwLjg1NmM2Ljg3NyAwIDEyLjQ2IDUuNTk0IDEyLjQ2IDEyLjQ3MXYxMzAuODU2Yy4wMTEgNi44NjYtNS41NjIgMTIuNDYtMTIuNDYgMTIuNDZ6bTI1MC40NiAwSDY5Ny4wMWMtNi44NzcgMC0xMi40Ni01LjU4My0xMi40Ni0xMi40NlYzODIuNTgzYzAtNi44ODggNS41OTQtMTIuNDcxIDEyLjQ2LTEyLjQ3MWgxMzAuODc4YzYuODY2IDAgMTIuNDcxIDUuNTk0IDEyLjQ3MSAxMi40NzF2MTMwLjg1NmMwIDYuODY2LTUuNTk0IDEyLjQ2LTEyLjQ3MSAxMi40NnoiLz48Z2x5cGggdW5pY29kZT0i7qSUIiBnbHlwaC1uYW1lPSJmbGVjaGEiIGQ9Ik0xMDA2LjcxOSAyMTQuODU2TDgyMC41MDcgNDAxLjA3MiA5ODIuMDggNTYyLjY0N2E1OC45NzUgNTguOTc1IDAgMDExNS43MDQgNTUuMjQ3IDU4Ljk3IDU4Ljk3IDAgMDEtMzguNzI0IDQyLjQyTDc3LjY5MSA5NTQuODIzYTU4Ljk2MSA1OC45NjEgMCAwMS02MC40MS0xNC4yMzYgNTguOTkgNTguOTkgMCAwMS0xNC4yMzgtNjAuNDFMMjk3LjU2Mi0xLjE5NGE1OC45ODcgNTguOTg3IDAgMDE0Mi40Mi0zOC43MjRjMTkuODc0LTQuNjkyIDQwLjc4OCAxLjI0NyA1NS4yNDcgMTUuNzA0bDE2NS44MzMgMTY1LjgzM0w3NDcuMjc4LTQ0LjU5M2MxMS41Mi0xMS41MiAyNi42MTgtMTcuMjgxIDQxLjcxNC0xNy4yODEgMTUuMDk0IDAgMzAuMTk2IDUuNzYxIDQxLjcxMiAxNy4yODFsMTc2LjAxNyAxNzYuMDE3YzIzLjAzNiAyMy4wMzggMjMuMDM2IDYwLjM5My0uMDAyIDgzLjQzMXpNNzk5Ljg1NSA2My4zNTNMNjEwLjcxOCAyNTAuNDM0Yy0xMi41ODcgMTIuNTg3LTI5LjA4NCAxOC44ODMtNDUuNTc4IDE4Ljg4M3MtMzIuOTk1LTYuMjk2LTQ1LjU3Ni0xOC44ODNsLTE1My4wOS0xNTMuMDktMjQ3Ljg0MyA3NDEuNyA3NDEuNjk1LTI0Ny44NDUtMTQ4LjQzNS0xNDguNDMzYy0yNS4xNzQtMjUuMTctMjUuMTc0LTY1Ljk4NyAwLTkxLjE2MWwxODkuMTMxLTE4Ny4wODdMNzk5Ljg1NSA2My4zNTN6Ii8+PGdseXBoIHVuaWNvZGU9Iu6klSIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFiYWpvIiBkPSJNNTE2Ljk2NCAzNDkuOTU4TDE2Mi41MSA3MDQuNDE0Yy0zMC41NTYgMzAuNTU2LTczLjMzNiAzMC41NTYtMTAzLjg5MiAwLTMwLjU1NC0zMC41NTYtMzAuNTU0LTc2LjM5IDAtMTA2Ljk0OGw0MDYuNC00MDYuNDAyYzE1LjI4LTE1LjI4IDMwLjU1Ni0yMS4zOSA1MS45NDgtMjEuMzlzMzYuNjY4IDYuMTEyIDUxLjk0NiAyMS4zOWw0MDYuNCA0MDYuNDAyYzE1LjI4IDE1LjI4IDIxLjM5IDMzLjYxIDIxLjM5IDUxLjk0NiAwIDE4LjMzNC02LjExMiAzOS43MjQtMjEuMzkgNTUuMDAyLTMwLjU1NiAzMC41NTYtNzMuMzM0IDMwLjU1Ni0xMDMuODkgMEw1MTYuOTY0IDM0OS45NTh6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kliIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFiYWpvMiIgZD0iTTUxMiA5NjBDMjI5LjI0OCA5NjAgMCA3MzAuNzUyIDAgNDQ4UzIyOS4yNDgtNjQgNTEyLTY0czUxMiAyMjkuMjQ4IDUxMiA1MTItMjI5LjI0OCA1MTItNTEyIDUxMnptMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzJ6bTE3NiA1NDRjLTE0LjAxNiAwLTI2LjQ5Ni02LjA4LTM1LjI2NC0xNS42NDhsLS4xMjguMDk2TDUxMiA0MDcuMDQgMzcxLjM2IDU2MC40NDhsLS4xMjgtLjA5NkMzNjIuNDk2IDU2OS45MiAzNTAuMDE2IDU3NiAzMzYgNTc2Yy0yNi40OTYgMC00OC0yMS41MDQtNDgtNDggMC0xMi41MTIgNC44OTYtMjMuNzc2IDEyLjczNi0zMi4zNTJsLS4xMjgtLjA5NiAxNzYtMTkyQzQ4NS43MjggMjkzLjY2NCA0OTguNTI4IDI4OCA1MTIgMjg4czI2LjI3MiA1LjY2NCAzNS4zNiAxNS41NTJsMTc2IDE5Mi0uMTI4LjA5NkM3MzEuMTA0IDUwNC4yMjQgNzM2IDUxNS40ODggNzM2IDUyOGMwIDI2LjQ5Ni0yMS41MDQgNDgtNDggNDh6Ii8+PGdseXBoIHVuaWNvZGU9Iu6klyIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFycmliYSIgZD0iTTUxNS40MzggNTQ3LjA1bDM1NC40NTYtMzU0LjQ1NmMzMC41NTYtMzAuNTU2IDczLjMzNi0zMC41NTYgMTAzLjg5MiAwIDMwLjU1NCAzMC41NTYgMzAuNTU0IDc2LjM5IDAgMTA2Ljk0OGwtNDA2LjQgNDA2LjQwMmMtMTUuMjggMTUuMjgtMzAuNTU2IDIxLjM5LTUxLjk0OCAyMS4zOXMtMzYuNjY4LTYuMTEyLTUxLjk0Ni0yMS4zOUw1Ny4wOTIgMjk5LjU0Yy0xNS4yOC0xNS4yOC0yMS4zOS0zMy42MS0yMS4zOS01MS45NDYgMC0xOC4zMzQgNi4xMTItMzkuNzI0IDIxLjM5LTU1LjAwMiAzMC41NTYtMzAuNTU2IDczLjMzNC0zMC41NTYgMTAzLjg5IDBMNTE1LjQzOCA1NDcuMDV6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kmCIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFycmliYTIiIGQ9Ik03MjMuMzYgNDAwLjQ0OGwtMTc2IDE5MkM1MzguMjcyIDYwMi4zMzYgNTI1LjQ3MiA2MDggNTEyIDYwOHMtMjYuMjcyLTUuNjY0LTM1LjM5Mi0xNS41NTJsLTE3Ni0xOTIgLjEyOC0uMDk2QzI5Mi44OTYgMzkxLjc3NiAyODggMzgwLjUxMiAyODggMzY4YzAtMjYuNDk2IDIxLjUwNC00OCA0OC00OCAxNC4wMTYgMCAyNi40OTYgNi4wOCAzNS4yNjQgMTUuNjQ4bC4xMjgtLjA5Nkw1MTIgNDg4Ljk2bDE0MC42MDgtMTUzLjQwOC4xMjguMDk2QzY2MS41MDQgMzI2LjA4IDY3NC4wMTYgMzIwIDY4OCAzMjBjMjYuNDk2IDAgNDggMjEuNTA0IDQ4IDQ4IDAgMTIuNTEyLTQuODk2IDIzLjc3Ni0xMi43MzYgMzIuMzUybC4wOTYuMDk2ek01MTIgOTYwQzIyOS4yNDggOTYwIDAgNzMwLjc1MiAwIDQ0OFMyMjkuMjQ4LTY0IDUxMi02NHM1MTIgMjI5LjI0OCA1MTIgNTEyLTIyOS4yNDggNTEyLTUxMiA1MTJ6bTAtOTI4QzI4Mi42MjQgMzIgOTYgMjE4LjYyNCA5NiA0NDhzMTg2LjYyNCA0MTYgNDE2IDQxNiA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyeiIvPjxnbHlwaCB1bmljb2RlPSLupJkiIGdseXBoLW5hbWU9ImZsZWNoYS1kZXJlY2hhIiBkPSJNNjE0Ljc0NiA0NDkuMjY0TDI2MC4yOSA5NC44MDhjLTMwLjU1Ni0zMC41NTYtMzAuNTU4LTczLjMzNiAwLTEwMy44OTIgMzAuNTU2LTMwLjU1NCA3Ni4zOS0zMC41NTQgMTA2Ljk0OCAwbDQwNi40MDIgNDA2LjRjMTUuMjggMTUuMjggMjEuMzkgMzAuNTU2IDIxLjM5IDUxLjk0OHMtNi4xMTIgMzYuNjY4LTIxLjM5IDUxLjk0NmwtNDA2LjQgNDA2LjRDMzUxLjk2IDkyMi44OSAzMzMuNjMgOTI5IDMxNS4yOTQgOTI5Yy0xOC4zMzQgMC0zOS43MjQtNi4xMTItNTUuMDAyLTIxLjM5LTMwLjU1Ni0zMC41NTYtMzAuNTU2LTczLjMzNCAwLTEwMy44OWwzNTQuNDU0LTM1NC40NTZ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kmiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWRlcmVjaGEyIiBkPSJNNDY0LjQ0OCA2NTkuMzZsLS4wOTYtLjEyOEM0NTUuNzc2IDY2Ny4xMDQgNDQ0LjUxMiA2NzIgNDMyIDY3MmMtMjYuNDk2IDAtNDgtMjEuNTA0LTQ4LTQ4IDAtMTQuMDE2IDYuMDgtMjYuNDk2IDE1LjY0OC0zNS4yNjRsLS4wOTYtLjEyOEw1NTIuOTYgNDQ4IDM5OS41NTIgMzA3LjM2bC4wOTYtLjEyOEMzOTAuMDggMjk4LjQ5NiAzODQgMjg2LjAxNiAzODQgMjcyYzAtMjYuNDk2IDIxLjUwNC00OCA0OC00OCAxMi41MTIgMCAyMy43NzYgNC44OTYgMzIuMzUyIDEyLjczNmwuMDk2LS4xMjggMTkyIDE3NkM2NjYuMzM2IDQyMS43MjggNjcyIDQzNC41MjggNjcyIDQ0OHMtNS42NjQgMjYuMjcyLTE1LjU1MiAzNS4zOTJsLTE5MiAxNzUuOTY4ek01MTIgOTYwQzIyOS4yNDggOTYwIDAgNzMwLjc1MiAwIDQ0OFMyMjkuMjQ4LTY0IDUxMi02NHM1MTIgMjI5LjI0OCA1MTIgNTEyLTIyOS4yNDggNTEyLTUxMiA1MTJ6bTAtOTI4QzI4Mi42MjQgMzIgOTYgMjE4LjYyNCA5NiA0NDhzMTg2LjYyNCA0MTYgNDE2IDQxNiA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyeiIvPjxnbHlwaCB1bmljb2RlPSLupJsiIGdseXBoLW5hbWU9ImZsZWNoYS1kZXJlY2hhMyIgZD0iTTI1Ni4wNTkgNC42NjJjMjQ0LjgzLTE0MS4zNTMgNTU3LjkxLTU3LjQ0OSA2OTkuMjU0IDE4Ny4zNjggMTQxLjM4MiAyNDQuODU5IDU3LjQ4OCA1NTcuOTYyLTE4Ny4zNTUgNjk5LjMwMy0yNDQuODI2IDE0MS4zNi01NTcuODkxIDU3LjQ2NS02OTkuMjc2LTE4Ny4zNThDLTcyLjY5NCA0NTkuMTI5IDExLjIxNyAxNDYuMDM5IDI1Ni4wNiA0LjY2M3ptLTk4LjcxMyA2NDguMWMxMTMuMDg1IDE5NS44ODEgMzYzLjU2MiAyNjIuOTk0IDU1OS40MiAxNDkuOTEyQzkxMi42NDMgNjg5LjU5MiA5NzkuNzYgNDM5LjEwNiA4NjYuNjU1IDI0My4yNDggNzUzLjU3NiA0Ny4zNTEgNTAzLjExMy0xOS43MTYgMzA3LjI0MiA5My4zNjkgMTExLjM3OCAyMDYuNDU0IDQ0LjI1OCA0NTYuODg5IDE1Ny4zNDcgNjUyLjc2M3pNMjgxLjY1MyA0NDguMDF2LS4wMjljMC0yOC4yMzUgMjIuOTE0LTUxLjE5MiA1MS4xNzktNTEuMTkyaDIxMy41NTZsLTU3LjQwMy01Ny4zODdjLTE5Ljk2Ny0xOS45NjctMTkuOTY3LTUyLjM5NSAwLTcyLjM4NSAxOS45ODMtMTkuOTggNTIuNDIxLTE5Ljk4IDcyLjQwNSAwbDE0NC43NyAxNDQuNzdjMTkuOTgzIDIwLjAwMyAxOS45ODMgNTIuNDM0IDAgNzIuNDI0TDU2MS4zOSA2MjguOTc1Yy0xOS45ODMgMTkuOTk2LTUyLjQyMSAxOS45OTYtNzIuNDA1IDAtMTkuOTY3LTE5Ljk1Ny0xOS45NjctNTIuMzg5IDAtNzIuMzcybDU3LjM4LTU3LjM5N0gzMzIuODM5Yy0yOC4yNjguMDAzLTUxLjE4Mi0yMi45MDEtNTEuMTg2LTUxLjE5NXoiLz48Z2x5cGggdW5pY29kZT0i7qScIiBnbHlwaC1uYW1lPSJmbGVjaGEtZGVzaGFjZXIiIGQ9Ik0wIDg3OS45OTl2LTI1NkMwIDU5Ny41MDQgMjEuNTA0IDU3NiA0Ny45OTkgNTc2aDI1NkMzMzAuNDk2IDU3NiAzNTIgNTk3LjUwNCAzNTIgNjI0LjAwMXMtMjEuNTA0IDQ4LjAwMS00OC4wMDEgNDguMDAxSDE2MS42M0MyMzcuNzYgNzkxLjI2MyAzNjguNDQ3IDg2NCA1MTIgODY0YzIyOS4zNzYgMCA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyYy0xNjkuMDg5IDAtMzIwLjA5NiAxMDAuOTkzLTM4NC42NzIgMjU3LjMxMy01LjA4NyAxMi4yMjUtMTQuNjU1IDIxLjMxMS0yNS45ODUgMjYuMDE2cy0yNC40NDkgNS4wODctMzYuNjcxLjAzM2E0Ny45MzQgNDcuOTM0IDAgMDEtMjYuMDQ5LTI2LjAxNmMtNC43MDQtMTEuMjk3LTUuMDg3LTI0LjQxNi0uMDMzLTM2LjY3MUMxMTguMDc3IDYwLjMyMSAzMDMuOTAyLTYzLjk5OSA1MTItNjMuOTk5YzI4Mi4zMDUgMCA1MTIgMjI5LjY5NSA1MTIgNTEycy0yMjkuNjk1IDUxMi01MTIgNTEyYy0xNjcuNDI0IDAtMzIwLjcwNS04MC4zMjEtNDE2LTIxMy42Vjg4MGMwIDI2LjQ5Ny0yMS41MDQgNDguMDAxLTQ4LjAwMSA0OC4wMDFTMCA5MDYuNDk3IDAgODgweiIvPjxnbHlwaCB1bmljb2RlPSLupJ0iIGdseXBoLW5hbWU9ImZsZWNoYS1penF1aWVyZGEiIGQ9Ik00MTcuNjU0IDQ0Ny43NEw3NzIuMTEgODAyLjE5NGMzMC41NTYgMzAuNTU2IDMwLjU1NiA3My4zMzYgMCAxMDMuODkyLTMwLjU1NiAzMC41NTQtNzYuMzkgMzAuNTU0LTEwNi45NDggMGwtNDA2LjQwMi00MDYuNGMtMTUuMjgtMTUuMjgtMjEuMzktMzAuNTU2LTIxLjM5LTUxLjk0OHM2LjExMi0zNi42NjggMjEuMzktNTEuOTQ2bDQwNi40MDItNDA2LjRjMTUuMjgtMTUuMjggMzMuNjEtMjEuMzkgNTEuOTQ2LTIxLjM5IDE4LjMzNCAwIDM5LjcyNCA2LjExMiA1NS4wMDIgMjEuMzkgMzAuNTU2IDMwLjU1NiAzMC41NTYgNzMuMzM0IDAgMTAzLjg5TDQxNy42NTQgNDQ3Ljc0eiIvPjxnbHlwaCB1bmljb2RlPSLupJ4iIGdseXBoLW5hbWU9ImZsZWNoYS1penF1aWVyZGEyIiBkPSJNNTkyIDY3MmMtMTIuNTEyIDAtMjMuNzc2LTQuODk2LTMyLjM1Mi0xMi43MzZsLS4wOTYuMTI4LTE5Mi0xNzZDMzU3LjY2NCA0NzQuMjcyIDM1MiA0NjEuNDcyIDM1MiA0NDhzNS42NjQtMjYuMjcyIDE1LjU1Mi0zNS4zOTJsMTkyLTE3NiAuMDk2LjEyOEM1NjguMjI0IDIyOC44OTYgNTc5LjQ4OCAyMjQgNTkyIDIyNGMyNi40OTYgMCA0OCAyMS41MDQgNDggNDggMCAxMy45ODQtNi4wOCAyNi40OTYtMTUuNjQ4IDM1LjI2NGwuMDk2LjEyOEw0NzEuMDQgNDQ4bDE1My40MDggMTQwLjY0LS4wOTYuMTI4QzYzMy45MiA1OTcuNTA0IDY0MCA2MDkuOTg0IDY0MCA2MjRjMCAyNi40OTYtMjEuNTA0IDQ4LTQ4IDQ4em0tODAgMjg4QzIyOS4yNDggOTYwIDAgNzMwLjc1MiAwIDQ0OFMyMjkuMjQ4LTY0IDUxMi02NHM1MTIgMjI5LjI0OCA1MTIgNTEyLTIyOS4yNDggNTEyLTUxMiA1MTJ6bTAtOTI4QzI4Mi42MjQgMzIgOTYgMjE4LjYyNCA5NiA0NDhzMTg2LjYyNCA0MTYgNDE2IDQxNiA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyeiIvPjxnbHlwaCB1bmljb2RlPSLupJ8iIGdseXBoLW5hbWU9ImZsZWNoYS1penF1aWVyZGEzIiBkPSJNOTU1LjMxOSA3MDMuOTc1Yy0xNDEuMzg1IDI0NC44MjItNDU0LjQ1MiAzMjguNzE3LTY5OS4yNzQgMTg3LjM1Ny0yNDQuODQyLTE0MS4zNC0zMjguNzM5LTQ1NC40NDUtMTg3LjM1NC02OTkuM0MyMTAuMDMxLTUyLjc4NCA1MjMuMTEzLTEzNi42OTEgNzY3LjkzOSA0LjY2NWMyNDQuODQ1IDE0MS4zNzYgMzI4Ljc1NiA0NTQuNDY1IDE4Ny4zOCA2OTkuMzF6TTcxNi43NiA5My4zNzFDNTIwLjg5LTE5LjcxNyAyNzAuNDI3IDQ3LjM1MyAxNTcuMzQ4IDI0My4yNSA0NC4yNDQgNDM5LjEwNyAxMTEuMzYgNjg5LjU5MyAzMDcuMjM2IDgwMi42NzVjMTk1Ljg1NyAxMTMuMDgxIDQ0Ni4zMzMgNDUuOTY5IDU1OS40MTgtMTQ5LjkxMUM5NzkuNzQyIDQ1Ni44OSA5MTIuNjIgMjA2LjQ1NyA3MTYuNzU5IDkzLjM3MnpNNjkxLjE2NiA0OTkuMjFINDc3LjYzN2w1Ny4zOCA1Ny4zOTNjMTkuOTY3IDE5Ljk4MyAxOS45NjcgNTIuNDE1IDAgNzIuMzcyLTE5Ljk4MyAxOS45OTYtNTIuNDIxIDE5Ljk5Ni03Mi40MDQgMGwtMTQ0Ljc3LTE0NC43NjNjLTE5Ljk4My0xOS45OS0xOS45ODMtNTIuNDIxIDAtNzIuNDI0bDE0NC43Ny0xNDQuNzdjMTkuOTgzLTE5Ljk4IDUyLjQyMS0xOS45OCA3Mi40MDQgMCAxOS45NjcgMTkuOTkgMTkuOTY3IDUyLjQxOCAwIDcyLjM4NWwtNTcuNDAzIDU3LjM4N2gyMTMuNTU1YzI4LjI2NSAwIDUxLjE3OSAyMi45NTcgNTEuMTc5IDUxLjE5MnYuMDI2Yy0uMDAzIDI4LjI5Ny0yMi45MTggNTEuMjAyLTUxLjE4MiA1MS4yMDJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6koCIgZ2x5cGgtbmFtZT0iZmxlY2hhLWxpbmsiIGQ9Ik03NDkuNzE0IDgxMy43MTRIMjc0LjI4NWMtMjUuMTQzIDAtNDYuNjY2LTguOTUyLTY0LjU3MS0yNi44NTctMTcuOTA0LTE3LjkwNS0yNi44NTctMzkuNDI5LTI2Ljg1Ny02NC41NzFWMjQ2Ljg1N2MwLTI1LjE0MyA4Ljk1My00Ni42NjYgMjYuODU3LTY0LjU3MSAxNy45MDUtMTcuOTA0IDM5LjQyOS0yNi44NTcgNjQuNTcxLTI2Ljg1N2g0NzUuNDI5YzI1LjE0MyAwIDQ2LjY2NyA4Ljk1MyA2NC41NzEgMjYuODU3czI2Ljg1NyAzOS40MjkgMjYuODU3IDY0LjU3MXY0NzUuNDI5YzAgMjUuMTQzLTguOTUyIDQ2LjY2Ny0yNi44NTcgNjQuNTcxcy0zOS40MjkgMjYuODU3LTY0LjU3MSAyNi44NTd6bTE2NC41NzItOTEuNDI4VjI0Ni44NTdjMC00NS4zMzMtMTYuMDk1LTg0LjA5NS00OC4yODYtMTE2LjI4NnMtNzAuOTUyLTQ4LjI4Ni0xMTYuMjg2LTQ4LjI4NkgyNzQuMjg1Yy00NS4zMzMgMC04NC4wOTUgMTYuMDk2LTExNi4yODYgNDguMjg2LTMyLjE5IDMyLjE5MS00OC4yODYgNzAuOTUzLTQ4LjI4NiAxMTYuMjg2djQ3NS40MjljMCA0NS4zMzQgMTYuMDk1IDg0LjA5NSA0OC4yODYgMTE2LjI4NnM3MC45NTMgNDguMjg2IDExNi4yODYgNDguMjg2aDQ3NS40MjljNDUuMzM0IDAgODQuMDk2LTE2LjA5NSAxMTYuMjg2LTQ4LjI4NiAzMi4xOTEtMzIuMTkgNDguMjg2LTcwLjk1MiA0OC4yODYtMTE2LjI4NnptLTE1Ni43MzItMzEuMDg3VjQ4Mi4wMzNjMC0yMC45MTctMTUuMjEyLTM2LjEzMS0zNi4xMjctMzYuMTMxLTIwLjkxNyAwLTM2LjEyOSAxNS4yMTQtMzYuMTI5IDM2LjEzMWwtLjk1IDEyMC43NDUtMjIyLjQ3Ny0yMjIuNDc5Yy0xNC4yNjEtMTQuMjYxLTM3LjA3OS0xNC4yNjEtNTEuMzQxIDAtMTQuMjYzIDE0LjI2My0xNC4yNjMgMzcuMDgtLjAwMiA1MS4zNDFsMjIyLjQ3NyAyMjIuNDgxSDUxMy4yMTFjLTIwLjkxNyAwLTM3LjA3OSAxNi4xNjItMzcuMDc5IDM3LjA3OSAwIDIwLjkxNSAxNS4yMTEgMzYuMTI5IDM2LjEyOCAzNi4xMjloMjA5LjE2N2M5LjUwNyAwIDE5LjAxNC0zLjgwNCAyNS42Ny0xMC40NTggNi42NTUtNi42NTYgMTAuNDU3LTE2LjE2NCAxMC40NTctMjUuNjcxeiIvPjxnbHlwaCB1bmljb2RlPSLupKEiIGdseXBoLW5hbWU9ImZsZWNoYXMtbW92ZXIiIGQ9Ik05NzIgNDgyTDgyNiA2MjhjLTE4IDE4LTQ0IDE4LTYwIDAtMTgtMTgtMTgtNDQgMC02Mmw3MC03Mkg1NTR2Mjg4bDcwLTcwYzgtOCAyMC0xMiAzMi0xMnMyMiA0IDMwIDEyYzE4IDE4IDE4IDQ0IDAgNjJMNTQyIDkxOGMtOCA4LTIwIDE0LTMyIDE0cy0yMi02LTMwLTE0TDMzNCA3NzRjLTE4LTE4LTE4LTQ0IDAtNjJzNDYtMTggNjIgMGw3MCA3MFY0OTRIMTg0bDcwIDcyYzE4IDE4IDE4IDQ0IDAgNjJzLTQ0IDE4LTYyIDBMNDggNDgyYy04LTgtMTQtMTgtMTQtMzBzNi0yNCAxNC0zMmwxNDQtMTQ2YzgtOCAyMC0xMiAzMi0xMnMyMiA2IDMwIDE0YzE4IDE4IDE4IDQyIDAgNjBsLTcwIDcyaDI4MlYxMjZsLTcwIDcwYy0xOCAxOC00NCAxNi02MiAwLTE4LTE4LTE4LTQ2IDAtNjJMNDgwLTEwYzgtOCAxOC0xNCAzMC0xNHMyNCA2IDMyIDE0bDE0NCAxNDRjMTggMTggMTggNDYgMCA2Mi0xOCAxOC00NiAxOC02MiAwbC03MC03MHYyODJoMjgybC03MC03MmMtMTgtMTgtMTgtNDIgMC02MCA4LTggMTgtMTQgMzAtMTRzMjIgNCAzMCAxMmwxNDYgMTQ2YzggOCAxMiAyMCAxMiAzMnMtNCAyMi0xMiAzMHoiLz48Z2x5cGggdW5pY29kZT0i7qSiIiBnbHlwaC1uYW1lPSJncHMiIGQ9Ik01MTEuOTY4IDk2MEMyMjkuNjU4IDk2MCAuMDA4IDczMC4zMTcuMDA4IDQ0OC4wMDkuMDA4IDE2NS42ODYgMjI5LjY1OC02NCA1MTEuOTY4LTY0YzI4Mi4zNDQgMCA1MTIuMDI1IDIyOS42ODYgNTEyLjAyNSA1MTIuMDA5QzEwMjMuOTkzIDczMC4zMTcgNzk0LjMxIDk2MCA1MTEuOTY4IDk2MHptMC05MzMuNjkxYy0yMzIuNDg5IDAtNDIxLjY1NCAxODkuMTgtNDIxLjY1NCA0MjEuNyAwIDIzMi41MjMgMTg5LjE2NSA0MjEuNjg3IDQyMS42NTQgNDIxLjY4NyAyMzIuNTU0IDAgNDIxLjcxNi0xODkuMTYyIDQyMS43MTYtNDIxLjY4NyAwLTIzMi41MjMtMTg5LjE2Mi00MjEuNy00MjEuNzE2LTQyMS43ek02OTUuNDU2IDY2OS4xNEwyNTAuNTE4IDQzMS44MzNjLTEzLjExOC03LjAwMi0yMC4wNjYtMjEuODA0LTE3LjA4Ny0zNi4zODEgMy4wMi0xNC41NjcgMTUuMjQ4LTI1LjQ0MSAzMC4wNjgtMjYuNzA0bDE2My4xNTctMTMuODM3IDEzLjgzNy0xNjMuMTcyYzEuMjQzLTE0LjgyIDEyLjEzLTI3LjA1IDI2LjY5Mi0zMC4wNTJhMzQuMDQgMzQuMDQgMCAwMTYuNzg2LS42ODZjMTIuMTk3IDAgMjMuNjc3IDYuNjkgMjkuNjA2IDE3Ljc3M0w3NDAuODY5IDYyMy43MWM2Ljk1MSAxMy4wNTMgNC41ODggMjkuMS01Ljg2NSAzOS41NDMtMTAuNDY2IDEwLjQ2MS0yNi41MDEgMTIuODU0LTM5LjU0NiA1Ljg4OHoiLz48Z2x5cGggdW5pY29kZT0i7qSjIiBnbHlwaC1uYW1lPSJncHMyIiBkPSJNOTczLjg1NSA0OTguMTUzaC01OC44OWMtMjAuMTg5IDE4Ni40MjUtMTY3LjI2IDMzNS4wNjMtMzUyLjc5NSAzNTguMDk1djUzLjU4YzAgMjcuNzI4LTIyLjQzMiA1MC4xNy01MC4xNyA1MC4xNy0yNy42NzMgMC01MC4xMzUtMjIuNDQyLTUwLjEzNS01MC4xN3YtNTMuNThjLTE4NS41NDEtMjMuMDMyLTMzMi42MTItMTcxLjY2Ny0zNTIuNzY2LTM1OC4wOTVoLTU4Ljg5QzIyLjQ2NSA0OTguMTUzIDAgNDc1LjcxMSAwIDQ0OC4wMThjMC0yNy43MjIgMjIuNDY1LTUwLjE2NiA1MC4yMTEtNTAuMTY2aDYwLjc2QzEzNi4zMTUgMjE3LjM3OCAyODAuNDk4IDc0LjgwNyA0NjEuODY3IDUyLjI5NXYtNjYuMTE0YzAtMjcuNzI0IDIyLjQ2NS01MC4xNzIgNTAuMTM1LTUwLjE3MiAyNy43MzggMCA1MC4xNyAyMi40NDggNTAuMTcgNTAuMTcydjY2LjExNGMxODEuMzMgMjIuNTEyIDMyNS41NTYgMTY1LjA4MyAzNTAuODUxIDM0NS41NTdoNjAuODM0YzI3LjcwOSAwIDUwLjE0NSAyMi40NDQgNTAuMTQ1IDUwLjE2Ni0uMDAyIDI3LjY5My0yMi40MzYgNTAuMTM1LTUwLjE0NyA1MC4xMzV6TTUxMiAxNDguMTYxYy0xNjguNzQ5IDAtMzA2LjA4OCAxMzcuMzI5LTMwNi4wODggMzA2LjEwNiAwIDE2OC43ODQgMTM3LjMzOSAzMDYuMTAyIDMwNi4wODggMzA2LjEwMiAxNjguODA4IDAgMzA2LjEyMy0xMzcuMzIgMzA2LjEyMy0zMDYuMTAyIDAtMTY4Ljc3Ni0xMzcuMzEyLTMwNi4xMDYtMzA2LjEyMy0zMDYuMTA2em0wIDQ3NC43NTVjLTkzLjEwMiAwLTE2OC42MjQtNzUuNTAyLTE2OC42MjQtMTY4LjY0NyAwLTkzLjEyMSA3NS41MTgtMTY4LjY0OSAxNjguNjI0LTE2OC42NDkgOTMuMTggMCAxNjguNjI0IDc1LjUyNiAxNjguNjI0IDE2OC42NDkgMCA5My4xNDMtNzUuNDQgMTY4LjY0Ny0xNjguNjI0IDE2OC42NDd6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kpCIgZ2x5cGgtbmFtZT0iZ3BzMyIgZD0iTTUxMS45NjUgOTYwQzIyOS42MjcgOTYwIDAgNzMwLjMwMyAwIDQ0OFMyMjkuNjI3LTY0IDUxMS45NjUtNjQgMTAyNCAxNjUuNjk3IDEwMjQgNDQ4IDc5NC4zMDMgOTYwIDUxMS45NjUgOTYwem0wLTkzNS4yNjNDMjc4LjUzMyAyNC43MzcgODguNzAyIDIxNC42MDMgODguNzAyIDQ0OHMxODkuODMxIDQyMy4yNjMgNDIzLjI2MyA0MjMuMjYzUzkzNS4yNjMgNjgxLjM5NyA5MzUuMjYzIDQ0OGMwLTIzMy4zOTctMTg5LjkzNi00MjMuMjYzLTQyMy4yOTgtNDIzLjI2M3pNNzkxLjIzMSA0NDhjMC0xNTQuMjI1LTEyNS4wNDItMjc5LjMwMS0yNzkuMjY2LTI3OS4zMDEtMTU0LjE5IDAtMjc5LjI2NiAxMjUuMDA3LTI3OS4yNjYgMjc5LjMwMSAwIDE1NC4yMjUgMTI1LjA3NiAyNzkuMzAxIDI3OS4yNjYgMjc5LjMwMSAxNTQuMjI1IDAgMjc5LjI2Ni0xMjUuMDc2IDI3OS4yNjYtMjc5LjMwMXoiLz48Z2x5cGggdW5pY29kZT0i7qSlIiBnbHlwaC1uYW1lPSJncHM0IiBkPSJNNTEyIDk2MEMyMjkuMjQ0IDk2MCAwIDczMC43NTYgMCA0NDhTMjI5LjI0NC02NCA1MTItNjRzNTEyIDIyOS4yNDQgNTEyIDUxMi0yMjkuMjQ0IDUxMi01MTIgNTEyem00OS41NDgtOTIxLjYzM1YxNTAuNzFjMCAyNy4zNTEtMjIuMTY1IDQ5LjU0OC00OS41NDggNDkuNTQ4cy00OS41NDgtMjIuMTk4LTQ5LjU0OC00OS41NDhWMzguMzY3QzI3NC4zNjYgNjAuOTk0IDEyNC45OTQgMjEwLjM5OSAxMDIuMzY3IDM5OC40NTJIMjE0LjcxYzI3LjM4NCAwIDQ5LjU0OCAyMi4xOTggNDkuNTQ4IDQ5LjU0OHMtMjIuMTY1IDQ5LjU0OC00OS41NDggNDkuNTQ4SDEwMi4zNjdjMjIuNjI3IDE4OC4wNTMgMTcxLjk5OSAzMzcuNDU4IDM2MC4wODUgMzYwLjA4NVY3NDUuMjljMC0yNy4zNTEgMjIuMTY1LTQ5LjU0OCA0OS41NDgtNDkuNTQ4czQ5LjU0OCAyMi4xOTggNDkuNTQ4IDQ5LjU0OHYxMTIuMzQzYzE4OC4wODYtMjIuNjI3IDMzNy40NTgtMTcyLjAzMiAzNjAuMDg1LTM2MC4wODVIODA5LjI5Yy0yNy4zODQgMC00OS41NDgtMjIuMTk4LTQ5LjU0OC00OS41NDhzMjIuMTY1LTQ5LjU0OCA0OS41NDgtNDkuNTQ4aDExMi4zNDNDODk5LjAwNiAyMTAuMzk5IDc0OS42MzQgNjAuOTk0IDU2MS41NDggMzguMzY3eiIvPjxnbHlwaCB1bmljb2RlPSLupKYiIGdseXBoLW5hbWU9Imd1YXJkYXIiIGQ9Ik0xMDEwLjY2NyA2NzcuMzQ0Yy04Ljg4NyAyMS4zMjQtMTkuNTYxIDM4LjIxOC0zMi4wMTEgNTAuNjU5TDc5MS45ODkgOTE0LjY3MmMtMTIuNDM0IDEyLjQzNC0yOS4zMjggMjMuMTA1LTUwLjY2MSAzMi0yMS4zMjEgOC44ODUtNDAuODgyIDEzLjMyOS01OC42NTcgMTMuMzI5SDY0LjAwMmMtMTcuNzcyIDAtMzIuODg3LTYuMjE4LTQ1LjMzMy0xOC42NjRDNi4yMjMgOTI4Ljg5OC4wMDcgOTEzLjc4Ni4wMDcgODk2LjAwNFYtLjAwMmMwLTE3Ljc4NiA2LjIxNi0zMi44OTkgMTguNjYyLTQ1LjM0QzMxLjExNS01Ny43NzYgNDYuMjMtNjQuMDAxIDY0LjAwMi02NC4wMDFoODk2LjAwNGMxNy43ODggMCAzMi44OTkgNi4yMjUgNDUuMzQgMTguNjU5IDEyLjQzNCAxMi40NDEgMTguNjUgMjcuNTU0IDE4LjY1IDQ1LjM0djYxOC42NjljMCAxNy43ODQtNC40NDEgMzcuMzM4LTEzLjMyOSA1OC42Nzh6TTQyNi42NzMgODUzLjM0MmMwIDUuNzc3IDIuMTEzIDEwLjc2NyA2LjMzNyAxNC45OTggNC4yMTkgNC4yMTIgOS4yMjEgNi4zMjMgMTQuOTk4IDYuMzIzaDEyOC4wMDZjNS43NjMgMCAxMC43NjItMi4xMDYgMTQuOTg0LTYuMzIzIDQuMjMzLTQuMjMxIDYuMzQ0LTkuMjIxIDYuMzQ0LTE0Ljk5OFY2NDAuMDA2YzAtNS43ODYtMi4xMjUtMTAuNzgzLTYuMzQ0LTE1LjAwNy00LjIyMi00LjIxLTkuMjIxLTYuMzIzLTE0Ljk4NC02LjMyM0g0NDguMDA4Yy01Ljc3NyAwLTEwLjc4MSAyLjEwNi0xNC45OTggNi4zMjMtNC4yMjQgNC4yMzEtNi4zMzcgOS4yMjEtNi4zMzcgMTUuMDA3djIxMy4zMzZ6TTc2OC4wMTUgMjEuMzI4SDI1NnYyNTYuMDA2aDUxMi4wMTVWMjEuMzI4em0xNzAuNjc4IDBoLTg1LjM2N1YyOTguNjdjMCAxNy43ODYtNi4yMTggMzIuODg5LTE4LjY1OSA0NS4zNC0xMi40NDEgMTIuNDQxLTI3LjU1NCAxOC42NjYtNDUuMzIzIDE4LjY2NkgyMzQuNjdjLTE3Ljc3OSAwLTMyLjg5NC02LjIyNS00NS4zNC0xOC42NjYtMTIuNDM5LTEyLjQ0MS0xOC42NjItMjcuNTU0LTE4LjY2Mi00NS4zNFYyMS4zMjhIODUuMzMzdjg1My4zNDVoODUuMzMyVjU5Ny4zMzZjMC0xNy43ODEgNi4yMTYtMzIuODg3IDE4LjY2Mi00NS4zMzMgMTIuNDQ2LTEyLjQzOSAyNy41NjEtMTguNjY0IDQ1LjM0LTE4LjY2NGgzODQuMDE0YzE3Ljc3IDAgMzIuODk5IDYuMjI1IDQ1LjMyMyAxOC42NjQgMTIuNDM0IDEyLjQzOSAxOC42NjYgMjcuNTUxIDE4LjY2NiA0NS4zMzN2Mjc3LjMzN2M2LjY2NCAwIDE1LjMyNS0yLjIxOCAyNi4wMDMtNi42NjIgMTAuNjc2LTQuNDQxIDE4LjIyNy04Ljg4NSAyMi42NzEtMTMuMzI5TDkxOC42OSA2NjcuMzRjNC40NDEtNC40NDQgOC44ODctMTIuMTE5IDEzLjMyOS0yMy4wMDMgNC40NTgtMTAuODkzIDYuNjcxLTE5LjQ1MSA2LjY3MS0yNS42NzJWMjEuMzI3eiIvPjxnbHlwaCB1bmljb2RlPSLupKciIGdseXBoLW5hbWU9ImhlcnJhbWllbnRhIiBkPSJNOTkxLjk5NyA3MDIuMTUyYTU1LjM0NiA1NS4zNDYgMCAwMS00MC4yOTIgMzIuNTQ3IDU1LjE4MiA1NS4xODIgMCAwMS0xMC40NjUuOTkyIDU1LjE5IDU1LjE5IDAgMDEtMzkuMDQ0LTE2LjE2MmwtMTcwLjgtMTcwLjhhMTUuOTQgMTUuOTQgMCAwMC0xMS4yOTctNC42NzJjLTQuNDQ4IDAtOC40NDkgMS44MjQtMTEuMzI5IDQuNjcybC05Ni4wMDkgOTYuMDA5YTE1LjkzOCAxNS45MzggMCAwMC00LjY3MiAxMS4zMjljMCA0LjQ0OCAxLjc5MiA4LjQ0OSA0LjY3MiAxMS4zMjlsMTcwLjggMTcwLjhhNTUuMjIgNTUuMjIgMCAwMTE1LjE2OSA0OS41NDFjLTMuNDU2IDE3Ljk4Ni0xNS42NDkgMzMuMDI3LTMyLjQ4MyA0MC4yNkM3MTYuNDUgOTQ5LjI0NyA2NjQuMTg5IDk2MCA2MTMuMDE3IDk2MGMtODYuMzc2IDAtMTY5LjQ4OC0zMC42MjctMjMxLjg2Mi05Mi45NjktNjEuMTI2LTYxLjE1OC05MS45NDUtMTQyLjMxNy05My4wNjUtMjI2Ljk2NS0uNTc2LTQxLjQ0NCA2LjE3Ny04My42ODggMTkuNjUtMTI0LjgxMkwxOC43ODUgMjI2LjI5OUM0Ljk5MiAyMTIuNTM4LTEuMTg1IDE5NC4wNzIuMjIzIDE3Ni4wODZjMS4xNTItMTQuNjU3IDcuMzI5LTI5LjAyNyAxOC41NjItNDAuMjkyTDE5OS43OTQtNDUuMjE1YzEyLjUxMy0xMi41MTMgMjguODY3LTE4Ljc1NCA0NS4yNTItMTguNzU0czMyLjczOSA2LjI0MSA0NS4yNTIgMTguNzU0TDU3OS4yODUgMjQzLjc0YzM5LjU1Ni0xMi45MjkgODAuMTM2LTE5LjQ1OCAxMjAuMDQzLTE5LjQ1OCA4Ni4zMTIgMCAxNjkuMzkyIDMwLjU2MyAyMzEuNzM0IDkyLjkwNSA5OS4yNDEgOTkuMjQxIDExOC4wOTEgMjUxLjE2IDYwLjkzNCAzODQuOTY0ek04NjMuMTg1IDM4NS4wMzRjLTQxLjc5Ni00MS43OTYtOTkuOTc3LTY0Ljc3NC0xNjMuODU1LTY0Ljc3NC0zMC4wMTkgMC02MC4zNTggNC45Ni05MC4xODQgMTQuNzIxYTk1LjkzNCA5NS45MzQgMCAwMS0yOS44NTkgNC43MzZjLTI1LjA1OCAwLTQ5LjYwNS05LjgyNS02Ny44NzgtMjguMTMxTDI0NS4wNDggNDUuMjU3IDEwOS4yOTEgMTgxLjAxNCAzNzUuNjIgNDQ3LjM0M2MyNS41NyAyNS41NyAzNC41OTUgNjMuMzAyIDIzLjM2MiA5Ny43MDUtMTAuNDAxIDMxLjg0My0xNS41MjEgNjQuMDA2LTE0LjkxMyA5NS4wMTcgMS4yNDggNjEuMjU0IDIzLjg3NCAxMTcuOTMxIDY0LjkzNCAxNTkuMDU1IDQxLjg2IDQxLjgyOCAxMDAuMDczIDY0Ljg3IDE2NC4wMTUgNjQuODcgMTguMTQ2IDAgMzYuNjc1LTEuODg4IDU1LjA3Ny01LjUzN0w1NDUuMjk5IDczNS42MjVjLTIxLjQxLTIxLjE1NC0zMy4xODctNDkuNDEzLTMzLjE4Ny03OS41NTkgMC0yOS45MjMgMTEuNjQ5LTU4LjAyMSAzMi44MDMtNzkuMjA3bDk2LjAwOS05Ni4wMDljMjEuMTU0LTIxLjE1NCA0OS4yODUtMzIuODAzIDc5LjIwNy0zMi44MDNzNTguMDIxIDExLjY0OSA3OS4yMDcgMzIuODAzbDEyMy4xOCAxMjMuMThjMTYuMzU0LTgyLjY5Ni00LjY0LTE2NC4yNzEtNTkuMzM0LTIxOC45OTd6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kqCIgZ2x5cGgtbmFtZT0iaW1wcmVzb3JhIiBkPSJNOTc2IDc3OEg3NTR2MTMyYzAgMTQtMTQgMjgtMjggMjhIMjk0Yy0xNCAwLTI4LTE0LTI4LTI4Vjc3OEg0NGMtMjQgMC00NC0yMC00NC00NFYyMjZjMC0yNCAyMC00MiA0NC00MmgxNjhMMTg2IDhjLTQtMjAgMTQtMzggMzItMzhoNTg0YzE4IDAgMzIgMTYgMzIgMzR2OGwtMjggMTcyaDE3MGMyNCAwIDQ0IDE4IDQ0IDQydjUwOGMwIDI0LTIwIDQ0LTQ0IDQ0em0tNjM4IDg2aDM0NHYtODZIMzM4djg2ek0yNzIgNTJsNDQgMjU2aDM4OGw0NC0yNTZIMjcyem02NjIgMjE4SDc5NGwtMTQgOTJjLTIgMTYtMTYgMjgtMzIgMjhIMjcyYy0xNiAwLTMwLTEyLTMyLTI4bC0xNC05Mkg4NnY0MjJoODQ4VjI3MHpNMjE3LjY0NiA1MzYuNzA0aDE0MC43MDhjMjQuMzU0IDAgNDMuMjk0IDE4Ljk0IDQzLjI5NCA0My4yOTQgMCAyNC4zNTItMTguOTQyIDQzLjI5NC00My4yOTQgNDMuMjk0SDIxNy42NDZjLTI0LjM1NCAwLTQzLjI5NC0xOC45NDItNDMuMjk0LTQzLjI5NC0uMDAyLTI0LjM1MiAxOC45NC00My4yOTQgNDMuMjk0LTQzLjI5NHoiLz48Z2x5cGggdW5pY29kZT0i7qSpIiBnbHlwaC1uYW1lPSJpbmZvIiBkPSJNNTEyIDcwNGMtMzUuMzI4IDAtNjQtMjguNjcyLTY0LTY0czI4LjY3Mi02NCA2NC02NCA2NCAyOC42NCA2NCA2NC0yOC42NCA2NC02NCA2NHptMC0xOTJjLTM1LjMyOCAwLTY0LTI4LjY0LTY0LTY0VjI1NmMwLTM1LjMyOCAyOC42NzItNjQgNjQtNjRzNjQgMjguNjcyIDY0IDY0djE5MmMwIDM1LjMyOC0yOC42NCA2NC02NCA2NHptMCA0NDhDMjI5LjY5NiA5NjAgMCA3MzAuMzA0IDAgNDQ4UzIyOS42OTYtNjQgNTEyLTY0czUxMiAyMjkuNjk2IDUxMiA1MTItMjI5LjY5NiA1MTItNTEyIDUxMnptMC05MjhDMjgyLjU5MiAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNTkyIDQxNiA0MTYgNDE2YzIyOS4zNzYgMCA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyeiIvPjxnbHlwaCB1bmljb2RlPSLupKoiIGdseXBoLW5hbWU9ImxpbmVhIiBkPSJNOTM5Ljg1MyA4ODEuMzA1Yy00Ny41NSA0Ny43MTYtMTI0LjgxNSA0Ny43NzMtMTcyLjQ4OS4xNjItMzUuMDUzLTM0Ljk0Mi00NC4xNDEtODUuODI3LTI3Ljc2NS0xMjkuMzMzbC01MTguNDQ1LTUxOC4xYy00My40NDcgMTYuNDQ4LTk0LjM3MSA3LjQ1LTEyOS40MDMtMjcuNS00Ny42OTItNDcuNTk4LTQ3Ljc3Ni0xMjQuODIxLS4xOTUtMTcyLjUwMSA0Ny42MTMtNDcuNzA0IDEyNC44MzYtNDcuNzk3IDE3Mi41MS0uMTc3IDM1LjA2NSAzNC45NDggNDQuMTY4IDg1Ljg0OCAyNy43OTIgMTI5LjMzM2w1MTguNDMzIDUxOC4xMDljNDMuNDUtMTYuNDY2IDk0LjM2Mi03LjQ3MSAxMjkuMzkxIDI3LjUwNiA0Ny43MjUgNDcuNTggNDcuNzg4IDEyNC44MjcuMTcxIDE3Mi41MDF6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kqyIgZ2x5cGgtbmFtZT0ibGluZWFzIiBkPSJNNjY5LjE2OCAyNTAuNjMyYy01My4zMTIgMTkuNjY4LTExMC43MjkgNC42MDYtMTQ4LjE0Ni0zMy40M2wtMjQxLjUxMyA4OC45OTdjLTMuNzgyIDUzLjE5OC0zNy42OTkgMTAxLjkwOC05MS4wMTUgMTIxLjU1Ny03Mi41OTMgMjYuNzU2LTE1My4wODYtMTAuMzg5LTE3OS44MTEtODIuOTY1LTI2Ljc1OC03Mi41OTMgMTAuMzg3LTE1My4xMDIgODIuOTgxLTE3OS44MTMgNTMuMzMxLTE5LjY2NiAxMTAuNzE0LTQuNjIxIDE0OC4xMyAzMy40MTVsMjQxLjUxMy04OS4wMTRjMy43OTgtNTMuMjE0IDM3LjczMi0xMDEuOTA2IDkxLjA0Ni0xMjEuNTM4IDcyLjU2MS0yNi43NzUgMTUzLjA2OSAxMC40MDUgMTc5Ljc5NiA4Mi45ODEgMjYuNzczIDcyLjU3Ni0xMC40MDUgMTUzLjA2OS04Mi45ODEgMTc5LjgwOXptMzMwLjA1NCA2MDUuNjRjLTQzLjg1IDYzLjcwMS0xMzEuMDgyIDc5LjcxOC0xOTQuNzUxIDM1LjgtNDYuNzk0LTMyLjIyMi02Ny41NjgtODcuODA0LTU4LjA1Ni0xNDAuMzE1TDUzNC40ODggNjA1LjY4MmMtNDUuNjY4IDI3LjU0Ny0xMDUuMDM0IDI3Ljg5OS0xNTEuODA3LTQuMzM4LTYzLjY4Ni00My45MDItNzkuNzIzLTEzMS4wODYtMzUuODM3LTE5NC43NTQgNDMuOTE5LTYzLjcwMyAxMzEuMTAyLTc5Ljc1NCAxOTQuNzcyLTM1LjgxOCA0Ni44MDkgMzIuMjIyIDY3LjU5NyA4Ny44MjMgNTguMDg1IDE0MC4zMTNsMjExLjkxNiAxNDYuMDc5YzQ1LjY2OC0yNy41NjYgMTA1LjAxNy0yNy45MiAxNTEuNzkzIDQuMzUyIDYzLjcxNiA0My44NzEgNzkuNzM1IDEzMS4wODggMzUuODEyIDE5NC43NTZ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6krCIgZ2x5cGgtbmFtZT0ibGlzdGEiIGQ9Ik05OS4wOTcgODExLjM1NEM0NC4zNjIgODExLjM1NCAwIDc2Ni45OTIgMCA3MTIuMjU5czQ0LjM2Mi05OS4wOTcgOTkuMDk3LTk5LjA5NyA5OS4wOTcgNDQuMzYzIDk5LjA5NyA5OS4wOTctNDQuMzYzIDk5LjA5NS05OS4wOTcgOTkuMDk1em0wLTI2NC4yNTdDNDQuMzYyIDU0Ny4wOTcgMCA1MDIuNzM0IDAgNDQ4YzAtNTQuNzM1IDQ0LjM2Mi05OS4wOTcgOTkuMDk3LTk5LjA5N3M5OS4wOTcgNDQuMzYyIDk5LjA5NyA5OS4wOTdjMCA1NC43MzQtNDQuMzYzIDk5LjA5Ny05OS4wOTcgOTkuMDk3em0wLTI2NC4yNTlDNDQuMzYyIDI4Mi44MzggMCAyMzguNDc2IDAgMTgzLjc0MXM0NC4zNjItOTkuMDk3IDk5LjA5Ny05OS4wOTcgOTkuMDk3IDQ0LjM2MyA5OS4wOTcgOTkuMDk3YzAgNTQuNzM1LTQ0LjM2MyA5OS4wOTctOTkuMDk3IDk5LjA5N3ptMjMxLjIyNSAzNjMuMzU2aDYyNy42MTJjMzYuNTAxIDAgNjYuMDY1IDI5LjU2NCA2Ni4wNjUgNjYuMDY1cy0yOS41NjQgNjYuMDY1LTY2LjA2NSA2Ni4wNjVIMzMwLjMyMmMtMzYuNTAxIDAtNjYuMDY1LTI5LjU2NC02Ni4wNjUtNjYuMDY1czI5LjU2NC02Ni4wNjUgNjYuMDY1LTY2LjA2NXptNjI3LjYxMy0xMzIuMTI5SDMzMC4zMjJjLTM2LjUwMSAwLTY2LjA2NS0yOS41NjQtNjYuMDY1LTY2LjA2NSAwLTM2LjQ5OSAyOS41NjQtNjYuMDY1IDY2LjA2NS02Ni4wNjVoNjI3LjYxMmMzNi41MDEgMCA2Ni4wNjUgMjkuNTY1IDY2LjA2NSA2Ni4wNjUuMDAyIDM2LjUwMS0yOS41NjIgNjYuMDY1LTY2LjA2MyA2Ni4wNjV6bTAtMjY0LjI1OEgzMzAuMzIyYy0zNi41MDEgMC02Ni4wNjUtMjkuNTY1LTY2LjA2NS02Ni4wNjVzMjkuNTY0LTY2LjA2MyA2Ni4wNjUtNjYuMDYzaDYyNy42MTJjMzYuNTAxIDAgNjYuMDY1IDI5LjU2NCA2Ni4wNjUgNjYuMDYzcy0yOS41NjIgNjYuMDY1LTY2LjA2MyA2Ni4wNjV6Ii8+PGdseXBoIHVuaWNvZGU9Iu6krSIgZ2x5cGgtbmFtZT0ibG9jYWxpemFjaW9uIiBkPSJNNDE3Ljg4MSAyOTcuODE4bDIzLjc0Ny01OS4zODNjLTIyLjk5Ny05LjE4OS00NS45MzMtMTYuMTkxLTY4LjMxLTIwLjg3MmwtMTMuMDY2IDYyLjYxNGMxOC43NTMgMy45NTMgMzguMTI3IDkuODgxIDU3LjYyOSAxNy42NDF6bS0xOTAuNDQtNzYuNjk3YzIzLjQzNi02Ljc0NyA0OC4xMy0xMC4zNzMgNzMuMzc1LTEwLjc0NmwxLjAwNSA2My45OTJjLTE5LjYyOS4zMjMtMzguNjkgMy4wNjItNTYuNjg4IDguMjQzbC0xNy42OTItNjEuNDg5em01MDMuOTMyIDExMS42OTRjMTguNDQ3LTMuNjM2IDM2LjQ0My05Ljk0OSA1My41MDQtMTguNzU1bDI5LjM5MiA1Ni44NzJjLTIyLjUwOCAxMS41NjMtNDYuMTk1IDE5Ljg3Ni03MC41MTQgMjQuNjMzbC0xMi4zODItNjIuNzQ5em0tMTMzLjUwMiA1Mi40OTdsMTkuMTM3LTYwLjk5OGMxOS41NTEgNi4xMjcgMzguODc2IDkuOTk3IDU3LjQ5IDExLjQ5NWwtNS4xMTEgNjMuNzU0Yy0yMy4zODEtMS44OC00Ny40NDQtNi42OTYtNzEuNTE2LTE0LjI1MnptLTEwMi43NDItNDguMTI2Yy03LjE4NC00LjUwMi0xNC4yNTItOC42MTctMjEuMTkxLTEyLjQ5OGwzMS4xMjktNTUuODg2YzcuODExIDQuMzk0IDE1LjgwOSA5LjAwMyAyMy44MDYgMTQuMDA3IDExLjAwNCA2LjgxNSAyMS43NTggMTIuODgyIDMyLjMxNyAxOC4yNjJsLTI5LjA2NyA1Ni45OWE1MTkgNTE5IDAgMDEtMzYuOTk0LTIwLjg3NHptMTc2Ljg3OSAzOTguODEzYzAtMjYuMTI1LTYuMjY0LTUwLjg3Ni0xNy4zODQtNzIuNjNMNTEyLjAwMyAzODQuMDAzUzM2OC4yNTMgNjY1LjY5IDM2Ny42OTIgNjY2Ljg3Yy0xMC4wNjcgMjAuODc2LTE1LjY4NSA0NC4zNzgtMTUuNjg1IDY5LjEyOSAwIDg4LjM3NCA3MS42MjIgMTYwIDE1OS45OTYgMTYwIDg4LjM2OCAwIDE2MC4wMDQtNzEuNjI2IDE2MC4wMDQtMTYwem0tNjQgMGMwIDUzLjAwMS00My4wMDQgOTYuMDAzLTk2LjAwMyA5Ni4wMDMtNTMuMDAxIDAtOTYuMDAzLTQzLjAwMi05Ni4wMDMtOTYuMDAzIDAtNTIuOTk1IDQzLjAwMi05NS45OTcgOTYuMDAzLTk1Ljk5NyA1Mi45OTkgMCA5Ni4wMDMgNDMuMDAyIDk2LjAwMyA5NS45OTd6bTIyMy45OTYtMTYwSDY4MS44ODdsLTMyLjcwMS02NC4wMDNoMTM2LjY5Mmw2OS4wNjYtMjA3LjI1NC0yMi4wNjItMjQuMzc4YzIzLjUwMi0yMS4yMzUgMzUuNjg1LTQwLjgwNyAzNS43NTMtNDAuODc1bDYuNzQ3IDQuMDU4TDkzNS4xOTggNjRIODguNzVsNjQuMTMgMTkyLjE4MmMyLjI1LTEuNTY0IDMuOTk1LTMuMDYyIDYuNDk2LTQuNjE4bDM0LjAwNSA1NC4xMjRjLTcuNjI3IDQuODE2LTEzLjg3OCA5LjU2NC0xOS4zOCAxMy45OTZsNjQuMTMyIDE5Mi4zMTNoMTM2Ljc0NUEzNTQ5Ny44NCAzNTQ5Ny44NCAwIDAwMzQyLjE5MiA1NzZIMTkyLjAwNEwuMDAyLS4wMDNoMTAyNC4wMDJMODMyLjAwNiA1NzUuOTk4eiIvPjxnbHlwaCB1bmljb2RlPSLupK4iIGdseXBoLW5hbWU9ImxvY2FsaXphY2lvbjIiIGQ9Ik04MzIgODY0Yy04OC4zNzYgMC0xNjAtNzEuNjI2LTE2MC0xNjAgMC0yMy44NzYgNS4yNS00Ni41NjIgMTQuNjI0LTY2Ljg3Nkw4MzIgMzUybDE0NS4zNzYgMjg1LjEyNkM5ODYuNzUgNjU3LjQzOCA5OTIgNjgwLjEyNCA5OTIgNzA0YzAgODguMzc0LTcxLjYyNCAxNjAtMTYwIDE2MHptMC0yNTZjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTYgOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZ6bTQ3Ljg3Ni0zMDIuOTM4bDU4LjI1LTExNi40MzgtMTQ3LjY4OC03My44MTItNDkuNSAyNDcuNjI0IDkuMTg4IDkuMTg4LTMwLjUgNjBMNzA0IDQxNiA1MTIgNTQ0IDMyMCA0MTYgMTkyIDU0NCAwIDE2MCAyNTYgMzJsMjU2IDEyOEw3NjggMzJsMjU2IDEyOC0xMDggMjE1LjkzOC0zNi4xMjQtNzAuODc2ek0yMzMuNSAxMTQuODEyTDg1Ljg3NCAxODguNjI0IDIwOS41IDQzNmw3My41NjItNzMuNTYyTDIzMy41IDExNC44MTJ6TTQ4MCAyMTUuNTYybC0xNzktODkuNSA0Ni4yNSAyMzEuMTg4TDQ4MCA0NDUuNzVWMjE1LjU2MnptNjQgMFY0NDUuNzVsMTMyLjY4OC04OC41IDQ2LjI1LTIzMS4xODhMNTQ0IDIxNS41NjJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kryIgZ2x5cGgtbmFtZT0ibG9jYWxpemFjaW9uMyIgZD0iTTk0MS45MDUgNjQ4LjIzOWMtMTEuNzg2LTIyLjc2Ny0yNS40MTEtNDUuODQzLTM5Ljc3My02OC4zMDVsLTUuNzAzLTguODM0Yy0xMi4wOTItMTguNTM5LTI0LjU4My0zNi41NjEtMzYuODQtNTMuNTQgNDcuMTI2LTI5LjA2NSA3My4zODgtNjIuNzcgNzMuMzg4LTk1LjYyOSAwLTQxLjMyMi00MS40OTEtODMuOTkyLTExMy44MzktMTE3LjA3MS0yMy43NTUtMTAuODYxLTQ5LjkwOS0yMC4yNTMtNzcuODUtMjguMTc4IDUuNDUgMzYuNjY4IDguODI0IDc0Ljg3NSAxMC4wMTYgMTEzLjk1Ni0yLjc1Ny0uNzUtNS42MDktMS4xODUtOC41MjYtMS4xODVhMzIuNDc2IDMyLjQ3NiAwIDAwLTI0LjUxMSAxMS4xNzJjLTQuNDY5IDUuMTQxLTE2LjAyNSAxOC41ODEtMzEuNTgyIDM3Ljc0OS4wOTEtNS40NjkuMTc1LTEwLjk0Mi4xNzUtMTYuNDQ0IDAtNTYuMTQ4LTQuODA3LTExMC41Mi0xMy45MS0xNjAuOTQ5LTUwLjQyNi05LjEtMTA0Ljc5Ny0xMy45MS0xNjAuOTQyLTEzLjkxLTU2LjE1NSAwLTExMC41MyA0LjgwNy0xNjAuOTY1IDEzLjkxLTkuMSA1MC40MjktMTMuOTA3IDEwNC44LTEzLjkwNyAxNjAuOTQ5czQuODA3IDExMC41MiAxMy45MDcgMTYwLjk0OWM1MC40MzIgOS4xIDEwNC44MSAxMy45MSAxNjAuOTY1IDEzLjkxIDIwLjk4MSAwIDQxLjcxMi0uNjcyIDYyLjA4Mi0xLjk4OC0xMy42MjUgMjIuMDk4LTI2LjMxNyA0NC41ODMtMzcuMDY0IDY2LjYwMy04LjMwOC4yMDUtMTYuNjM5LjM0MS0yNS4wMTguMzQxLTUwLjAwMyAwLTk4Ljg1Ny0zLjYzOC0xNDUuMjY1LTEwLjUzMyA3LjkyMSAyNy45NDQgMTcuMzE3IDU0LjA5OSAyOC4xNzggNzcuODUzQzQyOCA4MDEuNDA3IDQ3MC42NyA4NDIuOTAxIDUxMS45OTIgODQyLjkwNGguMDFjLjc5NiAwIDEuNTk1LS4wNDUgMi4zOTQtLjA3NWEyMzguMDA0IDIzOC4wMDQgMCAwMDMwLjUzMyA2My44OTFjLTEwLjg4My43MzEtMjEuODU1IDEuMTQtMzIuOTIzIDEuMTRINTExLjk4N2MtMjY3LjkzNS0uMDEtNDg1LjkxOC0yMTcuOTkzLTQ4NS45MTgtNDg1LjkzMVMyNDQuMDQ5LTYzLjk5MyA1MTEuOTkxLTY0LjAwMkg1MTIuMDFjMjY3LjkzOCAwIDQ4NS45MjIgMjE3Ljk4NyA0ODUuOTIyIDQ4NS45MzEuMDAzIDgxLjY3LTIwLjI4MyAxNTguNjgyLTU2LjAyNSAyMjYuMzA4ek0zNzAuODE5IDgxOC41MjJjLTEyLjU2Ni0xOC4yMjctMjQuMjgxLTM5LjA2NS0zNC45NzItNjIuNDQ2LTE2LjE4MS0zNS4zOTUtMjkuNDQ4LTc1LjMyMy0zOS42NDYtMTE4LjM1NC00My4wMjQtMTAuMTk4LTgyLjk1Mi0yMy40NjItMTE4LjM0Ny0zOS42NDMtMjMuMzgxLTEwLjY5Mi00NC4yMjUtMjIuNDA3LTYyLjQ1Mi0zNC45NzYgNDIuMzk3IDExOC43NCAxMzYuNjc4IDIxMy4wMjEgMjU1LjQxOCAyNTUuNDE4ek0yMDQuODY2IDUzOS4wMDVjMjMuNzU1IDEwLjg2MSA0OS45MDYgMjAuMjUgNzcuODQ3IDI4LjE3NS02Ljg5NS00Ni40MDItMTAuNTI5LTk1LjI0OS0xMC41MjktMTQ1LjI0OXMzLjYzNC05OC44NDQgMTAuNTI5LTE0NS4yNDVjLTI3Ljk0MSA3LjkyMS01NC4wOTIgMTcuMzE0LTc3Ljg0NCAyOC4xNzUtNzIuMzQ4IDMzLjA4Mi0xMTMuODQyIDc1Ljc1Mi0xMTMuODQyIDExNy4wNzEtLjAwMyA0MS4zMjIgNDEuNDkxIDgzLjk5NSAxMTMuODM5IDExNy4wNzR6bS04OS40NjUtMjU4LjI0M2MxOC4yMjctMTIuNTY2IDM5LjA3MS0yNC4yODQgNjIuNDUyLTM0Ljk3NiAzNS4zOTEtMTYuMTgxIDc1LjMyLTI5LjQ0OCAxMTguMzQ3LTM5LjY0NiAxMC4xOTgtNDMuMDI3IDIzLjQ2NS04Mi45NTkgMzkuNjQ2LTExOC4zNTQgMTAuNjkyLTIzLjM4MSAyMi40MDctNDQuMjE5IDM0Ljk3Mi02Mi40NDZDMjUyLjA3OCA2Ny43MzcgMTU3Ljc5NCAxNjIuMDIxIDExNS40IDI4MC43NjF6TTUxMi4wMDIuOTU2aC0uMDFDNDcwLjY3Ljk1OSA0MjggNDIuNDUzIDM5NC45MjEgMTE0Ljc5NWMtMTAuODYxIDIzLjc1NS0yMC4yNTMgNDkuOTA5LTI4LjE3OCA3Ny44NTMgNDYuNDA4LTYuODk1IDk1LjI1OC0xMC41MzMgMTQ1LjI2NS0xMC41MzMgNDkuOTk3IDAgOTguODQxIDMuNjM0IDE0NS4yMzkgMTAuNTI5LTcuOTIxLTI3Ljk0NC0xNy4zMTctNTQuMDk2LTI4LjE3OC03Ny44NUM1OTUuOTkzIDQyLjQ0OSA1NTMuMzIuOTU1IDUxMi4wMDIuOTU1em0xNDEuMTY2IDI0LjM3NWMxMi41NjYgMTguMjI3IDI0LjI4NyAzOS4wNzEgMzQuOTc5IDYyLjQ1NSAxNi4xODQgMzUuMzk1IDI5LjQ1MSA3NS4zMjMgMzkuNjQ5IDExOC4zNTQgNDMuMDI3IDEwLjE5NSA4Mi45NTkgMjMuNDY1IDExOC4zNTQgMzkuNjQ2IDIzLjM4MSAxMC42OTIgNDQuMjIyIDIyLjQwNyA2Mi40NDkgMzQuOTc2LTQyLjM5Ny0xMTguNzUtMTM2LjY4NC0yMTMuMDM3LTI1NS40MzEtMjU1LjQzMXptOTAuNjkyIDQzMi4yMjZhOS43NCA5Ljc0IDAgMDE3LjUzMiAzLjU2M2MyOS45MzggMzYuNDczIDE3OS4yNzkgMjIyLjkzIDE3OS4yNzkgMzEyLjA3NiAwIDEwMy4wMDQtODMuODAzIDE4Ni44MDUtMTg2LjgwOCAxODYuODA1cy0xODYuODA1LTgzLjgtMTg2LjgwNS0xODYuODA1YzAtODkuMTgyIDE0OS4zMzQtMjc1LjYxMyAxNzkuMjctMzEyLjA3NmE5Ljc0IDkuNzQgMCAwMTcuNTMyLTMuNTYzek02NDMuMTgxIDc4NC4wNjljMCA1NS41MTUgNDUuMTY3IDEwMC42ODIgMTAwLjY4MiAxMDAuNjgyczEwMC42ODItNDUuMTY3IDEwMC42ODItMTAwLjY4Mi00NS4xNjctMTAwLjY4Mi0xMDAuNjgyLTEwMC42ODItMTAwLjY4MiA0NS4xNjQtMTAwLjY4MiAxMDAuNjgyeiIvPjxnbHlwaCB1bmljb2RlPSLupLAiIGdseXBoLW5hbWU9ImxvY2FsaXphY2lvbjQiIGQ9Ik04OTYuMDAzIDMyMC4wMDFINzY4VjQ0OGgxMjguMDAzVjMyMC4wMDF6TTY3Mi4wMDggNzk5Ljk5N2MwLTIzLjg3NS01LjI1OS00Ni41NjQtMTQuNjI3LTY2Ljg3N0w1MTIuMDAzIDQ0OC4wMDMgMzY2LjYyNSA3MzMuMTI5Yy05LjM3MiAyMC4zMDQtMTQuNjE3IDQyLjk5My0xNC42MTcgNjYuODY5IDAgODguMzc4IDcxLjYyMSAxNjAuMDAzIDE1OS45OTUgMTYwLjAwMyA4OC4zNyAwIDE2MC4wMDYtNzEuNjMgMTYwLjAwNi0xNjAuMDAzem0tNjQuMDAxIDBjMCA1Mi45OTktNDMuMDA0IDk2LjAwMy05Ni4wMDMgOTYuMDAzLTUzLjAwMSAwLTk2LjAwMy00My4wMDItOTYuMDAzLTk2LjAwM3M0My4wMDItOTUuOTk5IDk2LjAwMy05NS45OTljNTIuOTk5IDAgOTYuMDAzIDQyLjk5OCA5Ni4wMDMgOTUuOTk5ek0xMDI0IDcwMy45OThWNjQuMDAzQzEwMjQtNi42OTYgOTY2LjY4NS02NCA4OTYuMDA1LTY0SDEyOC4wMDFDNTcuMzE3LTY0IC4wMDItNi42OTYuMDAyIDY0LjAwM3Y2MzkuOTk1YzAgNzAuNjg0IDU3LjMxNSAxMjguMDAzIDEyNy45OTkgMTI4LjAwM0gyOTEuMjVjLTEuNDk2LTEwLjQ5OS0zLjI1LTIxLjAwNS0zLjI1LTMyLjAwNyAwLTEwLjgxIDEuOTk5LTIxLjM3MiAzLjUwOC0zMS45OTZoLTM1LjUwNFY1NzUuOTk2aDExOC44NzRsMzIuNjI1LTY0LjAwM0gyNTYuMDAydi0yNTZoMzgzLjk5M3YyNTYuMDAyaC0yMy41NWw4Ny41NjEgMTcxLjc1NFY1NzUuOTk1aDI1Ni4wMDJ2MTI3Ljk5OWMwIDM1LjMwOS0yOC42OTMgNjQuMDAzLTY0LjAwMyA2NC4wMDNINzMyLjU2NGMxLjU2NiAxMC42MjQgMy40MzggMjEuMTIzIDMuNDM4IDMxLjk5NiAwIDExLjAwMi0xLjY4NCAyMS41MDUtMy4yNSAzMi4wMDdoMTYzLjI1M0M5NjYuNjg1IDgzMiAxMDI0IDc3NC42ODEgMTAyNCA3MDMuOTk3ek0xOTIuMDA0IDE5Mi4wMDZINjQuMDA1VjY0LjAwM0M2NC4wMDUgMjguNjgzIDkyLjc1NSAwIDEyOC4wMDEgMGg2NC4wMDN2MTkyLjAwNnptMCAzMTkuOTlINjQuMDA1di0yNTZoMTI3Ljk5OXYyNTZ6bTAgMjU2LjAwMmgtNjQuMDAzYy0zNS4yNDYgMC02My45OTYtMjguNjkxLTYzLjk5Ni02NC4wMDNWNTc1Ljk5NmgxMjcuOTk5djE5Mi4wMDJ6bTQ0Ny45OTMtNTc1Ljk5MkgyNTYuMDA0VjBoMzgzLjk5M3YxOTIuMDA2em0zMjAuMDExIDBoLTI1NlYwaDE5MS45OTdjMzUuMzA5IDAgNjQuMDAzIDI4LjY4MyA2NC4wMDMgNjQuMDAzdjEyOC4wMDN6bTAgMzE5Ljk5aC0yNTZ2LTI1NmgyNTZ2MjU2eiIvPjxnbHlwaCB1bmljb2RlPSLupLEiIGdseXBoLW5hbWU9Im1hbm8iIGQ9Ik0xMzEuNDE3IDM2Ni45ODZjLjAwMyAyNC41MjIgMTAuMDk4IDQ4Ljk0NiAyOS44NzUgNjYuNTE2IDM2LjcxMyAzMi41OTcgOTIuOTE1IDI5LjI4MiAxMjUuNDk2LTcuNDM0bDMxLjQ4Ny0zNS40MzJ2NDAxLjE3MWMwIDQ5LjEwNyAzOS43ODkgODguOTEzIDg4LjkwNiA4OC45MTMgNDkuMDg4IDAgODguOTA2LTM5LjgwNSA4OC45MDYtODguOTEzVjU4My44MzRjMTMuMjgyIDcuODc1IDI4LjcwOCAxMi40OCA0NS4yNiAxMi40OCAzNy43MTggMCA2OS44OS0yMy41MiA4Mi44MDQtNTYuNzEzIDEzLjgyMSA4Ljg1MiAzMC4xOTYgMTQuMDQ3IDQ3LjgyMyAxNC4wNDcgNDMuNDUzIDAgNzkuNTY5LTMxLjE1NyA4Ny4zMjEtNzIuMzQyIDEzLjA1NCA3LjUxMyAyOC4xNTMgMTEuODg3IDQ0LjI4MyAxMS44ODcgNDkuMDg4IDAgODguOTA2LTM5LjgyMSA4OC45MDYtODguOTE2bC4wODItMjE3Ljk0MWMwLTk0LjQ2OS04NS41NTEtMTcxLjAzOC0xOTEuMDU3LTE3MS4wMzhINTEwLjUxM2MtNTcuMTgyIDAtMTIzLjcxMyAzNi4xMzMtMTYyLjcxIDc0LjMwMkwxNTMuODUxIDMwNy45NzNjLTE1LjAzNiAxNi45MzktMjIuNDM1IDM4LjAxLTIyLjQzNSA1OS4wMTV6bS03OS4yODcuMDA2Yy0uMDAzLTQxLjE5OCAxNS4wNzQtODAuODYgNDIuNDU3LTExMS42NzhMMjg4LjUzIDM2Ljk0NGE3OS41OTUgNzkuNTk1IDAgMDEzLjgyMi00LjAxNWMyNi4xOS0yNS42MzUgNjAuMTM1LTQ5LjE1NSA5NS41ODUtNjYuMjMzIDQxLjY4My0yMC4wODIgODQuMDc2LTMwLjY5NCAxMjIuNTg0LTMwLjY5NGgxOTAuOTk2YzcwLjU3MiAwIDEzNy4zMzggMjQuOTY5IDE4Ny45NzcgNzAuMzA2IDUzLjExIDQ3LjU1MyA4Mi4zNjcgMTExLjQ4MSA4Mi4zNjcgMTgwLjAyM2wtLjA3OSAyMTcuOTczYzAgOTIuNzEyLTc1LjQ1IDE2OC4xNjUtMTY4LjE5IDE2OC4xNjUtLjgxOCAwLTEuNjQtLjAwNi0yLjQ0OC0uMDE5LTMxLjEyMiAzNy4yNDktNzcuODYzIDYwLjQ2MS0xMjkuMTYyIDYwLjQ2MS01LjkzMSAwLTExLjgzMy0uMzE0LTE3LjY5NC0uOTM5YTE2Ni4zNzIgMTY2LjM3MiAwIDAxLTE2Ljg2IDEzLjQyOGMtMTguODM1IDEzLjE0OS0zOS44NzIgMjIuMTY5LTYyLjA0NCAyNi43Mjl2MTE5LjY2YzAgOTIuNzQ0LTc1LjQ1MyAxNjguMTk3LTE2OC4xOSAxNjguMTk3LTkyLjc0MSAwLTE2OC4xOTctNzUuNDUzLTE2OC4xOTctMTY4LjE5N1Y1MzQuMTY2Yy0yLjg4My4zMjctNS43OTEuNTcxLTguNzE1LjczNi00NC44MzggMi42NTgtODguMDMxLTEyLjMxMi0xMjEuNjE3LTQyLjEyNy0zNS45MzMtMzEuODk2LTU2LjUyOS03Ny43MzktNTYuNTM1LTEyNS43ODR6Ii8+PGdseXBoIHVuaWNvZGU9Iu6ksiIgZ2x5cGgtbmFtZT0ibWFubzIiIGQ9Ik01MTEuODU3IDgzNC4yODRjNzEuMzA0IDAgNTEuMDI1LTEwOS45NTggNTQuNDIyLTE4Ny4xNTIgMi41MjQtNTcuMzY1LTYuMDMzLTE0Ni40OTMgMjIuMTAyLTE1MS41MDlhMTUuMTcgMTUuMTcgMCAwMTIuNjg5LS4yNDNjMzIuNjM5IDAgMzcuMzI2IDExMS4zNjIgNDEuNTExIDEzOS4xMjQgNi42NTYgNDQuNDIyIDEyLjQ2MyAxMzMuNjA3IDM0LjcyMyAxNDguMzgzIDguMzM1IDUuNTMyIDE5LjgyOCA4LjIxNyAzMS43NDggOC4yMTcgMjIuMzAyIDAgNDYuMDk4LTkuNDAyIDUzLjQ2My0yNy4xNTcgMTEuOTY2LTI4Ljg1OC0xNi4xMDEtMTIyLjI0My0yMi4wOTgtMTU3Ljg1Ny04LjMwMy00OS41NjctMzMuODQ5LTE0MS40MDUgOS40NzQtMTQyLjAzOS4xMjIgMCAuMjQzLS4wMDQuMzY5LS4wMDQgMjMuOTA2IDAgMzQuOTYzIDM1LjY4NiA0OC43NjIgNzEuMzc5IDEzLjc5OSAzNS42ODYgMzAuMzQ0IDcxLjM3OSA2NS4yMDMgNzEuMzc5IDIuODExIDAgNS43MzYtLjIyOSA4Ljc5LS43MTMgNTcuNjItOS4wOTEgMjAuMDUtOTIuMjgyIDYuMzE5LTEyOS40MTEtNDguOTczLTEzMi4zNzUtNzMuNDctMjAzLjc2Mi0xMjMuMTMxLTMzNy43NzctNi4yOC0xNi45MjEtMjEuNTk0LTY0LjE1LTI1LjI1Ni02Ni4yOTktMTcuNjE5LTEwLjMzLTE0NC4xNTgtMTIuNjI4LTE2NC4xMzctMTIuNjI4LTM2LjgxNyAwLTEyNC4yNjYuNjk1LTE2NC4xMzcgMTIuNjI4LTE3LjUyMyA1LjIzOC01MS43NzMgNTUuODgtNjYuMzAyIDc1Ljc2OS01MC42NDEgNjkuMzI4LTY2LjczOSA5OS40MTQtMTE5Ljk2OSAxNjQuMTM3LTIxLjgxNSAyNi41NDktNTkuMDM4IDU4LjU2NS01OS45NTQgNzguOTI3LTEuMzI4IDI5LjE0MSAzMi44NjUgNDkuODUgNTAuNDggNTAuNTA5LjUyMy4wMTggMS4wNDUuMDI5IDEuNTY4LjAyOSAzMC4wMjkgMCA1Ny44Ny0zMS4wNTMgNzcuMzU5LTUwLjUzOCA5LjIyMy05LjIyMyA0NC40OTctNTcuOTM4IDY3LjE0NC01Ny45MzggMS45MjMgMCAzLjc1Mi4zNTQgNS40NzEgMS4xMSAyMi40MTMgOS44ODktMy45MjEgNjYuNzE4LTEyLjYyOCA4OC40MDEtMjYuMDc2IDY0Ljk0Mi00Ni42OTYgMTEwLjQzOC02OS40NTcgMTY3LjI5NS0xMC41NzcgMjYuNDU2LTMwLjU1OSA2NS42MDQtMjguNDE0IDg4LjM5NyAyLjg2NCAzMC4zMDUgMjguODgzIDQ3LjU5NSA1NC43MzcgNDcuNTk1YTU3LjA5IDU3LjA5IDAgMDA1LjI0OS0uMjRjNDYuNzI0LTQuMzI1IDYwLjIwNS03OS41NjEgNzUuNzY5LTExNi44MTEgMTEuNTU4LTI3LjcyIDIzLjU1Mi02NC44NDkgNDQuMi0xMDAuOTk2LS4wMzIgMCAxMy44MS0yNS4zMDYgMjEuNDkzLTI1LjMwNi4xOTcgMCAuMzg3LjAxOC41NzYuMDUgMjEuNzE5IDMuODUzIDEzLjAwOCAxMjEuOTYgMTIuNjI4IDE1Ny44MjUtLjgyIDc5LjY4Ni0yNy44NDkgMTgxLjYzMSA0Ny4zNTUgMTkyLjU1MSA0LjIxNC42MTIgOC4xNzguOTEzIDExLjg4LjkxM3ptMCA3NS4xODljLTcuMzQ3IDAtMTQuOTkxLS41NzMtMjIuNzIxLTEuNzAxLTU4LjExNC04LjQzOS05OC45MjctNDcuNjQxLTExMS45MzUtMTA3LjU0OS0yLjA0OC05LjQ0Mi0zLjM4LTE5LjA3My00LjE3NS0yOC44MTUtMjMuNjg4IDIwLjY1NS00OC42ODcgMjcuNzItNjguMTQzIDI5LjUyMS00LjA1Ny4zNzItOC4xMzguNTU5LTEyLjE3Ny41NTktNjcuNjQ1LS4wMDQtMTIzLjM1Ni00OS43NS0xMjkuNTktMTE1LjcwOC0zLjUwNS0zNy4yMzMgMTIuNTQyLTc0LjUwOSAyNi43MDYtMTA3LjM5OCAyLjUzMS01Ljg3NSA0LjkyMy0xMS40MjUgNi43NDYtMTUuOTg3IDYuNTE2LTE2LjI4NCAxMi43ODItMzEuNDYxIDE5LjA1MS00Ni40MzhhMTIyLjAyNSAxMjIuMDI1IDAgMDEtMjEuNDIyIDEuMTMyYy0zMS45NDgtMS4xOTktNjYuNzA3LTE4LjIwNi05MC43OTktNDQuMzktMjIuMDctMjMuOTgyLTMzLjQ1NS01NC4wNTQtMzIuMDYzLTg0LjY4MSAxLjg5LTQyLjEyNyAzMC43MzQtNzMuMDIzIDU4LjYyOS0xMDIuOTAxIDYuOTc1LTcuNDY5IDEzLjU1OS0xNC41MjYgMTguMzQyLTIwLjM0NCAzMi4xNDUtMzkuMDg3IDQ5LjYwMy02NC4zMDggNzEuNzA1LTk2LjIzOCAxMi41OTktMTguMjAzIDI2Ljg3OC0zOC44MzMgNDUuNjM2LTY0LjUxMiAxLjcxOS0yLjM1MiAzLjczMS01LjE2NyA1Ljk3Ni04LjI5OSAzNS45ODMtNTAuMjY5IDYyLjM0OS04NC4wNSA5OS41MDctOTUuMTU3IDM1Ljk2Mi0xMC43NjMgOTQuOTcxLTE1Ljc3OSAxODUuNjczLTE1Ljc3OSAxMS43MDQgMCA0OS44MDQuNjQxIDg2LjgxMSAyLjU0MiA3NC42MTIgMy44MzEgOTcuMzg0IDkuODgyIDExNS4zNSAyMC40MTIgMjQuNzMgMTQuNTAxIDMzLjE5IDM2Ljk2OCAzOS45ODYgNTUuMDI3IDMuNzY3IDEwLjAxMSA3LjkxNiAyMS45NTkgMTEuNTc1IDMyLjQ5OSAyLjQzNSA3LjAwNyA0LjczIDEzLjYyNyA2LjE1OCAxNy40NjkgMjUuNDM1IDY4LjYzMyA0NC41OTEgMTIxLjczNCA2My4xMTkgMTczLjA4NSAxNy43NTkgNDkuMjI3IDM2LjEyNiAxMDAuMTM0IDYwLjA0IDE2NC43NzEgMS4wNjcgMi44ODIgMi4yODggNi4wNTQgMy41OTUgOS40NjcgMTcuMDYxIDQ0LjQ0IDQyLjgzNiAxMTEuNTk4IDEwLjQwMSAxNjcuNzM2LTE2LjQzNCAyOC40NDMtNDQuNTMgNDcuMTExLTc5LjExNyA1Mi41NjhhMTMxLjg5MyAxMzEuODkzIDAgMDEtMjAuNTA5IDEuNjMzYy0xMC43NDggMC0yMS4yMzktMS4zOTMtMzEuMzIyLTQuMTAzIDkuMjQ4IDQ3LjcyNyAxMS43MDEgODQuNDA1LS45MzEgMTE0Ljg2LTE4LjUzNiA0NC42OC02Ni43NzggNzMuNTQ5LTEyMi45MTYgNzMuNTQ5LTI3LjUwOCAwLTUyLjg2MS03LjE3OS03My4zMjMtMjAuNzU2YTk2LjI1MSA5Ni4yNTEgMCAwMS00LjI3OS0zLjAwOGMtNS43ODIgMTEuNDc1LTEzLjE2OSAyMi4xNjMtMjIuNTkyIDMxLjc1MS0yMi42MjggMjMuMDE1LTUyLjcxNSAzNS4xODUtODYuOTk3IDM1LjE4NXoiLz48Z2x5cGggdW5pY29kZT0i7qSzIiBnbHlwaC1uYW1lPSJtYXBhIiBkPSJNOTc2IDgzOEw3NTIgOTQyYy00IDItMTAgMi0xNiAycy0xMiAwLTE2LTJsLTIxMC05OC0yMTAgOThjLTQgMi0xMCAyLTE2IDJzLTEyIDAtMTYtMkw0MiA4MzhjLTE0LTYtMjItMjItMjItMzZWMTIyYzAtMjAgMTYtMzggMzgtMzggNiAwIDEwIDIgMTYgNGwyMTAgOTYgMjEwLTk2YzQtMiAxMC00IDE2LTRzMTIgMiAxNiA0bDIxMCA5NiAyMDgtOTZjNi0yIDEwLTQgMTYtNCAyMiAwIDM4IDE4IDM4IDM4djY4MGMwIDE0LTggMzAtMjIgMzZ6TTI0NiAyNTBMOTYgMTgydjU5NmwxNTAgNzBWMjUwem0yMjYtNjhsLTE1MCA2OHY1OThsMTUwLTcwVjE4MnptMjI2IDY4bC0xNTAtNjh2NTk2bDE1MCA3MFYyNTB6bTIyNC02OGwtMTQ4IDY4djU5OGwxNDgtNzBWMTgyeiIvPjxnbHlwaCB1bmljb2RlPSLupLQiIGdseXBoLW5hbWU9Im1hcyIgZD0iTTgyNCA1ODBjMzYgMCA2NC0zMCA2NC02NnMtMjgtNjYtNjQtNjZINTc2VjIwMGMwLTM2LTMwLTY0LTY2LTY0cy02NiAyOC02NiA2NHYyNDhIMTk2Yy0zNiAwLTY2IDMwLTY2IDY2czMwIDY2IDY2IDY2aDI0OHYyNDhjMCAzNiAzMCA2NiA2NiA2NnM2Ni0zMCA2Ni02NlY1ODBoMjQ4eiIvPjxnbHlwaCB1bmljb2RlPSLupLUiIGdseXBoLW5hbWU9Im1hczIiIGQ9Ik01NDQuMjg5IDY4Ni42NTFjLTguNTU0IDcuODc1LTE5Ljc1NSAxMi45NjYtMzIuMzEzIDEyLjk0My0xMi41MzYgMC0yMy43NTktNS4wNjktMzIuMzExLTEyLjk0My05LjUyNS04Ljc1Ny0xNS43MDItMjEuMDg4LTE1LjY3OS0zNS4wNDlsLjAyMy0xNTUuNjA3LTE1NS42MDkuMDIzYy0xMy45ODQgMC0yNi4yNy02LjE3Ny0zNS4wNDktMTUuNjgyLTcuODc1LTguNTUyLTEyLjk2Ni0xOS43NTMtMTIuOTQzLTMyLjMxMSAwLTEyLjUzOCA1LjA2OS0yMy43NTkgMTIuOTQzLTMyLjMxMyA4Ljc1NS05LjUyNSAyMS4wNjYtMTUuNjc5IDM1LjA0OS0xNS42NzlsMTU1LjYwNy0uMDIzVjI0NC40MjNjMC0xMy45ODQgNi4xNzktMjYuMjcyIDE1LjY4Mi0zNS4wNDkgOC41NTItNy44NzcgMTkuNzU1LTEyLjk2NiAzMi4zMTEtMTIuOTQzIDEyLjUzNiAwIDIzLjc1OSA1LjA2OSAzMi4zMTEgMTIuOTQzIDkuNTI1IDguNzU1IDE1LjY3OSAyMS4wNjYgMTUuNjc5IDM1LjA0OVY0MDAuMDFoMTU1LjYzMmMxMy45ODQgMCAyNi4yNyA2LjE3NyAzNS4wNDkgMTUuNjc5IDcuODc1IDguNTU0IDEyLjk2NiAxOS43NTUgMTIuOTQxIDMyLjMxMSAwIDEyLjUzNi01LjA2OSAyMy43NTktMTIuOTQxIDMyLjMxMS04Ljc1NSA5LjUyNS0yMS4wNjYgMTUuNjgyLTM1LjA0OSAxNS42ODJINTU5Ljk5VjY1MS41OGMuMDAyIDEzLjk4NC02LjE1MiAyNi4yOTItMTUuNyAzNS4wNzJ6TTE0OS45NjEgODEwLjAzOWMtMTk5LjkzNi0xOTkuOTM2LTE5OS45MzYtNTI0LjE0MSAwLTcyNC4wNzdzNTI0LjE0MS0xOTkuOTM2IDcyNC4wNzcgMCAxOTkuOTM2IDUyNC4xNDEgMCA3MjQuMDc3Yy0xOTkuOTM2IDE5OS45MzQtNTI0LjE0MSAxOTkuOTM0LTcyNC4wNzcgMHptNjU2LjE5NS02NTYuMTk1Yy0xNjIuMTkxLTE2Mi4xOTMtNDI2LjExOS0xNjIuMTkzLTU4OC4zMTMgMC0xNjIuMTkzIDE2Mi4xOTEtMTYyLjE5MyA0MjYuMTE5IDAgNTg4LjMxM3M0MjYuMTE5IDE2Mi4xOTMgNTg4LjMxMyAwYzE2Mi4xOTMtMTYyLjE5MyAxNjIuMTkzLTQyNi4xMjEgMC01ODguMzEzeiIvPjxnbHlwaCB1bmljb2RlPSLupLYiIGdseXBoLW5hbWU9Im1lZGlyLWFyZWEiIGQ9Ik05ODUuMTU5IDMxOC44NjZINDMuNzJWLTM0LjE3OGg5NDEuNDM5djM1My4wNDR6TTEwMi41NiAyNC42NjZ2MjM1LjM2aDg4LjI2di0xMTcuNjhoNTguODR2MTE3LjY4aDU4Ljg0di01OC44NGg1OC44NHY1OC44NGg1OC44NHYtMTE3LjY4aDU4Ljg0djExNy42OGg1OC44NHYtNTguODRoNTguODR2NTguODRoNTguODR2LTExNy42OGg1OC44NHYxMTcuNjhoNTguODR2LTU4Ljg0aDU4Ljg0djU4Ljg0aDg4LjI2M1YyNC42NjZIMTAyLjU1OHptMjkzLjMyIDM5OC4yMzVoLTI0LjI4NkwyMzMuMDkyIDY2Mi43OTggMzcxLjYgOTAyLjY5NWgyNzYuOTk5bDEzOC41MTQtMjM5Ljg5Ny0xMzguNTA4LTIzOS44OTdIMzk1Ljg4em0yMDQuMTU2IDg0LjEyMWw4OS45NCAxNTUuNzc2LTg5Ljk0IDE1NS43ODJINDIwLjE2bC04OS45NC0xNTUuNzgyIDg5Ljk0LTE1NS43NzZoMTc5Ljg3NnoiLz48Z2x5cGggdW5pY29kZT0i7qS3IiBnbHlwaC1uYW1lPSJtZWRpci1saW5lYSIgZD0iTTk4My45MDMgNjc5LjgzOGMuMDk5IDUzLjY4OC00My40MiA5Ny4yNy05Ny4xMTQgOTcuMzA2LTM5LjQ1NC4wNi03My4yNjMtMjMuNDk2LTg4LjU0OS01Ny4yNDJsLTU4NC4xOTIuMTg5Yy0xNS4yMTMgMzMuNzYxLTQ4Ljk4MyA1Ny4zOTItODguNDI1IDU3LjQzNC01My43MDYuMDU3LTk3LjI3Ni00My40Mi05Ny4zMy05Ny4xMDgtLjA1MS01My43MjEgNDMuNDItOTcuMjk3IDk3LjEyOS05Ny4zMjQgMzkuNDU3LS4wNjYgNzMuMjgxIDIzLjQ4NCA4OC41NjEgNTcuMjNsNTg0LjE5Mi0uMTg5YzE1LjIwNC0zMy43NjEgNDguOTY1LTU3LjM5MiA4OC40MjUtNTcuNDEzIDUzLjcwMy0uMDg3IDk3LjI2NyA0My40MTQgOTcuMzAzIDk3LjExN3ptMS4yNTYtMzYwLjk3Mkg0My43MlYtMzQuMTc1aDk0MS40Mzl2MzUzLjA0MXpNMTAyLjU2IDI0LjY2NnYyMzUuMzZoODguMjZ2LTExNy42OGg1OC44NHYxMTcuNjhoNTguODR2LTU4Ljg0aDU4Ljg0djU4Ljg0aDU4Ljg0di0xMTcuNjhoNTguODR2MTE3LjY4aDU4Ljg0di01OC44NGg1OC44NHY1OC44NGg1OC44NHYtMTE3LjY4aDU4Ljg0djExNy42OGg1OC44NHYtNTguODRoNTguODR2NTguODRoODguMjZWMjQuNjY2SDEwMi41NTh6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kuCIgZ2x5cGgtbmFtZT0ibWVub3MiIGQ9Ik04MjQgNDQ0SDE5NmMtNDAgMC03MCAzMC03MCA3MHMzMCA3MCA3MCA3MGg2MjhjNDAgMCA3MC0zMCA3MC03MHMtMzAtNzAtNzAtNzB6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kuSIgZ2x5cGgtbmFtZT0ibWVub3MyIiBkPSJNNTU5Ljk5MSA0MDAuMDA3aDE1NS42MzJjMTMuOTg0IDAgMjYuMjcgNi4xNzcgMzUuMDQ5IDE1LjY3OSA3Ljg3NSA4LjU1NCAxMi45NjYgMTkuNzU1IDEyLjk0MSAzMi4zMTEgMCAxMi41MzYtNS4wNjkgMjMuNzU5LTEyLjk0MSAzMi4zMTEtOC43NTUgOS41MjUtMjEuMDY2IDE1LjY4Mi0zNS4wNDkgMTUuNjgySDU1OS45OTF6bTguNDY0IDk1Ljk4NmwtMjYwLjA1Ny4wMjNjLTEzLjk4NCAwLTI2LjI3LTYuMTc3LTM1LjA0OS0xNS42ODItNy44NzUtOC41NTItMTIuOTY2LTE5Ljc1My0xMi45NDMtMzIuMzExIDAtMTIuNTM4IDUuMDY5LTIzLjc1OSAxMi45NDMtMzIuMzEzIDguNzU1LTkuNTI1IDIxLjA2Ni0xNS42NzkgMzUuMDQ5LTE1LjY3OWwyNjAuMDU3LS4wMjN6TTE0OS45NjEgODEwLjAzOWMtMTk5LjkzNi0xOTkuOTM2LTE5OS45MzYtNTI0LjE0MSAwLTcyNC4wNzdzNTI0LjE0MS0xOTkuOTM2IDcyNC4wNzcgMCAxOTkuOTM2IDUyNC4xNDEgMCA3MjQuMDc3Yy0xOTkuOTM2IDE5OS45MzQtNTI0LjE0MSAxOTkuOTM0LTcyNC4wNzcgMHptNjU2LjE5NS02NTYuMTk1Yy0xNjIuMTkxLTE2Mi4xOTMtNDI2LjExOS0xNjIuMTkzLTU4OC4zMTMgMC0xNjIuMTkzIDE2Mi4xOTEtMTYyLjE5MyA0MjYuMTE5IDAgNTg4LjMxM3M0MjYuMTE5IDE2Mi4xOTMgNTg4LjMxMyAwYzE2Mi4xOTMtMTYyLjE5MyAxNjIuMTkzLTQyNi4xMjEgMC01ODguMzEzeiIvPjxnbHlwaCB1bmljb2RlPSLupLoiIGdseXBoLW5hbWU9Im1lbnUiIGQ9Ik0xNTYgNzYwYy00MCAwLTcwIDMwLTcwIDcwczMwIDcyIDcwIDcyaDcwNmM0MCAwIDcyLTMyIDcyLTcycy0zMi03MC03Mi03MEgxNTZ6bTcwNi0xNzRjNDAgMCA3Mi0zMiA3Mi03MnMtMzItNzAtNzItNzBIMTU2Yy00MCAwLTcwIDMwLTcwIDcwczMwIDcyIDcwIDcyaDcwNnptMC0zMThjNDAgMCA3Mi0zMCA3Mi03MHMtMzItNzItNzItNzJIMTU2Yy00MCAwLTcwIDMyLTcwIDcyczMwIDcwIDcwIDcwaDcwNnoiLz48Z2x5cGggdW5pY29kZT0i7qS7IiBnbHlwaC1uYW1lPSJtdW5kbyIgZD0iTTUxMiA5MjUuOTk4Yy0yNjMuNjEyLS4wMjItNDc3Ljk3OC0yMTQuMzg0LTQ3OC00NzggLjAyMi0yNjMuNjAyIDIxNC4zOTQtNDc3Ljk2OCA0NzgtNDc4IDI2My42MTQuMDMyIDQ3Ny45NzIgMjE0LjM5OCA0NzguMDAyIDQ3OC0uMDMgMjYzLjYxMi0yMTQuMzk0IDQ3Ny45NzYtNDc4LjAwMiA0Nzh6bS0xNS45NS04MzguOTZjLTkuMTM4IDUuMzA4LTE5LjczNiAxNS41OC0zMC4xMDQgMzAuNDUtMTAuNDAyIDE0Ljg1Mi0yMC42MzggMzQuMTgtMjkuODggNTcuMjE0LTI0LjczOCA2MS41MTYtNDAuMjYgMTQyLjIwOC00NC4wODQgMjI5Ljg0MmgyNDAuMDQ0Yy0zLjgyNi04Ny42MzItMTkuMzQ2LTE2OC4zMjYtNDQuMDktMjI5Ljg0Mi0xMi4zMS0zMC43MDgtMjYuNDYtNTQuODQtNDAuMjY4LTcwLjUzOC02Ljg4Mi03Ljg1OC0xMy42NDYtMTMuNTY4LTE5LjcyOC0xNy4xMjYtNi4xMTgtMy41NzItMTEuMzc4LTQuOTg0LTE1Ljk0Mi00Ljk4NC00LjU2NiAwLTkuODI2IDEuNDEyLTE1Ljk0OCA0Ljk4NHpNMzA1LjAxMiA0MDQuNTVjMy45OTQtOTguMjMgMjEuMzQtMTg5Ljc4MiA1MC40MDItMjYyLjIyOCA5LjkyNi0yNC42ODQgMjEuMDE4LTQ2LjU1NiAzMy4yMzYtNjUuNDQ4LTE0Mi4xMyA0Ny4zNTQtMjQ4LjMyOCAxNzQuMzItMjY1LjMzMiAzMjcuNjc2aDE4MS42OTR6bS0xODEuNjk2IDg2LjkxMmMxNy4wMDQgMTUzLjM1NCAxMjMuMTk4IDI4MC4zMjIgMjY1LjMzIDMyNy42NzgtMTIuMjE4LTE4Ljg5OC0yMy4zMTYtNDAuNzY2LTMzLjIzOC02NS40NDgtMjkuMDYyLTcyLjQ0NC00Ni40MDQtMTY0LTUwLjQwMi0yNjIuMjMydi4wMDJoLTE4MS42OXptNTk1LjY2Ni0uMDA4Yy0zLjk4NCA5OC4yMzYtMjEuMzM2IDE4OS43OTItNTAuMzk4IDI2Mi4yMzgtOS45MiAyNC42OC0yMS4wMTQgNDYuNTQ2LTMzLjIzIDY1LjQ0MiAxNDIuMTM4LTQ3LjM1NiAyNDguMzIyLTE3NC4zMjQgMjY1LjMzMi0zMjcuNjc4SDcxOC45ODJ6bS04Ni45NjItLjAwMkgzOTEuOTcyYzMuODI0IDg3LjYzOCAxOS4zNCAxNjguMzI0IDQ0LjA4NCAyMjkuODQ4IDEyLjMwNCAzMC43MDggMjYuNDYyIDU0Ljg0MiA0MC4yNjggNzAuNTMyIDYuODc4IDcuODY0IDEzLjYzOCAxMy41NzYgMTkuNzIyIDE3LjEyOCA2LjEyNiAzLjU3NCAxMS4zODYgNC45ODQgMTUuOTQ4IDQuOTkgNC41NjItLjAwNCA5LjgzLTEuNDE2IDE1Ljk0NC00Ljk5IDkuMTQ4LTUuMzA4IDE5Ljc0LTE1LjU3OCAzMC4xMS0zMC40NDggMTAuMzk4LTE0Ljg0MiAyMC42MzYtMzQuMTc2IDI5Ljg4LTU3LjIwOCAyNC43NS02MS41MjggNDAuMjY0LTE0Mi4yMTYgNDQuMDkyLTIyOS44NTJ6bTMuMzQyLTQxNC41ODJjMTIuMjE4IDE4Ljg5NCAyMy4zMSA0MC43NjYgMzMuMjI2IDY1LjQ0NiAyOS4wNjYgNzIuNDQ4IDQ2LjQwOCAxNjMuOTkyIDUwLjQwMiAyNjIuMjIyaDE4MS42OThDODgzLjY4MiAyNTEuMjA0IDc3Ny40NzggMTI0LjI0IDYzNS4zNjIgNzYuODd6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kvCIgZ2x5cGgtbmFtZT0ibXVuZG8yIiBkPSJNMTAyNCA0NTIuOUMxMDIxLjU0OSA3MzIuNzg0IDc5My4xMDkgOTYwIDUxMS45OTkgOTYwIDIzMS41MDMgOTYwIDIuNDUxIDczMi43ODUgMCA0NTIuMjg3di00Ljg5Ny0zLjY3NEMyLjQ1MSAxNjMuMjE4IDIzMC44ODktNjMuOTk3IDUxMS45OTktNjMuOTk3YzI4MC40OTggMCA1MDkuNTUgMjI3LjIxNSA1MTEuOTk5IDUwNy4xdjQuMjg4Yy4wMDIgMS4yMjMuMDAyIDQuMjg2LjAwMiA1LjUxMXpNMzMxLjMzIDg0Ny45MjRjLTQwLjQyMi01OC43OTQtNzEuNjU1LTEzNy4xODctODguODAzLTIyNy44MjctMjcuNTU5LTYuMTI1LTUzLjg5NC0xMy40NzUtNzguMzkzLTIyLjA0OC0yOS4zOTgtMTAuNDEyLTU0LjUwOC0yMC44MjMtNzQuNzE3LTMxLjg0NyAzNS41MiAxMjUuNTQ5IDEyNC45MzcgMjI4LjQzOSAyNDEuOTEzIDI4MS43MjF6TTczLjQ5NCA0NDguNjEzYzAgMjAuMjExIDM1LjUyIDUyLjY2OSAxMTQuNTI3IDc5LjYxNiAxMy40NzUgNC44OTkgMjguMTczIDkuMTg3IDQyLjg3IDEyLjg2MS0zLjA2Mi0zMC4wMS00LjI4OC02MS4yNDQtNC4yODgtOTMuMDkxczEuODM3LTYzLjA4MSA0LjI4OC05My4wOTFjLTE1LjMxMiA0LjI4OC0yOS4zOTggOC41NzMtNDIuODcgMTIuODYxLTc5LjAwNyAyOC4xNzUtMTE0LjUyNyA2MC42MzMtMTE0LjUyNyA4MC44NDR6bTE2LjUzNS0xMTcuNTg4YzIwLjIxMS0xMS4wMjQgNDQuNzA3LTIyLjA0OCA3NC43MTctMzEuODQ3IDIzLjg4NS03Ljk2MiA1MC4yMi0xNS4zMTIgNzguMzkzLTIyLjA0OCAxNy43Ni05MC42NCA0OC4zODMtMTY5LjY0NSA4OS40MTctMjI3LjgyNy0xMTguMjAxIDUzLjI4MS0yMDcuNjE4IDE1Ni4xNy0yNDIuNTI3IDI4MS43MjF6bTM4NS4yMjQtMzEzLjU3QzQzNi42NyAzMi43NjcgMzk4LjY5OSA3MS45NjMgMzY4LjY5IDEyOS41MzFjLTIwLjIxMSAzOS4xOTctMzYuNzQ2IDgzLjkwNC00Ny43NyAxMzMuNTEzIDQ4Ljk5NS03LjM1IDEwMS4wNTMtMTEuNjM2IDE1NC45NDctMTIuODYxVjE3LjQ1N2gtLjYxNHptMCAzMDYuMjJjLTU5LjQwNyAxLjgzNy0xMTYuMzY0IDYuNzM2LTE2OC40MjIgMTUuOTIzLTQuMjg4IDM1LjUyMy02LjczNiA3MS42NTUtNi43MzYgMTA5LjAxNHMyLjQ1MSA3NC4xMDUgNi43MzYgMTA5LjAxNGM1Mi4wNTcgOC41NzMgMTA5LjAxNCAxNC4wODYgMTY4LjQyMiAxNS45MjNWMzIzLjY3NHptMCAzMjMuMzY5Yy01My44OTQtMS4yMjUtMTA1Ljk1Mi01LjUxMS0xNTQuOTQ3LTEyLjg2MSAxMS42MzYgNDguOTk1IDI3LjU1OSA5NC4zMTYgNDcuNzcgMTMzLjUxMyAzMC4wMSA1Ny41NjggNjcuOTgxIDk2Ljc2NSAxMDYuNTYzIDExMi4wNzZWNjQ3LjA0NmguNjE0em00NTguNzE2LTgwLjg0MmMtMjAuMjExIDExLjAyNC00NC43MDcgMjIuMDQ4LTc0LjcxNyAzMS44NDctMjMuODg1IDcuOTYyLTUwLjIyIDE1LjMxMi03OC4zOTMgMjIuMDQ4LTE3Ljc2IDkwLjY0LTQ4LjM4MyAxNjkuNjQ1LTg5LjQxNyAyMjcuODI3IDExOC4yMDMtNTMuMjgzIDIwNy42MTgtMTU2LjE3MiAyNDIuNTI3LTI4MS43MjF6TTU0OC43NDcgODc5Ljc3YzM4LjU4My0xNS4zMTIgNzYuNTU0LTU0LjUwOCAxMDYuNTYzLTExMi4wNzYgMjAuMjExLTM5LjE5NyAzNi43NDYtODMuOTA0IDQ3Ljc3LTEzMy41MTMtNDguOTk1IDcuMzUtMTAxLjA1MyAxMS42MzYtMTU0Ljk0NyAxMi44NjFWODc5Ljc3aC42MTR6bTAtMzA2LjIyYzU5LjQwNy0xLjgzNyAxMTYuMzY0LTYuNzM2IDE2OC40MjItMTUuOTIzIDQuMjg4LTM1LjUyMyA2LjczNi03MS42NTUgNi43MzYtMTA5LjAxNHMtMi40NTEtNzQuMTA1LTYuNzM2LTEwOS4wMTRjLTUyLjA1Ny04LjU3My0xMDkuMDE0LTE0LjA4Ni0xNjguNDIyLTE1LjkyM3YyNDkuODc1em0wLTU1Ni4wOTV2MjMyLjcyNmM1My44OTQgMS4yMjUgMTA1Ljk1MiA1LjUxMSAxNTQuOTQ3IDEyLjg2MS0xMS42MzYtNDguOTk1LTI3LjU1OS05NC4zMTYtNDcuNzctMTMzLjUxMy0zMC42MjMtNTcuNTY2LTY4LjU5NC05Ni43NjMtMTA3LjE3Ny0xMTIuMDc0ek02OTIuNjcgNDkuMzAyYzQwLjQyMiA1OC43OTQgNzEuNjU1IDEzNy4xODcgODkuNDE3IDIyNy44MjcgMjcuNTU5IDYuMTI1IDUzLjg5NCAxMy40NzUgNzguMzkzIDIyLjA0OCAyOS4zOTggMTAuNDEyIDU0LjUwOCAyMC44MjMgNzQuNzE3IDMxLjg0N0M4OTkuMDYxIDIwNS40NzUgODA5LjY0NiAxMDIuNTg1IDY5Mi42NyA0OS4zMDN6bTE0My4zMDkgMzE5LjY5NGMtMTMuNDc1LTQuODk5LTI4LjE3My05LjE4Ny00Mi44Ny0xMi44NjEgMy4wNjIgMzAuMDEgNC4yODggNjEuMjQ0IDQuMjg4IDkzLjA5MXMtMS44MzcgNjMuMDgxLTQuMjg4IDkzLjA5MWMxNS4zMTItNC4yODggMjkuMzk4LTguNTczIDQyLjg3LTEyLjg2MSA3OS4wMDUtMjYuOTQ3IDExNC41MjctNTkuNDA3IDExNC41MjctNzkuNjE2IDAtMjAuMjEzLTM1LjUyMy01My44OTctMTE0LjUyNy04MC44NDR6Ii8+PGdseXBoIHVuaWNvZGU9Iu6kvSIgZ2x5cGgtbmFtZT0ib3BjaW9uZXMiIGQ9Ik0yMTcuMjEyIDc1MS42OTR2ODQuMTg1YzAgMjUuNzI0LTIwLjgyMSA0Ni41NDUtNDYuNTQ1IDQ2LjU0NXMtNDYuNTQ1LTIwLjgyMS00Ni41NDUtNDYuNTQ1di04NC4xODVDNTIuNTk3IDczMS4zNjkuMDAxIDY2NS41ODUuMDAxIDU4Ny42MzdTNTIuNTk3IDQ0My45MDUgMTI0LjEyMiA0MjMuNThWNjAuMTIyYzAtMjUuNjkzIDIwLjgyMS00Ni41NDUgNDYuNTQ1LTQ2LjU0NXM0Ni41NDUgMjAuODUyIDQ2LjU0NSA0Ni41NDVWNDIzLjU4YzcxLjUyNSAyMC4zMjUgMTI0LjEyMSA4Ni4wNzggMTI0LjEyMSAxNjQuMDU3IDAgNzcuOTQ4LTUyLjU5NiAxNDMuNzMyLTEyNC4xMjEgMTY0LjA1N3ptLTQ2LjU0NS0yNDEuNjMzYy00Mi43NiAwLTc3LjU3NiAzNC44MTYtNzcuNTc2IDc3LjU3NnMzNC44MTYgNzcuNTc2IDc3LjU3NiA3Ny41NzZjNDIuNzYgMCA3Ny41NzYtMzQuODE2IDc3LjU3Ni03Ny41NzZzLTM0LjgxNi03Ny41NzYtNzcuNTc2LTc3LjU3NnptMzg3Ljg3OC0zNy42NHYzNjMuNDU4YzAgMjUuNzI0LTIwLjgyMSA0Ni41NDUtNDYuNTQ1IDQ2LjU0NXMtNDYuNTQ1LTIwLjgyMS00Ni41NDUtNDYuNTQ1VjQ3Mi40MjFjLTcxLjUyNS0yMC4zMjUtMTI0LjEyMS04Ni4xMDktMTI0LjEyMS0xNjQuMDU3czUyLjU5Ni0xNDMuNzMyIDEyNC4xMjEtMTY0LjA1N1Y2MC4xMjJjMC0yNS42OTMgMjAuODIxLTQ2LjU0NSA0Ni41NDUtNDYuNTQ1czQ2LjU0NSAyMC44NTIgNDYuNTQ1IDQ2LjU0NXY4NC4xODVjNzEuNTI1IDIwLjMyNSAxMjQuMTIxIDg2LjEwOSAxMjQuMTIxIDE2NC4wNTdTNjMwLjA3IDQ1Mi4wOTYgNTU4LjU0NSA0NzIuNDIxek01MTIgMjMwLjc4OGMtNDIuNzYgMC03Ny41NzYgMzQuNzg1LTc3LjU3NiA3Ny41NzZTNDY5LjI0IDM4NS45NCA1MTIgMzg1Ljk0czc3LjU3Ni0zNC43ODUgNzcuNTc2LTc3LjU3NlM1NTQuNzYgMjMwLjc4OCA1MTIgMjMwLjc4OHptMzg3Ljg3OSA1MjAuOTA2djg0LjE4NWMwIDI1LjcyNC0yMC44MjEgNDYuNTQ1LTQ2LjU0NSA0Ni41NDVzLTQ2LjU0NS0yMC44MjEtNDYuNTQ1LTQ2LjU0NXYtODQuMTg1Yy03MS41MjUtMjAuMzI1LTEyNC4xMjEtODYuMDc4LTEyNC4xMjEtMTY0LjA1NyAwLTc3Ljk0OCA1Mi41OTYtMTQzLjczMiAxMjQuMTIxLTE2NC4wNTdWNjAuMTIyYzAtMjUuNjkzIDIwLjgyMS00Ni41NDUgNDYuNTQ1LTQ2LjU0NXM0Ni41NDUgMjAuODUyIDQ2LjU0NSA0Ni41NDVWNDIzLjU4Qzk3MS40MDQgNDQzLjkwNSAxMDI0IDUwOS42NTggMTAyNCA1ODcuNjM3YzAgNzcuOTQ4LTUyLjU5NiAxNDMuNzMyLTEyNC4xMjEgMTY0LjA1N3ptLTQ2LjU0Ni0yNDEuNjMzYy00Mi43NiAwLTc3LjU3NiAzNC44MTYtNzcuNTc2IDc3LjU3NnMzNC44MTYgNzcuNTc2IDc3LjU3NiA3Ny41NzZjNDIuNzYgMCA3Ny41NzYtMzQuODE2IDc3LjU3Ni03Ny41NzZzLTM0LjgxNi03Ny41NzYtNzcuNTc2LTc3LjU3NnoiLz48Z2x5cGggdW5pY29kZT0i7qS+IiBnbHlwaC1uYW1lPSJwYXBlbGVyYSIgZD0iTTkxMS4yODggODAwSDcwNC41Njd2OTZjMCAzNS4zMjgtMjguNjcyIDY0LTY0IDY0SDM4NC41NjljLTM1LjMyOCAwLTY0LTI4LjY3Mi02NC02NHYtOTZIMTEzLjg1Yy0yNi40OTcgMC00OC4wMDEtMjEuNDcxLTQ4LjAwMS00OC4wMDFTODcuMzUzIDcwNCAxMTMuODUgNzA0aDQ2LjcyMVYwYzAtMzUuMzYxIDI4LjY3Mi02NCA2NC02NGg1NzUuOTk4YzM1LjMyOCAwIDY0IDI4LjY3MiA2NCA2NHY3MDRoNDYuNzIxYzI2LjQ5NyAwIDQ4LjAwMSAyMS40NzEgNDguMDAxIDQ4LjAwMVM5MzcuNzgzIDgwMCA5MTEuMjg4IDgwMHptLTQ5NC43MTkgNjRoMTkxLjk5OHYtNjRINDE2LjU2OXY2NHpNNzY4LjU2NyAzMkgyNTYuNTY5djY3Mmg1MTEuOTk4VjMyem0tMjk2LjA1IDE0Ni4xMTl2MzU5LjMwN2MwIDIyLjg4NiAxNy4xNjQgNDAuMDUxIDQwLjA1MSA0MC4wNTEgMjIuODg4IDAgNDAuMDUzLTE3LjE2NCA0MC4wNTMtNDAuMDUxVjE3OC4xMTljMC0yMi44ODYtMTcuMTY0LTQwLjA1MS00MC4wNTMtNDAuMDUxLTIyLjg4Ni4wMDItNDAuMDUxIDE3LjE2Ni00MC4wNTEgNDAuMDUxem0xNTcuNjk2IDB2MzU5LjMwN2MwIDIyLjg4NiAxNy4xNjQgNDAuMDUxIDQwLjA1MSA0MC4wNTFzNDAuMDUzLTE3LjE2NCA0MC4wNTMtNDAuMDUxVjE3OC4xMTljMC0yMi44ODYtMTcuMTY0LTQwLjA1MS00MC4wNTMtNDAuMDUxLTIyLjg4Ni4wMDItNDAuMDUxIDE3LjE2Ni00MC4wNTEgNDAuMDUxem0tMzE1LjM5MiAwdjM1OS4zMDdjMCAyMi44ODYgMTcuMTY0IDQwLjA1MSA0MC4wNTEgNDAuMDUxczQwLjA1My0xNy4xNjQgNDAuMDUzLTQwLjA1MVYxNzguMTE5YzAtMjIuODg2LTE3LjE2NC00MC4wNTEtNDAuMDUzLTQwLjA1MS0yMi44ODYuMDAyLTQwLjA1MSAxNy4xNjYtNDAuMDUxIDQwLjA1MXoiLz48Z2x5cGggdW5pY29kZT0i7qS/IiBnbHlwaC1uYW1lPSJwaW4iIGQ9Ik00ODguNTQ0LTQyLjY3NGMtNi43NjIgMi4yMzItMTIuODIgNS4wMjgtMTguNzI1IDguMTk2LTExLjc0OSA2LjM1OS0yMi45OTcgMTQuMzA3LTM0LjgyNiAyMy43ODgtMjMuNTA1IDE4LjkzMi00OS4wOTEgNDQuMTQzLTc2LjA0MiA3NC4yMTctNTMuNzM3IDYwLjEwNy0xMTIuMzMxIDEzOS4zODctMTU5LjI2MyAyMjIuMDU2LTMxLjI0MiA1NS4xNzEtNTcuMzI4IDExMS42ODQtNzIuNzM3IDE2Ni4xODUtOC43NjMgMzEuMTgzLTE0LjA5NiA2MS43OTItMTQuMTI1IDkxLjcwMy0uMDE2IDEwOS45ODIgNDQuODQ3IDIxMC4wMzMgMTE3LjAzMyAyODIuMTQ1IDcyLjExIDcyLjE4NiAxNzIuMTYxIDExNy4wNDkgMjgyLjE0MyAxMTcuMDMzIDEwOS45NzYuMDE2IDIxMC4wMjQtNDQuODQ3IDI4Mi4xMzktMTE3LjAzMyA3Mi4xOC03Mi4xMTIgMTE3LjA0OS0xNzIuMTYzIDExNy4wMzMtMjgyLjE0NS0uMDU5LTM2LjgwMy04LjA1My03NC42NzYtMjAuNzUyLTExMy4zNC0xMi43NTctMzguNjM2LTMwLjQxNy03OC4wNjYtNTEuMDczLTExNy4xMjEtNDEuMzQxLTc4LjA1My05NC42NjctMTU0LjYwNC0xNDYuMTE3LTIxNi43MjMtMzQuMzg2LTQxLjQzNy02Ny42NzgtNzYuMjktOTcuNDQ2LTEwMS4zOTZDNTc4LjU2NC0xOS40NyA1NjMtMzAuNzcyIDU0NS41NzktMzguNzMxYy05LjQzNS00LjEtMTkuNjM2LTcuNzU0LTMzLjU3OS03LjkyMi05LjE1Ny4wNDMtMTYuNjkxIDEuNzktMjMuNDU2IDMuOTc5ek0yOTMuNTc3IDc2MS45MDFjLTU2LjA2Ni01Ni4xMzItOTAuNjI0LTEzMy4xNC05MC42NDItMjE4LjQyOS0uMDUxLTIyLjE3NCA0Ljk4MS01MC4wNDEgMTQuNzYyLTgwLjYzNCA5LjczNi0zMC42MTQgMjQuMDQ4LTYzLjk0NSA0MS40MzctOTcuNzg4IDM0Ljc0OC02Ny43MjkgODEuNzczLTEzNy40NjYgMTI3LjY2Ni0xOTQuODYxIDMwLjU1Mi0zOC4yNjcgNjAuNzIxLTcxLjE2NCA4NS42MjctOTQuMTQgMTQuMTQ4LTEzLjExMSAyNi43MjItMjIuOTcyIDM1LjMxOC0yOC4zNjFhNzQuNzkzIDc0Ljc5MyAwIDAxNC4yNTgtMi41MzFjNC43MjUgMi41OTUgMTIuMDU5IDcuNTM1IDIwLjU0MyAxNC4zODUgMTcuODA1IDE0LjI3NSA0MC44MzMgMzYuNjQ5IDY1LjM1NCA2NC4wOCA0OS4xOTMgNTQuOTA5IDEwNC45MTkgMTMwLjMzMyAxNDguMDI1IDIwNi40MTggMjguNzg1IDUwLjY3IDUxLjkyOSAxMDEuNzk4IDY0LjM5MSAxNDYuMTc0IDcuMTYgMjUuMzIxIDEwLjc3NSA0OC4zNTkgMTAuNzQ0IDY3LjI1Ni0uMDE4IDg1LjI4OS0zNC41NzYgMTYyLjI5OC05MC42NDIgMjE4LjQyMy01Ni4xMjUgNTYuMDY2LTEzMy4xMzQgOTAuNjI0LTIxOC40MTcgOTAuNjQyLTg1LjI4Ny0uMDE2LTE2Mi4yOTYtMzQuNTc0LTIxOC40MjMtOTAuNjM0em0yMTguNDI1LTQ1NC41MTljLTY1LjAxOC0uMDE4LTEyNC4yOTcgMjYuNTYzLTE2Ni44ODMgNjkuMjE2LTQyLjY1IDQyLjU4Mi02OS4yMzMgMTAxLjg2My02OS4yMTIgMTY2Ljg3OS0uMDIgNjUuMDE2IDI2LjU2MyAxMjQuMjk3IDY5LjIxMiAxNjYuODgzIDQyLjU4NiA0Mi42NTIgMTAxLjg2OCA2OS4yMzEgMTY2Ljg4MyA2OS4yMTJWNjg5LjQ2Yy00MC4zMjMtLjAxOC03Ni41NjItMTYuMjktMTAzLjE2NC00Mi44Mi0yNi41MzItMjYuNTk5LTQyLjgwMS02Mi44NDEtNDIuODItMTAzLjE2NC4wMTYtNDAuMzIzIDE2LjI4OC03Ni41NjIgNDIuODItMTAzLjE2IDI2LjYwMS0yNi41MzYgNjIuODQxLTQyLjgwMSAxMDMuMTY0LTQyLjgyIDQwLjMxOS4wMTggNzYuNTU4IDE2LjI4NCAxMDMuMTU4IDQyLjgyIDI2LjUzMiAyNi41OTUgNDIuODAxIDYyLjgzNyA0Mi44MiAxMDMuMTYtLjAxOCA0MC4zMjMtMTYuMjg4IDc2LjU2Mi00Mi44MiAxMDMuMTY0LTI2LjU5OSAyNi41MzItNjIuODQxIDQyLjgwMS0xMDMuMTU4IDQyLjgydjkwLjExMmM2NS4wMTIuMDE4IDEyNC4yOTEtMjYuNTYxIDE2Ni44NzctNjkuMjEyIDQyLjY1LTQyLjU4NCA2OS4yMzEtMTAxLjg2OCA2OS4yMTItMTY2Ljg4My4wMTgtNjUuMDE2LTI2LjU2My0xMjQuMjkzLTY5LjIxMi0xNjYuODc5LTQyLjU3Mi00Mi42NDEtMTAxLjgyNy02OS4yMTgtMTY2LjgxNi02OS4yMTZoLS4wNjF6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lgCIgZ2x5cGgtbmFtZT0icGluLW51ZXZvIiBkPSJNNjc4Ljg3OSA3MTAuMzYxYy00Mi41ODYgNDIuNjUyLTEwMS44NjUgNjkuMjMxLTE2Ni44NzcgNjkuMjEyLTY1LjAxNi4wMTgtMTI0LjI5NS0yNi41NjEtMTY2Ljg4MS02OS4yMTItNDIuNjUtNDIuNTg2LTY5LjIzMS0xMDEuODY4LTY5LjIxMi0xNjYuODgzLS4wMTgtNjUuMDE2IDI2LjU2My0xMjQuMjk1IDY5LjIxNi0xNjYuODc3IDQyLjU4Mi00Mi42NTQgMTAxLjg1OS02OS4yMzcgMTY2Ljg3Ny02OS4yMThoLjA2MWM2NC45ODktLjAwMiAxMjQuMjQ4IDI2LjU3NyAxNjYuODE2IDY5LjIxOCA0Mi42NSA0Mi41ODYgNjkuMjMxIDEwMS44NjEgNjkuMjEyIDE2Ni44NzcuMDE4IDY1LjAxNi0yNi41NjMgMTI0LjI5OS02OS4yMTIgMTY2Ljg4M3pNNjE1LjE2IDQ0MC4zMThjLTI2LjU5OS0yNi41MzYtNjIuODM3LTQyLjc5OS0xMDMuMTU4LTQyLjgyLTQwLjMyMS4wMi03Ni41NjIgMTYuMjg0LTEwMy4xNjQgNDIuODItMjYuNTMyIDI2LjYwMS00Mi44MDEgNjIuODM5LTQyLjgxOCAxMDMuMTYuMDE4IDQwLjMyMyAxNi4yODYgNzYuNTY0IDQyLjgxOCAxMDMuMTY0IDI2LjYwMSAyNi41MyA2Mi44NDMgNDIuODAxIDEwMy4xNjQgNDIuODIgNDAuMzE5LS4wMTggNzYuNTU4LTE2LjI4OCAxMDMuMTU4LTQyLjgyIDI2LjUzMi0yNi42MDEgNDIuODAxLTYyLjg0MSA0Mi44Mi0xMDMuMTY0LS4wMTgtNDAuMzIzLTE2LjI4OC03Ni41Ni00Mi44Mi0xMDMuMTZ6TTgzNiAzMDYuNzk3YzEuMTE2IDIuMDczIDIuMjU3IDQuMTM5IDMuMzU1IDYuMjEyIDIwLjY1NiAzOS4wNTUgMzguMzE2IDc4LjQ4MSA1MS4wNzMgMTE3LjEyMSAxMi43IDM4LjY2NCAyMC42OTMgNzYuNTM4IDIwLjc1MiAxMTMuMzQuMDE4IDEwOS45NzgtNDQuODQ3IDIxMC4wMjktMTE3LjAzMyAyODIuMTQ1LTcyLjExNCA3Mi4xODQtMTcyLjE2NyAxMTcuMDUxLTI4Mi4xNDMgMTE3LjAzNS0xMDkuOTgyLjAxNi0yMTAuMDMzLTQ0Ljg1MS0yODIuMTQ1LTExNy4wMzUtNzIuMTg2LTcyLjExNi0xMTcuMDQ5LTE3Mi4xNjEtMTE3LjAzNS0yODIuMTQ1LjAzMS0yOS45MTcgNS4zNjItNjAuNTIgMTQuMTI1LTkxLjcwMyAxNS40MDktNTQuNTAzIDQxLjQ5NS0xMTEuMDE0IDcyLjczNy0xNjYuMTg1IDQ2LjkzMi04Mi42NyAxMDUuNTI1LTE2MS45NSAxNTkuMjY1LTIyMi4wNTYgMjYuOTUyLTMwLjA3NyA1Mi41MzUtNTUuMjg2IDc2LjA0Mi03NC4yMTcgMTEuODI3LTkuNDggMjMuMDc3LTE3LjQyOCAzNC44MjYtMjMuNzg4IDUuOTA0LTMuMTcyIDExLjk2Mi01Ljk2MiAxOC43MjUtOC4xOTYgNi43NjctMi4xODcgMTQuMjk5LTMuOTM2IDIzLjQ2LTMuOTc3IDEzLjk0NS4xNjggMjQuMTQ0IDMuODIyIDMzLjU3OSA3LjkyMiAxNy40MiA3Ljk1OSAzMi45ODMgMTkuMjU5IDUwLjIwNyAzMy42MjIgMjEuMDA0IDE3LjcxMyA0My43NjYgNDAuMjk4IDY3LjQyNCA2Ni42MDVDNjg5LjExNS02LjkxNiA3NTUuMjM1LTU1LjU3MSA4MzIuNzI3LTU1LjU3MWMxMDAuMDY1IDAgMTgxLjIwMyA4MS4xMzYgMTgxLjIwMyAxODEuMjA1LS4wMDIgOTguOTc4LTc5LjM2MiAxNzkuNDE3LTE3Ny45MyAxODEuMTY0ek01OTcuODk5IDEyMy42MjFjLTI0LjUyMS0yNy40MzEtNDcuNTQ4LTQ5LjgwMy02NS4zNTQtNjQuMDgtOC40ODUtNi44NTEtMTUuODE5LTExLjc5LTIwLjU0My0xNC4zODNhNzcuMjAyIDc3LjIwMiAwIDAwLTQuMjU4IDIuNTI5Yy04LjU5MyA1LjM4OC0yMS4xNyAxNS4yNDktMzUuMzE2IDI4LjM2My0yNC45MDYgMjIuOTc3LTU1LjA3NyA1NS44NzEtODUuNjI5IDk0LjEzNC00NS44OTQgNTcuMzk5LTkyLjkxOCAxMjcuMTM4LTEyNy42NjYgMTk0Ljg2NS0xNy4zOSAzMy44MzktMzEuNzAxIDY3LjE3NC00MS40MzcgOTcuNzg4LTkuNzc5IDMwLjU5My0xNC44MTEgNTguNDU0LTE0Ljc2MiA4MC42MzQuMDIgODUuMjkxIDM0LjU3OCAxNjIuMjk0IDkwLjY0NCAyMTguNDIzIDU2LjEyNSA1Ni4wNjIgMTMzLjEzNCA5MC42MjQgMjE4LjQyMSA5MC42NCA4NS4yODUtLjAxOCAxNjIuMjkyLTM0LjU4IDIxOC40MTctOTAuNjQyIDU2LjA2Ni01Ni4xMyA5MC42MjQtMTMzLjEzOCA5MC42NDItMjE4LjQyMy4wMzMtMTguODk3LTMuNTg0LTQxLjkzNS0xMC43NDQtNjcuMjU2LTEyLjQ2Mi00NC4zOC0zNS42MDctOTUuNTA4LTY0LjM4OS0xNDYuMTc0LTQzLjEwNi03Ni4wODUtOTguODMyLTE1MS41MDktMTQ4LjAyNy0yMDYuNDE4em0zMDcuOTU0LTI5LjUxM2gtNDEuODAyVjUyLjQwM2MwLTE3LjQwNC0xMy45MTQtMzEuNTE3LTMxLjMxOC0zMS41MTctMTcuMzk4IDAtMzEuMzE2IDE0LjExMy0zMS4zMTYgMzEuNTE3djQxLjcyMmgtNDEuNzg1Yy0xNy40MDQgMC0zMS41ODggMTQuMTExLTMxLjU4OCAzMS41MjMgMCAxNy40MDQgMTQuMTYgMzEuNTEzIDMxLjU2NiAzMS41MTNoNDEuODA4djQxLjcwMWMwIDE3LjQxMiAxMy45MTggMzEuNTIxIDMxLjMxNiAzMS41MjEgMTcuNDEgMCAzMS4zMTgtMTQuMTA5IDMxLjMxOC0zMS41MjF2LTQxLjcxNmg0MS44MDJjMTcuNDA0IDAgMzEuNTI3LTE0LjEyMSAzMS41MjctMzEuNTI1cy0xNC4xMjMtMzEuNTEzLTMxLjUyNy0zMS41MTN6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lgSIgZ2x5cGgtbmFtZT0icGluMiIgZD0iTTUxMS45OTcgOTMzLjJjLTE0NS4wMjEgMC0yNjIuNjMzLTExNy42MTUtMjYyLjYzMy0yNjIuNjM5IDAtMTMyLjE5NCA5OC4wMTItMjQwLjUwNSAyMjUuMTExLTI1OC44MjNWLTQyLjMxM2g3NS4wNDJ2NDU0LjA0OWMxMjcuMDY2IDE4LjMxOCAyMjUuMTI0IDEyNi42MjkgMjI1LjEyNCAyNTguODIzIDAgMTQ1LjAyNS0xMTcuNjIyIDI2Mi42NDEtMjYyLjY0NSAyNjIuNjQxem0tNzUuMDQyLTIyNS4xMmMtNDEuNDc2IDAtNzUuMDM0IDMzLjU2Ni03NS4wMzQgNzUuMDQyczMzLjU1OCA3NS4wMzYgNzUuMDM0IDc1LjAzNmM0MS40ODIgMCA3NS4wNDItMzMuNTYgNzUuMDQyLTc1LjAzNnMtMzMuNTYtNzUuMDQyLTc1LjA0Mi03NS4wNDJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lgiIgZ2x5cGgtbmFtZT0icGluMyIgZD0iTTUxMi4wMDQgOTYwYy0yMjUuNjQyIDAtNDA4LjU0OS0xODIuOTE1LTQwOC41NDktNDA4LjU0OVM0NjkuODcxLTY0IDUxMi4wMDQtNjRjNDMuNzE1IDAgNDA4LjUzOSAzODkuODE4IDQwOC41MzkgNjE1LjQ1M0M5MjAuNTQ1IDc3Ny4wODUgNzM3LjYzMiA5NjAgNTEyLjAwNCA5NjB6TTIxOS4zNTEgNTYzLjMzNWMwIDE2Mi40MzMgMTMxLjY4IDI5NC4xMTMgMjk0LjExMSAyOTQuMTEzIDE2Mi40MzkgMCAyOTQuMTE1LTEzMS42OCAyOTQuMTE1LTI5NC4xMTMgMC04NC43ODctMzUuODgzLTE2MS4xODgtOTMuMjgyLTIxNC44Ni0uNDY5LS40NC03LjA2Mi0zLjcyOS04LjU3MSAxLjAyMmwtNDkuNTIzIDE1Mi44MTZjLTcuMTgyIDE5LjM0MS0yNi41ODEgMzAuMjU5LTQ2LjMyNiAzMC4yNTktOS44NTkgMC0xMC43NzctLjI2Mi0xNi42NDItLjI2Mkg0MTcuMDE3Yy0yMi41MyAwLTM5LjExMS0xMC42NTYtNDYuMjk1LTI5Ljk5N2wtNDkuOTY3LTE1MS45MzdjLTIuMjQ3LTYuMjEyLTcuNDY3LTIuNDc2LTcuNjMxLTIuMzIyLTU3Ljk0NiA1My43MTUtOTMuNzc0IDEzMC4wMzYtOTMuNzc0IDIxNS4yODJ6TTUxNC41OCA4MDAuNjY0YzY2Ljg1MSAwIDEyMS4wNDUtNTMuNjM1IDEyMS4wNDUtMTE5LjhzLTU0LjE5NC0xMTkuOC0xMjEuMDQ1LTExOS44Yy02Ni44NTMgMC0xMjEuMDQ1IDUzLjYzNS0xMjEuMDQ1IDExOS44czU0LjE5NCAxMTkuOCAxMjEuMDQ1IDExOS44eiIvPjxnbHlwaCB1bmljb2RlPSLupYMiIGdseXBoLW5hbWU9InBpbjQiIGQ9Ik0xMDA5LjQwOCA2NTEuMzI4bC0yOTQuMDE2IDI5NC4wOGMtOS4xNTIgOS4xODQtMjIuMjQgMTQuMDE2LTM0LjUyOCAxNC41OTItMTIuOTI4LS4xNi0yNS4yNDgtNi4wMTYtMzQuMTQ0LTE1LjM5Mi01Mi4wNjQtNTQuNTYtNzYuOTkyLTEyOC45MjgtNjkuMjE2LTIwMy4yMzJsLTk2LjczNi05Ni43NjhjLTQ2LjA4IDE3Ljg1Ni05NS42NDggMjcuMTY4LTE0NS4xODQgMjcuMTY4LTEwNi42ODggMC0yMDcuMDA4LTQxLjUzNi0yODIuMzM2LTExNi44NjRsLTcuMTY4LTcuMDcyYTQ3Ljk3NSA0Ny45NzUgMCAwMS0xNC4xMTItMzMuOTg0YzAtMTIuNzM2IDUuMDI0LTI0Ljk2IDE0LjA4LTMzLjk4NGwxOTYuNTc2LTE5Ni41NzZMNi45NzYtMTIuMDY0QzIuNTkyLTE3LjUzNiAwLTI0LjQ0OCAwLTMyYzAtMTcuNjk2IDE0LjMwNC0zMiAzMi0zMiA3LjU1MiAwIDE0LjQ5NiAyLjU5MiAxOS45MzYgNi45NzZsMjk1LjMyOCAyMzUuNjQ4TDU0My44NC0xNy45NTJhNDguMDYgNDguMDYgMCAwMTMzLjk1Mi0xNC4wOCA0Ny45MDcgNDcuOTA3IDAgMDEzMy45MiAxNC4wOGw3LjEzNiA3LjEzNmMxMTIuOCAxMTIuOCAxNDYuOTQ0IDI4MC44IDg5LjgyNCA0MjcuNjE2bDk2LjczNiA5Ni43MzZjNzQuNzItNy42OCAxNDguOTkyIDE3LjUwNCAyMDMuMiA2OS4xNTIgOS4zNDQgOC45MjggMTUuMjY0IDIxLjI0OCAxNS4zOTIgMzQuMTQ0LjE2IDEyLjkyOC01LjQ0IDI1LjM3Ni0xNC41OTIgMzQuNDk2ek04MzIgNjA4LjE5MmMtMTEuMTY4IDAtMjIuMzM2IDEuMTItMzMuMzQ0IDMuNDU2LTE1Ljg3MiAzLjM5Mi0zMi40MTYtMS41MzYtNDMuOTA0LTEzLjAyNEw2MTcuNiA0NjEuNDcyYy0xNC41MjgtMTQuNTI4LTE4LjIwOC0zNi43MzYtOS4xMi01NS4xNjggNTEuOTM2LTEwNS40MDggMzguMjcyLTIyOS44ODgtMzIuMzg0LTMyMC43NjhsLTQyNi41NiA0MjYuNTkyYzUyLjk2IDQxLjI4IDExNy43OTIgNjMuNjQ4IDE4Ni4wMTYgNjMuNjQ4IDQ2LjU5MiAwIDkzLjE4NC0xMC44MTYgMTM0Ljc1Mi0zMS4zMjggMTguMzY4LTkuMDU2IDQwLjU3Ni01LjQ0IDU1LjE2OCA5LjEyTDY2Mi42MjQgNjkwLjcyYzExLjQ4OCAxMS40ODggMTYuNDE2IDI4LjAzMiAxMi45OTIgNDMuOTA0LTIuMzM2IDExLjEzNi0zLjQ4OCAyMi4yNzItMy40ODggMzMuMzc2IDAgMjQuMDY0IDUuMzc2IDQ3Ljc0NCAxNS42NDggNjkuMjQ4bDIxMy40NzItMjEzLjUwNGMtMjEuMzEyLTEwLjIwOC00NS4xODQtMTUuNTUyLTY5LjI0OC0xNS41NTJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lhCIgZ2x5cGgtbmFtZT0icG9saWdvbm8iIGQ9Ik0yOTUuNzYgNTQuMjE4aC0yNC4yODNMMzIuODUxIDQ2Ny41MjMgMjcxLjQ4IDg4MC44MzdoNDc3LjIzNGwyMzguNjM1LTQxMy4zMTRMNzQ4LjcxNCA1NC4yMjFsLTQ1Mi45NTQtLjAwM3pNMTQ2LjQxOCA0NjcuNTIzbDE4MS44NDctMzE0Ljk1MSAzNjMuNjcuMDA2IDE4MS44NDEgMzE0Ljk0NS0xODEuODQxIDMxNC45NkgzMjguMjYybC0xODEuODQ0LTMxNC45NnoiLz48Z2x5cGggdW5pY29kZT0i7qWFIiBnbHlwaC1uYW1lPSJwb3NpY2lvbiIgZD0iTTY2My42NDYgMjU2LjIwN2MtMjEuODYxLTMxLjY0Ni00Mi4zNzMtNTkuMTM4LTU5LjQ1OS04MS4yMTMgMTY5LjQ5My0xMC4yMzUgMjgwLjU3NS00Ni44MjcgMzIxLjg3OC03NC4wMTktNDguMzktMzEuOTAzLTE5Mi4yNTMtNzYuNzgxLTQxNC4wMTEtNzYuNzgxcy0zNjUuNjY0IDQ0LjktNDE0LjA3NSA3Ni43ODFjNDEuMzI0IDI3LjIxNCAxNTIuMzIxIDYzLjc4NSAzMjEuNjQyIDczLjk3Ni0xNy4xMjkgMjIuMTE4LTM3LjY2MyA0OS41NjctNTkuNTQ1IDgxLjIxM0MxNTEuNDg2IDIzNS42My4wMDEgMTczLjkyMy4wMDEgMTAxLjAxN2MwLTg5LjcxNCAyMjkuMjUyLTE2Mi40NyA1MTIuMDExLTE2Mi40NyAyODIuNzggMCA1MTEuOTg5IDcyLjcxMyA1MTEuOTg5IDE2Mi40Ny4wNDMgNzIuOTQ5LTE1MS41OTMgMTM0LjY1Ni0zNjAuMzU0IDE1NS4xOXptLTIwNS40NDItNTguOTg4Yy0xMy42NiA5LjUyOC0yNy40NzEgMjEuNjI2LTQyLjI0NSAzNi4xMjEtMjkuMjY5IDI4LjkwNS02MS43NzIgNjcuNDI0LTkyLjg2MSAxMTAuODI1LTYxLjQ1MSA4Ny42MTUtMTE5LjA5IDE4OS42ODQtMTIwLjY3NSAyODEuODE3LjA4NiAxNjguODkzIDEzNy4xODMgMzA1LjkyNiAzMDYuMDEyIDMwNi4wMTIgMTY4Ljc4Ni0uMDg2IDMwNS45MjYtMTM3LjExOSAzMDYuMDEyLTMwNi4wMTItMS4xOTktODAuOTU2LTQ2LjA3Ny0xNjguNDQzLTk3LjgyOS0yNDguNTQzLTUzLjAxNS03OS43MzYtMTExLjg3NS0xNDcuNTAzLTE1Ny45OTUtMTgwLjIyLTE0LjIzOS04Ljk5My0yNS45MjktMTcuOTQzLTUwLjE2Ny0xOS4wOTl2NDIuODAxLTQyLjgyM2MtMjQuMjgxIDEuMTk5LTM1Ljk1IDEwLjEwNi01MC4yNTMgMTkuMTJ6TTI4OC4xMTIgNjI1Ljk4MmMtLjcwNy0zNi42MzUgMjIuMTM5LTk4LjUxNCA1Ni44OS0xNTcuOTczIDM0LjM0NC01OS44MjMgNzkuMjg2LTExOS4wMDUgMTE2LjY3MS0xNTguODMgMTguNTg1LTIwLjI3NyAzNi45NTYtMzUuNzc4IDQ2Ljc0MS00Mi41NDQuNDUuMy44OTkuNiAxLjM3Ljk0MiA3LjYyMiA1LjI0NiAxOC42NDkgMTQuNjAzIDMwLjkzOSAyNi43NjQgMjQuNzczIDI0LjM0NSA1NC45MiA1OS44ODggODMuMzMzIDk5LjY0OSA1Ny41OTcgNzguNjQ0IDEwNi4zMjkgMTc5LjA4NSAxMDQuNzQ1IDIzMS45OTItLjI1NyAxMjEuNDAzLTk5LjAwNiAyMjAuMTMxLTIyMC4zNjYgMjIwLjM0NS0xMjEuMzgxLS4yMTQtMjIwLjEwOS05OC45NDItMjIwLjMyMy0yMjAuMzQ1em0zNS41MjEgMGMuMDg2IDEwMi4wMDQgODIuNzc2IDE4NC43MTYgMTg0LjgwMiAxODQuODAydi04NS42NDZjLTU0LjUzNS0uMTI4LTk5LjAyOC00NC42MjEtOTkuMTEzLTk5LjE3OC4wODYtNTQuNDkyIDQ0LjU3OS05OS4wMjggOTkuMTEzLTk5LjExMyA1NC41MzUuMDg2IDk4Ljk4NSA0NC41NzkgOTkuMTEzIDk5LjExMy0uMTUgNTQuNTk5LTQ0LjU3OSA5OS4wMjgtOTkuMTEzIDk5LjExM3Y4NS43MzFjMTAxLjk4Mi0uMDg2IDE4NC42NzMtODIuNzU1IDE4NC43MzgtMTg0LjgwMi0uMDg2LTEwMS45ODItODIuNzU1LTE4NC42NzMtMTg0LjczOC0xODQuNzM4LTEwMi4wMjUuMDY0LTE4NC42OTUgODIuNzM0LTE4NC44MDIgMTg0LjcxNnoiLz48Z2x5cGggdW5pY29kZT0i7qWGIiBnbHlwaC1uYW1lPSJwb3NpY2lvbjIiIGQ9Ik04NzcuNzE0IDgyLjI4NnEwLTM2LTM1LjE0My02NC44NTd0LTkzLjcxNC00Ni4yODYtMTI4LjU3MS0yNi4yODZUNDc1LjQyOS02NHQtMTQ0Ljg1NyA4Ljg1Ny0xMjguNTcxIDI2LjI4Ni05My43MTQgNDYuMjg2LTM1LjE0MyA2NC44NTdxMCAyOCAxOC44NTcgNTAuNTcxdDUyIDM4IDY3LjQyOSAyNS40MjkgNzQuODU3IDE2Ljg1N3ExNC44NTcgMi44NTcgMjcuNDI5LTZ0MTQuODU3LTIzLjcxNHEyLjg1Ny0xNC44NTctNi0yNy40Mjl0LTIzLjcxNC0xNC44NTdxLTMzLjE0My01LjcxNC02MC41NzEtMTMuNDI5dC00My43MTQtMTQuNTcxLTI3LjcxNC0xMy40MjktMTUuNzE0LTExLjE0My00Ljg1Ny02Ljg1N3ExLjcxNC02LjI4NiAxNS40MjktMTUuMTQzdDQxLjcxNC0xOC44NTcgNjUuMTQzLTE4LjU3MSA5MS43MTQtMTQuMjg2IDExNS4xNDMtNS43MTQgMTE1LjE0MyA1LjcxNCA5MS43MTQgMTQuMjg2VDc0Ny40MzIgNDh0NDEuNzE0IDE5LjE0MyAxNS40MjkgMTUuNzE0cS0uNTcxIDIuMjg2LTQuODU3IDYuMjg2VDc4NC4wMDQgMTAwdC0yNy43MTQgMTMuNDI5LTQzLjcxNCAxNC4yODYtNjAuNTcxIDEzLjQyOXEtMTQuODU3IDIuMjg2LTIzLjcxNCAxNC44NTd0LTYgMjcuNDI5cTIuMjg2IDE0Ljg1NyAxNC44NTcgMjMuNzE0dDI3LjQyOSA2cTQwLjU3MS02Ljg1NyA3NC44NTctMTYuODU3dDY3LjQyOS0yNS40MjkgNTItMzggMTguODU3LTUwLjU3MXptLTIxOS40MjggNTEyVjM3NC44NTdxMC0xNC44NTctMTAuODU3LTI1LjcxNHQtMjUuNzE0LTEwLjg1N2gtMzYuNTcxVjExOC44NTdxMC0xNC44NTctMTAuODU3LTI1LjcxNHQtMjUuNzE0LTEwLjg1N0g0MDIuMjg3cS0xNC44NTcgMC0yNS43MTQgMTAuODU3dC0xMC44NTcgMjUuNzE0djIxOS40MjloLTM2LjU3MXEtMTQuODU3IDAtMjUuNzE0IDEwLjg1N3QtMTAuODU3IDI1LjcxNHYyMTkuNDI5cTAgMzAuMjg2IDIxLjQyOSA1MS43MTR0NTEuNzE0IDIxLjQyOWgyMTkuNDI5cTMwLjI4NiAwIDUxLjcxNC0yMS40Mjl0MjEuNDI5LTUxLjcxNHptLTU0Ljg1NyAyMTkuNDI4cTAtNTMuMTQzLTM3LjQyOS05MC41NzF0LTkwLjU3MS0zNy40MjktOTAuNTcxIDM3LjQyOS0zNy40MjkgOTAuNTcxIDM3LjQyOSA5MC41NzEgOTAuNTcxIDM3LjQyOVQ1NjYgOTA0LjI4NXQzNy40MjktOTAuNTcxeiIvPjxnbHlwaCB1bmljb2RlPSLupYciIGdseXBoLW5hbWU9InBvc2ljaW9uMyIgZD0iTTg5Ni4wMDMgMTI3Ljk5NWMwLTEzMS45MzUtMTk5LjA1Ny0xOTEuOTk3LTM4NC4wMDEtMTkxLjk5Ny0xODQuOTM0IDAtMzg0LjAwMyA2MC4wNjItMzg0LjAwMyAxOTEuOTk3IDAgMTA5LjEzMiAxMzYuMjUzIDE2OC45MzcgMjg3Ljk5OCAxODYuNDQxdi02NC45NGMtMTI5LjUyNy0xNi4zNjgtMjIzLjk5OC02NC4yNDctMjIzLjk5OC0xMjEuNTAxQzE5MS45OTkgNTcuMzE1IDMzNS4yMiAwIDUxMiAwYzE3Ni43NSAwIDMxOS45OTggNTcuMzE1IDMxOS45OTggMTI3Ljk5NSAwIDU3LjI1NC05NC40OTQgMTA1LjEzMy0yMjMuOTk4IDEyMS41MDF2NjQuOTRjMTUxLjc0My0xNy41MDQgMjg4LjAwMi03Ny4zMDkgMjg4LjAwMi0xODYuNDQxek01MTIgOTYwYy0xMjMuNjg5IDAtMjIzLjk5OC0xMDAuMzEyLTIyMy45OTgtMjI0LjAwMiAwLTExMi43NDcgODMuNTk0LTIwNS4xMjQgMTkxLjk5Ny0yMjAuNzQ1VjEyNy45OTZoNjQuMDAzdjM4Ny4yNTdjMTA4LjM3NCAxNS42MjEgMTkyLjAwNiAxMDcuOTk5IDE5Mi4wMDYgMjIwLjc0NUM3MzYuMDA4IDg1OS42ODcgNjM1LjY4OSA5NjAgNTEyIDk2MHptLTY0LjAwMy0xOTIuMDAyYy0zNS4zNzUgMC02My45OTYgMjguNjI4LTYzLjk5NiA2NC4wMDNzMjguNjIxIDYzLjk5NiA2My45OTYgNjMuOTk2YzM1LjM3OSAwIDY0LjAwMy0yOC42MjEgNjQuMDAzLTYzLjk5NnMtMjguNjI0LTY0LjAwMy02NC4wMDMtNjQuMDAzeiIvPjxnbHlwaCB1bmljb2RlPSLupYgiIGdseXBoLW5hbWU9InBvc2ljaW9uNCIgZD0iTTk5Mi4wMDYgNjcxLjk5OGMtMTMxLjU3LTQ4LjQ0LTIzMS44MDgtODIuOTM3LTMyMC4wMDEtMTkyLjAwMi03OC41NjktOTcuMTg1LTE5Mi4wMDYtMTMwLjg2OS0zMTkuOTk4LTY2LjgwOVY2NC4wMDRIMjg4djg2My45OTdjLS4wMDIgMTcuNjkgMTQuMzExIDMyIDMxLjk5OCAzMiAxNy42ODUgMCAzMi4wMDctMTQuMzExIDMyLjAwNy0zMiA3MS4wNTgtMTAzLjMxMSAxOTQuNTU3LTEyNi4xOTIgMzE5Ljk5OC0xMjguMDAzQzg2NCA3OTcuMTkxIDk5Mi4wMDYgNjcxLjk5OSA5OTIuMDA2IDY3MS45OTl6bS01NzYuMDA5LTQyNC41di02NS4xMTVDNDkxLjQ5NyAxNjYuOTM5IDU0NCAxMzQuMTc5IDU0NCA5NS45OTEgNTQ0IDQyLjk5MiA0NDMuNjgzLS4wMTIgMzE5Ljk5OC0uMDEyIDE5Ni4zMDktLjAxMiA5NiA0Mi45OTIgOTYgOTYuMDAxYzAgMzguMTc3IDUyLjQ5NyA3MC45MzUgMTI3Ljk5NSA4Ni4zODJ2NjUuMTE1QzEwNy43NTEgMjI3LjM3NSAzMS45OTMgMTcwLjk5NyAzMS45OTMgOTYuMDA0YzAtOTQuMTkgMTE4LjQzOS0xNjAuMDAzIDI4OC4wMDItMTYwLjAwMyAxNjkuNTU5IDAgMjg4LjAwNCA2NS44MTUgMjg4LjAwNCAxNjAuMDAzLjAwNCA3NC45OTQtNzUuNzYgMTMxLjM3MS0xOTIuMDA0IDE1MS40OTR6Ii8+PGdseXBoIHVuaWNvZGU9Iu6liSIgZ2x5cGgtbmFtZT0icG9zaWNpb241IiBkPSJNNjQ3LjU5NiA1ODcuMDQ5bDU4LjgzMy0yMTEuMzk0YzIuNjU2LTkuNTQyIDEuNDY3LTE4Ljc3LTMuNTY1LTI3LjY4NHMtMTIuMzE5LTE0LjY5OC0yMS44NjItMTcuMzU0bC0zNS4yMzMtOS44MDUgNzkuODc3LTE0NS4xNjIgNDUuOTY5LTM5Ljk4NWMyLjY1NS05LjU0MiAxLjQ2Ni0xOC43Ny0zLjU2Ni0yNy42ODNzLTEyLjMxOS0xNC42OTgtMjEuODYyLTE3LjM1NGwtMTkuMzMyLTQuOTQ2cy0xMi42NjYtMy4xMS0yMS4wNDctMi4zNDktMTkuOTU5IDYuNTU1LTE5Ljk1OSA2LjU1NWwtNDEuNTUxIDIxLjE3NC01Ni41ODQgODYuMzY2TDY0Ny45NTYgODAuMzFzNS4yODEtOC40MDcgMS40NzEtMjAuNTk4Yy0zLjA0Ny0xMS4wNDgtMTIuMTktMTIuOTUzLTEyLjE5LTEyLjk1M2wtNDYuMTk5LTEzLjA3Yy05LjU0Mi0yLjY1NS0xOC43Ny0xLjQ2Ny0yNy42ODMgMy41NjUtOC45MTMgNS4wMzQtMTQuNjk5IDEyLjMyMS0xNy4zNTQgMjEuODYyTDQzNC4zNzUgMjYxLjk3OGwtMzUuMjMzLTkuODA1Yy05LjU0Mi0yLjY1NS0xOC43Ny0xLjQ2Ny0yNy42ODMgMy41NjVzLTE0LjY5OSAxMi4zMjEtMTcuMzU0IDIxLjg2MmwtNTguODMzIDIxMS4zOTRjLTUuNDE0IDE5LjQ1MS0zLjE1NCAzNy45NzMgNi43NzggNTUuNTY2czI0LjYyNSAyOS4wOTYgNDQuMDc1IDM0LjUxbDIxMS4zOTQgNTguODMzYzE5LjQ1MSA1LjQxNCAzNy45NzQgMy4xNTQgNTUuNTY2LTYuNzc5czI5LjA5NS0yNC42MjQgMzQuNTA5LTQ0LjA3NXpNNTM1LjkxNSA3ODMuNzM1YzkuNDk5LTM0LjEzMSA1LjU3My02Ni41NjEtMTEuNzc0LTk3LjI5LTE3LjM0OS0zMC43MjktNDMuMDg5LTUwLjg0My03Ny4yMjEtNjAuMzQycy02Ni41NjItNS41NzQtOTcuMjkgMTEuNzc0Yy0zMC43MjkgMTcuMzQ5LTUwLjg0MyA0My4wODktNjAuMzQyIDc3LjIycy01LjU3NCA2Ni41NjIgMTEuNzc0IDk3LjI5YzE3LjM0OSAzMC43MjkgNDMuMDg5IDUwLjg0MyA3Ny4yMiA2MC4zNDJzNjYuNTYyIDUuNTc0IDk3LjI5MS0xMS43NzQgNTAuODQzLTQzLjA4OSA2MC4zNDItNzcuMjJ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6liiIgZ2x5cGgtbmFtZT0icG9zaWNpb242IiBkPSJNNDQ2LjAzMiA2NjcuNzcxYzYxLjcyMSAyMy4wMDcgOTMuMjIzIDkxLjk0NyA3MC4yMSAxNTMuNjc0LTIzLjAwNyA2MS43MjUtOTEuOTQ5IDkzLjIyMy0xNTMuNjcyIDcwLjIxMi02MS43MDYtMjMuMDAzLTkzLjE4Ni05MS45MzMtNzAuMTc3LTE1My42NTkgMjMuMDExLTYxLjcyNyA5MS45MzMtOTMuMjI5IDE1My42MzktNzAuMjI2ek03MTIuNzcgNDcyLjY1YzEzLjQwOC04LjgwNiAzMC40MDEtMTAuNzE1IDQ1LjQ0OS01LjEwNiAxMC4xMTkgMy43NzIgMTguNjEyIDEwLjU1MSAyNC41NiAxOS42MDMgNy40MTIgMTEuMjg0IDkuOTg2IDI0Ljc4MyA3LjI0OCAzOC4wMDctMi43MzYgMTMuMjI0LTEwLjQ1OSAyNC41OTItMjEuNzQ4IDMyLjAwNmwtNTcuOTg5IDM4LjA4OWMtMTMuMjA4IDguNjczLTM0LjkwOCAyMi4yODItNDguMzcyIDMwLjMzM2wtODMuMTU3IDQ5LjcyM2MtMTMuMjUzIDcuOTI0LTI1Ljc2NiAxMC42MzUtNDMuNjM3IDMuOTczLS40NDYtLjE2OC0xNDAuNjg3LTUyLjQ0NS0xNDAuNjg3LTUyLjQ0NWwtMTA5LjEzNiAyNi43MmMtMTMuMDQ2IDMuMTg5LTMwLjYzNCA4Ljg3NC0zNy42MzggMTEuODI3bC0xOC41MjIgNy43OTVjLTExLjkxMyA1LjAxNC0yNS4xNDcgNS4yODgtMzcuMjU3Ljc3NC0xMy4wMTUtNC44NTItMjMuNTY2LTE0Ljk3MS0yOC45NTEtMjcuNzY1LTUuMjM3LTEyLjQ0OC01LjMxMy0yNi4xODgtLjIxNS0zOC42OTMgNS4xLTEyLjUwNSAxNC43Ni0yMi4yNzQgMjcuMjA4LTI3LjUxM2wxOC41MTYtNy43ODljMTIuNjQyLTUuMzI1IDM1LjM0Ni0xMi41NjcgNTIuODEtMTYuODQ3bDE0My40NzMtMzUuMTIxIDc0LjY0OC0xNTYuMDhjLjEwNC0uNDIyLjE2Ni0uODQ0LjI4NS0xLjI2Mmw0Mi4zMTItMTU0LjExYzYuMTk5LTIyLjU5NiAyMi4yMjktNTEuNTAxIDM4LjEyMS02OC43MzFsNzUuOTE1LTgyLjM0YzE0Ljc0NC0xNS45OTMgMzcuNDQ0LTIxLjQyIDU3LjgyNy0xMy44MjJhNTIuOTU3IDUyLjk1NyAwIDAxMTcuNDg4IDEwLjc2OGMxMC40NjcgOS42NDYgMTYuNTUyIDIyLjc5NiAxNy4xMjcgMzcuMDI0LjU4IDE0LjIyMy00LjQxOCAyNy44MjYtMTQuMDcgMzguMjg5bC03NS45MjMgODIuMzQ4Yy00LjQxMSA0Ljc4OC0xMS45NjQgMTguMzk3LTEzLjY4OSAyNC42ODdsLTI4LjI5NSAxMDMuMDY0IDE2LjIwMiA2LjA0MiA2NS42MTItMTAzLjYzOWMxMi4xMzQtMTkuMTY1IDMxLjY4Ny0zMi4wNDUgNTMuNjMxLTM1LjM0NCAxMi42NTUtMS45MDUgMjUuNzY0LS41MTQgMzcuOTEzIDQuMDE0IDguNjY1IDMuMjMgMTYuNjUyIDcuOTQyIDIzLjc0IDE0LjAxMmw0NS4xNDYgMzguNjU4YzIyLjMyMyAxOS4xMTYgMjQuOTQxIDUyLjgzIDUuODI1IDc1LjE1My0xNC40OSAxNi45MjUtMzguMjQ2IDIzLjA3My01OS4xMTMgMTUuMjkyYTUzLjExNiA1My4xMTYgMCAwMS0xNi4wNDQtOS40NjhsLTE5LjI1NS0xNi40OS01OS4xOTEgOTMuNDg3LTQ1LjQxIDk0Ljk2YTk1MS4xNjMgOTUxLjE2MyAwIDAwOS4yNTctNS45OWw1Ny45ODktMzguMDk1eiIvPjxnbHlwaCB1bmljb2RlPSLupYsiIGdseXBoLW5hbWU9InBvc2ljaW9uNyIgZD0iTTg3Ny43MTQgODIuMjg2YzAtMjQtMTEuNzE0LTQ1LjYxOS0zNS4xNDMtNjQuODU3cy01NC42NjYtMzQuNjY2LTkzLjcxNC00Ni4yODZjLTM5LjA0Ny0xMS42MTktODEuOTA1LTIwLjM4MS0xMjguNTcxLTI2LjI4NlM1MjUuMzM0LTY0IDQ3NS40MjktNjRzLTk4LjE5IDIuOTUzLTE0NC44NTcgOC44NTctODkuNTIzIDE0LjY2Ny0xMjguNTcxIDI2LjI4NmMtMzkuMDQ3IDExLjYxOS03MC4yODYgMjcuMDQ4LTkzLjcxNCA0Ni4yODZTNzMuMTQ0IDU4LjI4NiA3My4xNDQgODIuMjg2YzAgMTguNjY3IDYuMjg2IDM1LjUyNCAxOC44NTcgNTAuNTcxczI5LjkwNSAyNy43MTQgNTIgMzhjMjIuMDk1IDEwLjI4NiA0NC41NzEgMTguNzYyIDY3LjQyOSAyNS40MjlzNDcuODEgMTIuMjg2IDc0Ljg1NyAxNi44NTdjOS45MDUgMS45MDUgMTkuMDQ4LS4wOTUgMjcuNDI5LTZzMTMuMzM0LTEzLjgwOSAxNC44NTctMjMuNzE0YzEuOTA1LTkuOTA1LS4wOTUtMTkuMDQ3LTYtMjcuNDI5cy0xMy44MDktMTMuMzMzLTIzLjcxNC0xNC44NTdjLTIyLjA5NS0zLjgwOS00Mi4yODYtOC4yODYtNjAuNTcxLTEzLjQyOXMtMzIuODU3LTEwLTQzLjcxNC0xNC41NzEtMjAuMDk1LTkuMDQ3LTI3LjcxNC0xMy40MjljLTcuNjE5LTQuMzgxLTEyLjg1Ny04LjA5NS0xNS43MTQtMTEuMTQzcy00LjQ3Ni01LjMzMy00Ljg1Ny02Ljg1N2MxLjE0My00LjE5IDYuMjg2LTkuMjM4IDE1LjQyOS0xNS4xNDNzMjMuMDQ4LTEyLjE5IDQxLjcxNC0xOC44NTdjMTguNjY3LTYuNjY2IDQwLjM4MS0xMi44NTcgNjUuMTQzLTE4LjU3MXM1NS4zMzQtMTAuNDc2IDkxLjcxNC0xNC4yODZjMzYuMzgxLTMuODA5IDc0Ljc2Mi01LjcxNCAxMTUuMTQzLTUuNzE0czc4Ljc2MiAxLjkwNSAxMTUuMTQzIDUuNzE0YzM2LjM4MSAzLjgxIDY2Ljk1MyA4LjU3MSA5MS43MTQgMTQuMjg2czQ2LjQ3NyAxMiA2NS4xNDMgMTguODU3YzE4LjY2NyA2Ljg1NyAzMi41NzEgMTMuMjM4IDQxLjcxNCAxOS4xNDNzMTQuMjg2IDExLjE0MyAxNS40MjkgMTUuNzE0Yy0uMzgxIDEuNTI0LTIgMy42MTktNC44NTcgNi4yODZzLTguMDk1IDYuMjg2LTE1LjcxNCAxMC44NTctMTYuODU3IDkuMDQ4LTI3LjcxNCAxMy40MjktMjUuNDI5IDkuMTQzLTQzLjcxNCAxNC4yODYtMzguNDc2IDkuNjE5LTYwLjU3MSAxMy40MjljLTkuOTA1IDEuNTI0LTE3LjgwOSA2LjQ3Ny0yMy43MTQgMTQuODU3cy03LjkwNSAxNy41MjQtNiAyNy40MjljMS41MjQgOS45MDUgNi40NzcgMTcuODEgMTQuODU3IDIzLjcxNHMxNy41MjQgNy45MDUgMjcuNDI5IDZjMjcuMDQ4LTQuNTcxIDUyLTEwLjE5IDc0Ljg1Ny0xNi44NTdzNDUuMzM0LTE1LjE0MyA2Ny40MjktMjUuNDI5YzIyLjA5NS0xMC4yODYgMzkuNDI5LTIyLjk1MiA1Mi0zOHMxOC44NTctMzEuOTA1IDE4Ljg1Ny01MC41NzF6bS0yMTkuNDI4IDUxMlYzNzQuODU3YzAtOS45MDUtMy42MTktMTguNDc2LTEwLjg1Ny0yNS43MTRzLTE1LjgwOS0xMC44NTctMjUuNzE0LTEwLjg1N2gtMzYuNTcxVjExOC44NTdjMC05LjkwNS0zLjYxOS0xOC40NzYtMTAuODU3LTI1LjcxNHMtMTUuODA5LTEwLjg1Ny0yNS43MTQtMTAuODU3SDQwMi4yODdjLTkuOTA1IDAtMTguNDc2IDMuNjE5LTI1LjcxNCAxMC44NTdzLTEwLjg1NyAxNS44MS0xMC44NTcgMjUuNzE0djIxOS40MjloLTM2LjU3MWMtOS45MDUgMC0xOC40NzYgMy42MTktMjUuNzE0IDEwLjg1N3MtMTAuODU3IDE1LjgxLTEwLjg1NyAyNS43MTR2MjE5LjQyOWMwIDIwLjE5MSA3LjE0MyAzNy40MjkgMjEuNDI5IDUxLjcxNHMzMS41MjQgMjEuNDI5IDUxLjcxNCAyMS40MjloMjE5LjQyOWMyMC4xOTEgMCAzNy40MjktNy4xNDMgNTEuNzE0LTIxLjQyOXMyMS40MjktMzEuNTIzIDIxLjQyOS01MS43MTR6bS01NC44NTcgMjE5LjQyOGMwLTM1LjQyOS0xMi40NzYtNjUuNjE5LTM3LjQyOS05MC41NzFzLTU1LjE0My0zNy40MjktOTAuNTcxLTM3LjQyOS02NS42MTkgMTIuNDc3LTkwLjU3MSAzNy40MjljLTI0Ljk1MiAyNC45NTMtMzcuNDI5IDU1LjE0My0zNy40MjkgOTAuNTcxczEyLjQ3NyA2NS42MTkgMzcuNDI5IDkwLjU3MWMyNC45NTMgMjQuOTUzIDU1LjE0MyAzNy40MjkgOTAuNTcxIDM3LjQyOXM2NS42MTktMTIuNDc2IDkwLjU3MS0zNy40MjljMjQuOTUzLTI0Ljk1MiAzNy40MjktNTUuMTQzIDM3LjQyOS05MC41NzF6bTI4OC0zNTEuNDI4YzAgMTUuMzAxLTUuNDEzIDI4LjM2NC0xNi4yMzkgMzkuMTlzLTIzLjg4OSAxNi4yMzktMzkuMTkgMTYuMjM5Yy0xNS4zIDAtMjguMzY0LTUuNDEzLTM5LjE5LTE2LjIzOXMtMTYuMjM5LTIzLjg4OS0xNi4yMzktMzkuMTljMC0xNS4zIDUuNDEzLTI4LjM2NCAxNi4yMzktMzkuMTlzMjMuODg5LTE2LjIzOSAzOS4xOS0xNi4yMzljMTUuMzAxIDAgMjguMzY0IDUuNDEzIDM5LjE5IDE2LjIzOXMxNi4yMzkgMjMuODg5IDE2LjIzOSAzOS4xOXptNTUuNDI4IDBjMC0xNS43MzMtMi4zODItMjguNjUzLTcuMTQ1LTM4Ljc1N2wtNzguODEzLTE2Ny41ODVjLTIuMzA5LTQuNzYzLTUuNzM4LTguNTE2LTEwLjI4NS0xMS4yNTlzLTkuNDE4LTQuMTE0LTE0LjYxNS00LjExNC0xMC4wNjggMS4zNzEtMTQuNjE1IDQuMTE0Yy00LjU0NyAyLjc0My03LjkwMyA2LjQ5NS0xMC4wNjggMTEuMjU5bC03OS4wMjkgMTY3LjU4NWMtNC43NjMgMTAuMTA0LTcuMTQ1IDIzLjAyMy03LjE0NSAzOC43NTcgMCAzMC42MDIgMTAuODI2IDU2LjcyNyAzMi40NzggNzguMzc5czQ3Ljc3OCAzMi40NzggNzguMzc5IDMyLjQ3OGMzMC42MDIgMCA1Ni43MjctMTAuODI2IDc4LjM3OS0zMi40NzhzMzIuNDc4LTQ3Ljc3OCAzMi40NzgtNzguMzc5ek0yMDUuNzE0IDczMmMwIDE1LjMwMS01LjQxMyAyOC4zNjQtMTYuMjM5IDM5LjE5cy0yMy44ODkgMTYuMjM5LTM5LjE5IDE2LjIzOWMtMTUuMyAwLTI4LjM2NC01LjQxMy0zOS4xOS0xNi4yMzlTOTQuODU2IDc0Ny4zMDEgOTQuODU2IDczMmMwLTE1LjMgNS40MTMtMjguMzY0IDE2LjIzOS0zOS4xOXMyMy44ODktMTYuMjM5IDM5LjE5LTE2LjIzOWMxNS4zMDEgMCAyOC4zNjQgNS40MTMgMzkuMTkgMTYuMjM5czE2LjIzOSAyMy44ODkgMTYuMjM5IDM5LjE5em01NS40MjkgMGMwLTE1LjczMy0yLjM4Mi0yOC42NTMtNy4xNDUtMzguNzU3bC03OC44MTMtMTY3LjU4NWMtMi4zMDktNC43NjMtNS43MzgtOC41MTYtMTAuMjg1LTExLjI1OXMtOS40MTgtNC4xMTQtMTQuNjE1LTQuMTE0LTEwLjA2OCAxLjM3MS0xNC42MTUgNC4xMTRjLTQuNTQ3IDIuNzQzLTcuOTAzIDYuNDk1LTEwLjA2OCAxMS4yNTlMNDYuNTczIDY5My4yNDNjLTQuNzYzIDEwLjEwNC03LjE0NSAyMy4wMjMtNy4xNDUgMzguNzU3IDAgMzAuNjAyIDEwLjgyNiA1Ni43MjcgMzIuNDc4IDc4LjM3OXM0Ny43NzggMzIuNDc4IDc4LjM3OSAzMi40NzhjMzAuNjAyIDAgNTYuNzI3LTEwLjgyNiA3OC4zNzktMzIuNDc4czMyLjQ3OC00Ny43NzggMzIuNDc4LTc4LjM3OXoiLz48Z2x5cGggdW5pY29kZT0i7qWMIiBnbHlwaC1uYW1lPSJwcmlzbWF0aWNvcyIgZD0iTTE4Mi4yMzcgODg1LjY4MmgxMzYuMzk3YzcuNjg0IDAgMTMuOTEyLTYuMjMgMTMuOTEyLTEzLjkxMnYtNTMuOTg5aDM1LjUzNWM3LjY4NCAwIDEzLjkxMi02LjIyOCAxMy45MTItMTMuOTE0VjY4NC45NjhoNTcuMzczYzcuOTgxIDEzLjU3NiAyMi41NzcgMjIuMTY2IDM4LjkzOSAyMi4xNjZoNjcuNjg0YzE2LjM1NyAwIDMwLjk1My04LjU4MyAzOC45MzktMjIuMTY2aDU3LjA4OHYxMTguODk3YzAgNy42ODYgNi4yMyAxMy45MTQgMTMuOTE0IDEzLjkxNGgzNS44MTV2NTMuOTkxYzAgNy42ODQgNi4yMjYgMTMuOTEyIDEzLjkxMiAxMy45MTJoMTM2LjM5OWM3LjY4NCAwIDEzLjkxMi02LjIyOCAxMy45MTItMTMuOTEydi01My45ODloMzUuMjQ4YzcuMzk1IDAgMTMuNTAyLTUuNzg4IDEzLjg5Ni0xMy4xNzVsMzMuMzk5LTU1My4yMThoMjcuMTU2YzcuNjg2IDAgMTMuOTE0LTYuMjI2IDEzLjkxNC0xMy45MTJWNDQuNzEyYzAtNy42ODQtNi4yMjgtMTMuOTEyLTEzLjkxNC0xMy45MTJINjE1LjU4MmMtNy42ODggMC0xMy45MTYgNi4yMjgtMTMuOTE2IDEzLjkxMnYxOTIuNzY0YzAgNy42ODYgNi4yMjggMTMuOTEyIDEzLjkxNiAxMy45MTJoMjYuNDM2djkwLjM0NUg1ODQuOTNjLTcuOTgxLTEzLjU3Ni0yMi41NzctMjIuMTYzLTM4LjkzOS0yMi4xNjNoLTY3LjY4NGMtMTYuMzU3IDAtMzAuOTU2IDguNTc5LTM4LjkzOSAyMi4xNjNoLTU3LjM4MXYtOTAuMzQ1aDI2LjQzOGM3LjY4NCAwIDEzLjkxMi02LjIyNiAxMy45MTItMTMuOTEyVjQ0LjcxMmMwLTcuNjg0LTYuMjI4LTEzLjkxMi0xMy45MTItMTMuOTEySDU4LjM0Yy03LjY4NCAwLTEzLjkxIDYuMjI4LTEzLjkxIDEzLjkxMnYxOTIuNzY0YzAgNy42ODYgNi4yMjggMTMuOTEyIDEzLjkxIDEzLjkxMmgyNy4xNTZsMzMuMzk1IDU1My4yMThjLjM5NSA3LjM4NSA2LjQ5NiAxMy4xNzcgMTMuODk2IDEzLjE3N2gzNS41MzN2NTMuOTg3Yy4wMDYgNy42ODQgNi4yMzIgMTMuOTEyIDEzLjkxOCAxMy45MTJ6bTEyMi40NzktMjcuODI0SDE5Ni4xNDN2LTQwLjA3N2gxMDguNTczdjQwLjA3N3ptNTIzLjQyNCAwSDcxOS41NjV2LTQwLjA3N0g4MjguMTR2NDAuMDc3em0tNjQ1LjkwMy02Ny45MDNoLTM2LjI1bC0zMi42MjMtNTM4LjU3M2gyNDAuODAydjUzOC41NzNoLTE3MS45M3ptNTIzLjQxNiAwaC0zNS44MTVWMjUxLjM4Nkg5MTAuNjRsLTMyLjYyMyA1MzguNTczLTE3Mi4zNjQtLjAwNHpNNTU5LjgxNyA2NzIuNDQyYy0zLjI0IDQuMjIxLTguMzM5IDYuODY5LTEzLjgzMiA2Ljg2OWgtNjcuNjg0Yy01LjQ5MSAwLTEwLjU5NC0yLjY1NC0xMy44MzItNi44NjlhMTMuOTIzIDEzLjkyMyAwIDAwLTEuMjQxLTcuMjcyYy0xLjUzNi0zLjI4NS0yLjMxMi02Ljc1Ni0yLjMxMi0xMC4zMDhWMzcxLjg0MWMwLTMuNTQ3Ljc3Ni03LjAxNCAyLjMxOC0xMC4zMDNhMTMuOTM5IDEzLjkzOSAwIDAwMS4yMzktNy4yNzRjMy4yNC00LjIxOSA4LjM0Mi02Ljg2OSAxMy44MzQtNi44NjloNjcuNjc4YzUuNDkzIDAgMTAuNTk0IDIuNjU0IDEzLjgzMiA2Ljg2OWExMy45MTggMTMuOTE4IDAgMDAxLjI0MSA3LjI3NGMxLjUzNCAzLjI4OSAyLjMxOCA2Ljc1NiAyLjMxOCAxMC4zMDN2MjgzLjAyMWMwIDMuNTQ5LS43OCA3LjAyMS0yLjMxNCAxMC4zMDhhMTMuODggMTMuODggMCAwMC0xLjI0NSA3LjI3MnptLTEyNi43MjgtMTUuMjk4aC01MS4xMDR2LTI4Ny41OWg1MS4xMDR2Mjg3LjU5em0yMDguOTIyIDBoLTUwLjgxNXYtMjg3LjU5aDUwLjgxNXYyODcuNTl6TTk4LjY4OSAyMjMuNTY2SDcyLjI1MVY1OC42MjRIMzk0LjUxdjE2NC45NDJIOTguNjg5em01NTcuMjM2IDBoLTI2LjQzOFY1OC42MjRoMzIyLjI1OXYxNjQuOTQySDY1NS45MjV6TTYxNS41NzQgMTYuNDY4Yy0xNS42MDYuMDA0LTI4LjI0NCAxMi42MzgtMjguMjU0IDI4LjI0NHYxOTIuNzY0Yy4wMSAxNS42MSAxMi42NTMgMjguMjQ0IDI4LjI1NCAyOC4yNDhsMTIuMDk1LjAwNHY2MS42NzFoLTM1LjI1OGMtMTEuMDUxLTEzLjc2My0yNy45OC0yMi4xODItNDYuNDI4LTIyLjE2NmgtNjcuNjg0Yy0xOC40NDItLjAxNi0zNS4zNzcgOC4zOTMtNDYuNDI4IDIyLjE2NmgtMzUuNTUzdi02MS42NzFoMTIuMTAyYzE1LjYwNi0uMDA4IDI4LjI0LTEyLjY0MiAyOC4yNDgtMjguMjUyVjQ0LjcxMmMtLjAwOC0xNS42MDYtMTIuNjQyLTI4LjIzNi0yOC4yNDgtMjguMjVINTguMzQzYy0xNS42MS4wMTQtMjguMjQgMTIuNjQ4LTI4LjI0OCAyOC4yNXYxOTIuNzY0Yy4wMDggMTUuNjEgMTIuNjQyIDI4LjI0NCAyOC4yNDggMjguMjQ4bDEzLjY1Ni4wMDQgMzIuNTc1IDUzOS42NDhjLjgxMSAxNC45ODkgMTMuMTg1IDI2LjczNyAyOC4yMTMgMjYuNzQ1aDIxLjE5N3YzOS42NjZjLjAyMyAxNS41OTMgMTIuNjQyIDI4LjIyMyAyOC4yNTIgMjguMjM2aDEzNi4zOTljMTUuNjA2LS4wMTIgMjguMjM2LTEyLjY0OCAyOC4yNDgtMjguMjUybC0uMDA0LTM5LjY1MWgyMS4yMDFjMTUuNjA2LS4wMDggMjguMjQtMTIuNjQyIDI4LjI0OC0yOC4yNDhWNjk5LjMwN2gzNS41NDljMTEuMDQ3IDEzLjc2NSAyNy45NzQgMjIuMTgyIDQ2LjQyMiAyMi4xNjhoNjcuNjg0YzE4LjQ0NC4wMTggMzUuMzczLTguMzk3IDQ2LjQyNi0yMi4xNjhoMzUuMjY1VjgwMy44N2MuMDEgMTUuNjEgMTIuNjQ0IDI4LjI0IDI4LjI1NCAyOC4yNDhoMjEuNDczdjM5LjY1MWMuMDA4IDE1LjYwNiAxMi42NDIgMjguMjQ0IDI4LjI1MiAyOC4yNTJoMTM2LjM5OWMxNS42MDYtLjAxMiAyOC4yMzYtMTIuNjQyIDI4LjI0NC0yOC4yNTJ2LTM5LjY1MWgyMC45MTZjMTUuMDItLjAwOCAyNy4zOTgtMTEuNzQxIDI4LjIwMy0yNi42NDdsMzIuNTgyLTUzOS43NDJoMTMuNjY0YzE1LjYwMi0uMDA4IDI4LjI0NC0xMi42NDIgMjguMjUtMjguMjUyVjQ0LjcxM2MtLjAwNi0xNS42MDYtMTIuNjQ0LTI4LjI0LTI4LjI1LTI4LjI1bC0zNTAuMDg3LjAwNnptMjguMjQ4IDU2LjQ5NmgyOTMuNTg3djEzNi4yNjhINjQzLjgyMlY3Mi45NjR6bS01NTcuMjM3IDBoMjkzLjU4N3YxMzYuMjY4SDg2LjU4NVY3Mi45NjR6bTQyLjAxMyAxOTIuNzZoMjExLjIzM3Y1MDkuODk1SDE1OS40NzhsLTMwLjg4LTUwOS44OTV6bTU1NS41NzEuMDA0aDIxMS4yMzlsLTMwLjg4NiA1MDkuODk3LTE4MC4zNTEtLjAwNFYyNjUuNzI4aC0uMDAyem0tMjM2LjYwMyA5MC4zNDVsMi4zMDYtMy45MjQuMzI4IDMuNDE2YTM4Ljc2IDM4Ljc2IDAgMDAtMi43NzMgOC4yNTV2LTcuNzQ4aC4xMzl6bTEyNi44NjUtMy44OTFsMi4yODYgMy44ODdoLjE0MXY3Ljc2OGEzOS4xNiAzOS4xNiAwIDAwLTIuNzY5LTguMjY2bC4zNDItMy4zODl6bS0yOC40NDYgOS41NTJoLjA4NGEyNy41NzcgMjcuNTc3IDAgMDAxLjk5OSA1Ljg2M2MuNjg2IDEuNDk1Ljk2NyAyLjgxMi45NzMgNC4yNDF2MjgzLjAyM2MtLjAwNiAxLjQ0Ni0uMjg3IDIuNzY3LS45NSA0LjIwNWEyOC4wOTcgMjguMDk3IDAgMDAtMi4wMTMgNS45MDhINDc4LjIxYTI4LjQ0IDI4LjQ0IDAgMDAtMS45OTMtNS44NzRjLS42NzItMS40NjQtLjk1Mi0yLjc3NS0uOTYzLTQuMjM5VjM3MS44NGMuMDA4LTEuNDUyLjI4Ny0yLjc1My45NzktNC4yNTRhMjguMjY1IDI4LjI2NSAwIDAwMS45ODItNS44NTFoLjA5Nmw2Ny42NzQtLjAwMnptNTkuNTQ1IDIyLjE1N2gyMi4xNDV2MjU4LjkxNkg2MDUuNTNWMzgzLjg5MXptLTIwOS4yMTEgMGgyMi40MzZ2MjU4LjkxOGwtMjIuNDM2LjAwMnYtMjU4Ljkyem0yNDUuNjkgMjczLjI1M3ptLTIwOC45MTggMHptMTQuMzM2IDUuNzQ0YTM4LjU5NiAzOC41OTYgMCAwMDIuNzY3IDguMjUxbC0uMzM4IDMuMzk4LTIuMjk2LTMuOTA2aC0uMTM1di03Ljc0M2guMDAyem0xMjkuNDMzLjAwMnY3Ljc0MWgtLjE0M2wtMi4yNjkgMy44NjctLjM1NC0zLjM0OGEzOC45NTEgMzguOTUxIDAgMDAyLjc2Ny04LjI2em0tMTcuMDQzIDkuNTUyem0xNDUuODM2IDExNy41MTV6bTI4LjI0NCA0Mi4xNkg4MTMuOHYxMS40MDVsLTc5LjkwMy4wMDJ2LTExLjQwN3ptLTUyMy40MTggMGg3OS44OTl2MTEuNDA3aC03OS44OTl2LTExLjQwN3ptNjE3LjY2MSAyNS43Mzl6bS01MjMuNDI2IDB6Ii8+PGdseXBoIHVuaWNvZGU9Iu6ljSIgZ2x5cGgtbmFtZT0icmVnbGEiIGQ9Ik03NDQuODYyIDkzOS42MzJMMzYuMzI2IDIzMS4wODcgMzAyLjAyOS0zNC42MTZsNzA4LjUzNiA3MDguNTQ1LTI2NS43MDMgMjY1LjcwM3pNMzAyLjAyNiA1My45NTRMMTI0Ljg5MyAyMzEuMDg3bDY2LjQyMyA2Ni40MjYgODguNTY3LTg4LjU3IDQ0LjI4NSA0NC4yODUtODguNTY0IDg4LjU3IDQ0LjI4MiA0NC4yODIgNDQuMjg1LTQ0LjI4MiA0NC4yODIgNDQuMjgyLTQ0LjI4MiA0NC4yODIgNDQuMjg1IDQ0LjI5NCA4OC41NjctODguNTc2IDQ0LjI4NSA0NC4yODItODguNTY3IDg4LjU3NiA0NC4yODIgNDQuMjg1IDQ0LjI4NS00NC4yODUgNDQuMjg1IDQ0LjI4NS00NC4yODUgNDQuMjg1IDQ0LjI4NSA0NC4yODUgODguNTY0LTg4LjU3IDQ0LjI4NSA0NC4yODUtODguNTY3IDg4LjU2NyA0NC4yODIgNDQuMjg1IDQ0LjI4NS00NC4yODUgNDQuMjgyIDQ0LjI4NS00NC4yODIgNDQuMjg1IDY2LjQyNiA2Ni40MjYgMTc3LjEzMy0xNzcuMTMzTDMwMi4wMjkgNTMuOTU3eiIvPjxnbHlwaCB1bmljb2RlPSLupY4iIGdseXBoLW5hbWU9InJlZ2xhcyIgZD0iTTAgOTMxLjk3MVYtMzUuOTc0aDM2Ni42NTV2NjAxLjIwM2g2NTcuMzQ3djM2Ni43NDJILS4wMDF6bTMwNS43ODYtOTA3LjA2SDYwLjg2M1Y4MC40NWg4MC44NTF2NjAuODY0SDYwLjg2M3Y2MC44NTNoMTQxLjcwNHY2MC44NThINjAuODYzdjYwLjg3N2g4MC44NTF2NjAuODkzSDYwLjg2M3Y2MC44NjFoODAuODUxdjYwLjg1M0g2MC44NjN2NTguNzJoMjQ0LjkyM1YyNC45MTF6TTk2My4xNSA2MjYuMTI2aC01NS40NnY4MC44NjFoLTYwLjg1OHYtODAuODYxaC02MC44ODN2MTQxLjczNmgtNjAuOTQ3VjYyNi4xMjNoLTYwLjg1M3Y4MC44NjRoLTYwLjg3NXYtODAuODYxaC02MC44NTN2ODAuODYxaC02MC44NTN2LTgwLjg2MWgtNjAuODUzdjE0MS43MzZoLTYwLjg1OFY2MjYuMTIzaC02MC44NjR2ODAuODY0aC02MC44NTh2LTgwLjg2MWgtNjAuOTM3djgwLjg2MWgtNjAuODkxdi04MC44NjFINjAuODYzdjI0NC45NWg5MDIuMjg2di0yNDQuOTV6Ii8+PGdseXBoIHVuaWNvZGU9Iu6ljyIgZ2x5cGgtbmFtZT0icnV0YSIgZD0iTTgyMC43OTkgNTU0LjM5MmMuMDMzIDAgLjA2LjAyMS4wOTMuMDIxLS4wMzMgMC0uMDkzLS4wMjEtLjE2NS0uMDIxaC4wNzJ6bS00Ny4xMDIgMjUuOTY5Yy04LjUwNiAxMy40NC0xNy4yMDUgMjcuNzY4LTI1Ljk0OCA0Mi4zNGgtNjExLjg5Yy0zMy4zMjEgMC02MC40MjktMjcuMTExLTYwLjQyOS02MC40MzN2LTcyLjU3NWMwLTMzLjMxOSAyNy4xMDktNjAuNDIxIDYwLjQyOS02MC40MjFoMzU3LjcwN2MzLjQ3NSAwIDYuMzA1LTIuODM0IDYuMzA1LTYuMzAxVjMyMi44NDZjMC0zNC43MDggMjguMjUzLTYyLjk0MiA2Mi45NC02Mi45NDJoMTYxLjc5MWM3LjQwNyAwIDEzLjQ0Mi02LjAxNCAxMy40NDItMTMuNDIxVjE3LjczNGMwLTcuNDA3LTYuMDM3LTEzLjQzLTEzLjQ0Mi0xMy40M2gtMzQ3LjRjLTExLjQzNy0xOS41NTktMjMuMDc3LTM4Ljc1OC0zNC4zMTgtNTYuNTM0LTIuODQtNC40ODEtNi4zMzYtOC4zNTMtMTAuMTcxLTExLjc3MWgzOTEuODljNDUuMDY2IDAgODEuNzUxIDM2LjY3MiA4MS43NTEgODEuNzMydjIyOC43NTFjMCA0NS4wNi0zNi42ODQgODEuNzI4LTgxLjc1MSA4MS43MjhINTY4LjE4MXY5NC43NmMwIDQxLjE0LTMzLjQ4NSA3NC42MDctNzQuNjExIDc0LjYwN0gxNDMuNzM4djU2LjgxNGg2NzYuOTkxYy0xOS4yNDIuMDU0LTM2LjgxNiA5Ljc3OC00Ny4wMzEgMjUuOTY5ek0yOTUuNzkgMzI3LjM5M2MtNzAuNTQxIDAtMTI3Ljc3MS01Ny4yMDItMTI3Ljc3MS0xMjcuNzcxIDAtNTMuNzk5IDc0LjI3My0xNzcuNzcyIDEwOS41NTYtMjMzLjYzNiAzLjk0MS02LjIzNSAxMC44NDEtMTAuMDIzIDE4LjIxNS0xMC4wMjNhMjEuNTQxIDIxLjU0MSAwIDAxMTguMjEzIDEwLjAzOWMzNS4zMTggNTUuODg1IDEwOS41NTggMTc5LjgyIDEwOS41NTggMjMzLjYyMSAwIDcwLjU3LTU3LjIwMiAxMjcuNzY5LTEyNy43NzEgMTI3Ljc2OXptMC0xOTAuODQxYy0zMS42NTUgMC01Ny4zMDUgMjUuNjYyLTU3LjMwNSA1Ny4zMTkgMCAzMS42NjQgMjUuNjQ3IDU3LjMxNSA1Ny4zMDUgNTcuMzE1IDMxLjY1MyAwIDU3LjMwMy0yNS42NDkgNTcuMzAzLTU3LjMxNS0uMDAyLTMxLjY1Ny0yNS42NDktNTcuMzE5LTU3LjMwMy01Ny4zMTl6TTgyMC43OTkgOTYwYy03MC41NDkgMC0xMjcuNzgyLTU3LjIwMi0xMjcuNzgyLTEyNy43NzEgMC01My44MDUgNzQuMjQyLTE3Ny43MzkgMTA5LjU2OC0yMzMuNjI2IDMuOTM5LTYuMjUxIDEwLjgwOC0xMC4wMzUgMTguMjEzLTEwLjA1NiA3LjM2MiAwIDE0LjI3NSAzLjgwNSAxOC4yMDMgMTAuMDQzIDM1LjI5NSA1NS44NjIgMTA5LjU2OCAxNzkuODMzIDEwOS41NjggMjMzLjYzNiAwIDcwLjU3Mi01Ny4yMDIgMTI3Ljc3My0xMjcuNzcxIDEyNy43NzN6bTAtMTkwLjg0N2MtMzEuNjU1IDAtNTcuMzA1IDI1LjY2Ni01Ny4zMDUgNTcuMzE5IDAgMzEuNjY4IDI1LjY0NyA1Ny4zMTUgNTcuMzA1IDU3LjMxNSAzMS42NDUgMCA1Ny4yOTQtMjUuNjQ1IDU3LjI5NC01Ny4zMTUgMC0zMS42NTMtMjUuNjQ5LTU3LjMxOS01Ny4yOTQtNTcuMzE5eiIvPjxnbHlwaCB1bmljb2RlPSLupZAiIGdseXBoLW5hbWU9InNwaW5uZXIiIGQ9Ik0zMDAuNTcxIDE2My40MjlxMC0zMC4yODYtMjEuNDI5LTUxLjcxNHQtNTEuNzE0LTIxLjQyOXEtMjkuNzE0IDAtNTEuNDI5IDIxLjcxNHQtMjEuNzE0IDUxLjQyOXEwIDMwLjI4NiAyMS40MjkgNTEuNzE0dDUxLjcxNCAyMS40MjkgNTEuNzE0LTIxLjQyOSAyMS40MjktNTEuNzE0ek01ODUuMTQzIDQ1LjcxNHEwLTMwLjI4Ni0yMS40MjktNTEuNzE0VDUxMi0yNy40MjkgNDYwLjI4Ni02dC0yMS40MjkgNTEuNzE0IDIxLjQyOSA1MS43MTRUNTEyIDExOC44NTd0NTEuNzE0LTIxLjQyOSAyMS40MjktNTEuNzE0ek0xODIuODU3IDQ0OHEwLTMwLjI4Ni0yMS40MjktNTEuNzE0dC01MS43MTQtMjEuNDI5VDU4IDM5Ni4yODYgMzYuNTcxIDQ0OCA1OCA0OTkuNzE0dDUxLjcxNCAyMS40MjkgNTEuNzE0LTIxLjQyOVQxODIuODU3IDQ0OHptNjg2Ljg1Ny0yODQuNTcxcTAtMjkuNzE0LTIxLjcxNC01MS40Mjl0LTUxLjQyOS0yMS43MTRxLTMwLjI4NiAwLTUxLjcxNCAyMS40Mjl0LTIxLjQyOSA1MS43MTQgMjEuNDI5IDUxLjcxNCA1MS43MTQgMjEuNDI5IDUxLjcxNC0yMS40MjkgMjEuNDI5LTUxLjcxNHpNMzE4Ljg1NyA3MzIuNTcxcTAtMzcuNzE0LTI2Ljg1Ny02NC41NzF0LTY0LjU3MS0yNi44NTdUMTYyLjg1OCA2Njh0LTI2Ljg1NyA2NC41NzEgMjYuODU3IDY0LjU3MSA2NC41NzEgMjYuODU3VDI5MiA3OTcuMTQydDI2Ljg1Ny02NC41NzF6TTk4Ny40MjkgNDQ4cTAtMzAuMjg2LTIxLjQyOS01MS43MTR0LTUxLjcxNC0yMS40MjktNTEuNzE0IDIxLjQyOVQ4NDEuMTQzIDQ0OHQyMS40MjkgNTEuNzE0IDUxLjcxNCAyMS40MjlUOTY2IDQ5OS43MTQgOTg3LjQyOSA0NDh6TTYyMS43MTQgODUwLjI4NnEwLTQ1LjcxNC0zMi03Ny43MTR0LTc3LjcxNC0zMi03Ny43MTQgMzItMzIgNzcuNzE0IDMyIDc3LjcxNFQ1MTIgOTYwdDc3LjcxNC0zMiAzMi03Ny43MTR6bTMwMi44NTctMTE3LjcxNXEwLTUzLjE0My0zNy43MTQtOTAuNTcxdC05MC4yODYtMzcuNDI5cS01My4xNDMgMC05MC41NzEgMzcuNDI5dC0zNy40MjkgOTAuNTcxcTAgNTIuNTcxIDM3LjQyOSA5MC4yODZ0OTAuNTcxIDM3LjcxNHE1Mi41NzEgMCA5MC4yODYtMzcuNzE0dDM3LjcxNC05MC4yODZ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lkSIgZD0iTTUxMiA4NTcuNmMxOS44MDQgMCAzNS44NC0yMi45MjcgMzUuODQtNTEuMlY3MDRjMC0yOC4yNzMtMTYuMDM2LTUxLjItMzUuODQtNTEuMi0xOS43OTQgMC0zNS44NCAyMi45MjctMzUuODQgNTEuMnYxMDIuNGMwIDI4LjI3MyAxNi4wNDYgNTEuMiAzNS44NCA1MS4yeiIvPjxnbHlwaCB1bmljb2RlPSLupZIiIGQ9Ik05MjEuNiA0NDhjMC0xOS44MDQtMjIuOTE3LTM1Ljg0LTUxLjItMzUuODRINzY4Yy0yOC4yODMgMC01MS4yIDE2LjAzNi01MS4yIDM1Ljg0IDAgMTkuNzk0IDIyLjkxNyAzNS44NCA1MS4yIDM1Ljg0aDEwMi40YzI4LjI4MyAwIDUxLjItMTYuMDQ2IDUxLjItMzUuODR6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lkyIgZD0iTTg2Ni43MjQgMjQzLjJjLTkuOTAyLTE3LjE0Mi0zNy43NjUtMTkuNTc5LTYyLjI1OS01LjQzN2wtODguNjc4IDUxLjJjLTI0LjQ4NCAxNC4xNDEtMzYuMzIxIDM5LjQ5Ni0yNi40MjkgNTYuNjM3IDkuOTAyIDE3LjE0MiAzNy43NzUgMTkuNTc5IDYyLjI1OSA1LjQzN2w4OC42NzgtNTEuMmMyNC40OTQtMTQuMTQxIDM2LjMyMS0zOS40OTYgMjYuNDI5LTU2LjYzN3oiLz48Z2x5cGggdW5pY29kZT0i7qWUIiBkPSJNNzE2LjggOTMuMjc2Yy0xNy4xNDItOS45MDItNDIuNDk2IDEuOTI1LTU2LjYzNyAyNi40MTlsLTUxLjIgODguNjc4Yy0xNC4xNDEgMjQuNDg0LTExLjcwNCA1Mi4zNTcgNS40MzcgNjIuMjU5IDE3LjE0MiA5LjkwMiA0Mi40OTYtMS45MzUgNTYuNjM3LTI2LjQxOWw1MS4yLTg4LjY3OGMxNC4xNDEtMjQuNDk0IDExLjcwNC01Mi4zNTctNS40MzctNjIuMjU5eiIvPjxnbHlwaCB1bmljb2RlPSLupZUiIGQ9Ik01MTIgMzguNGMtMTkuNzk0IDAtMzUuODQgMjIuOTE3LTM1Ljg0IDUxLjJWMTkyYzAgMjguMjgzIDE2LjA0NiA1MS4yIDM1Ljg0IDUxLjIgMTkuODA0IDAgMzUuODQtMjIuOTE3IDM1Ljg0LTUxLjJWODkuNmMwLTI4LjI4My0xNi4wMzYtNTEuMi0zNS44NC01MS4yeiIvPjxnbHlwaCB1bmljb2RlPSLupZYiIGQ9Ik0zMDcuMiA5My4yNzZjLTE3LjE0MiA5LjkwMi0xOS41NzkgMzcuNzY1LTUuNDM3IDYyLjI1OWw1MS4yIDg4LjY3OGMxNC4xNDEgMjQuNDg0IDM5LjQ5NiAzNi4zMjEgNTYuNjM3IDI2LjQxOSAxNy4xNDItOS45MDIgMTkuNTc5LTM3Ljc3NSA1LjQzNy02Mi4yNTlsLTUxLjItODguNjc4Yy0xNC4xNDEtMjQuNDk0LTM5LjQ5Ni0zNi4zMTEtNTYuNjM3LTI2LjQxOXoiLz48Z2x5cGggdW5pY29kZT0i7qWXIiBkPSJNMTU3LjI3NiAyNDMuMmMtOS44OTIgMTcuMTQyIDEuOTM1IDQyLjQ5NiAyNi40MTkgNTYuNjM3bDg4LjY3OCA1MS4yYzI0LjQ5NCAxNC4xNDEgNTIuMzY3IDExLjcwNCA2Mi4yNjktNS40MzcgOS44OTItMTcuMTQyLTEuOTM1LTQyLjQ5Ni0yNi40MjktNTYuNjM3bC04OC42NzgtNTEuMmMtMjQuNDg0LTE0LjE0MS01Mi4zNTctMTEuNzA0LTYyLjI1OSA1LjQzN3oiLz48Z2x5cGggdW5pY29kZT0i7qWYIiBkPSJNMTAyLjQgNDQ4YzAgMTkuNzk0IDIyLjkyNyAzNS44NCA1MS4yIDM1Ljg0SDI1NmMyOC4yNzMgMCA1MS4yLTE2LjA0NiA1MS4yLTM1Ljg0IDAtMTkuODA0LTIyLjkyNy0zNS44NC01MS4yLTM1Ljg0SDE1My42Yy0yOC4yNzMgMC01MS4yIDE2LjAzNi01MS4yIDM1Ljg0eiIvPjxnbHlwaCB1bmljb2RlPSLupZkiIGQ9Ik0xNTcuMjc2IDY1Mi44YzkuOTAyIDE3LjE0MiAzNy43NzUgMTkuNTc5IDYyLjI1OSA1LjQzN2w4OC42ODktNTEuMmMyNC40ODQtMTQuMTQxIDM2LjMxMS0zOS40OTYgMjYuNDE5LTU2LjYzNy05LjkwMi0xNy4xNDItMzcuNzc1LTE5LjU3OS02Mi4yNTktNS40MzdsLTg4LjY4OSA1MS4yYy0yNC40ODQgMTQuMTQxLTM2LjMxMSAzOS40OTYtMjYuNDE5IDU2LjYzN3oiLz48Z2x5cGggdW5pY29kZT0i7qWaIiBkPSJNMzA3LjIgODAyLjcyNGMxNy4xNDIgOS44OTIgNDIuNDk2LTEuOTI1IDU2LjYzNy0yNi40MTlsNTEuMi04OC42NzhjMTQuMTMxLTI0LjQ5NCAxMS43MDQtNTIuMzY3LTUuNDM3LTYyLjI2OS0xNy4xNDItOS44OTItNDIuNDk2IDEuOTM1LTU2LjYzNyAyNi40MjlsLTUxLjIgODguNjc4Yy0xNC4xNDEgMjQuNDk0LTExLjcwNCA1Mi4zNTcgNS40MzcgNjIuMjU5eiIvPjxnbHlwaCB1bmljb2RlPSLupZsiIGdseXBoLW5hbWU9InN1YmlyIiBkPSJNOTI4IDM3MGMzMCAwIDU0LTI0IDU0LTU0VjIyYzAtMzAtMjQtNTQtNTQtNTRIOTJDNjItMzIgMzYtOCAzNiAyMnYyOTRjMCAzMCAyNiA1NCA1NiA1NHM1NC0yNCA1NC01NFY3OGg3Mjh2MjM4YzAgMzAgMjQgNTQgNTQgNTR6TTMyOCA2MjhjLTIyLTIyLTU0LTIyLTc2IDBzLTIyIDU0IDAgNzZsMjIwIDIyMGMxMCAxMCAyNCAxNiAzOCAxNnMyOC02IDM4LTE2bDIyMC0yMjBjMjItMjIgMjItNTQgMC03Ni0xMC0xMC0yNC0xNi0zOC0xNnMtMzAgNi00MCAxNkw1NjQgNzU0VjI4NmMwLTMwLTI0LTU0LTU0LTU0cy01NCAyNC01NCA1NHY0NjhMMzI4IDYyOHoiLz48Z2x5cGggdW5pY29kZT0i7qWcIiBnbHlwaC1uYW1lPSJ0YW1hbm8iIGQ9Ik03MjkuOTEzIDcxOC4yNDRINTAuOTI1QzIyLjc5NSA3MTguMjQ0IDAgNjk1LjQ1MyAwIDY2Ny4zMjFWLTExLjY2N2MwLTI4LjEzIDIyLjc5NS01MC45MjUgNTAuOTI1LTUwLjkyNWg2NzguOTg4YzI4LjEzIDAgNTAuOTIzIDIyLjc5NSA1MC45MjMgNTAuOTI1djY3OC45ODhjMCAyOC4xMzItMjIuNzkzIDUwLjkyMy01MC45MjMgNTAuOTIzek02NzguOTg4IDM5LjI1OGgtNTc3LjE0djU3Ny4xNGg1NzcuMTRWMzkuMjU4em0zMzQuOTE3IDYyLjYyN2gtNTUuMjMzdjU5NC4zMTRoNTUuMjMzYzQuMDc5IDAgNy43NTggMi40NTQgOS4zMTYgNi4yMzFhMTAuMDYgMTAuMDYgMCAwMS0yLjE4NyAxMS4wMDZsLTg5LjE2NyA4OS4xNjdjLTMuOTQ2IDMuOTQ2LTEwLjM0MyAzLjk0Ni0xNC4yODcgMGwtODkuMTY5LTg5LjE2N2ExMC4wNTggMTAuMDU4IDAgMDEtMi4xODctMTEuMDA2IDEwLjA3NyAxMC4wNzcgMCAwMTkuMzE4LTYuMjMxaDU1LjIzM1YxMDEuODg1aC01NS4yMzNhMTAuMDc0IDEwLjA3NCAwIDAxLTkuMzE4LTYuMjMxIDEwLjA3IDEwLjA3IDAgMDEyLjE4Ny0xMS4wMUw5MTcuNTgtNC41MjNjMy45NDQtMy45NDYgMTAuMzQzLTMuOTQ2IDE0LjI4NyAwbDg5LjE2NyA4OS4xNjdhMTAuMDU2IDEwLjA1NiAwIDAxMi4xODcgMTEuMDEgMTAuMDY3IDEwLjA2NyAwIDAxLTkuMzE2IDYuMjMxem0tODY2LjY3IDY2MS4xMTdhMTAuMDYgMTAuMDYgMCAwMTExLjAwOC0yLjE4NyAxMC4wNjkgMTAuMDY5IDAgMDE2LjIzMyA5LjMxNnY1NS4yMzNINzU4Ljc5di01NS4yMzNjMC00LjA3OSAyLjQ1Mi03Ljc2IDYuMjMxLTkuMzE2YTEwLjA2NCAxMC4wNjQgMCAwMTExLjAwOCAyLjE4N2w4OS4xNjcgODkuMTY3YzMuOTQ2IDMuOTQ4IDMuOTQ2IDEwLjM0NyAwIDE0LjI5MWwtODkuMTY3IDg5LjE2NWExMC4wNTkgMTAuMDU5IDAgMDEtMTEuMDA4IDIuMTg5IDEwLjA2OSAxMC4wNjkgMCAwMS02LjIzMS05LjMxNnYtNTUuMjM3SDE2NC40NzZ2NTUuMjM3YTEwLjA3IDEwLjA3IDAgMDEtNi4yMzMgOS4zMTYgMTAuMDYgMTAuMDYgMCAwMS0xMS4wMDgtMi4xODlMNTguMDcgODY2LjQ2Yy0zLjk0Ni0zLjk0NC0zLjk0Ni0xMC4zNDMgMC0xNC4yOTFsODkuMTY1LTg5LjE2N3oiLz48Z2x5cGggdW5pY29kZT0i7qWdIiBnbHlwaC1uYW1lPSJ0ZW1wZXJhdHVyYSIgZD0iTTUzOS4zODQgMjg2Ljk0NXYzMDUuMTAzYzAgMTUuMDYxLTEyLjMyNSAyNy4zODQtMjcuMzg0IDI3LjM4NC0xNS4wNjEgMC0yNy4zODQtMTIuMzIzLTI3LjM4NC0yNy4zODRWMjg2Ljk0NWMtNDcuMS0xMi4yNjgtODIuMTQ5LTU0Ljc2Ni04Mi4xNDktMTA1LjY0NiAwLTYwLjQwNiA0OS4wNzItMTA5LjUzMSAxMDkuNTMzLTEwOS41MzEgNjAuNDYzIDAgMTA5LjUzMSA0OS4xMjUgMTA5LjUzMSAxMDkuNTMxIDAgNTAuODgxLTM1LjA0OSA5My4zNzktODIuMTQ3IDEwNS42NDZ6TTY5MS4yIDM3My4yOTlWNzgwLjhjMCA5OC44MTYtODAuMzg0IDE3OS4yLTE3OS4yIDE3OS4ycy0xNzkuMi04MC4zODQtMTc5LjItMTc5LjJWMzczLjI5OUMyODUuNTk0IDMyNy4xMTcgMjU2IDI2My4xNjggMjU2IDE5MiAyNTYgNTAuODQyIDM3MC44NDItNjQgNTEyLTY0YzE0MS4xNiAwIDI1NiAxMTQuODQyIDI1NiAyNTYgMCA3MS4xNjgtMjkuNTkyIDEzNS4xMTctNzYuOCAxODEuMjk5ek01MTIgMjAuMTA3Yy04OC40NjUgMC0xNjAuNDU5IDcxLjk5My0xNjAuNDU5IDE2MC40NjEgMCA1OS4xMDEgMzIuNDY1IDExMC4yODkgODAuMjI4IDEzOC4xNTZ2NDc2LjkzOGMwIDQ0LjIzMyAzNS45OTggODAuMjMgODAuMjMgODAuMjNzODAuMjMtMzUuOTk4IDgwLjIzLTgwLjIzVjMxOC43MjRjNDcuNzYzLTI3Ljg2NyA4MC4yMy03OS4wNTUgODAuMjMtMTM4LjE1Ni0uMDAyLTg4LjQ2Ny03MS45OTMtMTYwLjQ2MS0xNjAuNDYxLTE2MC40NjF6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lniIgZ2x5cGgtbmFtZT0idGV4dG8iIGQ9Ik05MTIgNzQyLjg1N2MxMC42NjctMTAuNjY2IDE5LjgxLTI1LjE0MyAyNy40MjktNDMuNDI5czExLjQyOS0zNS4wNDcgMTEuNDI5LTUwLjI4NlYtOS4xNDRjMC0xNS4yMzgtNS4zMzMtMjguMTktMTYtMzguODU3cy0yMy42MTktMTYtMzguODU3LTE2aC03NjhjLTE1LjIzOCAwLTI4LjE5IDUuMzM0LTM4Ljg1NyAxNnMtMTYgMjMuNjE5LTE2IDM4Ljg1N3Y5MTQuMjg2YzAgMTUuMjM4IDUuMzM0IDI4LjE5MSAxNiAzOC44NTdzMjMuNjE5IDE2IDM4Ljg1NyAxNmg1MTJjMTUuMjM4IDAgMzItMy44MDkgNTAuMjg2LTExLjQyOXMzMi43NjItMTYuNzYyIDQzLjQyOS0yNy40MjlsMTc4LjI4Ni0xNzguMjg2ek02NjEuMzkgODU2Ljg5NVY2NzEuMTA0aDE4NS43OTFjLTMuMjk0IDkuNTU0LTYuOTE3IDE2LjMwNi0xMC44NyAyMC4yNTlMNjgxLjY0OSA4NDYuMDI1Yy0zLjk1MyAzLjk1My0xMC43MDYgNy41NzctMjAuMjU5IDEwLjg3ek04NjMuNDI5IDIzLjQyOXY1NzAuODU3SDY0MGMtMTUuMjM4IDAtMjguMTkgNS4zMzQtMzguODU3IDE2cy0xNiAyMy42MTktMTYgMzguODU3Vjg3MkgxNjAuNTcyVjIzLjQyOWg3MDIuODU3ek0yNjQuODI1IDQ5NS4wOTZjMCA2LjAwOCAxLjkzMSAxMC45NDIgNS43OTMgMTQuODA1czguNzk4IDUuNzkzIDE0LjgwNSA1Ljc5M2g0NTMuMTU1YzYuMDA5IDAgMTAuOTQyLTEuOTMxIDE0LjgwNS01Ljc5M3M1Ljc5NC04Ljc5NyA1Ljc5NC0xNC44MDVWNDUzLjljMC02LjAwNy0xLjkzMS0xMC45NDItNS43OTQtMTQuODA1cy04Ljc5Ny01Ljc5My0xNC44MDUtNS43OTNIMjg1LjQyM2MtNi4wMDcgMC0xMC45NDMgMS45MzEtMTQuODA1IDUuNzkzLTMuODYyIDMuODYzLTUuNzkzIDguNzk4LTUuNzkzIDE0LjgwNXY0MS4xOTZ6TTczOC41NzcgMzUwLjkxYzYuMDA5IDAgMTAuOTQyLTEuOTMxIDE0LjgwNS01Ljc5M3M1Ljc5NC04Ljc5NyA1Ljc5NC0xNC44MDV2LTQxLjE5N2MwLTYuMDA3LTEuOTMxLTEwLjk0Mi01Ljc5NC0xNC44MDVzLTguNzk3LTUuNzkzLTE0LjgwNS01Ljc5M0gyODUuNDIyYy02LjAwNyAwLTEwLjk0MyAxLjkzMS0xNC44MDUgNS43OTNzLTUuNzkzIDguNzk4LTUuNzkzIDE0LjgwNXY0MS4xOTdjMCA2LjAwOCAxLjkzMSAxMC45NDIgNS43OTMgMTQuODA1czguNzk4IDUuNzkzIDE0LjgwNSA1Ljc5M2g0NTMuMTU1em0wLTE2NC43ODRjNi4wMDkgMCAxMC45NDItMS45MzEgMTQuODA1LTUuNzk0czUuNzk0LTguNzk3IDUuNzk0LTE0LjgwNXYtNDEuMTk2YzAtNi4wMDgtMS45MzEtMTAuOTQyLTUuNzk0LTE0LjgwNXMtOC43OTctNS43OTQtMTQuODA1LTUuNzk0SDI4NS40MjJjLTYuMDA3IDAtMTAuOTQzIDEuOTMxLTE0LjgwNSA1Ljc5NHMtNS43OTMgOC43OTctNS43OTMgMTQuODA1djQxLjE5NmMwIDYuMDA5IDEuOTMxIDEwLjk0MiA1Ljc5MyAxNC44MDVzOC43OTggNS43OTQgMTQuODA1IDUuNzk0aDQ1My4xNTV6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lnyIgZ2x5cGgtbmFtZT0idXN1YXJpbyIgZD0iTTUxMiA5NTkuOTc4QzIyOS4yNiA5NTkuOTc4IDAgNzMwLjc2MyAwIDQ0OFMyMjkuMjM3LTYzLjk3OCA1MTItNjMuOTc4YzI4Mi43ODUgMCA1MTIgMjI5LjIxNSA1MTIgNTExLjk3OFM3OTQuNzg1IDk1OS45NzggNTEyIDk1OS45Nzh6bTAtMTUzLjA4OGM5My41NTcgMCAxNjkuMzctNzUuODM1IDE2OS4zNy0xNjkuMzQ3IDAtOTMuNTM1LTc1LjgxMy0xNjkuMzQ3LTE2OS4zNy0xNjkuMzQ3LTkzLjUxMiAwLTE2OS4zMjUgNzUuODEzLTE2OS4zMjUgMTY5LjM0NyAwIDkzLjUxMiA3NS44MTMgMTY5LjM0NyAxNjkuMzI1IDE2OS4zNDd6bS0uMTEyLTczNy4wMDljLTkzLjMxIDAtMTc4Ljc3IDMzLjk4Mi0yNDQuNjg4IDkwLjIyOS0xNi4wNTggMTMuNjk2LTI1LjMyMyAzMy43NzktMjUuMzIzIDU0Ljg1MiAwIDk0LjgzOSA3Ni43NTcgMTcwLjc0MiAxNzEuNjE5IDE3MC43NDJoMTk3LjA1NWM5NC44ODQgMCAxNzEuMzQ5LTc1LjkwMyAxNzEuMzQ5LTE3MC43NDJhNzEuOTg4IDcxLjk4OCAwIDAwLTI1LjMwMS01NC44M2MtNjUuODk1LTU2LjI2OS0xNTEuMzc4LTkwLjI1MS0yNDQuNzEtOTAuMjUxeiIvPjxnbHlwaCB1bmljb2RlPSLupaAiIGdseXBoLW5hbWU9InVzdWFyaW8yIiBkPSJNNzA5LjczMiA0MjguMzA5SDY2OC41MmM3OS42MTIgNTEuNTEgMTMyLjQxNSAxNDEuMDggMTMyLjQxNSAyNDIuNzU2IDAgMTU5LjMyMS0xMjkuNjE0IDI4OC45MzQtMjg4LjkzNCAyODguOTM0UzIyMy4wNjcgODMwLjM4NSAyMjMuMDY3IDY3MS4wNjVjMC0xMDEuNjc2IDUyLjc5OC0xOTEuMjQ2IDEzMi40MTUtMjQyLjc1NkgzMTQuMjdjLTEwNS45MDkgMC0xOTIuMDcyLTg2LjE1OC0xOTIuMDcyLTE5Mi4wNjdWLTMyLjA1MmMwLTE3LjY0NyAxNC4zMDYtMzEuOTUxIDMxLjk1MS0zMS45NTFoNzE1LjcwM2MxNy42NDUgMCAzMS45NTEgMTQuMzA0IDMxLjk1MSAzMS45NTF2MjY4LjI5N2MwIDEwNS45MDYtODYuMTYzIDE5Mi4wNjQtMTkyLjA3MiAxOTIuMDY0ek0yODYuOTY5IDY3MS4wNjZjMCAxMjQuMDgyIDEwMC45NDcgMjI1LjAzMiAyMjUuMDMyIDIyNS4wMzIgMTI0LjA4MiAwIDIyNS4wMzItMTAwLjk1IDIyNS4wMzItMjI1LjAzMiAwLTEyNC4wOC0xMDAuOTUtMjI1LjAyNy0yMjUuMDMyLTIyNS4wMjctMTI0LjA4NSAwLTIyNS4wMzIgMTAwLjk0Ny0yMjUuMDMyIDIyNS4wMjd6bTMxOC41MTYtMjczLjM5OWwtOTMuNDg0LTkzLjQ4Ni05My40ODQgOTMuNDg0YzI5LjMzNi0xMC4wNTggNjAuNzgxLTE1LjUyOCA5My40ODQtMTUuNTI4czY0LjE1IDUuNDcgOTMuNDg0IDE1LjUzMXpNODM3LjkwMi0uMDk4aC04Ni45MDd2MTUzLjUxNmMwIDE3LjY0Ny0xNC4zMDYgMzEuOTUxLTMxLjk1MSAzMS45NTFzLTMxLjk1MS0xNC4zMDQtMzEuOTUxLTMxLjk1MVYtLjA5OEgzMzYuOTF2MTUzLjUxNmMwIDE3LjY0Ny0xNC4zMDYgMzEuOTUxLTMxLjk1MSAzMS45NTFzLTMxLjk1MS0xNC4zMDQtMzEuOTUxLTMxLjk1MVYtLjA5OGgtODYuOTA3djIzNi4zNDNjMCA3MC42NjggNTcuNDk3IDEyOC4xNjUgMTI4LjE3IDEyOC4xNjVoNDcuMTMybDEyOC4wMDYtMTI4LjAwNGM2LjIzOS02LjIzOSAxNC40MTYtOS4zNTggMjIuNTkzLTkuMzU4czE2LjM0OSAzLjExOCAyMi41OTMgOS4zNThMNjYyLjYwMSAzNjQuNDFoNDcuMTMyYzcwLjY3MSAwIDEyOC4xNy01Ny40OTEgMTI4LjE3LTEyOC4xNjVWLS4wOTh6Ii8+PGdseXBoIHVuaWNvZGU9Iu6loSIgZ2x5cGgtbmFtZT0iem9vbSIgZD0iTTg2OS4yNjIgMjY3LjY2YzE0OC4yMSAxNDguMjE2IDE0OC4yMDggMzg5LjM4NCAwIDUzNy41OTgtMTQ4LjIxNiAxNDguMjE2LTM4OS4zOCAxNDguMjE2LTUzNy41OTggMC0xMjUuNzM4LTEyNS43NDItMTQ0Ljc4LTMxMi43NS01Ny4xNzgtNDU4Ljc4IDAgMCA2LjI5NC0xMC41NTYtMi4yMDYtMTkuMDU0QzIyMy43OTQgMjc4Ljk0MiA3OC4zMzYgMTMzLjQ4IDc4LjMzNiAxMzMuNDggMzkuNzM0IDk0Ljg4IDMwLjU0NCA0MC45MDQgNjQuNzc2IDYuNjdMNzAuNjcuNzhjMzQuMjMyLTM0LjIzNiA4OC4yMS0yNS4wNDggMTI2LjgxMiAxMy41NTJMMzkxLjAyIDIwNy44N2M4LjkwNiA4LjkwNCAxOS40NiAyLjYxMiAxOS40NiAyLjYxMiAxNDYuMDI4LTg3LjYwNCAzMzMuMDQtNjguNTYyIDQ1OC43ODIgNTcuMTc4em0tNDY3LjQxNiA3MC4xODRjLTEwOS41MTYgMTA5LjUxNi0xMDkuNTE0IDI4Ny43MDguMDAyIDM5Ny4yMjYgMTA5LjUxNiAxMDkuNTE0IDI4Ny43MTIgMTA5LjUxNiAzOTcuMjIyIDAgMTA5LjUxOC0xMDkuNTE0IDEwOS41MTgtMjg3LjcxIDAtMzk3LjIyNi0xMDkuNTEyLTEwOS41MTItMjg3LjcwOC0xMDkuNTEyLTM5Ny4yMjQgMHptMjQuMjU4IDIyMS4xNzRhMzkuMTc0IDM5LjE3NCAwIDAwLTE1LjI3NCAzLjExMmMtMTkuOTUyIDguNDQ0LTI5LjI4NiAzMS40NjQtMjAuODQyIDUxLjQyIDUzLjA3NCAxMjUuNDIyIDE5OC4yOSAxODQuMjgyIDMyMy43MTQgMTMxLjIwOCAxOS45NS04LjQ0NCAyOS4yODQtMzEuNDY0IDIwLjg0LTUxLjQyLTguNDQ4LTE5Ljk1NC0zMS40Ni0yOS4yODQtNTEuNDI0LTIwLjg0LTg1LjU3MiAzNi4yMDgtMTg0LjY1Ni0zLjk1NC0yMjAuODY0LTg5LjUyNC02LjMzMi0xNC45NjQtMjAuODU4LTIzLjk1Ni0zNi4xNS0yMy45NTZ6Ii8+PGdseXBoIHVuaWNvZGU9Iu6loiIgZ2x5cGgtbmFtZT0iem9vbS1leHRlbnNpb24iIGQ9Ik0xMDAyLjQzNCA3NTUuMzM5VjEzNi40NjhjMC0yMi4zOTMtNy45NzMtNDEuNTYzLTIzLjkyLTU3LjUxMS0xNS45NDYtMTUuOTQ2LTM1LjExNi0yMy45MTktNTcuNTEtMjMuOTE5SDEwNi42OThjLTIyLjM5MyAwLTQxLjU2MyA3Ljk3My01Ny41MTEgMjMuOTE5LTE1Ljk0NiAxNS45NDYtMjMuOTE5IDM1LjExNy0yMy45MTkgNTcuNTExdjYxOC44NzFjMCAyMi4zOTMgNy45NzMgNDEuNTYzIDIzLjkxOSA1Ny41MTFzMzUuMTE3IDIzLjkyIDU3LjUxMSAyMy45Mmg4MTQuMzA2YzIyLjM5MyAwIDQxLjU2My03Ljk3MyA1Ny41MS0yMy45MnMyMy45Mi0zNS4xMTggMjMuOTItNTcuNTExem0tOTEuNDc2LjY0OUgxMTYuNzQyYy00LjMwMiAwLTguMDI1LTEuNTM0LTExLjE2OS00LjYwM3MtNC43MTYtNi43MDItNC43MTYtMTAuOTAxVjE1MS4zMjFjMC00LjE5OCAxLjU3Mi03LjgzMiA0LjcxNi0xMC45MDFzNi44NjYtNC42MDMgMTEuMTY5LTQuNjAzaDc5NC4yMTdjNC4zMDIgMCA4LjAyNCAxLjUzNCAxMS4xNjkgNC42MDNzNC43MTcgNi43MDIgNC43MTcgMTAuOTAxdjU4OS4xNjVjMCA0LjE5OC0xLjU3MyA3LjgzMy00LjcxNyAxMC45MDItMy4xNDUgMy4wNjctNi44NjcgNC42MDEtMTEuMTY5IDQuNjAxek02NTUuOTEyIDM4MS41MjVjMTQuMzM3IDE0LjMzOCAyNS4wOTIgMzAuNTMgMzIuMjYxIDQ4LjU2NyA3LjE2NSAxOC4wMzYgMTAuNzQ5IDM2LjQyMiAxMC43NDkgNTUuMTUzIDAgMTguNzMzLTMuNTgyIDM3LjIzNC0xMC43NDkgNTUuNTAyLTcuMTY5IDE4LjI2Ny0xNy45MjYgMzQuNTcxLTMyLjI2MSA0OC45MTEtMTQuMzM3IDE0LjMzNy0zMC41MjkgMjQuOTc3LTQ4LjU2NCAzMS45MTMtMTguMDM4IDYuOTM4LTM2LjUzOCAxMC40MDgtNTUuNTAyIDEwLjQwOHMtMzcuNDctMy40Ny01NS41MDMtMTAuNDA4Yy0xOC4wMzgtNi45MzctMzQuMjI0LTE3LjU3OC00OC41NjMtMzEuOTEzLTE0LjM0LTE0LjMzOS0yNS4wOTItMzAuNjQyLTMyLjI2LTQ4LjkxMXMtMTAuNzU1LTM2Ljc3My0xMC43NTUtNTUuNTAyYzAtMTguNzMxIDMuNTg2LTM3LjExNyAxMC43NTUtNTUuMTUzIDcuMTY4LTE4LjAzOCAxNy45Mi0zNC4yMjYgMzIuMjYtNDguNTY3IDE0LjM0LTE0LjMzOSAzMC41MjUtMjUuMDkzIDQ4LjU2My0zMi4yNjIgMTguMDM5LTcuMTY1IDM2LjU0MS0xMC43NDkgNTUuNTAzLTEwLjc0OSAxOC45NjQgMCAzNy40NjUgMy41ODMgNTUuNTAyIDEwLjc0OSAxOC4wMzkgNy4xNzEgMzQuMjI3IDE3LjkyMyA0OC41NjQgMzIuMjYyem00Ni43OTYgMjU0Ljg2MmMyMC44NjQtMjAuODU5IDM2LjUwNi00NC40MjIgNDYuOTM3LTcwLjY4MiAxMC40MzEtMjYuMjYyIDE1LjY0Ni01Mi45ODggMTUuNjQ2LTgwLjE4MXMtNS4yMTUtNTMuOTE4LTE1LjY0Ni04MC4xNzljLTEwLjQzMS0yNi4yNjItMjYuMDc1LTQ5LjgyMi00Ni45MzctNzAuNjgyLTE2Ljc1OS0xNi43NjMtMzUuMzg3LTMwLjE3My01NS44NzUtNDAuMjMxLTIwLjQ4Ni0xMC4wNTYtNDEuNzE3LTE2Ljc1OC02My42OTktMjAuMTExLTIxLjk3NS0zLjM1NS00NC4wNDgtMy4xNy02Ni4yMS41NTUtMjIuMTY0IDMuNzI1LTQzLjMwOCAxMC44MDMtNjMuNDE5IDIxLjIzM2wtOTYuMTA2LTk2LjEwNmMtNS41ODktNS41ODYtMTEuNzMzLTkuNjgxLTE4LjQ0MS0xMi4yOTItNi43MDMtMi42MDYtMTMuNjg5LTMuOTExLTIwLjk1MS0zLjkxMXMtMTQuMjQ5IDEuMzA1LTIwLjk1MiAzLjkxMWMtNi43MDcgMi42MDgtMTIuODUzIDYuNzA1LTE4LjQ0IDEyLjI5Mi01LjU4NiA1LjU4OS05LjY4NiAxMS43MzUtMTIuMjk0IDE4LjQzOS0yLjYwNiA2LjcwNi0zLjkxMSAxMy42OS0zLjkxMSAyMC45NTNzMS4zMDUgMTQuMjQ2IDMuOTExIDIwLjk0OWMyLjYwNyA2LjcwNyA2LjcwNSAxMi44NTEgMTIuMjk0IDE4LjQzOWw5Mi43NTIgOTIuNzU0Yy0xMy4wMzggMjAuNDg3LTIyLjE2NCA0Mi40NjYtMjcuMzc4IDY1LjkzNS01LjIxNSAyMy40NjYtNi42MTQgNDYuOTM0LTQuMTkyIDcwLjM5OSAyLjQyMiAyMy40NjcgOC43NTQgNDYuMjg1IDE4Ljk5OCA2OC40NDcgMTAuMjQ0IDIyLjE2NCAyNC4zMDUgNDIuMTg2IDQyLjE4NiA2MC4wNjYgMjAuODYxIDIwLjQ4OSA0NC40MiAzNS45NDcgNzAuNjgzIDQ2LjM3OCAyNi4yNjEgMTAuNDMyIDUyLjk4OSAxNS42NDYgODAuMTgyIDE1LjY0NiAyNy4xOSAwIDUzLjkyLTUuMjE0IDgwLjE3OS0xNS42NDQgMjYuMjY1LTEwLjQzIDQ5LjgyNC0yNS44ODkgNzAuNjgzLTQ2LjM3N3oiLz48Z2x5cGggdW5pY29kZT0i7qWjIiBnbHlwaC1uYW1lPSJ6b29tLW1hcyIgZD0iTTg2OS4yNjIgMjY3LjY2YzE0OC4yMSAxNDguMjE2IDE0OC4yMSAzODkuMzg0IDAgNTM3LjU5OC0xNDguMjE0IDE0OC4yMTYtMzg5LjM4MiAxNDguMjE2LTUzNy41OTggMC0xMjUuNzM4LTEyNS43NDItMTQ0Ljc4LTMxMi43NS01Ny4xNzgtNDU4Ljc4IDAgMCA2LjI5NC0xMC41NTQtMi4yMDYtMTkuMDU0QzIyMy43OTQgMjc4Ljk0MiA3OC4zMzYgMTMzLjQ4IDc4LjMzNiAxMzMuNDggMzkuNzM0IDk0Ljg4IDMwLjU0NCA0MC45MDQgNjQuNzc2IDYuNjdMNzAuNjcuNzhjMzQuMjMyLTM0LjIzNiA4OC4yMS0yNS4wNDggMTI2LjgxMiAxMy41NTIgMCAwIDE0NS4xNTIgMTQ1LjE1MiAxOTMuNTM2IDE5My41MzggOC45MDggOC45MDQgMTkuNDYgMi42MTIgMTkuNDYgMi42MTIgMTQ2LjAyOC04Ny42MDQgMzMzLjA0Mi02OC41NjIgNDU4Ljc4NCA1Ny4xNzh6bS00NjcuNDE2IDcwLjE4NGMtMTA5LjUxNiAxMDkuNTE2LTEwOS41MTQgMjg3LjcwOC4wMDIgMzk3LjIyNiAxMDkuNTE2IDEwOS41MTQgMjg3LjcxNiAxMDkuNTE2IDM5Ny4yMjQgMCAxMDkuNTE4LTEwOS41MTQgMTA5LjUxOC0yODcuNzEgMC0zOTcuMjI2LTEwOS41MTQtMTA5LjUxNC0yODcuNzEtMTA5LjUxNC0zOTcuMjI2IDB6TTc1MC44ODggNTkxLjJoLTg1LjA1NHMtOC4xMzYuNjQtOC4xMzYgOC45NDJ2ODQuMjVjMCAxNi41OTgtMTMuNTgyIDMwLjE4LTMwLjE4MiAzMC4xOGgtNTAuMDI0Yy0xNi41OTggMC0zMC4xOC0xMy41ODItMzAuMTgtMzAuMTh2LTgzLjY4NGMwLTguODY2LTguNjA4LTkuNTA0LTguNjA4LTkuNTA0aC04NC41ODJjLTE2LjU5OCAwLTMwLjE4LTEzLjU4Mi0zMC4xOC0zMC4xOFY1MTFjMC0xNi41OTggMTMuNTgyLTMwLjE4IDMwLjE4LTMwLjE4aDgzLjk1MnM5LjIzNi0uMjYyIDkuMjM2LTkuMDY2di04NC4xMjZjMC0xNi41OTggMTMuNTgyLTMwLjE4IDMwLjE4LTMwLjE4aDUwLjAyNGMxNi42IDAgMzAuMTgyIDEzLjU4MiAzMC4xODIgMzAuMTh2ODQuNjNjMCA4LjExNCA5LjI3MiA4LjU2MiA5LjI3MiA4LjU2Mmg4My45MjJjMTYuNiAwIDMwLjE4IDEzLjU4MiAzMC4xOCAzMC4xOHY1MC4wMjRjLS4wMDIgMTYuNTk0LTEzLjU4NCAzMC4xNzYtMzAuMTgyIDMwLjE3NnoiLz48Z2x5cGggdW5pY29kZT0i7qWkIiBnbHlwaC1uYW1lPSJ6b29tLW1lbm9zIiBkPSJNODY5LjI2MiAyNjcuNjZjMTQ4LjIxIDE0OC4yMTYgMTQ4LjIxIDM4OS4zODQgMCA1MzcuNTk4LTE0OC4yMTQgMTQ4LjIxNi0zODkuMzggMTQ4LjIxNi01MzcuNTk4IDAtMTI1LjczOC0xMjUuNzQyLTE0NC43ODItMzEyLjc1LTU3LjE4LTQ1OC43OCAwIDAgNi4yOTQtMTAuNTU0LTIuMjA2LTE5LjA1NEMyMjMuNzk0IDI3OC45NDIgNzguMzM0IDEzMy40OCA3OC4zMzQgMTMzLjQ4IDM5LjczMiA5NC44OCAzMC41NCA0MC45MDQgNjQuNzc0IDYuNjdMNzAuNjY4Ljc4QzEwNC45LTMzLjQ1NiAxNTguODgtMjQuMjY4IDE5Ny40OCAxNC4zMzJMMzkxLjAxOCAyMDcuODdjOC45MDYgOC45MDQgMTkuNDYgMi42MTIgMTkuNDYgMi42MTIgMTQ2LjAyOC04Ny42MDQgMzMzLjA0Mi02OC41NjIgNDU4Ljc4NCA1Ny4xNzh6bS00NjcuNDE2IDcwLjE4NGMtMTA5LjUxNiAxMDkuNTE2LTEwOS41MTQgMjg3LjcwOCAwIDM5Ny4yMjYgMTA5LjUxNiAxMDkuNTE0IDI4Ny43MTYgMTA5LjUxNiAzOTcuMjI0IDAgMTA5LjUxNi0xMDkuNTE0IDEwOS41MTYtMjg3LjcxIDAtMzk3LjIyNi0xMDkuNTEyLTEwOS41MTQtMjg3LjcwOC0xMDkuNTE0LTM5Ny4yMjQgMHptMzc5LjIyMiAxNzMuMTUyYzAtMTYuNTk4LTEzLjU4LTMwLjE4LTMwLjE4LTMwLjE4SDQ1NC4xMmMtMTYuNTk4IDAtMzAuMTggMTMuNTgyLTMwLjE4IDMwLjE4djUwLjAyNGMwIDE2LjU5OCAxMy41ODIgMzAuMTggMzAuMTggMzAuMThoMjk2Ljc2OGMxNi42IDAgMzAuMTgtMTMuNTgyIDMwLjE4LTMwLjE4di01MC4wMjR6Ii8+PGdseXBoIHVuaWNvZGU9Iu6lpSIgZ2x5cGgtbmFtZT0icGluNSIgaG9yaXotYWR2LXg9IjkzOSIgZD0iTTcyNy4wNTUgODM2LjgxNGMtNjYuMDc5IDY2LjE1Mi0xNTcuNzU4IDEwNy4yNzMtMjU4LjUzMiAxMDcuMjczSDQ2OC4zOGMtMTAwLjc3NCAwLTE5Mi40NTItNDEuMTIxLTI1OC41MzItMTA3LjI3My02Ni4xNTItNjYuMDc3LTEwNy4yNzMtMTU3Ljc1OC0xMDcuMjczLTI1OC41M3YtLjA2OWMuMDE5LTEzLjcxMSAxLjI0MS0yNy41NzYgMy40NzMtNDEuNTk4IDIuMjM4LTE0LjAwNCA1LjQ2My0yOC4xNTggOS40OC00Mi40NjIgNy4wNTQtMjQuOTY2IDE2LjU1Ny01MC40MTkgMjcuODk1LTc1LjkzMiAxMS4zMTktMjUuNTExIDI0LjQzNy01MS4xMSAzOC43NTYtNzYuMzk5IDIxLjUyLTM3Ljg4MyA0NS42OTgtNzQuOTkzIDcwLjY2NC0xMDkuNTE2IDI0Ljk2Ni0zNC41MjEgNTAuNzAzLTY2LjQ2OSA3NS4zMzEtOTQuMDA5IDEyLjM1Mi0xMy43OTIgMjQuMzg1LTI2LjQ0OSAzNi4wNDItMzcuODQyIDExLjY0LTExLjM5NCAyMi44NzktMjEuNTEyIDMzLjY1OC0zMC4xODUgMTAuODMzLTguNjkxIDIxLjE1OC0xNS45NzcgMzEuOTEyLTIxLjgxMyA1LjQyMS0yLjg5MSAxMC45NzgtNS40NTcgMTcuMTc2LTcuNTA5IDYuMTk1LTIuMDAxIDEzLjA5OS0zLjU5OSAyMS40ODYtMy42MzhhNjkuNTk0IDY5LjU5NCAwIDAxMTYuOTUzIDIuMjY2YzUuMDEyIDEuMzMzIDkuNSAzLjExNiAxMy44MzUgNC45OTMgNy45NzggMy42MzggMTUuNTI2IDguMDUzIDIzLjA3MSAxMy4xODkgNy41MjcgNS4xNDMgMTUuMDU3IDExLjAxOSAyMi45MzkgMTcuNjA4IDEzLjY0OSAxMS41MTEgMjguMTA3IDI1LjI1MiA0My4wODEgNDAuODY4IDE0Ljk2OSAxNS41OTYgMzAuNDcgMzMuMDc2IDQ2LjIzOSA1Mi4wNzMgMjMuNTc5IDI4LjQ3NyA0Ny41ODggNjAuMjU5IDcwLjQzNCA5My44NTkgMjIuODY2IDMzLjU5NiA0NC41NjQgNjkuMDIgNjMuNTA1IDEwNC44MDMgOS40NjEgMTcuODg0IDE4LjI0NiAzNS44NjUgMjYuMTEyIDUzLjgxOSA3Ljg4MiAxNy45MjcgMTQuODY3IDM1LjgxNyAyMC42OTggNTMuNTE4IDUuODI3IDE3LjcyMiAxMC41NzYgMzUuMjc0IDEzLjg2MSA1Mi42IDMuMjg1IDE3LjMyMyA1LjEyMyAzNC40NDYgNS4xNjIgNTEuMzAzdi4wNjljLjAwNCAxMDAuNzc2LTQxLjEyOSAxOTIuNDU4LTEwNy4yODEgMjU4LjUzNHpNNDY4LjQ0OCAzNTAuNDI4Yy0xMzguMTE5IDAtMjUwLjA5MyAxMTEuOTctMjUwLjA5MyAyNTAuMDk0IDAgMTM4LjEyMSAxMTEuOTcgMjUwLjA5MyAyNTAuMDkzIDI1MC4wOTMgMTM4LjEyNSAwIDI1MC4wOTQtMTExLjk2OCAyNTAuMDk0LTI1MC4wOTMtLjAwMi0xMzguMTI1LTExMS45Ny0yNTAuMDk0LTI1MC4wOTQtMjUwLjA5NHoiLz48Z2x5cGggdW5pY29kZT0i7qWmIiBnbHlwaC1uYW1lPSJwaW4tbnVldm8yIiBob3Jpei1hZHYteD0iOTM5IiBkPSJNNzI3LjA1MyA4MzYuODE2Yy02Ni4wNzcgNjYuMTUyLTE1Ny43NTggMTA3LjI3Ny0yNTguNTI5IDEwNy4yNzdoLS4xNDZjLTEwMC43NzEgMC0xOTIuNDUtNDEuMTI1LTI1OC41MjktMTA3LjI3Ny02Ni4xNTItNjYuMDc3LTEwNy4yNzctMTU3Ljc1OC0xMDcuMjc3LTI1OC41Mjd2LS4wNzNjLjAxOS0xMy43MDcgMS4yMzktMjcuNTc2IDMuNDczLTQxLjU5OCAyLjIzNi0xNC4wMDQgNS40NjMtMjguMTU4IDkuNDgtNDIuNDYyIDcuMDU2LTI0Ljk2NiAxNi41NTctNTAuNDE5IDI3Ljg5NS03NS45MzIgMTEuMzE5LTI1LjUxMSAyNC40MzktNTEuMTEyIDM4Ljc2LTc2LjM5OSAyMS41MTYtMzcuODgzIDQ1LjY5NC03NC45OTMgNzAuNjYxLTEwOS41MTYgMjQuOTY2LTM0LjUyMSA1MC43MDMtNjYuNDY5IDc1LjMzMS05NC4wMDkgMTIuMzUyLTEzLjc5MyAyNC4zODUtMjYuNDQ5IDM2LjA0Mi0zNy44NDIgMTEuNjQtMTEuMzk0IDIyLjg4MS0yMS41MTIgMzMuNjU4LTMwLjE4NSAxMC44MzMtOC42OTEgMjEuMTU4LTE1Ljk3NyAzMS45MTItMjEuODEzIDUuNDIzLTIuODkxIDEwLjk4LTUuNDU5IDE3LjE3Ni03LjUwOSA2LjE5NS0yLjAwNSAxMy4xMDEtMy42IDIxLjQ5LTMuNjM4IDYuNDAxLjA3NSAxMS45Mi45NTkgMTYuOTUxIDIuMjY2IDUuMDEyIDEuMzMzIDkuNDk5IDMuMTE2IDEzLjgzNSA0Ljk5MyA3Ljk3OCAzLjYzOCAxNS41MjIgOC4wNTMgMjMuMDcxIDEzLjE5MyA3LjUyNyA1LjE0MyAxNS4wNTUgMTEuMDE5IDIyLjkzOSAxNy42MDggMTMuNjQ3IDExLjUxMSAyOC4xMDUgMjUuMjUyIDQzLjA4MSA0MC44NjggMTQuOTY1IDE1LjU5NyAzMC40NjggMzMuMDc2IDQ2LjIzNSA1Mi4wNzMgMjMuNTgxIDI4LjQ3NyA0Ny41OSA2MC4yNTkgNzAuNDM0IDkzLjg1OSAyMi44NjYgMzMuNiA0NC41NjQgNjkuMDIyIDYzLjUwNSAxMDQuODAzIDkuNDYxIDE3Ljg4OCAxOC4yNDYgMzUuODY5IDI2LjExMiA1My44MTkgNy44ODIgMTcuOTI3IDE0Ljg2NyAzNS44MTcgMjAuNzAyIDUzLjUxOCA1LjgyMyAxNy43MjIgMTAuNTcyIDM1LjI3NCAxMy44NTcgNTIuNiAzLjI4NSAxNy4zMjQgNS4xMjMgMzQuNDQ2IDUuMTYyIDUxLjMwM3YuMDczYy4wMDQgMTAwLjc2OS00MS4xMjcgMTkyLjQ1LTEwNy4yNzkgMjU4LjUyN3ptLTI1OC42MDUtNDg2LjM5Yy0xMzguMTIzIDAtMjUwLjA5NCAxMTEuOTctMjUwLjA5NCAyNTAuMDk0czExMS45NyAyNTAuMDk0IDI1MC4wOTQgMjUwLjA5NCAyNTAuMDk0LTExMS45NyAyNTAuMDk0LTI1MC4wOTRjMC0xMzguMTI1LTExMS45Ny0yNTAuMDk0LTI1MC4wOTQtMjUwLjA5NHpNNDg4LjA1MyA3NTMuNGMtNS40NjggNS4wMzYtMTIuNjI2IDguMjg2LTIwLjY0OSA4LjI3MS04LjAxMiAwLTE1LjE4My0zLjIzOC0yMC42NDktOC4yNzEtNi4wODYtNS41OTItMTAuMDM0LTEzLjQ3Ni0xMC4wMTgtMjIuMzk3bC4wMTMtOTkuNDM2LTk5LjQzNi4wMTNjLTguOTM1IDAtMTYuNzg4LTMuOTUtMjIuMzk3LTEwLjAyLTUuMDM2LTUuNDY2LTguMjg0LTEyLjYyNi04LjI3MS0yMC42NDcgMC04LjAxNiAzLjIzOC0xNS4xODMgOC4yNzEtMjAuNjQ5IDUuNTkyLTYuMDg4IDEzLjQ2MS0xMC4wMTggMjIuMzk3LTEwLjAxOGw5OS40MzYtLjAxOXYtOTkuNDE5YzAtOC45MzcgMy45NS0xNi43ODQgMTAuMDItMjIuMzk3IDUuNDY0LTUuMDM1IDEyLjYyOC04LjI4OCAyMC42NDctOC4yNzEgOC4wMTQgMCAxNS4xODMgMy4yNDQgMjAuNjQ5IDguMjcxIDYuMDg4IDUuNTkyIDEwLjAyIDEzLjQ1OSAxMC4wMiAyMi4zOTd2OTkuNDE5aDk5LjQ1MWM4LjkzNyAwIDE2Ljc4NiAzLjk1IDIyLjM5NyAxMC4wMjQgNS4wMzYgNS40NjMgOC4yODQgMTIuNjI0IDguMjcxIDIwLjY0OSAwIDguMDEtMy4yNCAxNS4xODEtOC4yNzEgMjAuNjQ3LTUuNTkyIDYuMDg0LTEzLjQ1OSAxMC4wMi0yMi4zOTcgMTAuMDJoLTk5LjQ1MXY5OS40MjFjLjAwMiA4LjkzNS0zLjkzMyAxNi44MDMtMTAuMDM0IDIyLjQxMnoiLz48Z2x5cGggdW5pY29kZT0i7qWnIiBnbHlwaC1uYW1lPSJwaW4tc2VsZWNjaW9uYWRvIiBob3Jpei1hZHYteD0iOTM5IiBkPSJNNzI3LjA1NSA4MzYuODE0Yy02Ni4wNzkgNjYuMTUyLTE1Ny43NTggMTA3LjI3NS0yNTguNTMgMTA3LjI3NUg0NjguMzgxYy0xMDAuNzcyIDAtMTkyLjQ1Mi00MS4xMjMtMjU4LjUzLTEwNy4yNzUtNjYuMTUyLTY2LjA3Ny0xMDcuMjc1LTE1Ny43NTgtMTA3LjI3NS0yNTguNTI5di0uMDcxYy4wMTktMTMuNzA5IDEuMjQxLTI3LjU3NiAzLjQ3My00MS41OTggMi4yMzgtMTQuMDA0IDUuNDYzLTI4LjE1OCA5LjQ4LTQyLjQ2MiA3LjA1NC0yNC45NjYgMTYuNTU3LTUwLjQxOSAyNy44OTUtNzUuOTMyIDExLjMxOS0yNS41MTEgMjQuNDM3LTUxLjExIDM4Ljc1OC03Ni4zOTkgMjEuNTE4LTM3Ljg4MyA0NS42OTYtNzQuOTkzIDcwLjY2My0xMDkuNTE2IDI0Ljk2Ni0zNC41MjEgNTAuNzAzLTY2LjQ2OSA3NS4zMzEtOTQuMDA5IDEyLjM1Mi0xMy43OTIgMjQuMzg1LTI2LjQ0OSAzNi4wNDItMzcuODQyIDExLjY0LTExLjM5NCAyMi44ODEtMjEuNTEyIDMzLjY1OC0zMC4xODUgMTAuODMzLTguNjkxIDIxLjE1OC0xNS45NzcgMzEuOTEyLTIxLjgxMyA1LjQyMS0yLjg5MSAxMC45NzgtNS40NTcgMTcuMTc2LTcuNTA5IDYuMTk1LTIuMDAzIDEzLjA5OS0zLjU5OSAyMS40ODgtMy42MzggNi40MDEuMDc1IDExLjkyLjk1OSAxNi45NTMgMi4yNjYgNS4wMTIgMS4zMzMgOS40OTkgMy4xMTYgMTMuODM1IDQuOTkzIDcuOTc4IDMuNjM4IDE1LjUyNCA4LjA1MyAyMy4wNzEgMTMuMTkxIDcuNTI3IDUuMTQzIDE1LjA1NyAxMS4wMTkgMjIuOTM5IDE3LjYwOCAxMy42NDcgMTEuNTA5IDI4LjEwNSAyNS4yNTIgNDMuMDgxIDQwLjg2OCAxNC45NjcgMTUuNTk2IDMwLjQ3IDMzLjA3NiA0Ni4yMzcgNTIuMDczIDIzLjU3OSAyOC40NzcgNDcuNTg4IDYwLjI1OSA3MC40MzQgOTMuODU5IDIyLjg2NiAzMy41OTggNDQuNTY0IDY5LjAyIDYzLjUwNSAxMDQuODAzIDkuNDYxIDE3Ljg4NiAxOC4yNDYgMzUuODY3IDI2LjExMiA1My44MTkgNy44ODIgMTcuOTI3IDE0Ljg2NyAzNS44MTcgMjAuNyA1My41MTggNS44MjUgMTcuNzIyIDEwLjU3NCAzNS4yNzQgMTMuODU5IDUyLjYgMy4yODUgMTcuMzIzIDUuMTIzIDM0LjQ0NiA1LjE2MiA1MS4zMDN2LjA3MWMuMDAyIDEwMC43NzItNDEuMTI5IDE5Mi40NTQtMTA3LjI4MSAyNTguNTN6TTQ2OC40NDggMzUwLjQyOGMtMTM4LjEyMSAwLTI1MC4wOTMgMTExLjk3LTI1MC4wOTMgMjUwLjA5NCAwIDEzOC4xMjEgMTExLjk3IDI1MC4wOTMgMjUwLjA5MyAyNTAuMDkzczI1MC4wOTQtMTExLjk3IDI1MC4wOTQtMjUwLjA5M2MtLjAwMi0xMzguMTI1LTExMS45NzItMjUwLjA5NC0yNTAuMDk0LTI1MC4wOTR6bTE1NC4zNTYgMjUwLjA5M2MwLTg1LjI0OS02OS4xMDgtMTU0LjM1Ny0xNTQuMzU3LTE1NC4zNTdTMzE0LjA5IDUxNS4yNzIgMzE0LjA5IDYwMC41MjFzNjkuMTA4IDE1NC4zNTcgMTU0LjM1NyAxNTQuMzU3IDE1NC4zNTctNjkuMTA4IDE1NC4zNTctMTU0LjM1N3oiLz48Z2x5cGggdW5pY29kZT0i7qWoIiBnbHlwaC1uYW1lPSJicnVqdWxhLW5vcnRlIiBkPSJNMTU2LjMzNSA4MTYuMzAyQy00Ny4wNzQgNjE5Ljg3Mi01Mi43MyAyOTUuNzQyIDE0My42OTggOTIuMzM1czUyMC41Ni0yMDkuMDY1IDcyMy45NjctMTIuNjM3YzIwMy40MDkgMTk2LjQzIDIwOS4wNjUgNTIwLjU2IDEyLjYzNyA3MjMuOTY3cy01MjAuNTU4IDIwOS4wNjYtNzIzLjk2NyAxMi42Mzd6TTgwMC43OTkgMTQ4Ljk0QzYzNS42NDQtMTAuNTQ5IDM3Mi40MjktNS45NTQgMjEyLjk0MSAxNTkuMjAxYy0xNTkuNDkgMTY1LjE1Ny0xNTQuODk2IDQyOC4zNzEgMTAuMjYgNTg3Ljg2IDE2NS4xNTcgMTU5LjQ5IDQyOC4zNzEgMTU0Ljg5NiA1ODcuODYxLTEwLjI2MXMxNTQuODk0LTQyOC4zNy0xMC4yNjMtNTg3Ljg2em0tMjk0LjcxNS0zOC4zMDdzMTI3LjIgMjU4LjU4IDEyOC41ODIgMzM1LjIyNmMxLjMzOSA3Ni42OTEtMTE2LjgwNSAzMzkuNTEyLTExNi44MDUgMzM5LjUxMnMtMTI3LjItMjU4LjU4LTEyOC41MzktMzM1LjIyOWMtMS4zMzktNzYuNjQ5IDExNi43NjEtMzM5LjUwOCAxMTYuNzYxLTMzOS41MDh6bS00NC4yNzEgMzI0LjE5MWw5OS44NzYtMS43NDNjMjQuOTctLjQzNy01Mi45OS0xNzMuOTExLTUyLjk5LTE3My45MTFzLTcxLjg1NSAxNzYuMDkyLTQ2Ljg4NiAxNzUuNjU1eiIvPjwvZm9udD48L2RlZnM+PC9zdmc+) format("svg");font-weight:400;font-style:normal;font-display:block}[class*=" g-cartografia-"],[class^=g-cartografia-]{font-family:g-cartografia!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.g-cartografia-alerta:before{content:"\e900"}.g-cartografia-ayuda:before{content:"\e901"}.g-cartografia-bandera:before{content:"\e902"}.g-cartografia-brujula:before{content:"\e903"}.g-cartografia-cancelar:before{content:"\e904"}.g-cartografia-cancelar2:before{content:"\e905"}.g-cartografia-capas:before{content:"\e906"}.g-cartografia-capas2:before{content:"\e907"}.g-cartografia-check:before{content:"\e908"}.g-cartografia-check2:before{content:"\e909"}.g-cartografia-check3:before{content:"\e90a"}.g-cartografia-check4:before{content:"\e90b"}.g-cartografia-check5:before{content:"\e90c"}.g-cartografia-comentarios:before{content:"\e90d"}.g-cartografia-descargar:before{content:"\e90e"}.g-cartografia-editar:before{content:"\e90f"}.g-cartografia-editar2:before{content:"\e910"}.g-cartografia-escala:before{content:"\e911"}.g-cartografia-escala2:before{content:"\e912"}.g-cartografia-escala3:before{content:"\e913"}.g-cartografia-flecha:before{content:"\e914"}.g-cartografia-flecha-abajo:before{content:"\e915"}.g-cartografia-flecha-abajo2:before{content:"\e916"}.g-cartografia-flecha-arriba:before{content:"\e917"}.g-cartografia-flecha-arriba2:before{content:"\e918"}.g-cartografia-flecha-derecha:before{content:"\e919"}.g-cartografia-flecha-derecha2:before{content:"\e91a"}.g-cartografia-flecha-derecha3:before{content:"\e91b"}.g-cartografia-flecha-deshacer:before{content:"\e91c"}.g-cartografia-flecha-izquierda:before{content:"\e91d"}.g-cartografia-flecha-izquierda2:before{content:"\e91e"}.g-cartografia-flecha-izquierda3:before{content:"\e91f"}.g-cartografia-flecha-link:before{content:"\e920"}.g-cartografia-flechas-mover:before{content:"\e921"}.g-cartografia-gps:before{content:"\e922"}.g-cartografia-gps2:before{content:"\e923"}.g-cartografia-gps3:before{content:"\e924"}.g-cartografia-gps4:before{content:"\e925"}.g-cartografia-guardar:before{content:"\e926"}.g-cartografia-herramienta:before{content:"\e927"}.g-cartografia-impresora:before{content:"\e928"}.g-cartografia-info:before{content:"\e929"}.g-cartografia-linea:before{content:"\e92a"}.g-cartografia-lineas:before{content:"\e92b"}.g-cartografia-lista:before{content:"\e92c"}.g-cartografia-localizacion:before{content:"\e92d"}.g-cartografia-localizacion2:before{content:"\e92e"}.g-cartografia-localizacion3:before{content:"\e92f"}.g-cartografia-localizacion4:before{content:"\e930"}.g-cartografia-mano:before{content:"\e931"}.g-cartografia-mano2:before{content:"\e932"}.g-cartografia-mapa:before{content:"\e933"}.g-cartografia-mas:before{content:"\e934"}.g-cartografia-mas2:before{content:"\e935"}.g-cartografia-medir-area:before{content:"\e936"}.g-cartografia-medir-linea:before{content:"\e937"}.g-cartografia-menos:before{content:"\e938"}.g-cartografia-menos2:before{content:"\e939"}.g-cartografia-menu:before{content:"\e93a"}.g-cartografia-mundo:before{content:"\e93b"}.g-cartografia-mundo2:before{content:"\e93c"}.g-cartografia-opciones:before{content:"\e93d"}.g-cartografia-papelera:before{content:"\e93e"}.g-cartografia-pin:before{content:"\e93f"}.g-cartografia-pin-nuevo:before{content:"\e940"}.g-cartografia-pin2:before{content:"\e941"}.g-cartografia-pin3:before{content:"\e942"}.g-cartografia-pin4:before{content:"\e943"}.g-cartografia-poligono:before{content:"\e944"}.g-cartografia-posicion:before{content:"\e945"}.g-cartografia-posicion2:before{content:"\e946"}.g-cartografia-posicion3:before{content:"\e947"}.g-cartografia-posicion4:before{content:"\e948"}.g-cartografia-posicion5:before{content:"\e949"}.g-cartografia-posicion6:before{content:"\e94a"}.g-cartografia-posicion7:before{content:"\e94b"}.g-cartografia-prismaticos:before{content:"\e94c"}.g-cartografia-regla:before{content:"\e94d"}.g-cartografia-reglas:before{content:"\e94e"}.g-cartografia-ruta:before{content:"\e94f"}.g-cartografia-spinner:before{content:"\e950"}.g-cartografia-spinner2 .path1:before{content:"\e951";color:#6b6b6b}.g-cartografia-spinner2 .path2:before{content:"\e952";margin-left:-1em;color:#6b6b6b;opacity:.1}.g-cartografia-spinner2 .path3:before{content:"\e953";margin-left:-1em;color:#6b6b6b;opacity:.2}.g-cartografia-spinner2 .path4:before{content:"\e954";margin-left:-1em;color:#6b6b6b;opacity:.3}.g-cartografia-spinner2 .path5:before{content:"\e955";margin-left:-1em;color:#6b6b6b;opacity:.4}.g-cartografia-spinner2 .path6:before{content:"\e956";margin-left:-1em;color:#6b6b6b;opacity:.5}.g-cartografia-spinner2 .path7:before{content:"\e957";margin-left:-1em;color:#6b6b6b;opacity:.6}.g-cartografia-spinner2 .path8:before{content:"\e958";margin-left:-1em;color:#6b6b6b;opacity:.7}.g-cartografia-spinner2 .path9:before{content:"\e959";margin-left:-1em;color:#6b6b6b;opacity:.8}.g-cartografia-spinner2 .path10:before{content:"\e95a";margin-left:-1em;color:#6b6b6b;opacity:.9}.g-cartografia-subir:before{content:"\e95b"}.g-cartografia-tamano:before{content:"\e95c"}.g-cartografia-temperatura:before{content:"\e95d"}.g-cartografia-texto:before{content:"\e95e"}.g-cartografia-usuario:before{content:"\e95f"}.g-cartografia-usuario2:before{content:"\e960"}.g-cartografia-zoom:before{content:"\e961"}.g-cartografia-zoom-extension:before{content:"\e962"}.g-cartografia-zoom-mas:before{content:"\e963"}.g-cartografia-zoom-menos:before{content:"\e964"}.g-cartografia-pin5:before{content:"\e965"}.g-cartografia-pin-nuevo2:before{content:"\e966"}.g-cartografia-pin-seleccionado:before{content:"\e967"}.g-cartografia-brujula-norte:before{content:"\e968"}.m-position-top{top:0}.m-position-bottom{bottom:0}.m-position-right{right:0}.m-position-left{left:0}.m-mapea-container{width:100%;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlMICLCRzwIAAAAVSURBVBjTY2CEAwYEGNKCw8QbCEEApbQAyTWv+7EAAAAASUVORK5CYII=);font-family:Muli,"sans-serif"!important;font-size:13px;color:#6c6c6c;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-shadow:none;-webkit-rtl-ordering:logical;-webkit-user-select:text;-moz-user-select:text;user-select:text;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}.m-control{position:absolute;margin:0;z-index:990;overflow-y:hidden;background-color:hsla(0,0%,100%,.4);border-radius:4px;padding:2px}.m-control>button{color:#404040}div.m-control button[class*=" g-cartografia-"],div.m-control button[class^=g-cartografia-]{font-size:28px;padding:8px;font-size:24px;background:none;border:none;cursor:pointer;opacity:.75;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s;color:#404040;margin:0}.ol-overviewmap>button{opacity:.75;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:hover,.ol-overviewmap>button:hover,div.m-control.activated button[class^=g-cartografia-],div.m-control button[class*=" g-cartografia-"]:hover,div.m-control button[class^=g-cartografia-]:hover{opacity:1!important}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus,div.m-control button[class*=" g-cartografia-"]:focus,div.m-control button[class^=g-cartografia-]:focus{outline:none}.m-clear-btn,.m-help-btn{opacity:.4!important;font-size:18px!important}.m-search-btn{order:3;padding-right:14px}.m-help-btn{order:2}.m-clear-btn{order:1}.m-results-btn{display:none}.m-label-content{white-space:nowrap}.m-mapea-container input[type=text],.m-mapea-container textarea{margin:5px;padding:5px;background-color:transparent;cursor:auto;border-radius:4px;border:1px solid rgba(0,0,0,.5);-webkit-appearance:none;-moz-appearance:none;appearance:none;color:#6c6c6c;font-family:Muli,"sans-serif"!important;font-size:13px}.m-mapea-container input[type=text]:focus{outline:none}@media only screen and (max-width:768px){.m-wordbreak{word-break:break-all;white-space:none}}button::-moz-focus-inner{border:0}@-moz-keyframes mloading{to{-moz-transform:rotate(1turn)}}@-webkit-keyframes mloading{to{-webkit-transform:rotate(1turn)}}@keyframes mloading{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.m-area.m-top.m-right,.m-areas,.ol-overlaycontainer-stopevent,.ol-viewport{height:inherit!important}.m-panel.m-layerswitcher.opened{height:calc(100% - 30px)}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{height:100%!important;max-height:100%}.m-attribution{left:3px!important;right:inherit!important;z-index:999999}@media print{.ol-control{display:none}}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{opacity:1;-webkit-transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s;transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{opacity:0;max-width:0;max-height:0;-webkit-transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s;transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s}.m-location-container.m-locating>button#m-location-button:before{-webkit-animation:mloading 1s linear infinite;-moz-animation:mloading 1s linear infinite}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-step-marker{width:1px;height:15px;background-color:#000;float:right;z-Index:10}.ol-scale-step-text{bottom:-5px;font-size:12px;z-Index:11}.ol-scale-step-text,.ol-scale-text{position:absolute;color:#000;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-text{font-size:14px;text-align:center;bottom:25px}.ol-scale-singlebar{position:relative;height:10px;z-Index:9;border:1px solid #000}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-overlaycontainer,.ol-overlaycontainer-stopevent{pointer-events:none}.ol-overlaycontainer-stopevent>*,.ol-overlaycontainer>*{pointer-events:auto}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:hsla(0,0%,100%,.4);border-radius:4px;padding:2px}.ol-control:hover{background-color:hsla(0,0%,100%,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-control button span{pointer-events:none}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-viewport>div.ol-unselectable>div img{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000}.ol-box{border:1px solid #337ceb!important;background-color:rgba(51,124,235,.33)!important}.ol-zoom>button{background-color:#fff!important;margin:0!important;padding:0;color:#404040!important;opacity:.75;font-size:18px!important;text-align:center;cursor:pointer;width:30px!important;height:30px!important;box-shadow:0 1px 3px 0 #cacaca}.ol-zoom>button:focus,.ol-zoom>button:hover{background-color:transparent;outline:none!important}.ol-zoom>button:hover{opacity:1}.ol-zoomslider{height:198px!important;overflow:auto!important}.ol-zoomslider>button.ol-zoomslider-thumb{background-color:#f0f0f0;border:1px solid rgba(64,64,64,.4);border-radius:20px;padding:0;margin:-5px;height:20px!important;width:20px!important}@-moz-document url-prefix(){.ol-zoomslider>button.ol-zoomslider-thumb{position:relative!important}}.ol-scale-line .ol-scale-line-inner{color:#404040;border-color:#404040}@media only screen and (max-width:768px){.ol-scale-line-up{margin-bottom:30px;margin-left:-15px}}.ol-overviewmap{background-color:#fff!important;border-radius:4px!important;display:block;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;transition:border-radius .33s ease 0s;order:1!important;margin-left:10px!important;display:relative!important}.ol-overviewmap:not(.ol-collapsed) button{position:static!important;position:absolute!important;right:0!important;background-color:#fff!important;border-radius:15px;left:auto!important;right:4px;padding:0 2px 2px;font-size:6px}.ol-overviewmap:not(.ol-collapsed) .ol-overviewmap-map{margin:4px!important}.ol-overviewmap:not(.ol-collapsed)>button:before{font-size:11px!important}.ol-overviewmap.ol-collapsed{border-radius:20px!important}.ol-overviewmap .ol-overviewmap-map{border:0!important;transition:width .33s ease 0s,height .33s ease 0s}.ol-overviewmap.ol-collapsed .ol-overviewmap-map{display:inline-block!important;height:0;width:0;margin:0;padding:0}.ol-overviewmap>button{bottom:4px!important}.ol-overviewmap.ol-collapsed>button,.ol-overviewmap>button{width:20px!important;height:20px!important;border-radius:20px;margin:0!important;padding:0;background-color:transparent!important;color:#404040!important;opacity:.75!important;font-size:15px!important;background:none;border:none;cursor:pointer;font-family:g-cartografia!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.ol-overviewmap.ol-collapsed>button:hover{opacity:1}.ol-overviewmap.ol-collapsed>button{height:40px!important;width:40px!important}.ol-overviewmap>button:active,.ol-overviewmap>button:focus,.ol-overviewmap>button:hover{background-color:transparent;outline:none}.ol-overviewmap>button>span{display:none}@media only screen and (max-width:768px){.ol-overviewmap{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container,.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{border-radius:20px!important}.m-panel.m-map-info>div.m-panel-controls>div.ol-overviewmap{order:1}.m-wmcselector-container{bottom:8px;right:60px;display:block;padding:0;margin:0}.m-wmcselector-container:before{font-family:g-cartografia!important}.m-wmcselector-select{border:none;background-color:#fefefe;color:#6c6c6c;font-weight:400;text-decoration:none;outline:none;margin:0;-webkit-appearance:none}.m-layerswitcher-container{position:absolute;top:.5em;right:.5em;text-align:left;overflow-y:auto!important;width:100%}@media only screen and (min-width:769px){.m-layerswitcher-container{min-width:440px!important}}.m-layerswitcher-container .m-layersiwtcher-panel{margin:0;top:0;right:0;max-height:100%;text-align:left;background-color:#f4f4f4}.m-layerswitcher-container li.group{padding-top:5px;padding-bottom:8px;text-align:center}.m-layerswitcher-container li.group>div{line-height:normal;margin:0;color:#404040;font-family:Muli,"sans-serif"!important;line-height:40px;text-align:center;border-bottom:1px solid rgba(0,0,0,.08);font-size:15px}.m-layerswitcher-container li div{font-family:sans-serif;font-size:.8em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:1.4em;line-height:40px;text-align:center;font-size:15px}.m-layerswitcher-container ul>li{overflow:hidden}.m-layerswitcher-container ul>li.group>ul>li{margin:10px;background-color:#fff}.m-layerswitcher-container li span.m-check{color:#6abe47;margin:0 1% 0 0}.m-layerswitcher-container li input.m-layerswitcher-transparency{margin-right:3%;width:74%}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{width:81%;margin-top:16px}.m-layerswitcher-container .tools span{display:block;margin-top:-12px;margin-left:143px}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-layerswitcher-container li input.m-layerswitcher-transparency{display:block;margin-top:1px}.m-layerswitcher-container .tools span{display:block;margin-top:-52px;float:right;margin-right:13%}}.m-layerswitcher-container li span.m-layerswitcher-remove{font-size:11px;color:rgba(0,0,0,.53);cursor:pointer}@media only screen and (max-width:768px){.m-layerswitcher-container li span.m-check{font-size:2em;margin-right:5%}.m-layerswitcher-container li input.m-layerswitcher-transparency{width:77%;display:none}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{width:66%}}.m-layerswitcher-container li span.m-layerswitcher-remove{font-size:13px}.m-layerswitcher-container li.visible input.m-layerswitcher-transparency{display:initial}.m-layerswitcher-container li.visible span.m-layerswitcher-remove{font-size:11px}}.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{padding:0 5px;text-align:left;margin:0;border-bottom:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-layersiwtcher-panel li.visible>div.tools{width:40%;height:auto}.m-layersiwtcher-panel div.tools{float:right;text-align:left}.m-layersiwtcher-panel li.visible>div.layer{margin-bottom:4px}.m-layersiwtcher-panel div.layer{margin-bottom:4px;float:left;width:55%}@media only screen and (max-width:768px){.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{width:90%;padding-right:0}}.m-layersiwtcher-panel li.visible>div.layer-base{margin:0;border:0}.m-layersiwtcher-panel li>div.legend{width:100%;text-align:left;height:0}.m-layersiwtcher-panel li.visible>div.legend{width:90%;height:auto;margin:0 auto}@media only screen and (max-width:768px){.m-layersiwtcher-panel li.visible>div.tools{width:90%;float:none}.m-layersiwtcher-panel div.tools{width:calc(10% - 5px);float:right;text-align:left;margin:0 auto}}.m-layerswitcher-container li.disabled span{color:#666}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{color:#fda823;height:40px}.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{position:absolute;left:-40px;background-color:#fda823;color:#fff;z-index:999999;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{background-color:transparent;position:absolute;left:auto;right:0;color:#fda823;z-index:999999;box-shadow:none}}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>button.m-panel-btn{position:inherit;color:#fda823;left:0;box-shadow:none}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{padding:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{border-top-left-radius:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-width:61vw}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{width:100vw;height:100vh;position:fixed;top:0;left:0;margin:0;z-index:10000}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-width:100vw;max-height:100vh;width:100%}}input[type=range].m-layerswitcher-transparency{-webkit-appearance:none;width:30%;height:8px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){input[type=range].m-layerswitcher-transparency{height:auto}}input[type=range].m-layerswitcher-transparency:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{width:100%;height:2px;cursor:pointer;background:rgba(0,0,0,.31);border-radius:12px}input[type=range]::-webkit-slider-thumb{height:10px;width:10px;cursor:pointer;border-radius:15px;background:#fff;-webkit-appearance:none;margin-top:-4px;background-color:#fda823}@media only screen and (max-width:768px){input[type=range]::-webkit-slider-thumb{height:12px;width:12px}}input[type=range]::-moz-range-track{width:100%;height:2px;cursor:pointer;background:rgba(0,0,0,.31);border-radius:12px}input[type=range]::-moz-range-thumb{height:10px;width:10px;cursor:pointer;border:none;background:#fff;-webkit-appearance:none;margin-top:20px;background-color:#fda823}input[type=range]::-ms-track{cursor:pointer;width:100%;height:2px;background:transparent;border-color:transparent;border-width:12px;color:transparent;margin-top:-8px}input[type=range]::-ms-thumb{border:none;height:10px;cursor:pointer;width:10px;border-radius:15px;background-color:#fda823;-webkit-appearance:none}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd;border-radius:10px}input[type=range]:disabled::-moz-range-thumb,input[type=range]:disabled::-ms-thumb,input[type=range]:disabled::-webkit-slider-thumb{background-color:#848484}input[type=range]:disabled{opacity:.5}.m-areas>div.m-area>div.m-panel.m-layerswitcher{background-color:#f4f4f4}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{overflow:hidden;overflow-y:auto;padding-right:0}.m-layersiwtcher-panel>ul{margin:0;padding:0}.m-layerswitcher-container ul.m-base-layers,.m-layerswitcher-container ul.m-groups,.m-layerswitcher-container ul.m-layers,ul.m-groups>li.m-group>ul.m-layers{list-style:none;padding:10px}ul.m-groups>li.m-group{background:#eaeaea}ul.m-base-layers>li.m-layer,ul.m-groups>li.m-group,ul.m-layers>li.m-layer{box-shadow:0 1px 2px rgba(0,0,0,.3)}ul.m-groups>li.m-group>.m-title{cursor:pointer}ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{float:left;width:24px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{text-align:left;display:inline-block;width:59%}@-moz-document url-prefix(){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{text-align:left;display:inline-block;width:59%}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:57%}}}ul.m-groups>li.m-group>.m-title{float:left;width:calc(96% - 48px)}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{width:38px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:53%}ul.m-groups>li.m-group>.m-title{width:calc(94% - 48px)}}ul.m-groups>li.m-group>.m-collapsed-icon{width:24px;cursor:pointer}ul.m-base-layers,ul.m-layers{background-color:#f9f9f9}ul.m-base-layers>li,ul.m-layers>li{background-color:#fff;margin-bottom:5px;border:1px solid rgba(0,0,0,.1)}ul.m-base-layers>li>div.m-legend,ul.m-layers>li>div.m-legend{padding-top:12.5px;padding-bottom:12.5px}ul.m-base-layers>li>div.m-legend{max-width:50vw}ul.m-base-layers>li>div.m-legend>img,ul.m-layers>li>div.m-legend>img{max-width:45vw;margin:auto!important}.m-popup{position:absolute;background-color:#fff;border:1px solid #ccc;bottom:12px;left:-50px;border-radius:5px;box-shadow:2px 2px 8px -4px rgba(0,0,0,.53)}.m-popup:after,.m-popup:before{top:100%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.m-popup:after{border-top-color:#fff;border-width:10px;left:48px;margin-left:-10px}.m-popup:before{border-top-color:#ccc;border-width:11px;left:48px;margin-left:-11px}.m-popup-content{min-width:170px;width:auto;overflow-x:auto;max-width:50vw;max-height:70vh}.m-popup>div.m-content>div.m-header{cursor:pointer}.m-popup>div.m-content>div.m-header>div.m-subtitle,.m-popup>div.m-content>div.m-header>div.m-title{display:none}.m-popup-closer{position:absolute;top:2px;right:2px;font-size:100%;padding:0 4px;color:grey;text-decoration:none}.m-popup-closer:after{content:"\2716"}.m-popup div.infoResult{min-width:130px}.m-popup div.infoResult p{padding:.1em;margin:0}.m-popup-content h3{margin:.25em 0}.m-popup.marker{margin-bottom:30px}.m-popup .m-content{margin:0;padding:15px 27px 15px 15px}.m-popup .m-footer{margin:0;padding:5px 0;display:flex}.m-popup .m-footer>a>button{border:none;background-color:transparent;cursor:pointer;font-size:18px;color:#337ceb;transition:color .3s}.m-popup .m-footer>a>button:hover{color:#d9534f}.m-popup>div.m-content>div.m-body{overflow-y:auto;overflow-x:hidden;max-height:50vh;width:calc(100% + 15px)}@media only screen and (max-width:768px){.m-popup>div.m-content>div.m-body{width:calc(100% - 30px);margin-left:15px;margin-top:15px}}.m-popup>div.m-popup-content>div.m-content+div.m-content{margin-top:10px}.m-popup>div.m-popup-content>div.m-content>p.m-title{text-align:center;line-height:30px;font-size:15px;color:#404040;background-color:#dedede;margin-top:0;font-weight:700}.m-popup>div.m-popup-content>div.m-content:last-child{border-bottom:0}.m-popup div.m-editattribute-content button.save{display:table;margin:10px 0;padding:5px;background-color:#fff;font-family:Muli,"sans-serif"!important;width:97%;border-radius:4px;border:1px solid rgba(0,0,0,.4);font-size:15px;line-height:25px;cursor:pointer;opacity:.75;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s;color:#404040}.m-popup div.m-editattribute-content button.save:hover{opacity:1}.m-popup.m-has-tabs{border-top-left-radius:0;min-width:150px}.m-popup>div.m-tabs{position:absolute;display:inline-flex;left:-1px;top:-29px;margin:0}.m-popup>div.m-tabs>div.m-tab{height:17px;width:30px;background-color:#f2f2f2;cursor:pointer;font-size:18px;padding:5px;text-align:center;border:1px solid #ccc;margin:0;border-right:0}.m-popup>div.m-tabs>div.m-tab:first-child{border-top-left-radius:4px}.m-popup>div.m-tabs>div.m-tab:last-child{border-top-right-radius:4px;border-right:1px solid #ccc}.m-popup>div.m-tabs>div.m-tab.m-activated{border-bottom:0;height:18px;background-color:#fff}@media only screen and (max-width:768px){.m-popup{width:100vw;height:100vh;position:fixed;left:0;margin:0;padding:0;z-index:1500;border-bottom-left-radius:0;border-bottom-right-radius:0}.m-popup .m-footer{position:relative;display:flex;padding:15px 5px}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{text-align:center;padding-top:5px;display:flex;align-items:center;flex-flow:column;flex-wrap:nowrap;justify-content:center}.m-popup:not(.m-has-tabs)>div.m-content>div.m-header{padding-top:0;position:relative;box-shadow:0 0 7px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);flex-flow:row;justify-content:flex-end;height:10vh}.m-popup.m-has-tabs>div.m-content>div.m-header{height:0;margin:0;padding:0}.m-popup>div.m-tabs{flex-flow:row;position:relative;top:0;left:0;width:100%;align-items:stretch;margin:0;padding:0;height:10vh}.m-popup>div.m-tabs>div.m-tab,.m-popup>div.m-tabs>div.m-tab.m-activated{height:100%;width:100%;margin:0;font-size:24px;display:flex;justify-content:center;align-items:center;padding:0;border-top:0;border-radius:0}.m-popup>div.m-tabs>div.m-tab:first-child{border-left:0}.m-popup>div.m-content{padding:0}.m-popup>div.m-content>div.m-header>div.m-title{display:initial;font-size:1.2em;font-weight:700;width:100%}.m-popup>div.m-content>div.m-header>div.m-subtitle{display:initial;font-size:1em;font-style:italic}.m-popup.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{position:absolute;right:0;height:40px}.m-popup>div.m-content>div.m-body{overflow-y:auto;max-height:100vh}.m-popup.m-collapsed>div.m-tabs,.m-popup:not(.m-has-tabs).m-collapsed>div.m-content>div.m-header{height:7vh}.m-popup.m-collapsed>div.m-content>div.m-body{height:0}.m-popup.m-collapsed{top:92%}.m-popup.m-collapsed.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{display:none}.m-popup.m-default>div.m-tabs,.m-popup:not(.m-has-tabs).m-default>div.m-content>div.m-header{height:7vh}.m-popup.m-default>div.m-content>div.m-body{height:48vh}.m-popup.m-default{top:45vh}.m-popup.m-default.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup.m-full>div.m-tabs,.m-popup:not(.m-has-tabs).m-full>div.m-content>div.m-header{height:7vh}.m-popup.m-full>div.m-content>div.m-body{height:93vh}.m-popup.m-full{top:0}.m-popup>div.m-content>div.m-header>a.m-popup-closer{height:100%;width:40px;margin:0;padding:0;font-family:g-cartografia;position:inherit;display:flex;align-items:center;justify-content:flex-end;font-size:22px}.m-popup>div.m-content>div.m-header>a.m-popup-closer:after{content:"\e919"}.m-popup.m-full.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup:not(.m-no-animation){-webkit-transition:top .5s ease 0s;transition:top .5s ease 0s}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{-webkit-transition:height .5s ease 0s,background-color .5s ease 0s;transition:height .5s ease 0s,background-color .5s ease 0s}.m-popup>div.m-content>div.m-header>div.m-title,.m-popup>div.m-tabs>div.m-tab{-webkit-transition:font-size .5s ease 0s;transition:font-size .5s ease 0s}}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result{border-top:1px solid rgba(0,0,0,.13)}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table{width:100%;border-top:1px dashed rgba(0,0,0,.09)}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{text-align:right}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key{font-weight:700}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key,.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{white-space:nowrap}@supports (overflow:-webkit-marquee) and (justify-content:inherit){@media only screen and (max-width:768px){.m-popup.m-collapsed{top:87vh}}}.unsetTransform{transform:unset!important}.m-dialog{position:absolute;top:0;left:0;z-index:99999;width:100%;height:100%}.m-dialog>div.m-modal{width:100%;height:100%;background-color:hsla(0,0%,100%,.5);display:flex;align-items:center}.m-dialog>div.m-modal>div.m-content{position:relative;max-height:70vh;max-width:70vw;min-width:30vw;margin:0 auto;background-color:#fff;padding:10px;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}.m-dialog div.m-title{line-height:40px;text-align:center;font-weight:700}.m-dialog div.m-message{padding:10px 5px;border-bottom:1px solid rgba(0,0,0,.2);font-size:15px}.m-dialog div.m-button>button{background-color:transparent;border:none;box-shadow:none;cursor:pointer;margin-top:10px;padding:5px;width:50px;font-weight:700}.m-dialog div.m-button{text-align:right}.m-dialog.info div.m-button>button,.m-dialog.info div.m-title{background-color:#337ceb;color:#fff}.m-dialog.error div.m-button>button,.m-dialog.error div.m-title{background-color:#d9534f;color:#fff}.m-dialog.success div.m-button>button,.m-dialog.success div.m-title{background-color:#67af13;color:#fff}.m-location-container{top:20px;left:600px}.m-location-container.m-locating>button#m-location-button:before{animation:mloading 1s linear infinite;position:absolute;left:11px;top:11px}.m-location-container.m-locating>button#m-location-button{padding:8px}@supports (-ms-ime-align:auto){.m-location-container.m-locating>button#m-location-button{height:36px}}.m-scale-container{margin:0;box-shadow:0 1px 2px rgba(0,0,0,.3);padding:5px;right:0;font-weight:700;bottom:2em;display:block;font-size:smaller;background-color:rgba(0,60,136,.5);font-weight:400;border-top-left-radius:2px;border-bottom-left-radius:2px}.m-scale-container>.m-unit{font-family:Muli!important;line-height:normal}.m-scale-container>.m-scale{line-height:normal}.m-scale-container>.m-unit:before{font-family:g-cartografia!important;color:#a35d38;font-size:12px!important;margin-right:5px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div.m-control.m-rotate-container button[class^=g-cartografia-]#m-rotate-button{background-color:#fff;color:#337ceb;cursor:pointer;position:absolute;z-index:200;padding:0;left:19%;top:23%;font-size:1.5rem;border-radius:50%}.m-rotate-slider{border-radius:50%;height:30px;width:30px;cursor:pointer;position:absolute}#m-rotate-slider-container{width:40px;height:40px}#m-rotate-marker{width:45px;position:absolute;height:45px}#m-rotate-marker-circle{stroke:#337ceb;fill:#fff;cursor:pointer}.m-mouse-position{white-space:pre}.m-mouse-position:before{color:#a35d38;margin-right:5px;font-family:g-cartografia!important}@media only screen and (max-width:768px){.m-mouse-position{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>.m-mouse-position{border-radius:20px!important;order:4}.m-panel.m-map-info.m-with-scale>div.m-panel-controls>.m-mouse-position,.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>.m-mouse-position{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.m-getfeatureinfo-container{top:20px;left:300px}.m-popup table.mapea-table td.header{text-align:center;padding-top:10px;border-bottom:1px ridge #6c6c6c}.m-getfeatureinfo-content-info{min-width:250px;margin-bottom:.7rem}.m-getfeatureinfo-content-info-body.m-content-collapsed,span.m-content-collapsed{display:none}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header{display:flex;align-items:center;font-size:12px;background-color:#eee;margin-bottom:5px;color:#000;padding:5px}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-right{border:7px solid transparent;border-left-color:#000;cursor:pointer}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-down{border:7px solid transparent;border-top-color:#000;cursor:pointer;margin-right:5px}.m-areas{top:0;left:0;width:0;height:0;max-height:0}.m-areas>div.m-area{-webkit-display:flex;display:flex;position:absolute;-webkit-flex-flow:column nowrap;flex-flow:column nowrap}.m-areas>div.m-area.m-top{top:0}.m-areas>div.m-area.m-bottom{bottom:0;width:0;max-width:0}.m-areas>div.m-area.m-bottom.m-right{z-index:10}.m-areas>div.m-area.m-left{left:0;-webkit-align-items:flex-start;align-items:flex-start}.m-areas>div.m-area.m-right{right:0;-webkit-align-items:flex-end;align-items:flex-end}@media only screen and (max-width:768px){.m-areas>div.m-area.m-top.top-extra{top:65px}.m-areas>div.m-area.m-top.top-extra.top-extra-search{top:75px}.m-areas>div.m-area.m-top.top-extra.top-extra-searchs{top:135px}}.m-areas>div.m-area>div.m-panel{z-index:999;position:relative;background:#fff;box-sizing:border-box;border-radius:4px}.m-areas>div.m-area>div.m-panel,div.m-panel>button{box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}.m-areas>div.m-area.m-top>div.m-panel{margin-top:10px}.m-areas>div.m-area.m-bottom>div.m-panel{margin-bottom:10px}.m-areas>div.m-area.m-left>div.m-panel{margin-left:10px}.m-areas>div.m-area.m-right>div.m-panel{margin-right:10px}.m-areas>div.m-area>div.m-panel.no-collapsible{border-radius:20px}.m-areas>div.m-area>div.m-panel>button.m-panel-btn{color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}.m-areas>div.m-area>div.m-panel.no-collapsible>div.m-panel-controls>div.m-control>button,.m-areas>div.m-area>div.m-panel>button.m-panel-btn{-webkit-transition:opacity .25s ease 0s,color .25s ease 0s;transition:opacity .25s ease 0s,color .25s ease 0s;padding:0;font-size:19px;background:none;cursor:pointer;width:40px;height:40px;box-sizing:border-box;border:0;font-family:g-cartografia!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.m-areas>div.m-area>div.m-panel.opened>button.m-panel-btn{font-size:15px}.m-areas>div.m-area.m-left>div.m-panel>button.m-panel-btn{border-top-right-radius:4px;border-bottom-right-radius:4px;float:right}.m-areas>div.m-area.m-left>div.m-panel.collapsed>button.m-panel-btn{position:inherit;right:0;box-shadow:none}.m-areas>div.m-area.m-right>div.m-panel>button.m-panel-btn{border-top-left-radius:4px;border-bottom-left-radius:4px;float:left}.m-areas>div.m-area>div.m-panel.m-tools>button.m-panel-btn{background-color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>button.m-panel-btn{background-color:#67af13}.m-areas>div.m-area>div.m-panel.m-tools.collapsed>button.m-panel-btn{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition.collapsed>button.m-panel-btn{color:#67af13}.m-areas>div.m-area>div.m-panel.collapsed>button.m-panel-btn{border-radius:20px;background-color:#fff!important}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus{outline:none}.m-areas>div.m-area>div.m-panel.no-collapsible>button.m-panel-btn{display:none}.m-areas>div.m-area.m-left>div.m-panel,.m-areas>div.m-area.m-left>div.m-panel>div.m-panel-controls{-webkit-flex-direction:row-reverse;flex-direction:row-reverse;align-items:flex-end}.m-areas>div.m-area>div.m-panel.m-tools{order:-90}.m-areas>div.m-area>div.m-panel.m-edition{order:-80}.m-areas>div.m-area>div.m-panel.m-panzoombar{order:-69;margin-top:8px;border-radius:20px;margin-left:25px;width:10px}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-panzoombar{display:none}}.m-areas>div.m-area>div.m-panel.m-panzoom{order:-70;width:30px;height:60px;border-radius:4px;margin-left:15px}.m-areas>div.m-area>div.m-panel.m-scaleline{background-color:transparent;box-shadow:none;left:20px}.m-areas>div.m-area>div.m-panel.m-location>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-mouse{border-radius:4px;padding:5px}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls{width:auto}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls:before{font-size:15px;background:none}.m-areas>div.m-area>div.m-panel.m-overviewmap{box-shadow:none}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:flex}@-moz-document url-prefix(){.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:inline-flex}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-areas>div.m-area>div.m-panel.collapsed{height:auto!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{width:40px!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{width:100%!important}.m-areas>div.m-area>div.m-panel.m-panzoom{height:auto!important}.m-printer.opened .m-printer-container .form{min-height:176px}.m-printer-container>div.button>button.print{width:57%!important}}@supports (overflow:-webkit-marquee) and (justify-content:inherit){.m-areas>div.m-area.m-top{top:0}}.m-areas>div.m-area.m-bottom,.m-areas>div.m-area.m-top,.m-areas>div.m-area>div.m-panel.m-map-info,.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls{visibility:hidden}.m-areas>div.m-area>div.m-panel{visibility:visible}.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls>div{visibility:visible!important}.m-areas>div.m-area>div.m-panel{-webkit-transition:border-radius .5s ease 0s;transition:border-radius .5s ease 0s}.m-areas>div.m-area>div.m-panel.collapsed{border-radius:20px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{opacity:1;border-radius:10px;-webkit-transition:max-width 1s ease 0s,opacity .75s ease .1s;transition:max-width 1s ease 0s,opacity .75s ease .1s}.m-areas>div.m-area>div.m-panel.collapsed>div.m-panel-controls{opacity:0;max-width:0;-webkit-transition:max-width .4s ease 0s,opacity .3s ease 0s;transition:max-width .4s ease 0s,opacity .3s ease 0s}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div{position:inherit!important;overflow:hidden;background-color:transparent;border-radius:0;padding:0;box-shadow:none;display:table}.m-areas>div.m-area>div.m-panel.m-tools>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>div.m-panel-controls>div.m-control.activated>button{color:#67af13}@media only screen and (min-width:769px){.m-geosearch.collapsed .m-panel-controls,.m-searchstreet.collapsed .m-panel-controls,.m-searchstreetgeosearch.collapsed .m-panel-controls{display:none!important}}.m-edition.collapsed .m-panel-controls,.m-tools.collapsed .m-panel-controls{display:none!important}.m-map-info>div.m-panel-controls{flex-direction:row-reverse;align-items:flex-end}.m-map-info{background:transparent!important;border-radius:0!important;box-shadow:none!important;right:0;order:4}.m-location{order:1;z-index:97}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container{order:3}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-top-left-radius:0!important;border-bottom-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-top-left-radius:20px!important;border-bottom-left-radius:20px!important}}.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>div.m-control.m-scale-container{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{order:2}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-wmcselector-container,.m-panel.m-map-info.m-with-scale>div.m-panel-controls>div.m-control.m-wmcselector-container{border-top-left-radius:0!important;border-bottom-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse:not(.m-with-scale)>div.m-panel-controls>div.m-control.m-wmcselector-container{border-top-left-radius:20px!important;border-bottom-left-radius:20px!important}}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position{display:inline;height:15px!important}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position,.m-scale-container{background-color:#fff!important;padding:6px 12px 3px!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important}.m-scale-container{display:flex!important;height:15px;white-space:pre}.m-scale-container:before{color:#a35d38;margin-right:5px}.m-wmcselector-container{background-color:#fff!important;padding:4px 10px 3px 12px!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;display:flex!important;height:17px}.m-wmcselector-container:before{color:#a35d38;margin-right:5px;margin-top:3px}@media only screen and (max-width:768px){.m-scale-container{border-top-left-radius:20px!important;border-bottom-left-radius:20px!important;padding:6px 12px 3px!important}}@media only screen and (min-width:769px){.m-geosearch.collapsed div.results-panel,.m-geosearch.collapsed div.search-panel{display:none!important}}.m-kml-desc>table{width:100%} \ No newline at end of file diff --git a/lib/mapea-6.4.0.ol.min.js b/lib/mapea-6.4.0.ol.min.js deleted file mode 100644 index 0074bfb..0000000 --- a/lib/mapea-6.4.0.ol.min.js +++ /dev/null @@ -1,99 +0,0 @@ -!function(t){function e(e){for(var i,n,s=e[0],o=e[1],a=0,h=[];as&&(h|=r.a.RIGHT),lo&&(h|=r.a.ABOVE),h===r.a.UNKNOWN&&(h=r.a.INTERSECTING),h}function g(){return[1/0,1/0,-1/0,-1/0]}function p(t,e,i,r,n){return n?(n[0]=t,n[1]=e,n[2]=i,n[3]=r,n):[t,e,i,r]}function f(t){return p(1/0,1/0,-1/0,-1/0,t)}function m(t,e){const i=t[0],r=t[1];return p(i,r,i,r,e)}function _(t,e,i,r,n){return w(f(n),t,e,i,r)}function y(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function v(t,e,i){return Math.abs(t[0]-e[0])t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function b(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function w(t,e,i,r,n){for(;ie[0]?r[0]=t[0]:r[0]=e[0],t[1]>e[1]?r[1]=t[1]:r[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function G(t){return t[2]=a&&m<=h),n||!(o&r.a.RIGHT)||s&r.a.RIGHT||(_=p-(g-h)*f,n=_>=l&&_<=c),n||!(o&r.a.BELOW)||s&r.a.BELOW||(m=g-(p-l)/f,n=m>=a&&m<=h),n||!(o&r.a.LEFT)||s&r.a.LEFT||(_=p-(g-a)*f,n=_>=l&&_<=c)}return n}function V(t,e,i,r){let n=[];if(r>1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s=i[2])){const e=D(i),n=Math.floor((r[0]-i[0])/e)*e;t[0]-=n,t[2]-=n}return t}function Y(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];q(t,e);const r=D(i);if(D(t)>r)return[[i[0],t[1],i[2],t[3]]];if(t[0]i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-r,t[3]]]}return[t]}},function(t,e,i){"use strict";var r=i(36);const n=6378137,s=Math.PI*n,o=[-s,-s,s,s],a=[-180,-85,180,85],l=n*Math.log(Math.tan(Math.PI/2));class h extends r.a{constructor(t){super({code:t,units:"m",extent:o,global:!0,worldExtent:a,getPointResolution:function(t,e){return t/Math.cosh(e[1]/n)}})}}const c=[new h("EPSG:3857"),new h("EPSG:102100"),new h("EPSG:102113"),new h("EPSG:900913"),new h("http://www.opengis.net/def/crs/EPSG/0/3857"),new h("http://www.opengis.net/gml/srs/epsg.xml#3857")];function u(t,e,i){const r=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(r));for(let o=0;ol?i=l:i<-l&&(i=-l),e[o+1]=i}return e}function d(t,e,i){const r=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(r));for(let o=0;o=o?e[s+t]:n[t]}return i}}function F(t,e,i,r){const n=O(t),s=O(e);Object(v.a)(n,s,A(i)),Object(v.a)(s,n,A(r))}function k(t,e){return C(),B(t,"EPSG:4326",void 0!==e?e:"EPSG:3857")}function D(t,e){const i=B(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),r=i[0];return(r<-180||r>180)&&(i[0]=Object(b.e)(r+180,360)-180),i}function j(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return G(t,e)===T&&i}function G(t,e){const i=t.getCode(),r=e.getCode();let n=Object(v.c)(i,r);return n||(n=L),n}function z(t,e){return G(O(t),O(e))}function B(t,e,i){return z(e,i)(t,void 0,t.length)}function U(t,e,i,r){const n=z(e,i);return Object(x.a)(t,n,void 0,r)}let V=null;function q(t){V=O(t)}function Y(){V=null}function W(){return V}function X(){q("EPSG:4326")}function H(t,e){return V?B(t,e,V):t}function Z(t,e){return V?B(t,V,e):(I&&!Object(w.g)(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(I=!1,Object(S.b)("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function K(t,e){return V?U(t,e,V):t}function $(t,e){return V?U(t,V,e):t}function J(t,e){if(!V)return t;const i=O(e).getUnits(),r=V.getUnits();return i&&r?t*_.a[i]/_.a[r]:t}function Q(t,e){if(!V)return t;const i=O(e).getUnits(),r=V.getUnits();return i&&r?t*_.a[r]/_.a[i]:t}function tt(t,e,i){return function(r){let n,s;if(t.canWrapX()){const e=t.getExtent(),o=Object(x.G)(e);r=r.slice(0),s=Object(w.i)(r,t,o),s&&(r[0]=r[0]-s*o),r[0]=Object(b.b)(r[0],e[0],e[2]),r[1]=Object(b.b)(r[1],e[1],e[3]),n=i(r)}else n=i(r);return s&&e.canWrapX()&&(n[0]+=s*Object(x.G)(e.getExtent())),n}}var et,it,rt;P(c),P(m),et=c,it=u,rt=d,m.forEach((function(t){et.forEach((function(e){Object(v.a)(t,e,it),Object(v.a)(e,t,rt)}))}))},function(t,e,i){"use strict";function r(){throw new Error("Unimplemented abstract method.")}i.d(e,"a",(function(){return r})),i.d(e,"b",(function(){return s}));let n=0;function s(t){return t.ol_uid||(t.ol_uid=String(++n))}},function(t,e,i){"use strict";function r(t,e,i){return Math.min(Math.max(t,e),i)}function n(t,e,i,r,n,o){const a=n-i,l=o-r;if(0!==a||0!==l){const s=((t-i)*a+(e-r)*l)/(a*a+l*l);s>1?(i=n,r=o):s>0&&(i+=a*s,r+=l*s)}return s(t,e,i,r)}function s(t,e,i,r){const n=i-t,s=r-e;return n*n+s*s}function o(t){const e=t.length;for(let i=0;in&&(n=e,r=s)}if(0===n)return null;const s=t[r];t[r]=t[i],t[i]=s;for(let r=i+1;r=0;r--){i[r]=t[r][e]/t[r][r];for(let n=r-1;n>=0;n--)t[n][e]-=t[n][r]*i[r]}return i}function a(t){return 180*t/Math.PI}function l(t){return t*Math.PI/180}function h(t,e){const i=t%e;return i*e<0?i+e:i}function c(t,e,i){return t+i*(e-t)}function u(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function d(t,e){return Math.round(u(t,e))}function g(t,e){return Math.floor(u(t,e))}function p(t,e){return Math.ceil(u(t,e))}i.d(e,"b",(function(){return r})),i.d(e,"i",(function(){return n})),i.d(e,"h",(function(){return s})),i.d(e,"g",(function(){return o})),i.d(e,"j",(function(){return a})),i.d(e,"l",(function(){return l})),i.d(e,"e",(function(){return h})),i.d(e,"d",(function(){return c})),i.d(e,"k",(function(){return u})),i.d(e,"f",(function(){return d})),i.d(e,"c",(function(){return g})),i.d(e,"a",(function(){return p}))},function(t,e,i){"use strict";e.a={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4}},function(t,e,i){"use strict";e.a={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"}},function(t,e,i){"use strict";i.d(e,"a",(function(){return n})),i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return o}));var r=i(22);function n(t,e,i,r,n){if(r&&r!==t&&(i=i.bind(r)),n){const r=i;i=function(){t.removeEventListener(e,i),r.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function s(t,e,i,r){return n(t,e,i,r,!0)}function o(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),Object(r.a)(t))}},function(t,e,i){"use strict";i.d(e,"d",(function(){return o})),i.d(e,"h",(function(){return a})),i.d(e,"g",(function(){return l})),i.d(e,"k",(function(){return c})),i.d(e,"a",(function(){return u})),i.d(e,"i",(function(){return d})),i.d(e,"j",(function(){return g})),i.d(e,"f",(function(){return p})),i.d(e,"m",(function(){return f})),i.d(e,"b",(function(){return m})),i.d(e,"c",(function(){return _})),i.d(e,"e",(function(){return y})),i.d(e,"l",(function(){return x}));var r=i(24),n=i(8);const s=new Array(6);function o(){return[1,0,0,1,0,0]}function a(t){return h(t,1,0,0,1,0,0)}function l(t,e){const i=t[0],r=t[1],n=t[2],s=t[3],o=t[4],a=t[5],l=e[0],h=e[1],c=e[2],u=e[3],d=e[4],g=e[5];return t[0]=i*l+n*h,t[1]=r*l+s*h,t[2]=i*c+n*u,t[3]=r*c+s*u,t[4]=i*d+n*g+o,t[5]=r*d+s*g+a,t}function h(t,e,i,r,n,s,o){return t[0]=e,t[1]=i,t[2]=r,t[3]=n,t[4]=s,t[5]=o,t}function c(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function u(t,e){const i=e[0],r=e[1];return e[0]=t[0]*i+t[2]*r+t[4],e[1]=t[1]*i+t[3]*r+t[5],e}function d(t,e){const i=Math.cos(e),r=Math.sin(e);return l(t,h(s,i,r,-r,i,0,0))}function g(t,e,i){return l(t,h(s,e,0,0,i,0,0))}function p(t,e,i){return h(t,e,0,0,i,0,0)}function f(t,e,i){return l(t,h(s,1,0,0,1,e,i))}function m(t,e,i,r,n,s,o,a){const l=Math.sin(s),h=Math.cos(s);return t[0]=r*h,t[1]=n*l,t[2]=-r*l,t[3]=n*h,t[4]=o*r*h-a*r*l+e,t[5]=o*n*l+a*n*h+i,t}function _(t,e,i,r,n,s,o){return x(m([1,0,0,1,0,0],t,e,i,r,n,s,o))}function y(t,e){const i=(r=e)[0]*r[3]-r[1]*r[2];var r;Object(n.a)(0!==i,32);const s=e[0],o=e[1],a=e[2],l=e[3],h=e[4],c=e[5];return t[0]=l/i,t[1]=-o/i,t[2]=-a/i,t[3]=s/i,t[4]=(a*c-l*h)/i,t[5]=-(s*c-o*h)/i,t}let v;function x(t){const e="matrix("+t.join(", ")+")";if(r.h)return e;const i=v||(v=document.createElement("div"));return i.style.transform=e,i.style.transform}},function(t,e,i){"use strict";i.d(e,"a",(function(){return n}));var r=i(77);function n(t,e){if(!t)throw new r.a(e)}},function(t,e,i){"use strict";function r(t,e,i){let r,s;i=i||n;let o=0,a=t.length,l=!1;for(;o>1),s=+i(t[r],e),s<0?o=r+1:(a=r,l=!s);return l?o:~o}function n(t,e){return t>e?1:t0){for(n=1;n0?n-1:n:t[n-1]-e0||i&&0===s)}))}i.d(e,"b",(function(){return r})),i.d(e,"a",(function(){return n})),i.d(e,"f",(function(){return s})),i.d(e,"g",(function(){return o})),i.d(e,"d",(function(){return a})),i.d(e,"c",(function(){return l})),i.d(e,"h",(function(){return h})),i.d(e,"e",(function(){return c}))},function(t,e,i){"use strict";i.d(e,"a",(function(){return n})),i.d(e,"d",(function(){return s})),i.d(e,"c",(function(){return o})),i.d(e,"b",(function(){return a})),i.d(e,"h",(function(){return l})),i.d(e,"f",(function(){return h})),i.d(e,"e",(function(){return c})),i.d(e,"g",(function(){return u}));var r=i(24);function n(t,e,i,n){let s;return s=i&&i.length?i.shift():r.h?new OffscreenCanvas(t||300,e||300):document.createElement("canvas"),t&&(s.width=t),e&&(s.height=e),s.getContext("2d",n)}function s(t){const e=t.canvas;e.width=1,e.height=1,t.clearRect(0,0,1,1)}function o(t){let e=t.offsetWidth;const i=getComputedStyle(t);return e+=parseInt(i.marginLeft,10)+parseInt(i.marginRight,10),e}function a(t){let e=t.offsetHeight;const i=getComputedStyle(t);return e+=parseInt(i.marginTop,10)+parseInt(i.marginBottom,10),e}function l(t,e){const i=e.parentNode;i&&i.replaceChild(t,e)}function h(t){return t&&t.parentNode?t.parentNode.removeChild(t):null}function c(t){for(;t.lastChild;)t.removeChild(t.lastChild)}function u(t,e){const i=t.childNodes;for(let r=0;;++r){const n=i[r],s=e[r];if(!n&&!s)break;n!==s&&(n?s?t.insertBefore(s,n):(t.removeChild(n),--r):t.appendChild(s))}}},function(t,e,i){"use strict";i.r(e),i.d(e,"fieldTagNames",(function(){return r})),i.d(e,"fieldTags",(function(){return n})),i.d(e,"fieldTagTypes",(function(){return s})),i.d(e,"arrayFields",(function(){return o})),i.d(e,"fieldTypeNames",(function(){return a})),i.d(e,"fieldTypes",(function(){return l})),i.d(e,"photometricInterpretations",(function(){return h})),i.d(e,"ExtraSamplesValues",(function(){return c})),i.d(e,"LercParameters",(function(){return u})),i.d(e,"LercAddCompression",(function(){return d})),i.d(e,"geoKeyNames",(function(){return g})),i.d(e,"geoKeys",(function(){return p}));const r={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},n={};for(const t in r)r.hasOwnProperty(t)&&(n[r[t]]=parseInt(t,10));const s={256:"SHORT",257:"SHORT",258:"SHORT",259:"SHORT",262:"SHORT",273:"LONG",274:"SHORT",277:"SHORT",278:"LONG",279:"LONG",282:"RATIONAL",283:"RATIONAL",284:"SHORT",286:"SHORT",287:"RATIONAL",296:"SHORT",297:"SHORT",305:"ASCII",306:"ASCII",338:"SHORT",339:"SHORT",513:"LONG",514:"LONG",1024:"SHORT",1025:"SHORT",2048:"SHORT",2049:"ASCII",3072:"SHORT",3073:"ASCII",33550:"DOUBLE",33922:"DOUBLE",34665:"LONG",34735:"SHORT",34737:"ASCII",42113:"ASCII"},o=[n.BitsPerSample,n.ExtraSamples,n.SampleFormat,n.StripByteCounts,n.StripOffsets,n.StripRowCounts,n.TileByteCounts,n.TileOffsets,n.SubIFDs],a={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},l={};for(const t in a)a.hasOwnProperty(t)&&(l[a[t]]=parseInt(t,10));const h={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},c={Unspecified:0,Assocalpha:1,Unassalpha:2},u={Version:0,AddCompression:1},d={None:0,Deflate:1},g={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},p={};for(const t in g)g.hasOwnProperty(t)&&(p[g[t]]=parseInt(t,10))},function(t,e,i){"use strict";i.d(e,"a",(function(){return o})),i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return l})),i.d(e,"d",(function(){return h})),i.d(e,"e",(function(){return c})),i.d(e,"h",(function(){return u})),i.d(e,"g",(function(){return d})),i.d(e,"j",(function(){return g})),i.d(e,"k",(function(){return p})),i.d(e,"l",(function(){return f})),i.d(e,"f",(function(){return m})),i.d(e,"m",(function(){return _})),i.d(e,"n",(function(){return y})),i.d(e,"o",(function(){return v})),i.d(e,"p",(function(){return x})),i.d(e,"i",(function(){return b}));var r=i(0),n=i(3),s=i(46);function o(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function a(t,e){const i=e.getRadius(),r=e.getCenter(),n=r[0],s=r[1];let o=t[0]-n;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[n+i*o/l,s+i*a/l]}function l(t,e){const i=t[0],r=t[1],n=e[0],s=e[1],o=n[0],a=n[1],l=s[0],h=s[1],c=l-o,u=h-a,d=0===c&&0===u?0:(c*(i-o)+u*(r-a))/(c*c+u*u||0);let g,p;return d<=0?(g=o,p=a):d>=1?(g=l,p=h):(g=o+d*c,p=a+d*u),[g,p]}function h(t){return function(e){return v(e,t)}}function c(t,e,i){const r=Object(n.e)(e+180,360)-180,o=Math.abs(3600*r),a=i||0;let l=Math.floor(o/3600),h=Math.floor((o-3600*l)/60),c=Object(n.k)(o-3600*l-60*h,a);c>=60&&(c=0,h+=1),h>=60&&(h=0,l+=1);let u=l+"°";return 0===h&&0===c||(u+=" "+Object(s.b)(h,2)+"′"),0!==c&&(u+=" "+Object(s.b)(c,2,a)+"″"),0!==r&&(u+=" "+t.charAt(r<0?1:0)),u}function u(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function d(t,e){let i=!0;for(let r=t.length-1;r>=0;--r)if(t[r]!=e[r]){i=!1;break}return i}function g(t,e){const i=Math.cos(e),r=Math.sin(e),n=t[0]*i-t[1]*r,s=t[1]*i+t[0]*r;return t[0]=n,t[1]=s,t}function p(t,e){return t[0]*=e,t[1]*=e,t}function f(t,e){const i=t[0]-e[0],r=t[1]-e[1];return i*i+r*r}function m(t,e){return Math.sqrt(f(t,e))}function _(t,e){return f(t,l(t,e))}function y(t,e){return t?c("NS",t[1],e)+" "+c("EW",t[0],e):""}function v(t,e){return u(t,"{x}, {y}",e)}function x(t,e){if(e.canWrapX()){const i=Object(r.G)(e.getExtent()),n=b(t,e,i);n&&(t[0]-=n*i)}return t}function b(t,e,i){const n=e.getExtent();let s=0;return e.canWrapX()&&(t[0]n[2])&&(i=i||Object(r.G)(n),s=Math.floor((t[0]-n[0])/i)),s}},function(t,e,i){"use strict";e.a={IDLE:0,LOADING:1,LOADED:2,ERROR:3,EMPTY:4}},function(t,e,i){"use strict";function r(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]+2*e,i[1]=t[1]+2*e,i}function n(t){return t[0]>0&&t[1]>0}function s(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function o(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}i.d(e,"a",(function(){return r})),i.d(e,"b",(function(){return n})),i.d(e,"c",(function(){return s})),i.d(e,"d",(function(){return o}))},function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"a",(function(){return s})),i.d(e,"c",(function(){return o})),i.d(e,"d",(function(){return a})),i.d(e,"e",(function(){return l}));var r=i(9);function n(){return!0}function s(){return!1}function o(){}function a(t){let e,i,n,s=!1;return function(){const o=Array.prototype.slice.call(arguments);return s&&this===n&&Object(r.c)(o,i)||(s=!0,n=this,i=o,e=t.apply(this,arguments)),e}}function l(t){return function(){let e;try{e=t()}catch(t){return Promise.reject(t)}return e instanceof Promise?e:Promise.resolve(e)}()}},function(t,e,i){"use strict";i.d(e,"b",(function(){return r}));function r(t){t.stopPropagation()}e.a=class{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}}},function(t,e,i){"use strict";function r(t,e,i,r){return void 0!==r?(r[0]=t,r[1]=e,r[2]=i,r):[t,e,i]}function n(t,e,i){return t+"/"+e+"/"+i}function s(t){return n(t[0],t[1],t[2])}function o(t){const[e,i,r]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return n(e,i,r)}function a(t){return t.split("/").map(Number)}function l(t){return(t[1]<i||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(r,n)}i.d(e,"a",(function(){return r})),i.d(e,"e",(function(){return n})),i.d(e,"d",(function(){return s})),i.d(e,"c",(function(){return o})),i.d(e,"b",(function(){return a})),i.d(e,"f",(function(){return l})),i.d(e,"g",(function(){return h}))},function(t,e,i){"use strict";i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return h})),i.d(e,"a",(function(){return c})),i.d(e,"e",(function(){return d})),i.d(e,"d",(function(){return g}));var r=i(8),n=i(3);const s=/^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i,o=/^([a-z]*)$|^hsla?\(.*\)$/i;function a(t){return"string"==typeof t?t:d(t)}function l(t){const e=document.createElement("div");if(e.style.color=t,""!==e.style.color){document.body.appendChild(e);const t=getComputedStyle(e).color;return document.body.removeChild(e),t}return""}const h=function(){const t={};let e=0;return function(i){let n;if(t.hasOwnProperty(i))n=t[i];else{if(e>=1024){let i=0;for(const r in t)0==(3&i++)&&(delete t[r],--e)}n=function(t){let e,i,n,a,h;o.exec(t)&&(t=l(t));if(s.exec(t)){const r=t.length-1;let s;s=r<=4?1:2;const o=4===r||8===r;e=parseInt(t.substr(1+0*s,s),16),i=parseInt(t.substr(1+1*s,s),16),n=parseInt(t.substr(1+2*s,s),16),a=o?parseInt(t.substr(1+3*s,s),16):255,1==s&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,o&&(a=(a<<4)+a)),h=[e,i,n,a/255]}else t.startsWith("rgba(")?(h=t.slice(5,-1).split(",").map(Number),u(h)):t.startsWith("rgb(")?(h=t.slice(4,-1).split(",").map(Number),h.push(1),u(h)):Object(r.a)(!1,14);return h}(i),t[i]=n,++e}return n}}();function c(t){return Array.isArray(t)?t:h(t)}function u(t){return t[0]=Object(n.b)(t[0]+.5|0,0,255),t[1]=Object(n.b)(t[1]+.5|0,0,255),t[2]=Object(n.b)(t[2]+.5|0,0,255),t[3]=Object(n.b)(t[3],0,1),t}function d(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let r=t[2];r!=(0|r)&&(r=r+.5|0);return"rgba("+e+","+i+","+r+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}function g(t){return o.test(t)&&(t=l(t)),s.test(t)||t.startsWith("rgba(")||t.startsWith("rgb(")}},function(t,e,i){"use strict";e.a={ANIMATING:0,INTERACTING:1}},function(t,e,i){"use strict";function r(t,e){for(const i in e)e.hasOwnProperty(i)&&(t[i]=e[i])}function n(t,e){if(t.lengthsetTimeout(e,t))}function h(t,e){const i=Array.isArray(t)?t:Array.from(t),r=Array.isArray(e)?e:Array.from(e);return i.map((t,e)=>[t,r[e]])}i.d(e,"c",(function(){return r})),i.d(e,"d",(function(){return n})),i.d(e,"e",(function(){return s})),i.d(e,"f",(function(){return o})),i.d(e,"g",(function(){return a})),i.d(e,"h",(function(){return l})),i.d(e,"i",(function(){return h})),i.d(e,"a",(function(){return c})),i.d(e,"b",(function(){return d}));class c extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,c),this.name="AbortError"}}class u extends Error{constructor(t,e){super(e),this.errors=t,this.message=e,this.name="AggregateError"}}const d=u},function(t,e,i){"use strict";e.a={OPACITY:"opacity",VISIBLE:"visible",EXTENT:"extent",Z_INDEX:"zIndex",MAX_RESOLUTION:"maxResolution",MIN_RESOLUTION:"minResolution",MAX_ZOOM:"maxZoom",MIN_ZOOM:"minZoom",SOURCE:"source",MAP:"map"}},function(t,e,i){"use strict";function r(t){for(const e in t)delete t[e]}function n(t){let e;for(e in t)return!1;return!e}i.d(e,"a",(function(){return r})),i.d(e,"b",(function(){return n}))},function(t,e,i){"use strict";function r(t){return Math.pow(t,3)}function n(t){return 1-r(1-t)}function s(t){return 3*t*t-2*t*t*t}function o(t){return t}function a(t){return t<.5?s(2*t):1-s(2*(t-.5))}i.r(e),i.d(e,"easeIn",(function(){return r})),i.d(e,"easeOut",(function(){return n})),i.d(e,"inAndOut",(function(){return s})),i.d(e,"linear",(function(){return o})),i.d(e,"upAndDown",(function(){return a}))},function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"f",(function(){return s})),i.d(e,"g",(function(){return o})),i.d(e,"d",(function(){return a})),i.d(e,"a",(function(){return l})),i.d(e,"h",(function(){return h})),i.d(e,"c",(function(){return c})),i.d(e,"e",(function(){return u}));const r="undefined"!=typeof navigator&&void 0!==navigator.userAgent?navigator.userAgent.toLowerCase():"",n=r.includes("firefox"),s=r.includes("safari")&&!r.includes("chrom")&&(r.includes("version/15.4")||/cpu (os|iphone os) 15_4 like mac os x/.test(r)),o=r.includes("webkit")&&!r.includes("edge"),a=r.includes("macintosh"),l="undefined"!=typeof devicePixelRatio?devicePixelRatio:1,h="undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas&&self instanceof WorkerGlobalScope,c="undefined"!=typeof Image&&Image.prototype.decode,u=function(){let t=!1;try{const e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("_",null,e),window.removeEventListener("_",null,e)}catch(t){}return t}()},function(t,e,i){"use strict";i.d(e,"c",(function(){return l})),i.d(e,"d",(function(){return h})),i.d(e,"a",(function(){return c})),i.d(e,"b",(function(){return d}));var r=i(28),n=i(41),s=i(1),o=i(0),a=i(14);function l(t){let e=t.getDefaultTileGrid();return e||(e=function(t,e,i,n){return function(t,e,i,n){n=void 0!==n?n:"top-left";const s=u(t,e,i);return new r.a({extent:t,origin:Object(o.y)(t,n),resolutions:s,tileSize:i})}(d(t),e,i,n)}(t),t.setDefaultTileGrid(e)),e}function h(t,e,i){const r=e[0],n=t.getTileCoordCenter(e),s=d(i);if(!Object(o.g)(s,n)){const e=Object(o.G)(s),i=Math.ceil((s[0]-n[0])/e);return n[0]+=e*i,t.getTileCoordForCoordAndZ(n,r)}return e}function c(t){const e=t||{},i=e.extent||Object(s.o)("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:u(i,e.maxZoom,e.tileSize,e.maxResolution)};return new r.a(n)}function u(t,e,i,r){e=void 0!==e?e:n.a,i=Object(a.d)(void 0!==i?i:n.b);const s=Object(o.A)(t),l=Object(o.G)(t);r=r>0?r:Math.max(l/i[0],s/i[1]);const h=e+1,c=new Array(h);for(let t=0;tthis.getImageInternal(t,e,i,n),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,r){return Object(f.a)()}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case n.a.LOADING:this.loading=!0,i=y;break;case n.a.LOADED:this.loading=!1,i=v;break;case n.a.ERROR:this.loading=!1,i=x;break;default:return}this.hasListener(i)&&this.dispatchEvent(new b(i,e))}}function E(t,e){t.getImage().src=e}e.a=w},function(t,e,i){"use strict";var r=i(49),n=i(41),s=i(8),o=i(3),a=i(0),l=i(17),h=i(54),c=i(9),u=i(14);const d=[0,0,0];e.a=class{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,Object(s.a)(Object(c.e)(this.resolutions_,(function(t,e){return e-t}),!0),17),!t.origins)for(let t=0,i=this.resolutions_.length-1;t=this.minZoom;){if(2===this.zoomFactor_?(o=Math.floor(o/2),a=Math.floor(a/2),s=Object(r.a)(o,o,a,a,i)):s=this.getTileRangeForExtentAndZ(l,h,i),e(h,s))return!0;--h}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||ei&&(t=i),t},It=function(t){return t.length>=3?Array.prototype.slice.call(t):t[0]},E=function(t){var e,i;for(t._clipped=!1,t._unclipped=t.slice(0),e=i=0;i<3;e=++i)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]<0&&(t[e]=0),t[e]>255&&(t[e]=255)):3===e&&(t[e]<0&&(t[e]=0),t[e]>1&&(t[e]=1));return t._clipped||delete t._unclipped,t},o=Math.PI,vt=Math.round,I=Math.cos,O=Math.floor,rt=Math.pow,K=Math.log,bt=Math.sin,wt=Math.sqrt,m=Math.atan2,Q=Math.max,f=Math.abs,h=2*o,a=o/3,n=o/180,l=180/o,(w=function(){return arguments[0]instanceof r?arguments[0]:function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,arguments,(function(){}))}).default=w,p=[],null!==t&&null!=t.exports&&(t.exports=w),void 0===(i=function(){return w}.apply(e,[]))||(t.exports=i),w.version="1.4.0",g={},u=[],d=!1,r=function(){function t(){var t,e,i,r,n,s,o,a,l;for(s=this,e=[],a=0,r=arguments.length;a1&&(o=e[e.length-1]),null!=g[o])s._rgb=E(g[o](It(e.slice(0,-1))));else{for(d||(u=u.sort((function(t,e){return e.p-t.p})),d=!0),l=0,n=u.length;l3?e[3]:1]},Lt=function(t){return 255*(t<=.00304?12.92*t:1.055*rt(t,1/2.4)-.055)},Y=function(t){return t>s.t1?t*t*t:s.t2*(t-s.t0)},s={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ut=function(){var t,e,i,r,n,s,o;return i=(r=It(arguments))[0],e=r[1],t=r[2],s=(n=mt(i,e,t))[0],[116*(o=n[1])-16,500*(s-o),200*(o-n[2])]},_t=function(t){return(t/=255)<=.04045?t/12.92:rt((t+.055)/1.055,2.4)},Tt=function(t){return t>s.t3?rt(t,1/3):t/s.t2+s.t0},mt=function(){var t,e,i,r;return i=(r=It(arguments))[0],e=r[1],t=r[2],i=_t(i),e=_t(e),t=_t(t),[Tt((.4124564*i+.3575761*e+.1804375*t)/s.Xn),Tt((.2126729*i+.7151522*e+.072175*t)/s.Yn),Tt((.0193339*i+.119192*e+.9503041*t)/s.Zn)]},w.lab=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["lab"]),(function(){}))},g.lab=q,r.prototype.lab=function(){return ut(this._rgb)},_=function(t){var e,i,r,n,s,o,a,l,h,c,u;return 2===(t=function(){var e,i,r;for(r=[],i=0,e=t.length;i=0&&e[3]<=1?"rgb":void 0}}),g.lrgb=g.rgb,z=function(t,e,i,n){var s,o;return s=t._rgb,o=e._rgb,new r(wt(rt(s[0],2)*(1-i)+rt(o[0],2)*i),wt(rt(s[1],2)*(1-i)+rt(o[1],2)*i),wt(rt(s[2],2)*(1-i)+rt(o[2],2)*i),n)},c=function(t){var e,i,n,s,o;for(e=1/t.length,o=[0,0,0,0],n=0,i=t.length;n1&&(o[3]=1),new r(E(o))},p.push(["lrgb",z]),w.average=function(t,e){var i,r,n,s,a,l,h,u,d,g,p,f,_;if(null==e&&(e="rgb"),d=t.length,h=(t=t.map((function(t){return w(t)}))).splice(0,1)[0],"lrgb"===e)return c(t);for(u in s=[],a=0,l=0,f=h.get(e))f[u]=f[u]||0,s.push(isNaN(f[u])?0:1),"h"!==e.charAt(u)||isNaN(f[u])||(i=f[u]/180*o,a+=I(i),l+=bt(i));for(r=h.alpha(),p=0,g=t.length;p=360;)i-=360;f[u]=i}else f[u]=f[u]/s[u];return w(f,e).alpha(r/d)},P=function(t){var e,i;if(t.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))return 4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[(i=parseInt(t,16))>>16,i>>8&255,255&i,1];if(t.match(/^#?([A-Fa-f0-9]{8})$/))return 9===t.length&&(t=t.substr(1)),[(i=parseInt(t,16))>>24&255,i>>16&255,i>>8&255,vt((255&i)/255*100)/100];if(null!=g.css&&(e=g.css(t)))return e;throw"unknown color: "+t},at=function(t,e){var i,r,n,s,o,a;return null==e&&(e="auto"),o=t[0],n=t[1],r=t[2],i=t[3],"auto"===e&&(e=i<1?"rgba":"rgb"),o=Math.round(o),n=Math.round(n),r=Math.round(r),a=(a="000000"+(o<<16|n<<8|r).toString(16)).substr(a.length-6),s=(s="0"+vt(255*i).toString(16)).substr(s.length-2),"#"+function(){switch(e.toLowerCase()){case"rgba":return a+s;case"argb":return s+a;default:return a}}()},g.hex=function(t){return P(t)},w.hex=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["hex"]),(function(){}))},r.prototype.hex=function(t){return null==t&&(t="auto"),at(this._rgb,t)},u.push({p:4,test:function(t){if(1===arguments.length&&"string"===St(t))return"hex"}}),F=function(){var t,e,i,r,n,s,o,a,l,h,c,u,d,g;if(n=(t=It(arguments))[0],c=t[1],o=t[2],0===c)l=r=e=255*o;else{for(i=[0,0,0],u=2*o-(d=o<.5?o*(1+c):o+c-o*c),(g=[0,0,0])[0]=(n/=360)+1/3,g[1]=n,g[2]=n-1/3,s=a=0;a<=2;s=++a)g[s]<0&&(g[s]+=1),g[s]>1&&(g[s]-=1),6*g[s]<1?i[s]=u+6*(d-u)*g[s]:2*g[s]<1?i[s]=d:3*g[s]<2?i[s]=u+(d-u)*(2/3-g[s])*6:i[s]=u;l=(h=[vt(255*i[0]),vt(255*i[1]),vt(255*i[2])])[0],r=h[1],e=h[2]}return t.length>3?[l,r,e,t[3]]:[l,r,e]},ht=function(t,e,i){var r,n,s,o,a;return void 0!==t&&t.length>=3&&(t=(o=t)[0],e=o[1],i=o[2]),t/=255,e/=255,i/=255,s=Math.min(t,e,i),n=((Q=Math.max(t,e,i))+s)/2,Q===s?(a=0,r=Number.NaN):a=n<.5?(Q-s)/(Q+s):(Q-s)/(2-Q-s),t===Q?r=(e-i)/(Q-s):e===Q?r=2+(i-t)/(Q-s):i===Q&&(r=4+(t-e)/(Q-s)),(r*=60)<0&&(r+=360),[r,a,n]},w.hsl=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["hsl"]),(function(){}))},g.hsl=F,r.prototype.hsl=function(){return ht(this._rgb)},k=function(){var t,e,i,r,n,s,o,a,l,h,c,u,d,g,p,f,m,_;if(n=(t=It(arguments))[0],f=t[1],_=t[2],_*=255,0===f)l=r=e=_;else switch(360===n&&(n=0),n>360&&(n-=360),n<0&&(n+=360),o=_*(1-f),a=_*(1-f*(i=(n/=60)-(s=O(n)))),m=_*(1-f*(1-i)),s){case 0:l=(h=[_,m,o])[0],r=h[1],e=h[2];break;case 1:l=(c=[a,_,o])[0],r=c[1],e=c[2];break;case 2:l=(u=[o,_,m])[0],r=u[1],e=u[2];break;case 3:l=(d=[o,a,_])[0],r=d[1],e=d[2];break;case 4:l=(g=[m,o,_])[0],r=g[1],e=g[2];break;case 5:l=(p=[_,o,a])[0],r=p[1],e=p[2]}return[l,r,e,t.length>3?t[3]:1]},ct=function(){var t,e,i,r,n,s,o,a,l;return s=(o=It(arguments))[0],i=o[1],t=o[2],n=Math.min(s,i,t),e=(Q=Math.max(s,i,t))-n,l=Q/255,0===Q?(r=Number.NaN,a=0):(a=e/Q,s===Q&&(r=(i-t)/e),i===Q&&(r=2+(t-s)/e),t===Q&&(r=4+(s-i)/e),(r*=60)<0&&(r+=360)),[r,a,l]},w.hsv=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["hsv"]),(function(){}))},g.hsv=k,r.prototype.hsv=function(){return ct(this._rgb)},et=function(t){return"number"===St(t)&&t>=0&&t<=16777215?[t>>16,t>>8&255,255&t,1]:(console.warn("unknown num color: "+t),[0,0,0,1])},pt=function(){var t;return((t=It(arguments))[0]<<16)+(t[1]<<8)+t[2]},w.num=function(t){return new r(t,"num")},r.prototype.num=function(t){return null==t&&(t="rgb"),pt(this._rgb,t)},g.num=et,u.push({p:1,test:function(t){if(1===arguments.length&&"number"===St(t)&&t>=0&&t<=16777215)return"num"}}),R=function(){var t,e,i,r,n,s,o,a,l,h,c,u,d,g,p,f,m,_,y,v;if(a=(i=It(arguments))[0],n=i[1],e=i[2],o=o/100*255,t=255*(n/=100),0===n)u=o=r=e;else switch(360===a&&(a=0),a>360&&(a-=360),a<0&&(a+=360),c=(h=e*(1-n))+t*(1-(s=(a/=60)-(l=O(a)))),y=h+t*s,v=h+t,l){case 0:u=(d=[v,y,h])[0],o=d[1],r=d[2];break;case 1:u=(g=[c,v,h])[0],o=g[1],r=g[2];break;case 2:u=(p=[h,v,y])[0],o=p[1],r=p[2];break;case 3:u=(f=[h,c,v])[0],o=f[1],r=f[2];break;case 4:u=(m=[y,h,v])[0],o=m[1],r=m[2];break;case 5:u=(_=[v,h,c])[0],o=_[1],r=_[2]}return[u,o,r,i.length>3?i[3]:1]},ot=function(){var t,e,i,r,n,s,o,a,l;return a=(l=It(arguments))[0],n=l[1],e=l[2],o=Math.min(a,n,e),i=100*(r=(Q=Math.max(a,n,e))-o)/255,t=o/(255-r)*100,0===r?s=Number.NaN:(a===Q&&(s=(n-e)/r),n===Q&&(s=2+(e-a)/r),e===Q&&(s=4+(a-n)/r),(s*=60)<0&&(s+=360)),[s,i,t]},w.hcg=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["hcg"]),(function(){}))},g.hcg=R,r.prototype.hcg=function(){return ot(this._rgb)},C=function(t){var e,i,r,n,s,o,a,l;if(t=t.toLowerCase(),null!=w.colors&&w.colors[t])return P(w.colors[t]);if(s=t.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(a=s.slice(1,4),n=o=0;o<=2;n=++o)a[n]=+a[n];a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(a=s.slice(1,5),n=l=0;l<=3;n=++l)a[n]=+a[n];else if(s=t.match(/rgb\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/)){for(a=s.slice(1,4),n=e=0;e<=2;n=++e)a[n]=vt(2.55*a[n]);a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/)){for(a=s.slice(1,5),n=i=0;i<=2;n=++i)a[n]=vt(2.55*a[n]);a[3]=+a[3]}else(s=t.match(/hsl\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/))?((r=s.slice(1,4))[1]*=.01,r[2]*=.01,(a=F(r))[3]=1):(s=t.match(/hsla\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/))&&((r=s.slice(1,4))[1]*=.01,r[2]*=.01,(a=F(r))[3]=+s[4]);return a},st=function(t){var e;return"rgb"===(e=t[3]<1?"rgba":"rgb")?e+"("+t.slice(0,3).map(vt).join(",")+")":"rgba"===e?e+"("+t.slice(0,3).map(vt).join(",")+","+t[3]+")":void 0},yt=function(t){return vt(100*t)/100},A=function(t,e){var i;return i=e<1?"hsla":"hsl",t[0]=yt(t[0]||0),t[1]=yt(100*t[1])+"%",t[2]=yt(100*t[2])+"%","hsla"===i&&(t[3]=e),i+"("+t.join(",")+")"},g.css=function(t){return C(t)},w.css=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["css"]),(function(){}))},r.prototype.css=function(t){return null==t&&(t="rgb"),"rgb"===t.slice(0,3)?st(this._rgb):"hsl"===t.slice(0,3)?A(this.hsl(),this.alpha()):void 0},g.named=function(t){return P(Ct[t])},u.push({p:5,test:function(t){if(1===arguments.length&&null!=Ct[t])return"named"}}),r.prototype.name=function(t){var e,i;for(i in arguments.length&&(Ct[t]&&(this._rgb=P(Ct[t])),this._rgb[3]=1),e=this.hex("rgb"),Ct)if(e===Ct[i])return i;return e},W=function(){var t,e,i,r;return i=(r=It(arguments))[0],t=r[1],e=r[2],[i,I(e*=n)*t,bt(e)*t]},X=function(){var t,e,i,r,n,s,o,a,l;return o=(i=It(arguments))[0],n=i[1],s=i[2],t=(a=W(o,n,s))[0],e=a[1],r=a[2],[(l=q(t,e,r))[0],l[1],r=l[2],i.length>3?i[3]:1]},V=function(){var t,e,i,r,n,s;return n=(s=It(arguments))[0],t=s[1],e=s[2],i=wt(t*t+e*e),r=(m(e,t)*l+360)%360,0===vt(1e4*i)&&(r=Number.NaN),[n,i,r]},dt=function(){var t,e,i,r,n,s,o;return n=(s=It(arguments))[0],i=s[1],e=s[2],r=(o=ut(n,i,e))[0],t=o[1],e=o[2],V(r,t,e)},w.lch=function(){var t;return t=It(arguments),new r(t,"lch")},w.hcl=function(){var t;return t=It(arguments),new r(t,"hcl")},g.lch=X,g.hcl=function(){var t,e,i,r;return e=(r=It(arguments))[0],t=r[1],i=r[2],X([i,t,e])},r.prototype.lch=function(){return dt(this._rgb)},r.prototype.hcl=function(){return dt(this._rgb).reverse()},nt=function(t){var e,i,r,n,s,o;return null==t&&(t="rgb"),s=(o=It(arguments))[0],r=o[1],e=o[2],r/=255,e/=255,[(1-(s/=255)-(n=1-Math.max(s,Math.max(r,e))))*(i=n<1?1/(1-n):0),(1-r-n)*i,(1-e-n)*i,n]},S=function(){var t,e,i,r,n,s;return i=(e=It(arguments))[0],n=e[1],s=e[2],r=e[3],t=e.length>4?e[4]:1,1===r?[0,0,0,t]:[i>=1?0:255*(1-i)*(1-r),n>=1?0:255*(1-n)*(1-r),s>=1?0:255*(1-s)*(1-r),t]},g.cmyk=function(){return S(It(arguments))},w.cmyk=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["cmyk"]),(function(){}))},r.prototype.cmyk=function(){return nt(this._rgb)},g.gl=function(){var t,e,i,r,n;for(r=function(){var t,i;for(e in i=[],t=It(arguments))n=t[e],i.push(n);return i}.apply(this,arguments),t=i=0;i<=2;t=++i)r[t]*=255;return r},w.gl=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["gl"]),(function(){}))},r.prototype.gl=function(){var t;return[(t=this._rgb)[0]/255,t[1]/255,t[2]/255,t[3]]},gt=function(t,e,i){var r;return t=(r=It(arguments))[0],e=r[1],i=r[2],.2126*(t=$(t))+.7152*(e=$(e))+.0722*(i=$(i))},$=function(t){return(t/=255)<=.03928?t/12.92:rt((t+.055)/1.055,2.4)},U=function(t,e,i,n){var s,o;return s=t._rgb,o=e._rgb,new r(s[0]+i*(o[0]-s[0]),s[1]+i*(o[1]-s[1]),s[2]+i*(o[2]-s[2]),n)},p.push(["rgb",U]),r.prototype.luminance=function(t,e){var i,r,n,s,o;return null==e&&(e="rgb"),arguments.length?(s=this._rgb,0===t?s=[0,0,0,this._rgb[3]]:1===t?s=[255,255,255,this[3]]:(i=gt(this._rgb),r=1e-7,n=20,o=function(i,s){var a,l;return a=(l=i.interpolate(s,.5,e)).luminance(),Math.abs(t-a)t?o(i,l):o(l,s)},s=i>t?o(w("black"),this).rgba():o(this,w("white")).rgba()),w(s).alpha(this.alpha())):gt(this._rgb)},Et=function(t){var e,i,r,n;return(n=t/100)<66?(r=255,i=-155.25485562709179-.44596950469579133*(i=n-2)+104.49216199393888*K(i),e=n<20?0:.8274096064007395*(e=n-10)-254.76935184120902+115.67994401066147*K(e)):(r=351.97690566805693+.114206453784165*(r=n-55)-40.25366309332127*K(r),i=325.4494125711974+.07943456536662342*(i=n-50)-28.0852963507957*K(i),e=255),[r,i,e]},ft=function(){var t,e,i,r,n,s,o,a;for(n=(s=It(arguments))[0],s[1],t=s[2],r=1e3,i=4e4,e=.4;i-r>e;)(o=Et(a=.5*(i+r)))[2]/o[0]>=t/n?i=a:r=a;return vt(a)},w.temperature=w.kelvin=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["temperature"]),(function(){}))},g.temperature=g.kelvin=g.K=Et,r.prototype.temperature=function(){return ft(this._rgb)},r.prototype.kelvin=r.prototype.temperature,w.contrast=function(t,e){var i,n,s,o;return"string"!==(s=St(t))&&"number"!==s||(t=new r(t)),"string"!==(o=St(e))&&"number"!==o||(e=new r(e)),(i=t.luminance())>(n=e.luminance())?(i+.05)/(n+.05):(n+.05)/(i+.05)},w.distance=function(t,e,i){var n,s,o,a,l,h,c;for(s in null==i&&(i="lab"),"string"!==(l=St(t))&&"number"!==l||(t=new r(t)),"string"!==(h=St(e))&&"number"!==h||(e=new r(e)),o=t.get(i),a=e.get(i),c=0,o)c+=(n=(o[s]||0)-(a[s]||0))*n;return Math.sqrt(c)},w.deltaE=function(t,e,i,n){var s,a,l,h,c,u,d,g,p,_,y,v,x,b,w,E,S,C,T,L,M,O,R,P;for(null==i&&(i=1),null==n&&(n=1),"string"!==(w=St(t))&&"number"!==w||(t=new r(t)),"string"!==(E=St(e))&&"number"!==E||(e=new r(e)),s=(S=t.lab())[0],l=S[1],c=S[2],a=(C=e.lab())[0],h=C[1],u=C[2],d=wt(l*l+c*c),g=wt(h*h+u*u),L=s<16?.511:.040975*s/(1+.01765*s),T=.0638*d/(1+.0131*d)+.638,b=d<1e-6?0:180*m(c,l)/o;b<0;)b+=360;for(;b>=360;)b-=360;return M=b>=164&&b<=345?.56+f(.2*I(o*(b+168)/180)):.36+f(.4*I(o*(b+35)/180)),x=wt((p=d*d*d*d)/(p+1900)),wt((O=(s-a)/(i*L))*O+(R=(v=d-g)/(n*T))*R+((_=l-h)*_+(y=c-u)*y-v*v)/((P=T*(x*M+1-x))*P))},r.prototype.get=function(t){var e,i,r,n,s;return this,r=(n=t.split("."))[0],e=n[1],s=this[r](),e?(i=r.indexOf(e))>-1?s[i]:console.warn("unknown channel "+e+" in mode "+r):s},r.prototype.set=function(t,e){var i,r,n,s,o;if(this,n=(s=t.split("."))[0],i=s[1])if(o=this[n](),(r=n.indexOf(i))>-1)if("string"===St(e))switch(e.charAt(0)){case"+":case"-":o[r]+=+e;break;case"*":o[r]*=+e.substr(1);break;case"/":o[r]/=+e.substr(1);break;default:o[r]=+e}else o[r]=e;else console.warn("unknown channel "+i+" in mode "+n);else o=e;return w(o,n).alpha(this.alpha())},r.prototype.clipped=function(){return this._rgb._clipped||!1},r.prototype.alpha=function(t){return arguments.length?w.rgb([this._rgb[0],this._rgb[1],this._rgb[2],t]):this._rgb[3]},r.prototype.darken=function(t){var e;return null==t&&(t=1),this,(e=this.lab())[0]-=s.Kn*t,w.lab(e).alpha(this.alpha())},r.prototype.brighten=function(t){return null==t&&(t=1),this.darken(-t)},r.prototype.darker=r.prototype.darken,r.prototype.brighter=r.prototype.brighten,r.prototype.saturate=function(t){var e;return null==t&&(t=1),this,(e=this.lch())[1]+=t*s.Kn,e[1]<0&&(e[1]=0),w.lch(e).alpha(this.alpha())},r.prototype.desaturate=function(t){return null==t&&(t=1),this.saturate(-t)},r.prototype.premultiply=function(){var t,e;return e=this.rgb(),t=this.alpha(),w(e[0]*t,e[1]*t,e[2]*t,t)},tt=function(t,e){return t*e/255},T=function(t,e){return t>e?e:t},H=function(t,e){return t>e?t:e},xt=function(t,e){return 255*(1-(1-t/255)*(1-e/255))},it=function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))},b=function(t,e){return 255*(1-(1-e/255)/(t/255))},L=function(t,e){return 255===t||(t=e/255*255/(1-t/255))>255?255:t},(y=function(t,e,i){if(!y[i])throw"unknown blend mode "+i;return y[i](t,e)}).normal=(v=function(t){return function(e,i){var r,n;return r=w(i).rgb(),n=w(e).rgb(),w(t(r,n),"rgb")}})((M=function(t){return function(e,i){var r,n,s;for(s=[],r=n=0;n<=3;r=++n)s[r]=t(e[r],i[r]);return s}})((function(t,e){return t}))),y.multiply=v(M(tt)),y.screen=v(M(xt)),y.overlay=v(M(it)),y.darken=v(M(T)),y.lighten=v(M(H)),y.dodge=v(M(L)),y.burn=v(M(b)),w.blend=y,w.analyze=function(t){var e,i,r,n;for(r={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},i=0,e=t.length;ir.max&&(r.max=n),r.count+=1);return r.domain=[r.min,r.max],r.limits=function(t,e){return w.limits(r,t,e)},r},w.scale=function(t,e){var i,r,n,s,o,a,l,h,c,u,d,g,p,f,m,_,y,v,x,b,E;return c="rgb",u=w("#ccc"),f=0,!1,o=[0,1],p=[],g=[0,0],i=!1,n=[],d=!1,h=0,l=1,s=!1,r={},m=!0,a=1,b=function(t){var e,i,r,s,o,a;if(null==t&&(t=["#fff","#000"]),null!=t&&"string"===St(t)&&null!=w.brewer&&(t=w.brewer[t]||w.brewer[t.toLowerCase()]||t),"array"===St(t)){for(1===t.length&&(t=[t[0],t[0]]),e=r=0,s=(t=t.slice(0)).length-1;0<=s?r<=s:r>=s;e=0<=s?++r:--r)i=t[e],"string"===St(i)&&(t[e]=w(i));for(p.length=0,e=a=0,o=t.length-1;0<=o?a<=o:a>=o;e=0<=o?++a:--a)p.push(e/(t.length-1))}return x(),n=t},y=function(t){var e,r;if(null!=i){for(r=i.length-1,e=0;e=i[e];)e++;return e-1}return 0},E=function(t){return t},function(t){var e,r,n,s,o;return o=t,i.length>2&&(s=i.length-1,e=y(t),n=i[0]+(i[1]-i[0])*(0+.5*f),r=i[s-1]+(i[s]-i[s-1])*(1-.5*f),o=h+(i[e]+.5*(i[e+1]-i[e])-n)/(r-n)*(l-h)),o},v=function(t,e){var s,o,d,f,_,v,x;if(null==e&&(e=!1),isNaN(t))return u;if(x=e?t:i&&i.length>2?y(t)/(i.length-2):l!==h?(t-h)/(l-h):1,e||(x=E(x)),1!==a&&(x=rt(x,a)),x=g[0]+x*(1-g[0]-g[1]),x=Math.min(1,Math.max(0,x)),d=Math.floor(1e4*x),m&&r[d])s=r[d];else{if("array"===St(n))for(o=f=0,v=p.length-1;0<=v?f<=v:f>=v;o=0<=v?++f:--f){if(x<=(_=p[o])){s=n[o];break}if(x>=_&&o===p.length-1){s=n[o];break}if(x>_&&x=c;e=0<=c?++u:--u)p.push(e/(r-1));return o=[h,l],_},_.mode=function(t){return arguments.length?(c=t,x(),_):c},_.range=function(t,e){return b(t),_},_.out=function(t){return d=t,_},_.spread=function(t){return arguments.length?(f=t,_):f},_.correctLightness=function(t){return null==t&&(t=!0),s=t,x(),E=s?function(t){var e,i,r,n,s,o,a,l,h;for(e=v(0,!0).lab()[0],i=v(1,!0).lab()[0],a=e>i,r=v(t,!0).lab()[0],n=r-(s=e+(i-e)*t),l=0,h=1,o=20;Math.abs(n)>.01&&o-- >0;)a&&(n*=-1),n<0?(l=t,t+=.5*(h-t)):(h=t,t+=.5*(l-t)),r=v(t,!0).lab()[0],n=r-s;return t}:function(t){return t},_},_.padding=function(t){return null!=t?("number"===St(t)&&(t=[t,t]),g=t,_):g},_.colors=function(e,r){var s,a,l,h,c,u,d,g;if(arguments.length<2&&(r="hex"),c=[],0===arguments.length)c=n.slice(0);else if(1===e)c=[_(.5)];else if(e>1)a=o[0],s=o[1]-a,c=function(){u=[];for(var t=0;0<=e?te;0<=e?t++:t--)u.push(t);return u}.apply(this).map((function(t){return _(a+t/(e-1)*s)}));else{if(t=[],d=[],i&&i.length>2)for(l=g=1,h=i.length;1<=h?gh;l=1<=h?++g:--g)d.push(.5*(i[l-1]+i[l]));else d=o;c=d.map((function(t){return _(t)}))}return w[r]&&(c=c.map((function(t){return t[r]()}))),c},_.cache=function(t){return null!=t?(m=t,_):m},_.gamma=function(t){return null!=t?(a=t,_):a},_},null==w.scales&&(w.scales={}),w.scales.cool=function(){return w.scale([w.hsl(180,1,.9),w.hsl(250,.7,.4)])},w.scales.hot=function(){return w.scale(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")},w.analyze=function(t,e,i){var r,n,s,o,a,l;if(a={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},null==i&&(i=function(){return!0}),r=function(t){null==t||isNaN(t)||(a.values.push(t),a.sum+=t,ta.max&&(a.max=t),a.count+=1)},l=function(t,n){if(i(t,n))return null!=e&&"function"===St(e)?r(e(t)):null!=e&&"string"===St(e)||"number"===St(e)?r(t[e]):r(t)},"array"===St(t))for(o=0,s=t.length;o=z;S=1<=z?++k:--k)T.push(M+S/i*(Q-M));T.push(Q)}else if("l"===e.substr(0,1)){if(M<=0)throw"Logarithmic scales are only possible for values > 0";for(R=Math.LOG10E*K(M),L=Math.LOG10E*K(Q),T.push(M),S=ht=1,B=i-1;1<=B?ht<=B:ht>=B;S=1<=B?++ht:--ht)T.push(rt(10,R+S/i*(L-R)));T.push(Q)}else if("q"===e.substr(0,1)){for(T.push(M),S=r=1,X=i-1;1<=X?r<=X:r>=X;S=1<=X?++r:--r)D=(lt.length-1)*S/i,(j=O(D))===D?T.push(lt[j]):(G=D-j,T.push(lt[j]*(1-G)+lt[j+1]*G));T.push(Q)}else if("k"===e.substr(0,1)){for(N=lt.length,_=new Array(N),b=new Array(i),nt=!0,A=0,v=null,(v=[]).push(M),S=n=1,H=i-1;1<=H?n<=H:n>=H;S=1<=H?++n:--n)v.push(M+S/i*(Q-M));for(v.push(Q);nt;){for(I=s=0,Z=i-1;0<=Z?s<=Z:s>=Z;I=0<=Z?++s:--s)b[I]=0;for(S=o=0,$=N-1;0<=$?o<=$:o>=$;S=0<=$?++o:--o){for(at=lt[S],P=Number.MAX_VALUE,I=a=0,J=i-1;0<=J?a<=J:a>=J;I=0<=J?++a:--a)(E=f(v[I]-at))=tt;I=0<=tt?++l:--l)F[I]=null;for(S=h=0,et=N-1;0<=et?h<=et:h>=et;S=0<=et?++h:--h)null===F[x=_[S]]?F[x]=lt[S]:F[x]+=lt[S];for(I=c=0,it=i-1;0<=it?c<=it:c>=it;I=0<=it?++c:--c)F[I]*=1/b[I];for(nt=!1,I=u=0,U=i-1;0<=U?u<=U:u>=U;I=0<=U?++u:--u)if(F[I]!==v[S]){nt=!0;break}v=F,++A>200&&(nt=!1)}for(C={},I=d=0,V=i-1;0<=V?d<=V:d>=V;I=0<=V?++d:--d)C[I]=[];for(S=g=0,q=N-1;0<=q?g<=q:g>=q;S=0<=q?++g:--g)C[x=_[S]].push(lt[S]);for(st=[],I=p=0,Y=i-1;0<=Y?p<=Y:p>=Y;I=0<=Y?++p:--p)st.push(C[I][0]),st.push(C[I][C[I].length-1]);for(st=st.sort((function(t,e){return t-e})),T.push(st[0]),S=m=1,W=st.length-1;m<=W;S=m+=2)ot=st[S],isNaN(ot)||-1!==T.indexOf(ot)||T.push(ot)}return T},N=function(t,e,i){var r,n,s,o;return t=(r=It(arguments))[0],e=r[1],i=r[2],isNaN(t)&&(t=0),(t/=360)<1/3?s=1-((n=(1-e)/3)+(o=(1+e*I(h*t)/I(a-h*t))/3)):t<2/3?n=1-((o=(1-e)/3)+(s=(1+e*I(h*(t-=1/3))/I(a-h*t))/3)):o=1-((s=(1-e)/3)+(n=(1+e*I(h*(t-=2/3))/I(a-h*t))/3)),[255*(o=Z(i*o*3)),255*(s=Z(i*s*3)),255*(n=Z(i*n*3)),r.length>3?r[3]:1]},lt=function(){var t,e,i,r,n,s,o;return n=(s=It(arguments))[0],e=s[1],t=s[2],h=2*Math.PI,n/=255,e/=255,t/=255,0===(o=1-Math.min(n,e,t)/(r=(n+e+t)/3))?i=0:(i=(n-e+(n-t))/2,i/=Math.sqrt((n-e)*(n-e)+(n-t)*(e-t)),i=Math.acos(i),t>e&&(i=h-i),i/=h),[360*i,o,r]},w.hsi=function(){return function(t,e,i){i.prototype=t.prototype;var r=new i,n=t.apply(r,e);return Object(n)===n?n:r}(r,Mt.call(arguments).concat(["hsi"]),(function(){}))},g.hsi=N,r.prototype.hsi=function(){return lt(this._rgb)},j=function(t,e,i,r){var n,s,o,a,l,h,c,u,d,g;return"hsl"===r?(d=t.hsl(),g=e.hsl()):"hsv"===r?(d=t.hsv(),g=e.hsv()):"hcg"===r?(d=t.hcg(),g=e.hcg()):"hsi"===r?(d=t.hsi(),g=e.hsi()):"lch"!==r&&"hcl"!==r||(r="hcl",d=t.hcl(),g=e.hcl()),"h"===r.substr(0,1)&&(s=d[0],c=d[1],a=d[2],o=g[0],u=g[1],l=g[2]),isNaN(s)||isNaN(o)?isNaN(s)?isNaN(o)?n=Number.NaN:(n=o,1!==a&&0!==a||"hsv"===r||(h=u)):(n=s,1!==l&&0!==l||"hsv"===r||(h=c)):n=s+i*(o>s&&o-s>180?o-(s+360):o180?o+360-s:o-s),null==h&&(h=c+i*(u-c)),w[r](n,h,a+i*(l-a))},B=function(t,e,i,r){var n,s;return n=t.num(),s=e.num(),w.num(n+(s-n)*i,"num")},(p=p.concat(function(){var t,e,i,r;for(r=[],e=0,t=(i=["hsv","hsl","hsi","hcl","lch","hcg"]).length;e{this.dispatchEvent("sourceready")},0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}render(t,e){const i=this.getRenderer();if(i.prepareFrame(t))return this.rendered=!0,i.renderFrame(t,e)}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(s.a.MAP,t)}getMapInternal(){return this.get(s.a.MAP)}setMap(t){this.mapPrecomposeKey_&&(Object(l.c)(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(Object(l.c)(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=Object(l.a)(t,o.a.PRECOMPOSE,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);Object(a.a)(!e.some((function(t){return t.layer===i.layer})),67),e.push(i)}),this),this.mapRenderKey_=Object(l.a)(this,n.a.CHANGE,t.render,t),this.changed())}setSource(t){this.set(s.a.SOURCE,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}}function c(t,e){if(!t.visible)return!1;var i=e.resolution;if(it.maxResolution)return!1;var r=e.zoom;return r>t.minZoom&&r<=t.maxZoom}e.a=h},function(t,e,i){"use strict";var r=i(70),n=i(72);class s extends r.a{constructor(t){super(t)}createRenderer(){return new n.a(this)}}e.a=s},function(t,e,i){"use strict";e.a={UNKNOWN:0,INTERSECTING:1,ABOVE:2,RIGHT:4,BELOW:8,LEFT:16}},function(t,e,i){"use strict";i.d(e,"b",(function(){return a}));var r=i(42),n=i(5),s=i(6);class o extends r.a{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(n.a.CHANGE)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,r=new Array(i);for(let n=0;n2||Math.abs(t[4*e+3]-191.25)>2}function u(t,e,i,n){const o=Object(s.z)(i,e,t);let a=Object(s.p)(e,n,i);const l=e.getMetersPerUnit();void 0!==l&&(a*=l);const h=t.getMetersPerUnit();void 0!==h&&(a/=h);const c=t.getExtent();if(!c||Object(r.g)(c,o)){const e=Object(s.p)(t,a,o)/a;isFinite(e)&&e>0&&(a/=e)}return a}function d(t,e,i,n){const s=Object(r.x)(i);let o=u(t,e,s,n);return(!isFinite(o)||o<=0)&&Object(r.t)(i,(function(i){return o=u(t,e,i,n),isFinite(o)&&o>0})),o}function g(t,e,i,s,u,d,g,p,f,m,_,y){const v=Object(n.a)(Math.round(i*t),Math.round(i*e),l);if(y||(v.imageSmoothingEnabled=!1),0===f.length)return v.canvas;function x(t){return Math.round(t*i)/i}v.scale(i,i),v.globalCompositeOperation="lighter";const b=Object(r.k)();f.forEach((function(t,e,i){Object(r.q)(b,t.extent)}));const w=Object(r.G)(b),E=Object(r.A)(b),S=Object(n.a)(Math.round(i*w/s),Math.round(i*E/s),l);y||(S.imageSmoothingEnabled=!1);const I=i/s;f.forEach((function(t,e,i){const n=t.extent[0]-b[0],s=-(t.extent[3]-b[3]),o=Object(r.G)(t.extent),a=Object(r.A)(t.extent);t.image.width>0&&t.image.height>0&&S.drawImage(t.image,m,m,t.image.width-2*m,t.image.height-2*m,n*I,s*I,o*I,a*I)}));const C=Object(r.E)(g);return p.getTriangles().forEach((function(t,e,r){const u=t.source,g=t.target;let p=u[0][0],f=u[0][1],m=u[1][0],_=u[1][1],w=u[2][0],E=u[2][1];const I=x((g[0][0]-C[0])/d),T=x(-(g[0][1]-C[1])/d),L=x((g[1][0]-C[0])/d),M=x(-(g[1][1]-C[1])/d),O=x((g[2][0]-C[0])/d),R=x(-(g[2][1]-C[1])/d),P=p,N=f;p=0,f=0,m-=P,_-=N,w-=P,E-=N;const A=[[m,_,0,0,L-I],[w,E,0,0,O-I],[0,0,m,_,M-T],[0,0,w,E,R-T]],F=Object(o.g)(A);if(F){if(v.save(),v.beginPath(),function(){if(void 0===a){const t=Object(n.a)(6,6,l);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",h(t,4,5,4,0),h(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;a=c(e,0)||c(e,4)||c(e,8),Object(n.d)(t),l.push(t.canvas)}return a}()||!y){v.moveTo(L,M);const t=4,e=I-L,i=T-M;for(let r=0;r0;i--)t[r+e]+=t[r],r++;i-=e}while(i>0)}function n(t,e,i){let r=0,n=t.length;const s=n/i;for(;n>e;){for(let i=e;i>0;--i)t[r+e]+=t[r],++r;n-=e}const o=t.slice();for(let e=0;e=t.byteLength);++a){let s;if(2===e){switch(o[0]){case 8:s=new Uint8Array(t,a*h*i*l,h*i*l);break;case 16:s=new Uint16Array(t,a*h*i*l,h*i*l/2);break;case 32:s=new Uint32Array(t,a*h*i*l,h*i*l/4);break;default:throw new Error(`Predictor 2 not allowed with ${o[0]} bits per sample.`)}r(s,h)}else 3===e&&(s=new Uint8Array(t,a*h*i*l,h*i*l),n(s,h,l))}return t}(i,s,e?t.TileWidth:t.ImageWidth,e?t.TileLength:t.RowsPerStrip||t.ImageLength,t.BitsPerSample,t.PlanarConfiguration)}return i}}},function(t,e,i){"use strict";i.d(e,"a",(function(){return p}));var r=i(16),n=i(39),s=i(63),o=i(4),a=i(2),l=i(8),h=i(1),c=i(17),u=i(25),d=i(14);class g extends n.a{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:t.projection,state:t.state,wrapX:t.wrapX,interpolate:t.interpolate}),this.on,this.once,this.un,this.opaque_=void 0!==t.opaque&&t.opaque,this.tilePixelRatio_=void 0!==t.tilePixelRatio?t.tilePixelRatio:1,this.tileGrid=void 0!==t.tileGrid?t.tileGrid:null;const e=[256,256];this.tileGrid&&Object(d.d)(this.tileGrid.getTileSize(this.tileGrid.getMinZoom()),e),this.tileCache=new s.a(t.cacheSize||0),this.tmpSize=[0,0],this.key_=t.key||"",this.tileOptions={transition:t.transition,interpolate:t.interpolate},this.zDirection=t.zDirection?t.zDirection:0}canExpireCache(){return this.tileCache.canExpireCache()}expireCache(t,e){const i=this.getTileCacheForProjection(t);i&&i.expireCache(e)}forEachLoadedTile(t,e,i,r){const n=this.getTileCacheForProjection(t);if(!n)return!1;let s,a,l,h=!0;for(let t=i.minX;t<=i.maxX;++t)for(let u=i.minY;u<=i.maxY;++u)a=Object(c.e)(e,t,u),l=!1,n.containsKey(a)&&(s=n.get(a),l=s.getState()===o.a.LOADED,l&&(l=!1!==r(s))),l||(h=!1);return h}getGutterForProjection(t){return 0}getKey(){return this.key_}setKey(t){this.key_!==t&&(this.key_=t,this.changed())}getOpaque(t){return this.opaque_}getResolutions(t){const e=t?this.getTileGridForProjection(t):this.tileGrid;return e?e.getResolutions():null}getTile(t,e,i,r,n){return Object(a.a)()}getTileGrid(){return this.tileGrid}getTileGridForProjection(t){return this.tileGrid?this.tileGrid:Object(u.c)(t)}getTileCacheForProjection(t){const e=this.getProjection();return Object(l.a)(null===e||Object(h.j)(e,t),68),this.tileCache}getTilePixelRatio(t){return this.tilePixelRatio_}getTilePixelSize(t,e,i){const r=this.getTileGridForProjection(i),n=this.getTilePixelRatio(e),s=Object(d.d)(r.getTileSize(t),this.tmpSize);return 1==n?s:Object(d.c)(s,n,this.tmpSize)}getTileCoordForTileUrlFunction(t,e){e=void 0!==e?e:this.getProjection();const i=this.getTileGridForProjection(e);return this.getWrapX()&&e.isGlobal()&&(t=Object(u.d)(i,t,e)),Object(c.g)(t,i)?t:null}clear(){this.tileCache.clear()}refresh(){this.clear(),super.refresh()}updateCacheSize(t,e){const i=this.getTileCacheForProjection(e);t>i.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,r){}}class p extends r.a{constructor(t,e){super(t),this.tile=e}}e.b=g},function(t,e,i){"use strict";var r=i(26),n=i(1);class s extends r.a{constructor(t){super(),this.projection=Object(n.o)(t.projection),this.attributions_=o(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(t){return null}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=o(t),this.changed()}setState(t){this.state_=t,this.changed()}}function o(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}e.a=s},function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"a",(function(){return s}));const r={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function n(t){return r[t]}const s={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937}},function(t,e,i){"use strict";i.d(e,"a",(function(){return r})),i.d(e,"b",(function(){return n}));const r=42,n=256},function(t,e,i){"use strict";var r=i(53),n=i(16),s=i(15),o=i(22);class a extends r.a{constructor(t){super(),this.eventTarget_=t,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(t,e){if(!t||!e)return;const i=this.listeners_||(this.listeners_={}),r=i[t]||(i[t]=[]);r.includes(e)||r.push(e)}dispatchEvent(t){const e="string"==typeof t,i=e?t:t.type,r=this.listeners_&&this.listeners_[i];if(!r)return;const o=e?new n.a(t):t;o.target||(o.target=this.eventTarget_||this);const a=this.dispatching_||(this.dispatching_={}),l=this.pendingRemovals_||(this.pendingRemovals_={});let h;i in a||(a[i]=0,l[i]=0),++a[i];for(let t=0,e=r.length;t0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const r=i.indexOf(e);-1!==r&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[r]=s.c,++this.pendingRemovals_[t]):(i.splice(r,1),0===i.length&&delete this.listeners_[t]))}}}e.a=a},function(t,e,i){"use strict";var r=i(42),n=i(5),s=i(4),o=i(2),a=i(23);class l extends r.a{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(n.a.CHANGE)}release(){this.state===s.a.ERROR&&this.setState(s.a.EMPTY)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==s.a.LOADED)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==s.a.LOADED){t.interimTile=null;break}t.getState()==s.a.LOADING?e=t:t.getState()==s.a.IDLE?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==s.a.ERROR&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){Object(o.a)()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const r=e-i+1e3/60;return r>=this.transition_?1:Object(a.easeIn)(r/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}}e.a=l},function(t,e,i){"use strict";i.d(e,"b",(function(){return c}));var r=i(5),n=i(67),s=i(13),o=i(24),a=i(0),l=i(6);class h extends n.a{constructor(t,e,i,r,n,o){super(t,e,i,s.a.IDLE),this.src_=r,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.state=s.a.IDLE,this.imageLoadFunction_=o}getImage(){return this.image_}handleImageError_(){this.state=s.a.ERROR,this.unlistenImage_(),this.changed()}handleImageLoad_(){void 0===this.resolution&&(this.resolution=Object(a.A)(this.extent)/this.image_.height),this.state=s.a.LOADED,this.unlistenImage_(),this.changed()}load(){this.state!=s.a.IDLE&&this.state!=s.a.ERROR||(this.state=s.a.LOADING,this.changed(),this.imageLoadFunction_(this,this.src_),this.unlisten_=c(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}setImage(t){this.image_=t,this.resolution=Object(a.A)(this.extent)/this.image_.height}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}function c(t,e,i){const n=t;let s=!0,a=!1,h=!1;const c=[Object(l.b)(n,r.a.LOAD,(function(){h=!0,a||e()}))];return n.src&&o.c?(a=!0,n.decode().then((function(){s&&e()})).catch((function(t){s&&(h?e():i())}))):c.push(Object(l.b)(n,r.a.ERROR,i)),function(){s=!1,c.forEach(l.c)}}e.a=h},function(t,e,i){"use strict";e.a={PROPERTYCHANGE:"propertychange"}},function(t,e,i){"use strict";function r(t,e,i){const r=void 0!==i?t.toFixed(i):""+t;let n=r.indexOf(".");return n=-1===n?r.length:n,n>e?r:new Array(1+e-n).join("0")+r}function n(t,e){const i=(""+t).split("."),r=(""+e).split(".");for(let t=0;tn)return 1;if(n>e)return-1}return 0}i.d(e,"b",(function(){return r})),i.d(e,"a",(function(){return n}))},function(t,e,i){"use strict";i.d(e,"a",(function(){return n})),i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return o})),i.d(e,"d",(function(){return a}));var r=i(0);function n(t,e,i,n,o){return!Object(r.t)(o,(function(r){return!s(t,e,i,n,r[0],r[1])}))}function s(t,e,i,r,n,s){let o=0,a=t[i-r],l=t[i-r+1];for(;es&&(i-a)*(s-l)-(n-a)*(r-l)>0&&o++:r<=s&&(i-a)*(s-l)-(n-a)*(r-l)<0&&o--,a=i,l=r}return 0!==o}function o(t,e,i,r,n,o){if(0===i.length)return!1;if(!s(t,e,i[0],r,n,o))return!1;for(let e=1,a=i.length;e=200&&r.status<300){let t;try{t=JSON.parse(r.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new s(r))})),r.addEventListener("error",(function(t){i(new o(t.target))})),r.open("GET",t),r.setRequestHeader("Accept","application/json"),r.send()}))}function l(t,e){return e.includes("://")?e:new URL(e,t).href}}).call(this,i(90))},function(t,e,i){"use strict";i.d(e,"a",(function(){return n}));class r{constructor(t,e,i,r){this.minX=t,this.maxX=e,this.minY=i,this.maxY=r}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function n(t,e,i,n,s){return void 0!==s?(s.minX=t,s.maxX=e,s.minY=i,s.maxY=n,s):new r(t,e,i,n)}e.b=r},function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"a",(function(){return o}));const r={info:1,warn:2,error:3,none:4};let n=r.info;function s(...t){n>r.warn||console.warn(...t)}function o(...t){n>r.error||console.error(...t)}},function(t,e,i){"use strict";var r=i(81),n=i(73);class s extends r.a{constructor(t){super(t)}createRenderer(){return new n.a(this)}getData(t){return super.getData(t)}}e.a=s},function(t,e,i){"use strict";i.d(e,"b",(function(){return n})),i.d(e,"a",(function(){return s})),i.d(e,"c",(function(){return o}));i(22);let r={};function n(){r={}}function s(t,e,i){const n=t.getCode(),s=e.getCode();n in r||(r[n]={}),r[n][s]=i}function o(t,e){let i;return t in r&&e in r[t]&&(i=r[t][e]),i}},function(t,e,i){"use strict";e.a=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}}},function(t,e,i){"use strict";i.d(e,"a",(function(){return o})),i.d(e,"b",(function(){return a})),i.d(e,"c",(function(){return l})),i.d(e,"d",(function(){return h})),i.d(e,"e",(function(){return c}));var r=i(0),n=i(79),s=i(47);function o(t,e,i,s,o){const a=Object(r.s)(Object(r.k)(),t,e,i,s);return!!Object(r.H)(o,a)&&(!!Object(r.h)(o,a)||(a[0]>=o[0]&&a[2]<=o[2]||(a[1]>=o[1]&&a[3]<=o[3]||Object(n.a)(t,e,i,s,(function(t,e){return Object(r.I)(o,t,e)})))))}function a(t,e,i,r,n){for(let s=0,a=i.length;sthis.fetchSlice(t,e)))}async fetchSlice(t){throw new Error(`fetching of slice ${t} not possible, not implemented`)}get fileSize(){return null}async close(){}}},function(t,e,i){"use strict";var r=i(68),n=i(5),s=i(43),o=i(4),a=i(69),l=i(35),h=i(3),c=i(0),u=i(6),d=i(10);class g extends s.a{constructor(t,e,i,n,s,u,d,g,p,f,m,_){super(s,o.a.IDLE,{interpolate:!!_}),this.renderEdges_=void 0!==m&&m,this.pixelRatio_=d,this.gutter_=g,this.canvas_=null,this.sourceTileGrid_=e,this.targetTileGrid_=n,this.wrappedTileCoord_=u||s,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const y=n.getTileCoordExtent(this.wrappedTileCoord_),v=this.targetTileGrid_.getExtent();let x=this.sourceTileGrid_.getExtent();const b=v?Object(c.B)(y,v):y;if(0===Object(c.u)(b))return void(this.state=o.a.EMPTY);const w=t.getExtent();w&&(x=x?Object(c.B)(x,w):w);const E=n.getResolution(this.wrappedTileCoord_[0]),S=Object(l.a)(t,i,b,E);if(!isFinite(S)||S<=0)return void(this.state=o.a.EMPTY);const I=void 0!==f?f:r.a;if(this.triangulation_=new a.a(t,i,b,x,S*I,E),0===this.triangulation_.getTriangles().length)return void(this.state=o.a.EMPTY);this.sourceZ_=e.getZForResolution(S);let C=this.triangulation_.calculateSourceExtent();if(x&&(t.canWrapX()?(C[1]=Object(h.b)(C[1],x[1],x[3]),C[3]=Object(h.b)(C[3],x[1],x[3])):C=Object(c.B)(C,x)),Object(c.u)(C)){const t=e.getTileRangeForExtentAndZ(C,this.sourceZ_);for(let e=t.minX;e<=t.maxX;e++)for(let i=t.minY;i<=t.maxY;i++){const t=p(this.sourceZ_,e,i,d);t&&this.sourceTiles_.push(t)}0===this.sourceTiles_.length&&(this.state=o.a.EMPTY)}else this.state=o.a.EMPTY}getImage(){return this.canvas_}reproject_(){const t=[];if(this.sourceTiles_.forEach(e=>{e&&e.getState()==o.a.LOADED&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})}),this.sourceTiles_.length=0,0===t.length)this.state=o.a.ERROR;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),r="number"==typeof i?i:i[0],n="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),a=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=Object(l.d)(r,n,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,h,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=o.a.LOADED}this.changed()}load(){if(this.state==o.a.IDLE){this.state=o.a.LOADING,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(e=>{const i=e.getState();if(i==o.a.IDLE||i==o.a.LOADING){t++;const i=Object(u.a)(e,n.a.CHANGE,(function(r){const n=e.getState();n!=o.a.LOADED&&n!=o.a.ERROR&&n!=o.a.EMPTY||(Object(u.c)(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}}),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==o.a.IDLE&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(u.c),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Object(d.d)(this.canvas_.getContext("2d")),l.c.push(this.canvas_),this.canvas_=null),super.release()}}e.a=g},function(t,e,i){"use strict";e.a={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"}},function(t,e,i){"use strict";var r=i(16);class n extends r.a{constructor(t,e,i,r){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=r}}e.a=n},function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return a})),i.d(e,"a",(function(){return h})),i.d(e,"d",(function(){return c}));var r=i(3);const n=6371008.8;function s(t,e,i){i=i||n;const s=Object(r.l)(t[1]),o=Object(r.l)(e[1]),a=(o-s)/2,l=Object(r.l)(e[0]-t[0])/2,h=Math.sin(a)*Math.sin(a)+Math.sin(l)*Math.sin(l)*Math.cos(s)*Math.cos(o);return 2*i*Math.atan2(Math.sqrt(h),Math.sqrt(1-h))}function o(t,e){let i=0;for(let r=0,n=t.length;r= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};e.REVISION_CHANGES=g;var p="[object Object]";r.prototype={constructor:r,logger:h.default,log:h.default.log,registerHelper:function(t,e){if(s.toString.call(t)===p){if(e)throw new o.default("Arg not supported with multiple helpers");s.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if(s.toString.call(t)===p)s.extend(this.partials,t);else{if(void 0===e)throw new o.default('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if(s.toString.call(t)===p){if(e)throw new o.default("Arg not supported with multiple decorators");s.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]}};var f=h.default.log;e.log=f,e.createFrame=s.createFrame,e.logger=h.default},function(t,e){"use strict";function i(t){return c[t]}function r(t){for(var e=1;e":">",'"':""","'":"'","`":"`","=":"="},u=/[&<>"'`=]/g,d=/[&<>"'`=]/,g=Object.prototype.toString;e.toString=g;var p=function(t){return"function"==typeof t};p(/x/)&&(e.isFunction=p=function(t){return"function"==typeof t&&"[object Function]"===g.call(t)}),e.isFunction=p;var f=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===g.call(t)};e.isArray=f},function(t,e,i){"use strict";function r(t,e){var i=e&&e.loc,o=void 0,a=void 0,l=void 0,h=void 0;i&&(o=i.start.line,a=i.end.line,l=i.start.column,h=i.end.column,t+=" - "+o+":"+l);for(var c=Error.prototype.constructor.call(this,t),u=0;u0?(i.ids&&(i.ids=[i.name]),t.helpers.each(e,i)):n(this);if(i.data&&i.ids){var o=r.createFrame(i.data);o.contextPath=r.appendContextPath(i.data.contextPath,i.name),i={data:o}}return s(e,i)}))},t.exports=e.default},function(t,e,i){(function(r){"use strict";var n=i(1).default;e.__esModule=!0;var s=i(5),o=n(i(6));e.default=function(t){t.registerHelper("each",(function(t,e){function i(e,i,r){c&&(c.key=e,c.index=i,c.first=0===i,c.last=!!r,u&&(c.contextPath=u+e)),h+=n(t[e],{data:c,blockParams:s.blockParams([t[e],e],[u+e,null])})}if(!e)throw new o.default("Must pass iterator to #each");var n=e.fn,a=e.inverse,l=0,h="",c=void 0,u=void 0;if(e.data&&e.ids&&(u=s.appendContextPath(e.data.contextPath,e.ids[0])+"."),s.isFunction(t)&&(t=t.call(this)),e.data&&(c=s.createFrame(e.data)),t&&"object"==typeof t)if(s.isArray(t))for(var d=t.length;l=0?e:parseInt(t,10)}return t},log:function(t){if(t=n.lookupLevel(t),"undefined"!=typeof console&&n.lookupLevel(n.level)<=t){var e=n.methodMap[t];console[e]||(e="log");for(var i=arguments.length,r=Array(i>1?i-1:0),s=1;s=m.LAST_COMPATIBLE_COMPILER_REVISION&&e<=m.COMPILER_REVISION)){if(e2&&b.push("'"+this.terminals_[y]+"'");E=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[g]||g)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==g?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[g]||g,line:this.lexer.yylineno,loc:u,expected:b})}}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+g);switch(m[0]){case 1:r.push(g),n.push(this.lexer.yytext),s.push(this.lexer.yylloc),r.push(m[1]),g=null,p?(g=p,p=null):(h=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,c>0&&c--);break;case 2:if(v=this.productions_[m[1]][1],w.$=n[n.length-v],w._$={first_line:s[s.length-(v||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(v||1)].first_column,last_column:s[s.length-1].last_column},d&&(w._$.range=[s[s.length-(v||1)].range[0],s[s.length-1].range[1]]),void 0!==(_=this.performAction.call(w,a,h,l,this.yy,m[1],n,s)))return _;v&&(r=r.slice(0,-1*v*2),n=n.slice(0,-1*v),s=s.slice(0,-1*v)),r.push(this.productions_[m[1]][0]),n.push(w.$),s.push(w._$),x=o[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}},i=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===r.length?this.yylloc.first_column:0)+r[r.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,i,r,n;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),o=0;oe[0].length)||(e=i,r=o,this.options.flex));o++);return e?((n=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=n.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:n?n[n.length-1].length-n[n.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,s[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,i,r){function n(t,i){return e.yytext=e.yytext.substring(t,e.yyleng-i+t)}switch(i){case 0:if("\\\\"===e.yytext.slice(-2)?(n(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(n(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(n(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=n(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=n(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return t}();return e.lexer=i,t.prototype=e,e.Parser=t,new t}();e.default=i,t.exports=e.default},function(t,e,i){"use strict";function r(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}function n(t,e,i){void 0===e&&(e=t.length);var r=t[e-1],n=t[e-2];return r?"ContentStatement"===r.type?(n||!i?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(r.original):void 0:i}function s(t,e,i){void 0===e&&(e=-1);var r=t[e+1],n=t[e+2];return r?"ContentStatement"===r.type?(n||!i?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(r.original):void 0:i}function o(t,e,i){var r=t[null==e?0:e+1];if(r&&"ContentStatement"===r.type&&(i||!r.rightStripped)){var n=r.value;r.value=r.value.replace(i?/^\s+/:/^[ \t]*\r?\n?/,""),r.rightStripped=r.value!==n}}function a(t,e,i){var r=t[null==e?t.length-1:e-1];if(r&&"ContentStatement"===r.type&&(i||!r.leftStripped)){var n=r.value;return r.value=r.value.replace(i?/\s+$/:/[ \t]+$/,""),r.leftStripped=r.value!==n,r.leftStripped}}var l=i(1).default;e.__esModule=!0;var h=l(i(39));r.prototype=new h.default,r.prototype.Program=function(t){var e=!this.options.ignoreStandalone,i=!this.isRootSeen;this.isRootSeen=!0;for(var r=t.body,l=0,h=r.length;l0)throw new f.default("Invalid path: "+r,{loc:i});".."===l&&s++}}return{type:"PathExpression",data:t,depth:s,parts:n,original:r,loc:i}}function h(t,e,i,r,n,s){var o=r.charAt(3)||r.charAt(2),a="{"!==o&&"&"!==o;return{type:/\*/.test(r)?"Decorator":"MustacheStatement",path:t,params:e,hash:i,escaped:a,strip:n,loc:this.locInfo(s)}}function c(t,e,i,n){r(t,i);var s={type:"Program",body:e,strip:{},loc:n=this.locInfo(n)};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:s,openStrip:{},inverseStrip:{},closeStrip:{},loc:n}}function u(t,e,i,n,s,o){n&&n.path&&r(t,n);var a=/\*/.test(t.open);e.blockParams=t.blockParams;var l=void 0,h=void 0;if(i){if(a)throw new f.default("Unexpected inverse block on decorator",i);i.chain&&(i.program.body[0].closeStrip=n.strip),h=i.strip,l=i.program}return s&&(s=l,l=e,e=s),{type:a?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:l,openStrip:t.strip,inverseStrip:h,closeStrip:n&&n.strip,loc:this.locInfo(o)}}function d(t,e){if(!e&&t.length){var i=t[0].loc,r=t[t.length-1].loc;i&&r&&(e={source:i.source,start:{line:i.start.line,column:i.start.column},end:{line:r.end.line,column:r.end.column}})}return{type:"Program",body:t,strip:{},loc:e}}function g(t,e,i,n){return r(t,i),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:i&&i.strip,loc:this.locInfo(n)}}var p=i(1).default;e.__esModule=!0,e.SourceLocation=n,e.id=s,e.stripFlags=o,e.stripComment=a,e.preparePath=l,e.prepareMustache=h,e.prepareRawBlock=c,e.prepareBlock=u,e.prepareProgram=d,e.preparePartialBlock=g;var f=p(i(6))},function(t,e,i){"use strict";function r(){}function n(t,e,i){if(null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+t);"data"in(e=e||{})||(e.data=!0),e.compat&&(e.useDepths=!0);var r=i.parse(t,e),n=(new i.Compiler).compile(r,e);return(new i.JavaScriptCompiler).compile(n,e)}function s(t,e,i){function r(){var r=i.parse(t,e),n=(new i.Compiler).compile(r,e),s=(new i.JavaScriptCompiler).compile(n,e,void 0,!0);return i.template(s)}function n(t,e){return s||(s=r()),s.call(this,t,e)}if(void 0===e&&(e={}),null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+t);"data"in(e=c.extend({},e))||(e.data=!0),e.compat&&(e.useDepths=!0);var s=void 0;return n._setup=function(t){return s||(s=r()),s._setup(t)},n._child=function(t,e,i,n){return s||(s=r()),s._child(t,e,i,n)},n}function o(t,e){if(t===e)return!0;if(c.isArray(t)&&c.isArray(e)&&t.length===e.length){for(var i=0;i1)throw new h.default("Unsupported number of partial arguments: "+i.length,t);i.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):i.push({type:"PathExpression",parts:[],depth:0}));var r=t.name.original,n="SubExpression"===t.name.type;n&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var s=t.indent||"";this.options.preventIndent&&s&&(this.opcode("appendContent",s),s=""),this.opcode("invokePartial",n,r,s),this.opcode("append")},PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){a(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,i){var r=t.path,n=r.parts[0],s=null!=e||null!=i;this.opcode("getContext",r.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",i),r.strict=!0,this.accept(r),this.opcode("invokeAmbiguous",n,s)},simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,i){var r=this.setupFullMustacheParams(t,e,i),n=t.path,s=n.parts[0];if(this.options.knownHelpers[s])this.opcode("invokeKnownHelper",r.length,s);else{if(this.options.knownHelpersOnly)throw new h.default("You specified knownHelpersOnly, but used the unknown helper "+s,t);n.strict=!0,n.falsy=!0,this.accept(n),this.opcode("invokeHelper",r.length,n.original,u.default.helpers.simpleId(n))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],i=u.default.helpers.scopedId(t),r=!t.depth&&!i&&this.blockParamIndex(e);r?this.opcode("lookupBlockParam",r,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,i):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,i=0,r=e.length;for(this.opcode("pushHash");i=0)return[e,n]}}}},function(t,e,i){"use strict";function r(t){this.value=t}function n(){}function s(t,e,i,r){var n=e.popStack(),s=0,o=i.length;for(t&&o--;s0&&(e+=", "+i.join(", "));var r=0;for(var n in this.aliases){var s=this.aliases[n];this.aliases.hasOwnProperty(n)&&s.children&&s.referenceCount>1&&(e+=", alias"+ ++r+"="+n,s.children[0]="alias"+r)}var o=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&o.push("blockParams"),this.useDepths&&o.push("depths");var a=this.mergeSource(e);return t?(o.push(a),Function.apply(this,o)):this.source.wrap(["function(",o.join(","),") {\n ",a,"}"])},mergeSource:function(t){var e=this.environment.isSimple,i=!this.forceBuffer,r=void 0,n=void 0,s=void 0,o=void 0;return this.source.each((function(t){t.appendToBuffer?(s?t.prepend(" + "):s=t,o=t):(s&&(n?s.prepend("buffer += "):r=!0,o.add(";"),s=o=void 0),n=!0,e||(i=!1))})),i?s?(s.prepend("return "),o.add(";")):n||this.source.push('return "";'):(t+=", buffer = "+(r?"":this.initializeBuffer()),s?(s.prepend("return buffer + "),o.add(";")):this.source.push("return buffer;")),t&&this.source.prepend("var "+t.substring(2)+(r?"":";\n")),this.source.merge()},blockValue:function(t){var e=this.aliasable("container.hooks.blockHelperMissing"),i=[this.contextName(0)];this.setupHelperArgs(t,0,i);var r=this.popStack();i.splice(1,0,r),this.push(this.source.functionCall(e,"call",i))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var i=this.topStack();e.splice(1,0,i),this.pushSource(["if (!",this.lastHelper,") { ",i," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack((function(t){return[" != null ? ",t,' : ""']})),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,i,r){var n=0;r||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[n++])),this.resolvePath("context",t,n,e,i)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,i){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,i)},resolvePath:function(t,e,i,r,n){var o=this;if(this.options.strict||this.options.assumeObjects)this.push(s(this.options.strict&&n,this,e,t));else for(var a=e.length;ithis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,i=t.length;e=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(t){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class n{constructor(t){this.url=t}async request({headers:t,credentials:e,signal:i}={}){throw new Error("request is not implemented")}}},function(t,e,i){"use strict";var r=i(66),n=i(17);class s extends r.a{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=this.peekFirstKey(),e=Object(n.b)(t)[0];this.forEach(t=>{t.tileCoord[0]!==e&&(this.remove(Object(n.d)(t.tileCoord)),t.release())})}}e.a=s},function(t,e,i){"use strict";i.d(e,"a",(function(){return u}));var r=i(80),n=i(59),s=i(30),o=i(7),a=i(18),l=i(10),h=i(9),c=i(0);const u=[];let d=null;class g extends r.a{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=Object(o.d)(),this.pixelTransform=Object(o.d)(),this.inversePixelTransform=Object(o.d)(),this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let r;d||(d=Object(l.a)(1,1,void 0,{willReadFrequently:!0})),d.clearRect(0,0,1,1);try{d.drawImage(t,e,i,1,1,0,0,1,1),r=d.getImageData(0,0,1,1).data}catch(t){return d=null,null}return r}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const r=this.getLayer().getClassName();let n,s;if(t&&t.className===r&&(!i||t&&t.style.backgroundColor&&Object(h.c)(Object(a.a)(t.style.backgroundColor),Object(a.a)(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused&&(this.container=null,this.context=null,this.containerReused=!1),!this.container){n=document.createElement("div"),n.className=r;let t=n.style;t.position="absolute",t.width="100%",t.height="100%",s=Object(l.a)();const e=s.canvas;n.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=n,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const r=Object(c.E)(i),n=Object(c.F)(i),s=Object(c.w)(i),a=Object(c.v)(i);Object(o.a)(e.coordinateToPixelTransform,r),Object(o.a)(e.coordinateToPixelTransform,n),Object(o.a)(e.coordinateToPixelTransform,s),Object(o.a)(e.coordinateToPixelTransform,a);const l=this.inversePixelTransform;Object(o.a)(l,r),Object(o.a)(l,n),Object(o.a)(l,s),Object(o.a)(l,a),t.save(),t.beginPath(),t.moveTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(a[0]),Math.round(a[1])),t.clip()}dispatchRenderEvent_(t,e,i){const r=this.getLayer();if(r.hasListener(t)){const s=new n.a(t,this.inversePixelTransform,i,e);r.dispatchEvent(s)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(s.a.PRERENDER,t,e)}postRender(t,e){this.dispatchRenderEvent_(s.a.POSTRENDER,t,e)}getRenderTransform(t,e,i,r,n,s,a){const l=n/2,h=s/2,c=r/e,u=-c,d=-t[0]+a,g=-t[1];return Object(o.b)(this.tempTransform,l,h,c,u,-i,d,g)}disposeInternal(){delete this.frameState,super.disposeInternal()}}e.b=g},function(t,e,i){"use strict";(function(t){var r=i(53),n=i(16),s=i(5),o=i(75),a=i(51),l=i(27),h=i(39),c=i(32),u=i(78),d=i(38),g=i(10),p=i(7),f=i(0),m=i(2);let _,y=!0;try{new ImageData(10,10)}catch(t){y=!1}function v(t){let e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,r){return e?new ImageData(t,i,r):{data:t,width:i,height:r}}return function(e){const r=e.buffers,n=e.meta,s=e.imageOps,o=e.width,a=e.height,l=r.length,h=r[0].byteLength;if(s){const e=new Array(l);for(let t=0;tthis._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,r=t.inputs.map((function(t){return t.data.buffer})),n=this._workers.length;if(this._running=n,1===n)return void this._workers[0].postMessage({buffers:r,meta:t.meta,imageOps:this._imageOps,width:e,height:i},r);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/n);for(let s=0;s0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return Object(r.a)(void 0!==i,15),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return Object(r.a)(void 0!==e,15),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){Object(r.a)(!(t in this.entries_),16);const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}}},function(t,e,i){"use strict";var r=i(42),n=i(5),s=i(2);class o extends r.a{constructor(t,e,i,r){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state=r}changed(){this.dispatchEvent(n.a.CHANGE)}getExtent(){return this.extent}getImage(){return Object(s.a)()}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){Object(s.a)()}}e.a=o},function(t,e,i){"use strict";i.d(e,"a",(function(){return r}));const r=.5},function(t,e,i){"use strict";var r=i(0),n=i(1),s=i(3);e.a=class{constructor(t,e,i,s,o,a){this.sourceProj_=t,this.targetProj_=e;let l={};const h=Object(n.q)(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return l[e]||(l[e]=h(t)),l[e]},this.maxSourceExtent_=s,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!s&&!!this.sourceProj_.getExtent()&&Object(r.G)(s)==Object(r.G)(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?Object(r.G)(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?Object(r.G)(this.targetProj_.getExtent()):null;const c=Object(r.E)(i),u=Object(r.F)(i),d=Object(r.w)(i),g=Object(r.v)(i),p=this.transformInv_(c),f=this.transformInv_(u),m=this.transformInv_(d),_=this.transformInv_(g),y=10+(a?Math.max(0,Math.ceil(Math.log2(Object(r.u)(i)/(a*a*256*256)))):0);if(this.addQuad_(c,u,d,g,p,f,m,_,y),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,r){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach(e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const r=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-r.5&&d<1;let f=!1;if(c>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){const s=Object(r.c)([t,e,i,n]);f=Object(r.G)(s)/this.targetWorldWidth_>.25||f}!p&&this.sourceProj_.isGlobal()&&d&&(f=d>.25||f)}if(!f&&this.maxSourceExtent_&&isFinite(u[0])&&isFinite(u[1])&&isFinite(u[2])&&isFinite(u[3])&&!Object(r.H)(u,this.maxSourceExtent_))return;let m=0;if(!(f||isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])&&isFinite(l[0])&&isFinite(l[1])&&isFinite(h[0])&&isFinite(h[1])))if(c>0)f=!0;else if(m=(isFinite(o[0])&&isFinite(o[1])?0:8)+(isFinite(a[0])&&isFinite(a[1])?0:4)+(isFinite(l[0])&&isFinite(l[1])?0:2)+(isFinite(h[0])&&isFinite(h[1])?0:1),1!=m&&2!=m&&4!=m&&8!=m)return;if(c>0){if(!f){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],r=this.transformInv_(e);let n;if(p){n=(Object(s.e)(o[0],g)+Object(s.e)(l[0],g))/2-Object(s.e)(r[0],g)}else n=(o[0]+l[0])/2-r[0];const a=(o[1]+l[1])/2-r[1];f=n*n+a*a>this.errorThresholdSquared_}if(f){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const r=[(e[0]+i[0])/2,(e[1]+i[1])/2],s=this.transformInv_(r),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],d=this.transformInv_(u);this.addQuad_(t,e,r,u,o,a,s,d,c-1),this.addQuad_(u,r,i,n,d,s,l,h,c-1)}else{const r=[(t[0]+e[0])/2,(t[1]+e[1])/2],s=this.transformInv_(r),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],d=this.transformInv_(u);this.addQuad_(t,r,u,n,o,s,d,h,c-1),this.addQuad_(r,e,i,u,s,a,l,d,c-1)}return}}if(p){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&m)&&this.addTriangle_(t,i,n,o,l,h),0==(14&m)&&this.addTriangle_(t,i,e,o,l,a),m&&(0==(13&m)&&this.addTriangle_(e,n,t,a,h,o),0==(7&m)&&this.addTriangle_(e,n,i,a,h,l))}calculateSourceExtent(){const t=Object(r.k)();return this.triangles_.forEach((function(e,i,n){const s=e.source;Object(r.r)(t,s[0]),Object(r.r)(t,s[1]),Object(r.r)(t,s[2])})),t}getTriangles(){return this.triangles_}}},function(t,e,i){"use strict";var r=i(31),n=i(58);class s extends r.a{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(n.a.PRELOAD)}setPreload(t){this.set(n.a.PRELOAD,t)}getUseInterimTilesOnError(){return this.get(n.a.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(t){this.set(n.a.USE_INTERIM_TILES_ON_ERROR,t)}getData(t){return super.getData(t)}}e.a=s},function(t,e,i){"use strict";var r=i(26),n=i(21),s=i(2),o=i(8),a=i(3);class l extends r.a{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[n.a.OPACITY]=void 0!==t.opacity?t.opacity:1,Object(o.a)("number"==typeof e[n.a.OPACITY],64),e[n.a.VISIBLE]=void 0===t.visible||t.visible,e[n.a.Z_INDEX]=t.zIndex,e[n.a.MAX_RESOLUTION]=void 0!==t.maxResolution?t.maxResolution:1/0,e[n.a.MIN_RESOLUTION]=void 0!==t.minResolution?t.minResolution:0,e[n.a.MIN_ZOOM]=void 0!==t.minZoom?t.minZoom:-1/0,e[n.a.MAX_ZOOM]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=Object(a.b)(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return Object(s.a)()}getLayerStatesArray(t){return Object(s.a)()}getExtent(){return this.get(n.a.EXTENT)}getMaxResolution(){return this.get(n.a.MAX_RESOLUTION)}getMinResolution(){return this.get(n.a.MIN_RESOLUTION)}getMinZoom(){return this.get(n.a.MIN_ZOOM)}getMaxZoom(){return this.get(n.a.MAX_ZOOM)}getOpacity(){return this.get(n.a.OPACITY)}getSourceState(){return Object(s.a)()}getVisible(){return this.get(n.a.VISIBLE)}getZIndex(){return this.get(n.a.Z_INDEX)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(n.a.EXTENT,t)}setMaxResolution(t){this.set(n.a.MAX_RESOLUTION,t)}setMinResolution(t){this.set(n.a.MIN_RESOLUTION,t)}setMaxZoom(t){this.set(n.a.MAX_ZOOM,t)}setMinZoom(t){this.set(n.a.MIN_ZOOM,t)}setOpacity(t){Object(o.a)("number"==typeof t,64),this.set(n.a.OPACITY,t)}setVisible(t){this.set(n.a.VISIBLE,t)}setZIndex(t){this.set(n.a.Z_INDEX,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}}e.a=l},function(t,e,i){"use strict";var r=i(64),n=i(55),s=i(57),o=i(49),a=i(4),l=i(7),h=i(9),c=i(0),u=i(1),d=i(2),g=i(14);class p extends r.b{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=Object(c.k)(),this.tmpTileRange_=new o.b(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),r=e.getUseInterimTilesOnError();return i==a.a.LOADED||i==a.a.EMPTY||i==a.a.ERROR&&!r}getTile(t,e,i,r){const n=r.pixelRatio,s=r.viewState.projection,o=this.getLayer();let l=o.getSource().getTile(t,e,i,n,s);return l.getState()==a.a.ERROR&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(l)||(l=l.getInterimTile()),l}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),r=Object(l.a)(e.pixelToCoordinateTransform,t.slice()),o=i.getExtent();if(o&&!Object(c.g)(o,r))return null;const h=e.pixelRatio,u=e.viewState.projection,d=e.viewState,p=i.getRenderSource(),f=p.getTileGridForProjection(d.projection),m=p.getTilePixelRatio(e.pixelRatio);for(let t=f.getZForResolution(d.resolution);t>=f.getMinZoom();--t){const e=f.getTileCoordForCoordAndZ(r,t),i=p.getTile(t,e[1],e[2],h,u);if(!(i instanceof n.a||i instanceof s.a)||i instanceof s.a&&i.getState()===a.a.EMPTY)return null;if(i.getState()!==a.a.LOADED)continue;const o=f.getOrigin(t),l=Object(g.d)(f.getTileSize(t)),c=f.getResolution(t),_=Math.floor(m*((r[0]-o[0])/c-e[1]*l[0])),y=Math.floor(m*((o[1]-r[1])/c-e[2]*l[1])),v=Math.round(m*p.getGutterForProjection(d.projection));return this.getImageData(i.getImage(),_+v,y+v)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],r=t.viewState,n=r.projection,s=r.resolution,o=r.center,g=r.rotation,p=t.pixelRatio,f=this.getLayer(),m=f.getSource(),_=m.getRevision(),y=m.getTileGridForProjection(n),v=y.getZForResolution(s,m.zDirection),x=y.getResolution(v);let b=t.extent;const w=t.viewState.resolution,E=m.getTilePixelRatio(p),S=Math.round(Object(c.G)(b)/w*p),I=Math.round(Object(c.A)(b)/w*p),C=i.extent&&Object(u.m)(i.extent,n);C&&(b=Object(c.B)(b,Object(u.m)(i.extent,n)));const T=x*S/2/E,L=x*I/2/E,M=[o[0]-T,o[1]-L,o[0]+T,o[1]+L],O=y.getTileRangeForExtentAndZ(b,v),R={};R[v]={};const P=this.createLoadedTileFinder(m,n,R),N=this.tmpExtent,A=this.tmpTileRange_;this.newTiles_=!1;const F=g?Object(c.C)(r.center,w,g,t.size):void 0;for(let e=O.minX;e<=O.maxX;++e)for(let r=O.minY;r<=O.maxY;++r){if(g&&!y.tileCoordIntersectsViewport([v,e,r],F))continue;const n=this.getTile(v,e,r,t);if(this.isDrawableTile(n)){const e=Object(d.b)(this);if(n.getState()==a.a.LOADED){R[v][n.tileCoord.toString()]=n;let t=n.inTransition(e);t&&1!==i.opacity&&(n.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(n)||(this.newTiles_=!0)}if(1===n.getAlpha(e,t.time))continue}const s=y.getTileCoordChildTileRange(n.tileCoord,A,N);let o=!1;s&&(o=P(v+1,s)),o||y.forEachTileCoordParentTileRange(n.tileCoord,P,A,N)}const k=x/s*p/E;Object(l.b)(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/p,1/p,g,-S/2,-I/2);const D=Object(l.l)(this.pixelTransform);this.useContainer(e,D,this.getBackground(t));const j=this.context,G=j.canvas;Object(l.e)(this.inversePixelTransform,this.pixelTransform),Object(l.b)(this.tempTransform,S/2,I/2,k,k,0,-S/2,-I/2),G.width!=S||G.height!=I?(G.width=S,G.height=I):this.containerReused||j.clearRect(0,0,S,I),C&&this.clipUnrotated(j,t,C),m.getInterpolate()||(j.imageSmoothingEnabled=!1),this.preRender(j,t),this.renderedTiles.length=0;let z,B,U,V=Object.keys(R).map(Number);V.sort(h.a),1!==i.opacity||this.containerReused&&!m.getOpaque(t.viewState.projection)?(z=[],B=[]):V=V.reverse();for(let e=V.length-1;e>=0;--e){const i=V[e],r=m.getTilePixelSize(i,p,n),s=y.getResolution(i)/x,o=r[0]*s*k,a=r[1]*s*k,h=y.getTileCoordForCoordAndZ(Object(c.E)(M),i),u=y.getTileCoordExtent(h),g=Object(l.a)(this.tempTransform,[E*(u[0]-M[0])/x,E*(M[3]-u[3])/x]),f=E*m.getGutterForProjection(n),_=R[i];for(const e in _){const r=_[e],n=r.tileCoord,s=h[1]-n[1],l=Math.round(g[0]-(s-1)*o),u=h[2]-n[2],p=Math.round(g[1]-(u-1)*a),y=Math.round(g[0]-s*o),x=Math.round(g[1]-u*a),b=l-y,w=p-x,E=v===i,S=E&&1!==r.getAlpha(Object(d.b)(this),t.time);let I=!1;if(!S)if(z){U=[y,x,y+b,x,y+b,x+w,y,x+w];for(let t=0,e=z.length;t=l.width)return null;const u=Object(a.A)(s),d=Math.floor(l.height*((s[3]-r[1])/u));return d<0||d>=l.height?null:this.getImageData(l,c,d)}renderFrame(t,e){const i=this.image_,r=i.getExtent(),n=i.getResolution(),s=i.getPixelRatio(),h=t.layerStatesArray[t.layerIndex],c=t.pixelRatio,u=t.viewState,d=u.center,g=c*n/(u.resolution*s),p=t.extent,f=u.resolution,m=u.rotation,_=Math.round(Object(a.G)(p)/f*c),y=Math.round(Object(a.A)(p)/f*c);Object(o.b)(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/c,1/c,m,-_/2,-y/2),Object(o.e)(this.inversePixelTransform,this.pixelTransform);const v=Object(o.l)(this.pixelTransform);this.useContainer(e,v,this.getBackground(t));const x=this.context,b=x.canvas;b.width!=_||b.height!=y?(b.width=_,b.height=y):this.containerReused||x.clearRect(0,0,_,y);let w=!1,E=!0;if(h.extent){const e=Object(l.m)(h.extent,u.projection);E=Object(a.H)(e,t.extent),w=E&&!Object(a.h)(e,t.extent),w&&this.clipUnrotated(x,t,e)}const S=i.getImage(),I=Object(o.b)(this.tempTransform,_/2,y/2,g,g,0,s*(r[0]-d[0])/n,s*(d[1]-r[3])/n);this.renderedResolution=n*c/s;const C=S.width*I[0],T=S.height*I[3];if(this.getLayer().getSource().getInterpolate()||(x.imageSmoothingEnabled=!1),this.preRender(x,t),E&&C>=.5&&T>=.5){const t=I[4],e=I[5],i=h.opacity;let r;1!==i&&(r=x.globalAlpha,x.globalAlpha=i),x.drawImage(S,0,0,+S.width,+S.height,t,e,C,T),1!==i&&(x.globalAlpha=r)}return this.postRender(x,t),w&&x.restore(),x.imageSmoothingEnabled=!0,v!==b.style.transform&&(b.style.transform=v),this.container}}e.a=h},function(t,e,i){t.exports=function(){"use strict";function t(t,r,n,s,o){!function t(i,r,n,s,o){for(;s>n;){if(s-n>600){var a=s-n+1,l=r-n+1,h=Math.log(a),c=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*c*(a-c)/a)*(l-a/2<0?-1:1);t(i,r,Math.max(n,Math.floor(r-l*c/a+u)),Math.min(s,Math.floor(r+(a-l)*c/a+u)),o)}var d=i[r],g=n,p=s;for(e(i,n,r),o(i[s],d)>0&&e(i,n,s);g0;)p--}0===o(i[n],d)?e(i,n,p):e(i,++p,s),p<=r&&(n=p+1),r<=p&&(s=p-1)}}(t,r,n||0,s||t.length-1,o||i)}function e(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function i(t,e){return te?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function n(t,e,i){if(!i)return e.indexOf(t);for(var r=0;r=t.minX&&e.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function f(e,i,r,n,s){for(var o=[i,r];o.length;)if(!((r=o.pop())-(i=o.pop())<=n)){var a=i+Math.ceil((r-i)/n/2)*n;t(e,a,i,r,s),o.push(i,a,a,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var e=this.data,i=[];if(!g(t,e))return i;for(var r=this.toBBox,n=[];e;){for(var s=0;s=0&&n[e].children.length>this._maxEntries;)this._split(n,e),e--;this._adjustParentBBoxes(r,n,e)},r.prototype._split=function(t,e){var i=t[e],r=i.children.length,n=this._minEntries;this._chooseSplitAxis(i,n,r);var o=this._chooseSplitIndex(i,n,r),a=p(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},r.prototype._splitRoot=function(t,e){this.data=p([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,e,i){for(var r,n,s,a,l,h,u,d=1/0,g=1/0,p=e;p<=i-e;p++){var f=o(t,0,p,this.toBBox),m=o(t,p,i,this.toBBox),_=(n=f,s=m,a=void 0,l=void 0,h=void 0,u=void 0,a=Math.max(n.minX,s.minX),l=Math.max(n.minY,s.minY),h=Math.min(n.maxX,s.maxX),u=Math.min(n.maxY,s.maxY),Math.max(0,h-a)*Math.max(0,u-l)),y=c(f)+c(m);_=e;g--){var p=t.children[g];a(l,t.leaf?n(p):p),h+=u(l)}return h},r.prototype._adjustParentBBoxes=function(t,e,i){for(var r=i;r>=0;r--)a(e[r],t)},r.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():s(t[e],this.toBBox)},r}()},function(t,e,i){"use strict";var r=i(67),n=i(13);class s extends r.a{constructor(t,e,i,r,s){super(t,e,i,void 0!==s?n.a.IDLE:n.a.LOADED),this.loader_=void 0!==s?s:null,this.canvas_=r,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=n.a.ERROR):this.state=n.a.LOADED,this.changed()}load(){this.state==n.a.IDLE&&(this.state=n.a.LOADING,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}}e.a=s},function(t,e,i){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var r=i(155),n=i(89),s=i(156);function o(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(o()=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|t}function p(t,e){if(l.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var i=t.length;if(0===i)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return i;case"utf8":case"utf-8":case void 0:return B(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*i;case"hex":return i>>>1;case"base64":return U(t).length;default:if(r)return B(t).length;e=(""+e).toLowerCase(),r=!0}}function f(t,e,i){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===i||i>this.length)&&(i=this.length),i<=0)return"";if((i>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return O(this,e,i);case"utf8":case"utf-8":return C(this,e,i);case"ascii":return L(this,e,i);case"latin1":case"binary":return M(this,e,i);case"base64":return I(this,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,i);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function m(t,e,i){var r=t[e];t[e]=t[i],t[i]=r}function _(t,e,i,r,n){if(0===t.length)return-1;if("string"==typeof i?(r=i,i=0):i>2147483647?i=2147483647:i<-2147483648&&(i=-2147483648),i=+i,isNaN(i)&&(i=n?0:t.length-1),i<0&&(i=t.length+i),i>=t.length){if(n)return-1;i=t.length-1}else if(i<0){if(!n)return-1;i=0}if("string"==typeof e&&(e=l.from(e,r)),l.isBuffer(e))return 0===e.length?-1:y(t,e,i,r,n);if("number"==typeof e)return e&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(t,e,i):Uint8Array.prototype.lastIndexOf.call(t,e,i):y(t,[e],i,r,n);throw new TypeError("val must be string, number or Buffer")}function y(t,e,i,r,n){var s,o=1,a=t.length,l=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;o=2,a/=2,l/=2,i/=2}function h(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(n){var c=-1;for(s=i;sa&&(i=a-l),s=i;s>=0;s--){for(var u=!0,d=0;dn&&(r=n):r=n;var s=e.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o>8,n=i%256,s.push(n),s.push(r);return s}(e,t.length-i),t,i,r)}function I(t,e,i){return 0===e&&i===t.length?r.fromByteArray(t):r.fromByteArray(t.slice(e,i))}function C(t,e,i){i=Math.min(t.length,i);for(var r=[],n=e;n239?4:h>223?3:h>191?2:1;if(n+u<=i)switch(u){case 1:h<128&&(c=h);break;case 2:128==(192&(s=t[n+1]))&&(l=(31&h)<<6|63&s)>127&&(c=l);break;case 3:s=t[n+1],o=t[n+2],128==(192&s)&&128==(192&o)&&(l=(15&h)<<12|(63&s)<<6|63&o)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:s=t[n+1],o=t[n+2],a=t[n+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&(l=(15&h)<<18|(63&s)<<12|(63&o)<<6|63&a)>65535&&l<1114112&&(c=l)}null===c?(c=65533,u=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),n+=u}return function(t){var e=t.length;if(e<=T)return String.fromCharCode.apply(String,t);var i="",r=0;for(;r0&&(t=this.toString("hex",0,i).match(/.{2}/g).join(" "),this.length>i&&(t+=" ... ")),""},l.prototype.compare=function(t,e,i,r,n){if(!l.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===i&&(i=t?t.length:0),void 0===r&&(r=0),void 0===n&&(n=this.length),e<0||i>t.length||r<0||n>this.length)throw new RangeError("out of range index");if(r>=n&&e>=i)return 0;if(r>=n)return-1;if(e>=i)return 1;if(this===t)return 0;for(var s=(n>>>=0)-(r>>>=0),o=(i>>>=0)-(e>>>=0),a=Math.min(s,o),h=this.slice(r,n),c=t.slice(e,i),u=0;un)&&(i=n),t.length>0&&(i<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return v(this,t,e,i);case"utf8":case"utf-8":return x(this,t,e,i);case"ascii":return b(this,t,e,i);case"latin1":case"binary":return w(this,t,e,i);case"base64":return E(this,t,e,i);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,t,e,i);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var T=4096;function L(t,e,i){var r="";i=Math.min(t.length,i);for(var n=e;nr)&&(i=r);for(var n="",s=e;si)throw new RangeError("Trying to access beyond buffer length")}function N(t,e,i,r,n,s){if(!l.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw new RangeError("Index out of range")}function A(t,e,i,r){e<0&&(e=65535+e+1);for(var n=0,s=Math.min(t.length-i,2);n>>8*(r?n:1-n)}function F(t,e,i,r){e<0&&(e=4294967295+e+1);for(var n=0,s=Math.min(t.length-i,4);n>>8*(r?n:3-n)&255}function k(t,e,i,r,n,s){if(i+r>t.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("Index out of range")}function D(t,e,i,r,s){return s||k(t,0,i,4),n.write(t,e,i,r,23,4),i+4}function j(t,e,i,r,s){return s||k(t,0,i,8),n.write(t,e,i,r,52,8),i+8}l.prototype.slice=function(t,e){var i,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(n*=256);)r+=this[t+--e]*n;return r},l.prototype.readUInt8=function(t,e){return e||P(t,1,this.length),this[t]},l.prototype.readUInt16LE=function(t,e){return e||P(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUInt16BE=function(t,e){return e||P(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUInt32LE=function(t,e){return e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUInt32BE=function(t,e){return e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,i){t|=0,e|=0,i||P(t,e,this.length);for(var r=this[t],n=1,s=0;++s=(n*=128)&&(r-=Math.pow(2,8*e)),r},l.prototype.readIntBE=function(t,e,i){t|=0,e|=0,i||P(t,e,this.length);for(var r=e,n=1,s=this[t+--r];r>0&&(n*=256);)s+=this[t+--r]*n;return s>=(n*=128)&&(s-=Math.pow(2,8*e)),s},l.prototype.readInt8=function(t,e){return e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},l.prototype.readInt16LE=function(t,e){e||P(t,2,this.length);var i=this[t]|this[t+1]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt16BE=function(t,e){e||P(t,2,this.length);var i=this[t+1]|this[t]<<8;return 32768&i?4294901760|i:i},l.prototype.readInt32LE=function(t,e){return e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return e||P(t,4,this.length),n.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return e||P(t,4,this.length),n.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return e||P(t,8,this.length),n.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return e||P(t,8,this.length),n.read(this,t,!1,52,8)},l.prototype.writeUIntLE=function(t,e,i,r){(t=+t,e|=0,i|=0,r)||N(this,t,e,i,Math.pow(2,8*i)-1,0);var n=1,s=0;for(this[e]=255&t;++s=0&&(s*=256);)this[e+n]=t/s&255;return e+i},l.prototype.writeUInt8=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,1,255,0),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},l.prototype.writeUInt16LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):A(this,t,e,!0),e+2},l.prototype.writeUInt16BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):A(this,t,e,!1),e+2},l.prototype.writeUInt32LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):F(this,t,e,!0),e+4},l.prototype.writeUInt32BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},l.prototype.writeIntLE=function(t,e,i,r){if(t=+t,e|=0,!r){var n=Math.pow(2,8*i-1);N(this,t,e,i,n-1,-n)}var s=0,o=1,a=0;for(this[e]=255&t;++s>0)-a&255;return e+i},l.prototype.writeIntBE=function(t,e,i,r){if(t=+t,e|=0,!r){var n=Math.pow(2,8*i-1);N(this,t,e,i,n-1,-n)}var s=i-1,o=1,a=0;for(this[e+s]=255&t;--s>=0&&(o*=256);)t<0&&0===a&&0!==this[e+s+1]&&(a=1),this[e+s]=(t/o>>0)-a&255;return e+i},l.prototype.writeInt8=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,1,127,-128),l.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):A(this,t,e,!0),e+2},l.prototype.writeInt16BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):A(this,t,e,!1),e+2},l.prototype.writeInt32LE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):F(this,t,e,!0),e+4},l.prototype.writeInt32BE=function(t,e,i){return t=+t,e|=0,i||N(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),l.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):F(this,t,e,!1),e+4},l.prototype.writeFloatLE=function(t,e,i){return D(this,t,e,!0,i)},l.prototype.writeFloatBE=function(t,e,i){return D(this,t,e,!1,i)},l.prototype.writeDoubleLE=function(t,e,i){return j(this,t,e,!0,i)},l.prototype.writeDoubleBE=function(t,e,i){return j(this,t,e,!1,i)},l.prototype.copy=function(t,e,i,r){if(i||(i=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--n)t[n+e]=this[n+i];else if(s<1e3||!l.TYPED_ARRAY_SUPPORT)for(n=0;n>>=0,i=void 0===i?this.length:i>>>0,t||(t=0),"number"==typeof t)for(s=e;s55295&&i<57344){if(!n){if(i>56319){(e-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(e-=3)>-1&&s.push(239,191,189);continue}n=i;continue}if(i<56320){(e-=3)>-1&&s.push(239,191,189),n=i;continue}i=65536+(n-55296<<10|i-56320)}else n&&(e-=3)>-1&&s.push(239,191,189);if(n=null,i<128){if((e-=1)<0)break;s.push(i)}else if(i<2048){if((e-=2)<0)break;s.push(i>>6|192,63&i|128)}else if(i<65536){if((e-=3)<0)break;s.push(i>>12|224,i>>6&63|128,63&i|128)}else{if(!(i<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;s.push(i>>18|240,i>>12&63|128,i>>6&63|128,63&i|128)}}return s}function U(t){return r.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(G,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function V(t,e,i,r){for(var n=0;n=e.length||n>=t.length);++n)e[n+i]=t[n];return n}}).call(this,i(90))},function(t,e,i){"use strict";const r={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:'`renderMode` must be `"hybrid"` or `"vector"`',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection",69:"`width` or `height` cannot be provided together with `scale`"};class n extends Error{constructor(t){const e=r[t];super(e),this.code=t,this.name="AssertionError",this.message=e}}e.a=n},function(t,e,i){"use strict";var r=i(5),n=i(8),s=i(22);const o=1/0;var a=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,Object(s.a)(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const r=this.keyFunction_(i);return delete this.queuedElements_[r],i}enqueue(t){Object(n.a)(!(this.keyFunction_(t)in this.queuedElements_),31);const e=this.priorityFunction_(t);return e!=o&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,r=e.length,n=e[t],s=i[t],o=t;for(;t>1;){const n=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(r[t]>s))break;i[e]=i[t],r[e]=r[t],e=t}i[e]=n,r[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let r=0;const n=e.length;let s,a,l;for(a=0;a0;)r=this.dequeue()[0],n=r.getKey(),i=r.getState(),i!==l.a.IDLE||n in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[n]=!0,++this.tilesLoading_,++s,r.load())}};function h(t,e,i,r,n){if(!t||!(i in t.wantedTiles))return o;if(!t.wantedTiles[i][e.getKey()])return o;const s=t.viewState.center,a=r[0]-s[0],l=r[1]-s[1];return 65536*Math.log(n)+Math.sqrt(a*a+l*l)/n}},function(t,e,i){"use strict";function r(t,e,i,r,n){let s;for(e+=r;e{const s=this.loadedTileCallback.bind(this,i,r);return t.forEachLoadedTile(e,r,n,s)}}forEachFeatureAtCoordinate(t,e,i,r,n){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){t.target.getState()===n.a.LOADED&&this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=n.a.LOADED&&e!=n.a.ERROR&&t.addEventListener(r.a.CHANGE,this.boundHandleImageChange_),e==n.a.IDLE&&(t.load(),e=t.getState()),e==n.a.LOADED}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}}e.a=a},function(t,e,i){"use strict";var r=i(31);class n extends r.a{constructor(t){super(t=t||{})}}e.a=n},function(t,e){t.exports='{{#*inline "layerswitcherLayer"}}\n {{#each layers}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n {{#if visible}}\n {{#unless base}}\n
    \n \n \n
    \n {{/unless}}\n
    \n \n
    \n {{/if}}\n
  • \n {{/each}}\n {{/inline}}\n {{#*inline "layerswitcherGroup"}}\n {{#each layerGroups}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n
    \n \n
    \n {{#unless collapsed}}\n {{#gt layerGroups.length 0}}\n
      \n {{> layerswitcherGroup}}\n
    \n {{/gt}}\n {{#gt layers.length 0}}\n
      \n {{> layerswitcherLayer group=id}}\n
    \n {{/gt}}\n {{/unless}}\n
  • \n {{/each}}\n {{/inline}}\n
    \n
    \n
      \n {{#gt baseLayers.length 0}}\n
    • \n
      Capas base
      \n
        \n {{> layerswitcherLayer layers=baseLayers}}\n
      \n
    • \n {{/gt}}\n {{#gt layerGroups.length 0}}\n
    • \n
      Grupos de capas
      \n
        \n {{> layerswitcherGroup }}\n
      \n
    • \n {{/gt}}\n {{#gt overlayLayers.length 0}}\n
    • \n
      Otras capas
      \n
        \n {{> layerswitcherLayer layers=overlayLayers}}\n
      \n
    • \n {{/gt}}\n
    \n
    \n
    '},function(t,e){ -/*! @petamoriken/float16 v3.8.3 | MIT License - https://github.com/petamoriken/float16 */ -!function(t){"use strict";const e="This constructor is not a subclass of Float16Array",i="The constructor property value is not an object",r="Attempting to access detached ArrayBuffer",n="Cannot convert undefined or null to object",s="Cannot mix BigInt and other types, use explicit conversions",o="@@iterator property is not callable",a="Reduce of empty array with no initial value",l="Offset is out of bounds";function h(t){return(e,...i)=>u(t,e,i)}function c(t,e){return h(f(t,e).get)}const{apply:u,construct:d,defineProperty:g,get:p,getOwnPropertyDescriptor:f,getPrototypeOf:m,has:_,ownKeys:y,set:v,setPrototypeOf:x}=Reflect,b=Proxy,{MAX_SAFE_INTEGER:w,isFinite:E,isNaN:S}=Number,{iterator:I,species:C,toStringTag:T,for:L}=Symbol,M=Object,{create:O,defineProperty:R,freeze:P,is:N}=M,A=M.prototype,F=A.__lookupGetter__?h(A.__lookupGetter__):(t,e)=>{if(null==t)throw Nt(n);let i=M(t);do{const t=f(i,e);if(void 0!==t)return k(t,"get")?t.get:void 0}while(null!==(i=m(i)))},k=M.hasOwn||h(A.hasOwnProperty),D=Array,j=D.isArray,G=D.prototype,z=h(G.join),B=h(G.push),U=h(G.toLocaleString),V=G[I],q=h(V),{abs:Y,floor:W,log2:X,pow:H,sign:Z,trunc:K}=Math,$=ArrayBuffer,J=$.isView,Q=$.prototype,tt=h(Q.slice),et=c(Q,"byteLength"),it="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null,rt=it&&c(it.prototype,"byteLength"),nt=m(Uint8Array),st=nt.from,ot=nt.prototype,at=ot[I],lt=h(ot.keys),ht=h(ot.values),ct=h(ot.entries),ut=h(ot.set),dt=h(ot.reverse),gt=h(ot.fill),pt=h(ot.copyWithin),ft=h(ot.sort),mt=h(ot.slice),_t=h(ot.subarray),yt=c(ot,"buffer"),vt=c(ot,"byteOffset"),xt=c(ot,"length"),bt=c(ot,T),wt=Uint16Array,Et=(...t)=>u(st,wt,t),St=Uint32Array,It=Float32Array,Ct=m([][I]()),Tt=h(Ct.next),Lt=h(function*(){}().next),Mt=m(Ct),Ot=DataView.prototype,Rt=h(Ot.getUint16),Pt=h(Ot.setUint16),Nt=TypeError,At=RangeError,Ft=WeakSet,kt=Ft.prototype,Dt=h(kt.add),jt=h(kt.has),Gt=WeakMap,zt=Gt.prototype,Bt=h(zt.get),Ut=h(zt.has),Vt=h(zt.set),qt=new Gt,Yt=O(null,{next:{value:function(){const t=Bt(qt,this);return Tt(t)}},[I]:{value:function(){return this}}});function Wt(t){if(t[I]===V&&Ct.next===Tt)return t;const e=O(Yt);return Vt(qt,e,q(t)),e}const Xt=new Gt,Ht=O(Mt,{next:{value:function(){const t=Bt(Xt,this);return Lt(t)},writable:!0,configurable:!0}});for(const t of y(Ct))"next"!==t&&R(Ht,t,f(Ct,t));function Zt(t){const e=O(Ht);return Vt(Xt,e,t),e}function Kt(t){return null!==t&&"object"==typeof t||"function"==typeof t}function $t(t){return null!==t&&"object"==typeof t}function Jt(t){return void 0!==bt(t)}function Qt(t){const e=bt(t);return"BigInt64Array"===e||"BigUint64Array"===e}function te(t){if(null===it)return!1;try{return rt(t),!0}catch(t){return!1}}function ee(t){return function(t){try{return et(t),!0}catch(t){return!1}}(t)||te(t)}function ie(t){return!!j(t)&&(t[I]===V&&Ct.next===Tt)}function re(t){if("string"!=typeof t)return!1;const e=+t;return t===e+""&&(!!E(e)&&e===K(e))}const ne=L("__Float16Array__");function se(t){const e=K(t),i=Y(t-e);return i>.5||.5===i&&e%2!=0?e+Z(t):e}function oe(t){const e=Y(t),i=t<0||N(t,-0)?1:0;let r,n;if(E(e)){let t=W(X(e)),i=H(2,-t);e*i<1?(--t,i*=2):e*i>=2&&(++t,i/=2),t+15>=31?(r=0,n=31):t+15>=1?(r=se(1024*(e*i-1)),n=t+15):(r=se(16777216*e),n=0)}else r=S(e)?512:0,n=31;return i<<15|n<<10|r}const ae=new $(4),le=new It(ae),he=new St(ae),ce=new St(2048);for(let t=1;t<1024;++t){let e=t<<13,i=0;for(;0==(8388608&e);)e<<=1,i-=8388608;e&=-8388609,i+=947912704,ce[t]=e|i}for(let t=1024;t<2048;++t)ce[t]=939524096+(t-1024<<13);const ue=new St(64);for(let t=1;t<31;++t)ue[t]=t<<23;ue[31]=1199570944,ue[32]=2147483648;for(let t=33;t<63;++t)ue[t]=2147483648+(t-32<<23);ue[63]=3347054592;const de=new wt(64);for(let t=1;t<64;++t)32!==t&&(de[t]=1024);function ge(t){const e=t>>10;return he[0]=ce[de[e]+(1023&t)]+ue[e],le[0]}function pe(t){const e=+t;return S(e)||0===e?0:K(e)}function fe(t){const e=pe(t);return e<0?0:ee)return 1;if(0===t&&0===e){const i=N(t,0),r=N(e,0);if(!i&&r)return-1;if(i&&!r)return 1}return 0}const ve=new Gt;function xe(t){return Ut(ve,t)||!J(t)&&function(t){if(!$t(t))return!1;const e=m(t);if(!$t(e))return!1;const r=e.constructor;if(void 0===r)return!1;if(!Kt(r))throw Nt(i);return _(r,ne)}(t)}function be(t){if(!xe(t))throw Nt("This is not a Float16Array object")}function we(t,e){const i=xe(t),r=Jt(t);if(!i&&!r)throw Nt("Species constructor didn't return TypedArray object");if("number"==typeof e){let r;if(i){const e=Ee(t);r=xt(e)}else r=xt(t);if(rre(e)&&k(t,e)?ge(p(t,e)):jt(Ie,F(t,e))?p(t,e):p(t,e,i),set:(t,e,i,r)=>re(e)&&k(t,e)?v(t,e,oe(i)):v(t,e,i,r),getOwnPropertyDescriptor(t,e){if(re(e)&&k(t,e)){const i=f(t,e);return i.value=ge(i.value),i}return f(t,e)},defineProperty:(t,e,i)=>re(e)&&k(t,e)&&k(i,"value")?(i.value=oe(i.value),g(t,e,i)):g(t,e,i)});class Te{constructor(t,e,i){let n;if(xe(t))n=d(wt,[Ee(t)],new.target);else if(Kt(t)&&!ee(t)){let e,i;if(Jt(t)){e=t,i=xt(t);if(_e(yt(t)))throw Nt(r);if(Qt(t))throw Nt(s);const o=new $(2*i);n=d(wt,[o],new.target)}else{const r=t[I];if(null!=r&&"function"!=typeof r)throw Nt(o);null!=r?ie(t)?(e=t,i=t.length):(e=[...t],i=e.length):(e=t,i=fe(e.length)),n=d(wt,[i],new.target)}for(let t=0;t=0?r:i+r;if(!(n<0||n>=i))return ge(e[n])}with(t,e){be(this);const i=Ee(this),r=xt(i),n=pe(t),s=n>=0?n:r+n,o=+e;if(s<0||s>=r)throw At(l);const a=new wt(yt(i),vt(i),xt(i)),h=new Te(yt(mt(a)));return Ee(h)[s]=oe(o),h}map(t,...e){be(this);const i=Ee(this),r=xt(i),n=e[0],s=me(i,Te);if(s===Te){const e=new Te(r),s=Ee(e);for(let e=0;e=0;--e)n=t(n,ge(i[e]),e,this);return n}forEach(t,...e){be(this);const i=Ee(this),r=xt(i),n=e[0];for(let e=0;e=0;--e){const r=ge(i[e]);if(u(t,n,[r,e,this]))return r}}findLastIndex(t,...e){be(this);const i=Ee(this),r=xt(i),n=e[0];for(let e=r-1;e>=0;--e){const r=ge(i[e]);if(u(t,n,[r,e,this]))return e}return-1}every(t,...e){be(this);const i=Ee(this),r=xt(i),n=e[0];for(let e=0;ea)throw At(l);for(let t=0;ti(ge(t),ge(e))),this}toSorted(t){be(this);const e=Ee(this);if(void 0!==t&&"function"!=typeof t)throw new Nt("The comparison function must be either a function or undefined");const i=void 0!==t?t:ye,r=new wt(yt(e),vt(e),xt(e)),n=new Te(yt(mt(r))),s=Ee(n);return ft(s,(t,e)=>i(ge(t),ge(e))),n}slice(t,e){be(this);const i=Ee(this),n=me(i,Te);if(n===Te){const r=new wt(yt(i),vt(i),xt(i));return new Te(yt(mt(r,t,e)))}const s=xt(i),o=pe(t),a=void 0===e?s:pe(e);let l,h;l=o===-1/0?0:o<0?s+o>0?s+o:0:s0?s+a:0:s0?h-l:0,u=new n(c);if(we(u,c),0===c)return u;if(_e(yt(i)))throw Nt(r);let d=0;for(;l=1?pe(e[0]):r-1;if(n===-1/0)return-1;n>=0?n=n=0;--e)if(k(i,e)&&ge(i[e])===t)return e;return-1}includes(t,...e){be(this);const i=Ee(this),r=xt(i);let n=pe(e[0]);if(n===1/0)return!1;n<0&&(n+=r,n<0&&(n=0));const s=S(t);for(let e=n;e=0;)t[e]=0}const n=256,s=286,o=30,a=15,l=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),h=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),c=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);r(d);const g=new Array(60);r(g);const p=new Array(512);r(p);const f=new Array(256);r(f);const m=new Array(29);r(m);const _=new Array(o);function y(t,e,i,r,n){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=r,this.max_length=n,this.has_stree=t&&t.length}let v,x,b;function w(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}r(_);const E=t=>t<256?p[t]:p[256+(t>>>7)],S=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},I=(t,e,i)=>{t.bi_valid>16-i?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<{I(t,i[2*e],i[2*e+1])},T=(t,e)=>{let i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1},L=(t,e,i)=>{const r=new Array(16);let n,s,o=0;for(n=1;n<=a;n++)o=o+i[n-1]<<1,r[n]=o;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=T(r[e]++,e))}},M=t=>{let e;for(e=0;e{t.bi_valid>8?S(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},R=(t,e,i,r)=>{const n=2*e,s=2*i;return t[n]{const r=t.heap[i];let n=i<<1;for(;n<=t.heap_len&&(n{let r,s,o,a,c=0;if(0!==t.sym_next)do{r=255&t.pending_buf[t.sym_buf+c++],r+=(255&t.pending_buf[t.sym_buf+c++])<<8,s=t.pending_buf[t.sym_buf+c++],0===r?C(t,s,e):(o=f[s],C(t,o+n+1,e),a=l[o],0!==a&&(s-=m[o],I(t,s,a)),r--,o=E(r),C(t,o,i),a=h[o],0!==a&&(r-=_[o],I(t,r,a)))}while(c{const i=e.dyn_tree,r=e.stat_desc.static_tree,n=e.stat_desc.has_stree,s=e.stat_desc.elems;let o,l,h,c=-1;for(t.heap_len=0,t.heap_max=573,o=0;o>1;o>=1;o--)P(t,i,o);h=s;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],P(t,i,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,i[2*h]=i[2*o]+i[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,i[2*o+1]=i[2*l+1]=h,t.heap[1]=h++,P(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const i=e.dyn_tree,r=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let c,u,d,g,p,f,m=0;for(g=0;g<=a;g++)t.bl_count[g]=0;for(i[2*t.heap[t.heap_max]+1]=0,c=t.heap_max+1;c<573;c++)u=t.heap[c],g=i[2*i[2*u+1]+1]+1,g>h&&(g=h,m++),i[2*u+1]=g,u>r||(t.bl_count[g]++,p=0,u>=l&&(p=o[u-l]),f=i[2*u],t.opt_len+=f*(g+p),s&&(t.static_len+=f*(n[2*u+1]+p)));if(0!==m){do{for(g=h-1;0===t.bl_count[g];)g--;t.bl_count[g]--,t.bl_count[g+1]+=2,t.bl_count[h]--,m-=2}while(m>0);for(g=h;0!==g;g--)for(u=t.bl_count[g];0!==u;)d=t.heap[--c],d>r||(i[2*d+1]!==g&&(t.opt_len+=(g-i[2*d+1])*i[2*d],i[2*d+1]=g),u--)}})(t,e),L(i,c,t.bl_count)},F=(t,e,i)=>{let r,n,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),e[2*(i+1)+1]=65535,r=0;r<=i;r++)n=o,o=e[2*(r+1)+1],++a{let r,n,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),r=0;r<=i;r++)if(n=o,o=e[2*(r+1)+1],!(++a{I(t,0+(r?1:0),3),O(t),S(t,i),S(t,~i),i&&t.pending_buf.set(t.window.subarray(e,e+i),t.pending),t.pending+=i};var G={_tr_init:t=>{D||((()=>{let t,e,i,r,n;const u=new Array(16);for(i=0,r=0;r<28;r++)for(m[r]=i,t=0;t<1<>=7;r{let s,o,a=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(F(t,t.dyn_ltree,t.l_desc.max_code),F(t,t.dyn_dtree,t.d_desc.max_code),A(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*u[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,o<=s&&(s=o)):s=o=i+5,i+4<=s&&-1!==e?j(t,e,i,r):4===t.strategy||o===s?(I(t,2+(r?1:0),3),N(t,d,g)):(I(t,4+(r?1:0),3),((t,e,i,r)=>{let n;for(I(t,e-257,5),I(t,i-1,5),I(t,r-4,4),n=0;n(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(f[i]+n+1)]++,t.dyn_dtree[2*E(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{I(t,2,3),C(t,256,d),(t=>{16===t.bi_valid?(S(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var z=(t,e,i,r)=>{let n=65535&t|0,s=t>>>16&65535|0,o=0;for(;0!==i;){o=i>2e3?2e3:i,i-=o;do{n=n+e[r++]|0,s=s+n|0}while(--o);n%=65521,s%=65521}return n|s<<16|0};const B=new Uint32Array((()=>{let t,e=[];for(var i=0;i<256;i++){t=i;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e})());var U=(t,e,i,r)=>{const n=B,s=r+i;t^=-1;for(let i=r;i>>8^n[255&(t^e[i])];return-1^t},V={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},q={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Y,_tr_stored_block:W,_tr_flush_block:X,_tr_tally:H,_tr_align:Z}=G,{Z_NO_FLUSH:K,Z_PARTIAL_FLUSH:$,Z_FULL_FLUSH:J,Z_FINISH:Q,Z_BLOCK:tt,Z_OK:et,Z_STREAM_END:it,Z_STREAM_ERROR:rt,Z_DATA_ERROR:nt,Z_BUF_ERROR:st,Z_DEFAULT_COMPRESSION:ot,Z_FILTERED:at,Z_HUFFMAN_ONLY:lt,Z_RLE:ht,Z_FIXED:ct,Z_DEFAULT_STRATEGY:ut,Z_UNKNOWN:dt,Z_DEFLATED:gt}=q,pt=258,ft=262,mt=42,_t=113,yt=666,vt=(t,e)=>(t.msg=V[e],e),xt=t=>2*t-(t>4?9:0),bt=t=>{let e=t.length;for(;--e>=0;)t[e]=0},wt=t=>{let e,i,r,n=t.w_size;e=t.hash_size,r=e;do{i=t.head[--r],t.head[r]=i>=n?i-n:0}while(--e);e=n,r=e;do{i=t.prev[--r],t.prev[r]=i>=n?i-n:0}while(--e)};let Et=(t,e,i)=>(e<{const e=t.state;let i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+i),t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))},It=(t,e)=>{X(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,St(t.strm)},Ct=(t,e)=>{t.pending_buf[t.pending++]=e},Tt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Lt=(t,e,i,r)=>{let n=t.avail_in;return n>r&&(n=r),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),i),1===t.state.wrap?t.adler=z(t.adler,e,n,i):2===t.state.wrap&&(t.adler=U(t.adler,e,n,i)),t.next_in+=n,t.total_in+=n,n)},Mt=(t,e)=>{let i,r,n=t.max_chain_length,s=t.strstart,o=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,c=t.w_mask,u=t.prev,d=t.strstart+pt;let g=h[s+o-1],p=h[s+o];t.prev_length>=t.good_match&&(n>>=2),a>t.lookahead&&(a=t.lookahead);do{if(i=e,h[i+o]===p&&h[i+o-1]===g&&h[i]===h[s]&&h[++i]===h[s+1]){s+=2,i++;do{}while(h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&so){if(t.match_start=e,o=r,r>=a)break;g=h[s+o-1],p=h[s+o]}}}while((e=u[e&c])>l&&0!=--n);return o<=t.lookahead?o:t.lookahead},Ot=t=>{const e=t.w_size;let i,r,n;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ft)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),wt(t),r+=e),0===t.strm.avail_in)break;if(i=Lt(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=i,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=Et(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=Et(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let i,r,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,o=0,a=t.strm.avail_in;do{if(i=65535,n=t.bi_valid+42>>3,t.strm.avail_outr+t.strm.avail_in&&(i=r+t.strm.avail_in),i>n&&(i=n),i>8,t.pending_buf[t.pending-2]=~i,t.pending_buf[t.pending-1]=~i>>8,St(t.strm),r&&(r>i&&(r=i),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+r),t.strm.next_out),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r,t.block_start+=r,i-=r),i&&(Lt(t.strm,t.strm.output,t.strm.next_out,i),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i)}while(0===o);return a-=t.strm.avail_in,a&&(a>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=a&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-a,t.strm.next_in),t.strstart),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.block_start=t.strstart),t.high_watern&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(Lt(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,r=t.strstart-t.block_start,(r>=s||(r||e===Q)&&e!==K&&0===t.strm.avail_in&&r<=n)&&(i=r>n?n:r,o=e===Q&&0===t.strm.avail_in&&i===r?1:0,W(t,t.block_start,i,o),t.block_start+=i,St(t.strm)),o?3:1)},Pt=(t,e)=>{let i,r;for(;;){if(t.lookahead=3&&(t.ins_h=Et(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-ft&&(t.match_length=Mt(t,i)),t.match_length>=3)if(r=H(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=Et(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Et(t,t.ins_h,t.window[t.strstart+1]);else r=H(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(It(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===Q?(It(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(It(t,!1),0===t.strm.avail_out)?1:2},Nt=(t,e)=>{let i,r,n;for(;;){if(t.lookahead=3&&(t.ins_h=Et(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,r=H(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=Et(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,r&&(It(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(r=H(t,0,t.window[t.strstart-1]),r&&It(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=H(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===Q?(It(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(It(t,!1),0===t.strm.avail_out)?1:2};function At(t,e,i,r,n){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=r,this.func=n}const Ft=[new At(0,0,0,0,Rt),new At(4,4,8,4,Pt),new At(4,5,16,8,Pt),new At(4,6,32,32,Pt),new At(4,4,16,16,Nt),new At(8,16,32,32,Nt),new At(8,16,128,128,Nt),new At(8,32,128,256,Nt),new At(32,128,258,1024,Nt),new At(32,258,258,4096,Nt)];function kt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=gt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),bt(this.dyn_ltree),bt(this.dyn_dtree),bt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),bt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),bt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Dt=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==mt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==_t&&e.status!==yt?1:0},jt=t=>{if(Dt(t))return vt(t,rt);t.total_in=t.total_out=0,t.data_type=dt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?mt:_t,t.adler=2===e.wrap?0:1,e.last_flush=-2,Y(e),et},Gt=t=>{const e=jt(t);var i;return e===et&&((i=t.state).window_size=2*i.w_size,bt(i.head),i.max_lazy_match=Ft[i.level].max_lazy,i.good_match=Ft[i.level].good_length,i.nice_match=Ft[i.level].nice_length,i.max_chain_length=Ft[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),e},zt=(t,e,i,r,n,s)=>{if(!t)return rt;let o=1;if(e===ot&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),n<1||n>9||i!==gt||r<8||r>15||e<0||e>9||s<0||s>ct||8===r&&1!==o)return vt(t,rt);8===r&&(r=9);const a=new kt;return t.state=a,a.strm=t,a.status=mt,a.wrap=o,a.gzhead=null,a.w_bits=r,a.w_size=1<zt(t,e,gt,15,8,ut),deflateInit2:zt,deflateReset:Gt,deflateResetKeep:jt,deflateSetHeader:(t,e)=>Dt(t)||2!==t.state.wrap?rt:(t.state.gzhead=e,et),deflate:(t,e)=>{if(Dt(t)||e>tt||e<0)return t?vt(t,rt):rt;const i=t.state;if(!t.output||0!==t.avail_in&&!t.input||i.status===yt&&e!==Q)return vt(t,0===t.avail_out?st:rt);const r=i.last_flush;if(i.last_flush=e,0!==i.pending){if(St(t),0===t.avail_out)return i.last_flush=-1,et}else if(0===t.avail_in&&xt(e)<=xt(r)&&e!==Q)return vt(t,st);if(i.status===yt&&0!==t.avail_in)return vt(t,st);if(i.status===mt&&0===i.wrap&&(i.status=_t),i.status===mt){let e=gt+(i.w_bits-8<<4)<<8,r=-1;if(r=i.strategy>=lt||i.level<2?0:i.level<6?1:6===i.level?2:3,e|=r<<6,0!==i.strstart&&(e|=32),e+=31-e%31,Tt(i,e),0!==i.strstart&&(Tt(i,t.adler>>>16),Tt(i,65535&t.adler)),t.adler=1,i.status=_t,St(t),0!==i.pending)return i.last_flush=-1,et}if(57===i.status)if(t.adler=0,Ct(i,31),Ct(i,139),Ct(i,8),i.gzhead)Ct(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Ct(i,255&i.gzhead.time),Ct(i,i.gzhead.time>>8&255),Ct(i,i.gzhead.time>>16&255),Ct(i,i.gzhead.time>>24&255),Ct(i,9===i.level?2:i.strategy>=lt||i.level<2?4:0),Ct(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(Ct(i,255&i.gzhead.extra.length),Ct(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=U(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(Ct(i,0),Ct(i,0),Ct(i,0),Ct(i,0),Ct(i,0),Ct(i,9===i.level?2:i.strategy>=lt||i.level<2?4:0),Ct(i,3),i.status=_t,St(t),0!==i.pending)return i.last_flush=-1,et;if(69===i.status){if(i.gzhead.extra){let e=i.pending,r=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+r>i.pending_buf_size;){let n=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+n),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>e&&(t.adler=U(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex+=n,St(t),0!==i.pending)return i.last_flush=-1,et;e=0,r-=n}let n=new Uint8Array(i.gzhead.extra);i.pending_buf.set(n.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending+=r,i.gzhead.hcrc&&i.pending>e&&(t.adler=U(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let e,r=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(t.adler=U(t.adler,i.pending_buf,i.pending-r,r)),St(t),0!==i.pending)return i.last_flush=-1,et;r=0}e=i.gzindexr&&(t.adler=U(t.adler,i.pending_buf,i.pending-r,r)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let e,r=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>r&&(t.adler=U(t.adler,i.pending_buf,i.pending-r,r)),St(t),0!==i.pending)return i.last_flush=-1,et;r=0}e=i.gzindexr&&(t.adler=U(t.adler,i.pending_buf,i.pending-r,r))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(St(t),0!==i.pending))return i.last_flush=-1,et;Ct(i,255&t.adler),Ct(i,t.adler>>8&255),t.adler=0}if(i.status=_t,St(t),0!==i.pending)return i.last_flush=-1,et}if(0!==t.avail_in||0!==i.lookahead||e!==K&&i.status!==yt){let r=0===i.level?Rt(i,e):i.strategy===lt?((t,e)=>{let i;for(;;){if(0===t.lookahead&&(Ot(t),0===t.lookahead)){if(e===K)return 1;break}if(t.match_length=0,i=H(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(It(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(It(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(It(t,!1),0===t.strm.avail_out)?1:2})(i,e):i.strategy===ht?((t,e)=>{let i,r,n,s;const o=t.window;for(;;){if(t.lookahead<=pt){if(Ot(t),t.lookahead<=pt&&e===K)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,r=o[n],r===o[++n]&&r===o[++n]&&r===o[++n])){s=t.strstart+pt;do{}while(r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&r===o[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=H(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=H(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(It(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(It(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(It(t,!1),0===t.strm.avail_out)?1:2})(i,e):Ft[i.level].func(i,e);if(3!==r&&4!==r||(i.status=yt),1===r||3===r)return 0===t.avail_out&&(i.last_flush=-1),et;if(2===r&&(e===$?Z(i):e!==tt&&(W(i,0,0,!1),e===J&&(bt(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),St(t),0===t.avail_out))return i.last_flush=-1,et}return e!==Q?et:i.wrap<=0?it:(2===i.wrap?(Ct(i,255&t.adler),Ct(i,t.adler>>8&255),Ct(i,t.adler>>16&255),Ct(i,t.adler>>24&255),Ct(i,255&t.total_in),Ct(i,t.total_in>>8&255),Ct(i,t.total_in>>16&255),Ct(i,t.total_in>>24&255)):(Tt(i,t.adler>>>16),Tt(i,65535&t.adler)),St(t),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?et:it)},deflateEnd:t=>{if(Dt(t))return rt;const e=t.state.status;return t.state=null,e===_t?vt(t,nt):et},deflateSetDictionary:(t,e)=>{let i=e.length;if(Dt(t))return rt;const r=t.state,n=r.wrap;if(2===n||1===n&&r.status!==mt||r.lookahead)return rt;if(1===n&&(t.adler=z(t.adler,e,i,0)),r.wrap=0,i>=r.w_size){0===n&&(bt(r.head),r.strstart=0,r.block_start=0,r.insert=0);let t=new Uint8Array(r.w_size);t.set(e.subarray(i-r.w_size,i),0),e=t,i=r.w_size}const s=t.avail_in,o=t.next_in,a=t.input;for(t.avail_in=i,t.next_in=0,t.input=e,Ot(r);r.lookahead>=3;){let t=r.strstart,e=r.lookahead-2;do{r.ins_h=Et(r,r.ins_h,r.window[t+3-1]),r.prev[t&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=t,t++}while(--e);r.strstart=t,r.lookahead=2,Ot(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,t.next_in=o,t.input=a,t.avail_in=s,r.wrap=n,et},deflateInfo:"pako deflate (from Nodeca project)"};const Ut=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var Vt=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const e in i)Ut(i,e)&&(t[e]=i[e])}}return t},qt=t=>{let e=0;for(let i=0,r=t.length;i=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Wt[254]=Wt[254]=1;var Xt=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,i,r,n,s,o=t.length,a=0;for(n=0;n>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},Ht=(t,e)=>{const i=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let r,n;const s=new Array(2*i);for(n=0,r=0;r4)s[n++]=65533,r+=o-1;else{for(e&=2===o?31:3===o?15:7;o>1&&r1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Yt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let i="";for(let r=0;r{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+Wt[t[i]]>e?i:e};var Kt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const $t=Object.prototype.toString,{Z_NO_FLUSH:Jt,Z_SYNC_FLUSH:Qt,Z_FULL_FLUSH:te,Z_FINISH:ee,Z_OK:ie,Z_STREAM_END:re,Z_DEFAULT_COMPRESSION:ne,Z_DEFAULT_STRATEGY:se,Z_DEFLATED:oe}=q;function ae(t){this.options=Vt({level:ne,method:oe,chunkSize:16384,windowBits:15,memLevel:8,strategy:se},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Kt,this.strm.avail_out=0;let i=Bt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==ie)throw new Error(V[i]);if(e.header&&Bt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Xt(e.dictionary):"[object ArrayBuffer]"===$t.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,i=Bt.deflateSetDictionary(this.strm,t),i!==ie)throw new Error(V[i]);this._dict_set=!0}}function le(t,e){const i=new ae(e);if(i.push(t,!0),i.err)throw i.msg||V[i.err];return i.result}ae.prototype.push=function(t,e){const i=this.strm,r=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?ee:Jt,"string"==typeof t?i.input=Xt(t):"[object ArrayBuffer]"===$t.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(r),i.next_out=0,i.avail_out=r),(s===Qt||s===te)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(n=Bt.deflate(i,s),n===re)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),n=Bt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ie;if(0!==i.avail_out){if(s>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ae.prototype.onData=function(t){this.chunks.push(t)},ae.prototype.onEnd=function(t){t===ie&&(this.result=qt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var he={Deflate:ae,deflate:le,deflateRaw:function(t,e){return(e=e||{}).raw=!0,le(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,le(t,e)},constants:q};const ce=16209;var ue=function(t,e){let i,r,n,s,o,a,l,h,c,u,d,g,p,f,m,_,y,v,x,b,w,E,S,I;const C=t.state;i=t.next_in,S=t.input,r=i+(t.avail_in-5),n=t.next_out,I=t.output,s=n-(e-t.avail_out),o=n+(t.avail_out-257),a=C.dmax,l=C.wsize,h=C.whave,c=C.wnext,u=C.window,d=C.hold,g=C.bits,p=C.lencode,f=C.distcode,m=(1<>>24,d>>>=v,g-=v,v=y>>>16&255,0===v)I[n++]=65535&y;else{if(!(16&v)){if(0==(64&v)){y=p[(65535&y)+(d&(1<>>=v,g-=v),g<15&&(d+=S[i++]<>>24,d>>>=v,g-=v,v=y>>>16&255,!(16&v)){if(0==(64&v)){y=f[(65535&y)+(d&(1<a){t.msg="invalid distance too far back",C.mode=ce;break t}if(d>>>=v,g-=v,v=n-s,b>v){if(v=b-v,v>h&&C.sane){t.msg="invalid distance too far back",C.mode=ce;break t}if(w=0,E=u,0===c){if(w+=l-v,v2;)I[n++]=E[w++],I[n++]=E[w++],I[n++]=E[w++],x-=3;x&&(I[n++]=E[w++],x>1&&(I[n++]=E[w++]))}else{w=n-b;do{I[n++]=I[w++],I[n++]=I[w++],I[n++]=I[w++],x-=3}while(x>2);x&&(I[n++]=I[w++],x>1&&(I[n++]=I[w++]))}break}}break}}while(i>3,i-=x,g-=x<<3,d&=(1<{const l=a.bits;let h,c,u,d,g,p,f=0,m=0,_=0,y=0,v=0,x=0,b=0,w=0,E=0,S=0,I=null;const C=new Uint16Array(16),T=new Uint16Array(16);let L,M,O,R=null;for(f=0;f<=de;f++)C[f]=0;for(m=0;m=1&&0===C[y];y--);if(v>y&&(v=y),0===y)return n[s++]=20971520,n[s++]=20971520,a.bits=1,0;for(_=1;_0&&(0===t||1!==y))return-1;for(T[1]=0,f=1;f852||2===t&&E>592)return 1;for(;;){L=f-b,o[m]+1=p?(M=R[o[m]-p],O=I[o[m]-p]):(M=96,O=0),h=1<>b)+c]=L<<24|M<<16|O|0}while(0!==c);for(h=1<>=1;if(0!==h?(S&=h-1,S+=h):S=0,m++,0==--C[f]){if(f===y)break;f=e[i+o[m]]}if(f>v&&(S&d)!==u){for(0===b&&(b=v),g+=_,x=f-b,w=1<852||2===t&&E>592)return 1;u=S&d,n[u]=v<<24|x<<16|g-s|0}}return 0!==S&&(n[g+S]=f-b<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:ye,Z_BLOCK:ve,Z_TREES:xe,Z_OK:be,Z_STREAM_END:we,Z_NEED_DICT:Ee,Z_STREAM_ERROR:Se,Z_DATA_ERROR:Ie,Z_MEM_ERROR:Ce,Z_BUF_ERROR:Te,Z_DEFLATED:Le}=q,Me=16180,Oe=16190,Re=16191,Pe=16192,Ne=16194,Ae=16199,Fe=16200,ke=16206,De=16209,je=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Ge(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ze=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},Be=t=>{if(ze(t))return Se;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Me,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,be},Ue=t=>{if(ze(t))return Se;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Be(t)},Ve=(t,e)=>{let i;if(ze(t))return Se;const r=t.state;return e<0?(i=0,e=-e):(i=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Se:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=i,r.wbits=e,Ue(t))},qe=(t,e)=>{if(!t)return Se;const i=new Ge;t.state=i,i.strm=t,i.window=null,i.mode=Me;const r=Ve(t,e);return r!==be&&(t.state=null),r};let Ye,We,Xe=!0;const He=t=>{if(Xe){Ye=new Int32Array(512),We=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(_e(1,t.lens,0,288,Ye,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;_e(2,t.lens,0,32,We,0,t.work,{bits:5}),Xe=!1}t.lencode=Ye,t.lenbits=9,t.distcode=We,t.distbits=5},Ze=(t,e,i,r)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(i-s.wsize,i),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>r&&(n=r),s.window.set(e.subarray(i-r,i-r+n),s.wnext),(r-=n)?(s.window.set(e.subarray(i-r,i),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveqe(t,15),inflateInit2:qe,inflate:(t,e)=>{let i,r,n,s,o,a,l,h,c,u,d,g,p,f,m,_,y,v,x,b,w,E,S=0;const I=new Uint8Array(4);let C,T;const L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ze(t)||!t.output||!t.input&&0!==t.avail_in)return Se;i=t.state,i.mode===Re&&(i.mode=Pe),o=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,r=t.input,a=t.avail_in,h=i.hold,c=i.bits,u=a,d=l,E=be;t:for(;;)switch(i.mode){case Me:if(0===i.wrap){i.mode=Pe;break}for(;c<16;){if(0===a)break t;a--,h+=r[s++]<>>8&255,i.check=U(i.check,I,2,0),h=0,c=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",i.mode=De;break}if((15&h)!==Le){t.msg="unknown compression method",i.mode=De;break}if(h>>>=4,c-=4,w=8+(15&h),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){t.msg="invalid window size",i.mode=De;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(I[0]=255&h,I[1]=h>>>8&255,i.check=U(i.check,I,2,0)),h=0,c=0,i.mode=16182;case 16182:for(;c<32;){if(0===a)break t;a--,h+=r[s++]<>>8&255,I[2]=h>>>16&255,I[3]=h>>>24&255,i.check=U(i.check,I,4,0)),h=0,c=0,i.mode=16183;case 16183:for(;c<16;){if(0===a)break t;a--,h+=r[s++]<>8),512&i.flags&&4&i.wrap&&(I[0]=255&h,I[1]=h>>>8&255,i.check=U(i.check,I,2,0)),h=0,c=0,i.mode=16184;case 16184:if(1024&i.flags){for(;c<16;){if(0===a)break t;a--,h+=r[s++]<>>8&255,i.check=U(i.check,I,2,0)),h=0,c=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(g=i.length,g>a&&(g=a),g&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(r.subarray(s,s+g),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,r,g,s)),a-=g,s+=g,i.length-=g),i.length))break t;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break t;g=0;do{w=r[s+g++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&g>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=Re;break;case 16189:for(;c<32;){if(0===a)break t;a--,h+=r[s++]<>>=7&c,c-=7&c,i.mode=ke;break}for(;c<3;){if(0===a)break t;a--,h+=r[s++]<>>=1,c-=1,3&h){case 0:i.mode=16193;break;case 1:if(He(i),i.mode=Ae,e===xe){h>>>=2,c-=2;break t}break;case 2:i.mode=16196;break;case 3:t.msg="invalid block type",i.mode=De}h>>>=2,c-=2;break;case 16193:for(h>>>=7&c,c-=7&c;c<32;){if(0===a)break t;a--,h+=r[s++]<>>16^65535)){t.msg="invalid stored block lengths",i.mode=De;break}if(i.length=65535&h,h=0,c=0,i.mode=Ne,e===xe)break t;case Ne:i.mode=16195;case 16195:if(g=i.length,g){if(g>a&&(g=a),g>l&&(g=l),0===g)break t;n.set(r.subarray(s,s+g),o),a-=g,s+=g,l-=g,o+=g,i.length-=g;break}i.mode=Re;break;case 16196:for(;c<14;){if(0===a)break t;a--,h+=r[s++]<>>=5,c-=5,i.ndist=1+(31&h),h>>>=5,c-=5,i.ncode=4+(15&h),h>>>=4,c-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=De;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,c-=3}for(;i.have<19;)i.lens[L[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},E=_e(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,E){t.msg="invalid code lengths set",i.mode=De;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,_=S>>>16&255,y=65535&S,!(m<=c);){if(0===a)break t;a--,h+=r[s++]<>>=m,c-=m,i.lens[i.have++]=y;else{if(16===y){for(T=m+2;c>>=m,c-=m,0===i.have){t.msg="invalid bit length repeat",i.mode=De;break}w=i.lens[i.have-1],g=3+(3&h),h>>>=2,c-=2}else if(17===y){for(T=m+3;c>>=m,c-=m,w=0,g=3+(7&h),h>>>=3,c-=3}else{for(T=m+7;c>>=m,c-=m,w=0,g=11+(127&h),h>>>=7,c-=7}if(i.have+g>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=De;break}for(;g--;)i.lens[i.have++]=w}}if(i.mode===De)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=De;break}if(i.lenbits=9,C={bits:i.lenbits},E=_e(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,E){t.msg="invalid literal/lengths set",i.mode=De;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},E=_e(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,E){t.msg="invalid distances set",i.mode=De;break}if(i.mode=Ae,e===xe)break t;case Ae:i.mode=Fe;case Fe:if(a>=6&&l>=258){t.next_out=o,t.avail_out=l,t.next_in=s,t.avail_in=a,i.hold=h,i.bits=c,ue(t,d),o=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,r=t.input,a=t.avail_in,h=i.hold,c=i.bits,i.mode===Re&&(i.back=-1);break}for(i.back=0;S=i.lencode[h&(1<>>24,_=S>>>16&255,y=65535&S,!(m<=c);){if(0===a)break t;a--,h+=r[s++]<>v)],m=S>>>24,_=S>>>16&255,y=65535&S,!(v+m<=c);){if(0===a)break t;a--,h+=r[s++]<>>=v,c-=v,i.back+=v}if(h>>>=m,c-=m,i.back+=m,i.length=y,0===_){i.mode=16205;break}if(32&_){i.back=-1,i.mode=Re;break}if(64&_){t.msg="invalid literal/length code",i.mode=De;break}i.extra=15&_,i.mode=16201;case 16201:if(i.extra){for(T=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;S=i.distcode[h&(1<>>24,_=S>>>16&255,y=65535&S,!(m<=c);){if(0===a)break t;a--,h+=r[s++]<>v)],m=S>>>24,_=S>>>16&255,y=65535&S,!(v+m<=c);){if(0===a)break t;a--,h+=r[s++]<>>=v,c-=v,i.back+=v}if(h>>>=m,c-=m,i.back+=m,64&_){t.msg="invalid distance code",i.mode=De;break}i.offset=y,i.extra=15&_,i.mode=16203;case 16203:if(i.extra){for(T=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=De;break}i.mode=16204;case 16204:if(0===l)break t;if(g=d-l,i.offset>g){if(g=i.offset-g,g>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=De;break}g>i.wnext?(g-=i.wnext,p=i.wsize-g):p=i.wnext-g,g>i.length&&(g=i.length),f=i.window}else f=n,p=o-i.offset,g=i.length;g>l&&(g=l),l-=g,i.length-=g;do{n[o++]=f[p++]}while(--g);0===i.length&&(i.mode=Fe);break;case 16205:if(0===l)break t;n[o++]=i.length,l--,i.mode=Fe;break;case ke:if(i.wrap){for(;c<32;){if(0===a)break t;a--,h|=r[s++]<{if(ze(t))return Se;let e=t.state;return e.window&&(e.window=null),t.state=null,be},inflateGetHeader:(t,e)=>{if(ze(t))return Se;const i=t.state;return 0==(2&i.wrap)?Se:(i.head=e,e.done=!1,be)},inflateSetDictionary:(t,e)=>{const i=e.length;let r,n,s;return ze(t)?Se:(r=t.state,0!==r.wrap&&r.mode!==Oe?Se:r.mode===Oe&&(n=1,n=z(n,e,i,0),n!==r.check)?Ie:(s=Ze(t,e,i,i),s?(r.mode=16210,Ce):(r.havedict=1,be)))},inflateInfo:"pako inflate (from Nodeca project)"};var $e=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Je=Object.prototype.toString,{Z_NO_FLUSH:Qe,Z_FINISH:ti,Z_OK:ei,Z_STREAM_END:ii,Z_NEED_DICT:ri,Z_STREAM_ERROR:ni,Z_DATA_ERROR:si,Z_MEM_ERROR:oi}=q;function ai(t){this.options=Vt({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Kt,this.strm.avail_out=0;let i=Ke.inflateInit2(this.strm,e.windowBits);if(i!==ei)throw new Error(V[i]);if(this.header=new $e,Ke.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Xt(e.dictionary):"[object ArrayBuffer]"===Je.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=Ke.inflateSetDictionary(this.strm,e.dictionary),i!==ei)))throw new Error(V[i])}function li(t,e){const i=new ai(e);if(i.push(t),i.err)throw i.msg||V[i.err];return i.result}ai.prototype.push=function(t,e){const i=this.strm,r=this.options.chunkSize,n=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(o=e===~~e?e:!0===e?ti:Qe,"[object ArrayBuffer]"===Je.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(r),i.next_out=0,i.avail_out=r),s=Ke.inflate(i,o),s===ri&&n&&(s=Ke.inflateSetDictionary(i,n),s===ei?s=Ke.inflate(i,o):s===si&&(s=ri));i.avail_in>0&&s===ii&&i.state.wrap>0&&0!==t[i.next_in];)Ke.inflateReset(i),s=Ke.inflate(i,o);switch(s){case ni:case si:case ri:case oi:return this.onEnd(s),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||s===ii))if("string"===this.options.to){let t=Zt(i.output,i.next_out),e=i.next_out-t,n=Ht(i.output,t);i.next_out=e,i.avail_out=r-e,e&&i.output.set(i.output.subarray(t,t+e),0),this.onData(n)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(s!==ei||0!==a){if(s===ii)return s=Ke.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},ai.prototype.onData=function(t){this.chunks.push(t)},ai.prototype.onEnd=function(t){t===ei&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=qt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var hi={Inflate:ai,inflate:li,inflateRaw:function(t,e){return(e=e||{}).raw=!0,li(t,e)},ungzip:li,constants:q};const{Deflate:ci,deflate:ui,deflateRaw:di,gzip:gi}=he,{Inflate:pi,inflate:fi,inflateRaw:mi,ungzip:_i}=hi;var yi=fi},function(t,e){function i(t,e,i){const r=i&&i.debug||!1;r&&console.log("[xml-utils] getting "+e+" in "+t);const n="object"==typeof t?t.outer:t,s=n.slice(0,n.indexOf(">")+1),o=['"',"'"];for(let t=0;t\n {{#gt tabs.length 1}}\n
    \n {{#each tabs}}\n
    \n \n
    \n {{/each}}\n
    \n {{/gt}}\n
    \n \n {{#if options.takeMeThere}}\n {{#if options.textMode}}\n \n {{else}}\n \n {{/if}}\n {{/if}}\n
    {{{tabs.0.content}}}
    \n
    \n'},function(t,e,i){},function(t,e){e.read=function(t,e,i,r,n){var s,o,a=8*n-r-1,l=(1<>1,c=-7,u=i?n-1:0,d=i?-1:1,g=t[e+u];for(u+=d,s=g&(1<<-c)-1,g>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=d,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=r;c>0;o=256*o+t[e+u],u+=d,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(g?-1:1);o+=Math.pow(2,r),s-=h}return(g?-1:1)*o*Math.pow(2,s-r)},e.write=function(t,e,i,r,n,s){var o,a,l,h=8*s-n-1,c=(1<>1,d=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,g=r?0:s-1,p=r?1:-1,f=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,n),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,n),o=0));n>=8;t[i+g]=255&a,g+=p,a/=256,n-=8);for(o=o<0;t[i+g]=255&o,g+=p,o/=256,h-=8);t[i+g-p]|=128*f}},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t){t.exports=JSON.parse('{"name":"mapea","version":"6.4.0","description":"Herramienta para desarrollo de mapas interactivos de forma sencilla","keywords":["map","mapping","tool","sigcorporativo-ja"],"homepage":"http://mapea4-sigc.juntadeandalucia.es/","repository":{"type":"git","url":"https://github.com/sigcorporativo-ja/Mapea4"},"license":"EUPL","bugs":{"url":"https://github.com/sigcorporativo-ja/Mapea4/issues"},"devDependencies":{"chromedriver":"^2.46.0","copy-webpack-plugin":"^6.1.0","cross-env":"^5.2.0","css-loader":"^2.1.1","eslint":"^4.19.1","eslint-config-airbnb":"^16.1.0","eslint-loader":"^2.0.0","eslint-plugin-import":"^2.9.0","eslint-plugin-jsx-a11y":"^6.0.3","eslint-plugin-react":"^7.7.0","expect.js":"0.3.1","expose-loader":"^0.7.5","file-loader":"^1.1.11","fs-extra":"2.0.0","get-image-colors":"^4.0.1","html-loader":"^0.5.5","jsdoc-plugin-typescript":"^2.2.0","karma":"^6.3.8","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.2","karma-mocha":"2.0.1","karma-webpack":"^3.0.5","mini-css-extract-plugin":"^0.4.1","mocha":"10.2.0","nightwatch":"^2.6.13","optimize-css-assets-webpack-plugin":"^5.0.1","style-loader":"^0.21.0","terser-webpack-plugin":"^4.2.1","uglify-js":"^2.6.1","uglifycss":"0.0.29","url-loader":"^1.0.1","walk":"^2.3.9","webpack":"^4.41.2","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0","yargs":"17.0.0"},"dependencies":{"chroma-js":"^1.3.7","draggabilly":"^2.2.0","handlebars":"4.5.2","jsdoc":"^3.6.4","jsts":"^2.0.2","ol":"7.2.2","proj4":"2.8.1"},"scripts":{"build":"cross-env NODE_OPTIONS=--max_old_space_size=2048 ./node/npm run build:core && ./node/npm run build:plugins && ./node/npm run build:plugins-extern","build:sourcemap":"npm run prebuild && npm run build:core -- --source-map && npm run build:plugins","build:core":"webpack --config=webpack-config/webpack.production-core.config.js","build:plugins":"webpack --config=webpack-config/webpack.production-plugins.config.js","build:plugins-extern":"./node/node tasks/build-extern-plugins.js","debug:build":"webpack-dev-server --config=webpack-config/webpack.test-production.config.js","debug:prebuild":"node --inspect-brk tasks/generate-index.js","generate-doc":"jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json","generate-test":"node tasks/test-generator","karma":"karma start ./karma.conf.js","nightwatch":"nightwatch --config=./nightwatch.conf.js","prebuild":"node tasks/clean-build.js --path=dist && node tasks/generate-index.js && node tasks/generate-plugins-entrypoints.js","postbuild":"npm run generate-doc && node tasks/copy-legacy.js","publish_npm":"node tasks/prepare-package/prepare.js","start":"webpack-dev-server --config=webpack-config/webpack.development.config.js","start:build":"npm run build && npm run debug:build","test":"npm run karma && npm run nightwatch"}}')},function(t,e){t.exports='
    '},function(t){t.exports=JSON.parse('{"location":{"title":"Get current location"},"layerswitcher":{"title":"Layer selector","unsupported_param":"Unsupported parameter","no_base_layer":"Without base layer"},"scale":{"title":"Scale","scale":"Scale"},"getfeatureinfo":{"info":"Information","title":"Consult layer","no_info":"No associated info","info_of":"Information about","unsupported_format":"Unsupported format"},"wmcselector":{"title":"Context selector"},"dialog":{"info":"INFORMATION","error":"ERROR","success":"SUCCESS","id_feature":"An ID has not been indicated to obtain the feature","invalid_type_layer":"A valid type was not specified for the layer","vector_filter":"The indicated filter is not correct","unauthorized_user":"An error occurred while loading the layer: Unauthorized user.","only_one_filter":"FeatureID and CQL are mutually exclusive, indicate only one type of filtering.","getfeatureinfo_type":"The requested format for the information is not available. Try it using gml, plain or html."},"feature":{"incorrect_attributes":"The attributes were not specified correctly."},"exception":{"addto_method":"The used implementation does not have the addTo method","no_get_rotation_method":"The used implementation does not have the getRotation method","no_set_rotation_method":"The used implementation does not have the setRotation method","getelement_method":"The used implementation does not have the getElement method","getfeatureinfo_method":"The used implementation can not create GetFeatureInfo controls","mouse_method":"The used implementation can not create Mouse controls","navtoolbar_method":"The used implementation can not create navtoolbar controls","overviewmap_method":"The used implementation can not create OverviewMap controls","panzoom_method":"The used implementation can not create Panzoom controls","panzoombar_method":"The used implementation can not create Panzoombar controls","scale_method":"The used implementation can not create Scale controls","scaleline_method":"The used implementation can not create ScaleLine controls","wmcselector_method":"The used implementation can not create WMCSelector controls","geojson_method":"The used implementation can not create objects M.impl.format.GeoJSON","wkt_method":"The used implementation can not creat objects M.impl.format.WKT","getfeaturesbylayer_method":"The used implementation does not have the getFeaturesByLayer method","geojsonlayer_method":"The used implementation can not create GeoJSON layers","no_param":"No parameters specified","no_name":"You have not specified any name","kmllayer_method":"The used implementation can not create KML layers","isvisible_method":"The used implementation does not have the isVisible method","isqueryable_methd":"The used implementation does not have the isQueryable method","visibility_param":"You have not specified any visibility parameters","setvisible_method":"The used implementation does not have the setVisible method","inrange_method":"The used implementation does not have the inRange method","mapbox_method":"The used implementation can not create Mapbox layers","osm_method":"The used implementation can not create OSM layers","vectorlayer_method":"The used implementation can not create Vector layers","wfslayer_method":"The used implementation can not create WFS layers","wmclayer_method":"The used implementation can not create WMC layers","select_method":"The used implementation does not have the select method","unselect_method":"The used implementation does not have the unselect method","constructor_impl":"The used implementation does not have a constructor.","getlayers_method":"The used implementation does not have the getLayers method.","getbaselayers_method":"The used implementation does not have the getBaseLayers method.","addlayers_method":"The used implementation does not have the addLayers method.","removelayers_method":"The used implementation does not have the removeLayers method.","getwmc_method":"The implementation used does not have the getWMC method.","addwmc_method":"The used implementation does not have the addWMC method.","removewmc_method":"The used implementation does not have the removeWMC method.","getkml_method":"The used implementation does not have the getKML method.","addkml_method":"The implementation used does not have the addKML method.","removekml_method":"The implementation used does not have the removeKML method.","getwms_method":"The used implementation does not have the getWMS method.","addwms_method":"The used implementation does not have the addWMS method.","removewms_method":"The used implementation does not have the removeWMS method.","getwfs_method":"The implementation used does not have the getWFS method.","getgeojson_method":"The used implementation does not have the getGeoJSON method.","addwfs_method":"The used implementation does not have the addWFS method.","removewfs_method":"The used implementation does not have the removeWFS method.","getwmts_method":"The implementation used does not have the getWMTS method.","addwmts_method":"The used implementation does not have the addWMTS method.","removewmts_method":"The used implementation does not have the removeWMTS method.","getmbtiles_method":"The used implementation does not have the getMBtiles method.","getcontrols_method":"The used implementation does not have the getControls method.","addcontrols_method":"The used implementation does not have the addControls method.","remove_control":"You have not specified any control to delete.","removecontrol_method":"The used implementation does not have the removeControls method.","setmaxextent_method":"The used implementation does not have the setMaxExtent method.","getbbox_method":"The used implementation does not have the getBbox method.","no_bbox":"You have not specified any bbox.","setbbox_method":"The used implementation does not have the setBbox method.","incorrect_bbox_format":"The format of the bbox parameter is not correct.","getzoom_method":"The used implementation does not have the getZoom method.","no_zoom":"You have not specified any zoom.","setzoom_method":"The implementation used does not have the setZoom method.","getcenter_method":"The used implementation does not have the getCenter method.","setcenter_method":"The used implementation does not have the setCenter method.","getresolutions_method":"The used implementation does not have the getResolutions method.","no_resolutions":"You have not specified any resolution.","setresolutions_method":"The used implementation does not have the setResolutions method.","getscale_method":"The used implementation does not have the getScale method.","getprojection_method":"The implementation used does not have the getProjection method.","no_projection":"You have not specified any projection.","setprojection_method":"The used implementation does not have the setProjection method.","no_plugins":"You have not specified any plugins.","no_add_plugin_to_map":"The plugin can not be added to the map.","no_plugin_to_remove":"You have not specified any plugins to delete.","destroy_method":"The used implementation does not have the destroy method.","addlabel_method":"The used implementation does not have the addLabel method.","no_point":"You have not specified any points.","remove_control_from_panel":"You must remove the controls from the panel previously.","getcontainer_method":"The used implementation does not have the getContainer method.","getmapimpl_method":"The used implementation does not have the getMapImpl method.","removepopup_method":"The used implementation does not have the removePopup method.","no_popup":"You have not specified any popup.","invalid_popup":"The specified popup is not valid.","no_maxextent":"You have not specified any maxExtent","must_be_document":"doc.nodeType must be DOCUMENT type","no_service_response":"There was no reply from the service","no_kml_response":"There was no response from the KML","no_getfeature_response":"There was no response in the GetFeature operation","no_map":"You have not specified any map","layerswitcher_method":"The used implementation can not create LayerSwitcher controls","location_method":"The used implementation can not create Location controls","wms_method":"The used implementation can not create WMS layers","wmts_method":"The used implementation can not create WMTS layers","no_impl":"No implementation specified","no_container":"You have not specified any container parameters","no_id_container":"There is no container with the specified id","no_center":"You have not specified any center parameters","no_attr_name":"The name of the attribute was not specified","no_empty":"The attribute name can not be null. Specify string or function","invalid_center_param":"The format of the center parameter is not correct","invalid_maxextent_param":"The format of the maxExtent parameter is not correct","invalid_resolutions_param":"The format of the resolutions parameter is not correct","invalid_zoom_param":"The format of the zoom parameter is not correct","min_gt_max":"A minimum radius greater than the maximum can not be established.","max_lt_min":"A maximum radius of less than the minimum can not be established.","no_geojson":"No GeoJSON has been specified","unsupported_lang":"A language without support has been established","generate_image":"An error occurred while generating the image","id_exists":"ID already exists"}}')},function(t){t.exports=JSON.parse('{"location":{"title":"Obtener ubicación actual"},"layerswitcher":{"title":"Selector de capas","unsupported_param":"Parámetro no soportado","no_base_layer":"Sin capa base"},"scale":{"title":"Escala","scale":"Escala"},"getfeatureinfo":{"info":"Información","title":"Consultar capa","no_info":"No existe información asociada","info_of":"Información de","unsupported_format":"Formato no soportado"},"wmcselector":{"title":"Selector de contextos"},"dialog":{"info":"INFORMACIÓN","error":"ERROR","success":"ÉXITO","id_feature":"No se ha indicado un ID para obtener el feature","invalid_type_layer":"No se ha especificado un tipo válido para la capa","vector_filter":"El filtro indicado no es correcto","unauthorized_user":"Ha ocurrido un error al cargar la capa: Usuario no autorizado.","only_one_filter":"FeatureID y CQL son mutuamente excluyentes. Indicar sólo un tipo de filtrado.","getfeatureinfo_type":"El formato solicitado para la información no está disponible. Inténtelo utilizando gml, plain o html."},"feature":{"incorrect_attributes":"No se han especificado correctamente los atributos."},"exception":{"addto_method":"La implementación usada no posee el método addTo","no_get_rotation_method":"La implementación usada no posee el método getRotation","no_set_rotation_method":"La implementación usada no posee el método setRotation","getelement_method":"La implementación usada no posee el método getElement","getfeatureinfo_method":"La implementación usada no puede crear controles GetFeatureInfo","mouse_method":"La implementación usada no puede crear controles Mouse","navtoolbar_method":"La implementación usada no puede crear controles Navtoolbar","overviewmap_method":"La implementación usada no puede crear controles OverviewMap","panzoom_method":"La implementación usada no puede crear controles Panzoom","panzoombar_method":"La implementación usada no puede crear controles Panzoombar","scale_method":"La implementación usada no puede crear controles Scale","scaleline_method":"La implementación usada no puede crear controles ScaleLine","wmcselector_method":"La implementación usada no puede crear controles WMCSelector","geojson_method":"La implementación usada no puede crear objetos M.impl.format.GeoJSON","wkt_method":"La implementación usada no puede creat objetos M.impl.format.WKT","getfeaturesbylayer_method":"La implementación usada no posee el método getFeaturesByLayer","geojsonlayer_method":"La implementación usada no puede crear capas GeoJSON","no_param":"No se ha especificado ningun parámetro","no_name":"No ha especificado ningún nombre","kmllayer_method":"La implementación usada no puede crear capas KML","isvisible_method":"La implementación usada no posee el método isVisible","isqueryable_methd":"La implementación usada no posee el método isQueryable","visibility_param":"No ha especificado ningún parámetro de visibilidad","setvisible_method":"La implementación usada no posee el método setVisible","inrange_method":"La implementación usada no posee el método inRange","mapbox_method":"La implementación usada no puede crear capas Mapbox","osm_method":"La implementación usada no puede crear capas OSM","vectorlayer_method":"La implementación usada no puede crear capas Vector","wfslayer_method":"La implementación usada no puede crear capas WFS","wmclayer_method":"La implementación usada no puede crear capas WMC","select_method":"La implementación usada no posee el método select","unselect_method":"La implementación usada no posee el método unselect","constructor_impl":"La implementación usada no posee un constructor.","getlayers_method":"La implementación usada no posee el método getLayers.","getbaselayers_method":"La implementación usada no posee el método getBaseLayers.","addlayers_method":"La implementación usada no posee el método addLayers.","removelayers_method":"La implementación usada no posee el método removeLayers.","getwmc_method":"La implementación usada no posee el método getWMC.","addwmc_method":"La implementación usada no posee el método addWMC.","removewmc_method":"La implementación usada no posee el método removeWMC.","getkml_method":"La implementación usada no posee el método getKML.","addkml_method":"La implementación usada no posee el método addKML.","removekml_method":"La implementación usada no posee el método removeKML.","getwms_method":"La implementación usada no posee el método getWMS.","addwms_method":"La implementación usada no posee el método addWMS.","removewms_method":"La implementación usada no posee el método removeWMS.","getwfs_method":"La implementación usada no posee el método getWFS.","getgeojson_method":"La implementación usada no posee el método getGeoJSON.","addwfs_method":"La implementación usada no posee el método addWFS.","removewfs_method":"La implementación usada no posee el método removeWFS.","getwmts_method":"La implementación usada no posee el método getWMTS.","addwmts_method":"La implementación usada no posee el método addWMTS.","removewmts_method":"La implementación usada no posee el método removeWMTS.","getmbtiles_method":"La implementación usada no posee el método getMBtiles.","getcontrols_method":"La implementación usada no posee el método getControls.","addcontrols_method":"La implementación usada no posee el método addControls.","remove_control":"No ha especificado ningún control a eliminar.","removecontrol_method":"La implementación usada no posee el método removeControls.","setmaxextent_method":"La implementación usada no posee el método setMaxExtent.","getbbox_method":"La implementación usada no posee el método getBbox.","no_bbox":"No ha especificado ningún bbox.","setbbox_method":"La implementación usada no posee el método setBbox.","incorrect_bbox_format":"El formato del parámetro bbox no es el correcto.","getzoom_method":"La implementación usada no posee el método getZoom.","no_zoom":"No ha especificado ningún zoom.","setzoom_method":"La implementación usada no posee el método setZoom.","getcenter_method":"La implementación usada no posee el método getCenter.","setcenter_method":"La implementación usada no posee el método setCenter.","getresolutions_method":"La implementación usada no posee el método getResolutions.","no_resolutions":"No ha especificado ninguna resolución.","setresolutions_method":"La implementación usada no posee el método setResolutions.","getscale_method":"La implementación usada no posee el método getScale.","getprojection_method":"La implementación usada no posee el método getProjection.","no_projection":"No ha especificado ninguna proyección.","setprojection_method":"La implementación usada no posee el método setProjection.","no_plugins":"No ha especificado ningún plugin.","no_add_plugin_to_map":"El plugin no puede añadirse al mapa.","no_plugin_to_remove":"No ha especificado ningún plugin a eliminar.","destroy_method":"La implementación usada no posee el método destroy.","addlabel_method":"La implementación usada no posee el método addLabel.","no_point":"No ha especificado ningún punto.","remove_control_from_panel":"Debe eliminar los controles del panel previamente.","getcontainer_method":"La implementación usada no posee el método getContainer.","getmapimpl_method":"La implementación usada no posee el método getMapImpl.","removepopup_method":"La implementación usada no posee el método removePopup.","no_popup":"No ha especificado ningún popup.","invalid_popup":"El popup especificado no es válido.","no_maxextent":"No ha especificado ningún maxExtent","must_be_document":"doc.nodeType debe ser de tipo DOCUMENT","no_service_response":"No hubo respuesta del servicio","no_kml_response":"No hubo respuesta del KML","no_getfeature_response":"No hubo respuesta en la operación GetFeature","no_map":"No ha especificado ningun mapa","layerswitcher_method":"La implementación usada no puede crear controles LayerSwitcher","location_method":"La implementación usada no puede crear controles Location","wms_method":"La implementación usada no puede crear capas WMS","wmts_method":"La implementación usada no puede crear capas WMTS","no_impl":"No se ha especificado ninguna implementación","no_container":"No ha especificado ningún parámetro contenedor","no_id_container":"No existe ningún contenedor con el id especificado","no_center":"No ha especificado ningún parámetro center","no_attr_name":"No se ha especificado el nombre del atributo","no_empty":"El nombre de atributo no puede ser nulo. Especifique cadena o función","invalid_center_param":"El formato del parámetro center no es correcto","invalid_maxextent_param":"El formato del parámetro maxExtent no es correcto","invalid_resolutions_param":"El formato del parámetro resolutions no es correcto","invalid_zoom_param":"El formato del parámetro zoom no es correcto","min_gt_max":"No puede establecerse un radio mínimo mayor que el máximo.","max_lt_min":"No puede establecerse un radio máximo menor que el mínimo.","no_geojson":"No se ha especificado ningun GeoJSON","unsupported_lang":"Se ha establecido un idioma sin soporte","generate_image":"Se ha producido un error al generar la imagen","id_exists":"El ID indicado ya existe"}}')},function(t,e){t.exports='
    \n \n
    '},function(t,e){t.exports='
    \n {{#each features}}\n
    \n {{#each attributes}}\n \n \n \n \n \n
    {{key}}{{{value}}}
    \n {{/each}}\n
    \n
    \n {{/each}}\n
    '},function(t,e){t.exports='
    \n
    \n
    \n
    \n \n {{{title}}}\n
    \n
    {{{message}}}
    \n
    \n \n
    \n
    \n
    \n
    '},function(t,e){t.exports='
    \n \n
    '},function(t,e){t.exports='
    \n
    {{scale}} = 1 :
    \n
    \n
    '},function(t,e){t.exports='
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    '},function(t,e){t.exports='
    '},function(t,e){t.exports='
    '},function(t,e){t.exports='
    '},function(t,e){t.exports='
    '},function(t,e){t.exports='
    '},function(t,e){t.exports='
    \n {{{info}}}\n
    '},function(t,e){t.exports=" {{#each layers}}\n \n {{/each}}"},function(t,e){t.exports='
    \n \n
    '},function(t,e){t.exports='
    \n \n
    \n
    '},function(t,e){t.exports='
    \n {{{info}}}\n
    '},function(t,e){t.exports='
    \n

    {{{name}}}

    \n
    {{{desc}}}
    \n
    '},function(t,e,i){"use strict";t.exports=n;var r=i(89);function n(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}n.Varint=0,n.Fixed64=1,n.Bytes=2,n.Fixed32=5;var s=4294967296,o=1/s,a="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function l(t){return t.type===n.Bytes?t.readVarint()+t.pos:t.pos+1}function h(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function c(t,e,i){var r=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(r);for(var n=i.pos-1;n>=t;n--)i.buf[n+r]=i.buf[n]}function u(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function w(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}n.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,s=this.pos;this.type=7&r,t(n,e,this),this.pos===s&&this.skip(r)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=x(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=w(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=x(this.buf,this.pos)+x(this.buf,this.pos+4)*s;return this.pos+=8,t},readSFixed64:function(){var t=x(this.buf,this.pos)+w(this.buf,this.pos+4)*s;return this.pos+=8,t},readFloat:function(){var t=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,r=this.buf;return e=127&(i=r[this.pos++]),i<128?e:(e|=(127&(i=r[this.pos++]))<<7,i<128?e:(e|=(127&(i=r[this.pos++]))<<14,i<128?e:(e|=(127&(i=r[this.pos++]))<<21,i<128?e:function(t,e,i){var r,n,s=i.buf;if(n=s[i.pos++],r=(112&n)>>4,n<128)return h(t,r,e);if(n=s[i.pos++],r|=(127&n)<<3,n<128)return h(t,r,e);if(n=s[i.pos++],r|=(127&n)<<10,n<128)return h(t,r,e);if(n=s[i.pos++],r|=(127&n)<<17,n<128)return h(t,r,e);if(n=s[i.pos++],r|=(127&n)<<24,n<128)return h(t,r,e);if(n=s[i.pos++],r|=(1&n)<<31,n<128)return h(t,r,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&a?function(t,e,i){return a.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var r="",n=e;for(;n239?4:l>223?3:l>191?2:1;if(n+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[n+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[n+1],o=t[n+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[n+1],o=t[n+2],a=t[n+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),n+=c}return r}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==n.Bytes)return t.push(this.readVarint(e));var i=l(this);for(t=t||[];this.pos127;);else if(e===n.Bytes)this.pos=this.readVarint()+this.pos;else if(e===n.Fixed32)this.pos+=4;else{if(e!==n.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,r;t>=0?(i=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(r,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var r,n,s=0;s55295&&r<57344){if(!n){r>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):n=r;continue}if(r<56320){t[i++]=239,t[i++]=191,t[i++]=189,n=r;continue}r=n-55296<<10|r-56320|65536,n=null}else n&&(t[i++]=239,t[i++]=191,t[i++]=189,n=null);r<128?t[i++]=r:(r<2048?t[i++]=r>>6|192:(r<65536?t[i++]=r>>12|224:(t[i++]=r>>18|240,t[i++]=r>>12&63|128),t[i++]=r>>6&63|128),t[i++]=63&r|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&c(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),r.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),r.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&c(i,r,this),this.pos=i-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,e,i){this.writeTag(t,n.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,u,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,d,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,f,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,g,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,m,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,_,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,y,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,v,e)},writeBytesField:function(t,e){this.writeTag(t,n.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,n.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,n.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,n.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,n.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,n.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,n.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},function(t,e,i){"use strict";(function(t){function r(){const e='const e="GENERATE_POLYGON_BUFFERS",t="GENERATE_POINT_BUFFERS",n="GENERATE_LINE_STRING_BUFFERS",r={1:"The view center is not defined",2:"The view resolution is not defined",3:"The view rotation is not defined",4:"`image` and `src` cannot be provided at the same time",5:"`imgSize` must be set when `image` is provided",7:"`format` must be set when `url` is set",8:"Unknown `serverType` configured",9:"`url` must be configured or set using `#setUrl()`",10:"The default `geometryFunction` can only handle `Point` geometries",11:"`options.featureTypes` must be an Array",12:"`options.geometryName` must also be provided when `options.bbox` is set",13:"Invalid corner",14:"Invalid color",15:"Tried to get a value for a key that does not exist in the cache",16:"Tried to set a value for a key that is used already",17:"`resolutions` must be sorted in descending order",18:"Either `origin` or `origins` must be configured, never both",19:"Number of `tileSizes` and `resolutions` must be equal",20:"Number of `origins` and `resolutions` must be equal",22:"Either `tileSize` or `tileSizes` must be configured, never both",24:"Invalid extent or geometry provided as `geometry`",25:"Cannot fit empty extent provided as `geometry`",26:"Features must have an id set",27:"Features must have an id set",28:\'`renderMode` must be `"hybrid"` or `"vector"`\',30:"The passed `feature` was already added to the source",31:"Tried to enqueue an `element` that was already added to the queue",32:"Transformation matrix cannot be inverted",33:"Invalid units",34:"Invalid geometry layout",36:"Unknown SRS type",37:"Unknown geometry type found",38:"`styleMapValue` has an unknown type",39:"Unknown geometry type",40:"Expected `feature` to have a geometry",41:"Expected an `ol/style/Style` or an array of `ol/style/Style.js`",42:"Question unknown, the answer is 42",43:"Expected `layers` to be an array or a `Collection`",47:"Expected `controls` to be an array or an `ol/Collection`",48:"Expected `interactions` to be an array or an `ol/Collection`",49:"Expected `overlays` to be an array or an `ol/Collection`",50:"`options.featureTypes` should be an Array",51:"Either `url` or `tileJSON` options must be provided",52:"Unknown `serverType` configured",53:"Unknown `tierSizeCalculation` configured",55:"The {-y} placeholder requires a tile grid with extent",56:"mapBrowserEvent must originate from a pointer event",57:"At least 2 conditions are required",59:"Invalid command found in the PBF",60:"Missing or invalid `size`",61:"Cannot determine IIIF Image API version from provided image information JSON",62:"A `WebGLArrayBuffer` must either be of type `ELEMENT_ARRAY_BUFFER` or `ARRAY_BUFFER`",64:"Layer opacity must be a number",66:"`forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. This is done by providing adequate shaders using the `hitVertexShader` and `hitFragmentShader` properties of `WebGLPointsLayerRenderer`",67:"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both",68:"A VectorTile source can only be rendered if it has a projection compatible with the view projection",69:"`width` or `height` cannot be provided together with `scale`"};class o extends Error{constructor(e){const t=r[e];super(t),this.code=e,this.name="AssertionError",this.message=t}}var i=o;function a(e,t){const n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function s(e,t){const n=(r=t)[0]*r[3]-r[1]*r[2];var r;!function(e,t){if(!e)throw new i(t)}(0!==n,32);const o=t[0],a=t[1],s=t[2],u=t[3],f=t[4],x=t[5];return e[0]=u/n,e[1]=-a/n,e[2]=-s/n,e[3]=o/n,e[4]=(s*x-u*f)/n,e[5]=-(o*x-a*f)/n,e}new Array(6);var u={};function f(e,t,n){n=n||2;var r,o,i,a,s,u,f,l=t&&t.length,c=l?t[0]*n:e.length,v=x(e,0,c,n,!0),d=[];if(!v||v.next===v.prev)return d;if(l&&(v=function(e,t,n,r){var o,i,a,s=[];for(o=0,i=t.length;o80*n){r=i=e[0],o=a=e[1];for(var y=n;yi&&(i=s),u>a&&(a=u);f=0!==(f=Math.max(i-r,a-o))?32767/f:0}return h(v,d,n,r,o,f,0),d}function x(e,t,n,r,o){var i,a;if(o===B(e,t,n,r)>0)for(i=t;i=t;i-=r)a=k(i,e[i],e[i+1],a);return a&&M(a,a.next)&&(z(a),a=a.next),a}function l(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!M(r,r.next)&&0!==Z(r.prev,r,r.next))r=r.next;else{if(z(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function h(e,t,n,r,o,i,a){if(e){!a&&i&&function(e,t,n,r){var o=e;do{0===o.z&&(o.z=m(o.x,o.y,t,n,r)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next}while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,function(e){var t,n,r,o,i,a,s,u,f=1;do{for(n=e,e=null,i=null,a=0;n;){for(a++,r=n,s=0,t=0;t0||u>0&&r;)0!==s&&(0===u||!r||n.z<=r.z)?(o=n,n=n.nextZ,s--):(o=r,r=r.nextZ,u--),i?i.nextZ=o:e=o,o.prevZ=i,i=o;n=r}i.nextZ=null,f*=2}while(a>1)}(o)}(e,r,o,i);for(var s,u,f=e;e.prev!==e.next;)if(s=e.prev,u=e.next,i?v(e,r,o,i):c(e))t.push(s.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),z(e),e=u.next,f=u.next;else if((e=u)===f){a?1===a?h(e=d(l(e),t,n),t,n,r,o,i,2):2===a&&y(e,t,n,r,o,i):h(l(e),t,n,r,o,i,1);break}}}function c(e){var t=e.prev,n=e,r=e.next;if(Z(t,n,r)>=0)return!1;for(var o=t.x,i=n.x,a=r.x,s=t.y,u=n.y,f=r.y,x=oi?o>a?o:a:i>a?i:a,c=s>u?s>f?s:f:u>f?u:f,v=r.next;v!==t;){if(v.x>=x&&v.x<=h&&v.y>=l&&v.y<=c&&A(o,s,i,u,a,f,v.x,v.y)&&Z(v.prev,v,v.next)>=0)return!1;v=v.next}return!0}function v(e,t,n,r){var o=e.prev,i=e,a=e.next;if(Z(o,i,a)>=0)return!1;for(var s=o.x,u=i.x,f=a.x,x=o.y,l=i.y,h=a.y,c=su?s>f?s:f:u>f?u:f,y=x>l?x>h?x:h:l>h?l:h,p=m(c,v,t,n,r),b=m(d,y,t,n,r),g=e.prevZ,w=e.nextZ;g&&g.z>=p&&w&&w.z<=b;){if(g.x>=c&&g.x<=d&&g.y>=v&&g.y<=y&&g!==o&&g!==a&&A(s,x,u,l,f,h,g.x,g.y)&&Z(g.prev,g,g.next)>=0)return!1;if(g=g.prevZ,w.x>=c&&w.x<=d&&w.y>=v&&w.y<=y&&w!==o&&w!==a&&A(s,x,u,l,f,h,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;g&&g.z>=p;){if(g.x>=c&&g.x<=d&&g.y>=v&&g.y<=y&&g!==o&&g!==a&&A(s,x,u,l,f,h,g.x,g.y)&&Z(g.prev,g,g.next)>=0)return!1;g=g.prevZ}for(;w&&w.z<=b;){if(w.x>=c&&w.x<=d&&w.y>=v&&w.y<=y&&w!==o&&w!==a&&A(s,x,u,l,f,h,w.x,w.y)&&Z(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function d(e,t,n){var r=e;do{var o=r.prev,i=r.next.next;!M(o,i)&&F(o,r,r.next,i)&&S(o,i)&&S(i,o)&&(t.push(o.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),z(r),z(r.next),r=e=i),r=r.next}while(r!==e);return l(r)}function y(e,t,n,r,o,i){var a=e;do{for(var s=a.next.next;s!==a.prev;){if(a.i!==s.i&&E(a,s)){var u=U(a,s);return a=l(a,a.next),u=l(u,u.next),h(a,t,n,r,o,i,0),void h(u,t,n,r,o,i,0)}s=s.next}a=a.next}while(a!==e)}function p(e,t){return e.x-t.x}function b(e,t){var n=function(e,t){var n,r=t,o=e.x,i=e.y,a=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var s=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=o&&s>a&&(a=s,n=r.x=r.x&&r.x>=x&&o!==r.x&&A(in.x||r.x===n.x&&g(n,r)))&&(n=r,h=u)),r=r.next}while(r!==f);return n}(e,t);if(!n)return t;var r=U(n,e);return l(r,r.next),l(n,n.next)}function g(e,t){return Z(e.prev,e,t.prev)<0&&Z(t.next,e,e.next)<0}function m(e,t,n,r,o){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*o|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function w(e){var t=e,n=e;do{(t.x=(e-a)*(i-s)&&(e-a)*(r-s)>=(n-a)*(t-s)&&(n-a)*(i-s)>=(o-a)*(r-s)}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&F(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(S(e,t)&&S(t,e)&&function(e,t){var n=e,r=!1,o=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&o<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(Z(e.prev,e,t.prev)||Z(e,t.prev,t))||M(e,t)&&Z(e.prev,e,e.next)>0&&Z(t.prev,t,t.next)>0)}function Z(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function M(e,t){return e.x===t.x&&e.y===t.y}function F(e,t,n,r){var o=I(Z(e,t,n)),i=I(Z(e,t,r)),a=I(Z(n,r,e)),s=I(Z(n,r,t));return o!==i&&a!==s||(!(0!==o||!T(e,n,t))||(!(0!==i||!T(e,r,t))||(!(0!==a||!T(n,e,r))||!(0!==s||!T(n,t,r)))))}function T(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function I(e){return e>0?1:e<0?-1:0}function S(e,t){return Z(e.prev,e,e.next)<0?Z(e,t,e.next)>=0&&Z(e,e.prev,t)>=0:Z(e,t,e.prev)<0||Z(e,e.next,t)<0}function U(e,t){var n=new R(e.i,e.x,e.y),r=new R(t.i,t.x,t.y),o=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function k(e,t,n,r){var o=new R(e,t,n);return r?(o.next=r.next,o.prev=r,r.next.prev=o,r.next=o):(o.prev=o,o.next=o),o}function z(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function R(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function B(e,t,n,r){for(var o=0,i=t,a=n-r;i0&&(r+=e[o-1].length,n.holes.push(r))}return n};const N=[],P={vertexPosition:0,indexPosition:0};function C(e,t,n,r,o){e[t+0]=n,e[t+1]=r,e[t+2]=o}function _(e,t,n,r,o,i){const a=3+o,s=e[t+0],u=e[t+1],f=N;f.length=o;for(let n=0;n0?u:2*Math.PI-u}const g=null!==o;let m=0,w=0;if(null!==r){m=b(d,y,a(x,[...[e[r],e[r+1]]]))}if(g){w=b(y,d,a(x,[...[e[o],e[o+1]]]))}i.push(c[0],c[1],v[0],v[1],p(0,m,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(1,m,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(2,m,w)),i.push(...u),i.push(c[0],c[1],v[0],v[1],p(3,m,w)),i.push(...u),s.push(h,h+1,h+2,h+1,h+3,h+2)}function L(e,t,n,r,o){const i=2+o;let a=t;const s=e.slice(a,a+o);a+=o;const f=e[a++];let x=0;const l=new Array(f-1);for(let t=0;t{const o=r.data;switch(o.type){case t:{const e=3,t=2,n=o.customAttributesCount,r=t+n,i=new Float32Array(o.renderInstructions),a=i.length/r,s=4*a*(n+e),u=new Uint32Array(6*a),f=new Float32Array(s);let x;for(let e=0;e0?a+(n-1)*r:null,n80*i){r=a=t[0],s=l=t[1];for(var v=i;va&&(a=h),c>l&&(l=c);g=0!==(g=Math.max(a-r,l-s))?32767/g:0}return o(_,y,i,r,s,g,0),y}function n(t,e,i,r,n){var s,o;if(n===L(t,e,i,r)>0)for(s=e;s=e;s-=r)o=I(s,t[s],t[s+1],o);return o&&v(o,o.next)&&(C(o),o=o.next),o}function s(t,e){if(!t)return t;e||(e=t);var i,r=t;do{if(i=!1,r.steiner||!v(r,r.next)&&0!==y(r.prev,r,r.next))r=r.next;else{if(C(r),(r=e=r.prev)===r.next)break;i=!0}}while(i||r!==e);return e}function o(t,e,i,r,n,u,d){if(t){!d&&u&&function(t,e,i,r){var n=t;do{0===n.z&&(n.z=p(n.x,n.y,e,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==t);n.prevZ.nextZ=null,n.prevZ=null,function(t){var e,i,r,n,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,r=i,a=0,e=0;e0||l>0&&r;)0!==a&&(0===l||!r||i.z<=r.z)?(n=i,i=i.nextZ,a--):(n=r,r=r.nextZ,l--),s?s.nextZ=n:t=n,n.prevZ=s,s=n;i=r}s.nextZ=null,h*=2}while(o>1)}(n)}(t,r,n,u);for(var g,f,m=t;t.prev!==t.next;)if(g=t.prev,f=t.next,u?l(t,r,n,u):a(t))e.push(g.i/i|0),e.push(t.i/i|0),e.push(f.i/i|0),C(t),t=f.next,m=f.next;else if((t=f)===m){d?1===d?o(t=h(s(t),e,i),e,i,r,n,u,2):2===d&&c(t,e,i,r,n,u):o(s(t),e,i,r,n,u,1);break}}}function a(t){var e=t.prev,i=t,r=t.next;if(y(e,i,r)>=0)return!1;for(var n=e.x,s=i.x,o=r.x,a=e.y,l=i.y,h=r.y,c=ns?n>o?n:o:s>o?s:o,g=a>l?a>h?a:h:l>h?l:h,p=r.next;p!==e;){if(p.x>=c&&p.x<=d&&p.y>=u&&p.y<=g&&m(n,a,s,l,o,h,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function l(t,e,i,r){var n=t.prev,s=t,o=t.next;if(y(n,s,o)>=0)return!1;for(var a=n.x,l=s.x,h=o.x,c=n.y,u=s.y,d=o.y,g=al?a>h?a:h:l>h?l:h,v=c>u?c>d?c:d:u>d?u:d,x=p(g,f,e,i,r),b=p(_,v,e,i,r),w=t.prevZ,E=t.nextZ;w&&w.z>=x&&E&&E.z<=b;){if(w.x>=g&&w.x<=_&&w.y>=f&&w.y<=v&&w!==n&&w!==o&&m(a,c,l,u,h,d,w.x,w.y)&&y(w.prev,w,w.next)>=0)return!1;if(w=w.prevZ,E.x>=g&&E.x<=_&&E.y>=f&&E.y<=v&&E!==n&&E!==o&&m(a,c,l,u,h,d,E.x,E.y)&&y(E.prev,E,E.next)>=0)return!1;E=E.nextZ}for(;w&&w.z>=x;){if(w.x>=g&&w.x<=_&&w.y>=f&&w.y<=v&&w!==n&&w!==o&&m(a,c,l,u,h,d,w.x,w.y)&&y(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;E&&E.z<=b;){if(E.x>=g&&E.x<=_&&E.y>=f&&E.y<=v&&E!==n&&E!==o&&m(a,c,l,u,h,d,E.x,E.y)&&y(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function h(t,e,i){var r=t;do{var n=r.prev,o=r.next.next;!v(n,o)&&x(n,r,r.next,o)&&E(n,o)&&E(o,n)&&(e.push(n.i/i|0),e.push(r.i/i|0),e.push(o.i/i|0),C(r),C(r.next),r=t=o),r=r.next}while(r!==t);return s(r)}function c(t,e,i,r,n,a){var l=t;do{for(var h=l.next.next;h!==l.prev;){if(l.i!==h.i&&_(l,h)){var c=S(l,h);return l=s(l,l.next),c=s(c,c.next),o(l,e,i,r,n,a,0),void o(c,e,i,r,n,a,0)}h=h.next}l=l.next}while(l!==t)}function u(t,e){return t.x-e.x}function d(t,e){var i=function(t,e){var i,r=e,n=t.x,s=t.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=n&&a>o&&(o=a,i=r.x=r.x&&r.x>=c&&n!==r.x&&m(si.x||r.x===i.x&&g(i,r)))&&(i=r,d=l)),r=r.next}while(r!==h);return i}(t,e);if(!i)return e;var r=S(i,t);return s(r,r.next),s(i,i.next)}function g(t,e){return y(t.prev,t,e.prev)<0&&y(e.next,t,t.next)<0}function p(t,e,i,r,n){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*n|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*n|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function f(t){var e=t,i=t;do{(e.x=(t-o)*(s-a)&&(t-o)*(r-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(n-o)*(r-a)}function _(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&x(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(E(t,e)&&E(e,t)&&function(t,e){var i=t,r=!1,n=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==t);return r}(t,e)&&(y(t.prev,t,e.prev)||y(t,e.prev,e))||v(t,e)&&y(t.prev,t,t.next)>0&&y(e.prev,e,e.next)>0)}function y(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function v(t,e){return t.x===e.x&&t.y===e.y}function x(t,e,i,r){var n=w(y(t,e,i)),s=w(y(t,e,r)),o=w(y(i,r,t)),a=w(y(i,r,e));return n!==s&&o!==a||(!(0!==n||!b(t,i,e))||(!(0!==s||!b(t,r,e))||(!(0!==o||!b(i,t,r))||!(0!==a||!b(i,e,r)))))}function b(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function w(t){return t>0?1:t<0?-1:0}function E(t,e){return y(t.prev,t,t.next)<0?y(t,e,t.next)>=0&&y(t,t.prev,e)>=0:y(t,e,t.prev)<0||y(t,t.next,e)<0}function S(t,e){var i=new T(t.i,t.x,t.y),r=new T(e.i,e.x,e.y),n=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function I(t,e,i,r){var n=new T(t,e,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function C(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function T(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function L(t,e,i,r){for(var n=0,s=e,o=i-r;s0&&(r+=t[n-1].length,i.holes.push(r))}return i}},function(t,e,i){const r=i(157);function n(t,e,i){const n=[],s=i&&i.debug||!1,o=!i||"boolean"!=typeof i.nested||i.nested;let a,l=i&&i.startIndex||0;for(;a=r(t,e,{debug:s,startIndex:l});)l=o?a.start+1+e.length:a.end,n.push(a);return s&&console.log("findTagsByName found",n.length,"tags"),n}t.exports=n,t.exports.default=n},function(t,e,i){"use strict";(function(t){i.d(e,"a",(function(){return d}));var r=i(117),n=i.n(r),s=i(118),o=i.n(s),a=i(119),l=i.n(a),h=i(62),c=i(20);class u extends h.b{constructor(t,e){super(),this.response=t,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(t){return this.response.headers[t]}async getData(){return await this.dataPromise}}class d extends h.a{constructor(t){super(t),this.parsedUrl=l.a.parse(this.url),this.httpApi="http:"===this.parsedUrl.protocol?n.a:o.a}constructRequest(e,i){return new Promise((r,n)=>{const s=this.httpApi.get({...this.parsedUrl,headers:e},e=>{const i=new Promise(i=>{const r=[];e.on("data",t=>{r.push(t)}),e.on("end",()=>{const e=t.concat(r).buffer;i(e)}),e.on("error",n)});r(new u(e,i))});s.on("error",n),i&&(i.aborted&&s.destroy(new c.a("Request aborted")),i.addEventListener("abort",()=>s.destroy(new c.a("Request aborted"))))})}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}}).call(this,i(76).Buffer)},function(t,e){},function(t,e){},function(t,e){},function(t,e,i){"use strict";(function(t){i.d(e,"a",(function(){return a}));var r=i(86),n=i.n(r),s=i(56);class o extends s.a{constructor(t){super(),this.path=t,this.openRequest=function(t,e,i){return new Promise((r,s)=>{n.a.open(t,e,i,(t,e)=>{t?s(t):r(e)})})}(t,"r")}async fetchSlice(e){const i=await this.openRequest,{buffer:r}=await function(...t){return new Promise((e,i)=>{n.a.read(...t,(t,r,n)=>{t?i(t):e({bytesRead:r,buffer:n})})})}(i,t.alloc(e.length),0,e.length,e.offset);return r.buffer}async close(){const t=await this.openRequest;await function(t){return new Promise((e,i)=>{n.a.close(t,t=>{t?i(t):e()})})}(t)}}function a(t){return new o(t)}}).call(this,i(76).Buffer)},function(t,e,i){var r,n,s,o,a,l,h,c,u,d,g,p,f; -/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */n={defaultNoDataValue:-34027999387901484e22,decode:function(t,e){var i=(e=e||{}).encodedMaskData||null===e.encodedMaskData,r=l(t,e.inputOffset||0,i),h=null!==e.noDataValue?e.noDataValue:n.defaultNoDataValue,c=s(r,e.pixelType||Float32Array,e.encodedMaskData,h,e.returnMask),u={width:r.width,height:r.height,pixelData:c.resultPixels,minValue:c.minValue,maxValue:r.pixels.maxValue,noDataValue:h};return c.resultMask&&(u.maskData=c.resultMask),e.returnEncodedMask&&r.mask&&(u.encodedMaskData=r.mask.bitset?r.mask.bitset:null),e.returnFileInfo&&(u.fileInfo=o(r),e.computeUsedBitDepths&&(u.fileInfo.bitDepths=a(r))),u}},s=function(t,e,i,r,n){var s,o,a,l=0,c=t.pixels.numBlocksX,u=t.pixels.numBlocksY,d=Math.floor(t.width/c),g=Math.floor(t.height/u),p=2*t.maxZError,f=Number.MAX_VALUE;i=i||(t.mask?t.mask.bitset:null),o=new e(t.width*t.height),n&&i&&(a=new Uint8Array(t.width*t.height));for(var m,_,y=new Float32Array(d*g),v=0;v<=u;v++){var x=v!==u?g:t.height%u;if(0!==x)for(var b=0;b<=c;b++){var w=b!==c?d:t.width%c;if(0!==w){var E,S,I,C,T=v*t.width*g+b*d,L=t.width-w,M=t.pixels.blocks[l];if(M.encoding<2?(0===M.encoding?E=M.rawData:(h(M.stuffedData,M.bitsPerPixel,M.numValidPixels,M.offset,p,y,t.pixels.maxValue),E=y),S=0):I=2===M.encoding?0:M.offset,i)for(_=0;_>3],C<<=7&T),m=0;m>3]),128&C?(a&&(a[T]=1),f=f>(s=M.encoding<2?E[S++]:I)?s:f,o[T++]=s):(a&&(a[T]=0),o[T++]=r),C<<=1;T+=L}else if(M.encoding<2)for(_=0;_(s=E[S++])?s:f,o[T++]=s;T+=L}else for(f=f>I?I:f,_=0;_0){var o=new Uint8Array(Math.ceil(r.width*r.height/8)),a=(s=new DataView(t,e,r.mask.numBytes)).getInt16(0,!0),l=2,h=0;do{if(a>0)for(;a--;)o[h++]=s.getUint8(l++);else{var c=s.getUint8(l++);for(a=-a;a--;)o[h++]=c}a=s.getInt16(l,!0),l+=2}while(l0?1:0),p=d+(r.height%d>0?1:0);r.pixels.blocks=new Array(g*p);for(var f=0,m=0;m3)throw"Invalid block encoding ("+x.encoding+")";if(2!==x.encoding){if(0!==b&&2!==b){if(b>>=6,x.offsetType=b,2===b)x.offset=s.getInt8(1),y++;else if(1===b)x.offset=s.getInt16(1,!0),y+=2;else{if(0!==b)throw"Invalid block offset type";x.offset=s.getFloat32(1,!0),y+=4}if(1===x.encoding)if(b=s.getUint8(y),y++,x.bitsPerPixel=63&b,b>>=6,x.numValidPixelsType=b,2===b)x.numValidPixels=s.getUint8(y),y++;else if(1===b)x.numValidPixels=s.getUint16(y,!0),y+=2;else{if(0!==b)throw"Invalid valid pixel count type";x.numValidPixels=s.getUint32(y,!0),y+=4}}var w;if(e+=y,3!==x.encoding)if(0===x.encoding){var E=(r.pixels.numBytes-1)/4;if(E!==Math.floor(E))throw"uncompressed block has invalid length";w=new ArrayBuffer(4*E),new Uint8Array(w).set(new Uint8Array(t,e,4*E));var S=new Float32Array(w);x.rawData=S,e+=4*E}else if(1===x.encoding){var I=Math.ceil(x.numValidPixels*x.bitsPerPixel/8),C=Math.ceil(I/4);w=new ArrayBuffer(4*C),new Uint8Array(w).set(new Uint8Array(t,e,I)),x.stuffedData=new Uint32Array(w),e+=I}}else e++}return r.eofOffset=e,r},h=function(t,e,i,r,n,s,o){var a,l,h,c=(1<=e)l=h>>>d-e&c,d-=e;else{var f=e-d;l=(h&c)<>>(d=32-f)}s[a]=l=i?(h=c>>>f-i&g,f-=i):(h=(c&g)<<(u=i-f)&g,h+=(c=t[p++])>>>(f=32-u)),e[l]=n[h];else for(d=Math.ceil((a-s)/o),l=0;l=i?(h=c>>>f-i&g,f-=i):(h=(c&g)<<(u=i-f)&g,h+=(c=t[p++])>>>(f=32-u)),e[l]=h=e?(d=o>>>u-e&a,u-=e):(d=(o&a)<<(c=e-u)&a,d+=(o=t[l++])>>>(u=32-c)),g[h]=d=i?(h=c>>>f&d,p-=i,f+=i):(h=c>>>f&d,p=32-(u=i-p),h|=((c=t[g++])&(1<=i?(h=c>>>f&d,p-=i,f+=i):(h=c>>>f&d,p=32-(u=i-p),h|=((c=t[g++])&(1<=e?(d=o>>>g&a,u-=e,g+=e):(d=o>>>g&a,u=32-(c=e-u),d|=((o=t[l++])&(1<=i?(s=o>>>c-i&l,c-=i):(s=(o&l)<<(a=i-c)&l,s+=(o=t[h++])>>>(c=32-a)),e[n]=s;return e},s=function(t,e,i,r){var n,s,o,a,l=(1<=i?(s=o>>>u&l,c-=i,u+=i):(s=o>>>u&l,c=32-(a=i-c),s|=((o=t[h++])&(1<=359?359:n;n-=o;do{e+=t[s++]<<8,i+=e+=t[s++]}while(--o);e=(65535&e)+(e>>>16),i=(65535&i)+(i>>>16)}return 1&r&&(i+=e+=t[s]<<8),((i=(65535&i)+(i>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(t,e){var i=e.ptr,r=new Uint8Array(t,i,6),n={};if(n.fileIdentifierString=String.fromCharCode.apply(null,r),0!==n.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+n.fileIdentifierString;i+=6;var s,o=new DataView(t,i,8),a=o.getInt32(0,!0);if(n.fileVersion=a,i+=4,a>=3&&(n.checksum=o.getUint32(4,!0),i+=4),o=new DataView(t,i,12),n.height=o.getUint32(0,!0),n.width=o.getUint32(4,!0),i+=8,a>=4?(n.numDims=o.getUint32(8,!0),i+=4):n.numDims=1,o=new DataView(t,i,40),n.numValidPixel=o.getUint32(0,!0),n.microBlockSize=o.getInt32(4,!0),n.blobSize=o.getInt32(8,!0),n.imageType=o.getInt32(12,!0),n.maxZError=o.getFloat64(16,!0),n.zMin=o.getFloat64(24,!0),n.zMax=o.getFloat64(32,!0),i+=40,e.headerInfo=n,e.ptr=i,a>=3&&(s=a>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(t,i-s,n.blobSize-14))!==n.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(t,e){var i=e.headerInfo,r=this.getDataTypeArray(i.imageType),n=i.numDims*this.getDataTypeSize(i.imageType),s=this.readSubArray(t,e.ptr,r,n),o=this.readSubArray(t,e.ptr+n,r,n);e.ptr+=2*n;var a,l=!0;for(a=0;a0){i=new Uint8Array(Math.ceil(o/8));var c=(l=new DataView(t,n,h.numBytes)).getInt16(0,!0),u=2,d=0,g=0;do{if(c>0)for(;c--;)i[d++]=l.getUint8(u++);else for(g=l.getUint8(u++),c=-c;c--;)i[d++]=g;c=l.getInt16(u,!0),u+=2}while(u>3],p<<=7&f):p=i[f>>3],128&p&&(r[f]=1);e.pixels.resultMask=r,h.bitset=i,n+=h.numBytes}return e.ptr=n,e.mask=h,!0},readDataOneSweep:function(t,e,i,r){var n,s=e.ptr,a=e.headerInfo,l=a.numDims,h=a.width*a.height,c=a.imageType,u=a.numValidPixel*o.getDataTypeSize(c)*l,d=e.pixels.resultMask;if(i===Uint8Array)n=new Uint8Array(t,s,u);else{var g=new ArrayBuffer(u);new Uint8Array(g).set(new Uint8Array(t,s,u)),n=new i(g)}if(n.length===h*l)e.pixels.resultPixels=r?o.swapDimensionOrder(n,h,l,i,!0):n;else{e.pixels.resultPixels=new i(h*l);var p=0,f=0,m=0,_=0;if(l>1){if(r){for(f=0;f=l)return!1;var h=new Uint32Array(l-s);o.decodeBits(t,e,h);var c,u,d,g,p=[];for(c=s;c0&&(p[u].second=y<>>32-g,32-x>=g?32===(x+=g)&&(x=0,y=v[++b]):(x+=g-32,y=v[++b],p[u].second|=y>>>32-x));var w=0,E=0,S=new a;for(c=0;c=i?i:w;var I,C,T,L,M,O=[];for(c=s;c0)if(I=[g,u],g<=E)for(C=p[u].second<=0;L--)C>>>L&1?(M.right||(M.right=new a),M=M.right):(M.left||(M.left=new a),M=M.left),0!==L||M.val||(M.val=I[1]);return{decodeLut:O,numBitsLUTQick:E,numBitsLUT:w,tree:S,stuffedData:v,srcPtr:b,bitPos:x}},readHuffman:function(t,e,i,r){var n,s,a,l,h,c,u,d,g,p=e.headerInfo.numDims,f=e.headerInfo.height,m=e.headerInfo.width,_=m*f,y=this.readHuffmanTree(t,e),v=y.decodeLut,x=y.tree,b=y.stuffedData,w=y.srcPtr,E=y.bitPos,S=y.numBitsLUTQick,I=y.numBitsLUT,C=0===e.headerInfo.imageType?128:0,T=e.pixels.resultMask,L=0;E>0&&(w++,E=0);var M,O=b[w],R=1===e.encodeMode,P=new i(_*p),N=P;if(p<2||R){for(M=0;M1&&(N=new i(P.buffer,_*M,_),L=0),e.headerInfo.numValidPixel===m*f)for(d=0,c=0;c>>32-S,32-E>>64-E-S),v[h])s=v[h][1],E+=v[h][0];else for(h=l=O<>>32-I,32-E>>64-E-I),n=x,g=0;g>>I-g-1&1?n.right:n.left).left&&!n.right){s=n.val,E=E+g+1;break}E>=32&&(E-=32,O=b[++w]),a=s-C,R?(a+=u>0?L:c>0?N[d-m]:L,a&=255,N[d]=a,L=a):N[d]=a}else for(d=0,c=0;c>>32-S,32-E>>64-E-S),v[h])s=v[h][1],E+=v[h][0];else for(h=l=O<>>32-I,32-E>>64-E-I),n=x,g=0;g>>I-g-1&1?n.right:n.left).left&&!n.right){s=n.val,E=E+g+1;break}E>=32&&(E-=32,O=b[++w]),a=s-C,R?(u>0&&T[d-1]?a+=L:c>0&&T[d-m]?a+=N[d-m]:a+=L,a&=255,N[d]=a,L=a):N[d]=a}}else for(d=0,c=0;c>>32-S,32-E>>64-E-S),v[h])s=v[h][1],E+=v[h][0];else for(h=l=O<>>32-I,32-E>>64-E-I),n=x,g=0;g>>I-g-1&1?n.right:n.left).left&&!n.right){s=n.val,E=E+g+1;break}E>=32&&(E-=32,O=b[++w]),a=s-C,N[d]=a}e.ptr=e.ptr+4*(w+1)+(E>0?4:0),e.pixels.resultPixels=P,p>1&&!r&&(e.pixels.resultPixels=o.swapDimensionOrder(P,_,p,i))},decodeBits:function(o,a,l,h,c){var u=a.headerInfo,d=u.fileVersion,g=0,p=o.byteLength-a.ptr>=5?5:o.byteLength-a.ptr,f=new DataView(o,a.ptr,p),m=f.getUint8(0);g++;var _=m>>6,y=0===_?4:3-_,v=(32&m)>0,x=31&m,b=0;if(1===y)b=f.getUint8(g),g++;else if(2===y)b=f.getUint16(g,!0),g+=2;else{if(4!==y)throw"Invalid valid pixel count type";b=f.getUint32(g,!0),g+=4}var w,E,S,I,C,T,L,M,O,R=2*u.maxZError,P=u.numDims>1?u.maxValues[c]:u.zMax;if(v){for(a.counter.lut++,M=f.getUint8(g),g++,I=Math.ceil((M-1)*x/8),C=Math.ceil(I/4),E=new ArrayBuffer(4*C),S=new Uint8Array(E),a.ptr+=g,S.set(new Uint8Array(o,a.ptr,I)),L=new Uint32Array(E),a.ptr+=I,O=0;M-1>>>O;)O++;I=Math.ceil(b*O/8),C=Math.ceil(I/4),E=new ArrayBuffer(4*C),(S=new Uint8Array(E)).set(new Uint8Array(o,a.ptr,I)),w=new Uint32Array(E),a.ptr+=I,T=d>=3?r(L,x,M-1,h,R,P):e(L,x,M-1,h,R,P),d>=3?i(w,l,O,b,T):t(w,l,O,b,T)}else a.counter.bitstuffer++,O=x,a.ptr+=g,O>0&&(I=Math.ceil(b*O/8),C=Math.ceil(I/4),E=new ArrayBuffer(4*C),(S=new Uint8Array(E)).set(new Uint8Array(o,a.ptr,I)),w=new Uint32Array(E),a.ptr+=I,d>=3?null==h?s(w,l,O,b):i(w,l,O,b,!1,h,R,P):null==h?n(w,l,O,b):t(w,l,O,b,!1,h,R,P))},readTiles:function(t,e,i,r){var n=e.headerInfo,s=n.width,a=n.height,l=s*a,h=n.microBlockSize,c=n.imageType,u=o.getDataTypeSize(c),d=Math.ceil(s/h),g=Math.ceil(a/h);e.pixels.numBlocksY=g,e.pixels.numBlocksX=d,e.pixels.ptr=0;var p,f,m,_,y,v,x,b,w,E,S=0,I=0,C=0,T=0,L=0,M=0,O=0,R=0,P=0,N=0,A=0,F=0,k=0,D=0,j=0,G=new i(h*h),z=a%h||h,B=s%h||h,U=n.numDims,V=e.pixels.resultMask,q=e.pixels.resultPixels,Y=n.fileVersion>=5?14:15,W=n.zMax;for(C=0;C1?(E=q,N=C*s*h+T*h,q=new i(e.pixels.resultPixels.buffer,l*b*u,l),W=n.maxValues[b]):E=null,O=t.byteLength-e.ptr,f={},j=0,R=(p=new DataView(t,e.ptr,Math.min(10,O))).getUint8(0),j++,w=n.fileVersion>=5?4&R:0,P=R>>6&255,(R>>2&Y)!=(T*h>>3&Y))throw"integrity issue";if(w&&0===b)throw"integrity issue";if((y=3&R)>3)throw e.ptr+=j,"Invalid block encoding ("+y+")";if(2!==y)if(0===y){if(w)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=j,F=(F=L*M*u)<(k=t.byteLength-e.ptr)?F:k,m=new ArrayBuffer(F%u==0?F:F+u-F%u),new Uint8Array(m).set(new Uint8Array(t,e.ptr,F)),_=new i(m),D=0,V)for(S=0;S1&&!r&&(e.pixels.resultPixels=o.swapDimensionOrder(e.pixels.resultPixels,l,U,i))},formatFileInfo:function(t){return{fileIdentifierString:t.headerInfo.fileIdentifierString,fileVersion:t.headerInfo.fileVersion,imageType:t.headerInfo.imageType,height:t.headerInfo.height,width:t.headerInfo.width,numValidPixel:t.headerInfo.numValidPixel,microBlockSize:t.headerInfo.microBlockSize,blobSize:t.headerInfo.blobSize,maxZError:t.headerInfo.maxZError,pixelType:o.getPixelType(t.headerInfo.imageType),eofOffset:t.eofOffset,mask:t.mask?{numBytes:t.mask.numBytes}:null,pixels:{numBlocksX:t.pixels.numBlocksX,numBlocksY:t.pixels.numBlocksY,maxValue:t.headerInfo.zMax,minValue:t.headerInfo.zMin,noDataValue:t.noDataValue}}},constructConstantSurface:function(t,e){var i=t.headerInfo.zMax,r=t.headerInfo.zMin,n=t.headerInfo.maxValues,s=t.headerInfo.numDims,o=t.headerInfo.height*t.headerInfo.width,a=0,l=0,h=0,c=t.pixels.resultMask,u=t.pixels.resultPixels;if(c)if(s>1){if(e)for(a=0;a1&&r!==i)if(e)for(a=0;a=-128&&e<=127;break;case 1:i=e>=0&&e<=255;break;case 2:i=e>=-32768&&e<=32767;break;case 3:i=e>=0&&e<=65536;break;case 4:i=e>=-2147483648&&e<=2147483647;break;case 5:i=e>=0&&e<=4294967296;break;case 6:i=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:i=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:i=!1}return i},getDataTypeSize:function(t){var e=0;switch(t){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=t}return e},getDataTypeUsed:function(t,e){var i=t;switch(t){case 2:case 4:i=t-e;break;case 3:case 5:i=t-2*e;break;case 6:i=0===e?t:1===e?2:1;break;case 7:i=0===e?t:t-2*e+1;break;default:i=t}return i},getOnePixel:function(t,e,i,r){var n=0;switch(i){case 0:n=r.getInt8(e);break;case 1:n=r.getUint8(e);break;case 2:n=r.getInt16(e,!0);break;case 3:n=r.getUint16(e,!0);break;case 4:n=r.getInt32(e,!0);break;case 5:n=r.getUInt32(e,!0);break;case 6:n=r.getFloat32(e,!0);break;case 7:n=r.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return n},swapDimensionOrder:function(t,e,i,r,n){var s=0,o=0,a=0,l=0,h=t;if(i>1)if(h=new r(e*i),n)for(s=0;s5)throw"unsupported lerc version 2."+a;o.readMask(t,n),s.numValidPixel===s.width*s.height||n.pixels.resultMask||(n.pixels.resultMask=e.maskData);var h=s.width*s.height;n.pixels.resultPixels=new l(h*s.numDims),n.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var c,u=!e.returnPixelInterleavedDims;if(0!==s.numValidPixel)if(s.zMax===s.zMin)o.constructConstantSurface(n,u);else if(a>=4&&o.checkMinMaxRanges(t,n))o.constructConstantSurface(n,u);else{var d=new DataView(t,n.ptr,2),g=d.getUint8(0);if(n.ptr++,g)o.readDataOneSweep(t,n,l,u);else if(a>1&&s.imageType<=1&&Math.abs(s.maxZError-.5)<1e-5){var p=d.getUint8(1);if(n.ptr++,n.encodeMode=p,p>2||a<4&&p>1)throw"Invalid Huffman flag "+p;p?o.readHuffman(t,n,l,u):o.readTiles(t,n,l,u)}else o.readTiles(t,n,l,u)}n.eofOffset=n.ptr,e.inputOffset?(c=n.headerInfo.blobSize+e.inputOffset-n.ptr,Math.abs(c)>=1&&(n.eofOffset=e.inputOffset+n.headerInfo.blobSize)):(c=n.headerInfo.blobSize-n.ptr,Math.abs(c)>=1&&(n.eofOffset=n.headerInfo.blobSize));var f={width:s.width,height:s.height,pixelData:n.pixels.resultPixels,minValue:s.zMin,maxValue:s.zMax,validPixelCount:s.numValidPixel,dimCount:s.numDims,dimStats:{minValues:s.minValues,maxValues:s.maxValues},maskData:n.pixels.resultMask};if(n.pixels.resultMask&&o.isValidPixelValue(s.imageType,i)){var m=n.pixels.resultMask;for(r=0;r1&&(h&&y.push(h),b.fileInfo.mask&&b.fileInfo.mask.numBytes>0&&x++),m++,v.pixels.push(b.pixelData),v.statistics.push({minValue:b.minValue,maxValue:b.maxValue,noDataValue:b.noDataValue,dimStats:b.dimStats})}if(r>1&&x>1){for(f=v.width*v.height,v.bandMasks=y,(h=new Uint8Array(f)).set(y[0]),c=1;c=0?r=s:(r=i+s,r<0&&(r=0));r=0?r=n:(r=i+n,r<0&&(r=0));let s,o=[];for(;r{if(null!==t.equals&&"function"==typeof t.equals&&t.equals.call)return t.equals(e);if(null!==e.equals&&"function"==typeof e.equals&&e.equals.call)return e.equals(t);{let i,r=[],n=[];if(isNaN(t)&&isNaN(e)&&"number"==typeof t&&"number"==typeof e)return!0;if(t===e)return!0;if("function"==typeof t&&"function"==typeof e||t instanceof Date&&e instanceof Date||t instanceof RegExp&&e instanceof RegExp||t instanceof String&&e instanceof String||t instanceof Number&&e instanceof Number)return t.toString()===e.toString();if(!(t instanceof Object&&e instanceof Object))return!1;if(t.isPrototypeOf(e)||e.isPrototypeOf(t))return!1;if(t.constructor!==e.constructor)return!1;if(t.prototype!==e.prototype)return!1;if(r.indexOf(t)>-1||n.indexOf(e)>-1)return!1;for(i in e){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1}for(i in t){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1;switch(typeof t[i]){case"object":case"function":if(r.push(t),n.push(e),!Object.equals(t[i],e[i]))return!1;r.pop(),n.pop();break;default:if(t[i]!==e[i])return!1}}return!0}})},function(t,e,i){"use strict";e.byteLength=function(t){var e=h(t),i=e[0],r=e[1];return 3*(i+r)/4-r},e.toByteArray=function(t){var e,i,r=h(t),o=r[0],a=r[1],l=new s(function(t,e,i){return 3*(e+i)/4-i}(0,o,a)),c=0,u=a>0?o-4:o;for(i=0;i>16&255,l[c++]=e>>8&255,l[c++]=255&e;2===a&&(e=n[t.charCodeAt(i)]<<2|n[t.charCodeAt(i+1)]>>4,l[c++]=255&e);1===a&&(e=n[t.charCodeAt(i)]<<10|n[t.charCodeAt(i+1)]<<4|n[t.charCodeAt(i+2)]>>2,l[c++]=e>>8&255,l[c++]=255&e);return l},e.fromByteArray=function(t){for(var e,i=t.length,n=i%3,s=[],o=16383,a=0,l=i-n;al?l:a+o));1===n?(e=t[i-1],s.push(r[e>>2]+r[e<<4&63]+"==")):2===n&&(e=(t[i-2]<<8)+t[i-1],s.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return s.join("")};for(var r=[],n=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,l=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.indexOf("=");return-1===i&&(i=e),[i,i===e?0:4-i%4]}function c(t,e,i){for(var n,s,o=[],a=e;a>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},function(t,e){var i={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==i.call(t)}},function(t,e,i){const r=i(158),n=i(159),s=i(160);function o(t,e,i){const o=i&&i.debug||!1,a=!(i&&!1===typeof i.nested),l=i&&i.startIndex||0;o&&console.log("[xml-utils] starting findTagByName with",e," and ",i);const h=r(t,`<${e}[ \n>/]`,l);if(o&&console.log("[xml-utils] start:",h),-1===h)return;const c=t.slice(h+e.length);let u=n(c,"^[^<]*[ /]>",0);const d=-1!==u&&"/"===c[u-1];if(o&&console.log("[xml-utils] selfClosing:",d),!1===d)if(a){let t=0,i=1,r=0;for(;-1!==(u=n(c,"[ /]"+e+">",t));){const n=c.substring(t,u+1);if(i+=s(n,"<"+e+"[ \n\t>]"),r+=s(n,""),r>=i)break;t=u}}else u=n(c,"[ /]"+e+">",0);const g=h+e.length+u+1;if(o&&console.log("[xml-utils] end:",g),-1===g)return;const p=t.slice(h,g);let f;return f=d?null:p.slice(p.indexOf(">")+1,p.lastIndexOf("<")),{inner:f,outer:p,start:h,end:g}}t.exports=o,t.exports.default=o},function(t,e){function i(t,e,i){const r=new RegExp(e).exec(t.slice(i));return r?i+r.index:-1}t.exports=i,t.exports.default=i},function(t,e){function i(t,e,i){const r=new RegExp(e).exec(t.slice(i));return r?i+r.index+r[0].length-1:-1}t.exports=i,t.exports.default=i},function(t,e){function i(t,e){const i=new RegExp(e,"g"),r=t.match(i);return r?r.length:0}t.exports=i,t.exports.default=i},function(t,e,i){ -/** - * JSTS. See https://github.com/bjornharrtell/jsts - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EDLv1.txt - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EPLv1.txt - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_LICENSE_ES6_COLLECTIONS.txt - * @license - */ -!function(t){"use strict";"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(t){if(null==this)throw new TypeError(this+" is not an object");var e=Object(this),i=Math.max(Math.min(e.length,9007199254740991),0)||0,r=1 in arguments&&parseInt(Number(arguments[1]),10)||0;r=r<0?Math.max(i+r,0):Math.min(r,i);var n=2 in arguments&&void 0!==arguments[2]?parseInt(Number(arguments[2]),10)||0:i;for(n=n<0?Math.max(i+arguments[2],0):Math.min(n,i);r0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},n.isNaN=t=>Number.isNaN(t),n.isInfinite=t=>!Number.isFinite(t),n.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(h=new Float64Array(1),c=new Int32Array(h.buffer),n.doubleToLongBits=function(t){h[0]=t;var e=0|c[0],i=0|c[1];return 2146435072==(2146435072&i)&&0!=(1048575&i)&&0!==e&&(e=0,i=2146959360),new r(i,e)},n.longBitsToDouble=function(t){return c[0]=t.low,c[1]=t.high,h[0]}):(s=Math.log2,o=Math.floor,a=Math.pow,l=function(){for(var t=53;t>0;t--){var e=a(2,t)-1;if(o(s(e))+1===t)return e}return 0}(),n.doubleToLongBits=function(t){var e,i,n,h,c,u,d,g,p;if(t<0||1/t===Number.NEGATIVE_INFINITY?(u=1<<31,t=-t):u=0,0===t)return new r(g=u,p=0);if(t===1/0)return new r(g=2146435072|u,p=0);if(t!=t)return new r(g=2146959360,p=0);if(h=0,p=0,(e=o(t))>1)if(e<=l)(h=o(s(e)))<=20?(p=0,g=e<<20-h&1048575):(p=e%(i=a(2,n=h-20))<<32-n,g=e/i&1048575);else for(n=e,p=0;0!==(n=o(i=n/2));)h++,p>>>=1,p|=(1&g)<<31,g>>>=1,i!==n&&(g|=524288);if(d=h+1023,c=0===e,e=t-e,h<52&&0!==e)for(n=0;;){if((i=2*e)>=1?(e=i-1,c?(d--,c=!1):(n<<=1,n|=1,h++)):(e=i,c?0==--d&&(h++,c=!1):(n<<=1,h++)),20===h)g|=n,n=0;else if(52===h){p|=n;break}if(1===i){h<20?g|=n<<20-h:h<52&&(p|=n<<52-h);break}}return g|=d<<20,new r(g|=u,p)},n.longBitsToDouble=function(t){var e,i,r,n,s=t.high,o=t.low;i=s&1<<31?-1:1,r=((2146435072&s)>>20)-1023,n=0,e=1<<19;for(var l=1;l<=20;l++)s&e&&(n+=a(2,-l)),e>>>=1;for(e=1<<31,l=21;l<=52;l++)o&e&&(n+=a(2,-l)),e>>>=1;if(-1023===r){if(0===n)return 0*i;r=-1022}else{if(1024===r)return 0===n?i/0:NaN;n+=1}return i*n*a(2,r)}),f.prototype=Object.create(Error.prototype),f.prototype.constructor=Error;class m extends f{constructor(){super(),m.constructor_.apply(this,arguments)}getClass(){return m}get interfaces_(){return[]}}m.constructor_=function(){if(0===arguments.length)f.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];f.constructor_.call(this,t)}};class _{constructor(){_.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)_.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new m("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];_.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new m:new m(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];_.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new m("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return _}get interfaces_(){return[]}}_.constructor_=function(){};class y{constructor(){y.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=n.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case y.X:this.x=e;break;case y.Y:this.y=e;break;case y.Z:this.z=e;break;default:throw new i("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],i=arguments[1];return!!e.equalsWithTolerance(this.x,t.x,i)&&!!e.equalsWithTolerance(this.y,t.y,i)}}getOrdinate(t){switch(t){case y.X:return this.x;case y.Y:return this.y;case y.Z:return this.z}throw new i("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||n.isNaN(this.z)&&n.isNaN(t.z))}equals(t){return t instanceof y&&this.equals2D(t)}equalInZ(t,i){return e.equalsWithTolerance(this.z,t.z,i)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return _.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new y(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+i*i+r*r)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*t+y.hashCode(this.x))+y.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return y}get interfaces_(){return[u,d,p]}}class v{constructor(){v.constructor_.apply(this,arguments)}static compare(t,e){return te?1:n.isNaN(t)?n.isNaN(e)?0:-1:n.isNaN(e)?1:0}compare(t,e){var i=t,r=e,n=v.compare(i.x,r.x);if(0!==n)return n;var s=v.compare(i.y,r.y);return 0!==s?s:this._dimensionsToTest<=2?0:v.compare(i.z,r.z)}getClass(){return v}get interfaces_(){return[g]}}function x(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}function b(){}function w(){}function E(t){this.message=t||""}function S(){}function I(t){this.message=t||""}function C(t){this.message=t||""}function T(){this.array_=[],arguments[0]instanceof w&&this.addAll(arguments[0])}v.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)v.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new i("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},y.DimensionalComparator=v,y.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)y.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];y.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];y.constructor_.call(this,t,e,y.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},y.serialVersionUID=0x5cbf2c235c7e5800,y.NULL_ORDINATE=n.NaN,y.X=0,y.Y=1,y.Z=2,b.prototype.hasNext=function(){},b.prototype.next=function(){},b.prototype.remove=function(){},w.prototype.add=function(){},w.prototype.addAll=function(){},w.prototype.isEmpty=function(){},w.prototype.iterator=function(){},w.prototype.size=function(){},w.prototype.toArray=function(){},w.prototype.remove=function(){},E.prototype=new Error,E.prototype.name="IndexOutOfBoundsException",S.prototype=Object.create(w.prototype),S.prototype.constructor=S,S.prototype.get=function(){},S.prototype.set=function(){},S.prototype.isEmpty=function(){},I.prototype=new Error,I.prototype.name="NoSuchElementException",C.prototype=new Error,C.prototype.name="OperationNotSupported",T.prototype=Object.create(S.prototype),T.prototype.constructor=T,T.prototype.ensureCapacity=function(){},T.prototype.interfaces_=[S,w],T.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},T.prototype.clear=function(){this.array_=[]},T.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},T.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},T.prototype.iterator=function(){return new L(this)},T.prototype.get=function(t){if(t<0||t>=this.size())throw new E;return this.array_[t]},T.prototype.isEmpty=function(){return 0===this.array_.length},T.prototype.size=function(){return this.array_.length},T.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1&&this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof y){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0&&this.get(t-1).equals2D(i))return null;if(ts&&(i=-1),t=n;t!==s;t+=i)this.add(e[t],r);return!0}}closeRing(){this.size()>0&&this.add(new y(this.get(0)),!1)}getClass(){return M}get interfaces_(){return[]}}M.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},M.coordArrayType=new Array(0).fill(null);class O{constructor(){O.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let n=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(n.x,s.x),r=Math.max(n.x,s.x);return!(i>e||re||rt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy}}intersects(){if(1===arguments.length){if(arguments[0]instanceof O){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||(t.x>e.x?t.x:e.x)this._maxy||(t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof O){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof y){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new y((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof y){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof O){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*(t=37*(t=37*t+y.hashCode(this._minx))+y.hashCode(this._maxx))+y.hashCode(this._miny))+y.hashCode(this._maxy)}getClass(){return O}get interfaces_(){return[u,p]}}function R(){}O.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof y){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof O){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];this.init(t,e,i,r)}},O.serialVersionUID=0x51845cd552189800;class P extends R{constructor(){super(),P.constructor_.apply(this,arguments)}getClass(){return P}get interfaces_(){return[]}}function N(t){this.str=t}function A(t){this.value=t}function F(){}P.constructor_=function(){R.constructor_.call(this,"Projective point not representable on the Cartesian plane.")},N.prototype.append=function(t){this.str+=t},N.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)},N.prototype.toString=function(t){return this.str},A.prototype.intValue=function(){return this.value},A.prototype.compareTo=function(t){return this.valuet?1:0},A.isNaN=t=>Number.isNaN(t),F.isWhitespace=t=>t<=32&&t>=0||127==t,F.toUpperCase=t=>t.toUpperCase();class k{constructor(){k.constructor_.apply(this,arguments)}static sqr(t){return k.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return k.parse(t)}if("number"==typeof arguments[0])return new k(arguments[0])}static sqrt(t){return k.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;F.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=i);){var h=t.charAt(e);if(e++,F.isDigit(h)){var c=h-"0";s.selfMultiply(k.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=A.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var d=s,g=o-a-l;if(0===g)d=s;else if(g>0){var p=k.TEN.pow(g);d=s.divide(p)}else g<0&&(p=k.TEN.pow(-g),d=s.multiply(p));return r?d.negate():d}static createNaN(){return new k(n.NaN,n.NaN)}static copy(t){return new k(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(i));return 10*Math.pow(10,r)<=e&&(r+=1),r}static stringOfChar(t,e){for(var i=new N,r=0;r9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(k.valueOf(h)).multiply(k.TEN),c&&i.selfAdd(k.TEN);var d=!0,g=k.magnitude(i._hi);if(g<0&&Math.abs(g)>=a-l&&(d=!1),!d)break}return e[0]=r,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof k){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof k){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof k){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof k){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,r,n=null,s=null,o=null,a=null;return i=this._hi/l,a=(n=(o=k.SPLIT*i)-(n=o-i))*(s=(a=k.SPLIT*l)-(s=a-l))-(r=i*l)+n*(e=l-s)+(t=i-n)*s+t*e,a=i+(o=(this._hi-r-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof k){let n=arguments[0];var t,e,i,r,s=null,o=null,a=null,l=null;return t=(i=this._hi/n._hi)-(s=(a=k.SPLIT*i)-(s=a-i)),l=s*(o=(l=k.SPLIT*n._hi)-(o=l-n._hi))-(r=i*n._hi)+s*(e=n._hi-o)+t*o+t*e,a=(this._hi-r-l+this._lo-i*n._lo)/n._hi,new k(l=i+a,i-l+a)}if("number"==typeof arguments[0]){let t=arguments[0];return n.isNaN(t)?k.createNaN():k.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return k.valueOf(1);var e=new k(this),i=k.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2==1&&i.selfMultiply(e),(r/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return k.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new k(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof k){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return k.valueOf(0);if(this.isNegative())return k.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=k.valueOf(e),r=this.subtract(i.sqr())._hi*(.5*t);return i.add(r)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof k){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,r=null,n=null,s=null;return r=(i=this._hi+o)-(n=i-this._hi),e=(s=(r=o-n+(this._hi-r))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,r=null,n=null,s=null,i=this._hi+c,o=this._lo+u,r=i-(n=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(n=(r=c-n+(this._hi-r))+o))+(n=(a=u-s+(this._lo-a))+(e=n+(i-t))),h=n+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof k){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,r=null,n=null,s=null;i=(n=k.SPLIT*this._hi)-this._hi,s=k.SPLIT*l,i=n-i,t=this._hi-i,r=s-l;var o=(n=this._hi*l)+(s=i*(r=s-r)-n+i*(e=l-r)+t*r+t*e+(this._hi*h+this._lo*l)),a=s+(i=n-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return k.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new k(t,e)}negate(){return this.isNaN()?this:new k(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof k){let t=arguments[0];return t.isNaN()?k.createNaN():k.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return n.isNaN(t)?k.createNaN():k.copy(this).selfMultiply(t,0)}}isNaN(){return n.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=k.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),r=e[0]+1,n=i;if("."===i.charAt(0))n="0"+i;else if(r<0)n="0."+k.stringOfChar("0",-r)+i;else if(-1===i.indexOf(".")){var s=r-i.length;n=i+k.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+n:n}reciprocal(){var t,e,i,r,n=null,s=null,o=null,a=null;t=(i=1/this._hi)-(n=(o=k.SPLIT*i)-(n=o-i)),s=(a=k.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(r=i*this._hi)-(a=n*(s=a-s)-r+n*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new k(l,i-l+o)}toSciNotation(){if(this.isZero())return k.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),r=k.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var n="";i.length>1&&(n=i.substring(1));var s=i.charAt(0)+"."+n;return this.isNegative()?"-"+s+r:s+r}abs(){return this.isNaN()?k.NaN:this.isNegative()?this.negate():new k(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?k.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return k}get interfaces_(){return[p,u,d]}}k.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof k){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];k.constructor_.call(this,k.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},k.PI=new k(3.141592653589793,12246467991473532e-32),k.TWO_PI=new k(6.283185307179586,24492935982947064e-32),k.PI_2=new k(1.5707963267948966,6123233995736766e-32),k.E=new k(2.718281828459045,14456468917292502e-32),k.NaN=new k(n.NaN,n.NaN),k.EPS=123259516440783e-46,k.SPLIT=134217729,k.MAX_PRINT_DIGITS=32,k.TEN=k.valueOf(10),k.ONE=k.valueOf(1),k.SCI_NOT_EXPONENT_CHAR="E",k.SCI_NOT_ZERO="0.0E0";class D{constructor(){D.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var r=D.orientationIndexFilter(t,e,i);if(r<=1)return r;var n=k.valueOf(e.x).selfAdd(-t.x),s=k.valueOf(e.y).selfAdd(-t.y),o=k.valueOf(i.x).selfAdd(-e.x),a=k.valueOf(i.y).selfAdd(-e.y);return n.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof k){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let n=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=k.valueOf(n),e=k.valueOf(s),i=k.valueOf(o),r=k.valueOf(a);return t.multiply(r).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,r){var n=k.valueOf(r.y).selfSubtract(i.y).selfMultiply(k.valueOf(e.x).selfSubtract(t.x)),s=k.valueOf(r.x).selfSubtract(i.x).selfMultiply(k.valueOf(e.y).selfSubtract(t.y)),o=n.subtract(s),a=k.valueOf(r.x).selfSubtract(i.x).selfMultiply(k.valueOf(t.y).selfSubtract(i.y)),l=k.valueOf(r.y).selfSubtract(i.y).selfMultiply(k.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=k.valueOf(t.x).selfAdd(k.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=k.valueOf(e.x).selfSubtract(t.x).selfMultiply(k.valueOf(t.y).selfSubtract(i.y)),d=k.valueOf(e.y).selfSubtract(t.y).selfMultiply(k.valueOf(t.x).selfSubtract(i.x)),g=u.subtract(d).selfDivide(o).doubleValue(),p=k.valueOf(i.y).selfAdd(k.valueOf(r.y).selfSubtract(i.y).selfMultiply(g)).doubleValue();return new y(c,p)}static orientationIndexFilter(t,e,i){var r=null,n=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=n-s;if(n>0){if(s<=0)return D.signum(o);r=n+s}else{if(!(n<0))return D.signum(o);if(s>=0)return D.signum(o);r=-n-s}var a=D.DP_SAFE_EPSILON*r;return o>=a||-o>=a?D.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return D}get interfaces_(){return[]}}D.constructor_=function(){},D.DP_SAFE_EPSILON=1e-15;class j{constructor(){j.constructor_.apply(this,arguments)}static index(t,e,i){return D.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new i("Ring has fewer than 4 points, so orientation cannot be determined");for(var r=t[0],n=0,s=1;s<=e;s++){var o=t[s];o.y>r.y&&(r=o,n=s)}var a=n;do{(a-=1)<0&&(a=e)}while(t[a].equals2D(r)&&a!==n);var l=n;do{l=(l+1)%e}while(t[l].equals2D(r)&&l!==n);var h=t[a],c=t[l];if(h.equals2D(r)||c.equals2D(r)||h.equals2D(c))return!1;var u=j.index(h,r,c);return 0===u?h.x>c.x:u>0}getClass(){return j}get interfaces_(){return[]}}function G(){}j.constructor_=function(){},j.CLOCKWISE=-1,j.RIGHT=j.CLOCKWISE,j.COUNTERCLOCKWISE=1,j.LEFT=j.COUNTERCLOCKWISE,j.COLLINEAR=0,j.STRAIGHT=j.COLLINEAR,G.arraycopy=(t,e,i,r,n)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class z{constructor(){z.constructor_.apply(this,arguments)}static intersection(t,e,i,r){var s=t.y-e.y,o=e.x-t.x,a=t.x*e.y-e.x*t.y,l=i.y-r.y,h=r.x-i.x,c=i.x*r.y-r.x*i.y,u=s*h-l*o,d=(o*c-h*a)/u,g=(l*a-s*c)/u;if(n.isNaN(d)||n.isInfinite(d)||n.isNaN(g)||n.isInfinite(g))throw new P;return new y(d,g)}getY(){var t=this.y/this.w;if(n.isNaN(t)||n.isInfinite(t))throw new P;return t}getX(){var t=this.x/this.w;if(n.isNaN(t)||n.isInfinite(t))throw new P;return t}getCoordinate(){var t=new y;return t.x=this.getX(),t.y=this.getY(),t}getClass(){return z}get interfaces_(){return[]}}z.constructor_=function(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){let t=arguments[0];this.x=t.x,this.y=t.y,this.w=1}else if(2===arguments.length){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];this.x=t,this.y=e,this.w=1}else if(arguments[0]instanceof z&&arguments[1]instanceof z){let t=arguments[0],e=arguments[1];this.x=t.y*e.w-e.y*t.w,this.y=e.x*t.w-t.x*e.w,this.w=t.x*e.y-e.x*t.y}else if(arguments[0]instanceof y&&arguments[1]instanceof y){let t=arguments[0],e=arguments[1];this.x=t.y-e.y,this.y=e.x-t.x,this.w=t.x*e.y-e.x*t.y}}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.w=i}else if(4===arguments.length){let o=arguments[0],a=arguments[1],l=arguments[2],h=arguments[3];var t=o.y-a.y,e=a.x-o.x,i=o.x*a.y-a.x*o.y,r=l.y-h.y,n=h.x-l.x,s=l.x*h.y-h.x*l.y;this.x=e*s-n*i,this.y=r*i-t*s,this.w=t*n-r*e}};class B{constructor(){B.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return n.isInfinite(e)||n.isNaN(e)?e:e/B.LOG_10}static min(t,e,i,r){var n=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],r=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),r>t&&(t=r),t}}static average(t,e){return(t+e)/2}getClass(){return B}get interfaces_(){return[]}}B.constructor_=function(){},B.LOG_10=Math.log(10);class U{constructor(){U.constructor_.apply(this,arguments)}static segmentToSegment(t,e,i,r){if(t.equals(e))return U.pointToSegment(t,i,r);if(i.equals(r))return U.pointToSegment(r,t,e);var n=!1;if(O.intersects(t,e,i,r)){var s=(e.x-t.x)*(r.y-i.y)-(e.y-t.y)*(r.x-i.x);if(0===s)n=!0;else{var o=(t.y-i.y)*(r.x-i.x)-(t.x-i.x)*(r.y-i.y),a=((t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y))/s,l=o/s;(l<0||l>1||a<0||a>1)&&(n=!0)}}else n=!0;return n?B.min(U.pointToSegment(t,i,r),U.pointToSegment(e,i,r),U.pointToSegment(i,t,e),U.pointToSegment(r,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var r=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),n=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/r;if(n<=0)return t.distance(e);if(n>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/r;return Math.abs(s)*Math.sqrt(r)}static pointToLinePerpendicular(t,e,i){var r=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),n=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/r;return Math.abs(n)*Math.sqrt(r)}static pointToSegmentString(t,e){if(0===e.length)throw new i("Line array must contain at least one vertex");for(var r=t.distance(e[0]),n=0;n0}getClass(){return K}get interfaces_(){return[H]}}K.constructor_=function(){};class ${constructor(){$.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return $}get interfaces_(){return[H]}}$.constructor_=function(){};class J{constructor(){J.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return J}get interfaces_(){return[H]}}J.constructor_=function(){},H.Mod2BoundaryNodeRule=Z,H.EndPointBoundaryNodeRule=K,H.MultiValentEndPointBoundaryNodeRule=$,H.MonoValentEndPointBoundaryNodeRule=J,H.constructor_=function(){},H.MOD2_BOUNDARY_RULE=new Z,H.ENDPOINT_BOUNDARY_RULE=new K,H.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new $,H.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new J,H.OGC_SFS_BOUNDARY_RULE=H.MOD2_BOUNDARY_RULE;class Q{constructor(){Q.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4||!t[0].equals2D(t[t.length-1]))}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=B.clamp(e,0,t.length);var r=(i=B.clamp(i,-1,t.length))-e+1;i<0&&(r=0),e>=t.length&&(r=0),ir.length)return 1;if(0===i.length)return 0;var n=Q.compare(i,r);return Q.isEqualReversed(i,r)?0:n}OLDcompare(t,e){var i=t,r=e;if(i.lengthr.length)return 1;if(0===i.length)return 0;for(var n=Q.increasingDirection(i),s=Q.increasingDirection(r),o=n>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},gt.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:at,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,r,n=this.root_;do{if(i=n,(r=t.compareTo(n.key))<0)n=n.left;else{if(!(r>0)){var s=n.value;return n.value=e,s}n=n.right}}while(null!==n);var o={key:t,left:null,right:null,value:e,parent:i,color:at,getValue(){return this.value},getKey(){return this.key}};return r<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},gt.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;ht(t)==ut(ht(ht(t)))?1==lt(e=dt(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==dt(ht(t))&&(t=ht(t),this.rotateLeft(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateRight(ht(ht(t)))):1==lt(e=ut(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==ut(ht(t))&&(t=ht(t),this.rotateRight(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateLeft(ht(ht(t))))}this.root_.color=at},gt.prototype.values=function(){var t=new T,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=gt.successor(e));)t.add(e.value);return t},gt.prototype.entrySet=function(){var t=new st,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=gt.successor(e));)t.add(e);return t},gt.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},gt.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},gt.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},gt.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},gt.prototype.size=function(){return this.size_},gt.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class pt{constructor(){pt.constructor_.apply(this,arguments)}getClass(){return pt}get interfaces_(){return[]}}function ft(){}function mt(){this.array_=[],arguments[0]instanceof w&&this.addAll(arguments[0])}pt.constructor_=function(){},ft.prototype=new nt,mt.prototype=new ft,mt.prototype.contains=function(t){for(var e=0,i=this.array_.length;e=0;){var o=n.substring(0,s);r.add(o),s=(n=n.substring(s+i)).indexOf(e)}n.length>0&&r.add(n);for(var a=new Array(r.size()).fill(null),l=0;l0)for(var s=n;s0&&i.append(" ");for(var n=0;n0&&i.append(","),i.append(Nt.toString(s.getOrdinate(r,n)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?Ft.createClosedRing(t,e,4):e.getOrdinate(0,V.X)===e.getOrdinate(i-1,V.X)&&e.getOrdinate(0,V.Y)===e.getOrdinate(i-1,V.Y)?e:Ft.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var r=t.create(i,e.getDimension()),n=e.size();Ft.copy(e,0,r,0,n);for(var s=n;s0){var i=this._points.copy();Ft.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?xt.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return W.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return Tt.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return Ft.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return W.TYPENAME_LINEARRING}copy(){return new Vt(this._points.copy(),this._factory)}getClass(){return Vt}get interfaces_(){return[]}}Vt.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];Vt.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(x(arguments[0],V)&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];kt.constructor_.call(this,t,e),this.validateConstruction()}},Vt.MINIMUM_VALID_SIZE=4,Vt.serialVersionUID=-0x3b229e262367a600;class qt extends Et{constructor(){super(),qt.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof W){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return W.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new At(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new Kt(t):new Kt(t,e)}}getClass(){return $t}get interfaces_(){return[q,p]}}$t.constructor_=function(){},$t.serialVersionUID=-0x38e49fa6cf6f2e00,$t.instanceObject=new $t;var Jt=Object.defineProperty,Qt=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&function(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}.call(this,t)}return e||Jt(t,"size",{get:ee}),t.constructor=i,i.prototype=t,i}({delete:function(t){return this.has(t)&&(this._keys.splice(_t,1),this._values.splice(_t,1),this._itp.forEach((function(t){_t-1},has:function(t){return function(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(_t=t.length;_t--&&(i=t[_t])!==(r=e)&&(i==i||r==r););else _t=t.indexOf(e);var i,r;return _t>-1}.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[_t]:void 0},set:function(t,e){return this.has(t)?this._values[_t]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return te(this._itp,this._keys)},values:function(){return te(this._itp,this._values)},entries:function(){return te(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var r=i.next();if(r.done)break;t.call(e,r.value[1],r.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function te(t,e,i){var r=[0],n=!1;return t.push(r),{next:function(){var s,o=r[0];return!n&&ot.add(e)),t},re.prototype.size=function(){return this.map_.size()};class ne{constructor(){ne.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof ne))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new A(i).compareTo(new A(r))}getScale(){return this._scale}isFloating(){return this._modelType===ne.FLOATING||this._modelType===ne.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===ne.FLOATING?t="Floating":this._modelType===ne.FLOATING_SINGLE?t="Floating-Single":this._modelType===ne.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return n.isNaN(t)||this._modelType===ne.FLOATING_SINGLE?t:this._modelType===ne.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof y){let t=arguments[0];if(this._modelType===ne.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===ne.FLOATING?t=16:this._modelType===ne.FLOATING_SINGLE?t=6:this._modelType===ne.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return ne}get interfaces_(){return[p,u]}}class se{constructor(){se.constructor_.apply(this,arguments)}readResolve(){return se.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return se}get interfaces_(){return[p]}}se.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,se.nameToTypeMap.put(t,this)},se.serialVersionUID=-552860263173159e4,se.nameToTypeMap=new re,ne.Type=se,ne.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=ne.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof se){let t=arguments[0];this._modelType=t,t===ne.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=ne.FIXED,this.setScale(t)}else if(arguments[0]instanceof ne){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},ne.serialVersionUID=0x6bee6404e9a25c00,ne.FIXED=new se("FIXED"),ne.FLOATING=new se("FLOATING"),ne.FLOATING_SINGLE=new se("FLOATING SINGLE"),ne.maximumPreciseValue=9007199254740992;class oe{constructor(){oe.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return $t.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new y(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new y(t.getMinX(),t.getMinY()),new y(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new y(t.getMinX(),t.getMinY()),new y(t.getMinX(),t.getMaxY()),new y(t.getMaxX(),t.getMaxY()),new y(t.getMaxX(),t.getMinY()),new y(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(x(arguments[0],V))return new kt(arguments[0],this)}}createMultiLineString(){return 0===arguments.length?new St(null,this):1===arguments.length?new St(arguments[0],this):void 0}buildGeometry(t){for(var e=null,i=!1,r=!1,n=t.iterator();n.hasNext();){var s=n.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof Et&&(r=!0)}if(null===e)return this.createGeometryCollection();if(i||r)return this.createGeometryCollection(oe.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof Bt)return this.createMultiPolygon(oe.toPolygonArray(t));if(a instanceof kt)return this.createMultiLineString(oe.toLineStringArray(t));if(a instanceof jt)return this.createMultiPoint(oe.toPointArray(t));_.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof y){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(x(arguments[0],V))return new jt(arguments[0],this)}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(x(arguments[0],V)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Vt){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length)return new Bt(arguments[0],arguments[1],this)}getSRID(){return this._SRID}createGeometryCollection(){return 0===arguments.length?new Et(null,this):1===arguments.length?new Et(arguments[0],this):void 0}createGeometry(t){return new Yt(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof W&&x(arguments[0],V)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(x(arguments[0],V))return new Vt(arguments[0],this)}}createMultiPolygon(){return 0===arguments.length?new qt(null,this):1===arguments.length?new qt(arguments[0],this):void 0}createMultiPoint(){if(0===arguments.length)return new Ut(null,this);if(1===arguments.length){if(arguments[0]instanceof Array)return new Ut(arguments[0],this);if(x(arguments[0],V)){let r=arguments[0];if(null===r)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(r.size()).fill(null),e=0;et.x+" "+t.y,point(t){return he.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,r=t._geometries.length;in?r:n;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=r>n?o:a)||t.equals(e)||(s=Math.max(o,a))}return _.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var r=t.x-e.x,n=t.y-e.y,s=Math.sqrt(r*r+n*n);return _.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new At;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,r){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=r,this._result=this.computeIntersect(t,e,i,r)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map(()=>Array(2)),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2)),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new y,this._intPt[1]=new y,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},de.DONT_INTERSECT=0,de.DO_INTERSECT=1,de.COLLINEAR=2,de.NO_INTERSECTION=0,de.POINT_INTERSECTION=1,de.COLLINEAR_INTERSECTION=2;class ge extends de{constructor(){super(),ge.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,r){var n=t,s=U.pointToSegment(t,i,r),o=U.pointToSegment(e,i,r);return o1e-4&&G.out.println("Distance = "+n.distance(s))}intersectionWithNormalization(t,e,i,r){var n=new y(t),s=new y(e),o=new y(i),a=new y(r),l=new y;this.normalizeToEnvCentre(n,s,o,a,l);var h=this.safeHCoordinateIntersection(n,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,r){var n=O.intersects(t,e,i),s=O.intersects(t,e,r),o=O.intersects(i,r,t),a=O.intersects(i,r,e);return n&&s?(this._intPt[0]=i,this._intPt[1]=r,de.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,de.COLLINEAR_INTERSECTION):n&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?de.COLLINEAR_INTERSECTION:de.POINT_INTERSECTION):n&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?de.COLLINEAR_INTERSECTION:de.POINT_INTERSECTION):s&&o?(this._intPt[0]=r,this._intPt[1]=t,!r.equals(t)||n||a?de.COLLINEAR_INTERSECTION:de.POINT_INTERSECTION):s&&a?(this._intPt[0]=r,this._intPt[1]=e,!r.equals(e)||n||o?de.COLLINEAR_INTERSECTION:de.POINT_INTERSECTION):de.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,r,n){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xr.x?i.x:r.x,d=i.y>r.y?i.y:r.y,g=((s>h?s:h)+(ac?o:c)+(l0&&s>0||n<0&&s<0)return de.NO_INTERSECTION;var o=j.index(i,r,t),a=j.index(i,r,e);return o>0&&a>0||o<0&&a<0?de.NO_INTERSECTION:0===n&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,r):(0===n||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(r)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(r)?this._intPt[0]=e:0===n?this._intPt[0]=new y(i):0===s?this._intPt[0]=new y(r):0===o?this._intPt[0]=new y(t):0===a&&(this._intPt[0]=new y(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,r)),de.POINT_INTERSECTION)}getClass(){return ge}get interfaces_(){return[]}}ge.constructor_=function(){};class pe{constructor(){pe.constructor_.apply(this,arguments)}static midPoint(t,e){return new y((t.x+e.x)/2,(t.y+e.y)/2)}minX(){return Math.min(this.p0.x,this.p1.x)}orientationIndex(){if(arguments[0]instanceof pe){let i=arguments[0];var t=j.index(this.p0,this.p1,i.p0),e=j.index(this.p0,this.p1,i.p1);return t>=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof y){let t=arguments[0];return j.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof pe))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new ge;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof y){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new y(i);var t=this.projectionFactor(i),e=new y;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof pe){let t=arguments[0];var i=this.projectionFactor(t.p0),r=this.projectionFactor(t.p1);if(i>=1&&r>=1)return null;if(i<=0&&r<=0)return null;var n=this.project(t.p0);i<0&&(n=this.p0),i>1&&(n=this.p1);var s=this.project(t.p1);return r<0&&(s=this.p0),r>1&&(s=this.p1),new pe(n,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return U.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return pe.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,r=e*e+i*i;return r<=0?n.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/r}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),r=n.MAX_VALUE,s=null,o=this.closestPoint(t.p0);r=o.distance(t.p0),i[0]=o,i[1]=t.p0;var a=this.closestPoint(t.p1);(s=a.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||n.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof pe){let t=arguments[0];return U.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof y){let t=arguments[0];return U.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new y;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^Math.trunc(i)^Math.trunc(i>>32)}getClass(){return pe}get interfaces_(){return[u,p]}}pe.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)pe.constructor_.call(this,new y,new y);else if(1===arguments.length){let t=arguments[0];pe.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];pe.constructor_.call(this,new y(t,e),new y(i,r))}},pe.serialVersionUID=0x2d2172135f411c00;class fe{constructor(){fe.constructor_.apply(this,arguments)}static toLocationSymbol(t){switch(t){case fe.EXTERIOR:return"e";case fe.BOUNDARY:return"b";case fe.INTERIOR:return"i";case fe.NONE:return"-"}throw new i("Unknown location value: "+t)}getClass(){return fe}get interfaces_(){return[]}}fe.constructor_=function(){},fe.INTERIOR=0,fe.BOUNDARY=1,fe.EXTERIOR=2,fe.NONE=-1;class me{constructor(){me.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===xt.SYM_DONTCARE||e===xt.SYM_TRUE&&(t>=0||t===xt.TRUE)||e===xt.SYM_FALSE&&t===xt.FALSE||e===xt.SYM_P&&t===xt.P||e===xt.SYM_L&&t===xt.L||e===xt.SYM_A&&t===xt.A}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new me(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===xt.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])||me.isTrue(this._matrix[fe.INTERIOR][fe.BOUNDARY])||me.isTrue(this._matrix[fe.BOUNDARY][fe.INTERIOR])||me.isTrue(this._matrix[fe.BOUNDARY][fe.BOUNDARY]))&&this._matrix[fe.EXTERIOR][fe.INTERIOR]===xt.FALSE&&this._matrix[fe.EXTERIOR][fe.BOUNDARY]===xt.FALSE}isCoveredBy(){return(me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])||me.isTrue(this._matrix[fe.INTERIOR][fe.BOUNDARY])||me.isTrue(this._matrix[fe.BOUNDARY][fe.INTERIOR])||me.isTrue(this._matrix[fe.BOUNDARY][fe.BOUNDARY]))&&this._matrix[fe.INTERIOR][fe.EXTERIOR]===xt.FALSE&&this._matrix[fe.BOUNDARY][fe.EXTERIOR]===xt.FALSE}set(){if(1===arguments.length){let r=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])&&this._matrix[fe.INTERIOR][fe.EXTERIOR]===xt.FALSE&&this._matrix[fe.BOUNDARY][fe.EXTERIOR]===xt.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===xt.A&&e===xt.A||t===xt.L&&e===xt.L||t===xt.L&&e===xt.A||t===xt.P&&e===xt.A||t===xt.P&&e===xt.L)&&this._matrix[fe.INTERIOR][fe.INTERIOR]===xt.FALSE&&(me.isTrue(this._matrix[fe.INTERIOR][fe.BOUNDARY])||me.isTrue(this._matrix[fe.BOUNDARY][fe.INTERIOR])||me.isTrue(this._matrix[fe.BOUNDARY][fe.BOUNDARY]))}isOverlaps(t,e){return t===xt.P&&e===xt.P||t===xt.A&&e===xt.A?me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])&&me.isTrue(this._matrix[fe.INTERIOR][fe.EXTERIOR])&&me.isTrue(this._matrix[fe.EXTERIOR][fe.INTERIOR]):t===xt.L&&e===xt.L&&1===this._matrix[fe.INTERIOR][fe.INTERIOR]&&me.isTrue(this._matrix[fe.INTERIOR][fe.EXTERIOR])&&me.isTrue(this._matrix[fe.EXTERIOR][fe.INTERIOR])}isEquals(t,e){return t===e&&me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])&&this._matrix[fe.INTERIOR][fe.EXTERIOR]===xt.FALSE&&this._matrix[fe.BOUNDARY][fe.EXTERIOR]===xt.FALSE&&this._matrix[fe.EXTERIOR][fe.INTERIOR]===xt.FALSE&&this._matrix[fe.EXTERIOR][fe.BOUNDARY]===xt.FALSE}toString(){for(var t=new At("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,xt.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new i("Should be length 9: "+t);for(var e=0;e<3;e++)for(var r=0;r<3;r++)if(!me.matches(this._matrix[e][r],t.charAt(3*e+r)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[fe.INTERIOR][fe.INTERIOR]===xt.FALSE&&this._matrix[fe.INTERIOR][fe.BOUNDARY]===xt.FALSE&&this._matrix[fe.BOUNDARY][fe.INTERIOR]===xt.FALSE&&this._matrix[fe.BOUNDARY][fe.BOUNDARY]===xt.FALSE}isCrosses(t,e){return t===xt.P&&e===xt.L||t===xt.P&&e===xt.A||t===xt.L&&e===xt.A?me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])&&me.isTrue(this._matrix[fe.INTERIOR][fe.EXTERIOR]):t===xt.L&&e===xt.P||t===xt.A&&e===xt.P||t===xt.A&&e===xt.L?me.isTrue(this._matrix[fe.INTERIOR][fe.INTERIOR])&&me.isTrue(this._matrix[fe.EXTERIOR][fe.INTERIOR]):t===xt.L&&e===xt.L&&0===this._matrix[fe.INTERIOR][fe.INTERIOR]}getClass(){return me}get interfaces_(){return[d]}}me.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map(()=>Array(3)),this.setAll(xt.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];me.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof me){let t=arguments[0];me.constructor_.call(this),this._matrix[fe.INTERIOR][fe.INTERIOR]=t._matrix[fe.INTERIOR][fe.INTERIOR],this._matrix[fe.INTERIOR][fe.BOUNDARY]=t._matrix[fe.INTERIOR][fe.BOUNDARY],this._matrix[fe.INTERIOR][fe.EXTERIOR]=t._matrix[fe.INTERIOR][fe.EXTERIOR],this._matrix[fe.BOUNDARY][fe.INTERIOR]=t._matrix[fe.BOUNDARY][fe.INTERIOR],this._matrix[fe.BOUNDARY][fe.BOUNDARY]=t._matrix[fe.BOUNDARY][fe.BOUNDARY],this._matrix[fe.BOUNDARY][fe.EXTERIOR]=t._matrix[fe.BOUNDARY][fe.EXTERIOR],this._matrix[fe.EXTERIOR][fe.INTERIOR]=t._matrix[fe.EXTERIOR][fe.INTERIOR],this._matrix[fe.EXTERIOR][fe.BOUNDARY]=t._matrix[fe.EXTERIOR][fe.BOUNDARY],this._matrix[fe.EXTERIOR][fe.EXTERIOR]=t._matrix[fe.EXTERIOR][fe.EXTERIOR]}};class _e{constructor(){_e.constructor_.apply(this,arguments)}static toDegrees(t){return 180*t/Math.PI}static normalize(t){for(;t>Math.PI;)t-=_e.PI_TIMES_2;for(;t<=-Math.PI;)t+=_e.PI_TIMES_2;return t}static angle(){if(1===arguments.length){let t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){let i=arguments[0],r=arguments[1];var t=r.x-i.x,e=r.y-i.y;return Math.atan2(e,t)}}static isAcute(t,e,i){var r=t.x-e.x,n=t.y-e.y;return r*(i.x-e.x)+n*(i.y-e.y)>0}static isObtuse(t,e,i){var r=t.x-e.x,n=t.y-e.y;return r*(i.x-e.x)+n*(i.y-e.y)<0}static interiorAngle(t,e,i){var r=_e.angle(e,t),n=_e.angle(e,i);return Math.abs(n-r)}static normalizePositive(t){if(t<0){for(;t<0;)t+=_e.PI_TIMES_2;t>=_e.PI_TIMES_2&&(t=0)}else{for(;t>=_e.PI_TIMES_2;)t-=_e.PI_TIMES_2;t<0&&(t=0)}return t}static angleBetween(t,e,i){var r=_e.angle(e,t),n=_e.angle(e,i);return _e.diff(r,n)}static diff(t,e){var i=null;return(i=tMath.PI&&(i=2*Math.PI-i),i}static toRadians(t){return t*Math.PI/180}static getTurn(t,e){var i=Math.sin(e-t);return i>0?_e.COUNTERCLOCKWISE:i<0?_e.CLOCKWISE:_e.NONE}static angleBetweenOriented(t,e,i){var r=_e.angle(e,t),n=_e.angle(e,i)-r;return n<=-Math.PI?n+_e.PI_TIMES_2:n>Math.PI?n-_e.PI_TIMES_2:n}getClass(){return _e}get interfaces_(){return[]}}_e.constructor_=function(){},_e.PI_TIMES_2=2*Math.PI,_e.PI_OVER_2=Math.PI/2,_e.PI_OVER_4=Math.PI/4,_e.COUNTERCLOCKWISE=j.COUNTERCLOCKWISE,_e.CLOCKWISE=j.CLOCKWISE,_e.NONE=j.COLLINEAR;class ye{constructor(){ye.constructor_.apply(this,arguments)}static area(t,e,i){return Math.abs(((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2)}static signedArea(t,e,i){return((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2}static det(t,e,i,r){return t*r-e*i}static interpolateZ(t,e,i,r){var n=e.x,s=e.y,o=i.x-n,a=r.x-n,l=i.y-s,h=r.y-s,c=o*h-a*l,u=t.x-n,d=t.y-s,g=(h*u-a*d)/c,p=(-l*u+o*d)/c;return e.z+g*(i.z-e.z)+p*(r.z-e.z)}static longestSideLength(t,e,i){var r=t.distance(e),n=e.distance(i),s=i.distance(t),o=r;return n>o&&(o=n),s>o&&(o=s),o}static isAcute(t,e,i){return!!_e.isAcute(t,e,i)&&!!_e.isAcute(e,i,t)&&!!_e.isAcute(i,t,e)}static circumcentre(t,e,i){var r=i.x,n=i.y,s=t.x-r,o=t.y-n,a=e.x-r,l=e.y-n,h=2*ye.det(s,o,a,l),c=ye.det(o,s*s+o*o,l,a*a+l*l),u=ye.det(s,s*s+o*o,a,a*a+l*l);return new y(r-c/h,n+u/h)}static perpendicularBisector(t,e){var i=e.x-t.x,r=e.y-t.y,n=new z(t.x+i/2,t.y+r/2,1),s=new z(t.x-r+i/2,t.y+i+r/2,1);return new z(n,s)}static angleBisector(t,e,i){var r=e.distance(t),n=r/(r+e.distance(i)),s=i.x-t.x,o=i.y-t.y;return new y(t.x+n*s,t.y+n*o)}static area3D(t,e,i){var r=e.x-t.x,n=e.y-t.y,s=e.z-t.z,o=i.x-t.x,a=i.y-t.y,l=i.z-t.z,h=n*l-s*a,c=s*o-r*l,u=r*a-n*o,d=h*h+c*c+u*u;return Math.sqrt(d)/2}static centroid(t,e,i){var r=(t.x+e.x+i.x)/3,n=(t.y+e.y+i.y)/3;return new y(r,n)}static inCentre(t,e,i){var r=e.distance(i),n=t.distance(i),s=t.distance(e),o=r+n+s,a=(r*t.x+n*e.x+s*i.x)/o,l=(r*t.y+n*e.y+s*i.y)/o;return new y(a,l)}area(){return ye.area(this.p0,this.p1,this.p2)}signedArea(){return ye.signedArea(this.p0,this.p1,this.p2)}interpolateZ(t){if(null===t)throw new i("Supplied point is null.");return ye.interpolateZ(t,this.p0,this.p1,this.p2)}longestSideLength(){return ye.longestSideLength(this.p0,this.p1,this.p2)}isAcute(){return ye.isAcute(this.p0,this.p1,this.p2)}circumcentre(){return ye.circumcentre(this.p0,this.p1,this.p2)}area3D(){return ye.area3D(this.p0,this.p1,this.p2)}centroid(){return ye.centroid(this.p0,this.p1,this.p2)}inCentre(){return ye.inCentre(this.p0,this.p1,this.p2)}getClass(){return ye}get interfaces_(){return[]}}ye.constructor_=function(){this.p0=null,this.p1=null,this.p2=null;let t=arguments[0],e=arguments[1],i=arguments[2];this.p0=t,this.p1=e,this.p2=i};var ve=Object.freeze({Coordinate:y,CoordinateList:M,Envelope:O,LineSegment:pe,GeometryFactory:oe,Geometry:W,Point:jt,LineString:kt,LinearRing:Vt,Polygon:Bt,GeometryCollection:Et,MultiPoint:Ut,MultiLineString:St,MultiPolygon:qt,Dimension:xt,IntersectionMatrix:me,PrecisionModel:ne,Location:fe,Triangle:ye});class xe{constructor(){xe.constructor_.apply(this,arguments)}getCoordinates(){return this._pt}getCoordinate(t){return this._pt[t]}setMinimum(){if(1===arguments.length){let t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(2===arguments.length){let e=arguments[0],i=arguments[1];if(this._isNull)return this.initialize(e,i),null;var t=e.distance(i);tthis._distance&&this.initialize(e,i,t)}}getClass(){return xe}get interfaces_(){return[]}}xe.constructor_=function(){this._pt=[new y,new y],this._distance=n.NaN,this._isNull=!0};class be{constructor(){be.constructor_.apply(this,arguments)}static computeDistance(){if(arguments[2]instanceof xe&&arguments[0]instanceof kt&&arguments[1]instanceof y){let n=arguments[0],s=arguments[1],o=arguments[2];for(var t=new pe,e=n.getCoordinates(),i=0;i1||t<=0)throw new i("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t}compute(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)}distance(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()}computeOrientedDistance(t,e,i){var r=new Ee(e);if(t.apply(r),i.setMaximum(r.getMaxPointDistance()),this._densifyFrac>0){var n=new Se(e,this._densifyFrac);t.apply(n),i.setMaximum(n.getMaxPointDistance())}}orientedDistance(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()}getClass(){return we}get interfaces_(){return[]}}class Ee{constructor(){Ee.constructor_.apply(this,arguments)}filter(t){this._minPtDist.initialize(),be.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)}getMaxPointDistance(){return this._maxPtDist}getClass(){return Ee}get interfaces_(){return[X]}}Ee.constructor_=function(){this._maxPtDist=new xe,this._minPtDist=new xe,this._euclideanDist=new be,this._geom=null;let t=arguments[0];this._geom=t};class Se{constructor(){Se.constructor_.apply(this,arguments)}filter(t,e){if(0===e)return null;for(var i=t.getCoordinate(e-1),r=t.getCoordinate(e),n=(r.x-i.x)/this._numSubSegs,s=(r.y-i.y)/this._numSubSegs,o=0;oe||this._maxs?1:0}getClass(){return Me}get interfaces_(){return[g]}}Me.constructor_=function(){},Le.NodeComparator=Me,Le.constructor_=function(){this._min=n.POSITIVE_INFINITY,this._max=n.NEGATIVE_INFINITY};class Oe extends Le{constructor(){super(),Oe.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return Oe}get interfaces_(){return[]}}Oe.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};const Re={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return Re.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?vt.sort(i,e):vt.sort(i);const r=t.iterator();for(let t=0,e=i.length;tr&&(i=e.x,r=t.x),this._p.x>=i&&this._p.x<=r&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var n=j.index(t,e,this._p);if(n===j.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new I;var t=this._parent.getGeometryN(this._index++);return t instanceof Et?(this._subcollectionIterator=new Be(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return Be}get interfaces_(){return[b]}}Be.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class Ue{constructor(){Ue.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return fe.EXTERIOR;var i=e.getExteriorRing(),r=Ue.locatePointInRing(t,i);if(r!==fe.INTERIOR)return r;for(var n=0;n0&&this.addPoint(t[0])}addHole(t){for(var e=j.isCCW(t),i=0;i0)t.x=this._cg3.x/3/this._areasum2,t.y=this._cg3.y/3/this._areasum2;else if(this._totalLength>0)t.x=this._lineCentSum.x/this._totalLength,t.y=this._lineCentSum.y/this._totalLength;else{if(!(this._ptCount>0))return null;t.x=this._ptCentSum.x/this._ptCount,t.y=this._ptCentSum.y/this._ptCount}return t}addShell(t){t.length>0&&this.setAreaBasePoint(t[0]);for(var e=!j.isCCW(t),i=0;i=this.size())throw new IndexOutOfBoundsException;return this.array_[t]},$e.prototype.push=function(t){return this.array_.push(t),t},$e.prototype.pop=function(t){if(0===this.array_.length)throw new Ke;return this.array_.pop()},$e.prototype.peek=function(){if(0===this.array_.length)throw new Ke;return this.array_[this.array_.length-1]},$e.prototype.empty=function(){return 0===this.array_.length},$e.prototype.isEmpty=function(){return this.empty()},$e.prototype.search=function(t){return this.array_.indexOf(t)},$e.prototype.size=function(){return this.array_.length},$e.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e50&&(t=this.reduce(this._inputPts));var e=this.preSort(t),i=this.grahamScan(e),r=this.toCoordinateArray(i);return this.lineOrPolygon(r)}padArray3(t){for(var e=new Array(3).fill(null),i=0;ie[2].y&&(e[2]=t[r]),t[r].x+t[r].y>e[3].x+e[3].y&&(e[3]=t[r]),t[r].x>e[4].x&&(e[4]=t[r]),t[r].x-t[r].y>e[5].x-e[5].y&&(e[5]=t[r]),t[r].y0;)e=i.pop();i.push(e),i.push(t[r])}return i.push(t[0]),i}getClass(){return Qe}get interfaces_(){return[]}}class ti{constructor(){ti.constructor_.apply(this,arguments)}static polarCompare(t,e,i){var r=e.x-t.x,n=e.y-t.y,s=i.x-t.x,o=i.y-t.y,a=j.index(t,e,i);if(a===j.COUNTERCLOCKWISE)return 1;if(a===j.CLOCKWISE)return-1;var l=r*r+n*n,h=s*s+o*o;return lh?1:0}compare(t,e){var i=t,r=e;return ti.polarCompare(this._origin,i,r)}getClass(){return ti}get interfaces_(){return[g]}}ti.constructor_=function(){this._origin=null;let t=arguments[0];this._origin=t},Qe.RadialComparator=ti,Qe.constructor_=function(){if(this._geomFactory=null,this._inputPts=null,1===arguments.length){let t=arguments[0];Qe.constructor_.call(this,Qe.extractCoordinates(t),t.getFactory())}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._inputPts=Je.filterCoordinates(t),this._geomFactory=e}};class ei{constructor(){ei.constructor_.apply(this,arguments)}static centre(t){return new y(ei.avg(t.getMinX(),t.getMaxX()),ei.avg(t.getMinY(),t.getMaxY()))}static avg(t,e){return(t+e)/2}addPolygon(t){if(t.isEmpty())return null;var e=null,i=null,r=this.horizontalBisector(t);if(0===r.getLength())i=0,e=r.getCoordinate();else{var n=r.intersection(t),s=this.widestGeometry(n);i=s.getEnvelopeInternal().getWidth(),e=ei.centre(s.getEnvelopeInternal())}(null===this._interiorPoint||i>this._maxWidth)&&(this._interiorPoint=e,this._maxWidth=i)}getInteriorPoint(){return this._interiorPoint}widestGeometry(){if(arguments[0]instanceof Et){let i=arguments[0];if(i.isEmpty())return i;for(var t=i.getGeometryN(0),e=1;et.getEnvelopeInternal().getWidth()&&(t=i.getGeometryN(e));return t}if(arguments[0]instanceof W){let t=arguments[0];return t instanceof Et?this.widestGeometry(t):t}}horizontalBisector(t){var e=t.getEnvelopeInternal(),i=ii.getBisectorY(t);return this._factory.createLineString([new y(e.getMinX(),i),new y(e.getMaxX(),i)])}add(t){if(t instanceof Bt)this.addPolygon(t);else if(t instanceof Et)for(var e=t,i=0;ithis._loY&&(this._loY=t):t>this._centreY&&t=t.length&&(e=0),e}static computeC(t,e,i){return t*i.y-e*i.x}static getMinimumDiameter(t){return new oi(t).getDiameter()}static getMinimumRectangle(t){return new oi(t).getMinimumRectangle()}static computeSegmentForLine(t,e,i){var r=null,n=null;return Math.abs(e)>Math.abs(t)?(r=new y(0,i/e),n=new y(1,i/e-t/e)):(r=new y(i/t,0),n=new y(i/t-e/t,1)),new pe(r,n)}getWidthCoordinate(){return this.computeMinimumDiameter(),this._minWidthPt}getSupportingSegment(){return this.computeMinimumDiameter(),this._inputGeom.getFactory().createLineString([this._minBaseSeg.p0,this._minBaseSeg.p1])}getDiameter(){if(this.computeMinimumDiameter(),null===this._minWidthPt)return this._inputGeom.getFactory().createLineString();var t=this._minBaseSeg.project(this._minWidthPt);return this._inputGeom.getFactory().createLineString([t,this._minWidthPt])}computeWidthConvex(t){this._convexHullPts=t instanceof Bt?t.getExteriorRing().getCoordinates():t.getCoordinates(),0===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=null,this._minBaseSeg=null):1===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[0]):2===this._convexHullPts.length||3===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[1]):this.computeConvexRingMinDiameter(this._convexHullPts)}computeConvexRingMinDiameter(t){this._minWidth=n.MAX_VALUE;for(var e=1,i=new pe,r=0;r=r;)r=n,s=o,o=oi.nextIndex(t,s),n=e.distancePerpendicular(t[o]);return rr&&(r=l),lo&&(o=h),h0&&r<4&&!this._preserveType?this._factory.createLineString(i):this._factory.createLinearRing(i)}getClass(){return li}get interfaces_(){return[]}}li.constructor_=function(){this._inputGeom=null,this._factory=null,this._pruneEmptyGeometry=!0,this._preserveGeometryCollectionType=!0,this._preserveCollections=!1,this._preserveType=!1};class hi{constructor(){hi.constructor_.apply(this,arguments)}static densifyPoints(t,e,i){for(var r=new pe,n=new M,s=0;s1)for(var l=o/a,h=1;he?t:e)?3:i}static isInHalfPlane(t,e){return e===di.SE?t===di.SE||t===di.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new i("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?di.NE:di.SE:e>=0?di.NW:di.SW}if(arguments[0]instanceof y&&arguments[1]instanceof y){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new i("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?di.NE:di.SE:e.y>=t.y?di.NW:di.SW}}getClass(){return di}get interfaces_(){return[]}}di.constructor_=function(){},di.NE=0,di.NW=1,di.SW=2,di.SE=3;class gi{constructor(){gi.constructor_.apply(this,arguments)}static init(t,e){if(null!==t._sym||null!==e._sym||null!==t._next||null!==e._next)throw new IllegalStateException("Edges are already initialized");return t.init(e),t}static create(t,e){var i=new gi(t),r=new gi(e);return i.init(r),i}find(t){var e=this;do{if(null===e)return null;if(e.dest().equals2D(t))return e;e=e.oNext()}while(e!==this);return null}dest(){return this._sym._orig}oNext(){return this._sym._next}insert(t){if(this.oNext()===this)return this.insertAfter(t),null;var e=this.compareTo(t),i=this;do{var r=i.oNext();if(r.compareTo(t)!==e||r===this)return i.insertAfter(t),null;i=r}while(i!==this);_.shouldNeverReachHere()}insertAfter(t){_.equals(this._orig,t.orig());var e=this.oNext();this._sym.setNext(t),t.sym().setNext(e)}degree(){var t=0,e=this;do{t++,e=e.oNext()}while(e!==this);return t}equals(){if(2===arguments.length&&arguments[1]instanceof y&&arguments[0]instanceof y){let t=arguments[0],e=arguments[1];return this._orig.equals2D(t)&&this._sym._orig.equals(e)}}deltaY(){return this._sym._orig.y-this._orig.y}sym(){return this._sym}prev(){return this._sym.next()._sym}compareAngularDirection(t){var e=this.deltaX(),i=this.deltaY(),r=t.deltaX(),n=t.deltaY();if(e===r&&i===n)return 0;var s=di.quadrant(e,i),o=di.quadrant(r,n);return s>o?1:s0||this._isIn?fe.INTERIOR:fe.EXTERIOR)}getClass(){return xi}get interfaces_(){return[]}}xi.constructor_=function(){if(this._boundaryRule=H.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new i("Rule must be non-null");this._boundaryRule=t}};class bi{constructor(){bi.constructor_.apply(this,arguments)}static opposite(t){return t===bi.LEFT?bi.RIGHT:t===bi.RIGHT?bi.LEFT:t}getClass(){return bi}get interfaces_(){return[]}}bi.constructor_=function(){},bi.ON=0,bi.LEFT=1,bi.RIGHT=2;class wi{constructor(){wi.constructor_.apply(this,arguments)}computeIntersections(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)}getClass(){return wi}get interfaces_(){return[]}}wi.constructor_=function(){this.mce=null,this.chainIndex=null;let t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};class Ei{constructor(){Ei.constructor_.apply(this,arguments)}isDelete(){return this._eventType===Ei.DELETE}setDeleteEventIndex(t){this._deleteEventIndex=t}getObject(){return this._obj}compareTo(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===Ei.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return Ei}get interfaces_(){return[u]}}Ei.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=Ei.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=Ei.INSERT,this._label=t,this._xValue=e,this._obj=i}},Ei.INSERT=1,Ei.DELETE=2;class Si{constructor(){Si.constructor_.apply(this,arguments)}getClass(){return Si}get interfaces_(){return[]}}Si.constructor_=function(){};class Ii{constructor(){Ii.constructor_.apply(this,arguments)}static isAdjacentSegments(t,e){return 1===Math.abs(t-e)}isTrivialIntersection(t,e,i,r){if(t===i&&1===this._li.getIntersectionNum()){if(Ii.isAdjacentSegments(e,r))return!0;if(t.isClosed()){var n=t.getNumPoints()-1;if(0===e&&r===n||0===r&&e===n)return!0}}return!1}getProperIntersectionPoint(){return this._properIntersectionPoint}setIsDoneIfProperInt(t){this._isDoneWhenProperInt=t}hasProperInteriorIntersection(){return this._hasProperInterior}isBoundaryPointInternal(t,e){for(var i=e.iterator();i.hasNext();){var r=i.next().getCoordinate();if(t.isIntersection(r))return!0}return!1}hasProperIntersection(){return this._hasProper}hasIntersection(){return this._hasIntersection}isDone(){return this._isDone}isBoundaryPoint(t,e){return!(null===e||!this.isBoundaryPointInternal(t,e[0])&&!this.isBoundaryPointInternal(t,e[1]))}setBoundaryNodes(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e}addIntersections(t,e,i,r){if(t===i&&e===r)return null;this.numTests++;var n=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[r],a=i.getCoordinates()[r+1];this._li.computeIntersection(n,s,o,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),i.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,i,r)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),i.addIntersections(this._li,r,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))}getClass(){return Ii}get interfaces_(){return[]}}Ii.constructor_=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=i};class Ci extends Si{constructor(){super(),Ci.constructor_.apply(this,arguments)}prepareEvents(){Re.sort(this.events);for(var t=0;tthis.location.length){var e=new Array(3).fill(null);e[bi.ON]=this.location[bi.ON],e[bi.LEFT]=fe.NONE,e[bi.RIGHT]=fe.NONE,this.location=e}for(var i=0;i1&&t.append(fe.toLocationSymbol(this.location[bi.LEFT])),t.append(fe.toLocationSymbol(this.location[bi.ON])),this.location.length>1&&t.append(fe.toLocationSymbol(this.location[bi.RIGHT])),t.toString()}setLocations(t,e,i){this.location[bi.ON]=t,this.location[bi.LEFT]=e,this.location[bi.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t0||!e.coord.equals2D(r);n||i--;var s=new Array(i).fill(null),o=0;s[o++]=new y(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return n&&(s[o]=e.coord),new Fi(s,new Li(this.edge._label))}add(t,e,i){var r=new Mi(t,e,i),n=this._nodeMap.get(r);return null!==n?n:(this._nodeMap.put(r,r),r)}isIntersection(t){for(var e=this.iterator();e.hasNext();)if(e.next().coord.equals(t))return!0;return!1}getClass(){return Oi}get interfaces_(){return[]}}Oi.constructor_=function(){this._nodeMap=new gt,this.edge=null;let t=arguments[0];this.edge=t};class Ri{constructor(){Ri.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(r=1),this._depth[t][i]=r}}}getDelta(t){return this._depth[t][bi.RIGHT]-this._depth[t][bi.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?fe.EXTERIOR:fe.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let r=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=r.getLocation(t,e);i!==fe.EXTERIOR&&i!==fe.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=Ni.depthAtLocation(i):this._depth[t][e]+=Ni.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===fe.INTERIOR&&this._depth[t][e]++}}getClass(){return Ni}get interfaces_(){return[]}}Ni.constructor_=function(){this._depth=Array(2).fill().map(()=>Array(3));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=Ni.NULL_VALUE},Ni.NULL_VALUE=-1;class Ai{constructor(){Ai.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){_.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return Ai}get interfaces_(){return[]}}Ai.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class Fi extends Ai{constructor(){super(),Fi.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof me&&arguments[0]instanceof Li))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,bi.ON),t.getLocation(1,bi.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,bi.LEFT),t.getLocation(1,bi.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,bi.RIGHT),t.getLocation(1,bi.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new Fi(t,Li.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof Fi))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,r=!0,n=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){Fi.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&3===this.pts.length&&!!this.pts[0].equals(this.pts[2])}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new Pi(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new O;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;et._quadrant?1:this._quadrant=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,r=t.iterator();r.hasNext();){var n=r.next();e[i++]=n.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===fe.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var r=Q.removeRepeatedPoints(t.getCoordinates());if(r.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=r[0],null;var n=e,s=i;j.isCCW(r)&&(n=i,s=e);var o=new Fi(r,new Li(this._argIndex,fe.BOUNDARY,n,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,r[0],fe.BOUNDARY)}insertPoint(t,e,i){var r=this._nodes.addNode(e),n=r.getLabel();null===n?r._label=new Li(t,i):n.setLocation(t,i)}createEdgeSetIntersector(){return new Ci}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.eiList.iterator();n.hasNext();){var s=n.next();this.addSelfIntersectionNode(t,s.coord,r)}}add(){if(!(1===arguments.length&&arguments[0]instanceof W))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof qt&&(this._useBoundaryDeterminationRule=!1),t instanceof Bt)this.addPolygon(t);else if(t instanceof kt)this.addLineString(t);else if(t instanceof jt)this.addPoint(t);else if(t instanceof Ut)this.addCollection(t);else if(t instanceof St)this.addCollection(t);else if(t instanceof qt)this.addCollection(t);else{if(!(t instanceof Et))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new De(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof kt){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return Vi}get interfaces_(){return[]}}Vi.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new re,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new xi,2===arguments.length){let t=arguments[0],e=arguments[1];Vi.constructor_.call(this,t,e,H.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};var qi=Object.freeze({GeometryGraph:Vi});class Yi{constructor(){Yi.constructor_.apply(this,arguments)}visit(t){}getClass(){return Yi}get interfaces_(){return[]}}Yi.constructor_=function(){};class Wi{constructor(){Wi.constructor_.apply(this,arguments)}isRepeated(){return this._count>1}getRight(){return this._right}getCoordinate(){return this._p}setLeft(t){this._left=t}getX(){return this._p.x}getData(){return this._data}getCount(){return this._count}getLeft(){return this._left}getY(){return this._p.y}increment(){this._count=this._count+1}setRight(t){this._right=t}getClass(){return Wi}get interfaces_(){return[]}}Wi.constructor_=function(){if(this._p=null,this._data=null,this._left=null,this._right=null,this._count=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._p=new y(t),this._left=null,this._right=null,this._count=1,this._data=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._p=new y(t,e),this._left=null,this._right=null,this._count=1,this._data=i}};class Xi{constructor(){Xi.constructor_.apply(this,arguments)}static toCoordinates(){if(1===arguments.length){let t=arguments[0];return Xi.toCoordinates(t,!1)}if(2===arguments.length){let s=arguments[0],o=arguments[1];for(var t=new M,e=s.iterator();e.hasNext();)for(var i=e.next(),r=o?i.getCount():1,n=0;n0){var t=this.findBestMatchNode(e);if(null!==t)return t.increment(),t}return this.insertExact(e,i)}}query(){if(1===arguments.length){let e=arguments[0];var t=new T;return this.query(e,t),t}if(2===arguments.length)if(arguments[0]instanceof O&&x(arguments[1],S)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,new class{get interfaces_(){return[Yi]}visit(t){e.add(t)}})}else if(arguments[0]instanceof O&&x(arguments[1],Yi)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,e)}}queryNode(t,e,i,r){if(null===t)return null;var n=null,s=null,o=null;i?(n=e.getMinX(),s=e.getMaxX(),o=t.getX()):(n=e.getMinY(),s=e.getMaxY(),o=t.getY());var a=o<=s;n=e&&(t.getMinY()>=i&&(r=3),t.getMaxY()<=i&&(r=1)),t.getMaxX()<=e&&(t.getMinY()>=i&&(r=2),t.getMaxY()<=i&&(r=0)),r}hasChildren(){for(var t=0;t<4;t++)if(null!==this._subnode[t])return!0;return!1}isPrunable(){return!(this.hasChildren()||this.hasItems())}addAllItems(t){t.addAll(this._items);for(var e=0;e<4;e++)null!==this._subnode[e]&&this._subnode[e].addAllItems(t);return t}getNodeCount(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+1}size(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+this._items.size()}addAllItemsFromOverlapping(t,e){if(!this.isSearchMatch(t))return null;e.addAll(this._items);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].addAllItemsFromOverlapping(t,e)}visitItems(t,e){for(var i=this._items.iterator();i.hasNext();)e.visitItem(i.next())}hasItems(){return!this._items.isEmpty()}remove(t,e){if(!this.isSearchMatch(t))return!1;for(var i=!1,r=0;r<4;r++)if(null!==this._subnode[r]&&(i=this._subnode[r].remove(t,e))){this._subnode[r].isPrunable()&&(this._subnode[r]=null);break}return i||this._items.remove(e)}visit(t,e){if(!this.isSearchMatch(t))return null;this.visitItems(t,e);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].visit(t,e)}getItems(){return this._items}depth(){for(var t=0,e=0;e<4;e++)if(null!==this._subnode[e]){var i=this._subnode[e].depth();i>t&&(t=i)}return t+1}isEmpty(){var t=!0;if(this._items.isEmpty()){for(var e=0;e<4;e++)if(null!==this._subnode[e]&&!this._subnode[e].isEmpty()){t=!1;break}}else t=!1;return t}add(t){this._items.add(t)}getClass(){return Ki}get interfaces_(){return[p]}}function $i(){}Ki.constructor_=function(){this._items=new T,this._subnode=new Array(4).fill(null)},$i.exponent=function(t){return function(t,e){var i,r,n,s,o={32:8,64:11}[t];if(s||(i=e<0||1/e<0,isFinite(e)||(s={32:{d:127,c:128,b:0,a:0},64:{d:32752,c:0,b:0,a:0}}[t],i&&(s.d+=1<=2;)r++,n/=2;for(;n<1&&r>0;)r--,n*=2;r<=0&&(n/=2),32===t&&r>254&&(s={d:i?255:127,c:128,b:0,a:0},r=Math.pow(2,o)-1,n=0)}return r}(64,t)-1023},$i.powerOf2=function(t){return Math.pow(2,t)};class Ji{constructor(){Ji.constructor_.apply(this,arguments)}static computeQuadLevel(t){var e=t.getWidth(),i=t.getHeight(),r=e>i?e:i;return $i.exponent(r)+1}getLevel(){return this._level}computeKey(){if(1===arguments.length){let t=arguments[0];for(this._level=Ji.computeQuadLevel(t),this._env=new O,this.computeKey(this._level,t);!this._env.contains(t);)this._level+=1,this.computeKey(this._level,t)}else if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=$i.powerOf2(e);this._pt.x=Math.floor(i.getMinX()/t)*t,this._pt.y=Math.floor(i.getMinY()/t)*t,this._env.init(this._pt.x,this._pt.x+t,this._pt.y,this._pt.y+t)}}getEnvelope(){return this._env}getCentre(){return new y((this._env.getMinX()+this._env.getMaxX())/2,(this._env.getMinY()+this._env.getMaxY())/2)}getPoint(){return this._pt}getClass(){return Ji}get interfaces_(){return[]}}Ji.constructor_=function(){this._pt=new y,this._level=0,this._env=null;let t=arguments[0];this.computeKey(t)};class Qi extends Ki{constructor(){super(),Qi.constructor_.apply(this,arguments)}static createNode(t){var e=new Ji(t);return new Qi(e.getEnvelope(),e.getLevel())}static createExpanded(t,e){var i=new O(e);null!==t&&i.expandToInclude(t._env);var r=Qi.createNode(i);return null!==t&&r.insertNode(t),r}find(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1===e?this:null!==this._subnode[e]?this._subnode[e].find(t):this}isSearchMatch(t){return null!==t&&this._env.intersects(t)}getSubnode(t){return null===this._subnode[t]&&(this._subnode[t]=this.createSubnode(t)),this._subnode[t]}getEnvelope(){return this._env}getNode(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1!==e?this.getSubnode(e).getNode(t):this}createSubnode(t){var e=0,i=0,r=0,n=0;switch(t){case 0:e=this._env.getMinX(),i=this._centrex,r=this._env.getMinY(),n=this._centrey;break;case 1:e=this._centrex,i=this._env.getMaxX(),r=this._env.getMinY(),n=this._centrey;break;case 2:e=this._env.getMinX(),i=this._centrex,r=this._centrey,n=this._env.getMaxY();break;case 3:e=this._centrex,i=this._env.getMaxX(),r=this._centrey,n=this._env.getMaxY()}var s=new O(e,i,r,n);return new Qi(s,this._level-1)}insertNode(t){_.isTrue(null===this._env||this._env.contains(t._env));var e=Ki.getSubnodeIndex(t._env,this._centrex,this._centrey);if(t._level===this._level-1)this._subnode[e]=t;else{var i=this.createSubnode(e);i.insertNode(t),this._subnode[e]=i}}getClass(){return Qi}get interfaces_(){return[]}}Qi.constructor_=function(){this._env=null,this._centrex=null,this._centrey=null,this._level=null;let t=arguments[0],e=arguments[1];this._env=t,this._level=e,this._centrex=(t.getMinX()+t.getMaxX())/2,this._centrey=(t.getMinY()+t.getMaxY())/2};class tr{constructor(){tr.constructor_.apply(this,arguments)}static isZeroWidth(t,e){var i=e-t;if(0===i)return!0;var r=i/Math.max(Math.abs(t),Math.abs(e));return $i.exponent(r)<=tr.MIN_BINARY_EXPONENT}getClass(){return tr}get interfaces_(){return[]}}tr.constructor_=function(){},tr.MIN_BINARY_EXPONENT=-50;class er extends Ki{constructor(){super(),er.constructor_.apply(this,arguments)}insert(t,e){var i=Ki.getSubnodeIndex(t,er.origin.x,er.origin.y);if(-1===i)return this.add(e),null;var r=this._subnode[i];if(null===r||!r.getEnvelope().contains(t)){var n=Qi.createExpanded(r,t);this._subnode[i]=n}this.insertContained(this._subnode[i],t,e)}isSearchMatch(t){return!0}insertContained(t,e,i){_.isTrue(t.getEnvelope().contains(e));var r=tr.isZeroWidth(e.getMinX(),e.getMaxX()),n=tr.isZeroWidth(e.getMinY(),e.getMaxY());(r||n?t.find(e):t.getNode(e)).add(i)}getClass(){return er}get interfaces_(){return[]}}er.constructor_=function(){},er.origin=new y(0,0);class ir{constructor(){ir.constructor_.apply(this,arguments)}insert(t,e){}remove(t,e){}query(){}getClass(){return ir}get interfaces_(){return[]}}ir.constructor_=function(){};class rr{constructor(){rr.constructor_.apply(this,arguments)}static ensureExtent(t,e){var i=t.getMinX(),r=t.getMaxX(),n=t.getMinY(),s=t.getMaxY();return i!==r&&n!==s?t:(i===r&&(r=(i-=e/2)+e/2),n===s&&(s=(n-=e/2)+e/2),new O(i,r,n,s))}size(){return null!==this._root?this._root.size():0}insert(t,e){this.collectStats(t);var i=rr.ensureExtent(t,this._minExtent);this._root.insert(i,e)}query(){if(1===arguments.length){let e=arguments[0];var t=new Fe;return this.query(e,t),t.getItems()}if(2===arguments.length){let t=arguments[0],e=arguments[1];this._root.visit(t,e)}}queryAll(){var t=new T;return this._root.addAllItems(t),t}remove(t,e){var i=rr.ensureExtent(t,this._minExtent);return this._root.remove(i,e)}collectStats(t){var e=t.getWidth();e0&&(this._minExtent=e);var i=t.getHeight();i0&&(this._minExtent=i)}depth(){return null!==this._root?this._root.depth():0}isEmpty(){return null===this._root||this._root.isEmpty()}getClass(){return rr}get interfaces_(){return[ir,p]}}rr.constructor_=function(){this._root=null,this._minExtent=1,this._root=new er},rr.serialVersionUID=-0x678b60c967a25400;var nr=Object.freeze({Quadtree:rr});class sr{constructor(){sr.constructor_.apply(this,arguments)}getBounds(){}getClass(){return sr}get interfaces_(){return[]}}sr.constructor_=function(){};class or{constructor(){or.constructor_.apply(this,arguments)}getItem(){return this._item}getBounds(){return this._bounds}getClass(){return or}get interfaces_(){return[sr,p]}}or.constructor_=function(){this._bounds=null,this._item=null;let t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};class ar{constructor(){ar.constructor_.apply(this,arguments)}poll(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t}size(){return this._size}reorder(t){for(var e=null,i=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(i)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,i)}clear(){this._size=0,this._items.clear()}peek(){return this.isEmpty()?null:this._items.get(1)}isEmpty(){return 0===this._size}add(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)}getClass(){return ar}get interfaces_(){return[]}}ar.constructor_=function(){this._size=null,this._items=null,this._size=0,this._items=new T,this._items.add(null)};class lr{constructor(){lr.constructor_.apply(this,arguments)}getLevel(){return this._level}size(){return this._childBoundables.size()}getChildBoundables(){return this._childBoundables}addChildBoundable(t){_.isTrue(null===this._bounds),this._childBoundables.add(t)}isEmpty(){return this._childBoundables.isEmpty()}getBounds(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds}getClass(){return lr}get interfaces_(){return[sr,p]}}lr.constructor_=function(){if(this._childBoundables=new T,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._level=t}},lr.serialVersionUID=0x5a1e55ec41369800;class hr{constructor(){hr.constructor_.apply(this,arguments)}static area(t){return t.getBounds().getArea()}static isComposite(t){return t instanceof lr}expandToQueue(t,e){var r=hr.isComposite(this._boundable1),n=hr.isComposite(this._boundable2);if(r&&n)return hr.area(this._boundable1)>hr.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(r)return this.expand(this._boundable1,this._boundable2,t,e),null;if(n)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new i("neither boundable is composite")}isLeaves(){return!(hr.isComposite(this._boundable1)||hr.isComposite(this._boundable2))}compareTo(t){var e=t;return this._distancee._distance?1:0}expand(t,e,i,r){for(var n=t.getChildBoundables().iterator();n.hasNext();){var s=n.next(),o=new hr(s,e,this._itemDistance);o.getDistance()e?1:t-2),r.getLevel()===t)return n.add(r),null;for(var e=r.getChildBoundables().iterator();e.hasNext();){var i=e.next();i instanceof lr?this.boundablesAtLevel(t,i,n):(_.isTrue(i instanceof or),-1===t&&n.add(i))}return null}}query(){if(1===arguments.length){let e=arguments[0];this.build();var t=new T;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.queryInternal(e,this._root,t),t}if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.queryInternal(t,this._root,e)}}build(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0}getRoot(){return this.build(),this._root}remove(){if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.remove(t,this._root,e)}if(3===arguments.length){let n=arguments[0],s=arguments[1],o=arguments[2];var t=this.removeItem(s,o);if(t)return!0;for(var e=null,i=s.getChildBoundables().iterator();i.hasNext();){var r=i.next();if(this.getIntersectsOp().intersects(r.getBounds(),n)&&r instanceof lr&&(t=this.remove(n,r,o))){e=r;break}}return null!==e&&e.getChildBoundables().isEmpty()&&s.getChildBoundables().remove(e),t}}createHigherLevels(t,e){_.isTrue(!t.isEmpty());var i=this.createParentBoundables(t,e+1);return 1===i.size()?i.get(0):this.createHigherLevels(i,e+1)}depth(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var i=e.next();if(i instanceof lr){var r=this.depth(i);r>t&&(t=r)}}return t+1}}createParentBoundables(t,e){_.isTrue(!t.isEmpty());var i=new T;i.add(this.createNode(e));var r=new T(t);Re.sort(r,this.getComparator());for(var n=r.iterator();n.hasNext();){var s=n.next();this.lastNode(i).getChildBoundables().size()===this.getNodeCapacity()&&i.add(this.createNode(e)),this.lastNode(i).addChildBoundable(s)}return i}isEmpty(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}getClass(){return cr}get interfaces_(){return[p]}}cr.IntersectsOp=function(){},cr.constructor_=function(){if(this._root=null,this._built=!1,this._itemBoundables=new T,this._nodeCapacity=null,0===arguments.length)cr.constructor_.call(this,cr.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];_.isTrue(t>1,"Node capacity must be greater than 1"),this._nodeCapacity=t}},cr.serialVersionUID=-0x35ef64c82d4c5400,cr.DEFAULT_NODE_CAPACITY=10;class ur{constructor(){ur.constructor_.apply(this,arguments)}distance(t,e){}getClass(){return ur}get interfaces_(){return[]}}ur.constructor_=function(){};class dr extends cr{constructor(){super(),dr.constructor_.apply(this,arguments)}static centreX(t){return dr.avg(t.getMinX(),t.getMaxX())}static avg(t,e){return(t+e)/2}static getItems(t){for(var e=new Array(t.size()).fill(null),i=0;!t.isEmpty();){var r=t.poll();e[i]=r.getBoundable(0).getItem(),i++}return e}static centreY(t){return dr.avg(t.getMinY(),t.getMaxY())}createParentBoundablesFromVerticalSlices(t,e){_.isTrue(t.length>0);for(var i=new T,r=0;r0&&!((l=(a=s.poll()).getDistance())>=e);)a.isLeaves()?(e=l,i=a):a.expandToQueue(s,e);return[i.getBoundable(0).getItem(),i.getBoundable(1).getItem()]}if(arguments[0]instanceof hr&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1];return this.nearestNeighbour(t,n.POSITIVE_INFINITY,e)}}else if(3===arguments.length){if(x(arguments[2],ur)&&arguments[0]instanceof O&&arguments[1]instanceof Object){let e=arguments[2];var r=new or(arguments[0],arguments[1]);return t=new hr(this.getRoot(),r,e),this.nearestNeighbour(t)[0]}if(Number.isInteger(arguments[2])&&arguments[0]instanceof hr&&"number"==typeof arguments[1]){let t=arguments[0],i=arguments[2];var s;e=arguments[1],(s=new ar).add(t);for(var o=new ar;!s.isEmpty()&&e>=0;){var a,l;if((l=(a=s.poll()).getDistance())>=e)break;a.isLeaves()?o.size()l&&(o.poll(),o.add(a)),e=o.peek().getDistance()):a.expandToQueue(s,e)}return dr.getItems(o)}}else if(4===arguments.length){let e=arguments[2],i=arguments[3];return r=new or(arguments[0],arguments[1]),t=new hr(this.getRoot(),r,e),this.nearestNeighbour(t,i)}}getClass(){return dr}get interfaces_(){return[ir,p]}}class gr extends lr{constructor(){super(),gr.constructor_.apply(this,arguments)}computeBounds(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var i=e.next();null===t?t=new O(i.getBounds()):t.expandToInclude(i.getBounds())}return t}getClass(){return gr}get interfaces_(){return[]}}gr.constructor_=function(){let t=arguments[0];lr.constructor_.call(this,t)},dr.STRtreeNode=gr,dr.constructor_=function(){if(0===arguments.length)dr.constructor_.call(this,dr.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];cr.constructor_.call(this,t)}},dr.serialVersionUID=0x39920f7d5f261e0,dr.xComparator=new class{get interfaces_(){return[g]}compare(t,e){return cr.compareDoubles(dr.centreX(t.getBounds()),dr.centreX(e.getBounds()))}},dr.yComparator=new class{get interfaces_(){return[g]}compare(t,e){return cr.compareDoubles(dr.centreY(t.getBounds()),dr.centreY(e.getBounds()))}},dr.intersectsOp=new class{get interfaces_(){return[IntersectsOp]}intersects(t,e){return t.intersects(e)}},dr.DEFAULT_NODE_CAPACITY=10;var pr=Object.freeze({STRtree:dr}),fr=Object.freeze({kdtree:Zi,quadtree:nr,strtree:pr});const mr=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"];class _r{constructor(t){this.geometryFactory=t||new oe}read(t){let e;const i=(e="string"==typeof t?JSON.parse(t):t).type;if(!yr[i])throw new Error("Unknown GeoJSON type: "+e.type);return-1!==mr.indexOf(i)?yr[i].call(this,e.coordinates):"GeometryCollection"===i?yr[i].call(this,e.geometries):yr[i].call(this,e)}write(t){const e=t.getGeometryType();if(!vr[e])throw new Error("Geometry is not supported");return vr[e].call(this,t)}}const yr={Feature:function(t){const e={};for(let i in t)e[i]=t[i];if(t.geometry){const i=t.geometry.type;if(!yr[i])throw new Error("Unknown GeoJSON type: "+t.type);e.geometry=this.read(t.geometry)}return t.bbox&&(e.bbox=yr.bbox.call(this,t.bbox)),e},FeatureCollection:function(t){const e={};if(t.features){e.features=[];for(let i=0;ie?1:0}static compare(t,e,i){if(e.equals2D(i))return 0;var r=wr.relativeSign(e.x,i.x),n=wr.relativeSign(e.y,i.y);switch(t){case 0:return wr.compareValue(r,n);case 1:return wr.compareValue(n,r);case 2:return wr.compareValue(n,-r);case 3:return wr.compareValue(-r,n);case 4:return wr.compareValue(-r,-n);case 5:return wr.compareValue(-n,-r);case 6:return wr.compareValue(-n,r);case 7:return wr.compareValue(r,-n)}return _.shouldNeverReachHere("invalid octant value"),0}static compareValue(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0}getClass(){return wr}get interfaces_(){return[]}}wr.constructor_=function(){};class Er{constructor(){Er.constructor_.apply(this,arguments)}getCoordinate(){return this.coord}print(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)}compareTo(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:wr.compare(this._segmentOctant,this.coord,e.coord)}isEndPoint(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t}isInterior(){return this._isInterior}getClass(){return Er}get interfaces_(){return[u]}}Er.constructor_=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];this._segString=t,this.coord=new y(e),this.segmentIndex=i,this._segmentOctant=r,this._isInterior=!e.equals2D(t.getCoordinate(i))};class Sr{constructor(){Sr.constructor_.apply(this,arguments)}getSplitCoordinates(){var t=new M;this.addEndpoints();for(var e=this.iterator(),i=e.next();e.hasNext();){var r=e.next();this.addEdgeCoordinates(i,r,t),i=r}return t.toCoordinateArray()}addCollapsedNodes(){var t=new T;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var i=e.next().intValue();this.add(this._edge.getCoordinate(i),i)}}print(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();)e.next().print(t)}findCollapsesFromExistingVertices(t){for(var e=0;e=0?n>=0?t>=e?0:1:t>=e?7:6:n>=0?t>=e?3:2:t>=e?4:5}if(arguments[0]instanceof y&&arguments[1]instanceof y){let t=arguments[0],e=arguments[1];var r=e.x-t.x,n=e.y-t.y;if(0===r&&0===n)throw new i("Cannot compute the octant for two identical points "+t);return Ir.octant(r,n)}}getClass(){return Ir}get interfaces_(){return[]}}Ir.constructor_=function(){};class Cr{constructor(){Cr.constructor_.apply(this,arguments)}getCoordinates(){}size(){}getCoordinate(t){}isClosed(){}setData(t){}getData(){}getClass(){return Cr}get interfaces_(){return[]}}Cr.constructor_=function(){};class Tr{constructor(){Tr.constructor_.apply(this,arguments)}addIntersection(t,e){}getClass(){return Tr}get interfaces_(){return[Cr]}}Tr.constructor_=function(){};class Lr{constructor(){Lr.constructor_.apply(this,arguments)}static getNodedSubstrings(){if(1===arguments.length){let e=arguments[0];var t=new T;return Lr.getNodedSubstrings(e,t),t}if(2===arguments.length){let t=arguments[1];for(var e=arguments[0].iterator();e.hasNext();)e.next().getNodeList().addSplitEdges(t)}}getCoordinates(){return this._pts}size(){return this._pts.length}getCoordinate(t){return this._pts[t]}isClosed(){return this._pts[0].equals(this._pts[this._pts.length-1])}getSegmentOctant(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))}setData(t){this._data=t}safeOctant(t,e){return t.equals2D(e)?0:Ir.octant(t,e)}getData(){return this._data}addIntersection(){if(2===arguments.length){let t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){let e=arguments[1],i=arguments[3];var t=new y(arguments[0].getIntersection(i));this.addIntersection(t,e)}}toString(){return ue.toLineString(new Kt(this._pts))}getNodeList(){return this._nodeList}addIntersectionNode(t,e){var i=e,r=i+1;if(r=t.length-1)return t.length-1;for(var r=di.quadrant(t[i],t[i+1]),n=e+1;ni.getId()&&(i.computeOverlaps(n,t),this._nOverlaps++),this._segInt.isDone())return null}}getClass(){return Ar}get interfaces_(){return[]}}class Fr extends Mr{constructor(){super(),Fr.constructor_.apply(this,arguments)}overlap(){if(4!==arguments.length)return super.overlap.apply(this,arguments);{let i=arguments[1],r=arguments[2],n=arguments[3];var t=arguments[0].getContext(),e=r.getContext();this._si.processIntersections(t,i,e,n)}}getClass(){return Fr}get interfaces_(){return[]}}Fr.constructor_=function(){this._si=null;let t=arguments[0];this._si=t},Ar.SegmentOverlapAction=Fr,Ar.constructor_=function(){if(this._monoChains=new T,this._index=new dr,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];Nr.constructor_.call(this,t)}};class kr{constructor(){kr.constructor_.apply(this,arguments)}rescale(){if(x(arguments[0],w))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.rescale(e.getCoordinates())}else if(arguments[0]instanceof Array){let e=arguments[0];for(2===e.length&&(new y(e[0]),new y(e[1])),t=0;t0&&this._minIndexthis._minCoord.y&&i.y>this._minCoord.y&&r===j.CLOCKWISE)&&(n=!0),n&&(this._minIndex=this._minIndex-1)}getRightmostSideOfSegment(t,e){var i=t.getEdge().getCoordinates();if(e<0||e+1>=i.length)return-1;if(i[e].y===i[e+1].y)return-1;var r=bi.LEFT;return i[e].ythis._minCoord.x)&&(this._minDe=t,this._minIndex=i,this._minCoord=e[i])}findRightmostEdgeAtNode(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}findEdge(t){for(var e=t.iterator();e.hasNext();){var i=e.next();i.isForward()&&this.checkForRightmostCoordinate(i)}_.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===bi.LEFT&&(this._orientedDe=this._minDe.getSym())}getClass(){return Br}get interfaces_(){return[]}}function Ur(){this.array_=[]}Br.constructor_=function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null},Ur.prototype.addLast=function(t){this.array_.push(t)},Ur.prototype.removeFirst=function(){return this.array_.shift()},Ur.prototype.isEmpty=function(){return 0===this.array_.length};class Vr{constructor(){Vr.constructor_.apply(this,arguments)}clearVisitedEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();)t.next().setVisited(!1)}getRightmostCoordinate(){return this._rightMostCoord}computeNodeDepth(t){for(var e=null,i=t.getEdges().iterator();i.hasNext();)if((r=i.next()).isVisited()||r.getSym().isVisited()){e=r;break}if(null===e)throw new Gi("unable to find edge to compute depths at "+t.getCoordinate());for(t.getEdges().computeDepths(e),i=t.getEdges().iterator();i.hasNext();){var r;(r=i.next()).setVisited(!0),this.copySymDepths(r)}}computeDepth(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.getNode(),e.getLabel(),e.setEdgeDepths(bi.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)}create(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}findResultEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(bi.RIGHT)>=1&&e.getDepth(bi.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}}computeDepths(t){var e=new st,i=new Ur,r=t.getNode();for(i.addLast(r),e.add(r),t.setVisited(!0);!i.isEmpty();){var n=i.removeFirst();e.add(n),this.computeNodeDepth(n);for(var s=n.getEdges().iterator();s.hasNext();){var o=s.next().getSym();if(!o.isVisited()){var a=o.getNode();e.contains(a)||(i.addLast(a),e.add(a))}}}}compareTo(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0}getEnvelope(){if(null===this._env){for(var t=new O,e=this._dirEdgeList.iterator();e.hasNext();)for(var i=e.next().getEdge().getCoordinates(),r=0;rthis._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2}addPoints(t,e,i){var r=t.getCoordinates();if(e){var n=1;i&&(n=0);for(var s=n;s=0;s--)this._pts.add(r[s])}isHole(){return this._isHole}setInResult(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)}containsPoint(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!ze.isInRing(t,e.getCoordinates()))return!1;for(var i=this._holes.iterator();i.hasNext();)if(i.next().containsPoint(t))return!1;return!0}addHole(t){this._holes.add(t)}isShell(){return null===this._shell}getLabel(){return this._label}getEdges(){return this._edges}getMaxNodeDegree(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree}getShell(){return this._shell}mergeLabel(){if(1===arguments.length){let t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){let e=arguments[1];var t=arguments[0].getLocation(e,bi.RIGHT);if(t===fe.NONE)return null;if(this._label.getLocation(e)===fe.NONE)return this._label.setLocation(e,t),null}}setShell(t){this._shell=t,null!==t&&t.addHole(this)}toPolygon(t){for(var e=new Array(this._holes.size()).fill(null),i=0;i2){s.linkDirectedEdgesForMinimalEdgeRings();var o=s.buildMinimalRings(),a=this.findShell(o);null!==a?(this.placePolygonHoles(a,o),e.add(a)):i.addAll(o)}else r.add(s)}return r}containsPoint(t){for(var e=this._shellList.iterator();e.hasNext();)if(e.next().containsPoint(t))return!0;return!1}buildMaximalEdgeRings(t){for(var e=new T,i=t.iterator();i.hasNext();){var r=i.next();if(r.isInResult()&&r.getLabel().isArea()&&null===r.getEdgeRing()){var n=new Wr(r,this._geometryFactory);e.add(n),n.setInResult()}}return e}placePolygonHoles(t,e){for(var i=e.iterator();i.hasNext();){var r=i.next();r.isHole()&&r.setShell(t)}}getPolygons(){return this.computePolygons(this._shellList)}findEdgeRingContaining(t,e){for(var i=t.getLinearRing(),r=i.getEnvelopeInternal(),n=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getLinearRing(),c=h.getEnvelopeInternal();null!==s&&(o=s.getLinearRing().getEnvelopeInternal());var u=!1;c.contains(r)&&ze.isInRing(n,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(s=l)}return s}findShell(t){for(var e=0,i=null,r=t.iterator();r.hasNext();){var n=r.next();n.isHole()||(i=n,e++)}return _.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),i}add(){if(1===arguments.length){let t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){let r=arguments[0],n=arguments[1];Ui.linkResultDirectedEdges(n);var t=this.buildMaximalEdgeRings(r),e=new T,i=this.buildMinimalEdgeRings(t,this._shellList,e);this.sortShellsAndHoles(i,this._shellList,e),this.placeFreeHoles(this._shellList,e)}}getClass(){return Xr}get interfaces_(){return[]}}Xr.constructor_=function(){this._geometryFactory=null,this._shellList=new T;let t=arguments[0];this._geometryFactory=t};class Hr{constructor(){Hr.constructor_.apply(this,arguments)}static simplify(t,e){return new Hr(t).simplify(e)}isDeletable(t,e,i,r){var n=this._inputLine[t],s=this._inputLine[e],o=this._inputLine[i];return!!this.isConcave(n,s,o)&&!!this.isShallow(n,s,o,r)&&this.isShallowSampled(n,s,t,i,r)}deleteShallowConcavities(){for(var t=1,e=(this._inputLine.length,this.findNextNonDeletedIndex(t)),i=this.findNextNonDeletedIndex(e),r=!1;i=0;i--)this.addPt(t[i])}isRedundant(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)=2&&this._ptList.get(this._ptList.size()-2),t.equals(e))return null;this._ptList.add(t)}setMinimumVertexDistance(t){this._minimimVertexDistance=t}getClass(){return Zr}get interfaces_(){return[]}}Zr.constructor_=function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new T},Zr.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);class Kr{constructor(){Kr.constructor_.apply(this,arguments)}addNextSegment(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var i=j.index(this._s0,this._s1,this._s2),r=i===j.CLOCKWISE&&this._side===bi.LEFT||i===j.COUNTERCLOCKWISE&&this._side===bi.RIGHT;0===i?this.addCollinear(e):r?this.addOutsideTurn(i,e):this.addInsideTurn(i,e)}addLineEndCap(t,e){var i=new pe(t,e),r=new pe;this.computeOffsetSegment(i,bi.LEFT,this._distance,r);var n=new pe;this.computeOffsetSegment(i,bi.RIGHT,this._distance,n);var s=e.x-t.x,o=e.y-t.y,a=Math.atan2(o,s);switch(this._bufParams.getEndCapStyle()){case zr.CAP_ROUND:this._segList.addPt(r.p1),this.addDirectedFillet(e,a+Math.PI/2,a-Math.PI/2,j.CLOCKWISE,this._distance),this._segList.addPt(n.p1);break;case zr.CAP_FLAT:this._segList.addPt(r.p1),this._segList.addPt(n.p1);break;case zr.CAP_SQUARE:var l=new y;l.x=Math.abs(this._distance)*Math.cos(a),l.y=Math.abs(this._distance)*Math.sin(a);var h=new y(r.p1.x+l.x,r.p1.y+l.y),c=new y(n.p1.x+l.x,n.p1.y+l.y);this._segList.addPt(h),this._segList.addPt(c)}}getCoordinates(){return this._segList.getCoordinates()}addMitreJoin(t,e,i,r){var n=!0,s=null;try{s=z.intersection(e.p0,e.p1,i.p0,i.p1),(r<=0?1:s.distance(t)/Math.abs(r))>this._bufParams.getMitreLimit()&&(n=!1)}catch(t){if(!(t instanceof P))throw t;s=new y(0,0),n=!1}n?this._segList.addPt(s):this.addLimitedMitreJoin(e,i,r,this._bufParams.getMitreLimit())}addOutsideTurn(t,e){if(this._offset0.p1.distance(this._offset1.p0)=c&&(a-=2*Math.PI),this._segList.addPt(e),this.addDirectedFillet(t,a,c,r,n),this._segList.addPt(i)}addLastSegment(){this._segList.addPt(this._offset1.p1)}initSideSegments(t,e,i){this._s1=t,this._s2=e,this._side=i,this._seg1.setCoordinates(t,e),this.computeOffsetSegment(this._seg1,i,this._distance,this._offset1)}addLimitedMitreJoin(t,e,i,r){var n=this._seg0.p1,s=_e.angle(n,this._seg0.p0),o=(_e.angle(n,this._seg1.p1),_e.angleBetweenOriented(this._seg0.p0,n,this._seg1.p1)/2),a=_e.normalize(s+o),l=_e.normalize(a+Math.PI),h=r*i,c=i-h*Math.abs(Math.sin(o)),u=n.x+h*Math.cos(l),d=n.y+h*Math.sin(l),g=new y(u,d),p=new pe(n,g),f=p.pointAlongOffset(1,c),m=p.pointAlongOffset(1,-c);this._side===bi.LEFT?(this._segList.addPt(f),this._segList.addPt(m)):(this._segList.addPt(m),this._segList.addPt(f))}addDirectedFillet(t,e,i,r,n){var s,o=r===j.CLOCKWISE?-1:1,a=Math.abs(e-i),l=Math.trunc(a/this._filletAngleQuantum+.5);if(l<1)return null;s=a/l;for(var h=0,c=new y;h0){var i=new y((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i);var r=new y((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}createCircle(t){var e=new y(t.x+this._distance,t.y);this._segList.addPt(e),this.addDirectedFillet(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}addBevelJoin(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)}init(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Zr,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Kr.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}addCollinear(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===zr.JOIN_BEVEL||this._bufParams.getJoinStyle()===zr.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,j.CLOCKWISE,this._distance))}closeRing(){this._segList.closeRing()}hasNarrowConcaveAngle(){return this._hasNarrowConcaveAngle}getClass(){return Kr}get interfaces_(){return[]}}Kr.constructor_=function(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new pe,this._seg1=new pe,this._offset0=new pe,this._offset1=new pe,this._side=0,this._hasNarrowConcaveAngle=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._precisionModel=t,this._bufParams=e,this._li=new ge,this._filletAngleQuantum=Math.PI/2/e.getQuadrantSegments(),e.getQuadrantSegments()>=8&&e.getJoinStyle()===zr.JOIN_ROUND&&(this._closingSegLengthFactor=Kr.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)},Kr.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,Kr.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,Kr.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,Kr.MAX_CLOSING_SEG_LEN_FACTOR=80;class $r{constructor(){$r.constructor_.apply(this,arguments)}static copyCoordinates(t){for(var e=new Array(t.length).fill(null),i=0;i=0;o--)i.addNextSegment(n[o],!0)}else{i.addSegments(t,!1);var a=Hr.simplify(t,r),l=a.length-1;for(i.initSideSegments(a[0],a[1],bi.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment(),i.closeRing()}computeRingBufferCurve(t,e,i){var r=this.simplifyTolerance(this._distance);e===bi.RIGHT&&(r=-r);var n=Hr.simplify(t,r),s=n.length-1;i.initSideSegments(n[s-1],n[0],e);for(var o=1;o<=s;o++){var a=1!==o;i.addNextSegment(n[o],a)}i.closeRing()}computeLineBufferCurve(t,e){var i=this.simplifyTolerance(this._distance),r=Hr.simplify(t,i),n=r.length-1;e.initSideSegments(r[0],r[1],bi.LEFT);for(var s=2;s<=n;s++)e.addNextSegment(r[s],!0);e.addLastSegment(),e.addLineEndCap(r[n-1],r[n]);var o=Hr.simplify(t,-i),a=o.length-1;for(e.initSideSegments(o[a],o[a-1],bi.LEFT),s=a-2;s>=0;s--)e.addNextSegment(o[s],!0);e.addLastSegment(),e.addLineEndCap(o[1],o[0]),e.closeRing()}computePointCurve(t,e){switch(this._bufParams.getEndCapStyle()){case zr.CAP_ROUND:e.createCircle(t);break;case zr.CAP_SQUARE:e.createSquare(t)}}getLineCurve(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var i=Math.abs(e),r=this.getSegGen(i);if(t.length<=1)this.computePointCurve(t[0],r);else if(this._bufParams.isSingleSided()){var n=e<0;this.computeSingleSidedBufferCurve(t,n,r)}else this.computeLineBufferCurve(t,r);return r.getCoordinates()}getBufferParameters(){return this._bufParams}simplifyTolerance(t){return t*this._bufParams.getSimplifyFactor()}getRingCurve(t,e,i){if(this._distance=i,t.length<=2)return this.getLineCurve(t,i);if(0===i)return $r.copyCoordinates(t);var r=this.getSegGen(i);return this.computeRingBufferCurve(t,e,r),r.getCoordinates()}computeOffsetCurve(t,e,i){var r=this.simplifyTolerance(this._distance);if(e){var n=Hr.simplify(t,-r),s=n.length-1;i.initSideSegments(n[s],n[s-1],bi.LEFT),i.addFirstSegment();for(var o=s-2;o>=0;o--)i.addNextSegment(n[o],!0)}else{var a=Hr.simplify(t,r),l=a.length-1;for(i.initSideSegments(a[0],a[1],bi.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment()}getSegGen(t){return new Kr(this._precisionModel,this._bufParams,t)}getClass(){return $r}get interfaces_(){return[]}}$r.constructor_=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;let t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};class Jr{constructor(){Jr.constructor_.apply(this,arguments)}findStabbedSegments(){if(1===arguments.length){let n=arguments[0];for(var t=new T,e=this._subgraphs.iterator();e.hasNext();){var i=e.next(),r=i.getEnvelope();n.yr.getMaxY()||this.findStabbedSegments(n,i.getDirectedEdges(),t)}return t}if(3===arguments.length)if(x(arguments[2],S)&&arguments[0]instanceof y&&arguments[1]instanceof zi){let t=arguments[0],i=arguments[1],r=arguments[2];var n=i.getEdge().getCoordinates();for(e=0;ethis._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||j.index(this._seg.p0,this._seg.p1,t)===j.RIGHT)){var s=i.getDepth(bi.LEFT);this._seg.p0.equals(n[e])||(s=i.getDepth(bi.RIGHT));var o=new Qr(this._seg,s);r.add(o)}}else if(x(arguments[2],S)&&arguments[0]instanceof y&&x(arguments[1],S)){let t=arguments[0],i=arguments[2];for(e=arguments[1].iterator();e.hasNext();){var a=e.next();a.isForward()&&this.findStabbedSegments(t,a,i)}}}getDepth(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:Re.min(e)._leftDepth}getClass(){return Jr}get interfaces_(){return[]}}class Qr{constructor(){Qr.constructor_.apply(this,arguments)}compareTo(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var i=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==i||0!=(i=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?i:this._upwardSeg.compareTo(e._upwardSeg)}compareX(t,e){var i=t.p0.compareTo(e.p0);return 0!==i?i:t.p1.compareTo(e.p1)}toString(){return this._upwardSeg.toString()}getClass(){return Qr}get interfaces_(){return[u]}}Qr.constructor_=function(){this._upwardSeg=null,this._leftDepth=null;let t=arguments[0],e=arguments[1];this._upwardSeg=new pe(t),this._leftDepth=e},Jr.DepthSegment=Qr,Jr.constructor_=function(){this._subgraphs=null,this._seg=new pe;let t=arguments[0];this._subgraphs=t};class tn{constructor(){tn.constructor_.apply(this,arguments)}addPoint(t){if(this._distance<=0)return null;var e=t.getCoordinates(),i=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(i,fe.EXTERIOR,fe.INTERIOR)}addPolygon(t){var e=this._distance,i=bi.LEFT;this._distance<0&&(e=-this._distance,i=bi.RIGHT);var r=t.getExteriorRing(),n=Q.removeRepeatedPoints(r.getCoordinates());if(this._distance<0&&this.isErodedCompletely(r,this._distance))return null;if(this._distance<=0&&n.length<3)return null;this.addPolygonRing(n,e,i,fe.EXTERIOR,fe.INTERIOR);for(var s=0;s0&&this.isErodedCompletely(o,-this._distance)||this.addPolygonRing(a,e,bi.opposite(i),fe.INTERIOR,fe.EXTERIOR)}}isTriangleErodedCompletely(t,e){var i=new ye(t[0],t[1],t[2]),r=i.inCentre();return U.pointToSegment(r,i.p0,i.p1)=Vt.MINIMUM_VALID_SIZE&&j.isCCW(t)&&(s=n,o=r,i=bi.opposite(i));var a=this._curveBuilder.getRingCurve(t,i,e);this.addCurve(a,s,o)}add(t){if(t.isEmpty())return null;if(t instanceof Bt)this.addPolygon(t);else if(t instanceof kt)this.addLineString(t);else if(t instanceof jt)this.addPoint(t);else if(t instanceof Ut)this.addCollection(t);else if(t instanceof St)this.addCollection(t);else if(t instanceof qt)this.addCollection(t);else{if(!(t instanceof Et))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}isErodedCompletely(t,e){var i=t.getCoordinates();if(i.length<4)return e<0;if(4===i.length)return this.isTriangleErodedCompletely(i,e);var r=t.getEnvelopeInternal(),n=Math.min(r.getHeight(),r.getWidth());return e<0&&2*Math.abs(e)>n}addCollection(t){for(var e=0;e=0;i--){var r=this._edgeList.get(i),n=r.getSym();null===e&&(e=n),null!==t&&n.setNext(t),t=r}e.setNext(t)}computeDepths(){if(1===arguments.length){let n=arguments[0];var t=this.findIndex(n),e=(n.getLabel(),n.getDepth(bi.LEFT)),i=n.getDepth(bi.RIGHT),r=this.computeDepths(t+1,this._edgeList.size(),e);if(this.computeDepths(0,t,r)!==i)throw new Gi("depth mismatch at "+n.getCoordinate())}else if(3===arguments.length){let t=arguments[1];for(var n=arguments[2],s=arguments[0];s=0;n--){var s=this._resultAreaEdgeList.get(n),o=s.getSym();switch(null===e&&s.getEdgeRing()===t&&(e=s),r){case this._SCANNING_FOR_INCOMING:if(o.getEdgeRing()!==t)continue;i=o,r=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;i.setNextMin(s),r=this._SCANNING_FOR_INCOMING}}r===this._LINKING_TO_OUTGOING&&(_.isTrue(null!==e,"found null for first outgoing dirEdge"),_.isTrue(e.getEdgeRing()===t,"unable to link last incoming dirEdge"),i.setNextMin(e))}getOutgoingDegree(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();)e.next().isInResult()&&t++;return t}if(1===arguments.length){let i=arguments[0];for(t=0,e=this.iterator();e.hasNext();)e.next().getEdgeRing()===i&&t++;return t}}getLabel(){return this._label}findCoveredLineEdges(){for(var t=fe.NONE,e=this.iterator();e.hasNext();){var i=(n=e.next()).getSym();if(!n.isLineEdge()){if(n.isInResult()){t=fe.INTERIOR;break}if(i.isInResult()){t=fe.EXTERIOR;break}}}if(t===fe.NONE)return null;var r=t;for(e=this.iterator();e.hasNext();){var n;i=(n=e.next()).getSym(),n.isLineEdge()?n.getEdge().setCovered(r===fe.INTERIOR):(n.isInResult()&&(r=fe.EXTERIOR),i.isInResult()&&(r=fe.INTERIOR))}}computeLabelling(t){super.computeLabelling.call(this,t),this._label=new Li(fe.NONE);for(var e=this.iterator();e.hasNext();)for(var i=e.next().getEdge().getLabel(),r=0;r<2;r++){var n=i.getLocation(r);n!==fe.INTERIOR&&n!==fe.BOUNDARY||this._label.setLocation(r,fe.INTERIOR)}}getClass(){return rn}get interfaces_(){return[]}}rn.constructor_=function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2};class nn extends Bi{constructor(){super(),nn.constructor_.apply(this,arguments)}createNode(t){return new ki(t,new rn)}getClass(){return nn}get interfaces_(){return[]}}nn.constructor_=function(){};class sn{constructor(){sn.constructor_.apply(this,arguments)}static orientation(t){return 1===Q.increasingDirection(t)}static compareOriented(t,e,i,r){for(var n=e?1:-1,s=r?1:-1,o=e?t.length:-1,a=r?i.length:-1,l=e?0:t.length-1,h=r?0:i.length-1;;){var c=t[l].compareTo(i[h]);if(0!==c)return c;var u=(l+=n)===o,d=(h+=s)===a;if(u&&!d)return-1;if(!u&&d)return 1;if(u&&d)return 0}}compareTo(t){var e=t;return sn.compareOriented(this._pts,this._orientation,e._pts,e._orientation)}getClass(){return sn}get interfaces_(){return[u]}}sn.constructor_=function(){this._pts=null,this._orientation=null;let t=arguments[0];this._pts=t,this._orientation=sn.orientation(t)};class on{constructor(){on.constructor_.apply(this,arguments)}print(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var r=i.getCoordinates(),n=0;n0&&t.print(","),t.print(r[n].x+" "+r[n].y);t.println(")")}t.print(") ")}addAll(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())}findEdgeIndex(t){for(var e=0;er||this._maxys;if(o)return!1;var a=this.intersectsToleranceSquare(t,e);return _.isTrue(!(o&&a),"Found bad envelope test"),a}initCorners(t){this._minx=t.x-.5,this._maxx=t.x+.5,this._miny=t.y-.5,this._maxy=t.y+.5,this._corner[0]=new y(this._maxx,this._maxy),this._corner[1]=new y(this._minx,this._maxy),this._corner[2]=new y(this._minx,this._miny),this._corner[3]=new y(this._maxx,this._miny)}intersects(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}scale(t){return Math.round(t*this._scaleFactor)}getCoordinate(){return this._originalPt}copyScaled(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)}getSafeEnvelope(){if(null===this._safeEnv){var t=un.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new O(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv}intersectsPixelClosure(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.hasIntersection()))))}intersectsToleranceSquare(t,e){var i=!1,r=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.isProper()||(this._li.hasIntersection()&&(r=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.isProper()||i&&r||t.equals(this._pt)||e.equals(this._pt)))))}addSnappedNode(t,e){var i=t.getCoordinate(e),r=t.getCoordinate(e+1);return!!this.intersects(i,r)&&(t.addIntersection(this.getCoordinate(),e),!0)}getClass(){return un}get interfaces_(){return[]}}un.constructor_=function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;let t=arguments[0],e=arguments[1],r=arguments[2];if(this._originalPt=t,this._pt=t,this._scaleFactor=e,this._li=r,e<=0)throw new i("Scale factor must be non-zero");1!==e&&(this._pt=new y(this.scale(t.x),this.scale(t.y)),this._p0Scaled=new y,this._p1Scaled=new y),this.initCorners(this._pt)},un.SAFE_ENV_EXPANSION_FACTOR=.75;class dn{constructor(){dn.constructor_.apply(this,arguments)}select(){if(1===arguments.length);else if(2===arguments.length){let t=arguments[1];arguments[0].getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}getClass(){return dn}get interfaces_(){return[]}}dn.constructor_=function(){this.selectedSegment=new pe};class gn{constructor(){gn.constructor_.apply(this,arguments)}snap(){if(1===arguments.length){let t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){let i=arguments[0],r=arguments[1],n=arguments[2];var t=i.getSafeEnvelope(),e=new pn(i,r,n);return this._index.query(t,new class{get interfaces_(){return[Ce]}visitItem(i){i.select(t,e)}}),e.isNodeAdded()}}getClass(){return gn}get interfaces_(){return[]}}class pn extends dn{constructor(){super(),pn.constructor_.apply(this,arguments)}isNodeAdded(){return this._isNodeAdded}select(){if(!(2===arguments.length&&Number.isInteger(arguments[1])&&arguments[0]instanceof Or))return super.select.apply(this,arguments);{let e=arguments[1];var t=arguments[0].getContext();if(null!==this._parentEdge&&t===this._parentEdge&&e===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(t,e)}}getClass(){return pn}get interfaces_(){return[]}}pn.constructor_=function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._hotPixel=t,this._parentEdge=e,this._hotPixelVertexIndex=i},gn.HotPixelSnapAction=pn,gn.constructor_=function(){this._index=null;let t=arguments[0];this._index=t};class fn{constructor(){fn.constructor_.apply(this,arguments)}processIntersections(t,e,i,r){if(t===i&&e===r)return null;var n=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[r],a=i.getCoordinates()[r+1];if(this._li.computeIntersection(n,s,o,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var l=0;l0?e:0),s=i-Math.trunc(Math.log(n)/Math.log(10)+1);return Math.pow(10,s)}bufferFixedPrecision(t){var e=new kr(new mn(new ne(1)),t.getScale()),i=new hn(this._bufParams);i.setWorkingPrecisionModel(t),i.setNoder(e),this._resultGeometry=i.buffer(this._argGeom,this._distance)}bufferReducedPrecision(){if(0===arguments.length){for(var t=_n.MAX_PRECISION_DIGITS;t>=0;t--){try{this.bufferReducedPrecision(t)}catch(t){if(!(t instanceof Gi))throw t;this._saveException=t}if(null!==this._resultGeometry)return null}throw this._saveException}if(1===arguments.length){let t=arguments[0];var e=_n.precisionScaleFactor(this._argGeom,this._distance,t),i=new ne(e);this.bufferFixedPrecision(i)}}computeGeometry(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===ne.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()}setQuadrantSegments(t){this._bufParams.setQuadrantSegments(t)}bufferOriginalPrecision(){try{var t=new hn(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof f))throw t;this._saveException=t}}getResultGeometry(t){return this._distance=t,this.computeGeometry(),this._resultGeometry}setEndCapStyle(t){this._bufParams.setEndCapStyle(t)}getClass(){return _n}get interfaces_(){return[]}}_n.constructor_=function(){if(this._argGeom=null,this._distance=null,this._bufParams=new zr,this._resultGeometry=null,this._saveException=null,1===arguments.length){let t=arguments[0];this._argGeom=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._argGeom=t,this._bufParams=e}},_n.CAP_ROUND=zr.CAP_ROUND,_n.CAP_BUTT=zr.CAP_FLAT,_n.CAP_FLAT=zr.CAP_FLAT,_n.CAP_SQUARE=zr.CAP_SQUARE,_n.MAX_PRECISION_DIGITS=12;var yn=Object.freeze({BufferOp:_n,BufferParameters:zr});class vn{constructor(){vn.constructor_.apply(this,arguments)}static getPolygons(){if(1===arguments.length){let t=arguments[0];return vn.getPolygons(t,new T)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof Bt?e.add(t):t instanceof Et&&t.apply(new vn(e)),e}}filter(t){t instanceof Bt&&this._comps.add(t)}getClass(){return vn}get interfaces_(){return[bt]}}vn.constructor_=function(){this._comps=null;let t=arguments[0];this._comps=t};class xn{constructor(){xn.constructor_.apply(this,arguments)}isInsideArea(){return this._segIndex===xn.INSIDE_AREA}getCoordinate(){return this._pt}getGeometryComponent(){return this._component}getSegmentIndex(){return this._segIndex}getClass(){return xn}get interfaces_(){return[]}}xn.constructor_=function(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){let t=arguments[0],e=arguments[1];xn.constructor_.call(this,t,xn.INSIDE_AREA,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._component=t,this._segIndex=e,this._pt=i}},xn.INSIDE_AREA=-1;class bn{constructor(){bn.constructor_.apply(this,arguments)}static getPoints(){if(1===arguments.length){let t=arguments[0];return t instanceof jt?Re.singletonList(t):bn.getPoints(t,new T)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof jt?e.add(t):t instanceof Et&&t.apply(new bn(e)),e}}filter(t){t instanceof jt&&this._pts.add(t)}getClass(){return bn}get interfaces_(){return[bt]}}bn.constructor_=function(){this._pts=null;let t=arguments[0];this._pts=t};class wn{constructor(){wn.constructor_.apply(this,arguments)}static getLocations(t){var e=new T;return t.apply(new wn(e)),e}filter(t){(t instanceof jt||t instanceof kt||t instanceof Bt)&&this._locations.add(new xn(t,0,t.getCoordinate()))}getClass(){return wn}get interfaces_(){return[bt]}}wn.constructor_=function(){this._locations=null;let t=arguments[0];this._locations=t};class En{constructor(){En.constructor_.apply(this,arguments)}static distance(t,e){return new En(t,e).distance()}static isWithinDistance(t,e,i){return!(t.getEnvelopeInternal().distance(e.getEnvelopeInternal())>i)&&new En(t,e,i).distance()<=i}static nearestPoints(t,e){return new En(t,e).nearestPoints()}computeContainmentDistance(){if(0===arguments.length){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(2===arguments.length){let t=arguments[0],s=arguments[1];var e=this._geom[t];if(e.getDimension()<2)return null;var i=1-t,r=vn.getPolygons(e);if(r.size()>0){var n=wn.getLocations(this._geom[i]);if(this.computeContainmentDistance(n,r,s),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[i]=s[0],this._minDistanceLocation[t]=s[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&x(arguments[0],S)&&x(arguments[1],S)){let t=arguments[0],e=arguments[1],i=arguments[2];for(var s=0;sthis._minDistance)return null;for(var t=n.getCoordinates(),e=s.getCoordinate(),i=0;ithis._minDistance)return null;t=e.getCoordinates();var n=r.getCoordinates();for(i=0;it&&Q.reverse(this._coordinates)}return this._coordinates}toLineString(){return this._factory.createLineString(this.getCoordinates())}add(t){this._directedEdges.add(t)}getClass(){return In}get interfaces_(){return[]}}In.constructor_=function(){this._factory=null,this._directedEdges=new T,this._coordinates=null;let t=arguments[0];this._factory=t};class Cn{constructor(){Cn.constructor_.apply(this,arguments)}static getComponentWithVisitedState(t,e){for(;t.hasNext();){var i=t.next();if(i.isVisited()===e)return i}return null}static setVisited(t,e){for(;t.hasNext();)t.next().setVisited(e)}static setMarked(t,e){for(;t.hasNext();)t.next().setMarked(e)}setVisited(t){this._isVisited=t}isMarked(){return this._isMarked}setData(t){this._data=t}getData(){return this._data}setMarked(t){this._isMarked=t}getContext(){return this._data}isVisited(){return this._isVisited}setContext(t){this._data=t}getClass(){return Cn}get interfaces_(){return[]}}Cn.constructor_=function(){this._isMarked=!1,this._isVisited=!1,this._data=null};class Tn extends Cn{constructor(){super(),Tn.constructor_.apply(this,arguments)}static toEdges(t){for(var e=new T,i=t.iterator();i.hasNext();)e.add(i.next()._parentEdge);return e}isRemoved(){return null===this._parentEdge}compareDirection(t){return this._quadrant>t._quadrant?1:this._quadrant=t.size()-2}hasIntersection(){return null!==this._interiorIntersection}isDone(){return!this._findAllIntersections&&null!==this._interiorIntersection}getClass(){return Gn}get interfaces_(){return[an]}}Gn.constructor_=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new T,this._intersectionCount=0,this._keepIntersections=!0;let t=arguments[0];this._li=t,this._interiorIntersection=null};class zn{constructor(){zn.constructor_.apply(this,arguments)}static computeIntersections(t){var e=new zn(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()}execute(){if(null!==this._segInt)return null;this.checkInteriorIntersections()}getIntersections(){return this._segInt.getIntersections()}isValid(){return this.execute(),this._isValid}setFindAllIntersections(t){this._findAllIntersections=t}checkInteriorIntersections(){this._isValid=!0,this._segInt=new Gn(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new Ar;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null}checkValid(){if(this.execute(),!this._isValid)throw new Gi(this.getErrorMessage(),this._segInt.getInteriorIntersection())}getErrorMessage(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+ue.toLineString(t[0],t[1])+" and "+ue.toLineString(t[2],t[3])}getClass(){return zn}get interfaces_(){return[]}}zn.constructor_=function(){this._li=new ge,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;let t=arguments[0];this._segStrings=t};class Bn{constructor(){Bn.constructor_.apply(this,arguments)}static toSegmentStrings(t){for(var e=new T,i=t.iterator();i.hasNext();){var r=i.next();e.add(new jn(r.getCoordinates(),r))}return e}static checkValid(t){new Bn(t).checkValid()}checkValid(){this._nv.checkValid()}getClass(){return Bn}get interfaces_(){return[]}}Bn.constructor_=function(){this._nv=null;let t=arguments[0];this._nv=new zn(Bn.toSegmentStrings(t))};class Un{constructor(){Un.constructor_.apply(this,arguments)}static map(t,e){return new Un(e).map(t)}map(t){for(var e=new T,i=0;i=0&&t.add(s+1,new y(n),!1)}}findSegmentIndexToSnap(t,e){for(var i=n.MAX_VALUE,r=-1,s=0;st&&(t=i)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Math.min(Wn.computeOverlaySnapTolerance(t),Wn.computeOverlaySnapTolerance(e))}}static computeSizeBasedSnapTolerance(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*Wn.SNAP_PRECISION_FACTOR}static snapToSelf(t,e,i){return new Wn(t).snapToSelf(e,i)}snapTo(t,e){var i=this.extractTargetCoordinates(t);return new Xn(e,i).transform(this._srcGeom)}snapToSelf(t,e){var i=this.extractTargetCoordinates(this._srcGeom),r=new Xn(t,i,!0).transform(this._srcGeom),n=r;return e&&x(n,zt)&&(n=r.buffer(0)),n}computeSnapTolerance(t){return this.computeMinimumSegmentLength(t)/10}extractTargetCoordinates(t){for(var e=new mt,i=t.getCoordinates(),r=0;r>>20}static zeroLowerBits(t,e){var i="low";if(e>32&&(t.low=0,e%=32,i="high"),e>0){var r=e<32?~((1<=0;r--){if(Hn.getBit(t,r)!==Hn.getBit(e,r))return i;i++}return 52}}class Zn{constructor(){Zn.constructor_.apply(this,arguments)}addCommonBits(t){var e=new $n(this._commonCoord);t.apply(e),t.geometryChanged()}removeCommonBits(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new y(this._commonCoord);e.x=-e.x,e.y=-e.y;var i=new $n(e);return t.apply(i),t.geometryChanged(),t}getCommonCoordinate(){return this._commonCoord}add(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()}getClass(){return Zn}get interfaces_(){return[]}}class Kn{constructor(){Kn.constructor_.apply(this,arguments)}filter(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)}getCommonCoordinate(){return new y(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())}getClass(){return Kn}get interfaces_(){return[X]}}Kn.constructor_=function(){this._commonBitsX=new Hn,this._commonBitsY=new Hn};class $n{constructor(){$n.constructor_.apply(this,arguments)}filter(t,e){var i=t.getOrdinate(e,0)+this.trans.x,r=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,i),t.setOrdinate(e,1,r)}isDone(){return!1}isGeometryChanged(){return!0}getClass(){return $n}get interfaces_(){return[wt]}}$n.constructor_=function(){this.trans=null;let t=arguments[0];this.trans=t},Zn.CommonCoordinateFilter=Kn,Zn.Translater=$n,Zn.constructor_=function(){this._commonCoord=null,this._ccFilter=new Kn};class Jn{constructor(){Jn.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new Jn(t,e).getResultGeometry(i)}static union(t,e){return Jn.overlayOp(t,e,es.UNION)}static intersection(t,e){return Jn.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return Jn.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return Jn.overlayOp(t,e,es.DIFFERENCE)}selfSnap(t){return new Wn(t).snapTo(t,this._snapTolerance)}removeCommonBits(t){this._cbr=new Zn,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e}prepareResult(t){return this._cbr.addCommonBits(t),t}getResultGeometry(t){var e=this.snap(this._geom),i=es.overlayOp(e[0],e[1],t);return this.prepareResult(i)}checkValid(t){t.isValid()||G.out.println("Snapped geometry is invalid")}computeSnapTolerance(){this._snapTolerance=Wn.computeOverlaySnapTolerance(this._geom[0],this._geom[1])}snap(t){var e=this.removeCommonBits(t);return Wn.snap(e[0],e[1],this._snapTolerance)}getClass(){return Jn}get interfaces_(){return[]}}Jn.constructor_=function(){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null;let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};class Qn{constructor(){Qn.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new Qn(t,e).getResultGeometry(i)}static union(t,e){return Qn.overlayOp(t,e,es.UNION)}static intersection(t,e){return Qn.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return Qn.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return Qn.overlayOp(t,e,es.DIFFERENCE)}getResultGeometry(t){var e=null,i=!1,r=null;try{e=es.overlayOp(this._geom[0],this._geom[1],t),i=!0}catch(t){if(!(t instanceof f))throw t;r=t}if(!i)try{e=Jn.overlayOp(this._geom[0],this._geom[1],t)}catch(t){throw t instanceof f?r:t}return e}getClass(){return Qn}get interfaces_(){return[]}}Qn.constructor_=function(){this._geom=new Array(2).fill(null);let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e};class ts{constructor(){ts.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return ts}get interfaces_(){return[]}}ts.constructor_=function(){if(this._li=new ge,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Vi(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e,H.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Vi(0,t,i),this._arg[1]=new Vi(1,e,i)}};class es extends ts{constructor(){super(),es.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new es(t,e).getResultGeometry(i)}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return Qn.overlayOp(t,e,es.UNION)}static intersection(t,e){if(t.isEmpty()||e.isEmpty())return es.createEmptyResult(es.INTERSECTION,t,e,t.getFactory());if(t.isGeometryCollection()){var r=e;return Un.map(t,new class{get interfaces_(){return[MapOp]}map(t){return t.intersection(r)}})}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return Qn.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return Qn.overlayOp(t,e,es.SYMDIFFERENCE)}static resultDimension(t,e,i){var r=e.getDimension(),n=i.getDimension(),s=-1;switch(t){case es.INTERSECTION:s=Math.min(r,n);break;case es.UNION:s=Math.max(r,n);break;case es.DIFFERENCE:s=r;break;case es.SYMDIFFERENCE:s=Math.max(r,n)}return s}static createEmptyResult(t,e,i,r){var n=null;switch(es.resultDimension(t,e,i)){case-1:n=r.createGeometryCollection();break;case 0:n=r.createPoint();break;case 1:n=r.createLineString();break;case 2:n=r.createPolygon()}return n}static difference(t,e){if(t.isEmpty())return es.createEmptyResult(es.DIFFERENCE,t,e,t.getFactory());if(e.isEmpty())return t.copy();if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return Qn.overlayOp(t,e,es.DIFFERENCE)}static isResultOfOp(){if(2===arguments.length){let i=arguments[0],r=arguments[1];var t=i.getLocation(0),e=i.getLocation(1);return es.isResultOfOp(t,e,r)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];switch(t===fe.BOUNDARY&&(t=fe.INTERIOR),e===fe.BOUNDARY&&(e=fe.INTERIOR),i){case es.INTERSECTION:return t===fe.INTERIOR&&e===fe.INTERIOR;case es.UNION:return t===fe.INTERIOR||e===fe.INTERIOR;case es.DIFFERENCE:return t===fe.INTERIOR&&e!==fe.INTERIOR;case es.SYMDIFFERENCE:return t===fe.INTERIOR&&e!==fe.INTERIOR||t!==fe.INTERIOR&&e===fe.INTERIOR}return!1}}insertUniqueEdge(t){var e=this._edgeList.findEqualEdge(t);if(null!==e){var i=e.getLabel(),r=t.getLabel();e.isPointwiseEqual(t)||(r=new Li(t.getLabel())).flip();var n=e.getDepth();n.isNull()&&n.add(i),n.add(r),i.merge(r)}else this._edgeList.add(t)}getGraph(){return this._graph}cancelDuplicateResultEdges(){for(var t=this._graph.getEdgeEnds().iterator();t.hasNext();){var e=t.next(),i=e.getSym();e.isInResult()&&i.isInResult()&&(e.setInResult(!1),i.setInResult(!1))}}isCoveredByLA(t){return!!this.isCovered(t,this._resultLineList)||!!this.isCovered(t,this._resultPolyList)}computeGeometry(t,e,i,r){var n=new T;return n.addAll(t),n.addAll(e),n.addAll(i),n.isEmpty()?es.createEmptyResult(r,this._arg[0].getGeometry(),this._arg[1].getGeometry(),this._geomFact):this._geomFact.buildGeometry(n)}mergeSymLabels(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().mergeSymLabels()}isCovered(t,e){for(var i=e.iterator();i.hasNext();){var r=i.next();if(this._ptLocator.locate(t,r)!==fe.EXTERIOR)return!0}return!1}replaceCollapsedEdges(){for(var t=new T,e=this._edgeList.iterator();e.hasNext();){var i=e.next();i.isCollapsed()&&(e.remove(),t.add(i.getCollapsedEdge()))}this._edgeList.addAll(t)}updateNodeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getEdges().getLabel();e.getLabel().merge(i)}}getResultGeometry(t){return this.computeOverlay(t),this._resultGeom}insertUniqueEdges(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this.insertUniqueEdge(i)}}computeOverlay(t){this.copyPoints(0),this.copyPoints(1),this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1),this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!0);var e=new T;this._arg[0].computeSplitEdges(e),this._arg[1].computeSplitEdges(e),this.insertUniqueEdges(e),this.computeLabelsFromDepths(),this.replaceCollapsedEdges(),Bn.checkValid(this._edgeList.getEdges()),this._graph.addEdges(this._edgeList.getEdges()),this.computeLabelling(),this.labelIncompleteNodes(),this.findResultAreaEdges(t),this.cancelDuplicateResultEdges();var i=new Xr(this._geomFact);i.add(this._graph),this._resultPolyList=i.getPolygons();var r=new Vn(this,this._geomFact,this._ptLocator);this._resultLineList=r.build(t);var n=new qn(this,this._geomFact,this._ptLocator);this._resultPointList=n.build(t),this._resultGeom=this.computeGeometry(this._resultPointList,this._resultLineList,this._resultPolyList,t)}labelIncompleteNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setLocation(e,i)}copyPoints(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._graph.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}findResultAreaEdges(t){for(var e=this._graph.getEdgeEnds().iterator();e.hasNext();){var i=e.next(),r=i.getLabel();r.isArea()&&!i.isInteriorAreaEdge()&&es.isResultOfOp(r.getLocation(0,bi.RIGHT),r.getLocation(1,bi.RIGHT),t)&&i.setInResult(!0)}}computeLabelsFromDepths(){for(var t=this._edgeList.iterator();t.hasNext();){var e=t.next(),i=e.getLabel(),r=e.getDepth();if(!r.isNull()){r.normalize();for(var n=0;n<2;n++)i.isNull(n)||!i.isArea()||r.isNull(n)||(0===r.getDelta(n)?i.toLine(n):(_.isTrue(!r.isNull(n,bi.LEFT),"depth of LEFT side has not been initialized"),i.setLocation(n,bi.LEFT,r.getLocation(n,bi.LEFT)),_.isTrue(!r.isNull(n,bi.RIGHT),"depth of RIGHT side has not been initialized"),i.setLocation(n,bi.RIGHT,r.getLocation(n,bi.RIGHT))))}}}computeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg);this.mergeSymLabels(),this.updateNodeLabelling()}labelIncompleteNodes(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getLabel();e.isIsolated()&&(i.isNull(0)?this.labelIncompleteNode(e,0):this.labelIncompleteNode(e,1)),e.getEdges().updateLabelling(i)}}isCoveredByA(t){return!!this.isCovered(t,this._resultPolyList)}getClass(){return es}get interfaces_(){return[]}}es.constructor_=function(){this._ptLocator=new xi,this._geomFact=null,this._resultGeom=null,this._graph=null,this._edgeList=new on,this._resultPolyList=new T,this._resultLineList=new T,this._resultPointList=new T;let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._graph=new Ui(new nn),this._geomFact=t.getFactory()},es.INTERSECTION=1,es.UNION=2,es.DIFFERENCE=3,es.SYMDIFFERENCE=4;var is=Object.freeze({OverlayOp:es});class rs extends Tn{constructor(){super(),rs.constructor_.apply(this,arguments)}getNext(){return this._next}isInRing(){return null!==this._edgeRing}setRing(t){this._edgeRing=t}setLabel(t){this._label=t}getLabel(){return this._label}setNext(t){this._next=t}getRing(){return this._edgeRing}getClass(){return rs}get interfaces_(){return[]}}rs.constructor_=function(){this._edgeRing=null,this._next=null,this._label=-1;let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];Tn.constructor_.call(this,t,e,i,r)};class ns extends Mn{constructor(){super(),ns.constructor_.apply(this,arguments)}getLine(){return this._line}getClass(){return ns}get interfaces_(){return[]}}ns.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class ss{constructor(){ss.constructor_.apply(this,arguments)}static findDirEdgesInRing(t){var e=t,i=new T;do{i.add(e),e=e.getNext(),_.isTrue(null!==e,"found null DE in ring"),_.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t);return i}static addEdge(t,e,i){if(e)for(var r=0;r=0;r--)i.add(t[r],!1)}static findEdgeRingContaining(t,e){for(var i=t.getRing(),r=i.getEnvelopeInternal(),n=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getRing(),c=h.getEnvelopeInternal();if(!c.equals(r)&&c.contains(r)){n=Q.ptNotInList(i.getCoordinates(),h.getCoordinates());var u=!1;ze.isInRing(n,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(o=(s=l).getRing().getEnvelopeInternal())}}return s}isIncluded(){return this._isIncluded}getCoordinates(){if(null===this._ringPts){for(var t=new M,e=this._deList.iterator();e.hasNext();){var i=e.next(),r=i.getEdge();ss.addEdge(r.getLine().getCoordinates(),i.getEdgeDirection(),t)}this._ringPts=t.toCoordinateArray()}return this._ringPts}isIncludedSet(){return this._isIncludedSet}isValid(){return this.getCoordinates(),!(this._ringPts.length<=3)&&(this.getRing(),this._ring.isValid())}build(t){var e=t;do{this.add(e),e.setRing(this),e=e.getNext(),_.isTrue(null!==e,"found null DE in ring"),_.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t)}isOuterHole(){return!!this._isHole&&!this.hasShell()}getPolygon(){var t=null;if(null!==this._holes){t=new Array(this._holes.size()).fill(null);for(var e=0;e=0)){e.add(n);var s=ss.findDirEdgesInRing(n);as.label(s,i),i++}}return e}static getDegreeNonDeleted(t){for(var e=0,i=t.getOutEdges().getEdges().iterator();i.hasNext();)i.next().isMarked()||e++;return e}static deleteAllEdges(t){for(var e=t.getOutEdges().getEdges().iterator();e.hasNext();){var i=e.next();i.setMarked(!0);var r=i.getSym();null!==r&&r.setMarked(!0)}}static label(t,e){for(var i=t.iterator();i.hasNext();)i.next().setLabel(e)}static computeNextCWEdges(t){for(var e=null,i=null,r=t.getOutEdges().getEdges().iterator();r.hasNext();){var n=r.next();n.isMarked()||(null===e&&(e=n),null!==i&&i.getSym().setNext(n),i=n)}null!==i&&i.getSym().setNext(e)}static computeNextCCWEdges(t,e){for(var i=null,r=null,n=t.getOutEdges().getEdges(),s=n.size()-1;s>=0;s--){var o=n.get(s),a=o.getSym(),l=null;o.getLabel()===e&&(l=o);var h=null;a.getLabel()===e&&(h=a),null===l&&null===h||(null!==h&&(r=h),null!==l&&(null!==r&&(r.setNext(l),r=null),null===i&&(i=l)))}null!==r&&(_.isTrue(null!==i),r.setNext(i))}static getDegree(t,e){for(var i=0,r=t.getOutEdges().getEdges().iterator();r.hasNext();)r.next().getLabel()===e&&i++;return i}static findIntersectionNodes(t,e){var i=t,r=null;do{var n=i.getFromNode();as.getDegree(n,e)>1&&(null===r&&(r=new T),r.add(n)),i=i.getNext(),_.isTrue(null!==i,"found null DE in ring"),_.isTrue(i===t||!i.isInRing(),"found DE already in ring")}while(i!==t);return r}findEdgeRing(t){var e=new ss(this._factory);return e.build(t),e}computeDepthParity(){if(0===arguments.length)for(;;)return null}computeNextCWEdges(){for(var t=this.nodeIterator();t.hasNext();){var e=t.next();as.computeNextCWEdges(e)}}addEdge(t){if(t.isEmpty())return null;var e=Q.removeRepeatedPoints(t.getCoordinates());if(e.length<2)return null;var i=e[0],r=e[e.length-1],n=this.getNode(i),s=this.getNode(r),o=new rs(n,s,e[1],!0),a=new rs(s,n,e[e.length-2],!1),l=new ns(t);l.setDirectedEdges(o,a),this.add(l)}deleteCutEdges(){this.computeNextCWEdges(),as.findLabeledEdgeRings(this._dirEdges);for(var t=new T,e=this._dirEdges.iterator();e.hasNext();){var i=e.next();if(!i.isMarked()){var r=i.getSym();if(i.getLabel()===r.getLabel()){i.setMarked(!0),r.setMarked(!0);var n=i.getEdge();t.add(n.getLine())}}}return t}getEdgeRings(){this.computeNextCWEdges(),as.label(this._dirEdges,-1);var t=as.findLabeledEdgeRings(this._dirEdges);this.convertMaximalToMinimalEdgeRings(t);for(var e=new T,i=this._dirEdges.iterator();i.hasNext();){var r=i.next();if(!r.isMarked()&&!r.isInRing()){var n=this.findEdgeRing(r);e.add(n)}}return e}getNode(t){var e=this.findNode(t);return null===e&&(e=new Rn(t),this.add(e)),e}convertMaximalToMinimalEdgeRings(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),r=i.getLabel(),n=as.findIntersectionNodes(i,r);if(null!==n)for(var s=n.iterator();s.hasNext();){var o=s.next();as.computeNextCCWEdges(o,r)}}}deleteDangles(){for(var t=this.findNodesOfDegree(1),e=new st,i=new $e,r=t.iterator();r.hasNext();)i.push(r.next());for(;!i.isEmpty();){var n=i.pop();for(as.deleteAllEdges(n),r=n.getOutEdges().getEdges().iterator();r.hasNext();){var s=r.next();s.setMarked(!0);var o=s.getSym();null!==o&&o.setMarked(!0);var a=s.getEdge();e.add(a.getLine());var l=s.getToNode();1===as.getDegreeNonDeleted(l)&&i.push(l)}}return e}getClass(){return as}get interfaces_(){return[]}}as.constructor_=function(){this._factory=null;let t=arguments[0];this._factory=t};class ls{constructor(){ls.constructor_.apply(this,arguments)}static findOuterShells(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),r=i.getOuterHole();null===r||r.isProcessed()||(i.setIncluded(!0),r.setProcessed(!0))}}static extractPolygons(t,e){for(var i=new T,r=t.iterator();r.hasNext();){var n=r.next();(e||n.isIncluded())&&i.add(n.getPolygon())}return i}static assignHolesToShells(t,e){for(var i=t.iterator();i.hasNext();){var r=i.next();ls.assignHoleToShell(r,e)}}static assignHoleToShell(t,e){var i=ss.findEdgeRingContaining(t,e);null!==i&&i.addHole(t)}static findDisjointShells(t){ls.findOuterShells(t);var e=null;do{e=!1;for(var i=t.iterator();i.hasNext();){var r=i.next();r.isIncludedSet()||(r.updateIncluded(),r.isIncludedSet()||(e=!0))}}while(e)}getGeometry(){return null===this._geomFactory&&(this._geomFactory=new oe),this.polygonize(),this._extractOnlyPolygonal?this._geomFactory.buildGeometry(this._polyList):this._geomFactory.createGeometryCollection(oe.toGeometryArray(this._polyList))}getInvalidRingLines(){return this.polygonize(),this._invalidRingLines}findValidRings(t,e,i){for(var r=t.iterator();r.hasNext();){var n=r.next();n.isValid()?e.add(n):i.add(n.getLineString())}}polygonize(){if(null!==this._polyList)return null;if(this._polyList=new T,null===this._graph)return null;this._dangles=this._graph.deleteDangles(),this._cutEdges=this._graph.deleteCutEdges();var t=this._graph.getEdgeRings(),e=new T;this._invalidRingLines=new T,this._isCheckingRingsValid?this.findValidRings(t,e,this._invalidRingLines):e=t,this.findShellsAndHoles(e),ls.assignHolesToShells(this._holeList,this._shellList),Re.sort(this._shellList,new ss.EnvelopeComparator);var i=!0;this._extractOnlyPolygonal&&(ls.findDisjointShells(this._shellList),i=!1),this._polyList=ls.extractPolygons(this._shellList,i)}getDangles(){return this.polygonize(),this._dangles}getCutEdges(){return this.polygonize(),this._cutEdges}getPolygons(){return this.polygonize(),this._polyList}add(){if(x(arguments[0],w))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.add(e)}else if(arguments[0]instanceof kt){let t=arguments[0];this._geomFactory=t.getFactory(),null===this._graph&&(this._graph=new as(this._geomFactory)),this._graph.addEdge(t)}else arguments[0]instanceof W&&arguments[0].apply(this._lineStringAdder)}setCheckRingsValid(t){this._isCheckingRingsValid=t}findShellsAndHoles(t){this._holeList=new T,this._shellList=new T;for(var e=t.iterator();e.hasNext();){var i=e.next();i.computeHole(),i.isHole()?this._holeList.add(i):this._shellList.add(i)}}getClass(){return ls}get interfaces_(){return[]}}class hs{constructor(){hs.constructor_.apply(this,arguments)}filter(t){t instanceof kt&&this.p.add(t)}getClass(){return hs}get interfaces_(){return[Y]}}hs.constructor_=function(){this.p=null;let t=arguments[0];this.p=t},ls.LineStringAdder=hs,ls.constructor_=function(){if(this._lineStringAdder=new hs(this),this._graph=null,this._dangles=new T,this._cutEdges=new T,this._invalidRingLines=new T,this._holeList=null,this._shellList=null,this._polyList=null,this._isCheckingRingsValid=!0,this._extractOnlyPolygonal=null,this._geomFactory=null,0===arguments.length)ls.constructor_.call(this,!1);else if(1===arguments.length){let t=arguments[0];this._extractOnlyPolygonal=t}};var cs=Object.freeze({Polygonizer:ls});class us{constructor(){us.constructor_.apply(this,arguments)}createEdgeEndForNext(t,e,i,r){var n=i.segmentIndex+1;if(n>=t.getNumPoints()&&null===r)return null;var s=t.getCoordinate(n);null!==r&&r.segmentIndex===i.segmentIndex&&(s=r.coord);var o=new ji(t,i.coord,s,new Li(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,r){var n=i.segmentIndex;if(0===i.dist){if(0===n)return null;n--}var s=t.getCoordinate(n);null!==r&&r.segmentIndex>=n&&(s=r.coord);var o=new Li(t.getLabel());o.flip();var a=new ji(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let r=arguments[0];for(var t=new T,e=r;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var r=t.getEdgeIntersectionList();r.addEndpoints();var n=r.iterator(),s=null,o=null;if(!n.hasNext())return null;var a=n.next();do{s=o,o=a,a=null,n.hasNext()&&(a=n.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return us}get interfaces_(){return[]}}us.constructor_=function(){};class ds extends ji{constructor(){super(),ds.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();)e.next().print(t),t.println()}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,r=!1,n=this.iterator();n.hasNext();)(s=n.next().getLabel().getLocation(t))===fe.BOUNDARY&&i++,s===fe.INTERIOR&&(r=!0);var s=fe.NONE;r&&(s=fe.INTERIOR),i>0&&(s=Vi.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var r=i.next();if(r.getLabel().isArea()){var n=r.getLabel().getLocation(t,e);if(n===fe.INTERIOR)return this._label.setLocation(t,e,fe.INTERIOR),null;n===fe.EXTERIOR&&this._label.setLocation(t,e,fe.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,bi.LEFT),this.computeLabelSide(t,bi.RIGHT)}updateIM(t){Fi.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();)i.next().getLabel().isArea()&&(e=!0);this._label=e?new Li(fe.NONE,fe.NONE,fe.NONE):new Li(fe.NONE);for(var r=0;r<2;r++)this.computeLabelOn(r,t),e&&this.computeLabelSides(r)}getClass(){return ds}get interfaces_(){return[]}}ds.constructor_=function(){if(this._edgeEnds=new T,1===arguments.length){let t=arguments[0];ds.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];ji.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new Li(t.getLabel())),this.insert(t)}};class gs extends en{constructor(){super(),gs.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();)e.next().updateIM(t)}insert(t){var e=this._edgeMap.get(t);null===e?(e=new ds(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return gs}get interfaces_(){return[]}}gs.constructor_=function(){};class ps extends ki{constructor(){super(),ps.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return ps}get interfaces_(){return[]}}ps.constructor_=function(){let t=arguments[0],e=arguments[1];ki.constructor_.call(this,t,e)};class fs extends Bi{constructor(){super(),fs.constructor_.apply(this,arguments)}createNode(t){return new ps(t,new gs)}getClass(){return fs}get interfaces_(){return[]}}fs.constructor_=function(){};class ms{constructor(){ms.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),r=this._arg[1].getGeometry().getDimension(),n=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===r?n&&e.setAtLeast("212101212"):2===i&&1===r?(n&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===r?(n&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===r&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var r=i.next();r.isIsolated()&&(this.labelIsolatedEdge(r,e,this._arg[e].getGeometry()),this._isolatedEdges.add(r))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var r=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,r)}else t.getLabel().setAllLocations(e,fe.EXTERIOR)}computeIM(){var t=new me;if(t.set(fe.EXTERIOR,fe.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new us,r=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(r);var n=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(n),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg)}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.getEdgeIntersectionList().iterator();n.hasNext();){var s=n.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(r===fe.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,fe.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.getEdgeIntersectionList().iterator();n.hasNext();){var s=n.next(),o=this._nodes.addNode(s.coord);r===fe.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,fe.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();_.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();)e.next().updateIM(t);for(var i=this._nodes.iterator();i.hasNext();){var r=i.next();r.updateIM(t),r.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(fe.INTERIOR,fe.EXTERIOR,e.getDimension()),t.set(fe.BOUNDARY,fe.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(fe.EXTERIOR,fe.INTERIOR,i.getDimension()),t.set(fe.EXTERIOR,fe.BOUNDARY,i.getBoundaryDimension()))}getClass(){return ms}get interfaces_(){return[]}}ms.constructor_=function(){this._li=new ge,this._ptLocator=new xi,this._arg=null,this._nodes=new Di(new fs),this._im=null,this._isolatedEdges=new T,this._invalidPoint=null;let t=arguments[0];this._arg=t};class _s{constructor(){_s.constructor_.apply(this,arguments)}static contains(t,e){return new _s(t).contains(e)}isContainedInBoundary(t){if(t instanceof Bt)return!1;if(t instanceof jt)return this.isPointContainedInBoundary(t);if(t instanceof kt)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var r=t;t=e,e=r}var n=!1;return e.y>t.y&&(n=!0),n?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return ys}get interfaces_(){return[]}}ys.constructor_=function(){this._li=new ge,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new y(t.getMinX(),t.getMinY()),this._diagUp1=new y(t.getMaxX(),t.getMaxY()),this._diagDown0=new y(t.getMinX(),t.getMaxY()),this._diagDown1=new y(t.getMaxX(),t.getMinY())};class vs{constructor(){vs.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return bs}get interfaces_(){return[]}}bs.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class ws extends vs{constructor(){super(),ws.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof Bt))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new y,r=0;r<4;r++)if(this._rectSeq.getCoordinate(r,i),e.contains(i)&&Ue.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return ws}get interfaces_(){return[]}}ws.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class Es extends vs{constructor(){super(),Es.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=Ae.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new Ss(t,e).getIntersectionMatrix().isCovers())}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return xs.intersects(t,e);if(e.isRectangle())return xs.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?_s.contains(t,e):new Ss(t,e).getIntersectionMatrix().isContains())}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return Ss}get interfaces_(){return[]}}Ss.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._relate=new ms(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];ts.constructor_.call(this,t,e,i),this._relate=new ms(this._arg)}};var Is=Object.freeze({RelateOp:Ss});class Cs{constructor(){Cs.constructor_.apply(this,arguments)}static combine(){if(1===arguments.length)return new Cs(arguments[0]).combine();if(2===arguments.length){let t=arguments[0],e=arguments[1];return new Cs(Cs.createList(t,e)).combine()}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return new Cs(Cs.createList(t,e,i)).combine()}}static extractFactory(t){return t.isEmpty()?null:t.iterator().next().getFactory()}static createList(){if(2===arguments.length){let e=arguments[0],i=arguments[1];return(t=new T).add(e),t.add(i),t}if(3===arguments.length){let e=arguments[0],i=arguments[1],r=arguments[2];var t;return(t=new T).add(e),t.add(i),t.add(r),t}}extractElements(t,e){if(null===t)return null;for(var i=0;i=t.size()?null:t.get(e)}static union(t){return new Ms(t).union()}reduceToGeometries(t){for(var e=new T,i=t.iterator();i.hasNext();){var r=i.next(),n=null;x(r,S)?n=this.unionTree(r):r instanceof W&&(n=r),e.add(n)}return e}extractByEnvelope(t,e,i){for(var r=new T,n=0;n0){var e=this._geomFact.buildGeometry(this._points);t=this.unionNoOpt(e)}var i=null;if(this._lines.size()>0){var r=this._geomFact.buildGeometry(this._lines);i=this.unionNoOpt(r)}var n=null;this._polygons.size()>0&&(n=Ms.union(this._polygons));var s=this.unionWithNull(i,n),o=null;return null===(o=null===t?s:null===s?t:Ts.union(t,s))?this._geomFact.createGeometryCollection():o}getClass(){return Os}get interfaces_(){return[]}}Os.constructor_=function(){if(this._polygons=new T,this._lines=new T,this._points=new T,this._geomFact=null,1===arguments.length){if(x(arguments[0],w)){let t=arguments[0];this.extract(t)}else if(arguments[0]instanceof W){let t=arguments[0];this.extract(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._geomFact=e,this.extract(t)}};var Rs=Object.freeze({UnaryUnionOp:Os});class Ps{constructor(){Ps.constructor_.apply(this,arguments)}static findDifferentPoint(t,e){for(var i=0;i1)return this._invalidPoint=i.getEdge().getCoordinate(0),!0}return!1}isNodeConsistentArea(){var t=this._geomGraph.computeSelfNodes(this._li,!0,!0);return t.hasProperIntersection()?(this._invalidPoint=t.getProperIntersectionPoint(),!1):(this._nodeGraph.build(this._geomGraph),this.isNodeEdgeAreaLabelsConsistent())}getClass(){return As}get interfaces_(){return[]}}As.constructor_=function(){this._li=new ge,this._geomGraph=null,this._nodeGraph=new Ns,this._invalidPoint=null;let t=arguments[0];this._geomGraph=t};class Fs{constructor(){Fs.constructor_.apply(this,arguments)}buildIndex(){this._index=new dr;for(var t=0;t=1&&(e=t.getCoordinateN(0)),this._validErr=new ks(ks.RING_NOT_CLOSED,e)}}checkShellsNotNested(t,e){for(var i=0;i=2&&(r=!0),e.edit(t,new zs(this._targetPM,r))}changePM(t,e){return this.createEditor(t.getFactory(),e).edit(t,new Yt.NoOpGeometryOperation)}setRemoveCollapsedComponents(t){this._removeCollapsed=t}createFactory(t,e){return new oe(e,t.getSRID(),t.getCoordinateSequenceFactory())}setChangePrecisionModel(t){this._changePrecisionModel=t}reduce(t){var e=this.reducePointwise(t);return this._isPointwise?e:x(e,zt)?Ds.isValid(e)?e:this.fixPolygonalTopology(e):e}setPointwise(t){this._isPointwise=t}createEditor(t,e){if(t.getPrecisionModel()===e)return new Yt;var i=this.createFactory(t,e);return new Yt(i)}getClass(){return Bs}get interfaces_(){return[]}}Bs.constructor_=function(){this._targetPM=null,this._removeCollapsed=!0,this._changePrecisionModel=!1,this._isPointwise=!1;let t=arguments[0];this._targetPM=t};var Us=Object.freeze({GeometryPrecisionReducer:Bs});class Vs{constructor(){Vs.constructor_.apply(this,arguments)}static simplify(t,e){var i=new Vs(t);return i.setDistanceTolerance(e),i.simplify()}simplifySection(t,e){if(t+1===e)return null;this._seg.p0=this._pts[t],this._seg.p1=this._pts[e];for(var i=-1,r=t,n=t+1;ni&&(i=s,r=n)}if(i<=this._distanceTolerance)for(n=t+1;n=e[0]&&rthis._distanceTolerance&&(s=!1);var l=new pe;if(l.p0=this._linePts[t],l.p1=this._linePts[e],r[0]=t,r[1]=e,this.hasBadIntersection(this._line,r,l)&&(s=!1),s)return n=this.flatten(t,e),this._line.addToResult(n),null;this.simplifySection(t,a,i),this.simplifySection(a,e,i)}hasBadOutputIntersection(t){for(var e=this._outputIndex.query(t).iterator();e.hasNext();){var i=e.next();if(this.hasInteriorIntersection(i,t))return!0}return!1}findFurthestPoint(t,e,i,r){var n=new pe;n.p0=t[e],n.p1=t[i];for(var s=-1,o=e,a=e+1;as&&(s=h,o=a)}return r[0]=s,o}simplify(t){this._line=t,this._linePts=t.getParentCoordinates(),this.simplifySection(0,this._linePts.length-1,0)}remove(t,e,i){for(var r=e;rr&&(o=r),n.setMinimumLength(o),n.splitAt(s),n.getSplitPoint()}getClass(){return no}get interfaces_(){return[ro]}}no.constructor_=function(){};class so{constructor(){so.constructor_.apply(this,arguments)}static triArea(t,e,i){return(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x)}static isInCircleDDNormalized(t,e,i,r){var n=k.valueOf(t.x).selfSubtract(r.x),s=k.valueOf(t.y).selfSubtract(r.y),o=k.valueOf(e.x).selfSubtract(r.x),a=k.valueOf(e.y).selfSubtract(r.y),l=k.valueOf(i.x).selfSubtract(r.x),h=k.valueOf(i.y).selfSubtract(r.y),c=n.multiply(a).selfSubtract(o.multiply(s)),u=o.multiply(h).selfSubtract(l.multiply(a)),d=l.multiply(s).selfSubtract(n.multiply(h)),g=n.multiply(n).selfAdd(s.multiply(s)),p=o.multiply(o).selfAdd(a.multiply(a)),f=l.multiply(l).selfAdd(h.multiply(h));return g.selfMultiply(u).selfAdd(p.selfMultiply(d)).selfAdd(f.selfMultiply(c)).doubleValue()>0}static checkRobustInCircle(t,e,i,r){var n=so.isInCircleNonRobust(t,e,i,r),s=so.isInCircleDDSlow(t,e,i,r),o=so.isInCircleCC(t,e,i,r),a=ye.circumcentre(t,e,i);G.out.println("p radius diff a = "+Math.abs(r.distance(a)-t.distance(a))/t.distance(a)),n===s&&n===o||(G.out.println("inCircle robustness failure (double result = "+n+", DD result = "+s+", CC result = "+o+")"),G.out.println(ue.toLineString(new Kt([t,e,i,r]))),G.out.println("Circumcentre = "+ue.toPoint(a)+" radius = "+t.distance(a)),G.out.println("p radius diff a = "+Math.abs(r.distance(a)/t.distance(a)-1)),G.out.println("p radius diff b = "+Math.abs(r.distance(a)/e.distance(a)-1)),G.out.println("p radius diff c = "+Math.abs(r.distance(a)/i.distance(a)-1)),G.out.println())}static isInCircleDDFast(t,e,i,r){var n=k.sqr(t.x).selfAdd(k.sqr(t.y)).selfMultiply(so.triAreaDDFast(e,i,r)),s=k.sqr(e.x).selfAdd(k.sqr(e.y)).selfMultiply(so.triAreaDDFast(t,i,r)),o=k.sqr(i.x).selfAdd(k.sqr(i.y)).selfMultiply(so.triAreaDDFast(t,e,r)),a=k.sqr(r.x).selfAdd(k.sqr(r.y)).selfMultiply(so.triAreaDDFast(t,e,i));return n.selfSubtract(s).selfAdd(o).selfSubtract(a).doubleValue()>0}static isInCircleCC(t,e,i,r){var n=ye.circumcentre(t,e,i),s=t.distance(n);return r.distance(n)-s<=0}static isInCircleNormalized(t,e,i,r){var n=t.x-r.x,s=t.y-r.y,o=e.x-r.x,a=e.y-r.y,l=i.x-r.x,h=i.y-r.y;return(n*n+s*s)*(o*h-l*a)+(o*o+a*a)*(l*s-n*h)+(l*l+h*h)*(n*a-o*s)>0}static isInCircleDDSlow(t,e,i,r){var n=k.valueOf(r.x),s=k.valueOf(r.y),o=k.valueOf(t.x),a=k.valueOf(t.y),l=k.valueOf(e.x),h=k.valueOf(e.y),c=k.valueOf(i.x),u=k.valueOf(i.y),d=o.multiply(o).add(a.multiply(a)).multiply(so.triAreaDDSlow(l,h,c,u,n,s)),g=l.multiply(l).add(h.multiply(h)).multiply(so.triAreaDDSlow(o,a,c,u,n,s)),p=c.multiply(c).add(u.multiply(u)).multiply(so.triAreaDDSlow(o,a,l,h,n,s)),f=n.multiply(n).add(s.multiply(s)).multiply(so.triAreaDDSlow(o,a,l,h,c,u));return d.subtract(g).add(p).subtract(f).doubleValue()>0}static isInCircleNonRobust(t,e,i,r){return(t.x*t.x+t.y*t.y)*so.triArea(e,i,r)-(e.x*e.x+e.y*e.y)*so.triArea(t,i,r)+(i.x*i.x+i.y*i.y)*so.triArea(t,e,r)-(r.x*r.x+r.y*r.y)*so.triArea(t,e,i)>0}static isInCircleRobust(t,e,i,r){return so.isInCircleNormalized(t,e,i,r)}static triAreaDDSlow(t,e,i,r,n,s){return i.subtract(t).multiply(s.subtract(e)).subtract(r.subtract(e).multiply(n.subtract(t)))}static triAreaDDFast(t,e,i){var r=k.valueOf(e.x).selfSubtract(t.x).selfMultiply(k.valueOf(i.y).selfSubtract(t.y)),n=k.valueOf(e.y).selfSubtract(t.y).selfMultiply(k.valueOf(i.x).selfSubtract(t.x));return r.selfSubtract(n)}getClass(){return so}get interfaces_(){return[]}}so.constructor_=function(){};class oo{constructor(){oo.constructor_.apply(this,arguments)}static interpolateZ(){if(3===arguments.length){let r=arguments[0],n=arguments[1],s=arguments[2];var t=n.distance(s),e=r.distance(n),i=s.z-n.z;return n.z+i*(e/t)}if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],p=arguments[3];var r=e.x,n=e.y,s=i.x-r,o=p.x-r,a=i.y-n,l=p.y-n,h=s*l-o*a,c=t.x-r,u=t.y-n,d=(l*c-o*u)/h,g=(-a*c+s*u)/h;return e.z+d*(i.z-e.z)+g*(p.z-e.z)}}circleCenter(t,e){var i=new oo(this.getX(),this.getY()),r=this.bisector(i,t),n=this.bisector(t,e),s=new z(r,n),o=null;try{o=new oo(s.getX(),s.getY())}catch(r){if(!(r instanceof P))throw r;G.err.println("a: "+i+" b: "+t+" c: "+e),G.err.println(r)}return o}dot(t){return this._p.x*t.getX()+this._p.y*t.getY()}magn(){return Math.sqrt(this._p.x*this._p.x+this._p.y*this._p.y)}getZ(){return this._p.z}bisector(t,e){var i=e.getX()-t.getX(),r=e.getY()-t.getY(),n=new z(t.getX()+i/2,t.getY()+r/2,1),s=new z(t.getX()-r+i/2,t.getY()+i+r/2,1);return new z(n,s)}equals(){if(1===arguments.length){let t=arguments[0];return this._p.x===t.getX()&&this._p.y===t.getY()}if(2===arguments.length){let t=arguments[0],e=arguments[1];return this._p.distance(t.getCoordinate())0}getX(){return this._p.x}crossProduct(t){return this._p.x*t.getY()-this._p.y*t.getX()}setZ(t){this._p.z=t}times(t){return new oo(t*this._p.x,t*this._p.y)}cross(){return new oo(this._p.y,-this._p.x)}leftOf(t){return this.isCCW(t.orig(),t.dest())}toString(){return"POINT ("+this._p.x+" "+this._p.y+")"}sub(t){return new oo(this._p.x-t.getX(),this._p.y-t.getY())}getY(){return this._p.y}classify(t,e){var i=e.sub(t),r=this.sub(t),n=i.crossProduct(r);return n>0?oo.LEFT:n<0?oo.RIGHT:i.getX()*r.getX()<0||i.getY()*r.getY()<0?oo.BEHIND:i.magn()0};class co{constructor(){co.constructor_.apply(this,arguments)}locate(t){}getClass(){return co}get interfaces_(){return[]}}co.constructor_=function(){};class uo{constructor(){uo.constructor_.apply(this,arguments)}init(){this._lastEdge=this.findEdge()}locate(t){this._lastEdge.isLive()||this.init();var e=this._subdiv.locateFromEdge(t,this._lastEdge);return this._lastEdge=e,e}findEdge(){return this._subdiv.getEdges().iterator().next()}getClass(){return uo}get interfaces_(){return[co]}}uo.constructor_=function(){this._subdiv=null,this._lastEdge=null;let t=arguments[0];this._subdiv=t,this.init()};class go extends f{constructor(){super(),go.constructor_.apply(this,arguments)}static msgWithSpatial(t,e){return null!==e?t+" [ "+e+" ]":t}getSegment(){return this._seg}getClass(){return go}get interfaces_(){return[]}}go.constructor_=function(){if(this._seg=null,1===arguments.length){if("string"==typeof arguments[0]){let t=arguments[0];f.constructor_.call(this,t)}else if(arguments[0]instanceof pe){let t=arguments[0];f.constructor_.call(this,"Locate failed to converge (at edge: "+t+"). Possible causes include invalid Subdivision topology or very close sites"),this._seg=new pe(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];f.constructor_.call(this,go.msgWithSpatial(t,e)),this._seg=new pe(e)}};class po{constructor(){po.constructor_.apply(this,arguments)}visit(t){}getClass(){return po}get interfaces_(){return[]}}po.constructor_=function(){};class fo{constructor(){fo.constructor_.apply(this,arguments)}static getTriangleEdges(t,e){if(e[0]=t,e[1]=e[0].lNext(),e[2]=e[1].lNext(),e[2].lNext()!==e[0])throw new i("Edges do not form a triangle")}getTriangleVertices(t){var e=new yo;return this.visitTriangles(e,t),e.getTriangleVertices()}isFrameVertex(t){return!!t.equals(this._frameVertex[0])||!!t.equals(this._frameVertex[1])||!!t.equals(this._frameVertex[2])}isVertexOfEdge(t,e){return!(!e.equals(t.orig(),this._tolerance)&&!e.equals(t.dest(),this._tolerance))}connect(t,e){var i=lo.connect(t,e);return this._quadEdges.add(i),i}getVoronoiCellPolygon(t,e){var i=new T,r=t;do{var n=t.rot().orig().getCoordinate();i.add(n),t=t.oPrev()}while(t!==r);var s=new M;s.addAll(i,!1),s.closeRing(),s.size()<4&&(G.out.println(s),s.add(s.get(s.size()-1),!0));var o=s.toCoordinateArray(),a=e.createPolygon(e.createLinearRing(o)),l=r.orig();return a.setUserData(l.getCoordinate()),a}setLocator(t){this._locator=t}initSubdiv(){var t=this.makeEdge(this._frameVertex[0],this._frameVertex[1]),e=this.makeEdge(this._frameVertex[1],this._frameVertex[2]);lo.splice(t.sym(),e);var i=this.makeEdge(this._frameVertex[2],this._frameVertex[0]);return lo.splice(e.sym(),i),lo.splice(i.sym(),t),t}isFrameBorderEdge(t){var e=new Array(3).fill(null);fo.getTriangleEdges(t,e);var i=new Array(3).fill(null);fo.getTriangleEdges(t.sym(),i);var r=t.lNext().dest();if(this.isFrameVertex(r))return!0;var n=t.sym().lNext().dest();return!!this.isFrameVertex(n)}makeEdge(t,e){var i=lo.makeEdge(t,e);return this._quadEdges.add(i),i}visitTriangles(t,e){this._visitedKey++;var i=new $e;i.push(this._startingEdge);for(var r=new st;!i.empty();){var n=i.pop();if(!r.contains(n)){var s=this.fetchTriangleToVisit(n,i,e,r);null!==s&&t.visit(s)}}}isFrameEdge(t){return!(!this.isFrameVertex(t.orig())&&!this.isFrameVertex(t.dest()))}isOnEdge(t,e){return this._seg.setCoordinates(t.orig().getCoordinate(),t.dest().getCoordinate()),this._seg.distance(e)i?10*e:10*i,this._frameVertex[0]=new oo((t.getMaxX()+t.getMinX())/2,t.getMaxY()+r),this._frameVertex[1]=new oo(t.getMinX()-r,t.getMinY()-r),this._frameVertex[2]=new oo(t.getMaxX()+r,t.getMinY()-r),this._frameEnv=new O(this._frameVertex[0].getCoordinate(),this._frameVertex[1].getCoordinate()),this._frameEnv.expandToInclude(this._frameVertex[2].getCoordinate())}getTriangleCoordinates(t){var e=new vo;return this.visitTriangles(e,t),e.getTriangles()}getVertices(t){for(var e=new st,i=this._quadEdges.iterator();i.hasNext();){var r=i.next(),n=r.orig();!t&&this.isFrameVertex(n)||e.add(n);var s=r.dest();!t&&this.isFrameVertex(s)||e.add(s)}return e}fetchTriangleToVisit(t,e,i,r){var n=t,s=0,o=!1;do{this._triEdges[s]=n,this.isFrameEdge(n)&&(o=!0);var a=n.sym();r.contains(a)||e.push(a),r.add(n),s++,n=n.lNext()}while(n!==t);return o&&!i?null:this._triEdges}getEdges(){if(0===arguments.length)return this._quadEdges;if(1===arguments.length){let s=arguments[0];for(var t=this.getPrimaryEdges(!1),e=new Array(t.size()).fill(null),i=0,r=t.iterator();r.hasNext();){var n=r.next();e[i++]=s.createLineString([n.orig().getCoordinate(),n.dest().getCoordinate()])}return s.createMultiLineString(e)}}getVertexUniqueEdges(t){for(var e=new T,i=new st,r=this._quadEdges.iterator();r.hasNext();){var n=r.next(),s=n.orig();i.contains(s)||(i.add(s),!t&&this.isFrameVertex(s)||e.add(n));var o=n.sym(),a=o.orig();i.contains(a)||(i.add(a),!t&&this.isFrameVertex(a)||e.add(o))}return e}getTriangleEdges(t){var e=new _o;return this.visitTriangles(e,t),e.getTriangleEdges()}getPrimaryEdges(t){this._visitedKey++;var e=new T,i=new $e;i.push(this._startingEdge);for(var r=new st;!i.empty();){var n=i.pop();if(!r.contains(n)){var s=n.getPrimary();!t&&this.isFrameEdge(s)||e.add(s),i.push(n.oNext()),i.push(n.sym().oNext()),r.add(n),r.add(n.sym())}}return e}delete(t){lo.splice(t,t.oPrev()),lo.splice(t.sym(),t.sym().oPrev());var e=t.sym(),i=t.rot(),r=t.rot().sym();this._quadEdges.remove(t),this._quadEdges.remove(e),this._quadEdges.remove(i),this._quadEdges.remove(r),t.delete(),e.delete(),i.delete(),r.delete()}locateFromEdge(t,e){for(var i=0,r=this._quadEdges.size(),n=e;;){if(++i>r)throw new go(n.toLineSegment());if(t.equals(n.orig())||t.equals(n.dest()))break;if(t.rightOf(n))n=n.sym();else if(t.rightOf(n.oNext())){if(t.rightOf(n.dPrev()))break;n=n.dPrev()}else n=n.oNext()}return n}getTolerance(){return this._tolerance}getVoronoiCellPolygons(t){this.visitTriangles(new mo,!0);for(var e=new T,i=this.getVertexUniqueEdges(!1).iterator();i.hasNext();){var r=i.next();e.add(this.getVoronoiCellPolygon(r,t))}return e}getVoronoiDiagram(t){var e=this.getVoronoiCellPolygons(t);return t.createGeometryCollection(oe.toGeometryArray(e))}getTriangles(t){for(var e=this.getTriangleCoordinates(!1),i=new Array(e.size()).fill(null),r=0,n=e.iterator();n.hasNext();){var s=n.next();i[r++]=t.createPolygon(t.createLinearRing(s))}return t.createGeometryCollection(i)}insertSite(t){var e=this.locate(t);if(t.equals(e.orig(),this._tolerance)||t.equals(e.dest(),this._tolerance))return e;var i=this.makeEdge(e.orig(),t);lo.splice(i,e);var r=i;do{e=(i=this.connect(e,i.sym())).oPrev()}while(e.lNext()!==r);return r}locate(){if(1===arguments.length){if(arguments[0]instanceof oo){let t=arguments[0];return this._locator.locate(t)}if(arguments[0]instanceof y){let t=arguments[0];return this._locator.locate(new oo(t))}}else if(2===arguments.length){let r=arguments[0],n=arguments[1];var t=this._locator.locate(new oo(r));if(null===t)return null;var e=t;t.dest().getCoordinate().equals2D(r)&&(e=t.sym());var i=e;do{if(i.dest().getCoordinate().equals2D(n))return i;i=i.oNext()}while(i!==e);return null}}getClass(){return fo}get interfaces_(){return[]}}class mo{constructor(){mo.constructor_.apply(this,arguments)}visit(t){for(var e=t[0].orig().getCoordinate(),i=t[1].orig().getCoordinate(),r=t[2].orig().getCoordinate(),n=ye.circumcentre(e,i,r),s=new oo(n),o=0;o<3;o++)t[o].rot().setOrig(s)}getClass(){return mo}get interfaces_(){return[po]}}mo.constructor_=function(){};class _o{constructor(){_o.constructor_.apply(this,arguments)}getTriangleEdges(){return this._triList}visit(t){this._triList.add(t)}getClass(){return _o}get interfaces_(){return[po]}}_o.constructor_=function(){this._triList=new T};class yo{constructor(){yo.constructor_.apply(this,arguments)}visit(t){this._triList.add([t[0].orig(),t[1].orig(),t[2].orig()])}getTriangleVertices(){return this._triList}getClass(){return yo}get interfaces_(){return[po]}}yo.constructor_=function(){this._triList=new T};class vo{constructor(){vo.constructor_.apply(this,arguments)}checkTriangleSize(t){t.length>=2?ue.toLineString(t[0],t[1]):t.length>=1&&ue.toPoint(t[0])}visit(t){this._coordList.clear();for(var e=0;e<3;e++){var i=t[e].orig();this._coordList.add(i.getCoordinate())}if(this._coordList.size()>0){this._coordList.closeRing();var r=this._coordList.toCoordinateArray();if(4!==r.length)return null;this._triCoords.add(r)}}getTriangles(){return this._triCoords}getClass(){return vo}get interfaces_(){return[po]}}vo.constructor_=function(){this._coordList=new M,this._triCoords=new T},fo.TriangleCircumcentreVisitor=mo,fo.TriangleEdgesListVisitor=_o,fo.TriangleVertexListVisitor=yo,fo.TriangleCoordinatesVisitor=vo,fo.constructor_=function(){this._visitedKey=0,this._quadEdges=new T,this._startingEdge=null,this._tolerance=null,this._edgeCoincidenceTolerance=null,this._frameVertex=new Array(3).fill(null),this._frameEnv=null,this._locator=null,this._seg=new pe,this._triEdges=new Array(3).fill(null);let t=arguments[0],e=arguments[1];this._tolerance=e,this._edgeCoincidenceTolerance=e/fo.EDGE_COINCIDENCE_TOL_FACTOR,this.createFrame(t),this._startingEdge=this.initSubdiv(),this._locator=new uo(this)},fo.EDGE_COINCIDENCE_TOL_FACTOR=1e3;class xo{constructor(){xo.constructor_.apply(this,arguments)}getLineSegment(){return this._ls}getEndZ(){return this._ls.getCoordinate(1).z}getStartZ(){return this._ls.getCoordinate(0).z}intersection(t){return this._ls.intersection(t.getLineSegment())}getStart(){return this._ls.getCoordinate(0)}getEnd(){return this._ls.getCoordinate(1)}getEndY(){return this._ls.getCoordinate(1).y}getStartX(){return this._ls.getCoordinate(0).x}equalsTopo(t){return this._ls.equalsTopo(t.getLineSegment())}getStartY(){return this._ls.getCoordinate(0).y}setData(t){this._data=t}getData(){return this._data}getEndX(){return this._ls.getCoordinate(1).x}toString(){return this._ls.toString()}getClass(){return xo}get interfaces_(){return[]}}xo.constructor_=function(){if(this._ls=null,this._data=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._ls=new pe(t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._ls=new pe(t,e),this._data=i}else if(6===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3],n=arguments[4],s=arguments[5];xo.constructor_.call(this,new y(t,e,i),new y(r,n,s))}else if(7===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3],n=arguments[4],s=arguments[5],o=arguments[6];xo.constructor_.call(this,new y(t,e,i),new y(r,n,s),o)}};class bo{constructor(){bo.constructor_.apply(this,arguments)}static computeVertexEnvelope(t){for(var e=new O,i=t.iterator();i.hasNext();){var r=i.next();e.expandToInclude(r.getCoordinate())}return e}getInitialVertices(){return this._initialVertices}getKDT(){return this._kdt}enforceConstraints(){this.addConstraintVertices();var t=0,e=0;do{e=this.enforceGabriel(this._segments),t++}while(e>0&&t=1)return e;var r=(e.x-t.x)*i+t.x,n=(e.y-t.y)*i+t.y,s=(e.z-t.z)*i+t.z;return new y(r,n,s)}static compareLocationValues(t,e,i,r,n,s){return tr?1:en?1:is?1:0}getSegmentIndex(){return this._segmentIndex}getComponentIndex(){return this._componentIndex}isEndpoint(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex>=e||this._segmentIndex===e&&this._segmentFraction>=1}isValid(t){if(this._componentIndex<0||this._componentIndex>=t.getNumGeometries())return!1;var e=t.getGeometryN(this._componentIndex);return!(this._segmentIndex<0||this._segmentIndex>e.getNumPoints()||this._segmentIndex===e.getNumPoints()&&0!==this._segmentFraction||this._segmentFraction<0||this._segmentFraction>1)}normalize(){this._segmentFraction<0&&(this._segmentFraction=0),this._segmentFraction>1&&(this._segmentFraction=1),this._componentIndex<0&&(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0),this._segmentIndex<0&&(this._segmentIndex=0,this._segmentFraction=0),1===this._segmentFraction&&(this._segmentFraction=0,this._segmentIndex+=1)}toLowest(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex=e.getNumPoints()-1)return i;var r=e.getCoordinateN(this._segmentIndex+1);return To.pointAlongSegmentByFraction(i,r,this._segmentFraction)}getSegmentFraction(){return this._segmentFraction}getSegment(t){var e=t.getGeometryN(this._componentIndex),i=e.getCoordinateN(this._segmentIndex);if(this._segmentIndex>=e.getNumPoints()-1){var r=e.getCoordinateN(e.getNumPoints()-2);return new pe(r,i)}var n=e.getCoordinateN(this._segmentIndex+1);return new pe(i,n)}clamp(t){if(this._componentIndex>=t.getNumGeometries())return this.setToEnd(t),null;if(this._segmentIndex>=t.getNumPoints()){var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}}setToEnd(t){this._componentIndex=t.getNumGeometries()-1;var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}compareTo(t){var e=t;return this._componentIndexe._componentIndex?1:this._segmentIndexe._segmentIndex?1:this._segmentFractione._segmentFraction?1:0}copy(){return new To(this._componentIndex,this._segmentIndex,this._segmentFraction)}toString(){return"LinearLoc["+this._componentIndex+", "+this._segmentIndex+", "+this._segmentFraction+"]"}isOnSameSegment(t){return this._componentIndex===t._componentIndex&&(this._segmentIndex===t._segmentIndex||t._segmentIndex-this._segmentIndex==1&&0===t._segmentFraction||this._segmentIndex-t._segmentIndex==1&&0===this._segmentFraction)}snapToVertex(t,e){if(this._segmentFraction<=0||this._segmentFraction>=1)return null;var i=this.getSegmentLength(t),r=this._segmentFraction*i,n=i-r;r<=n&&rt?1:this._segmentIndexe?1:this._segmentFractioni?1:0}getSegmentLength(t){var e=t.getGeometryN(this._componentIndex),i=this._segmentIndex;this._segmentIndex>=e.getNumPoints()-1&&(i=e.getNumPoints()-2);var r=e.getCoordinateN(i),n=e.getCoordinateN(i+1);return r.distance(n)}isVertex(){return this._segmentFraction<=0||this._segmentFraction>=1}getClass(){return To}get interfaces_(){return[u]}}To.constructor_=function(){if(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._componentIndex=t._componentIndex,this._segmentIndex=t._segmentIndex,this._segmentFraction=t._segmentFraction}else if(2===arguments.length){let t=arguments[0],e=arguments[1];To.constructor_.call(this,0,t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,this.normalize()}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,r&&this.normalize()}};class Lo{constructor(){Lo.constructor_.apply(this,arguments)}static segmentEndVertexIndex(t){return t.getSegmentFraction()>0?t.getSegmentIndex()+1:t.getSegmentIndex()}getComponentIndex(){return this._componentIndex}getLine(){return this._currentLine}getVertexIndex(){return this._vertexIndex}getSegmentEnd(){return this._vertexIndex=this._currentLine.getNumPoints()&&(this._componentIndex++,this.loadCurrentLine(),this._vertexIndex=0)}loadCurrentLine(){if(this._componentIndex>=this._numLines)return this._currentLine=null,null;this._currentLine=this._linearGeom.getGeometryN(this._componentIndex)}getSegmentStart(){return this._currentLine.getCoordinateN(this._vertexIndex)}isEndOfLine(){return!(this._componentIndex>=this._numLines||this._vertexIndex=this._numLines||this._componentIndex===this._numLines-1&&this._vertexIndex>=this._currentLine.getNumPoints())}getClass(){return Lo}get interfaces_(){return[]}}Lo.constructor_=function(){if(this._linearGeom=null,this._numLines=null,this._currentLine=null,this._componentIndex=0,this._vertexIndex=0,1===arguments.length){let t=arguments[0];Lo.constructor_.call(this,t,0,0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];Lo.constructor_.call(this,t,e.getComponentIndex(),Lo.segmentEndVertexIndex(e))}else if(3===arguments.length){let t=arguments[0],e=arguments[1],r=arguments[2];if(!x(t,pt))throw new i("Lineal geometry is required");this._linearGeom=t,this._numLines=t.getNumGeometries(),this._componentIndex=e,this._vertexIndex=r,this.loadCurrentLine()}};class Mo{constructor(){Mo.constructor_.apply(this,arguments)}static indexOf(t,e){return new Mo(t).indexOf(e)}static indexOfAfter(t,e,i){return new Mo(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,null)}indexOfFromStart(t,e){for(var i=n.MAX_VALUE,r=0,s=0,o=-1,a=new pe,l=new Lo(this._linearGeom);l.hasNext();l.next())if(!l.isEndOfLine()){a.p0=l.getSegmentStart(),a.p1=l.getSegmentEnd();var h=a.distance(t),c=a.segmentFraction(t),u=l.getComponentIndex(),d=l.getVertexIndex();h=0,"computed location is before specified minimum location"),r}getClass(){return Mo}get interfaces_(){return[]}}Mo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Oo{constructor(){Oo.constructor_.apply(this,arguments)}static indicesOf(t,e){return new Oo(t).indicesOf(e)}indicesOf(t){var e=t.getGeometryN(0).getCoordinateN(0),i=t.getGeometryN(t.getNumGeometries()-1),r=i.getCoordinateN(i.getNumPoints()-1),n=new Mo(this._linearGeom),s=new Array(2).fill(null);return s[0]=n.indexOf(e),0===t.getLength()?s[1]=s[0].copy():s[1]=n.indexOfAfter(r,s[0]),s}getClass(){return Oo}get interfaces_(){return[]}}Oo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Ro{constructor(){Ro.constructor_.apply(this,arguments)}getGeometry(){return this.endLine(),this._geomFact.buildGeometry(this._lines)}getLastCoordinate(){return this._lastPt}endLine(){if(null===this._coordList)return null;if(this._ignoreInvalidLines&&this._coordList.size()<2)return this._coordList=null,null;var t=this._coordList.toCoordinateArray(),e=t;this._fixInvalidLines&&(e=this.validCoordinateSequence(t)),this._coordList=null;var r=null;try{r=this._geomFact.createLineString(e)}catch(t){if(!(t instanceof i))throw t;if(!this._ignoreInvalidLines)throw t}null!==r&&this._lines.add(r)}setFixInvalidLines(t){this._fixInvalidLines=t}add(){if(1===arguments.length){let t=arguments[0];this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];null===this._coordList&&(this._coordList=new M),this._coordList.add(t,e),this._lastPt=t}}setIgnoreInvalidLines(t){this._ignoreInvalidLines=t}validCoordinateSequence(t){return t.length>=2?t:[t[0],t[0]]}getClass(){return Ro}get interfaces_(){return[]}}Ro.constructor_=function(){this._geomFact=null,this._lines=new T,this._coordList=null,this._ignoreInvalidLines=!1,this._fixInvalidLines=!1,this._lastPt=null;let t=arguments[0];this._geomFact=t};class Po{constructor(){Po.constructor_.apply(this,arguments)}static extract(t,e,i){return new Po(t).extract(e,i)}computeLinear(t,e){var i=new Ro(this._line.getFactory());i.setFixInvalidLines(!0),t.isVertex()||i.add(t.getCoordinate(this._line));for(var r=new Lo(this._line,t);r.hasNext()&&!(e.compareLocationValues(r.getComponentIndex(),r.getVertexIndex(),0)<0);r.next()){var n=r.getSegmentStart();i.add(n),r.isEndOfLine()&&i.endLine()}return e.isVertex()||i.add(e.getCoordinate(this._line)),i.getGeometry()}computeLine(t,e){var i=this._line.getCoordinates(),r=new M,n=t.getSegmentIndex();t.getSegmentFraction()>0&&(n+=1);var s=e.getSegmentIndex();1===e.getSegmentFraction()&&(s+=1),s>=i.length&&(s=i.length-1),t.isVertex()||r.add(t.getCoordinate(this._line));for(var o=n;o<=s;o++)r.add(i[o]);e.isVertex()||r.add(e.getCoordinate(this._line)),r.size()<=0&&r.add(t.getCoordinate(this._line));var a=r.toCoordinateArray();return a.length<=1&&(a=[a[0],a[0]]),this._line.getFactory().createLineString(a)}extract(t,e){return e.compareTo(t)<0?this.reverse(this.computeLinear(e,t)):this.computeLinear(t,e)}reverse(t){return t instanceof kt||t instanceof St?t.reverse():(_.shouldNeverReachHere("non-linear geometry encountered"),null)}getClass(){return Po}get interfaces_(){return[]}}Po.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class No{constructor(){No.constructor_.apply(this,arguments)}clampIndex(t){var e=t.copy();return e.clamp(this._linearGeom),e}project(t){return Mo.indexOf(this._linearGeom,t)}checkGeometryType(){if(!(this._linearGeom instanceof kt||this._linearGeom instanceof St))throw new i("Input geometry must be linear")}extractPoint(){if(1===arguments.length)return arguments[0].getCoordinate(this._linearGeom);if(2===arguments.length){let e=arguments[1];var t=arguments[0].toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),e)}}isValidIndex(t){return t.isValid(this._linearGeom)}getEndIndex(){return To.getEndLocation(this._linearGeom)}getStartIndex(){return new To}indexOfAfter(t,e){return Mo.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){return Po.extract(this._linearGeom,t,e)}indexOf(t){return Mo.indexOf(this._linearGeom,t)}indicesOf(t){return Oo.indicesOf(this._linearGeom,t)}getClass(){return No}get interfaces_(){return[]}}No.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t,this.checkGeometryType()};class Ao{constructor(){Ao.constructor_.apply(this,arguments)}static indexOf(t,e){return new Ao(t).indexOf(e)}static indexOfAfter(t,e,i){return new Ao(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,-1)}indexOfFromStart(t,e){for(var i=n.MAX_VALUE,r=e,s=0,o=new pe,a=new Lo(this._linearGeom);a.hasNext();){if(!a.isEndOfLine()){o.p0=a.getSegmentStart(),o.p1=a.getSegmentEnd();var l=o.distance(t),h=this.segmentNearestMeasure(o,t,s);le&&(r=h,i=l),s+=o.getLength()}a.next()}return r}indexOfAfter(t,e){if(e<0)return this.indexOf(t);var i=this._linearGeom.getLength();if(i=e,"computed index is before specified minimum index"),r}segmentNearestMeasure(t,e,i){var r=t.projectionFactor(e);return r<=0?i:r<=1?i+r*t.getLength():i+t.getLength()}getClass(){return Ao}get interfaces_(){return[]}}Ao.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Fo{constructor(){Fo.constructor_.apply(this,arguments)}static getLength(t,e){return new Fo(t).getLength(e)}static getLocation(){if(2===arguments.length){let t=arguments[1];return new Fo(arguments[0]).getLocation(t)}if(3===arguments.length){let t=arguments[1],e=arguments[2];return new Fo(arguments[0]).getLocation(t,e)}}getLength(t){for(var e=0,i=new Lo(this._linearGeom);i.hasNext();){if(!i.isEndOfLine()){var r=i.getSegmentStart(),n=i.getSegmentEnd().distance(r);if(t.getComponentIndex()===i.getComponentIndex()&&t.getSegmentIndex()===i.getVertexIndex())return e+n*t.getSegmentFraction();e+=n}i.next()}return e}resolveHigher(t){if(!t.isEndpoint(this._linearGeom))return t;var e=t.getComponentIndex();if(e>=this._linearGeom.getNumGeometries()-1)return t;do{e++}while(et){var a=(t-e)/o;return r=i.getComponentIndex(),n=i.getVertexIndex(),new To(r,n,a)}e+=o}i.next()}return To.getEndLocation(this._linearGeom)}getClass(){return Fo}get interfaces_(){return[]}}Fo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class ko{constructor(){ko.constructor_.apply(this,arguments)}clampIndex(t){var e=this.positiveIndex(t),i=this.getStartIndex();if(er?r:e}locationOf(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Fo.getLocation(this._linearGeom,t,e)}}project(t){return Ao.indexOf(this._linearGeom,t)}positiveIndex(t){return t>=0?t:this._linearGeom.getLength()+t}extractPoint(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t).getCoordinate(this._linearGeom)}if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=Fo.getLocation(this._linearGeom,e).toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),i)}}isValidIndex(t){return t>=this.getStartIndex()&&t<=this.getEndIndex()}getEndIndex(){return this._linearGeom.getLength()}getStartIndex(){return 0}indexOfAfter(t,e){return Ao.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){new No(this._linearGeom);var i=this.clampIndex(t),r=this.clampIndex(e),n=i===r,s=this.locationOf(i,n),o=this.locationOf(r);return Po.extract(this._linearGeom,s,o)}indexOf(t){return Ao.indexOf(this._linearGeom,t)}indicesOf(t){var e=Oo.indicesOf(this._linearGeom,t);return[Fo.getLength(this._linearGeom,e[0]),Fo.getLength(this._linearGeom,e[1])]}getClass(){return ko}get interfaces_(){return[]}}ko.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};var Do=Object.freeze({LengthIndexedLine:ko,LengthLocationMap:Fo,LinearGeometryBuilder:Ro,LinearIterator:Lo,LinearLocation:To,LocationIndexedLine:No});class jo{get interfaces_(){return[]}getClass(){return jo}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),Qn.overlayOp(t,e,es.UNION)}}W.prototype.equalsTopo=function(t){return!!this.getEnvelopeInternal().equals(t.getEnvelopeInternal())&&Ss.relate(this,t).isEquals(this.getDimension(),t.getDimension())},W.prototype.union=function(){if(0===arguments.length)return Os.union(this);if(1===arguments.length){let t=arguments[0];return jo.union(this,t)}},W.prototype.isValid=function(){return Ds.isValid(this)},W.prototype.intersection=function(t){if(this.isEmpty()||t.isEmpty())return es.createEmptyResult(es.INTERSECTION,this,t,this._factory);if(this.isGeometryCollection()){var e=t;return Un.map(this,{interfaces_:[MapOp],map:function(t){return t.intersection(e)}})}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),Qn.overlayOp(this,t,es.INTERSECTION)},W.prototype.covers=function(t){return Ss.covers(this,t)},W.prototype.coveredBy=function(t){return Ss.covers(t,this)},W.prototype.touches=function(t){return Ss.touches(this,t)},W.prototype.intersects=function(t){return Ss.intersects(this,t)},W.prototype.within=function(t){return Ss.contains(t,this)},W.prototype.overlaps=function(t){return Ss.overlaps(this,t)},W.prototype.disjoint=function(t){return Ss.disjoint(this,t)},W.prototype.crosses=function(t){return Ss.crosses(this,t)},W.prototype.buffer=function(){if(1===arguments.length){let t=arguments[0];return _n.bufferOp(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return _n.bufferOp(this,t,e)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return _n.bufferOp(this,t,e,i)}},W.prototype.convexHull=function(){return new Qe(this).getConvexHull()},W.prototype.relate=function(...t){if(1===arguments.length){let t=arguments[0];return Ss.relate(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Ss.relate(this,t).matches(e)}},W.prototype.getCentroid=function(){if(this.isEmpty())return this._factory.createPoint();var t=Ze.getCentroid(this);return this.createPointFromInternalCoord(t,this)},W.prototype.getInteriorPoint=function(){if(this.isEmpty())return this._factory.createPoint();var t=null,e=this.getDimension();return t=0===e?new ni(this).getInteriorPoint():1===e?new ri(this).getInteriorPoint():new ei(this).getInteriorPoint(),this.createPointFromInternalCoord(t,this)},W.prototype.symDifference=function(t){if(this.isEmpty()||t.isEmpty()){if(this.isEmpty()&&t.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,this,t,this._factory);if(this.isEmpty())return t.copy();if(t.isEmpty())return this.copy()}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),Qn.overlayOp(this,t,es.SYMDIFFERENCE)},W.prototype.createPointFromInternalCoord=function(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)},W.prototype.toText=function(){return(new ue).write(this)},W.prototype.toString=function(){this.toText()},W.prototype.contains=function(t){return Ss.contains(this,t)},W.prototype.difference=function(t){return this.isEmpty()?es.createEmptyResult(es.DIFFERENCE,this,t,this._factory):t.isEmpty()?this.copy():(this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),Qn.overlayOp(this,t,es.DIFFERENCE))},W.prototype.isSimple=function(){return new jr(this).isSimple()},W.prototype.isWithinDistance=function(t,e){return!(this.getEnvelopeInternal().distance(t.getEnvelopeInternal())>e)&&En.isWithinDistance(this,t,e)},W.prototype.distance=function(t){return En.distance(this,t)},W.prototype.isEquivalentClass=function(t){return this.getClass()===t.getClass()},t.version="2.0.2 (f363091)",t.algorithm=ai,t.densify=ui,t.dissolve=vi,t.geom=ve,t.geomgraph=qi,t.index=fr,t.io=br,t.noding=Dr,t.operation=Gs,t.precision=Us,t.simplify=eo,t.triangulate=Co,t.linearref=Do,Object.defineProperty(t,"__esModule",{value:!0})}(e)},function(t,e,i){"use strict";i.r(e);var r={};i.r(r),i.d(r,"LEFT",(function(){return Zd})),i.d(r,"CENTER",(function(){return Kd})),i.d(r,"RIGHT",(function(){return $d})),i.d(r,"JUSTIFY",(function(){return Jd}));var n={};i.r(n),i.d(n,"TOP",(function(){return Qd})),i.d(n,"MIDDLE",(function(){return tg})),i.d(n,"BOTTOM",(function(){return eg})),i.d(n,"ALPHABETIC",(function(){return ig})),i.d(n,"HANGING",(function(){return rg})),i.d(n,"IDEOGRAPHIC",(function(){return ng}));var s={};i.r(s),i.d(s,"show",(function(){return mf})),i.d(s,"info",(function(){return _f})),i.d(s,"error",(function(){return yf})),i.d(s,"success",(function(){return vf}));var o={};i.r(o),i.d(o,"POINT",(function(){return Ub})),i.d(o,"LINE",(function(){return Vb})),i.d(o,"POLYGON",(function(){return qb})),i.d(o,"MPOINT",(function(){return Yb})),i.d(o,"MLINE",(function(){return Wb})),i.d(o,"MPOLYGON",(function(){return Xb}));var a=i(29),l=i.n(a),h=i(1);var c=(t,e,i)=>{const r=Object(h.o)(e),n=Object(h.o)(i);return Object(h.z)(t,r,n)},u=i(9);const d="http://www.w3.org/2001/XMLSchema-instance";function g(t,e){return k().createElementNS(t,e)}function p(t,e){return f(t,e,[]).join("")}function f(t,e,i){if(t.nodeType==Node.CDATA_SECTION_NODE||t.nodeType==Node.TEXT_NODE)e?i.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(t.nodeValue);else{let r;for(r=t.firstChild;r;r=r.nextSibling)f(r,e,i)}return i}function m(t){return"documentElement"in t}function _(t){return(new DOMParser).parseFromString(t,"application/xml")}function y(t,e){return function(i,r){const n=t.call(void 0!==e?e:this,i,r);if(void 0!==n){const t=r[r.length-1];Object(u.d)(t,n)}}}function v(t,e){return function(i,r){const n=t.call(void 0!==e?e:this,i,r);if(void 0!==n){r[r.length-1].push(n)}}}function x(t,e){return function(i,r){const n=t.call(void 0!==e?e:this,i,r);void 0!==n&&(r[r.length-1]=n)}}function b(t,e,i){return function(r,n){const s=t.call(void 0!==i?i:this,r,n);if(void 0!==s){const t=n[n.length-1],i=void 0!==e?e:r.localName;let o;i in t?o=t[i]:(o=[],t[i]=o),o.push(s)}}}function w(t,e,i){return function(r,n){const s=t.call(void 0!==i?i:this,r,n);if(void 0!==s){n[n.length-1][void 0!==e?e:r.localName]=s}}}function E(t,e){return function(i,r,n){t.call(void 0!==e?e:this,i,r,n);n[n.length-1].node.appendChild(i)}}function S(t,e){let i,r;return function(e,n,s){if(void 0===i){i={};const n={};n[e.localName]=t,i[e.namespaceURI]=n,r=I(e.localName)}P(i,r,n,s)}}function I(t,e){return function(i,r,n){const s=r[r.length-1].node;let o=t;void 0===o&&(o=n);return g(void 0!==e?e:s.namespaceURI,o)}}const C=I();function T(t,e){const i=e.length,r=new Array(i);for(let n=0;n=this.text.length)return;t=this.text[this.place++]}switch(this.state){case 1:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},Jt.prototype.afterquote=function(t){if('"'===t)return this.word+='"',void(this.state=4);if(Kt.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in afterquote yet, index '+this.place)},Jt.prototype.afterItem=function(t){return","===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=1)):"]"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=1,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},Jt.prototype.number=function(t){if(!$t.test(t)){if(Kt.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in number yet, index '+this.place)}this.word+=t},Jt.prototype.quoted=function(t){'"'!==t?this.word+=t:this.state=5},Jt.prototype.keyword=function(t){if(Zt.test(t))this.word+=t;else{if("["===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=1)}if(!Kt.test(t))throw new Error("havn't handled \""+t+'" in keyword yet, index '+this.place);this.afterItem(t)}},Jt.prototype.neutral=function(t){if(Ht.test(t))return this.word=t,void(this.state=2);if('"'===t)return this.word="",void(this.state=4);if($t.test(t))return this.word=t,void(this.state=3);if(!Kt.test(t))throw new Error("havn't handled \""+t+'" in neutral yet, index '+this.place);this.afterItem(t)},Jt.prototype.output=function(){for(;this.place0?90:-90)):(t.lat0=ee(t.lat1>0?90:-90),t.lat_ts=t.lat1)}(n),n};function re(t){var e=this;if(2===arguments.length){var i=arguments[1];"string"==typeof i?"+"===i.charAt(0)?re[t]=Yt(arguments[1]):re[t]=ie(arguments[1]):re[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?re.apply(e,t):re(t)}));if("string"==typeof t){if(t in re)return re[t]}else"EPSG"in t?re["EPSG:"+t.EPSG]=t:"ESRI"in t?re["ESRI:"+t.ESRI]=t:"IAU2000"in t?re["IAU2000:"+t.IAU2000]=t:console.log(t);return}}!function(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}(re);var ne=re;var se=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];var oe=["3857","900913","3785","102113"];var ae=function(t){if(!function(t){return"string"==typeof t}(t))return t;if(function(t){return t in ne}(t))return ne[t];if(function(t){return se.some((function(e){return t.indexOf(e)>-1}))}(t)){var e=ie(t);if(function(t){var e=qt(t,"authority");if(e){var i=qt(e,"epsg");return i&&oe.indexOf(i)>-1}}(e))return ne["EPSG:3857"];var i=function(t){var e=qt(t,"extension");if(e)return qt(e,"proj4")}(e);return i?Yt(i):e}return function(t){return"+"===t[0]}(t)?Yt(t):void 0},le=function(t,e){var i,r;if(t=t||{},!e)return t;for(r in e)void 0!==(i=e[r])&&(t[r]=i);return t},he=function(t,e,i){var r=t*e;return i/Math.sqrt(1-r*r)},ce=function(t){return t<0?-1:1},ue=function(t){return Math.abs(t)<=zt?t:t-ce(t)*Gt},de=function(t,e,i){var r=t*i,n=.5*t;return r=Math.pow((1-r)/(1+r),n),Math.tan(.5*(At-e))/r},ge=function(t,e){for(var i,r,n=.5*t,s=At-2*Math.atan(e),o=0;o<=15;o++)if(i=t*Math.sin(s),s+=r=At-2*Math.atan(e*Math.pow((1-i)/(1+i),n))-s,Math.abs(r)<=1e-10)return s;return-9999};function pe(t){return t}var fe=[{init:function(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=he(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},forward:function(t){var e,i,r=t.x,n=t.y;if(n*Dt>90&&n*Dt<-90&&r*Dt>180&&r*Dt<-180)return null;if(Math.abs(Math.abs(n)-At)<=Ft)return null;if(this.sphere)e=this.x0+this.a*this.k0*ue(r-this.long0),i=this.y0+this.a*this.k0*Math.log(Math.tan(jt+.5*n));else{var s=Math.sin(n),o=de(this.e,n,s);e=this.x0+this.a*this.k0*ue(r-this.long0),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=e,t.y=i,t},inverse:function(t){var e,i,r=t.x-this.x0,n=t.y-this.y0;if(this.sphere)i=At-2*Math.atan(Math.exp(-n/(this.a*this.k0)));else{var s=Math.exp(-n/(this.a*this.k0));if(-9999===(i=ge(this.e,s)))return null}return e=ue(this.long0+r/(this.a*this.k0)),t.x=e,t.y=i,t},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{init:function(){},forward:pe,inverse:pe,names:["longlat","identity"]}],me={},_e=[];function ye(t,e){var i=_e.length;return t.names?(_e[i]=t,t.names.forEach((function(t){me[t.toLowerCase()]=i})),this):(console.log(e),!0)}var ve={start:function(){fe.forEach(ye)},add:ye,get:function(t){if(!t)return!1;var e=t.toLowerCase();return void 0!==me[e]&&_e[me[e]]?_e[me[e]]:void 0}},xe={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"}},be=xe.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};xe.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"};var we={};we.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},we.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},we.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},we.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},we.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},we.potsdam={towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},we.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},we.hermannskogel={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},we.osni52={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},we.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},we.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},we.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},we.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"},we.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},we.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},we.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},we.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"};var Ee=function(t,e,i,r,n,s,o){var a={};return a.datum_type=void 0===t||"none"===t?5:4,e&&(a.datum_params=e.map(parseFloat),0===a.datum_params[0]&&0===a.datum_params[1]&&0===a.datum_params[2]||(a.datum_type=1),a.datum_params.length>3&&(0===a.datum_params[3]&&0===a.datum_params[4]&&0===a.datum_params[5]&&0===a.datum_params[6]||(a.datum_type=2,a.datum_params[3]*=Nt,a.datum_params[4]*=Nt,a.datum_params[5]*=Nt,a.datum_params[6]=a.datum_params[6]/1e6+1))),o&&(a.datum_type=3,a.grids=o),a.a=i,a.b=r,a.es=n,a.ep2=s,a},Se={};function Ie(t){if(0===t.length)return null;var e="@"===t[0];return e&&(t=t.slice(1)),"null"===t?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Se[t]||null,isNull:!1}}function Ce(t){return t/3600*Math.PI/180}function Te(t,e,i){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,i)))}function Le(t){return t.map((function(t){return[Ce(t.longitudeShift),Ce(t.latitudeShift)]}))}function Me(t,e,i){return{name:Te(t,e+8,e+16).trim(),parent:Te(t,e+24,e+24+8).trim(),lowerLatitude:t.getFloat64(e+72,i),upperLatitude:t.getFloat64(e+88,i),lowerLongitude:t.getFloat64(e+104,i),upperLongitude:t.getFloat64(e+120,i),latitudeInterval:t.getFloat64(e+136,i),longitudeInterval:t.getFloat64(e+152,i),gridNodeCount:t.getInt32(e+168,i)}}function Oe(t,e,i,r){for(var n=e+176,s=[],o=0;o-1.001*At)l=-At;else if(l>At&&l<1.001*At)l=At;else{if(l<-At)return{x:-1/0,y:-1/0,z:t.z};if(l>At)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(l),o=Math.cos(l),s=n*n,{x:((r=i/Math.sqrt(1-e*s))+h)*o*Math.cos(a),y:(r+h)*o*Math.sin(a),z:(r*(1-e)+h)*n}}function Ae(t,e,i,r){var n,s,o,a,l,h,c,u,d,g,p,f,m,_,y,v=1e-12,x=t.x,b=t.y,w=t.z?t.z:0;if(n=Math.sqrt(x*x+b*b),s=Math.sqrt(x*x+b*b+w*w),n/i1e-24&&m<30);return{x:_,y:Math.atan(p/Math.abs(g)),z:y}}function Fe(t){return 1===t||2===t}var ke=function(t,e,i){if(function(t,e){return t.datum_type===e.datum_type&&!(t.a!==e.a||Math.abs(t.es-e.es)>5e-11)&&(1===t.datum_type?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:2!==t.datum_type||t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6])}(t,e))return i;if(5===t.datum_type||5===e.datum_type)return i;var r=t.a,n=t.es;if(3===t.datum_type){if(0!==De(t,!1,i))return;r=Rt,n=Pt}var s=e.a,o=e.b,a=e.es;if(3===e.datum_type&&(s=Rt,o=6356752.314,a=Pt),n===a&&r===s&&!Fe(t.datum_type)&&!Fe(e.datum_type))return i;if((i=Ne(i,n,r),Fe(t.datum_type)&&(i=function(t,e,i){if(1===e)return{x:t.x+i[0],y:t.y+i[1],z:t.z+i[2]};if(2===e){var r=i[0],n=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6];return{x:h*(t.x-l*t.y+a*t.z)+r,y:h*(l*t.x+t.y-o*t.z)+n,z:h*(-a*t.x+o*t.y+t.z)+s}}}(i,t.datum_type,t.datum_params)),Fe(e.datum_type)&&(i=function(t,e,i){if(1===e)return{x:t.x-i[0],y:t.y-i[1],z:t.z-i[2]};if(2===e){var r=i[0],n=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6],c=(t.x-r)/h,u=(t.y-n)/h,d=(t.z-s)/h;return{x:c+l*u-a*d,y:-l*c+u+o*d,z:a*c-o*u+d}}}(i,e.datum_type,e.datum_params)),i=Ae(i,a,s,o),3===e.datum_type)&&0!==De(e,!0,i))return;return i};function De(t,e,i){if(null===t.grids||0===t.grids.length)return console.log("Grid shift grids not found"),-1;for(var r={x:-i.x,y:i.y},n={x:Number.NaN,y:Number.NaN},s=[],o=0;or.y||c>r.x||g1e-12&&Math.abs(o.y)>1e-12);if(l<0)return console.log("Inverse grid shift iterator failed to converge."),r;r.x=ue(s.x+i.ll[0]),r.y=s.y+i.ll[1]}else isNaN(s.x)||(r.x=t.x+s.x,r.y=t.y+s.y);return r}function Ge(t,e){var i,r={x:t.x/e.del[0],y:t.y/e.del[1]},n=Math.floor(r.x),s=Math.floor(r.y),o=r.x-1*n,a=r.y-1*s,l={x:Number.NaN,y:Number.NaN};if(n<0||n>=e.lim[0])return l;if(s<0||s>=e.lim[1])return l;i=s*e.lim[0]+n;var h=e.cvs[i][0],c=e.cvs[i][1];i++;var u=e.cvs[i][0],d=e.cvs[i][1];i+=e.lim[0];var g=e.cvs[i][0],p=e.cvs[i][1];i--;var f=e.cvs[i][0],m=e.cvs[i][1],_=o*a,y=o*(1-a),v=(1-o)*(1-a),x=(1-o)*a;return l.x=v*h+y*u+x*f+_*g,l.y=v*c+y*d+x*m+_*p,l}var ze=function(t,e,i){var r,n,s,o=i.x,a=i.y,l=i.z||0,h={};for(s=0;s<3;s++)if(!e||2!==s||void 0!==i.z)switch(0===s?(r=o,n=-1!=="ew".indexOf(t.axis[s])?"x":"y"):1===s?(r=a,n=-1!=="ns".indexOf(t.axis[s])?"y":"x"):(r=l,n="z"),t.axis[s]){case"e":h[n]=r;break;case"w":h[n]=-r;break;case"n":h[n]=r;break;case"s":h[n]=-r;break;case"u":void 0!==i[n]&&(h.z=r);break;case"d":void 0!==i[n]&&(h.z=-r);break;default:return null}return h},Be=function(t){var e={x:t[0],y:t[1]};return t.length>2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e};function Ue(t){if("function"==typeof Number.isFinite){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof t||t!=t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function Ve(t,e,i,r){var n,s=void 0!==(i=Array.isArray(i)?Be(i):{x:i.x,y:i.y,z:i.z,m:i.m}).z;if(function(t){Ue(t.x),Ue(t.y)}(i),t.datum&&e.datum&&function(t,e){return(1===t.datum.datum_type||2===t.datum.datum_type||3===t.datum.datum_type)&&"WGS84"!==e.datumCode||(1===e.datum.datum_type||2===e.datum.datum_type||3===e.datum.datum_type)&&"WGS84"!==t.datumCode}(t,e)&&(i=Ve(t,n=new Pe("WGS84"),i,r),t=n),r&&"enu"!==t.axis&&(i=ze(t,!1,i)),"longlat"===t.projName)i={x:i.x*kt,y:i.y*kt,z:i.z||0};else if(t.to_meter&&(i={x:i.x*t.to_meter,y:i.y*t.to_meter,z:i.z||0}),!(i=t.inverse(i)))return;if(t.from_greenwich&&(i.x+=t.from_greenwich),i=ke(t.datum,e.datum,i))return e.from_greenwich&&(i={x:i.x-e.from_greenwich,y:i.y,z:i.z||0}),"longlat"===e.projName?i={x:i.x*Dt,y:i.y*Dt,z:i.z||0}:(i=e.forward(i),e.to_meter&&(i={x:i.x/e.to_meter,y:i.y/e.to_meter,z:i.z||0})),r&&"enu"!==e.axis?ze(e,!0,i):(s||delete i.z,i)}var qe=Pe("WGS84");function Ye(t,e,i,r){var n,s,o;return Array.isArray(i)?(n=Ve(t,e,i,r)||{x:NaN,y:NaN},i.length>2?void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name?"number"==typeof n.z?[n.x,n.y,n.z].concat(i.splice(3)):[n.x,n.y,i[2]].concat(i.splice(3)):[n.x,n.y].concat(i.splice(2)):[n.x,n.y]):(s=Ve(t,e,i,r),2===(o=Object.keys(i)).length||o.forEach((function(r){if(void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name){if("x"===r||"y"===r||"z"===r)return}else if("x"===r||"y"===r)return;s[r]=i[r]})),s)}function We(t){return t instanceof Pe?t:t.oProj?t.oProj:Pe(t)}var Xe=function(t,e,i){t=We(t);var r,n=!1;return void 0===e?(e=t,t=qe,n=!0):(void 0!==e.x||Array.isArray(e))&&(i=e,e=t,t=qe,n=!0),e=We(e),i?Ye(t,e,i):(r={forward:function(i,r){return Ye(t,e,i,r)},inverse:function(i,r){return Ye(e,t,i,r)}},n&&(r.oProj=e),r)},He="AJSAJS",Ze="AFAFAF",Ke=65,$e=73,Je=79,Qe=86,ti=90,ei={forward:ii,inverse:function(t){var e=oi(hi(t.toUpperCase()));if(e.lat&&e.lon)return[e.lon,e.lat,e.lon,e.lat];return[e.left,e.bottom,e.right,e.top]},toPoint:ri};function ii(t,e){return e=e||5,function(t,e){var i="00000"+t.easting,r="00000"+t.northing;return t.zoneNumber+t.zoneLetter+(g=t.easting,p=t.northing,f=t.zoneNumber,m=li(f),_=Math.floor(g/1e5),y=Math.floor(p/1e5)%20,n=_,s=y,o=m,a=o-1,l=He.charCodeAt(a),h=Ze.charCodeAt(a),c=l+n-1,u=h+s,d=!1,c>ti&&(c=c-ti+Ke-1,d=!0),(c===$e||l<$e&&c>$e||(c>$e||l<$e)&&d)&&c++,(c===Je||lJe||(c>Je||lti&&(c=c-ti+Ke-1),u>Qe?(u=u-Qe+Ke-1,d=!0):d=!1,(u===$e||h<$e&&u>$e||(u>$e||h<$e)&&d)&&u++,(u===Je||hJe||(u>Je||hQe&&(u=u-Qe+Ke-1),String.fromCharCode(c)+String.fromCharCode(u))+i.substr(i.length-5,e)+r.substr(r.length-5,e);var n,s,o,a,l,h,c,u,d;var g,p,f,m,_,y}(function(t){var e,i,r,n,s,o,a,l,h=t.lat,c=t.lon,u=6378137,d=.00669438,g=.9996,p=ni(h),f=ni(c);l=Math.floor((c+180)/6)+1,180===c&&(l=60);h>=56&&h<64&&c>=3&&c<12&&(l=32);h>=72&&h<84&&(c>=0&&c<9?l=31:c>=9&&c<21?l=33:c>=21&&c<33?l=35:c>=33&&c<42&&(l=37));a=ni(6*(l-1)-180+3),e=d/(1-d),i=u/Math.sqrt(1-d*Math.sin(p)*Math.sin(p)),r=Math.tan(p)*Math.tan(p),n=e*Math.cos(p)*Math.cos(p),s=Math.cos(p)*(f-a),o=u*((1-d/4-3*d*d/64-5*d*d*d/256)*p-(3*d/8+3*d*d/32+45*d*d*d/1024)*Math.sin(2*p)+(15*d*d/256+45*d*d*d/1024)*Math.sin(4*p)-35*d*d*d/3072*Math.sin(6*p));var m=g*i*(s+(1-r+n)*s*s*s/6+(5-18*r+r*r+72*n-58*e)*s*s*s*s*s/120)+5e5,_=g*(o+i*Math.tan(p)*(s*s/2+(5-r+9*n+4*n*n)*s*s*s*s/24+(61-58*r+r*r+600*n-330*e)*s*s*s*s*s*s/720));h<0&&(_+=1e7);return{northing:Math.round(_),easting:Math.round(m),zoneNumber:l,zoneLetter:ai(h)}}({lat:t[1],lon:t[0]}),e)}function ri(t){var e=oi(hi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function ni(t){return t*(Math.PI/180)}function si(t){return t/Math.PI*180}function oi(t){var e=t.northing,i=t.easting,r=t.zoneLetter,n=t.zoneNumber;if(n<0||n>60)return null;var s,o,a,l,h,c,u,d,g,p=.9996,f=6378137,m=.00669438,_=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),y=i-5e5,v=e;r<"N"&&(v-=1e7),u=6*(n-1)-180+3,s=.006739496752268451,g=(d=v/p/6367449.145945056)+(3*_/2-27*_*_*_/32)*Math.sin(2*d)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*d)+151*_*_*_/96*Math.sin(6*d),o=f/Math.sqrt(1-m*Math.sin(g)*Math.sin(g)),a=Math.tan(g)*Math.tan(g),l=s*Math.cos(g)*Math.cos(g),h=.99330562*f/Math.pow(1-m*Math.sin(g)*Math.sin(g),1.5),c=y/(o*p);var x=g-o*Math.tan(g)/h*(c*c/2-(5+3*a+10*l-4*l*l-9*s)*c*c*c*c/24+(61+90*a+298*l+45*a*a-1.6983531815716497-3*l*l)*c*c*c*c*c*c/720);x=si(x);var b,w=(c-(1+2*a+l)*c*c*c/6+(5-2*l+28*a-3*l*l+8*s+24*a*a)*c*c*c*c*c/120)/Math.cos(g);if(w=u+si(w),t.accuracy){var E=oi({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});b={top:E.lat,right:E.lon,bottom:x,left:w}}else b={lat:x,lon:w};return b}function ai(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function li(t){var e=t%6;return 0===e&&(e=6),e}function hi(t){if(t&&0===t.length)throw"MGRSPoint coverting from nothing";for(var e,i=t.length,r=null,n="",s=0;!/[A-Z]/.test(e=t.charAt(s));){if(s>=2)throw"MGRSPoint bad conversion from: "+t;n+=e,s++}var o=parseInt(n,10);if(0===s||s+3>i)throw"MGRSPoint bad conversion from: "+t;var a=t.charAt(s++);if(a<="A"||"B"===a||"Y"===a||a>="Z"||"I"===a||"O"===a)throw"MGRSPoint zone letter "+a+" not handled: "+t;r=t.substring(s,s+=2);for(var l=li(o),h=function(t,e){var i=He.charCodeAt(e-1),r=1e5,n=!1;for(;i!==t.charCodeAt(0);){if(++i===$e&&i++,i===Je&&i++,i>ti){if(n)throw"Bad character: "+t;i=Ke,n=!0}r+=1e5}return r}(r.charAt(0),l),c=function(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;var i=Ze.charCodeAt(e-1),r=0,n=!1;for(;i!==t.charCodeAt(0);){if(++i===$e&&i++,i===Je&&i++,i>Qe){if(n)throw"Bad character: "+t;i=Ke,n=!0}r+=1e5}return r}(r.charAt(1),l);c0&&(d=1e5/Math.pow(10,f),g=t.substring(s,s+f),m=parseFloat(g)*d,p=t.substring(s+f),_=parseFloat(p)*d),{easting:m+h,northing:_+c,zoneLetter:a,zoneNumber:o,accuracy:d}}function ci(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function ui(t,e,i){if(!(this instanceof ui))return new ui(t,e,i);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if("object"==typeof t)this.x=t.x,this.y=t.y,this.z=t.z||0;else if("string"==typeof t&&void 0===e){var r=t.split(",");this.x=parseFloat(r[0],10),this.y=parseFloat(r[1],10),this.z=parseFloat(r[2],10)||0}else this.x=t,this.y=e,this.z=i||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ui.fromMGRS=function(t){return new ui(ri(t))},ui.prototype.toMGRS=function(t){return ii([this.x,this.y],t)};var di=ui,gi=.046875,pi=.01953125,fi=.01068115234375,mi=function(t){var e=[];e[0]=1-t*(.25+t*(gi+t*(pi+t*fi))),e[1]=t*(.75-t*(gi+t*(pi+t*fi)));var i=t*t;return e[2]=i*(.46875-t*(.013020833333333334+.007120768229166667*t)),i*=t,e[3]=i*(.3645833333333333-.005696614583333333*t),e[4]=i*t*.3076171875,e},_i=function(t,e,i,r){return i*=e,e*=e,r[0]*t-i*(r[1]+e*(r[2]+e*(r[3]+e*r[4])))},yi=function(t,e,i){for(var r=1/(1-e),n=t,s=20;s;--s){var o=Math.sin(n),a=1-e*o*o;if(n-=a=(_i(n,o,Math.cos(n),i)-t)*(a*Math.sqrt(a))*r,Math.abs(a)Ft?Math.tan(s):0,p=Math.pow(g,2),f=Math.pow(p,2);e=1-this.es*Math.pow(a,2),h/=Math.sqrt(e);var m=_i(s,a,l,this.en);i=this.a*(this.k0*h*(1+c/6*(1-p+u+c/20*(5-18*p+f+14*u-58*p*u+c/42*(61+179*f-f*p-479*p)))))+this.x0,r=this.a*(this.k0*(m-this.ml0+a*o*h/2*(1+c/12*(5-p+9*u+4*d+c/30*(61+f-58*p+270*u-330*p*u+c/56*(1385+543*f-f*p-3111*p))))))+this.y0}else{var _=l*Math.sin(o);if(Math.abs(Math.abs(_)-1)=1){if(_-1>Ft)return 93;r=0}else r=Math.acos(r);s<0&&(r=-r),r=this.a*this.k0*(r-this.lat0)+this.y0}return t.x=i,t.y=r,t},inverse:function(t){var e,i,r,n,s=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,i=yi(e,this.es,this.en),Math.abs(i)Ft?Math.tan(i):0,c=this.ep2*Math.pow(l,2),u=Math.pow(c,2),d=Math.pow(h,2),g=Math.pow(d,2);e=1-this.es*Math.pow(a,2);var p=s*Math.sqrt(e)/this.k0,f=Math.pow(p,2);r=i-(e*=h)*f/(1-this.es)*.5*(1-f/12*(5+3*d-9*c*d+c-4*u-f/30*(61+90*d-252*c*d+45*g+46*c-f/56*(1385+3633*d+4095*g+1574*g*d)))),n=ue(this.long0+p*(1-f/6*(1+2*d+c-f/20*(5+28*d+24*g+8*c*d+6*c-f/42*(61+662*d+1320*g+720*g*d))))/l)}else r=At*ce(o),n=0;else{var m=Math.exp(s/this.k0),_=.5*(m-1/m),y=this.lat0+o/this.k0,v=Math.cos(y);e=Math.sqrt((1-Math.pow(v,2))/(1+Math.pow(_,2))),r=Math.asin(e),o<0&&(r=-r),n=0===_&&0===v?0:ue(Math.atan2(_,v)+this.long0)}return t.x=n,t.y=r,t},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]},xi=function(t){var e=Math.exp(t);return e=(e-1/e)/2},bi=function(t,e){t=Math.abs(t),e=Math.abs(e);var i=Math.max(t,e),r=Math.min(t,e)/(i||1);return i*Math.sqrt(1+Math.pow(r,2))},wi=function(t){var e=Math.abs(t);return e=function(t){var e=1+t,i=e-1;return 0===i?t:t*Math.log(e)/i}(e*(1+e/(bi(1,e)+1))),t<0?-e:e},Ei=function(t,e){for(var i,r=2*Math.cos(2*e),n=t.length-1,s=t[n],o=0;--n>=0;)i=r*s-o+t[n],o=s,s=i;return e+i*Math.sin(2*e)},Si=function(t,e,i){for(var r,n,s=Math.sin(e),o=Math.cos(e),a=xi(i),l=function(t){var e=Math.exp(t);return(e+1/e)/2}(i),h=2*o*l,c=-2*s*a,u=t.length-1,d=t[u],g=0,p=0,f=0;--u>=0;)r=p,n=g,d=h*(p=d)-r-c*(g=f)+t[u],f=c*p-n+h*g;return[(h=s*l)*d-(c=o*a)*f,h*f+c*d]};var Ii={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(vi.init.apply(this),this.forward=vi.forward,this.inverse=vi.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),i=e;this.cgb[0]=e*(2+e*(-2/3+e*(e*(116/45+e*(26/45+e*(-2854/675)))-2))),this.cbg[0]=e*(e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))-2),i*=e,this.cgb[1]=i*(7/3+e*(e*(-227/45+e*(2704/315+e*(2323/945)))-1.6)),this.cbg[1]=i*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),i*=e,this.cgb[2]=i*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=i*(-26/15+e*(34/21+e*(1.6+e*(-12686/2835)))),i*=e,this.cgb[3]=i*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=i*(1237/630+e*(e*(-24832/14175)-2.4)),i*=e,this.cgb[4]=i*(4174/315+e*(-144838/6237)),this.cbg[4]=i*(-734/315+e*(109598/31185)),i*=e,this.cgb[5]=i*(601676/22275),this.cbg[5]=i*(444337/155925),i=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+i*(1/4+i*(1/64+i/256))),this.utg[0]=e*(e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))-.5),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=i*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=i*(13/48+e*(e*(557/1440+e*(281/630+e*(-1983433/1935360)))-.6)),i*=e,this.utg[2]=i*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=i*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),i*=e,this.utg[3]=i*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=i*(49561/161280+e*(-179/168+e*(6601661/7257600))),i*=e,this.utg[4]=i*(-4583/161280+e*(108847/3991680)),this.gtu[4]=i*(34729/80640+e*(-3418889/1995840)),i*=e,this.utg[5]=i*(-20648693/638668800),this.gtu[5]=.6650675310896665*i;var r=Ei(this.cbg,this.lat0);this.Zb=-this.Qn*(r+function(t,e){for(var i,r=2*Math.cos(e),n=t.length-1,s=t[n],o=0;--n>=0;)i=r*s-o+t[n],o=s,s=i;return Math.sin(e)*i}(this.gtu,2*r))},forward:function(t){var e=ue(t.x-this.long0),i=t.y;i=Ei(this.cbg,i);var r=Math.sin(i),n=Math.cos(i),s=Math.sin(e),o=Math.cos(e);i=Math.atan2(r,o*n),e=Math.atan2(s*n,bi(r,n*o)),e=wi(Math.tan(e));var a,l,h=Si(this.gtu,2*i,2*e);return i+=h[0],e+=h[1],Math.abs(e)<=2.623395162778?(a=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*i+this.Zb)+this.y0):(a=1/0,l=1/0),t.x=a,t.y=l,t},inverse:function(t){var e,i,r=(t.x-this.x0)*(1/this.a),n=(t.y-this.y0)*(1/this.a);if(n=(n-this.Zb)/this.Qn,r/=this.Qn,Math.abs(r)<=2.623395162778){var s=Si(this.utg,2*n,2*r);n+=s[0],r+=s[1],r=Math.atan(xi(r));var o=Math.sin(n),a=Math.cos(n),l=Math.sin(r),h=Math.cos(r);n=Math.atan2(o*h,bi(l,h*a)),r=Math.atan2(l,h*a),e=ue(r+this.long0),i=Ei(this.cgb,n)}else e=1/0,i=1/0;return t.x=e,t.y=i,t},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","tmerc"]};var Ci={init:function(){var t=function(t,e){if(void 0===t){if((t=Math.floor(30*(ue(e)+Math.PI)/Math.PI)+1)<0)return 0;if(t>60)return 60}return t}(this.zone,this.long0);if(void 0===t)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*kt,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Ii.init.apply(this),this.forward=Ii.forward,this.inverse=Ii.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"},Ti=function(t,e){return Math.pow((1-t)/(1+t),e)};var Li={init:function(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+jt)/(Math.pow(Math.tan(.5*this.lat0+jt),this.C)*Ti(this.e*t,this.ratexp))},forward:function(t){var e=t.x,i=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*i+jt),this.C)*Ti(this.e*Math.sin(i),this.ratexp))-At,t.x=this.C*e,t},inverse:function(t){for(var e=t.x/this.C,i=t.y,r=Math.pow(Math.tan(.5*i+jt)/this.K,1/this.C),n=20;n>0&&(i=2*Math.atan(r*Ti(this.e*Math.sin(t.y),-.5*this.e))-At,!(Math.abs(i-t.y)<1e-14));--n)t.y=i;return n?(t.x=e,t.y=i,t):null},names:["gauss"]};var Mi={init:function(){Li.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(t){var e,i,r,n;return t.x=ue(t.x-this.long0),Li.forward.apply(this,[t]),e=Math.sin(t.y),i=Math.cos(t.y),r=Math.cos(t.x),n=this.k0*this.R2/(1+this.sinc0*e+this.cosc0*i*r),t.x=n*i*Math.sin(t.x),t.y=n*(this.cosc0*e-this.sinc0*i*r),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t},inverse:function(t){var e,i,r,n,s;if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,s=Math.sqrt(t.x*t.x+t.y*t.y)){var o=2*Math.atan2(s,this.R2);e=Math.sin(o),i=Math.cos(o),n=Math.asin(i*this.sinc0+t.y*e*this.cosc0/s),r=Math.atan2(t.x*e,s*this.cosc0*i-t.y*this.sinc0*e)}else n=this.phic0,r=0;return t.x=r,t.y=n,Li.inverse.apply(this,[t]),t.x=ue(t.x+this.long0),t},names:["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]};var Oi={init:function(){this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Ft&&(this.k0=.5*(1+ce(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=Ft&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Ft&&(this.k0=.5*this.cons*he(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/de(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=he(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-At,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(t){var e,i,r,n,s,o,a=t.x,l=t.y,h=Math.sin(l),c=Math.cos(l),u=ue(a-this.long0);return Math.abs(Math.abs(a-this.long0)-Math.PI)<=Ft&&Math.abs(l+this.lat0)<=Ft?(t.x=NaN,t.y=NaN,t):this.sphere?(e=2*this.k0/(1+this.sinlat0*h+this.coslat0*c*Math.cos(u)),t.x=this.a*e*c*Math.sin(u)+this.x0,t.y=this.a*e*(this.coslat0*h-this.sinlat0*c*Math.cos(u))+this.y0,t):(i=2*Math.atan(this.ssfn_(l,h,this.e))-At,n=Math.cos(i),r=Math.sin(i),Math.abs(this.coslat0)<=Ft?(s=de(this.e,l*this.con,this.con*h),o=2*this.a*this.k0*s/this.cons,t.x=this.x0+o*Math.sin(a-this.long0),t.y=this.y0-this.con*o*Math.cos(a-this.long0),t):(Math.abs(this.sinlat0)0?ue(this.long0+Math.atan2(t.x,-1*t.y)):ue(this.long0+Math.atan2(t.x,t.y)):ue(this.long0+Math.atan2(t.x*Math.sin(a),o*this.coslat0*Math.cos(a)-t.y*this.sinlat0*Math.sin(a))),t.x=e,t.y=i,t)}if(Math.abs(this.coslat0)<=Ft){if(o<=Ft)return i=this.lat0,e=this.long0,t.x=e,t.y=i,t;t.x*=this.con,t.y*=this.con,r=o*this.cons/(2*this.a*this.k0),i=this.con*ge(this.e,r),e=this.con*ue(this.con*this.long0+Math.atan2(t.x,-1*t.y))}else n=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=Ft?s=this.X0:(s=Math.asin(Math.cos(n)*this.sinX0+t.y*Math.sin(n)*this.cosX0/o),e=ue(this.long0+Math.atan2(t.x*Math.sin(n),o*this.cosX0*Math.cos(n)-t.y*this.sinX0*Math.sin(n)))),i=-1*ge(this.e,Math.tan(.5*(At+s)));return t.x=e,t.y=i,t},names:["stere","Stereographic_South_Pole","Polar Stereographic (variant B)"],ssfn_:function(t,e,i){return e*=i,Math.tan(.5*(At+t))*Math.pow((1-e)/(1+e),.5*i)}};var Ri={init:function(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),i=this.a,r=1/this.rf,n=2*r-Math.pow(r,2),s=this.e=Math.sqrt(n);this.R=this.k0*i*Math.sqrt(1-n)/(1-n*Math.pow(e,2)),this.alpha=Math.sqrt(1+n/(1-n)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var o=Math.log(Math.tan(Math.PI/4+this.b0/2)),a=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+s*e)/(1-s*e));this.K=o-this.alpha*a+this.alpha*s/2*l},forward:function(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),i=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),r=-this.alpha*(e+i)+this.K,n=2*(Math.atan(Math.exp(r))-Math.PI/4),s=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(s)/(Math.sin(this.b0)*Math.tan(n)+Math.cos(this.b0)*Math.cos(s))),a=Math.asin(Math.cos(this.b0)*Math.sin(n)-Math.sin(this.b0)*Math.cos(n)*Math.cos(s));return t.y=this.R/2*Math.log((1+Math.sin(a))/(1-Math.sin(a)))+this.y0,t.x=this.R*o+this.x0,t},inverse:function(t){for(var e=t.x-this.x0,i=t.y-this.y0,r=e/this.R,n=2*(Math.atan(Math.exp(i/this.R))-Math.PI/4),s=Math.asin(Math.cos(this.b0)*Math.sin(n)+Math.sin(this.b0)*Math.cos(n)*Math.cos(r)),o=Math.atan(Math.sin(r)/(Math.cos(this.b0)*Math.cos(r)-Math.sin(this.b0)*Math.tan(n))),a=this.lambda0+o/this.alpha,l=0,h=s,c=-1e3,u=0;Math.abs(h-c)>1e-7;){if(++u>20)return;l=1/this.alpha*(Math.log(Math.tan(Math.PI/4+s/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(h))/2)),c=h,h=2*Math.atan(Math.exp(l))-Math.PI/2}return t.x=a,t.y=h,t},names:["somerc"]},Pi=1e-7;var Ni={init:function(){var t,e,i,r,n,s,o,a,l,h,c,u,d,g=0,p=0,f=0,m=0,_=0,y=0,v=0;this.no_off=(d="object"==typeof(u=this).PROJECTION?Object.keys(u.PROJECTION)[0]:u.PROJECTION,"no_uoff"in u||"no_off"in u||-1!==["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"].indexOf(d)),this.no_rot="no_rot"in this;var x=!1;"alpha"in this&&(x=!0);var b=!1;if("rectified_grid_angle"in this&&(b=!0),x&&(v=this.alpha),b&&(g=this.rectified_grid_angle*kt),x||b)p=this.longc;else if(f=this.long1,_=this.lat1,m=this.long2,y=this.lat2,Math.abs(_-y)<=Pi||(t=Math.abs(_))<=Pi||Math.abs(t-At)<=Pi||Math.abs(Math.abs(this.lat0)-At)<=Pi||Math.abs(Math.abs(y)-At)<=Pi)throw new Error;var w=1-this.es;e=Math.sqrt(w),Math.abs(this.lat0)>Ft?(a=Math.sin(this.lat0),i=Math.cos(this.lat0),t=1-this.es*a*a,this.B=i*i,this.B=Math.sqrt(1+this.es*this.B*this.B/w),this.A=this.B*this.k0*e/t,(n=(r=this.B*e/(i*Math.sqrt(t)))*r-1)<=0?n=0:(n=Math.sqrt(n),this.lat0<0&&(n=-n)),this.E=n+=r,this.E*=Math.pow(de(this.e,this.lat0,a),this.B)):(this.B=1/e,this.A=this.k0,this.E=r=n=1),x||b?(x?(c=Math.asin(Math.sin(v)/r),b||(g=v)):(c=g,v=Math.asin(r*Math.sin(c))),this.lam0=p-Math.asin(.5*(n-1/n)*Math.tan(c))/this.B):(s=Math.pow(de(this.e,_,Math.sin(_)),this.B),o=Math.pow(de(this.e,y,Math.sin(y)),this.B),n=this.E/s,l=(o-s)/(o+s),h=((h=this.E*this.E)-o*s)/(h+o*s),(t=f-m)<-Math.pi?m-=Gt:t>Math.pi&&(m+=Gt),this.lam0=ue(.5*(f+m)-Math.atan(h*Math.tan(.5*this.B*(f-m))/l)/this.B),c=Math.atan(2*Math.sin(this.B*ue(f-this.lam0))/(n-1/n)),g=v=Math.asin(r*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(g),this.cosrot=Math.cos(g),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.A,this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(r*r-1)/Math.cos(v))),this.lat0<0&&(this.u_0=-this.u_0)),n=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(jt-n)),this.v_pole_s=this.ArB*Math.log(Math.tan(jt+n))},forward:function(t){var e,i,r,n,s,o,a,l,h={};if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-At)>Ft){if(e=.5*((s=this.E/Math.pow(de(this.e,t.y,Math.sin(t.y)),this.B))-(o=1/s)),i=.5*(s+o),n=Math.sin(this.B*t.x),r=(e*this.singam-n*this.cosgam)/i,Math.abs(Math.abs(r)-1)0?this.v_pole_n:this.v_pole_s,a=this.ArB*t.y;return this.no_rot?(h.x=a,h.y=l):(a-=this.u_0,h.x=l*this.cosrot+a*this.sinrot,h.y=a*this.cosrot-l*this.sinrot),h.x=this.a*h.x+this.x0,h.y=this.a*h.y+this.y0,h},inverse:function(t){var e,i,r,n,s,o,a,l={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(i=t.y,e=t.x):(i=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),n=.5*((r=Math.exp(-this.BrA*i))-1/r),s=.5*(r+1/r),a=((o=Math.sin(this.BrA*e))*this.cosgam+n*this.singam)/s,Math.abs(Math.abs(a)-1)Ft?this.ns=Math.log(r/a)/Math.log(n/l):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=r/(this.ns*Math.pow(n,this.ns)),this.rh=this.a*this.f0*Math.pow(h,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(t){var e=t.x,i=t.y;Math.abs(2*Math.abs(i)-Math.PI)<=Ft&&(i=ce(i)*(At-2e-10));var r,n,s=Math.abs(Math.abs(i)-At);if(s>Ft)r=de(this.e,i,Math.sin(i)),n=this.a*this.f0*Math.pow(r,this.ns);else{if((s=i*this.ns)<=0)return null;n=0}var o=this.ns*ue(e-this.long0);return t.x=this.k0*(n*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-n*Math.cos(o))+this.y0,t},inverse:function(t){var e,i,r,n,s,o=(t.x-this.x0)/this.k0,a=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+a*a),i=1):(e=-Math.sqrt(o*o+a*a),i=-1);var l=0;if(0!==e&&(l=Math.atan2(i*o,i*a)),0!==e||this.ns>0){if(i=1/this.ns,r=Math.pow(e/(this.a*this.f0),i),-9999===(n=ge(this.e,r)))return null}else n=-At;return s=ue(l/this.ns+this.long0),t.x=s,t.y=n,t},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]};var Fi={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(t){var e,i,r,n,s,o,a,l=t.x,h=t.y,c=ue(l-this.long0);return e=Math.pow((1+this.e*Math.sin(h))/(1-this.e*Math.sin(h)),this.alfa*this.e/2),i=2*(Math.atan(this.k*Math.pow(Math.tan(h/2+this.s45),this.alfa)/e)-this.s45),r=-c*this.alfa,n=Math.asin(Math.cos(this.ad)*Math.sin(i)+Math.sin(this.ad)*Math.cos(i)*Math.cos(r)),s=Math.asin(Math.cos(i)*Math.sin(r)/Math.cos(n)),o=this.n*s,a=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(n/2+this.s45),this.n),t.y=a*Math.cos(o)/1,t.x=a*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t},inverse:function(t){var e,i,r,n,s,o,a,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),s=Math.sqrt(t.x*t.x+t.y*t.y),n=Math.atan2(t.y,t.x)/Math.sin(this.s0),r=2*(Math.atan(Math.pow(this.ro0/s,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(r)-Math.sin(this.ad)*Math.cos(r)*Math.cos(n)),i=Math.asin(Math.cos(r)*Math.sin(n)/Math.cos(e)),t.x=this.long0-i/this.alfa,o=e,a=0;var h=0;do{t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(o))/(1-this.e*Math.sin(o)),this.e/2))-this.s45),Math.abs(o-t.y)<1e-10&&(a=1),o=t.y,h+=1}while(0===a&&h<15);return h>=15?null:t},names:["Krovak","krovak"]},ki=function(t,e,i,r,n){return t*n-e*Math.sin(2*n)+i*Math.sin(4*n)-r*Math.sin(6*n)},Di=function(t){return 1-.25*t*(1+t/16*(3+1.25*t))},ji=function(t){return.375*t*(1+.25*t*(1+.46875*t))},Gi=function(t){return.05859375*t*t*(1+.75*t)},zi=function(t){return t*t*t*(35/3072)},Bi=function(t,e,i){var r=e*i;return t/Math.sqrt(1-r*r)},Ui=function(t){return Math.abs(t)1e-7?(1-t*t)*(e/(1-(i=t*e)*i)-.5/t*Math.log((1-i)/(1+i))):2*e};var Wi=.3333333333333333,Xi=.17222222222222222,Hi=.10257936507936508,Zi=.06388888888888888,Ki=.0664021164021164,$i=.016415012942191543;var Ji={init:function(){var t,e=Math.abs(this.lat0);if(Math.abs(e-At)0)switch(this.qp=Yi(this.e,1),this.mmf=.5/(1-this.es),this.apa=function(t){var e,i=[];return i[0]=t*Wi,e=t*t,i[0]+=e*Xi,i[1]=e*Zi,e*=t,i[0]+=e*Hi,i[1]+=e*Ki,i[2]=e*$i,i}(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=Yi(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(t){var e,i,r,n,s,o,a,l,h,c,u=t.x,d=t.y;if(u=ue(u-this.long0),this.sphere){if(s=Math.sin(d),c=Math.cos(d),r=Math.cos(u),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((i=this.mode===this.EQUIT?1+c*r:1+this.sinph0*s+this.cosph0*c*r)<=Ft)return null;e=(i=Math.sqrt(2/i))*c*Math.sin(u),i*=this.mode===this.EQUIT?s:this.cosph0*s-this.sinph0*c*r}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(r=-r),Math.abs(d+this.lat0)=0?(e=(h=Math.sqrt(o))*n,i=r*(this.mode===this.S_POLE?h:-h)):e=i=0}}return t.x=this.a*e+this.x0,t.y=this.a*i+this.y0,t},inverse:function(t){t.x-=this.x0,t.y-=this.y0;var e,i,r,n,s,o,a,l,h,c,u=t.x/this.a,d=t.y/this.a;if(this.sphere){var g,p=0,f=0;if((i=.5*(g=Math.sqrt(u*u+d*d)))>1)return null;switch(i=2*Math.asin(i),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(f=Math.sin(i),p=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(g)<=Ft?0:Math.asin(d*f/g),u*=f,d=p*g;break;case this.OBLIQ:i=Math.abs(g)<=Ft?this.lat0:Math.asin(p*this.sinph0+d*f*this.cosph0/g),u*=f*this.cosph0,d=(p-Math.sin(i)*this.sinph0)*g;break;case this.N_POLE:d=-d,i=At-i;break;case this.S_POLE:i-=At}e=0!==d||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(u,d):0}else{if(a=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(u/=this.dd,d*=this.dd,(o=Math.sqrt(u*u+d*d))1&&(t=t>1?1:-1),Math.asin(t)};var tr={init:function(){Math.abs(this.lat1+this.lat2)Ft?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(t){var e=t.x,i=t.y;this.sin_phi=Math.sin(i),this.cos_phi=Math.cos(i);var r=Yi(this.e3,this.sin_phi),n=this.a*Math.sqrt(this.c-this.ns0*r)/this.ns0,s=this.ns0*ue(e-this.long0),o=n*Math.sin(s)+this.x0,a=this.rh-n*Math.cos(s)+this.y0;return t.x=o,t.y=a,t},inverse:function(t){var e,i,r,n,s,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),r=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),r=-1),n=0,0!==e&&(n=Math.atan2(r*t.x,r*t.y)),r=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-r*r)/(2*this.ns0)):(i=(this.c-r*r)/this.ns0,o=this.phi1z(this.e3,i)),s=ue(n/this.ns0+this.long0),t.x=s,t.y=o,t},names:["Albers_Conic_Equal_Area","Albers","aea"],phi1z:function(t,e){var i,r,n,s,o=Qi(.5*e);if(t0||Math.abs(s)<=Ft?(o=this.x0+1*this.a*i*Math.sin(r)/s,a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*n)/s):(o=this.x0+this.infinity_dist*i*Math.sin(r),a=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*i*n)),t.x=o,t.y=a,t},inverse:function(t){var e,i,r,n,s,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(n=Math.atan2(e,this.rc),i=Math.sin(n),r=Math.cos(n),o=Qi(r*this.sin_p14+t.y*i*this.cos_p14/e),s=Math.atan2(t.x*i,e*this.cos_p14*r-t.y*this.sin_p14*i),s=ue(this.long0+s)):(o=this.phic0,s=0),t.x=s,t.y=o,t},names:["gnom"]};var ir={init:function(){this.sphere||(this.k0=he(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(t){var e,i,r=t.x,n=t.y,s=ue(r-this.long0);if(this.sphere)e=this.x0+this.a*s*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(n)/Math.cos(this.lat_ts);else{var o=Yi(this.e,Math.sin(n));e=this.x0+this.a*this.k0*s,i=this.y0+this.a*o*.5/this.k0}return t.x=e,t.y=i,t},inverse:function(t){var e,i;return t.x-=this.x0,t.y-=this.y0,this.sphere?(e=ue(this.long0+t.x/this.a/Math.cos(this.lat_ts)),i=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(i=function(t,e){var i=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-i)<1e-6)return e<0?-1*At:At;for(var r,n,s,o,a=Math.asin(.5*e),l=0;l<30;l++)if(n=Math.sin(a),s=Math.cos(a),o=t*n,a+=r=Math.pow(1-o*o,2)/(2*s)*(e/(1-t*t)-n/(1-o*o)+.5/t*Math.log((1-o)/(1+o))),Math.abs(r)<=1e-10)return a;return NaN}(this.e,2*t.y*this.k0/this.a),e=ue(this.long0+t.x/(this.a*this.k0))),t.x=e,t.y=i,t},names:["cea"]};var rr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(t){var e=t.x,i=t.y,r=ue(e-this.long0),n=Ui(i-this.lat0);return t.x=this.x0+this.a*r*this.rc,t.y=this.y0+this.a*n,t},inverse:function(t){var e=t.x,i=t.y;return t.x=ue(this.long0+(e-this.x0)/(this.a*this.rc)),t.y=Ui(this.lat0+(i-this.y0)/this.a),t},names:["Equirectangular","Equidistant_Cylindrical","eqc"]};var nr={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Di(this.es),this.e1=ji(this.es),this.e2=Gi(this.es),this.e3=zi(this.es),this.ml0=this.a*ki(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(t){var e,i,r,n=t.x,s=t.y,o=ue(n-this.long0);if(r=o*Math.sin(s),this.sphere)Math.abs(s)<=Ft?(e=this.a*o,i=-1*this.a*this.lat0):(e=this.a*Math.sin(r)/Math.tan(s),i=this.a*(Ui(s-this.lat0)+(1-Math.cos(r))/Math.tan(s)));else if(Math.abs(s)<=Ft)e=this.a*o,i=-1*this.ml0;else{var a=Bi(this.a,this.e,Math.sin(s))/Math.tan(s);e=a*Math.sin(r),i=this.a*ki(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+a*(1-Math.cos(r))}return t.x=e+this.x0,t.y=i+this.y0,t},inverse:function(t){var e,i,r,n,s,o,a,l,h;if(r=t.x-this.x0,n=t.y-this.y0,this.sphere)if(Math.abs(n+this.a*this.lat0)<=Ft)e=ue(r/this.a+this.long0),i=0;else{var c;for(o=this.lat0+n/this.a,a=r*r/this.a/this.a+o*o,l=o,s=20;s;--s)if(l+=h=-1*(o*(l*(c=Math.tan(l))+1)-l-.5*(l*l+a)*c)/((l-o)/c-1),Math.abs(h)<=Ft){i=l;break}e=ue(this.long0+Math.asin(r*Math.tan(l)/this.a)/Math.sin(i))}else if(Math.abs(n+this.ml0)<=Ft)i=0,e=ue(this.long0+r/this.a);else{var u,d,g,p,f;for(o=(this.ml0+n)/this.a,a=r*r/this.a/this.a+o*o,l=o,s=20;s;--s)if(f=this.e*Math.sin(l),u=Math.sqrt(1-f*f)*Math.tan(l),d=this.a*ki(this.e0,this.e1,this.e2,this.e3,l),g=this.e0-2*this.e1*Math.cos(2*l)+4*this.e2*Math.cos(4*l)-6*this.e3*Math.cos(6*l),l-=h=(o*(u*(p=d/this.a)+1)-p-.5*u*(p*p+a))/(this.es*Math.sin(2*l)*(p*p+a-2*o*p)/(4*u)+(o-p)*(u*g-2/Math.sin(2*l))-g),Math.abs(h)<=Ft){i=l;break}u=Math.sqrt(1-this.es*Math.pow(Math.sin(i),2))*Math.tan(i),e=ue(this.long0+Math.asin(r*u/this.a)/Math.sin(i))}return t.x=e,t.y=i,t},names:["Polyconic","poly"]};var sr={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(t){var e,i=t.x,r=t.y-this.lat0,n=i-this.long0,s=r/Nt*1e-5,o=n,a=1,l=0;for(e=1;e<=10;e++)a*=s,l+=this.A[e]*a;var h,c=l,u=o,d=1,g=0,p=0,f=0;for(e=1;e<=6;e++)h=g*c+d*u,d=d*c-g*u,g=h,p=p+this.B_re[e]*d-this.B_im[e]*g,f=f+this.B_im[e]*d+this.B_re[e]*g;return t.x=f*this.a+this.x0,t.y=p*this.a+this.y0,t},inverse:function(t){var e,i,r=t.x,n=t.y,s=r-this.x0,o=(n-this.y0)/this.a,a=s/this.a,l=1,h=0,c=0,u=0;for(e=1;e<=6;e++)i=h*o+l*a,l=l*o-h*a,h=i,c=c+this.C_re[e]*l-this.C_im[e]*h,u=u+this.C_im[e]*l+this.C_re[e]*h;for(var d=0;d.999999999999&&(i=.999999999999),e=Math.asin(i);var r=ue(this.long0+t.x/(.900316316158*this.a*Math.cos(e)));r<-Math.PI&&(r=-Math.PI),r>Math.PI&&(r=Math.PI),i=(2*e+Math.sin(2*e))/Math.PI,Math.abs(i)>1&&(i=1);var n=Math.asin(i);return t.x=r,t.y=n,t},names:["Mollweide","moll"]};var hr={init:function(){Math.abs(this.lat1+this.lat2)=0?(i=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(i=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var s=0;if(0!==i&&(s=Math.atan2(e*t.x,e*t.y)),this.sphere)return n=ue(this.long0+s/this.ns),r=Ui(this.g-i/this.a),t.x=n,t.y=r,t;var o=this.g-i/this.a;return r=Vi(o,this.e0,this.e1,this.e2,this.e3),n=ue(this.long0+s/this.ns),t.x=n,t.y=r,t},names:["Equidistant_Conic","eqdc"]};var cr={init:function(){this.R=this.a},forward:function(t){var e,i,r=t.x,n=t.y,s=ue(r-this.long0);Math.abs(n)<=Ft&&(e=this.x0+this.R*s,i=this.y0);var o=Qi(2*Math.abs(n/Math.PI));(Math.abs(s)<=Ft||Math.abs(Math.abs(n)-At)<=Ft)&&(e=this.x0,i=n>=0?this.y0+Math.PI*this.R*Math.tan(.5*o):this.y0+Math.PI*this.R*-Math.tan(.5*o));var a=.5*Math.abs(Math.PI/s-s/Math.PI),l=a*a,h=Math.sin(o),c=Math.cos(o),u=c/(h+c-1),d=u*u,g=u*(2/h-1),p=g*g,f=Math.PI*this.R*(a*(u-p)+Math.sqrt(l*(u-p)*(u-p)-(p+l)*(d-p)))/(p+l);s<0&&(f=-f),e=this.x0+f;var m=l+u;return f=Math.PI*this.R*(g*m-a*Math.sqrt((p+l)*(l+1)-m*m))/(p+l),i=n>=0?this.y0+f:this.y0-f,t.x=e,t.y=i,t},inverse:function(t){var e,i,r,n,s,o,a,l,h,c,u,d;return t.x-=this.x0,t.y-=this.y0,u=Math.PI*this.R,s=(r=t.x/u)*r+(n=t.y/u)*n,u=3*(n*n/(l=-2*(o=-Math.abs(n)*(1+s))+1+2*n*n+s*s)+(2*(a=o-2*n*n+r*r)*a*a/l/l/l-9*o*a/l/l)/27)/(h=(o-a*a/3/l)/l)/(c=2*Math.sqrt(-h/3)),Math.abs(u)>1&&(u=u>=0?1:-1),d=Math.acos(u)/3,i=t.y>=0?(-c*Math.cos(d+Math.PI/3)-a/3/l)*Math.PI:-(-c*Math.cos(d+Math.PI/3)-a/3/l)*Math.PI,e=Math.abs(r)2*At*this.a)return;return i=e/this.a,r=Math.sin(i),n=Math.cos(i),s=this.long0,Math.abs(e)<=Ft?o=this.lat0:(o=Qi(n*this.sin_p12+t.y*r*this.cos_p12/e),a=Math.abs(this.lat0)-At,s=Math.abs(a)<=Ft?this.lat0>=0?ue(this.long0+Math.atan2(t.x,-t.y)):ue(this.long0-Math.atan2(-t.x,t.y)):ue(this.long0+Math.atan2(t.x*r,e*this.cos_p12*n-t.y*this.sin_p12*r))),t.x=s,t.y=o,t}return l=Di(this.es),h=ji(this.es),c=Gi(this.es),u=zi(this.es),Math.abs(this.sin_p12-1)<=Ft?(d=this.a*ki(l,h,c,u,At),e=Math.sqrt(t.x*t.x+t.y*t.y),o=Vi((d-e)/this.a,l,h,c,u),s=ue(this.long0+Math.atan2(t.x,-1*t.y)),t.x=s,t.y=o,t):Math.abs(this.sin_p12+1)<=Ft?(d=this.a*ki(l,h,c,u,At),e=Math.sqrt(t.x*t.x+t.y*t.y),o=Vi((e-d)/this.a,l,h,c,u),s=ue(this.long0+Math.atan2(t.x,t.y)),t.x=s,t.y=o,t):(e=Math.sqrt(t.x*t.x+t.y*t.y),f=Math.atan2(t.x,t.y),g=Bi(this.a,this.e,this.sin_p12),m=Math.cos(f),y=-(_=this.e*this.cos_p12*m)*_/(1-this.es),v=3*this.es*(1-y)*this.sin_p12*this.cos_p12*m/(1-this.es),w=1-y*(b=(x=e/g)-y*(1+y)*Math.pow(x,3)/6-v*(1+3*y)*Math.pow(x,4)/24)*b/2-x*b*b*b/6,p=Math.asin(this.sin_p12*Math.cos(b)+this.cos_p12*Math.sin(b)*m),s=ue(this.long0+Math.asin(Math.sin(f)*Math.sin(b)/Math.cos(p))),E=Math.sin(p),o=Math.atan2((E-this.es*w*this.sin_p12)*Math.tan(p),E*(1-this.es)),t.x=s,t.y=o,t)},names:["Azimuthal_Equidistant","aeqd"]};var dr={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(t){var e,i,r,n,s,o,a,l=t.x,h=t.y;return r=ue(l-this.long0),e=Math.sin(h),i=Math.cos(h),n=Math.cos(r),1,((s=this.sin_p14*e+this.cos_p14*i*n)>0||Math.abs(s)<=Ft)&&(o=1*this.a*i*Math.sin(r),a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*n)),t.x=o,t.y=a,t},inverse:function(t){var e,i,r,n,s,o,a;return t.x-=this.x0,t.y-=this.y0,e=Math.sqrt(t.x*t.x+t.y*t.y),i=Qi(e/this.a),r=Math.sin(i),n=Math.cos(i),o=this.long0,Math.abs(e)<=Ft?(a=this.lat0,t.x=o,t.y=a,t):(a=Qi(n*this.sin_p14+t.y*r*this.cos_p14/e),s=Math.abs(this.lat0)-At,Math.abs(s)<=Ft?(o=this.lat0>=0?ue(this.long0+Math.atan2(t.x,-t.y)):ue(this.long0-Math.atan2(-t.x,t.y)),t.x=o,t.y=a,t):(o=ue(this.long0+Math.atan2(t.x*r,e*this.cos_p14*n-t.y*this.sin_p14*r)),t.x=o,t.y=a,t))},names:["ortho"]},gr=1,pr=2,fr=3,mr=4,_r=5,yr=6,vr=1,xr=2,br=3,wr=4;function Er(t,e,i,r){var n;return tjt&&n<=At+jt?(r.value=xr,n-=At):n>At+jt||n<=-(At+jt)?(r.value=br,n=n>=0?n-zt:n+zt):(r.value=wr,n+=At)),n}function Sr(t,e){var i=t+e;return i<-zt?i+=Gt:i>+zt&&(i-=Gt),i}var Ir={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=At-jt/2?this.face=_r:this.lat0<=-(At-jt/2)?this.face=yr:Math.abs(this.long0)<=jt?this.face=gr:Math.abs(this.long0)<=At+jt?this.face=this.long0>0?pr:mr:this.face=fr,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(t){var e,i,r,n,s,o,a={x:0,y:0},l={value:0};if(t.x-=this.long0,e=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(t.y)):t.y,i=t.x,this.face===_r)n=At-e,i>=jt&&i<=At+jt?(l.value=vr,r=i-At):i>At+jt||i<=-(At+jt)?(l.value=xr,r=i>0?i-zt:i+zt):i>-(At+jt)&&i<=-jt?(l.value=br,r=i+At):(l.value=wr,r=i);else if(this.face===yr)n=At+e,i>=jt&&i<=At+jt?(l.value=vr,r=-i+At):i=-jt?(l.value=xr,r=-i):i<-jt&&i>=-(At+jt)?(l.value=br,r=-i-At):(l.value=wr,r=i>0?-i+zt:-i-zt);else{var h,c,u,d,g,p;this.face===pr?i=Sr(i,+At):this.face===fr?i=Sr(i,+zt):this.face===mr&&(i=Sr(i,-At)),d=Math.sin(e),g=Math.cos(e),p=Math.sin(i),h=g*Math.cos(i),c=g*p,u=d,this.face===gr?r=Er(n=Math.acos(h),u,c,l):this.face===pr?r=Er(n=Math.acos(c),u,-h,l):this.face===fr?r=Er(n=Math.acos(-h),u,-c,l):this.face===mr?r=Er(n=Math.acos(-c),u,h,l):(n=r=0,l.value=vr)}return o=Math.atan(12/zt*(r+Math.acos(Math.sin(r)*Math.cos(jt))-At)),s=Math.sqrt((1-Math.cos(n))/(Math.cos(o)*Math.cos(o))/(1-Math.cos(Math.atan(1/Math.cos(r))))),l.value===xr?o+=At:l.value===br?o+=zt:l.value===wr&&(o+=1.5*zt),a.x=s*Math.cos(o),a.y=s*Math.sin(o),a.x=a.x*this.a+this.x0,a.y=a.y*this.a+this.y0,t.x=a.x,t.y=a.y,t},inverse:function(t){var e,i,r,n,s,o,a,l,h,c,u,d,g={lam:0,phi:0},p={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,i=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),e=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?p.value=vr:t.y>=0&&t.y>=Math.abs(t.x)?(p.value=xr,e-=At):t.x<0&&-t.x>=Math.abs(t.y)?(p.value=br,e=e<0?e+zt:e-zt):(p.value=wr,e+=At),h=zt/12*Math.tan(e),s=Math.sin(h)/(Math.cos(h)-1/Math.sqrt(2)),o=Math.atan(s),(a=1-(r=Math.cos(e))*r*(n=Math.tan(i))*n*(1-Math.cos(Math.atan(1/Math.cos(o)))))<-1?a=-1:a>1&&(a=1),this.face===_r)l=Math.acos(a),g.phi=At-l,p.value===vr?g.lam=o+At:p.value===xr?g.lam=o<0?o+zt:o-zt:p.value===br?g.lam=o-At:g.lam=o;else if(this.face===yr)l=Math.acos(a),g.phi=l-At,p.value===vr?g.lam=-o+At:p.value===xr?g.lam=-o:p.value===br?g.lam=-o-At:g.lam=o<0?-o-zt:-o+zt;else{var f,m,_;h=(f=a)*f,m=(h+=(_=h>=1?0:Math.sqrt(1-h)*Math.sin(o))*_)>=1?0:Math.sqrt(1-h),p.value===xr?(h=m,m=-_,_=h):p.value===br?(m=-m,_=-_):p.value===wr&&(h=m,m=_,_=-h),this.face===pr?(h=f,f=-m,m=h):this.face===fr?(f=-f,m=-m):this.face===mr&&(h=f,f=m,m=-h),g.phi=Math.acos(-_)-At,g.lam=Math.atan2(m,f),this.face===pr?g.lam=Sr(g.lam,-At):this.face===fr?g.lam=Sr(g.lam,-zt):this.face===mr&&(g.lam=Sr(g.lam,+At))}return 0!==this.es&&(c=g.phi<0?1:0,u=Math.tan(g.phi),d=this.b/Math.sqrt(u*u+this.one_minus_f_squared),g.phi=Math.atan(Math.sqrt(this.a*this.a-d*d)/(this.one_minus_f*d)),c&&(g.phi=-g.phi)),g.lam+=this.long0,t.x=g.lam,t.y=g.phi,t},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]},Cr=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Tr=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],Lr=.8487,Mr=1.3523,Or=Dt/5,Rr=18,Pr=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))};var Nr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(t){var e=ue(t.x-this.long0),i=Math.abs(t.y),r=Math.floor(i*Or);r<0?r=0:r>=Rr&&(r=17);var n={x:Pr(Cr[r],i=Dt*(i-.08726646259971647*r))*e,y:Pr(Tr[r],i)};return t.y<0&&(n.y=-n.y),n.x=n.x*this.a*Lr+this.x0,n.y=n.y*this.a*Mr+this.y0,n},inverse:function(t){var e={x:(t.x-this.x0)/(this.a*Lr),y:Math.abs(t.y-this.y0)/(this.a*Mr)};if(e.y>=1)e.x/=Cr[18][0],e.y=t.y<0?-At:At;else{var i=Math.floor(e.y*Rr);for(i<0?i=0:i>=Rr&&(i=17);;)if(Tr[i][0]>e.y)--i;else{if(!(Tr[i+1][0]<=e.y))break;++i}var r=Tr[i],n=5*(e.y-r[0])/(Tr[i+1][0]-r[0]);n=function(t,e,i,r){for(var n=e;r;--r){var s=t(n);if(n-=s,Math.abs(s)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(t){var e,i,r,n,s=t.x,o=t.y;if(s-=this.long0,"ellipse"===this.shape){o=Math.atan(this.radius_p2*Math.tan(o));var a=this.radius_p/bi(this.radius_p*Math.cos(o),Math.sin(o));if(i=a*Math.cos(s)*Math.cos(o),r=a*Math.sin(s)*Math.cos(o),n=a*Math.sin(o),(this.radius_g-i)*i-r*r-n*n*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/bi(n,e)),t.y=this.radius_g_1*Math.atan(n/e)):(t.x=this.radius_g_1*Math.atan(r/e),t.y=this.radius_g_1*Math.atan(n/bi(r,e)))}else"sphere"===this.shape&&(e=Math.cos(o),i=Math.cos(s)*e,r=Math.sin(s)*e,n=Math.sin(o),e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/bi(n,e)),t.y=this.radius_g_1*Math.atan(n/e)):(t.x=this.radius_g_1*Math.atan(r/e),t.y=this.radius_g_1*Math.atan(n/bi(r,e))));return t.x=t.x*this.a,t.y=t.y*this.a,t},inverse:function(t){var e,i,r,n,s=-1,o=0,a=0;if(t.x=t.x/this.a,t.y=t.y/this.a,"ellipse"===this.shape){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*bi(1,a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*bi(1,o));var l=a/this.radius_p;if(e=o*o+l*l+s*s,(r=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-i-Math.sqrt(r))/(2*e),s=this.radius_g+n*s,o*=n,a*=n,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if("sphere"===this.shape){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+o*o)),e=o*o+a*a+s*s,(r=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-i-Math.sqrt(r))/(2*e),s=this.radius_g+n*s,o*=n,a*=n,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s)}return t.x=t.x+this.long0,t},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]};Xe.defaultDatum="WGS84",Xe.Proj=Pe,Xe.WGS84=new Xe.Proj("WGS84"),Xe.Point=di,Xe.toPoint=Be,Xe.defs=ne,Xe.nadgrid=function(t,e){var i=new DataView(e),r=function(t){var e=t.getInt32(8,!1);if(11===e)return!1;11!==(e=t.getInt32(8,!0))&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian");return!0}(i),n=function(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Te(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}(i,r);n.nSubgrids>1&&console.log("Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored");var s={header:n,subgrids:function(t,e,i){for(var r=176,n=[],s=0;s{let e=t;Array.isArray(e)||(e=[e]),e.forEach(t=>{t.codes.forEach(e=>{Vr.defs(e,t.def)});const e=t.codes.map(e=>new qr.a({code:e,extent:t.extent,worldExtent:t.worldExtent,units:t.units,metersPerUnit:t.metersPerUnit,axisOrientation:t.axisOrientation,global:t.global}));Object(h.d)(e),-1===Zr.indexOf(t)&&Zr.push(t)})},$r=()=>Zr;Kr(Zr),$r(),Xr(Vr);var Jr={addProjections:Kr,getSupportedProjs:$r},Qr=i(91),tn=i(26),en=i(77),rn="add",nn="remove",sn=i(16);const on="length";class an extends sn.a{constructor(t,e,i){super(t),this.element=e,this.index=i}}class ln extends tn.a{constructor(t,e){if(super(),this.on,this.once,this.un,e=e||{},this.unique_=!!e.unique,this.array_=t||[],this.unique_)for(let t=0,e=this.array_.length;t0;)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new an(rn,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,r=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new an(nn,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new an(nn,i,t)),this.dispatchEvent(new an(rn,e,t))}updateLength_(){this.set(on,this.array_.length)}assertUnique_(t,e){for(let i=0,r=this.array_.length;ithis.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const r=mn(t,e,i);return r in this.cache_?this.cache_[r]:null}set(t,e,i,r){const n=mn(t,e,i);this.cache_[n]=r,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function mn(t,e,i){return e+":"+t+":"+(i?Object(pn.b)(i):"null")}const _n=new fn;var yn=i(31),vn=i(12);class xn extends cn.a{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){Object(dn.a)()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,r=t.pixelToCoordinateTransform;Object(gn.b)(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Object(gn.e)(r,i)}forEachFeatureAtCoordinate(t,e,i,r,n,s,o,a){let l;const h=e.viewState;function c(t,e,i,r){return n.call(s,e,t?i:null,r)}const u=h.projection,d=Object(vn.p)(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&r){const t=u.getExtent(),e=Object(pt.G)(t);g.push([-e,0],[e,0])}const p=e.layerStatesArray,f=p.length,m=[],_=[];for(let r=0;r=0;--n){const s=p[n],u=s.layer;if(u.hasRenderer()&&Object(yn.b)(s,h)&&o.call(a,u)){const n=u.getRenderer(),o=u.getSource();if(n&&o){const a=o.getWrapX()?d:t,h=c.bind(null,s.managed);_[0]=a[0]+g[r][0],_[1]=a[1]+g[r][1],l=n.forEachFeatureAtCoordinate(_,e,i,h,m)}if(l)return l}}if(0===m.length)return;const y=1/m.length;return m.forEach((t,e)=>t.distanceSq+=e*y),m.sort((t,e)=>t.distanceSq-e.distanceSq),m.some(t=>l=t.callback(t.feature,t.layer,t.geometry)),l}hasFeatureAtCoordinate(t,e,i,r,n,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,r,un.b,this,n,s)}getMap(){return this.map_}renderFrame(t){Object(dn.a)()}scheduleExpireIconCache(t){_n.canExpireCache()&&t.postRenderFunctions.push(bn)}}function bn(t,e){_n.expire()}var wn=xn,En=i(45),Sn=i(59),In=i(30);const Cn="ol-hidden",Tn="ol-unselectable",Ln="ol-unsupported",Mn="ol-control",On="ol-collapsed",Rn=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),Pn=["style","variant","weight","size","lineHeight","family"],Nn=function(t){const e=t.match(Rn);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,r=Pn.length;tMath.max(e,Qn(t,i)),0);return i[e]=r,r}function es(t,e,i,r,n,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.setTransform.apply(t,e),r.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,r=i.length;t=0;--e)r[e].renderDeclutter(t);Object(kn.g)(this.element_,this.children_),this.dispatchRenderEvent(In.a.POSTCOMPOSE,t),this.renderedVisible_||(this.element_.style.display="",this.renderedVisible_=!0),this.scheduleExpireIconCache(t)}},ns=i(5),ss=i(71),os=i(8);class as extends sn.a{constructor(t,e){super(t),this.layer=e}}const ls="layers";class hs extends ss.a{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(ls,this.handleLayersChanged_),i?Array.isArray(i)?i=new hn(i.slice(),{unique:!0}):Object(os.a)("function"==typeof i.getArray,43):i=new hn(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(is.c),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(Object(is.a)(t,rn,this.handleLayersAdd_,this),Object(is.a)(t,nn,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(is.c);Object(Fn.a)(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t{this.clickTimeoutId_=void 0;const e=new gs(ps.SINGLECLICK,this.map_,t);this.dispatchEvent(e)},250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==ps.POINTERUP||e.type==ps.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=ps.POINTERDOWN&&e.type!=ps.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new gs(ps.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(is.c),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new gs(ps.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.down_={};for(const e in t){const i=t[e];this.down_[e]="function"==typeof i?un.c:i}if(0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(Object(is.a)(t,ps.POINTERMOVE,this.handlePointerMove_,this),Object(is.a)(t,ps.POINTERUP,this.handlePointerUp_,this),Object(is.a)(this.element_,ps.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(Object(is.a)(this.element_.getRootNode(),ps.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new gs(ps.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new gs(ps.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(Object(is.c)(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(ns.a.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(Object(is.c)(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(is.c),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}}var bs=xs,ws="postrender",Es="movestart",Ss="moveend",Is="loadstart",Cs="loadend",Ts="layergroup",Ls="size",Ms="target",Os="view",Rs=i(78),Ps=i(19),Ns={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"},As=i(41),Fs=i(3);function ks(t,e,i){return function(r,n,s,o,a){if(!r)return;if(!n&&!e)return r;const l=e?0:s[0]*n,h=e?0:s[1]*n,c=a?a[0]:0,u=a?a[1]:0;let d=t[0]+l/2+c,g=t[2]-l/2+c,p=t[1]+h/2+u,f=t[3]-h/2+u;d>g&&(d=(g+d)/2,g=d),p>f&&(p=(f+p)/2,f=p);let m=Object(Fs.b)(r[0],d,g),_=Object(Fs.b)(r[1],p,f);if(o&&i&&n){const t=30*n;m+=-t*Math.log(1+Math.max(0,d-r[0])/t)+t*Math.log(1+Math.max(0,r[0]-g)/t),_+=-t*Math.log(1+Math.max(0,p-r[1])/t)+t*Math.log(1+Math.max(0,r[1]-f)/t)}return[m,_]}}function Ds(t){return t}function js(t,e,i,r){const n=Object(pt.G)(e)/i[0],s=Object(pt.A)(e)/i[1];return r?Math.min(t,Math.max(n,s)):Math.min(t,Math.min(n,s))}function Gs(t,e,i){let r=Math.min(t,e);return r*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(r=Math.max(r,i),r/=Math.log(1+50*Math.max(0,i/t-1))/50+1),Object(Fs.b)(r,i/2,2*e)}function zs(t,e,i,r,n){return i=void 0===i||i,function(s,o,a,l){if(void 0!==s){const o=r?js(t,r,a,n):t;return i&&l?Gs(s,o,e):Object(Fs.b)(s,e,o)}}}function Bs(t){if(void 0!==t)return 0}function Us(t){if(void 0!==t)return t}var Vs=i(23);function qs(t,e,i,r,n,s){s=s||[];let o=0;for(let a=e;a1)u=i;else{if(d>0){for(let n=0;nn&&(n=a),s=i,o=r}return n}function to(t,e,i,r,n){for(let s=0,o=i.length;s0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],d=t[i],g=t[i+1];for(let e=s+r;eo&&(c=e,o=n)}o>n&&(l[(c-e)/r]=1,s+r0&&p>d)&&(g<0&&f0&&f>g)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function co(t,e,i,r,n,s,o,a){for(let l=0,h=i.length;ly&&(h=(c+d)/2,Object(bo.c)(t,e,i,r,h,f)&&(_=h,y=n)),c=d}return isNaN(_)&&(_=n[s]),o?(o.push(_,f,y),o):[_,f,y]}function Eo(t,e,i,r,n){let s=[];for(let o=0,a=i.length;o0}function To(t,e,i,r,n){n=void 0!==n&&n;for(let s=0,o=i.length;sc&&g1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let r=0;for(;r0}getInteracting(){return this.hints_[Ps.a.INTERACTING]>0}cancelAnimations(){let t;this.setHint(Ps.a.ANIMATING,-this.hints_[Ps.a.ANIMATING]);for(let e=0,i=this.animations_.length;e=0;--i){const r=this.animations_[i];let n=!0;for(let i=0,s=r.length;i0?o/s.duration:1;a>=1?(s.complete=!0,a=1):n=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],r=s.targetCenter[1];this.nextCenter_=s.targetCenter;const n=t+l*(i-t),o=e+l*(r-e);this.targetCenter_=[n,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?Object(Fs.e)(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(n){this.animations_[i]=null,this.setHint(Ps.a.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=r[0].callback;t&&Go(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const r=this.getCenterInternal();return void 0!==r&&(i=[r[0]-e[0],r[1]-e[1]],Object(vn.j)(i,t-this.getRotation()),Object(vn.a)(i,e)),i}calculateCenterZoom(t,e){let i;const r=this.getCenterInternal(),n=this.getResolution();if(void 0!==r&&void 0!==n){i=[e[0]-t*(e[0]-r[0])/n,e[1]-t*(e[1]-r[1])/n]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],r=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(r*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(r*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?Object(h.w)(t,this.getProjection()):t}getCenterInternal(){return this.get(Ns.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){const e=this.calculateExtentInternal(t);return Object(h.x)(e,this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();Object(os.a)(e,1);const i=this.getResolution();Object(os.a)(void 0!==i,2);const r=this.getRotation();return Object(os.a)(void 0!==r,3),Object(pt.z)(e,i,r,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(Ns.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(Object(h.m)(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=Object(pt.G)(t)/e[0],r=Object(pt.A)(t)/e[1];return Math.max(i,r)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,r=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*r)}}getRotation(){return this.get(Ns.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,n=Math.log(i/r)/e;return function(t){return Math.log(i/t)/e/n}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let r=this.getCenterInternal();const n=this.padding_;if(n){const t=this.getViewportSizeMinusPadding_();r=Bo(r,this.getViewportSize_(),[t[0]/2+n[3],t[1]/2+n[0]],e,i)}return{center:r.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,r=this.minZoom_||0;if(this.resolutions_){const n=Object(u.f)(this.resolutions_,t,1);r=n,e=this.resolutions_[n],i=n==this.resolutions_.length-1?2:e/this.resolutions_[n+1]}else e=this.maxResolution_,i=this.zoomFactor_;return r+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=Object(Fs.b)(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,Object(Fs.b)(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(Object(os.a)(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,24),Array.isArray(t)){Object(os.a)(!Object(pt.J)(t),25);i=Fo(Object(h.m)(t,this.getProjection()))}else if("Circle"===t.getType()){const e=Object(h.m)(t.getExtent(),this.getProjection());i=Fo(e),i.rotate(this.getRotation(),Object(pt.x)(e))}else{const e=Object(h.s)();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),r=Math.sin(-e),n=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=n.length;t0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!Object(u.c)(e,this.renderedAttributions_)){Object(kn.e)(this.ulElement_);for(let t=0,i=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:Vs.easeOut}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(Cn);t||0!==i?t&&0!==i&&this.element.classList.remove(Cn):this.element.classList.add(Cn)}this.label_.style.transform=t}this.rotation_=i}};var Xo=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,r=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",n=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=r,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(ns.a.CLICK,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=n,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(ns.a.CLICK,this.handleClick_.bind(this,-i),!1);const u=e+" "+"ol-unselectable "+Mn,d=this.element;d.className=u,d.appendChild(h),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const r=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:r,duration:this.duration_,easing:Vs.easeOut})):e.setZoom(r)}}};function Ho(t){t=t||{};const e=new hn;(void 0===t.zoom||t.zoom)&&e.push(new Xo(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new Wo(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new Yo(t.attributionOptions)),e}var Zo="active";class Ko extends tn.a{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(Zo)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(Zo,t)}setMap(t){this.map_=t}}function $o(t,e,i,r){const n=t.getZoom();if(void 0===n)return;const s=t.getConstrainedZoom(n+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==r?r:250,easing:Vs.easeOut})}var Jo=Ko;var Qo=class extends Jo{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==ps.DBLCLICK){const i=t.originalEvent,r=t.map,n=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;$o(r.getView(),s,n,this.duration_),i.preventDefault(),e=!0}return!e}};function ta(t){const e=t.length;let i=0,r=0;for(let n=0;n0}}else if(t.type==ps.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==ps.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function ia(t){const e=arguments;return function(t){let i=!0;for(let r=0,n=e.length;r0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};var _a=class extends ea{constructor(t){t=t||{},super({stopDown:un.a}),this.condition_=t.condition?t.condition:na,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!pa(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===Bs)return;const r=e.getSize(),n=t.pixel,s=Math.atan2(r[1]/2-n[1],n[0]-r[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!pa(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!pa(t))return!1;if(la(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}};class ya extends cn.a{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",r=this.element_.style;r.left=Math.min(t[0],e[0])+i,r.top=Math.min(t[1],e[1])+i,r.width=Math.abs(e[0]-t[0])+i,r.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new No([i])}getGeometry(){return this.geometry_}}var va=ya;const xa="boxstart",ba="boxdrag",wa="boxend",Ea="boxcancel";class Sa extends sn.a{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}var Ia=class extends ea{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new va(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:la,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const r=i[0]-e[0],n=i[1]-e[1];return r*r+n*n>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new Sa(ba,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new Sa(e?wa:Ea,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Sa(xa,t.coordinate,t)),!0)}onBoxEnd(t){}};var Ca=class extends Ia{constructor(t){super({condition:(t=t||{}).condition?t.condition:da,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),r=e.getResolutionForExtentInternal(t),n=e.getResolution()/r;i=i.clone(),i.scale(n*n)}e.fitInternal(i,{duration:this.duration_,easing:Vs.easeOut})}},Ta=37,La=38,Ma=39,Oa=40;var Ra=class extends Jo{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return ua(t)&&ga(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==ns.a.KEYDOWN){const i=t.originalEvent,r=i.keyCode;if(this.condition_(t)&&(r==Oa||r==Ta||r==Ma||r==La)){const n=t.map.getView(),s=n.getResolution()*this.pixelDelta_;let o=0,a=0;r==Oa?a=-s:r==Ta?o=-s:r==Ma?o=s:a=s;const l=[o,a];Object(vn.j)(l,n.getRotation()),function(t,e,i){const r=t.getCenterInternal();if(r){const n=[r[0]+e[0],r[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:Vs.linear,center:t.getConstrainedCenter(n)})}}(n,l,this.duration_),i.preventDefault(),e=!0}}return!e}};var Pa=class extends Jo{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:ga,this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==ns.a.KEYDOWN||t.type==ns.a.KEYPRESS){const i=t.originalEvent,r=i.charCode;if(this.condition_(t)&&(r=="+".charCodeAt(0)||r=="-".charCodeAt(0))){const n=t.map,s=r=="+".charCodeAt(0)?this.delta_:-this.delta_;$o(n.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}};var Na=class{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t;)i-=3;const r=this.points_[e+2]-this.points_[i+2];if(r<1e3/60)return!1;const n=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,n),this.initialVelocity_=Math.sqrt(n*n+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}};var Aa=class extends Jo{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:aa;this.condition_=t.onFocusOnly?ia(oa,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==ns.a.WHEEL)return!0;const e=t.map,i=t.originalEvent;let r;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==ns.a.WHEEL&&(r=i.deltaY,An.b&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(r/=An.a),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(r*=40)),0===r)return!1;this.lastDelta_=r;const n=Date.now();void 0===this.startTime_&&(this.startTime_=n),(!this.mode_||n-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(r)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-r/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=n,!1;this.totalDelta_+=r;const o=Math.max(this.timeout_-(n-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-Object(Fs.b)(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),$o(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}};var Fa=class extends ea{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=un.a),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],r=this.targetPointers[1],n=Math.atan2(r.clientY-i.clientY,r.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=n-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=n;const s=t.map,o=s.getView();o.getConstraints().rotation!==Bs&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(ta(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};var ka=class extends ea{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=un.a),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],r=this.targetPointers[1],n=i.clientX-r.clientX,s=i.clientY-r.clientY,o=Math.sqrt(n*n+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(ta(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function Da(t){t=t||{};const e=new hn,i=new Na(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new _a);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new Qo({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new ma({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new Fa);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new ka({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new Ra),e.push(new Pa({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new Aa({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new Ca({duration:t.zoomDuration})),e}var ja=i(14),Ga=i(50);function za(t){t instanceof yn.a?t.setMapInternal(null):t instanceof cs&&t.getLayers().forEach(za)}function Ba(t,e){if(t instanceof yn.a)t.setMapInternal(e);else if(t instanceof cs){const i=t.getLayers().getArray();for(let t=0,r=i.length;tthis.updateSize()),this.controls=e.controls||Ho(),this.interactions=e.interactions||Da({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Rs.a(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Ts,this.handleLayerGroupChanged_),this.addChangeListener(Os,this.handleViewChanged_),this.addChangeListener(Ls,this.handleSizeChanged_),this.addChangeListener(Ms,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof Uo||t.view.then((function(t){i.setView(new Uo(t))})),this.controls.addEventListener(rn,t=>{t.element.setMap(this)}),this.controls.addEventListener(nn,t=>{t.element.setMap(null)}),this.interactions.addEventListener(rn,t=>{t.element.setMap(this)}),this.interactions.addEventListener(nn,t=>{t.element.setMap(null)}),this.overlays_.addEventListener(rn,t=>{this.addOverlayInternal_(t.element)}),this.overlays_.addEventListener(nn,t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)}),this.controls.forEach(t=>{t.setMap(this)}),this.interactions.forEach(t=>{t.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){Ba(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const r=this.getCoordinateFromPixelInternal(t),n=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:un.b,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,n,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof cs?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),r=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:un.b,n=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,n,s,r,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i=this.getSize(),r=e.width/i[0],n=e.height/i[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/r,(s.clientY-e.top)/n]}getTarget(){return this.get(Ms)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return Object(h.w)(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?Object(gn.a)(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Ts)}setLayers(t){const e=this.getLayerGroup();if(t instanceof hn)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const r=e[i];if(r.getMap()!==this||!r.getActive()||!this.getTargetElement())continue;if(!r.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,r=i;if(t){const e=t.viewHints;if(e[Ps.a.ANIMATING]||e[Ps.a.INTERACTING]){const e=Date.now()-t.time>8;i=e?0:8,r=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new as("removelayer",e)),this.set(Ts,t)}setSize(t){this.set(Ls,t)}setTarget(t){this.set(Ms,t)}setView(t){if(!t||t instanceof Uo)return void this.set(Os,t);this.set(Os,new Uo);const e=this;t.then((function(t){e.setView(new Uo(t))}))}updateSize(){const t=this.getTargetElement();let e=void 0;if(t){const i=getComputedStyle(t),r=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),n=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(r)||isNaN(n)||(e=[r,n],!Object(ja.b)(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Object(Ga.b)("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&Object(u.c)(e,i)||(this.setSize(e),this.updateViewportSize_())}updateViewportSize_(){const t=this.getView();if(t){let e=void 0;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}}var Va=Ua;var qa=class{constructor(t,e,i=!1){this._listener=t,this._scope=e,this.eventKey_=ME(),this.once_=i}fire(t){let e=t;vE(e)||(e=[e]),this._listener.apply(this._scope,e)}getEventKey(){return this.eventKey_}isOnce(){return this.once_}has(t,e){let i=!1;return i=bE(t)?this._listener===t&&this._scope===e:this.eventKey_===t,i}};var Ya=class{constructor(){this.events_={}}add(t,e,i,r=!1){let n;if(!xE(t)&&bE(e)&&(xE(this.events_[t])&&(this.events_[t]=[]),-1===this.indexOf(t,e,i))){const s=new qa(e,i,r);this.events_[t].push(s),n=s.getEventKey()}return n}remove(t,e,i){const r=this.events_[t];if(!xE(r)){const n=this.indexOf(t,e,i);-1!==n&&r.splice(n,1)}}removeByKey(t,e){const i=this.events_[t];if(!xE(i)){const t=i.map((t,i)=>{let r=-1;return t.getEventKey()===e&&(r=i),r});-1!==t&&i.splice(t,1)}}fire(t,e){const i=[].concat(this.events_[t]);xE(i)||i.forEach(i=>{i.fire(e),!0===i.isOnce()&&this.remove(t,i.getEventKey())})}indexOf(t,e,i){let r=-1;const n=this.events_[t];if(!xE(n))for(let t=0,s=n.length;ti?(this.direction_=Ka,this.widthLimit_=e-o):(this.direction_=Za,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(i),n=e.getConstrainedZoom(e.getZoomForResolution(r));e.animateInternal({zoom:n,duration:this.duration_,easing:Vs.easeOut})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(Object(is.a)(i,fs,t,this),Object(is.a)(i,_s,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,r=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(is.c),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==Ka?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===Ka?t/this.widthLimit_:e/this.heightLimit_,Object(Fs.b)(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){const e=this.getMap().getView().getValueForResolutionFunction();return Object(Fs.b)(1-e(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}};var Ja=class extends $a{constructor(t){super(BE({},t,!0)),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};var Qa=t=>{throw new Error(t)};var tl=class extends Wa{constructor(t){super(),this.impl_=t,!xE(this.impl_)&&bE(this.impl_.setFacadeObj)&&this.impl_.setFacadeObj(this)}getImpl(){return this.impl_}setImpl(t){this.impl_=t}destroy(){!xE(this.impl_)&&bE(this.impl_.destroy)&&this.impl_.destroy()}};const el="added:map",il="added:panel",rl="added:layer",nl="added:wmc",sl="added:kml",ol="added:wms",al="added:wfs",ll="added:vectortile",hl="removed:layer",cl="removed:map",ul="added:wmts",dl="activated",gl="deactivated",pl="show",fl="hide",ml="destroy",_l="select:features",yl="unselect:features",vl="hover:features",xl="leave:features",bl="load",wl="completed",El="change",Sl="change:wmc",Il="change:proj",Cl="change:style",Tl="change:zoom",Ll="change:rotation",Ml="changed:layer-visibility",Ol="click",Rl="move",Pl="popup:added",Nl="popup:removed",Al="popup:addtabed",Fl="popup:removedtab";const kl={translations:{en:i(93),es:i(94)},lang:"es"},Dl=t=>kl.translations[t],jl=(t,e=kl.lang)=>Dl(e)[t];var Gl=class extends tl{constructor(t,e){const i=t;super(i),mE(i.addTo)&&Qa(jl("exception").addto_method),mE(i.getElement)&&Qa(jl("exception").getelement_method),mE(i.isByDefault)&&(i.isByDefault=!0),this.name=e,this.map_=null,this.element_=null,this.activationBtn_=null,this.activated=!1,this.panel_=null,this.controls_=null}setImpl(t){const e=t;mE(e.addTo)&&Qa(jl("exception").addto_method),mE(e.getElement)&&Qa(jl("exception").getelement_method),mE(e.isByDefault)&&(e.isByDefault=!0)}addTo(t){this.map_=t;const e=this.getImpl(),i=this.createView(t);i instanceof Promise?i.then(i=>{this.manageActivation(i),e.addTo(t,i),this.fire(el)}):(this.manageActivation(i),e.addTo(t,i),this.fire(el))}createView(t){}manageActivation(t){this.element_=t,this.activationBtn_=this.getActivationButton(this.element_),xE(this.activationBtn_)||this.activationBtn_.addEventListener("click",t=>{t.preventDefault(),this.activated?(this.deactivate(),this.activated=!1):(this.activate(),this.activated=!0)},!1)}getActivationButton(t){}activate(){xE(this.element_)||this.element_.classList.add("activated"),mE(this.getImpl().activate)||this.getImpl().activate(),this.activated=!0,this.fire(dl)}deactivate(){xE(this.element_)||this.element_.classList.remove("activated"),mE(this.getImpl().deactivate)||this.getImpl().deactivate(),this.activated=!1,this.fire(gl)}getElement(){return this.getImpl().getElement()}setPanel(t){this.panel_=t}getPanel(){return this.panel_}destroy(){nS(this.getElement())}},zl=i(61),Bl=i.n(zl);Bl.a.registerHelper("gt",(function(t,e,i){return t>e?i.fn(this):i.inverse(this)})),Bl.a.registerHelper("lt",(function(t,e,i){return t{let i,r,n={};mE(e)||(n=KE(n,e.vars),r=e.parseToHtml);const s=Bl.a.compile(t)(n);return i=!1!==r?kE(s):s,i},ql=(t,e)=>{let i;return mE(e)||(i=e.scope),new Promise((r,n)=>{let s=Ul[t];if(mE(s)){let n=t;mE(e)||!0!==e.jsonp||(n=(t=>{let e=null;return xE(t)||(e=M.config.MAPEA_URL.concat(M.config.TEMPLATES_PATH),e=e.concat(t)),e})(t));const o=xE(e)&&!0===e.jsonp;pE(n,null,{jsonp:o}).then(e=>{s=Bl.a.compile(e.text),Ul[t]=s,r.call(i,s)})}else r.call(i,s)})};class Yl extends Gl{constructor(t={}){super(new Ja(t),Yl.NAME),mE(Ja)&&Qa(jl("exception").panzoombar_method)}createView(t){return Vl(Ha.a)}equals(t){return t instanceof Yl}}Yl.NAME="panzoombar";var Wl=Yl;const Xl="WMC",Hl="KML",Zl="WMS",Kl="WFS",$l="WMTS",Jl="OSM",Ql="Mapbox",th="GeoJSON",eh="Vector",ih="MVT",rh={WMC:Xl,KML:Hl,WMS:Zl,WFS:Kl,WMTS:$l,OSM:Jl,Mapbox:Ql,GeoJSON:th,Vector:eh,MVT:ih},nh=t=>{let e=CE(t,!0);return e="WMS_FULL"===e?Zl:"WFST"===e?Kl:Object.keys(rh).find(t=>{const i=rh[t];return EE(i)&&CE(i,!0)===e}),rh[e]},sh=t=>-1!==[Xl,Hl,Zl,Kl,$l,ih].indexOf(nh(t)),oh=/WMS\*.*/,ah=/WMS_FULL\*.*/,lh=({parameter:t,attr:e,type:i,separator:r,normalized:n=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map(t=>t.trim()).map(t=>Number.parseFloat(t)),array_string:t=>t.split(r).map(t=>t.trim()).map(t=>String(t))};if(EE(t)&&s.test(t)){const e=t.split("*")[o];xE(e)||(a=l[i](e))}else wE(t)?a=t[e]:Qa("El parámetro no es de un tipo soportado: "+typeof t);return EE(a)&&(a=a.trim()),!0===n&&(a=CE(a)),a};var hh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(t=>{const e=lh({parameter:t,type:"string",attr:"name"}),i=lh({parameter:t,type:"string",attr:"url"}),r=lh({parameter:t,type:"string",attr:"legend"}),n=lh({parameter:t,type:"boolean",attr:"transparent"}),s=lh({parameter:t,type:"boolean",attr:"tiled"}),o=lh({parameter:t,type:"array_number",attr:"maxExtent",separator:"_"}),a=lh({parameter:t,type:"string",attr:"version"}),l=lh({parameter:t,type:"array_string",attr:"styles",separator:"%"});let h;return h=oh.test(t)||wE(t)?{type:"WMS",name:e(oh,3),tiled:s(oh,5),url:i(oh,2),legend:r(oh,1),transparent:n(oh,4),maxExtent:o(oh,6),version:a(oh,7),styles:l(oh,8)}:{type:"WMS",url:i(ah,1)},h}),vE(t)||(e=e[0]),e};const ch=/KML\*.*/,uh=({parameter:t,attr:e,type:i,valueCmp:r=/^1|true/i,separator:n,normalized:s=!1})=>(o,a)=>{let l;const h={boolean:t=>r.test(t),boolean_eql:t=>void 0===t||"true"===t,string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map(t=>t.trim()).map(t=>Number.parseFloat(t))};if(EE(t)&&o.test(t)){const r=t.split("*");let n=r[a];l=h[i](n),"extract"===e&&(n=r.slice(-2,-1)[0],l="false"!==n),"label"===e&&(n=r.slice(-1)[0],l="false"!==n),"url"!==e||"true"!==l&&"false"!==l&&void 0!==l||(l="")}else wE(t)?l=t[e]:Qa("El parámetro no es de un tipo soportado: "+typeof t);return EE(l)&&(l=l.trim()),!0===s&&(l=CE(l)),l};var dh=t=>{const e=t;let i=[];xE(e)&&Qa(jl("exception").no_param);let r=e;return vE(r)||(r=[r]),i=r.map(t=>{let e={};const i=uh({parameter:t,type:"string",attr:"name"}),r=uh({parameter:t,type:"string",attr:"url"}),n=uh({parameter:t,type:"boolean",attr:"extract"}),s=uh({parameter:t,type:"boolean_eql",attr:"label"});return e=ch.test(t)?{type:Hl,name:i(ch,1),url:r(ch,2)+r(ch,3),extract:n(ch,4),label:s(ch,5)}:{type:Hl,name:i(ch),url:r(ch),extract:n(ch),label:s(ch)},e}),vE(e)||(i=i[0]),i};const gh=/MAPBOX\*.*/,ph=({parameter:t,attr:e,type:i,separator:r,normalized:n=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map(t=>t.trim()).map(t=>Number.parseFloat(t))};if(EE(t)&&s.test(t)){const e=t.split("*")[o];xE(e)||(a=l[i](e))}else wE(t)?a=t[e]:Qa("El parámetro no es de un tipo soportado: "+typeof t);return EE(a)&&(a=a.trim()),!0===n&&(a=CE(a)),a};var fh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(t=>{const e=ph({parameter:t,type:"string",attr:"name"})(gh,1),i=ph({parameter:t,type:"string",attr:"legend"})(gh,3),r=ph({parameter:t,type:"boolean",attr:"transparent"})(gh,2),n=(t=>{let e;return EE(t)?e=null:wE(t)&&!xE(t.accessToken)?e=t.accessToken.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),e})(t);return{type:Ql,name:e,legend:i,transparent:r,accessToken:n}}),vE(t)||(e=e[0]),e};const mh=/OSM\.*/,_h=({parameter:t,attr:e,type:i,separator:r,normalized:n=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map(t=>t.trim()).map(t=>Number.parseFloat(t))};if(EE(t)&&s.test(t)){const e=t.split("*")[o];xE(e)||(a=l[i](e))}else wE(t)?a=t[e]:Qa("El parámetro no es de un tipo soportado: "+typeof t);return EE(a)&&(a=a.trim()),!0===n&&(a=CE(a)),a};var yh=t=>{let e=t,i=[];xE(e)&&(e={type:Jl,name:"osm"});let r=e;return vE(r)||(r=[r]),i=r.map(t=>({type:"OSM",name:_h({parameter:t,type:"string",attr:"name"})(mh,3),transparent:_h({parameter:t,type:"boolean",attr:"transparent"})(mh,1),legend:_h({parameter:t,type:"string",attr:"legend"})(mh,2)})),vE(e)||(i=i[0]),i};const vh=/^GeoJSON(T)?\*.*/,xh=({parameter:t,attr:e,type:i,separator:r,normalized:n=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map(t=>t.trim()).map(t=>Number.parseFloat(t))};if(EE(t)&&s.test(t)){const e=t.split("*")[o];xE(e)||(a=l[i](e))}else wE(t)?a=t[e]:Qa("El parámetro no es de un tipo soportado: "+typeof t);return EE(a)&&(a=a.trim()),!0===n&&(a=CE(a)),a};var bh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(t=>({type:"GeoJSON",name:xh({parameter:t,type:"string",attr:"name"})(vh,1),url:xh({parameter:t,type:"string",attr:"name"})(vh,2),extract:xh({parameter:t,type:"boolean",attr:"extract"})(vh,3),style:xh({parameter:t,type:"string",attr:"style"})(vh,4)})),vE(t)||(e=e[0]),e};var wh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(t=>{const e={};return e.type=Xl,e.name=((t,e)=>{let i,r;return EE(t)?/^\w{3,7}\*[^*]+\*[^*]+$/.test(t)?(r=t.split(/\*/),i=r[2].trim()):/^\w{3,7}\*[^*]$/.test(t)||/^[^*]+\*[^*]+$/.test(t)?(r=t.split(/\*/),i=r[1].trim()):/^[^*]+$/.test(t)&&!SE(t)&&(i=t):wE(t)?i=CE(t.name):Qa("El parámetro no es de un tipo soportado: "+typeof t),SE(i)&&(i=null),i})(t),e.url=(t=>{let e;if(EE(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else wE(t)?e=t.url:Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.options=(t=>{let e;return EE(t)||(wE(t)?e=t.options:Qa("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e}),vE(t)||(e=e[0]),e};const Eh=t=>{let e=t;const i={};if(xE(e)&&Qa(jl("exception").no_center),EE(e))if(e=CE(e),/^-?\d+(\.\d+)?[,;]-?\d+(\.\d+)?([*](true|false))?$/i.test(e)){const t=e.split(/\*/),r=t[0],n=t[1],s=r.split(/[,;]+/);2===s.length?(i.x=Number.parseFloat(s[0]),i.y=Number.parseFloat(s[1])):Qa(jl("exception").invalid_center_param),i.draw=/^1|(true)$/i.test(n)}else Qa(jl("exception").invalid_center_param);else vE(e)?2===e.length||3===e.length?(EE(e[0])&&(e[0]=Number.parseFloat(e[0])),EE(e[1])&&(e[1]=Number.parseFloat(e[1])),i.x=e[0],i.y=e[1]):Qa(jl("exception").invalid_center_param):wE(e)?(yE(e.x)?Qa(jl("exception").invalid_center_param):(EE(e.x)&&(e.x=Number.parseFloat(e.x)),i.x=e.x),yE(e.y)?Qa(jl("exception").invalid_center_param):(EE(e.y)&&(e.y=Number.parseFloat(e.y)),i.y=e.y),yE(e.draw)?i.draw=!1:i.draw=/^true$/.test(e.draw)):Qa("El parámetro no es de un tipo soportado: "+typeof maxExtentParameter);return(Number.isNaN(i.x)||Number.isNaN(i.y))&&Qa(jl("exception").invalid_center_param),i},Sh=t=>{const e=t;let i;if(!xE(e)){if(i={x:{},y:{}},xE(e)&&Qa(jl("exception").no_maxextent),EE(e))if(/^\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?$/.test(e)){const t=e.split(/[,;]+/);4===t.length?(i.x.min=Number.parseFloat(t[0]),i.y.min=Number.parseFloat(t[1]),i.x.max=Number.parseFloat(t[2]),i.y.max=Number.parseFloat(t[3])):Qa(jl("exception").invalid_maxextent_param)}else Qa(jl("exception").invalid_maxextent_param);else vE(e)?4===e.length?(EE(e[0])&&(e[0]=Number.parseFloat(e[0])),EE(e[1])&&(e[1]=Number.parseFloat(e[1])),EE(e[2])&&(e[2]=Number.parseFloat(e[2])),EE(e[3])&&(e[3]=Number.parseFloat(e[3])),i.x.min=e[0],i.y.min=e[1],i.x.max=e[2],i.y.max=e[3]):Qa(jl("exception").invalid_maxextent_param):wE(e)?(yE(e.left)?yE(e.x.min)?Qa(jl("exception").invalid_maxextent_param):(EE(e.x.min)&&(e.x.min=Number.parseFloat(e.x.min)),i.x.min=e.x.min):(EE(e.left)&&(e.left=Number.parseFloat(e.left)),i.x.min=e.left),yE(e.bottom)?yE(e.y.min)?Qa(jl("exception").invalid_maxextent_param):(EE(e.y.min)&&(e.y.min=Number.parseFloat(e.y.min)),i.y.min=e.y.min):(EE(e.bottom)&&(e.bottom=Number.parseFloat(e.bottom)),i.y.min=e.bottom),yE(e.right)?yE(e.x.max)?Qa(jl("exception").invalid_maxextent_param):(EE(e.x.max)&&(e.x.max=Number.parseFloat(e.x.max)),i.x.max=e.x.max):(EE(e.right)&&(e.right=Number.parseFloat(e.right)),i.x.max=e.right),yE(e.top)?yE(e.y.max)?Qa(jl("exception").invalid_maxextent_param):(EE(e.y.max)&&(e.y.max=Number.parseFloat(e.y.max)),i.y.max=e.y.max):(EE(e.top)&&(e.top=Number.parseFloat(e.top)),i.y.max=e.top)):Qa("El parámetro no es de un tipo soportado: "+typeof e);(Number.isNaN(i.x.min)||Number.isNaN(i.y.min)||Number.isNaN(i.x.max)||Number.isNaN(i.y.max))&&Qa(jl("exception").invalid_maxextent_param)}return i},Ih=t=>{const e={code:null,units:null};if(xE(t)&&Qa(jl("exception").no_projection),EE(t))if(/^(EPSG:)?\d+\*((d(egrees)?)|(m(eters)?))$/i.test(t)){const i=t.split(/\*/);e.code=i[0],e.units=CE(i[1].substring(0,1))}else Qa("El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: "+M.config.DEFAULT_PROJ);else wE(t)?yE(t.code)||yE(t.units)?Qa("El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: "+M.config.DEFAULT_PROJ):(e.code=t.code,e.units=CE(t.units.substring(0,1))):Qa("El parámetro no es de un tipo soportado: "+typeof t);return"m"!==e.units&&"d"!==e.units&&Qa(`La unidad "${t.units}" del parámetro projection no es válida. Las disponibles son: "m" o "d"`),e},Ch=t=>{let e=t,i=[];xE(e)&&Qa(jl("exception").no_resolutions),EE(e)&&(/^\d+(\.\d+)?([,;]\d+(\.\d+)?)*$/.test(e)?e=e.split(/[,;]+/):Qa(jl("exception").invalid_resolutions_param)),vE(e)?i=e.map(t=>EE(t)?Number.parseFloat(t):t):Qa("El parámetro no es de un tipo soportado: "+typeof e);let r=!0;for(let t=0,e=i.length;t{const e=t;let i;return xE(e)&&Qa(jl("exception").no_zoom),EE(e)?i=Number.parseInt(e,10):"number"==typeof e?i=e:Qa("El parámetro no es de un tipo soportado: "+typeof e),Number.isNaN(i)&&Qa(jl("exception").invalid_zoom_param),i},Lh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(e=>{const i={};return i.type=Kl,i.name=(t=>{let e,i,r;return EE(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)||/^[^*]*\*[^*]+:[^*]+/.test(t)?(i=t.split(/\*/),r=i[3].trim(),e=r.split(":")[1]):/^WFS(T)?\*[^*]*\*[^*]+[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),r=i[1].trim(),e=r.split(":")[1]):wE(t)&&!xE(t.name)?e=t.name.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.url=(t=>{let e;if(EE(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else wE(t)?e=t.url:Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(e),i.namespace=(t=>{let e,i,r;return EE(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)&&(i=t.split(/\*/),r=i[3].trim(),e=r.split(":")[0]):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),r=i[1].trim(),e=r.split(":")[0]):wE(t)&&!xE(t.namespace)?e=t.namespace.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.legend=(t=>{let e,i;return EE(t)?/^WFS(T)?\*[^*]/i.test(t)?(i=t.split(/\*/),e=i[1].trim()):/^[^*]+\*[^*]+:[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):wE(t)&&!xE(t.legend)?e=t.legend.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.cql=(t=>{let e,i;return EE(t)?(/^[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()),/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*/i.test(t)&&(i=t.split(/\*/),e=i[6].trim())):wE(t)&&!xE(t.cql)||!xE(t.ecql)?e=t.cql?t.cql.trim():t.ecql.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(/^(true|false)$/i.test(e)||/^\d\.\d\.\d$/.test(e))&&(e=void 0),e})(e),i.geometry=(t=>{let e,i;return EE(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+/i.test(t)||/^WFS(T)?\*[^*]*\*[^*][^*]+\*[^*]+/i.test(t))&&(i=t.split(/\*/),e=i[4].trim()):wE(t)&&!xE(t.geometry)?e=t.geometry.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.ids=(t=>{let e,i;return EE(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*(.-?)+$/i.test(t)||/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+\*[^*]+\*(.-?)+$/i.test(t))&&(i=t.split(/\*/),e=i[5].trim().split("-")):wE(t)&&!xE(t.ids)?e=t.ids:wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),SE(e)&&(e=null),xE(e)||vE(e)||(e=[e]),e})(e),i.version=(t=>{let e;return EE(t)?/(\d\.\d\.\d)$/.test(t)&&(e=t.match(/\d\.\d\.\d$/)[0]):wE(t)?e=t.version:Qa("El parámetro no es de un tipo soportado: "+typeof t),e})(e),i.style=(t=>{let e,i;return EE(t)?/^WFS(T)?\*.+/i.test(t)&&/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*\*[^*]*/i.test(t)&&(e=t.split(/\*/),i=e[7].trim()):wE(t)&&!xE(t.style)?i=t.style:wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),i})(e),i.options=(t=>{let e;return EE(t)||(wE(t)?e=t.options:Qa("El parámetro no es de un tipo soportado: "+typeof t)),e})(e),i.outputFormat=t.outputFormat,i}),vE(t)||(e=e[0]),e},Mh=t=>{let e=[];xE(t)&&Qa("No ha especificado ningún parámetro");let i=t;return vE(i)||(i=[i]),e=i.map(t=>{const e={};return e.type=ih,e.name=(t=>{let e;if(EE(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)/i);i&&i.length>2&&(e=i[2])}}else wE(t)&&!xE(t.name)?e=t.name.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.url=(t=>{let e;if(EE(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+).*/i);i&&i.length>1&&(e=i[1])}}else wE(t)&&!xE(t.url)?e=t.url.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.mode=(t=>{let e;if(EE(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>3&&(e=i[3])}}else wE(t)&&!xE(t.mode)?e=t.mode.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.projection=(t=>{let e;if(EE(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>4&&(e=i[4])}}else wE(t)&&!xE(t.proj)?e=t.proj.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e}),vE(t)||(e=e[0]),e},Oh=t=>{let e=[];xE(t)&&Qa(jl("exception").no_param);let i=t;return vE(i)||(i=[i]),e=i.map(t=>{const e={};return e.type=$l,e.name=(t=>{let e,i;return EE(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):/^[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[1].trim()):wE(t)&&!xE(t.name)?e=t.name.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.url=(t=>{let e;if(EE(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else wE(t)?e=t.url:Qa("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.matrixSet=(t=>{let e,i;return EE(t)?/^WMTS\*[^*]+\*[^*]+(\*[^*]])*/i.test(t)?(i=t.split(/\*/),e=i[3]?i[3].trim():null):/^[^*]+\*[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):wE(t)&&!xE(t.matrixSet)?e=t.matrixSet.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.legend=(t=>{let e,i;return EE(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[4].trim()):/^[^*]+\*[^*]+\*[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[3].trim()):wE(t)&&!xE(t.legend)?e=t.legend.trim():wE(t)||Qa("El parámetro no es de un tipo soportado: "+typeof t),(SE(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.options=(t=>{let e;return EE(t)||(wE(t)?e=t.options:Qa("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e.transparent=(t=>{let e,i;return EE(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]*\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[5].trim()):/^WMS_FULL\*[^*]+(\*(true|false))?/i.test(t)?(i=t.split(/\*/),e=!0):/^[^*]+\*[^*]+\*[^*]+\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[3].trim()):/^[^*]+\*[^*]+\*(true|false)/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):wE(t)?e=CE(t.transparent):Qa("El parámetro no es de un tipo soportado: "+typeof t),xE(e)||(e=/^1|(true)$/i.test(e)),e})(t),e}),vE(t)||(e=e[0]),e},Rh={kml:dh,mapbox:fh,osm:yh,wfs:Lh,wmc:wh,wms:hh,wmts:Oh,geojson:bh,mvt:Mh},Ph=(t,e)=>{let i=[];xE(t)&&Qa(jl("exception").no_param);let r=t;return vE(r)||(r=[r]),i=r.map(t=>{let i=null;if(wE(t)&&t instanceof Ah)i=t;else{let r=((t,e)=>{let i;if(EE(t))if(/^\s*osm\s*$/i.test(t))i=Jl;else if(/^\s*mapbox\*.+$/i.test(t))i=Ql;else{const r=t.match(/^(\w+)\*.+$/);r&&r.length>1&&(i=nh(r[1]),mE(i)&&Qa("No se reconoce el tipo de capa "+r[1])),mE(i)&&!xE(e)?i=e:mE(i)&&Qa("No se reconoce el tipo de capa "+i)}else wE(t)?xE(t.type)||(i=nh(t.type),mE(i)&&Qa("No se reconoce el tipo de capa "+i)):Qa("El parámetro no es de un tipo soportado: "+typeof t);return xE(i)||xE(e)||i===e||Qa("El tipo de la capa (".concat(i).concat(") no era el esperado (").concat(e).concat(")")),xE(i)&&!xE(e)&&(i=e),i})(t,e);r=CE(r),i=bE(Rh[r])?Rh[r](t):t}return i}),vE(t)||(i=i[0]),i};class Nh extends tl{constructor(t,e){super(e);const i=Ph(t);this.type=i.type,this.url=i.url,this.name=i.name,this.transparent=i.transparent,this.maxExtent_=null,this.zindex_=null,this.minScale_=t.minScale,this.maxScale_=t.maxScale,this.map_=null,this.userMaxExtent=i.maxExtent,this.legend=i.legend,this.layerGroup_=null,this.id=ME(i.name+"_")}getLegend(){return this.getImpl().legend}setLegend(t){this.legend=t,this.getImpl().legend=t}getID(){return this.id}setId(t){if(!xE(this.map_)){const e=this.map_.getLayers().find(e=>{let i=null;return i="WMC"===e.constructor.name?e.layers.find(i=>e.id===t):e.id===t,i});mE(e)?(this.map_.getFeatureHandler().changeNamePrevs(this.id,t),this.id=t):Qa(jl("exception").id_exists)}}get url(){return this.getImpl().url}set url(t){this.getImpl().url=t}get name(){return this.getImpl().name}set name(t){this.getImpl().name=t}get transparent(){return this.getImpl().transparent}set transparent(t){xE(t)?this.getImpl().transparent=!0:EE(t)?this.getImpl().transparent="true"===CE(t):this.getImpl().transparent=t}get displayInLayerSwitcher(){return this.getImpl().displayInLayerSwitcher}set displayInLayerSwitcher(t){xE(t)?this.getImpl().displayInLayerSwitcher=!0:EE(t)?this.getImpl().displayInLayerSwitcher="true"===CE(t):this.getImpl().displayInLayerSwitcher=t}getMaxExtent(){let t=this.userMaxExtent;return xE(t)&&(t=this.map_.userMaxExtent,xE(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise(t=>t(this.getMaxExtent()))}setMaxExtent(t){this.userMaxExtent=t,!vE(t)&&wE(t)&&(this.userMaxExtent=[t.x.min,t.y.min,t.x.max,t.y.max]),bE(this.getImpl().setMaxExtent)&&(xE(t)?this.resetMaxExtent():this.getImpl().setMaxExtent(t))}resetMaxExtent(){this.userMaxExtent=null,this.calculateMaxExtent().then(t=>{bE(this.getImpl().setMaxExtent)&&this.getImpl().setMaxExtent(t)})}setMap(t){this.map_=t}getLayerGroup(){return this.layerGroup_}setLayerGroup(t){this.layerGroup_=t}isVisible(){return mE(this.getImpl().isVisible)&&Qa(jl("exception").isvisible_method),this.getImpl().isVisible()}isQueryable(){return mE(this.getImpl().isQueryable)&&Qa(jl("exception").isqueryable_method),this.getImpl().isQueryable()}setVisible(t){let e=t;xE(e)&&Qa(jl("exception").visibility_param),EE(e)||_E(e)||Qa(jl("exception").visibility_param),mE(this.getImpl().setVisible)&&Qa(jl("exception").setvisible_method),e=/^1|(true)$/i.test(e),this.getImpl().setVisible(e),this.fire(Ml,[{visibility:e,layer:this},this])}inRange(){return mE(this.getImpl().inRange)&&Qa(jl("exception").inrage_method),this.getImpl().inRange()}getLegendURL(){return this.getImpl().getLegendURL()}setLegendURL(t){let e=t;xE(e)&&(e=GE([M.config.THEME_URL,Nh.LEGEND_DEFAULT])),this.getImpl().setLegendURL(e)}getZIndex(){return this.zindex_}setZIndex(t){this.zindex_=t,this.getImpl().setZIndex(t)}getMinScale(){return this.minScale_}setMinScale(t){this.minScale_=t,this.getImpl().setMinScale(t)}getMaxScale(){return this.maxScale_}setMaxScale(t){this.maxScale_=t,this.getImpl().setMaxScale(t)}getOpacity(){return this.getImpl().getOpacity()}setOpacity(t){this.getImpl().setOpacity(t)}refresh(){!mE(this.getImpl().refresh)&&bE(this.getImpl().refresh)&&this.getImpl().refresh()}generateName_(){this.name=ME("layer_","_".concat(this.type))}}Nh.LEGEND_DEFAULT="/img/legend-default.png",Nh.LEGEND_ERROR="/img/legend-error.png";var Ah=Nh,Fh=i(32),kh=i(51),Dh=i(28);const jh="Geometry",Gh="LineString",zh="Polygon",Bh="MultiPoint",Uh="MultiLineString",Vh="MultiPolygon",qh="LinearRing",Yh="Point",Wh="GeometryCollection",Xh="Circle";class Hh extends tn.a{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"==typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new Hh(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(Object(is.c)(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=Object(is.a)(t,ns.a.CHANGE,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?function(t){if("function"==typeof t)return t;let e;if(Array.isArray(t))e=t;else{Object(os.a)("function"==typeof t.getZIndex,41);e=[t]}return function(){return e}}(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}var Zh=Hh;class Kh extends $s{constructor(t,e){super(),e&&!Array.isArray(t[0])?this.setFlatCoordinates(e,t):this.setCoordinates(t,e)}appendPoint(t){this.flatCoordinates?Object(u.d)(this.flatCoordinates,t.getFlatCoordinates()):this.flatCoordinates=t.getFlatCoordinates().slice(),this.changed()}clone(){const t=new Kh(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,i,r){if(r1?o:2,s=s||new Array(o);for(let e=0;e>1;n1?new lc(i,"XY",n):new No(i,"XY",r);default:throw new Error("Invalid geometry type:"+e)}}cc.prototype.getEndss=cc.prototype.getEnds,cc.prototype.getFlatCoordinates=cc.prototype.getOrientedFlatCoordinates;var dc=cc;class gc extends Zs{constructor(t){super(),this.geometries_=t||null,this.changeEventsKeys_=[],this.listenGeometriesChange_()}unlistenGeometriesChange_(){this.changeEventsKeys_.forEach(is.c),this.changeEventsKeys_.length=0}listenGeometriesChange_(){if(this.geometries_)for(let t=0,e=this.geometries_.length;t=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||Object(pt.t)(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],r=t.slice();r[e]=r[0]+i;for(let i=1;i{const i=Object(h.q)(e,"EPSG:4326"),r=[];let n={};return t.forEach(e=>{const s=[];if(Array.isArray(e.geometry.coordinates[0])&&t.length>1)e.geometry.coordinates.forEach(t=>{if(!Number.isFinite(t[0])&&Array.isArray(t))s.push(t.map(t=>{const e=[];return Number.isFinite(t[0])?e.push(i(t)):t.forEach(t=>{e.push(i(t))}),e})),n={...e,geometry:{type:e.geometry.type,coordinates:s}};else{const r=i(t);s.push(r),n={...e,geometry:{type:e.geometry.type,coordinates:s}}}}),r.push(n);else if(3===e.geometry.coordinates.length)e.geometry.coordinates.pop(),n={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates)}},r.push(n);else if(1===t.length)if(e.geometry.coordinates[0].length>2){const t=e.geometry.coordinates[0].map(t=>i(t));n={...e,geometry:{type:e.geometry.type,coordinates:t}},r.push(n)}else n={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates[0])}},r.push(n);else if(Number.isFinite(e.geometry.coordinates[0])){const t=i(e.geometry.coordinates);n={...e,geometry:{type:e.geometry.type,coordinates:t}},r.push(n)}}),r};class vc{static generateResolutions(t,e,i,r){let n,s,o;const a=[];xE(e)&&(n=t.getExtent());const l=Object(pt.G)(n)/256;xE(i)&&(s=0),xE(r)&&(o=28);const h=o-s;for(let t=0;tt instanceof pS?t.getImpl().getOLFeature():t);let r=i.map(t=>t.getGeometry().getExtent().slice(0));if(1===r.length){const t=i[0].getGeometry();if("Point"===t.getType()){const i=((t,e)=>e/Object(h.o)(t).getMetersPerUnit())(e,1e3),n=t.getCoordinates()[0],s=t.getCoordinates()[1];r=[[n-i,s-i,n+i,s+i]]}}return 0===r.length?null:r.reduce((t,e)=>Object(pt.q)(t,e))}static getCentroidCoordinate(t){let e,i,r,n,s,o;return t.getType()===Yh?e=t.getCoordinates():t.getType()===Gh||t.getType()===qh?(i=t.getCoordinates(),r=Math.floor(i.length/2),e=i[r]):t.getType()===zh?e=vc.getCentroidCoordinate(t.getInteriorPoint()):t.getType()===Bh?(n=t.getPoints(),r=Math.floor(n.length/2),e=vc.getCentroidCoordinate(n[r])):t.getType()===Uh?(s=t.getLineStrings(),r=Math.floor(s.length/2),e=vc.getCentroidCoordinate(s[r])):t.getType()===Vh?(n=t.getInteriorPoints(),e=vc.getCentroidCoordinate(n)):t.getType()===Xh?e=t.getCenter():t.getType()===Wh&&(o=t.getGeometries(),r=Math.floor(o.length/2),e=vc.getCentroidCoordinate(o[r])),e}static transformExtent(t,e,i){let r;const n=EE(e)?Object(h.o)(e):e,s=EE(i)?Object(h.o)(i):i,o=n.getExtent();return r=t.every((t,e)=>{let i=!1;return i=e<2?t<=o[e]:t>=o[e],i})?s.getExtent():Object(h.A)(t,n,s),r}static olRenderFeature2olFeature(t,e,i){let r;if(!xE(t)){const n=t.getId(),s=t.getProperties();let o;if(xE(e)&&xE(e))o=this.getGeometryFromRenderFeature(t.getGeometry());else{const r=e.getExtent(),n=e.getWorldExtent();if(!xE(r)&&!xE(n)){const r=this.cloneOLRenderFeature(t);r.transform(e,i),o=this.getGeometryFromRenderFeature(r.getGeometry())}}r=new Zh,xE(n)?r.setId(ME("mapea_feature_")):r.setId(n),r.setProperties(s,!0),r.setGeometry(o)}return r}static cloneOLRenderFeature(t){const e=t.getType(),i=t.getFlatCoordinates(),r=t.getEnds(),n=t.getProperties(),s=t.getId(),o=[...i],a=Object.assign(n),l=[...r];return new dc(e,o,l,a,s)}static getGeometryFromRenderFeature(t){let e;const i=t.getFlatCoordinates(),r=t.getEnds(),n=t.getEndss();switch(t.getType()){case"Point":e=new xo(i);break;case"LineString":e=new rc(i);break;case"LinearRing":e=new yo(i);break;case"Polygon":e=new No(i);break;case"MultiPoint":e=new $h(i);break;case"MultiLineString":e=new sc(i,void 0,r);break;case"MultiPolygon":e=new lc(i,void 0,n);break;case"GeometryCollection":const s=t.getGeometries();e=new fc(s);break;case"Circle":const o=t.getFlatInteriorPoint();e=new _c(o);break;default:e=null}return e}static getWMTSScale(t,e){const i=t.getProjection().code,r=Object(h.o)(i).getMetersPerUnit(),n=t.getMapImpl().getSize(),s=n[0],o=t.getMapImpl().getView().calculateExtent(n);let a=r*(o[2]-o[0])/s*1e3/.28;return!0==!e&&(a=a>=1e3&&a<=95e4?1e3*Math.round(a/1e3):a>=95e4?1e6*Math.round(a/1e6):Math.round(a)),Math.trunc(a)}}var xc=vc;var bc=class extends Wa{constructor(t={},e={}){super(t),this.vendorOptions_=e,this.map=null,this.ol3Layer=null,this.options=t,this.visibility=!1!==this.options.visibility,this.displayInLayerSwitcher=!1!==this.options.displayInLayerSwitcher,this.zIndex_=null,this.minScale_=null,this.maxScale_=null,this.opacity_=this.options.opacity||1,this.legendUrl_=GE([M.config.THEME_URL,Ah.LEGEND_DEFAULT])}isVisible(){let t=!1;return t=xE(this.ol3Layer)?this.visibility:this.ol3Layer.getVisible(),t}isQueryable(){return!1}inRange(){let t=!1;if(!xE(this.ol3Layer)){const e=this.map.getMapImpl().getView().getResolution(),i=this.ol3Layer.getMaxResolution();t=e>=this.ol3Layer.getMinResolution()&&e<=i}return t}setVisible(t){this.visibility=t,xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}getZIndex(){return xE(this.getOLLayer())||(this.zIndex_=this.getOLLayer().getZIndex()),this.zIndex_}setZIndex(t){this.zIndex_=t,xE(this.getOLLayer())||this.getOLLayer().setZIndex(t)}getMinScale(){const t=this.map.getProjection().units;return xE(this.getOLLayer())||xE(t)||(this.minScale_=FE(this.getOLLayer().getMinResolution(),t)),this.minScale_}setMinScale(t){this.minScale_=t;const e=this.map.getProjection().units,i=NE(t,e);xE(this.getOLLayer())||xE(i)||xE(e)||this.getOLLayer().setMinResolution(i)}getMaxScale(){const t=this.map.getProjection().units;return xE(this.getOLLayer())||xE(t)||(this.maxScale_=FE(this.getOLLayer().getMaxResolution(),t)),this.maxScale_}setMaxScale(t){this.maxScale_=t;const e=this.map.getProjection().units,i=NE(t,e);xE(this.getOLLayer())||xE(i)||xE(e)||this.getOLLayer().setMaxResolution(i)}getOpacity(){return xE(this.getOLLayer())||(this.opacity_=this.getOLLayer().getOpacity()),this.opacity_}setOpacity(t){this.opacity_=t,xE(this.getOLLayer())||this.getOLLayer().setOpacity(t)}getOL3Layer(){return this.ol3Layer}getOLLayer(){return this.ol3Layer}setOL3Layer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}setOLLayer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}getMap(){return this.map}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}getNumZoomLevels(){return M.config.ZOOM_LEVELS}unselectFeatures(t,e,i){}selectFeatures(t,e,i){}};var wc=class{constructor(t,e,i){this.capabilities_=t,this.projection_=i,this.serviceUrl_=e}get capabilities(){return this.capabilities_}get projection(){return this.projection_}get serviceUrl(){return this.serviceUrl_}getLayerExtent(t,e){const i=this.capabilities_.Capability.Layer,r=this.getExtentRecursive_(i,t,e);return this.transformExtent(r)}getExtentRecursive_(t,e,i){let r,n=null;if(!xE(t))if(vE(t))for(r=0;rt.crs===e);if(xE(i)){const e=t.BoundingBox[0];this.capabilitiesProj=e.crs;const i=Object(h.o)(e.crs),r=Object(h.o)(this.projection_.code);n=xc.transformExtent(e.extent,i,r)}else this.capabilitiesProj=i.crs,n=i.extent}}else mE(t.Layer)||(n=this.getExtentRecursive_(t.Layer,e,i));return n}getLayers(){const t=this.capabilities_.Capability.Layer;return this.getLayersRecursive_(t)}getLayersRecursive_(t){let e=[];return xE(t.Layer)?vE(t)?t.forEach(t=>{e=e.concat(this.getLayersRecursive_(t))}):e.push(new Du({url:this.serviceUrl_,name:t.Name})):e=this.getLayersRecursive_(t.Layer),e}transformExtent(t){let e=t;if("1.3.0"===this.capabilities_.version&&EE(this.capabilitiesProj)){const i=Object(h.o)(this.capabilitiesProj).getAxisOrientation();Array.isArray(e)&&"ne"===i.substr(0,2)&&(e=[t[1],t[0],t[3],t[2]])}return e}};const Ec=[null,"http://www.opengis.net/wms"],Sc=L(Ec,{Service:w((function(t,e){return R({},Cc,t,e)})),Capability:w((function(t,e){return R({},Ic,t,e)}))}),Ic=L(Ec,{Request:w((function(t,e){return R({},Ac,t,e)})),Exception:w((function(t,e){return R([],Oc,t,e)})),Layer:w((function(t,e){const i=R({},Rc,t,e);if(void 0===i.Layer)return Object.assign(i,Bc(t,e));return i}))});const Cc=L(Ec,{Name:w(X),Title:w(X),Abstract:w(X),KeywordList:w(Yc),OnlineResource:w(j),ContactInformation:w((function(t,e){return R({},Tc,t,e)})),Fees:w(X),AccessConstraints:w(X),LayerLimit:w(Y),MaxWidth:w(Y),MaxHeight:w(Y)}),Tc=L(Ec,{ContactPersonPrimary:w((function(t,e){return R({},Lc,t,e)})),ContactPosition:w(X),ContactAddress:w((function(t,e){return R({},Mc,t,e)})),ContactVoiceTelephone:w(X),ContactFacsimileTelephone:w(X),ContactElectronicMailAddress:w(X)}),Lc=L(Ec,{ContactPerson:w(X),ContactOrganization:w(X)}),Mc=L(Ec,{AddressType:w(X),Address:w(X),City:w(X),StateOrProvince:w(X),PostCode:w(X),Country:w(X)}),Oc=L(Ec,{Format:v(X)}),Rc=L(Ec,{Name:w(X),Title:w(X),Abstract:w(X),KeywordList:w(Yc),CRS:b(X),EX_GeographicBoundingBox:w((function(t,e){const i=R({},Nc,t,e);if(!i)return;const r=i.westBoundLongitude,n=i.southBoundLatitude,s=i.eastBoundLongitude,o=i.northBoundLatitude;if(void 0===r||void 0===n||void 0===s||void 0===o)return;return[r,n,s,o]})),BoundingBox:b((function(t,e){const i=[q(t.getAttribute("minx")),q(t.getAttribute("miny")),q(t.getAttribute("maxx")),q(t.getAttribute("maxy"))],r=[q(t.getAttribute("resx")),q(t.getAttribute("resy"))];return{crs:t.getAttribute("CRS"),extent:i,res:r}})),Dimension:b((function(t,e){return{name:t.getAttribute("name"),units:t.getAttribute("units"),unitSymbol:t.getAttribute("unitSymbol"),default:t.getAttribute("default"),multipleValues:B(t.getAttribute("multipleValues")),nearestValue:B(t.getAttribute("nearestValue")),current:B(t.getAttribute("current")),values:X(t)}})),Attribution:w((function(t,e){return R({},Pc,t,e)})),AuthorityURL:b((function(t,e){const i=Uc(t,e);if(i)return i.name=t.getAttribute("name"),i;return})),Identifier:b(X),MetadataURL:b((function(t,e){const i=Uc(t,e);if(i)return i.type=t.getAttribute("type"),i;return})),DataURL:b(Uc),FeatureListURL:b(Uc),Style:b((function(t,e){return R({},jc,t,e)})),MinScaleDenominator:w(V),MaxScaleDenominator:w(V),Layer:b(Bc)}),Pc=L(Ec,{Title:w(X),OnlineResource:w(j),LogoURL:w(qc)}),Nc=L(Ec,{westBoundLongitude:w(V),eastBoundLongitude:w(V),southBoundLatitude:w(V),northBoundLatitude:w(V)}),Ac=L(Ec,{GetCapabilities:w(Vc),GetMap:w(Vc),GetFeatureInfo:w(Vc)}),Fc=L(Ec,{Format:b(X),DCPType:b((function(t,e){return R({},kc,t,e)}))}),kc=L(Ec,{HTTP:w((function(t,e){return R({},Dc,t,e)}))}),Dc=L(Ec,{Get:w(Uc),Post:w(Uc)}),jc=L(Ec,{Name:w(X),Title:w(X),Abstract:w(X),LegendURL:b(qc),StyleSheetURL:w(Uc),StyleURL:w(Uc)}),Gc=L(Ec,{Format:w(X),OnlineResource:w(j)}),zc=L(Ec,{Keyword:v(X)});function Bc(t,e){const i=e[e.length-1],r=R({},Rc,t,e);if(!r)return;let n=B(t.getAttribute("queryable"));void 0===n&&(n=i.queryable),r.queryable=void 0!==n&&n;let s=W(t.getAttribute("cascaded"));void 0===s&&(s=i.cascaded),r.cascaded=s;let o=B(t.getAttribute("opaque"));void 0===o&&(o=i.opaque),r.opaque=void 0!==o&&o;let a=B(t.getAttribute("noSubsets"));void 0===a&&(a=i.noSubsets),r.noSubsets=void 0!==a&&a;let l=q(t.getAttribute("fixedWidth"));l||(l=i.fixedWidth),r.fixedWidth=l;let h=q(t.getAttribute("fixedHeight"));h||(h=i.fixedHeight),r.fixedHeight=h;["Style","CRS","AuthorityURL"].forEach((function(t){if(t in i){const e=r[t]||[];r[t]=e.concat(i[t])}}));return["EX_GeographicBoundingBox","BoundingBox","Dimension","Attribution","MinScaleDenominator","MaxScaleDenominator"].forEach((function(t){if(!(t in r)){const e=i[t];r[t]=e}})),r}function Uc(t,e){return R({},Gc,t,e)}function Vc(t,e){return R({},Fc,t,e)}function qc(t,e){const i=Uc(t,e);if(i){const e=[W(t.getAttribute("width")),W(t.getAttribute("height"))];return i.size=e,i}}function Yc(t,e){return R([],zc,t,e)}var Wc=class extends D{constructor(){super(),this.version=void 0}readFromNode(t){this.version=t.getAttribute("version").trim();const e=R({version:this.version},Sc,t,[]);return e||null}};const Xc=["SRS","BoundingBox","ScaleHint","LatLonBoundingBox"],Hc=(t,e)=>{null!==t&&Xc.forEach(i=>{if(r=e,n=i,!(Array.prototype.filter.call(r.children,t=>t.tagName===n).length>0)){Array.prototype.filter.call(t.children,t=>t.tagName===i).forEach(t=>{const i=t.cloneNode(!0);e.appendChild(i)})}var r,n})},Zc=(t,e=!0,i={},r=null)=>{let n=i,s=t;if(!0===e&&(s=t.querySelector("Layer")),null!==s){Hc(r,s);const t=s.querySelector("Name").innerHTML,e=s.children;Array.prototype.forEach.call(e,t=>{"Layer"===t.tagName&&(n=Zc(t,!1,n,s))}),n[t]=s}return n},Kc=(t,e)=>{const i=t,r=e[i.Name];if(xE(r))vE(i.Layer)&&i.Layer.forEach(t=>Kc(t,e));else{const t=r.querySelector("SRS");if(null!==t){const e=t.innerHTML;i.SRS=[e]}}},$c=(t,e)=>{const i=e[t.Name];if(xE(i))vE(t.Layer)&&t.Layer.forEach(t=>$c(t,e));else if(vE(t.BoundingBox)){const e=Array.prototype.filter.call(i.children,t=>"Layer"===t.tagName);let r=Array.prototype.map.call(i.children,t=>t);r=r.filter(t=>["BoundingBox"].includes(t.tagName)),0===r.length&&e.length>0?e.forEach(e=>$c(t,{[t.Name]:e})):t.BoundingBox.forEach((t,e)=>{const i=t;if(null===i.crs){const t=r[e];if(!xE(t)){const e=t.getAttribute("SRS");xE(e)||(i.crs=e)}}})}},Jc=(t,e)=>{const i=t,r=e[t.Name];if(xE(r))vE(t.Layer)&&t.Layer.forEach(t=>Jc(t,e));else{i.ScaleHint=[];let t=Array.prototype.map.call(r.children,t=>t);t=t.filter(t=>"ScaleHint"===t.tagName),t.forEach(t=>{const e={minScale:parseFloat(t.getAttribute("min")),maxScale:parseFloat(t.getAttribute("max"))};i.ScaleHint.push(e)})}},Qc=(t,e)=>{const i=t,r=e[t.Name];if(xE(r))vE(i.Layer)&&i.Layer.forEach(t=>Qc(t,e));else{i.LatLonBoundingBox=[];let t=Array.prototype.map.call(r.children,t=>t);t=t.filter(t=>"LatLonBoundingBox"===t.tagName),t.forEach(t=>{const e={crs:"EPSG:4326",extent:[parseFloat(t.getAttribute("minx")),parseFloat(t.getAttribute("miny")),parseFloat(t.getAttribute("maxx")),parseFloat(t.getAttribute("maxy"))]};i.LatLonBoundingBox.push(e)})}},tu=[Kc,$c,Jc,Qc,(t,e)=>{const i=t;xE(i.BoundingBox)&&!xE(i.LatLonBoundingBox)&&(i.BoundingBox=i.LatLonBoundingBox)},(t,e)=>{const i=t;xE(i.MaxScaleDenominator)&&!xE(i.ScaleHint)&&(i.MaxScaleDenominator=i.ScaleHint[0].maxScale)},(t,e)=>{const i=t;xE(i.MinScaleDenominator)&&!xE(i.ScaleHint)&&(i.MinScaleDenominator=i.ScaleHint[0].minScale)}],eu=(t,e)=>{vE(t)?t.forEach(t=>{eu(t,e)}):wE(t)&&(((t,e)=>{tu.forEach(i=>{i(t,e)})})(t,e),eu(t.Layer,e))};var iu=class extends Wc{customRead(t){const e=this.read(t),i=Zc(t),r=e.Capability;return xE(r)||xE(r.Layer)||eu(r.Layer,i),e}},ru=i(55),nu=i(57),su=i(63),ou=i(4),au="tileloadstart",lu="tileloadend",hu="tileloaderror",cu=i(38),uu=i(17);function du(t,e){const i=/\{z\}/g,r=/\{x\}/g,n=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(r,o[1].toString()).replace(n,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);Object(os.a)(i,55);return(i.getHeight()-o[2]-1).toString()}))}}function gu(t,e){const i=t.length,r=new Array(i);for(let n=0;nthis.getTileInternal(t,e,i,r,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return f.key=u,l?(f.interimTile=l,f.refreshInterimChain(),o.replace(c,f)):o.set(c,f),f}getTileInternal(t,e,i,r,n){let s=null;const o=Object(uu.e)(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,r,n,a),l.getState()==ou.a.IDLE?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,r,n,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=Object(h.o)(t);if(i){const t=Object(dn.b)(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}};const wu="1.3.0";function Eu(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const r=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+r}var Su=i(35);var Iu=class extends bu{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=Object(pt.k)(),this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,r){const n=Object(h.o)(i),s=this.getProjection();let o=this.getTileGrid();o||(o=this.getTileGridForProjection(n));const a=o.getZForResolution(e,this.zDirection),l=o.getTileCoordForCoordAndZ(t,a);if(o.getResolutions().length<=l[0])return;let c=o.getResolution(l[0]),u=o.getTileCoordExtent(l,this.tmpExtent_),d=Object(ja.d)(o.getTileSize(l[0]),this.tmpSize);const g=this.gutter_;0!==g&&(d=Object(ja.a)(d,g,this.tmpSize),u=Object(pt.d)(u,c*g,u)),s&&s!==n&&(c=Object(Su.b)(s,n,t,c),u=Object(h.A)(u,n,s),t=Object(h.z)(t,n,s));const p={SERVICE:"WMS",VERSION:wu,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(p,this.params_,r);const f=Math.floor((t[0]-u[0])/c),m=Math.floor((u[3]-t[1])/c);return p[this.v13_?"I":"X"]=f,p[this.v13_?"J":"Y"]=m,this.getRequestUrl_(l,d,u,1,s||n,p)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:wu,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,r=28e-5;i.SCALE=t*e/r}return Object.assign(i,e),Eu(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,r,n,s){const o=this.urls;if(!o)return;if(s.WIDTH=e[0],s.HEIGHT=e[1],s[this.v13_?"CRS":"SRS"]=n.getCode(),"STYLES"in this.params_||(s.STYLES=""),1!=r)switch(this.serverType_){case"geoserver":const t=90*r+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*r;break;case"carmentaserver":case"qgis":s.DPI=90*r;break;default:Object(os.a)(!1,52)}const a=n.getAxisOrientation(),l=i;if(this.v13_&&"ne"==a.substr(0,2)){let t;t=i[0],l[0]=i[1],l[1]=t,t=i[2],l[2]=i[3],l[3]=t}let h;if(s.BBOX=l.join(","),1==o.length)h=o[0];else{h=o[Object(Fs.e)(Object(uu.f)(t),o.length)]}return Eu(h,s)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||wu;this.v13_=Object(G.a)(t,"1.3")>=0}tileUrlFunction(t,e,i){let r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),r.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const n=r.getResolution(t[0]);let s=r.getTileCoordExtent(t,this.tmpExtent_),o=Object(ja.d)(r.getTileSize(t[0]),this.tmpSize);const a=this.gutter_;0!==a&&(o=Object(ja.a)(o,a,this.tmpSize),s=Object(pt.d)(s,n*a,s)),1!=e&&(o=Object(ja.c)(o,e,this.tmpSize));const l={SERVICE:"WMS",VERSION:wu,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};return Object.assign(l,this.params_),this.getRequestUrl_(t,o,s,e,i,l)}};class Cu extends Iu{constructor(t={}){const e=t;xE(t.tileLoadFunction)&&(e.tileLoadFunction=Cu.tileLoadFunction),super(e)}changed(){xE(this.tileCache)||this.tileCache.clear(),super.changed()}static tileLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+="&ticket="+M.config.ticket)}}var Tu=Cu,Lu=i(27),Mu=i(44);const Ou=[101,101];class Ru extends Lu.a{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Lu.b,this.params_=Object.assign({},t.params),this.v13_=!0,this.updateV13_(),this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getFeatureInfoUrl(t,e,i,r){if(void 0===this.url_)return;const n=Object(h.o)(i),s=this.getProjection();s&&s!==n&&(e=Object(Su.b)(s,n,t,e),t=Object(h.z)(t,n,s));const o=Object(pt.z)(t,e,0,Ou),a={SERVICE:"WMS",VERSION:wu,REQUEST:"GetFeatureInfo",FORMAT:"image/png",TRANSPARENT:!0,QUERY_LAYERS:this.params_.LAYERS};Object.assign(a,this.params_,r);const l=Object(Fs.c)((t[0]-o[0])/e,4),c=Object(Fs.c)((o[3]-t[1])/e,4);return a[this.v13_?"I":"X"]=l,a[this.v13_?"J":"Y"]=c,this.getRequestUrl_(o,Ou,1,s||n,a)}getLegendUrl(t,e){if(void 0===this.url_)return;const i={SERVICE:"WMS",VERSION:wu,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,r=28e-5;i.SCALE=t*e/r}return Object.assign(i,e),Eu(this.url_,i)}getParams(){return this.params_}getImageInternal(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),1==i||this.hidpi_&&void 0!==this.serverType_||(i=1);const n=e/i,s=Object(pt.x)(t),o=Object(Fs.a)(Object(pt.G)(t)/n,4),a=Object(Fs.a)(Object(pt.A)(t)/n,4),l=Object(pt.z)(s,n,0,[o,a]),h=Object(Fs.a)(this.ratio_*Object(pt.G)(t)/n,4),c=Object(Fs.a)(this.ratio_*Object(pt.A)(t)/n,4),u=Object(pt.z)(s,n,0,[h,c]),d=this.image_;if(d&&this.renderedRevision_==this.getRevision()&&d.getResolution()==e&&d.getPixelRatio()==i&&Object(pt.h)(d.getExtent(),l))return d;const g={SERVICE:"WMS",VERSION:wu,REQUEST:"GetMap",FORMAT:"image/png",TRANSPARENT:!0};Object.assign(g,this.params_),this.imageSize_[0]=Object(Fs.f)(Object(pt.G)(u)/n,4),this.imageSize_[1]=Object(Fs.f)(Object(pt.A)(u)/n,4);const p=this.getRequestUrl_(u,this.imageSize_,i,r,g);return this.image_=new Mu.a(u,e,i,p,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(ns.a.CHANGE,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,r,n){if(Object(os.a)(void 0!==this.url_,9),n[this.v13_?"CRS":"SRS"]=r.getCode(),"STYLES"in this.params_||(n.STYLES=""),1!=i)switch(this.serverType_){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in n?n.FORMAT_OPTIONS+=";dpi:"+t:n.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":n.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":n.DPI=90*i;break;default:Object(os.a)(!1,8)}n.WIDTH=e[0],n.HEIGHT=e[1];const s=r.getAxisOrientation();let o;return o=this.v13_&&"ne"==s.substr(0,2)?[t[1],t[0],t[3],t[2]]:t,n.BBOX=o.join(","),Eu(this.url_,n)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.image_=null,this.changed()}updateV13_(){const t=this.params_.VERSION||wu;this.v13_=Object(G.a)(t,"1.3")>=0}}var Pu=Ru;var Nu=class extends Pu{constructor(t={}){const e=t;super(e),this.imageLoadFunction_=e.imageLoadFunction||this.imageLoadFunction}changed(){super.changed()}imageLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+="&ticket="+M.config.ticket)}};class Au extends bc{constructor(t={},e){super(t,e),this.facadeLayer_=null,this.options=t,this.layers=[],this.displayInLayerSwitcher_=!0,this.getCapabilitiesPromise=null,this.extentPromise=null,this.extent=null,this.resolutions_=null,this.extentProj_=null,!1===this.options.visibility&&(this.visibility=!1),xE(this.tiled)&&(this.tiled=!0!==this.options.singleTile),xE(this.options.numZoomLevels)&&(this.options.numZoomLevels=M.config.ZOOM_LEVELS),xE(this.options.animated)&&(this.options.animated=!1),this.styles=this.options.styles||"",this.sldBody=t.sldBody,this.zIndex_=qu.Z_INDEX.WMS}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter(t=>!t.equals(this)&&t.isVisible()).forEach(t=>t.setVisible(!1)),xE(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),xE(e)||this.map.setZoom(e)}else xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}isQueryable(){return!1!==this.options.queryable}addTo(t){if(this.map=t,this.fire(el),!yE(this.options)&&!yE(this.options.minScale)&&!yE(this.options.maxScale)){const t=this.map.getProjection().units;this.options.minResolution=NE(this.options.minScale,t),this.options.maxResolution=NE(this.options.maxScale,t)}xE(this.name)?this.addAllLayers_():this.addSingleLayer_(),this.legendUrl_===GE([M.config.THEME_URL,Ah.LEGEND_DEFAULT])&&(this.legendUrl_=LE(this.url,{SERVICE:"WMS",VERSION:this.version,REQUEST:"GetLegendGraphic",LAYER:this.name,FORMAT:"image/png",STYLE:this.styles[0]||"",SLD_VERSION:"1.1.0"}))}setResolutions(t){this.resolutions_=t,this.facadeLayer_.calculateMaxExtent().then(e=>{if(!xE(this.ol3Layer)){const i=this.options.minResolution,r=this.options.maxResolution,n=this.createOLSource_(t,i,r,e);this.ol3Layer.setSource(n),this.ol3Layer.setExtent(e)}})}addSingleLayer_(){this.facadeLayer_.calculateMaxExtent().then(t=>{const e=this.options.minResolution,i=this.options.maxResolution,r=this.opacity_,n=this.zIndex_,s=this.visibility&&!1!==this.options.visibility;let o=this.map.getResolutions();if(xE(o)&&!xE(this.resolutions_))o=this.resolutions_;else if(xE(o)){const r=this.getNumZoomLevels(),n=this.map.getMapImpl().getSize(),s=this.map.getProjection().units;o=xE(e)||xE(i)?AE(t,n,r,s):PE(e,i,r)}const a=this.createOLSource_(o,e,i,t);!0===this.tiled?this.ol3Layer=new Fh.a(BE({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:r,zIndex:n},this.vendorOptions_,!0)):this.ol3Layer=new kh.a(BE({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:r,zIndex:n},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.facadeLayer_.fire(bl),this.isVisible()&&!this.inRange()?this.setVisible(!1):this.setVisible(this.visibility),null!==n&&this.setZIndex(n),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const l=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",l)})}createOLSource_(t,e,i,r){let n=this.vendorOptions_.source;if(xE(this.vendorOptions_.source)){const s=this.options.crossOrigin,o={LAYERS:this.name,TILED:!0,VERSION:this.version,TRANSPARENT:this.transparent,FORMAT:"image/png",STYLES:this.styles};xE(this.sldBody)||(o.SLD_BODY=this.sldBody),xE(this.options.params)||Object.keys(this.options.params).forEach(t=>{o[t.toUpperCase()]=this.options.params[t]});const a=this.opacity_,l=this.zIndex_;if(!0===this.tiled){const h=Object(pt.v)(r),c={url:this.url,tileGrid:new Dh.a({resolutions:t,extent:r,origin:h}),extent:r,minResolution:e,maxResolution:i,opacity:a,zIndex:l};mE(s)||(c.crossOrigin=s),n=new Tu(c),n.updateParams(o)}else{const h={url:this.url,resolutions:t,extent:r,minResolution:e,maxResolution:i,opacity:a,zIndex:l};mE(s)||(h.crossOrigin=s),n=new Nu(h),n.updateParams(o)}}return n}addAllLayers_(){this.getCapabilities().then(t=>{t.getLayers().forEach(t=>{const e=new Du({url:this.url,name:t.name,version:t.version,tiled:this.tiled},this.vendorOptions_);this.layers.push(e)}),this.map.addWMS(this.layers);let e=this.layers.length;this.layers.forEach(t=>{t.setZIndex(qu.Z_INDEX.WMS+e),e+=1})})}getExtent(){const t=Object(h.o)(this.map.getProjection().code);return this.extentPromise=new Promise((e,i)=>{xE(this.extent_)?this.getCapabilities().then(i=>{this.extent_=i.getLayerExtent(this.name),this.extentProj_=t,e(this.extent_)}):(this.extent_=xc.transformExtent(this.extent_,this.extentProj_,t),this.extentProj_=t,e(this.extent_))}),this.extentPromise}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}updateMinMaxResolution(t){xE(this.options.minResolution)||(this.options.minResolution=NE(this.options.minScale,t.units),this.ol3Layer.setMinResolution(this.options.minResolution)),xE(this.options.maxResolution)||(this.options.maxResolution=NE(this.options.maxScale,t.units),this.ol3Layer.setMaxResolution(this.options.maxResolution))}setMaxExtent(t){const e=this.options.minResolution,i=this.options.maxResolution,r=this.getOLLayer();if(!xE(r)&&(r.setExtent(t),!0===this.tiled)){let n=this.map.getResolutions();if(xE(n)&&!xE(this.resolutions_)&&(n=this.resolutions_),!xE(n)){const s=this.createOLSource_(n,e,i,t);r.setSource(s)}}}getNumZoomLevels(){return this.options.numZoomLevels}getLayers(){return this.layers}getCapabilities(){if(xE(this.getCapabilitiesPromise)){const t=this.url,e=this.version,i=this.map.getProjection(),r=this.map.getTicket();this.getCapabilitiesPromise=new Promise((n,s)=>{const o=OE(t,e,r);pE(o).then(e=>{if("xml"in e&&!xE(e.xml)){const r=e.xml,s=(new iu).customRead(r),o=new wc(s,t,i);n(o)}else pE(o,"",{ticket:!1}).then(e=>{const r=e.xml,s=(new iu).customRead(r),o=new wc(s,t,i);n(o)})})})}return this.getCapabilitiesPromise}getLegendCapabilities(){return this.getCapabilities().then(t=>{let e="",i=t.capabilities.Capability.Layer.Layer;return i=i.length>1?i.find(t=>t.Name===this.name):1===i.length&&i[0].Name!==this.name?i[0].Layer.find(t=>t.Name===this.name):i[0],mE(i.Style)||mE(i.Style[0].LegendURL)||mE(i.Style[0].LegendURL[0].OnlineResource)||(e=i.Style[0].LegendURL[0].OnlineResource),e})}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}refresh(){const t=this.getOLLayer();xE(t)||t.getSource().updateParams({time:Date.now()})}getExtentFromCapabilities(t){const e=this.facadeLayer_.name,i=this.map.getProjection().code;return t.getLayerExtent(e,i)}setFacadeObj(t){this.facadeLayer_=t}getStyles(){return this.getOLLayer().getSource().getParams().STYLES}setStyles(t){const e=this.getOLLayer();xE(e)||e.getSource().updateParams({STYLES:t})}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),xE(this.layers)||(this.layers.map(this.map.removeLayers,this.map),this.layers.length=0)}equals(t){let e=!1;return t instanceof Au&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=!0===this.tiled?new Fh.a(e):new kh.a(e)}return t}}Au.LEGEND_IMAGE=null;var Fu=Au;class ku extends Ah{constructor(t,e={},i){mE(Fu)&&Qa(jl("exception").wms_method),xE(t)&&Qa(jl("exception").no_param);const r=Ph(t,Zl),n=r.styles||"";xE(n)||Object.defineProperty(e,"styles",{value:n,writable:!0});super(r,new Fu(e,i)),this.legend=r.legend,this.cql=r.cql,this.version=r.version,xE(r.tiled)||(this.tiled=r.tiled),this.transparent=r.transparent,this.styles=n,this.options=e,this.wmcParent_=null,this.getCapabilitiesPromise_=null,this._updateNoCache()}get type(){return Zl}set type(t){mE(t)||xE(t)||t===Zl||Qa("El tipo de capa debe ser '".concat(Zl).concat("' pero se ha especificado '").concat(t).concat("'"))}get legend(){return this.getImpl().legend}set legend(t){xE(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get tiled(){return this.getImpl().tiled}set tiled(t){xE(t)?this.getImpl().tiled=!0:EE(t)?this.getImpl().tiled="true"===CE(t):this.getImpl().tiled=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get version(){return this.getImpl().version}set version(t){xE(t)?this.getImpl().version="1.3.0":this.getImpl().version=t}getStyles(){return this.getImpl().getStyles()}setStyles(t){this.styles=t,this.getImpl().setStyles(t)}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}getMaxExtent(t){let e;if(xE(this.userMaxExtent))if(xE(this.options.wmcMaxExtent))if(xE(this.map_.userMaxExtent)){const e=this.map_.getWMC().find(t=>t.selected);xE(e)?this.getCapabilities().then(e=>{const i=this.getImpl().getExtentFromCapabilities(e);if(xE(i)){const t=this.map_.getProjection().getExtent();this.maxExtent_=t}else this.maxExtent_=i;bE(t)&&t(this.maxExtent_)}):e.calculateMaxExtent().then(e=>{this.maxExtent_=e,bE(t)&&t(this.maxExtent_)})}else this.maxExtent_=this.map_.userMaxExtent,e=this.maxExtent_;else this.maxExtent_=this.options.wmcMaxExtent,e=this.maxExtent_;else e=this.userMaxExtent;return!xE(e)&&bE(t)?t(e):xE(e)&&(e=this.maxExtent_),e}calculateMaxExtent(){return new Promise(t=>this.getMaxExtent(t))}getCapabilities(){return xE(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}getLegendCapabilities(){return this.getImpl().getLegendCapabilities()}getNoCacheUrl(){return this._noCacheUrl}getNoCacheName(){return this._noCacheName}setWMCParent(t){this.wmcParent_=t}getWMCParent(){return this.wmcParent_}updateMinMaxResolution(t){return this.getImpl().updateMinMaxResolution(t)}_updateNoCache(){const t=M.config.tileMappgins.tiledNames.indexOf(this.name);-1!==t&&qE(M.config.tileMappgins.tiledUrls[t],this.url)&&(this._noCacheUrl=M.config.tileMappgins.urls[t],this._noCacheName=M.config.tileMappgins.names[t])}equals(t){let e=!1;return t instanceof ku&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}var Du=ku;var ju=class extends Uo{constructor(t){super(t),this.userZoom_=null}setUserZoom(t){this.userZoom_=t,xE(t)||this.setZoom(t)}getUserZoom(){return this.userZoom_}setProjection(t){this.projection_=t}getResolutions(){return this.get("resolutions")}setResolutions(t){this.set("resolutions",t),this.maxResolution_=t[0],this.minResolution_=t[t.length-1],this.setCenter(this.getCenter()),this.applyOptions_({minZoom:this.minZoom_,resolutions:t,zoomFactor:this.zoomFactor_,minResolution:this.minResolution_,maxResolution:this.maxResolution_,projection:this.projection_,center:this.getCenter(),constrainResolution:!0,multiWorld:!0}),xE(this.userZoom_)||this.setZoom(this.userZoom_)}};i(131),i(133);const Gu=[],zu=[],Bu=[],Uu=[Zl,Jl,Ql,$l,ih];class Vu extends Wa{constructor(t,e,i={}){super(),this.facadeMap_=e,this.layers_=[],this.layerGroups_=[],this.controls_=[],this.initZoom_=!0,this.userResolutions_=null,this.userBbox_=null,this.maxExtentForResolutions_=null,this.envolvedMaxExtent_=null,this._calculatedResolutions=!1,this._resolutionsEnvolvedExtent=!1,this._resolutionsBaseLayer=!1,this.label=[],this.map_=new Va({controls:[],target:t.id,view:new ju}),this.registerEvents_(),this.map_.addInteraction(new Jo({handleEvent:t=>("pointermove"===t.type&&this.onMapMove_(t),!0)}));const r=this.map_.getInteractions().getArray();this.mouseWheelZoom_=r.find(t=>t instanceof Aa),this.dragPan_=r.find(t=>t instanceof ma)}getLayers(t){const e=this.getWMC(t),i=this.getKML(t),r=this.getWMS(t),n=this.getWFS(t),s=this.getWMTS(t),o=this.getMVT(t),a=this.getUnknowLayers_(t),l=Gu.map(e=>this[e](t));return e.concat(i).concat(r).concat(n).concat(s).concat(o).concat(a).concat(l)}getBaseLayers(){return this.getLayers().filter(t=>{let e=!1;return Uu.includes(t.type)&&(e=!0!==t.transparent),e})}addLayers(t){const e=t.filter(t=>!sh(t.type)),i=t.filter(t=>sh(t.type));return this.addUnknowLayers_(e),this.facadeMap_.addWMC(i.filter(t=>t.type===Xl)),this.facadeMap_.addWMS(i.filter(t=>t.type===Zl)),this.facadeMap_.addWMTS(i.filter(t=>t.type===$l)),this.facadeMap_.addKML(i.filter(t=>t.type===Hl)),this.facadeMap_.addWFS(i.filter(t=>t.type===Kl)),this.facadeMap_.addMVT(i.filter(t=>t.type===ih)),Bu.forEach(t=>t(e)),this}removeLayers(t){const e=t.filter(t=>!sh(t.type)),i=t.filter(t=>sh(t.type));i.length>0&&(this.removeWMC(i),this.removeKML(i),this.removeWMS(i),this.removeWFS(i),this.removeWMTS(i),this.removeMVT(i)),e.length>0&&(this.removeUnknowLayers_(e),zu.forEach(t=>t(e))),t.forEach(t=>{if(t.getLayerGroup&&!xE(t.getLayerGroup())){t.getLayerGroup().deleteChild(t)}});return Array.isArray(this.getBaseLayers())&&this.getBaseLayers().length>0||(this._resolutionsBaseLayer=!1),this.facadeMap_.fire(hl,[t]),this}getLayerGroups(){return this.layerGroups_}getGroupedLayers(){let t=[];const e=this.getLayerGroups();return 1===e.length?t=e[0].getAllLayers():e.length>1&&(t=e.reduce((t,e)=>Array.isArray(t)?t.concat(e.getAllLayers()):t.getAllLayers().concat(e.getAllLayers()))),t}addLayerGroups(t){return t.forEach(t=>{t.addTo(this.facadeMap_),zE(this.layerGroups_,t)||(this.layerGroups_.push(t),t.getAllLayers().forEach(t=>{this.facadeMap_.addLayers(t)}))}),this}removeLayerGroups(t){let e=[];return e=Array.isArray(t)?[...t]:[t],e.forEach(t=>{this.layerGroups_.remove(t),t.destroy(),t.fire(cl,[t])}),this}getWMC(t){let e=t,i=[];const r=this.layers_.filter(t=>t.type===Xl);return xE(e)&&(e=[]),vE(e)||(e=[e]),0===e.length?i=r:e.forEach(t=>{i=i.concat(r.filter(e=>{let r=!0;return i.includes(e)?r=!1:(xE(t.type)||(r=r&&t.type===e.type),xE(t.url)||(r=r&&t.url===e.url),xE(t.name)||(r=r&&t.name===e.name)),r}))},this),i}addWMC(t){return t.forEach((t,e)=>{t.type===Xl&&(zE(this.layers_,t)||(t.setZIndex(Vu.Z_INDEX.WMC),t.getImpl().addTo(this.facadeMap_),this.layers_.push(t)))},this),this}removeWMC(t){return this.getWMC(t).forEach(t=>{!0===t.selected&&!1===t.isLoaded()?t.on(bl,()=>{this.layers_=this.layers_.filter(e=>!e.equals(t)),this.facadeMap_.removeWMS(t.layers),this.facadeMap_.refreshWMCSelectorControl()}):(this.layers_=this.layers_.filter(e=>!e.equals(t)),this.facadeMap_.removeWMS(t.layers)),this.facadeMap_.refreshWMCSelectorControl(),t.fire(cl,[t])},this),this}getKML(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===Hl);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name),xE(t.extract)||(r=r&&t.extract===i.extract)),r});e=e.concat(i)},this),e}addKML(t){const e=this.getBaseLayers().length>0;return t.forEach(t=>{if(t.type===Hl&&!zE(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX.KML;t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}},this),this}removeKML(t){return this.getKML(t).forEach(t=>{this.layers_=this.layers_.filter(e=>!t.equals(e)),t.getImpl().destroy(),t.fire(cl,[t])},this),this}getWMS(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===Zl);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:t instanceof Du?r=t===i:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name),xE(t.legend)||(r=r&&t.legend===i.legend),xE(t.transparent)||(r=r&&t.transparent===i.transparent),xE(t.tiled)||(r=r&&t.tiled===i.tiled),xE(t.cql)||(r=r&&t.cql===i.cql),xE(t.version)||(r=r&&t.version===i.version)),r});e=e.concat(i)},this),e}addWMS(t){let e=this.getBaseLayers().length>0;const i=[];t.forEach(t=>{if(t.type===Zl&&!zE(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(Vu.Z_INDEX_BASELAYER);else if(null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX.WMS;t.setZIndex(e)}});return(i.length>0&&!e||i.some(t=>!0!==t.transparent&&t.isVisible()))&&this.updateResolutionsFromBaseLayer(),this}removeWMS(t){return this.getWMS(t).forEach(t=>{if(this.layers_=this.layers_.filter(e=>!t.equals(e)),t.getImpl().destroy(),t.fire(cl,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}}),this}getGeoJSON(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===th);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name),xE(t.legend)||(r=r&&t.legend===i.legend)),r});e=e.concat(i)}),e}getWFS(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===Kl);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name),xE(t.namespace)||(r=r&&t.namespace===i.namespace),xE(t.legend)||(r=r&&t.legend===i.legend),xE(t.cql)||(r=r&&t.cql===i.cql),xE(t.geometry)||(r=r&&t.geometry===i.geometry),xE(t.ids)||(r=r&&t.ids===i.ids),xE(t.version)||(r=r&&t.version===i.version)),r});e=e.concat(i)}),e}addWFS(t){const e=this.getBaseLayers().length>0;return t.forEach(t=>{if(t.type===Kl&&!zE(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX.WFS;t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}}),this}removeWFS(t){return this.getWFS(t).forEach(t=>{this.layers_=this.layers_.filter(e=>!e.equals(t)),t.getImpl().destroy(),t.fire(cl,[t])}),this}getWMTS(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===$l);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name),xE(t.matrixSet)||(r=r&&t.matrixSet===i.matrixSet),xE(t.legend)||(r=r&&t.legend===i.legend)),r});e=e.concat(i)}),e}addWMTS(t){let e=this.getBaseLayers().length>0;return t.forEach(t=>{if(t.type===$l&&!zE(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent){t.getImpl().visibility=!e,e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(Vu.Z_INDEX_BASELAYER)}else{if(null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX.WMTS;t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}}),this}removeWMTS(t){return this.getWMTS(t).forEach(t=>{if(this.layers_=this.layers_.filter(e=>!e.equals(t)),t.getImpl().destroy(),t.fire(cl,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}}),this}getUnknowLayers_(t){let e=[],i=t;const r=this.layers_.filter(t=>!sh(t.type));return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:t instanceof Ah?r=t.equals(i):(xE(t.type)||(r=r&&t.type===i.type),xE(t.name)||(r=r&&t.name===i.name)),r});e=e.concat(i)}),e}addUnknowLayers_(t){let e=this.getBaseLayers().length>0;return t.forEach(t=>{if(!zE(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(Vu.Z_INDEX_BASELAYER);else{if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX[t.type];t.setZIndex(e)}e||-1!==t.name.indexOf("cluster_cover_")||this.updateResolutionsFromBaseLayer()}}),this}removeUnknowLayers_(t){t.forEach(t=>{if(zE(this.layers_,t)&&(this.layers_=this.layers_.filter(e=>!e.equals(t)),t.getImpl().destroy(),t.fire(cl,[t]),!0!==t.transparent)){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}})}getMVT(t){let e=[],i=t;const r=this.layers_.filter(t=>t.type===ih);return xE(i)&&(i=[]),vE(i)||(i=[i]),0===i.length?e=r:i.forEach(t=>{const i=r.filter(i=>{let r=!0;return e.includes(i)?r=!1:(xE(t.type)||(r=r&&t.type===i.type),xE(t.url)||(r=r&&t.url===i.url),xE(t.name)||(r=r&&t.name===i.name)),r});e=e.concat(i)}),e}removeMVT(t){return this.getMVT(t).forEach(t=>{this.layers_=this.layers_.filter(e=>!e.equals(t)),t.getImpl().destroy(),t.fire(cl,[t])}),this}addMVT(t){let e=this.getBaseLayers().length>0;const i=[];return t.forEach(t=>{if(t.type===ih&&!zE(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(Vu.Z_INDEX_BASELAYER);else if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+Vu.Z_INDEX.MVT;t.setZIndex(e)}(i.length>0&&!e||i.some(t=>!0!==t.transparent&&t.isVisible()))&&this.updateResolutionsFromBaseLayer()}}),this}getControls(t){let e=t,i=[],r=this.facadeMap_.getPanels().map(t=>t.getControls());r.length>0&&(r=r.reduce((t,e)=>t.concat(e)));const n=this.controls_.concat(r);xE(e)&&(e=[]),vE(e)||(e=[e]),0===e.length?i=n:e.forEach(t=>{i=i.concat(n.filter(e=>{let r=!1;return zE(i,e)||(EE(t)?r=t===e.name:t instanceof Gl?r=t===e:wE(t)&&(r=t.name===e.name)),r}))});const s=[];return i.forEach(t=>{s.map(t=>t.name).includes(t.name)||s.push(t)}),s}addControls(t){return t.forEach(t=>{t instanceof Wl&&this.facadeMap_.addControls("panzoom"),zE(this.controls_,t)||this.controls_.push(t)}),this}removeControls(t){return this.getControls(t).forEach(t=>{xE(this.map_)||this.map_.removeControl(t.getImpl()),t.destroy(),this.controls_=this.controls_.filter(e=>{let i=e.constructor===t.constructor;return xE(e.equals)||(i=!e.equals(t)),i})}),this}setMaxExtent(t,e){let i=t;xE(i)||vE(i)||!wE(i)||(i=[t.x.min,t.y.min,t.x.max,t.y.max]);return this.getMapImpl().getView().set("extent",i),this.updateResolutionsFromBaseLayer(),xE(i)||!1===e||this.setBbox(i),this}getMaxExtent(){let t;const e=this.getMapImpl().getView().get("extent");return t=xE(e)?this.envolvedMaxExtent_:{x:{min:e[0],max:e[2]},y:{min:e[1],max:e[3]}},t}setBbox(t,e){let i;xE(t)&&Qa(jl("exception").no_bbox),this.userBbox_=t,vE(t)?i=t:wE(t)&&(i=[t.x.min,t.y.min,t.x.max,t.y.max]);const r=this.getMapImpl();return r.updateSize(),r.getView().fit(i,e),this}getBbox(){let t=null;const e=this.getMapImpl(),i=e.getView();if(!xE(i.getCenter())){const r=i.calculateExtent(e.getSize());xE(r)||(t={x:{min:r[0],max:r[2]},y:{min:r[1],max:r[3]}})}return t}setZoom(t){return xE(t)&&Qa(jl("exception").no_zoom),this.getMapImpl().getView().setUserZoom(t),this}getZoom(){let t=null;const e=this.getMapImpl().getView(),i=e.getResolution(),r=this.getResolutions();if(xE(r))xE(i)||(t=e.getZoomForResolution(i));else for(let e=0,n=r.length;eMath.abs(t-i)),n=r.indexOf(Math.min(...r));l=t[n]}}else l=t[s];a.setResolution(l),r.setView(a);return this.getWMS().forEach(e=>{e.getImpl().setResolutions(t)}),this}getScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units;let i=FE(t,e);return xE(i)||(i=i>=1e3&&i<=95e4?1e3*Math.round(i/1e3):i>=95e4?1e6*Math.round(i/1e6):Math.round(i)),i}getExactScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units,i=FE(t,e);return Math.trunc(i)}setProjection(t){xE(t)&&Qa(jl("exception").no_projection);let e=Object(h.o)(t.code);xE(e)&&(e=new qr.a(t));const i=this.getProjection(),r=Object(h.o)(i.code);let n=this.facadeMap_.getBbox();const s=this.getMapImpl(),o=s.getView().getUserZoom(),a=new ju({projection:e});if(a.setUserZoom(o),s.setView(a),this.facadeMap_.getWMS().forEach(e=>{e.updateMinMaxResolution(t)}),this.updateResolutionsFromBaseLayer(),!xE(n)){vE(n)||(n=[n.x.min,n.y.min,n.x.max,n.y.max]);let t=xc.transformExtent(n,r,e);t.includes(NaN)&&(t=e.getExtent()),this.facadeMap_.setBbox(t,{nearest:!0})}return this}getProjection(){const t=this.getMapImpl().getView().getProjection();let e=null;return xE(t)||(e={code:t.getCode(),units:t.getUnits(),getExtent:()=>t.getExtent()}),e}getMapImpl(){return this.map_}removePopup(t){if(!xE(t)){const e=t.getImpl();this.getMapImpl().removeOverlay(e),t.fire(Nl,[t]),this.facadeMap_.fire(Nl,[t])}return this}destroy(){this.layers_.length=0,this.controls_.length=0,this.popup_=null,this.options_=null,this.map_.setTarget(null),this.map_=null}updateResolutionsFromBaseLayer(){let t=[],e=M.config.ZOOM_LEVELS;const i=this.getProjection().units,r=this.getBaseLayers().filter(t=>t.isVisible())[0];let n=null,s=null;xE(r)||(s=void 0!==r.getImpl().getMinResolution?r.getImpl().getMinResolution():null,n=void 0!==r.getImpl().getMaxResolution?r.getImpl().getMaxResolution():null,e=r.getImpl().getNumZoomLevels()),null===this.userResolutions_&&(xE(s)||xE(n)?this.facadeMap_.calculateMaxExtent().then(r=>{if(!this._resolutionsBaseLayer&&null===this.userResolutions_){this.getMapImpl().updateSize();const n=this.getMapImpl().getSize();t=AE(r,n,e,i),this.setResolutions(t,!0),this._resolutionsEnvolvedExtent=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(wl))}}).catch(t=>{throw t}):(t=PE(s,n,e),this.setResolutions(t,!0),this._resolutionsBaseLayer=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(wl))))}addLabel(t,e){return this.label.push(t),t.show(this.facadeMap_,e),this}getLabel(){return this.label[0]}getLabels(){return this.label}removeLabel(t){let e=t;xE(this.label)||(xE(t)?(this.label.forEach(t=>this.removePopup(t.getPopup())),this.label=[]):(vE(t)||(e=[t]),e.forEach(t=>{const e=this.label.findIndex(e=>e.text===t.text&&e.coord===t.coord);-1!==e&&(this.removePopup(this.label[e].getPopup()),this.label.splice(e,1))})))}refresh(){return this.map_.updateSize(),this}getContainer(){return this.map_.getOverlayContainerStopEvent()}setFacadeMap(t){this.facadeMap_=t}registerEvents_(){this.facadeMap_.on(wl,()=>{this.map_.updateSize()}),this.map_.on("singleclick",this.onMapClick_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this)),this.map_.on("change:view",t=>{t.oldValue.un("change:resolution",this.zoomEvent_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this))})}zoomEvent_(t){this.getZoom()<=t.target.getZoom()&&this.facadeMap_.fire(Tl,t)}onMapClick_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e),r=this.facadeMap_.getLabel();xE(r)||r.hide(),this.facadeMap_.fire(Ol,[{pixel:e,coord:i,vendor:t}])}onMapMove_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e);this.facadeMap_.fire(Rl,[{pixel:e,coord:i,vendor:t}])}getRotation(){let t;const e=this.map_.getView();return xE(e)||(t=e.getRotation()),t}setRotation(t){const e=this.map_.getView();xE(e)||e.setRotation(t)}static registerExternalFunction(t,e){const i={getLayers:Gu,addLayers:Bu,removeLayers:zu}[e];i.find(e=>e===t)&&i.push(t)}static registerBaseLayerType(t){!Uu.find(e=>e===t)&&Uu.push(t)}enableMouseWheel(t=!0){xE(this.mouseWheelZoom_)||this.mouseWheelZoom_.setActive(t)}enableDrag(t=!0){xE(this.dragPan_)||this.dragPan_.setActive(t)}getImageMap(){const t=this.map_.getViewport().querySelectorAll(".ol-layer canvas, canvas.ol-layer")[0];let e=null;if(!mE(t))try{e=t.toDataURL()}catch(t){throw t}return e}setToClosestScale(t){this.getMapImpl().getView().setResolution(t)}}Vu.Z_INDEX={},Vu.Z_INDEX_BASELAYER=0,Vu.Z_INDEX.WMC=1,Vu.Z_INDEX.WMS=1e3,Vu.Z_INDEX.WMTS=2e3,Vu.Z_INDEX.OSM=2e3,Vu.Z_INDEX.Mapbox=2e3,Vu.Z_INDEX.KML=3e3,Vu.Z_INDEX.WFS=9999,Vu.Z_INDEX.Vector=9999,Vu.Z_INDEX.MVT=9999,Vu.Z_INDEX.GeoJSON=9999;var qu=Vu,Yu=i(95),Wu=i.n(Yu);i(135);var Xu=class extends qo{constructor(){super({}),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}getElement(){return this.element}};var Hu=class extends Xu{addTo(t,e){e.getElementsByTagName("select")[0].addEventListener("change",e=>{const i=t.getWMC(e.target.options[e.target.selectedIndex].text)[0],r=t.getZoom();i.select(),t.setZoom(r)}),super.addTo(t,e)}};class Zu extends Gl{constructor(){super(new Hu,Zu.NAME),mE(Hu)&&Qa(jl("exception").wmcselector_method)}createView(t){return Vl(Wu.a,{vars:{layers:t.getWMC(),title:jl("wmcselector").title}})}equals(t){let e=!1;return t instanceof Zu&&(e=this.name===t.name),e}destroy(){super.destroy();const t=this.getPanel();xE(t)||t.removeClassName("m-with-wmcselector")}}Zu.NAME="wmcselector";var Ku=Zu,$u=(i(137),i(82)),Ju=i.n($u);var Qu=class extends Wa{constructor(t,e,i){super(),this.id_=t,this.title_=e,this.order_=i,this.zindex_=null}};class td extends Wa{constructor(t){const e={...t};xE(e.id)&&(e.id=ME("mapea_layer_group_")),xE(e.title)&&(e.title="Grupo de capas"),xE(e.zIndex)&&(e.zIndex=1e4),xE(e.order)&&(e.order=0);const i=new Qu(e);super(i),this.id=e.id,this.title=e.title,this.collapsed=!!e.collapsed,this.order=e.order,this.parent=null,this.children_=[],this.impl_=i,this.zIndex_=e.zIndex,Array.isArray(e.children)&&this.addChildren(e.children)}addTo(t){this.map=t,this.children_.forEach(e=>{e instanceof td&&e.addTo(t)}),this.fire(el)}setVisible(t){this.getAllLayers().forEach(e=>!0===e.transparent&&e.setVisible(t))}setZIndex(t){this.zIndex_=t;const e=[...this.getChildren()].reverse();let i=t;e.forEach(t=>{t.setZIndex(i),i+=1})}getZIndex(t){return this.zIndex_}addChild(t,e){let i=this.getZIndex()+this.children_.length;const r=t;xE(e)?this.children_.unshift(r):(this.children_.splice(e-1,0,r),i=this.getZIndex()+e),r instanceof td?r.parent=this:r instanceof Ah&&(r.setLayerGroup(this),r.setZIndex(i),xE(this.map)||this.map.getRootLayers().some(t=>t.equals(r))||(this.map.addLayers(r),r instanceof td&&this.map.addLayerGroup(r)))}deleteChild(t){const e=t;e instanceof td?(e.parent=null,this.map.removeLayerGroup(e)):e instanceof Ah&&(this.map.removeLayers(e),this.ungroup(t))}deleteChildren(t){t.forEach(this.deleteChild,this)}ungroup(t){t.setLayerGroup(null),this.children_.remove(t)}addChildren(t=[]){let e=t;Array.isArray(t)||(e=[e]),e.forEach(this.addChild,this)}getChildren(){return this.children_}getAllLayers(){let t=[];return this.getChildren().forEach(e=>{e instanceof Ah?t.push(e):e instanceof td&&(t=t.concat(e.getAllLayers()))}),t}destroy(){this.map.removeLayers(this.getAllLayers())}static findGroupById(t,e){let i=null;if(vE(e)&&e.length>0&&(i=e.find(e=>e instanceof td&&e.id===t),null==i)){const r=e.map(t=>t.getChildren()).reduce((t,e)=>t.concat(e),[]).filter(t=>t instanceof td);i=td.findGroupById(t,r)}return i}}var ed=td;class id extends Xu{constructor(t){super(),this.mouseoutTimeId=null,this.panel=null,this.statusEmptyLayer=!1,mE(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t,e){this.facadeMap_=t;const i=t.getMapImpl();this.panel=e.getElementsByTagName("div")[id.PANEL_ID],this.panel.addEventListener("click",this.clickLayer.bind(this),!1),this.panel.addEventListener("input",this.inputLayer.bind(this),!1),this.element=e,this.target_=null,i.addControl(this)}inputLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let r=null;if(!xE(e.target)){const t=e.target.getAttribute("data-layer-name");if(!xE(t)){e.stopPropagation();let n=this.facadeMap_.getLayers().filter(e=>e.id===t)[0];if(xE(n)&&!xE(i)&&(r=ed.findGroupById(i,this.facadeMap_.getLayerGroup()),n=r.getChildren().find(e=>e instanceof Ah&&e.id===t)),e.target.classList.contains("m-check"))if(mE(n)||!0!==n.transparent&&n.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach(t=>{t.setVisible(!1)});else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");xE(t)||n.setOpacity(parseFloat(t.value)),n.setVisible(!n.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?n.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&this.facadeMap_.removeLayers(n)}}}clickLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let r=null;if(!xE(e.target)){const t=e.target.getAttribute("data-layer-name");if(xE(t)){if(!xE(i)){const t=e.target.getAttribute("data-group-id");r=ed.findGroupById(t,this.facadeMap_.getLayerGroup()),e.target.classList.contains("m-check")?e.target.classList.contains("g-cartografia-check3")?r.setVisible(!1):r.setVisible(!0):(r.collapsed=!r.collapsed,this.renderPanel())}}else{e.stopPropagation();let n=this.facadeMap_.getLayers().filter(e=>e.id===t)[0];if(xE(n)&&!xE(i)&&(r=ed.findGroupById(i,this.facadeMap_.getLayerGroup()),n=r.getChildren().find(e=>e instanceof Ah&&e.id===t)),e.target.classList.contains("m-check"))if(mE(n)||!0!==n.transparent&&n.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach(t=>{t.setVisible(!1)});else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");xE(t)||n.setOpacity(parseFloat(t.value)),n.setVisible(!n.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?n.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&(xE(r)?this.facadeMap_.removeLayers(n):(n.getImpl().destroy(),r.removeChild(n)))}}this.renderPanel()}renderPanel(){Lf.getTemplateVariables(this.facadeMap_).then(t=>{if(this.activeEmptyLayer){const e=Object.assign({},Lf.EMPTYLAYER);e.visible=this.statusEmptyLayer,t.baseLayers.unshift(e)}const e=Vl(Ju.a,{vars:t});this.registerImgErrorEvents_(e);const i=e.querySelector("div#".concat(id.PANEL_ID));this.panel.innerHTML=i.innerHTML})}registerEvents(){if(!xE(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.registerViewEvents_(t.getView()),this.registerLayersEvents_(t.getLayers()),t.on("change:view",()=>this.onViewChange_.bind(this))}}unregisterEvents(){if(!xE(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.unregisterViewEvents_(t.getView()),this.unregisterLayersEvents_(t.getLayers()),t.un("change:view",()=>this.onViewChange_.bind(this))}}registerViewEvents_(t){t.on("change:resolution",()=>this.renderPanel.bind(this))}registerLayersEvents_(t){t.forEach(this.registerLayerEvents_.bind(this)),t.on("remove",()=>this.renderPanel.bind(this)),t.on("add",()=>this.onAddLayer_.bind(this))}registerLayerEvents_(t){t.on("change:visible",()=>this.renderPanel.bind(this)),t.on("change:extent",()=>this.renderPanel.bind(this))}unregisterViewEvents_(t){t.un("change:resolution",()=>this.renderPanel.bind(this))}unregisterLayersEvents_(t){t.forEach(this.unregisterLayerEvents_.bind(this)),t.un("remove",()=>this.renderPanel.bind(this)),t.un("add",()=>this.onAddLayer_.bind(this))}unregisterLayerEvents_(t){t.un("change:visible",()=>this.renderPanel.bind(this)),t.un("change:extent",()=>this.renderPanel.bind(this))}onViewChange_(t){this.unregisterViewEvents_(t.oldValue);const e=this.facadeMap_.getMapImpl();this.registerViewEvents_(e.getView())}onAddLayer_(t){this.registerLayerEvents_(t.element),this.renderPanel()}registerImgErrorEvents_(t){const e=t.querySelectorAll("img");Array.prototype.forEach.call(e,t=>{t.addEventListener("error",t=>{const e=t.target.getAttribute("data-layer-name"),i=GE([M.config.THEME_URL,Ah.LEGEND_ERROR]),r=this.facadeMap_.getLayers().filter(t=>t.id===e)[0];xE(r)||r.setLegendURL(i)})})}setMap(t){super.setMap(t),this.renderPanel()}}id.PANEL_ID="m-layerswitcher-panel";var rd=id,nd=i(34),sd=i(74),od=i.n(sd);var ad=class{constructor(t){this.rbush_=new od.a(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[Object(dn.b)(e)]=i}load(t,e){const i=new Array(e.length);for(let r=0,n=e.length;r=200&&a.status<300){const t=e.getType();let r;"json"==t||"text"==t?r=a.responseText:"xml"==t?(r=a.responseXML,r||(r=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(r=a.response),r?s(e.readFeatures(r,{extent:i,featureProjection:n}),e.readProjection(r)):o()}else o()},a.onerror=o,a.send()}function xd(t,e){return function(i,r,n,s,o){const a=this;vd(t,e,i,r,n,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||un.c)}}class bd extends sn.a{constructor(t,e,i){super(t),this.feature=e,this.features=i}}class wd extends ld.a{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=un.c,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(Object(os.a)(this.format_,7),this.loader_=xd(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:md;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,r;this.featuresRtree_=e?new ad:null,this.loadedExtentsRtree_=new ad,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?r=t.features:t.features&&(i=t.features,r=i.getArray()),e||void 0!==i||(i=new hn(r)),void 0!==r&&this.addFeaturesInternal(r),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=Object(dn.b)(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new bd(hd,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[Object(is.a)(e,ns.a.CHANGE,this.handleFeatureChange_,this),Object(is.a)(e,En.a.PROPERTYCHANGE,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const r=e.getId();return void 0!==r&&(r.toString()in this.idIndex_?i=!1:this.idIndex_[r.toString()]=e),i&&(Object(os.a)(!(t in this.uidIndex_),30),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],r=[];for(let e=0,r=t.length;e{e||(e=!0,this.addFeature(t.element),e=!1)}),t.addEventListener(nn,t=>{e||(e=!0,this.removeFeature(t.element),e=!1)}),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(is.c)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new bd(ud);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){if(i.getGeometry().intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){if(i.getGeometry().intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),Object(Fn.b)(this.nullGeometryFeatures_)||Object(u.d)(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=Object(pt.M)(t,e);return[].concat(...i.map(t=>this.featuresRtree_.getInExtent(t)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],r=t[1];let n=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||un.b,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e.closestPointXY(i,r,s,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new bd(pd,void 0,t))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new bd(fd))}),r.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(Object(pt.p)(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=Object(dn.b)(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=Object(dn.b)(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(is.c),delete this.featureChangeKeys_[e];const r=t.getId();return void 0!==r&&delete this.idIndex_[r.toString()],delete this.uidIndex_[e],this.dispatchEvent(new bd(dd,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){Object(os.a)(this.format_,7),this.url_=t,this.setLoader(xd(t,this.format_))}}var Ed=wd;var Sd=class extends Ed{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return Object(os.a)("Point"==e.getType(),10),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(ns.a.CHANGE,this.boundRefresh_),this.source=t,t&&t.addEventListener(ns.a.CHANGE,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,r=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,r&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=Object(pt.k)(),e=this.distance*this.resolution,i=this.source.getFeatures(),r={};for(let n=0,s=i.length;n=0;--e){const r=this.geometryFunction(t[e]);r?Object(vn.a)(i,r.getCoordinates()):t.splice(e,1)}Object(vn.k)(i,1/t.length);const r=Object(pt.x)(e),n=this.interpolationRatio,s=new xo([i[0]*(1-n)+r[0]*n,i[1]*(1-n)+r[1]*n]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new Zh({geometry:s,features:t})}},Id=i(13);class Cd{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=Object(ja.d)(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Cd({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return Object(dn.a)()}getImage(t){return Object(dn.a)()}getHitDetectionImage(){return Object(dn.a)()}getPixelRatio(t){return 1}getImageState(){return Object(dn.a)()}getImageSize(){return Object(dn.a)()}getOrigin(){return Object(dn.a)()}getSize(){return Object(dn.a)()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=Object(ja.d)(t)}listenImageChange(t){Object(dn.a)()}load(){Object(dn.a)()}unlistenImageChange(t){Object(dn.a)()}}var Td=Cd;let Ld=null;class Md extends vs.a{constructor(t,e,i,r,n,s){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=r,this.canvas_={},this.color_=s,this.unlisten_=null,this.imageState_=n,this.size_=i,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===Id.a.LOADED){Ld||(Ld=Object(kn.a)(1,1,void 0,{willReadFrequently:!0})),Ld.drawImage(this.image_,0,0);try{Ld.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Ld=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(ns.a.CHANGE)}handleImageError_(){this.imageState_=Id.a.ERROR,this.unlistenImage_(),this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=Id.a.LOADED,this.size_?(this.image_.width=this.size_[0],this.image_.height=this.size_[1]):this.size_=[this.image_.width,this.image_.height],this.unlistenImage_(),this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=Object(kn.a)(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Id.a.IDLE){this.image_||this.initializeImage_(),this.imageState_=Id.a.LOADING;try{this.image_.src=this.src_}catch(t){this.handleImageError_()}this.unlisten_=Object(Mu.b)(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==Id.a.LOADED)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const r=i.getContext("2d");r.scale(t,t),r.drawImage(e,0,0),r.globalCompositeOperation="multiply",r.fillStyle=Object(pn.b)(this.color_),r.fillRect(0,0,i.width/t,i.height/t),r.globalCompositeOperation="destination-in",r.drawImage(e,0,0),this.canvas_[t]=i}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}}class Od extends Td{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,r=void 0!==t.scale?t.scale:1,n=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:r,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:n,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;this.imgSize_=t.imgSize;let o=t.src;Object(os.a)(!(void 0!==o&&s),4),Object(os.a)(!s||s&&this.imgSize_,5),void 0!==o&&0!==o.length||!s||(o=s.src||Object(dn.b)(s)),Object(os.a)(void 0!==o&&o.length>0,6),Object(os.a)(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),69);const a=void 0!==t.src?Id.a.IDLE:Id.a.LOADED;if(this.color_=void 0!==t.color?Object(pn.a)(t.color):null,this.iconImage_=function(t,e,i,r,n,s){let o=_n.get(e,r,s);return o||(o=new Md(t,e,i,r,n,s),_n.set(e,r,s,o)),o}(s,o,void 0!==this.imgSize_?this.imgSize_:null,this.crossOrigin_,a,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,this.width_=t.width,this.height_=t.height,void 0!==this.width_||void 0!==this.height_){const t=this.getImage(1),e=()=>{this.updateScaleFromWidthAndHeight(this.width_,this.height_)};t.width>0?this.updateScaleFromWidthAndHeight(this.width_,this.height_):t.addEventListener("load",e)}}clone(){const t=this.getScale();return new Od({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,imgSize:this.imgSize_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:Array.isArray(t)?t.slice():t,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode(),width:this.width_,height:this.height_})}updateScaleFromWidthAndHeight(t,e){const i=this.getImage(1);void 0!==t&&void 0!==e?super.setScale([t/i.width,e/i.height]):void 0!==t?super.setScale([t/i.width,t/i.width]):void 0!==e?super.setScale([e/i.height,e/i.height]):super.setScale([1,1])}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){return this.width_}getHeight(){return this.height_}setWidth(t){this.width_=t,this.updateScaleFromWidthAndHeight(t,this.height_)}setHeight(t){this.height_=t,this.updateScaleFromWidthAndHeight(this.width_,t)}setScale(t){super.setScale(t);const e=this.getImage(1);if(e){const i=Array.isArray(t)?t[0]:t;void 0!==i&&(this.width_=i*e.width);const r=Array.isArray(t)?t[1]:t;void 0!==r&&(this.height_=r*e.height)}}listenImageChange(t){this.iconImage_.addEventListener(ns.a.CHANGE,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(ns.a.CHANGE,t)}}var Rd=Od;var Pd=class{drawCustom(t,e,i,r){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}};function Nd(t){return Array.isArray(t)?Object(pn.e)(t):t}var Ad=class extends Pd{constructor(t,e,i,r,n,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=r,this.transformRotation_=r?Object(Fs.k)(Math.atan2(r[1],r[0]),10):0,this.viewRotation_=n,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=Object(gn.d)()}drawImages_(t,e,i,r){if(!this.image_)return;const n=qs(t,e,i,r,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=n.length;tt*this.pixelRatio_),lineDashOffset:(n||0)*this.pixelRatio_,lineJoin:void 0!==s?s:Bn,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:Nd(t||Un)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),r=t.getAnchor(),n=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*i,this.imageAnchorY_=r[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=n[0],this.imageOriginY_=n[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Nd(t||jn)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),r=i.getLineDash(),n=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Gn,lineDash:r||zn,lineDashOffset:n||0,lineJoin:void 0!==s?s:Bn,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:Nd(t||Un)}}else this.textStrokeState_=null;const r=t.getFont(),n=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==r?r:Dn,textAlign:void 0!==c?c:Vn,textBaseline:void 0!==u?u:qn},this.text_=void 0!==h?Array.isArray(h)?h.reduce((t,e,i)=>t+(i%2?" ":e),""):h:"",this.textOffsetX_=void 0!==n?this.pixelRatio_*n:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}};const Fd={Point:function(t,e,i,r,n){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Id.a.LOADED)return;let l=t;if(n){const h=s.getDeclutterMode();if("none"!==h)if(l=n,"obstacle"===h){const n=t.getBuilder(i.getZIndex(),"Image");n.setImageStyle(s,a),n.drawPoint(e,r)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,r)}if(o&&o.getText()){let s=t;n&&(s=n);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,r)}},LineString:function(t,e,i,r,n){const s=i.getStroke();if(s){const n=t.getBuilder(i.getZIndex(),"LineString");n.setFillStrokeStyle(null,s),n.drawLineString(e,r)}const o=i.getText();if(o&&o.getText()){const s=(n||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,r)}},Polygon:function(t,e,i,r,n){const s=i.getFill(),o=i.getStroke();if(s||o){const n=t.getBuilder(i.getZIndex(),"Polygon");n.setFillStrokeStyle(s,o),n.drawPolygon(e,r)}const a=i.getText();if(a&&a.getText()){const s=(n||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,r)}},MultiPoint:function(t,e,i,r,n){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=Id.a.LOADED)return;let l=t;if(n){const h=s.getDeclutterMode();if("none"!==h)if(l=n,"obstacle"===h){const n=t.getBuilder(i.getZIndex(),"Image");n.setImageStyle(s,a),n.drawMultiPoint(e,r)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,r)}if(o&&o.getText()){let s=t;n&&(s=n);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,r)}},MultiLineString:function(t,e,i,r,n){const s=i.getStroke();if(s){const n=t.getBuilder(i.getZIndex(),"LineString");n.setFillStrokeStyle(null,s),n.drawMultiLineString(e,r)}const o=i.getText();if(o&&o.getText()){const s=(n||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,r)}},MultiPolygon:function(t,e,i,r,n){const s=i.getFill(),o=i.getStroke();if(o||s){const n=t.getBuilder(i.getZIndex(),"Polygon");n.setFillStrokeStyle(s,o),n.drawMultiPolygon(e,r)}const a=i.getText();if(a&&a.getText()){const s=(n||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,r)}},GeometryCollection:function(t,e,i,r,n){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o{let r=e[t];"string"==typeof r&&1===r.length&&(r={char:r}),Yd.defs.glyphs[t]={font:i.font,char:r.char||""+String.fromCharCode(r.code)||"",theme:r.theme||i.name,name:r.name||t,search:r.search||""}})}getFill(){return this.fill_}getStroke(){return this.stroke_}getGlyph(t){let e=this.glyph_;return t&&(e=Yd.defs.glyphs[t],e=e||{font:"none",char:t.charAt(0),theme:"none",name:"none",search:""}),e}getGlyphName(){let t="";return Object.keys(Yd.defs.glyphs).forEach(e=>{Yd.defs.glyph[e]===this.glyph_&&(t=e)}),t}getFontInfo(t){return Yd.defs.fonts[t.font]}renderMaker(t){let e,i=0;this.stroke_&&(e=Object(pn.b)(this.stroke_.getColor()),i=this.stroke_.getWidth());const r=this.getImage(1);r.height+=1,r.width+=1;const n={strokeStyle:e,strokeWidth:i,size:r.width},s=r.getContext("2d");s.clearRect(0,0,r.width,r.height),this.drawMarker_(n,s,0,0);const o=this.getAnchor();o[0]=r.width/2-this.offset_[0],o[1]=r.width/2-this.offset_[1]}drawPath_(t,e){const i=e,r=2*this.radius_+t.strokeWidth,n=t.strokeWidth/2,s=t.size/2;let o={fac:1,posX:t.size/2,posY:t.size/2};i.lineJoin="round",i.beginPath();const a=Math.PI;switch(this.form_){case"none":o.fac=1;break;case"circle":case"ban":i.arc(s,s,r/2,0,2*Math.PI,!0);break;case"poi":i.arc(s,s-.4*this.radius_,.6*this.radius_,.15*a,.85*a,!0),i.lineTo(s-.89*.05*r,(.95+.45*.05)*r+n),i.arc(s,.95*r+n,.05*r,.85*Math.PI,.15*Math.PI,!0),o={fac:.45,posX:s,posY:s-.35*this.radius_};break;case"bubble":i.arc(s,s-.2*this.radius_,.8*this.radius_,.4*a,.6*a,!0),i.lineTo(.5*r+n,r+n),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"marker":i.arc(s,s-.2*this.radius_,.8*this.radius_,.25*a,.75*a,!0),i.lineTo(.5*r+n,r+n),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"coma":i.moveTo(s+.8*this.radius_,s-.2*this.radius_),i.quadraticCurveTo(.95*r+n,.75*r+n,.5*r+n,r+n),i.arc(s,s-.2*this.radius_,.8*this.radius_,.45*a,0,!1),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;default:let t;switch(this.form_){case"shield":t=[.05,0,.95,0,.95,.8,.5,1,.05,.8,.05,0],o.posY=.45*r+n;break;case"blazon":t=[.1,0,.9,0,.9,.8,.6,.8,.5,1,.4,.8,.1,.8,.1,0],o.fac=.8,o.posY=.4*r+n;break;case"bookmark":t=[.05,0,.95,0,.95,1,.5,.8,.05,1,.05,0],o.fac=.9,o.posY=.4*r+n;break;case"hexagon":t=[.05,.2,.5,0,.95,.2,.95,.8,.5,1,.05,.8,.05,.2],o.fac=.9,o.posY=.5*r+n;break;case"diamond":t=[.25,0,.75,0,1,.2,1,.4,.5,1,0,.4,0,.2,.25,0],o.fac=.75,o.posY=.35*r+n;break;case"triangle":t=[0,0,1,0,.5,1,0,0],o.fac=.6,o.posY=.3*r+n;break;case"sign":t=[.5,.05,1,.95,0,.95,.5,.05],o.fac=.7,o.posY=.65*r+n;break;case"lozenge":t=[.5,0,1,.5,.5,1,0,.5,.5,0],o.fac=.7;break;default:t=[0,0,1,0,1,1,0,1,0,0]}for(let e=0;e0?Number(t.scale):1)*An.a||An.a,n=i.getContext("2d");if(t.image){t.image.load();const s=t.image.getImage();s.width?(i.width=Math.round(s.width*r),i.height=Math.round(s.height*r),n.globalAlpha="number"==typeof t.opacity?t.opacity:1,n.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=n.createPattern(i,"repeat")):(e=[0,0,0,0],s.onload=function(){i.width=Math.round(s.width*r),i.height=Math.round(s.height*r),n.globalAlpha="number"==typeof t.opacity?t.opacity:1,n.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=n.createPattern(i,"repeat"),this.color_=e,this.checksum_=void 0})}else{const s=wg.getPattern(t);if(i.width=Math.round(s.width*r),i.height=Math.round(s.height*r),n.beginPath(),t.fill&&(n.fillStyle=Object(pn.b)(t.fill.getColor()),n.fillRect(0,0,i.width,i.height)),n.scale(r,r),n.lineCap="round",n.lineWidth=s.stroke||1,n.fillStyle=Object(pn.b)(t.color||"#000"),n.strokeStyle=Object(pn.b)(t.color||"#000"),s.circles)for(let t=0;t180&&(n-=360),n*=Math.PI/180;const s=Math.cos(n),o=Math.sin(n);if(Math.abs(o)<1e-4)i.width=r,i.height=r,i.lines=[[0,.5,r,.5]],i.repeat=[[0,0],[0,r]];else if(Math.abs(s)<1e-4)i.height=r,i.width=r,i.lines=[[.5,0,.5,r]],i.repeat=[[0,0],[r,0]],"cross"===e.pattern&&(i.lines.push([0,.5,r,.5]),i.repeat.push([0,r]));else{i.width=Math.round(Math.abs(r/o))||1,i.height=Math.round(Math.abs(r/s))||1;const t=i.width,n=i.height;"cross"===e.pattern?(i.lines=[[-t,-n,2*t,2*n],[2*t,-n,-t,2*n]],i.repeat=[[0,0]]):s*o>0?(i.lines=[[-t,-n,2*t,2*n]],i.repeat=[[0,0],[t,0],[0,n]]):(i.lines=[[2*t,-n,-t,2*n]],i.repeat=[[0,0],[-t,0],[0,n]])}i.stroke=0===e.size?0:e.size||4}return i}static addPattern(t,e={}){wg.patterns[t||e.char]={width:e.width||e.size||10,height:e.height||e.size||10,font:e.font,char:e.char,circles:e.circles,lines:e.lines,repeat:e.repeat,stroke:e.stroke,angle:e.angle,fill:e.fill}}}wg.patterns={hatch:{width:5,height:5,lines:[[0,2.5,5,2.5]],stroke:1},cross:{width:7,height:7,lines:[[0,3,10,3],[3,0,3,10]],stroke:1},dot:{width:8,height:8,circles:[[5,5,2]],stroke:!1,fill:!0},circle:{width:10,height:10,circles:[[5,5,2]],stroke:1,fill:!1},square:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],stroke:1,fill:!1},tile:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],fill:!0},woven:{width:12,height:12,lines:[[3,3,9,9],[0,12,3,9],[9,3,12,0],[-1,1,1,-1],[13,11,11,13]],stroke:1},crosses:{width:8,height:8,lines:[[2,2,6,6],[2,6,6,2]],stroke:1},caps:{width:8,height:8,lines:[[2,6,4,2,6,6]],stroke:1},nylon:{width:20,height:20,lines:[[1,6,1,1,6,1],[6,11,11,11,11,6],[11,16,11,21,16,21],[16,11,21,11,21,16]],repeat:[[0,0],[-20,0],[0,-20]],stroke:1},hexagon:{width:20,height:12,lines:[[0,10,4,4,10,4,14,10,10,16,4,16,0,10]],stroke:1,repeat:[[0,0],[10,6],[10,-6],[-10,-6]]},cemetry:{width:15,height:19,lines:[[0,3.5,7,3.5],[3.5,0,3.5,10]],stroke:1,repeat:[[0,0],[7,9]]},sand:{width:20,height:20,circles:[[1,2,1],[9,3,1],[2,16,1],[7,8,1],[6,14,1],[4,19,1],[14,2,1],[12,10,1],[14,18,1],[18,8,1],[18,14,1]],fill:1},conglomerate:{width:30,height:20,circles:[[2,4,1],[17,3,1],[26,18,1],[12,17,1],[5,17,2],[28,11,2]],lines:[[7,5,6,7,9,9,11,8,11,6,9,5,7,5],[16,10,15,13,16,14,19,15,21,13,22,9,20,8,19,8,16,10],[24,6,26,7,27,5,26,4,24,4,24,6]],stroke:1},gravel:{width:15,height:10,circles:[[4,2,1],[5,9,1],[1,7,1]],lines:[[7,5,6,6,7,7,8,7,9,7,10,5,9,4,7,5],[11,2,14,4,14,1,12,1,11,2]],stroke:1},brick:{width:18,height:16,lines:[[0,1,18,1],[0,10,18,10],[6,1,6,10],[12,10,12,18],[12,0,12,1]],stroke:1},dolomite:{width:20,height:16,lines:[[0,1,20,1],[0,9,20,9],[1,9,6,1],[11,9,14,16],[14,0,14.4,1]],stroke:1},coal:{width:20,height:16,lines:[[1,5,7,1,7,7],[11,10,12,5,18,9],[5,10,2,15,9,15],[15,16,15,13,20,16],[15,0,15,2,20,0]],fill:1},breccia:{width:20,height:16,lines:[[1,5,7,1,7,7,1,5],[11,10,12,5,18,9,11,10],[5,10,2,15,9,15,5,10],[15,16,15,13,22,18],[15,0,15,2,20,0]],stroke:1},clay:{width:20,height:20,lines:[[0,0,3,11,0,20],[11,0,10,3,13,13,11,20],[0,0,10,3,20,0],[0,12,3,11,13,13,20,12]],stroke:1},flooded:{width:15,height:10,lines:[[0,1,10,1],[0,6,5,6],[10,6,15,6]],stroke:1},chaos:{width:40,height:40,lines:[[40,2,40,0,38,0,40,2],[4,0,3,2,2,5,0,0,0,3,2,7,5,6,7,7,8,10,9,12,9,13,9,14,8,14,6,15,2,15,0,20,0,22,2,20,5,19,8,15,10,14,11,12.25,10,12,10,10,12,9,13,7,12,6,13,4,16,7,17,4,20,0,18,0,15,3,14,2,14,0,12,1,11,0,10,1,11,4,10,7,9,8,8,5,6,4,5,3,5,1,5,0,4,0],[7,1,7,3,8,3,8,2,7,1],[4,3,5,5,4,5,4,3],[34,5,33,7,38,10,38,8,36,5,34,5],[27,0,23,2,21,8,30,0,27,0],[25,8,26,12,26,16,22.71875,15.375,20,13,18,15,17,18,13,22,17,21,19,22,21,20,19,18,22,17,30,25,26,26,24,28,21.75,33.34375,20,36,18,40,20,40,24,37,25,32,27,31,26,38,27,37,30,32,32,35,36,37,38,40,38,39,40,40,37,36,34,32,37,31,36,29,33,27,34,24,39,21,40,21,40,16,37,20,31,22,32,25,27,20,29,15,30,20,32,20,34,18,33,12,31,11,29,14,26,9,25,8],[39,24,37,26,40,28,39,24],[13,15,9,19,14,18,13,15],[18,23,14,27,16,27,17,25,20,26,18,23],[6,24,2,26,1,28,2,30,5,28,12,30,16,32,18,30,15,30,12,28,9,25,7,27,6,24],[29,27,32,28,33,31,30,29,27,28,29,27],[5,35,1,33,3,36,13,38,15,35,10,36,5,35]],fill:1},grass:{width:27,height:22,lines:[[0,10.5,13,10.5],[2.5,10,1.5,7],[4.5,10,4.5,5,3.5,4],[7,10,7.5,6,8.5,3],[10,10,11,6]],repeat:[[0,0],[14,10]],stroke:1},swamp:{width:24,height:23,lines:[[0,10.5,9.5,10.5],[2.5,10,2.5,7],[4.5,10,4.5,4],[6.5,10,6.5,6],[3,12.5,7,12.5]],repeat:[[0,0],[14,10]],stroke:1},wave:{width:10,height:8,lines:[[0,0,5,4,10,0]],stroke:1},vine:{width:13,height:13,lines:[[3,0,3,6],[9,7,9,13]],stroke:1},forest:{width:55,height:30,circles:[[7,7,3.5],[20,20,1.5],[42,22,3.5],[35,5,1.5]],stroke:1},scrub:{width:26,height:20,lines:[[1,4,4,8,6,4]],circles:[[20,13,1.5]],stroke:1},tree:{width:30,height:30,lines:[[7.78,10.61,4.95,10.61,4.95,7.78,3.54,7.78,2.12,6.36,.71,6.36,0,4.24,.71,2.12,4.24,0,7.78,.71,9.19,3.54,7.78,4.95,7.07,7.07,4.95,7.78]],repeat:[[3,1],[18,16]],stroke:1},pine:{width:30,height:30,lines:[[5.66,11.31,2.83,11.31,2.83,8.49,0,8.49,2.83,0,5.66,8.49,2.83,8.49]],repeat:[[3,1],[18,16]],stroke:1},pines:{width:22,height:20,lines:[[1,4,3.5,1,6,4],[1,8,3.5,5,6,8],[3.5,1,3.5,11],[12,14.5,14.5,14,17,14.5],[12,18,17,18],[14.5,12,14.5,18]],repeat:[[2,1]],stroke:1},rock:{width:20,height:20,lines:[[1,0,1,9],[4,0,4,9],[7,0,7,9],[10,1,19,1],[10,4,19,4],[10,7,19,7],[0,11,9,11],[0,14,9,14],[0,17,9,17],[12,10,12,19],[15,10,15,19],[18,10,18,19]],repeat:[[.5,.5]],stroke:1},rocks:{width:20,height:20,lines:[[5,0,3,0,5,4,4,6,0,3,0,5,3,6,5,9,3.75,10,2.5,10,0,9,0,10,4,11,5,14,4,15,0,13,0,13,0,13,0,14,0,14,5,16,5,18,3,19,0,19,-.25,19.9375,5,20,10,19,10,20,11,20,12,19,14,20,15,20,17,19,20,20,20,19,19,16,20,15,20,11,20,10,19,8,20,5,20,0,19,0,20,2,19,4,17,4,16,3,15,0,14,0,15,4,11,5,10,4,11,0,10,0,9,4,6,5,5,0],[18,5,19,6,18,10,16,10,14,9,16,5,18,5],[5,6,9,5,10,6,10,9,6,10,5,6],[14,5,14,8,13,9,12,9,11,7,12,5,14,5],[5,11,8,10,9,11,10,14,6,15,6,15,5,11],[13,10,14,11,15,14,15,14,15,14,11,15,10,11,11,10,13,10],[15,12,16,11,19,11,19,15,16,14,16,14,15,12],[6,16,9,15,10,18,5,19,6,16],[10,16,14,16,14,18,13,19,11,18,10,16],[15,15,18,16,18,18,16,19,15,18,15,15]],stroke:1}};class Eg extends og{constructor(t={}){super({points:1/0,fill:t.fill,radius:t.radius,snapToPixel:t.snapToPixel,stroke:t.stroke,atlasManager:t.atlasManager})}clone(){const t=new Eg({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t}}const Sg=(t,e,i)=>{let r;if(!xE(t.fill)){const n=Hd.getValue(t.fill.color,e,i);let s=Hd.getValue(t.fill.opacity,e,i);s||0===s||(s=1),xE(n)||(r=new lg({color:l()(n).alpha(s).css()}))}return r},Ig=(t,e,i)=>{let r;if(!xE(t.stroke)){const n=Hd.getValue(t.stroke.color,e,i);if(!xE(n)){const{linedashoffset:s}=t.stroke;r=new cg({color:n,width:Hd.getValue(t.stroke.width,e,i),lineDash:Hd.getValue(t.stroke.linedash,e,i),lineDashOffset:Hd.getValue(s,e,i),lineCap:Hd.getValue(t.stroke.linecap,e,i),lineJoin:Hd.getValue(t.stroke.linejoin,e,i),miterLimit:Hd.getValue(t.stroke.miterlimit,e,i)})}}return r},Cg=(t,e,i)=>{let s;if(t.label){const o=Hd.getValue(t.label.text,e,i),a=Hd.getValue(t.label.align,e,i),l=Hd.getValue(t.label.baseline,e,i);if(s=new yg({font:Hd.getValue(t.label.font,e,i),rotateWithView:Hd.getValue(t.label.rotate,e,i),scale:Hd.getValue(t.label.scale,e,i),offsetX:Hd.getValue(t.label.offset?t.label.offset[0]:void 0,e,i),offsetY:Hd.getValue(t.label.offset?t.label.offset[1]:void 0,e,i),fill:new lg({color:Hd.getValue(t.label.color||"#000",e,i)}),textAlign:Object.values(r).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:Hd.getValue(t.label.rotation,e,i),overflow:Hd.getValue(t.label.overflow,e,i)}),!xE(t.label.stroke)){const{miterlimit:r,linedashoffset:n}=t.label.stroke;s.setStroke(new cg({color:Hd.getValue(t.label.stroke.color,e,i),width:Hd.getValue(t.label.stroke.width,e,i),lineCap:Hd.getValue(t.label.stroke.linecap,e,i),lineJoin:Hd.getValue(t.label.stroke.linejoin,e,i),lineDash:Hd.getValue(t.label.stroke.linedash,e,i),lineDashOffset:Hd.getValue(n,e,i),miterLimit:Hd.getValue(r,e,i)}))}}return s},Tg={},Lg=(t,e,i)=>{const r=t||{},n=Sg(r,e,i),s=Ig(r,e,i),o=new Eg({fill:n,stroke:s,radius:Hd.getValue(r.radius,e,i),snapToPixel:Hd.getValue(r.snapToPixel,e,i)}),a=new mg({image:o}),l=new mg;if(!xE(r.icon)){let t;const n=Hd.getValue(r.icon.src,e,i);xE(n)?xE(r.icon.form)||(t=((t,e,i)=>new bg({form:xE(Hd.getValue(t.icon.form,e,i))?"":Hd.getValue(t.icon.form,e,i).toLowerCase(),gradient:Hd.getValue(t.icon.gradient,e,i),glyph:Hd.getValue(t.icon.class,e,i),fontSize:Hd.getValue(t.icon.fontsize,e,i),radius:Hd.getValue(t.icon.radius,e,i),rotation:Hd.getValue(t.icon.rotation,e,i),rotateWithView:Hd.getValue(t.icon.rotate,e,i),offsetX:Hd.getValue(t.icon.offset?t.icon.offset[0]:void 0,e,i),offsetY:Hd.getValue(t.icon.offset?t.icon.offset[1]:void 0,e,i),fill:new lg({color:Hd.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",e,i)}),stroke:t.icon.color?new cg({color:Hd.getValue(t.icon.color,e,i),width:1}):void 0,anchor:Hd.getValue(t.icon.anchor,e,i),anchorXUnits:Hd.getValue(t.icon.anchorxunits,e,i),anchorYUnits:Hd.getValue(t.icon.anchoryunits,e,i),src:Hd.getValue(t.icon.src,e,i),opacity:Hd.getValue(t.icon.opacity,e,i),scale:Hd.getValue(t.icon.scale,e,i),snapToPixel:Hd.getValue(t.icon.snaptopixel,e,i),offsetOrigin:Hd.getValue(t.icon.offsetorigin,e,i),offset:Hd.getValue(t.icon.offset,e,i),crossOrigin:Hd.getValue(t.icon.crossorigin,e,i),anchorOrigin:Hd.getValue(t.icon.anchororigin,e,i),size:Hd.getValue(t.icon.size,e,i)}))(r,e,i),l.setImage(t)):(t=((t,e,i)=>{const r=Hd.getValue(t.icon.anchor,e,i),n=Hd.getValue(t.icon.anchorxunits,e,i),s=Hd.getValue(t.icon.anchoryunits,e,i),o=Hd.getValue(t.icon.src,e,i),a=Hd.getValue(t.icon.opacity,e,i),l=Hd.getValue(t.icon.scale,e,i),h=Hd.getValue(t.icon.rotation,e,i),c=Hd.getValue(t.icon.rotate,e,i),u=Hd.getValue(t.icon.snaptopixel,e,i),d=Hd.getValue(t.icon.offsetorigin,e,i),g=Hd.getValue(t.icon.offset,e,i),p=Hd.getValue(t.icon.crossorigin,e,i),f=Hd.getValue(t.icon.anchororigin,e,i),m=o+r+n+s+a+l+h+c+u+d+g+p+f+f+Hd.getValue(t.icon.size,e,i);let _=Tg[m];return _||(_=new xg({anchor:Hd.getValue(t.icon.anchor,e,i),anchorXUnits:Hd.getValue(t.icon.anchorxunits,e,i),anchorYUnits:Hd.getValue(t.icon.anchoryunits,e,i),src:Hd.getValue(t.icon.src,e,i),opacity:Hd.getValue(t.icon.opacity,e,i),scale:Hd.getValue(t.icon.scale,e,i),rotation:Hd.getValue(t.icon.rotation,e,i),rotateWithView:Hd.getValue(t.icon.rotate,e,i),snapToPixel:Hd.getValue(t.icon.snaptopixel,e,i),offsetOrigin:Hd.getValue(t.icon.offsetorigin,e,i),offset:Hd.getValue(t.icon.offset,e,i),crossOrigin:Hd.getValue(t.icon.crossorigin,e,i),anchorOrigin:Hd.getValue(t.icon.anchororigin,e,i),size:Hd.getValue(t.icon.size,e,i)}),Tg[m]=_),_})(r,e,i),l.setImage(t))}const h=Cg(r,e,i);return xE(r.label)||mE(h.getText())||a.setText(h),[a,l]},Mg=(t,e,i)=>{const r=t||{},n=Ig(r,e,i),s=((t,e,i)=>{let r;if(!xE(t.fill)){const n=Hd.getValue(t.fill.color,e,i);let s=Hd.getValue(t.fill.opacity,e,i);s||0===s||(s=1);const o=Hd.getValue(t.fill.width,e,i);xE(n)||(r=new cg({color:l()(n).alpha(s).css(),width:o}))}return r})(r,e,i),o=((t,e,i)=>{const{label:r}=t;let n;if(!xE(r)){const i={text:void 0===Hd.getValue(r.text,e)?void 0:String(Hd.getValue(r.text,e)),font:Hd.getValue(r.font,e),fill:new lg({color:Hd.getValue(r.color||"#000",e)}),textBaseline:(Hd.getValue(r.baseline,e)||"").toLowerCase(),textAlign:Hd.getValue(r.align,e),scale:Hd.getValue(r.scale,e),rotateWithView:Hd.getValue(r.rotate,e)||!1,textOverflow:Hd.getValue(r.textoverflow,e)||"",minWidth:Hd.getValue(r.minwidth,e)||0,geometry:Hd.getValue(r.geometry,e),offsetX:Hd.getValue(t.label.offset?t.label.offset[0]:void 0,e),offsetY:Hd.getValue(t.label.offset?t.label.offset[1]:void 0,e)};n=new vg(i),xE(r.stroke)||n.setStroke(new cg({color:Hd.getValue(r.stroke.color,e),width:Hd.getValue(r.stroke.width,e),lineCap:Hd.getValue(r.stroke.linecap,e),lineJoin:Hd.getValue(r.stroke.linejoin,e),lineDash:Hd.getValue(r.stroke.linedash,e),lineDashOffset:Hd.getValue(r.stroke.linedashoffset,e),miterLimit:Hd.getValue(r.stroke.miterlimit,e)}))}return n})(r,e),a=new mg,h=new mg;if(!xE(o)){!0===Hd.getValue(o.path,e)?(a.textPath=o,!xE(o.smooth)&&!0===o.smooth&&bE(e.getGeometry)&&a.setGeometry(e.getGeometry().cspline())):a.setText(o)}return a.setStroke(n),h.setStroke(s),[a,h]},Og=(t,e,i)=>{const r=t||{},n=new mg,s=Ig(r,e,i);let o=Sg(r,e,i);const a=Cg(r,e,i);return r.fill&&!xE(r.fill.pattern)&&(o=((t,e,i,r)=>{let n="rgba(0,0,0,1)";if(!xE(t.fill.pattern.color)){let r=Hd.getValue(t.fill.pattern.opacity,e,i)||1;r||0===r||(r=1),n=l()(t.fill.pattern.color).alpha(r).css()}return new wg({pattern:(Hd.getValue(t.fill.pattern.name,e,i)||"").toLowerCase(),color:n,size:Hd.getValue(t.fill.pattern.size,e,i),spacing:Hd.getValue(t.fill.pattern.spacing,e,i),image:"IMAGE"===Hd.getValue(t.fill.pattern.name,e,i)?new Rd({src:Hd.getValue(t.fill.pattern.src,e,i)}):void 0,angle:Hd.getValue(t.fill.pattern.rotation,e,i),scale:Hd.getValue(t.fill.pattern.scale,e,i),offset:Hd.getValue(t.fill.pattern.offset,e,i),fill:r})})(r,e,i)),n.setFill(o),n.setStroke(s),n.setText(a),[n]},Rg={Point:(...t)=>Lg(t[0].point,t[1],t[2]),LineString:(...t)=>Mg(t[0].line,t[1],t[2]),Polygon:(...t)=>Og(t[0].polygon,t[1],t[2]),MultiPoint:(...t)=>Lg(t[0].point,t[1],t[2]),MultiLineString:(...t)=>Mg(t[0].line,t[1],t[2]),MultiPolygon:(...t)=>Og(t[0].polygon,t[1],t[2])};var Pg=class extends Hd{constructor(t={}){super(t),this.styles_={}}toImage(){const t=30;let e=null,i=null,r=null;const n=aS(),s=[];mE(this.options_.polygon)||(i=e=>new Promise((i,r)=>{const n=new Image;if(n.onload=()=>i(n),n.onerror=r,!0===sS(this.options_.polygon))n.src=e,n.width=t,n.height=t;else{const t=(0,Rg.Polygon)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=10;const i=Bd(e.getContext("2d"));i.setStyle(t[0],0,0);const r=[20,7],s=Math.floor(r[0]),o=Math.floor(r[1]),a=r[0]-s,l=r[1]-o;i.drawGeometry(new No([[[a+1,l+1],[s-1,l+1],[s-1,o-1],[a+1,o-1],[a+1,l+1]]])),n.src=e.toDataURL()}}),s.push(i(n))),mE(this.options_.line)||(r=t=>new Promise((e,i)=>{const r=new Image;if(r.onload=()=>e(r),r.onerror=i,!0===sS(this.options_.line))r.src=t,r.width=30,r.height=30;else{const t=(0,Rg.LineString)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=15;const i=Bd(e.getContext("2d"));i.setStyle(t[0],0,0);const n=20,s=10,o=mE(t[0].getStroke())?1.5:t[0].getStroke().getWidth();i.drawGeometry(new rc([[0+o/2,0+o/2],[n/3,s/2-o/2],[2*n/3,0+o/2],[n-o/2,s/2-o/2]])),r.src=e.toDataURL()}}),s.push(r(n))),mE(this.options_.point)||(e=e=>new Promise((i,r)=>{const n=new Image;if(this.options_.point.icon){if(this.options_.point.icon.src)this.options_.point.icon.src.startsWith(window.location.origin)?n.src=this.options_.point.icon.src:QE(this.options_.point.icon.src).then(e=>{n.onload=()=>i(n),n.onerror=r;const s=GE([M.config.PROXY_URL,"/image"]);n.crossOrigin="anonymous",n.src=LE(s,{url:this.options_.point.icon.src}),n.width=t,n.height=t;const o=t/(e.width/e.height);n.height=e.width>e.height?o:n.height,n.width=e.height>e.width?t/(e.height/e.width):n.width});else if(this.options_.point.icon.form){n.onload=()=>i(n),n.width=t,n.height=t;const e=(0,Rg.Point)(this.options_,this,this.layer_)[1].getImage().getImage(1);null!=e&&e&&(n.src=e.toDataURL())}}else if(n.onload=()=>i(n),n.onerror=r,n.width=10,n.height=10,!0===sS(this.options_.point))n.src=e;else{const t=(0,Rg.Point)(this.options_,this,this.layer_);t[0].getImage().setRadius(5);const e=t[0].getImage().getImage(1).toDataURL();n.src=e}}),s.push(e(n)));const o=document.createElement("canvas");o.height=20;const a=o.getContext("2d"),l=[0,35,70];let h=0;return Promise.all(s).then(t=>{const e=t.length;o.width=1===e?35:2===e?70:100;let i=0;return t.forEach(t=>{t.height>i&&(i=t.height)}),o.height=i,t.forEach(t=>{a.drawImage(t,l[h],0,t.width,t.height),h+=1}),o.toDataURL()})}updateFacadeOptions(t){this.olStyleFn_=e=>{const i=JSON.stringify(e.getProperties());let r=[];this.styles_=[];let n=e;if(n instanceof Zh||n instanceof dc){const e=n.getGeometry().getType(),s=Rg[e];bE(s)&&(r=s(t,n,this.layer_),this.styles_[i]=r)}else n=this;return r}}drawGeometryToCanvas(t){}updateCanvas(t){}getCanvasSize(){return 0}getRadius_(t){let e;return e=t instanceof Rd?25:t instanceof Yd?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}};class Ng extends tl{constructor(t,e){super(e),this.options_=t,this.canvas_=document.createElement("canvas"),this.updateCanvasPromise_=null,this.layer_=null}get canvas(){return this.canvas_}apply(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}unapply(t){}get(t){let e;if(e=this.options_[t],xE(e)){const i=t.split(".");i.length>1&&(e=i.reduce((t,e)=>{let i;return xE(t)||(i=t[e],t instanceof Ng&&(i=t.get(e))),i},this))}return e}set(t,e){const i=this.get(t);return Ng.setValue(this.options_,t,e),xE(this.layer_)||this.getImpl().updateFacadeOptions(this.options_),xE(this.feature_)||this.applyToFeature(this.feature_),this.fire(El,[t,i,e]),this.refresh(),this}static setValue(t,e,i){let r=i;const n=t,s=vE(e)?e:e.split("."),o=s.length,a=s[0];1===o?(vE(r)?r=[...r]:wE(r)&&(r=Object.assign({},r)),n[a]=r):o>1&&(xE(n[a])&&(n[a]={}),Ng.setValue(n[a],s.slice(1,o),r))}refresh(t=null){if(xE(t)||(this.layer_=t),!xE(this.layer_)&&(this.apply(this.layer_),this.updateCanvas(),!xE(this.layer_.getImpl().getMap()))){const t=this.layer_.getImpl().getMap().getControls("layerswitcher")[0];xE(t)||t.render()}}getOptions(){return this.options_}toImage(){let t;if(xE(this.updateCanvasPromise_))if(xE(this.options_.icon)||xE(this.options_.icon.src))t=this.canvas_.toDataURL("png");else{const e=new Image;e.crossOrigin="Anonymous";const i=this.canvas_;e.onload=()=>{i.getContext("2d").drawImage(this,0,0,50,50)},e.src=this.options_.icon.src,t=this.canvas_.toDataURL("png")}else t=this.updateCanvasPromise_.then(()=>this.canvas_.toDataURL("png"));return t}updateCanvas(){this.updateCanvasPromise_=this.getImpl().updateCanvas(this.canvas_)}equals(t){return this.constructor===t.constructor}clone(){const t={};KE(t,this.options_);const e=new(0,this.getImpl().constructor)(t);return new this.constructor(t,e)}toJSON(){return{parameters:[tS(this.getOptions())],deserializedMethod:this.getDeserializedMethod_()}}serialize(){return window.btoa(unescape(encodeURIComponent(JSON.stringify(this))))}static deserialize(t){const e=decodeURIComponent(escape(window.atob(t))),{parameters:i,deserializedMethod:r}=JSON.parse(e);return new Function("serializedParams",`return ${r}(serializedParams)`)(i)}}var Ag=Ng;var Fg=class extends Ag{constructor(t,e){super(t,e),this.feature_=null}applyToFeature(t){this.feature_=t,this.getImpl().applyToFeature(t)}};var kg=class extends Fg{apply(t,e,i){this.layer_=t,this.getImpl().applyToLayer(t),!0===e&&(i?t.getFeatures().forEach(t=>{t.style=null}):t.getFeatures().forEach(t=>{t.setStyle(this.clone())})),this.updateCanvas()}toImage(){let t=super.toImage();const e={fill:this.options_.fill,stroke:this.options_.stroke};return!0===sS(e)&&(t=aS(this.canvas_)),t}get ORDER(){return 1}static deserialize(t,e){const i=eS(t),r=i.map((t,e)=>"arg"+e),n=r.reduce((t,e)=>t.concat(", ").concat(e));return new Function(r,`return new ${e}(${n})`)(...i)}};class Dg extends kg{constructor(t){let e=t;e=xE(e)?Dg.DEFAULT_NULL:KE(e,Dg.DEFAULT),e=KE({},e);super(e,new Pg(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Generic'))"}}Dg.DEFAULT={point:{radius:5}},Dg.PARAMS_DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},Dg.DEFAULT_NULL={point:{...Dg.PARAMS_DEFAULT_NULL,radius:5},line:{...Dg.PARAMS_DEFAULT_NULL},polygon:{...Dg.PARAMS_DEFAULT_NULL}};var jg=Dg;function Gg(t){return new mg({fill:zg(t,""),stroke:Bg(t,""),text:Ug(t),image:Vg(t)})}function zg(t,e){const i=t[e+"fill-color"];if(i)return new lg({color:i})}function Bg(t,e){const i=t[e+"stroke-width"],r=t[e+"stroke-color"];if(i||r)return new cg({width:i,color:r,lineCap:t[e+"stroke-line-cap"],lineJoin:t[e+"stroke-line-join"],lineDash:t[e+"stroke-line-dash"],lineDashOffset:t[e+"stroke-line-dash-offset"],miterLimit:t[e+"stroke-miter-limit"]})}function Ug(t){const e=t["text-value"];if(!e)return;return new yg({text:e,font:t["text-font"],maxAngle:t["text-max-angle"],offsetX:t["text-offset-x"],offsetY:t["text-offset-y"],overflow:t["text-overflow"],placement:t["text-placement"],scale:t["text-scale"],rotateWithView:t["text-rotate-with-view"],rotation:t["text-rotation"],textAlign:t["text-align"],justify:t["text-justify"],textBaseline:t["text-baseline"],padding:t["text-padding"],fill:zg(t,"text-"),backgroundFill:zg(t,"text-background-"),stroke:Bg(t,"text-"),backgroundStroke:Bg(t,"text-background-")})}function Vg(t){const e=t["icon-src"],i=t["icon-img"];if(e||i){return new Rd({src:e,img:i,imgSize:t["icon-img-size"],anchor:t["icon-anchor"],anchorOrigin:t["icon-anchor-origin"],anchorXUnits:t["icon-anchor-x-units"],anchorYUnits:t["icon-anchor-y-units"],color:t["icon-color"],crossOrigin:t["icon-cross-origin"],offset:t["icon-offset"],displacement:t["icon-displacement"],opacity:t["icon-opacity"],scale:t["icon-scale"],rotation:t["icon-rotation"],rotateWithView:t["icon-rotate-with-view"],size:t["icon-size"],declutterMode:t["icon-declutter-mode"]})}const r=t["shape-points"];if(r){const e="shape-";return new qd({points:r,fill:zg(t,e),stroke:Bg(t,e),radius:t["shape-radius"],radius1:t["shape-radius1"],radius2:t["shape-radius2"],angle:t["shape-angle"],displacement:t["shape-displacement"],rotation:t["shape-rotation"],rotateWithView:t["shape-rotate-with-view"],scale:t["shape-scale"],declutterMode:t["shape-declutter-mode"]})}const n=t["circle-radius"];if(n){const e="circle-";return new og({radius:n,fill:zg(t,e),stroke:Bg(t,e),displacement:t["circle-displacement"],scale:t["circle-scale"],rotation:t["circle-rotation"],rotateWithView:t["circle-rotate-with-view"],declutterMode:t["circle-declutter-mode"]})}}const qg="renderOrder";class Yg extends yn.a{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(qg)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new od.a(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(qg,t)}setStyle(t){let e;if(void 0===t)e=gg;else if(null===t)e=null;else if("function"==typeof t)e=t;else if(t instanceof mg)e=t;else if(Array.isArray(t)){const i=t.length,r=new Array(i);for(let e=0;eo&&(this.instructions.push([Jg.CUSTOM,o,l,t,i,uo]),this.hitDetectionInstructions.push([Jg.CUSTOM,o,l,t,r||i,uo]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([Jg.CUSTOM,o,l,t,i]),this.hitDetectionInstructions.push([Jg.CUSTOM,o,l,t,r||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[Jg.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[Jg.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let r,n,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[Jg.SET_FILL_STYLE,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[Jg.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,r=t.lineCap,n=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=r||n!=t.currentLineDash&&!Object(u.c)(t.currentLineDash,n)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=r,t.currentLineDash=n,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[Jg.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Object(pt.e)(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;Object(pt.d)(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}};var ep=class extends tp{constructor(t,e,i,r){super(t,e,i,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,s=this.appendFlatPointCoordinates(i,r);this.instructions.push([Jg.DRAW_IMAGE,n,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Jg.DRAW_IMAGE,n,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),r=t.getStride(),n=this.coordinates.length,s=this.appendFlatPointCoordinates(i,r);this.instructions.push([Jg.DRAW_IMAGE,n,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([Jg.DRAW_IMAGE,n,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,this.opacity_,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),r=t.getSize(),n=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=r[1],this.opacity_=t.getOpacity(),this.originX_=n[0],this.originY_=n[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=r[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}};var ip=class extends tp{constructor(t,e,i,r){super(t,e,i,r)}drawFlatCoordinates_(t,e,i,r){const n=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,r,!1,!1),o=[Jg.MOVE_TO_LINE_TO,n,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0===r||void 0===n)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Jg.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,zn,0],Kg);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(Zg),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,r=i.strokeStyle,n=i.lineWidth;if(void 0===r||void 0===n)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([Jg.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,i.lineDash,i.lineDashOffset],Kg);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;tt&&(y>_&&(_=y,f=v,m=o),y=0,v=o-n)),a=l,u=g,d=p),h=i,c=r}return y+=l,y>_?[v,o]:[f,m]}const sp={left:0,end:0,center:.5,right:1,start:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};const op={Circle:rp,Default:tp,Image:ep,LineString:ip,Polygon:rp,Text:class extends tp{constructor(t,e,i,r){super(t,e,i,r),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,r=this.textStrokeState_,n=this.textState_;if(""===this.text_||!n||!i&&!r)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==n.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=n.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),n.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,r=e.length;t{const r=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return r||--t,r})}this.saveTextStates_(),(n.backgroundFill||n.backgroundStroke)&&(this.setFillStrokeStyle(n.backgroundFill,n.backgroundStroke),n.backgroundFill&&(this.updateFillStyle(this.state,this.createFill),this.hitDetectionInstructions.push(this.createFill(this.state))),n.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=n.padding;if(c!=Yn&&(n.scale[0]<0||n.scale[1]<0)){let t=n.padding[0],e=n.padding[1],i=n.padding[2],r=n.padding[3];n.scale[0]<0&&(e=-e,r=-r),n.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,r]}const u=this.pixelRatio;this.instructions.push([Jg.DRAW_IMAGE,o,r,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==Yn?Yn:c.map((function(t){return t*u})),!!n.backgroundFill,!!n.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const d=1/u;this.hitDetectionInstructions.push([Jg.DRAW_IMAGE,o,r,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[d,d],NaN,void 0,this.declutterImageWithText_,c,!!n.backgroundFill,!!n.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),this.endGeometry(e)}else{if(!Object(pt.H)(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,r=e.length;tt[2]}else T=x>I;const L=Math.PI,M=[],O=w+r===e;let R;if(m=0,_=E,d=t[e=w],g=t[e+1],O){y(),R=Math.atan2(g-f,d-p),T&&(R+=R>0?-L:L);const t=(I+x)/2,e=(C+b)/2;return M[0]=[t,e,(S-s)/2,R,n],M}for(let t=0,u=(n=n.replace(/\n/g," ")).length;t0?-L:L),void 0!==R){let t=x-R;if(t+=t>L?-2*L:t<-L?2*L:0,Math.abs(t)>o)return null}R=x;const b=t;let w=0;for(;t0&&t.push("\n",""),t.push(e,""),t}var vp=class{constructor(t,e,i,r){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Object(gn.d)(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,r){const n=t+e+i+r;if(this.labels_[n])return this.labels_[n];const s=r?this.strokeStates[r]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?sp[a.justify]:_p(Array.isArray(t)?t[0]:t,a.textAlign||Vn),d=r&&s.lineWidth?s.lineWidth:0,g=c?t:t.split("\n").reduce(yp,[]),{width:p,height:f,widths:m,heights:_,lineWidths:y}=function(t,e){const i=[],r=[],n=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),n.push(o),o=0,a+=l;continue}const d=e[h+1]||t.font,g=Qn(d,u);i.push(g),o+=g;const p=$n(d);r.push(p),l=Math.max(l,p)}return{width:s,height:a,widths:i,heights:r,lineWidths:n}}(a,g),v=p+d,x=[],b=(v+2)*h[0],w=(f+d)*h[1],E={width:b<0?Math.floor(b):Math.ceil(b),height:w<0?Math.floor(w):Math.ceil(w),contextInstructions:x};1==h[0]&&1==h[1]||x.push("scale",h),r&&(x.push("strokeStyle",s.strokeStyle),x.push("lineWidth",d),x.push("lineCap",s.lineCap),x.push("lineJoin",s.lineJoin),x.push("miterLimit",s.miterLimit),x.push("setLineDash",[s.lineDash]),x.push("lineDashOffset",s.lineDashOffset)),i&&x.push("fillStyle",o.fillStyle),x.push("textBaseline","middle"),x.push("textAlign","center");const S=.5-u;let I=u*v+S*d;const C=[],T=[];let L,M=0,O=0,R=0,P=0;for(let t=0,e=g.length;tt?t-l:n,v=s+h>e?e-h:s,x=g[3]+y*u[0]+g[1],b=g[0]+v*u[1]+g[2],w=m-g[3],E=_-g[0];let S;return(p||0!==c)&&(up[0]=w,pp[0]=w,up[1]=E,dp[1]=E,dp[0]=w+x,gp[0]=dp[0],gp[1]=E+b,pp[1]=gp[1]),0!==c?(S=Object(gn.b)(Object(gn.d)(),i,r,1,1,c,-i,-r),Object(gn.a)(S,up),Object(gn.a)(S,dp),Object(gn.a)(S,gp),Object(gn.a)(S,pp),Object(pt.l)(Math.min(up[0],dp[0],gp[0],pp[0]),Math.min(up[1],dp[1],gp[1],pp[1]),Math.max(up[0],dp[0],gp[0],pp[0]),Math.max(up[1],dp[1],gp[1],pp[1]),cp)):Object(pt.l)(Math.min(w,w+x),Math.min(E,E+b),Math.max(w,w+x),Math.max(E,E+b),cp),d&&(m=Math.round(m),_=Math.round(_)),{drawImageX:m,drawImageY:_,drawImageW:y,drawImageH:v,originX:l,originY:h,declutterBox:{minX:cp[0],minY:cp[1],maxX:cp[2],maxY:cp[3],value:f},canvasTransform:S,scale:u}}replayImageOrLabel_(t,e,i,r,n,s,o){const a=!(!s&&!o),l=r.declutterBox,h=t.canvas,c=o?o[2]*r.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,up,dp,gp,pp,s,o),es(t,r.canvasTransform,n,i,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(t){if(this.alignFill_){const e=Object(gn.a)(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,r){const n=this.textStates[e],s=this.createLabel(t,e,r,i),o=this.strokeStates[i],a=this.pixelRatio,l=_p(Array.isArray(t)?t[0]:t,n.textAlign||Vn),h=sp[n.textBaseline||qn],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*n.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,r,n,s,o,a){let l;this.pixelCoordinates_&&Object(u.c)(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=qs(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),Object(gn.k)(this.renderedTransform_,i));let h=0;const c=r.length;let d,g,p,f,m,_,y,v,x,b,w,E,S=0,I=0,C=0,T=null,L=null;const M=this.coordinateCache_,O=this.viewRotation_,R=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,P={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:O},N=this.instructions!=r||this.overlaps?0:200;let A,F,k,D;for(;hN&&(this.fill_(t),I=0),C>N&&(t.stroke(),C=0),I||C||(t.beginPath(),f=NaN,m=NaN),++h;break;case Jg.CIRCLE:S=i[1];const r=l[S],c=l[S+1],u=l[S+2]-r,j=l[S+3]-c,G=Math.sqrt(u*u+j*j);t.moveTo(r+G,c),t.arc(r,c,G,0,2*Math.PI,!0),++h;break;case Jg.CLOSE_PATH:t.closePath(),++h;break;case Jg.CUSTOM:S=i[1],d=i[2];const z=i[3],B=i[4],U=6==i.length?i[5]:void 0;P.geometry=z,P.feature=A,h in M||(M[h]=[]);const V=M[h];U?U(l,S,d,2,V):(V[0]=l[S],V[1]=l[S+1],V.length=2),B(V,P),++h;break;case Jg.DRAW_IMAGE:S=i[1],d=i[2],v=i[3],g=i[4],p=i[5];let q=i[6];const Y=i[7],W=i[8],X=i[9],H=i[10];let Z=i[11];const K=i[12];let $=i[13];const J=i[14],Q=i[15];if(!v&&i.length>=20){x=i[19],b=i[20],w=i[21],E=i[22];const t=this.drawLabelWithPointPlacement_(x,b,w,E);v=t.label,i[3]=v;const e=i[23];g=(t.anchorX-e)*this.pixelRatio,i[4]=g;const r=i[24];p=(t.anchorY-r)*this.pixelRatio,i[5]=p,q=v.height,i[6]=q,$=v.width,i[13]=$}let tt,et,it,rt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],rt=i[18]):(et=Yn,it=!1,rt=!1),H&&R?Z+=O:H||R||(Z-=O);let nt=0;for(;Si)break;let a=r[o];a||(a=[],r[o]=a),a.push(4*((t+n)*e+(t+s))+3),n>0&&a.push(4*((t-n)*e+(t+s))+3),s>0&&(a.push(4*((t+n)*e+(t-s))+3),n>0&&a.push(4*((t-n)*e+(t-s))+3))}const n=[];for(let t=0,e=r.length;t0){if(!s||"Image"!==g&&"Text"!==g||s.includes(t)){const i=(d[a]-3)/4,s=r-i%o,l=r-(i/o|0),h=n(t,e,s*s+l*l);if(h)return h}h.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let m,_,y,v,x;for(f.sort(u.a),m=f.length-1;m>=0;--m){const t=f[m].toString();for(y=this.executorsByZIndex_[t],_=xp.length-1;_>=0;--_)if(g=xp[_],v=y[g],void 0!==v&&(x=v.executeHitDetection(h,a,i,p,c),x))return x}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],r=e[1],n=e[2],s=e[3],o=[i,r,i,s,n,s,n,r];return qs(o,0,8,2,t,o),o}isEmpty(){return Object(Fn.b)(this.executorsByZIndex_)}execute(t,e,i,r,n,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let l,h,c,d,g,p;for(a.sort(u.a),this.maxExtent_&&(t.save(),this.clip(t,i)),s=s||xp,o&&a.reverse(),l=0,h=a.length;l{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];Object(gn.a)(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,r=this.renderedRotation_,n=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*Ep,h=t[1]*Ep;a.push(this.getRenderTransform(e,i,r,Ep,l,h,0).slice());const c=o.getSource(),u=n.getExtent();if(c.getWrapX()&&n.canWrapX()&&!Object(pt.h)(u,s)){let t=s[0];const n=Object(pt.G)(u);let o,c=0;for(;tu[2];)++c,o=n*c,a.push(this.getRenderTransform(e,i,r,Ep,l,h,o).slice()),t-=n}this.hitDetectionImageData_=Sp(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,r)}e(Ip(t,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(t,e,i,r,n){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=Object(dn.b)(t),o=l[s];if(o){if(!0!==o&&ic=r.forEachFeatureAtCoordinate(t,s,o,i,h,r===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map(t=>t.value):null)),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const r=t.viewHints[Ps.a.ANIMATING],n=t.viewHints[Ps.a.INTERACTING],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&r||!o&&n)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,c=l.projection,d=l.resolution,g=t.pixelRatio,p=e.getRevision(),f=e.getRenderBuffer();let m=e.getRenderOrder();void 0===m&&(m=kd);const _=l.center.slice(),y=Object(pt.d)(a,f*d),v=y.slice(),x=[y.slice()],b=c.getExtent();if(i.getWrapX()&&c.canWrapX()&&!Object(pt.h)(b,t.extent)){const t=Object(pt.G)(b),e=Math.max(Object(pt.G)(y)/2,t);y[0]=b[0]-e,y[2]=b[2]+e,Object(vn.p)(_,c);const i=Object(pt.N)(x[0],c);i[0]b[0]&&i[2]>b[2]&&x.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==d&&this.renderedRevision_==p&&this.renderedRenderOrder_==m&&Object(pt.h)(this.wrappedRenderedExtent_,y))return Object(u.c)(this.renderedExtent_,v)||(this.hitDetectionImageData_=null,this.renderedExtent_=v),this.renderedCenter_=_,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const w=new ap(jd(d,g),y,d,g);let E;this.getLayer().getDeclutter()&&(E=new ap(jd(d,g),y,d,g));const S=Object(h.s)();let I;if(S){for(let t=0,e=x.length;t{let i;const r=t.getStyleFunction()||e.getStyleFunction();if(r&&(i=r(t,d)),i){const e=this.renderFeature(t,C,i,w,I,E);T=T&&!e}},M=Object(h.x)(y,c),O=i.getFeaturesInExtent(M);m&&O.sort(m);for(let t=0,e=O.length;t{const i=e.get("features");let r;return xE(i)||(r=i.find(e=>e===t)),r})}animate(t){const e=t,i=this.get("animationDuration");if(!i)return;if(this.animation_.resolution!==e.frameState.viewState.resolution&&this.sourceChanged){const t=e.frameState.viewState.resolution,i=e.frameState.extent;this.animation_.reverse=this.animation_.resolution>=t,this.prepareAnimation_(i,e.frameState.viewState.resolution),e.frameState.time=this.animation_.start}const r=this.animation_.clustersFrom.length;if(r>0&&r<=1e3&&this.animation_.start){const t=Ud(e);let r=(e.frameState.time-this.animation_.start)/i;r>1&&(this.animation_.start=!1,r=1),r=this.get("animationMethod")(r),e.context.save(),e.context.globalAlpha=this.getOpacity(),this.animation_.clustersFrom.forEach((i,n)=>{const s=i.getGeometry().getCoordinates(),o=this.animation_.clustersTo[n].getGeometry().getCoordinates();this.animation_.reverse?(s[0]=o[0]+r*(s[0]-o[0]),s[1]=o[1]+r*(s[1]-o[1])):(s[0]+=r*(o[0]-s[0]),s[1]+=r*(o[1]-s[1]));const a=this.getStyle()(i,e.frameState.viewState.resolution),l=new xo(s);xE(a)||a.forEach(e=>{const i=e.getImage();xE(i)||(null==i.getOrigin()&&(i.origin_=[]),null==i.getAnchor()&&(i.normalizedAnchor_=[]),null==i.getSize()&&(i.size_=[])),t.setStyle(e),t.drawGeometry(l)})}),e.context.restore(),e.frameState.animate=!0,e.context.save(),e.context.beginPath(),e.context.rect(0,0,0,0),e.context.clip(),this.clip_=!0}else this.animation_.clustersFrom.length=0,this.animation_.clustersTo.length=0,this.animation_.start=!1}prepareAnimation_(t,e){this.animation_.clustersFrom=[],this.animation_.clustersTo=[];const i=Object(pt.d)(t,100*e),r=this.oldCluster_.getFeaturesInExtent(i),n=this.getSource().getFeaturesInExtent(i),s=this.animation_.reverse?n:r,o=this.animation_.reverse?r:n;s.forEach(t=>{const e=t.get("features");if(!xE(e)){const i=Mp.getClusterForFeature(e[0],o);xE(i)||!1===i||(this.animation_.clustersFrom.push(t),this.animation_.clustersTo.push(i))}}),this.animation_.resolution=e,this.sourceChanged=!1,this.animation_.start=(new Date).getTime()}postanimate(t){this.clip_&&(t.context.restore(),this.clip_=!1)}setStyle(t){super.setStyle(this.styleCluster_)}}var Op=Mp;const Rp="select";class Pp extends sn.a{constructor(t,e,i,r){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=r}}const Np={};class Ap extends Jo{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:ca,this.addCondition_=t.addCondition?t.addCondition:ha,this.removeCondition_=t.removeCondition?t.removeCondition:ha,this.toggleCondition_=t.toggleCondition?t.toggleCondition:da,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:un.b,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=pg();return Object(u.d)(t.Polygon,t.LineString),Object(u.d)(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new hn,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=un.b;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[Object(dn.b)(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[Object(dn.b)(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(rn,this.boundAddFeature_),this.features_.addEventListener(nn,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(rn,this.boundAddFeature_),this.features_.removeEventListener(nn,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof Lp&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=Object(dn.b)(t);e in Np||(Np[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const r=e[i];if(r!==this&&r instanceof Ap&&r.getStyle()&&-1!==r.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(r.getStyle())}const i=Object(dn.b)(t);t.setStyle(Np[i]),delete Np[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[Object(dn.b)(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),r=this.toggleCondition_(t),n=!e&&!i&&!r,s=t.map,o=this.getFeatures(),a=[],l=[];if(n){Object(Fn.a)(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,(t,e)=>{if(t instanceof Zh&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_},{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,(t,n)=>{if(t instanceof Zh&&this.filter_(t,n))return!e&&!r||o.getArray().includes(t)?(i||r)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,n),l.push(t)),!this.multi_},{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new Pp(Rp,l,a,t)),!0}}var Fp=Ap;var kp=class extends Fp{constructor(t={}){const e=t,i=new Lp({source:new Ed({features:new hn,useSpatialIndex:!0}),name:"Cluster overlay",updateWhileAnimating:!0,updateWhileInteracting:!0,displayInLayerSwitcher:!1,style:e.featureStyle});t.layers.push(i),e.filter=(t,e)=>!(!e&&t.get("selectclusterlink")),super(e),this.map=e.map,this.pointRadius=e.pointRadius||12,this.circleMaxObjects=e.circleMaxObjects||10,this.maxObjects=e.maxObjects||60,this.spiral=!1!==e.spiral,this.animate=e.animate,this.animationDuration=e.animationDuration||500,this.selectCluster_=!1!==e.selectCluster,this.maxFeaturesToSelect=e.maxFeaturesToSelect,this.facadeLayer_=e.fLayer,this.style_=e.style,this.filter_=e.filter,this.overlayLayer_=i,this.originalHandleEvent=this.handleEvent,this.on("select",this.selectCluster.bind(this),this)}setMap(t){this.getMap()&&(this.getMap().getView()&&this.getMap().getView().un("change:resolution",this.clear.bind(this)),this.getMap().removeLayer(this.overlayLayer_)),Fp.prototype.setMap.call(this,t),this.overlayLayer_.setMap(t),t&&t.getView()&&t.getView().on("change:resolution",this.clear.bind(this)),this.handleEvent=t=>(this.originalHandleEvent.apply(this,[t]),!0)}clear(){this.getFeatures().clear(),this.overlayLayer_.getSource().clear()}getLayer(){return this.overlayLayer_}refreshViewEvents(){this.getMap()&&this.getMap().getView()&&this.getMap().getView().on("change:resolution",this.clear.bind(this))}selectCluster(t){if(!t.selected.length)return void this.clear();const e=t.selected[0];if(e.get("selectclusterfeature"))return;const i=e.get("features");if(!i||1===i.length)return;if((!i||i.length>this.maxFeaturesToSelect)&&this.facadeLayer_.getImpl().getNumZoomLevels()-this.map.getZoom()!=1){const t=xc.getFeaturesExtent(i,this.map.getProjection().code);return void this.map.setBbox(t)}this.selectCluster_||this.getFeatures().clear();const r=e.getGeometry().getCoordinates(),n=this.getMap().getView().getResolution(),s=n*this.pointRadius*(.5+i.length/4);!this.spiral||i.length<=this.circleMaxObjects?(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInCircle_(i,n,s,r)):(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInSpiral_(i,n,r)),this.animate&&this.animateCluster_(r)}drawFeaturesAndLinsInCircle_(t,e,i,r){const n=Math.min(t.length,this.circleMaxObjects);for(let s=0;s{n.set(e,t.get(e))});let s=t.getStyle();s||(s=this.facadeLayer_.getStyle().getImpl().oldOLLayer.getStyle());const o=s(t,e),a=o.map?o.map(t=>t.clone()):[o.clone()];n.setId(t.getId()),n.setStyle(a),n.set("features",[t]);const l=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new xo(r):t.getGeometry(),h=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new rc([i,r]):new rc([i,xc.getCentroid(t.getGeometry())]);n.set("geometry",l),this.overlayLayer_.getSource().addFeature(n);const c=new Zh({selectclusterlink:!0,geometry:h});this.overlayLayer_.getSource().addFeature(c)}animateCluster_(t,e){this.listenerKey_&&(this.overlayLayer_.setVisible(!0),Object(nd.b)(this.listenerKey_));const i=this.overlayLayer_.getSource().getFeatures();if(!i.length)return;this.overlayLayer_.setVisible(!1);const r=this.animationDuration||500,n=(new Date).getTime();this.listenerKey_=this.facadeLayer_.getImpl().getOLLayer().on(["postrender","postcompose"],e=>{const s=Ud(e),o=this.getMap().getView().getResolution(),a=Object(Vs.easeOut)((e.frameState.time-n)/r);for(let r=0;rt.clone());for(let e=0;et.clone()):[d.clone()];for(let t=0;t1)return Object(nd.b)(this.listenerKey_),this.overlayLayer_.setVisible(!0),void this.overlayLayer_.changed();e.frameState.animate=!0}},this)}};class Dp extends mg{constructor(t={}){super(t)}clone(){let t=this.getGeometry();return t&&t.clone&&(t=t.clone()),new Dp({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}}var jp=Dp;const Gp=(t,e,i)=>(t[0]-i[0])*(e[1]-i[1])-(t[1]-i[1])*(e[0]-i[0])<=0;var zp=t=>{t.sort((t,e)=>t[0]===e[0]?t[1]-e[1]:t[0]-e[0]);const e=[];for(let i=0;i=2&&Gp(e[e.length-2],e[e.length-1],t[i]);)e.pop();e.push(t[i])}const i=[];for(let e=t.length-1;e>=0;e-=1){for(;i.length>=2&&Gp(i[i.length-2],i[i.length-1],t[e]);)i.pop();i.push(t[e])}return i.pop(),e.pop(),e.concat(i)};var Bp=class extends Xd{constructor(t,e){super({}),this.convexHullLayer_=null,this.oldOLLayer_=null,this.optionsVendor_=e,this.options_=t,this.clusterLayer_=null,this.selectClusterInteraction_=null,this.hoverInteraction_=null}applyToLayer(t,e){this.layer_=t,this.options_=this.updateLastRange_(),xE(this.selectClusterInteraction_)||this.selectClusterInteraction_.clear(),this.updateCanvas();const i=t.getFeatures();i.length>0?this.clusterize_(i):this.layer_.on(bl,this.clusterize_.bind(this),this)}get selectClusterInteraction(){return this.selectClusterInteraction_}clusterize_(t){const e=t.map(t=>t.getImpl().getOLFeature());this.clusterLayer_=new Op({name:"Cluster",source:new Sd({distance:this.options_.distance,geometryFunction:t=>new xo(Object(pt.x)(t.getGeometry().getExtent())),source:new Ed({features:e})}),animationDuration:this.optionsVendor_.animationDuration,style:this.clusterStyleFn_.bind(this),animationMethod:Vs[this.optionsVendor_.animationMethod]}),!1===this.options_.animated&&this.clusterLayer_.set("animationDuration",void 0),this.clusterLayer_.setZIndex(99999);const i=this.layer_.getImpl().getOLLayer();i instanceof Op||(this.oldOLLayer_=i),this.clusterLayer_.setMaxResolution(this.oldOLLayer_.getMaxResolution()),this.clusterLayer_.setMinResolution(this.oldOLLayer_.getMinResolution()),this.layer_.getImpl().setOLLayer(this.clusterLayer_),xE(this.options_.ranges)&&(this.options_.ranges=this.getDefaultRanges_()),!1!==this.options_.hoverInteraction&&this.addCoverInteraction_(),!1!==this.options_.selectInteraction&&this.addSelectInteraction_()}setRanges(t){xE(t)?this.options_.ranges=this.getDefaultRanges_():this.options_.ranges=t}updateLastRange_(){const t=KE({},this.options_);if(!xE(this.options_)&&!xE(this.options_.ranges)){let e=t.ranges;if(e.length>0){e=e.sort((t,e)=>t.min-e.min);const i=e.pop();if(xE(i.max)){const t=this.layer_.getFeatures().length;i.max=t}t.ranges.push(i)}}return t}static updateRangeImpl(t,e,i,r,n){const s=n.getOptions().ranges.find(i=>i.min===t&&i.max===e)||!1;return s&&(s.style=i),s}setAnimated(t,e,i){return i.getOptions().animated=t,!1===t?this.clusterLayer_.set("animationDuration",void 0):this.clusterLayer_.set("animationDuration",this.optionsVendor_.animationDuration),this}addSelectInteraction(){this.addSelectInteraction_()}addSelectInteraction_(){const t=this.layer_.getImpl().getMap();this.selectClusterInteraction_=new kp({fLayer:this.layer_,map:t,maxFeaturesToSelect:this.options_.maxFeaturesToSelect,pointRadius:this.optionsVendor_.distanceSelectFeatures,animate:!0,layers:[this.clusterLayer_]}),this.selectClusterInteraction_.on("select",this.selectClusterFeature_.bind(this),this),t.getMapImpl().addInteraction(this.selectClusterInteraction_),t.getMapImpl().on("change:view",t=>this.selectClusterInteraction_.refreshViewEvents(t))}removeSelectInteraction(){this.removeSelectInteraction_()}removeSelectInteraction_(){this.layer_.getImpl().getMap().getMapImpl().removeInteraction(this.selectClusterInteraction_)}hoverFeatureFn_(t,e){if(!xE(t)){let e=[];t.forEach(t=>{t instanceof fS?e=e.concat(t.getAttribute("features")):e.push(t)});const i=e.map(t=>t.getImpl().getOLFeature().getGeometry().getCoordinates()),r=zp(i);if(r.length>2){const t=new Zh(new No([r])),e=dS.olFeature2Facade(t);xE(this.convexHullLayer_)?(this.convexHullLayer_=new wf({name:"cluster_cover_"+this.layer_.name,extract:!1},{displayInLayerSwitcher:!1,style:new jg({polygon:this.optionsVendor_.convexHullStyle})}),this.convexHullLayer_.addFeatures(e),this.layer_.getImpl().getMap().addLayers(this.convexHullLayer_),this.layer_.getImpl().getMap().getMapImpl().getView().on("change:resolution",this.clearConvexHull.bind(this),this),this.convexHullLayer_.setStyle(new jg({polygon:this.optionsVendor_.convexHullStyle})),this.convexHullLayer_.setZIndex(99990)):(this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures()),this.convexHullLayer_.addFeatures(e))}}}leaveFeatureFn_(t,e){xE(this.convexHullLayer_)||this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures())}addCoverInteraction_(){this.hoverKey_=this.layer_.on(vl,this.hoverFeatureFn_.bind(this)),this.leaveKey_=this.layer_.on(xl,this.leaveFeatureFn_.bind(this))}removeCoverInteraction_(){this.layer_.unByKey(vl,this.hoverKey_),this.layer_.unByKey(xl,this.leaveKey_)}clusterStyleFn_(t,e,i){let r;const n=t.get("features");if(!n)return new jp;const s=n.length,o=this.options_.ranges.find(t=>t.min<=s&&t.max>=s);if(xE(o)){if(1===s){let t=n[0].getStyle();t||(t=this.oldOLLayer_.getStyle()),r=t(n[0],e),r[0].setGeometry(n[0].getGeometry())}}else{let n=o.style.clone();if(n instanceof jg||(n=new jg({point:n.getOptions()})),i)n.set("point.fill.opacity",.33);else if(this.options_.displayAmount){n.set("point.label",this.options_.label);let t=n.get("point.label.color");if(xE(t)){const e=n.get("point.fill.color");t=xE(e)?"#000":ZE(e),n.set("point.label.color",t)}}r=n.getImpl().olStyleFn(t,e)}return r}getDefaultRanges_(){const t=this.layer_.getFeatures().length;let e=Math.floor(t/3);e=Math.max(e,3);const i=[{min:2,max:e,style:new jg({point:Yp.RANGE_1_DEFAULT})},{min:e,max:2*e,style:new jg({point:Yp.RANGE_2_DEFAULT})},{min:2*e,max:t+1,style:new jg({point:Yp.RANGE_3_DEFAULT})}];return this.options_.ranges=i,i}selectClusterFeature_(t){this.clearConvexHull()}unapply(){xE(this.clusterLayer_)?xE(this.layer_)||this.layer_.un(bl,this.clusterize_.bind(this),this):(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.oldOLLayer_.setMaxResolution(this.clusterLayer_.getMaxResolution()),this.oldOLLayer_.setMinResolution(this.clusterLayer_.getMinResolution()),this.removeCoverInteraction_(),this.removeSelectInteraction_(),this.clearConvexHull(),this.deactivateChangeResolutionEvent(),this.layer_.redraw(),this.deactivateChangeEvent())}clearConvexHull(){null!==this.convexHullLayer_&&(this.layer_.getImpl().getMap().removeLayers(this.convexHullLayer_),this.convexHullLayer_=null)}updateCanvas(){}activateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource(),e=Sd.prototype.refresh;t.getSource().on("change",e)}}deactivateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource(),e=Sd.prototype.refresh;Object(nd.b)({bindTo:void 0,callOnce:!1,listener:e,target:t.getSource(),type:"change"})}}deactivateChangeResolutionEvent(){if(!xE(this.layer_)&&!xE(this.layer_.getImpl())){const t=this.layer_.getImpl().getMap();if(!xE(t)&&!xE(t.getMapImpl())){const e=t.getMapImpl().getView();Object(nd.b)({type:"change:resolution",bindTo:void 0,listener:this.clearConvexHull,target:e,callOnce:!1})}}}deactivateTemporarilyChangeEvent(t,e){this.deactivateChangeEvent(),bE(t)&&(null==e?t():t(...e))}get oldOLLayer(){return this.oldOLLayer_}};class Up extends Ag{constructor(t,e){super(t,e),this.styles_=[]}apply(t){this.layer_=t,xE(t)||this.updateInternal_(t)}add(t){let e=t;const i=this.layer_;return this.unapplyInternal(this.layer_),vE(e)||(e=[e]),e=e.filter(t=>t.constructor!==this.constructor),e.forEach(t=>{this.styles_=this.styles_.filter(e=>e.constructor!==t.constructor)}),this.styles_=this.styles_.concat(e),xE(i)||this.updateInternal_(i),this}remove(t){let e=t;const i=this.layer_;vE(e)||(e=[e]),xE(this.layer_)||this.unapplyInternal(this.layer_),this.styles_=this.styles_.filter(t=>!e.includes(t)),i.setStyle(this.oldStyle_,!0),i.setStyle(this)}getStyles(){return this.styles_}getOldStyle(){return this.oldStyle_}clear(){this.remove(this.styles_)}unapplyInternal(t){this.styles_.concat(this).sort((t,e)=>JE(e,t)).forEach(e=>{e instanceof Up&&e.unapplySoft(t)})}unapplySoft(t){}unapply(t){this.unapplyInternal(t),this.layer_=null}updateInternal_(t){this.styles_.concat(this).sort((t,e)=>JE(t,e)).forEach(e=>{e instanceof Up?e.applyInternal(t):e instanceof Ag&&e.apply(t,!0)})}}var Vp=Up;class qp extends Vp{constructor(t={},e={}){super(t,new Bp(t,e)),KE(t,qp.DEFAULT),KE(e,qp.DEFAULT_VENDOR),this.optsVendor_=e,this.oldStyle_=null}apply(t){super.apply(t);const e=t.getStyle();this.oldStyle_=e instanceof qp?e.getOldStyle():e}unapplySoft(t){this.getImpl().unapply()}add(t){return xE(this.layer_)||this.unapplySoft(this.layer_),super.add(t)}applyInternal(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}getOldStyle(){return this.oldStyle_}getRanges(){return this.options_.ranges}getOptions(){return this.options_}setRanges(t){return this.getImpl().ranges=t,this.unapply(this.layer_),this.layer_.style=this,this}getRange(t,e){return this.options_.ranges.find(i=>i.min===t&&i.max===e)}updateRange(t,e,i){return Bp.updateRangeImpl(t,e,i,this.layer_,this),this.unapply(this.layer_),this.layer_.style=this,this}setAnimated(t){return this.getImpl().setAnimated(t,this.layer_,this)}isAnimated(){return this.options_.animated}toImage(){let t;return t=this.oldStyle_ instanceof Ag?this.oldStyle_.toImage():super.toImage(),t}refresh(){if(!xE(this.layer_)){const t=this.layer_;this.unapply(this.layer_),this.apply(t),this.updateCanvas()}}get ORDER(){return 4}addSelectInteraction(){this.getImpl().addSelectInteraction()}removeSelectInteraction(){this.getImpl().removeSelectInteraction()}toJSON(){let t=KE({},this.getOptions());t.ranges=this.getRanges().map(t=>{const e=KE({},t);return e.style=t.style.serialize(),e}),t=tS(t);let e=KE({},this.optsVendor_);e=tS(e);return{parameters:[t,e,this.getStyles().map(t=>t.serialize())],deserializedMethod:"M.style.Cluster.deserialize"}}static deserialize([t,e,i]){let r=t;r.ranges.forEach(t=>{t.style=Ag.deserialize(t.style)}),r=eS(t);const n=eS(e),s=new Function(["options","optsVendor"],"return new M.style.Cluster(options, optsVendor)")(r,n),o=i.map(t=>Ag.deserialize(t));return s.add(o),s}}qp.DEFAULT={ranges:[],hoverInteraction:!0,displayAmount:!0,selectInteraction:!0,distance:60,animated:!0,maxFeaturesToSelect:15,label:{text:t=>{let e;const i=t.getAttribute("features");return i.length&&(e=i.length.toString()),e},color:"#fff",font:"bold 15px Arial",baseline:"middle",align:"center"}},qp.DEFAULT_VENDOR={animationDuration:250,animationMethod:"linear",distanceSelectFeatures:15,convexHullStyle:{fill:{color:"#fff",opacity:.25},stroke:{color:"#7b98bc"}}},qp.RANGE_1_DEFAULT={fill:{color:"#81c89a"},stroke:{color:"#6eb988",width:3},radius:15},qp.RANGE_2_DEFAULT={fill:{color:"#85b9d2"},stroke:{color:"#6da4be",width:3},radius:20},qp.RANGE_3_DEFAULT={fill:{color:"#938fcf"},stroke:{color:"#827ec5",width:3},radius:25};var Yp=qp;const Wp="element",Xp="map",Hp="offset",Zp="position",Kp="positioning";class $p extends tn.a{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(Wp,this.handleElementChanged),this.addChangeListener(Xp,this.handleMapChanged),this.addChangeListener(Hp,this.handleOffsetChanged),this.addChangeListener(Zp,this.handlePositionChanged),this.addChangeListener(Kp,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(Wp)}getId(){return this.id}getMap(){return this.get(Xp)||null}getOffset(){return this.get(Hp)}getPosition(){return this.get(Zp)}getPositioning(){return this.get(Kp)}handleElementChanged(){Object(kn.e)(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(Object(kn.f)(this.element),Object(is.c)(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=Object(is.a)(t,ws,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(Wp,t)}setMap(t){this.set(Xp,t)}setOffset(t){this.set(Hp,t)}setPosition(t){this.set(Zp,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(Zp))return;const i=this.getRect(e.getTargetElement(),e.getSize()),r=this.getElement(),n=this.getRect(r,[Object(kn.c)(r),Object(kn.b)(r)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!Object(pt.h)(i,n)){const r=n[0]-i[0],o=i[2]-n[2],a=n[1]-i[1],l=i[3]-n[3],h=[0,0];if(r<0?h[0]=r-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),r=e.getPixelFromCoordinateInternal(i);if(!r)return;const n=[r[0]+h[0],r[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(n),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),r=i.left+window.pageXOffset,n=i.top+window.pageYOffset;return[r,n,r+e[0],n+e[1]]}setPositioning(t){this.set(Kp,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),r=t.getSize();this.updateRenderedPosition(i,r)}updateRenderedPosition(t,e){const i=this.element.style,r=this.getOffset(),n=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==n||"center-right"==n||"top-right"==n?s="-100%":"bottom-center"!=n&&"center-center"!=n&&"top-center"!=n||(s="-50%"),"bottom-left"==n||"bottom-center"==n||"bottom-right"==n?o="-100%":"center-left"!=n&&"center-center"!=n&&"center-right"!=n||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+r[0])+"px"}, ${Math.round(t[1]+r[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}}var Jp=$p;class Qp{static listen(){Qp.WIDTH=window.innerWidth,Qp.HEIGHT=window.innerHeight,window.addEventListener("resize",t=>{Qp.WIDTH=t.target.innerWidth,Qp.HEIGHT=t.target.innerHeight})}}Qp.WIDTH=window.innerWidth,Qp.HEIGHT=window.innerHeight,Qp.listen();var tf=Qp;var ef=class extends Jp{constructor(t={}){super({}),this.panMapIfOutOfView=t.panMapIfOutOfView,void 0===this.panMapIfOutOfView&&(this.panMapIfOutOfView=!0),this.ani_opts=t.ani_opts,void 0===this.ani_opts&&(this.ani_opts={duration:250}),this.facadeMap_=null,this.cachedAniPixel_=null}addTo(t,e){this.facadeMap_=t,this.container=e,this.content=this.getContentFromContainer(e),VE(this.content),this.setElement(this.container),t.getMapImpl().addOverlay(this)}show(t,e){return this.setPosition(t),this.panMapIfOutOfView&&this.panIntoView_(t),this.content.scrollTop=0,bE(e)&&e(),this}centerByStatus(t,e){const i=this.getMap().getView().getResolution(),r=[].concat(e);if(t===hf.status.COLLAPSED)r[1]-=.1*tf.HEIGHT*i;else{if(t!==hf.status.DEFAULT)return;r[1]-=.275*tf.HEIGHT*i}const n=this.facadeMap_.getFeatureCenter();this.facadeMap_.setCenter({x:r[0],y:r[1]}),xE(n)||this.facadeMap_.drawFeatures([n])}getContentFromContainer(t){return t.querySelector("div.m-body")}panIntoView_(t){return this.panIntoSynchronizedAnim_().then(()=>{if(this.isAnimating_=!0,tf.WIDTH>768){const e=30,i=this.element.querySelector(".m-popup"),r=i.clientWidth+20,n=i.clientHeight+20+e,s=this.getMap().getSize(),o=this.getMap().getView().getCenter(),a=20,l=60,h=r-l,c=this.getOffset(),u=this.getMap().getPixelFromCoordinate(t);if(!xE(u)){const t=u[0]-l,e=s[0]-(u[0]+h),i=u[1]-(n+c[1]),r=s[1]-(u[1]+a)-c[1],d=this.getMap().getPixelFromCoordinate(o),g=d.slice();e<0?g[0]-=e:t<0&&(g[0]+=t),i<0?g[1]+=i:r<0&&(g[1]-=r),!xE(this.ani_opts)&&xE(this.ani_opts.source)&&(this.ani_opts.source=o,this.getMap().getView().animate(this.ani_opts)),g[0]===d[0]&&g[1]===d[1]||this.getMap().getView().setCenter(this.getMap().getCoordinateFromPixel(g))}}this.isAnimating_=!1}),this.getMap().getView().getCenter()}panIntoSynchronizedAnim_(){return new Promise((t,e)=>{if(!0===this.isAnimating_){let e=300;xE(this.ani_opts)||(e=this.ani_opts.duration),setTimeout(t,e)}else t()})}hide(t){this.facadeMap_.removePopup(t)}setContainer(t){this.setElement(t),this.content=this.getContentFromContainer(t),VE(this.content)}getContent(){return this.content}},rf=(i(139),i(87)),nf=i.n(rf);let sf=0;const of=(t,e)=>({android:t=>`geo:${t[1]}},${t[0]}?q=${t[1]},${t[0]}`,ios:t=>`maps://?ll=${t[1]},${t[0]}`,unknown:t=>`http://maps.google.com?q=${t[1]},${t[0]}`}[t](e));class af{constructor(t={}){this.icon=t.icon,this.title=t.title,this.content=t.content,this.listeners=t.listeners||[]}}class lf extends tl{constructor(t){super(new ef(t)),this.coord_=null,this.tabs_=[],this.element_=null,this.status_=lf.status.COLLAPSED,sf+=1,this.id_="m-popup-".concat(sf)}getId(){return this.id_}getTabs(){return this.tabs_}removeTab(t){const e=[];let i=null;this.tabs_.forEach(r=>{r.content!==t.content?e.push(r):i=r}),this.tabs_=this.tabs_.filter(e=>e.content!==t.content),this.fire(Fl,[i]),this.update()}addTab(t){let e=t;e instanceof af||(e=new af(t),this.fire(Al,[e])),this.tabs_.push(e),this.update()}addTo(t,e){if(this.map_=t,xE(this.element_)){const i=cS(e,this.map_.getProjection().code,"EPSG:4326"),r=hS(),n=Vl(nf.a,{jsonp:!0,vars:{id:this.id_,tabs:this.tabs_,options:lf.options,url:of(r,i)}});this.tabs_.length>0&&(this.element_=n,this.addEvents(n),this.getImpl().addTo(t,n),this.show(e))}else this.getImpl().addTo(t,this.element_),this.show(e);this.fire(Pl,[this]),t.fire(Pl,[this])}update(){if(!xE(this.map_)){const t=cS(this.coord_,this.map_.getProjection().code,"EPSG:4326"),e=hS(),i=Vl(nf.a,{jsonp:!0,vars:{tabs:this.tabs_,options:lf.options,url:of(e,t)}});this.tabs_.length>0&&(this.element_=i,this.addEventTabs(this.tabs_[0],i),this.addEvents(i),this.getImpl().setContainer(i),this.show(this.coord_))}}show(t){this.coord_=t,this.getImpl().show(this.coord_,()=>{this.fire(pl)})}hide(t){xE(t)||t.preventDefault(),this.getImpl().hide(this)}switchTab(t){if(this.tabs_.length>t){const e=this.tabs_[t];this.setContent_(e.content),this.addEventTabs(e,this.getContent()),this.show(this.coord_)}}addEventTabs(t,e){const{listeners:i}=t;i.forEach(t=>{!0===t.all?e.querySelectorAll(t.selector).forEach(e=>{e.addEventListener(t.type,e=>t.callback(e))}):e.querySelector(t.selector).addEventListener(t.type,e=>t.callback(e))})}setContent_(t){this.getContent().innerHTML=t}getContent(){return this.getImpl().getContent()}addEvents(t){const e=t;let i;const r=e.querySelectorAll("div.m-tab");Array.prototype.forEach.call(r,t=>{t.addEventListener("click",e=>{e.preventDefault();const n=e.clientY;if("click"===e.type||Math.abs(i-n)<5){Array.prototype.forEach.call(r,t=>{t.classList.remove("m-activated")}),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}}),t.addEventListener("touchend",e=>{e.preventDefault();const n=e.clientY;if("touchend"===e.type||Math.abs(i-n)<5){Array.prototype.forEach.call(r,t=>{t.classList.remove("m-activated")}),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}})});const n=e.querySelector("a.m-popup-closer");n.addEventListener("click",this.hide.bind(this),!1),n.addEventListener("touchend",this.hide.bind(this),!1);let s=e.querySelector("div.m-tabs");if(xE(s)&&(s=e.querySelector("div.m-content > div.m-header")),!xE(s)){let t;s.addEventListener("touchstart",r=>{r.preventDefault(),i=r.touches[0].clientY,this.status_===lf.status.COLLAPSED?t=.9*tf.HEIGHT:this.status_===lf.status.DEFAULT?t=.45*tf.HEIGHT:this.status_===lf.status.FULL&&(t=0),e.classList.add("m-no-animation")},!1),s.addEventListener("touchmove",r=>{r.preventDefault(),this.touchY=r.touches[0].clientY;const n=this.touchY-i;e.style.top=t+n+"px"},!1),s.addEventListener("touchend",t=>{t.preventDefault(),this.manageCollapsiblePopup_(i,this.touchY)},!1);const r=window.matchMedia("(max-width: 768px)");setTimeout(()=>this.manageTransform(r,e),10),r.addEventListener("change",t=>{this.manageTransform(t,e)}),s.addEventListener("mouseup",t=>{t.preventDefault(),this.tabs_.length<=1&&(this.status_===lf.status.COLLAPSED?this.setStatus_(lf.status.DEFAULT):this.status_===lf.status.DEFAULT?this.setStatus_(lf.status.FULL):this.setStatus_(lf.status.COLLAPSED))})}}setStatus_(t){t!==this.status_&&(this.element_.classList.remove(this.status_),this.status_=t,this.element_.classList.add(this.status_),this.element_.style.top="",this.element_.classList.remove("m-no-animation"),tf.WIDTH<=M.config.MOBILE_WIDTH&&this.getImpl().centerByStatus(t,this.coord_))}manageTransform(t,e){e&&e.parentElement&&(t.matches?e.parentElement.classList.add("unsetTransform"):e.parentElement.classList.remove("unsetTransform"))}manageCollapsiblePopup_(t,e){const i=100*e/tf.HEIGHT;100*Math.abs(t-e)/tf.HEIGHT>10?this.status_===lf.status.COLLAPSED?i<45?this.setStatus_(lf.status.FULL):i<85?this.setStatus_(lf.status.DEFAULT):this.setStatus_(lf.status.COLLAPSED):this.status_===lf.status.DEFAULT?i>45?this.setStatus_(lf.status.COLLAPSED):i<45?this.setStatus_(lf.status.FULL):this.setStatus_(lf.status.DEFAULT):this.status_===lf.status.FULL&&(i>45?this.setStatus_(lf.status.COLLAPSED):i>0?this.setStatus_(lf.status.DEFAULT):this.setStatus_(lf.status.FULL)):this.setStatus_(this.status_)}getCoordinate(){return this.coord_}setCoordinate(t){this.coord_=t,xE(this.element_)||this.getImpl().show(t)}destroy(){this.tabs_.length=0,this.coord_=null,this.fire(ml)}}lf.status={},lf.status.COLLAPSED="m-collapsed",lf.status.DEFAULT="m-default",lf.status.FULL="m-full",lf.options={takeMeThere:!1,textMode:!0,msg:"Llévame allí"};var hf=lf,cf=i(96),uf=i.n(cf);class df extends bc{constructor(t,e){super(t,e),this.facadeVector_=null,this.features_=[],this.postComposeEvtKey_=null,this.load_=!1,this.loaded_=!1}addTo(t){this.map=t,this.fire(el),t.on(Il,this.setProjection_.bind(this),this),this.ol3Layer=new Lp(this.vendorOptions_),this.updateSource_(),this.opacity_&&this.setOpacity(this.opacity_),this.setVisible(this.visibility);this.map.getMapImpl().addLayer(this.ol3Layer)}updateSource_(){xE(this.vendorOptions_.source)&&(xE(this.ol3Layer.getSource())&&this.ol3Layer.setSource(new Ed),this.redraw(),this.loaded_=!0,this.fire(bl,[this.features_]))}inRange(){return!0}addFeatures(t,e,i=!0){!0===i?t.forEach(t=>{const e=this.features_.find(e=>e.equals(t));xE(e)&&this.features_.push(t)}):this.features_.push(...t),e&&this.updateLayer_();const r=this.facadeVector_.getStyle();r instanceof Yp?(r.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),r.refresh()):this.redraw()}updateLayer_(){const t=this.facadeVector_.getStyle();if(!xE(t))if(t instanceof Ag)this.facadeVector_.setStyle(t);else if(t instanceof Yp){const t=this.facadeVector_.getStyle();t.unapply(this.facadeVector_),t.getOldStyle().apply(this.facadeVector_),t.apply(this.facadeVector_)}else t.apply(this.facadeVector_)}getFeatures(t,e){let i=this.features_;return t||(i=e.execute(i)),i}getFeatureById(t){return this.features_.filter(e=>e.getId()===t)[0]}removeFeatures(t){this.features_=this.features_.filter(e=>!t.includes(e));const e=this.facadeVector_.getStyle();e instanceof Yp?(e.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),e.refresh()):this.redraw()}redraw(){const t=this.getOLLayer();if(!xE(t)){const e=this.facadeVector_.getStyle();let i=t.getSource();i instanceof Sd&&(i=i.getSource()),e instanceof Yp&&e.getImpl().deactivateChangeEvent();[...i.getFeatures()].forEach(i.removeFeature,i);const r=this.facadeVector_.getFeatures();i.addFeatures(r.map(dS.facade2OLFeature)),e instanceof Yp&&e.getImpl().activateChangeEvent()}}getFeaturesExtent(t,e){const i=this.getFeatures(t,e);let r=xc.getFeaturesExtent(i,this.map.getProjection().code);return null===r&&(r=this.map.getProjection().getExtent()),r}selectFeatures(t,e,i){const r=t[0];if(!(r instanceof fS||!0!==this.extract||(this.unselectFeatures(),xE(r)))){const n=r.getAttribute("vendor.mapea.click");if(bE(n))n(i,r);else{const i=Vl(uf.a,{vars:this.parseFeaturesForTemplate_(t),parseToHtml:!1}),r={icon:"g-cartografia-pin",title:this.name,content:i};let n=this.map.getPopup();xE(n)?(n=new hf,n.addTab(r),this.map.addPopup(n,e)):n.addTab(r)}}}unselectFeatures(){}setFacadeObj(t){this.facadeVector_=t}setProjection_(t,e){if(t.code!==e.code){const i=Object(h.o)(t.code),r=Object(h.o)(e.code),n=this.facadeVector_.getStyle();n instanceof Yp&&n.getImpl().deactivateChangeEvent(),this.facadeVector_.getFeatures().forEach(t=>t.getImpl().getOLFeature().getGeometry().transform(i,r)),n instanceof Yp&&n.getImpl().activateChangeEvent()}}parseFeaturesForTemplate_(t){const e={features:[]};return t.forEach(t=>{if(!(t instanceof fS)){const i=t.getAttributes(),r=Object.keys(i),n=[];r.forEach(t=>{let e=!0;xE(this.showAttributes_)?xE(this.hiddenAttributes_)||(e=!zE(this.hiddenAttributes_,t)):e=zE(this.showAttributes_,t),e&&n.push({key:jE(t),value:i[t]})});const s={id:t.getId(),attributes:n};e.features.push(s)}}),e}equals(t){let e=!1;return t instanceof df&&this.constructor===t.constructor&&(e=!0),e}refresh(){this.getOLLayer().getSource().clear()}isLoaded(){return this.loaded_}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}getFeaturesExtentPromise(t,e){return new Promise(i=>{const r=this.map.getProjection().code;if(!0===this.isLoaded()){const n=this.getFeatures(t,e),s=xc.getFeaturesExtent(n,r);i(s)}else this.requestFeatures_().then(t=>{const e=xc.getFeaturesExtent(t,r);i(e)})})}}var gf=df,pf=(i(141),i(97)),ff=i.n(pf);const mf=(t,e,i)=>{const r={message:t,title:e,severity:i},n=Vl(ff.a,{vars:r});(()=>{const t=document.querySelectorAll("div.m-dialog");Array.prototype.forEach.call(t,t=>{t.parentElement.removeChild(t)})})();const s=document.querySelector("div.m-mapea-container");n.querySelector("div.m-button > button").addEventListener("click",t=>{var e;(e=n).parentElement.removeChild(e)}),s.appendChild(n)},_f=(t,e)=>{let i=e;return xE(i)&&(i=jl("dialog").info),mf(t,i,"info")},yf=(t,e)=>{let i=e;return xE(i)&&(i=jl("dialog").error),mf(t,i,"error")},vf=(t,e)=>{let i=e;return xE(i)&&(i=jl("dialog").success),mf(t,i,"success")};var xf=class{getFunctionFilter(){}execute(t){}toCQL(){}};class bf extends Ah{constructor(t={},e={},i={},r){const n=r||new gf(e,i);super(t,n),mE(gf)&&Qa(jl("exception").vectorlayer_method),this.extract=t.extract,xE(this.extract)&&(this.extract=!0),this.style_=null,this.filter_=null,this.setStyle(e.style),n.on(bl,t=>this.fire(bl,[t]))}get type(){return eh}set type(t){mE(t)||xE(t)||t===eh||Qa("El tipo de capa debe ser '".concat(eh).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){xE(t)?this.getImpl().extract=!0:EE(t)?this.getImpl().extract="true"===CE(t):this.getImpl().extract=t}addFeatures(t,e=!1,i=!0){let r=t;xE(r)||(vE(r)||(r=[r]),this.getImpl().addFeatures(r,e,i))}getFeatures(t){let e=t;return xE(this.getFilter())&&(e=!0),this.getImpl().getFeatures(e,this.filter_)}getFeatureById(t){let e=null;return xE(t)?yf(jl("dialog").id_feature):e=this.getImpl().getFeatureById(t),e}removeFeatures(t){let e=t;vE(e)||(e=[e]),this.getImpl().removeFeatures(e)}clear(){this.removeFilter(),this.removeFeatures(this.getFeatures(!0))}refresh(){this.getImpl().refresh(!0),this.redraw()}redraw(){this.getImpl().redraw()}setFilter(t){if(xE(t)||t instanceof xf){this.filter_=t;const e=this.style_;e instanceof Yp&&e.getImpl().deactivateChangeEvent(),this.redraw(),e instanceof Yp&&(e.getImpl().activateChangeEvent(),e.refresh())}else yf(jl("dialog").vector_filter)}getFilter(){return this.filter_}getFeaturesExtent(t){let e=t;return xE(this.getFilter())&&(e=!0),this.getImpl().getFeaturesExtent(e,this.filter_)}removeFilter(){this.setFilter(null)}equals(t){let e=!1;return t instanceof bf&&(e=this.name===t.name,e=e&&this.id===t.id),e}setStyle(t,e=!1,i=bf.DEFAULT_OPTIONS_STYLE){this.getImpl().isLoaded()?(xE(this.getStyle())&&this.applyStyle_(i,e),xE(t)||this.applyStyle_(t,e)):this.once(bl,()=>{xE(this.getStyle())&&this.applyStyle_(i,e),xE(t)||this.applyStyle_(t,e)})}applyStyle_(t,e){let i=t;if(EE(i)?i=Ag.deserialize(i):i instanceof Ag||(i=new jg(i)),i instanceof Ag&&(!xE(this.style_)&&this.style_ instanceof Ag&&this.style_.unapply(this),i.apply(this,e),this.style_=i,this.fire(Cl,[i,this])),!xE(this.getImpl().getMap())){const t=this.getImpl().getMap().getControls("layerswitcher")[0];xE(t)||t.render()}this.fire(Cl,[i,this])}getStyle(){return this.style_}clearStyle(){this.setStyle(null),this.getFeatures().forEach(t=>t.clearStyle())}getLegendURL(){let t=this.getImpl().getLegendURL();return-1!==t.indexOf(Ah.LEGEND_DEFAULT)&&-1===t.indexOf(Ah.LEGEND_ERROR)&&this.style_ instanceof Ag&&(t=this.style_ instanceof Yp&&this.style_.getStyles().length>0?this.style_.getStyles()[0].toImage():this.style_.toImage()),t}getGeometryType(){let t=null;if(!xE(this.getFeatures())){const e=this.getFeatures()[0];xE(e)||xE(e.getGeometry())||(t=e.getGeometry().type)}return t}getMaxExtent(){return this.getFeaturesExtent()}calculateMaxExtent(){return this.getImpl().getFeaturesExtentPromise(!0,this.filter_)}toGeoJSON(){const t=this.map_.getProjection().code,e=this.getFeatures().map(t=>t.getGeoJSON());return{type:"FeatureCollection",features:yc(e,t)}}}bf.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},bf.DEFAULT_OPTIONS_STYLE={point:{...bf.DEFAULT_PARAMS,radius:5},line:{...bf.DEFAULT_PARAMS},polygon:{...bf.DEFAULT_PARAMS}};var wf=bf;class Ef extends Hd{toImage(t){let e=null;const i={fill:this.options_.fill,stroke:this.options_.stroke,icon:this.options_.icon};if(!0===sS(i))e=aS(t);else{if(xE(this.olStyleFn_))return null;let t=this.olStyleFn_()[1];if(t.getImage&&null!=t.getImage()&&t.getImage()instanceof Td){if(t.getImage()instanceof bg){const i=t.getImage().getImage(1);null!=i&&i&&(e=i.toDataURL())}else if(t.getImage()instanceof xg){const i=t.getImage();if(!xE(i)&&(e=i.getSrc(),!e.startsWith(window.location.origin))){const t=GE([M.config.PROXY_URL,"/image"]);e=LE(t,{url:e})}}}else{t=this.olStyleFn_()[0],null!=t.getImage()&&null!=t.getImage().getStroke()&&(t.getImage().getStroke().getWidth()>Ef.DEFAULT_WIDTH_POINT&&t.getImage().getStroke().setWidth(Ef.DEFAULT_WIDTH_POINT),t.getImage().render());const i=t.getImage().getImage(1);null!=i&&(e=i.toDataURL())}}return e}updateFacadeOptions(t){this.olStyleFn_=e=>{let i=e;i instanceof Zh||i instanceof dc||(i=this);const s=new jp({zIndex:Hd.getValue(t.zindex,i,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new $h(t.getGeometry().getCoordinates());else{const i=xc.getCentroid(t.getGeometry());e=new xo(i)}return e}}),o=new jp({zIndex:Hd.getValue(t.zindex,i,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new $h(t.getGeometry().getCoordinates());else{const i=xc.getCentroid(t.getGeometry());e=new xo(i)}return e}});if(i instanceof Zh){const t=t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new $h(t.getGeometry().getCoordinates());else{const i=xc.getCentroid(t.getGeometry());e=new xo(i)}return e};s.setGeometry(t),o.setGeometry(t)}let a,h;if(!xE(t.fill)){const e=Hd.getValue(t.fill.color,i,this.layer_);let r=Hd.getValue(t.fill.opacity,i,this.layer_);r||0===r||(r=1),xE(e)||(a=new lg({color:l()(e).alpha(r).css()}))}if(!xE(t.stroke)){const e=Hd.getValue(t.stroke.color,i,this.layer_);if(!xE(e)){const{linedashoffset:r}=t.stroke;h=new cg({color:e,width:Hd.getValue(t.stroke.width,i,this.layer_),lineDash:Hd.getValue(t.stroke.linedash,i,this.layer_),lineDashOffset:Hd.getValue(r,i,this.layer_),lineCap:Hd.getValue(t.stroke.linecap,i,this.layer_),lineJoin:Hd.getValue(t.stroke.linejoin,i,this.layer_),miterLimit:Hd.getValue(t.stroke.miterlimit,i,this.layer_)})}}if(!xE(t.label)){const e=Hd.getValue(t.label.text,i,this.layer_),o=Hd.getValue(t.label.align,i,this.layer_),a=Hd.getValue(t.label.baseline,i,this.layer_),l=new yg({font:Hd.getValue(t.label.font,i,this.layer_),rotateWithView:Hd.getValue(t.label.rotate,i,this.layer_),scale:Hd.getValue(t.label.scale,i,this.layer_),offsetX:Hd.getValue(t.label.offset?t.label.offset[0]:void 0,i,this.layer_),offsetY:Hd.getValue(t.label.offset?t.label.offset[1]:void 0,i,this.layer_),fill:new lg({color:Hd.getValue(t.label.color||"#000000",i,this.layer_)}),textAlign:Object.values(r).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===e?void 0:String(e),rotation:Hd.getValue(t.label.rotation,i,this.layer_)});if(!xE(t.label.stroke)){const{miterlimit:e,linedashoffset:r}=t.label.stroke;l.setStroke(new cg({color:Hd.getValue(t.label.stroke.color,i,this.layer_),width:Hd.getValue(t.label.stroke.width,i,this.layer_),lineCap:Hd.getValue(t.label.stroke.linecap,i,this.layer_),lineJoin:Hd.getValue(t.label.stroke.linejoin,i,this.layer_),lineDash:Hd.getValue(t.label.stroke.linedash,i,this.layer_),lineDashOffset:Hd.getValue(r,i,this.layer_),miterLimit:Hd.getValue(e,i,this.layer_)}))}s.setText(l)}return s.setImage(new Eg({fill:a,stroke:h,radius:Hd.getValue(t.radius,i,this.layer_),snapToPixel:Hd.getValue(t.snapToPixel,i,this.layer_)})),xE(t.icon)||(xE(t.icon.src)?xE(t.icon.form)||o.setImage(new bg({form:xE(Hd.getValue(t.icon.form,i,this.layer_))?"":Hd.getValue(t.icon.form,i,this.layer_).toLowerCase(),gradient:Hd.getValue(t.icon.gradient,i,this.layer_),glyph:Hd.getValue(t.icon.class,i,this.layer_),fontSize:Hd.getValue(t.icon.fontsize,i,this.layer_),radius:Hd.getValue(t.icon.radius,i,this.layer_),rotation:Hd.getValue(t.icon.rotation,i,this.layer_),rotateWithView:Hd.getValue(t.icon.rotate,i,this.layer_),offsetX:Hd.getValue(t.icon.offset?t.icon.offset[0]:void 0,i,this.layer_),offsetY:Hd.getValue(t.icon.offset?t.icon.offset[1]:void 0,i,this.layer_),fill:new lg({color:Hd.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",i,this.layer_)}),stroke:t.icon.color?new cg({color:Hd.getValue(t.icon.color,i,this.layer_),width:1}):void 0,anchor:Hd.getValue(t.icon.anchor,i,this.layer_),anchorXUnits:Hd.getValue(t.icon.anchorxunits,i,this.layer_),anchorYUnits:Hd.getValue(t.icon.anchoryunits,i,this.layer_),src:Hd.getValue(t.icon.src,i,this.layer_),opacity:Hd.getValue(t.icon.opacity,i,this.layer_),scale:Hd.getValue(t.icon.scale,i,this.layer_),snapToPixel:Hd.getValue(t.icon.snaptopixel,i,this.layer_),offsetOrigin:Hd.getValue(t.icon.offsetorigin,i,this.layer_),offset:Hd.getValue(t.icon.offset,i,this.layer_),crossOrigin:Hd.getValue(t.icon.crossorigin,i,this.layer_),anchorOrigin:Hd.getValue(t.icon.anchororigin,i,this.layer_),size:Hd.getValue(t.icon.size,i,this.layer_)})):o.setImage(new xg({anchor:Hd.getValue(t.icon.anchor,i,this.layer_),anchorXUnits:Hd.getValue(t.icon.anchorxunits,i,this.layer_),anchorYUnits:Hd.getValue(t.icon.anchoryunits,i,this.layer_),src:Hd.getValue(t.icon.src,i,this.layer_),opacity:Hd.getValue(t.icon.opacity,i,this.layer_),scale:Hd.getValue(t.icon.scale,i,this.layer_),rotation:Hd.getValue(t.icon.rotation,i,this.layer_),rotateWithView:Hd.getValue(t.icon.rotate,i,this.layer_),snapToPixel:Hd.getValue(t.icon.snaptopixel,i,this.layer_),offsetOrigin:Hd.getValue(t.icon.offsetorigin,i,this.layer_),offset:Hd.getValue(t.icon.offset,i,this.layer_),crossOrigin:Hd.getValue(t.icon.crossorigin,i,this.layer_),anchorOrigin:Hd.getValue(t.icon.anchororigin,i,this.layer_),size:Hd.getValue(t.icon.size,i,this.layer_)}))),[s,o]}}drawGeometryToCanvas(t){this.olStyleFn_()[1].getImage()instanceof Yd?t.drawGeometry(new xo([10,10])):t.drawCircle(new _c([this.getCanvasSize()[0]/2,this.getCanvasSize()[1]/2],this.getRadius_()))}updateCanvas(t){if(this.updateFacadeOptions(this.options_),!sS(this.options_)){const e=this.getCanvasSize(),i=Bd(t.getContext("2d"),{size:e});let r=this.olStyleFn_()[0];xE(r.getText())||r.setText(null),!xE(this.olStyleFn_()[1])&&this.olStyleFn_()[1].getImage()instanceof Yd&&(r=this.olStyleFn_()[1]);const n=r.getImage().getStroke();xE(n)||xE(n.getWidth())||n.setWidth(3),i.setStyle(r),this.drawGeometryToCanvas(i)}}getCanvasSize(){const t=this.olStyleFn_()[1].getImage();let e;if(t instanceof Yd)e=[90,90];else{const i=this.getRadius_(t);e=[2*i+4,2*i+4]}return e}getRadius_(t){let e;return e=t instanceof Rd?25:t instanceof Yd?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}}Ef.DEFAULT_WIDTH_POINT=3;var Sf=Ef;class If extends kg{constructor(t){let e=t;e=xE(e)?If.DEFAULT_NULL:KE(e,If.DEFAULT),e=KE({},e);super(e,new Sf(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Point'))"}}If.DEFAULT={radius:5},If.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5},radius:5};var Cf=If;class Tf extends Gl{constructor(t){super(new rd(t),Tf.NAME),mE(rd)&&Qa(jl("exception").layerswitcher_method),mE(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t){this.map_=t;const e=this.getImpl();this.createView(t).then(i=>{this.manageActivation(i),e.addTo(t,i),this.fire(el)})}createView(t){return new Promise(t=>{Tf.getTemplateVariables(this.map_).then(e=>{this.activeEmptyLayer&&e.baseLayers.unshift(Tf.EMPTYLAYER);const i=Vl(Ju.a,{vars:e});t(i)})})}equals(t){return t instanceof Tf}render(){this.getImpl().renderPanel()}registerEvents(){this.getImpl().registerEvents()}unregisterEvents(){this.getImpl().unregisterEvents()}static getTemplateVariables(t){return new Promise((e,i)=>{if(!xE(t)){const i=t.getBaseLayers().filter(t=>!0===t.displayInLayerSwitcher),r=t.getLayerGroup(),n=Tf.orderLayerGroups(r),s=t.getRootLayers().filter(t=>{const e=!0===t.transparent,i=!0===t.displayInLayerSwitcher,r=t.type!==Xl,n=!(t.type===Zl&&xE(t.name)),s=t.getLayerGroup&&null===t.getLayerGroup();return e&&r&&n&&i&&s}).reverse(),o=Promise.all(i.map(Tf.parseLayerForTemplate)),a=Promise.all(s.map(Tf.parseLayerForTemplate)),l=Promise.all(n.map(t=>Tf.parseGroupForTemplate(t,i)).filter(t=>!xE(t)));o.then(t=>{l.then(i=>{a.then(r=>e({baseLayers:t,overlayLayers:r,layerGroups:i}))})})}})}static parseLayerForTemplate(t){let e=t.legend;xE(e)&&(e=t.name),xE(e)&&(e="Servicio WMS");let i=!1;if(t instanceof wf){const e=t.getStyle();e instanceof Cf&&!xE(e.get("icon.src"))&&(i=!0)}return new Promise((r,n)=>{const s={base:!1===t.transparent,visible:!0===t.isVisible(),id:t.id,title:e,outOfRange:!t.inRange(),opacity:t.getOpacity(),isIcon:i},o=t.getLegendURL();o instanceof Promise?o.then(t=>{s.legend=t,r(s)}):(s.legend="KML"!==t.type?o:null,r(s))})}static parseGroupForTemplate(t,e){const i=[...t.getChildren()];let r=t.title;xE(r)&&(r=t.id),xE(r)&&(r="Conjunto de Servicios WMS");let n={id:t.id,title:r,order:t.order,collapsed:t.collapsed,layers:[],layerGroups:[]},s=null;if(i.length>0){i.forEach(t=>{t instanceof Ah?n.layers.push(Tf.parseLayerForTemplate(t)):t instanceof ed&&n.layerGroups.push(Tf.parseGroupForTemplate(t,e))});let r=0;const o=t.getAllLayers();o.every(t=>t.isVisible())?r=2:o.some(t=>t.isVisible())&&(r=1),n.visible=r,xE(n.layers)&&xE(n.layerGroups)&&(n=null),yE(n)||(s=new Promise((t,e)=>{Promise.all(n.layers).then(e=>{xE(n)||(n.layers=e,n.layerGroups.length>0?Promise.all(n.layerGroups).then(e=>{yE(e[0])?n.layerGroups=[]:n.layerGroups=e,t(n)}):t(n))})}))}return s}static orderLayerGroups(t){return t.sort((t,e)=>t.order-e.order)}}Tf.NAME="layerswitcher",Tf.EMPTYLAYER={base:!0,id:"emptyLayer",isIcon:!1,legend:"",opacity:1,outOfRange:!1,title:jl("layerswitcher").no_base_layer,visible:!1};var Lf=Tf;const Mf="accuracy",Of="accuracyGeometry",Rf="altitude",Pf="altitudeAccuracy",Nf="heading",Af="position",Ff="projection",kf="speed",Df="tracking",jf="trackingOptions",Gf="error";class zf extends sn.a{constructor(t){super(Gf),this.code=t.code,this.message=t.message}}class Bf extends tn.a{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.position_=null,this.transform_=h.t,this.watchId_=void 0,this.addChangeListener(Ff,this.handleProjectionChanged_),this.addChangeListener(Df,this.handleTrackingChanged_),void 0!==t.projection&&this.setProjection(t.projection),void 0!==t.trackingOptions&&this.setTrackingOptions(t.trackingOptions),this.setTracking(void 0!==t.tracking&&t.tracking)}disposeInternal(){this.setTracking(!1),super.disposeInternal()}handleProjectionChanged_(){const t=this.getProjection();t&&(this.transform_=Object(h.r)(Object(h.o)("EPSG:4326"),t),this.position_&&this.set(Af,this.transform_(this.position_)))}handleTrackingChanged_(){if("geolocation"in navigator){const t=this.getTracking();t&&void 0===this.watchId_?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):t||void 0===this.watchId_||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=void 0)}}positionChange_(t){const e=t.coords;this.set(Mf,e.accuracy),this.set(Rf,null===e.altitude?void 0:e.altitude),this.set(Pf,null===e.altitudeAccuracy?void 0:e.altitudeAccuracy),this.set(Nf,null===e.heading?void 0:Object(Fs.l)(e.heading)),this.position_?(this.position_[0]=e.longitude,this.position_[1]=e.latitude):this.position_=[e.longitude,e.latitude];const i=this.transform_(this.position_);this.set(Af,i.slice()),this.set(kf,null===e.speed?void 0:e.speed);const r=Ao(this.position_,e.accuracy);r.applyTransform(this.transform_),this.set(Of,r),this.changed()}positionError_(t){this.dispatchEvent(new zf(t))}getAccuracy(){return this.get(Mf)}getAccuracyGeometry(){return this.get(Of)||null}getAltitude(){return this.get(Rf)}getAltitudeAccuracy(){return this.get(Pf)}getHeading(){return this.get(Nf)}getPosition(){return this.get(Af)}getProjection(){return this.get(Ff)}getSpeed(){return this.get(kf)}getTracking(){return this.get(Df)}getTrackingOptions(){return this.get(jf)}setProjection(t){this.set(Ff,Object(h.o)(t))}setTracking(t){this.set(Df,t)}setTrackingOptions(t){this.set(jf,t)}}var Uf=Bf;class Vf extends Xu{constructor(t,e,i,r){super(r),this.vendorOptions_=r,this.geolocation_=null,this.accuracyFeature_=dS.olFeature2Facade(new Zh),this.tracking_=t,this.highAccuracy_=e,this.maximumAge_=i,this.activated_=!1,this.positionFeature_=dS.olFeature2Facade(new Zh({style:Vf.POSITION_STYLE}))}activate(){if(this.element.classList.add("m-locating"),xE(this.geolocation_)){const t=Object(h.o)(this.facadeMap_.getProjection().code);this.geolocation_=new Uf(BE({projection:t,tracking:this.tracking_,trackingOptions:{enableHighAccuracy:this.highAccuracy_,maximumAge:this.maximumAge_}},this.vendorOptions_,!0)),this.geolocation_.on("change:accuracyGeometry",t=>{const e=t.target.get(t.key);this.accuracyFeature_.getImpl().getOLFeature().setGeometry(e)}),this.geolocation_.on("change:position",t=>{const e=t.target.get(t.key),i=xE(e)?null:new xo(e);this.positionFeature_.getImpl().getOLFeature().setGeometry(i),this.facadeMap_.setCenter(e),this.element.classList.contains("m-locating")&&this.facadeMap_.setZoom(Vf.ZOOM),this.element.classList.remove("m-locating"),this.element.classList.add("m-located"),this.geolocation_.setTracking(this.tracking_)})}this.geolocation_.setTracking(!0),this.facadeMap_.drawFeatures([this.accuracyFeature_,this.positionFeature_])}removePositions_(){xE(this.accuracyFeature_)||this.facadeMap_.removeFeatures([this.accuracyFeature_]),xE(this.positionFeature_)||this.facadeMap_.removeFeatures([this.positionFeature_]),this.geolocation_.setTracking(!1)}deactivate(){this.removePositions_(),this.element.classList.remove("m-located"),this.element.classList.remove("m-locating"),this.geolocation_=null}setTracking(t){this.tracking_=t,this.geolocation_.setTracking(t)}destroy(){this.removePositions_(),super.destroy()}}Vf.POSITION_STYLE=new mg({image:new og({radius:6,fill:new lg({color:"#3399CC"}),stroke:new cg({color:"#fff",width:2})})}),Vf.ZOOM=12;var qf=Vf,Yf=i(98),Wf=i.n(Yf);i(143);class Xf extends Gl{constructor(t=!0,e=!1,i={}){mE(qf)&&Qa(jl("exception").location_method);super(new qf(t,e,6e4,i),Xf.NAME)}createView(t){return Vl(Wf.a,{vars:{title:jl("location").title}})}getActivationButton(t){return t.querySelector("button#m-location-button")}equals(t){return t instanceof Xf}setTracking(t){this.getImpl().tracking=t}}Xf.NAME="location";var Hf=Xf,Zf=(i(88),i(99)),Kf=i.n(Zf);var $f=class extends Xu{constructor(t={}){super(),this.facadeMap_=null,this.exactScale=t.exactScale||!1}addTo(t,e){this.facadeMap_=t;this.scaleContainer_=e.querySelector("#".concat("m-scale-span")),this.element=e,this.render=this.renderCB,this.target_=null,t.getMapImpl().addControl(this)}renderCB(t){const e=t.frameState;xE(e)||((t,e,i,r)=>{const n=e;i.getWMTS().length>0?n.innerHTML=xc.getWMTSScale(i,r):i.getWMTS().length<=0&&!0===r?n.innerHTML=i.getExactScale():i.getWMTS().length<=0&&1==!r&&(n.innerHTML=i.getScale())})(e.viewState,this.scaleContainer_,this.facadeMap_,this.exactScale)}destroy(){super.destroy(),this.scaleContainer_=null}};class Jf extends Gl{constructor(t={}){super(new $f(t),Jf.NAME),mE($f)&&Qa(jl("exception").scale_method)}createView(t){return Vl(Kf.a,{vars:{title:jl("scale").title,scale:jl("scale").scale}})}equals(t){return t instanceof Jf}destroy(){super.destroy();const t=this.getPanel();xE(t)||t.removeClassName("m-with-scale")}}Jf.NAME="scale";var Qf=Jf;i(146);class tm extends Xu{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){super.addTo(t,e);const i=t.getMapImpl();this.olMap=i,this.panel=e,this.panel.querySelector("button").addEventListener("click",()=>{this.resetRotation()}),i.on("change:view",t=>{t.target.getView().on("change:rotation",t=>{const e=`rotate(${360*t.target.getRotation()/(2*Math.PI)}deg)`;this.panel.querySelector("button").style.WebkitTransform=e,this.panel.querySelector("button").style.MozTransform=e,this.panel.querySelector("button").style.transform=e})})}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}resetRotation(){this.olMap.getView().setRotation(0)}onChangeView(t){const e=t.querySelector("#m-rotate-marker");this.olMap.on("change:view",t=>{t.target.getView().on("change:rotation",t=>{const i=t.target.getRotation();e.style.transform=`rotate(${i*(180/Math.PI)+45}deg)`})})}}tm.PANEL_ID="m-layerswitcher-panel";var em=tm,im=i(100),rm=i.n(im);const nm=(t,e,i)=>{const r=e;let n=t.target.parentElement.parentElement,s=0,o=0;for(;n&&!Number.isNaN(n.offsetLeft)&&!Number.isNaN(n.offsetTop);)s+=n.offsetLeft-n.scrollLeft,o+=n.offsetTop-n.scrollTop,n=n.offsetParent;s=t.clientX-s,o=t.clientY-o;const{clientWidth:a,clientHeight:l}=t.currentTarget,h=[0,-l],c=[s-a/2,o-l/2],u=(h[0]*c[0]+h[1]*c[1])/(Math.sqrt(h[0]**2+h[1]**2)*Math.sqrt(c[0]**2+c[1]**2));let d=180*Math.acos(u)/Math.PI;c[0]<0&&(d=360-d),i.setRotation(d);r.querySelector("#m-rotate-marker").style.WebkitTransform=`rotate(${d+45}deg)`,r.querySelector("#m-rotate-marker").style.MozTransform=`rotate(${d+45}deg)`,r.querySelector("#m-rotate-marker").style.transform=`rotate(${d+45}deg)`},sm=(t,e)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousedown",e=>{t.setActive(!0),"m-rotate-button"!==e.target.id&&t.setMouseDown(!0)})},om=(t,e)=>{document.body.addEventListener("mouseup",e=>{t.setActive(!1)})},am=(t,e,i)=>{const r=e,n=e.querySelector("#m-rotate-slider-container");n.addEventListener("click",n=>{"m-rotate-button"!==n.target.id||t.getMouseDown()?nm(n,e,i):(t.getImpl().resetRotation(),r.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",r.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",r.querySelector("#m-rotate-marker").style.transform="rotate(40deg)"),t.setMouseDown(!1)})},lm=(t,e,i)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousemove",r=>{t.getActive()&&nm(r,e,i)})};class hm extends Gl{constructor(){mE(em)&&Qa("La implementación usada no puede crear controles Scale");super(new em,hm.NAME),this.active_=!1,this.isMouseDown_=!1}createView(t){const e=Vl(rm.a);return e.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.transform="rotate(40deg)",sm(this,e),lm(this,e,t),om(this),am(this,e,t),this.on(el,()=>{this.getImpl().onChangeView(e)}),e}equals(t){return t instanceof hm}setActive(t){this.active_=!!t}getActive(){return this.active_}setMouseDown(t){this.isMouseDown_=!!t}getMouseDown(){return this.isMouseDown_}}hm.NAME="rotate";var cm=hm;const um="units",dm=[1,2,5],gm=25.4/.28;var pm=class extends qo{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+Tn,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(um,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get(um)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set(um,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,r=this.getUnits(),n="degrees"==r?"degrees":"m";let s=Object(h.p)(i,t.resolution,e,n);const o=this.minWidth_*(this.dpi_||gm)/gm,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||gm)/gm:void 0;let l=o*s,c="";if("degrees"==r){const t=h.a.degrees;l*=t,l=a){u=p,d=f,g=m;break}if(d>=o)break;p=u,f=d,m=g,++_}const y=this.scaleBar_?this.createScaleBar(d,u,c):u.toFixed(g<0?-g:0)+" "+c;this.renderedHTML_!=y&&(this.innerElement_.innerHTML=y,this.renderedHTML_=y),this.renderedWidth_!=d&&(this.innerElement_.style.width=d+"px",this.renderedWidth_=d),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const r=this.getScaleForResolution(),n=r<1?Math.round(1/r).toLocaleString()+" : 1":"1 : "+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let r=0;r
    `+this.createMarker("relative")+(r%2==0||2===s?this.createStepText(r,t,!1,e,i):"")+"")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`
    `+n+"
    ":"")+a.join("")}createMarker(t){return`
    `}createStepText(t,e,i,r,n){const s=(0===t?0:Math.round(r/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+n);return`
    `+s+"
    "}getScaleForResolution(){return Object(h.p)(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||gm)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}};const fm="units",mm="degrees",_m="imperial",ym="nautical",vm="metric",xm="us",bm=[1,2,5];var wm=class extends pm{constructor(t){super(t),this.facadeMap_=null,this.keyEvent_=null}addTo(t,e){this.facadeMap_=t,this.removeChangeListener(fm,this.handleUnitsChanged),this.keyEvent_=this.addChangeListener(fm,this.handleUnitsChanged),t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleUnitsChanged_(){this.updateElement_()}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,r=this.getUnits(),n=r===mm?"degrees":"m";let s=Object(h.p)(i,t.resolution,e,n);"degrees"!==i.getUnits()&&i.getMetersPerUnit()&&"m"===n&&(s*=i.getMetersPerUnit()),"d"===i.getUnits()&&(s/=12e4);let o=this.minWidth_*s,a="";if(r===mm){const t=h.a.degrees;"degrees"===i.getUnits()?o*=t:s/=t,o=this.minWidth_)break;u+=1}const d=l.toString().concat(" ").concat(a);this.renderedHTML_!==d&&(this.innerElement_.innerHTML=d,this.renderedHTML_=d),this.renderedWidth_!==c&&(this.innerElement_.style.width=c.toString().concat("px"),this.renderedWidth_=c),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}},Em=i(101),Sm=i.n(Em);class Im extends Gl{constructor(t={}){super(new wm(t),Im.NAME),mE(wm)&&Qa(jl("exception").scaleline_method)}createView(t){return Vl(Sm.a)}equals(t){return t instanceof Im}}Im.NAME="scaleline";var Cm=Im,Tm=(i(148),i(102)),Lm=i.n(Tm);const Mm="projection",Om="coordinateFormat";var Rm=class extends qo{constructor(t){t=t||{};const e=document.createElement("div");e.className=void 0!==t.className?t.className:"ol-mouse-position",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un,this.addChangeListener(Mm,this.handleProjectionChanged_),t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat),t.projection&&this.setProjection(t.projection),this.renderOnMouseOut_=void 0!==t.placeholder,this.placeholder_=this.renderOnMouseOut_?t.placeholder:" ",this.renderedHTML_=e.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=!1!==t.wrapX}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(Om)}getProjection(){return this.get(Mm)}handleMouseMove(t){const e=this.getMap();this.updateHTML_(e.getEventPixel(t))}handleMouseOut(t){this.updateHTML_(null)}setMap(t){if(super.setMap(t),t){const e=t.getViewport();this.listenerKeys.push(Object(is.a)(e,fs,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(Object(is.a)(e,ys,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(t){this.set(Om,t)}setProjection(t){this.set(Mm,Object(h.o)(t))}updateHTML_(t){let e=this.placeholder_;if(t&&this.mapProjection_){if(!this.transform_){const t=this.getProjection();this.transform_=t?Object(h.r)(this.mapProjection_,t):h.t}const i=this.getMap().getCoordinateFromPixelInternal(t);if(i){const t=Object(h.s)();if(t&&(this.transform_=Object(h.r)(this.mapProjection_,t)),this.transform_(i,i),this.wrapX_){const e=t||this.getProjection()||this.mapProjection_;Object(vn.p)(i,e)}const r=this.getCoordinateFormat();e=r?r(i):i.toString()}}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=e,this.renderedHTML_=e)}render(t){const e=t.frameState;e?this.mapProjection_!=e.viewState.projection&&(this.mapProjection_=e.viewState.projection,this.transform_=null):this.mapProjection_=null}};var Pm=class extends Rm{constructor(t){super(t),this.vendorOptions_=t}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleMouseMove(t){const e=this.getMap();this.lastMouseMovePixel_=e.getEventPixel(t),this.updateHTML_(this.lastMouseMovePixel_)}handleMouseOut(t){this.updateHTML_(null),this.lastMouseMovePixel_=null}updateHTML_(t){let e=this.placeholder_;const i=this.getProjection();if(t&&this.mapProjection_){this.transform_||(this.transform_=i?Object(h.q)(this.mapProjection_,i):h.t);const r=this.getMap().getCoordinateFromPixel(t);if(r){this.transform_(r,r);const t=this.getCoordinateFormat();e=t?t(r):r.toString()}this.vendorOptions_.label&&(e+=" | "+this.vendorOptions_.label)}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=void 0!==e?e:"",this.renderedHTML_=void 0!==e?e:"")}};var Nm=class extends Pm{constructor(t,e){super(BE({coordinateFormat:Object(vn.d)(t.precision||4),label:t.label,placeholder:"",className:"m-mouse-position g-cartografia-flecha"},e,!0)),this.srs_=t.srs,this.label_=t.label,this.precision_=t.precision,this.vendorOptions_=e}addTo(t,e){this.facadeMap_=t,this.setProjection(this.srs_||t.getProjection().code),this.setTarget(e),t.getMapImpl().addControl(this),xE(this.vendorOptions_.projection)&&xE(this.srs_)&&t.getImpl().on(El,()=>{this.mousePositionControl.setProjection(Object(h.o)(t.getProjection().code))})}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class Am extends Gl{constructor(t={},e={}){super(new Nm(t,e),Am.NAME),mE(Nm)&&Qa(jl("exception").mouse_method)}createView(t){return Vl(Lm.a)}equals(t){return t instanceof Am}destroy(){super.destroy();const t=this.getPanel();xE(t)||t.removeClassName("m-with-mouse")}}Am.NAME="mouse";var Fm=Am;const km=.75,Dm=.1;var jm=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===t.collapsed||t.collapsed,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==t.rotateWithView&&t.rotateWithView,this.viewExtent_=void 0;const e=void 0!==t.className?t.className:"ol-overviewmap",i=void 0!==t.tipLabel?t.tipLabel:"Overview map",r=void 0!==t.collapseLabel?t.collapseLabel:"‹";"string"==typeof r?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;const n=void 0!==t.label?t.label:"›";"string"==typeof n?(this.label_=document.createElement("span"),this.label_.textContent=n):this.label_=n;const s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,o=document.createElement("button");o.setAttribute("type","button"),o.title=i,o.appendChild(s),o.addEventListener(ns.a.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=t.view;const a=new Va({view:t.view,controls:new hn,interactions:new hn});this.ovmap_=a,t.layers&&t.layers.forEach((function(t){a.addLayer(t)}));const l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new Jp({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);const h=e+" "+"ol-unselectable "+Mn+(this.collapsed_&&this.collapsible_?" ol-collapsed":"")+(this.collapsible_?"":" ol-uncollapsible"),c=this.element;c.className=h,c.appendChild(this.ovmapDiv_),c.appendChild(o);const u=this,d=this.boxOverlay_,g=this.boxOverlay_.getElement(),p=function(t){const e={clientX:(i=t).clientX,clientY:i.clientY};var i;const r=a.getEventCoordinateInternal(e);d.setPosition(r)},f=function(t){const e=a.getEventCoordinateInternal(t);u.getMap().getView().setCenterInternal(e),window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",f)};g.addEventListener("mousedown",(function(){window.addEventListener("mousemove",p),window.addEventListener("mouseup",f)}))}setMap(t){const e=this.getMap();if(t!==e){if(e){const t=e.getView();t&&this.unbindView_(t),this.ovmap_.setTarget(null)}if(super.setMap(t),t){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(Object(is.a)(t,En.a.PROPERTYCHANGE,this.handleMapPropertyChange_,this));const e=t.getView();e&&(this.bindView_(e),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(t){if(t.key===Os){const e=t.oldValue;e&&this.unbindView_(e);const i=this.getMap().getView();this.bindView_(i)}else this.ovmap_.isRendered()||t.key!==Ms&&t.key!==Ls||this.ovmap_.updateSize()}bindView_(t){if(!this.view_){const e=new Uo({projection:t.getProjection()});this.ovmap_.setView(e)}t.addChangeListener(Ns.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(t){t.removeChangeListener(Ns.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),r=t.getView().calculateExtentInternal(i);if(this.viewExtent_&&Object(pt.p)(r,this.viewExtent_))return;this.viewExtent_=r;const n=e.getSize(),s=e.getView().calculateExtentInternal(n),o=e.getPixelFromCoordinateInternal(Object(pt.E)(r)),a=e.getPixelFromCoordinateInternal(Object(pt.w)(r)),l=Math.abs(o[0]-a[0]),h=Math.abs(o[1]-a[1]),c=n[0],u=n[1];lc*km||h>u*km?this.resetExtent_():Object(pt.h)(s,r)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),r=t.getView().calculateExtentInternal(i),n=e.getView(),s=Math.log(7.5)/Math.LN2,o=1/(Math.pow(2,s/2)*Dm);Object(pt.L)(r,o),n.fitInternal(Fo(r))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),r=t.getView(),n=e.getView(),s=this.rotateWithView_?0:-r.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=r.getCenterInternal(),h=r.getResolution(),c=n.getResolution(),u=i[0]*h/c,d=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=d+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=Object(is.b)(this.ovmap_,ws,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(On),this.collapsed_?Object(kn.h)(this.collapseLabel_,this.label_):Object(kn.h)(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}};var Gm=class extends jm{constructor(t,e={}){super(BE({layers:[]},e,!0)),this.toggleDelay_=0,xE(t.toggleDelay)||(this.toggleDelay_=t.toggleDelay),this.collapsedButtonClass_="g-cartografia-mundo",xE(t.collapsedButtonClass)||(this.collapsedButtonClass_=t.collapsedButtonClass),this.openedButtonClass_="g-cartografia-flecha-derecha2",xE(t.openedButtonClass)||(this.openedButtonClass_=t.openedButtonClass),this.facadeMap_=null}set facadeControl(t){this.facadeControl_=t}get facadeControl(){return this.facadeControl_}addTo(t,e){this.facadeMap_=t,this.update(t,e),this.getCollapsed()||this.addLayers(this.facadeMap_)}update(t,e){const i=this.element.querySelector("button");!0===this.collapsed_?i.classList.contains(this.collapsedButtonClass_)?i.classList.remove(this.collapsedButtonClass_):i.classList.add(this.collapsedButtonClass_):i.classList.contains(this.openedButtonClass_)?i.classList.remove(this.openedButtonClass_):i.classList.add(this.openedButtonClass_),this.addOpenEventListener(i,t),this.setTarget()}addOpenEventListener(t,e){t.onclick=this.openEventListener.bind(this)}openEventListener(t){const e=t;!0===this.getCollapsed()&&(this.addLayers(this.facadeMap_),e.target.onclick=null)}setTarget(){const t=this.facadeControl_;if(!xE(t)){const e=t.getPanel();xE(e)||(this.target_=e.getControlsContainer())}}getElement(){return this.element}addLayer_(t){t.un(el,this.addLayer_,this),this.getOverviewMap().addLayer(t.getOLLayer())}addLayers(t){const e=[];t.getLayers().forEach(t=>{[t].forEach(t=>{if((t.type===Zl||!1===t.transparent)&&t.isVisible()){const i=t.getImpl().getOLLayer();let r=null;if(!xE(i)){const e=i.getProperties();delete e.map,r=!0===t.tiled?new Fh.a(e):new kh.a(e)}xE(r)?t.getImpl().on(el,this.addLayer_.bind(this)):e.push(r)}})});const i=new ju({projection:Object(h.o)(t.getProjection().code),resolutions:t.getResolutions()});t.getMapImpl().addControl(this),this.ovmap_.setView(i),e.forEach(t=>this.ovmap_.addLayer(t)),this.wasOpen_=!0}handleToggle_(){iS(this.element,"ol-collapsed");const t=this.element.querySelector("button");iS(t,this.openedButtonClass_),iS(t,this.collapsedButtonClass_),setTimeout(()=>{this.collapsed_?rS(this.collapseLabel_,this.label_):rS(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),t.addEventListener("postrender",t=>{this.updateBox_()}))},this.toggleDelay_)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}},zm=i(103),Bm=i.n(zm);class Um extends Gl{constructor(t={},e={}){const i=new Gm(t,e);super(i,Um.NAME),mE(Gm)&&Qa(jl("exception").overviewmap_method),i.facadeControl=this}createView(t){return Vl(Bm.a)}equals(t){return t instanceof Um}}Um.NAME="overviewmap";var Vm=Um;var qm=class{constructor(){this.element_=null}addTo(t,e){this.element_=e}getElement(){return this.element_}destroy(){}},Ym=i(104),Wm=i.n(Ym);class Xm extends Gl{constructor(){super(new qm,Xm.NAME),mE(qm)&&Qa(jl("exception").navtoolbar_method)}createView(t){return Vl(Wm.a)}equals(t){return t instanceof Xm}}Xm.NAME="navtoolbar";var Hm=Xm,Zm=i(105),Km=i.n(Zm);var $m=class extends Xo{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class Jm extends Gl{constructor(t={}){super(new $m(t),Jm.NAME),mE($m)&&Qa(jl("exception").panzoom_method)}createView(t){return Vl(Km.a)}equals(t){return t instanceof Jm}}Jm.NAME="panzoom";var Qm=Jm;i(150);var t_=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let i=e.dataProjection?Object(h.o)(e.dataProjection):this.readProjection(t);e.extent&&i&&"tile-pixels"===i.getUnits()&&(i=Object(h.o)(i),i.setWorldExtent(e.extent)),e={dataProjection:i,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection},t)}getType(){return Object(dn.a)()}readFeature(t,e){return Object(dn.a)()}readFeatures(t,e){return Object(dn.a)()}readGeometry(t,e){return Object(dn.a)()}readProjection(t){return Object(dn.a)()}writeFeature(t,e){return Object(dn.a)()}writeFeatures(t,e){return Object(dn.a)()}writeGeometry(t,e){return Object(dn.a)()}};function e_(t,e,i){const r=i?Object(h.o)(i.featureProjection):null,n=i?Object(h.o)(i.dataProjection):null;let s;if(s=r&&n&&!Object(h.j)(r,n)?(e?t.clone():t).transform(e?r:n,e?n:r):t,e&&i&&void 0!==i.decimals){const e=Math.pow(10,i.decimals),r=function(t){for(let i=0,r=t.length;i0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=_(t);return this.readFeaturesFromDocument(i,e)}return m(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let r=t.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&Object(u.d)(i,this.readFeaturesFromNode(r,e));return i}readFeaturesFromNode(t,e){return Object(dn.a)()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=_(t);return this.readGeometryFromDocument(i,e)}return m(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=_(t);return this.readProjectionFromDocument(e)}return m(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}};const n_="http://www.opengis.net/gml",s_=/^\s*$/;class o_ extends r_{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:v(this.readFeaturesInternal),featureMembers:x(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let r=null;if("FeatureCollection"==i)r=R([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const n=e[0];let s=n.featureType,o=n.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e0){t={_content_:t};for(let e=0;e=2,57)}};var y_=class extends __{constructor(t){super("And",Array.prototype.slice.call(arguments))}};var v_=class extends m_{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}};var x_=class extends m_{constructor(t,e,i,r){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=r}};var b_=class extends x_{constructor(t,e,i){super("Contains",t,e,i)}};var w_=class extends x_{constructor(t,e,i,r,n){super("DWithin",t,e,n),this.distance=i,this.unit=r}};var E_=class extends x_{constructor(t,e,i){super("Disjoint",t,e,i)}};var S_=class extends m_{constructor(t,e){super(t),this.propertyName=e}};var I_=class extends S_{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}};var C_=class extends S_{constructor(t,e,i,r){super(t,e),this.expression=i,this.matchCase=r}};var T_=class extends C_{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}};var L_=class extends C_{constructor(t,e){super("PropertyIsGreaterThan",t,e)}};var M_=class extends C_{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}};var O_=class extends x_{constructor(t,e,i){super("Intersects",t,e,i)}};var R_=class extends S_{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}};var P_=class extends S_{constructor(t,e,i,r,n,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==r?r:".",this.escapeChar=void 0!==n?n:"!",this.matchCase=s}};var N_=class extends S_{constructor(t){super("PropertyIsNull",t)}};var A_=class extends C_{constructor(t,e){super("PropertyIsLessThan",t,e)}};var F_=class extends C_{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}};var k_=class extends m_{constructor(t){super("Not"),this.condition=t}};var D_=class extends C_{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}};var j_=class extends __{constructor(t){super("Or",Array.prototype.slice.call(arguments))}};var G_=class extends x_{constructor(t,e,i){super("Within",t,e,i)}};function z_(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(y_,e))}function B_(t,e,i){return new v_(t,e,i)}const U_={"http://www.opengis.net/gml":{boundedBy:w(a_.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:v(a_.prototype.readFeaturesInternal)}},V_={"http://www.opengis.net/wfs":{totalInserted:w(Y),totalUpdated:w(Y),totalDeleted:w(Y)},"http://www.opengis.net/wfs/2.0":{totalInserted:w(Y),totalUpdated:w(Y),totalDeleted:w(Y)}},q_={"http://www.opengis.net/wfs":{TransactionSummary:w(ey,"transactionSummary"),InsertResults:w(sy,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:w(ey,"transactionSummary"),InsertResults:w(sy,"insertIds")}},Y_={"http://www.opengis.net/wfs":{PropertyName:E($)},"http://www.opengis.net/wfs/2.0":{PropertyName:E($)}},W_={"http://www.opengis.net/wfs":{Insert:E(oy),Update:E(cy),Delete:E(hy),Property:E(uy),Native:E(dy)},"http://www.opengis.net/wfs/2.0":{Insert:E(oy),Update:E(cy),Delete:E(hy),Property:E(uy),Native:E(dy)}},X_="feature",H_="http://www.w3.org/2000/xmlns/",Z_={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},K_={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},$_={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},J_={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},Q_={"2.0.0":f_,"1.1.0":g_,"1.0.0":c_};function ty(t,e,i,r){N(r,W_,I(t),e,i)}function ey(t,e){return R({},V_,t,e)}const iy={"http://www.opengis.net/ogc":{FeatureId:v((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:v((function(t,e){return t.getAttribute("fid")}))}};function ry(t,e){O(iy,t,e)}const ny={"http://www.opengis.net/wfs":{Feature:ry},"http://www.opengis.net/wfs/2.0":{Feature:ry}};function sy(t,e){return R([],ny,t,e)}function oy(t,e,i){const r=i[i.length-1],n=r.featureType,s=r.featureNS,o=r.gmlVersion,a=g(s,n);t.appendChild(a),2===o?c_.prototype.writeFeatureElement(a,e,i):3===o?g_.prototype.writeFeatureElement(a,e,i):f_.prototype.writeFeatureElement(a,e,i)}function ay(t,e,i){const r=i[i.length-1].version,n=Z_[r],s=g(n,"Filter"),o=g(n,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function ly(t,e){const i=(t=t||X_)+":";return e.startsWith(i)?e:i+e}function hy(t,e,i){const r=i[i.length-1];Object(os.a)(void 0!==e.getId(),26);const n=r.featureType,s=r.featurePrefix,o=r.featureNS,a=ly(s,n);t.setAttribute("typeName",a),t.setAttributeNS(H_,"xmlns:"+s,o);const l=e.getId();void 0!==l&&ay(t,l,i)}function cy(t,e,i){const r=i[i.length-1];Object(os.a)(void 0!==e.getId(),27);const n=r.version,s=r.featureType,o=r.featurePrefix,a=r.featureNS,l=ly(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(H_,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t{const n=this.combineBboxAndFilter(r.geometryName,r.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:r.geometryName,filter:n}),Oy(e,[r.name],[i])});return e}combineBboxAndFilter(t,e,i,r){const n=B_(t,e,i);return r?z_(r,n):n}writeTransaction(t,e,i,r){const n=[],s=r.version?r.version:this.version_,o=g(K_[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),r&&(a=r.gmlOptions?r.gmlOptions:{},r.handle&&o.setAttribute("handle",r.handle)),o.setAttributeNS(d,"xsi:schemaLocation",J_[s]);const l=function(t,e,i,r){const n=r.featurePrefix?r.featurePrefix:X_;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);return Object.assign({node:t},{version:i,featureNS:r.featureNS,featureType:r.featureType,featurePrefix:n,gmlVersion:s,hasZ:r.hasZ,srsName:r.srsName},e)}(o,a,s,r);return t&&ty("Insert",t,n,l),e&&ty("Update",e,n,l),i&&ty("Delete",i,n,l),r.nativeElements&&ty("Native",r.nativeElements,n,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),Object(h.o)(t.pop().srsName)}return null}},Ny=i(106),Ay=i.n(Ny),Fy=i(107),ky=i.n(Fy);class Dy extends Xu{constructor(t,e){super(),this.userFormat=t,this.featureCount=e.featureCount,xE(this.featureCount)&&(this.featureCount=10),this.buffer=e.buffer}addTo(t,e){!1===t.getMapImpl().getControls().getArray().some(t=>t instanceof Dy)&&(this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this))}activate(){this.addOnClickEvent_()}deactivate(){this.deleteOnClickEvent_()}addOnClickEvent_(){const t=this.facadeMap_.getMapImpl();"plain"===CE(this.userFormat)||"text/plain"===CE(this.userFormat)?this.userFormat="text/plain":"gml"===CE(this.userFormat)||"application/vnd.ogc.gml"===CE(this.userFormat)?this.userFormat="application/vnd.ogc.gml":this.userFormat="text/html",this.clickEventKey_=t.on("singleclick",t=>this.buildUrl_(s,t))}buildUrl_(t,e){this.evt=e;const i=this.facadeMap_.getMapImpl(),r=this.buildWMSInfoURL(this.facadeMap_.getWMS()),n=[...this.buildWMTSInfoURL(this.facadeMap_.getWMTS()),...r].filter(t=>!xE(t));n.length>0?this.showInfoFromURL_(n,e.coordinate,i):t.info("No existen capas consultables")}buildWMSInfoURL(t){const e=this.facadeMap_.getMapImpl().getView().getResolution(),i=this.facadeMap_.getProjection().code;return t.map(t=>{const r=t.getImpl().getOLLayer();let n;if(t.isVisible()&&t.isQueryable()&&!xE(r)){n={};const s={INFO_FORMAT:this.userFormat,FEATURE_COUNT:this.featureCount},o=/buffer/i,a=r.getSource(),l=this.evt.coordinate;let h=a.getFeatureInfoUrl(l,e,i,s);EE(M.config.ticket)&&(h=LE(h,{ticket:M.config.ticket})),o.test(t.url)||(s.Buffer=this.buffer),n={layer:t.legend||t.name,url:h}}return n})}buildWMTSInfoURL(t){return t.map(t=>{let e;if(t.isVisible()){e={};const i=this.userFormat,r=this.evt.coordinate;let n=t.getGetFeatureInfoUrl(r,this.facadeMap_.getZoom(),i);EE(M.config.ticket)&&(n=LE(n,{ticket:M.config.ticket})),e={layer:t.legend||t.name,url:n}}return e})}deleteOnClickEvent_(){Object(nd.b)(this.clickEventKey_)}static insert(t,e){let i=!1;switch(e){case"text/html":const e=document.createElement("div");e.innerHTML=t;let r="";Array.prototype.forEach.call(e.querySelectorAll("body"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("div"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("table"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("b"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("span"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("input"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("a"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("img"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("p"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("ul"),t=>{r+=t.innerHTML.trim()}),Array.prototype.forEach.call(e.querySelectorAll("li"),t=>{r+=t.innerHTML.trim()}),r.length>0&&!/WMS\s+server\s+error/i.test(t)&&(i=!0);break;case"application/vnd.ogc.gml":i=(new Py).readFeatures(t).length>0;break;case"text/plain":/returned\s+no\s+results/i.test(t)||/features\s+were\s+found/i.test(t)||/:$/i.test(t)||(i=!0)}return i}formatInfo(t,e,i){let r=null;switch(e){case"text/html":r=t;break;case"application/vnd.ogc.gml":const e=(new Py).readFeatures(t);r="",e.forEach(t=>{const e=t.getKeys();r+="
    ",r+=`'`;for(let i=0,n=e.length;i"}r+="
    ' ${DE(i)} '
    ',r+=DE(n),r+='',r+=s,r+="
    "});break;case"text/plain":r=Dy.regExs.gsResponse.test(t)?this.txtToHtmlGeoserver(t,i):this.txtToHtmlMapserver(t,i)}return r}static unsupportedFormat(t,e){let i=!1;return"text/html"===e&&(i=Dy.regExs.msUnsupportedFormat.test(t)),i}txtToHtmlGeoserver(t,e){let i=t;i=i.replace(/[\w\s\S]*':/i,""),i=i.replace(/---(-*)(n+)---(-*)/g,"#newfeature#");const r=i.split("\n");let n="
    ";n+=``;for(let t=0,i=r.length;t1&&(r=t[1].trim(),0!==r.length&&"null"!==r||(r="-")),!1===Dy.regExs.gsGeometry.test(e)&&(n+='")}else Dy.regExs.gsNewFeature.test(i)&&(n+=``)}return n+="
    ${DE(e)}
    ',n+=DE(e),n+='',n+=r,n+="
    ${DE(e)}
    ",n}txtToHtmlMapserver(t){let e=t;e=e.replace(/[\w\s\S]*(layer)/i,"$1");const i=e.replace(/layer(\s*)'(\w+)'[\w\s\S]*/i,"$2");e=e.replace(/layer(\s*)'(\w+)'([\w\s\S]*)/i,"$3"),e=e.replace(/feature(\s*)(\w*)(\s*)(:)([\w\s\S]*)/i,"$5"),e=e.replace(/'/g,""),e=e.replace(/=/g,";");const r=e.split("\n");let n="";const s=``;for(let t=0,e=r.length;t1&&(l=o[1].trim(),0===l.length&&(l="-")),a.length>0&&(Dy.regExs.msNewFeature.test(a)?s.length>0&&!Dy.regExs.msNewFeature.test(s)&&(n+=``):(n+='"))}return n.length>0&&(n=s+n+"
    ${DE(i)}
    ${DE(i)}
    ',n+=DE(a),n+='',n+=l,n+="
    "),n}showInfoFromURL_(t,e,i){const r=Vl(Ay.a,{vars:{info:Dy.LOADING_MESSAGE},parseToHtml:!1}),n=[],s=String(this.userFormat);let o=0;const a={icon:"g-cartografia-info",title:Dy.POPUP_TITLE,content:r};let l=this.facadeMap_.getPopup();if(xE(l))l=new hf,l.addTab(a),this.facadeMap_.addPopup(l,e);else{l.getTabs().some(t=>t.title!==Dy.POPUP_TITLE)?l.addTab(a):(this.facadeMap_.removePopup(),l=new hf,l.addTab(a),this.facadeMap_.addPopup(l,e))}t.forEach(e=>{const i=e.url,r=e.layer;pE(i).then(e=>{if(l=this.facadeMap_.getPopup(),200===e.code&&!1===e.error){const t=e.text;if(!0===Dy.insert(t,s)){const e=this.formatInfo(t,s,r);n.push({formatedInfo:e,layerName:r})}else Dy.unsupportedFormat(t,s)&&n.push({formatedInfo:jl("getfeatureinfo").unsupported_format,layerName:r})}if(o+=1,t.length===o&&!xE(l))if(l.removeTab(a),0===n.length)l.addTab({icon:"g-cartografia-info",title:Dy.POPUP_TITLE,content:jl("getfeatureinfo").no_info});else{const t=Vl(ky.a,{vars:{layers:n,info_of:jl("getfeatureinfo").info_of},parseToHtml:!1});l.addTab({icon:"g-cartografia-info",title:Dy.POPUP_TITLE,content:t,listeners:[{selector:".m-getfeatureinfo-content-info div.m-arrow-right",all:!0,type:"click",callback:t=>this.toogleSection(t)}]})}})}),this.popup_=l}toogleSection(t){const{target:e}=t,{parentElement:i}=e.parentElement,r=i.querySelector(".m-getfeatureinfo-content-info-body");if(r.classList.contains("m-content-collapsed")){r.classList.remove("m-content-collapsed"),e.classList.remove("m-arrow-right"),e.classList.add("m-arrow-down");const t=this.popup_.getCoordinate();xE(this.popup_.getImpl().panIntoView)||this.popup_.getImpl().panIntoView(t)}else r.classList.add("m-content-collapsed"),e.classList.add("m-arrow-right"),e.classList.remove("m-arrow-down")}}Dy.LOADING_MESSAGE="Obteniendo información...",Dy.regExs={gsResponse:/^results[\w\s\S]*'http:/i,msNewFeature:/feature(\s*)(\w+)(\s*):/i,gsNewFeature:/#newfeature#/,gsGeometry:/geom$/i,msGeometry:/boundedby$/i,msUnsupportedFormat:/error(.*)unsupported(.*)info_format/i};var jy=Dy,Gy=i(108),zy=i.n(Gy);class By extends Gl{constructor(t,e={}){super(new jy(t,e),By.NAME),mE(jy)&&Qa(jl("exception").getfeatureinfo_method),this.format=t}createView(t){return Vl(zy.a,{vars:{title:jl("getfeatureinfo").title}})}getActivationButton(t){return t.querySelector("button#m-getfeatureinfo-button")}equals(t){let e=!1;return t instanceof By&&(e=this.name===t.name),e}}By.NAME="getfeatureinfo",By.POPUP_TITLE=jl("getfeatureinfo").info;var Uy=By,Vy=(i(152),i(109)),qy=i.n(Vy);const Yy=".m-top.m-left",Wy=".m-top.m-right",Xy=".m-bottom.m-left",Hy=".m-bottom.m-right";class Zy extends Wa{constructor(t,e={}){super(),this.name=t,this._map=null,this._controls=[],this._buttonPanel=null,this._collapsible=!1,xE(e.collapsible)||(this._collapsible=e.collapsible),this.position=Yy,xE(e.position)||(this.position=e.position),this._collapsed=this._collapsible,xE(e.collapsed)||(this._collapsed=e.collapsed&&!0===this._collapsible),this._multiActivation=!1,xE(e.multiActivation)||(this._multiActivation=e.multiActivation),this._className=null,xE(e.className)||(this._className=e.className),this._collapsedButtonClass=null,xE(e.collapsedButtonClass)?this.position===Yy||this.position===Xy?this._collapsedButtonClass="g-cartografia-flecha-derecha":this.position!==Wy&&this.position!==Hy||(this._collapsedButtonClass="g-cartografia-flecha-izquierda"):this._collapsedButtonClass=e.collapsedButtonClass,this._openedButtonClass=null,xE(e.openedButtonClass)?this.position===Yy||this.position===Xy?this._openedButtonClass="g-cartografia-flecha-izquierda":this.position!==Wy&&this.position!==Hy||(this._openedButtonClass="g-cartografia-flecha-derecha"):this._openedButtonClass=e.openedButtonClass,this._element=null,this._areaContainer=null,this._controlsContainer=null,this._tooltip=null,xE(e.tooltip)||(this._tooltip=e.tooltip)}destroy(){null!=this._element&&this._areaContainer.removeChild(this._element),this._controlsContainer=null}addTo(t,e){this._map=t,this._areaContainer=e;const i=Vl(qy.a);this._element=i,xE(this._tooltip)||this._element.setAttribute("title",this._tooltip),this._buttonPanel=i.querySelector("button.m-panel-btn"),xE(this._className)||this._className.split(/\s+/).forEach(t=>{i.classList.add(t)}),!0===this._collapsed?this.collapse():this.open(),!0!==this._collapsible&&i.classList.add("no-collapsible"),this._controlsContainer=i.querySelector("div.m-panel-controls"),e.appendChild(i),this._buttonPanel.addEventListener("click",t=>{t.preventDefault(),!1===this._collapsed?this.collapse():this.open()}),this.addControls(this._controls),this.fire(el,i)}_collapse(t){t.classList.remove("opened"),this._buttonPanel.classList.remove(this._openedButtonClass),t.classList.add("collapsed"),this._buttonPanel.classList.add(this._collapsedButtonClass),this._collapsed=!0,this.fire(fl)}_open(t){t.classList.remove("collapsed"),this._buttonPanel.classList.remove(this._collapsedButtonClass),t.classList.add("opened"),this._buttonPanel.classList.add(this._openedButtonClass),this._collapsed=!1,this.fire(pl)}open(){this._open(this._element)}collapse(){this._collapse(this._element)}getControls(){return this._controls}addControls(t){let e=t;xE(e)||(vE(e)||(e=[e]),e.forEach(t=>{t instanceof Gl&&(this.hasControl(t)||(this._controls.push(t),t.setPanel(this),t.on(ml,this._removeControl.bind(this),this)),xE(this._controlsContainer)||(t.on(el,this._moveControlView.bind(this),this),t.addTo(this._map)),t.on(dl,this._manageActivation.bind(this),this))}))}hasControl(t){let e=!1;return xE(t)||(EE(t)?e=null!=this._controls.filter(e=>e.name===t)[0]:t instanceof Gl&&(e=zE(this._controls,t))),e}removeControls(t){let e=t;xE(e)||(vE(e)||(e=[e]),e.forEach(t=>{const e=t;e instanceof Gl&&this.hasControl(e)&&(this._controls=this._controls.filter(t=>!e.equals(t)),e.destroy&&e.destroy(),e.setPanel(null))},this),0===this._controls.length&&this._map.removePanel(this))}_removeControl(t){this._map.controls(t).forEach(t=>{const e=this._controls.indexOf(t);-1!==e&&this._controls.splice(e,1)})}removeClassName(t){xE(this._element)?this._className=this._className.replace(new RegExp(`s* ${t} s*`),""):this._element.classList.remove(t)}addClassName(t){xE(this._element)?this._className=this._className.concat(" ").concat(t):this._element.classList.add(t)}_moveControlView(t){const e=t.getElement();xE(this._controlsContainer)||this._controlsContainer.appendChild(e),t.fire(il)}_manageActivation(t){!0!==this._multiActivation&&this._controls.forEach(e=>{!e.equals(t)&&e.activated&&e.deactivate()})}equals(t){let e=!1;return t instanceof Zy&&(e=t.name===this.name),e}getTemplatePanel(){return this._element}getButtonPanel(){return this._buttonPanel}isCollapsed(){return this._collapsed}setCollapsed(t){this._collapsed=t}getControlsContainer(){return this._controlsContainer}}var Ky=Zy;const $y="map-info",Jy=(t,e)=>{t.on(el,()=>{3===e.getControls(["wmcselector","scale","scaleline"]).length&&e.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")})};class Qy{constructor(t={},e=(()=>null)){this.panel_=new Ky(t.name,{...t.params}),e(this.panel_)}get panel(){return this.panel_}}const tv=t=>{let e=t.getPanels("map-info")[0];if(xE(e)){e=new Qy({name:$y,params:{collapsible:!1,className:"m-map-info",position:Hy}},e=>{Jy(e,t)}).panel}return e.addClassName("m-with-scale"),e},ev=(t,e)=>{const i={[Uy.NAME]:()=>(t=>{const e=t;if(xE(e.panel.TOOLS)){const t=new Qy({name:"tools",params:{collapsible:!0,className:"m-tools",collapsedButtonClass:"g-cartografia-herramienta",position:Yy,tooltip:"Panel de herramientas"}});e.panel.TOOLS=t.panel}return e.panel.TOOLS})(e),[Lf.NAME]:()=>new Qy({name:Lf.NAME,params:{collapsible:!0,className:"m-layerswitcher",collapsedButtonClass:"g-cartografia-capas2",position:Wy,tooltip:jl("layerswitcher").title}},t=>{t.on(el,t=>{VE(t.querySelector(".m-panel-controls"))}),t.on(pl,t=>{const e=t.getControls()[0];e.registerEvents(),e.render()}),t.on(fl,t=>{t.getControls()[0].unregisterEvents()})}).panel,[Hf.NAME]:()=>new Qy({name:Hf.NAME,params:{collapsible:!1,className:"m-location",position:Hy}}).panel,[Fm.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];xE(e)&&(e=new Qy({name:$y,params:{collapsible:!1,className:"m-map-info",position:Hy,tooltip:"Coordenadas del puntero"}}).panel);return e.addClassName("m-with-mouse"),e})(e),[Vm.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];xE(e)&&(e=new Qy({name:$y,params:{collapsible:!1,className:"m-map-info",position:Hy}}).panel);return e.addClassName("m-with-overview"),e})(e),[Qm.NAME]:()=>new Qy({name:Qm.NAME,params:{collapsible:!1,className:"m-panzoom",position:Yy}}).panel,[Wl.NAME]:()=>new Qy({name:Wl.NAME,params:{collapsible:!1,className:"m-panzoombar",position:Yy,tooltip:"Nivel de zoom"}}).panel,[cm.NAME]:()=>new Qy({name:cm.NAME,params:{collapsible:!1,className:"m-rotate",position:Wy}}).panel,[Qf.NAME]:()=>tv(e),[Qf.NAME+"*true"]:()=>tv(e),[Cm.NAME]:()=>(t=>new Qy({name:Cm.NAME,params:{collapsible:!1,className:"m-scaleline",position:Xy,tooltip:"Línea de escala"}},e=>{Jy(e,t)}).panel)(e),[Ku.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];xE(e)&&(e=new Qy({name:$y,params:{collapsible:!1,className:"m-map-info",position:Hy}},e=>{Jy(e,t)}).panel);return e.addClassName("m-with-wmcselector"),e})(e)}[t.name];return bE(i)?i():null};var iv=i(110),rv=i.n(iv);var nv=class{constructor(t,e,i){this.text_=t,this.coord_=[e.x,e.y],this.popup_=null,this.facadeMap_=null,this.panMapIfOutOfView=i}show(t,e){this.facadeMap_=t;const i=Vl(rv.a,{vars:{info:this.text_},parseToHtml:!1});this.popup_=new hf({panMapIfOutOfView:this.panMapIfOutOfView}),this.popup_.addTab({icon:"g-cartografia-comentarios",title:"Información",content:i}),t.addPopup(this.popup_,this.coord_,e)}hide(){this.facadeMap_.removePopup()}getPopup(){return this.popup_}getCoordinate(){let t=this.coord;return xE(t)&&(t=this.getPopup().getCoordinate()),t}setCoordinate(t){const e=this.getPopup();xE(e)||e.setCoordinate(t)}};class sv extends tl{constructor(t,e,i){super(new nv(t,e,i))}hide(){this.getImpl().hide()}show(t,e){this.getImpl().show(t,e)}getPopup(){return this.getImpl().getPopup()}getCoordinate(){return this.getImpl().getCoordinate()}setCoordinate(t){this.getImpl().coordinate=t}}sv.POPUP_TEMPLATE="label_popup.html";var ov=sv;const av=t=>{let e;return EE(t)?e=document.getElementById(t):wE(t)?xE(t.id)?xE(t.container)?Qa(jl("exception").no_container):e=av(t.container):e=document.getElementById(t.id):Qa("El tipo del parámetro container no es válido: "+typeof t),xE(e)&&Qa(jl("exception").no_id_container),e};var lv=class{constructor(t){xE(t)&&Qa(jl("exception").no_param),this.container=av(t),this.layers=(t=>{let e;return EE(t)?e=TE("layers",t):wE(t)?e=t.layers:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmc=(t=>{let e;return EE(t)?(e=TE("wmc",t),xE(e)&&(e=TE("wmcfile",t)),xE(e)&&(e=TE("wmcfiles",t))):wE(t)?(e=t.wmc,xE(e)&&(e=t.wmcfile),xE(e)&&(e=t.wmcfiles)):Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wms=(t=>{let e;return EE(t)?e=TE("wms",t):wE(t)?e=t.wms:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmts=(t=>{let e;return EE(t)?e=TE("wmts",t):wE(t)?e=t.wmts:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.kml=(t=>{let e;return EE(t)?e=TE("kml",t):wE(t)?e=t.kml:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.controls=(t=>{let e;return EE(t)?e=TE("controls",t):wE(t)?e=t.controls:Qa("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.getfeatureinfo=(t=>{let e;return EE(t)?e=TE("getfeatureinfo",t):wE(t)?(e=t.getfeatureinfo,!mE(e)&&xE(e)&&(e="plain")):Qa("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.layerswitcher=(t=>{let e;return EE(t)?e=TE("layerswitcher",t):wE(t)?e=t.layerswitcher:Qa("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.maxExtent=(t=>{let e;return EE(t)?(e=TE("maxExtent",t),xE(e)&&(e=TE("maxextent",t))):wE(t)?(e=t.maxExtent,xE(e)&&(e=t.maxextent)):Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.bbox=(t=>{let e;return EE(t)?e=TE("bbox",t):wE(t)?e=t.bbox:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.zoom=(t=>{let e;return EE(t)?e=TE("zoom",t):wE(t)?e=t.zoom:Qa("El tipo del parámetro zoom no es válido: "+typeof t),e})(t),this.center=(t=>{let e;return EE(t)?e=TE("center",t):wE(t)?e=t.center:Qa("El tipo del parámetro center no es válido: "+typeof t),e})(t),this.resolutions=(t=>{let e;return EE(t)?e=TE("resolutions",t):wE(t)?e=t.resolutions:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.projection=(t=>{let e;return EE(t)?e=TE("projection",t):wE(t)?e=t.projection:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.label=(t=>{let e;return EE(t)?e=TE("label",t):wE(t)?e=t.label:Qa("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.ticket=(t=>{let e;return EE(t)?e=TE("ticket",t):wE(t)?e=t.ticket:Qa("El tipo del parámetro ticket no es válido: "+typeof t),e})(t),this.rotation=(t=>{let e=t;return EE(t)?e=TE("rotation",t):wE(t)&&(e=t.rotation),e})(t),this.bgColorContainer=(t=>{let e;return EE(t)?e=TE("bgColorContainer",t):wE(t)?e=t.bgColorContainer:Qa("El tipo del parámetro bgColorContainer no es válido: "+typeof t),e})(t)}};class hv extends tl{constructor(){super(new uv),this.id_=ME("mapea","render_feature")}getId(){return this.id_}getGeometry(){return null}getAttributes(){return this.getImpl().getAttributes()}getType(){return this.getImpl().getType()}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),xE(e)){const i=t.split(".");i.length>1&&(e=i.reduce((t,e)=>{let i;return xE(t)||(i=t instanceof hv?t.getAttribute(e):t[e]),i},this))}return e}equals(t){return this.getId()===t.getId()}}var cv=hv;var uv=class{constructor(){this.olFeature_=null}getOLFeature(){return this.olFeature_}getType(){return this.getOLFeature().getType()}setOLFeature(t){xE(t)||(this.olFeature_=t)}getAttributes(){return this.olFeature_.getProperties()}static olFeature2Facade(t,e){let i=null;return xE(t)||(i=new cv,i.getImpl().setOLFeature(t)),i}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){}};const dv=(t,e)=>{let i;const r=t.getId();return xE(r)||(i=e.getFeatureById(r)),xE(i)&&t instanceof dc&&(i=uv.olFeature2Facade(t)),i};var gv=class{constructor(t={}){this.map_=null,this.defaultCursor_=void 0}addTo(t){this.map_=t}getFeaturesByLayer(t,e){const i=[];if(!xE(e)&&e.isVisible()&&!xE(e.getImpl().getOLLayer())){const r=e.getImpl().getOLLayer();this.map_.getMapImpl().forEachFeatureAtPixel(t.pixel,(t,r)=>{if(r instanceof Op&&!xE(t.get("features"))){const r=t.get("features").map(t=>dv(t,e));if(1===r.length)i.push(r[0]);else{let t=e.getStyle();t instanceof Yp||(t=t.getStyles().find(t=>t instanceof Yp)),i.push(new fS(r,{ranges:t.getRanges(),hoverInteraction:t.getOptions().hoverInteraction,maxFeaturesToSelect:t.getOptions().maxFeaturesToSelect,distance:t.getOptions().distance}))}}else Object.prototype.hasOwnProperty.call(t.getProperties(),"selectclusterlink")||i.push(dv(t,e))},{layerFilter:t=>{let i=!1;return e.getStyle()instanceof Yp&&e.getStyle().getOptions().selectInteraction&&(i=t===e.getStyle().getImpl().selectClusterInteraction.getLayer()),i=i||t===r,i}})}return i}addCursorPointer(){const t=this.map_.getMapImpl().getViewport();"pointer"!==t.style.cursor&&(this.defaultCursor_=t.style.cursor),t.style.cursor="pointer"}removeCursorPointer(){this.map_.getMapImpl().getViewport().style.cursor=this.defaultCursor_}destroy(){this.map_.un("click",this.onMapClick_,this),this.map_=null}};var pv=class extends tl{constructor(t={},e=new gv(t)){super(e),this.map_=null,this.layers_=[],this.activated_=!1,this.prevSelectedFeatures_={},this.prevHoverFeatures_={},bE(e.addTo)||Qa(jl("exception").addto_method),bE(e.getFeaturesByLayer)||Qa(jl("exception").getfeaturesbylayer_method)}addTo(t){this.map_=t,this.map_.on(Rl,this.moveOverMap_.bind(this)),this.map_.on(Ol,this.clickOnMap_.bind(this)),this.getImpl().addTo(this.map_),this.fire(el)}changeNamePrevs(t,e){const i=this.prevHoverFeatures_[t],r=this.prevSelectedFeatures_[t];this.prevHoverFeatures_[e]=i,this.prevSelectedFeatures_[e]=r,delete this.prevHoverFeatures_[t],delete this.prevSelectedFeatures_[t]}clickOnMap_(t){if(!0===this.activated_){const e=this.getImpl();this.map_.removePopup(),this.layers_.forEach(i=>{const r=e.getFeaturesByLayer(t,i),n=[...this.prevSelectedFeatures_[i.id]];if(0===r.length&&n.length>0)this.unselectFeatures(n,i,t);else if(r.length>0){const e=r.filter(t=>!n.some(e=>e.equals(t))),s=n.filter(t=>!r.some(e=>e.equals(t)));s.length>0&&this.unselectFeatures(s,i,t),e.length>0&&this.selectFeatures(e,i,t)}})}}moveOverMap_(t){if(!0===this.activated_){const e=this.getImpl();this.layers_.forEach(i=>{const r=e.getFeaturesByLayer(t,i),n=[...this.prevHoverFeatures_[i.id]];if(0===r.length&&n.length>0)this.leaveFeatures_(n,i,t);else if(r.length>0){const e=r.filter(t=>(t instanceof pS||t instanceof cv)&&!n.some(e=>e.equals(t))),s=n.filter(t=>!r.some(e=>e.equals(t)));s.length>0&&this.leaveFeatures_(s,i,t),e.length>0&&this.hoverFeatures_(e,i,t)}})}}selectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].concat(t);const r=e.getImpl();bE(r.selectFeatures)&&r.selectFeatures(t,i.coord,i),e.fire(_l,[t,i])}unselectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].filter(e=>!t.some(t=>t.equals(e)));const r=e.getImpl();bE(r.unselectFeatures)&&r.unselectFeatures(t,i.coord),e.fire(yl,[t,i.coord])}hoverFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].concat(t),e.fire(vl,[t,i]),this.getImpl().addCursorPointer()}leaveFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].filter(e=>!t.some(t=>t.equals(e))),e.fire(xl,[t,i.coord]),this.getImpl().removeCursorPointer()}activate(){!1===this.activated_&&(this.activated_=!0,this.fire(dl))}deactivate(){!0===this.activated_&&(this.activated_=!1,this.fire(gl))}addLayer(t){zE(this.layers_,t)||(this.layers_.push(t),this.prevSelectedFeatures_[t.id]=[],this.prevHoverFeatures_[t.id]=[])}removeLayer(t){this.layers_=this.layers_.filter(e=>!e.equals(t)),this.prevSelectedFeatures_[t.id]=null,this.prevHoverFeatures_[t.id]=null,delete this.prevSelectedFeatures_[t.id],delete this.prevHoverFeatures_[t.id]}destroy(){}clearSelectedFeatures(){Object.keys(this.prevSelectedFeatures_).forEach(t=>{this.prevSelectedFeatures_[t]=[]})}clearHoverFeatures(){Object.keys(this.prevHoverFeatures_).forEach(t=>{this.prevHoverFeatures_[t]=[]})}},fv=i(111),mv=i.n(fv);var _v=class extends Wa{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,r)=>{this.loadInternal_(r).then(e=>{t(e)})}}loadInternal_(t){return new Promise((t,e)=>{pE(this.url_).then(e=>{const i=this.map_.getProjection().code;if(xE(e.text))Qa(jl("exception").no_kml_response);else{const r=this.format_.readCustomFeatures(e.text,{featureProjection:i}),n=this.format_.getScreenOverlay(),s=r.map(t=>{const e=new pS(t.getId(),{geometry:{coordinates:t.getGeometry().getCoordinates(),type:t.getGeometry().getType()},properties:t.getProperties()});return e.getImpl().getOLFeature().setStyle(t.getStyle()),e});t({features:s,screenOverlay:n})}})})}};const yv=["http://www.google.com/kml/ext/2.2"],vv=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],xv={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},bv=L(vv,{ExtendedData:Ex,Region:Sx,MultiGeometry:w(px,"geometry"),LineString:w(ux,"geometry"),LinearRing:w(dx,"geometry"),Point:w(fx,"geometry"),Polygon:w(_x,"geometry"),Style:w(vx),StyleMap:function(t,e){const i=$v.call(this,t,e);if(!i)return;const r=e[e.length-1];Array.isArray(i)?r.Style=i:"string"==typeof i?r.styleUrl=i:Object(os.a)(!1,38)},address:w(X),description:w(X),name:w(X),open:w(z),phoneNumber:w(X),styleUrl:w(Hv),visibility:w(z)},L(yv,{MultiTrack:w((function(t,e){const i=R([],nx,t,e);if(!i)return;return new sc(i)}),"geometry"),Track:w(ox,"geometry")})),wv=L(vv,{ExtendedData:Ex,Region:Sx,Link:function(t,e){O(Ev,t,e)},address:w(X),description:w(X),name:w(X),open:w(z),phoneNumber:w(X),visibility:w(z)}),Ev=L(vv,{href:w(Xv)}),Sv=L(vv,{LatLonAltBox:function(t,e){const i=R({},Tx,t,e);if(!i)return;const r=e[e.length-1],n=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)];r.extent=n,r.altitudeMode=i.altitudeMode,r.minAltitude=parseFloat(i.minAltitude),r.maxAltitude=parseFloat(i.maxAltitude)},Lod:function(t,e){const i=R({},Lx,t,e);if(!i)return;const r=e[e.length-1];r.minLodPixels=parseFloat(i.minLodPixels),r.maxLodPixels=parseFloat(i.maxLodPixels),r.minFadeExtent=parseFloat(i.minFadeExtent),r.maxFadeExtent=parseFloat(i.maxFadeExtent)}}),Iv=L(vv,["Document","Placemark"]),Cv=L(vv,{Document:E((function(t,e,i){N({node:t},Nx,Ax,e,i,void 0,this)})),Placemark:E(nb)});let Tv,Lv,Mv,Ov,Rv,Pv,Nv=null;let Av,Fv=null;let kv,Dv=null;let jv=null;let Gv=null;let zv,Bv=null;function Uv(t){return 32/Math.min(t[0],t[1])}function Vv(t){return t}function qv(t,e,i){return Array.isArray(t)?t:"string"==typeof t?qv(i[t],e,i):e}function Yv(t){const e=p(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){const t=i[1];return[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]}}function Wv(t){let e=p(t,!1);const i=[];e=e.replace(/\s*,\s*/g,",");const r=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;let n;for(;n=r.exec(e);){const t=parseFloat(n[1]),r=parseFloat(n[2]),s=n[3]?parseFloat(n[3]):0;i.push(t,r,s),e=e.substr(n[0].length)}if(""===e)return i}function Xv(t){const e=p(t,!1).trim();let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Hv(t){const e=p(t,!1).trim().replace(/^(?!.*#)/,"#");let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Zv(t){return V(t)}const Kv=L(vv,{Pair:function(t,e){const i=R({},Ix,t,e,this);if(!i)return;const r=i.key;if(r&&"normal"==r){const t=i.styleUrl;t&&(e[e.length-1]=t);const r=i.Style;r&&(e[e.length-1]=r)}}});function $v(t,e){return R(void 0,Kv,t,e,this)}const Jv=L(vv,{Icon:w((function(t,e){const i=R({},ax,t,e);if(i)return i;return null})),color:w(Yv),heading:w(V),hotSpot:w((function(t){const e=t.getAttribute("xunits"),i=t.getAttribute("yunits");let r;return r="insetPixels"!==e?"insetPixels"!==i?"bottom-left":"top-left":"insetPixels"!==i?"bottom-right":"top-right",{x:parseFloat(t.getAttribute("x")),xunits:xv[e],y:parseFloat(t.getAttribute("y")),yunits:xv[i],origin:r}})),scale:w(Zv)});const Qv=L(vv,{color:w(Yv),scale:w(Zv)});const tx=L(vv,{color:w(Yv),width:w(V)});const ex=L(vv,{color:w(Yv),fill:w(z),outline:w(z)});const ix=L(vv,{coordinates:x(Wv)});function rx(t,e){return R(null,ix,t,e)}const nx=L(yv,{Track:v(ox)});const sx=L(vv,{when:function(t,e){const i=e[e.length-1].whens,r=p(t,!1),n=Date.parse(r);i.push(isNaN(n)?0:n)}},L(yv,{coord:function(t,e){const i=e[e.length-1].coordinates,r=p(t,!1),n=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(n){const t=parseFloat(n[1]),e=parseFloat(n[2]),r=parseFloat(n[3]);i.push([t,e,r])}else i.push([])}}));function ox(t,e){const i=R({coordinates:[],whens:[]},sx,t,e);if(!i)return;const r=[],n=i.coordinates,s=i.whens;for(let t=0,e=Math.min(n.length,s.length);t0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=R(void 0,Ox,t,e);if(i){e[e.length-1][0]=i}}});function _x(t,e){const i=R({},cx,t,e),r=R([null],mx,t,e);if(r&&r[0]){const t=r[0],e=[t.length];for(let i=1,n=r.length;i0;let o;const a=n.href;let l,h,c;a?o=a:s&&(o=Pv);let u="bottom-left";const d=i.hotSpot;let g;d?(l=[d.x,d.y],h=d.xunits,c=d.yunits,u=d.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=Lv,h=Mv,c=Ov):o.includes("arrow-reverse")?(l=[54,42],h=Mv,c=Ov):o.includes("paddle")&&(l=[32,1],h=Mv,c=Ov));const p=n.x,f=n.y;let m;void 0!==p&&void 0!==f&&(g=[p,f]);const _=n.w,y=n.h;let v;void 0!==_&&void 0!==y&&(m=[_,y]);const x=i.heading;void 0!==x&&(v=Object(Fs.l)(x));const b=i.scale,w=i.color;if(s){o==Pv&&(m=Rv);const t=new Rd({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:g,offsetOrigin:"bottom-left",rotation:v,scale:b,size:m,src:this.iconUrlFunction_(o),color:w}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Id.a.IDLE||i===Id.a.LOADING){const r=function(){const i=t.getImageState();if(i!==Id.a.IDLE&&i!==Id.a.LOADING){const i=t.getSize();if(i&&2==i.length){const r=Uv(i);t.setScale(e*r)}t.unlistenImageChange(r)}};t.listenImageChange(r),i===Id.a.IDLE&&t.load()}}else if(2==i.length){const r=Uv(i);t.setScale(e*r)}r.imageStyle=t}else r.imageStyle=Av},LabelStyle:function(t,e){const i=R({},Qv,t,e);if(!i)return;const r=e[e.length-1],n=new yg({fill:new lg({color:"color"in i?i.color:Tv}),scale:i.scale});r.textStyle=n},LineStyle:function(t,e){const i=R({},tx,t,e);if(!i)return;const r=e[e.length-1],n=new cg({color:"color"in i?i.color:Tv,width:"width"in i?i.width:1});r.strokeStyle=n},PolyStyle:function(t,e){const i=R({},ex,t,e);if(!i)return;const r=e[e.length-1],n=new lg({color:"color"in i?i.color:Tv});r.fillStyle=n;const s=i.fill;void 0!==s&&(r.fill=s);const o=i.outline;void 0!==o&&(r.outline=o)}});function vx(t,e){const i=R({},yx,t,e,this);if(!i)return null;let r="fillStyle"in i?i.fillStyle:Nv;const n=i.fill;let s;void 0===n||n||(r=null),"imageStyle"in i?i.imageStyle!=Av&&(s=i.imageStyle):s=Fv;const o="textStyle"in i?i.textStyle:jv,a="strokeStyle"in i?i.strokeStyle:Dv,l=i.outline;return void 0===l||l?[new mg({fill:r,image:s,stroke:a,text:o,zIndex:void 0})]:[new mg({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new fc(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:r,image:s,stroke:a,text:o,zIndex:void 0}),new mg({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new fc(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:r,stroke:null,zIndex:void 0})]}function xx(t,e){const i=e.length,r=new Array(e.length),n=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t0){const t=T(n,o);N(r,eb,rb,[{names:o,values:t}],i)}const u=i[0];let d=e.getGeometry();d&&(d=e_(d,!0,u)),N(r,eb,Wx,[d],i)}const sb=L(vv,["extrude","tessellate","altitudeMode","coordinates"]),ob=L(vv,{extrude:E(H),tessellate:E(H),altitudeMode:E($),coordinates:E((function(t,e,i){const r=i[i.length-1],n=r.layout,s=r.stride;let o;"XY"==n||"XYM"==n?o=2:"XYZ"==n||"XYZM"==n?o=3:Object(os.a)(!1,34);const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(zv||(zv=document.createElement("textarea")),zv.innerHTML=l,l=zv.value));let c=i;if(t?c=t:e&&(c=qv(e,i,r)),a){const t=function(t,e){const i=[0,0];let r="start";const n=t.getImage();if(n){const t=n.getSize();if(t&&2==t.length){const e=n.getScaleArray(),s=n.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),r="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||jv.getFont()),s.setScale(s.getScale()||jv.getScale()),s.setFill(s.getFill()||jv.getFill()),s.setStroke(s.getStroke()||kv)):s=jv.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(r);return new mg({image:n,text:s})}(c[0],l);if(h.length>0){t.setGeometry(new fc(h));return[t,new mg({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);r.setStyle(t)}return delete i.Style,r.setProperties(i,!0),r}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const r=vx.call(this,t,e);if(r){let e,n=t.baseURI;if(n&&"about:blank"!=n||(n=window.location.href),n){e=new URL("#"+i,n).href}else e="#"+i;this.sharedStyles_[e]=r}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const r=$v.call(this,t,e);if(!r)return;let n,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){n=new URL("#"+i,s).href}else n="#"+i;this.sharedStyles_[n]=r}readFeatureFromNode(t,e){if(!vv.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!vv.includes(t.namespaceURI))return[];let i;const r=t.localName;if("Document"==r||"Folder"==r)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==r){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==r){i=[];for(let r=t.firstElementChild;r;r=r.nextElementSibling){const t=this.readFeaturesFromNode(r,e);t&&Object(u.d)(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=_(t);return this.readNameFromDocument(e)}return m(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(vv.includes(e.namespaceURI)&&"name"==e.localName)return X(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(vv.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=_(t);Object(u.d)(e,this.readNetworkLinksFromDocument(i))}else m(t)?Object(u.d)(e,this.readNetworkLinksFromDocument(t)):Object(u.d)(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&Object(u.d)(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(vv.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=R({},wv,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!vv.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||Object(u.d)(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=_(t);Object(u.d)(e,this.readRegionFromDocument(i))}else m(t)?Object(u.d)(e,this.readRegionFromDocument(t)):Object(u.d)(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&Object(u.d)(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(vv.includes(i.namespaceURI)&&"Region"==i.localName){const t=R({},Sv,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!vv.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||Object(u.d)(e,this.readRegionFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=g(vv[4],"kml"),r="http://www.w3.org/2000/xmlns/";i.setAttributeNS(r,"xmlns:gx",yv[0]),i.setAttributeNS(r,"xmlns:xsi",d),i.setAttributeNS(d,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const n={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=Iv[i.namespaceURI],a=T(s,o);return N(n,Cv,C,a,[e],o,this),i}};class yb extends _b{constructor(t={}){super(),this.screenOverlay_=null,this.label_=void 0===t.label||t.label}readCustomFeatures(t,e){const i=this.readFeatures(t,e).map(t=>{let e=t.getStyle()(t);if(!1===this.label_){const i=[e[0]];t.setStyle(i)}return Array.isArray(e)||(e=[e]),e.forEach(t=>{if(t.getImage()instanceof Rd){const e=t.getImage();t.setImage(e)}}),t.set("name",WE(t.get("name"))),t});return this.readScreenOverlay(t),i}readScreenOverlay(t){const e="xunits",i="yunits",r=_(t).querySelector("ScreenOverlay");if(null!==r){const t=r.querySelector("Icon"),n=null!==t?t.querySelector("href").innerHTML:yb.DEFAULT_NO_IMAGE_STYLE;let s,o,a;const l=r.querySelector("overlayXY");if(null!==l){s=[parseFloat(l.getAttribute("x")),parseFloat(l.getAttribute("y"))],o=l.getAttribute(e),a=l.getAttribute(i)}let h,c,u;const d=r.querySelector("screenXY");if(null!==d){h=[parseFloat(d.getAttribute("x")),parseFloat(d.getAttribute("y"))],c=d.getAttribute(e),u=d.getAttribute(i)}else n===yb.DEFAULT_IMAGE_STYLE_SRC?(h=yb.DEFAULT_IMAGE_STYLE_ANCHOR,c=yb.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS,u=yb.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(n)&&(h=[.5,0],c=Rd.FRACTION,u=Rd.FRACTION);let g,p,f;const m=r.querySelector("rotationXY");if(null!==m){const t=parseFloat(m.getAttribute("x"));g=Math.PI/180*t,p=m.getAttribute(e),f=m.getAttribute(i)}let _,y,v;const x=r.querySelector("size");if(null!==x){_=[parseFloat(x.getAttribute("x")),parseFloat(x.getAttribute("y"))],y=x.getAttribute(e),v=x.getAttribute(i)}this.screenOverlay_={screenXY:h,screenXUnits:c,screenYUnits:u,overlayXY:s,overlayXUnits:o,overlayYUnits:a,rotationXY:g,rotationXUnits:p,rotationYUnits:f,size:_,sizeXUnits:y,sizeYUnits:v,src:n}}}getScreenOverlay(){return this.screenOverlay_}}yb.DEFAULT_NO_IMAGE_STYLE="NO_IMAGE",yb.DEFAULT_IMAGE_STYLE_SRC="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",yb.DEFAULT_IMAGE_STYLE_ANCHOR=[20,2],yb.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS="pixels",yb.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS="pixels";var vb=yb;class xb extends gf{constructor(t,e){super(t,e),this.popup_=null,this.tabPopup_=null,this.loadFeaturesPromise_=null,this.screenOverlayImg_=null,this.label_=t.label}setVisible(t){if(this.visibility=t,xE(this.ol3Layer)||this.ol3Layer.setVisible(t),!xE(this.screenOverlayImg_)){let e="none";!0===t&&(e="inherit"),this.screenOverlayImg_.style[e]=e}}addTo(t){this.map=t,this.fire(el),t.on(Il,this.setProjection_.bind(this),this),this.formater_=new vb({label:this.label_}),this.loader_=new _v(this.map,this.url,this.formater_),this.ol3Layer=new Lp(BE({},this.vendorOptions_,!0)),this.updateSource_(),!1!==this.options.visibility&&this.setVisible(this.inRange()),null!==this.zIndex_&&this.setZIndex(this.zIndex_);this.map.getMapImpl().addLayer(this.ol3Layer)}selectFeatures(t,e,i){const r=t[0];if(!(r instanceof fS)&&!0===this.extract){const t=r.getAttribute("name"),e=r.getAttribute("description"),i=r.getImpl().getOLFeature().getGeometry().getFirstCoordinate(),n=Vl(mv.a,{vars:{name:t,desc:e},parseToHtml:!1});this.tabPopup_={icon:"g-cartografia-comentarios",title:t,content:n};const s=this.map.getPopup();xE(s)?(this.popup_=new hf,this.popup_.addTab(this.tabPopup_),this.map.addPopup(this.popup_,i)):s.addTab(this.tabPopup_)}}unselectFeatures(){xE(this.popup_)||(this.popup_.hide(),this.popup_=null)}updateSource_(){xE(this.vendorOptions_.source)&&this.requestFeatures_().then(t=>{this.ol3Layer.setSource(new Ed({loader:()=>{const e=t.screenOverlay;if(this.facadeVector_.clear(),this.facadeVector_.addFeatures(t.features),this.fire(bl,[t.features]),!xE(e)){const t=xc.addOverlayImage(e,this.map);this.setScreenOverlayImg(t)}}})),this.facadeVector_.addFeatures(t.features)})}setScreenOverlayImg(t){this.screenOverlayImg_=t}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.removePopup(),this.options=null,this.map=null}removePopup(){xE(this.popup_)||(this.popup_.getTabs().length>1?this.popup_.removeTab(this.tabPopup_):this.map.removePopup())}requestFeatures_(){return xE(this.loadFeaturesPromise_)&&(this.loadFeaturesPromise_=new Promise(t=>{this.loader_.getLoaderFn(e=>{t(e)})(null,null,Object(h.o)(this.map.getProjection().code))})),this.loadFeaturesPromise_}equals(t){let e=!1;return t instanceof xb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract),e}}var bb=xb;class wb extends wf{constructor(t,e={},i={}){const r=Ph(t,Hl),n={...e,label:r.label};super(r,e,void 0,new bb(n,i)),mE(bb)&&Qa(jl("exception").kmllayer_method),xE(t)&&Qa(jl("exception").no_param),this.extract=r.extract,this.options=e,this.label=r.label}get type(){return Hl}set type(t){mE(t)||xE(t)||t===Hl||Qa("El tipo de capa debe ser '".concat(Hl).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){xE(t)?this.getImpl().extract=!0:EE(t)?this.getImpl().extract="true"===CE(t):this.getImpl().extract=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}equals(t){let e=!1;return t instanceof wb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.id===t.id),e}}var Eb=wb;function Sb(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}var Ib=class extends t_{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(Sb(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(Sb(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return Object(dn.a)()}readFeaturesFromObject(t,e){return Object(dn.a)()}readGeometry(t,e){return this.readGeometryFromObject(Sb(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return Object(dn.a)()}readProjection(t){return this.readProjectionFromObject(Sb(t))}readProjectionFromObject(t){return Object(dn.a)()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return Object(dn.a)()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return Object(dn.a)()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return Object(dn.a)()}};function Cb(t,e){if(!t)return null;let i;switch(t.type){case"Point":i=function(t){return new xo(t.coordinates)}(t);break;case"LineString":i=function(t){return new rc(t.coordinates)}(t);break;case"Polygon":i=function(t){return new No(t.coordinates)}(t);break;case"MultiPoint":i=function(t){return new $h(t.coordinates)}(t);break;case"MultiLineString":i=function(t){return new sc(t.coordinates)}(t);break;case"MultiPolygon":i=function(t){return new lc(t.coordinates)}(t);break;case"GeometryCollection":i=function(t,e){const i=t.geometries.map((function(t){return Cb(t,e)}));return new fc(i)}(t);break;default:throw new Error("Unsupported GeoJSON type: "+t.type)}return e_(i,!1,e)}function Tb(t,e){const i=(t=e_(t,!0,e)).getType();let r;switch(i){case"Point":r=function(t,e){return{type:"Point",coordinates:t.getCoordinates()}}(t);break;case"LineString":r=function(t,e){return{type:"LineString",coordinates:t.getCoordinates()}}(t);break;case"Polygon":r=function(t,e){let i;e&&(i=e.rightHanded);return{type:"Polygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"MultiPoint":r=function(t,e){return{type:"MultiPoint",coordinates:t.getCoordinates()}}(t);break;case"MultiLineString":r=function(t,e){return{type:"MultiLineString",coordinates:t.getCoordinates()}}(t);break;case"MultiPolygon":r=function(t,e){let i;e&&(i=e.rightHanded);return{type:"MultiPolygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"GeometryCollection":r=function(t,e){delete(e=Object.assign({},e)).featureProjection;return{type:"GeometryCollection",geometries:t.getGeometriesArray().map((function(t){return Tb(t,e)}))}}(t,e);break;case"Circle":r={type:"GeometryCollection",geometries:[]};break;default:throw new Error("Unsupported geometry type: "+i)}return r}var Lb=class extends Ib{constructor(t){t=t||{},super(),this.dataProjection=Object(h.o)(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=Object(h.o)(t.featureProjection)),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let i=null;i="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const r=Cb(i.geometry,e),n=new Zh;return this.geometryName_?n.setGeometryName(this.geometryName_):this.extractGeometryName_&&"geometry_name"in i!==void 0&&n.setGeometryName(i.geometry_name),n.setGeometry(r),"id"in i&&n.setId(i.id),i.properties&&n.setProperties(i.properties,!0),n}readFeaturesFromObject(t,e){let i=null;if("FeatureCollection"===t.type){i=[];const r=t.features;for(let t=0,n=r.length;tthis.writeFeatureObject(t.getImpl().getOLFeature()))}read(t,e,i){let r=[],n=i.code;xE(n)&&(n=xE(i.featureProjection)?Object(h.o)(i.getCode()):Object(h.o)(i.featureProjection.getCode()));const s=Mb.readProjectionFromObject(t);return r=e.map(t=>{const e=t.id,i=new pS(e,t),r=i.getImpl().getOLFeature();let o;return r.getGeometry()&&(o=r.getGeometry().transform(s,n)),r.setGeometry(o),i}),r}}var Ob=Mb;var Rb=class extends tl{constructor(t={}){super(new Ob(t)),mE(Ob)&&Qa(jl("exception").geojson_method)}write(t){let e=t;return vE(e)||(e=[e]),this.getImpl().write(e)}read(t,e){let i=t,r=[];if(!xE(i)){EE(i)&&(i=JSON.parse(i));let t=[];"FeatureCollection"===i.type?t=i.features:"Feature"===i.type&&(t=[i]),r=this.getImpl().read(i,t,e)}return r}};var Pb=class{constructor(t={}){this.rootPrefix=null,this.namespaces={ol:"http://openlayers.org/context",wmc:"http://www.opengis.net/context",sld:"http://www.opengis.net/sld",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",ogc:"http://www.opengis.net/ogc",wmcext:"http://wmcext.org/context"},this.options=t}read(t){let e=t;EE(t)&&(e=_(t)),9!==e.nodeType&&Qa(jl("exception").must_be_document);const i={};return this.readRoot(i,e),i}readRoot(t,e){const i=t,r=e.documentElement;this.rootPrefix=r.prefix,i.version=r.getAttribute("version"),this.runChildNodes(i,r)}runChildNodes(t,e){const i=e.childNodes;let r,n,s,o;for(let e=0,a=i.length;e(t.typeName===this.typeName_&&(e.properties=t.properties,e.properties.some(t=>(YE(t.localType)&&(e.geometryName=t.name),YE(t.localType)))),t.typeName===this.typeName_)),e}};var Fb=class{constructor(t,e){this.url_=t.url,this.namespace_=t.namespace,this.name_=t.name,this.typeName_=this.name_,xE(this.namespace_)||(this.typeName_=this.namespace_.concat(":").concat(this.name_)),this.version_=t.version,this.ids_=t.ids,this.cql_=t.cql,this.projection_=t.projection,this.getFeatureOutputFormat_=t.getFeatureOutputFormat,xE(this.getFeatureOutputFormat_)&&(this.getFeatureOutputFormat_="application/json"),this.describeFeatureTypeOutputFormat_=t.describeFeatureTypeOutputFormat,this.getFeatureVendor_={},xE(e)||xE(e.getFeature)||(this.getFeatureVendor_=e.getFeature),this.describeFeatureTypeVendor_={},xE(e)||xE(e.describeFeatureType)||(this.describeFeatureTypeVendor_=e.describeFeatureType)}getDescribeFeatureType(){const t={service:"WFS",version:this.version_,request:"DescribeFeatureType",typename:this.typeName_};xE(this.describeFeatureTypeOutputFormat_)||(t.outputFormat=this.describeFeatureTypeOutputFormat_);const e=LE(this.url_,t),i=LE(e,this.describeFeatureTypeVendor_),r=this.describeFeatureTypeOutputFormat_,n=new Ab(this.name_,r,this.projection_);return new Promise((t,e)=>{pE(i).then(e=>{t(n.read(e))})})}getFeatureUrl(t,e){const i={service:"WFS",version:this.version_,request:"GetFeature",typename:this.typeName_,outputFormat:this.getFeatureOutputFormat_,srsname:e.getCode()};return xE(this.ids_)||(i.featureId=this.ids_.map(t=>this.name_.concat(".").concat(t))),xE(this.cql_)?xE(t)||(i.bbox=`${t.join(",")},${e.getCode()}`):i.CQL_FILTER=this.cql_,LE(LE(this.url_,i),this.getFeatureVendor_)}};const kb=g_;kb.prototype.writeFeatures,kb.prototype.writeFeaturesNode;var Db=kb;var jb=class extends Db{constructor(t={}){super(t)}};var Gb=class extends Wa{constructor(t,e,i){super(),this.map_=t,this.service_=e,this.format_=i}getLoaderFn(t){return(e,i,r)=>{const n=this.getRequestUrl_(e,r);this.loadInternal_(n,r).then(t.bind(this))}}loadInternal_(t,e){let i=t;return new Promise((t,r)=>{EE(M.config.ticket)&&(i=LE(i,{ticket:M.config.ticket})),pE(i).then(i=>{if(!xE(i.text)&&i.text.indexOf("ServiceExceptionReport")<0){const r=this.format_.read(i.text,e);t(r)}else 401===i.code?yf(jl("dialog").unauthorized_user):i.text.indexOf("featureId and cql_filter")>=0?yf(jl("dialog").only_one_filter):Qa(jl("exception").no_getfeature_response)})})}getRequestUrl_(t,e){return this.service_.getFeatureUrl(null,e)}};class zb extends gf{constructor(t={},e){super(t,e),this.describeFeatureType_=null,this.formater_=null,this.loader_=null,this.service_=null,this.loaded_=!1,xE(this.options.getFeatureOutputFormat)&&(this.options.getFeatureOutputFormat="application/json")}addTo(t){super.addTo(t),t.getImpl().on(El,()=>this.refresh())}refresh(t){t&&this.facadeVector_.removeFeatures(this.facadeVector_.getFeatures(!0)),this.updateSource_(t)}updateSource_(t){xE(this.vendorOptions_.source)&&(this.service_=new Fb({url:this.url,namespace:this.namespace,name:this.name,version:this.version,ids:this.ids,cql:this.cql,projection:this.map.getProjection(),getFeatureOutputFormat:this.options.getFeatureOutputFormat,describeFeatureTypeOutputFormat:this.options.describeFeatureTypeOutputFormat},this.options.vendor),/json/gi.test(this.options.getFeatureOutputFormat)?this.formater_=new Rb({defaultDataProjection:Object(h.o)(this.map.getProjection().code)}):this.formater_=new jb(this.name,this.version,this.map.getProjection()),this.loader_=new Gb(this.map,this.service_,this.formater_),this.requestFeatures_().then(e=>{const i=this.facadeVector_.getStyle()instanceof Yp;let r=null;if(xE(this.ol3Layer)||(r=this.ol3Layer.getSource()),!0===t||xE(r)){const t=new Ed({loader:()=>{this.loaded_=!0,this.facadeVector_.addFeatures(e),this.fire(bl,[e]),this.facadeVector_.redraw()}});if(i){const e=this.facadeVector_.getStyle().getOptions().distance,i=new Sd({distance:e,source:t});this.ol3Layer.setStyle(this.facadeVector_.getStyle().getImpl().olStyleFn),this.ol3Layer.setSource(i)}else this.ol3Layer&&this.ol3Layer.setSource(t)}else i&&(r=r.getSource()),r.set("format",this.formater_),r.set("loader",this.loader_.getLoaderFn(t=>{this.loaded_=!0,this.facadeVector_.addFeatures(t),this.fire(bl,[t]),this.facadeVector_.redraw()})),r.set("strategy",md),i||r.changed()}))}setCQL(t){this.cql=t,this.refresh(!0)}getDescribeFeatureType(){return xE(this.describeFeatureType_)&&(this.describeFeatureType_=this.service_.getDescribeFeatureType().then(t=>(xE(t)||(this.formater_=new Ob({geometryName:t.geometryName,defaultDataProjection:Object(h.o)(this.map.getProjection().code)})),t))),this.describeFeatureType_}getDefaultValue(t){let e;return e="dateTime"===t?"0000-00-00T00:00:00":"date"===t?"0000-00-00":"time"===t?"00:00:00":"duration"===t?"P0Y":"int"===t||"number"===t||"float"===t||"double"===t||"decimal"===t||"short"===t||"byte"===t||"integer"===t||"long"===t||"negativeInteger"===t||"nonNegativeInteger"===t||"nonPositiveInteger"===t||"positiveInteger"===t||"unsignedLong"===t||"unsignedInt"===t||"unsignedShort"===t||"unsignedByte"===t?0:"hexBinary"===t?null:"-",e}isLoaded(){return this.loaded_}requestFeatures_(){return new Promise(t=>{this.loader_.getLoaderFn(e=>{t(e)})(null,null,Object(h.o)(this.map.getProjection().code))})}equals(t){let e=!1;return t instanceof zb&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}}var Bb=zb;const Ub="POINT",Vb="LINE",qb="POLYGON",Yb="MPOINT",Wb="MLINE",Xb="MPOLYGON",Hb=t=>{const e=CE(t,!0);return o[e]};class Zb extends wf{constructor(t,e={},i={},r=new Bb(e,i)){const n=Ph(t,Kl);super(n,e,void 0,r),mE(Bb)&&Qa(jl("exception").wfslayer_method),xE(t)&&Qa(jl("exception").no_param),this.namespace=n.namespace,this.legend=n.legend,this.cql=n.cql,this.geometry=n.geometry,this.ids=n.ids,this.version=n.version,this.options=e,this.extract=n.extract}get type(){return Kl}set type(t){mE(t)||xE(t)||t===Kl||Qa("El tipo de capa debe ser '".concat(Kl).concat("' pero se ha especificado '").concat(t).concat("'"))}get namespace(){return this.getImpl().namespace}set namespace(t){this.getImpl().namespace=t}get legend(){return this.getImpl().legend}set legend(t){xE(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get geometry(){return this.getImpl().geometry}set geometry(t){if(!xE(t)){const e=Hb(t);xE(e)&&Qa(`El tipo de capa WFS ${t} no se reconoce. Los tipos disponibles son: POINT, LINE, POLYGON, MPOINT, MLINE, MPOLYGON`),this.getImpl().geometry=e}}get ids(){return this.getImpl().ids}set ids(t){xE(t)?this.getImpl().ids=this.ids:this.getImpl().ids=t}get version(){return this.getImpl().version}set version(t){xE(t)?this.getImpl().version="1.0.0":this.getImpl().version=t}setCQL(t){let e=t;this.getImpl().getDescribeFeatureType().then(t=>{if(!xE(e)){const i=t.geometryName;e=e.replace(/{{geometryName}}/g,i)}this.getImpl().cql!==e&&this.getImpl().setCQL(e)})}setStyle(t,e=!1,i=Zb.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}equals(t){let e=!1;return t instanceof Zb&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}Zb.DEFAULT_PARAMS={fill:{color:"rgba(103, 175, 19, 0.2)",opacity:.4},stroke:{color:"#67af13",width:1}},Zb.DEFAULT_OPTIONS_STYLE={point:{...Zb.DEFAULT_PARAMS,radius:5},line:{...Zb.DEFAULT_PARAMS},polygon:{...Zb.DEFAULT_PARAMS}};var Kb=Zb;var $b=class extends Pb{readsldMinScaleDenominator(t,e){t.options.minScale=parseFloat(Pb.getChildValue(e))}readolgroup(t,e){const i=t;if(vE(i)){const t=i[0],r=i[1],n=t.layerGroups,s=new ed({id:e.getAttribute("id"),title:e.getAttribute("title"),order:e.getAttribute("orderInsideGroupDisplay")});xE(r)?n.push(s):r.addChild(s),this.runChildNodes([t,s],e)}else i.layerGroups=[],this.runChildNodes([i],e)}readwmcLayer(t,e){const i=t,r={params:this.layerParams||{},options:{visibility:"1"!==e.getAttribute("hidden"),queryable:"1"===e.getAttribute("queryable")},formats:[],styles:[]};this.runChildNodes(r,e),r.params.isWMC="ok",r.params.layers=r.name,r.options.wmcMaxExtent=r.maxExtent,r.options.wmcGlobalMaxExtent=i.maxExtent;const n=this.getLayerFromInfo(r),s=r.options.groupDisplayLayerSwitcher,o=r.options.orderInsideGroupDisplayLayerSwitcher,a=i.layerGroups,l=ed.findGroupById(s,a);if(null!=r.styles&&null!=r.styles[0]){const t=r.styles[0];if(null!=t.legend&&t.legend.href){const e=t.legend.href;n.setLegendURL(e)}}xE(l)?(xE(i.layers)&&(i.layers=[]),i.layers.push(n)):l.addChild(n,parseInt(o,10))}getLayerFromInfo(t){const e=t.options;e.params=t.params;return new Du({name:t.name,legend:t.title,url:t.href,transparent:!/^1|(true)$/i.test(e.isBaseLayer),version:t.params.version},e)}readolunits(t,e){t.units=Pb.getChildValue(e)}readoltileSize(t,e){t.tileSize={width:parseFloat(e.getAttribute("width")),height:parseFloat(e.getAttribute("height"))}}readolgroupDisplayLayerSwitcher(t,e){t.options.groupDisplayLayerSwitcher=Pb.getChildValue(e)}readolorderInsideGroupDisplayLayerSwitcher(t,e){t.options.orderInsideGroupDisplayLayerSwitcher=Pb.getChildValue(e)}readsldMaxScaleDenominator(t,e){t.options.maxScale=parseFloat(Pb.getChildValue(e))}readwmcStyle(t,e){const i=t,r={};this.runChildNodes(r,e),"1"===e.getAttribute("current")&&(r.legend&&(i.params.layerLegend=r.legend),r.href?i.params.sld=r.href:r.body?i.params.sld_body=r.body:i.params.styles=r.name),i.styles.push(r)}readwmcGeneral(t,e){this.runChildNodes(t,e)}readwmcBoundingBox(t,e){const i=t;i.projection=e.getAttribute("SRS"),i.bounds=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLayerList(t,e){const i=t;i.layers=[],this.runChildNodes(i,e)}readwmcExtension(t,e){this.runChildNodes(t,e)}readolmaxExtent(t,e){const i=t;let r=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))],n=this.options.projection,s=i.projection;xE(n)||xE(s)||n===s||(s=Object(h.o)(s),n=Object(h.o)(n),r=xc.transformExtent(r,s,n)),i.maxExtent=r}readoltransparent(t,e){t.params.transparent=Pb.getChildValue(e)}readolnumZoomLevels(t,e){t.options.numZoomLevels=parseInt(Pb.getChildValue(e),10)}readolopacity(t,e){t.options.opacity=parseFloat(Pb.getChildValue(e))}readolsingleTile(t,e){t.options.singleTile="true"===Pb.getChildValue(e)}readolisBaseLayer(t,e){t.options.isBaseLayer="true"===Pb.getChildValue(e)}readoldisplayInLayerSwitcher(t,e){const i=t,r=CE(Pb.getChildValue(e));i.options.displayInLayerSwitcher="true"===r}readwmcServer(t,e){const i=t;i.params.version=e.getAttribute("version"),this.runChildNodes(i,e)}readwmcFormatList(t,e){this.runChildNodes(t,e)}readwmcFormat(t,e){const i=t,r=Pb.getChildValue(e);i.formats.push(r),"1"===e.getAttribute("current")&&(i.params.format=r)}readwmcStyleList(t,e){this.runChildNodes(t,e)}readwmcSLD(t,e){this.runChildNodes(t,e)}readsldStyledLayerDescriptor(t,e){t.body=p(e)}readwmcOnlineResource(t,e){t.href=this.getAttributeNS(e,this.namespaces.xlink,"href")}readwmcName(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["name"]=r}}readwmcTitle(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["title"]=r}}readwmcMetadataURL(t,e){const i=t,r={},n=e.getElementsByTagName("OnlineResource");n.length>0&&this.readwmcOnlineResource(r,n[0]);i.options.metadataURL=r.href}readwmcextmetadata(t,e){t.options.metadataUrl=e&&e.innerHTML}readwmcAbstract(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["abstract"]=r}}readwmcLatLonBoundingBox(t,e){t.llbbox=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLegendURL(t,e){const i=t,r={width:e.getAttribute("width"),height:e.getAttribute("height")},n=e.getElementsByTagName("OnlineResource");n.length>0&&this.readwmcOnlineResource(r,n[0]);i.legend=r}readsldFeatureTypeStyle(t,e){t.body=p(e)}readwmcKeywordList(t,e){const i=t;i.keywords=[],this.runChildNodes(i.keywords,e)}readwmcKeyword(t,e){t.push(Pb.getChildValue(e))}readwmcLogoURL(t,e){t.logo={width:e.getAttribute("width"),height:e.getAttribute("height"),format:e.getAttribute("format"),href:this.getOnlineResource_href(e)}}readwmcDescriptionURL(t,e){t.descriptionURL=this.getOnlineResource_href(e)}readwmcContactInformation(t,e){const i=t,r={};this.runChildNodes(r,e);i.contactInformation=r}readwmcContactPersonPrimary(t,e){const i=t,r={};this.runChildNodes(r,e);i.personPrimary=r}readwmcContactPerson(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["person"]=r}}readwmcContactOrganization(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["organization"]=r}}readwmcContactPosition(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["position"]=r}}readwmcContactAddress(t,e){const i=t,r={};this.runChildNodes(r,e);i.contactAddress=r}readwmcAddressType(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["type"]=r}}readwmcAddress(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["address"]=r}}readwmcCity(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["city"]=r}}readwmcStateOrProvince(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["stateOrProvince"]=r}}readwmcPostCode(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["postcode"]=r}}readwmcCountry(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["country"]=r}}readwmcContactVoiceTelephone(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["phone"]=r}}readwmcContactFacsimileTelephone(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["fax"]=r}}readwmcContactElectronicMailAddress(t,e){const i=t,r=Pb.getChildValue(e);if(r){i["email"]=r}}readwmcDataURL(t,e){t.dataURL=this.getOnlineResource_href(e)}readwmcDimensionList(t,e){const i=t;i.dimensions={},this.runChildNodes(i.dimensions,e)}readwmcDimension(t,e){const i=t,r={name:e.getAttribute("name").toLowerCase(),units:e.getAttribute("units")||"",unitSymbol:e.getAttribute("unitSymbol")||"",userValue:e.getAttribute("userValue")||"",nearestValue:"1"===e.getAttribute("nearestValue"),multipleValues:"1"===e.getAttribute("multipleValues"),current:"1"===e.getAttribute("current"),default:e.getAttribute("default")||""},n=Pb.getChildValue(e);r.values=n.split(",");i[r.name]=r}};class Jb extends Pb{constructor(t){super(t),this.version=null,this.parser=null}readFromDocument(t){9!==t.nodeType&&Qa(jl("exception").must_be_document);const e=t.documentElement;this.version=e.getAttribute("version"),this.version||(this.version=Jb.DEFAULT_VERSION);const i="v".concat(CE(this.version).replace(/\./g,""));this.parser=new Jb[i](this.options);return this.parser.read(t)}}Jb.v110=$b;var Qb=Jb;class tw extends bc{constructor(t){super(t),this.selected=!1,this.layers=[],this.groups=[],this.loadContextPromise=null,this.maxExtent=null,this.extentProj_=null}addTo(t){this.map=t,this.fire(el)}select(){!1===this.selected&&(this.map.getWMC().forEach(t=>t.unselect()),this.selected=!0,this.loadContextPromise=new Promise((t,e)=>{pE(this.url).then(e=>{let i;!1===this.map.defaultProj&&(i=this.map.getProjection().code);const r=e.xml,n=new Qb({projection:i}).readFromDocument(r);t.call(this,n)})}),this.loadContextPromise.then(t=>{if(this.map.defaultProj){const e=Object(h.o)(t.projection);this.map.setProjection({code:e.getCode(),units:e.getUnits()},!0)}this.loadLayers(t),this.map.fire(Sl,this)}))}unselect(){if(!0===this.selected&&(this.selected=!1,xE(this.layers)||this.map.removeLayers(this.layers),!xE(this.groups))){const t=[...this.groups];this.groups=[],this.map.removeLayerGroup(t)}}loadLayers(t){this.layers=t.layers,this.maxExtent=t.maxExtent,xE(t.layerGroups)?this.groups=[]:this.groups=this.groups.concat(t.layerGroups),this.layers.forEach(t=>t.setWMCParent(this.facadeLayer_)),this.map.addWMS(this.layers,!0),this.map.addLayerGroup(this.groups),this.layers.forEach((t,e)=>t.setZIndex(this.getZIndex()+e)),this.groups.forEach((t,e)=>t.setZIndex(this.getZIndex()+e)),this.facadeLayer_.fire(bl,[this.layers]),this.facadeLayer_.fire(bl,[this.groups])}setFacadeObj(t){this.facadeLayer_=t}getMaxExtent(t){return xE(this.maxExtent)&&this.loadContextPromise.then(e=>{this.maxExtent=e.maxExtent,bE(t)&&t(this.maxExtent)}),!xE(this.maxExtent)&&bE(t)&&t(this.maxExtent),this.maxExtent}calculateMaxExtent(){return new Promise(t=>this.getMaxExtent(t))}getLayers(){return this.layers}destroy(){xE(this.layers)||this.map.removeLayers(this.layers),this.map=null,this.layers.length=0,this.wmcDocument=null}equals(t){let e=!1;return t instanceof tw&&(e=this.url===t.url,e=e&&this.name===t.name),e}}var ew=tw;class iw extends Ah{constructor(t,e){const i=new ew(e);if(super(Ph(t,Xl),i),mE(ew)&&Qa(jl("exception").wmclayer_method),xE(t)&&Qa(jl("exception").no_param),this.options=e,!xE(this.url)&&xE(this.name))this.generateName_();else if(xE(this.url)&&!xE(this.name)){const t=M.config.predefinedWMC.predefinedNames.indexOf(this.name);-1===t?Qa(`El contexto predefinido '${this.name}'no existe`):(this.url=M.config.predefinedWMC.urls[t],this.name=M.config.predefinedWMC.names[t])}this.loaded_=!1,this.once(bl,()=>{this.setLoaded(!0)})}get selected(){return this.getImpl().selected}set selected(t){this.getImpl().selected=t}get type(){return Xl}set type(t){mE(t)||xE(t)||t===Xl||Qa("El tipo de capa debe ser '".concat(Xl).concat("' pero se ha especificado '").concat(t).concat("'"))}get layers(){return this.getImpl().layers}set layers(t){this.getImpl().layers=t}get projection(){return this.getImpl().projection}set projection(t){this.getImpl().projection=t}set maxExtent(t){this.getImpl().maxExtent=t}getMaxExtent(t){return this.getImpl().getMaxExtent(t)}calculateMaxExtent(){return this.getImpl().calculateMaxExtent()}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}select(){mE(this.getImpl().select)&&Qa(jl("exception").select_method),this.getImpl().select()}unselect(){mE(this.getImpl().unselect)&&Qa(jl("exception").unselect_method),this.getImpl().unselect()}equals(t){let e=!1;return t instanceof iw&&(e=this.url===t.url,e=e&&this.name===t.name),e}isLoaded(){return this.loaded_}setLoaded(t){this.loaded_=t}}var rw=iw;class nw extends Dh.a{constructor(t){super({extent:t.extent,origin:t.origin,origins:t.origins,resolutions:t.resolutions,tileSize:t.tileSize,tileSizes:t.tileSizes,sizes:t.sizes}),this.matrixIds_=t.matrixIds}getMatrixId(t){return this.matrixIds_[t]}getMatrixIds(){return this.matrixIds_}}var sw=nw;function ow(t,e,i){const r=[],n=[],s=[],o=[],a=[];i=void 0!==i?i:[];const l=t.SupportedCRS,c=Object(h.o)(l),u=c.getMetersPerUnit(),d="ne"==c.getAxisOrientation().substr(0,2);return t.TileMatrix.sort((function(t,e){return e.ScaleDenominator-t.ScaleDenominator})),t.TileMatrix.forEach((function(e){let l;if(l=!(i.length>0)||i.find((function(i){return e.Identifier==i.TileMatrix||!e.Identifier.includes(":")&&t.Identifier+":"+e.Identifier===i.TileMatrix})),l){n.push(e.Identifier);const t=28e-5*e.ScaleDenominator/u,i=e.TileWidth,l=e.TileHeight;d?s.push([e.TopLeftCorner[1],e.TopLeftCorner[0]]):s.push(e.TopLeftCorner),r.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new nw({extent:e,origins:s,resolutions:r,matrixIds:n,tileSizes:o,sizes:a})}var aw=class extends bu{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let r=t.urls;void 0===r&&void 0!==t.url&&(r=mu(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:r,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),r&&r.length>0&&(this.tileUrlFunction=pu(r.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(pu(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?Eu(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const r=this.tileGrid,n=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:r.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,n);let l=t;return l="KVP"==e?Eu(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}};function lw(t,e){const i=t.Contents.Layer.find((function(t){return t.Identifier==e.layer}));if(!i)return null;const r=t.Contents.TileMatrixSet;let n;n=i.TileMatrixSetLink.length>1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=r.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,n=Object(h.o)(i),s=Object(h.o)(e.projection);return n&&s?Object(h.j)(n,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,n<0&&(n=0);const s=i.TileMatrixSetLink[n].TileMatrixSet,o=i.TileMatrixSetLink[n].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),n=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),n<0&&(n=0);const l=i.Style[n].Identifier,c={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const r=t.Identifier;let n=t.Default;void 0===n&&(n=t.Value[0]),c[r]=n}));const u=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let d;const g=u.SupportedCRS;if(g&&(d=Object(h.o)(g)),"projection"in e){const t=Object(h.o)(e.projection);t&&(d&&!Object(h.j)(t,d)||(d=t))}let p=!1;const f="ne"==d.getAxisOrientation().substr(0,2);let m=u.TileMatrix[0],_={MinTileCol:0,MinTileRow:0,MaxTileCol:m.MatrixWidth-1,MaxTileRow:m.MatrixHeight-1};if(o){_=o[o.length-1];const t=u.TileMatrix.find(t=>t.Identifier===_.TileMatrix||u.Identifier+":"+t.Identifier===_.TileMatrix);t&&(m=t)}const y=28e-5*m.ScaleDenominator/d.getMetersPerUnit(),v=f?[m.TopLeftCorner[1],m.TopLeftCorner[0]]:m.TopLeftCorner,x=m.TileWidth*y,b=m.TileHeight*y;let w=u.BoundingBox;w&&f&&(w=[w[1],w[0],w[3],w[2]]);let E=[v[0]+x*_.MinTileCol,v[1]-b*(1+_.MaxTileRow),v[0]+x*(1+_.MaxTileCol),v[1]-b*_.MinTileRow];if(void 0!==w&&!Object(pt.h)(w,E)){const t=i.WGS84BoundingBox,e=Object(h.o)("EPSG:4326").getExtent();if(E=w,t)p=t[0]===e[0]&&t[2]===e[2];else{const t=Object(h.A)(w,u.SupportedCRS,"EPSG:4326");p=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const S=ow(u,E,o),I=[];let C=e.requestEncoding;if(C=void 0!==C?C:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;tthis.addLayer_(t)):this.addLayer_(e)}setResolutions(t){if(xE(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=Object(h.o)(this.map.getProjection().code);this.getCapabilities().then(r=>{const n=r.getMatrixSet(this.name),s=r.getMatrixIds(this.name),o=r.getFormat(this.name),a={url:this.url,layer:this.name,matrixSet:n,format:o,projection:i,tileGrid:new sw({origin:Object(pt.v)(e),resolutions:t,matrixIds:s}),extent:e},l=this.options.crossOrigin;mE(l)||(a.crossOrigin=l);const h=new aw(a);this.ol3Layer.setSource(h)})}}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter(t=>!t.equals(this)&&t.isVisible()).forEach(t=>t.setVisible(!1)),xE(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();xE(e)||this.map.setBbox(e,{nearest:!0})}else xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}addLayer_(t){const e=this.facadeLayer_.getMaxExtent(),i=t,r=this.options.minResolution,n=this.options.maxResolution;i.format=this.options.format||t.format;const s=this.options.crossOrigin;mE(s)||(i.crossOrigin=s);const o=new aw(BE(i,{extent:e},!0));this.ol3Layer=new Fh.a(BE({visible:this.options.visibility,source:o,minResolution:r,maxResolution:n},this.vendorOptions_,!0));const a=this.zIndex_;this.map.getMapImpl().addLayer(this.ol3Layer),null!==a&&this.setZIndex(a),this.setVisible(this.visibility),this.ol3Layer.set("animated",!0),this.fire(el,this)}setMaxExtent(t){this.getOLLayer().setExtent(t)}getCapabilitiesOptions_(){return xE(this.capabilitiesOptionsPromise)&&(this.capabilitiesOptionsPromise=this.getCapabilities(),this.capabilitiesOptionsPromise instanceof Promise&&(this.capabilitiesOptionsPromise=this.capabilitiesOptionsPromise.then(t=>{const e=this.name;let i=this.matrixSet;xE(i)&&(i=this.map.getProjection().code);const r=this.facadeLayer_.getMaxExtent(),n=lw(t,{layer:e,matrixSet:i,extent:r});return n.tileGrid.extent=r,n}))),this.capabilitiesOptionsPromise}getCapabilities(){return xE(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=new Promise((t,e)=>{const i=RE(this.url),r=new Ot;pE(i).then(e=>{const i=e.xml,n=r.read(i);t.call(this,n)})})),this.getCapabilitiesPromise_}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}setFacadeObj(t){this.facadeLayer_=t}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}equals(t){let e=!1;return t instanceof hw&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet),e}setOptionsGetFeatureInfoUrl(t){const e=t.version,i=t.style,r=t.format;mE(e)||(this.optionsFromGetFeatureInfoUrl_.version=e),mE(i)||(this.optionsFromGetFeatureInfoUrl_.style=i),mE(r)||(this.optionsFromGetFeatureInfoUrl_.format=r)}getOptionsGetFeatureInfoUrl(){return this.optionsFromGetFeatureInfoUrl_}getGetFeatureInfoUrl(t,e,i){const r=this.getTileColTileRow(t,e),n=this.getRelativeTileCoordInPixel_(t,e),s=this.optionsFromGetFeatureInfoUrl_.version,o=this.name,a=this.optionsFromGetFeatureInfoUrl_.style,l=this.optionsFromGetFeatureInfoUrl_.format,h=this.ol3Layer.getSource().getMatrixSet(),c=e,u=i,d=r[0],g=r[1],p=n[0],f=n[1];return LE(this.url,{service:"WMTS",request:"GetFeatureInfo",version:s,layer:o,style:a,format:l,tilematrixset:h,tilematrix:c,tilerow:g,tilecol:d,J:f,I:p,infoFormat:u})}getTileColTileRow(t,e){let i=null;if(!xE(this.ol3Layer)){const r=this.ol3Layer.getSource();if(!xE(r)){const{tileGrid:n}=r;i=n.getTileCoordForCoordAndZ(t,e)}}return i.slice(1)}getRelativeTileCoordInPixel_(t,e){let i;if(!xE(this.ol3Layer)){const r=this.ol3Layer.getSource();if(!xE(r)){const{tileGrid:n}=r,s=n.getTileCoordForCoordAndZ(t,e),o=n.getTileCoordExtent(s,[]),a=n.getResolution(s[0]);i=[Math.floor((t[0]-o[0])/a),Math.floor((o[3]-t[1])/a)]}}return i}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Fh.a(e)}return t}}var cw=hw;class uw extends Ah{constructor(t,e={},i){const r=new cw(e,i),n=Ph(t,$l);super(n,r),mE(cw)&&Qa(jl("exception").wmts_method),xE(t)&&Qa(jl("exception").no_param),this.matrixSet=n.matrixSet,this.legend=n.legend,this.transparent=n.transparent,this.options=e}get type(){return $l}set type(t){mE(t)||xE(t)||t===$l||Qa("El tipo de capa debe ser '".concat($l).concat("' pero se ha especificado '").concat(t).concat("'"))}get matrixSet(){return this.getImpl().matrixSet}set matrixSet(t){this.getImpl().matrixSet=t}get legend(){return this.getImpl().legend}set legend(t){xE(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}getCapabilities(){return xE(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}equals(t){let e=!1;return t instanceof uw&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet,e=e&&this.id===t.id),e}getGetFeatureInfoUrl(t,e,i){return this.getImpl().getGetFeatureInfoUrl(t,e,i)}setOptionsGetFeatureInfoUrl(t){this.getImpl().setOptionsGetFeatureInfoUrl(t)}getOptionsGetFeatureInfoUrl(){return this.getImpl().getOptionsGetFeatureInfoUrl()}getTileColTileRow(t,e){return this.getImpl().getTileColTileRow(t,e)}}var dw=uw;var gw=class extends bu{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:Object(vu.a)({extent:Object(vu.b)(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}};class pw extends bc{constructor(t,e,i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.zIndex_=qu.Z_INDEX.Mapbox}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach(t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)}),xE(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),xE(e)||this.map.setBbox(e)}else xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t,this.fire(el);const e=this.facadeLayer_.getMaxExtent();if(this.ol3Layer=new Fh.a(BE({source:new gw({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`}),extent:e},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getMapImpl().getControls().getArray().forEach(t=>{t instanceof Yo&&(this.hasAttributtion=!0)}),!this.hasAttributtion){let t;xE(this.vendorOptions_)&&(t={className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution"}),this.map.getMapImpl().addControl(new Yo(t)),this.hasAttributtion=!1}this.map.getMapImpl().updateSize();const i=this.map.getMapImpl().getSize(),r=this.map.getProjection().units;this.resolutions_=AE(this.getExtent(),i,16,r),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const n=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",n)}setResolutions(t){if(this.resolutions_=t,!xE(this.ol3Layer)&&xE(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=new gw({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`,extent:e,resolutions:t,attributionControl:!0});this.ol3Layer.setSource(i)}}getExtent(){let t=null;return xE(this.ol3Layer)||(t=Object(h.o)(this.map.getProjection().code).getExtent()),{x:{min:t[0],max:t[2]},y:{min:t[1],max:t[3]}}}setMaxExtent(t){this.ol3Layer.setExtent(t)}setFacadeObj(t){this.facadeLayer_=t}getMinResolution(){return this.resolutions_[0]}getMaxResolution(){return this.resolutions_[this.resolutions_.length-1]}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach(t=>{(t instanceof _w||t instanceof Ew)&&(this.haveOSMorMapboxLayer=!0)}),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach(t=>{t instanceof Yo&&this.map.getImpl().getMapImpl().removeControl(t)}),this.map=null}equals(t){let e=!1;return t instanceof pw&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Fh.a(e)}return t}}pw.ATTRIBUTION='© Mapbox';var fw=pw;class mw extends Ah{constructor(t,e={},i={}){const r=new fw(t,e,i),n=Ph(t,Ql);super(n,r),mE(fw)&&Qa(jl("exception").mapbox_method),xE(t)&&Qa(jl("exception").no_param),xE(n.name)&&Qa(jl("exception").no_name),this.name=n.name,this.legend=n.legend,xE(n.legend)&&(this.legend=n.name),this.transparent=n.transparent,this.accessToken=n.accessToken,this.options=e}get url(){return this.getImpl().url}set url(t){xE(t)?this.getImpl().url=M.config.MAPBOX_URL:this.getImpl().url=t}get transparent(){return this.getImpl().transparent}set transparent(t){xE(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get accessToken(){return this.getImpl().accessToken}set accessToken(t){xE(t)?this.getImpl().accessToken=M.config.MAPBOX_TOKEN_VALUE:this.getImpl().accessToken=t}get type(){return Ql}set type(t){mE(t)||xE(t)||t===Ql||Qa("El tipo de capa debe ser '".concat(Ql).concat("' pero se ha especificado '").concat(t).concat("'"))}equals(t){let e=!1;return t instanceof mw&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options,e=e&&this.id===t.id),e}}var _w=mw;const yw='© OpenStreetMap contributors.';var vw=class extends gw{constructor(t){let e;e=void 0!==(t=t||{}).attributions?t.attributions:[yw];const i=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",r=void 0!==t.url?t.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:e,attributionsCollapsible:!1,cacheSize:t.cacheSize,crossOrigin:i,interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:19,opaque:void 0===t.opaque||t.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:r,wrapX:t.wrapX,zDirection:t.zDirection})}};class xw extends bc{constructor(t,e={},i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.zIndex_=qu.Z_INDEX.OSM,this.url_=t.url}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach(t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)}),xE(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),xE(e)||this.map.setBbox(e)}else xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t,this.fire(el),this.ol3Layer=new Fh.a(BE({},this.vendorOptions_,!0)),this.updateSource_(),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getImpl().getMapImpl().getControls().getArray().forEach(t=>{t instanceof Yo&&(this.hasAttributtion=!0)},this),this.hasAttributtion||(this.map.getMapImpl().addControl(new Yo({className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution",collapsible:!0})),this.hasAttributtion=!1),this.map.getMapImpl().updateSize();const e=this.map.getMapImpl().getSize(),i=this.map.getProjection().units;this.resolutions_=AE(this.facadeLayer_.getMaxExtent(),e,16,i),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const r=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",r),this.map.on(Il,()=>this.updateSource_())}setResolutions(t){this.resolutions_=t,this.updateSource_(t)}updateSource_(t){if(xE(t)&&!xE(this.map)){this.map.getMapImpl().updateSize();const t=this.map.getMapImpl().getSize(),e=this.map.getProjection().units,i=M.config.ZOOM_LEVELS;this.resolutions_=AE(this.facadeLayer_.getMaxExtent(),t,i,e)}if(!xE(this.ol3Layer)&&xE(this.vendorOptions_.source)){const t=this.facadeLayer_.getMaxExtent();let e="";e=mE(this.url_)?new vw({}):new gw({url:this.url_}),this.ol3Layer.setSource(e),this.ol3Layer.setExtent(t)}}setFacadeObj(t){this.facadeLayer_=t}setMaxExtent(t){this.ol3Layer.setExtent(t)}getMinResolution(){}getMaxResolution(){}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach(t=>{(t instanceof Ew||t instanceof _w)&&(this.haveOSMorMapboxLayer=!0)}),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach(t=>{t instanceof Yo&&this.map.getImpl().getMapImpl().removeControl(t)}),this.map=null}equals(t){let e=!1;return t instanceof xw&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Fh.a(e)}return t}}var bw=xw;class ww extends Ah{constructor(t,e={},i={}){let r=t;mE(bw)&&Qa(jl("exception").osm_method),xE(r)&&(r="OSM");const n=new bw(r,e,i),s=Ph(r,Jl);xE(s.name)&&(s.name="osm"),super(s,n),this.name=s.name,this.legend=s.legend,xE(s.legend)&&(this.legend="OpenStreetMap"),this.transparent=s.transparent,this.options=e}get transparent(){return this.getImpl().transparent}set transparent(t){xE(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get type(){return Jl}set type(t){mE(t)||xE(t)||t===Jl||Qa("El tipo de capa debe ser '".concat(Jl).concat("' pero se ha especificado '").concat(t).concat("'"))}equals(t){let e=!1;return t instanceof ww&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options),e}}var Ew=ww,Sw=i(43);class Iw extends Sw.a{constructor(t,e,i,r,n,s){super(t,e,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=n,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==ou.a.IDLE&&(this.setState(ou.a.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(ou.a.ERROR)}setFeatures(t){this.features_=t,this.setState(ou.a.LOADED)}setLoader(t){this.loader_=t}}var Cw=Iw;const Tw=[];class Lw extends Sw.a{constructor(t,e,i,r){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=Object(dn.b)(t);return e in this.context_||(this.context_[e]=Object(kn.a)(1,1,Tw)),this.context_[e]}hasContext(t){return Object(dn.b)(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=Object(dn.b)(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];Object(kn.d)(e),Tw.push(e.canvas),delete this.context_[t]}super.release()}}var Mw=Lw;var Ow=class extends yu{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||Object(vu.b)(e),r=t.tileGrid||Object(vu.a)({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:r,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:Rw,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new su.a(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:Cw,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const r=Object(uu.b)(i.peekFirstKey())[0],n=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==r||i.getState()!==ou.a.LOADED)return;const s=i.getSourceTiles();for(let i=0,r=s.length;i{const r=Object(uu.c)(e),n=i.peek(r);if(n){const e=n.sourceTiles;for(let i=0,r=e.length;i{const n=this.tileUrlFunction(r,t,e),s=this.sourceTileCache.containsKey(n)?this.sourceTileCache.get(n):new this.tileClass(r,n?ou.a.IDLE:ou.a.EMPTY,n,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o{this.handleTileChange(e);const r=s.getState();if(r===ou.a.LOADED||r===ou.a.ERROR){const e=s.getKey();e in i.errorTileKeys?s.getState()===ou.a.LOADED&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,r===ou.a.ERROR?i.errorTileKeys[e]=!0:s.removeEventListener(ns.a.CHANGE,t),0===i.loadingSourceTiles&&i.setState(Object(Fn.b)(i.errorTileKeys)?ou.a.LOADED:ou.a.ERROR)}};s.addEventListener(ns.a.CHANGE,t),i.loadingSourceTiles++}o===ou.a.IDLE&&(s.extent=l.getTileCoordExtent(r),s.projection=e,s.resolution=l.getResolution(r[0]),this.sourceTileCache.set(n,s),s.load())}),i.loadingSourceTiles||i.setState(i.sourceTiles.some(t=>t.getState()===ou.a.ERROR)?ou.a.ERROR:ou.a.LOADED)}return i.sourceTiles}getTile(t,e,i,r,n){const s=Object(uu.e)(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,n);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(n);if(h&&c){const e=u.getTileCoordExtent(h);Object(pt.d)(e,-u.getResolution(t),e),Object(pt.H)(c,e)||(h=null)}let d=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);Object(pt.d)(o,-i,o),e.forEachTileCoord(o,s,t=>{d=d&&!this.tileUrlFunction(t,r,n)})}const g=new Mw(l,d?ou.a.EMPTY:ou.a.IDLE,h,this.getSourceTiles.bind(this,r,n));return g.key=o,a?(g.interimTile=a,g.refreshInterimChain(),this.tileCache.replace(s,g)):this.tileCache.set(s,g),g}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,r=t.getResolutions().slice(),n=r.map((function(e,i){return t.getOrigin(i)})),s=r.map((function(e,i){return t.getTileSize(i)})),o=As.a+1;for(let t=r.length;t{const n=r===m?e.declutterTree.all().map(t=>t.value):null;for(let e=0,a=r.length;e{const r=this.getLayer(),n=Object(dn.b)(r),s=r.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=Object(gn.a)(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let d;for(let t=0,e=this.renderedTiles.length;t0)return void e([]);const g=h.getTileCoordExtent(d.wrappedTileCoord),p=Object(pt.E)(g),f=[(c[0]-p[0])/l,(p[1]-c[1])/l],m=d.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let _=d.hitDetectionImageData[n];if(!_){const t=Object(ja.d)(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;_=Sp(t,[this.getRenderTransform(h.getTileCoordCenter(d.wrappedTileCoord),l,0,Ep,t[0]*Ep,t[1]*Ep,0)],m,r.getStyleFunction(),h.getTileCoordExtent(d.wrappedTileCoord),d.getReplayState(r).renderedResolution,e),d.hitDetectionImageData[n]=_}e(Ip(f,m,_))})}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const r=t.viewHints,n=!(r[Ps.a.ANIMATING]||r[Ps.a.INTERACTING]),s=this.renderedTiles;for(let e=0,i=s.length;e=0;--e)r[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,n,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,r=e.viewState,n=r.center,s=r.resolution,o=r.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,d=c.getTileCoordExtent(t.wrappedTileCoord),g=c.getTileCoordExtent(u,this.tmpExtent)[0]-d[0];return Object(gn.g)(Object(gn.j)(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(n,s,o,i,l,h,g))}postRender(t,e){const i=e.viewHints,r=!(i[Ps.a.ANIMATING]||i[Ps.a.INTERACTING]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const n=this.getLayer(),s=n.getRenderMode(),o=t.globalAlpha;t.globalAlpha=n.getOpacity();const a=Aw[s],l=e.viewState,h=l.rotation,c=n.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),d=this.renderedTiles,g=[],p=[];let f=!0;for(let i=d.length-1;i>=0;--i){const s=d[i];f=f&&!s.getReplayState(n).dirty;const o=s.executorGroups[Object(dn.b)(n)].filter(t=>t.hasExecutors(a));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let m=!1;const _=o[0].getClipCoords(l);if(_){for(let e=0,i=g.length;e>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(r)}}function Vw(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos>3}o--,1===s||2===s?(a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(r.push(h),c=h),i.push(a,l),h+=2):7===s?h>c&&(i.push(i[c],i[c+1]),h+=2):Object(os.a)(!1,59)}h>c&&(r.push(h),c=h)}createFeature_(t,e,i){const r=e.type;if(0===r)return null;let n;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(r,l.length);if(this.featureClass_===dc)n=new this.featureClass_(h,a,l,s,o),n.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=Oo(a,l);t=e.length>1?new lc(a,"XY",e):new No(a,"XY",l)}else t="Point"===h?new xo(a,"XY"):"LineString"===h?new rc(a,"XY"):"MultiPoint"===h?new $h(a,"XY"):"MultiLineString"===h?new sc(a,"XY",l):null;n=new(0,this.featureClass_),this.geometryName_&&n.setGeometryName(this.geometryName_);const e=e_(t,!1,i);n.setGeometry(e),void 0!==o&&n.setId(o),n.setProperties(s,!0)}return n}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_;e=this.adaptOptions(e);const r=Object(h.o)(e.dataProjection);r.setWorldExtent(e.extent),e.dataProjection=r;const n=new zw.a(t),s=n.readFields(Bw,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;r.setExtent(l);for(let t=0,i=a.length;t{if(this.map){const t=this.map.getZoom();this.lastZoom_!==t&&(this.features_.length=0,this.lastZoom_=t)}})}getFeatures(t,e){let i=[];if(this.ol3Layer){const t=this.ol3Layer.getSource().tileCache;if(0===t.getCount())return i;const e=Object(uu.b)(t.peekFirstKey())[0];t.forEach(t=>{if(t.tileCoord[0]!==e||t.getState()!==ou.a.LOADED)return;const r=t.getSourceTiles();for(let t=0,e=r.length;t!t.equals(this)&&t.isVisible()).forEach(t=>t.setVisible(!1)),this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),xE(e)||this.map.setZoom(e);const i=this.map.getBbox();xE(i)||this.map.setBbox(i,{nearest:!0})}else xE(this.ol3Layer)||this.ol3Layer.setVisible(t)}equals(t){let e=!1;return t instanceof Ww&&(e=this.name===t.name),e}}var Xw=Ww;const Hw={RENDER:"render",FEATURE:"feature"};class Zw extends wf{constructor(t={},e={},i={},r){super(t,e,i,r||new Xw(t,e,i)),mE(Xw)&&Qa("La implementación usada no puede crear capas Vector")}get type(){return ih}set type(t){mE(t)||xE(t)||t===ih||Qa("El tipo de capa debe ser '".concat(ih).concat("' pero se ha especificado '").concat(t).concat("'"))}getMaxExtent(){let t=this.userMaxExtent;return xE(t)&&(t=this.map_.userMaxExtent,xE(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise(t=>t(this.getMaxExtent()))}setStyle(t,e=!1,i=Zw.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}getProjection(){return this.getImpl().getProjection()}getGeometryType(){let t=null;const e=this.getFeatures();if(!xE(e)){const i=e[0];xE(i)||(t=i.getType())}return t}getFeatures(){return this.getImpl().getFeatures().map(t=>uv.olFeature2Facade(t))}clearStyle(){this.setStyle(null)}setFilter(){}addFeatures(){}removeFeatures(){}refresh(){}redraw(){}toGeoJSON(){}}Zw.DEFAULT_PARAMS_STYLE={fill:{color:"#fff",opacity:.6},stroke:{color:"#827ec5",width:2}},Zw.DEFAULT_OPTIONS_STYLE={point:{...Zw.DEFAULT_PARAMS_STYLE,radius:5},line:{...Zw.DEFAULT_PARAMS_STYLE},polygon:{...Zw.DEFAULT_PARAMS_STYLE}};var Kw=Zw;var $w=class extends Wa{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,r)=>{this.loadInternal_(r).then(e=>{t.apply(this,e)})}}loadInternal_(t){let e=this.url_;return new Promise(i=>{EE(M.config.ticket)&&(e=LE(e,{ticket:M.config.ticket})),pE(e).then(e=>{if(xE(e.text))Qa(jl("exception").no_service_response);else{const r=this.format_.read(e.text,{featureProjection:t});i.call(this,[r])}})})}};class Jw extends gf{constructor(t,e,i){super(e,i),this.popup_=null,this.formater_=null,this.loader_=null,this.loadFeaturesPromise_=null,this.loaded_=!1,this.hiddenAttributes_=[],xE(e.hide)||(this.hiddenAttributes_=e.hide),this.showAttributes_=[],xE(e.show)||(this.showAttributes_=e.show)}addTo(t){this.formater_=new Rb({defaultDataProjection:Object(h.o)(t.getProjection().code)}),xE(this.url)||(this.loader_=new $w(t,this.url,this.formater_)),super.addTo(t)}refresh(t=null){let e={type:"FeatureCollection",features:this.formater_.write(this.facadeVector_.getFeatures()),crs:{properties:{code:this.map.getProjection().code.split(":")[1]},type:"EPSG"}};wE(t)&&(e=t),this.source=e,this.updateSource_()}setSource(t){this.source=t,xE(this.map)||this.updateSource_()}requestFeatures_(){return this.source?this.loadFeaturesPromise_=new Promise(t=>{t(this.formater_.read(this.source,this.map.getProjection()))}):xE(this.loadFeaturesPromise_)&&(this.loadFeaturesPromise_=new Promise(t=>{this.loader_.getLoaderFn(e=>{t(e)})(null,null,Object(h.o)(this.map.getProjection().code))})),this.loadFeaturesPromise_}updateSource_(){xE(this.vendorOptions_.source)&&this.requestFeatures_().then(t=>{this.ol3Layer&&this.ol3Layer.setSource(new Ed({loader:(e,i,r)=>{this.loaded_=!0,this.facadeVector_.clear(),this.facadeVector_.addFeatures(t,!1,!1),this.redraw(),this.fire(bl,[t])}}))})}isLoaded(){return this.loaded_}equals(t){let e=!1;return t instanceof Jw&&(e=e&&this.name===t.name,e=e&&this.extract===t.extract),e}}var Qw=Jw;class tE extends wf{constructor(t,e={},i){super(t,e,void 0,new Qw(t,e,i)),mE(Qw)&&Qa(jl("exception").geojsonlayer_method),xE(t)&&Qa(jl("exception").no_param),EE(t)?this.url=t:vE(t)?this.source=t:(this.url=t.url,this.name=t.name,this.source=t.source,xE(t.crs)||(xE(this.source)&&(this.source={type:"FeatureCollection",features:[]}),this.source.crs={type:"EPSG",properties:{code:t.crs}})),this.options=e}get type(){return th}set type(t){mE(t)||xE(t)||t===th||Qa("El tipo de capa debe ser '".concat(th).concat("' pero se ha especificado '").concat(t).concat("'"))}get source(){return this.getImpl().source}set source(t){this.getImpl().source=t}equals(t){let e=!1;return t instanceof tE&&(e=this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.id===t.id),e}setSource(t){this.source=t,this.getImpl().refresh(t)}setStyle(t,e=!1,i=tE.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}}tE.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},tE.DEFAULT_OPTIONS_STYLE={point:{...tE.DEFAULT_PARAMS,radius:5},line:{...tE.DEFAULT_PARAMS},polygon:{...tE.DEFAULT_PARAMS}};var eE=tE;class iE extends tl{constructor(t,e={}){const i=new lv(t);super();const r=new qu(i.container,this,e);if(this.setImpl(r),xE(t)&&Qa(jl("exception").no_param),mE(qu)&&Qa(jl("exception").constructor_impl),this._panels=[],this._plugins=[],this._areasContainer=null,this.popup_=[],this._defaultProj=!0,this.panel={LEFT:null,RIGHT:"null"},this._userZoom=null,this.userCenter_=null,this._finishedInitCenter=!0,this._finishedMaxExtent=!0,this._finishedMapImpl=!1,this._finishedMap=!1,this.centerFeature_=null,this.drawLayer_=null,this.userMaxExtent=null,this.ticket_=null,i.container.classList.add("m-mapea-container"),xE(i.bgColorContainer)||this.setBGColorContainer(i.bgColorContainer),r.on(wl,()=>{this._finishedMapImpl=!0,this._checkCompleted()}),this.createMainPanels_(),this.featuresHandler_=new pv,this.featuresHandler_.addTo(this),this.featuresHandler_.activate(),this.drawLayer_=new wf({name:"__draw__"},{displayInLayerSwitcher:!1}),this.drawLayer_.setStyle(new Cf(iE.DRAWLAYER_STYLE)),this.drawLayer_.setZIndex(qu.Z_INDEX.WFS+999),this.addLayers(this.drawLayer_),xE(i.projection)?this.setProjection(M.config.DEFAULT_PROJ,!0):this.setProjection(i.projection),xE(i.bbox)||this.setBbox(i.bbox),xE(i.resolutions)||this.setResolutions(i.resolutions),!xE(i.maxExtent)){const t=xE(i.zoom)&&xE(i.bbox);this.setMaxExtent(i.maxExtent,t)}if(xE(i.wmc)||this.addWMC(i.wmc),xE(i.layers)||this.addLayers(i.layers),xE(i.wms)||this.addWMS(i.wms),xE(i.wmts)||this.addWMTS(i.wmts),xE(i.kml)||this.addKML(i.kml),xE(i.controls)?this.addControls("panzoom"):this.addControls(i.controls),!xE(i.getfeatureinfo))if("plain"!==i.getfeatureinfo&&"html"!==i.getfeatureinfo&&"gml"!==i.getfeatureinfo)yf(jl("dialog").getfeatureinfo_type);else{const t=new Uy(i.getfeatureinfo);this.addControls(t)}if(!mE(i.layerswitcher))if("emptylayer"!==i.layerswitcher&&""!==i.layerswitcher)yf(jl("layerswitcher").unsupported_param);else{const t=new Lf(i.layerswitcher);this.addControls(t)}xE(i.wmc)&&xE(i.layers)&&this.addWMC(M.config.predefinedWMC.predefinedNames[0]),xE(i.center)||this.setCenter(i.center),xE(i.zoom)?xE(i.bbox)&&this.setZoom(0):this.setZoom(i.zoom),xE(i.rotation)||this.once(wl,()=>{this.setRotation(i.rotation)}),xE(i.label)||this.addLabel(i.label),xE(i.ticket)||this.setTicket(i.ticket),xE(i.bbox)&&xE(i.zoom)&&xE(i.center)&&this.zoomToMaxExtent(!0),xE(i.center)&&xE(i.bbox)&&(this._finishedInitCenter=!1,this.getInitCenter_().then(t=>{xE(this.userCenter_)&&this.setCenter(t),this._finishedInitCenter=!0,this._checkCompleted()}))}getLayers(t){let e=t;mE(qu.prototype.getLayers)&&Qa(jl("exception").getlayers_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(Ph));return this.getImpl().getLayers(i).sort(iE.LAYER_SORT)}getRootLayers(t){return this.getLayers(t).filter(t=>xE(t.getLayerGroup()))}getBaseLayers(){return mE(qu.prototype.getBaseLayers)&&Qa(jl("exception").getbaselayers_method),this.getImpl().getBaseLayers().sort(iE.LAYER_SORT)}getFeatureHandler(){return this.featuresHandler_}addLayers(t){let e=t;if(!xE(e)){mE(qu.prototype.addLayers)&&Qa(jl("exception").addlayers_method),vE(e)||(e=[e]);const t=e.map(t=>{let e;if(t instanceof Ah)e=t;else{const i=Ph(t);if(xE(i.type))yf(jl("dialog").invalid_type_layer);else switch(i.type){case"WFS":e=new Kb(t,{style:i.style});break;case"WMC":e=new rw(t);break;case"WMS":e=new Du(t);break;case"GeoJSON":e=new eE(i,{style:i.style});break;case"OSM":e=new Ew(t);break;case"Mapbox":e=new _w(t);break;case"KML":e=new Eb(t);break;case"Vector":e=new wf(t);break;case"WMTS":e=new dw(t);break;case"MVT":e=new Kw(i);break;default:yf(jl("dialog").invalid_type_layer)}}return e instanceof wf&&!(e instanceof Kb)&&this.featuresHandler_.addLayer(e),e.setMap(this),e});this.getImpl().addLayers(t),this.fire(rl,[t])}return this}removeLayers(t){if(!xE(t)){mE(qu.prototype.removeLayers)&&Qa(jl("exception").removelayers_method);const e=this.getLayers(t);e.forEach(t=>{t instanceof wf&&this.featuresHandler_.removeLayer(t)}),this.getImpl().removeLayers(e)}return this}getLayerGroup(){return mE(qu.prototype.getLayerGroups)&&Qa("La implementación usada no posee el método getLayerGroups"),this.getImpl().getLayerGroups().sort(iE.LAYER_SORT)}addLayerGroup(t){let e=t;return yE(e)&&Qa("No ha especificado ningun grupo"),mE(qu.prototype.addLayerGroups)&&Qa("La implementación usada no posee el método addLayerGroups"),vE(e)||(e=[e]),this.getImpl().addLayerGroups(e),this}removeLayerGroup(t){return yE(t)&&Qa("No ha especificado ningun grupo a eliminar"),mE(this.getImpl().removeLayerGroups)&&Qa("La implementación usada no posee el método removeGroups"),this.getImpl().removeLayerGroups(t),this}getWMC(t){let e=t;mE(qu.prototype.getWMC)&&Qa(jl("exception").getwmc_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,Xl)));return this.getImpl().getWMC(i).sort(iE.LAYER_SORT)}addWMC(t){let e=t;if(!xE(e)){mE(qu.prototype.addWMC)&&Qa(jl("exception").addwmc_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{if(wE(e)&&e instanceof rw)e.setMap(this),t.push(e);else if(!(e instanceof Ah))try{const i=new rw(e,e.options);i.setMap(this),t.push(i)}catch(t){throw yf(t.toString()),t}}),this.getImpl().addWMC(t),this.fire(rl,[t]),this.fire(nl,[t]);const i=this.getWMC();null==i.filter(t=>!0===t.selected)[0]&&i[0].select(),i.length>1&&(this.removeControls("wmcselector"),this.addControls(new Ku))}return this}refreshWMCSelectorControl(){if(this.removeControls("wmcselector"),1===this.getWMC().length)this.getWMC()[0].select();else if(this.getWMC().length>1){this.addControls(new Ku);null==this.getWMC().filter(t=>!0===t.selected)[0]&&this.getWMC()[0].select()}}removeWMC(t){if(!xE(t)){mE(qu.prototype.removeWMC)&&Qa(jl("exception").removewmc_method);const e=this.getWMC(t);e.length>0&&this.getImpl().removeWMC(e)}return this}getKML(t){let e=t;mE(qu.prototype.getKML)&&Qa(jl("exception").getkml_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,Hl)));return this.getImpl().getKML(i).sort(iE.LAYER_SORT)}addKML(t){let e=t;if(!xE(e)){mE(qu.prototype.addKML)&&Qa(jl("exception").addkml_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{let i;wE(e)&&e instanceof Eb?i=e:e instanceof Ah||(i=new Eb(e,e.options)),!0===i.extract&&this.featuresHandler_.addLayer(i),t.push(i)}),this.getImpl().addKML(t),this.fire(rl,[t]),this.fire(sl,[t])}return this}removeKML(t){if(!xE(t)){mE(qu.prototype.removeKML)&&Qa(jl("exception").removekml_method);const e=this.getKML(t);e.length>0&&(e.forEach(t=>{this.featuresHandler_.removeLayer(t)}),this.getImpl().removeKML(e))}return this}getWMS(t){let e=t;mE(qu.prototype.getWMS)&&Qa(jl("exception").getwms_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,Zl)));return this.getImpl().getWMS(i).sort(iE.LAYER_SORT)}addWMS(t){let e=t;if(!xE(e)){mE(qu.prototype.addWMS)&&Qa(jl("exception").addwms_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{let i=e;e instanceof Du||(i=new Du(e,e.options)),i.setMap(this),t.push(i)}),this.getImpl().addWMS(t),this.fire(rl,[t]),this.fire(ol,[t])}return this}removeWMS(t){if(!xE(t)){mE(qu.prototype.removeWMS)&&Qa(jl("exception").removewms_method);const e=this.getWMS(t);e.length>0&&this.getImpl().removeWMS(e)}return this}getWFS(t){let e=t;mE(qu.prototype.getWFS)&&Qa(jl("exception").getwfs_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,Kl)));return this.getImpl().getWFS(i).sort(iE.LAYER_SORT)}getGeoJSON(t){let e=t;mE(qu.prototype.getGeoJSON)&&Qa(jl("exception").getgeojson_method),yE(e)?e=[]:vE(e)||(e=[e]);return this.getImpl().getGeoJSON(e).sort(iE.LAYER_SORT)}addWFS(t){let e=t;if(!xE(e)){mE(qu.prototype.addWFS)&&Qa(jl("exception").addwfs_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{let i;if(wE(e)&&e instanceof Kb)i=e;else if(!(e instanceof Ah))try{i=new Kb(e,e.options)}catch(t){throw yf(t.toString()),t}this.featuresHandler_.addLayer(i),t.push(i)}),this.getImpl().addWFS(t),this.fire(rl,[t]),this.fire(al,[t])}return this}removeWFS(t){if(!xE(t)){mE(qu.prototype.removeWFS)&&Qa(jl("exception").removewfs_method);const e=this.getWFS(t);e.length>0&&(e.forEach(t=>{this.featuresHandler_.removeLayer(t)}),this.getImpl().removeWFS(e))}return this}getWMTS(t){let e=t;mE(qu.prototype.getWMTS)&&Qa(jl("exception").getwmts_method),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,$l)));return this.getImpl().getWMTS(i).sort(iE.LAYER_SORT)}addWMTS(t){let e=t;if(!xE(e)){mE(qu.prototype.addWMTS)&&Qa(jl("exception").addwmts_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{if(wE(e)&&e instanceof dw)e.setMap(this),t.push(e);else if(!(e instanceof Ah)){const i=new dw(e,e.options);i.setMap(this),t.push(i)}}),this.getImpl().addWMTS(t),this.fire(rl,[t]),this.fire(ul,[t])}return this}removeWMTS(t){if(!xE(t)){mE(qu.prototype.removeWMTS)&&Qa(jl("exception").removewmts_method);const e=this.getWMTS(t);e.length>0&&this.getImpl().removeWMTS(e)}return this}getMVT(t){let e=t;mE(qu.prototype.getMVT)&&Qa("La implementación usada no posee el método getWFS"),yE(e)?e=[]:vE(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(t=>Ph(t,ih)));return this.getImpl().getMVT(i).sort(iE.LAYER_SORT)}removeMVT(t){if(!xE(t)){mE(qu.prototype.removeMVT)&&Qa("La implementación usada no posee el método removeWFS");const e=this.getMVT(t);e.length>0&&(e.forEach(t=>{this.featuresHandler_.removeLayer(t)}),this.getImpl().removeMVT(e))}return this}addMVT(t){let e=t;if(!xE(e)){mE(qu.prototype.addMVT)&&Qa("La implementación usada no posee el método addWFS"),vE(e)||(e=[e]);const t=[];e.forEach(e=>{let i;if(wE(e)&&e instanceof Kw)i=e;else if(!(e instanceof Ah))try{i=new Kw(e,e.options)}catch(t){throw yf(t.toString()),t}t.push(i)}),this.getImpl().addMVT(t),this.fire(rl,[t]),this.fire(ll,[t])}return this}getControls(t){let e=t;mE(qu.prototype.getControls)&&Qa(jl("exception").getcontrols_method),yE(e)?e=[]:vE(e)||(e=[e]);return this.getImpl().getControls(e)}addControls(t){let e=t;if(!xE(e)){mE(qu.prototype.addControls)&&Qa(jl("exception").addcontrols_method),vE(e)||(e=[e]);const t=[];e.forEach(e=>{const i=(t=>{let e=null;if(EE(t)){const i=CE(t),r={[Uy.NAME]:new Uy("html"),[Lf.NAME]:new Lf,[Hf.NAME]:new Hf,[Fm.NAME]:new Fm,[Hm.NAME]:new Hm,[Vm.NAME]:new Vm({toggleDelay:400}),[Qm.NAME]:new Qm,[Wl.NAME]:new Wl,[cm.NAME]:new cm,[Qf.NAME]:new Qf,[Qf.Name+"*true"]:new Qf({exactScale:!0}),[Cm.NAME]:new Cm,[Ku.NAME]:new Ku};if(!(i in r)){const t=GE([M.config.MAPEA_URL,"/api/actions/controls"]);yf(`El control ${i} no está definido. Consulte los controles disponibles aquí`)}e=r[i]}else t instanceof Gl?e=t:Qa("El control añadido no es válido.");return e})(e),r=ev(i,this);this.hasControl(i)||(xE(r)?i.addTo(this):(r.addControls(i),this.addPanels(r)),t.push(i))}),this.getImpl().addControls(t)}}hasControl(t){let e=t;t instanceof Gl&&(e=t.name);const i=this.getControls().find(t=>t.name===e);return!xE(i)}removeControls(t){xE(t)&&Qa(jl("exception").remove_control),mE(qu.prototype.removeControls)&&Qa(jl("exception").removecontrol_method);let e=this.getControls(t);return e=[].concat(e),e.length>0&&(e.forEach(t=>{xE(t.getPanel())||t.getPanel().removeControls(t)}),this.getImpl().removeControls(e)),this}getMaxExtent(){let t=this.userMaxExtent;if(xE(t)){const e=this.getWMC().find(t=>t.selected);t=xE(e)?lS(this.getLayers().filter(t=>"__draw__"!==t.name).map(t=>t.getMaxExtent())):e.getMaxExtent(),xE(t)&&(t=this.getProjection().getExtent())}return t}calculateMaxExtent(){return new Promise(t=>{let e=this.userMaxExtent;if(xE(e)){const i=this.getWMC().find(t=>t.selected);if(xE(i)){const i=this.getLayers().filter(t=>"__draw__"!==t.name&&t.isVisible()).map(t=>t.calculateMaxExtent());Promise.all(i).then(i=>{e=lS(i),xE(e)&&(e=this.getProjection().getExtent()),xE(this.userMaxExtent)||(e=this.userMaxExtent),t(e)})}else i.calculateMaxExtent().then(t)}else t(e)})}setMaxExtent(t,e=!0){xE(t)&&this.resetMaxExtent(),mE(qu.prototype.setMaxExtent)&&Qa(jl("exception").setmaxextent_method);try{let i=Sh(t);!vE(i)&&wE(i)&&(i=[i.x.min,i.y.min,i.x.max,i.y.max]),this.userMaxExtent=i,this.getImpl().setMaxExtent(i,e)}catch(t){throw yf(t.toString()),t}return this}resetMaxExtent(){return this.userMaxExtent=null,this.calculateMaxExtent().then(t=>{const e=Sh(t);this.getImpl().setMaxExtent(e,!0)}),this}getBbox(){mE(qu.prototype.getBbox)&&Qa(jl("exception").getbbox_method);return this.getImpl().getBbox()}setBbox(t,e){xE(t)&&Qa(jl("exception").no_bbox),mE(qu.prototype.setBbox)&&Qa(jl("exception").setbbox_method);try{const i=Sh(t);this.getImpl().setBbox(i,e)}catch(t){throw yf(jl("exception").incorrect_format_bbox),t}return this}getZoom(){mE(qu.prototype.getZoom)&&Qa(jl("exception").getzoom_method);return this.getImpl().getZoom()}setZoom(t){xE(t)&&Qa(jl("exception").no_zoom),mE(qu.prototype.setZoom)&&Qa(jl("exception").setzoom_method);try{const e=Th(t);this._userZoom=e,this.getImpl().setZoom(e)}catch(t){throw yf(t.toString()),t}return this}getCenter(){mE(qu.prototype.getCenter)&&Qa(jl("exception").getcenter_method);return this.getImpl().getCenter()}setCenter(t){xE(t)&&Qa(jl("exception").no_center),mE(qu.prototype.setCenter)&&Qa(jl("exception").setcenter_method);const e=Eh(t);return this.getImpl().setCenter(e),this.userCenter_=e,!0===e.draw&&(this.drawLayer_.clear(),this.centerFeature_=new pS("__mapeacenter__",{type:"Feature",geometry:{type:"Point",coordinates:[e.x,e.y]},properties:{vendor:{mapea:{click:t=>{const e=this.getLabel();xE(e)||e.show(this)}}}}}),this.drawFeatures([this.centerFeature_])),this}getFeatureCenter(){return this.centerFeature_}removeCenter(){this.removeFeatures(this.centerFeature_),this.centerFeature_=null,this.zoomToMaxExtent()}getResolutions(){mE(qu.prototype.getResolutions)&&Qa(jl("exception").getresolutions_method);return this.getImpl().getResolutions()}setResolutions(t){xE(t)&&Qa(jl("exception").no_resolutions),mE(qu.prototype.setResolutions)&&Qa(jl("exception").setresolutions_method);const e=Ch(t);return this.getImpl().setResolutions(e),this}getScale(){mE(qu.prototype.getScale)&&Qa(jl("exception").getscale_method);return this.getImpl().getScale()}getExactScale(){mE(qu.prototype.getExactScale)&&Qa("La implementación usada no posee el método getScale");return this.getImpl().getExactScale()}getProjection(){mE(qu.prototype.getProjection)&&Qa(jl("exception").getprojection_method);return this.getImpl().getProjection()}setProjection(t,e){let i=t;xE(i)&&Qa(jl("exception").no_projection),mE(qu.prototype.setProjection)&&Qa(jl("exception").setprojection_method);try{const t=this.getProjection();i=Ih(i),t.code!==i.code&&(this.getImpl().setProjection(i),this._defaultProj=this._defaultProj&&!0===e,this.fire(Il,[t,i]))}catch(t){yf(t.toString()),String(t).indexOf("El formato del parámetro projection no es correcto")>=0&&this.setProjection(M.config.DEFAULT_PROJ,!0)}return this}getPlugins(t){let e=t;yE(e)?e=[]:vE(e)||(e=[e]);let i=[];return 0===e.length?i=this._plugins:e.forEach(t=>{i=i.concat(this._plugins.filter(e=>t===e.name))}),i}addPlugin(t){return xE(t)&&Qa(jl("exception").no_plugins),mE(t.addTo)&&Qa(jl("exception").no_add_plugin_to_map),this._plugins.push(t),t.addTo(this),this}addPlugins(t){xE(t)&&Qa(jl("exception").no_plugins);let e=t;return vE(t)||(e=[t]),e.forEach(t=>{this.addPlugin(t)}),this}removePlugins(t){let e=t;return xE(e)&&Qa(jl("exception").no_plugin_to_remove),vE(e)||(e=[e]),e=[].concat(e),e.length>0&&e.forEach(t=>{t.destroy(),this._plugins=this._plugins.filter(e=>t.name!==e.name)}),this}getEnvolvedExtent(){return new Promise(t=>{const e=this.getWMC().find(t=>t.selected);if(xE(e)){const e=this.getBaseLayers().find(t=>t.isVisible());if(xE(e)){const e=this.getLayers().filter(t=>"__draw__"!==t.name);Promise.all(e.map(t=>t.calculateMaxExtent())).then(e=>{const i=xE(e)?[this.getProjection().getExtent()]:e,r=lS(i);t(r)})}else e.getMaxExtent(t)}else e.getMaxExtent(t)})}zoomToMaxExtent(t){return this.calculateMaxExtent().then(e=>{(!0!==t||xE(this._userZoom))&&this.setBbox(e),this._finishedMaxExtent=!0,this._checkCompleted()}),this}setTicket(t){return this.ticket_=t,M.config.ticket=t,this}getTicket(){return this.ticket_}getInitCenter_(){return new Promise((t,e)=>{this.calculateMaxExtent().then(e=>{let i;i=vE(e)?{x:(e[0]+e[2])/2,y:(e[1]+e[3])/2}:{x:(e.x.max+e.x.min)/2,y:(e.y.max+e.y.min)/2},t(i)})})}destroy(){return mE(qu.prototype.destroy)&&Qa(jl("exception").destroy_method),this.getImpl().destroy(),this}addLabel(t,e,i=!0){xE(t)&&Qa(jl("exception").no_projection),mE(qu.prototype.addLabel)&&Qa(jl("exception").addlabel_method);let r=null,n=null,s=t,o=e;return vE(t)||(s=[t]),mE(e)||vE(e[0])?mE(e)&&(o=[]):o=[e],s.forEach((e,s)=>{const a=void 0===e.panMapIfOutOfView||t.panMapIfOutOfView;if(wE(e)?(r=UE(e.text),n=e.coord):(r=UE(e),n=o[s]),n=xE(n)?this.getCenter():Eh(n),xE(n))this.getInitCenter_().then(t=>{const e=new ov(r,t,a);this.getImpl().addLabel(e,i)});else{const t=new ov(r,n,a);this.getImpl().addLabel(t,i)}}),this}getLabel(){return this.getImpl().getLabel()}getLabels(){return this.getImpl().getLabels()}removeLabel(t){return this.getImpl().removeLabel(t)}drawPoints(t){let e=t;xE(e)&&Qa(jl("exception").no_point),vE(e)||(e=[e]);const i=e.map(t=>{const e={type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:{}};return bE(t.click)&&(e.properties.vendor={mapea:{click:t.click}}),new pS(null,e)});this.drawLayer_.addFeatures(i)}drawFeatures(t){return this.drawLayer_.addFeatures(t),this}removeFeatures(t){return this.drawLayer_.removeFeatures(t),this}addPanels(t){let e=t;return xE(e)||(vE(e)||(e=[e]),e.forEach(t=>{const e=this._panels.some(e=>e.equals(t));if(t instanceof Ky&&!e){this._panels.push(t);const e="div.m-area".concat(t.position),i=this._areasContainer.querySelector(e);t.addTo(this,i)}})),this}removePanel(t){return t.getControls().length>0&&Qa(jl("exception").remove_control_from_panel),t instanceof Ky&&(t.destroy(),this._panels=this._panels.filter(e=>!e.equals(t))),this}getPanels(t){let e=t,i=[];return xE(e)?i=this._panels:(vE(e)||(e=[e]),e.forEach(t=>{this._panels.filter(e=>e.name===t).forEach(t=>{xE(t)||i.push(t)})})),i}createMainPanels_(){this._areasContainer=document.createElement("div"),this._areasContainer.classList.add("m-areas");const t=document.createElement("div");t.classList.add("m-area"),t.classList.add("m-top"),t.classList.add("m-left");const e=document.createElement("div");e.classList.add("m-area"),e.classList.add("m-top"),e.classList.add("m-right");const i=document.createElement("div");i.classList.add("m-area"),i.classList.add("m-bottom"),i.classList.add("m-left");const r=document.createElement("div");r.classList.add("m-area"),r.classList.add("m-bottom"),r.classList.add("m-right"),this._areasContainer.appendChild(t),this._areasContainer.appendChild(e),this._areasContainer.appendChild(i),this._areasContainer.appendChild(r),this.getContainer().appendChild(this._areasContainer)}getContainer(){return mE(qu.prototype.getContainer)&&Qa(jl("exception").getcontainer_method),this.getImpl().getContainer()}getMapImpl(){return mE(qu.prototype.getMapImpl)&&Qa(jl("exception").getmapimpl_method),this.getImpl().getMapImpl()}getPopup(){let t=null;return t=0===this.popup_.length?null:this.popup_[0],t}getPopups(){let t=null;return 0===this.popup_.length?t=null:this.popup_.length>=1&&(t=this.popup_),t}removePopup(t){return mE(qu.prototype.removePopup)&&Qa(jl("exception").removepopup_method),xE(t)?(this.popup_.forEach(t=>{this.getImpl().removePopup(t),t.destroy()}),this.popup_=[]):vE(t)?t.forEach((t,e)=>{const i=this.popup_.findIndex(e=>e.getId()===t.getId());this.getImpl().removePopup(this.popup_[i]),this.popup_[i].destroy(),this.popup_.splice(i,1)}):(this.getImpl().removePopup(t),t.destroy(),this.popup_.forEach((e,i)=>{e.getId()===t.getId()&&this.popup_.splice(i,1)})),this}addPopup(t,e,i=!0){xE(t)&&Qa(jl("exception").no_popup);let r=t,n=e;return vE(t)||(r=[t]),vE(e[0])||(n=[e]),r.forEach((t,e)=>{i&&(this.removePopup(this.popup_),this.popup_=[]),this.popup_.push(t),t.addTo(this,n[e])}),this}addUpClass_(t){t.on(el,t=>{3===this.getControls(["wmcselector","scale","scaleline"]).length&&this.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")})}_checkCompleted(){this._finishedInitCenter&&this._finishedMaxExtent&&this._finishedMapImpl&&(this._finishedMap=!0,this.fire(wl))}on(t,e,i){const r=super.on(t,e,i);return t===wl&&!0===this._finishedMap&&this.fire(wl),r}refresh(){return!mE(this.getImpl().refresh)&&bE(this.getImpl().refresh)&&this.getImpl().refresh(),this.getLayers().forEach(t=>t.refresh()),this}get defaultProj(){return this._defaultProj}static LAYER_SORT(t,e){if(!xE(t)&&!xE(e)){return t.getZIndex()-e.getZIndex()}return 0}isFinished(){return this._finishedMap}get areasContainer(){return this._areasContainer}getRotation(){return mE(qu.prototype.getRotation)&&Qa(jl("exception").no_get_rotation_method),this.getImpl().getRotation()*(180/Math.PI)}setRotation(t){mE(qu.prototype.setRotation)&&Qa(jl("exception").no_set_rotation_method),this.getImpl().setRotation(t*(Math.PI/180)),this.fire(Ll,[t])}setBGColorContainer(t){xE(t)||(document.querySelector(".m-mapea-container").style.backgroundColor=t,document.querySelector(".m-mapea-container").style.backgroundImage="unset")}enableMouseWheel(t){this.getImpl().enableMouseWheel(t)}enableDrag(t){this.getImpl().enableDrag(t)}setZoomLevels(t){mE(t)||xE(t)||this.calculateMaxExtent().then(e=>{const i=this.getZoom(),r=this.getMapImpl().getSize(),n=this.getProjection().units,s=AE(e,r,t,n);this.setResolutions(s,!0),M.config.ZOOM_LEVELS=t,i{throw t})}getImageMap(){return this.getImpl().getImageMap()}setToClosestScale(t){const e=NE(t,this.getProjection().units);this.getImpl().setToClosestScale(e)}getOverlayLayers(){return this.getLayers().filter(t=>"__draw__"!==t.name&&!0===t.transparent)}removeOverlayLayers(){const t=this.getOverlayLayers();return this.removeLayers(t),this}}iE.DRAWLAYER_STYLE={fill:{color:"#009e00"},stroke:{color:"#fcfcfc",width:2},radius:7};var rE=iE;i(154);const nE=(t,e)=>{nE[t]=e};let sE=!0;const oE=[],aE=Qr.version;var lE=class{constructor(t){this.text=null,this.xml=null,this.headers={},this.error=!1,this.code=0}parseXmlHttp(t){this.text=t.responseText,this.xml=t.responseXML,this.code=t.status,this.error=""!==t.statusText&&"OK"!==t.statusText;let e=t.getAllResponseHeaders();e=e.split("\n"),e.forEach(t=>{let e=t;e=e.trim();const i=e.replace(/^([^:]+):(.+)$/,"$1").trim(),r=e.replace(/^([^:]+):(.+)$/,"$2").trim();""!==i&&(this.headers[i]=r)})}parseProxy(t){if(this.code=t.code,this.error=t.error,200===this.code&&!0!==this.error){this.text=t.content.trim();try{const e=t.headers["Content-Type"];"undefined"!=typeof DOMParser&&/text\/html/i.test(e)?this.xml=(new DOMParser).parseFromString(this.text,"text/html"):/xml/i.test(e)&&(this.xml=(new DOMParser).parseFromString(this.text,"text/xml"))}catch(t){this.xml=null,this.error=!0}}Object.keys(t.headers).forEach(e=>{this.headers[e]=t.headers[e]})}};const hE="GET",cE="POST",uE=(t,e)=>{let i=M.config.PROXY_URL;return e===cE&&(i=M.config.PROXY_POST_URL),i=LE(i,{url:t}),i},dE=(t,e,i)=>{let r=window.mapjs&&!["geoprint","api.json"].some(e=>t.includes(e))?`${t}&ticket=${window.mapjs.getTicket()}`:t;xE(e)||(r=LE(r,e)),sE&&(r=uE(r,hE));const n=ME("mapea_jsonphandler_");if(r=LE(r,{callback:n}),!xE(i)&&"ticket"in i&&!1===i.ticket){const t=r.indexOf("ticket="),e=r.indexOf("&",t);r=r.substring(r,t)+r.substring(e,r.length)}const s=new Promise((t,e)=>{const i=t;new Promise(t=>{window[n]=t}).then(t=>{delete window[n],(t=>{const e=document.getElementById(t);e.parentNode.removeChild(e)})(n);const e=new lE;e.parseProxy(t),i(e)})});return((t,e)=>{const i=document.createElement("script");i.type="text/javascript",i.id=e,i.src=t,i.setAttribute("async",""),window.document.body.appendChild(i)})(r,n),s},gE=(t,e,i,r)=>{let n=window.mapjs&&!t.includes("geoprint")?`${t}&ticket=${window.mapjs.getTicket()}`:t,s=e;return!1!==r&&!0===sE&&(n=uE(n,i)),wE(s)&&(s=JSON.stringify(s)),new Promise((t,e)=>{let r;window.XMLHttpRequest?r=new XMLHttpRequest:window.ActiveXObject&&(r=new ActiveXObject("Microsoft.XMLHTTP")),r.onreadystatechange=()=>{if(4===r.readyState){const e=new lE;e.parseXmlHttp(r),t(e)}},r.open(i,n,!0),r.send(s)})},pE=(t,e,i)=>{let r,n=(xE(i)||!1!==i.jsonp)&&!1!==sE;const s=new URL(t).origin;return n=n&&-1===oE.indexOf(s),r=!0===n?dE(t,e,i):gE(t,e,hE,!1),r};const fE={inches:1,in:1,Inch:1,ft:12,mi:63360,m:39.3701,dd:4374754,yd:36,d:4374754,degrees:4374754,nmi:72913.4252,Meter:39.37,Foot:12,IFoot:11.999976,ClarkeFoot:11.999868327581488,SearsFoot:11.999955194477684,GoldCoastFoot:11.999964589846002,IInch:.9999979999999999,MicroInch:999998e-9,Mil:9.99998e-7,Centimeter:.3937,Kilometer:39370,Yard:36,SearsYard:35.99986558343306,IndianYard:35.99987015540864,IndianYd37:35.999740205100004,IndianYd62:35.999880755999996,IndianYd75:35.999868945,IndianFoot:11.9999567087,IndianFt37:11.9999134017,IndianFt62:11.999960252000001,IndianFt75:11.999956315,Mile:63360,IYard:35.999928,IMile:63359.87328,NautM:72913.24,"Lat-66":4367838.370169282,"Lat-83":4367954.152606599,Decimeter:3.9370000000000003,Millimeter:.03937,Dekameter:393.7,Decameter:393.7,Hectometer:3937,GermanMeter:39.370535294205006,CaGrid:39.359685060000004,ClarkeChain:791.991309620512,GunterChain:792.0000000000001,BenoitChain:791.9977268035781,SearsChain:791.9970428354235,ClarkeLink:7.91991309620512,GunterLink:7.920000000000001,BenoitLink:7.919977268035781,SearsLink:7.919970428354236,Rod:198.00000000000014,IntnlChain:791.998416,IntnlLink:7.91998416,Perch:198.00000000000014,Pole:198.00000000000014,Furlong:7919.999999999997,Rood:148.75036777426,CapeFoot:11.999868185255002,Brealey:14763.75,ModAmFt:12.000458400000001,Fathom:71.999856,"NautM-UK":72959.85408,"50kilometers":1968500,"150kilometers":5905500,mm:39.37/1e3,cm:.3937,dm:39.37*100,km:39370,kmi:72913.4252,fath:71.999856,ch:791.998416,link:7.91998416,"us-in":1,"us-ft":12,"us-yd":36,"us-ch":792.0000000000001,"us-mi":63360,"ind-yd":35.999740205100004,"ind-ft":11.9999134017,"ind-ch":791.9942845122},mE=t=>void 0===t,_E=t=>{let e=!1;return null===t||mE(t)||(e="boolean"==typeof t),e},yE=t=>{let e=!1;return _E(t)||"number"==typeof t||(mE(t)?e=!0:t?null===t&&(e=!0):e=!0),e},vE=t=>{let e=!1;return yE(t)||(e=Object.prototype.toString.call(t)===Object.prototype.toString.call([])),e},xE=t=>{let e=!1;return yE(t)?e=!0:vE(t)?(e=!0,t.length>0&&(e=!t.some(t=>!xE(t)))):"string"==typeof t&&0===t.trim().length&&(e=!0),e},bE=t=>{let e=!1;return yE(t)||(e="function"==typeof t&&!mE(t.call)),e},wE=t=>{let e=!1;return yE(t)||(e="object"==typeof t&&!mE(t.toString)),e},EE=t=>{let e=!1;return yE(t)||(e="string"==typeof t),e},SE=t=>{let e=!1;return!yE(t)&&EE(t)&&(e=/(https?:\/\/[^*]+)/.test(t)),e},IE=t=>"number"==typeof t,CE=(t,e)=>{let i=t;return!xE(i)&&EE(i)&&(i=i.trim(),i=e?i.toUpperCase():i.toLowerCase()),i},TE=(t,e)=>{let i=null;const r=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");let n=e;const s=n.indexOf("?");if(-1!==s){n=n.substring(s);i=new RegExp(`[\\?&]${r}=([^&#]*)`).exec(n),null!==i&&(i=decodeURIComponent(i[1].replace(/\+/g," ")))}return i},LE=(t,e)=>{let i=t;-1===i.indexOf("?")?i+="?":"?"!==i.charAt(i.length-1)&&(i+="&");let r="";if(wE(e)){Object.keys(e).forEach(t=>{const i=e[t];r+=t,r+="=",r+=encodeURIComponent(i),r+="&"}),r=r.substring(0,r.length-1)}else EE(e)&&(r=e);return i+=r,i},ME=(t,e)=>{let i="";return xE(t)||(i=t),i=i.concat(Math.random()).replace(/0\./,""),xE(e)||(i=i.concat(e)),i},OE=(t,e,i)=>{let r=t;return r=LE(r,"request=GetCapabilities"),r=LE(r,"service=WMS"),EE(e)&&(r=LE(r,{version:e})),EE(i)&&(r=LE(r,{ticket:i})),r},RE=(t,e)=>{let i=t;return i=LE(i,"request=GetCapabilities"),i=LE(i,"service=WMTS"),xE(e)||(i=LE(i,{version:e})),i},PE=(t,e,i)=>{let r=t,n=e;const s=new Array(i);r=Number.parseFloat(r),n=Number.parseFloat(n);let o=2;Number.isNaN(r)||(o=(n/r)**(1/(i-1)));for(let t=0;te-t),s},NE=(t,e)=>{let i,r=e;if(!xE(t)){yE(r)&&(r="degrees");i=1/((t>1?1/t:t)*fE[r]*72)}return i},AE=(t,e,i,r)=>{let n=t,[s,o]=[null,null];vE(n)?(s=n[2]-n[0],o=n[3]-n[1]):wE(n)?(s=n.x.max-n.x.min,o=n.y.max-n.y.min):EE(n)&&(n=n.split(","),s=n[2]-n[0],o=n[3]-n[1]);const a=s/e[0],l=o/e[1],h=Math.max(a,l);return PE(null,h,i)},FE=(t,e)=>{let i=e;xE(i)&&(i="degrees");return t*fE[i]*72},kE=t=>{let e;if(!xE(t)){const i=document.createElement("div");i.innerHTML=t,e=i.children[0]}return e},DE=t=>{let e=t;if(e&&(e=e.trim(),e.length>0)){let t=e.indexOf(":");-1!==t&&(t+=1,e=e.substring(t,e.length))}return e},jE=t=>{let e=CE(t);return e=e.replace(/_(\w)/g,(t,e)=>" ".concat(e.toUpperCase())),e=e.replace(/^\w/,t=>t.toUpperCase()),e},GE=t=>{let e=null;if(!xE(t)){e=t[0],e=e.replace(/\/+\s*$/,"");for(let i=1,r=t.length;i{const r=Object(t),n=parseInt(r.length,10)||0;if(0===n)return!1;const s=parseInt(i,10)||0;let o,a;for(s>=0?o=s:(o=n+s,o<0&&(o=0));o{const r=t;return Object.keys(e).forEach(t=>{mE(r[t])?r[t]=e[t]:Object.getPrototypeOf(r[t])===Object.prototype?BE(r[t],e[t],i):!0===i&&(r[t]=e[t])}),r},UE=t=>{let e;return e=t.replace(/(<\s*script[^>]*>)+[^<]*(<\s*\/\s*script[^>]*>)+/gi,""),e=e.replace(/(('|')\s*\+\s*)?\s*eval\s*\(.*\)\s*(\+\s*('|'))?/gi,""),e},VE=t=>{const e=t;if("ontouchstart"in document){let t=0;e.addEventListener("touchstart",i=>{t=e.scrollTop+i.touches[0].pageY}),e.addEventListener("touchmove",i=>{e.scrollTop=t-i.touches[0].pageY})}},qE=(t,e)=>{const i=t.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1"),r=e.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1");return i.toLowerCase()===r.toLowerCase()},YE=t=>{const e=[jh.toLowerCase(),"GeometryPropertyType".toLowerCase(),Yh.toLowerCase(),Gh.toLowerCase(),qh.toLowerCase(),zh.toLowerCase(),Bh.toLowerCase(),Uh.toLowerCase(),Vh.toLowerCase(),Wh.toLowerCase(),Xh.toLowerCase(),"pointpropertytype","polygonpropertytype","linestringpropertytype","geometrypropertytype","multisurfacepropertytype","multilinestringpropertytype","surfacepropertytype","geometrypropertytype","geometryarraypropertytype","multigeometrypropertytype","multipolygonpropertytype","multipointpropertytype","abstractgeometricaggregatetype","pointarraypropertytype","curvearraypropertytype","solidpropertytype","solidarraypropertytype"],i=t.toLowerCase();return-1!==e.indexOf(i)},WE=t=>{const e=document.createElement("textarea");return e.innerHTML=t,e.value},XE=t=>{let e=t;!EE(t)&&t.outerHTML&&(e=t.outerHTML);const i=document.createElement("DIV");return i.innerHTML=e,i.textContent||i.innerText||""},HE=(t,e,i)=>l.a.scale([t,e]).colors(i),ZE=t=>{let e;if(EE(t)){let i=l()(t).hex();i=i.replace(/^#/,"0x"),e=l()(16777215-i).hex()}return e},KE=(t={},e={})=>{const i=t;return xE(e)||Object.keys(e).forEach(t=>{let r=e[t];vE(r)?r=[...r]:wE(r)&&(r=KE({},r)),xE(i[t])?i[t]=r:wE(i[t])&&KE(i[t],r)}),i},$E=(t,e)=>{let i=[...t];if(t.lengtht.ORDER-e.ORDER,QE=t=>{const e=new Image;return new Promise((i,r)=>{e.onload=()=>i(e),e.src=t})},tS=t=>{let e;return vE(t)?(e=[...t],e=e.map(tS)):wE(t)?(e=KE({},t),Object.keys(e).forEach(t=>{const i=e[t];bE(i)?e[t]="{{f}}"+i.toString():wE(i)&&(e[t]=tS(i))})):e=bE(t)?"{{f}}"+t.toString():t,e},eS=t=>{let e=t;if(/^\{\{f\}\}/.test(t)){const i=t.replace(/^\{\{f\}\}(.+)/,"$1");e=new Function("f","return "+i)()}else Object.keys(e).forEach(t=>{const i=e[t];if(/^\{\{f\}\}/.test(i)){const r=i.replace(/^\{\{f\}\}(.+)/,"$1");e[t]=new Function("f","return "+r)()}else wE(i)&&eS(i)});return e},iS=(t,e)=>{const i=t.classList;i.contains(e)?i.remove(e):i.add(e)},rS=(t,e)=>{const i=e.parentNode;i&&i.replaceChild(t,e)},nS=t=>{if(t){const e=t.parentElement;e&&e.removeChild(t)}},sS=t=>{let e=!1;return Array.isArray(t)||"object"!=typeof t||xE(t)?("function"==typeof t||"string"==typeof t&&/\{\{.*\}\}/.test(t))&&(e=!0):e=Object.values(t).some(t=>sS(t)),e};let oS="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wgARCAAwADADAREAAhEBAxEB/8QAGwAAAwADAQEAAAAAAAAAAAAAAgQGAAMFBwj/xAAaAQACAwEBAAAAAAAAAAAAAAABAwACBQQG/9oADAMBAAIQAxAAAAH6nAjsJBGa6wjLHdfHYSKvZeqmvnvmeW03ujmclCMS56qpDj7We++Xx06aCfzF5J29Bj3RYKgROx3M3XMzkpERpxsd18dhIIzJBEsd1/8A/8QAHBAAAwEBAQEBAQAAAAAAAAAAAgMFBAEAEwYU/9oACAEBAAEFAiLg8Oppos5Cc33Y5p4FTTOYJcLlQzo7UIDMqi5mfHzC183D3tSdLM522Fz66aFrQLc1Rj/H+aLvkZ15hu8+WmSPfpn0BIsbNa69U6blulVia27366agHO2/y5aGTPNQhOrNsx08AtW2WB0dpDwuHL0zmcuuV7t1zfBL00WCPB5//8QAIBEAAgEEAwEBAQAAAAAAAAAAAQIAERIhIgMTMRAyQv/aAAgBAwEBPwGXlsJOsn0yynhl5XD/AB9jYIBTAjGgqJaSt1Yu67RNTYZx5JMbkOVgcmikTqgAHk5MEGJ/SwGx8xje2JeRqsR64M5MkCPqbxKKwxAgApCGVqiLX9tE2N5+WFcpOwj0TsJ8EsLZf5//xAAoEQABBAEDAwQCAwAAAAAAAAACAAEDBBESIUExUWEFFSIzExQjMkL/2gAIAQIBAT8Bd2ZsuiuTWi0VG27r26Q/tldPRIN4pnZDcmqlottt3TOztllcIrUzVA6cqOMYhYAbZWjOKFzDq3dfrnJXe1r844Vd3uV/58PlUyKrM9Q+nC9O+cksvlWr8rEddh34worhyaKsgZfnKL0p3zguenGFHEETYBsL1H4SRS+VSb5T1843UUo0bZa31eVPMN20Oh9PlFbkAxggyTj1zyqd0jJ4pv75XqPzkii8q4JVZmth05X4YLMTuH+lHUijAQxnCmisQWfyxPqcvCrMYkVycsd2wqYlame2fThOzO2HRU5qpa6j7dl7jIH2xOvcZD+qJ0NOa0Wu2+3ZMzM2GX//xAAlEAABAwIGAwEBAQAAAAAAAAABAAIDBBEFEhMhMUEiMlEUQiP/2gAIAQEABj8CJJsB2jFh7PEczv4V6iulcfjUXQYi9ttvI7XQixBnieJ2cIEG4PaZh8Rs32lKbHG3KwdKSSMtDm7+fCkrv0Wu4y6X83V6kMeJOm9J+Hym7faIquqDy6TKFUUYh/0OzCw72UFBNTB7rgO1U+0oAMlxH/OVZYmBg5sFQ1A5bJlKxKkzFjsxsRypNV5qBbKZO1BpOMA9dQ8qGmptSeWK4kDx7J1PUB/6Mx2y7NCoaccukzFMxCIXb6yhSGMNyz7l4G91FHka/T3DiO/qbUQO15JrjKW2ACmxGql0dy17MvKfiEos31iCIIuD0jLh7/E8wP4VqihlafrVanoZXH65CXEH+I4gZwgALAdL/8QAIBABAAIBBQEBAQEAAAAAAAAAAQARITFBUXHwYcGBof/aAAgBAQABPyEGxrVoErNNRMOvX8mTK3aD3Uvhexf8HMvNNRMu/X8gNjWDRI4U8PY49ukPsWgQg3/YcdxUFIAyD3rM7VfN+McK+Xuce3GanEJwHiZmdd0I17qN3TltoZuneWOplXW0ftRenthouaHAJyPmGyKtMGyz/I7iEDNsff5NJkDFbMLdyg6m9/vUDGbaWoqanABwHmOFfD3OfbhMM8ofZ2S00dBuBIGrTCqFvg+aQ3Od9IKAe604jhTy9jn26wGxqVokvNNbMuvX9mDK2bH3cyZWzQe7lZprZh36/sBsagaBP//aAAwDAQACAAMAAAAQo4FGBA7SvIwnAyQo/F//xAAdEQEBAAIDAQEBAAAAAAAAAAABABGBITFBYXFR/9oACAEDAQE/EFxyyvBu9nL5WLwbhzyST2QGGeMh+2LL6JL6Lc4qBzcwn7L5w+9fIXAxbnHnoibLMJ9PsoMincq97c4J7LNvqKYdXedYhUx/YL6JM8MryavZ3s4Xk1Bjgv/EACIRAQABAwQDAQEBAAAAAAAAAAERACExQVFhcYHB8LHhkf/aAAgBAgEBPxBEkBSC3ZePHy8FF292LH76odjjF2Sdm/qgF+wcefh4aBJI0g8ZPjb7VNqj4ClFC5s67cHND9GV5g9xO1uKmADSaHpH/KQecnxt9qO9CfyxOif5V3rskzCZ7i9oisy4ErgvMOsbzPmpbEMy7JrrMfaiY4b23oR+SD0x/acuCUJkmSfFqSnEQ5M23cmG9HrDErM358F6GSSAIs1nJuPVE03LRYMx13xelH5ZPRH9oB5wPG/2ob1DQi9QJnfs/ZpgHKKEzvR68ZDAAiBZ2M2bVl8U1AQEPcREzGaAeMDxv9qu1IgkaQX7Lx4+HloszO5c/PdNm53bH57oBbsHHn5eSgQQFf/EACAQAQACAgIDAQEBAAAAAAAAAAERIQAxQVFhcZGBobH/2gAIAQEAAT8QTtB2AWq8GCJrqeglfoodN5zBhY7xKn8Zpp6KkEgAZQhHeCJvqegF/gANt4HaDsosR5MIyQ/phPKJGNPQc/0ACRXldq7yF3EzgMvsKPKYgZRAxGSmrFPBzImVkJYGgbpRaarCMEv7ZXwkFjR2DNrBDalj4/OOoUT4gQCVKaiJ8YKEllTEEgLuZjV5UGvGh5N2qoJuR5z5kIBY9B8zSwQ2oY+H3hA6OtTzAP8AcD15MbErKsRVvPrCI2DdxCA1bBZbxhvy/ugNKhakjtOsh6thgYJLAsFnZbOaWCG1BPx+cIyQftgPCYCdHYcZCYkxClOk4eZ5XF6Qd6bLtf8ADrI2LMXISFBcp7S41YIXgyJ6AgzSbcIwSfpkfKBSdPQMTtA2UUicmCJvqewt/qANtZxBhY7xIH9ZxBgY7zAn8YIGup7A1+Kh01gdoGwCgDgz/9k=";const aS=t=>oS,lS=t=>{let e=null;return xE(t)||(e=[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER],t.forEach(t=>{xE(t)||(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))})),e},hS=()=>{const t=window.navigator.userAgent||window.navigator.vendor||window.opera;let e="unknown";return/android/i.test(t)&&(e="android"),/iPad|iPhone|iPod/.test(t)&&!window.MSStream&&(e="ios"),e},cS=(t,e,i)=>c(t,e,i);class uS{constructor(t,e,i){const r=e;this.facadeFeature_=null,this.formatter_=new Ob,xE(e)?this.olFeature_=new Zh:(xE(e.type)&&(r.type="Feature"),this.olFeature_=this.formatter_.readFeature(r)),xE(t)?xE(this.olFeature_.getId())&&this.olFeature_.setId(ME("mapea_feature_")):this.olFeature_.setId(t)}getOLFeature(){return this.olFeature_}setOLFeature(t,e){xE(t)||(this.olFeature_=t,!1!==e&&xE(this.olFeature_.getId())&&this.olFeature_.setId(ME("mapea_feature_")))}getAttributes(){const t=this.olFeature_.getProperties(),e=t.geometry;return!xE(e)&&e instanceof Zs&&delete t.geometry,t}getId(){return this.olFeature_.getId()}setId(t){this.olFeature_.setId(t)}setAttributes(t){this.olFeature_.setProperties(t)}static olFeature2Facade(t,e){let i=null;return xE(t)||(i=new pS,i.getImpl().setOLFeature(t,e)),i}static olRenderFeature2Facade(t,e,i){const r=xc.olRenderFeature2olFeature(t,e,i);return uS.olFeature2Facade(r)}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setAttribute(t,e){return this.olFeature_.set(t,e)}static getGeometry(t){let e;const i=t.geometry.type;return"circle"===i?e=new _c(t.geometry.coordinates):"geometry"===i?e=new Zs(t.geometry.coordinates):"linestring"===i?e=new rc(t.geometry.coordinates):"multilinestring"===i?e=new sc(t.geometry.coordinates):"multipoint"===i?e=new $h(t.geometry.coordinates):"multipolygon"===i?e=new lc(t.geometry.coordinates):"point"===i?e=new xo(t.geometry.coordinates):"polygon"===i&&(e=new No(t.geometry.coordinates)),e}setGeometry(t){const e=t.type.toLowerCase();"circle"===e?this.olFeature_.setGeometry(new _c(t.coordinates)):"geometry"===e?this.olFeature_.setGeometry(new Zs(t.coordinates)):"linestring"===e?this.olFeature_.setGeometry(new rc(t.coordinates)):"multilinestring"===e?this.olFeature_.setGeometry(new sc(t.coordinates)):"multipoint"===e?this.olFeature_.setGeometry(new $h(t.coordinates)):"multipolygon"===e?this.olFeature_.setGeometry(new lc(t.coordinates)):"point"===e?this.olFeature_.setGeometry(new xo(t.coordinates)):"polygon"===e&&this.olFeature_.setGeometry(new No(t.coordinates))}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){let t;const e=this.getOLFeature().getGeometry(),i=xc.getCentroid(e);if(!xE(i)){const e=new xo(i);t=new Zh({geometry:e,name:"centroid"})}return t=uS.olFeature2Facade(t),t}clearStyle(){this.olFeature_.setStyle(null)}}var dS=uS;class gS extends tl{constructor(t,e,i){super(new dS(t,e,i)),this.style_=null,this.formatGeoJSON_=new Rb,this.setStyle(i)}setId(t){this.getImpl().setId(t)}getId(){return this.getImpl().getId()}getGeometry(){return this.getGeoJSON().geometry}setGeometry(t){this.getImpl().setGeometry(t)}getGeoJSON(){return this.formatGeoJSON_.write(this)[0]}getAttributes(){return this.getImpl().getAttributes()}setAttributes(t){"object"==typeof t?this.getImpl().setAttributes(t):_f(jl("feature").incorrect_attributes)}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),xE(e)){const i=t.split(".");i.length>1&&(e=i.reduce((t,e)=>{let i;return xE(t)||(i=t instanceof gS?t.getAttribute(e):t[e]),i},this))}return e}setAttribute(t,e){return this.getImpl().setAttribute(t,e)}setStyle(t){!xE(t)&&t instanceof Fg?(this.style_=t,this.style_.applyToFeature(this)):xE(t)&&(this.style_=null,this.getImpl().clearStyle()),this.fire(Cl,[t,this])}equals(t){return this.getId()===t.getId()}getStyle(){return this.style_}clearStyle(){this.setStyle(null)}getCentroid(){const t=this.getId(),e=this.getAttributes(),i=new Cf({stroke:{color:"#67af13",width:2},radius:8,fill:{color:"#67af13",opacity:.2}}),r=this.getImpl().getCentroid();return xE(r)||(r.setId(t+" centroid}"),r.setAttributes(e),r.setStyle(i)),r}}var pS=gS;var fS=class extends pS{constructor(t,e){super(ME("_mapea_cluster_")),this.setAttributes(e),this.setAttribute("features",t)}};var mS=class extends tl{addTo(t){xE(t)&&Qa(jl("exception").no_map);const e=this.getImpl();mE(e.addTo)&&Qa(jl("exception").addto_method);const i=this.createView(t);i instanceof Promise?i.then(i=>{e.addTo(t,i),this.fire(el)}):(e.addTo(t,i),this.fire(el))}createView(t){}getControls(){}};var _S=class extends xf{constructor(t,e={}){super(),this.filterFunction_=t,this.cqlFilter_="",xE(e.cqlFilter)||(this.cqlFilter_=e.cqlFilter)}setFunction(t){this.filterFunction_=t}getFunctionFilter(){return this.filterFunction_}execute(t){return t.filter(this.filterFunction_)}toCQL(){return this.cqlFilter_}};var yS=class extends _S{constructor(t,e){super((e,i)=>{let r=null;return xE(e)||(r=e.getGeometry()),t(r,i)},e)}};function vS(t){return"string"==typeof t?t:""}var xS=class extends t_{constructor(){super()}getType(){return"text"}readFeature(t,e){return this.readFeatureFromText(vS(t),this.adaptOptions(e))}readFeatureFromText(t,e){return Object(dn.a)()}readFeatures(t,e){return this.readFeaturesFromText(vS(t),this.adaptOptions(e))}readFeaturesFromText(t,e){return Object(dn.a)()}readGeometry(t,e){return this.readGeometryFromText(vS(t),this.adaptOptions(e))}readGeometryFromText(t,e){return Object(dn.a)()}readProjection(t){return this.readProjectionFromText(vS(t))}readProjectionFromText(t){return this.dataProjection}writeFeature(t,e){return this.writeFeatureText(t,this.adaptOptions(e))}writeFeatureText(t,e){return Object(dn.a)()}writeFeatures(t,e){return this.writeFeaturesText(t,this.adaptOptions(e))}writeFeaturesText(t,e){return Object(dn.a)()}writeGeometry(t,e){return this.writeGeometryText(t,this.adaptOptions(e))}writeGeometryText(t,e){return Object(dn.a)()}};const bS={POINT:xo,LINESTRING:rc,POLYGON:No,MULTIPOINT:$h,MULTILINESTRING:sc,MULTIPOLYGON:lc},wS="EMPTY",ES=0,SS=1,IS=2,CS=3,TS=4,LS=5,MS=6,OS={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class RS{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,r=t;if("("==t)i=IS;else if(","==t)i=LS;else if(")"==t)i=CS;else if(this.isNumeric_(t)||"-"==t)i=TS,r=this.readNumber_();else if(this.isAlpha_(t))i=SS,r=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=MS}return{position:e,value:r,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,r=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(r=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!r&&("e"==t||"E"==t)||r&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class PS{constructor(t){this.lexer_=t,this.token_={position:0,type:ES},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(SS)){const i=e.value;"Z"===i?t="XYZ":"M"===i?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(IS)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(LS));if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(IS)){const t=this.parsePoint_();if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(IS)){const t=this.parsePointList_();if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(IS)){const t=this.parseLineStringTextList_();if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(IS)){let t;if(t=this.token_.type==IS?this.parsePointTextList_():this.parsePointList_(),this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(IS)){const t=this.parseLineStringTextList_();if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(IS)){const t=this.parsePolygonTextList_();if(this.match(CS))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i0&&(r+=" "+e)}return 0===i.length?r+" "+wS:r+"("+i+")"}var jS=class extends xS{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new RS(t);return new PS(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),r=new Zh;return r.setGeometry(i),r}readFeaturesFromText(t,e){let i=[];const r=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==r.getType()?r.getGeometriesArray():[r];const n=[];for(let t=0,e=i.length;tt.contains(e))[0]),void 0===i&&(i=n.TileMatrixSetLink[0].TileMatrixSet))}return i}getMatrixIds(t,e){let i=[];const r=this.getMatrixSet(t,e),n=this.capabilities.Contents.TileMatrixSet.filter(t=>t.Identifier===r)[0];return null!=n&&n.length>0&&(i=n.TileMatrix.map(t=>t.Identifier)),i}getFormat(t){let e;const i=this.capabilities.Contents.Layer.filter(e=>e.Identifier===t)[0];return null!=i&&(e=i.Format[0]),e}getOptionsFromCapabilities(t,e){return lw(this.capabilities,{layer:t,matrixSet:e})}};class US extends bc{constructor(){super(),this.geojsonFormatter_=new Ob,this.name="drawLayer",this.selectedFeatures_=[]}addTo(t){this.map=t,this.fire(el),this.ol3Layer=new Lp({source:new Ed({}),style:new mg({fill:new lg({color:"rgba(0, 158, 0, 0.1)"}),stroke:new cg({color:"#fcfcfc",width:2}),image:new og({radius:7,fill:new lg({color:"#009E00"}),stroke:new cg({color:"#fcfcfc",width:2})})}),zIndex:qu.Z_INDEX.WFS+999}),!1!==this.options.visibility&&this.setVisible(this.inRange());this.map.getMapImpl().addLayer(this.ol3Layer)}selectFeatures(t){this.selectedFeatures_=t,bE(this.selectedFeatures_[0].click)&&this.selectedFeatures_[0].click()}unselectFeatures(){this.selectedFeatures_.length>0&&(this.selectedFeatures_.length=0,this.map.removePopup())}drawPoints(t){let e=t;xE(e)&&Qa(jl("exception").no_point),vE(e)||(e=[e]);const i=this.pointsToGeoJSON_(e);this.drawGeoJSON(i)}drawGeoJSON(t){let e=t;xE(e)&&Qa(jl("exception").no_geojson),vE(e)||(e=[e]);const i=Object(h.o)(this.map.getProjection().code);let r=[];e.forEach(t=>{const e=this.geojsonFormatter_.readFeatures(t,{dataProjection:i});r=r.concat(e)}),this.ol3Layer.getSource().addFeatures(r)}drawFeatures(t){let e=t;xE(e)||(vE(e)||(e=[e]),this.ol3Layer.getSource().addFeatures(e))}removeFeatures(t){let e=t;if(!xE(e)){vE(e)||(e=[e]);const t=this.ol3Layer.getSource();e.forEach(e=>{try{t.removeFeature(e)}catch(t){throw t}})}}getPoints(t){let e=[];const i=this.ol3Layer.getSource();return e=xE(t)?i.getFeatures():i.getFeaturesAtCoordinate(t),this.featuresToPoints_(e)}destroy(){const t=this.map.getMapImpl();xE(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.options=null,this.map=null}equals(t){let e=!1;return t instanceof US&&(e=e&&this.name===t.name),e}pointsToGeoJSON_(t){let e=[];const i=Object(h.o)(this.map.getProjection().code);return e=t.map(t=>{const e=t.data,r=new xo([t.x,t.y]);return{type:"Feature",geometry:this.geojsonFormatter_.writeGeometryObject(r,{dataProjection:i}),properties:e,click:t.click,showPopup:t.showPopup}}),e}featuresToPoints_(t){return[]}}var VS=US;const qS=34962,YS=34963,WS=35044,XS=35048,HS=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function ZS(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!An.f},e);const i=HS.length;for(let r=0;r{this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})})}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,r=e.RGBA,n=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,r,i[0],i[1],n,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0)}}apply(t,e,i,r){const n=this.getGL(),s=t.size;if(n.bindFramebuffer(n.FRAMEBUFFER,e?e.getFrameBuffer():null),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.renderTargetTexture_),!e){const e=Object(dn.b)(n.canvas);if(!t.renderTargets[e]){const i=n.getContextAttributes();i&&i.preserveDrawingBuffer&&(n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT)),t.renderTargets[e]=!0}}n.enable(n.BLEND),n.blendFunc(n.ONE,n.ONE_MINUS_SRC_ALPHA),n.viewport(0,0,n.drawingBufferWidth,n.drawingBufferHeight),n.bindBuffer(n.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),n.useProgram(this.renderTargetProgram_),n.enableVertexAttribArray(this.renderTargetAttribLocation_),n.vertexAttribPointer(this.renderTargetAttribLocation_,2,n.FLOAT,!1,0,0),n.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),n.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;n.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(n,t),n.drawArrays(n.TRIANGLES,0,6),r&&r(n,t)}getFrameBuffer(){return this.frameBuffer_}applyUniforms(t){const e=this.getGL();let i,r=1;this.uniforms_.forEach((function(n){if(i="function"==typeof n.value?n.value(t):n.value,i instanceof HTMLCanvasElement||i instanceof ImageData)n.texture||(n.texture=e.createTexture()),e.activeTexture(e["TEXTURE"+r]),e.bindTexture(e.TEXTURE_2D,n.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(n.location,r++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(n.location,i[0],i[1]);case 3:return void e.uniform3f(n.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(n.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(n.location,i)}))}};function nI(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const sI="u_projectionMatrix",oI="u_offsetScaleMatrix",aI="u_offsetRotateMatrix",lI="u_time",hI="u_zoom",cI="u_resolution",uI="u_sizePx",dI="u_pixelRatio",gI={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126},pI={};function fI(t){return"shared/"+t}let mI=0;class _I extends cn.a{constructor(t){super(),t=t||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=t.canvasCacheKey?fI(t.canvasCacheKey):function(){const t="unique/"+mI;return mI+=1,t}(),this.canvas_=function(t){let e=pI[t];if(!e){const i=document.createElement("canvas");i.style.position="absolute",i.style.left="0",e={users:0,canvas:i},pI[t]=e}return e.users+=1,e.canvas}(this.canvasCacheKey_),this.gl_=ZS(this.canvas_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.canvas_.addEventListener(eI,this.boundHandleWebGLContextLost_),this.canvas_.addEventListener(iI,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Object(gn.d)(),this.offsetScaleMatrix_=Object(gn.d)(),this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.uniformLocations_={},this.attribLocations_={},this.uniforms_=[],t.uniforms&&this.setUniforms(t.uniforms);const e=this.getGL();this.postProcessPasses_=t.postProcesses?t.postProcesses.map((function(t){return new rI({webGlContext:e,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms})})):[new rI({webGlContext:e})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[];for(const e in t)this.uniforms_.push({name:e,value:t[e]});this.uniformLocations_={}}canvasCacheKeyMatches(t){return this.canvasCacheKey_===fI(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.getGL(),i=Object(dn.b)(t);let r=this.bufferCache_[i];if(!r){r={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=r}e.bindBuffer(t.getType(),r.webGlBuffer)}flushBufferData(t){const e=this.getGL();this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.getGL(),i=Object(dn.b)(t),r=this.bufferCache_[i];r&&!e.isContextLost()&&e.deleteBuffer(r.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){this.canvas_.removeEventListener(eI,this.boundHandleWebGLContextLost_),this.canvas_.removeEventListener(iI,this.boundHandleWebGLContextRestored_),function(t){const e=pI[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=ZS(e.canvas).getExtension("WEBGL_lose_context");i&&i.loseContext(),delete pI[t]}(this.canvasCacheKey_),delete this.gl_,delete this.canvas_}prepareDraw(t,e){const i=this.getGL(),r=this.getCanvas(),n=t.size,s=t.pixelRatio;r.width=n[0]*s,r.height=n[1]*s,r.style.width=n[0]+"px",r.style.height=n[1]+"px";for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);i.bindTexture(i.TEXTURE_2D,null),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.enable(i.BLEND),i.blendFunc(i.ONE,e?i.ZERO:i.ONE_MINUS_SRC_ALPHA)}prepareDrawToRenderTarget(t,e,i){const r=this.getGL(),n=e.getSize();r.bindFramebuffer(r.FRAMEBUFFER,e.getFramebuffer()),r.viewport(0,0,n[0],n[1]),r.bindTexture(r.TEXTURE_2D,e.getTexture()),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,i?r.ZERO:r.ONE_MINUS_SRC_ALPHA)}drawElements(t,e){const i=this.getGL();this.getExtension("OES_element_index_uint");const r=i.UNSIGNED_INT,n=e-t,s=4*t;i.drawElements(i.TRIANGLES,n,r,s)}finalizeDraw(t,e,i){for(let r=0,n=this.postProcessPasses_.length;r{if(i="function"==typeof n.value?n.value(t):n.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){n.texture||(n.prevValue=void 0,n.texture=e.createTexture()),e.activeTexture(e["TEXTURE"+r]),e.bindTexture(e.TEXTURE_2D,n.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&n.prevValue!==i&&(n.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),e.uniform1i(this.getUniformLocation(n.name),r++)}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(n.name,nI(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(n.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(n.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(n.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(n.name),i)})}useProgram(t,e){this.getGL().useProgram(t),this.currentProgram_=t,this.uniformLocations_={},this.attribLocations_={},this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.getGL(),r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),r}getProgram(t,e){const i=this.getGL(),r=this.compileShader(t,i.FRAGMENT_SHADER),n=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,r),i.attachShader(s,n),i.linkProgram(s),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t="Fragment shader compilation failed: "+i.getShaderInfoLog(r);throw new Error(t)}if(i.deleteShader(r),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t="Vertex shader compilation failed: "+i.getShaderInfoLog(n);throw new Error(t)}if(i.deleteShader(n),!i.getProgramParameter(s,i.LINK_STATUS)){const t="GL program linking failed: "+i.getShaderInfoLog(n);throw new Error(t)}return s}getUniformLocation(t){return void 0===this.uniformLocations_[t]&&(this.uniformLocations_[t]=this.getGL().getUniformLocation(this.currentProgram_,t)),this.uniformLocations_[t]}getAttributeLocation(t){return void 0===this.attribLocations_[t]&&(this.attribLocations_[t]=this.getGL().getAttribLocation(this.currentProgram_,t)),this.attribLocations_[t]}makeProjectionTransform(t,e){const i=t.size,r=t.viewState.rotation,n=t.viewState.resolution,s=t.viewState.center;return Object(gn.h)(e),Object(gn.b)(e,0,0,2/(n*i[0]),2/(n*i[1]),-r,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.getGL().uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.getGL().uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.getGL().uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.getGL().uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,r,n){const s=this.getAttributeLocation(t);s<0||(this.getGL().enableVertexAttribArray(s),this.getGL().vertexAttribPointer(s,e,i,!1,r,n))}enableAttributes(t){const e=function(t){let e=0;for(let i=0;ithis.size_[0]||e>=this.size_[1])return wI[0]=0,wI[1]=0,wI[2]=0,wI[3]=0,wI;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return wI[0]=this.data_[4*i],wI[1]=this.data_[4*i+1],wI[2]=this.data_[4*i+2],wI[3]=this.data_[4*i+3],wI}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),this.data_=new Uint8Array(t[0]*t[1]*4)}};const SI="GENERATE_POINT_BUFFERS";i(114);function II(t,e){const i=256,r=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/r,e[1]=Math.floor(t/i/i)%i/r,e[2]=Math.floor(t/i)%i/r,e[3]=t%i/r,e}var CI=i(113);var TI=class extends bI{constructor(t,e){const i=e.uniforms||{},r=Object(gn.d)();i[sI]=r,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.ready=!1,this.sourceRevision_=-1,this.verticesBuffer_=new JS(qS,XS),this.hitVerticesBuffer_=new JS(qS,XS),this.indicesBuffer_=new JS(YS,XS),this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.program_,this.hitDetectionEnabled_=!(!e.hitFragmentShader||!e.hitVertexShader),this.hitVertexShader_=e.hitVertexShader,this.hitFragmentShader_=e.hitFragmentShader,this.hitProgram_;const n=e.attributes?e.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:gI.FLOAT}})):[];this.attributes=[{name:"a_position",size:2,type:gI.FLOAT},{name:"a_index",size:1,type:gI.FLOAT}].concat(n),this.hitDetectionAttributes=[{name:"a_position",size:2,type:gI.FLOAT},{name:"a_index",size:1,type:gI.FLOAT},{name:"a_hitColor",size:4,type:gI.FLOAT},{name:"a_featureUid",size:1,type:gI.FLOAT}].concat(n),this.customAttributes=e.attributes?e.attributes:[],this.previousExtent_=Object(pt.k)(),this.currentTransform_=r,this.renderTransform_=Object(gn.d)(),this.invertRenderTransform_=Object(gn.d)(),this.renderInstructions_=new Float32Array(0),this.hitRenderInstructions_=new Float32Array(0),this.hitRenderTarget_,this.generateBuffersRun_=0,this.worker_=Object(CI.a)(),this.worker_.addEventListener("message",t=>{const e=t.data;if(e.type===SI){const i=e.projectionTransform;e.hitDetection?(this.hitVerticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.hitVerticesBuffer_)):(this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_)),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Object(gn.e)(this.invertRenderTransform_,this.renderTransform_),e.hitDetection?this.hitRenderInstructions_=new Float32Array(t.data.renderInstructions):(this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.generateBuffersRun===this.generateBuffersRun_&&(this.ready=!0)),this.getLayer().changed()}}),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[Object(is.a)(s,hd,this.handleSourceFeatureAdded_,this),Object(is.a)(s,cd,this.handleSourceFeatureChanged_,this),Object(is.a)(s,dd,this.handleSourceFeatureDelete_,this),Object(is.a)(s,ud,this.handleSourceFeatureClear_,this)],s.forEachFeature(t=>{this.featureCache_[Object(dn.b)(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++})}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitProgram_=this.helper.getProgram(this.hitFragmentShader_,this.hitVertexShader_),this.hitRenderTarget_=new EI(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[Object(dn.b)(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[Object(dn.b)(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[Object(dn.b)(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState.projection,r=this.getLayer().getSource().getWrapX()&&i.canWrapX(),n=i.getExtent(),s=t.extent,o=r?Object(pt.G)(n):null,a=r?Math.ceil((s[2]-n[2])/o)+1:1,l=r?Math.floor((s[0]-n[0])/o):0;let h=l;const c=this.indicesBuffer_.getSize();do{this.helper.makeProjectionTransform(t,this.currentTransform_),Object(gn.m)(this.currentTransform_,h*o,0),Object(gn.g)(this.currentTransform_,this.invertRenderTransform_),this.helper.applyUniforms(t),this.helper.drawElements(0,c)}while(++h{const e=this.weightFunction_(t);return void 0!==e?Object(Fs.b)(e,0,1):1}}],vertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_weight = a_weight;\n }",fragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n gl_FragColor = vec4(alpha, alpha, alpha, alpha);\n }",hitVertexShader:"\n precision mediump float;\n uniform mat4 u_projectionMatrix;\n uniform mat4 u_offsetScaleMatrix;\n uniform float u_size;\n attribute vec2 a_position;\n attribute float a_index;\n attribute float a_weight;\n attribute vec4 a_hitColor;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n mat4 offsetMatrix = u_offsetScaleMatrix;\n float offsetX = a_index == 0.0 || a_index == 3.0 ? -u_size / 2.0 : u_size / 2.0;\n float offsetY = a_index == 0.0 || a_index == 1.0 ? -u_size / 2.0 : u_size / 2.0;\n vec4 offsets = offsetMatrix * vec4(offsetX, offsetY, 0.0, 0.0);\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0) + offsets;\n float u = a_index == 0.0 || a_index == 3.0 ? 0.0 : 1.0;\n float v = a_index == 0.0 || a_index == 1.0 ? 0.0 : 1.0;\n v_texCoord = vec2(u, v);\n v_hitColor = a_hitColor;\n v_weight = a_weight;\n }",hitFragmentShader:"\n precision mediump float;\n uniform float u_blurSlope;\n\n varying vec2 v_texCoord;\n varying float v_weight;\n varying vec4 v_hitColor;\n\n void main(void) {\n vec2 texCoord = v_texCoord * 2.0 - vec2(1.0, 1.0);\n float sqRadius = texCoord.x * texCoord.x + texCoord.y * texCoord.y;\n float value = (1.0 - sqrt(sqRadius)) * u_blurSlope;\n float alpha = smoothstep(0.0, 1.0, value) * v_weight;\n if (alpha < 0.05) {\n discard;\n }\n\n gl_FragColor = v_hitColor;\n }",uniforms:{u_size:()=>2*(this.get(OI)+this.get(LI)),u_blurSlope:()=>this.get(OI)/Math.max(1,this.get(LI))},postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}renderDeclutter(){}};var NI=class extends PI{constructor(t={}){super(t);const e=t.weight?t.weight:"weight";let i;if("string"==typeof e){let r=1;const n=this.getWeights(t);n.length>0?(r=n.reduce((t,e)=>Math.max(t,e)),this.maxWeight_=r,this.minWeight_=n.reduce((t,e)=>Math.min(t,e)),i=t=>{let i;return t instanceof Zh?i=t.get(e):t instanceof pS&&(i=t.getAttribute(e)),parseFloat(i/r)}):_f(`La capa de nombre ${t.name} no tiene ninguna feature
    \n con el atributo especificado en simbología establecida.\n
    Se setea una ponderación por defecto`,"Mapa de calor")}else i=e;this.setStyle((t,e)=>{const r=Hd.getValue(i,t),n=void 0!==r?Object(Fs.b)(r,0,1):1,s=255*n||0;let o=this.styleCache_[s];return o||(o=[new mg({image:new Rd({opacity:n,src:this.circleImage_})})],this.styleCache_[s]=o),o})}getMinWeight(){return this.minWeight_}getMaxWeight(){return this.maxWeight_}getWeights(t){let e=[];const i=this.getSource();if(null!==i){const r=i.getFeatures();r.length>0&&(e=r.map(e=>e.get(t.weight)).filter(t=>null!=t))}return e}};var AI=class{constructor(t={}){this.attributeName_=t.attribute||null,this.label_=t.label||null,this.fillColor_=t.fill||null,this.legend_=t.legend||null}get attribute(){return this.attributeName_}set attribute(t){this.attributeName_=t}get label(){return this.label_}set label(t){this.label_=t}get fillColor(){return this.fillColor_}set fillColor(t){this.fillColor_=t}get legend(){return this.legend_}set legend(t){this.legend_=t}};const FI={DONUT:"donut",PIE_3D:"pie3D",PIE:"pie",BAR:"bar"},kI={Custom:"m.style.chart.types.custom_scheme",Classic:["#ffa500","blue","red","green","cyan","magenta","yellow","#0f0"],Dark:["#960","#003","#900","#060","#099","#909","#990","#090"],Pale:["#fd0","#369","#f64","#3b7","#880","#b5d","#666"],Pastel:["#fb4","#79c","#f66","#7d7","#acc","#fdd","#ff9","#b9b"],Neon:["#ff0","#0ff","#0f0","#f0f","#f00","#00f"]};class DI extends Fg{constructor(t={}){const e=t,i=e.variables||null;if(Object.values(FI).includes(e.type)||(e.type=DI.DEFAULT.type),xE(i)||(e.variables=i instanceof Array?i.filter(t=>null!=t).map(t=>DI.formatVariable(t)):"string"==typeof i||"object"==typeof i?[DI.formatVariable(i)]:[]),xE(e.scheme))e.scheme=DI.DEFAULT.scheme;else if("string"==typeof e.scheme){const t=e.variables.some(t=>null!=t.fillColor);e.scheme===kI.Custom&&t?e.scheme=e.variables.map(t=>t.fillColor?t.fillColor:""):e.scheme=kI[e.scheme]||DI.DEFAULT.scheme}else e.scheme instanceof Array&&e.scheme.every(t=>"string"==typeof t)||(e.scheme=DI.DEFAULT.scheme);super(e,new VI(e))}static formatVariable(t){if(null==t)return null;let e={};return t instanceof AI?t:(e="string"==typeof t?{attribute:t}:t,new AI(e))}updateCanvas(){xE(this.getImpl())&&xE(this.canvas_)||this.getImpl().updateCanvas(this.canvas_)}apply(t){this.layer_=t,t.getFeatures().forEach(t=>t.setStyle(this.clone())),this.updateCanvas()}get ORDER(){return 1}toJSON(){const t=this.getOptions();return{parameters:[{type:t.type,radius:t.radius,donutRadio:t.donutRadio,offsetX:t.offsetX,offsetY:t.offsetY,stroke:xE(t.stroke)?void 0:KE({},t.stroke),fill3DColor:t.fill3DColor,scheme:vE(t.scheme)?[...t.scheme]:t.scheme,label:xE(t.label)?void 0:KE({},t.label),rotateWithView:t.rotateWithView,variables:t.variables.map(t=>{let e;return xE(t.label)||(e=KE({},t.label),e=tS(e)),{attribute:t.attribute,legend:t.legend,fill:t.fillColor,label:e}})}],deserializedMethod:"M.style.Chart.deserialize"}}static deserialize([t]){const e=t;e.variables=t.variables.map(t=>new AI(eS(t)));return new Function(["options"],"return new M.style.Chart(options)")(e)}}DI.DEFAULT={shadow3dColor:"#369",type:FI.PIE,scheme:kI.Classic,radius:20,donutRatio:.5,offsetX:0,offsetY:0,animationStep:1};var jI=DI;class GI extends qd{constructor(t={}){const e=xE(t.stroke)?0:t.stroke.getWidth();super({radius:("number"==typeof t.radius?t.radius:0)+e,fill:new lg({color:[0,0,0]}),rotation:"number"==typeof t.rotation?t.rotation:0,snapToPixel:"boolean"==typeof t.snapToPixel&&t.snapToPixel}),t.scale&&this.setScale(t.scale),this.variables_=t.variables||[],this.stroke_=t.stroke||null,this.radius_=t.radius||0,this.donutRatio_=t.donutRatio||0,this.type_=t.type||null,this.offset_=[t.offsetX?t.offsetX:0,t.offsetY?t.offsetY:0],this.animation_={animate:"number"==typeof t.animation,step:"number"==typeof t.animation?t.animation:jI.DEFAULT.animationStep},this.data_=t.data||null,this.colors_=t.scheme instanceof Array?t.scheme:[],this.fill3DColor_=t.fill3DColor||"#000",this.rotateWithView_=t.rotateWithView||!1,this.renderChart_()}clone(){const t=new GI({type:this.type_,radius:this.radius_,colors:this.colors_,rotation:this.getRotation(),scale:this.getScale(),donutRatio:this.donutRatio_,data:this.data_,stroke:this.stroke_,scheme:this.colors_,offsetX:this.offset_[0],offsetY:this.offset_[1],animation:this.animation_,fill3DColor:this.fill3DColor_,rotateWithView:this.rotateWithView_});return t.setScale(this.getScale()),t.setOpacity(this.getOpacity()),t}get data(){return this.data_}set data(t){this.data_=t,this.renderChart_()}get radius(){return this.radius_}set radius(t){this.radius_=t,this.renderChart_()}setRadius(t,e){this.donutRatio_=e||this.donutRatio_,this.radius=t}setAnimation(t){if(!1===t){if(!1===this.animation_.animate)return;this.animation_.animate=!1}else{if(this.animation_.step===t)return;this.animation_.animate=!0,this.animation_.step=t}this.renderChart_()}getChecksum(){let t;const e=null!==this.stroke_?this.stroke_.getChecksum():"-";if(null===this.checksums_||e!==this.checksums_[1]||t!==this.checksums_[2]||this.radius_!==this.checksums_[3]||this.data_.join("|")!==this.checksums_[4]){const i=`c${e}undefined${this.radius_?this.radius_.toString():"-"}${this.data_.join("|")}`;this.checksums_=[i,e,t,this.radius_,this.data_.join("|")]}return this.checksums_[0]}renderChart_(t){switch(this.type_){case FI.DONUT:case FI.PIE_3D:case FI.PIE:this.renderCircleChart();break;default:this.renderBarChart()}}renderBarChart(){const t=this.getImage(1),e=t.getContext("2d");let i,r=0;const n=this.animation_.animate?this.animation_.step:1;this.stroke_&&(i=Object(pn.b)(this.stroke_.getColor()),r=this.stroke_.getWidth());const s=Math.max.apply(null,this.data_)||0,o=Math.min(5,2*this.radius_/this.data_.length),a=t.width-(r||0);let l;const h=t.width/2;let c=h-this.data_.length*o/2;i&&(e.strokeStyle=i,e.lineWidth=r),this.data_.sort((t,e)=>t-e).forEach((t,r)=>{e.beginPath(),e.fillStyle=this.colors_[r%this.colors_.length],l=c+o;const h=t/s*2*this.radius_*n;e.rect(c,a-h,o,h),e.closePath(),e.fill(),i&&e.stroke(),c=l});const u=this.getAnchor();u[0]=h-this.offset_[0],u[1]=h-this.offset_[1]}renderCircleChart(){let t,e=0;this.stroke_&&(t=Object(pn.b)(this.stroke_.getColor()),e=this.stroke_.getWidth());const i=this.getImage(1),r=i.getContext("2d");r.clearRect(0,0,i.width,i.height),r.lineJoin="round";let n=0;!xE(this.data_)&&this.data_.length>0&&(n=this.data_.reduce((t,e)=>t+e)),r.setTransform(1,0,0,1,0,0),r.translate(0,0);const s=this.animation_.animate?this.animation_.step:1,o=Math.PI*(s-1.5),a=i.width/2;t&&(r.strokeStyle=t,r.lineWidth=e),r.save(),this.type_===FI.PIE_3D?this.drawPie3D(r,o,a,s,t,n):this.type_===FI.DONUT?this.drawDonut(r,o,a,s,t,e,n):this.drawPie(r,o,a,s,t,n),r.restore();const l=this.getAnchor();l[0]=a-this.offset_[0],l[1]=a-this.offset_[1]}drawDonut(t,e,i,r,n,s,o){const a=t;a.save(),a.beginPath(),a.rect(0,0,2*i,2*i),a.arc(i,i,this.radius_*r*this.donutRatio_,0,2*Math.PI),a.clip("evenodd");const l=this.drawPie(a,e,i,r,n,o);a.restore(),a.beginPath(),a.strokeStyle=n,a.lineWidth=s;const h=this.radius_;a.arc(i,i,h*r*this.donutRatio_,Math.PI*(r-1.5),l),n&&a.stroke()}drawPie3D(t,e,i,r,n,s){const o=t;o.translate(0,.3*i),o.scale(1,.7),o.beginPath(),o.fillStyle=this.fill3DColor_,o.arc(i,1.4*i,this.radius_*r,0,2*Math.PI),o.fill(),n&&o.stroke(),this.drawPie(t,e,i,r,n,s)}drawPie(t,e,i,r,n,s){let o,a=e;const l=t;return this.data_.forEach((t,e)=>{l.beginPath(),l.moveTo(i,i),l.fillStyle=this.colors_[e%this.colors_.length],o=a+2*Math.PI*t/(s*r),l.arc(i,i,this.radius_*r,a,o),l.closePath(),l.fill(),n&&l.stroke(),a=o}),a}}var zI=class extends Xd{};const BI=(t,e,i,r)=>{let n;return n="function"==typeof t.text?t.text(r,i.data,e):""+Hd.getValue(t.text,e)||"",n="0"===n?"":n,n};class UI extends zI{constructor(t={}){((t,...e)=>{const i=t;if(null==i)throw new TypeError("Cannot convert undefined or null to object");const r=Object(i);e.filter(t=>null!=t).forEach(t=>Object.keys(t).forEach(e=>{Object.prototype.hasOwnProperty.call(t,e)&&!Object.prototype.hasOwnProperty.call(i,e)&&(i[e]=t[e])}))})(t,jI.DEFAULT),super(t),this.variables_=t.variables||[],this.colorsScheme_=t.scheme||[]}updateCanvas(t){if(!xE(t)){const e=t.getContext("2d");this.drawGeometryToCanvas(e)}}drawGeometryToCanvas(t){const e=t;if(!xE(e)&&!xE(e.canvas)){const t=UI.CANVAS_PROPS.fixedProps,i=UI.CANVAS_PROPS.width;e.canvas.setAttribute("width",i),e.width=i;const r=[],n={};Object.keys(UI.CANVAS_PROPS.percentages).forEach(t=>{n[t]=i*(UI.CANVAS_PROPS.percentages[t]/100)});let[s,o]=[n.left_right_content,t.top_content];const a=(i,n,s,o,a)=>{const l=s.split(" ");let h="";const c=n[0];let u=n[1];return r.push((t=>{const e=t.context;e.font=`${t.fontSize}px ${t.fontFamily}`,e.strokeStyle=t.strokeColor,e.strokeWidth=t.strokeWidth,e.fillStyle=t.textColor}).bind(this,{context:e,fontSize:t.font_size,fontFamily:t.font_family,strokeColor:t.text_stroke_color,strokeWidth:t.text_stroke_width,textColor:t.text_color})),l.forEach((t,i)=>{e.measureText(""+(h+t)).width>o&&i>0?(r.push(((t,e,i,r)=>{t.strokeText(e,i,r),t.fillText(e,i,r)}).bind(this,e,h,c,u)),h=t+" ",u+=a):h=h+t+" "}),r.push(((t,e,i,r)=>{t.strokeText(e,i,r),t.fillText(e,i,r)}).bind(this,e,h,c,u)),[c,u]},l=(i,s,o)=>{let[l,h]=i;h+=t.item_top_margin,r.push((t=>{const e=t.context;e.beginPath(),e.strokeStyle=t.strokeColor,e.lineWidth=t.width,e.fillStyle=t.color,e.rect(t.x,t.y,t.rectSize,t.rectSize),e.closePath(),e.stroke(),e.fill()}).bind(this,{context:e,strokeColor:"#000",width:t.rect_border_width,color:o,x:l,y:h,rectSize:t.rect_size})),l+=n.item_side_margin+t.rect_size,h+=t.rect_size/1.5;const c=h+t.item_top_margin,u=n.max_text_width,d=n.max_text_line_height,g=a(e,[l,h],s,u,d);return[g[0],g[1]>c?g[1]:c]};this.variables_.forEach((t,e)=>{const i=xE(t.legend)?t.attribute:t.legend,r=xE(t.fillColor)?this.colorsScheme_[e%this.colorsScheme_.length]||this.colorsScheme_[0]:t.fillColor;[s,o]=l([s,o],i,r),s=n.left_right_content}),o+=t.top_content,e.canvas.setAttribute("height",o),e.save(),r.forEach(t=>t()),e.restore()}}updateFacadeOptions(t){const e=t;e.rotateWithView=!1,this.olStyleFn_=(t,i)=>{let s=t;s instanceof Zh||(s=this);const o=this.formatDataRecursively_(e,s);let a=[];if(this.variables_.forEach(t=>{let e=s.get(t.attribute);e=parseFloat(e),a=a.concat(e instanceof Array?e:[e]).filter(t=>null!=t)}),0===a.length)throw new Error("cannot draw an empty data chart");o.data=a,xE(e.stroke)||(o.stroke=new cg(e.stroke));let l=[new jp({geometry:t=>{const e=xc.getCentroid(t.getGeometry());return new xo(e)},image:new GI(o)})];return"bar"!==o.type?1!==e.variables.length&&e.variables.length!==a.length||(l=l.concat(((t,e,i)=>{let r=0;const n=e.data.reduce((t,e)=>t+e),s=e.variables,o=e.data;return t.concat(e.data.map((t,a)=>{const l=s.length===o.length?s[a]:s[0],h=l.label||{},c=h.radius?h.radius:e.radius,u=(2*r+t)/n*Math.PI-Math.PI/2;if(r+=t,!l.label)return null;const d="number"==typeof h.radiusIncrement?h.radiusIncrement:3;let g="function"==typeof h.textAlign?h.textAlign(u):null;xE(g)&&(g=h.textAlign||(unull!=t)})(l,o,s))):"bar"===o.type&&(l=l.concat(((t,e,i)=>{let r=0,n=null;const s=e.variables,o=e.data,a=t.concat(e.data.map((a,l)=>{const h=s.length===o.length?s[l]:s[0],c=h.label||{};if(!h.label)return null;const u=BI(c,i,e,a),d=Hd.getValue(c.font,i);xE(n)?n=t[0].getImage().getImage().height/2-6:n-=15,r=r+9+6;const g=-t[0].getImage().getImage().width/2-(1+e.offsetX)||0;return new jp({text:new yg({text:"string"==typeof u?""+u:"",offsetY:n+e.offsetY||0,offsetX:g,textBaseline:"middle",rotateWithView:!1,textAlign:"center",stroke:c.stroke?new cg({}):void 0,font:"9px "+d,scale:"number"==typeof c.scale?Hd.getValue(c.scale,i):void 0,fill:new lg({color:e.scheme[l%e.scheme.length]})})})})),l=a.filter(t=>null!=t);r=Math.max(r,1);const h=-t[0].getImage().getImage().width/2+10+e.offsetX,c=t[0].getImage().getImage().height/2+e.offsetY,u=new Rd({anchor:[h,c],anchorOrigin:"bottom-right",offsetOrigin:"bottom-left",anchorXUnits:"pixels",anchorYUnits:"pixels",rotateWithView:!1,src:"data:image/svg+xml;base64,"+window.btoa(``),size:[a[0].getImage().getImage().width/2,r]});return l.push(new mg({image:u})),l})(l,o,s))),((t,e,i)=>{if(!xE(t.label)){const s=new mg,o=Hd.getValue(t.label.text,i),a=Hd.getValue(t.label.align,i),l=Hd.getValue(t.label.baseline,i),h=t.label.offset?t.label.offset[0]:void 0,c=t.label.offset?t.label.offset[1]:void 0,u=new lg({color:Hd.getValue(t.label.color||"#000000",i)}),d=new yg({font:Hd.getValue(t.label.font,i),rotateWithView:Hd.getValue(t.label.rotate,i),scale:Hd.getValue(t.label.scale,i),offsetX:Hd.getValue(h,i),offsetY:Hd.getValue(c,i),fill:u,textAlign:Object.values(r).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:Hd.getValue(t.label.rotation,i)});xE(t.label.stroke)||d.setStroke(new cg({color:Hd.getValue(t.label.stroke.color,i),width:Hd.getValue(t.label.stroke.width,i),lineCap:Hd.getValue(t.label.stroke.linecap,i),lineJoin:Hd.getValue(t.label.stroke.linejoin,i),lineDash:Hd.getValue(t.label.stroke.linedash,i),lineDashOffset:Hd.getValue(t.label.stroke.linedashoffset,i),miterLimit:Hd.getValue(t.label.stroke.miterlimit,i)})),s.setText(d),e.push(s)}})(o,l,s),l}}applyToLayer(t){t.getFeatures().forEach(this.applyToFeature,this)}applyToFeature(t){t.getImpl().getOLFeature().setStyle(this.olStyleFn_)}formatDataRecursively_(t,e){return Object.keys(t).reduce((i,r,n)=>{let s=i;return"object"!=typeof i&&(s={},"object"!=typeof t[i]&&this.setVal(s,t,i,e)),this.setVal(s,t,r),s})}setVal(t,e,i,r){const n=t;n[i]=Hd.getValue(e[i],r),!wE(e[i])||e[i]instanceof Array||(n[i]=this.formatDataRecursively_(e[i],r))}}UI.CANVAS_PROPS={width:200,percentages:{left_right_content:5,item_side_margin:5,max_text_width:70},fixedProps:{rect_border_width:2,font_size:10,font_family:"sans-serif",text_stroke_color:"#fff",text_stroke_width:1,text_color:"#000",top_content:10,item_top_margin:10,text_line_height:15,rect_size:15}};var VI=UI;var qI=class extends Xd{constructor(t,e,i){super({}),this.heatmapLayer_=null,this.attribute_=t,this.opt_options_=KE(e,i),this.opt_options_.zIndex=999999,this.oldOLLayer_=null}applyToLayer(t){if(this.layer_=t,!xE(t)){const t=this.layer_.getImpl().getOLLayer();t instanceof PI||(this.oldOLLayer_=t);const e=this.layer_.getFeatures().map(t=>t.getImpl().getOLFeature());e.forEach(t=>t.setStyle(null)),this.createHeatmapLayer_(e),this.layer_.getImpl().setOLLayer(this.heatmapLayer_)}}unapply(t){xE(this.oldOLLayer_)||(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.layer_.redraw(),this.layer_=null,this.oldOLLayer_=null,this.heatmapLayer_=null)}createHeatmapLayer_(t){this.opt_options_.source=new Ed({features:t}),this.opt_options_.name=this.layer_.name,this.heatmapLayer_=new NI(this.opt_options_)}setOptions(t,e){this.opt_options_=KE(t,e)}getMinWeight(){return this.heatmapLayer_.getMinWeight()}getMaxWeight(){return this.heatmapLayer_.getMaxWeight()}};var YI=class extends Rd{getImageSize(){return this.iconImage_.getSize()}};class WI extends kg{constructor(t){let e=t;xE(e)&&(e=WI.DEFAULT_NULL),e=KE({},e);super(e,new JI(e))}unapply(t){this.getImpl().unapply(t)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Line'))"}}WI.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};var XI=WI;class HI{static render(t,e){let i=t;const r=this;let n=0,s=0,o=2;const a=(t,e,i,r)=>{const[n,s]=[i-t,r-e];return Math.sqrt(n*n+s*s)},l=(t,e)=>{if(!n||s+ne))&&(o+=2,!(o>=t.length));)s+=n;const i=e-s;o>=t.length&&(o=t.length-2);return[i?t[o-2]+(t[o]-t[o-2])*i/n:t[o-2],i?t[o-1]+(t[o+1]-t[o-1])*i/n:t[o-1],Math.atan2(t[o+1]-t[o-1],t[o]-t[o-2])]};let h=.25*r.measureText(" ").width,c=0,u=0;for(let t=2;t{r.push(t[0]*e[0]+t[1]*e[1]+t[4]),r.push(t[2]*e[0]+t[3]*e[1]+t[5])}),i&&r[0]>r[r.length-2]){const t=[];for(let e=r.length-2;e>=0;e-=2)t.push(r[e]),t.push(r[e+1]);return t}return r}static formatStyle(t){let e=t;if(null==e)return null;let i=null;return void 0===e&&(e=[new mg({text:new yg})]),i="function"==typeof e?e:()=>[e],i}static draw(t,e,i,r){const n=this.getPath_(e,r,i.getRotateWithView());t.font=i.getFont(),t.textBaseline=i.getTextBaseline(),t.textAlign=i.getTextAlign(),t.lineWidth=i.getStroke()&&i.getStroke().getWidth()||HI.DEFAULT.lineWidth,t.strokeStyle=i.getStroke()&&i.getStroke().getColor()||HI.DEFAULT.lineColor,t.fillStyle=i.getFill()&&i.getFill().getColor()||HI.DEFAULT.fillColor,t.textJustify="justify"===i.getTextAlign(),t.textOverflow=i.getTextOverflow?i.getTextOverflow():HI.DEFAULT.textOverflow,t.minWidth=i.getMinWidth?i.getMinWidth():HI.DEFAULT.minWidth,"function"==typeof t.textPath&&t.textPath(i.getText(),n),t.restore()}}HI.DEFAULT={lineWidth:0,lineColor:"#fff",fillColor:"#000",textOverflow:"",minWidth:0};var ZI=function(t=null){if(mE(window.CanvasRenderingContext2D.prototype.textPath)&&(window.CanvasRenderingContext2D.prototype.textPath=HI.render),t.frameState.viewState.resolution>this.textPathMaxResolution_)return;const e=t.frameState.extent,i=t.context;i.save(),i.scale(t.frameState.pixelRatio,t.frameState.pixelRatio);null!=this.getSource()&&0===this.getSource().getFeatures().length||(this.getSource().getFeaturesInExtent(e).forEach(e=>{const r=null!=e.getStyle()?e.getStyle():this.getStyle();let n="function"==typeof r?r(e,t.frameState.viewState.resolution):r;n instanceof Array||(n=[n]),n.forEach(r=>{let n,s=(r instanceof XI?r.getOptions().geometry:r.getGeometry())||e.getGeometry();switch("function"==typeof s&&(s=s(e)),s.getType()){case"MultiLineString":n=s.getLineString(0).getCoordinates();break;default:n=s.getCoordinates()}const o=r instanceof XI?r.getOptions().text:r.textPath;null!=o&&o instanceof vg&&HI.draw(i,t.frameState.coordinateToPixelTransform,o,n)})}),i.restore())};Zs.prototype.cspline=function(t){let e;return this.calcCSpline?this.csplineGeometryRevision===this.getRevision()&&this.csplineOption===JSON.stringify(t)||(this.csplineGeometry_=this.calcCSpline(t),this.csplineGeometryRevision=this.getRevision(),this.csplineOption=JSON.stringify(t),e=this.csplineGeometry_):e=this,e},fc.prototype.calcCSpline=function(t){const e=[];this.getGeometries().forEach(t=>e.push(t.cspline()));return new fc(e)},sc.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach(t=>e.push(t.cspline().getCoordinates()));return new sc(e)},No.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach(t=>e.push(t.cspline().getCoordinates()));return new No(e)},lc.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach(t=>e.push(t.cspline().getCoordinates()));return new lc(e)};const KI=(t,e,i,r)=>{const n=i-t,s=r-e;return Math.sqrt(n*n+s*s)};rc.prototype.calcCSpline=function(t={}){const e=this.getCoordinates(),i="number"==typeof t.tension?t.tension:.5,r=t.resolution||this.getLength()/e.length/(t.pointsPerSeg||10),n=[];let s,o,a,l,h,c,u,d,g,p,f,m,_;const y=e.slice(0);for(e.length>2&&e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.length-1][1]?(y.unshift(e[e.length-2]),y.push(e[1])):(y.unshift(e[0]),y.push(e[e.length-1])),_=1;_{let i=e;i instanceof Zh||i instanceof dc||(i=this);const r=t.stroke,n=t.label,s=new jp,o=new jp,a=Hd.getValue;if(xE(r)||s.setStroke(new cg({color:a(r.color,i),width:a(r.width,i),lineDash:a(r.linedash,i),lineDashOffset:a(r.linedashoffset,i),lineCap:a(r.linecap,i),lineJoin:a(r.linejoin,i),miterLimit:a(r.miterlimit,i)})),!xE(n)){const e={text:void 0===a(n.text,i)?void 0:String(a(n.text,i)),font:a(n.font,i),fill:new lg({color:a(n.color||"#000000",i)}),textBaseline:(a(n.baseline,i)||"").toLowerCase(),textAlign:a(n.align,i),scale:a(n.scale,i),rotateWithView:a(n.rotate,i)||!1,textOverflow:a(n.textoverflow,i)||"",minWidth:a(n.minwidth,i)||0,geometry:a(n.geometry,i),offsetX:a(t.label.offset?t.label.offset[0]:void 0,i),offsetY:a(t.label.offset?t.label.offset[1]:void 0,i)},r=new vg(e);xE(n.stroke)||r.setStroke(new cg({color:a(n.stroke.color,i),width:a(n.stroke.width,i),lineCap:a(n.stroke.linecap,i),lineJoin:a(n.stroke.linejoin,i),lineDash:a(n.stroke.linedash,i),lineDashOffset:a(n.stroke.linedashoffset,i),miterLimit:a(n.stroke.miterlimit,i)}));const o=a(n.path,i);"boolean"==typeof o&&o?(s.textPath=r,!xE(n.smooth)&&!0===n.smooth&&bE(i.getGeometry)&&s.setGeometry(i.getGeometry().cspline())):s.setText(r)}let h;if(!xE(t.fill)){const e=Hd.getValue(t.fill.color,i,this.layer_);let r=Hd.getValue(t.fill.opacity,i,this.layer_);r||0===r||(r=1);const n=Hd.getValue(t.fill.width,i,this.layer_);xE(e)||(h=new cg({color:l()(e).alpha(r).css(),width:n}))}return o.setStroke(h),[s,o]}}applyToLayer(t){super.applyToLayer(t);const e=t.getImpl().getOLLayer();xE(e)||(this.postComposeEvtKey_=e.on("postcompose",ZI,e))}unapply(){Object(nd.b)(this.postComposeEvtKey_)}drawGeometryToCanvas(t,e,i,r){let n=$I.getCanvasSize()[0],s=$I.getCanvasSize()[1];if(t.drawGeometry(new rc([[0+r/2,0+r/2],[n/3,s/2-r/2],[2*n/3,0+r/2],[n-r/2,s/2-r/2]])),!xE(i)){const t=i.width,r=e.getContext("2d");r.lineWidth=i.width,n=e.width,s=e.height,r.strokeStyle=i.color,r.beginPath(),r.lineTo(0+t,0+t),r.lineTo(n/3,s/2-t),r.lineTo(2*n/3,0+t),r.lineTo(n-t,s/2-t),r.stroke()}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=$I.getCanvasSize(),i=Bd(t.getContext("2d"),{size:e});let r;const n=this.olStyleFn_()[1];xE(n)||xE(n.getStroke())||(r={color:n.getStroke().getColor(),width:1});const s=this.olStyleFn_()[0];xE(s.getText())||s.setText(null);const o=s.getStroke();let a;xE(o)||(xE(o.getWidth())?a=1:(a=o.getWidth(),o.getWidth()>$I.DEFAULT_WIDTH_LINE&&(a=$I.DEFAULT_WIDTH_LINE)),r={color:s.getStroke().getColor(),width:a},s.getStroke().setWidth(a),i.setStyle(s)),this.drawGeometryToCanvas(i,t,r,a)}static getCanvasSize(){return[25,15]}}$I.DEFAULT_WIDTH_LINE=3;var JI=$I;class QI extends Hd{constructor(t){super(t),this.olStyleFn_=this.updateFacadeOptions(t)}updateFacadeOptions(t){return e=>{let i=e;i instanceof Zh||e instanceof dc||(i=this);const s=new jp;if(xE(t.stroke)||s.setStroke(new cg({color:Hd.getValue(t.stroke.color,i,this.layer_),width:Hd.getValue(t.stroke.width,i,this.layer_),lineDash:Hd.getValue(t.stroke.linedash,i,this.layer_),lineDashOffset:Hd.getValue(t.stroke.linedashoffset,i,this.layer_),lineCap:Hd.getValue(t.stroke.linecap,i,this.layer_),lineJoin:Hd.getValue(t.stroke.linejoin,i,this.layer_),miterLimit:Hd.getValue(t.stroke.miterlimit,i,this.layer_)})),!xE(t.label)){const e=Hd.getValue(t.label.text,i,this.layer_),o=Hd.getValue(t.label.align,i,this.layer_),a=Hd.getValue(t.label.baseline,i,this.layer_),l=!!xE(t.label.overflow,this.layer_)||t.label.overflow;s.setText(new yg({font:Hd.getValue(t.label.font,i,this.layer_),rotateWithView:Hd.getValue(t.label.rotate,i,this.layer_),scale:Hd.getValue(t.label.scale,i,this.layer_),offsetX:Hd.getValue(t.label.offset?t.label.offset[0]:void 0,i,this.layer_),offsetY:Hd.getValue(t.label.ofsset?t.label.offset[1]:void 0,i,this.layer_),fill:new lg({color:Hd.getValue(t.label.color||"#000000",i,this.layer_)}),textAlign:Object.values(r).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===e?void 0:String(e),rotation:Hd.getValue(t.label.rotation,i,this.layer_),overflow:Hd.getValue(l,i,this.layer_)})),xE(t.label.stroke)||s.getText().setStroke(new cg({color:Hd.getValue(t.label.stroke.color,i,this.layer_),width:Hd.getValue(t.label.stroke.width,i,this.layer_),lineCap:Hd.getValue(t.label.stroke.linecap,i,this.layer_),lineJoin:Hd.getValue(t.label.stroke.linejoin,i,this.layer_),lineDash:Hd.getValue(t.label.stroke.linedash,i,this.layer_),lineDashOffset:Hd.getValue(t.label.stroke.linedashoffset,i,this.layer_),miterLimit:Hd.getValue(t.label.stroke.miterlimit,i,this.layer_)}))}if(!xE(t.fill)){const e=Hd.getValue(t.fill.color,i,this.layer_);let r,n=Hd.getValue(t.fill.opacity,i,this.layer_);if(n||0===n||(n=1),xE(e)||(r=new lg({color:l()(e).alpha(n).css()})),xE(t.fill.pattern))s.setFill(r);else{let e="rgba(0,0,0,1)";if(!xE(t.fill.pattern.color)){let r=Hd.getValue(t.fill.pattern.opacity,i,this.layer_)||1;r||0===r||(r=1),e=l()(t.fill.pattern.color).alpha(r).css()}s.setFill(new wg({pattern:(Hd.getValue(t.fill.pattern.name,i,this.layer_)||"").toLowerCase(),color:e,size:Hd.getValue(t.fill.pattern.size,i,this.layer_),spacing:Hd.getValue(t.fill.pattern.spacing,i,this.layer_),image:"IMAGE"===Hd.getValue(t.fill.pattern.name,i,this.layer_)?new Rd({src:Hd.getValue(t.fill.pattern.src,i,this.layer_)}):void 0,angle:Hd.getValue(t.fill.pattern.rotation,i,this.layer_),scale:Hd.getValue(t.fill.pattern.scale,i,this.layer_),offset:Hd.getValue(t.fill.pattern.offset,i,this.layer_),fill:r}))}}return[s]}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=QI.getCanvasSize(),i=Bd(t.getContext("2d"),{size:e}),r=this.olStyleFn_()[0];xE(r.getText())||r.setText(null);const n=r.getStroke();xE(n)||xE(n.getWidth())||n.getWidth()>QI.DEFAULT_WIDTH_POLYGON&&r.getStroke().setWidth(QI.DEFAULT_WIDTH_POLYGON),i.setStyle(r),this.drawGeometryToCanvas(i)}drawGeometryToCanvas(t){const e=QI.getCanvasSize(),i=Math.floor(e[0]),r=Math.floor(e[1]),n=e[0]-i,s=e[1]-r;t.drawGeometry(new No([[[n+3,s+3],[i-3,s+3],[i-3,r-3],[n+3,r-3],[n+3,s+3]]]))}static getCanvasSize(){return[25,15]}}QI.DEFAULT_WIDTH_POLYGON=3;var tC=QI;const eC=(t,e)=>{let[i,r]=[void 0,void 0];const n=t.filter(t=>![NaN,void 0,null].includes(t.getAttribute(e))).map(t=>parseInt(t.getAttribute(e),10));let s=1;if(!xE(n))for(i=n[0],r=n[0];s(t-e)*(n-r)/(i-e)+r;class rC extends Vp{constructor(t,e,i,r,n,s={}){super(s,{}),xE(t)&&Qa(jl("exception").no_attr_name),this.attributeName_=t,this.minRadius_=parseInt(e,10)||5,this.maxRadius_=parseInt(i,10)||15,this.style_=r,this.proportionalFunction_=n||iC,this.maxRadius_this.applyToFeature(t,1));const e=this.oldStyle_.clone();e instanceof kg&&(e.set("zindex",t=>this.maxValue_-parseFloat(t.getAttribute(this.attributeName_))),e.set(rC.getSizeAttribute(e),t=>{const e=rC.SCALE_PROPORTION,i=t.getAttribute(this.attributeName_),r=[i,this.minValue_,this.maxValue_,this.minRadius_,this.maxRadius_];let n=this.proportionalFunction_(...r);if("icon.scale"===rC.getSizeAttribute(this.oldStyle_)){const t=this.minRadius_/e,r=this.maxRadius_/e,s=[i,this.minValue_,this.maxValue_,t,r];n=this.proportionalFunction_(...s)}return n}),this.updateCanvas())}}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this}getStyle(){return console.warn("Deprecated function: Use getStyles instead."),this.style_}setStyle(t){return this.style_=t,this.update_(),this}getMinRadius(){return this.minRadius_}setProportionalFunction(t){this.proportionalFunction_=t,this.update_()}getProportionalFunction(){return this.proportionalFunction_}setMinRadius(t){return this.minRadius_=parseInt(t,10),t>=this.maxRadius_&&Qa(jl("exception").min_gt_max),this.update_(),this}getMaxRadius(){return this.maxRadius_}setMaxRadius(t){return this.maxRadius_=parseInt(t,10),t<=this.minRadius_&&Qa(jl("exception").max_lt_min),this.update_(),this}updateCanvas(){this.updateCanvasPromise_=new Promise((t,e)=>{if(!xE(this.layer_)){const e=this.styles_.filter(t=>t instanceof kg)[0];let i=xE(e)?this.layer_.getStyle():e;if(i=xE(i)?this.style_:i,i instanceof kg){let e=i.clone();e instanceof jg?e=new Cf(e.getOptions().point):e instanceof Cf||(e=new Cf(e.getOptions()));const r=rC.getSizeAttribute(e),n=e.clone(),s=e.clone(),o=this.getMaxRadius(),a=this.getMinRadius();n.set(r,o),s.set(r,a),this.loadCanvasImage(o,n.toImage(),e=>{this.loadCanvasImage(a,s.toImage(),i=>{this.drawGeometryToCanvas(e,i,t)})})}else xE(i)||(this.canvas_=i.canvas,t())}})}loadCanvasImage(t,e,i){const r=new Image;r.crossOrigin="Anonymous",r.onload=()=>{i({image:r,value:t})},r.onerror=()=>{i({value:t})},r.src=e}drawGeometryToCanvas(t,e,i){const r=t.image,n=e.image;this.canvas_.height=r.height+5+n.height+5;const s=this.canvas_.getContext("2d");s.textBaseline="middle";let o=0,a=0;if(xE(r)||(o=r.width+5,a=r.height/2,/^https?:\/\//i.test(r.src)?(this.canvas_.height=130,s.fillText(" max: "+this.maxValue_,85,40),s.drawImage(r,0,0,80,80)):(s.fillText(" max: "+this.maxValue_,o,a),s.drawImage(r,0,0))),!xE(n)){let t=0;xE(r)||(t=r.width/2-n.width/2);const e=r.height+5;a=e+n.height/2,/^https?:\/\//i.test(n.src)?(s.fillText(" min: "+this.minValue_,85,105),s.drawImage(n,20,85,40,40)):(s.fillText(" min: "+this.minValue_,o,a),s.drawImage(n,t,e))}i()}static getSizeAttribute(t){let e="radius";return xE(t.get("icon"))||(e=xE(t.get("icon.src"))?"icon.radius":"icon.scale"),e}calculateStyle_(t,e,i){const r=this.proportionalFunction_;let n=i;if(!xE(n)){n=n.clone();let[i,s]=[e.minRadius,e.maxRadius];xE(n.get("icon.src"))||(i=e.minRadius/rC.SCALE_PROPORTION,s=e.maxRadius/rC.SCALE_PROPORTION);const o=t.getAttribute(this.attributeName_);null==o&&console.warn(`Warning: ${this.attributeName_} value is null or empty.`);const a=r(o,e.minValue,e.maxValue,i,s),l=e.maxValue-parseFloat(t.getAttribute(this.attributeName_));n.set(""+rC.getSizeAttribute(n),a),n.set("zindex",l)}return n}get ORDER(){return 3}toJSON(){const t=this.getAttributeName(),e=this.getMinRadius(),i=this.getMaxRadius(),r=this.getStyles().map(t=>t.serialize()),n=tS(this.getProportionalFunction());let s=KE({},this.getOptions());s=tS(s);return{parameters:[t,e,i,r,n,s],deserializedMethod:"M.style.Proportional.deserialize"}}static deserialize([t,e,i,r,n,s]){const o=t,a=e,l=i,h=eS(n),c=eS(s),u=new Function(["attributeName","minRadius","maxRadius","style","proportionalFunction","options"],"return new M.style.Proportional(attributeName,\n minRadius, maxRadius, style, proportionalFunction, options)")(o,a,l,void 0,h,c),d=r.map(t=>Ag.deserialize(t));return u.add(d),u}}rC.SCALE_PROPORTION=20;var nC=rC;class sC extends kg{constructor(t={}){let e=t;super(e,new tC(e)),xE(e)&&(e=sC.DEFAULT_NULL),e=KE({},e)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Polygon'))"}}sC.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};var oC=sC;var aC=t=>{const e=t.radius,i=l.a.random().hex(),r=t.strokeColor,n=t.strokeWidth;return new jg({point:{radius:e,fill:{color:i},stroke:{color:r,width:n}},line:{fill:{color:i},stroke:{color:r,width:n}},polygon:{fill:{color:i},stroke:{color:r,width:n}}})};class lC extends Vp{constructor(t,e,i={}){super(i,{}),xE(t)&&Qa(jl("exception").no_attr_name),this.attributeName_=t,this.categoryStyles_=e}get ORDER(){return 2}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getCategories(){return this.categoryStyles_}setCategories(t){return this.categoryStyles_=t,this.update_(),this.refresh(),this}getStyleForCategory(t){return this.categoryStyles_[t]}setStyleForCategory(t,e){return this.categoryStyles_[t]=e,this.update_(),this.refresh(),this}updateCanvas(){const t=[];this.updateCanvasPromise_=new Promise((e,i)=>this.loadCanvasImages_(0,t,e))}loadCanvasImages_(t,e,i){const r=this.getCategories(),n=Object.keys(r);if(t===n.length)this.drawGeometryToCanvas(e,i);else{const r=n[t],s=this.getStyleForCategory(r),o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{e.push({image:o,categoryName:r}),this.loadCanvasImages_(t+1,e,i)},o.onerror=()=>{e.push({categoryName:r}),this.loadCanvasImages_(t+1,e,i)},s.updateCanvas(),s.get("icon.src")&&QE(s.get("icon.src")).then(t=>{o.width=s.get("icon.scale")?t.width*s.get("icon.scale"):t.width,o.height=s.get("icon.scale")?t.height*s.get("icon.scale"):t.height});const a=s.toImage();a instanceof Promise?a.then(t=>{o.src=t}):o.src=a}}drawGeometryToCanvas(t,e){const i=t.map(t=>t.image.height),r=t.map(t=>t.image.width),n=this.canvas_.getContext("2d");n.canvas.height=i.reduce((t,e)=>t+e+5),n.textBaseline="middle";const s=Math.max.apply(r,r);t.forEach((t,e)=>{const r=t.image,o=t.categoryName;let a=0;const l=i.slice(0,e);xE(l)||(a=l.reduce((t,e)=>t+e+5),a+=5);let h=0;if(!xE(r)){h=r.height;const t=(s-r.width)/2;n.drawImage(r,t,a,r.width,r.height)}n.fillText(o,s+5,a+h/2)}),e()}update_(){if(!xE(this.layer_)){(xE(this.categoryStyles_)||0===Object.keys(this.categoryStyles_).length)&&(this.categoryStyles_=this.generateRandomCategories_());const t=this.categoryStyles_.other;this.layer_.getFeatures().forEach(e=>{const i=e.getAttribute(this.attributeName_),r=this.categoryStyles_[i];xE(r)?xE(t)||e.setStyle(t):e.setStyle(r)}),this.updateCanvas()}}add(t){let e=t;return vE(e)||(e=[e]),e=e.filter(t=>t instanceof Yp||t instanceof nC),super.add(e)}generateRandomCategories_(){const t={};return xE(this.layer_)||this.layer_.getFeatures().forEach(e=>{const i=e.getAttribute(this.attributeName_);Object.prototype.hasOwnProperty.call(t,i)||(t[i]=aC({radius:lC.RANDOM_RADIUS_OPTION,strokeColor:lC.RANDOM_STROKE_COLOR_OPTION,strokeWidth:lC.RANDOM_STROKE_WIDTH_OPTION}))}),t}toJSON(){const t=this.getAttributeName(),e=this.getCategories(),i={};Object.keys(e).forEach(t=>{i[t]=e[t].serialize()});let r=KE({},this.getOptions());r=tS(r);const n=this.getStyles().map(t=>t.serialize());return{parameters:[t,i,r,n],deserializedMethod:"M.style.Category.deserialize"}}static deserialize([t,e,i,r]){const n=t,s=e;Object.keys(e).forEach(t=>{s[t]=Ag.deserialize(e[t])});const o=eS(i),a=new Function(["attributeName","categoryStyles","options"],"return new M.style.Category(attributeName, categoryStyles, options)")(n,s,o),l=r.map(t=>Ag.deserialize(t));return a.add(l),a}}lC.RANDOM_RADIUS_OPTION=10,lC.RANDOM_STROKE_WIDTH_OPTION=1,lC.RANDOM_STROKE_COLOR_OPTION="black";var hC=lC;const cC=t=>{const e=[];return t.forEach(t=>{-1===e.indexOf(t)&&e.push(t)}),e},uC=t=>{let e=t;e=e||5;const i=(t,i=e)=>{const r=cC(t),n=r.length<=i?r.length-1:i;t.sort((t,e)=>t-e);const s=((t,e)=>{const i=[],r=[];let n=0;for(let n=0;n=n+r[h][t-1]&&(i[s][t]=u,r[s][t]=n+r[h][t-1])}i[s][1]=1,r[s][1]=n}return{lowerClassLimits:i,varianceCombinations:r}})(t,n),o=((t,e,i)=>{let r=t.length-1;const n=[];let s=i;for(n[i]=t[t.length-1],n[0]=t[0];s>1;)n[s-1]=t[e[r][s]-2],r=e[r][s]-1,s-=1;return n})(t,s.lowerClassLimits,n);return o.slice(1,o.length)};return Object.defineProperty(i,"name",{value:"jenks"}),i},dC=t=>{const e=t||5,i=(t,i=e)=>{const r=cC(t),n=r.length<=i?r.length-1:i,s=t.length;t.sort((t,e)=>t-e);const o=Math.trunc(s/n),a=[];for(let e=0;enew _S(i=>null!=i.getAttribute(t)&&i.getAttribute(t)<=e,{cqlFilter:`${t} <= '${e}'`}),pC=t=>Math.round(100*t)/100;class fC extends Vp{constructor(t,e,i=uC(),r={}){super(r,{}),xE(t)&&Qa(jl("exception").no_attr_name),this.attributeName_=t,this.choroplethStyles_=e,this.quantification_=i,this.dataValues_=[],this.breakPoints_=[]}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getQuantification(){return this.quantification_}setQuantification(t){if(this.quantification_=t,!this.choroplethStyles_.some(t=>EE(t))){if(this.choroplethStyles_.length0){const t=[];this.updateCanvasPromise_=new Promise((e,i)=>this.loadCanvasImages_(0,t,e))}}loadCanvasImages_(t,e,i){if(t===this.choroplethStyles_.length)this.drawGeometryToCanvas(e,i);else{let r=-1;t>0&&(r=this.breakPoints_[t-1]);const n=this.breakPoints_[t],s=new Image;s.crossOrigin="Anonymous",s.onload=()=>{e.push({image:s,startLimit:pC(r),endLimit:pC(n)}),this.loadCanvasImages_(t+1,e,i)},s.onerror=()=>{e.push({startLimit:pC(r),endLimit:pC(n)}),this.loadCanvasImages_(t+1,e,i)},this.choroplethStyles_[t].updateCanvas();const o=this.choroplethStyles_[t].toImage();EE(o)?s.src=o:o.then(t=>{s.src=t})}}drawGeometryToCanvas(t,e){const i=t.map(t=>t.image.height),r=t.map(t=>t.image.width),n=this.canvas_.getContext("2d");n.canvas.height=i.reduce((t,e)=>t+e+5),n.textBaseline="middle";const s=Math.max.apply(r,r);t.forEach((t,e)=>{const r=t.image,o=t.startLimit,a=t.endLimit;let l=0;const h=i.slice(0,e);xE(h)||(l=h.reduce((t,e)=>t+e+5),l+=5);let c=0;xE(r)||(c=r.height,n.drawImage(r,0,l)),o<0?n.fillText(" x <= "+a,s+5,l+c/2):n.fillText(`${o} < x <= ${a}`,s+5,l+c/2)},this),e()}getValues(){const t=[];return xE(this.layer_)||this.layer_.getFeatures().forEach(e=>{try{const i=parseFloat(e.getAttribute(this.attributeName_));Number.isNaN(i)||t.push(i)}catch(t){}},this),t}update_(){if(!xE(this.layer_)){const t=this.layer_.getFeatures();if(!xE(t))if(this.dataValues_=this.getValues(),xE(this.choroplethStyles_)||!xE(this.choroplethStyles_)&&(EE(this.choroplethStyles_[0])||EE(this.choroplethStyles_[1]))){this.breakPoints_=this.quantification_(this.dataValues_);const t=this.choroplethStyles_&&this.choroplethStyles_[0]?this.choroplethStyles_[0]:fC.START_COLOR_DEFAULT,e=this.choroplethStyles_&&this.choroplethStyles_[1]?this.choroplethStyles_[1]:fC.END_COLOR_DEFAULT,i=this.breakPoints_.length;let r=HE(t,e,i);vE(r)||(r=[r]);const n=(t,e)=>t.map(t=>e(t));this.choroplethStyles_=n(r,fC.DEFAULT_STYLE)}else this.breakPoints_=this.quantification_(this.dataValues_,this.choroplethStyles_.length);for(let e=this.breakPoints_.length-1;e>-1;e-=1){gC(this.attributeName_,this.breakPoints_[e]).execute(t).forEach(t=>t.setStyle(this.choroplethStyles_[e]))}this.updateCanvas()}}static DEFAULT_STYLE(t){return new jg({point:{fill:{color:t,opacity:1},stroke:{color:"black",width:1},radius:5},line:{stroke:{color:t,width:1}},polygon:{fill:{color:t,opacity:1},stroke:{color:"black",width:1}}})}add(t){let e=t;return vE(e)||(e=[e]),e=e.filter(t=>t instanceof Yp||t instanceof nC),super.add(e)}get ORDER(){return 2}toJSON(){const t=this.getAttributeName(),e=this.getChoroplethStyles().map(t=>t.serialize());let i=this.getQuantification();i=xE(i.name)?tS(i):i.name;let r=KE({},this.getOptions());r=tS(r);return{parameters:[t,e,i,r,this.getStyles().map(t=>t.serialize())],deserializedMethod:"M.style.Choropleth.deserialize"}}static deserialize([t,e,i,r,n]){const s=t,o=e.map(t=>Ag.deserialize(t));let a;a="jenks"===i?uC():"quantile"===i?dC():eS(i);const l=eS(r),h=new Function(["attributeName","styles","quantification","options"],"return new M.style.Choropleth(attributeName, styles, quantification, options)")(s,o,a,l),c=n.map(t=>Ag.deserialize(t));return h.add(c),h}}fC.START_COLOR_DEFAULT="red",fC.END_COLOR_DEFAULT="brown";var mC=fC;var _C=class{static addSymbol(t,e){return Yd.addDefs(t,e)}};class yC extends Ag{constructor(t,e={},i={}){const r=e,n=i;if(EE(t)||bE(t)||Qa(jl("exception").no_empty),KE(r,yC.DEFAULT_OPTIONS),xE(r.gradient)||vE(r.gradient)||(r.gradient=[r.gradient]),r.gradient=r.gradient||yC.DEFAULT_OPTIONS.gradient,r.gradient.length<2){const t=ZE(r.gradient[0]);r.gradient.push(t)}r.blur=xE(r.blur)?yC.DEFAULT_OPTIONS.blur:parseFloat(r.blur),r.radius=xE(r.radius)?yC.DEFAULT_OPTIONS.radius:parseFloat(r.radius),r.weight=t,n.opacity=Number.isNaN(parseFloat(n.opacity))?1:parseFloat(n.opacity);super(r,new qI(t,r,n)),this.attribute_=t,this.options_=r,this.vendorOptions_=n}unapply(t){this.layer_=null,this.getImpl().unapply(t)}getAttributeName(){return this.attribute_}setAttributeName(t){this.attribute_=t,this.options_.weight=this.attribute_,this.update_()}getGradient(){return this.options_.gradient}setGradient(t){let e=t;if(vE(e)||(e=[e]),e.length<2){const t=ZE(e[0]);e.push(t)}this.options_.gradient=e,this.update_()}getRadius(){return this.options_.radius}setRadius(t){this.options_.radius=t,this.update_()}getBlurSize(){return this.options_.blur}setBlurSize(t){this.options_.blur=t,this.update_()}update_(){const t=this.getImpl();t.unapply(this.layer_),t.setOptions(this.options_,this.vendorOptions_),t.applyToLayer(this.layer_)}drawGeometryToCanvas(){const[t,e]=[this.getImpl().getMinWeight(),this.getImpl().getMaxWeight()],i=this.canvas_.getContext("2d"),r=i.createLinearGradient(0,150,200,150),n=$E([0,1],this.options_.gradient.length);this.options_.gradient.forEach((t,e)=>r.addColorStop(n[e],t)),i.fillStyle=r,i.fillRect(0,20,200,30),i.fillStyle="#000",i.font="10px sans-serif",i.fillText(t,0,60),i.fillText(e,199,60)}updateCanvas(){this.drawGeometryToCanvas()}toJSON(){const t=this.getAttributeName(),e=this.getOptions();return{parameters:[t,{gradient:[...e.gradient],blur:e.blur,radius:e.radius,weight:e.weight},this.vendorOptions_],deserializedMethod:"M.style.Heatmap.deserialize"}}static deserialize([t,e,i]){const r=t,n=eS(e),s=eS(i);return new Function(["attribute","options","vendorOptions"],"return new M.style.Heatmap(attribute, options, vendorOptions)")(r,n,s)}}yC.DEFAULT_OPTIONS={gradient:["#00f","#0ff","#0f0","#ff0","#f00"],blur:15,radius:10};var vC,xC,bC,wC,EC,SC,IC,CC,TC=yC,LC=function(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1};function MC(){}class OC{constructor(){OC.constructor_.apply(this,arguments)}setOrdinate(t,e,i){}size(){}getOrdinate(t,e){}getCoordinate(){if(1===arguments.length){}else if(2===arguments.length){}}getCoordinateCopy(t){}getDimension(){}getX(t){}expandEnvelope(t){}copy(){}getY(t){}toCoordinateArray(){}getClass(){return OC}get interfaces_(){return[MC]}}OC.constructor_=function(){},OC.X=0,OC.Y=1,OC.Z=2,OC.M=3;class RC{constructor(){RC.constructor_.apply(this,arguments)}create(){if(1===arguments.length){if(arguments[0]instanceof Array){}else if(LC(arguments[0],OC)){}}else if(2===arguments.length){}}getClass(){return RC}get interfaces_(){return[]}}function PC(t){this.message=t}RC.constructor_=function(){};class NC{constructor(){NC.constructor_.apply(this,arguments)}filter(t){}getClass(){return NC}get interfaces_(){return[]}}function AC(){}function FC(){}NC.constructor_=function(){};class kC{constructor(){kC.constructor_.apply(this,arguments)}static equalsWithTolerance(t,e,i){return Math.abs(t-e)<=i}getClass(){return kC}get interfaces_(){return[]}}function DC(t,e){this.low=0|e,this.high=0|t}function jC(){}function GC(){}function zC(t){this.name="RuntimeException",this.message=t,this.stack=(new Error).stack,Error.call(this,t)}kC.constructor_=function(){},DC.toBinaryString=function(t){for(var e="",i=2147483648;i>0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},jC.isNaN=t=>Number.isNaN(t),jC.isInfinite=t=>!Number.isFinite(t),jC.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(SC=2146435072,IC=new Float64Array(1),CC=new Int32Array(IC.buffer),jC.doubleToLongBits=function(t){IC[0]=t;var e=0|CC[0],i=0|CC[1];return(i&SC)===SC&&0!=(1048575&i)&&0!==e&&(e=0,i=2146959360),new DC(i,e)},jC.longBitsToDouble=function(t){return CC[0]=t.low,CC[1]=t.high,IC[0]}):(vC=1023,xC=Math.log2,bC=Math.floor,wC=Math.pow,EC=function(){for(var t=53;t>0;t--){var e=wC(2,t)-1;if(bC(xC(e))+1===t)return e}return 0}(),jC.doubleToLongBits=function(t){var e,i,r,n,s,o,a,l,h;if(t<0||1/t===Number.NEGATIVE_INFINITY?(o=1<<31,t=-t):o=0,0===t)return new DC(l=o,h=0);if(t===1/0)return new DC(l=2146435072|o,h=0);if(t!=t)return new DC(l=2146959360,h=0);if(n=0,h=0,(e=bC(t))>1)if(e<=EC)(n=bC(xC(e)))<=20?(h=0,l=e<<20-n&1048575):(h=e%(i=wC(2,r=n-20))<<32-r,l=e/i&1048575);else for(r=e,h=0;0!==(r=bC(i=r/2));)n++,h>>>=1,h|=(1&l)<<31,l>>>=1,i!==r&&(l|=524288);if(a=n+vC,s=0===e,e=t-e,n<52&&0!==e)for(r=0;;){if((i=2*e)>=1?(e=i-1,s?(a--,s=!1):(r<<=1,r|=1,n++)):(e=i,s?0==--a&&(n++,s=!1):(r<<=1,n++)),20===n)l|=r,r=0;else if(52===n){h|=r;break}if(1===i){n<20?l|=r<<20-n:n<52&&(h|=r<<52-n);break}}return l|=a<<20,new DC(l|=o,h)},jC.longBitsToDouble=function(t){var e,i,r,n,s=t.high,o=t.low;i=s&1<<31?-1:1,r=((2146435072&s)>>20)-vC,n=0,e=1<<19;for(var a=1;a<=20;a++)s&e&&(n+=wC(2,-a)),e>>>=1;for(e=1<<31,a=21;a<=52;a++)o&e&&(n+=wC(2,-a)),e>>>=1;if(-1023===r){if(0===n)return 0*i;r=-1022}else{if(1024===r)return 0===n?i/0:NaN;n+=1}return i*n*wC(2,r)}),zC.prototype=Object.create(Error.prototype),zC.prototype.constructor=Error;class BC extends zC{constructor(){super(),BC.constructor_.apply(this,arguments)}getClass(){return BC}get interfaces_(){return[]}}BC.constructor_=function(){if(0===arguments.length)zC.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];zC.constructor_.call(this,t)}};class UC{constructor(){UC.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)UC.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new BC("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];UC.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new BC:new BC(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];UC.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new BC("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return UC}get interfaces_(){return[]}}UC.constructor_=function(){};class VC{constructor(){VC.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=jC.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case VC.X:this.x=e;break;case VC.Y:this.y=e;break;case VC.Z:this.z=e;break;default:throw new PC("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],e=arguments[1];return!!kC.equalsWithTolerance(this.x,t.x,e)&&!!kC.equalsWithTolerance(this.y,t.y,e)}}getOrdinate(t){switch(t){case VC.X:return this.x;case VC.Y:return this.y;case VC.Z:return this.z}throw new PC("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||jC.isNaN(this.z)&&jC.isNaN(t.z))}equals(t){return t instanceof VC&&this.equals2D(t)}equalInZ(t,e){return kC.equalsWithTolerance(this.z,t.z,e)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return UC.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new VC(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+i*i+r*r)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*t+VC.hashCode(this.x))+VC.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return VC}get interfaces_(){return[AC,MC,FC]}}class qC{constructor(){qC.constructor_.apply(this,arguments)}static compare(t,e){return te?1:jC.isNaN(t)?jC.isNaN(e)?0:-1:jC.isNaN(e)?1:0}compare(t,e){var i=t,r=e,n=qC.compare(i.x,r.x);if(0!==n)return n;var s=qC.compare(i.y,r.y);return 0!==s?s:this._dimensionsToTest<=2?0:qC.compare(i.z,r.z)}getClass(){return qC}get interfaces_(){return[GC]}}qC.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)qC.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new PC("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},VC.DimensionalComparator=qC,VC.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)VC.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];VC.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];VC.constructor_.call(this,t,e,VC.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},VC.serialVersionUID=0x5cbf2c235c7e5800,VC.NULL_ORDINATE=jC.NaN,VC.X=0,VC.Y=1,VC.Z=2;class YC{constructor(){YC.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let n=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(n.x,s.x),r=Math.max(n.x,s.x);return!(i>e)&&(!(re)&&!(rt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&(t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy)}}intersects(){if(1===arguments.length){if(arguments[0]instanceof YC){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx)&&(!((t.x>e.x?t.x:e.x)this._maxy)&&!((t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof YC){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof VC){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new VC((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof VC){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof YC){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*(t=37*(t=37*t+VC.hashCode(this._minx))+VC.hashCode(this._maxx))+VC.hashCode(this._miny))+VC.hashCode(this._maxy)}getClass(){return YC}get interfaces_(){return[AC,FC]}}YC.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof VC){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof YC){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];this.init(t,e,i,r)}},YC.serialVersionUID=0x51845cd552189800;class WC{constructor(){WC.constructor_.apply(this,arguments)}isGeometryCollection(){return this.getTypeCode()===WC.TYPECODE_GEOMETRYCOLLECTION}getFactory(){return this._factory}getGeometryN(t){return this}getArea(){return 0}isRectangle(){return!1}equals(){if(arguments[0]instanceof WC){let t=arguments[0];return null!==t&&this.equalsTopo(t)}if(arguments[0]instanceof Object){let e=arguments[0];if(!(e instanceof WC))return!1;var t=e;return this.equalsExact(t)}}equalsExact(t){return this===t||this.equalsExact(t,0)}geometryChanged(){this.apply(WC.geometryChangedFilter)}geometryChangedAction(){this._envelope=null}equalsNorm(t){return null!==t&&this.norm().equalsExact(t.norm())}getLength(){return 0}getNumGeometries(){return 1}compareTo(){if(1===arguments.length){let e=arguments[0];var t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){let e=arguments[0],i=arguments[1];t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e,i)}}getUserData(){return this._userData}getSRID(){return this._SRID}getEnvelope(){return this.getFactory().toGeometry(this.getEnvelopeInternal())}checkNotGeometryCollection(t){if(t.getTypeCode()===WC.TYPECODE_GEOMETRYCOLLECTION)throw new PC("This method does not support GeometryCollection arguments")}equal(t,e,i){return 0===i?t.equals(e):t.distance(e)<=i}norm(){var t=this.copy();return t.normalize(),t}getPrecisionModel(){return this._factory.getPrecisionModel()}getEnvelopeInternal(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new YC(this._envelope)}setSRID(t){this._SRID=t}setUserData(t){this._userData=t}compare(t,e){for(var i=t.iterator(),r=e.iterator();i.hasNext()&&r.hasNext();){var n=i.next(),s=r.next(),o=n.compareTo(s);if(0!==o)return o}return i.hasNext()?1:r.hasNext()?-1:0}hashCode(){return this.getEnvelopeInternal().hashCode()}isGeometryCollectionOrDerived(){return this.getTypeCode()===WC.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===WC.TYPECODE_MULTIPOINT||this.getTypeCode()===WC.TYPECODE_MULTILINESTRING||this.getTypeCode()===WC.TYPECODE_MULTIPOLYGON}get interfaces_(){return[MC,AC,FC]}getClass(){return WC}static hasNonEmptyElements(t){for(var e=0;e0}getClass(){return KC}get interfaces_(){return[HC]}}KC.constructor_=function(){};class $C{constructor(){$C.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return $C}get interfaces_(){return[HC]}}$C.constructor_=function(){};class JC{constructor(){JC.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return JC}get interfaces_(){return[HC]}}function QC(){}function tT(){}function eT(t){this.message=t||""}function iT(){}function rT(t){this.message=t||""}function nT(t){this.message=t||""}function sT(){this.array_=[],arguments[0]instanceof tT&&this.addAll(arguments[0])}JC.constructor_=function(){},HC.Mod2BoundaryNodeRule=ZC,HC.EndPointBoundaryNodeRule=KC,HC.MultiValentEndPointBoundaryNodeRule=$C,HC.MonoValentEndPointBoundaryNodeRule=JC,HC.constructor_=function(){},HC.MOD2_BOUNDARY_RULE=new ZC,HC.ENDPOINT_BOUNDARY_RULE=new KC,HC.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new $C,HC.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new JC,HC.OGC_SFS_BOUNDARY_RULE=HC.MOD2_BOUNDARY_RULE,QC.prototype.hasNext=function(){},QC.prototype.next=function(){},QC.prototype.remove=function(){},tT.prototype.add=function(){},tT.prototype.addAll=function(){},tT.prototype.isEmpty=function(){},tT.prototype.iterator=function(){},tT.prototype.size=function(){},tT.prototype.toArray=function(){},tT.prototype.remove=function(){},eT.prototype=new Error,eT.prototype.name="IndexOutOfBoundsException",iT.prototype=Object.create(tT.prototype),iT.prototype.constructor=iT,iT.prototype.get=function(){},iT.prototype.set=function(){},iT.prototype.isEmpty=function(){},rT.prototype=new Error,rT.prototype.name="NoSuchElementException",nT.prototype=new Error,nT.prototype.name="OperationNotSupported",sT.prototype=Object.create(iT.prototype),sT.prototype.constructor=sT,sT.prototype.ensureCapacity=function(){},sT.prototype.interfaces_=[iT,tT],sT.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},sT.prototype.clear=function(){this.array_=[]},sT.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},sT.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},sT.prototype.iterator=function(){return new oT(this)},sT.prototype.get=function(t){if(t<0||t>=this.size())throw new eT;return this.array_[t]},sT.prototype.isEmpty=function(){return 0===this.array_.length},sT.prototype.size=function(){return this.array_.length},sT.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1)if(this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof VC){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0)if(this.get(t-1).equals2D(i))return null;if(ts&&(i=-1);for(t=n;t!==s;t+=i)this.add(e[t],r);return!0}}closeRing(){this.size()>0&&this.add(new VC(this.get(0)),!1)}getClass(){return aT}get interfaces_(){return[]}}aT.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},aT.coordArrayType=new Array(0).fill(null);class lT{constructor(){lT.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return jC.isInfinite(e)||jC.isNaN(e)?e:e/lT.LOG_10}static min(t,e,i,r){var n=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],r=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),r>t&&(t=r),t}}static average(t,e){return(t+e)/2}getClass(){return lT}get interfaces_(){return[]}}function hT(){}lT.constructor_=function(){},lT.LOG_10=Math.log(10),hT.arraycopy=(t,e,i,r,n)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class cT{constructor(){cT.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=lT.clamp(e,0,t.length);var r=(i=lT.clamp(i,-1,t.length))-e+1;i<0&&(r=0),e>=t.length&&(r=0),ir.length)return 1;if(0===i.length)return 0;var n=cT.compare(i,r);return cT.isEqualReversed(i,r)?0:n}OLDcompare(t,e){var i=t,r=e;if(i.lengthr.length)return 1;if(0===i.length)return 0;for(var n=cT.increasingDirection(i),s=cT.increasingDirection(r),o=n>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},ET.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,r,n=this.root_;do{if(i=n,(r=t.compareTo(n.key))<0)n=n.left;else{if(!(r>0)){var s=n.value;return n.value=e,s}n=n.right}}while(null!==n);var o={key:t,left:null,right:null,value:e,parent:i,color:0,getValue(){return this.value},getKey(){return this.key}};return r<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},ET.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;if(vT(t)==bT(vT(vT(t))))1==yT(e=wT(vT(vT(t))))?(xT(vT(t),0),xT(e,0),xT(vT(vT(t)),1),t=vT(vT(t))):(t==wT(vT(t))&&(t=vT(t),this.rotateLeft(t)),xT(vT(t),0),xT(vT(vT(t)),1),this.rotateRight(vT(vT(t))));else 1==yT(e=bT(vT(vT(t))))?(xT(vT(t),0),xT(e,0),xT(vT(vT(t)),1),t=vT(vT(t))):(t==bT(vT(t))&&(t=vT(t),this.rotateRight(t)),xT(vT(t),0),xT(vT(vT(t)),1),this.rotateLeft(vT(vT(t))))}this.root_.color=0},ET.prototype.values=function(){var t=new sT,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=ET.successor(e));)t.add(e.value);return t},ET.prototype.entrySet=function(){var t=new mT,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=ET.successor(e));)t.add(e);return t},ET.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},ET.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},ET.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},ET.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},ET.prototype.size=function(){return this.size_},ET.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class ST{constructor(){ST.constructor_.apply(this,arguments)}getClass(){return ST}get interfaces_(){return[]}}function IT(){}function CT(){this.array_=[],arguments[0]instanceof tT&&this.addAll(arguments[0])}ST.constructor_=function(){},IT.prototype=new fT,CT.prototype=new IT,CT.prototype.contains=function(t){for(var e=0,i=this.array_.length;et<=32&&t>=0||127==t,OT.toUpperCase=t=>t.toUpperCase();class RT{constructor(){RT.constructor_.apply(this,arguments)}static toDimensionSymbol(t){switch(t){case RT.FALSE:return RT.SYM_FALSE;case RT.TRUE:return RT.SYM_TRUE;case RT.DONTCARE:return RT.SYM_DONTCARE;case RT.P:return RT.SYM_P;case RT.L:return RT.SYM_L;case RT.A:return RT.SYM_A}throw new PC("Unknown dimension value: "+t)}static toDimensionValue(t){switch(OT.toUpperCase(t)){case RT.SYM_FALSE:return RT.FALSE;case RT.SYM_TRUE:return RT.TRUE;case RT.SYM_DONTCARE:return RT.DONTCARE;case RT.SYM_P:return RT.P;case RT.SYM_L:return RT.L;case RT.SYM_A:return RT.A}throw new PC("Unknown dimension symbol: "+t)}getClass(){return RT}get interfaces_(){return[]}}RT.constructor_=function(){},RT.P=0,RT.L=1,RT.A=2,RT.FALSE=-1,RT.TRUE=-2,RT.DONTCARE=-3,RT.SYM_FALSE="F",RT.SYM_TRUE="T",RT.SYM_DONTCARE="*",RT.SYM_P="0",RT.SYM_L="1",RT.SYM_A="2";class PT{constructor(){PT.constructor_.apply(this,arguments)}filter(t){}getClass(){return PT}get interfaces_(){return[]}}PT.constructor_=function(){};class NT{constructor(){NT.constructor_.apply(this,arguments)}filter(t,e){}isDone(){}isGeometryChanged(){}getClass(){return NT}get interfaces_(){return[]}}NT.constructor_=function(){};class AT extends WC{constructor(){super(),AT.constructor_.apply(this,arguments)}computeEnvelopeInternal(){for(var t=new YC,e=0;e=0;){var o=n.substring(0,s);r.add(o),s=(n=n.substring(s+i)).indexOf(e)}n.length>0&&r.add(n);for(var a=new Array(r.size()).fill(null),l=0;l0)for(var s=n;s0&&i.append(" ");for(var n=0;n0&&i.append(","),i.append(qT.toString(s.getOrdinate(r,n)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?WT.createClosedRing(t,e,4):e.getOrdinate(0,OC.X)===e.getOrdinate(i-1,OC.X)&&e.getOrdinate(0,OC.Y)===e.getOrdinate(i-1,OC.Y)?e:WT.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var r=t.create(i,e.getDimension()),n=e.size();WT.copy(e,0,r,0,n);for(var s=n;s0){var i=this._points.copy();WT.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?RT.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return WC.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return jT.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return WT.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;et?1:0},JT.isNaN=t=>Number.isNaN(t);class QT{constructor(){QT.constructor_.apply(this,arguments)}static sqr(t){return QT.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return QT.parse(t)}if("number"==typeof arguments[0]){return new QT(arguments[0])}}static sqrt(t){return QT.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;OT.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=i);){var h=t.charAt(e);if(e++,OT.isDigit(h)){var c=h-"0";s.selfMultiply(QT.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=JT.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var d=s,g=o-a-l;if(0===g)d=s;else if(g>0){var p=QT.TEN.pow(g);d=s.divide(p)}else if(g<0){p=QT.TEN.pow(-g);d=s.multiply(p)}return r?d.negate():d}static createNaN(){return new QT(jC.NaN,jC.NaN)}static copy(t){return new QT(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(i));return 10*Math.pow(10,r)<=e&&(r+=1),r}static stringOfChar(t,e){for(var i=new $T,r=0;r9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(QT.valueOf(h)).multiply(QT.TEN),c&&i.selfAdd(QT.TEN);var d=!0,g=QT.magnitude(i._hi);if(g<0&&Math.abs(g)>=a-l&&(d=!1),!d)break}return e[0]=r,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof QT){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof QT){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof QT){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof QT){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,r,n=null,s=null,o=null,a=null;return i=this._hi/l,a=(n=(o=QT.SPLIT*i)-(n=o-i))*(s=(a=QT.SPLIT*l)-(s=a-l))-(r=i*l)+n*(e=l-s)+(t=i-n)*s+t*e,a=i+(o=(this._hi-r-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof QT){let l=arguments[0];var t,e,i,r,n=null,s=null,o=null,a=null;return t=(i=this._hi/l._hi)-(n=(o=QT.SPLIT*i)-(n=o-i)),a=n*(s=(a=QT.SPLIT*l._hi)-(s=a-l._hi))-(r=i*l._hi)+n*(e=l._hi-s)+t*s+t*e,o=(this._hi-r-a+this._lo-i*l._lo)/l._hi,new QT(a=i+o,i-a+o)}if("number"==typeof arguments[0]){let t=arguments[0];return jC.isNaN(t)?QT.createNaN():QT.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return QT.valueOf(1);var e=new QT(this),i=QT.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2==1&&i.selfMultiply(e),(r/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return QT.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new QT(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof QT){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return QT.valueOf(0);if(this.isNegative())return QT.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=QT.valueOf(e),r=this.subtract(i.sqr())._hi*(.5*t);return i.add(r)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof QT){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,r=null,n=null,s=null;return r=(i=this._hi+o)-(n=i-this._hi),e=(s=(r=o-n+(this._hi-r))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,r=null,n=null,s=null;i=this._hi+c,o=this._lo+u,r=i-(n=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(n=(r=c-n+(this._hi-r))+o))+(n=(a=u-s+(this._lo-a))+(e=n+(i-t))),h=n+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof QT){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,r=null,n=null,s=null;i=(n=QT.SPLIT*this._hi)-this._hi,s=QT.SPLIT*l,i=n-i,t=this._hi-i,r=s-l;var o=(n=this._hi*l)+(s=i*(r=s-r)-n+i*(e=l-r)+t*r+t*e+(this._hi*h+this._lo*l)),a=s+(i=n-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return QT.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new QT(t,e)}negate(){return this.isNaN()?this:new QT(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof QT){let t=arguments[0];return t.isNaN()?QT.createNaN():QT.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return jC.isNaN(t)?QT.createNaN():QT.copy(this).selfMultiply(t,0)}}isNaN(){return jC.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=QT.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),r=e[0]+1,n=i;if("."===i.charAt(0))n="0"+i;else if(r<0)n="0."+QT.stringOfChar("0",-r)+i;else if(-1===i.indexOf(".")){var s=r-i.length;n=i+QT.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+n:n}reciprocal(){var t,e,i,r,n=null,s=null,o=null,a=null;t=(i=1/this._hi)-(n=(o=QT.SPLIT*i)-(n=o-i)),s=(a=QT.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(r=i*this._hi)-(a=n*(s=a-s)-r+n*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new QT(l,i-l+o)}toSciNotation(){if(this.isZero())return QT.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),r=QT.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var n="";i.length>1&&(n=i.substring(1));var s=i.charAt(0)+"."+n;return this.isNegative()?"-"+s+r:s+r}abs(){return this.isNaN()?QT.NaN:this.isNegative()?this.negate():new QT(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?QT.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return QT}get interfaces_(){return[FC,AC,MC]}}QT.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof QT){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];QT.constructor_.call(this,QT.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},QT.PI=new QT(3.141592653589793,12246467991473532e-32),QT.TWO_PI=new QT(6.283185307179586,24492935982947064e-32),QT.PI_2=new QT(1.5707963267948966,6123233995736766e-32),QT.E=new QT(2.718281828459045,14456468917292502e-32),QT.NaN=new QT(jC.NaN,jC.NaN),QT.EPS=123259516440783e-46,QT.SPLIT=134217729,QT.MAX_PRINT_DIGITS=32,QT.TEN=QT.valueOf(10),QT.ONE=QT.valueOf(1),QT.SCI_NOT_EXPONENT_CHAR="E",QT.SCI_NOT_ZERO="0.0E0";class tL{constructor(){tL.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var r=tL.orientationIndexFilter(t,e,i);if(r<=1)return r;var n=QT.valueOf(e.x).selfAdd(-t.x),s=QT.valueOf(e.y).selfAdd(-t.y),o=QT.valueOf(i.x).selfAdd(-e.x),a=QT.valueOf(i.y).selfAdd(-e.y);return n.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof QT){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let n=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=QT.valueOf(n),e=QT.valueOf(s),i=QT.valueOf(o),r=QT.valueOf(a);return t.multiply(r).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,r){var n=QT.valueOf(r.y).selfSubtract(i.y).selfMultiply(QT.valueOf(e.x).selfSubtract(t.x)),s=QT.valueOf(r.x).selfSubtract(i.x).selfMultiply(QT.valueOf(e.y).selfSubtract(t.y)),o=n.subtract(s),a=QT.valueOf(r.x).selfSubtract(i.x).selfMultiply(QT.valueOf(t.y).selfSubtract(i.y)),l=QT.valueOf(r.y).selfSubtract(i.y).selfMultiply(QT.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=QT.valueOf(t.x).selfAdd(QT.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=QT.valueOf(e.x).selfSubtract(t.x).selfMultiply(QT.valueOf(t.y).selfSubtract(i.y)),d=QT.valueOf(e.y).selfSubtract(t.y).selfMultiply(QT.valueOf(t.x).selfSubtract(i.x)),g=u.subtract(d).selfDivide(o).doubleValue(),p=QT.valueOf(i.y).selfAdd(QT.valueOf(r.y).selfSubtract(i.y).selfMultiply(g)).doubleValue();return new VC(c,p)}static orientationIndexFilter(t,e,i){var r=null,n=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=n-s;if(n>0){if(s<=0)return tL.signum(o);r=n+s}else{if(!(n<0))return tL.signum(o);if(s>=0)return tL.signum(o);r=-n-s}var a=tL.DP_SAFE_EPSILON*r;return o>=a||-o>=a?tL.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return tL}get interfaces_(){return[]}}tL.constructor_=function(){},tL.DP_SAFE_EPSILON=1e-15;class eL{constructor(){eL.constructor_.apply(this,arguments)}static index(t,e,i){return tL.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new PC("Ring has fewer than 4 points, so orientation cannot be determined");for(var i=t[0],r=0,n=1;n<=e;n++){var s=t[n];s.y>i.y&&(i=s,r=n)}var o=r;do{(o-=1)<0&&(o=e)}while(t[o].equals2D(i)&&o!==r);var a=r;do{a=(a+1)%e}while(t[a].equals2D(i)&&a!==r);var l=t[o],h=t[a];if(l.equals2D(i)||h.equals2D(i)||l.equals2D(h))return!1;var c=eL.index(l,i,h);return 0===c?l.x>h.x:c>0}getClass(){return eL}get interfaces_(){return[]}}eL.constructor_=function(){},eL.CLOCKWISE=-1,eL.RIGHT=eL.CLOCKWISE,eL.COUNTERCLOCKWISE=1,eL.LEFT=eL.COUNTERCLOCKWISE,eL.COLLINEAR=0,eL.STRAIGHT=eL.COLLINEAR;class iL{constructor(){iL.constructor_.apply(this,arguments)}getClass(){return iL}get interfaces_(){return[]}}iL.constructor_=function(){};class rL extends WC{constructor(){super(),rL.constructor_.apply(this,arguments)}computeEnvelopeInternal(){return this._shell.getEnvelopeInternal()}getCoordinates(){if(this.isEmpty())return[];for(var t=new Array(this.getNumPoints()).fill(null),e=-1,i=this._shell.getCoordinates(),r=0;r=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return WC.TYPENAME_LINEARRING}copy(){return new sL(this._points.copy(),this._factory)}getClass(){return sL}get interfaces_(){return[]}}sL.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof SL){let t=arguments[0],e=arguments[1];sL.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(LC(arguments[0],OC)&&arguments[1]instanceof SL){let t=arguments[0],e=arguments[1];XT.constructor_.call(this,t,e),this.validateConstruction()}},sL.MINIMUM_VALID_SIZE=4,sL.serialVersionUID=-0x3b229e262367a600;class oL extends AT{constructor(){super(),oL.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof WC){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return WC.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new YT(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new dL(t):new dL(t,e)}}getClass(){return gL}get interfaces_(){return[RC,FC]}}gL.constructor_=function(){},gL.serialVersionUID=-0x38e49fa6cf6f2e00,gL.instanceObject=new gL;var pL=Object.defineProperty;var fL=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&mL.call(this,t)}e||pL(t,"size",{get:vL});return t.constructor=i,i.prototype=t,i}({delete:function(t){this.has(t)&&(this._keys.splice(TT,1),this._values.splice(TT,1),this._itp.forEach((function(t){TT-1},has:function(t){return _L.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[TT]:void 0},set:function(t,e){return this.has(t)?this._values[TT]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return yL(this._itp,this._keys)},values:function(){return yL(this._itp,this._values)},entries:function(){return yL(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var r=i.next();if(r.done)break;t.call(e,r.value[1],r.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function mL(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}function _L(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(TT=t.length;TT--&&((i=t[TT])!==(r=e)&&(i==i||r==r)););else TT=t.indexOf(e);var i,r;return TT>-1}function yL(t,e,i){var r=[0],n=!1;return t.push(r),{next:function(){var s,o=r[0];return!n&&ot.add(e)),t},bL.prototype.size=function(){return this.map_.size()};class wL{constructor(){wL.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof wL))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new JT(i).compareTo(new JT(r))}getScale(){return this._scale}isFloating(){return this._modelType===wL.FLOATING||this._modelType===wL.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===wL.FLOATING?t="Floating":this._modelType===wL.FLOATING_SINGLE?t="Floating-Single":this._modelType===wL.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return jC.isNaN(t)||this._modelType===wL.FLOATING_SINGLE?t:this._modelType===wL.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof VC){let t=arguments[0];if(this._modelType===wL.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===wL.FLOATING?t=16:this._modelType===wL.FLOATING_SINGLE?t=6:this._modelType===wL.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return wL}get interfaces_(){return[FC,AC]}}class EL{constructor(){EL.constructor_.apply(this,arguments)}readResolve(){return EL.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return EL}get interfaces_(){return[FC]}}EL.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,EL.nameToTypeMap.put(t,this)},EL.serialVersionUID=-552860263173159e4,EL.nameToTypeMap=new bL,wL.Type=EL,wL.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=wL.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof EL){let t=arguments[0];this._modelType=t,t===wL.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=wL.FIXED,this.setScale(t)}else if(arguments[0]instanceof wL){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},wL.serialVersionUID=0x6bee6404e9a25c00,wL.FIXED=new EL("FIXED"),wL.FLOATING=new EL("FLOATING"),wL.FLOATING_SINGLE=new EL("FLOATING SINGLE"),wL.maximumPreciseValue=9007199254740992;class SL{constructor(){SL.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return gL.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new VC(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new VC(t.getMinX(),t.getMinY()),new VC(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new VC(t.getMinX(),t.getMinY()),new VC(t.getMinX(),t.getMaxY()),new VC(t.getMaxX(),t.getMaxY()),new VC(t.getMaxX(),t.getMinY()),new VC(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(LC(arguments[0],OC)){return new XT(arguments[0],this)}}}createMultiLineString(){if(0===arguments.length)return new FT(null,this);if(1===arguments.length){return new FT(arguments[0],this)}}buildGeometry(t){for(var e=null,i=!1,r=!1,n=t.iterator();n.hasNext();){var s=n.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof AT&&(r=!0)}if(null===e)return this.createGeometryCollection();if(i||r)return this.createGeometryCollection(SL.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof rL)return this.createMultiPolygon(SL.toPolygonArray(t));if(a instanceof XT)return this.createMultiLineString(SL.toLineStringArray(t));if(a instanceof ZT)return this.createMultiPoint(SL.toPointArray(t));UC.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof VC){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(LC(arguments[0],OC)){return new ZT(arguments[0],this)}}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(LC(arguments[0],OC)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof sL){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length){return new rL(arguments[0],arguments[1],this)}}getSRID(){return this._SRID}createGeometryCollection(){if(0===arguments.length)return new AT(null,this);if(1===arguments.length){return new AT(arguments[0],this)}}createGeometry(t){return new aL(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof WC&&LC(arguments[0],OC)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(LC(arguments[0],OC)){return new sL(arguments[0],this)}}}createMultiPolygon(){if(0===arguments.length)return new oL(null,this);if(1===arguments.length){return new oL(arguments[0],this)}}createMultiPoint(){if(0===arguments.length)return new nL(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){return new nL(arguments[0],this)}if(LC(arguments[0],OC)){let r=arguments[0];if(null===r)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(r.size()).fill(null),e=0;et.x+" "+t.y,point(t){return PL.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,r=t._geometries.length;i1||a<0||a>1)&&(n=!0)}}else n=!0;return n?lT.min(GL.pointToSegment(t,i,r),GL.pointToSegment(e,i,r),GL.pointToSegment(i,t,e),GL.pointToSegment(r,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var r=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),n=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/r;if(n<=0)return t.distance(e);if(n>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/r;return Math.abs(s)*Math.sqrt(r)}static pointToLinePerpendicular(t,e,i){var r=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),n=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/r;return Math.abs(n)*Math.sqrt(r)}static pointToSegmentString(t,e){if(0===e.length)throw new PC("Line array must contain at least one vertex");for(var i=t.distance(e[0]),r=0;rn?r:n;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=r>n?o:a)||t.equals(e)||(s=Math.max(o,a))}return UC.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var r=t.x-e.x,n=t.y-e.y,s=Math.sqrt(r*r+n*n);return UC.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new YT;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,r){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=r,this._result=this.computeIntersect(t,e,i,r)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map(()=>Array(2)),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2)),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new VC,this._intPt[1]=new VC,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},zL.DONT_INTERSECT=0,zL.DO_INTERSECT=1,zL.COLLINEAR=2,zL.NO_INTERSECTION=0,zL.POINT_INTERSECTION=1,zL.COLLINEAR_INTERSECTION=2;class BL extends zL{constructor(){super(),BL.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,r){var n=t,s=GL.pointToSegment(t,i,r),o=GL.pointToSegment(e,i,r);return o1e-4&&hT.out.println("Distance = "+n.distance(s))}intersectionWithNormalization(t,e,i,r){var n=new VC(t),s=new VC(e),o=new VC(i),a=new VC(r),l=new VC;this.normalizeToEnvCentre(n,s,o,a,l);var h=this.safeHCoordinateIntersection(n,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,r){var n=YC.intersects(t,e,i),s=YC.intersects(t,e,r),o=YC.intersects(i,r,t),a=YC.intersects(i,r,e);return n&&s?(this._intPt[0]=i,this._intPt[1]=r,zL.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,zL.COLLINEAR_INTERSECTION):n&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?zL.COLLINEAR_INTERSECTION:zL.POINT_INTERSECTION):n&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?zL.COLLINEAR_INTERSECTION:zL.POINT_INTERSECTION):s&&o?(this._intPt[0]=r,this._intPt[1]=t,!r.equals(t)||n||a?zL.COLLINEAR_INTERSECTION:zL.POINT_INTERSECTION):s&&a?(this._intPt[0]=r,this._intPt[1]=e,!r.equals(e)||n||o?zL.COLLINEAR_INTERSECTION:zL.POINT_INTERSECTION):zL.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,r,n){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xr.x?i.x:r.x,d=i.y>r.y?i.y:r.y,g=((s>h?s:h)+(ac?o:c)+(l0&&s>0||n<0&&s<0)return zL.NO_INTERSECTION;var o=eL.index(i,r,t),a=eL.index(i,r,e);return o>0&&a>0||o<0&&a<0?zL.NO_INTERSECTION:0===n&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,r):(0===n||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(r)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(r)?this._intPt[0]=e:0===n?this._intPt[0]=new VC(i):0===s?this._intPt[0]=new VC(r):0===o?this._intPt[0]=new VC(t):0===a&&(this._intPt[0]=new VC(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,r)),zL.POINT_INTERSECTION)}getClass(){return BL}get interfaces_(){return[]}}BL.constructor_=function(){};class UL{constructor(){UL.constructor_.apply(this,arguments)}static locatePointInRing(){if(arguments[0]instanceof VC&&LC(arguments[1],OC)){let n=arguments[1];for(var t=new UL(arguments[0]),e=new VC,i=new VC,r=1;rr&&(i=e.x,r=t.x),this._p.x>=i&&this._p.x<=r&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var n=eL.index(t,e,this._p);if(n===eL.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new rT;var t=this._parent.getGeometryN(this._index++);return t instanceof AT?(this._subcollectionIterator=new qL(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return qL}get interfaces_(){return[QC]}}qL.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class YL{constructor(){YL.constructor_.apply(this,arguments)}locateInPolygonRing(t,e){return e.getEnvelopeInternal().intersects(t)?VL.locateInRing(t,e.getCoordinates()):FL.EXTERIOR}intersects(t,e){return this.locate(t,e)!==FL.EXTERIOR}updateLocationInfo(t){t===FL.INTERIOR&&(this._isIn=!0),t===FL.BOUNDARY&&this._numBoundaries++}computeLocation(t,e){if(e instanceof ZT&&this.updateLocationInfo(this.locateOnPoint(t,e)),e instanceof XT)this.updateLocationInfo(this.locateOnLineString(t,e));else if(e instanceof rL)this.updateLocationInfo(this.locateInPolygon(t,e));else if(e instanceof FT)for(var i=e,r=0;r0||this._isIn?FL.INTERIOR:FL.EXTERIOR)}getClass(){return YL}get interfaces_(){return[]}}YL.constructor_=function(){if(this._boundaryRule=HC.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new PC("Rule must be non-null");this._boundaryRule=t}};class WL{constructor(){WL.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===RT.SYM_DONTCARE||(e===RT.SYM_TRUE&&(t>=0||t===RT.TRUE)||(e===RT.SYM_FALSE&&t===RT.FALSE||(e===RT.SYM_P&&t===RT.P||(e===RT.SYM_L&&t===RT.L||e===RT.SYM_A&&t===RT.A))))}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new WL(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===RT.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])||WL.isTrue(this._matrix[FL.INTERIOR][FL.BOUNDARY])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.INTERIOR])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.BOUNDARY]))&&this._matrix[FL.EXTERIOR][FL.INTERIOR]===RT.FALSE&&this._matrix[FL.EXTERIOR][FL.BOUNDARY]===RT.FALSE}isCoveredBy(){return(WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])||WL.isTrue(this._matrix[FL.INTERIOR][FL.BOUNDARY])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.INTERIOR])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.BOUNDARY]))&&this._matrix[FL.INTERIOR][FL.EXTERIOR]===RT.FALSE&&this._matrix[FL.BOUNDARY][FL.EXTERIOR]===RT.FALSE}set(){if(1===arguments.length){let r=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])&&this._matrix[FL.INTERIOR][FL.EXTERIOR]===RT.FALSE&&this._matrix[FL.BOUNDARY][FL.EXTERIOR]===RT.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===RT.A&&e===RT.A||t===RT.L&&e===RT.L||t===RT.L&&e===RT.A||t===RT.P&&e===RT.A||t===RT.P&&e===RT.L)&&(this._matrix[FL.INTERIOR][FL.INTERIOR]===RT.FALSE&&(WL.isTrue(this._matrix[FL.INTERIOR][FL.BOUNDARY])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.INTERIOR])||WL.isTrue(this._matrix[FL.BOUNDARY][FL.BOUNDARY])))}isOverlaps(t,e){return t===RT.P&&e===RT.P||t===RT.A&&e===RT.A?WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])&&WL.isTrue(this._matrix[FL.INTERIOR][FL.EXTERIOR])&&WL.isTrue(this._matrix[FL.EXTERIOR][FL.INTERIOR]):t===RT.L&&e===RT.L&&(1===this._matrix[FL.INTERIOR][FL.INTERIOR]&&WL.isTrue(this._matrix[FL.INTERIOR][FL.EXTERIOR])&&WL.isTrue(this._matrix[FL.EXTERIOR][FL.INTERIOR]))}isEquals(t,e){return t===e&&(WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])&&this._matrix[FL.INTERIOR][FL.EXTERIOR]===RT.FALSE&&this._matrix[FL.BOUNDARY][FL.EXTERIOR]===RT.FALSE&&this._matrix[FL.EXTERIOR][FL.INTERIOR]===RT.FALSE&&this._matrix[FL.EXTERIOR][FL.BOUNDARY]===RT.FALSE)}toString(){for(var t=new YT("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,RT.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new PC("Should be length 9: "+t);for(var e=0;e<3;e++)for(var i=0;i<3;i++)if(!WL.matches(this._matrix[e][i],t.charAt(3*e+i)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[FL.INTERIOR][FL.INTERIOR]===RT.FALSE&&this._matrix[FL.INTERIOR][FL.BOUNDARY]===RT.FALSE&&this._matrix[FL.BOUNDARY][FL.INTERIOR]===RT.FALSE&&this._matrix[FL.BOUNDARY][FL.BOUNDARY]===RT.FALSE}isCrosses(t,e){return t===RT.P&&e===RT.L||t===RT.P&&e===RT.A||t===RT.L&&e===RT.A?WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])&&WL.isTrue(this._matrix[FL.INTERIOR][FL.EXTERIOR]):t===RT.L&&e===RT.P||t===RT.A&&e===RT.P||t===RT.A&&e===RT.L?WL.isTrue(this._matrix[FL.INTERIOR][FL.INTERIOR])&&WL.isTrue(this._matrix[FL.EXTERIOR][FL.INTERIOR]):t===RT.L&&e===RT.L&&0===this._matrix[FL.INTERIOR][FL.INTERIOR]}getClass(){return WL}get interfaces_(){return[MC]}}WL.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map(()=>Array(3)),this.setAll(RT.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];WL.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof WL){let t=arguments[0];WL.constructor_.call(this),this._matrix[FL.INTERIOR][FL.INTERIOR]=t._matrix[FL.INTERIOR][FL.INTERIOR],this._matrix[FL.INTERIOR][FL.BOUNDARY]=t._matrix[FL.INTERIOR][FL.BOUNDARY],this._matrix[FL.INTERIOR][FL.EXTERIOR]=t._matrix[FL.INTERIOR][FL.EXTERIOR],this._matrix[FL.BOUNDARY][FL.INTERIOR]=t._matrix[FL.BOUNDARY][FL.INTERIOR],this._matrix[FL.BOUNDARY][FL.BOUNDARY]=t._matrix[FL.BOUNDARY][FL.BOUNDARY],this._matrix[FL.BOUNDARY][FL.EXTERIOR]=t._matrix[FL.BOUNDARY][FL.EXTERIOR],this._matrix[FL.EXTERIOR][FL.INTERIOR]=t._matrix[FL.EXTERIOR][FL.INTERIOR],this._matrix[FL.EXTERIOR][FL.BOUNDARY]=t._matrix[FL.EXTERIOR][FL.BOUNDARY],this._matrix[FL.EXTERIOR][FL.EXTERIOR]=t._matrix[FL.EXTERIOR][FL.EXTERIOR]}};class XL{constructor(){XL.constructor_.apply(this,arguments)}static isNorthern(t){return t===XL.NE||t===XL.NW}static isOpposite(t,e){return t!==e&&2===(t-e+4)%4}static commonHalfPlane(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var i=te?t:e)?3:i}static isInHalfPlane(t,e){return e===XL.SE?t===XL.SE||t===XL.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new PC("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?XL.NE:XL.SE:e>=0?XL.NW:XL.SW}if(arguments[0]instanceof VC&&arguments[1]instanceof VC){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new PC("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?XL.NE:XL.SE:e.y>=t.y?XL.NW:XL.SW}}getClass(){return XL}get interfaces_(){return[]}}XL.constructor_=function(){},XL.NE=0,XL.NW=1,XL.SW=2,XL.SE=3;class HL{constructor(){HL.constructor_.apply(this,arguments)}compareDirection(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrantthis.location.length){var e=new Array(3).fill(null);e[ZL.ON]=this.location[ZL.ON],e[ZL.LEFT]=FL.NONE,e[ZL.RIGHT]=FL.NONE,this.location=e}for(var i=0;i1&&t.append(FL.toLocationSymbol(this.location[ZL.LEFT])),t.append(FL.toLocationSymbol(this.location[ZL.ON])),this.location.length>1&&t.append(FL.toLocationSymbol(this.location[ZL.RIGHT])),t.toString()}setLocations(t,e,i){this.location[ZL.ON]=t,this.location[ZL.LEFT]=e,this.location[ZL.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t=t.getNumPoints()&&null===r)return null;var s=t.getCoordinate(n);null!==r&&r.segmentIndex===i.segmentIndex&&(s=r.coord);var o=new HL(t,i.coord,s,new $L(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,r){var n=i.segmentIndex;if(0===i.dist){if(0===n)return null;n--}var s=t.getCoordinate(n);null!==r&&r.segmentIndex>=n&&(s=r.coord);var o=new $L(t.getLabel());o.flip();var a=new HL(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let r=arguments[0];for(var t=new sT,e=r;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var r=t.getEdgeIntersectionList();r.addEndpoints();var n=r.iterator(),s=null,o=null;if(!n.hasNext())return null;var a=n.next();do{s=o,o=a,a=null,n.hasNext()&&(a=n.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return JL}get interfaces_(){return[]}}JL.constructor_=function(){};class QL{constructor(){QL.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){UC.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return QL}get interfaces_(){return[]}}QL.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class tM extends QL{constructor(){super(),tM.constructor_.apply(this,arguments)}isIncidentEdgeInResult(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1}isIsolated(){return 1===this._label.getGeometryCount()}getCoordinate(){return this._coord}print(t){t.println("node "+this._coord+" lbl: "+this._label)}computeIM(t){}computeMergedLocation(t,e){var i=FL.NONE;if(i=this._label.getLocation(e),!t.isNull(e)){var r=t.getLocation(e);i!==FL.BOUNDARY&&(i=r)}return i}setLabel(){if(2!==arguments.length||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return super.setLabel.apply(this,arguments);{let t=arguments[0],e=arguments[1];null===this._label?this._label=new $L(t,e):this._label.setLocation(t,e)}}getEdges(){return this._edges}mergeLabel(){if(arguments[0]instanceof tM){let t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof $L){let i=arguments[0];for(var t=0;t<2;t++){var e=this.computeMergedLocation(i,t);this._label.getLocation(t)===FL.NONE&&this._label.setLocation(t,e)}}}add(t){this._edges.insert(t),t.setNode(this)}setLabelBoundary(t){if(null===this._label)return null;var e=FL.NONE;null!==this._label&&(e=this._label.getLocation(t));var i=null;switch(e){case FL.BOUNDARY:i=FL.INTERIOR;break;case FL.INTERIOR:default:i=FL.BOUNDARY}this._label.setLocation(t,i)}getClass(){return tM}get interfaces_(){return[]}}tM.constructor_=function(){this._coord=null,this._edges=null;let t=arguments[0],e=arguments[1];this._coord=t,this._edges=e,this._label=new $L(0,FL.NONE)};class eM{constructor(){eM.constructor_.apply(this,arguments)}find(t){return this.nodeMap.get(t)}addNode(){if(arguments[0]instanceof VC){let e=arguments[0];return null===(t=this.nodeMap.get(e))&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}if(arguments[0]instanceof tM){let e=arguments[0];var t;return null===(t=this.nodeMap.get(e.getCoordinate()))?(this.nodeMap.put(e.getCoordinate(),e),e):(t.mergeLabel(e),t)}}print(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}}iterator(){return this.nodeMap.values().iterator()}values(){return this.nodeMap.values()}getBoundaryNodes(t){for(var e=new sT,i=this.iterator();i.hasNext();){var r=i.next();r.getLabel().getLocation(t)===FL.BOUNDARY&&e.add(r)}return e}add(t){var e=t.getCoordinate();this.addNode(e).add(t)}getClass(){return eM}get interfaces_(){return[]}}eM.constructor_=function(){this.nodeMap=new ET,this.nodeFact=null;let t=arguments[0];this.nodeFact=t};class iM extends zC{constructor(){if(1===arguments.length){let t=arguments[0];super(t),zC.call(this,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];super(iM.msgWithCoord(t,e)),this.name="TopologyException",this.pt=new VC(e)}}getCoordinate(){return this.pt}get interfaces_(){return[]}getClass(){return iM}static msgWithCoord(t,e){return null!==e?t+" [ "+e+" ]":t}}class rM{constructor(){rM.constructor_.apply(this,arguments)}locate(t){}getClass(){return rM}get interfaces_(){return[]}}rM.constructor_=function(){};class nM{constructor(){nM.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return FL.EXTERIOR;var i=e.getExteriorRing(),r=nM.locatePointInRing(t,i);if(r!==FL.INTERIOR)return r;for(var n=0;ne._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===aM.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return aM}get interfaces_(){return[AC]}}aM.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=aM.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=aM.INSERT,this._label=t,this._xValue=e,this._obj=i}},aM.INSERT=1,aM.DELETE=2;class lM{constructor(){lM.constructor_.apply(this,arguments)}getClass(){return lM}get interfaces_(){return[]}}lM.constructor_=function(){};const hM={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return hM.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?MT.sort(i,e):MT.sort(i);const r=t.iterator();for(let t=0,e=i.length;te||this._maxs?1:0}getClass(){return fM}get interfaces_(){return[GC]}}fM.constructor_=function(){},pM.NodeComparator=fM,pM.constructor_=function(){this._min=jC.POSITIVE_INFINITY,this._max=jC.NEGATIVE_INFINITY};class mM extends pM{constructor(){super(),mM.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return mM}get interfaces_(){return[]}}mM.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};class _M extends pM{constructor(){super(),_M.constructor_.apply(this,arguments)}buildExtent(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max)}query(t,e,i){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,i),null!==this._node2&&this._node2.query(t,e,i)}getClass(){return _M}get interfaces_(){return[]}}_M.constructor_=function(){this._node1=null,this._node2=null;let t=arguments[0],e=arguments[1];this._node1=t,this._node2=e,this.buildExtent(this._node1,this._node2)};class yM{constructor(){yM.constructor_.apply(this,arguments)}buildTree(){cM.sort(this._leaves,new pM.NodeComparator);for(var t=this._leaves,e=null,i=new sT;;){if(this.buildLevel(t,i),1===i.size())return i.get(0);e=t,t=i,i=e}}insert(t,e,i){if(null!==this._root)throw new IllegalStateException("Index cannot be added to once it has been queried");this._leaves.add(new mM(t,e,i))}query(t,e,i){this.init(),this._root.query(t,e,i)}buildRoot(){if(null!==this._root)return null;this._root=this.buildTree()}printNode(t){hT.out.println(AL.toLineString(new VC(t._min,this._level),new VC(t._max,this._level)))}init(){if(null!==this._root)return null;this.buildRoot()}buildLevel(t,e){this._level++,e.clear();for(var i=0;i=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof VC){let t=arguments[0];return eL.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof vM))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new BL;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof VC){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new VC(i);var t=this.projectionFactor(i),e=new VC;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof vM){let t=arguments[0];var i=this.projectionFactor(t.p0),r=this.projectionFactor(t.p1);if(i>=1&&r>=1)return null;if(i<=0&&r<=0)return null;var n=this.project(t.p0);i<0&&(n=this.p0),i>1&&(n=this.p1);var s=this.project(t.p1);return r<0&&(s=this.p0),r>1&&(s=this.p1),new vM(n,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return GL.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return vM.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,r=e*e+i*i;return r<=0?jC.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/r}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),r=jC.MAX_VALUE,n=null,s=this.closestPoint(t.p0);r=s.distance(t.p0),i[0]=s,i[1]=t.p0;var o=this.closestPoint(t.p1);(n=o.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||jC.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof vM){let t=arguments[0];return GL.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof VC){let t=arguments[0];return GL.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new VC;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^(Math.trunc(i)^Math.trunc(i>>32))}getClass(){return vM}get interfaces_(){return[AC,FC]}}vM.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)vM.constructor_.call(this,new VC,new VC);else if(1===arguments.length){let t=arguments[0];vM.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],r=arguments[3];vM.constructor_.call(this,new VC(t,e),new VC(i,r))}},vM.serialVersionUID=0x2d2172135f411c00;class xM{constructor(){xM.constructor_.apply(this,arguments)}static getGeometry(){if(1===arguments.length){let t=arguments[0];return t.getFactory().buildGeometry(xM.getLines(t))}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t.getFactory().buildGeometry(xM.getLines(t,e))}}static getLines(){if(1===arguments.length){let t=arguments[0];return xM.getLines(t,!1)}if(2===arguments.length){if(LC(arguments[0],tT)&&LC(arguments[1],tT)){let i=arguments[1];for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();xM.getLines(e,i)}return i}if(arguments[0]instanceof WC&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];var i=new sT;return t.apply(new xM(i,e)),i}if(arguments[0]instanceof WC&&LC(arguments[1],tT)){let t=arguments[0],e=arguments[1];return t instanceof XT?e.add(t):t.apply(new xM(e)),e}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&LC(arguments[0],tT)&&LC(arguments[1],tT)){let i=arguments[1],r=arguments[2];for(t=arguments[0].iterator();t.hasNext();){e=t.next();xM.getLines(e,i,r)}return i}if("boolean"==typeof arguments[2]&&arguments[0]instanceof WC&&LC(arguments[1],tT)){let t=arguments[1],e=arguments[2];return arguments[0].apply(new xM(t,e)),t}}}filter(t){if(this._isForcedToLineString&&t instanceof sL){var e=t.getFactory().createLineString(t.getCoordinateSequence());return this._lines.add(e),null}t instanceof XT&&this._lines.add(t)}setForceToLineString(t){this._isForcedToLineString=t}getClass(){return xM}get interfaces_(){return[NC]}}xM.constructor_=function(){if(this._lines=null,this._isForcedToLineString=!1,1===arguments.length){let t=arguments[0];this._lines=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._lines=t,this._isForcedToLineString=e}};class bM{constructor(){bM.constructor_.apply(this,arguments)}visitItem(t){this._items.add(t)}getItems(){return this._items}getClass(){return bM}get interfaces_(){return[gM]}}bM.constructor_=function(){this._items=new sT};class wM{constructor(){wM.constructor_.apply(this,arguments)}locate(t){var e=new UL(t),i=new EM(e);return this._index.query(t.y,t.y,i),e.getLocation()}getClass(){return wM}get interfaces_(){return[rM]}}class EM{constructor(){EM.constructor_.apply(this,arguments)}visitItem(t){var e=t;this._counter.countSegment(e.getCoordinate(0),e.getCoordinate(1))}getClass(){return EM}get interfaces_(){return[gM]}}EM.constructor_=function(){this._counter=null;let t=arguments[0];this._counter=t};class SM{constructor(){SM.constructor_.apply(this,arguments)}init(t){for(var e=xM.getLines(t).iterator();e.hasNext();){var i=e.next().getCoordinates();this.addLine(i)}}addLine(t){for(var e=1;e0||!e.coord.equals2D(r);n||i--;var s=new Array(i).fill(null),o=0;s[o++]=new VC(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return n&&(s[o]=e.coord),new OM(s,new $L(this.edge._label))}add(t,e,i){var r=new IM(t,e,i),n=this._nodeMap.get(r);return null!==n?n:(this._nodeMap.put(r,r),r)}isIntersection(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1}getClass(){return CM}get interfaces_(){return[]}}CM.constructor_=function(){this._nodeMap=new ET,this.edge=null;let t=arguments[0];this.edge=t};class TM{constructor(){TM.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(r=1),this._depth[t][i]=r}}}getDelta(t){return this._depth[t][ZL.RIGHT]-this._depth[t][ZL.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?FL.EXTERIOR:FL.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let r=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=r.getLocation(t,e);i!==FL.EXTERIOR&&i!==FL.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=MM.depthAtLocation(i):this._depth[t][e]+=MM.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===FL.INTERIOR&&this._depth[t][e]++}}getClass(){return MM}get interfaces_(){return[]}}MM.constructor_=function(){this._depth=Array(2).fill().map(()=>Array(3));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=MM.NULL_VALUE},MM.NULL_VALUE=-1;class OM extends QL{constructor(){super(),OM.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof WL&&arguments[0]instanceof $L))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,ZL.ON),t.getLocation(1,ZL.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,ZL.LEFT),t.getLocation(1,ZL.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,ZL.RIGHT),t.getLocation(1,ZL.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new OM(t,$L.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof OM))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,r=!0,n=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){OM.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new LM(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new YC;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;e=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,r=t.iterator();r.hasNext();){var n=r.next();e[i++]=n.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===FL.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var r=cT.removeRepeatedPoints(t.getCoordinates());if(r.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=r[0],null;var n=e,s=i;eL.isCCW(r)&&(n=i,s=e);var o=new OM(r,new $L(this._argIndex,FL.BOUNDARY,n,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,r[0],FL.BOUNDARY)}insertPoint(t,e,i){var r=this._nodes.addNode(e),n=r.getLabel();null===n?r._label=new $L(t,i):n.setLocation(t,i)}createEdgeSetIntersector(){return new dM}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.eiList.iterator();n.hasNext();){var s=n.next();this.addSelfIntersectionNode(t,s.coord,r)}}add(){if(!(1===arguments.length&&arguments[0]instanceof WC))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof oL&&(this._useBoundaryDeterminationRule=!1),t instanceof rL)this.addPolygon(t);else if(t instanceof XT)this.addLineString(t);else if(t instanceof ZT)this.addPoint(t);else if(t instanceof nL)this.addCollection(t);else if(t instanceof FT)this.addCollection(t);else if(t instanceof oL)this.addCollection(t);else{if(!(t instanceof AT))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new wM(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof XT){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return AM}get interfaces_(){return[]}}AM.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new bL,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new YL,2===arguments.length){let t=arguments[0],e=arguments[1];AM.constructor_.call(this,t,e,HC.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};class FM extends HL{constructor(){super(),FM.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();){e.next().print(t),t.println()}}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,r=!1,n=this.iterator();n.hasNext();){(s=n.next().getLabel().getLocation(t))===FL.BOUNDARY&&i++,s===FL.INTERIOR&&(r=!0)}var s=FL.NONE;r&&(s=FL.INTERIOR),i>0&&(s=AM.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var r=i.next();if(r.getLabel().isArea()){var n=r.getLabel().getLocation(t,e);if(n===FL.INTERIOR)return this._label.setLocation(t,e,FL.INTERIOR),null;n===FL.EXTERIOR&&this._label.setLocation(t,e,FL.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,ZL.LEFT),this.computeLabelSide(t,ZL.RIGHT)}updateIM(t){OM.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();){i.next().getLabel().isArea()&&(e=!0)}this._label=e?new $L(FL.NONE,FL.NONE,FL.NONE):new $L(FL.NONE);for(var r=0;r<2;r++)this.computeLabelOn(r,t),e&&this.computeLabelSides(r)}getClass(){return FM}get interfaces_(){return[]}}FM.constructor_=function(){if(this._edgeEnds=new sT,1===arguments.length){let t=arguments[0];FM.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];HL.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new $L(t.getLabel())),this.insert(t)}};class kM extends sM{constructor(){super(),kM.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();){e.next().updateIM(t)}}insert(t){var e=this._edgeMap.get(t);null===e?(e=new FM(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return kM}get interfaces_(){return[]}}kM.constructor_=function(){};class DM extends tM{constructor(){super(),DM.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return DM}get interfaces_(){return[]}}DM.constructor_=function(){let t=arguments[0],e=arguments[1];tM.constructor_.call(this,t,e)};class jM extends PM{constructor(){super(),jM.constructor_.apply(this,arguments)}createNode(t){return new DM(t,new kM)}getClass(){return jM}get interfaces_(){return[]}}jM.constructor_=function(){};class GM{constructor(){GM.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),r=this._arg[1].getGeometry().getDimension(),n=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===r?n&&e.setAtLeast("212101212"):2===i&&1===r?(n&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===r?(n&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===r&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var r=i.next();r.isIsolated()&&(this.labelIsolatedEdge(r,e,this._arg[e].getGeometry()),this._isolatedEdges.add(r))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var r=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,r)}else t.getLabel().setAllLocations(e,FL.EXTERIOR)}computeIM(){var t=new WL;if(t.set(FL.EXTERIOR,FL.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new JL,r=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(r);var n=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(n),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().computeLabelling(this._arg)}}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.getEdgeIntersectionList().iterator();n.hasNext();){var s=n.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(r===FL.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,FL.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),r=i.getLabel().getLocation(t),n=i.getEdgeIntersectionList().iterator();n.hasNext();){var s=n.next(),o=this._nodes.addNode(s.coord);r===FL.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,FL.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();UC.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();){e.next().updateIM(t)}for(var i=this._nodes.iterator();i.hasNext();){var r=i.next();r.updateIM(t),r.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(FL.INTERIOR,FL.EXTERIOR,e.getDimension()),t.set(FL.BOUNDARY,FL.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(FL.EXTERIOR,FL.INTERIOR,i.getDimension()),t.set(FL.EXTERIOR,FL.BOUNDARY,i.getBoundaryDimension()))}getClass(){return GM}get interfaces_(){return[]}}GM.constructor_=function(){this._li=new BL,this._ptLocator=new YL,this._arg=null,this._nodes=new eM(new jM),this._im=null,this._isolatedEdges=new sT,this._invalidPoint=null;let t=arguments[0];this._arg=t};class zM{constructor(){zM.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return zM}get interfaces_(){return[]}}zM.constructor_=function(){if(this._li=new BL,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new AM(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];zM.constructor_.call(this,t,e,HC.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new AM(0,t,i),this._arg[1]=new AM(1,e,i)}};class BM{constructor(){BM.constructor_.apply(this,arguments)}static contains(t,e){return new BM(t).contains(e)}isContainedInBoundary(t){if(t instanceof rL)return!1;if(t instanceof ZT)return this.isPointContainedInBoundary(t);if(t instanceof XT)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var r=t;t=e,e=r}var n=!1;return e.y>t.y&&(n=!0),n?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return UM}get interfaces_(){return[]}}UM.constructor_=function(){this._li=new BL,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new VC(t.getMinX(),t.getMinY()),this._diagUp1=new VC(t.getMaxX(),t.getMaxY()),this._diagDown0=new VC(t.getMinX(),t.getMaxY()),this._diagDown1=new VC(t.getMaxX(),t.getMinY())};class VM{constructor(){VM.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return YM}get interfaces_(){return[]}}YM.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class WM extends VM{constructor(){super(),WM.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof rL))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new VC,r=0;r<4;r++)if(this._rectSeq.getCoordinate(r,i),e.contains(i)&&nM.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return WM}get interfaces_(){return[]}}WM.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class XM extends VM{constructor(){super(),XM.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=xM.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&(!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new HM(t,e).getIntersectionMatrix().isCovers())))}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return qM.intersects(t,e);if(e.isRectangle())return qM.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&(!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?BM.contains(t,e):new HM(t,e).getIntersectionMatrix().isContains())))}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return HM}get interfaces_(){return[]}}HM.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];zM.constructor_.call(this,t,e),this._relate=new GM(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];zM.constructor_.call(this,t,e,i),this._relate=new GM(this._arg)}};const ZM=t=>{let e=t,i=[];return e instanceof wf?i=[...e.getFeatures().map(t=>t.getGeometry())]:(vE(e)||(e=[e]),i=e.map(t=>{let e;return t instanceof pS?e=t.getGeometry():wE(t)&&(e=t),e})),i},KM=(t,e)=>{let i="";const r=new zS;return e.forEach((e,n)=>{0!==n&&(i+=" OR ");const s=e;"point"===s.type.toLowerCase()&&(s.coordinates.length=2);const o=r.write(s);i+=`${t}({{geometryName}}, ${o})`}),i},$M=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"],JM="enterfullscreen",QM="leavefullscreen";function tO(t){const e=t.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&t.fullscreenEnabled)}function eO(t){return!(!t.webkitIsFullScreen&&!t.fullscreenElement)}function iO(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()}var rO=class extends qo{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.on,this.once,this.un,this.keys_=void 0!==t.keys&&t.keys,this.source_=t.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==t.className?t.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==t.activeClassName?t.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==t.inactiveClassName?t.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const e=void 0!==t.label?t.label:"⤢";this.labelNode_="string"==typeof e?document.createTextNode(e):e;const i=void 0!==t.labelActive?t.labelActive:"×";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const r=t.tipLabel?t.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=r,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(ns.a.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=this.cssClassName_+" ol-unselectable ol-control",this.element.appendChild(this.button_)}handleClick_(t){t.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const t=this.getMap();if(!t)return;const e=t.getOwnerDocument();if(tO(e))if(eO(e))!function(t){t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()}(e);else{let i;i=this.source_?"string"==typeof this.source_?e.getElementById(this.source_):this.source_:t.getTargetElement(),this.keys_?function(t){t.webkitRequestFullscreen?t.webkitRequestFullscreen():iO(t)}(i):iO(i)}}handleFullScreenChange_(){const t=this.getMap();if(!t)return;const e=this.isInFullscreen_;this.isInFullscreen_=eO(t.getOwnerDocument()),e!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Object(kn.h)(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(JM)):(Object(kn.h)(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(QM)),t.updateSize())}setClassName_(t,e){e?(t.classList.remove(...this.inactiveClassName_),t.classList.add(...this.activeClassName_)):(t.classList.remove(...this.activeClassName_),t.classList.add(...this.inactiveClassName_))}setMap(t){const e=this.getMap();e&&e.removeChangeListener(Ms,this.boundHandleMapTargetChange_),super.setMap(t),this.handleMapTargetChange_(),t&&t.addChangeListener(Ms,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const t=this.documentListeners_;for(let e=0,i=t.length;e=0;e--)n.push(r[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:n}}};function aO(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,r=lO(e),n=function(t,e){const i=[],r=[],n=[];let s,o;for(s=0,o=t.length;s=0;s--){const i=r[s][0];if(Object(pt.h)(new yo(i).getExtent(),new yo(t).getExtent())){r[s].push(t),e=!0;break}}e||r.push([t.reverse()])}return r}(e.rings,r);1===n.length?(i="Polygon",t=Object.assign({},t,{rings:n[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:n}))}return e_((0,sO[i])(t),!1,e)}function lO(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function hO(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function cO(t,e){return(0,oO[t.getType()])(e_(t,!0,e),e)}var uO=class extends Ib{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const r=t,n=aO(r.geometry,e),s=new Zh;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(n),r.attributes){s.setProperties(r.attributes,!0);const t=r.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],r=t.features;for(let n=0,s=r.length;n1,r=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],n=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...r],formats:[...e.formats,...n],qualities:[...e.qualities,...s]}},nR[QO]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],r=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:r}};var sR=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e0&&"string"==typeof this.imageInfo.profile[0]&&iR.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?tR.none.none:tR[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const r=void 0===i?void 0:nR[i](this);return void 0!==r?{url:r.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:r.sizes,format:void 0!==e.format&&r.formats.includes(e.format)?e.format:void 0!==r.preferredFormat?r.preferredFormat:"jpg",supports:r.supports,quality:e.quality&&r.qualities.includes(e.quality)?e.quality:r.qualities.includes("native")?"native":"default",resolutions:Array.isArray(r.resolutions)?r.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:r.tileSize}:void 0}};const oR=[null],aR=L(oR,{nd:function(t,e){e[e.length-1].ndrefs.push(t.getAttribute("ref"))},tag:cR}),lR=L(oR,{node:function(t,e){const i=e[0],r=e[e.length-1],n=t.getAttribute("id"),s=[parseFloat(t.getAttribute("lon")),parseFloat(t.getAttribute("lat"))];r.nodes[n]=s;const o=R({tags:{}},hR,t,e);if(!Object(Fn.b)(o.tags)){const t=new xo(s);e_(t,!1,i);const e=new Zh(t);void 0!==n&&e.setId(n),e.setProperties(o.tags,!0),r.features.push(e)}},way:function(t,e){const i=R({id:t.getAttribute("id"),ndrefs:[],tags:{}},aR,t,e);e[e.length-1].ways.push(i)}});const hR=L(oR,{tag:cR});function cR(t,e){e[e.length-1].tags[t.getAttribute("k")]=t.getAttribute("v")}var uR=class extends r_{constructor(){super(),this.dataProjection=Object(h.o)("EPSG:4326")}readFeaturesFromNode(t,e){if(e=this.getReadOptions(t,e),"osm"==t.localName){const i=R({nodes:{},ways:[],features:[]},lR,t,[e]);for(let t=0;t>1):i>>1}return e}(t);for(let t=0,r=i.length;t=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}var yR=class extends xS{constructor(t){super(),t=t||{},this.dataProjection=Object(h.o)("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new Zh(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=Ks(this.geometryLayout_),r=pR(t,i,this.factor_);dR(r,0,r.length,i,r);const n=uo(r,0,r.length,i);return e_(new rc(n,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();return i?this.writeGeometryText(i,e):(Object(os.a)(!1,40),"")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=e_(t,!0,this.adaptOptions(e))).getFlatCoordinates(),r=t.getStride();return dR(i,0,i.length,r,i),gR(i,r,this.factor_)}};const vR={Point:function(t,e,i){const r=t.coordinates;e&&i&&SR(r,e,i);return new xo(r)},LineString:function(t,e){const i=xR(t.arcs,e);return new rc(i)},Polygon:function(t,e){const i=[];for(let r=0,n=t.arcs.length;r0&&i.pop(),r>=0){const t=e[r];for(let e=0,r=t.length;e=0;--e)i.push(t[e].slice(0))}return i}function bR(t,e,i,r,n,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t0,i=this.readUint32(e),r=Math.floor((268435455&i)/1e3),n=Boolean(2147483648&i)||1===r||3===r,s=Boolean(1073741824&i)||2===r||3===r,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",n?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=n,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case CR:return this.readPoint();case TR:return this.readLineString();case LR:case FR:return this.readPolygon();case MR:return this.readMultiPoint();case OR:return this.readMultiLineString();case RR:case NR:case AR:return this.readMultiPolygon();case PR:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),r=[];for(let n=0;n({[e]:t[i]})));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;it+e[0],0),e=new ArrayBuffer(t),i=new DataView(e);let r=0;return this.writeQueue_.forEach(t=>{switch(t[0]){case 1:i.setUint8(r,t[1]);break;case 4:i.setUint32(r,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(r,t[1],this.isLittleEndian_)}r+=t[0]}),e}}function jR(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;inew Zh({geometry:t}))}readGeometry(t,e){const i=jR(t);if(!i)return null;const r=new kR(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,e_(r,!1,e)}readProjection(t){const e=this.viewCache_||jR(t);if(!e)return;const i=new kR(e);return i.readWkbHeader(),i.getSrid()&&Object(h.o)("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new fc(t.map(t=>t.getGeometry())),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new DR({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let r=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&Object(h.o)(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(r=Number(e.substring(5)))}}i.writeGeometry(e_(t,!0,e),r);const n=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map(t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase()).join("")}(n):n}};var zR=class extends r_{constructor(t){super(),t=t||{},this.featureNS_="http://mapserver.gis.umn.edu/mapserver",this.gmlFormat_=new c_,this.layers_=t.layers?t.layers:null}getLayers(){return this.layers_}setLayers(t){this.layers_=t}readFeatures_(t,e){t.setAttribute("namespaceURI",this.featureNS_);const i=t.localName;let r=[];if(0===t.childNodes.length)return r;if("msGMLOutput"==i)for(let i=0,n=t.childNodes.length;i0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new UR(BR,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[Object(is.a)(e,ns.a.DROP,this.handleDrop,this),Object(is.a)(e,ns.a.DRAGENTER,this.handleStop,this),Object(is.a)(e,ns.a.DRAGOVER,this.handleStop,this),Object(is.a)(e,ns.a.DROP,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(is.c),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!pa(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}};const YR="drawstart",WR="drawend",XR="drawabort";class HR extends sn.a{constructor(t,e){super(t),this.feature=e}}function ZR(t,e){return Object(Fs.h)(t[0],t[1],e[0],e[1])}function KR(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function $R(t,e,i){let r,n;eo){return ZR(rP(t,r),rP(t,n))}let a=0;if(r=i?r-=i:r<0&&(r+=i);let s=r+1;s>=i&&(s-=i);const o=t[r],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*n,l+(h[1]-l)*n]}function nP(){const t=pg();return function(e,i){return t[e.getGeometry().getType()]}}var sP=class extends ea{constructor(t){const e=t;e.stopDown||(e.stopDown=un.a),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:un.b,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const r=e||new _c([NaN,NaN]),n=Object(h.l)(t[0],i),s=Object(vn.l)(n,Object(h.l)(t[t.length-1],i));r.setCenterAndRadius(n,Math.sqrt(s),this.geometryLayout_);const o=Object(h.s)();return o&&r.transform(i,o),r};else{let e;"Point"===t?e=xo:"LineString"===t?e=rc:"Polygon"===t&&(e=No),i=function(i,r,n){return r?"Polygon"===t?i[0].length?r.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):r.setCoordinates([],this.geometryLayout_):r.setCoordinates(i,this.geometryLayout_):r=new e(i,this.geometryLayout_),r}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new Lp({source:new Ed({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:nP(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:ua,this.freehandCondition_,t.freehand?this.freehandCondition_=aa:this.freehandCondition_=t.freehandCondition?t.freehandCondition:da,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(Zo,this.updateState_)}setTrace(t){let e;e=t?!0===t?aa:t:ha,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===ns.a.CONTEXTMENU&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===ps.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===ps.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===ps.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===ps.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===ps.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===ps.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===ps.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(()=>{this.handlePointerMove_(new gs(ps.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))},this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),r=e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_]),n=Object(pt.c)([i,r]),s=this.traceSource_.getFeaturesInExtent(n);if(0===s.length)return;const o=function(t,e){const i=[];for(let r=0;rt.endIndex||!i&&et.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const r=[];if(e=s;--e)r.push(KR(t.coordinates,e))}r.length&&this.appendCoordinates(r)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Object(vn.f)(e.startPx,t.pixel)i.startIndex?hi.startIndex&&(h-=r.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=rP(h.coordinates,l),n=i.getPixelFromCoordinate(t);Object(vn.f)(n,e.startPx)>r&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,r=l;if(ithis.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let r=!1,n=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)r=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;r=t[0].length>this.minPoints_,n=[t[0][0],t[0][t[0].length-2]],n=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(r){const e=this.getMap();for(let r=0,s=n.length;r=this.maxPoints_&&(this.freehand_?n.pop():r=!0),n.push(t.slice()),this.geometryFunction_(n,e,i)):"Polygon"===s&&(n=this.sketchCoords_[0],n.length>=this.maxPoints_&&(this.freehand_?n.pop():r=!0),n.push(t.slice()),r&&(this.finishCoordinate_=n[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),r&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),r=this.mode_;for(let n=0;n=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===r){t=this.sketchCoords_[0],t.splice(-2,1);const r=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}r.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),r=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,r)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,r),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new $h([e])):"MultiLineString"===this.type_?t.setGeometry(new sc([e])):"MultiPolygon"===this.type_&&t.setGeometry(new lc([e])),this.dispatchEvent(new HR(WR,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new HR(XR,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let r;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)r=this.sketchCoords_;else{if("Polygon"!==e)return;r=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&r.shift(),r.pop();for(let e=0;en?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let r=this.snapToVertex_(e,i);r||(r=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(r)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(Fo(t)):e.setGeometry(void 0):(e=new Zh(t?Fo(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new Zh(new xo(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=ps.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,r=this.getExtentInternal();let n=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==r[0]?e=r[2]:t[0]==r[2]&&(e=r[0]),t[1]==r[1]?i=r[3]:t[1]==r[3]&&(i=r[1]),null!==e&&null!==i?[e,i]:null};if(n&&r){const t=n[0]==r[0]||n[0]==r[2]?n[0]:null,e=n[1]==r[1]||n[1]==r[3]?n[1]:null;null!==t&&null!==e?this.pointerHandler_=cP(s(n)):null!==t?this.pointerHandler_=uP(s([t,r[1]]),s([t,r[3]])):null!==e&&(this.pointerHandler_=uP(s([r[0],e]),s([r[2],e])))}else n=i.getCoordinateFromPixelInternal(e),this.setExtent([n[0],n[1],n[0],n[1]]),this.pointerHandler_=cP(n);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==Object(pt.u)(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return Object(h.x)(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new aP(this.extent_))}};function gP(t){return parseFloat(t)}function pP(t){return function(t){return Object(Fs.k)(t,5)}(t).toString()}function fP(t,e){return!isNaN(t)&&t!==gP(pP(e))}var mP=class extends Jo{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,params:["x","y","z","r","l"],replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.params_=t.params.reduce((t,e)=>(t[e]=!0,t),{}),this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this)}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){e in this.params_&&t.set(this.getParamName_(e),i)}delete_(t,e){e in this.params_&&t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(Object(is.a)(t,Ss,this.updateUrl_,this),Object(is.a)(t.getLayerGroup(),ns.a.CHANGE,this.updateUrl_,this),Object(is.a)(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t=0;--t){const r=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===r&&this.dragSegments_.splice(t,1);e.remove(r)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),r={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),r)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let r=0,n=i.length;r=0;--t)this.insertVertex_(n[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],r=i.geometry;if("Circle"===r.getType()){const e=r.getCenter(),n=i.featureSegments[0],s=i.featureSegments[1];n.segment[0]=e,n.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(Object(pt.n)(e),n);let o=r;const a=Object(h.s)();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=ko(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(Object(pt.c)(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new bP(xP,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const r=i||e.getCoordinateFromPixel(t),n=e.getView().getProjection(),s=function(t,e){return EP(r,t,n)-EP(r,e,n)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,(t,e,i)=>{const r=i||t.getGeometry();if("Point"===r.getType()&&t instanceof Zh&&this.features_.getArray().includes(t)){a=r;const e=a.getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:a,segment:[e,e]}]}return!0},{layerFilter:i})}if(!o){const t=Object(h.m)(Object(pt.n)(r,_P),n),i=e.getView().getResolution()*this.pixelTolerance_,s=Object(h.x)(Object(pt.d)(t,i,_P),n);o=this.rBush_.getInExtent(s)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=SP(r,i,n);const c=e.getPixelFromCoordinate(h);let u=Object(vn.f)(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[Object(dn.b)(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-r[0],this.delta_[1]=h[1]-r[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const r=e.getPixelFromCoordinate(l[0]),n=e.getPixelFromCoordinate(l[1]),s=Object(vn.l)(c,r),a=Object(vn.l)(c,n);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const d={};d[Object(dn.b)(i.geometry)]=!0;for(let e=1,i=o.length;e=0;--o)n=t[o],u=n[0],d=Object(dn.b)(u.feature),u.depth&&(d+="-"+u.depth.join("-")),d in e||(e[d]={}),0===n[1]?(e[d].right=u,e[d].index=u.index):1==n[1]&&(e[d].left=u,e[d].index=u.index+1);for(d in e){switch(c=e[d].right,l=e[d].left,a=e[d].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,r=s.getCoordinates(),i=r,g=!1,s.getType()){case"MultiLineString":r[u.depth[0]].length>2&&(r[u.depth[0]].splice(a,1),g=!0);break;case"LineString":r.length>2&&(r.splice(a,1),g=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),g=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(g){this.setGeometryCoordinates_(s,r);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(Object(pt.c)(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return g}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,r){this.rBush_.forEachInExtent(t.getExtent(),(function(n){n.geometry===t&&(void 0===i||void 0===n.depth||Object(u.c)(n.depth,i))&&n.index>e&&(n.index+=r)}))}};function TP(t){return t.feature?t.feature:t.element?t.element:void 0}const LP=[];var MP=class extends ea{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=un.b),e.stopDown||(e.stopDown=un.a),super(e),this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new ad,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=Object(dn.b)(t),r=t.getGeometry();if(r){const e=this.GEOMETRY_SEGMENTERS_[r.getType()];if(e){this.indexedFeaturesExtents_[i]=r.getExtent(Object(pt.k)());const n=[];if(e(n,r),1===n.length)this.rBush_.insert(Object(pt.c)(n[0]),{feature:t,segment:n[0]});else if(n.length>1){const e=n.map(t=>Object(pt.c)(t)),i=n.map(e=>({feature:t,segment:e}));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=Object(is.a)(t,ns.a.CHANGE,this.handleFeatureChange_,this))}forEachFeatureAdd_(t){this.addFeature(t)}forEachFeatureRemove_(t){this.removeFeature(t)}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel),super.handleEvent(t)}handleFeatureAdd_(t){const e=TP(t);this.addFeature(e)}handleFeatureRemove_(t){const e=TP(t);this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=Object(dn.b)(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,r=Object(dn.b)(t),n=this.indexedFeaturesExtents_[r];if(n){const e=this.rBush_,i=[];e.forEachInExtent(n,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(Object(is.c)(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,r=this.getFeatures_();e&&(i.forEach(is.c),i.length=0,r.forEach(this.forEachFeatureRemove_.bind(this))),super.setMap(t),t&&(this.features_?i.push(Object(is.a)(this.features_,rn,this.handleFeatureAdd_,this),Object(is.a)(this.features_,nn,this.handleFeatureRemove_,this)):this.source_&&i.push(Object(is.a)(this.source_,hd,this.handleFeatureAdd_,this),Object(is.a)(this.source_,dd,this.handleFeatureRemove_,this)),r.forEach(this.forEachFeatureAdd_.bind(this)))}snapTo(t,e,i){const r=i.getView().getProjection(),n=Object(h.l)(e,r),s=Object(h.x)(Object(pt.d)(Object(pt.c)([n]),i.getView().getResolution()*this.pixelTolerance_),r),o=this.rBush_.getInExtent(s),a=o.length;if(0===a)return null;let l,c=1/0;const u=this.pixelTolerance_*this.pixelTolerance_,d=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Object(vn.l)(t,e)<=u)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])]}}return null};if(this.vertex_){for(let t=0;t{const e=Object(h.l)(t,r),i=Object(vn.l)(n,e);i{t.push([e])})}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,r=i.length;e{if(t instanceof Zh&&this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t},{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}},FP=i(81),kP=i(70);function DP(t,e,i){const r=[];let n=t(0),s=t(1),o=e(n),a=e(s);const l=[s,n],h=[a,o],c=[1,0],u={};let d,g,p,f,m,_,y=1e5;for(;--y>0&&c.length>0;)p=c.pop(),n=l.pop(),o=h.pop(),_=p.toString(),_ in u||(r.push(o[0],o[1]),u[_]=!0),f=c.pop(),s=l.pop(),a=h.pop(),m=(p+f)/2,d=t(m),g=e(d),Object(Fs.i)(g[0],g[1],o[0],o[1],a[0],a[1]){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_},this.latLabelStyleBase_=new mg({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new yg({font:"12px Calibri,sans-serif",textAlign:"right",fill:new lg({color:"rgba(0,0,0,1)"}),stroke:new cg({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=t=>{const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_},this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(In.a.POSTRENDER,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:GP,this.setSource(new Ed({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new hn,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new mg({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();return this.projection_&&this.getSource().getWrapX()&&Object(pt.N)(i,this.projection_),this.loadedExtent_&&(Object(pt.b)(this.loadedExtent_,i,e)?i=this.loadedExtent_.slice():this.getSource().removeLoadedExtent(this.loadedExtent_)),[i]}loaderFunction(t,e,i){this.loadedExtent_=t;const r=this.getSource(),n=this.getExtent()||[-1/0,-1/0,1/0,1/0],s=Object(pt.B)(n,t);if(this.renderedExtent_&&Object(pt.p)(this.renderedExtent_,s)&&this.renderedResolution_===e)return;if(this.renderedExtent_=s,this.renderedResolution_=e,Object(pt.J)(s))return;const o=Object(pt.x)(s),a=e*e/4;(!this.projection_||!Object(h.j)(this.projection_,i))&&this.updateProjectionInfo_(i),this.createGraticule_(s,o,e,a);let l,c=this.meridians_.length+this.parallels_.length;for(this.meridiansLabels_&&(c+=this.meridians_.length),this.parallelsLabels_&&(c+=this.parallels_.length);c>this.featurePool_.length;)l=new Zh,this.featurePool_.push(l);const u=r.getFeaturesCollection();u.clear();let d,g,p=0;for(d=0,g=this.meridians_.length;dMath.PI/2}const d=Ud(t);for(let t=a;t<=l;++t){let i,r,c,g,p=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(r=0,c=this.meridiansLabels_.length;r=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[Object(Fs.b)(e[0],this.minX_,this.maxX_),Object(Fs.b)(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=Object(Fs.b)(h[0],this.minLon_,this.maxLon_),u=Object(Fs.b)(h[1],this.minLat_,this.maxLat_);const d=this.maxLines_;let g,p,f,m,_=t;s||(_=[Object(Fs.b)(t[0],this.minX_,this.maxX_),Object(Fs.b)(t[1],this.minY_,this.maxY_),Object(Fs.b)(t[2],this.minX_,this.maxX_),Object(Fs.b)(t[3],this.minY_,this.maxY_)]);const y=Object(pt.a)(_,this.toLonLatTransform_,void 0,8);let v=y[3],x=y[2],b=y[1],w=y[0];if(s||(Object(pt.g)(_,this.bottomLeft_)&&(w=this.minLon_,b=this.minLat_),Object(pt.g)(_,this.bottomRight_)&&(x=this.maxLon_,b=this.minLat_),Object(pt.g)(_,this.topLeft_)&&(w=this.minLon_,v=this.maxLat_),Object(pt.g)(_,this.topRight_)&&(x=this.maxLon_,v=this.maxLat_),v=Object(Fs.b)(v,u,this.maxLat_),x=Object(Fs.b)(x,c,this.maxLon_),b=Object(Fs.b)(b,this.minLat_,u),w=Object(Fs.b)(w,this.minLon_,c)),c=Math.floor(c/n)*n,m=Object(Fs.b)(c,this.minLon_,this.maxLon_),p=this.addMeridian_(m,b,v,r,t,0),g=0,s)for(;(m-=n)>=w&&g++r[s]&&(n=s,s=1);const o=Math.max(e[1],r[n]),a=Math.min(e[3],r[s]),l=Object(Fs.b)(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[r[n-1]+(r[s-1]-r[n-1])*(l-r[n])/(r[s]-r[n]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,r,n){const s=function(t,e,i,r,n){const s=Object(h.o)("EPSG:4326");return DP((function(r){return[e+(i-e)*r,t]}),Object(h.q)(s,r),n)}(t,e,i,this.projection_,r);let o=this.parallels_[n];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new rc(s,"XY"),o}getParallelPoint_(t,e,i){const r=t.getFlatCoordinates();let n=0,s=r.length-2;r[n]>r[s]&&(n=s,s=0);const o=Math.max(e[0],r[n]),a=Math.min(e[2],r[s]),l=Object(Fs.b)(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,r[n+1]+(r[s+1]-r[n+1])*(l-r[n])/(r[s]-r[n])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=Object(h.o)("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const r=Object(h.q)(t,e);if(this.minLon_=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}},BP=i(65),UP=i(48);var VP,qP=class extends bu{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:Object(h.o)("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)Object(UP.b)(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):Object(os.a)(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=Object(h.o)("EPSG:4326"),i=this.getProjection();let r;if(void 0!==t.bounds){const n=Object(h.r)(e,i);r=Object(pt.a)(t.bounds,n)}const n=Object(vu.b)(i),s=t.minzoom||0,o=t.maxzoom||22,a=Object(vu.a)({extent:n,maxZoom:o,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=a,this.tileUrlFunction=gu(t.tiles,a),t.attribution&&!this.getAttributions()){const e=void 0!==r?r:n;this.setAttributions((function(i){return Object(pt.H)(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}},YP={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function WP(t){return(t=Math.round(t))<0?0:t>255?255:t}function XP(t){return t<0?0:t>1?1:t}function HP(t){return"%"===t[t.length-1]?WP(parseFloat(t)/100*255):WP(parseInt(t))}function ZP(t){return"%"===t[t.length-1]?XP(parseFloat(t)/100):XP(parseFloat(t))}function KP(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}try{VP={}.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in YP)return YP[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var r=i.indexOf("("),n=i.indexOf(")");if(-1!==r&&n+1===i.length){var s=i.substr(0,r),o=i.substr(r+1,n-(r+1)).split(","),a=1;switch(s){case"rgba":if(4!==o.length)return null;a=ZP(o.pop());case"rgb":return 3!==o.length?null:[HP(o[0]),HP(o[1]),HP(o[2]),a];case"hsla":if(4!==o.length)return null;a=ZP(o.pop());case"hsl":if(3!==o.length)return null;var l=(parseFloat(o[0])%360+360)%360/360,h=ZP(o[1]),c=ZP(o[2]),u=c<=.5?c*(h+1):c+h-c*h,d=2*c-u;return[WP(255*KP(d,u,l+1/3)),WP(255*KP(d,u,l)),WP(255*KP(d,u,l-1/3)),a];default:return null}}return null}}catch(t){}var $P=function(t,e,i,r){void 0===r&&(r=1),this.r=t,this.g=e,this.b=i,this.a=r};$P.parse=function(t){if(t){if(t instanceof $P)return t;if("string"==typeof t){var e=VP(t);if(e)return new $P(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},$P.prototype.toString=function(){var t=this.toArray(),e=t[0],i=t[1],r=t[2],n=t[3];return"rgba("+Math.round(e)+","+Math.round(i)+","+Math.round(r)+","+n+")"},$P.prototype.toArray=function(){var t=this,e=t.r,i=t.g,r=t.b,n=t.a;return 0===n?[0,0,0,0]:[255*e/n,255*i/n,255*r/n,n]},$P.prototype.toArray01=function(){var t=this,e=t.r,i=t.g,r=t.b,n=t.a;return 0===n?[0,0,0,0]:[e/n,i/n,r/n,n]},$P.prototype.toArray01PremultipliedAlpha=function(){var t=this;return[t.r,t.g,t.b,t.a]},$P.black=new $P(0,0,0,1),$P.white=new $P(1,1,1,1),$P.transparent=new $P(0,0,0,0),$P.red=new $P(1,0,0,1),$P.blue=new $P(0,0,1,1);var JP=$P;function QP(t){return"object"==typeof t?["literal",t]:t}function tN(t,e){var i=t.stops;if(!i)return function(t,e){var i=["get",t.property];if(void 0===t.default)return"string"===e.type?["string",i]:i;if("enum"===e.type)return["match",i,Object.keys(e.values),i,t.default];var r=["color"===e.type?"to-color":e.type,i,QP(t.default)];return"array"===e.type&&r.splice(1,0,e.value,e.length||null),r}(t,e);var r=i&&"object"==typeof i[0][0],n=r||void 0!==t.property,s=r||!n;return i=i.map((function(t){return!n&&e.tokens&&"string"==typeof t[1]?[t[0],aN(t[1])]:[t[0],QP(t[1])]})),r?function(t,e,i){for(var r={},n={},s=[],o=0;o3&&e===t[t.length-2]||(r&&2===t.length||t.push(e),t.push(i))}function oN(t,e){return t.type?t.type:e.expression.interpolated?"exponential":"interval"}function aN(t){for(var e=["concat"],i=/{([^{}]+)}/g,r=0,n=i.exec(t);null!==n;n=i.exec(t)){var s=t.slice(r,i.lastIndex-n[0].length);r=i.lastIndex,s.length>0&&e.push(s),e.push(["get",n[1]])}if(1===e.length)return t;if(r":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var EN=[uN,dN,gN,pN,fN,vN,mN,bN(_N),xN];function SN(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!SN(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var i=0,r=EN;i=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof i&&i>=0&&i<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:"Invalid rgba value ["+[t,e,i,r].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof r?[t,e,i,r]:[t,e,i]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function FN(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof JP)return!0;if(t instanceof LN)return!0;if(t instanceof RN)return!0;if(t instanceof NN)return!0;if(Array.isArray(t)){for(var e=0,i=t;e2){var a=t[1];if("string"!=typeof a||!(a in UN)||"object"===a)return e.error('The item type argument of "array" must be one of string, number, boolean',1);s=UN[a],r++}else s=_N;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],r++}i=bN(s,o)}else i=UN[n];for(var l=[];r1)&&e.push(r)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var qN=VN,YN=function(t){this.type=vN,this.sections=t};YN.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var i=t[1];if(!Array.isArray(i)&&"object"==typeof i)return e.error("First argument must be an image or text section.");for(var r=[],n=!1,s=1;s<=t.length-1;++s){var o=t[s];if(n&&"object"==typeof o&&!Array.isArray(o)){n=!1;var a=null;if(o["font-scale"]&&!(a=e.parse(o["font-scale"],1,dN)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,bN(gN))))return null;var h=null;if(o["text-color"]&&!(h=e.parse(o["text-color"],1,fN)))return null;var c=r[r.length-1];c.scale=a,c.font=l,c.textColor=h}else{var u=e.parse(t[s],1,_N);if(!u)return null;var d=u.type.kind;if("string"!==d&&"value"!==d&&"null"!==d&&"resolvedImage"!==d)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");n=!0,r.push({content:u,scale:null,font:null,textColor:null})}}return new YN(r)},YN.prototype.evaluate=function(t){return new RN(this.sections.map((function(e){var i=e.content.evaluate(t);return kN(i)===xN?new MN("",i,null,null,null):new MN(DN(i),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},YN.prototype.eachChild=function(t){for(var e=0,i=this.sections;e-1),i},XN.prototype.eachChild=function(t){t(this.input)},XN.prototype.outputDefined=function(){return!1},XN.prototype.serialize=function(){return["image",this.input.serialize()]};var HN=XN,ZN={"to-boolean":pN,"to-color":fN,"to-number":dN,"to-string":gN},KN=function(t,e){this.type=t,this.args=e};KN.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var i=t[0];if(("to-boolean"===i||"to-string"===i)&&2!==t.length)return e.error("Expected one argument.");for(var r=ZN[i],n=[],s=1;s4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":AN(e[0],e[1],e[2],e[3])))return new JP(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new BN(i||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,a=0,l=this.args;a=e[2])&&(!(t[1]<=e[1])&&!(t[3]>=e[3])))}function lA(t,e){var i,r=(180+t[0])/360,n=(i=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360),s=Math.pow(2,e.z);return[Math.round(r*s*sA),Math.round(n*s*sA)]}function hA(t,e,i){return e[1]>t[1]!=i[1]>t[1]&&t[0]<(i[0]-e[0])*(t[1]-e[1])/(i[1]-e[1])+e[0]}function cA(t,e){for(var i,r,n,s,o,a,l,h=!1,c=0,u=e.length;c0&&u<0||c<0&&u>0}function gA(t,e,i){for(var r=0,n=i;ri[2]){var n=.5*r,s=t[0]-i[0]>n?-r:i[0]-t[0]>n?r:0;0===s&&(s=t[0]-i[2]>n?-r:i[2]-t[0]>n?r:0),t[0]+=s}oA(e,t)}function vA(t,e,i,r){var n=Math.pow(2,r.z)*sA,s=[r.x*sA,r.y*sA],o=[];if(!t)return o;for(var a=0,l=t;a=0)return!1;var i=!0;return t.eachChild((function(t){i&&!IA(t,e)&&(i=!1)})),i}var CA=function(t,e){this.type=e.type,this.name=t,this.boundExpression=e};CA.parse=function(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");var i=t[1];return e.scope.has(i)?new CA(i,e.scope.get(i)):e.error('Unknown variable "'+i+'". Make sure "'+i+'" has been bound in an enclosing "let" expression before using it.',1)},CA.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},CA.prototype.eachChild=function(){},CA.prototype.outputDefined=function(){return!1},CA.prototype.serialize=function(){return["var",this.name]};var TA=CA,LA=function(t,e,i,r,n){void 0===e&&(e=[]),void 0===r&&(r=new cN),void 0===n&&(n=[]),this.registry=t,this.path=e,this.key=e.map((function(t){return"["+t+"]"})).join(""),this.scope=r,this.errors=n,this.expectedType=i};LA.prototype.parse=function(t,e,i,r,n){return void 0===n&&(n={}),e?this.concat(e,i,r)._parse(t,n):this._parse(t,n)},LA.prototype._parse=function(t,e){function i(t,e,i){return"assert"===i?new qN(e,[t]):"coerce"===i?new $N(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var r=t[0];if("string"!=typeof r)return this.error("Expression name must be a string, but found "+typeof r+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var n=this.registry[r];if(n){var s=n.parse(t,this);if(!s)return null;if(this.expectedType){var o=this.expectedType,a=s.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==a.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==a.kind&&"string"!==a.kind){if(this.checkSubtype(o,a))return null}else s=i(s,o,e.typeAnnotation||"coerce");else s=i(s,o,e.typeAnnotation||"assert")}if(!(s instanceof GN)&&"resolvedImage"!==s.type.kind&&OA(s)){var l=new tA;try{s=new GN(s.type,s.evaluate(l))}catch(t){return this.error(t.message),null}}return s}return this.error('Unknown expression "'+r+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof t+" instead.")},LA.prototype.concat=function(t,e,i){var r="number"==typeof t?this.path.concat(t):this.path,n=i?this.scope.concat(i):this.scope;return new LA(this.registry,r,e||null,n,this.errors)},LA.prototype.error=function(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];var r=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new lN(r,t))},LA.prototype.checkSubtype=function(t,e){var i=SN(t,e);return i&&this.error(i),i};var MA=LA;function OA(t){if(t instanceof TA)return OA(t.boundExpression);if(t instanceof iA&&"error"===t.name)return!1;if(t instanceof nA)return!1;if(t instanceof wA)return!1;var e=t instanceof $N||t instanceof qN,i=!0;return t.eachChild((function(t){i=e?i&&OA(t):i&&t instanceof GN})),!!i&&(EA(t)&&IA(t,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}function RA(t,e){for(var i,r,n=t.length-1,s=0,o=n,a=0;s<=o;)if(i=t[a=Math.floor((s+o)/2)],r=t[a+1],i<=e){if(a===n||ee))throw new BN("Input is not a number.");o=a-1}return 0}var PA=function(t,e,i){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var r=0,n=i;r=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var c=e.parse(a,h,n);if(!c)return null;n=n||c.type,r.push([o,c])}return new PA(n,i,r)},PA.prototype.evaluate=function(t){var e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);var r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);var n=e.length;return r>=e[n-1]?i[n-1].evaluate(t):i[RA(e,r)].evaluate(t)},PA.prototype.eachChild=function(t){t(this.input);for(var e=0,i=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var NA=PA,AA=FA;function FA(t,e,i,r){this.cx=3*t,this.bx=3*(i-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(r-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=r,this.p2x=i,this.p2y=r}function kA(t,e,i){return t*(1-i)+e*i}FA.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},FA.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},FA.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},FA.prototype.solveCurveX=function(t,e){var i,r,n,s,o;for(void 0===e&&(e=1e-6),n=t,o=0;o<8;o++){if(s=this.sampleCurveX(n)-t,Math.abs(s)(r=1))return r;for(;is?i=n:r=n,n=.5*(r-i)+i}return n},FA.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var DA=Object.freeze({__proto__:null,number:kA,color:function(t,e,i){return new JP(kA(t.r,e.r,i),kA(t.g,e.g,i),kA(t.b,e.b,i),kA(t.a,e.a,i))},array:function(t,e,i){return t.map((function(t,r){return kA(t,e[r],i)}))}}),jA=.95047,GA=1.08883,zA=4/29,BA=6/29,UA=3*BA*BA,VA=Math.PI/180,qA=180/Math.PI;function YA(t){return t>.008856451679035631?Math.pow(t,1/3):t/UA+zA}function WA(t){return t>BA?t*t*t:UA*(t-zA)}function XA(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function HA(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function ZA(t){var e=HA(t.r),i=HA(t.g),r=HA(t.b),n=YA((.4124564*e+.3575761*i+.1804375*r)/jA),s=YA((.2126729*e+.7151522*i+.072175*r)/1);return{l:116*s-16,a:500*(n-s),b:200*(s-YA((.0193339*e+.119192*i+.9503041*r)/GA)),alpha:t.a}}function KA(t){var e=(t.l+16)/116,i=isNaN(t.a)?e:e+t.a/500,r=isNaN(t.b)?e:e-t.b/200;return e=1*WA(e),i=jA*WA(i),r=GA*WA(r),new JP(XA(3.2404542*i-1.5371385*e-.4985314*r),XA(-.969266*i+1.8760108*e+.041556*r),XA(.0556434*i-.2040259*e+1.0572252*r),t.alpha)}function $A(t,e,i){var r=e-t;return t+i*(r>180||r<-180?r-360*Math.round(r/360):r)}var JA={forward:ZA,reverse:KA,interpolate:function(t,e,i){return{l:kA(t.l,e.l,i),a:kA(t.a,e.a,i),b:kA(t.b,e.b,i),alpha:kA(t.alpha,e.alpha,i)}}},QA={forward:function(t){var e=ZA(t),i=e.l,r=e.a,n=e.b,s=Math.atan2(n,r)*qA;return{h:s<0?s+360:s,c:Math.sqrt(r*r+n*n),l:i,alpha:t.a}},reverse:function(t){var e=t.h*VA,i=t.c;return KA({l:t.l,a:Math.cos(e)*i,b:Math.sin(e)*i,alpha:t.alpha})},interpolate:function(t,e,i){return{h:$A(t.h,e.h,i),c:kA(t.c,e.c,i),l:kA(t.l,e.l,i),alpha:kA(t.alpha,e.alpha,i)}}},tF=function(t,e,i,r,n){this.type=t,this.operator=e,this.interpolation=i,this.input=r,this.labels=[],this.outputs=[];for(var s=0,o=n;s1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:a}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(n=e.parse(n,2,dN)))return null;var l=[],h=null;"interpolate-hcl"===i||"interpolate-lab"===i?h=fN:e.expectedType&&"value"!==e.expectedType.kind&&(h=e.expectedType);for(var c=0;c=u)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',g);var f=e.parse(d,p,h);if(!f)return null;h=h||f.type,l.push([u,f])}return"number"===h.kind||"color"===h.kind||"array"===h.kind&&"number"===h.itemType.kind&&"number"==typeof h.N?new tF(h,i,r,n,l):e.error("Type "+wN(h)+" is not interpolatable.")},tF.prototype.evaluate=function(t){var e=this.labels,i=this.outputs;if(1===e.length)return i[0].evaluate(t);var r=this.input.evaluate(t);if(r<=e[0])return i[0].evaluate(t);var n=e.length;if(r>=e[n-1])return i[n-1].evaluate(t);var s=RA(e,r),o=e[s],a=e[s+1],l=tF.interpolationFactor(this.interpolation,r,o,a),h=i[s].evaluate(t),c=i[s+1].evaluate(t);return"interpolate"===this.operator?DA[this.type.kind.toLowerCase()](h,c,l):"interpolate-hcl"===this.operator?QA.reverse(QA.interpolate(QA.forward(h),QA.forward(c),l)):JA.reverse(JA.interpolate(JA.forward(h),JA.forward(c),l))},tF.prototype.eachChild=function(t){t(this.input);for(var e=0,i=this.outputs;e=i.length)throw new BN("Array index out of bounds: "+e+" > "+(i.length-1)+".");if(e!==Math.floor(e))throw new BN("Array index must be an integer, but found "+e+" instead.");return i[e]},aF.prototype.eachChild=function(t){t(this.index),t(this.input)},aF.prototype.outputDefined=function(){return!1},aF.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var lF=aF,hF=function(t,e){this.type=pN,this.needle=t,this.haystack=e};hF.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var i=e.parse(t[1],1,_N),r=e.parse(t[2],2,_N);return i&&r?IN(i.type,[pN,gN,dN,uN,_N])?new hF(i,r):e.error("Expected first argument to be of type boolean, string, number or null, but found "+wN(i.type)+" instead"):null},hF.prototype.evaluate=function(t){var e=this.needle.evaluate(t),i=this.haystack.evaluate(t);if(null==i)return!1;if(!CN(e,["boolean","string","number","null"]))throw new BN("Expected first argument to be of type boolean, string, number or null, but found "+wN(kN(e))+" instead.");if(!CN(i,["string","array"]))throw new BN("Expected second argument to be of type array or string, but found "+wN(kN(i))+" instead.");return i.indexOf(e)>=0},hF.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},hF.prototype.outputDefined=function(){return!0},hF.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var cF=hF,uF=function(t,e,i){this.type=dN,this.needle=t,this.haystack=e,this.fromIndex=i};uF.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var i=e.parse(t[1],1,_N),r=e.parse(t[2],2,_N);if(!i||!r)return null;if(!IN(i.type,[pN,gN,dN,uN,_N]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+wN(i.type)+" instead");if(4===t.length){var n=e.parse(t[3],3,dN);return n?new uF(i,r,n):null}return new uF(i,r)},uF.prototype.evaluate=function(t){var e=this.needle.evaluate(t),i=this.haystack.evaluate(t);if(!CN(e,["boolean","string","number","null"]))throw new BN("Expected first argument to be of type boolean, string, number or null, but found "+wN(kN(e))+" instead.");if(!CN(i,["string","array"]))throw new BN("Expected second argument to be of type array or string, but found "+wN(kN(i))+" instead.");if(this.fromIndex){var r=this.fromIndex.evaluate(t);return i.indexOf(e,r)}return i.indexOf(e)},uF.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},uF.prototype.outputDefined=function(){return!1},uF.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var dF=uF,gF=function(t,e,i,r,n,s){this.inputType=t,this.type=e,this.input=i,this.cases=r,this.outputs=n,this.otherwise=s};gF.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var i,r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);for(var n={},s=[],o=2;oNumber.MAX_SAFE_INTEGER)return h.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof d&&Math.floor(d)!==d)return h.error("Numeric branch labels must be integer values.");if(i){if(h.checkSubtype(i,kN(d)))return null}else i=kN(d);if(void 0!==n[String(d)])return h.error("Branch labels must be unique.");n[String(d)]=s.length}var g=e.parse(l,o,r);if(!g)return null;r=r||g.type,s.push(g)}var p=e.parse(t[1],1,_N);if(!p)return null;var f=e.parse(t[t.length-1],t.length-1,r);return f?"value"!==p.type.kind&&e.concat(1).checkSubtype(i,p.type)?null:new gF(i,r,p,n,s,f):null},gF.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(kN(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},gF.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},gF.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},gF.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],i=[],r={},n=0,s=Object.keys(this.cases).sort();n=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var i=e.parse(t[1],1,_N),r=e.parse(t[2],2,dN);if(!i||!r)return null;if(!IN(i.type,[bN(_N),gN,_N]))return e.error("Expected first argument to be of type array or string, but found "+wN(i.type)+" instead");if(4===t.length){var n=e.parse(t[3],3,dN);return n?new _F(i.type,i,r,n):null}return new _F(i.type,i,r)},_F.prototype.evaluate=function(t){var e=this.input.evaluate(t),i=this.beginIndex.evaluate(t);if(!CN(e,["string","array"]))throw new BN("Expected first argument to be of type array or string, but found "+wN(kN(e))+" instead.");if(this.endIndex){var r=this.endIndex.evaluate(t);return e.slice(i,r)}return e.slice(i)},_F.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},_F.prototype.outputDefined=function(){return!1},_F.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var yF=_F;function vF(t,e){return"=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function xF(t,e,i,r){return 0===r.compare(e,i)}function bF(t,e,i){var r="=="!==t&&"!="!==t;return function(){function n(t,e,i){this.type=pN,this.lhs=t,this.rhs=e,this.collator=i,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind}return n.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");var i=t[0],s=e.parse(t[1],1,_N);if(!s)return null;if(!vF(i,s.type))return e.concat(1).error('"'+i+"\" comparisons are not supported for type '"+wN(s.type)+"'.");var o=e.parse(t[2],2,_N);if(!o)return null;if(!vF(i,o.type))return e.concat(2).error('"'+i+"\" comparisons are not supported for type '"+wN(o.type)+"'.");if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot compare types '"+wN(s.type)+"' and '"+wN(o.type)+"'.");r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new qN(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new qN(s.type,[o])));var a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(!(a=e.parse(t[3],3,yN)))return null}return new n(s,o,a)},n.prototype.evaluate=function(n){var s=this.lhs.evaluate(n),o=this.rhs.evaluate(n);if(r&&this.hasUntypedArgument){var a=kN(s),l=kN(o);if(a.kind!==l.kind||"string"!==a.kind&&"number"!==a.kind)throw new BN('Expected arguments for "'+t+'" to be (string, string) or (number, number), but found ('+a.kind+", "+l.kind+") instead.")}if(this.collator&&!r&&this.hasUntypedArgument){var h=kN(s),c=kN(o);if("string"!==h.kind||"string"!==c.kind)return e(n,s,o)}return this.collator?i(n,s,o,this.collator.evaluate(n)):e(n,s,o)},n.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)},n.prototype.outputDefined=function(){return!0},n.prototype.serialize=function(){var e=[t];return this.eachChild((function(t){e.push(t.serialize())})),e},n}()}var wF=bF("==",(function(t,e,i){return e===i}),xF),EF=bF("!=",(function(t,e,i){return e!==i}),(function(t,e,i,r){return!xF(0,e,i,r)})),SF=bF("<",(function(t,e,i){return e",(function(t,e,i){return e>i}),(function(t,e,i,r){return r.compare(e,i)>0})),CF=bF("<=",(function(t,e,i){return e<=i}),(function(t,e,i,r){return r.compare(e,i)<=0})),TF=bF(">=",(function(t,e,i){return e>=i}),(function(t,e,i,r){return r.compare(e,i)>=0})),LF=function(t,e,i,r,n,s){this.type=gN,this.number=t,this.locale=e,this.currency=i,this.unit=r,this.minFractionDigits=n,this.maxFractionDigits=s};LF.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var i=e.parse(t[1],1,dN);if(!i)return null;var r=t[2];if("object"!=typeof r||Array.isArray(r))return e.error("NumberFormat options argument must be an object.");var n=null;if(r.locale&&!(n=e.parse(r.locale,1,gN)))return null;var s=null;if(r.currency&&!(s=e.parse(r.currency,1,gN)))return null;var o=null;if(r.unit&&!(o=e.parse(r.unit,1,gN)))return null;var a=null;if(r["min-fraction-digits"]&&!(a=e.parse(r["min-fraction-digits"],1,dN)))return null;var l=null;return r["max-fraction-digits"]&&!(l=e.parse(r["max-fraction-digits"],1,dN))?null:new LF(i,n,s,o,a,l)},LF.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},LF.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},LF.prototype.outputDefined=function(){return!1},LF.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var MF=LF,OF=function(t){this.type=dN,this.input=t};OF.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var i=e.parse(t[1],1);return i?"array"!==i.type.kind&&"string"!==i.type.kind&&"value"!==i.type.kind?e.error("Expected argument of type string or array, but found "+wN(i.type)+" instead."):new OF(i):null},OF.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new BN("Expected value to be of type string or array, but found "+wN(kN(e))+" instead.")},OF.prototype.eachChild=function(t){t(this.input)},OF.prototype.outputDefined=function(){return!1},OF.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var RF={"==":wF,"!=":EF,">":IF,"<":SF,">=":TF,"<=":CF,array:qN,at:lF,boolean:qN,case:mF,coalesce:nF,collator:nA,format:WN,image:HN,in:cF,"index-of":dF,interpolate:iF,"interpolate-hcl":iF,"interpolate-lab":iF,length:OF,let:oF,literal:GN,match:pF,number:qN,"number-format":MF,object:qN,slice:yF,step:NA,string:qN,"to-boolean":$N,"to-color":$N,"to-number":$N,"to-string":$N,var:TA,within:wA};function PF(t,e){var i=e[0],r=e[1],n=e[2],s=e[3];i=i.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);var o=s?s.evaluate(t):1,a=AN(i,r,n,o);if(a)throw new BN(a);return new JP(i/255*o,r/255*o,n/255*o,o)}function NF(t,e){return t in e}function AF(t,e){var i=e[t];return void 0===i?null:i}function FF(t){return{type:t}}iA.register(RF,{error:[{kind:"error"},[gN],function(t,e){var i=e[0];throw new BN(i.evaluate(t))}],typeof:[gN,[_N],function(t,e){return wN(kN(e[0].evaluate(t)))}],"to-rgba":[bN(dN,4),[fN],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[fN,[dN,dN,dN],PF],rgba:[fN,[dN,dN,dN,dN],PF],has:{type:pN,overloads:[[[gN],function(t,e){return NF(e[0].evaluate(t),t.properties())}],[[gN,mN],function(t,e){var i=e[0],r=e[1];return NF(i.evaluate(t),r.evaluate(t))}]]},get:{type:_N,overloads:[[[gN],function(t,e){return AF(e[0].evaluate(t),t.properties())}],[[gN,mN],function(t,e){var i=e[0],r=e[1];return AF(i.evaluate(t),r.evaluate(t))}]]},"feature-state":[_N,[gN],function(t,e){return AF(e[0].evaluate(t),t.featureState||{})}],properties:[mN,[],function(t){return t.properties()}],"geometry-type":[gN,[],function(t){return t.geometryType()}],id:[_N,[],function(t){return t.id()}],zoom:[dN,[],function(t){return t.globals.zoom}],pitch:[dN,[],function(t){return t.globals.pitch||0}],"distance-from-center":[dN,[],function(t){return t.distanceFromCenter()}],"heatmap-density":[dN,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[dN,[],function(t){return t.globals.lineProgress||0}],"sky-radial-progress":[dN,[],function(t){return t.globals.skyRadialProgress||0}],accumulated:[_N,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[dN,FF(dN),function(t,e){for(var i=0,r=0,n=e;r":[pN,[gN,_N],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],s=r.value;return typeof n==typeof s&&n>s}],"filter-id->":[pN,[_N],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&r>n}],"filter-<=":[pN,[gN,_N],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],s=r.value;return typeof n==typeof s&&n<=s}],"filter-id-<=":[pN,[_N],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&r<=n}],"filter->=":[pN,[gN,_N],function(t,e){var i=e[0],r=e[1],n=t.properties()[i.value],s=r.value;return typeof n==typeof s&&n>=s}],"filter-id->=":[pN,[_N],function(t,e){var i=e[0],r=t.id(),n=i.value;return typeof r==typeof n&&r>=n}],"filter-has":[pN,[_N],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[pN,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[pN,[bN(gN)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[pN,[bN(_N)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[pN,[gN,bN(_N)],function(t,e){var i=e[0];return e[1].value.indexOf(t.properties()[i.value])>=0}],"filter-in-large":[pN,[gN,bN(_N)],function(t,e){var i=e[0],r=e[1];return function(t,e,i,r){for(;i<=r;){var n=i+r>>1;if(e[n]===t)return!0;e[n]>t?r=n-1:i=n+1}return!1}(t.properties()[i.value],r.value,0,r.value.length-1)}],all:{type:pN,overloads:[[[pN,pN],function(t,e){var i=e[0],r=e[1];return i.evaluate(t)&&r.evaluate(t)}],[FF(pN),function(t,e){for(var i=0,r=e;i-1}(e))return jF([new lN("","zoom expressions not supported")]);var s=YF(i);if(!s&&!n)return jF([new lN("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(s instanceof lN)return jF([s]);if(s instanceof iF&&!function(t){return!!t.expression&&t.expression.interpolated}(e))return jF([new lN("",'"interpolate" expressions cannot be used with this property')]);if(!s)return DF(new UF(r?"constant":"source",t.value));var o=s instanceof iF?s.interpolation:void 0;return DF(new VF(r?"camera":"composite",t.value,s.labels,o))}function YF(t){var e=null;if(t instanceof oF)e=YF(t.result);else if(t instanceof nF)for(var i=0,r=t.args;i":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Camera"},pitch:{group:"Camera"},"distance-from-center":{group:"Camera"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},"sky-radial-progress":{group:"sky"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},fog:{range:{type:"array",default:[.5,10],minimum:-20,maximum:20,length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"high-color":{type:"color","property-type":"data-constant",default:"#245cdf",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"space-color":{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-blend":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,.2,7,.1],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"star-intensity":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],5,.35,6,0],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},projection:{name:{type:"enum",values:{albers:{},equalEarth:{},equirectangular:{},lambertConformalConic:{},mercator:{},naturalEarth:{},winkelTripel:{},globe:{}},default:"mercator",required:!0},center:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-180,-90],maximum:[180,90],transition:!1,requires:[{name:["albers","lambertConformalConic"]}]},parallels:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-90,-90],maximum:[90,90],transition:!1,requires:[{name:["albers","lambertConformalConic"]}]}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1e3,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,requires:["source"]}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background","paint_sky"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!1,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!1,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number",private:!0,default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant",type:"number",private:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,requires:["fill-extrusion-edge-radius"]}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!1,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{type:"resolvedImage",transition:!1,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{type:"array",value:"number",length:2,default:[0,0],minimum:[0,0],maximum:[1,1],transition:!1,requires:[{source:"geojson",has:{lineMetrics:!0}}],"property-type":"constant"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_sky:{"sky-type":{type:"enum",values:{gradient:{},atmosphere:{}},default:"atmosphere",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,requires:[{"sky-type":"atmosphere"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],default:10,minimum:0,maximum:100,transition:!1,"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number",default:[0,0],length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],default:90,minimum:0,maximum:180,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color",default:["interpolate",["linear"],["sky-radial-progress"],.8,"#87ceeb",1,"white"],transition:!1,requires:[{"sky-type":"gradient"}],expression:{interpolated:!0,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color",default:"white",transition:!1,requires:[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-atmosphere-color":{type:"color",default:"white",transition:!1,requires:[{"sky-type":"atmosphere"}],"property-type":"data-constant"},"sky-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};function HF(t){if(!0===t||!1===t)return!0;if(!Array.isArray(t)||0===t.length)return!1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,i=t.slice(1);e",">=","<","<=","to-boolean"]);function tk(t,e){return te?1:0}function ek(t){if(!Array.isArray(t))return!1;if("within"===t[0])return!0;for(var e=1;e"===i||"<="===i||">="===i?rk(t[1],t[2],i):"any"===i?(e=t.slice(1),["any"].concat(e.map(ik))):"all"===i?["all"].concat(t.slice(1).map(ik)):"none"===i?["all"].concat(t.slice(1).map(ik).map(ok)):"in"===i?nk(t[1],t.slice(2)):"!in"===i?ok(nk(t[1],t.slice(2))):"has"===i?sk(t[1]):"!has"===i?ok(sk(t[1])):"within"!==i||t}function rk(t,e,i){switch(t){case"$type":return["filter-type-"+i,e];case"$id":return["filter-id-"+i,e];default:return["filter-"+i,t,e]}}function nk(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(tk)]]:["filter-in-small",t,["literal",e]]}}function sk(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function ok(t){return["!",t]}var ak=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function lk(t,e){var i={};for(var r in t)"ref"!==r&&(i[r]=t[r]);return ak.forEach((function(t){t in e&&(i[t]=e[t])})),i}var hk={thin:100,hairline:100,"ultra-light":100,"extra-light":100,light:200,book:300,regular:400,normal:400,plain:400,roman:400,standard:400,medium:500,"semi-bold":600,"demi-bold":600,bold:700,heavy:800,black:800,"extra-bold":800,"ultra-black":900,"extra-black":900,"ultra-bold":900,"heavy-black":900,fat:900,poster:900},ck=" ",uk=/(italic|oblique)$/i,dk={},gk=function(t,e,i){var r=dk[t];if(!r){Array.isArray(t)||(t=[t]);for(var n=400,s="normal",o=[],a=0,l=t.length;a1?h[h.length-2].toLowerCase():"";if(c==u||c==u.replace("-","")||d+"-"+c==u){n=hk[u],h.pop(),d&&u.startsWith(d)&&h.pop();break}}"number"==typeof c&&(n=c);var g=h.join(ck).replace("Klokantech Noto Sans","Noto Sans");-1!==g.indexOf(ck)&&(g='"'+g+'"'),o.push(g)}r=dk[t]=[s,n,o]}return r[0]+ck+r[1]+ck+e+"px"+(i?"/"+i:"")+ck+r[2]},pk="https://api.mapbox.com";function fk(t){var e="mapbox://";return 0!==t.indexOf(e)?"":t.slice(e.length)}function mk(t,e){var i=fk(t);if(!i)return decodeURI(new URL(t,location.href).href);var r="styles/";if(0!==i.indexOf(r))throw new Error("unexpected style url: "+t);var n=i.slice(r.length);return pk+"/styles/v1/"+n+"?&access_token="+e}function _k(t,e,i,r){var n=new URL(t,r),s=fk(t);return s?"mapbox.satellite"===s?"https://api.mapbox.com/v4/"+s+"/{z}/{x}/{y}"+(window.devicePixelRatio>=1.5?"@2x":"")+".webp?access_token="+e:"https://{a-d}.tiles.mapbox.com/v4/"+s+"/{z}/{x}/{y}.vector.pbf?access_token="+e:e?(n.searchParams.set(i,e),decodeURI(n.href)):decodeURI(n.href)}var yk=0,vk={},xk={};function bk(t){t.id||(t.id=yk++);var e={};return vk[t.id]=e,e}function wk(t){t.id||(t.id=yk++);var e={};return xk[t.id]=e,e}function Ek(t){return t*Math.PI/180}var Sk=function(){for(var t=[],e=78271.51696402048;t.length<=24;e/=2)t.push(e);return t}();function Ik(t,e){if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"undefined"!=typeof OffscreenCanvas)return new OffscreenCanvas(t,e);var i=document.createElement("canvas");return i.width=t,i.height=e,i}function Ck(t,e){for(var i=0,r=e.length;i0&&o.arc(h,u,i*e.pixelRatio,0,2*Math.PI)}return o.fill(),n}var Ak,Fk=Array(256).join(" ");function kk(t,e){if(e>=.05){for(var i="",r=t.split("\n"),n=Fk.slice(0,Math.round(e/.1)),s=0,o=r.length;s0&&(i+="\n"),i+=r[s].split("").join(n);return i}return t}function Dk(){return Ak||(Ak=Ik(1,1).getContext("2d")),Ak}function jk(t,e){return Dk().measureText(t).width+(t.length-1)*e}var Gk={};function zk(t,e,i,r){if(-1!==t.indexOf("\n")){for(var n=t.split("\n"),s=[],o=0,a=n.length;o1){var u=Dk();u.font=e;for(var d=u.measureText("M").width*i,g="",p=[],f=0,m=c.length;f1;++v){var b=p[v];if(jk(b,r)<.35*d){var w=v>0?jk(p[v-1],r):1/0,E=v.7*d&&jk(T,r)<.6*d){var L=C.split(" "),M=L.pop();jk(M,r)<.2*d&&(p[S]=L.join(" "),p[S+1]=M+" "+T),I-=1}}h=p.join("\n")}else h=t;h=kk(h,r),Gk[l]=h}return h}var Bk,Uk=/font-family: ?([^;]*);/,Vk=/("|')/g;function qk(t){if(!Bk){Bk={};for(var e=document.styleSheets,i=0,r=e.length;i0&&"string"==typeof l[0]&&l[0]in kF);if(!d&&GF(c)&&(c=tN(c,u),d=!0),d){var g=function(t,e){var i=qF(t,e);if("error"===i.result)throw new Error(i.value.map((function(t){return t.key+": "+t.message})).join(", "));return i.value}(c,u);h[i]=g.evaluate.bind(g)}else"color"==u.type&&(c=JP.parse(c)),h[i]=function(){return c}}return Jk.zoom=r,h[i](Jk,n,o)}function tD(t,e,i,r){return Qk(t,"layout","icon-allow-overlap",e,i,r)?Qk(t,"layout","icon-ignore-placement",e,i,r)?"none":"obstacle":"declutter"}function eD(t,e,i,r,n){return n||console.warn("No filterCache provided to evaluateFilter()"),t in n||(n[t]=ZF(e).filter),Jk.zoom=r,n[t](Jk,i)}var iD=!1;function rD(t,e){if(t){if(!iD&&(0===t.a||0===e))return;var i=t.a;return e=void 0===e?1:e,0===i?"transparent":"rgba("+Math.round(255*t.r/i)+","+Math.round(255*t.g/i)+","+Math.round(255*t.b/i)+","+i*e+")"}return t}var nD=/\{[^{}}]*\}/g;function sD(t,e){return t.replace(nD,(function(t){return e[t.slice(1,-1)]||""}))}var oD=!1;function aD(t,e,i,r,n,s,o,a){if(void 0===r&&(r=Sk),void 0===n&&(n=void 0),void 0===s&&(s=void 0),void 0===o&&(o=void 0),void 0===a&&(a=void 0),"string"==typeof e&&(e=JSON.parse(e)),8!=e.version)throw new Error("glStyle version 8 required.");var l,h;if(s)if("undefined"!=typeof Image){var c=new Image;c.crossOrigin="anonymous",c.onload=function(){l=c,h=[c.width,c.height],t.changed(),c.onload=null},c.src=s}else if("undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope){var u=self;u.postMessage({action:"loadImage",src:s}),u.addEventListener("message",(function(t){"imageLoaded"===t.data.action&&t.data.src===s&&(l=t.data.image,h=[l.width,l.height])}))}for(var d,g=function(t){t=t.slice();for(var e=Object.create(null),i=0;i=I.maxzoom)){var P=I.filter;if(!P||eD(C,P,f,u,v)){d=I;var N=void 0,A=void 0,F=void 0,k=void 0,D=void 0,j=void 0,G=S.index;if(3==g&&("fill"==I.type||"fill-extrusion"==I.type))if(A=Qk(I,"paint",I.type+"-opacity",u,f,y,x),I.type+"-pattern"in R){var z=Qk(I,"paint",I.type+"-pattern",u,f,y,x);if(z){var B="string"==typeof z?sD(z,s):z.toString();if(l&&n&&n[B]){++b,(j=O[b])&&j.getFill()&&!j.getStroke()&&!j.getText()||(j=new mg({fill:new lg}),O[b]=j),F=j.getFill(),j.setZIndex(G);var U=B+"."+A,V=_[U];if(!V){var q=n[B],Y=Ik(q.width,q.height),W=Y.getContext("2d");W.globalAlpha=A,W.drawImage(l,q.x,q.y,q.width,q.height,0,0,q.width,q.height),V=W.createPattern(Y,"repeat"),_[U]=V}F.setColor(V)}}}else N=rD(Qk(I,"paint",I.type+"-color",u,f,y,x),A),I.type+"-outline-color"in R&&(D=rD(Qk(I,"paint",I.type+"-outline-color",u,f,y,x),A)),D||(D=N),(N||D)&&(++b,(!(j=O[b])||N&&!j.getFill()||!N&&j.getFill()||D&&!j.getStroke()||!D&&j.getStroke()||j.getText())&&(j=new mg({fill:N?new lg:void 0,stroke:D?new cg:void 0}),O[b]=j),N&&(F=j.getFill()).setColor(N),D&&((k=j.getStroke()).setColor(D),k.setWidth(.5)),j.setZIndex(G));if(1!=g&&"line"==I.type){N=!("line-pattern"in R)&&"line-color"in R?rD(Qk(I,"paint","line-color",u,f,y,x),Qk(I,"paint","line-opacity",u,f,y,x)):void 0;var X=Qk(I,"paint","line-width",u,f,y,x);N&&X>0&&(++b,(j=O[b])&&j.getStroke()&&!j.getFill()&&!j.getText()||(j=new mg({stroke:new cg}),O[b]=j),(k=j.getStroke()).setLineCap(Qk(I,"layout","line-cap",u,f,y,x)),k.setLineJoin(Qk(I,"layout","line-join",u,f,y,x)),k.setMiterLimit(Qk(I,"layout","line-miter-limit",u,f,y,x)),k.setColor(N),k.setWidth(X),k.setLineDash(R["line-dasharray"]?Qk(I,"paint","line-dasharray",u,f,y,x).map((function(t){return t*X})):null),j.setZIndex(G))}var H=!1,Z=null,K=0,$=void 0,J=void 0,Q=void 0;if((1==g||2==g)&&"icon-image"in T){var tt=Qk(I,"layout","icon-image",u,f,y,x);if(tt){$="string"==typeof tt?sD(tt,s):tt.toString();var et=void 0,it=a?a(t,$):void 0;if(l&&n&&n[$]||it){var rt=Qk(I,"layout","icon-rotation-alignment",u,f,y,x);if(2==g){var nt=e.getGeometry();if(nt.getFlatMidpoint||nt.getFlatMidpoints){var st=nt.getExtent();if(Math.sqrt(Math.max(Math.pow((st[2]-st[0])/i,2),Math.pow((st[3]-st[1])/i,2)))>150){var ot="MultiLineString"===nt.getType()?nt.getFlatMidpoints():nt.getFlatMidpoint();if(Hk||(Hk=new dc("Point",Xk=[NaN,NaN],[],{},null)),et=Hk,Xk[0]=ot[0],Xk[1]=ot[1],"line"===Qk(I,"layout","symbol-placement",u,f,y,x)&&"map"===rt)for(var at=nt.getStride(),lt=nt.getFlatCoordinates(),ht=0,ct=lt.length-at;ht=ft&&ot[0]<=_t&&ot[1]>=mt&&ot[1]<=yt){K=Math.atan2(dt-pt,gt-ut);break}}}}}if(2!==g||et){var vt=Qk(I,"layout","icon-size",u,f,y,x),xt=void 0!==R["icon-color"]?Qk(I,"paint","icon-color",u,f,y,x):null;if(!xt||0!==xt.a){var bt=Qk(I,"paint","icon-halo-color",u,f,y,x),wt=Qk(I,"paint","icon-halo-width",u,f,y,x),Et=$+"."+vt+"."+wt+"."+bt;if(null!==xt&&(Et+="."+xt),!(J=m[Et])){var St=tD(I,u,f,y),It=void 0;"icon-offset"in T&&((It=Qk(I,"layout","icon-offset",u,f,y,x))[1]*=-1);var Ct=xt?[255*xt.r,255*xt.g,255*xt.b,xt.a]:void 0;if(it){var Tt={color:Ct,rotateWithView:"map"===rt,displacement:It,declutterMode:St};"string"==typeof it?Tt.src=it:(Tt.img=it,Tt.imgSize=[it.width,it.height]),J=new Rd(Tt)}else{var Lt=n[$],Mt=void 0,Ot=void 0,Rt=void 0,Pt=void 0;wt?Ot=[(Mt=Nk(l,Lt,wt,bt)).width,Mt.height]:(Mt=l,Ot=h,Rt=[Lt.width,Lt.height],Pt=[Lt.x,Lt.y]),J=new Rd({color:Ct,img:Mt,imgSize:Ot,size:Rt,offset:Pt,rotateWithView:"map"===rt,scale:vt/Lt.pixelRatio,displacement:It,declutterMode:St})}m[Et]=J}}J&&(++b,(j=O[b])&&j.getImage()&&!j.getFill()&&!j.getStroke()||(j=new mg,O[b]=j),j.setGeometry(et),J.setRotation(K+Ek(Qk(I,"layout","icon-rotate",u,f,y,x))),J.setOpacity(Qk(I,"paint","icon-opacity",u,f,y,x)),J.setAnchor(Kk[Qk(I,"layout","icon-anchor",u,f,y,x)]),j.setImage(J),Z=j.getText(),j.setText(void 0),j.setZIndex(G),H=!0,Q=!1)}else Q=!0}}}if(1==g&&"circle"===I.type){++b,(j=O[b])&&j.getImage()&&!j.getFill()&&!j.getStroke()||(j=new mg,O[b]=j);var Nt="circle-radius"in R?Qk(I,"paint","circle-radius",u,f,y,x):5,At=rD(Qk(I,"paint","circle-stroke-color",u,f,y,x),Qk(I,"paint","circle-stroke-opacity",u,f,y,x)),Ft=rD(Qk(I,"paint","circle-color",u,f,y,x),Qk(I,"paint","circle-opacity",u,f,y,x)),kt=Qk(I,"paint","circle-stroke-width",u,f,y,x),Dt=Nt+"."+At+"."+Ft+"."+kt;(J=m[Dt])||(J=new og({radius:Nt,stroke:At&&kt>0?new cg({width:kt,color:At}):void 0,fill:Ft?new lg({color:Ft}):void 0,declutterMode:"none"}),m[Dt]=J),j.setImage(J),Z=j.getText(),j.setText(void 0),j.setGeometry(void 0),j.setZIndex(G),H=!0}var jt=void 0,Gt=void 0,zt=void 0,Bt=void 0,Ut=void 0,Vt=void 0;if("text-field"in T){Bt=Math.round(Qk(I,"layout","text-size",u,f,y,x));var qt=Qk(I,"layout","text-font",u,f,y,x);zt=Qk(I,"layout","text-line-height",u,f,y,x),(Gt=gk(o?o(qt):qt,Bt,zt)).includes("sans-serif")||(Gt+=",sans-serif"),Ut=Qk(I,"layout","text-letter-spacing",u,f,y,x),Vt=Qk(I,"layout","text-max-width",u,f,y,x);var Yt=Qk(I,"layout","text-field",u,f,y,x);jt="object"==typeof Yt&&Yt.sections?1===Yt.sections.length?Yt.toString():Yt.sections.reduce((function(t,e,i){var r=e.fontStack?e.fontStack.split(","):qt,n=gk(o?o(r):r,Bt*(e.scale||1),zt),s=e.text;if("\n"===s)return t.push("\n",""),t;if(2!=g){for(var a=0,l=(s=zk(s,n,Vt,Ut).split("\n")).length;a0&&t.push("\n",""),t.push(s[a],n);return t}t.push(kk(s,Ut),n)}),[]):sD(Yt,s).trim(),A=Qk(I,"paint","text-opacity",u,f,y,x)}if(jt&&A&&!Q){H||(++b,(j=O[b])&&j.getText()&&!j.getFill()&&!j.getStroke()||(j=new mg,O[b]=j),j.setImage(void 0),j.setGeometry(void 0)),j.getText()||j.setText(Z||new yg({padding:[2,2,2,2]})),Z=j.getText();var Wt=T["text-transform"];"uppercase"==Wt?jt=Array.isArray(jt)?jt.map((function(t,e){return e%2?t:t.toUpperCase()})):jt.toUpperCase():"lowercase"==Wt&&(jt=Array.isArray(jt)?jt.map((function(t,e){return e%2?t:t.toLowerCase()})):jt.toLowerCase());var Xt=Array.isArray(jt)?jt:2==g?kk(jt,Ut):zk(jt,Gt,Vt,Ut);Z.setText(Xt),Z.setFont(Gt),Z.setRotation(Ek(Qk(I,"layout","text-rotate",u,f,y,x)));var Ht=Qk(I,"layout","text-anchor",u,f,y,x),Zt=H||1==g?"point":Qk(I,"layout","symbol-placement",u,f,y,x);if(Z.setPlacement(Zt),"function"==typeof Z.setRepeat){var Kt=Qk(I,"layout","symbol-spacing",u,f,y,x);Z.setRepeat(2*Kt)}Z.setOverflow("point"===Zt);var $t=Qk(I,"paint","text-halo-width",u,f,y,x),Jt=Qk(I,"layout","text-offset",u,f,y,x),Qt=Qk(I,"paint","text-translate",u,f,y,x),te=0,ee=0;if("point"==Zt){var ie="center";-1!==Ht.indexOf("left")?(ie="left",ee=$t):-1!==Ht.indexOf("right")&&(ie="right",ee=-$t),Z.setTextAlign(ie);var re=Qk(I,"layout","text-rotation-alignment",u,f,y,x);Z.setRotateWithView("map"==re)}else Z.setMaxAngle(Ek(Qk(I,"layout","text-max-angle",u,f,y,x))*jt.length/Xt.length),Z.setTextAlign(),Z.setRotateWithView(!1);var ne="middle";0==Ht.indexOf("bottom")?(ne="bottom",te=-$t-.5*(zt-1)*Bt):0==Ht.indexOf("top")&&(ne="top",te=$t+.5*(zt-1)*Bt),Z.setTextBaseline(ne);var se=Qk(I,"layout","text-justify",u,f,y,x);Z.setJustify("auto"===se?void 0:se),Z.setOffsetX(Jt[0]*Bt+ee+Qt[0]),Z.setOffsetY(Jt[1]*Bt+te+Qt[1]),M.setColor(rD(Qk(I,"paint","text-color",u,f,y,x),A)),Z.setFill(M);var oe=rD(Qk(I,"paint","text-halo-color",u,f,y,x),A);if(oe){L.setColor(oe),$t*=2;var ae=.5*Bt;L.setWidth($t<=ae?$t:ae),Z.setStroke(L)}else Z.setStroke(void 0);var le=Qk(I,"layout","text-padding",u,f,y,x),he=Z.getPadding();le!==he[0]&&(he[0]=le,he[1]=le,he[2]=le,he[3]=le),j.setZIndex(G)}}}}return b>-1?(O.length=b+1,oD&&("function"==typeof e.set?e.set("mapbox-layer",d):e.getProperties()["mapbox-layer"]=d),O):void 0}};return t.setStyle(R),t.set("mapbox-source",d),t.set("mapbox-layers",f),t.set("mapbox-featurestate",{}),R}function lD(t,e){return void 0===e&&(e=512),t.getExtent()?Object(vu.a)({extent:t.getExtent(),tileSize:e,maxZoom:22}).getResolutions():Sk}function hD(t,e){e.accessToken||(e=Object.assign({},e),new URL(t).searchParams.forEach((function(t,i){e.accessToken=t,e.accessTokenParam=i})));return e}function cD(t,e,i,r,n){var s,o,a,l;void 0===i&&(i=""),void 0===r&&(r={}),void 0===n&&(n=void 0);var c=!0;return"string"==typeof i||Array.isArray(i)?l=i:(l=(a=i).source||a.layers,r=a),"string"==typeof r?(s=r,a={}):(s=r.styleUrl,a=r),!1===a.updateSource&&(c=!1),n||(n=a.resolutions),s||"string"!=typeof e||e.trim().startsWith("{")||(s=e),s&&(s=s.startsWith("data:")?location.href:mk(s,a.accessToken),a=hD(s,a)),new Promise((function(i,r){Mk(e,a).then((function(e){if(8!=e.version)return r(new Error("glStyle version 8 required."));if(!(t instanceof Lp||t instanceof jw))return r(new Error("Can only apply to VectorLayer or VectorTileLayer"));var u,d,g,p=t instanceof jw?"vector":"geojson";if(l?o=Array.isArray(l)?e.layers.find((function(t){return t.id===l[0]})).source:l:(o=Object.keys(e.sources).find((function(t){return e.sources[t].type===p})),l=o),!o)return r(new Error("No "+p+" source found in the glStyle."));function f(){if(!c)return Promise.resolve();if(t instanceof jw)return mD(e.sources[o],s,a).then((function(e){var i=t.getSource();if(i?e!==i&&(i.setTileUrlFunction(e.getTileUrlFunction()),i.format_||(i.format_=e.format_),i.getAttributions()||i.setAttributions(e.getAttributions()),i.getTileLoadFunction()===Rw&&i.setTileLoadFunction(e.getTileLoadFunction()),Object(h.j)(i.getProjection(),e.getProjection())&&(i.tileGrid=e.getTileGrid())):t.setSource(e),!isFinite(t.getMaxResolution())&&!isFinite(t.getMinZoom())){var r=t.getSource().getTileGrid();t.setMaxResolution(r.getResolution(r.getMinZoom()))}}));var i=e.sources[o],r=t.getSource();r&&r.get("mapbox-source")===i||(r=vD(i,s,a));var n=t.getSource();return n?r!==n&&(n.getAttributions()||n.setAttributions(r.getAttributions()),n.format_||(n.format_=r.getFormat()),n.url_=r.getUrl()):t.setSource(r),Promise.resolve()}function m(){if(g||e.sprite&&!u)g?(t.setStyle(g),f().then(i).catch(r)):r(new Error("Something went wrong trying to apply style."));else{if(a.projection&&!n){var s=Object(h.o)(a.projection).getUnits();"m"!==s&&(n=Sk.map((function(t){return t/h.a[s]})))}g=aD(t,e,l,n,u,d,Wk,a.getImage),t.getStyle()?f().then(i).catch(r):r(new Error("Nothing to show for source ["+o+"]"))}}if(e.sprite){var _=new URL(function(t,e,i){var r=fk(t);if(!r)return decodeURI(new URL(t,i).href);var n="sprites/";if(0!==r.indexOf(n))throw new Error("unexpected sprites url: "+t);var s=r.slice(n.length);return pk+"/styles/v1/"+s+"/sprite?access_token="+e}(e.sprite,a.accessToken,s||location.href)),y=.5==(window.devicePixelRatio>=1.5?.5:1)?"@2x":"",v=_.origin+_.pathname+y+".json"+_.search;new Promise((function(t,e){Lk("Sprite",v,a).then(t).catch((function(i){Lk("Sprite",v=_.origin+_.pathname+".json"+_.search,a).then(t).catch(e)}))})).then((function(t){if(void 0===t&&r(new Error("No sprites found.")),u=t,d=_.origin+_.pathname+y+".png"+_.search,a.transformRequest){var e=a.transformRequest(d,"SpriteImage");e instanceof Request&&(d=encodeURI(e.url))}m()})).catch((function(t){r(new Error("Sprites cannot be loaded: "+v+": "+t.message))}))}else m()})).catch(r)}))}var uD={};function dD(t,e,i){return void 0===i&&(i={}),Mk(e,i).then((function(e){!function(t,e,i){e.layers.some((function(e){if("background"===e.type){if(t instanceof yn.a)return t.setBackground((function(t){return pD(e,t,i,{})})),!0;if(t instanceof Va||t instanceof cs)return t.getLayers().push(fD(e,i,{})),!0}}))}(t,e,i)}))}function gD(t,e,i){var r=new qP({tileJSON:e,tileSize:t.tileSize||e.tileSize||512}),n=r.getTileJSON(),s=r.getTileGrid(),o=Object(h.o)(i.projection||"EPSG:3857"),a=function(t,e){var i=t.bounds;if(i){var r=Object(h.k)([i[0],i[1]],e),n=Object(h.k)([i[2],i[3]],e);return[r[0],r[1],n[0],n[1]]}return Object(h.o)(e).getExtent()}(n,o),l=o.getExtent(),c=n.minzoom||0,u=n.maxzoom||22,d={attributions:r.getAttributions(),projection:o,tileGrid:new Dh.a({origin:l?Object(pt.E)(l):s.getOrigin(0),extent:a||s.getExtent(),minZoom:c,resolutions:lD(o,e.tileSize).slice(0,u+1),tileSize:s.getTileSize(0)})};return Array.isArray(n.tiles)?d.urls=n.tiles:d.url=n.tiles,d}function pD(t,e,i,r){var n={id:t.id,type:t.type},s=t.layout||{},o=t.paint||{};n.paint=o;var a,l,h=Ck(e,i.resolutions||Sk);return void 0!==o["background-color"]&&(a=Qk(n,"paint","background-color",h,uD,r)),void 0!==o["background-opacity"]&&(l=Qk(n,"paint","background-opacity",h,uD,r)),"none"==s.visibility?void 0:rD(a,l)}function fD(t,e,i){var r=document.createElement("div");return r.className="ol-mapbox-style-background",r.style.position="absolute",r.style.width="100%",r.style.height="100%",new yn.a({source:new ld.a({}),render:function(n){var s=pD(t,n.viewState.resolution,e,i);return r.style.backgroundColor=s,r}})}function mD(t,e,i){return new Promise((function(r,n){Pk(t,e,i).then((function(e){var n=gD(t,e,i);n.format=new Yw,Array.isArray(e.tiles)?n.urls=e.tiles:n.url=e.tiles,r(new Ow(n))})).catch(n)}))}function _D(t){return"{bbox-"+(t?t.getCode():"EPSG:3857").toLowerCase().replace(/[^a-z0-9]/g,"-")+"}"}var yD=new Lb;function vD(t,e,i){var r=t.data,n={};if("string"==typeof r){var s=_k(r,i.accessToken,i.accessTokenParam||"access_token",e||location.href);if(i.transformRequest){var o=i.transformRequest(s,"GeoJSON");o instanceof Request&&(s=decodeURI(o.url))}if(/\{bbox-[0-9a-z-]+\}/.test(s)){var a=new Ed({attributions:t.attribution,format:yD,url:function(t,e,i){var r=_D(i);return s.replace(r,t.join(",")+","+i.getCode())},strategy:_d});return a.set("mapbox-source",t),a}return new Ed({attributions:t.attribution,format:yD,url:s})}n.features=yD.readFeatures(r,{featureProjection:Object(h.s)()||"EPSG:3857"});var l=new Ed(Object.assign({attributions:t.attribution,format:yD},n));return l.set("mapbox-source",t),l}class xD extends sn.a{constructor(t){super(ns.a.ERROR),this.error=t}}var bD=class extends jw{constructor(t){const e=!("declutter"in t)||t.declutter,i=new Ow({state:"loading",format:new Yw});super({source:i,background:t.background,declutter:e,className:t.className,opacity:t.opacity,visible:t.visible,zIndex:t.zIndex,minResolution:t.minResolution,maxResolution:t.maxResolution,minZoom:t.minZoom,maxZoom:t.maxZoom,renderOrder:t.renderOrder,renderBuffer:t.renderBuffer,renderMode:t.renderMode,map:t.map,updateWhileAnimating:t.updateWhileAnimating,updateWhileInteracting:t.updateWhileInteracting,preload:t.preload,useInterimTilesOnError:t.useInterimTilesOnError,properties:t.properties}),t.accessToken&&(this.accessToken=t.accessToken);cD(this,t.styleUrl,t.layers||t.source,{accessToken:this.accessToken}).then(()=>{i.setState("ready")}).catch(t=>{this.dispatchEvent(new xD(t));this.getSource().setState("error")}),void 0===this.getBackground()&&dD(this,t.styleUrl,{accessToken:this.accessToken})}},wD=i(73),ED=i(75);class SD extends wD.a{constructor(t){super(t),this.vectorRenderer_=new Tp(t),this.layerImageRatio_=t.getImageRatio(),this.coordinateToVectorPixelTransform_=Object(gn.d)(),this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(t){if(!this.vectorRenderer_)return Promise.resolve([]);const e=Object(gn.a)(this.coordinateToVectorPixelTransform_,Object(gn.a)(this.renderedPixelToCoordinateTransform_,t.slice()));return this.vectorRenderer_.getFeatures(e)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(t){const e=t.pixelRatio,i=t.viewState,r=i.resolution,n=t.viewHints,s=this.vectorRenderer_;let o=t.extent;1!==this.layerImageRatio_&&(o=o.slice(0),Object(pt.L)(o,this.layerImageRatio_));const a=Object(pt.G)(o)/r,l=Object(pt.A)(o)/r;if(!n[Ps.a.ANIMATING]&&!n[Ps.a.INTERACTING]&&!Object(pt.J)(o)){s.useContainer(null,null);const n=s.context,h=t.layerStatesArray[t.layerIndex];n.globalAlpha=h.opacity;const c=Object.assign({},h,{opacity:1}),u=Object.assign({},t,{declutterTree:new od.a(9),extent:o,size:[a,l],viewState:Object.assign({},t.viewState,{rotation:0}),layerStatesArray:[c],layerIndex:0});let d=!0;const g=new ED.a(o,r,e,n.canvas,(function(t){s.prepareFrame(u)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(u,null)&&(s.renderDeclutter(u),d=!1),t())}));g.addEventListener(ns.a.CHANGE,()=>{if(g.getState()!==Id.a.LOADED)return;this.image_=d?null:g;const t=g.getResolution(),r=g.getPixelRatio(),n=t*e/r;this.renderedResolution=n,this.coordinateToVectorPixelTransform_=Object(gn.b)(this.coordinateToVectorPixelTransform_,a/2,l/2,1/n,-1/n,0,-i.center[0],-i.center[1])}),g.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,r,n){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,r,n):super.forEachFeatureAtCoordinate(t,e,i,r,n)}}var ID=SD;var CD=class extends Wg{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new ID(this)}},TD=i(66),LD=i(68);function MD(t){return t instanceof Image||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement?t:null}function OD(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t instanceof DataView?t:null}let RD=null;const PD=[256,256];class ND extends Sw.a{constructor(t){const e=ou.a.IDLE;super(t.tileCoord,e,{transition:t.transition,interpolate:t.interpolate}),this.loader_=t.loader,this.data_=null,this.error_=null,this.size_=t.size||null}getSize(){if(this.size_)return this.size_;const t=MD(this.data_);return t?[t.width,t.height]:PD}getData(){return this.data_}getError(){return this.error_}load(){if(this.state!==ou.a.IDLE&&this.state!==ou.a.ERROR)return;this.state=ou.a.LOADING,this.changed();const t=this;this.loader_().then((function(e){t.data_=e,t.state=ou.a.LOADED,t.changed()})).catch((function(e){t.error_=e,t.state=ou.a.ERROR,t.changed()}))}}var AD=ND,FD=i(69);var kD=class extends AD{constructor(t){super({tileCoord:t.tileCoord,loader:()=>Promise.resolve(new Uint8Array(4)),interpolate:t.interpolate,transition:t.transition}),this.pixelRatio_=t.pixelRatio,this.gutter_=t.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=t.sourceTileGrid,this.targetTileGrid_=t.targetTileGrid,this.wrappedTileCoord_=t.wrappedTileCoord||t.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const e=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),i=this.targetTileGrid_.getExtent();let r=this.sourceTileGrid_.getExtent();const n=i?Object(pt.B)(e,i):e;if(0===Object(pt.u)(n))return void(this.state=ou.a.EMPTY);const s=t.sourceProj,o=s.getExtent();o&&(r=r?Object(pt.B)(r,o):o);const a=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),l=t.targetProj,h=Object(Su.a)(s,l,n,a);if(!isFinite(h)||h<=0)return void(this.state=ou.a.EMPTY);const c=void 0!==t.errorThreshold?t.errorThreshold:LD.a;if(this.triangulation_=new FD.a(s,l,n,r,h*c,a),0===this.triangulation_.getTriangles().length)return void(this.state=ou.a.EMPTY);this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let u=this.triangulation_.calculateSourceExtent();if(r&&(s.canWrapX()?(u[1]=Object(Fs.b)(u[1],r[1],r[3]),u[3]=Object(Fs.b)(u[3],r[1],r[3])):u=Object(pt.B)(u,r)),Object(pt.u)(u)){const e=this.sourceTileGrid_.getTileRangeForExtentAndZ(u,this.sourceZ_),i=t.getTileFunction;for(let t=e.minX;t<=e.maxX;t++)for(let r=e.minY;r<=e.maxY;r++){const e=i(this.sourceZ_,t,r,this.pixelRatio_);e&&this.sourceTiles_.push(e)}0===this.sourceTiles_.length&&(this.state=ou.a.EMPTY)}else this.state=ou.a.EMPTY}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach(e=>{if(!e||e.getState()!==ou.a.LOADED)return;const i=e.getSize(),r=this.gutter_;let n;const s=OD(e.getData());n=s||function(t){RD||(RD=Object(kn.a)(t.width,t.height,void 0,{willReadFrequently:!0}));const e=RD.canvas,i=t.width;e.width!==i&&(e.width=i);const r=t.height;return e.height!==r&&(e.height=r),RD.drawImage(t,i,r),RD.getImageData(0,0,i,r).data}(MD(e.getData()));const o=[i[0]+2*r,i[1]+2*r],a=n instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=new h(n.buffer),u=h.BYTES_PER_ELEMENT,d=u*c.length/l,g=c.byteLength/o[1],p=Math.floor(g/u/o[0]),f=l*p;let m=c;if(c.length!==f){m=new h(f);let t=0,e=0;const i=o[0]*p;for(let r=0;r=0;--e){const i=[];for(let r=0,n=t.length;r{const i=e.getState();if(i!==ou.a.IDLE&&i!==ou.a.LOADING)return;t++;const r=Object(is.a)(e,ns.a.CHANGE,(function(){const i=e.getState();i!=ou.a.LOADED&&i!=ou.a.ERROR&&i!=ou.a.EMPTY||(Object(is.c)(r),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(r)}),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t){t.getState()==ou.a.IDLE&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(is.c),this.sourcesListenerKeys_=null}},DD=i(49);function jD(t,e,i){const r=i?t.LINEAR:t.NEAREST;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,r),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,r)}function GD(t,e,i,r,n,s){const o=t.getGL();let a,l;if(i instanceof Float32Array){a=o.FLOAT,t.getExtension("OES_texture_float");l=null!==t.getExtension("OES_texture_float_linear")}else a=o.UNSIGNED_BYTE,l=!0;jD(o,e,s&&l);const h=i.byteLength/r[1];let c,u=1;switch(h%8==0?u=8:h%4==0?u=4:h%2==0&&(u=2),n){case 1:c=o.LUMINANCE;break;case 2:c=o.LUMINANCE_ALPHA;break;case 3:c=o.RGB;break;case 4:c=o.RGBA;break;default:throw new Error("Unsupported number of bands: "+n)}const d=o.getParameter(o.UNPACK_ALIGNMENT);o.pixelStorei(o.UNPACK_ALIGNMENT,u),o.texImage2D(o.TEXTURE_2D,0,c,r[0],r[1],0,c,a,i),o.pixelStorei(o.UNPACK_ALIGNMENT,d)}let zD=null;class BD extends vs.a{constructor(t){super(),this.tile,this.textures=[],this.handleTileChange_=this.handleTileChange_.bind(this),this.renderSize_=Object(ja.d)(t.grid.getTileSize(t.tile.tileCoord[0])),this.gutter_=t.gutter||0,this.bandCount=NaN,this.helper_=t.helper;const e=new JS(qS,WS);e.fromArray([0,1,1,1,1,0,0,0]),this.helper_.flushBufferData(e),this.coords=e,this.setTile(t.tile)}setTile(t){if(t!==this.tile)if(this.tile&&this.tile.removeEventListener(ns.a.CHANGE,this.handleTileChange_),this.tile=t,this.textures.length=0,this.loaded=t.getState()===ou.a.LOADED,this.loaded)this.uploadTile_();else{if(t instanceof ru.a){const e=t.getImage();e instanceof Image&&!e.crossOrigin&&(e.crossOrigin="anonymous")}t.addEventListener(ns.a.CHANGE,this.handleTileChange_)}}uploadTile_(){const t=this.helper_,e=t.getGL(),i=this.tile;let r;r=i instanceof ru.a||i instanceof nu.a?i.getImage():i.getData();const n=MD(r);if(n){const t=e.createTexture();return this.textures.push(t),this.bandCount=4,void function(t,e,i,r){jD(t,e,r),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)}(e,t,n,i.interpolate)}r=OD(r);const s=i.getSize(),o=[s[0]+2*this.gutter_,s[1]+2*this.gutter_],a=r instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=h.BYTES_PER_ELEMENT,u=r.byteLength/o[1];this.bandCount=Math.floor(u/c/o[0]);const d=Math.ceil(this.bandCount/4);if(1===d){const n=e.createTexture();return this.textures.push(n),void GD(t,n,r,o,this.bandCount,i.interpolate)}const g=new Array(d);for(let t=0;t=p;--n){const i=l.getTileRangeForExtentAndZ(e,n,this.tempTileRange_),o=l.getResolution(n);for(let e=i.minX;e<=i.maxX;++e)for(let g=i.minY;g<=i.maxY;++g){const i=Object(uu.a)(n,e,g,this.tempTileCoord_),p=aj(a,i);let f,m;if(d.containsKey(p)&&(f=d.get(p),m=f.tile),!f||f.tile.key!==a.getKey())if(m=a.getTile(n,e,g,t.pixelRatio,s.projection),f)if(this.isDrawableTile_(m))f.setTile(m);else{const t=m.getInterimTile();f.setTile(t)}else f=new UD({tile:m,grid:l,helper:this.helper,gutter:h}),d.set(p,f);sj(r,f,n);const _=m.getKey();u[_]=!0,m.getState()===ou.a.IDLE&&(t.tileQueue.isKeyQueued(_)||t.tileQueue.enqueue([m,c,l.getTileCoordCenter(i),o]))}}}renderFrame(t){this.frameState_=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,r=this.getLayer(),n=r.getRenderSource(),s=n.getTileGridForProjection(i.projection),o=n.getGutterForProjection(i.projection),a=oj(t,t.extent),l=s.getZForResolution(i.resolution,n.zDirection),h={},c=r.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,n.zDirection),r=oj(t,t.nextExtent);this.enqueueTiles(t,r,e,h,c)}this.enqueueTiles(t,a,l,h,0),c>0&&setTimeout(()=>{this.enqueueTiles(t,a,l-1,h,c-1)},0);const d={},g=Object(dn.b)(this),p=t.time;let f=!1;const m=h[l];for(let t=0,e=m.length;t=n;--t){if(this.findAltTiles_(s,r,t,h))break}}this.helper.useProgram(this.program_,t),this.helper.prepareDraw(t,!f);const _=Object.keys(h).map(Number).sort(u.a),y=i.center[0],v=i.center[1];for(let r=0,n=_.length;r0&&(C=s.getTileCoordExtent(h),Object(pt.B)(C,a,C)),this.helper.setUniformFloatVec4(JD,C),this.helper.setUniformFloatValue(QD,i.resolution),this.helper.setUniformFloatValue(tj,i.zoom),this.helper.drawElements(0,this.indices_.getSize())}}this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const x=this.helper.getCanvas(),b=this.tileTextureCache_;for(;b.canExpireCache();){b.pop().dispose()}return t.postRenderFunctions.push((function(t,e){n.updateCacheSize(.1,e.viewState.projection),n.expireCache(e.viewState.projection,rj)})),this.postRender(e,t),x}getData(t){if(!this.helper.getGL())return null;const e=this.frameState_;if(!e)return null;const i=this.getLayer(),r=Object(gn.a)(e.pixelToCoordinateTransform,t.slice()),n=e.viewState,s=i.getExtent();if(s&&!Object(pt.g)(Object(h.m)(s,n.projection),r))return null;const o=i.getSources(Object(pt.c)([r]),n.resolution);let a,l,c;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(c=l.getTileGridForProjection(n.projection),l.getWrapX())break;const t=c.getExtent();if(!t||Object(pt.g)(t,r))break}if(a<0)return null;const u=this.tileTextureCache_;for(let t=c.getZForResolution(n.resolution);t>=c.getMinZoom();--t){const e=c.getTileCoordForCoordAndZ(r,t),i=aj(l,e);if(!u.containsKey(i))continue;const n=u.get(i),s=n.tile;if((s instanceof nu.a||s instanceof kD)&&s.getState()===ou.a.EMPTY)return null;if(!n.loaded)continue;const o=c.getOrigin(t),a=Object(ja.d)(c.getTileSize(t)),h=c.getResolution(t),d=(r[0]-o[0])/h-e[1]*a[0],g=(o[1]-r[1])/h-e[2]*a[1];return n.getPixelData(d,g)}return null}findAltTiles_(t,e,i,r){const n=t.getTileRangeForTileCoordAndZ(e,i,this.tempTileRange_);if(!n)return!1;let s=!0;const o=this.tileTextureCache_,a=this.getLayer().getRenderSource();for(let t=n.minX;t<=n.maxX;++t)for(let e=n.minY;e<=n.maxY;++e){const n=aj(a,[i,t,e]);let l=!1;if(o.containsKey(n)){const t=o.get(n);t.loaded&&(sj(r,t,i),l=!0)}l||(s=!1)}return s}clearCache(){const t=this.tileTextureCache_;t.forEach(t=>t.dispose()),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_,delete this.tileTextureCache_,delete this.frameState_}};var hj=class{constructor(t,e){this.name=t,this.data=e,this.texture_=null}getTexture(t){if(!this.texture_){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.data.length/4,1,0,t.RGBA,t.UNSIGNED_BYTE,this.data),this.texture_=e}return this.texture_}};const cj=1,uj=2,dj=4,gj=8,pj=16,fj=31,mj=0,_j={};function yj(t){if("number"==typeof t)return cj;if("boolean"==typeof t)return gj;if("string"==typeof t)return Object(pn.d)(t)?dj|uj:uj;if(!Array.isArray(t))throw new Error("Unhandled value type: "+JSON.stringify(t));const e=t;if(e.every((function(t){return"number"==typeof t})))return 3===e.length||4===e.length?dj|pj:pj;if("string"!=typeof e[0])throw new Error("Expected an expression operator but received: "+JSON.stringify(e));const i=_j[e[0]];if(void 0===i)throw new Error("Unrecognized expression operator: "+JSON.stringify(e));return i.getReturnType(e.slice(1))}function vj(t){const e=t.toString();return e.includes(".")?e:e+".0"}function xj(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(vj).join(", ")})`}function bj(t,e){return void 0===t.stringLiteralsMap[e]&&(t.stringLiteralsMap[e]=Object.keys(t.stringLiteralsMap).length),t.stringLiteralsMap[e]}function wj(t,e,i){if(Array.isArray(e)&&"string"==typeof e[0]){const r=_j[e[0]];if(void 0===r)throw new Error("Unrecognized expression operator: "+JSON.stringify(e));return r.toGlsl(t,e.slice(1),i)}const r=yj(e);if((r&cj)>0)return vj(e);if((r&gj)>0)return e.toString();if((r&uj)>0&&(void 0===i||i==uj))return function(t,e){return vj(bj(t,e))}(t,e.toString());if((r&dj)>0&&(void 0===i||i==dj))return function(t){const e=Object(pn.a)(t).slice();return e.length<4&&e.push(1),xj(e.map((function(t,e){return e<3?t/255:t})))}(e);if((r&pj)>0)return xj(e);throw new Error(`Unexpected expression ${e} (expected type ${i})`)}function Ej(t){if(!(yj(t)&cj))throw new Error(`A numeric value was expected, got ${JSON.stringify(t)} instead`)}function Sj(t){for(let e=0;ee)throw new Error(`At most ${e} arguments were expected, got ${t.length} instead`)}function Oj(t){if(t.length%2!=0)throw new Error(`An even amount of arguments was expected, got ${t} instead`)}function Rj(t,e){if(i=e,Math.log2(i)%1!=0)throw new Error("Could not infer only one type from the following expression: "+JSON.stringify(t));var i}function Pj(t){return"u_var_"+t}_j.get={getReturnType:function(t){return fj},toGlsl:function(t,e){Tj(e,1),Ij(e[0]);const i=e[0].toString();t.attributes.includes(i)||t.attributes.push(i);return(t.inFragmentShader?"v_":"a_")+i}},_j.var={getReturnType:function(t){return fj},toGlsl:function(t,e){Tj(e,1),Ij(e[0]);const i=e[0].toString();return t.variables.includes(i)||t.variables.push(i),Pj(i)}};_j.palette={getReturnType:function(t){return dj},toGlsl:function(t,e){Tj(e,2),Ej(e[0]);const i=wj(t,e[0]),r=e[1];if(!Array.isArray(r))throw new Error("The second argument of palette must be an array");const n=r.length,s=new Uint8Array(4*n);for(let t=0;twj(e,t)).join(` ${t} `),r=`(${r})`,r}}}function kj(t,e){const i=`\n attribute vec2 ${ej};\n uniform mat4 ${qD};\n uniform float ${XD};\n uniform float ${HD};\n uniform float ${ZD};\n uniform float ${KD};\n uniform float ${$D};\n uniform float ${WD};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${ej};\n v_mapCoord = vec2(\n ${KD} + ${ZD} * ${XD} * v_textureCoord[0],\n ${$D} - ${ZD} * ${HD} * v_textureCoord[1]\n );\n gl_Position = ${qD} * vec4(${ej}, ${WD}, 1.0);\n }\n `,r={inFragmentShader:!0,variables:[],attributes:[],stringLiteralsMap:{},functions:{},bandCount:e},n=[];if(void 0!==t.color){const e=wj(r,t.color,dj);n.push(`color = ${e};`)}if(void 0!==t.contrast){const e=wj(r,t.contrast,cj);n.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=wj(r,t.exposure,cj);n.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=wj(r,t.saturation,cj);n.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=wj(r,t.gamma,cj);n.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=wj(r,t.brightness,cj);n.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=r.variables.length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${r.variables})`);for(let e=0;e ${JD}[2] ||\n v_mapCoord[1] > ${JD}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${VD}[0], v_textureCoord);\n\n ${n.join("\n")}\n\n if (color.a == 0.0) {\n discard;\n }\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${YD};\n }`,uniforms:s,paletteTextures:r.paletteTextures}}_j.band={getReturnType:function(t){return cj},toGlsl:function(t,e){Lj(e,1),Mj(e,3);const i=e[0];if(!(Nj in t.functions)){let e="";const i=t.bandCount||1;for(let t=0;twj(t,e)).join(" * ")})`}},_j["/"]={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} / ${wj(t,e[1])})`}},_j["+"]={getReturnType:function(t){return cj},toGlsl:function(t,e){return Lj(e,2),Sj(e),`(${e.map(e=>wj(t,e)).join(" + ")})`}},_j["-"]={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} - ${wj(t,e[1])})`}},_j.clamp={getReturnType:function(t){return cj},toGlsl:function(t,e){Tj(e,3),Sj(e);const i=wj(t,e[1]),r=wj(t,e[2]);return`clamp(${wj(t,e[0])}, ${i}, ${r})`}},_j["%"]={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`mod(${wj(t,e[0])}, ${wj(t,e[1])})`}},_j["^"]={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`pow(${wj(t,e[0])}, ${wj(t,e[1])})`}},_j.abs={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`abs(${wj(t,e[0])})`}},_j.floor={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`floor(${wj(t,e[0])})`}},_j.round={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`floor(${wj(t,e[0])} + 0.5)`}},_j.ceil={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`ceil(${wj(t,e[0])})`}},_j.sin={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`sin(${wj(t,e[0])})`}},_j.cos={getReturnType:function(t){return cj},toGlsl:function(t,e){return Tj(e,1),Sj(e),`cos(${wj(t,e[0])})`}},_j.atan={getReturnType:function(t){return cj},toGlsl:function(t,e){return Lj(e,1),Mj(e,2),Sj(e),2===e.length?`atan(${wj(t,e[0])}, ${wj(t,e[1])})`:`atan(${wj(t,e[0])})`}},_j[">"]={getReturnType:function(t){return gj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} > ${wj(t,e[1])})`}},_j[">="]={getReturnType:function(t){return gj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} >= ${wj(t,e[1])})`}},_j["<"]={getReturnType:function(t){return gj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} < ${wj(t,e[1])})`}},_j["<="]={getReturnType:function(t){return gj},toGlsl:function(t,e){return Tj(e,2),Sj(e),`(${wj(t,e[0])} <= ${wj(t,e[1])})`}},_j["=="]=Aj("=="),_j["!="]=Aj("!="),_j["!"]={getReturnType:function(t){return gj},toGlsl:function(t,e){return Tj(e,1),Cj(e[0]),`(!${wj(t,e[0])})`}},_j.all=Fj("&&"),_j.any=Fj("||"),_j.between={getReturnType:function(t){return gj},toGlsl:function(t,e){Tj(e,3),Sj(e);const i=wj(t,e[1]),r=wj(t,e[2]),n=wj(t,e[0]);return`(${n} >= ${i} && ${n} <= ${r})`}},_j.array={getReturnType:function(t){return pj},toGlsl:function(t,e){Lj(e,2),Mj(e,4),Sj(e);const i=e.map((function(e){return wj(t,e,cj)}));return`vec${e.length}(${i.join(", ")})`}},_j.color={getReturnType:function(t){return dj},toGlsl:function(t,e){Lj(e,3),Mj(e,4),Sj(e);const i=e;3===e.length&&i.push(1);const r=e.map((function(e,i){return wj(t,e,cj)+(i<3?" / 255.0":"")}));return`vec${e.length}(${r.join(", ")})`}},_j.interpolate={getReturnType:function(t){let e=dj|cj;for(let i=3;i=1;i-=2){o=`(${n} == ${wj(t,e[i])} ? ${wj(t,e[i+1],r)} : ${o||s})`}return o}},_j.case={getReturnType:function(t){let e=fj;for(let i=1;i=0;i-=2){s=`(${wj(t,e[i])} ? ${wj(t,e[i+1],r)} : ${s||n})`}return s}};class Dj extends kP.a{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(QS.a.SOURCE,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=kj(this.style_,this.getSourceBandCount_());return new lj(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let r;for(let n=0,s=e.length;n{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}n=n&&"ready"==i}const s=this.renderSources(t,r);if(this.getRenderer().renderComplete&&n)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter(t=>!r.includes(t));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=kj(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,paletteTextures:e.paletteTextures}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}Dj.prototype.dispose;var jj=Dj;var Gj=class extends bu{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:Object(h.o)("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet;const i="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_;Object(UP.b)(i,this.handleImageryMetadataResponse.bind(this),void 0,"jsonp")}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,r=this.getProjection(),n=Object(vu.b)(r),s=this.hidpi_?2:1,o=e.imageWidth==e.imageHeight?e.imageWidth/s:[e.imageWidth/s,e.imageHeight/s],a=Object(vu.a)({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:o});this.tileGrid=a;const l=this.culture_,c=this.hidpi_;if(this.tileUrlFunction=pu(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],r=e.imageUrl.replace("{subdomain}",t).replace("{culture}",l);return function(t,e,n){if(!t)return;Object(uu.a)(t[0],t[1],t[2],i);let s=r;return c&&(s+="&dpi=d1&device=mobile"),s.replace("{quadkey}",function(t){const e=t[0],i=new Array(e);let r,n,s=1<>=1;return i.join("")}(i))}}))),e.imageryProviders){const t=Object(h.r)(Object(h.o)("EPSG:4326"),this.getProjection());this.setAttributions(i=>{const r=[],n=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(n.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(n.center,o)[0];return e.imageryProviders.map((function(e){let n=!1;const s=e.coverageAreas;for(let e=0,r=s.length;e=r.zoomMin&&a<=r.zoomMax){const e=r.bbox,s=[e[1],e[0],e[3],e[2]],o=Object(pt.a)(s,t);if(Object(pt.H)(o,i.extent)){n=!0;break}}}n&&r.push(e.attribution)})),r.push('Terms of Use'),r})}this.setState("ready")}};var zj=class extends gw{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}};class Bj extends cu.b{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=Object(vu.a)({extent:Object(vu.b)(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?Object(ja.d)(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?Object(ja.d)(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||Object(h.j)(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,r,n){const s=this.getTileCacheForProjection(r),o=Object(uu.e)(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map((t,e)=>{const i=Object(ja.d)(a.getTileSize(e)),r=this.getTileSize(e);return Math.max(r[0]/i[0],r[1]/i[1])})),h=this.getTileGridForProjection(n),c=this.getTileGridForProjection(r),u=[t,e,i],d=this.getTileCoordForTileUrlFunction(u,r),g=Object.assign({sourceProj:n,sourceTileGrid:h,targetProj:r,targetTileGrid:c,tileCoord:u,wrappedTileCoord:d,pixelRatio:l,gutter:this.getGutterForProjection(n),getTileFunction:(t,e,i,r)=>this.getTile(t,e,i,r,n)},this.tileOptions),p=new kD(g);return p.key=this.getKey(),p}getTile(t,e,i,r,n){const s=this.getProjection();if(s&&n&&!Object(h.j)(s,n))return this.getReprojTile_(t,e,i,n,s);const o=this.getTileSize(t),a=Object(uu.e)(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const c=Object.assign({tileCoord:[t,e,i],loader:function(){return Object(un.e)((function(){return l(t,e,i)}))},size:o},this.tileOptions),u=new AD(c);return u.key=this.getKey(),u.addEventListener(ns.a.CHANGE,this.handleTileChange_),this.tileCache.set(a,u),u}handleTileChange_(t){const e=t.target,i=Object(dn.b)(e),r=e.getState();let n;r==ou.a.LOADING?(this.tileLoadingKeys_[i]=!0,n=au):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],n=r==ou.a.ERROR?hu:r==ou.a.LOADED?lu:void 0),n&&this.dispatchEvent(new cu.a(n,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||Object(h.j)(e,t)))return this.tileGrid;const i=Object(dn.b)(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=Object(vu.c)(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=Object(h.o)(t);if(i){const t=Object(dn.b)(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||Object(h.j)(e,t))return this.tileCache;const i=Object(dn.b)(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new su.a(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const r=this.tileCacheForProjection_[t];r.expireCache(r==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}}var Uj=Bj,Vj=i(83),qj=i(85),Yj=i.n(qj),Wj=i(115),Xj=i.n(Wj),Hj=i(11);const Zj=new Map;function Kj(t,e){Array.isArray(t)||(t=[t]),t.forEach(t=>Zj.set(t,e))}async function $j(t){const e=Zj.get(t.Compression);if(!e)throw new Error("Unknown compression method identifier: "+t.Compression);return new(await e())(t)}function Jj(t,e,i,r=1){return new(Object.getPrototypeOf(t).constructor)(e*i*r)}function Qj(t,e,i){return(1-i)*t+i*e}function tG(t,e,i,r,n,s="nearest"){switch(s.toLowerCase()){case"nearest":return function(t,e,i,r,n){const s=e/r,o=i/n;return t.map(t=>{const a=Jj(t,r,n);for(let l=0;l{const a=Jj(t,r,n);for(let l=0;lPromise.resolve().then(i.bind(null,166)).then(t=>t.default)),Kj(5,()=>Promise.resolve().then(i.bind(null,167)).then(t=>t.default)),Kj(6,()=>{throw new Error("old style JPEG compression is not supported.")}),Kj(7,()=>Promise.resolve().then(i.bind(null,168)).then(t=>t.default)),Kj([8,32946],()=>Promise.resolve().then(i.bind(null,169)).then(t=>t.default)),Kj(32773,()=>Promise.resolve().then(i.bind(null,170)).then(t=>t.default)),Kj(34887,()=>Promise.resolve().then(i.bind(null,171)).then(t=>t.default)),Kj(50001,()=>Promise.resolve().then(i.bind(null,172)).then(t=>t.default));var nG=class{constructor(t,e,i,r,n,s){this.fileDirectory=t,this.geoKeys=e,this.dataView=i,this.littleEndian=r,this.tiles=n?{}:null,this.isTiled=!t.StripOffsets;const o=t.PlanarConfiguration;if(this.planarConfiguration=void 0===o?1:o,1!==this.planarConfiguration&&2!==this.planarConfiguration)throw new Error("Invalid planar configuration.");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return void 0!==this.fileDirectory.SamplesPerPixel?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:void 0!==this.fileDirectory.RowsPerStrip?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(t){return this.isTiled||(t+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-t*this.getTileHeight()}getBytesPerPixel(){let t=0;for(let e=0;e=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[t]/8)}getReaderForSample(t){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,i=this.fileDirectory.BitsPerSample[t];switch(e){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(t,e){return Object(Vj.getFloat16)(this,t,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(t=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1}getBitsPerSample(t=0){return this.fileDirectory.BitsPerSample[t]}getArrayForSample(t,e){return rG(this.getSampleFormat(t),this.getBitsPerSample(t),e)}async getTileOrStrip(t,e,i,r,n){const s=Math.ceil(this.getWidth()/this.getTileWidth()),o=Math.ceil(this.getHeight()/this.getTileHeight());let a;const{tiles:l}=this;let h,c;1===this.planarConfiguration?a=e*s+t:2===this.planarConfiguration&&(a=i*s*o+e*s+t),this.isTiled?(h=this.fileDirectory.TileOffsets[a],c=this.fileDirectory.TileByteCounts[a]):(h=this.fileDirectory.StripOffsets[a],c=this.fileDirectory.StripByteCounts[a]);const u=(await this.source.fetch([{offset:h,length:c}],n))[0];let d;return null!==l&&l[a]?d=l[a]:(d=(async()=>{let t=await r.decode(this.fileDirectory,u);const i=this.getSampleFormat(),n=this.getBitsPerSample();return function(t,e){return(1!==t&&2!==t||!(e<=32)||e%8!=0)&&(3!==t||16!==e&&32!==e&&64!==e)}(i,n)&&(t=function(t,e,i,r,n,s,o){const a=new DataView(t),l=2===i?1:r,h=rG(e,n,2===i?o*s:o*s*r),c=parseInt("1".repeat(n),2);if(1===e){let t;t=1===i?r*n:n;let e=s*t;0!=(7&e)&&(e=e+7&-8);for(let t=0;t>8-n-g&c;else if(g+n<=16)h[u]=a.getUint16(d)>>16-n-g&c;else if(g+n<=24){const t=a.getUint16(d)<<8|a.getUint8(d+2);h[u]=t>>24-n-g&c}else h[u]=a.getUint32(d)>>32-n-g&c}}}}return h.buffer}(t,i,this.planarConfiguration,this.getSamplesPerPixel(),n,this.getTileWidth(),this.getBlockHeight(e))),t})(),null!==l&&(l[a]=d)),{x:t,y:e,sample:i,data:await d}}async _readRaster(t,e,i,r,n,s,o,a,l){const h=this.getTileWidth(),c=this.getTileHeight(),u=this.getWidth(),d=this.getHeight(),g=Math.max(Math.floor(t[0]/h),0),p=Math.min(Math.ceil(t[2]/h),Math.ceil(u/h)),f=Math.max(Math.floor(t[1]/c),0),m=Math.min(Math.ceil(t[3]/c),Math.ceil(d/c)),_=t[2]-t[0];let y=this.getBytesPerPixel();const v=[],x=[];for(let t=0;t{const s=n.data,o=new DataView(s),a=this.getBlockHeight(n.y),l=n.y*c,p=n.x*h,f=l+a,m=(n.x+1)*h,b=x[g],E=Math.min(a,a-(f-t[3]),d-l),S=Math.min(h,h-(m-t[2]),u-p);for(let n=Math.max(0,t[1]-l);nh[2]||h[1]>h[3])throw new Error("Invalid subsets");const c=(h[2]-h[0])*(h[3]-h[1]),u=this.getSamplesPerPixel();if(e&&e.length){for(let t=0;t=u)return Promise.reject(new RangeError(`Invalid sample index '${e[t]}'.`))}else for(let t=0;tl[2]||l[1]>l[3])throw new Error("Invalid subsets");const h=this.fileDirectory.PhotometricInterpretation;if(h===Hj.photometricInterpretations.RGB){let l=[0,1,2];if(this.fileDirectory.ExtraSamples!==Hj.ExtraSamplesValues.Unspecified&&o){l=[];for(let t=0;t>24)/500+a,h=a-(t[e+2]<<24>>24)/200;l=.95047*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),a=1*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),h=1.08883*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),n=3.2406*l+-1.5372*a+-.4986*h,s=-.9689*l+1.8758*a+.0415*h,o=.0557*l+-.204*a+1.057*h,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,r[i]=255*Math.max(0,Math.min(1,n)),r[i+1]=255*Math.max(0,Math.min(1,s)),r[i+2]=255*Math.max(0,Math.min(1,o))}return r}(g);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const t=new Uint8Array(f.length/3),e=new Uint8Array(f.length/3),i=new Uint8Array(f.length/3);for(let r=0,n=0;rvoid 0===Yj()(t,"sample")):r.filter(e=>Number(Yj()(e,"sample"))===t);for(let t=0;t0;let n=!0;for(let s=0;s<8;s++){let o=this._dataView.getUint8(t+(e?s:7-s));r&&(n?0!==o&&(o=255&~(o-1),n=!1):o=255&~o),i+=o*256**s}return r&&(i=-i),i}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat16(t,e){return Object(Vj.getFloat16)(this._dataView,t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}}class oG{constructor(t,e,i,r){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=i,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){const e=this.readUint32(t),i=this.readUint32(t+4);let r;if(this._littleEndian){if(r=e+2**32*i,!Number.isSafeInteger(r))throw new Error(r+" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues");return r}if(r=2**32*e+i,!Number.isSafeInteger(r))throw new Error(r+" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues");return r}readInt64(t){let e=0;const i=(128&this._dataView.getUint8(t+(this._littleEndian?7:0)))>0;let r=!0;for(let n=0;n<8;n++){let s=this._dataView.getUint8(t+(this._littleEndian?n:7-n));i&&(r?0!==s&&(s=255&~(s-1),r=!1):s=255&~s),e+=s*256**n}return i&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}}const aG="\r\n\r\n";function lG(t){if(void 0!==Object.fromEntries)return Object.fromEntries(t);const e={};for(const[i,r]of t)e[i.toLowerCase()]=r;return e}function hG(t){return lG(t.split("\r\n").map(t=>{const e=t.split(":").map(t=>t.trim());return e[0]=e[0].toLowerCase(),e}))}function cG(t){let e,i,r;return t&&([,e,i,r]=t.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),i=parseInt(i,10),r=parseInt(r,10)),{start:e,end:i,total:r}}var uG=i(56);class dG extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof t.maxAge&&0===t.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if("function"==typeof this.onEviction)for(const[e,i]of t)this.onEviction(e,i.value)}_deleteIfExpired(t,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(t,e.value),this.delete(t))}_getOrDeleteIfExpired(t,e){if(!1===this._deleteIfExpired(t,e))return e.value}_getItemValue(t,e){return e.expiry?this._getOrDeleteIfExpired(t,e):e.value}_peek(t,e){const i=e.get(t);return this._getItemValue(t,i)}_set(t,e){this.cache.set(t,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,e){this.oldCache.delete(t),this._set(t,e)}*_entriesAscending(){for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield t)}}for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield t)}}get(t){if(this.cache.has(t)){const e=this.cache.get(t);return this._getItemValue(t,e)}if(this.oldCache.has(t)){const e=this.oldCache.get(t);if(!1===this._deleteIfExpired(t,e))return this._moveToRecent(t,e),e.value}}set(t,e,{maxAge:i=this.maxAge}={}){const r="number"==typeof i&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;this.cache.has(t)?this.cache.set(t,{value:e,expiry:r}):this._set(t,{value:e,expiry:r})}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):!!this.oldCache.has(t)&&!this._deleteIfExpired(t,this.oldCache.get(t))}peek(t){return this.cache.has(t)?this._peek(t,this.cache):this.oldCache.has(t)?this._peek(t,this.oldCache):void 0}delete(t){const e=this.cache.delete(t);return e&&this._size--,this.oldCache.delete(t)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],i=e.length-t;i<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(i>0&&this._emitEvictions(e.slice(0,i)),this.oldCache=new Map(e.slice(i)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}}}*entriesDescending(){let t=[...this.cache];for(let e=t.length-1;e>=0;--e){const i=t[e],[r,n]=i;!1===this._deleteIfExpired(r,n)&&(yield[r,n.value])}t=[...this.oldCache];for(let e=t.length-1;e>=0;--e){const i=t[e],[r,n]=i;if(!this.cache.has(r)){!1===this._deleteIfExpired(r,n)&&(yield[r,n.value])}}}*entriesAscending(){for(const[t,e]of this._entriesAscending())yield[t,e.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(const e of this.oldCache.keys())this.cache.has(e)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,e=this){for(const[i,r]of this.entriesAscending())t.call(e,r,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}var gG=i(20);class pG{constructor(t,e,i=null){this.offset=t,this.length=e,this.data=i}get top(){return this.offset+this.length}}class fG{constructor(t,e,i){this.offset=t,this.length=e,this.blockIds=i}}class mG extends uG.a{constructor(t,{blockSize:e=65536,cacheSize:i=100}={}){super(),this.source=t,this.blockSize=e,this.blockCache=new dG({maxSize:i,onEviction:(t,e)=>{this.evictedBlocks.set(t,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(t,e){const i=[],r=[],n=[];this.evictedBlocks.clear();for(const{offset:e,length:s}of t){let t=e+s;const{fileSize:o}=this;null!==o&&(t=Math.min(t,o));for(let s=Math.floor(e/this.blockSize)*this.blockSize;sthis.abortedBlockIds.has(t)||!this.blockCache.has(t));if(a.forEach(t=>this.blockIdsToFetch.add(t)),a.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const t of a){const e=this.blockRequests.get(t);if(!e)throw new Error(`Block ${t} is not in the block requests`);o.push(e)}await Promise.allSettled(o)}if(e&&e.aborted)throw new gG.a("Request was aborted");const l=n.map(t=>this.blockCache.get(t)||this.evictedBlocks.get(t)),h=l.filter(t=>!t);if(h.length)throw new gG.b(h,"Request failed");const c=new Map(Object(gG.i)(n,l));return this.readSliceData(t,c)}fetchBlocks(t){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(e,t);for(let r=0;r{try{const t=(await i)[r],n=e*this.blockSize,s=n-t.offset,o=Math.min(s+this.blockSize,t.data.byteLength),a=t.data.slice(s,o),l=new pG(n,a.byteLength,a,e);this.blockCache.set(e,l),this.abortedBlockIds.delete(e)}catch(i){if("AbortError"!==i.name)throw i;i.signal=t,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(t){const e=Array.from(t).sort((t,e)=>t-e);if(0===e.length)return[];let i=[],r=null;const n=[];for(const t of e)null===r||r+1===t?(i.push(t),r=t):(n.push(new fG(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[t],r=t);return n.push(new fG(i[0]*this.blockSize,i.length*this.blockSize,i)),n}readSliceData(t,e){return t.map(t=>{let i=t.offset+t.length;null!==this.fileSize&&(i=Math.min(this.fileSize,i));const r=Math.floor(t.offset/this.blockSize),n=Math.floor(i/this.blockSize),s=new ArrayBuffer(t.length),o=new Uint8Array(s);for(let s=r;s<=n;++s){const r=e.get(s),n=r.offset-t.offset,a=r.top-i;let l,h=0,c=0;n<0?h=-n:n>0&&(c=n),l=a<0?r.length-h:i-r.offset-h;const u=new Uint8Array(r.data,h,l);o.set(u,c)}return s})}}var _G=i(62);class yG extends _G.b{constructor(t){super(),this.response=t}get status(){return this.response.status}getHeader(t){return this.response.headers.get(t)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class vG extends _G.a{constructor(t,e){super(t),this.credentials=e}async request({headers:t,credentials:e,signal:i}={}){const r=await fetch(this.url,{headers:t,credentials:e,signal:i});return new yG(r)}}class xG extends _G.b{constructor(t,e){super(),this.xhr=t,this.data=e}get status(){return this.xhr.status}getHeader(t){return this.xhr.getResponseHeader(t)}async getData(){return this.data}}class bG extends _G.a{constructRequest(t,e){return new Promise((i,r)=>{const n=new XMLHttpRequest;n.open("GET",this.url),n.responseType="arraybuffer";for(const[e,i]of Object.entries(t))n.setRequestHeader(e,i);n.onload=()=>{const t=n.response;i(new xG(n,t))},n.onerror=r,n.onabort=()=>r(new gG.a("Request aborted")),n.send(),e&&(e.aborted&&n.abort(),e.addEventListener("abort",()=>n.abort()))})}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}var wG=i(116);class EG extends uG.a{constructor(t,e,i,r){super(),this.client=t,this.headers=e,this.maxRanges=i,this.allowFullFile=r,this._fileSize=null}async fetch(t,e){return this.maxRanges>=t.length?this.fetchSlices(t,e):(this.maxRanges>0&&t.length,Promise.all(t.map(t=>this.fetchSlice(t,e))))}async fetchSlices(t,e){const i=await this.client.request({headers:{...this.headers,Range:"bytes="+t.map(({offset:t,length:e})=>`${t}-${t+e}`).join(",")},signal:e});if(i.ok){if(206===i.status){const{type:r,params:n}=function(t){const[e,...i]=t.split(";").map(t=>t.trim());return{type:e,params:lG(i.map(t=>t.split("=")))}}(i.getHeader("content-type"));if("multipart/byteranges"===r){const t=function(t,e){let i=null;const r=new TextDecoder("ascii"),n=[],s="--"+e,o=s+"--";for(let e=0;e<10;++e)r.decode(new Uint8Array(t,e,s.length))===s&&(i=e);if(null===i)throw new Error("Could not find initial boundary");for(;i1){const i=await Promise.all(t.slice(1).map(t=>this.fetchSlice(t,e)));return h.concat(i)}return h}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await i.getData();return this._fileSize=t.byteLength,[{data:t,offset:0,length:t.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(t,e){const{offset:i,length:r}=t,n=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+r}`},signal:e});if(n.ok){if(206===n.status){const t=await n.getData(),{total:e}=cG(n.getHeader("content-range"));return this._fileSize=e||null,{data:t,offset:i,length:r}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await n.getData();return this._fileSize=t.byteLength,{data:t,offset:0,length:t.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function SG(t,{blockSize:e,cacheSize:i}){return null===e?t:new mG(t,{blockSize:e,cacheSize:i})}function IG(t,{forceXHR:e=!1,...i}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(t,{headers:e={},maxRanges:i=0,allowFullFile:r=!1,...n}={}){const s=new bG(t);return SG(new EG(s,e,i,r),n)}(t,i):function(t,{headers:e={},maxRanges:i=0,allowFullFile:r=!1,...n}={}){const s=new wG.a(t);return SG(new EG(s,e,i,r),n)}(t,i):function(t,{headers:e={},credentials:i,maxRanges:r=0,allowFullFile:n=!1,...s}={}){const o=new vG(t,i);return SG(new EG(o,e,r,n),s)}(t,i)}uG.a;class CG extends uG.a{constructor(t){super(),this.file=t}async fetchSlice(t,e){return new Promise((i,r)=>{const n=this.file.slice(t.offset,t.offset+t.length),s=new FileReader;s.onload=t=>i(t.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(n),e&&e.addEventListener("abort",()=>s.abort())})}}i(120);const TG=Object(gG.f)(Hj.fieldTagNames),LG=Object(gG.f)(Hj.geoKeyNames),MG={};Object(gG.c)(MG,TG),Object(gG.c)(MG,LG);Object(gG.f)(Hj.fieldTypeNames);const OG={nextZero:(t,e)=>{let i=e;for(;0!==t[i];)i++;return i},readUshort:(t,e)=>t[e]<<8|t[e+1],readShort:(t,e)=>{const i=OG.ui8;return i[0]=t[e+1],i[1]=t[e+0],OG.i16[0]},readInt:(t,e)=>{const i=OG.ui8;return i[0]=t[e+3],i[1]=t[e+2],i[2]=t[e+1],i[3]=t[e+0],OG.i32[0]},readUint:(t,e)=>{const i=OG.ui8;return i[0]=t[e+3],i[1]=t[e+2],i[2]=t[e+1],i[3]=t[e+0],OG.ui32[0]},readASCII:(t,e,i)=>i.map(i=>String.fromCharCode(t[e+i])).join(""),readFloat:(t,e)=>{const i=OG.ui8;return Object(gG.g)(4,r=>{i[r]=t[e+3-r]}),OG.fl32[0]},readDouble:(t,e)=>{const i=OG.ui8;return Object(gG.g)(8,r=>{i[r]=t[e+7-r]}),OG.fl64[0]},writeUshort:(t,e,i)=>{t[e]=i>>8&255,t[e+1]=255&i},writeUint:(t,e,i)=>{t[e]=i>>24&255,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=i>>0&255},writeASCII:(t,e,i)=>{Object(gG.g)(i.length,r=>{t[e+r]=i.charCodeAt(r)})},ui8:new Uint8Array(8)};OG.fl64=new Float64Array(OG.ui8.buffer),OG.writeDouble=(t,e,i)=>{OG.fl64[0]=i,Object(gG.g)(8,i=>{t[e+i]=OG.ui8[7-i]})};function RG(t){switch(t){case Hj.fieldTypes.BYTE:case Hj.fieldTypes.ASCII:case Hj.fieldTypes.SBYTE:case Hj.fieldTypes.UNDEFINED:return 1;case Hj.fieldTypes.SHORT:case Hj.fieldTypes.SSHORT:return 2;case Hj.fieldTypes.LONG:case Hj.fieldTypes.SLONG:case Hj.fieldTypes.FLOAT:case Hj.fieldTypes.IFD:return 4;case Hj.fieldTypes.RATIONAL:case Hj.fieldTypes.SRATIONAL:case Hj.fieldTypes.DOUBLE:case Hj.fieldTypes.LONG8:case Hj.fieldTypes.SLONG8:case Hj.fieldTypes.IFD8:return 8;default:throw new RangeError("Invalid field type: "+t)}}function PG(t,e,i,r){let n=null,s=null;const o=RG(e);switch(e){case Hj.fieldTypes.BYTE:case Hj.fieldTypes.ASCII:case Hj.fieldTypes.UNDEFINED:n=new Uint8Array(i),s=t.readUint8;break;case Hj.fieldTypes.SBYTE:n=new Int8Array(i),s=t.readInt8;break;case Hj.fieldTypes.SHORT:n=new Uint16Array(i),s=t.readUint16;break;case Hj.fieldTypes.SSHORT:n=new Int16Array(i),s=t.readInt16;break;case Hj.fieldTypes.LONG:case Hj.fieldTypes.IFD:n=new Uint32Array(i),s=t.readUint32;break;case Hj.fieldTypes.SLONG:n=new Int32Array(i),s=t.readInt32;break;case Hj.fieldTypes.LONG8:case Hj.fieldTypes.IFD8:n=new Array(i),s=t.readUint64;break;case Hj.fieldTypes.SLONG8:n=new Array(i),s=t.readInt64;break;case Hj.fieldTypes.RATIONAL:n=new Uint32Array(2*i),s=t.readUint32;break;case Hj.fieldTypes.SRATIONAL:n=new Int32Array(2*i),s=t.readInt32;break;case Hj.fieldTypes.FLOAT:n=new Float32Array(i),s=t.readFloat32;break;case Hj.fieldTypes.DOUBLE:n=new Float64Array(i),s=t.readFloat64;break;default:throw new RangeError("Invalid field type: "+e)}if(e!==Hj.fieldTypes.RATIONAL&&e!==Hj.fieldTypes.SRATIONAL)for(let e=0;et.getWidth()-e.getWidth());for(let e=0;er||s&&s>o)break}}let u=e;if(o){const[t,e]=a.getOrigin(),[i,r]=l.getResolution(a);u=[Math.round((o[0]-t)/i),Math.round((o[1]-e)/r),Math.round((o[2]-t)/i),Math.round((o[3]-e)/r)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...t,window:u})}}class kG extends FG{constructor(t,e,i,r,n={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=i,this.firstIFDOffset=r,this.cache=n.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){const i=this.bigTiff?4048:1024;return new oG((await this.source.fetch([{offset:t,length:void 0!==e?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){const e=this.bigTiff?20:12,i=this.bigTiff?8:2;let r=await this.getSlice(t);const n=this.bigTiff?r.readUint64(t):r.readUint16(t),s=n*e+(this.bigTiff?16:6);r.covers(t,s)||(r=await this.getSlice(t,s));const o={};let a=t+(this.bigTiff?8:2);for(let t=0;t{const e=await this.ifdRequests[t-1];if(0===e.nextIFDByteOffset)throw new AG(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){const e=await this.requestIFD(t);return new nG(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(t){if(!(t instanceof AG))throw t;e=!1}return t}async getGhostValues(){const t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=",i=e.length+100;let r=await this.getSlice(t,i);if(e===PG(r,Hj.fieldTypes.ASCII,e.length,t)){const e=PG(r,Hj.fieldTypes.ASCII,i,t).split("\n")[0],n=Number(e.split("=")[1].split(" ")[0])+e.length;n>i&&(r=await this.getSlice(t,n));const s=PG(r,Hj.fieldTypes.ASCII,n,t);this.ghostValues={},s.split("\n").filter(t=>t.length>0).map(t=>t.split("=")).forEach(([t,e])=>{this.ghostValues[t]=e})}return this.ghostValues}static async fromSource(t,e,i){const r=(await t.fetch([{offset:0,length:1024}],i))[0],n=new sG(r),s=n.getUint16(0,0);let o;if(18761===s)o=!0;else{if(19789!==s)throw new TypeError("Invalid byte order value.");o=!1}const a=n.getUint16(2,o);let l;if(42===a)l=!1;else{if(43!==a)throw new TypeError("Invalid magic number.");l=!0;if(8!==n.getUint16(4,o))throw new Error("Unsupported offset byte-size.")}const h=l?n.getUint64(8,o):n.getUint32(4,o);return new kG(t,o,l,h,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}class DG extends FG{constructor(t,e){super(),this.mainFile=t,this.overviewFiles=e,this.imageFiles=[t].concat(e),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){const t=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(t),this.fileDirectoriesPerFile}async getImage(t=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let e=0,i=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(t),this.imageCount=this.imageCounts.reduce((t,e)=>t+e,0),this.imageCount}}async function jG(t,e){return kG.fromSource(new CG(t),e)}const GG="undefined"!=typeof navigator&&navigator.hardwareConcurrency||2;var zG=class{constructor(t=GG,e){this.workers=null,this._awaitingDecoder=null,this.size=t,this.messageId=0,t&&(this._awaitingDecoder=e?Promise.resolve(e):new Promise(t=>{Promise.resolve().then(i.bind(null,173)).then(e=>{t(e.create)})}),this._awaitingDecoder.then(e=>{this._awaitingDecoder=null,this.workers=[];for(let i=0;ii.decode(t,e)):new Promise(i=>{const r=this.workers.find(t=>t.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;const n=this.messageId++,s=t=>{t.data.id===n&&(r.idle=!0,i(t.data.decoded),r.worker.removeEventListener("message",s))};r.worker.addEventListener("message",s),r.worker.postMessage({fileDirectory:t,buffer:e,id:n},[e])})}destroy(){this.workers&&(this.workers.forEach(t=>{t.worker.terminate()}),this.workers=null)}},BG=i(40);function UG(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,r=Hj.photometricInterpretations;return i===r.CMYK||i===r.YCbCr||i===r.CIELab||i===r.ICCLab}const VG="STATISTICS_MAXIMUM",qG="STATISTICS_MINIMUM";let YG;function WG(t){try{return t.getBoundingBox()}catch(e){const i=t.fileDirectory;return[0,0,i.ImageWidth,i.ImageLength]}}function XG(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.fileDirectory.ImageLength]}}function HG(t,e){try{return t.getResolution(e)}catch(i){return[e.fileDirectory.ImageWidth/t.fileDirectory.ImageWidth,e.fileDirectory.ImageHeight/t.fileDirectory.ImageHeight]}}function ZG(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&32767!==e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=Object(h.o)(t);if(!i){const r=Object(BG.b)(e.ProjLinearUnitsGeoKey);r&&(i=new h.b({code:t,units:r}))}return i}if(e.GeographicTypeGeoKey&&32767!==e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=Object(h.o)(t);if(!i){const r=Object(BG.b)(e.GeogAngularUnitsGeoKey);r&&(i=new h.b({code:t,units:r}))}return i}return null}function KG(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let r=0;rkG.fromSource(IG(t,i))));return new DG(n,s)}(t.url,t.overviews,e):async function(t,e={},i){return kG.fromSource(IG(t,e),i)}(t.url,e),i.then(KG)}function JG(t,e,i,r,n){if(Array.isArray(t)){const s=t.length;if(!Array.isArray(e)||s!=e.length){const t=new Error(r);throw n(t),t}for(let o=0;oi*t)throw new Error(r)}function QG(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class tz extends Uj{constructor(t){super({state:"loading",tileGrid:null,projection:null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map(t=>t.url).join(","));const i=this,r=new Array(e);for(let t=0;t=0;--t){const i=ZG(e[t]);if(i){this.projection=i;break}}}configure_(t){let e,i,r,n,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let c=0;const u=t.length;for(let h=0;h{4==(4&(t.fileDirectory.NewSubfileType||0))?d.push(t):u.push(t)});const g=u.length;if(d.length>0&&d.length!==g)throw new Error(`Expected one mask per image found ${d.length} masks and ${g} images`);let p,f;const m=new Array(g),_=new Array(g),y=new Array(g);a[h]=new Array(g),l[h]=new Array(g);for(let t=0;ty.length&&(c=s.length-y.length);const t=s[s.length-1]/y[y.length-1];this.resolutionFactors_[h]=t;const e=y.map(e=>e*t),i=`Resolution mismatch for source ${h}, got [${e}] but expected [${s}]`;JG(s.slice(c,s.length),e,.02,i,this.viewRejector)}else s=y,this.resolutionFactors_[h]=1;r?JG(r.slice(c,r.length),_,.01,"Tile size mismatch for source "+h,this.viewRejector):r=_,n?JG(n.slice(c,n.length),m,0,"Tile size mismatch for source "+h,this.viewRejector):n=m,this.sourceImagery_[h]=u.reverse(),this.sourceMasks_[h]=d.reverse()}for(let t=0,e=this.sourceImagery_.length;tl||s>l;)o.push([Math.ceil(n/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=n,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:Object(os.a)(!1,53)}o.push([1,1]),o.reverse();const h=[r],c=[0];for(let t=1,e=o.length;t{p=a,this.changed()}),y.src=_}};function nz(t){return t.toLocaleString("en",{maximumFractionDigits:10})}var sz=class extends bu{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const r=e.version||JO,n=e.sizes||[],s=e.size;Object(os.a)(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,60);const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==$O?"native":"default");let d=e.resolutions||[];const g=e.supports||[],p=e.extent||[0,-a,o,0],f=null!=n&&Array.isArray(n)&&n.length>0,m=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),_=null!=g&&Array.isArray(g)&&(g.includes("regionByPx")||g.includes("regionByPct"))&&(g.includes("sizeByWh")||g.includes("sizeByH")||g.includes("sizeByW")||g.includes("sizeByPct"));let y,v,x;if(d.sort((function(t,e){return e-t})),m||_)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(y=l,v=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(y=l[0],v=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(y=l[0],v=l[1]):null==l[0]&&Number.isInteger(l[1])&&(y=l[1],v=l[1])))),void 0!==y&&void 0!==v||(y=As.b,v=As.b),0==d.length){x=Math.max(Math.ceil(Math.log(o/y)/Math.LN2),Math.ceil(Math.log(a/v)/Math.LN2));for(let t=x;t>=0;t--)d.push(Math.pow(2,t))}else{const t=Math.max(...d);x=Math.round(Math.log(t)/Math.LN2)}else if(y=o,v=a,d=[],f){n.sort((function(t,e){return t[0]-e[0]})),x=-1;const t=[];for(let e=0;e0&&d[d.length-1]==i?t.push(e):(d.push(i),x++)}if(t.length>0)for(let e=0;ex)return;const b=t[1],w=t[2],E=d[p];if(!(void 0===b||void 0===w||void 0===E||b<0||Math.ceil(o/E/y)<=b||w<0||Math.ceil(a/E/v)<=w)){if(_||m){const t=b*y*E,e=w*v*E;let i=y*E,n=v*E,s=y,c=v;if(t+i>o&&(i=o-t),e+n>a&&(n=a-e),t+y*E>o&&(s=Math.floor((o-t+E-1)/E)),e+v*E>a&&(c=Math.floor((a-e+E-1)/E)),0==t&&i==o&&0==e&&n==a)l="full";else if(!_||g.includes("regionByPx"))l=t+","+e+","+i+","+n;else if(g.includes("regionByPct")){l="pct:"+nz(t/o*100)+","+nz(e/a*100)+","+nz(i/o*100)+","+nz(n/a*100)}r!=QO||_&&!g.includes("sizeByWh")?!_||g.includes("sizeByW")?h=s+",":g.includes("sizeByH")?h=","+c:g.includes("sizeByWh")?h=s+","+c:g.includes("sizeByPct")&&(h="pct:"+nz(100/E)):h=s+","+c}else if(l="full",f){const t=n[p][0],e=n[p][1];h=r==QO?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=r==QO?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}};class oz extends Lu.a{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Lu.b,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getParams(){return this.params_}getImageInternal(t,e,i,r){if(void 0===this.url_)return null;e=this.findNearestResolution(e),i=this.hidpi_?i:1;const n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&Object(pt.h)(n.getExtent(),t))return n;const s={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(s,this.params_);const o=((t=t.slice())[0]+t[2])/2,a=(t[1]+t[3])/2;if(1!=this.ratio_){const e=this.ratio_*Object(pt.G)(t)/2,i=this.ratio_*Object(pt.A)(t)/2;t[0]=o-e,t[1]=a-i,t[2]=o+e,t[3]=a+i}const l=e/i,h=Math.ceil(Object(pt.G)(t)/l),c=Math.ceil(Object(pt.A)(t)/l);t[0]=o-l*h/2,t[2]=o+l*h/2,t[1]=a-l*c/2,t[3]=a+l*c/2,this.imageSize_[0]=h,this.imageSize_[1]=c;const u=this.getRequestUrl_(t,this.imageSize_,i,r,s);return this.image_=new Mu.a(t,e,i,u,this.crossOrigin_,this.imageLoadFunction_),this.renderedRevision_=this.getRevision(),this.image_.addEventListener(ns.a.CHANGE,this.handleImageChange.bind(this)),this.image_}getImageLoadFunction(){return this.imageLoadFunction_}getRequestUrl_(t,e,i,r,n){const s=r.getCode().split(/:(?=\d+$)/).pop();n.SIZE=e[0]+","+e[1],n.BBOX=t.join(","),n.BBOXSR=s,n.IMAGESR=s,n.DPI=Math.round(90*i);const o=this.url_,a=o.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");return a==o&&Object(os.a)(!1,50),Eu(a,n)}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}}var az=oz;class lz extends Lu.a{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,r){e=this.findNearestResolution(e);let n=this.canvas_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&Object(pt.h)(n.getExtent(),t))return n;t=t.slice(),Object(pt.L)(t,this.ratio_);const s=[Object(pt.G)(t)/e*i,Object(pt.A)(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,r);return o&&(n=new ED.a(t,e,i,o)),this.canvas_=n,this.renderedRevision_=this.getRevision(),n}}var hz=lz;class cz extends Lu.a{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Lu.b,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0}getParams(){return this.params_}getImageInternal(t,e,i,r){e=this.findNearestResolution(e),i=this.hidpi_?i:1;let n=this.image_;if(n&&this.renderedRevision_==this.getRevision()&&n.getResolution()==e&&n.getPixelRatio()==i&&Object(pt.h)(n.getExtent(),t))return n;1!=this.ratio_&&(t=t.slice(),Object(pt.L)(t,this.ratio_));const s=[Object(pt.G)(t)/e*i,Object(pt.A)(t)/e*i];if(void 0!==this.url_){const o=this.getUrl(this.url_,this.params_,t,s,r);n=new Mu.a(t,e,i,o,this.crossOrigin_,this.imageLoadFunction_),n.addEventListener(ns.a.CHANGE,this.handleImageChange.bind(this))}else n=null;return this.image_=n,this.renderedRevision_=this.getRevision(),n}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}getUrl(t,e,i,r,n){const s=function(t,e,i,r){const n=Object(pt.G)(t),s=Object(pt.A)(t),o=e[0],a=e[1],l=.0254/r;if(a*n>o*s)return n*i/(o*l);return s*i/(a*l)}(i,r,this.metersPerUnit_,this.displayDpi_),o=Object(pt.x)(i),a={OPERATION:this.useOverlay_?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:this.displayDpi_,SETDISPLAYWIDTH:Math.round(r[0]),SETDISPLAYHEIGHT:Math.round(r[1]),SETVIEWSCALE:s,SETVIEWCENTERX:o[0],SETVIEWCENTERY:o[1]};return Object.assign(a,e),Eu(t,a)}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}}var uz=cz;class dz extends Lu.a{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:Lu.b;super({attributions:t.attributions,interpolate:t.interpolate,projection:Object(h.o)(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image_=new Mu.a(this.imageExtent_,void 0,1,this.url_,e,i),this.imageSize_=t.imageSize?t.imageSize:null,this.image_.addEventListener(ns.a.CHANGE,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,r){return Object(pt.H)(t,this.image_.getExtent())?this.image_:null}getUrl(){return this.url_}handleImageChange(t){if(this.image_.getState()==Id.a.LOADED){const t=this.image_.getExtent(),e=this.image_.getImage();let i,r;this.imageSize_?(i=this.imageSize_[0],r=this.imageSize_[1]):(i=e.width,r=e.height);const n=Object(pt.G)(t),s=Object(pt.A)(t),o=n/i,a=s/r;let l=i,h=r;if(o>a?l=Math.round(n/a):h=Math.round(s/o),l!==i||h!==r){const t=Object(kn.a)(l,h);this.getInterpolate()||(t.imageSmoothingEnabled=!1);const n=t.canvas;t.drawImage(e,0,0,i,r,0,0,n.width,n.height),this.image_.setImage(n)}}super.handleImageChange(t)}}var gz=dz;const pz={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},fz={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function mz(t,e,i,r){let n=t.projection;if(!n&&(n=Object(h.o)(e.crs),!n))throw new Error("Unsupported CRS: "+e.crs);const s="en"!==n.getAxisOrientation().substr(0,2),o=e.tileMatrices,a={};for(let t=0;tt.maxTileCol||u.tileRowt.maxTileRow)return}Object.assign(u,y);const d=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return Object(UP.c)(v,d)}}}function _z(t,e){const i=e.tileMatrixSetLimits;let r;if("map"===e.dataType)r=function(t,e){let i,r;for(let n=0;n"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel);if(!n)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=n.href,o=Object(UP.c)(t.url,s);return Object(UP.a)(o).then((function(e){return mz(t,e,r,i)}))}function yz(t){return Object(UP.a)(t.url).then((function(e){return _z(t,e)}))}var vz=class extends bu{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});yz({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Object(Ga.a)(t),this.setState("error")}};var xz=class extends Ow{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,format:t.format,overlaps:t.overlaps,projection:t.projection,tileClass:t.tileClass,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection,state:"loading"});yz({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,supportedMediaTypes:t.format.supportedMediaTypes,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Object(Ga.a)(t),this.setState("error")}};const bz=['Map tiles by Stamen Design, under CC BY 3.0.',yw],wz={terrain:{extension:"png",opaque:!0},"terrain-background":{extension:"png",opaque:!0},"terrain-labels":{extension:"png",opaque:!1},"terrain-lines":{extension:"png",opaque:!1},"toner-background":{extension:"png",opaque:!0},toner:{extension:"png",opaque:!0},"toner-hybrid":{extension:"png",opaque:!1},"toner-labels":{extension:"png",opaque:!1},"toner-lines":{extension:"png",opaque:!1},"toner-lite":{extension:"png",opaque:!0},watercolor:{extension:"jpg",opaque:!0}},Ez={terrain:{minZoom:0,maxZoom:18},toner:{minZoom:0,maxZoom:20},watercolor:{minZoom:0,maxZoom:18}};var Sz=class extends gw{constructor(t){const e=t.layer.indexOf("-"),i=-1==e?t.layer:t.layer.slice(0,e),r=Ez[i],n=wz[t.layer],s=void 0!==t.url?t.url:"https://stamen-tiles-{a-d}.a.ssl.fastly.net/"+t.layer+"/{z}/{x}/{y}."+n.extension;super({attributions:bz,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:null!=t.maxZoom?t.maxZoom:r.maxZoom,minZoom:null!=t.minZoom?t.minZoom:r.minZoom,opaque:n.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:s,wrapX:t.wrapX,zDirection:t.zDirection})}};var Iz=class extends bu{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=Object(pt.k)(),this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,r,n,s){const o=this.urls;if(!o)return;const a=n.getCode().split(/:(?=\d+$)/).pop();let l;if(s.SIZE=e[0]+","+e[1],s.BBOX=i.join(","),s.BBOXSR=a,s.IMAGESR=a,s.DPI=Math.round(s.DPI?s.DPI*r:90*r),1==o.length)l=o[0];else{l=o[Object(Fs.e)(Object(uu.f)(t),o.length)]}return Eu(l.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage"),s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let r=this.getTileGrid();if(r||(r=this.getTileGridForProjection(i)),r.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const n=r.getTileCoordExtent(t,this.tmpExtent_);let s=Object(ja.d)(r.getTileSize(t[0]),this.tmpSize);1!=e&&(s=Object(ja.c)(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,n,e,i,o)}};var Cz=class extends gw{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],r=Object(ja.d)(this.tileGrid.getTileSize(i)),n=Object(kn.a)(r[0],r[1]);n.strokeStyle="grey",n.strokeRect(.5,.5,r[0]+.5,r[1]+.5),n.fillStyle="grey",n.strokeStyle="white",n.textAlign="center",n.textBaseline="middle",n.font="24px sans-serif",n.lineWidth=4,n.strokeText(e,r[0]/2,r[1]/2,r[0]),n.fillText(e,r[0]/2,r[1]/2,r[0]),t.setImage(n.canvas)}})}};class Tz extends Sw.a{constructor(t,e,i,r,n,s){super(t,e),this.src_=i,this.extent_=r,this.preemptive_=n,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),r=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof r)return null;let n=r.charCodeAt(Math.floor(e*r.length));n>=93&&n--,n>=35&&n--,n-=32;let s=null;if(n in this.keys_){const t=this.keys_[n];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==ou.a.EMPTY&&!0===i?(this.state=ou.a.IDLE,Object(is.b)(this,ns.a.CHANGE,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout(()=>{e(this.getData(t))},0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=ou.a.ERROR,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=ou.a.LOADED,this.changed()}loadInternal_(){if(this.state==ou.a.IDLE)if(this.state=ou.a.LOADING,this.jsonp_)Object(UP.b)(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(ou.a.EMPTY)}}class Lz extends cu.b{constructor(t){if(super({projection:Object(h.o)("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=fu,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)Object(UP.b)(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else t.tileJSON?this.handleTileJSONResponse(t.tileJSON):Object(os.a)(!1,51)}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,r){if(this.tileGrid){const n=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,n);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,r)}else!0===r?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=Object(h.o)("EPSG:4326"),i=this.getProjection();let r;if(void 0!==t.bounds){const n=Object(h.r)(e,i);r=Object(pt.a)(t.bounds,n)}const n=Object(vu.b)(i),s=t.minzoom||0,o=t.maxzoom||22,a=Object(vu.a)({extent:n,maxZoom:o,minZoom:s});this.tileGrid=a,this.template_=t.template;const l=t.grids;if(l){if(this.tileUrlFunction_=gu(l,a),void 0!==t.attribution){const e=void 0!==r?r:n;this.setAttributions((function(i){return Object(pt.H)(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,r,n){const s=Object(uu.e)(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,n),l=this.tileUrlFunction_(a,r,n),h=new Tz(o,void 0!==l?ou.a.IDLE:ou.a.EMPTY,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const r=Object(uu.e)(t,e,i);this.tileCache.containsKey(r)&&this.tileCache.get(r)}}var Mz=Lz;const Oz=window.M={},Rz=window.ol={};Oz.ClusteredFeature=fS,Oz.Control=Gl,Oz.Feature=pS,Oz.Filter=xf,Oz.Label=ov,Oz.Layer=Ah,Oz.Map=rE,Oz.Object=Wa,Oz.Parameters=lv,Oz.Plugin=mS,Oz.Popup=hf,Oz.RenderFeature=cv,Oz.Style=Ag,Oz.addProxyException=t=>{const e=new URL(t).origin;-1===oE.indexOf(e)&&oE.push(e)},Oz.config=nE,Oz.control={},Oz.control.GetFeatureInfo=Uy,Oz.control.LayerSwitcher=Lf,Oz.control.Location=Hf,Oz.control.Mouse=Fm,Oz.control.Navtoolbar=Hm,Oz.control.OverviewMap=Vm,Oz.control.Panzoom=Qm,Oz.control.Panzoombar=Wl,Oz.control.Rotate=cm,Oz.control.Rotate.onClick=am,Oz.control.Rotate.onMouseDown=sm,Oz.control.Rotate.onMouseMove=lm,Oz.control.Rotate.onMouseUp=om,Oz.control.Scale=Qf,Oz.control.ScaleLine=Cm,Oz.control.WMCSelector=Ku,Oz.dialog={},Oz.dialog.error=yf,Oz.dialog.info=_f,Oz.dialog.show=mf,Oz.dialog.success=vf,Oz.evt={},Oz.evt.ACTIVATED=dl,Oz.evt.ADDED_GEOPACKAGE="added:geopackage",Oz.evt.ADDED_GEOPACKAGE_TILE="added:geopackagetile",Oz.evt.ADDED_GEOPACKAGE_VECTOR="added:geopackagevector",Oz.evt.ADDED_KML=sl,Oz.evt.ADDED_LAYER=rl,Oz.evt.ADDED_MBTILES="added:mbtiles",Oz.evt.ADDED_MBTILES_VECTOR="added:mbtilesvector",Oz.evt.ADDED_TO_MAP=el,Oz.evt.ADDED_TO_PANEL=il,Oz.evt.ADDED_VECTOR_TILE=ll,Oz.evt.ADDED_WFS=al,Oz.evt.ADDED_WMC=nl,Oz.evt.ADDED_WMS=ol,Oz.evt.ADDED_WMTS=ul,Oz.evt.CHANGE=El,Oz.evt.CHANGE_PROJ=Il,Oz.evt.CHANGE_ROTATION=Ll,Oz.evt.CHANGE_STYLE=Cl,Oz.evt.CHANGE_WMC=Sl,Oz.evt.CHANGE_ZOOM=Tl,Oz.evt.CLICK=Ol,Oz.evt.COMPLETED=wl,Oz.evt.DEACTIVATED=gl,Oz.evt.DESTROY=ml,Oz.evt.DOUBLE_CLICK="doubleclick",Oz.evt.EventsManager=Ya,Oz.evt.HIDE=fl,Oz.evt.HOVER_FEATURES=vl,Oz.evt.LAYER_VISIBILITY_CHANGE=Ml,Oz.evt.LEAVE_FEATURES=xl,Oz.evt.LOAD=bl,Oz.evt.LOAD_LAYERS="load:layers",Oz.evt.Listener=qa,Oz.evt.MOVE=Rl,Oz.evt.POPUP_ADDED=Pl,Oz.evt.POPUP_ADDED_TAB=Al,Oz.evt.POPUP_REMOVED=Nl,Oz.evt.POPUP_REMOVED_TAB=Fl,Oz.evt.REMOVED_FROM_MAP=cl,Oz.evt.REMOVED_LAYER=hl,Oz.evt.SELECT_FEATURES=_l,Oz.evt.SHOW=pl,Oz.evt.UNSELECT_FEATURES=yl,Oz.exception=Qa,Oz.facade={},Oz.facade.Base=tl,Oz.filter=yS,Oz.filter.AND=t=>{let e="";const i=t.length;return t.forEach((t,r)=>{e+=`(${t.toCQL()})`,rt.every(t=>t.getFunctionFilter()(e)),{cqlFilter:e})},Oz.filter.EQUAL=(t,e)=>new _S(i=>Object.is(i.getAttribute(t),e),{cqlFilter:`${t}='${e}'`}),Oz.filter.Function=_S,Oz.filter.GT=(t,e)=>new _S(i=>null!=i.getAttribute(t)&&i.getAttribute(t)>e,{cqlFilter:`${t} > '${e}'`}),Oz.filter.GTE=(t,e)=>new _S(i=>null!=i.getAttribute(t)&&i.getAttribute(t)>=e,{cqlFilter:`${t} >= '${e}'`}),Oz.filter.LIKE=(t,e)=>new _S(i=>i.getAttribute(t).toString().match(new RegExp(e)),{cqlFilter:`${t} LIKE '%${e}%'`}),Oz.filter.LT=(t,e)=>new _S(i=>null!=i.getAttribute(t)&&i.getAttribute(t)new _S(e=>!t.getFunctionFilter()(e),{cqlFilter:"NOT "+t.toCQL()}),Oz.filter.OR=t=>{const e=t.length;let i="";return t.forEach((t,r)=>{i+=`(${t.toCQL()})`,rt.some(t=>t.getFunctionFilter()(e)),{cqlFilter:i})},Oz.filter.spatial={},Oz.filter.spatial.CONTAIN=t=>{const e=ZM(t);return new yS((t,i)=>{const r=new ML,n=r.read(t);return e.some(t=>{const e=r.read(t);return HM.contains(e,n)})},{cqlFilter:KM("CONTAINS",e)})},Oz.filter.spatial.DISJOINT=t=>{const e=ZM(t);return new yS((t,i)=>{const r=new ML,n=r.read(t);return e.some(t=>{const e=r.read(t);return!HM.intersects(n,e)})},{cqlFilter:KM("DISJOINT",e)})},Oz.filter.spatial.INTERSECT=t=>{const e=ZM(t);return new yS((t,i)=>{const r=new ML,n=r.read(t);return e.some(t=>{const e=r.read(t);return HM.intersects(n,e)})},{cqlFilter:KM("INTERSECTS",e)})},Oz.filter.spatial.WITHIN=t=>{const e=ZM(t);return new yS((t,i)=>{const r=new ML,n=r.read(t);return e.some(t=>{const e=r.read(t);return HM.contains(e,n)})},{cqlFilter:KM("WITHIN",e)})},Oz.filter.spatial.parseParamToGeometries=ZM,Oz.format={},Oz.format.GeoJSON=Rb,Oz.format.WKT=zS,Oz.geom={},Oz.geom.geojson={},Oz.geom.geojson.type={},Oz.geom.geojson.type.GEOMETRY_COLLECTION="GeometryCollection",Oz.geom.geojson.type.LINE_STRING="LineString",Oz.geom.geojson.type.MULTI_LINE_STRING="MultiLineString",Oz.geom.geojson.type.MULTI_POINT="MultiPoint",Oz.geom.geojson.type.MULTI_POLYGON="MultiPolygon",Oz.geom.geojson.type.POINT="Point",Oz.geom.geojson.type.POLYGON="Polygon",Oz.geom.parse=Hb,Oz.geom.parseWFS=t=>{let e;return t===Ub?e=Yh:t===Vb?e=Gh:t===qb?e=zh:t===Yb?e=Bh:t===Wb?e=Uh:t===Xb&&(e=Vh),e},Oz.geom.wfs={},Oz.geom.wfs.type={},Oz.geom.wfs.type.LINE=Vb,Oz.geom.wfs.type.MLINE=Wb,Oz.geom.wfs.type.MPOINT=Yb,Oz.geom.wfs.type.MPOLYGON=Xb,Oz.geom.wfs.type.POINT=Ub,Oz.geom.wfs.type.POLYGON=qb,Oz.geom.wkt={},Oz.geom.wkt.type={},Oz.geom.wkt.type.CIRCLE=Xh,Oz.geom.wkt.type.GEOMETRY=jh,Oz.geom.wkt.type.GEOMETRY_COLLECTION=Wh,Oz.geom.wkt.type.LINEAR_RING=qh,Oz.geom.wkt.type.LINE_STRING=Gh,Oz.geom.wkt.type.MULTI_LINE_STRING=Uh,Oz.geom.wkt.type.MULTI_POINT=Bh,Oz.geom.wkt.type.MULTI_POLYGON=Vh,Oz.geom.wkt.type.POINT=Yh,Oz.geom.wkt.type.POLYGON=zh,Oz.handler={},Oz.handler.Feature=pv,Oz.impl={},Oz.impl.Control=Xu,Oz.impl.Feature=dS,Oz.impl.GetCapabilities=wc,Oz.impl.Label=nv,Oz.impl.Layer=bc,Oz.impl.Map=qu,Oz.impl.Popup=ef,Oz.impl.RenderFeature=uv,Oz.impl.Style=Xd,Oz.impl.View=ju,Oz.impl.control={},Oz.impl.control.GetFeatureInfo=jy,Oz.impl.control.LayerSwitcher=rd,Oz.impl.control.Location=qf,Oz.impl.control.Mouse=Nm,Oz.impl.control.Navtoolbar=qm,Oz.impl.control.OverviewMap=Gm,Oz.impl.control.Panzoom=$m,Oz.impl.control.Panzoombar=Ja,Oz.impl.control.Rotate=em,Oz.impl.control.Scale=$f,Oz.impl.control.ScaleLine=wm,Oz.impl.control.WMCSelector=Hu,Oz.impl.format={},Oz.impl.format.DescribeFeatureType=Ab,Oz.impl.format.DescribeFeatureTypeXML=Nb,Oz.impl.format.GML=jb,Oz.impl.format.GeoJSON=Ob,Oz.impl.format.KML=vb,Oz.impl.format.WKT=GS,Oz.impl.format.WMC=Qb,Oz.impl.format.WMSCapabilities=iu,Oz.impl.format.WMTSCapabilities=BS,Oz.impl.format.XML=Pb,Oz.impl.handler={},Oz.impl.handler.Feature=gv,Oz.impl.interaction={},Oz.impl.interaction.SelectCluster=kp,Oz.impl.layer={},Oz.impl.layer.AnimatedCluster=Op,Oz.impl.layer.Draw=VS,Oz.impl.layer.GeoJSON=Qw,Oz.impl.layer.Heatmap=NI,Oz.impl.layer.KML=bb,Oz.impl.layer.MVT=Xw,Oz.impl.layer.Mapbox=fw,Oz.impl.layer.OSM=bw,Oz.impl.layer.Vector=gf,Oz.impl.layer.WFS=Bb,Oz.impl.layer.WMC=ew,Oz.impl.layer.WMS=Fu,Oz.impl.layer.WMTS=cw,Oz.impl.loader={},Oz.impl.loader.JSONP=$w,Oz.impl.loader.KML=_v,Oz.impl.loader.WFS=Gb,Oz.impl.service={},Oz.impl.service.WFS=Fb,Oz.impl.source={},Oz.impl.source.ImageWMS=Nu,Oz.impl.source.TileWMS=Tu,Oz.impl.style={},Oz.impl.style.Centroid=jp,Oz.impl.style.Chart=VI,Oz.impl.style.Cluster=Bp,Oz.impl.style.Generic=Pg,Oz.impl.style.Heatmap=qI,Oz.impl.style.Icon=YI,Oz.impl.style.Line=JI,Oz.impl.style.Path=vg,Oz.impl.style.Point=Sf,Oz.impl.style.Polygon=tC,Oz.impl.style.Simple=Hd,Oz.impl.utils=xc,Oz.language={},Oz.language.addTranslation=(t,e)=>{kl.translations[t]=e},Oz.language.getLang=()=>kl.lang,Oz.language.getTranslation=Dl,Oz.language.getValue=jl,Oz.language.setLang=t=>{Object.keys(kl.translations).includes(t)||Qa(jl("exception").unsupported_lang),kl.lang=t},Oz.layer={},Oz.layer.GeoJSON=eE,Oz.layer.KML=Eb,Oz.layer.LayerGroup=ed,Oz.layer.MVT=Kw,Oz.layer.MVT.mode=Hw,Oz.layer.Mapbox=_w,Oz.layer.OSM=Ew,Oz.layer.Vector=wf,Oz.layer.WFS=Kb,Oz.layer.WMC=rw,Oz.layer.WMS=Du,Oz.layer.WMTS=dw,Oz.layer.type={},Oz.layer.type.GeoJSON=th,Oz.layer.type.KML=Hl,Oz.layer.type.MVT=ih,Oz.layer.type.Mapbox=Ql,Oz.layer.type.OSM=Jl,Oz.layer.type.Vector=eh,Oz.layer.type.WFS=Kl,Oz.layer.type.WMC=Xl,Oz.layer.type.WMS=Zl,Oz.layer.type.WMTS=$l,Oz.layer.type.registerLayerType=t=>{t in rh||(rh[t]=t)},Oz.map=(t,e)=>(xE(qu)&&Qa(jl("exception").no_impl),new rE(t,e)),Oz.parameter={},Oz.parameter.center=Eh,Oz.parameter.geojson=bh,Oz.parameter.kml=dh,Oz.parameter.layer=Ph,Oz.parameter.mapbox=fh,Oz.parameter.maxExtent=Sh,Oz.parameter.mvt=Mh,Oz.parameter.osm=yh,Oz.parameter.projection=Ih,Oz.parameter.resolutions=Ch,Oz.parameter.wfs=Lh,Oz.parameter.wmc=wh,Oz.parameter.wms=hh,Oz.parameter.wmts=Oh,Oz.parameter.zoom=Th,Oz.projection=Jr,Oz.proxy=t=>{"boolean"==typeof t&&(sE=t)},Oz.remote={},Oz.remote.Response=lE,Oz.remote.get=pE,Oz.remote.post=(t,e,i)=>gE(t,e,cE),Oz.removeProxyException=t=>{const e=new URL(t).origin,i=oE.indexOf(e);-1!==i&&oE.splice(i,1)},Oz.style={},Oz.style.Category=hC,Oz.style.Chart=jI,Oz.style.Choropleth=mC,Oz.style.Cluster=Yp,Oz.style.Composite=Vp,Oz.style.Feature=Fg,Oz.style.Font=_C,Oz.style.Generic=jg,Oz.style.Heatmap=TC,Oz.style.Line=XI,Oz.style.Point=Cf,Oz.style.Polygon=oC,Oz.style.Proportional=nC,Oz.style.Proportional.getMinMaxValues=eC,Oz.style.Simple=kg,Oz.style.align={},Oz.style.align.CENTER=Kd,Oz.style.align.JUSTIFY=Jd,Oz.style.align.LEFT=Zd,Oz.style.align.RIGHT=$d,Oz.style.baseline={},Oz.style.baseline.ALPHABETIC=ig,Oz.style.baseline.BOTTOM=eg,Oz.style.baseline.HANGING=rg,Oz.style.baseline.IDEOGRAPHIC=ng,Oz.style.baseline.MIDDLE=tg,Oz.style.baseline.TOP=Qd,Oz.style.chart={},Oz.style.chart.Variable=AI,Oz.style.chart.schemes=kI,Oz.style.chart.types=FI,Oz.style.form={},Oz.style.form.BAN="BAN",Oz.style.form.BLAZON="BLAZON",Oz.style.form.BOOKMARK="BOOKMARK",Oz.style.form.BUBBLE="BUBBLE",Oz.style.form.CIRCLE="CIRCLE",Oz.style.form.COMA="COMA",Oz.style.form.DIAMOND="DIAMOND",Oz.style.form.HEXAGON="HEXAGON",Oz.style.form.LOZENGE="LOZENGE",Oz.style.form.MARKER="MARKER",Oz.style.form.NONE="none",Oz.style.form.POI="POI",Oz.style.form.SHIELD="SHIELD",Oz.style.form.SIGN="SIGN",Oz.style.form.SQUARE="SQUARE",Oz.style.form.TRIANGLE="TRIANGLE",Oz.style.pattern={},Oz.style.pattern.BRECCIA="BRECCIA",Oz.style.pattern.BRICK="BRICK",Oz.style.pattern.CAPS="CAPS",Oz.style.pattern.CEMETRY="CEMETRY",Oz.style.pattern.CHAOS="CHAOS",Oz.style.pattern.CHARACTER="CHARACTER",Oz.style.pattern.CIRCLE="CIRCLE",Oz.style.pattern.CLAY="CLAY",Oz.style.pattern.COAL="COAL",Oz.style.pattern.CONGLOMERATE="CONGLOMERATE",Oz.style.pattern.CROSS="CROSS",Oz.style.pattern.CROSSES="CROSSES",Oz.style.pattern.DOLOMITE="DOLOMITE",Oz.style.pattern.DOT="DOT",Oz.style.pattern.FLOODED="FLOODED",Oz.style.pattern.FOREST="FOREST",Oz.style.pattern.GRASS="GRASS",Oz.style.pattern.GRAVEL="GRAVEL",Oz.style.pattern.HATCH="HATCH",Oz.style.pattern.HEXAGON="HEXAGON",Oz.style.pattern.ICON="ICON",Oz.style.pattern.IMAGE="IMAGE",Oz.style.pattern.NYLON="NYLON",Oz.style.pattern.PINE="PINE",Oz.style.pattern.PINES="PINES",Oz.style.pattern.ROCK="ROCK",Oz.style.pattern.ROCKS="ROCKS",Oz.style.pattern.SAND="SAND",Oz.style.pattern.SCRUB="SCRUB",Oz.style.pattern.SQUARE="SQUARE",Oz.style.pattern.SWAMP="SWAMP",Oz.style.pattern.TILE="TILE",Oz.style.pattern.TREE="TREE",Oz.style.pattern.VINE="VINE",Oz.style.pattern.WAVE="WAVE",Oz.style.pattern.WOVEN="WOVEN",Oz.style.quantification={},Oz.style.quantification.JENKS=uC,Oz.style.quantification.QUANTILE=dC,Oz.style.state={},Oz.style.state.DEFAULT="default",Oz.style.state.NEW="new",Oz.style.state.SELECTED="selected",Oz.style.textoverflow={},Oz.style.textoverflow.ELLIPSIS="ellipsis",Oz.style.textoverflow.HIDDEN="",Oz.style.textoverflow.VISIBLE="visible",Oz.template={},Oz.template.add=(t,e)=>{mE(Ul[t])&&(Ul[t]=e)},Oz.template.compile=(t,e)=>{let i,r,n={};return mE(e)||(n=KE(n,e.vars),i=e.parseToHtml,r=e.scope),new Promise((s,o)=>{ql(t,e).then(t=>{const e=t.call(null,n);!1!==i?s.call(r,kE(e)):s.call(r,e)})})},Oz.template.compileSync=Vl,Oz.template.get=ql,Oz.ui={},Oz.ui.Panel=Ky,Oz.ui.position={},Oz.ui.position.BL=Xy,Oz.ui.position.BR=Hy,Oz.ui.position.TL=Yy,Oz.ui.position.TR=Wy,Oz.units={},Oz.units.DOTS_PER_INCH=72,Oz.units.INCHES_PER_UNIT=fE,Oz.utils={},Oz.utils.addParameters=LE,Oz.utils.beautifyAttribute=DE,Oz.utils.beautifyAttributeName=jE,Oz.utils.beautifyString=t=>{let e;return e=t.toLowerCase(),e=e.trim(e),e=e.charAt(0).toUpperCase()+e.slice(1),e=e.replace(/_/g," "),e=e.replace(/\s+/," "),e=e.replace(/(\s\w)+/g,t=>t.toUpperCase()),e=e.replace(/\s+(de|del|las?|el|los?|un|unas?|unos?|y|a|al|en)\s+/gi,t=>t.toLowerCase()),e},Oz.utils.concatUrlPaths=GE,Oz.utils.decodeHtml=WE,Oz.utils.defineFunctionFromString=eS,Oz.utils.drawDynamicStyle=aS,Oz.utils.enableTouchScroll=VE,Oz.utils.escapeJSCode=UE,Oz.utils.escapeXSS=t=>{let e;return e=t.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/'/g,"""),e=e.replace(/'/g,"'"),e=e.replace(/\//g,"/"),e},Oz.utils.extend=BE,Oz.utils.extendsObj=KE,Oz.utils.fillResolutions=PE,Oz.utils.generateColorScale=HE,Oz.utils.generateIntervals=$E,Oz.utils.generateRandom=ME,Oz.utils.generateResolutionsFromExtent=AE,Oz.utils.generateResolutionsFromScales=(t,e,i,r)=>{const n=NE(t,r),s=NE(e,r);return PE(n,s,i)},Oz.utils.getEnvolvedExtent=lS,Oz.utils.getImageSize=QE,Oz.utils.getOpacityFromRgba=t=>{let e;const i=/^rgba\s*\((\s*\d+\s*,){3}\s*([\d.]+)\s*\)$/;if(i.test(t)){e=t.replace(i,"$2");try{e=parseFloat(e)}catch(t){throw t}}return e},Oz.utils.getParameterValue=TE,Oz.utils.getResolutionFromScale=NE,Oz.utils.getRgba=(t,e)=>l()(t).alpha(e).css(),Oz.utils.getScaleFromResolution=FE,Oz.utils.getSystem=hS,Oz.utils.getTextFromHtml=XE,Oz.utils.getWMSGetCapabilitiesUrl=OE,Oz.utils.getWMTSGetCapabilitiesUrl=RE,Oz.utils.htmlToString=t=>{let e;if(!xE(t)){const i=document.createElement("div");i.appendChild(t),e=i.innerHTML}return e},Oz.utils.includes=zE,Oz.utils.inverseColor=ZE,Oz.utils.isArray=vE,Oz.utils.isBoolean=_E,Oz.utils.isDynamic=sS,Oz.utils.isFunction=bE,Oz.utils.isGeometryType=YE,Oz.utils.isNull=yE,Oz.utils.isNullOrEmpty=xE,Oz.utils.isNumber=IE,Oz.utils.isObject=wE,Oz.utils.isPositiveNumber=t=>IE(t)&&t>0,Oz.utils.isString=EE,Oz.utils.isUndefined=mE,Oz.utils.isUrl=SE,Oz.utils.normalize=CE,Oz.utils.rgbToHex=t=>{let e;try{e=l()(t).hex()}catch(t){throw t}return e},Oz.utils.rgbaToHex=t=>{let e;try{e=l()(t).hex()}catch(t){throw t}return e},Oz.utils.sameUrl=qE,Oz.utils.setDynamicLegend=t=>{oS=t},Oz.utils.setEquals=(t,e)=>{let i=!1;return t.length===e.length&&(i=t.every(t=>e.some(e=>e.equals(t)))),i},Oz.utils.stringToHtml=kE,Oz.utils.stringifyFunctions=tS,Oz.utils.styleComparator=JE,Oz.version=aE,Oz.window=tf,Rz.Collection=hn,Rz.Feature=Zh,Rz.Geolocation=Uf,Rz.Kinetic=Na,Rz.Map=Va,Rz.Object=tn.a,Rz.Observable=nd.a,Rz.Observable.unByKey=nd.b,Rz.Overlay=Jp,Rz.View=Uo,Rz.array={},Rz.array.stableSort=u.h,Rz.color={},Rz.color.asArray=pn.a,Rz.color.asString=pn.b,Rz.colorlike={},Rz.colorlike.asColorLike=Nd,Rz.control={},Rz.control.Attribution=Yo,Rz.control.Control=qo,Rz.control.FullScreen=rO,Rz.control.MousePosition=Rm,Rz.control.OverviewMap=jm,Rz.control.Rotate=Wo,Rz.control.ScaleLine=pm,Rz.control.Zoom=Xo,Rz.control.ZoomSlider=$a,Rz.control.ZoomToExtent=nO,Rz.control.defaults={},Rz.control.defaults.defaults=Ho,Rz.coordinate={},Rz.coordinate.add=vn.a,Rz.coordinate.createStringXY=vn.d,Rz.coordinate.format=vn.h,Rz.coordinate.rotate=vn.j,Rz.coordinate.toStringHDMS=vn.n,Rz.coordinate.toStringXY=vn.o,Rz.easing={},Rz.easing.easeIn=Vs.easeIn,Rz.easing.easeOut=Vs.easeOut,Rz.easing.inAndOut=Vs.inAndOut,Rz.easing.linear=Vs.linear,Rz.easing.upAndDown=Vs.upAndDown,Rz.events={},Rz.events.condition={},Rz.events.condition.altKeyOnly=ra,Rz.events.condition.altShiftKeysOnly=na,Rz.events.condition.always=aa,Rz.events.condition.click=function(t){return t.type==ps.CLICK},Rz.events.condition.doubleClick=function(t){return t.type==ps.DBLCLICK},Rz.events.condition.focus=sa,Rz.events.condition.mouseOnly=pa,Rz.events.condition.never=ha,Rz.events.condition.noModifierKeys=ua,Rz.events.condition.penOnly=function(t){const e=t.originalEvent;return Object(os.a)(void 0!==e,56),"pen"===e.pointerType},Rz.events.condition.platformModifierKeyOnly=function(t){const e=t.originalEvent;return!e.altKey&&(An.d?e.metaKey:e.ctrlKey)&&!e.shiftKey},Rz.events.condition.pointerMove=function(t){return"pointermove"==t.type},Rz.events.condition.primaryAction=fa,Rz.events.condition.shiftKeyOnly=da,Rz.events.condition.singleClick=ca,Rz.events.condition.targetNotEditable=ga,Rz.events.condition.touchOnly=function(t){const e=t.originalEvent;return Object(os.a)(void 0!==e,56),"touch"===e.pointerType},Rz.extent={},Rz.extent.applyTransform=pt.a,Rz.extent.boundingExtent=pt.c,Rz.extent.buffer=pt.d,Rz.extent.containsCoordinate=pt.g,Rz.extent.containsExtent=pt.h,Rz.extent.containsXY=pt.i,Rz.extent.createEmpty=pt.k,Rz.extent.equals=pt.p,Rz.extent.extend=pt.q,Rz.extent.getArea=pt.u,Rz.extent.getBottomLeft=pt.v,Rz.extent.getBottomRight=pt.w,Rz.extent.getCenter=pt.x,Rz.extent.getHeight=pt.A,Rz.extent.getIntersection=pt.B,Rz.extent.getSize=pt.D,Rz.extent.getTopLeft=pt.E,Rz.extent.getTopRight=pt.F,Rz.extent.getWidth=pt.G,Rz.extent.intersects=pt.H,Rz.extent.isEmpty=pt.J,Rz.featureloader={},Rz.featureloader.setWithCredentials=function(t){yd=t},Rz.featureloader.xhr=xd,Rz.format={},Rz.format.EsriJSON=uO,Rz.format.Feature=t_,Rz.format.GML=Db,Rz.format.GML2=c_,Rz.format.GML3=g_,Rz.format.GML32=f_,Rz.format.GMLBase=a_,Rz.format.GPX=YO,Rz.format.GeoJSON=Lb,Rz.format.IGC=KO,Rz.format.IIIFInfo=sR,Rz.format.KML=_b,Rz.format.MVT=Yw,Rz.format.OSMXML=uR,Rz.format.Polyline=yR,Rz.format.Polyline.decodeDeltas=pR,Rz.format.Polyline.decodeFloats=mR,Rz.format.Polyline.encodeDeltas=gR,Rz.format.Polyline.encodeFloats=fR,Rz.format.TopoJSON=IR,Rz.format.WFS=Py,Rz.format.WFS.writeFilter=function(t,e){const i=g(Ry(e=e||"1.1.0"),"Filter"),r={node:i};return Object.assign(r,{version:e,filter:t}),fy(i,t,[r]),i},Rz.format.WKB=GR,Rz.format.WKT=jS,Rz.format.WMSCapabilities=Wc,Rz.format.WMSGetFeatureInfo=zR,Rz.format.WMTSCapabilities=Ot,Rz.format.filter={},Rz.format.filter.Bbox=v_,Rz.format.filter.Contains=b_,Rz.format.filter.DWithin=w_,Rz.format.filter.Disjoint=E_,Rz.format.filter.During=I_,Rz.format.filter.EqualTo=T_,Rz.format.filter.GreaterThan=L_,Rz.format.filter.GreaterThanOrEqualTo=M_,Rz.format.filter.Intersects=O_,Rz.format.filter.IsBetween=R_,Rz.format.filter.IsLike=P_,Rz.format.filter.IsNull=N_,Rz.format.filter.LessThan=A_,Rz.format.filter.LessThanOrEqualTo=F_,Rz.format.filter.Not=k_,Rz.format.filter.NotEqualTo=D_,Rz.format.filter.Or=j_,Rz.format.filter.Within=G_,Rz.format.filter.and=z_,Rz.format.filter.bbox=B_,Rz.format.filter.between=function(t,e,i){return new R_(t,e,i)},Rz.format.filter.contains=function(t,e,i){return new b_(t,e,i)},Rz.format.filter.disjoint=function(t,e,i){return new E_(t,e,i)},Rz.format.filter.during=function(t,e,i){return new I_(t,e,i)},Rz.format.filter.dwithin=function(t,e,i,r,n){return new w_(t,e,i,r,n)},Rz.format.filter.equalTo=function(t,e,i){return new T_(t,e,i)},Rz.format.filter.greaterThan=function(t,e){return new L_(t,e)},Rz.format.filter.greaterThanOrEqualTo=function(t,e){return new M_(t,e)},Rz.format.filter.intersects=function(t,e,i){return new O_(t,e,i)},Rz.format.filter.isNull=function(t){return new N_(t)},Rz.format.filter.lessThan=function(t,e){return new A_(t,e)},Rz.format.filter.lessThanOrEqualTo=function(t,e){return new F_(t,e)},Rz.format.filter.like=function(t,e,i,r,n,s){return new P_(t,e,i,r,n,s)},Rz.format.filter.not=function(t){return new k_(t)},Rz.format.filter.notEqualTo=function(t,e,i){return new D_(t,e,i)},Rz.format.filter.or=function(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(j_,e))},Rz.format.filter.within=function(t,e,i){return new G_(t,e,i)},Rz.geom={},Rz.geom.Circle=_c,Rz.geom.Geometry=Zs,Rz.geom.GeometryCollection=fc,Rz.geom.LineString=rc,Rz.geom.LinearRing=yo,Rz.geom.MultiLineString=sc,Rz.geom.MultiPoint=$h,Rz.geom.MultiPolygon=lc,Rz.geom.Point=xo,Rz.geom.Polygon=No,Rz.geom.Polygon.circular=Ao,Rz.geom.Polygon.fromCircle=ko,Rz.geom.Polygon.fromExtent=Fo,Rz.geom.SimpleGeometry=$s,Rz.has={},Rz.has.DEVICE_PIXEL_RATIO=An.a,Rz.interaction={},Rz.interaction.DoubleClickZoom=Qo,Rz.interaction.DragAndDrop=VR,Rz.interaction.DragBox=Ia,Rz.interaction.DragPan=ma,Rz.interaction.DragRotate=_a,Rz.interaction.DragRotateAndZoom=qR,Rz.interaction.DragZoom=Ca,Rz.interaction.Draw=sP,Rz.interaction.Draw.createBox=function(){return function(t,e,i){const r=Object(pt.c)([t[0],t[t.length-1]].map((function(t){return Object(h.l)(t,i)}))),n=[[Object(pt.v)(r),Object(pt.w)(r),Object(pt.F)(r),Object(pt.E)(r),Object(pt.v)(r)]];e?e.setCoordinates(n):e=new No(n);const s=Object(h.s)();return s&&e.transform(i,s),e}},Rz.interaction.Draw.createRegularPolygon=function(t,e){return function(i,r,n){const s=Object(h.l)(i[0],n),o=Object(h.l)(i[i.length-1],n),a=Math.sqrt(Object(vn.l)(s,o));r=r||ko(new _c(s),t);let l=e;if(!e&&0!==e){const t=o[0]-s[0],e=o[1]-s[1];l=Math.atan2(e,t)}Do(r,s,a,l);const c=Object(h.s)();return c&&r.transform(n,c),r}},Rz.interaction.Extent=dP,Rz.interaction.Interaction=Jo,Rz.interaction.KeyboardPan=Ra,Rz.interaction.KeyboardZoom=Pa,Rz.interaction.Link=mP,Rz.interaction.Modify=CP,Rz.interaction.MouseWheelZoom=Aa,Rz.interaction.PinchRotate=Fa,Rz.interaction.PinchZoom=ka,Rz.interaction.Pointer=ea,Rz.interaction.Select=Fp,Rz.interaction.Snap=MP,Rz.interaction.Translate=AP,Rz.interaction.defaults={},Rz.interaction.defaults.defaults=Da,Rz.layer={},Rz.layer.Base=ss.a,Rz.layer.BaseImage=FP.a,Rz.layer.BaseTile=kP.a,Rz.layer.BaseVector=Wg,Rz.layer.Graticule=zP,Rz.layer.Group=cs,Rz.layer.Heatmap=PI,Rz.layer.Image=kh.a,Rz.layer.Layer=yn.a,Rz.layer.MapboxVector=bD,Rz.layer.Tile=Fh.a,Rz.layer.Vector=Lp,Rz.layer.VectorImage=CD,Rz.layer.VectorTile=jw,Rz.layer.WebGLTile=jj,Rz.loadingstrategy={},Rz.loadingstrategy.all=md,Rz.loadingstrategy.bbox=_d,Rz.loadingstrategy.tile=function(t){return function(e,i,r){const n=t.getZForResolution(Object(h.n)(i,r)),s=t.getTileRangeForExtentAndZ(Object(h.m)(e,r),n),o=[],a=[n,0,0];for(a[1]=s.minX;a[1]<=s.maxX;++a[1])for(a[2]=s.minY;a[2]<=s.maxY;++a[2])o.push(Object(h.x)(t.getTileCoordExtent(a),r));return o}},Rz.proj={},Rz.proj.Projection=qr.a,Rz.proj.Units={},Rz.proj.Units.METERS_PER_UNIT=BG.a,Rz.proj.addCoordinateTransforms=h.c,Rz.proj.addEquivalentProjections=h.d,Rz.proj.addProjection=h.e,Rz.proj.clearUserProjection=h.f,Rz.proj.equivalent=h.j,Rz.proj.fromLonLat=h.k,Rz.proj.get=h.o,Rz.proj.getPointResolution=h.p,Rz.proj.getTransform=h.q,Rz.proj.getUserProjection=h.s,Rz.proj.proj4={},Rz.proj.proj4.fromEPSGCode=async function(t){"string"==typeof t&&(t=parseInt(t.split(":").pop(),10));const e=Wr;if(!e)throw new Error("Proj4 must be registered first with register(proj4)");const i="EPSG:"+t;return e.defs(i)||(e.defs(i,await Hr(t)),Xr(e)),Object(h.o)(i)},Rz.proj.proj4.register=Xr,Rz.proj.proj4.setEPSGLookup=function(t){Hr=t},Rz.proj.setUserProjection=h.u,Rz.proj.toLonLat=h.v,Rz.proj.transform=h.z,Rz.proj.transformExtent=h.A,Rz.proj.useGeographic=h.B,Rz.render={},Rz.render.Feature={},Rz.render.Feature.toFeature=function(t,e){const i=t.getId(),r=uc(t),n=t.getProperties(),s=new Zh;return void 0!==e&&s.setGeometryName(e),s.setGeometry(r),void 0!==i&&s.setId(i),s.setProperties(n,!0),s},Rz.render.Feature.toGeometry=uc,Rz.render.VectorContext=Pd,Rz.render.getRenderPixel=function(t,e){return Object(gn.a)(t.inversePixelTransform,e.slice(0))},Rz.render.getVectorContext=Ud,Rz.render.toContext=Bd,Rz.renderer={},Rz.renderer.Composite=rs,Rz.renderer.canvas={},Rz.renderer.canvas.ImageLayer=wD.a,Rz.renderer.canvas.TileLayer=Pw.a,Rz.renderer.canvas.VectorImageLayer=ID,Rz.renderer.canvas.VectorLayer=Tp,Rz.renderer.canvas.VectorTileLayer=kw,Rz.renderer.webgl={},Rz.renderer.webgl.PointsLayer=TI,Rz.renderer.webgl.TileLayer=lj,Rz.size={},Rz.size.toSize=ja.d,Rz.source={},Rz.source.BingMaps=Gj,Rz.source.CartoDB=zj,Rz.source.Cluster=Sd,Rz.source.DataTile=Uj,Rz.source.GeoTIFF=ez,Rz.source.IIIF=sz,Rz.source.Image=Lu.a,Rz.source.ImageArcGISRest=az,Rz.source.ImageCanvas=hz,Rz.source.ImageMapGuide=uz,Rz.source.ImageStatic=gz,Rz.source.ImageWMS=Pu,Rz.source.OGCMapTile=vz,Rz.source.OGCVectorTile=xz,Rz.source.OSM=vw,Rz.source.OSM.ATTRIBUTION=yw,Rz.source.Raster=BP.a,Rz.source.Source=ld.a,Rz.source.Stamen=Sz,Rz.source.Tile=cu.b,Rz.source.TileArcGISRest=Iz,Rz.source.TileDebug=Cz,Rz.source.TileImage=bu,Rz.source.TileJSON=qP,Rz.source.TileWMS=Iu,Rz.source.UTFGrid=Mz,Rz.source.Vector=Ed,Rz.source.VectorTile=Ow,Rz.source.WMTS=aw,Rz.source.WMTS.optionsFromCapabilities=lw,Rz.source.XYZ=gw,Rz.source.Zoomify=rz,Rz.source.sourcesFromTileGrid=function(t,e){const i=new TD.a(32),r=t.getExtent();return function(n,s){i.expireCache(),r&&(n=Object(pt.B)(r,n));const o=t.getZForResolution(s),a=[];return t.forEachTileCoord(n,o,t=>{const r=t.toString();if(!i.containsKey(r)){const n=e(t);i.set(r,n)}a.push(i.get(r))}),a}},Rz.sphere={},Rz.sphere.getArea=Ro.a,Rz.sphere.getDistance=Ro.b,Rz.sphere.getLength=Ro.c,Rz.style={},Rz.style.Circle=og,Rz.style.Fill=lg,Rz.style.Icon=Rd,Rz.style.IconImageCache={},Rz.style.IconImageCache.shared=_n,Rz.style.Image=Td,Rz.style.RegularShape=qd,Rz.style.Stroke=cg,Rz.style.Style=mg,Rz.style.Text=yg,Rz.tilegrid={},Rz.tilegrid.TileGrid=Dh.a,Rz.tilegrid.WMTS=sw,Rz.tilegrid.WMTS.createFromCapabilitiesMatrixSet=ow,Rz.tilegrid.createXYZ=vu.a,Rz.transform={},Rz.transform.composeCssTransform=gn.c,Rz.util={},Rz.util.getUid=dn.b,Rz.webgl={},Rz.webgl.ARRAY_BUFFER=qS,Rz.webgl.Buffer=JS,Rz.webgl.DYNAMIC_DRAW=XS,Rz.webgl.ELEMENT_ARRAY_BUFFER=YS,Rz.webgl.PostProcessingPass=rI,Rz.webgl.RenderTarget=EI,Rz.webgl.STATIC_DRAW=WS,Rz.webgl.STREAM_DRAW=35040,Rz.xml={},Rz.xml.getAllTextContent=p,Rz.xml.parse=_,Rz.xml.registerDocument=function(t){F=t},Rz.xml.registerXMLSerializer=function(t){A=t},window.jsts=i(161),window.Handlebars=i(61),Oz.plugin={}},,,,function(t,e,i){"use strict";i.r(e),i.d(e,"default",(function(){return n}));var r=i(37);class n extends r.a{decodeBlock(t){return t}}},function(t,e,i){"use strict";i.r(e),i.d(e,"default",(function(){return o}));var r=i(37);function n(t,e){for(let i=e.length-1;i>=0;i--)t.push(e[i]);return t}function s(t){const e=new Uint16Array(4093),i=new Uint8Array(4093);for(let t=0;t<=257;t++)e[t]=4096,i[t]=t;let r=258,s=9,o=0;function a(){r=258,s=9}function l(t){const e=function(t,e,i){const r=e%8,n=Math.floor(e/8),s=8-r,o=e+i-8*(n+1);let a=8*(n+2)-(e+i);const l=8*(n+2)-e;if(a=Math.max(0,a),n>=t.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;let h=t[n]&2**(8-r)-1;h<<=i-s;let c=h;if(n+1>>a;e<<=Math.max(0,i-l),c+=e}if(o>8&&n+2>>r}return c}(t,o,s);return o+=s,e}function h(t,n){return i[r]=n,e[r]=t,r++,r-1}function c(t){const r=[];for(let n=t;4096!==n;n=e[n])r.push(i[n]);return r}const u=[];a();const d=new Uint8Array(t);let g,p=l(d);for(;257!==p;){if(256===p){for(a(),p=l(d);256===p;)p=l(d);if(257===p)break;if(p>256)throw new Error("corrupted code at scanline "+p);n(u,c(p)),g=p}else if(p=2**s&&(12===s?g=void 0:s++),p=l(d)}return new Uint8Array(u)}class o extends r.a{decodeBlock(t){return s(t).buffer}}},function(t,e,i){"use strict";i.r(e),i.d(e,"default",(function(){return _}));var r=i(37);const n=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,a=3406,l=2276,h=1567,c=3784,u=5793,d=2896;function g(t,e){let i=0;const r=[];let n=16;for(;n>0&&!t[n-1];)--n;r.push({children:[],index:0});let s,o=r[0];for(let a=0;a0;)o=r.pop();for(o.index++,r.push(o);r.length<=a;)r.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;i++}a+10)return f--,p>>f&1;if(p=t[g++],255===p){const e=t[g++];if(e)throw new Error("unexpected marker: "+(p<<8|e).toString(16))}return f=7,p>>>7}function _(t){let e,i=t;for(;null!==(e=m());){if(i=i[e],"number"==typeof i)return i;if("object"!=typeof i)throw new Error("invalid huffman sequence")}return null}function y(t){let e=t,i=0;for(;e>0;){const t=m();if(null===t)return;i=i<<1|t,--e}return i}function v(t){const e=y(t);return e>=1<0)return void x--;let i=o;const r=a;for(;i<=r;){const r=_(t.huffmanTableAC),s=15&r,o=r>>4;if(0===s){if(o<15){x=y(o)+(1<>4,0===i)s<15?(x=y(s)+(1<>4;if(0===r){if(o<15)break;s+=16}else s+=o,e[n[s]]=v(r),s++}};let P,N,A=0;N=1===I?r[0].blocksPerLine*r[0].blocksPerColumn:c*i.mcusPerColumn;const F=s||N;for(;A=65488&&P<=65495))break;g+=2}return g-d}function f(t,e){const i=[],{blocksPerLine:r,blocksPerColumn:n}=e,g=r<<3,p=new Int32Array(64),f=new Uint8Array(64);function m(t,i,r){const n=e.quantizationTable;let g,p,f,m,_,y,v,x,b;const w=r;let E;for(E=0;E<64;E++)w[E]=t[E]*n[E];for(E=0;E<8;++E){const t=8*E;0!==w[1+t]||0!==w[2+t]||0!==w[3+t]||0!==w[4+t]||0!==w[5+t]||0!==w[6+t]||0!==w[7+t]?(g=u*w[0+t]+128>>8,p=u*w[4+t]+128>>8,f=w[2+t],m=w[6+t],_=d*(w[1+t]-w[7+t])+128>>8,x=d*(w[1+t]+w[7+t])+128>>8,y=w[3+t]<<4,v=w[5+t]<<4,b=g-p+1>>1,g=g+p+1>>1,p=b,b=f*c+m*h+128>>8,f=f*h-m*c+128>>8,m=b,b=_-v+1>>1,_=_+v+1>>1,v=b,b=x+y+1>>1,y=x-y+1>>1,x=b,b=g-m+1>>1,g=g+m+1>>1,m=b,b=p-f+1>>1,p=p+f+1>>1,f=b,b=_*l+x*a+2048>>12,_=_*a-x*l+2048>>12,x=b,b=y*o+v*s+2048>>12,y=y*s-v*o+2048>>12,v=b,w[0+t]=g+x,w[7+t]=g-x,w[1+t]=p+v,w[6+t]=p-v,w[2+t]=f+y,w[5+t]=f-y,w[3+t]=m+_,w[4+t]=m-_):(b=u*w[0+t]+512>>10,w[0+t]=b,w[1+t]=b,w[2+t]=b,w[3+t]=b,w[4+t]=b,w[5+t]=b,w[6+t]=b,w[7+t]=b)}for(E=0;E<8;++E){const t=E;0!==w[8+t]||0!==w[16+t]||0!==w[24+t]||0!==w[32+t]||0!==w[40+t]||0!==w[48+t]||0!==w[56+t]?(g=u*w[0+t]+2048>>12,p=u*w[32+t]+2048>>12,f=w[16+t],m=w[48+t],_=d*(w[8+t]-w[56+t])+2048>>12,x=d*(w[8+t]+w[56+t])+2048>>12,y=w[24+t],v=w[40+t],b=g-p+1>>1,g=g+p+1>>1,p=b,b=f*c+m*h+2048>>12,f=f*h-m*c+2048>>12,m=b,b=_-v+1>>1,_=_+v+1>>1,v=b,b=x+y+1>>1,y=x-y+1>>1,x=b,b=g-m+1>>1,g=g+m+1>>1,m=b,b=p-f+1>>1,p=p+f+1>>1,f=b,b=_*l+x*a+2048>>12,_=_*a-x*l+2048>>12,x=b,b=y*o+v*s+2048>>12,y=y*s-v*o+2048>>12,v=b,w[0+t]=g+x,w[56+t]=g-x,w[8+t]=p+v,w[48+t]=p-v,w[16+t]=f+y,w[40+t]=f-y,w[24+t]=m+_,w[32+t]=m-_):(b=u*r[E+0]+8192>>14,w[0+t]=b,w[8+t]=b,w[16+t]=b,w[24+t]=b,w[32+t]=b,w[40+t]=b,w[48+t]=b,w[56+t]=b)}for(E=0;E<64;++E){const t=128+(w[E]+8>>4);i[E]=t<0?0:t>255?255:t}}for(let t=0;t>4==0)for(let i=0;i<64;i++){s[n[i]]=t[e++]}else{if(r>>4!=1)throw new Error("DQT: invalid table spec");for(let t=0;t<64;t++){s[n[t]]=i()}}this.quantizationTables[15&r]=s}break}case 65472:case 65473:case 65474:{i();const r={extended:65473===o,progressive:65474===o,precision:t[e++],scanLines:i(),samplesPerLine:i(),components:{},componentsOrder:[]},n=t[e++];let a;for(let i=0;i>4,n=15&t[e+1],s=t[e+2];r.componentsOrder.push(a),r.components[a]={h:i,v:n,quantizationIdx:s},e+=3}s(r),this.frames.push(r);break}case 65476:{const r=i();for(let i=2;i>4==0?this.huffmanTablesDC[15&r]=g(n,o):this.huffmanTablesAC[15&r]=g(n,o)}break}case 65501:i(),this.resetInterval=i();break;case 65498:{i();const r=t[e++],n=[],s=this.frames[0];for(let i=0;i>4],i.huffmanTableAC=this.huffmanTablesAC[15&r],n.push(i)}const o=t[e++],a=t[e++],l=t[e++],h=p(t,e,s,n,this.resetInterval,o,a,l>>4,15&l);e+=h;break}case 65535:255!==t[e]&&e--;break;default:if(255===t[e-3]&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker "+o.toString(16))}o=i()}}getResult(){const{frames:t}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let t=0;t=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var f=i.call(o,"catchLoc"),l=i.call(o,"finallyLoc");if(f&&l){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),S(r),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;S(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:D(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),v}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"===("undefined"==typeof globalThis?"undefined":r(globalThis))?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}}(n);var i=n.exports,a=new Map;function o(e,t){Array.isArray(e)||(e=[e]),e.forEach((function(e){return a.set(e,t)}))}function s(e){return f.apply(this,arguments)}function f(){return(f=t(i.mark((function e(t){var r,n;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=a.get(t.Compression)){e.next=3;break}throw new Error("Unknown compression method identifier: ".concat(t.Compression));case 3:return e.next=5,r();case 5:return n=e.sent,e.abrupt("return",new n(t));case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}o([void 0,1],(function(){return Promise.resolve().then((function(){return _})).then((function(e){return e.default}))})),o(5,(function(){return Promise.resolve().then((function(){return S})).then((function(e){return e.default}))})),o(6,(function(){throw new Error("old style JPEG compression is not supported.")})),o(7,(function(){return Promise.resolve().then((function(){return L})).then((function(e){return e.default}))})),o([8,32946],(function(){return Promise.resolve().then((function(){return Ne})).then((function(e){return e.default}))})),o(32773,(function(){return Promise.resolve().then((function(){return Ye})).then((function(e){return e.default}))})),o(34887,(function(){return Promise.resolve().then((function(){return ut})).then((function(e){return e.default}))})),o(50001,(function(){return Promise.resolve().then((function(){return dt})).then((function(e){return e.default}))}));var l=globalThis;function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){for(var r=0;r0;i--)e[n+t]+=e[n],n++;r-=t}while(r>0)}function w(e,t,r){for(var n=0,i=e.length,a=i/r;i>t;){for(var o=t;o>0;--o)e[n+t]+=e[n],++n;i-=t}for(var s=e.slice(),f=0;f=e.byteLength);++l){var u=void 0;if(2===t){switch(i[0]){case 8:u=new Uint8Array(e,l*f*r*s,f*r*s);break;case 16:u=new Uint16Array(e,l*f*r*s,f*r*s/2);break;case 32:u=new Uint32Array(e,l*f*r*s,f*r*s/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(i[0]," bits per sample."))}y(u,f)}else 3===t&&w(u=new Uint8Array(e,l*f*r*s,f*r*s),f,s)}return e}l.addEventListener("message",function(){var e=t(i.mark((function e(t){var r,n,a,o,f,u;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.data,n=r.id,a=r.fileDirectory,o=r.buffer,e.next=3,s(a);case 3:return f=e.sent,e.next=6,f.decode(a,o);case 6:u=e.sent,l.postMessage({decoded:u,id:n},[u]);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());var b=function(){function e(){u(this,e)}var r;return h(e,[{key:"decode",value:(r=t(i.mark((function e(t,r){var n,a,o,s,f;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.decodeBlock(r);case 2:if(n=e.sent,1===(a=t.Predictor||1)){e.next=9;break}return o=!t.StripOffsets,s=o?t.TileWidth:t.ImageWidth,f=o?t.TileLength:t.RowsPerStrip||t.ImageLength,e.abrupt("return",g(n,a,s,f,t.BitsPerSample,t.PlanarConfiguration));case 9:return e.abrupt("return",n);case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})}]),e}();function k(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var i=v(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return m(this,r)}}var x=function(e){p(r,b);var t=k(r);function r(){return u(this,r),t.apply(this,arguments)}return h(r,[{key:"decodeBlock",value:function(e){return e}}]),r}(),_=Object.freeze({__proto__:null,default:x});function A(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var i=v(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return m(this,r)}}function P(e,t){for(var r=t.length-1;r>=0;r--)e.push(t[r]);return e}function I(e){for(var t=new Uint16Array(4093),r=new Uint8Array(4093),n=0;n<=257;n++)t[n]=4096,r[n]=n;var i=258,a=9,o=0;function s(){i=258,a=9}function f(e){var t=function(e,t,r){var n=t%8,i=Math.floor(t/8),a=8-n,o=t+r-8*(i+1),s=8*(i+2)-(t+r),f=8*(i+2)-t;if(s=Math.max(0,s),i>=e.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var l=e[i]&Math.pow(2,8-n)-1,u=l<<=r-a;if(i+1>>s;u+=c<<=Math.max(0,r-f)}if(o>8&&i+2>>h}return u}(e,o,a);return o+=a,t}function l(e,n){return r[i]=n,t[i]=e,++i-1}function u(e){for(var n=[],i=e;4096!==i;i=t[i])n.push(r[i]);return n}var c=[];s();for(var h,d=new Uint8Array(e),p=f(d);257!==p;){if(256===p){for(s(),p=f(d);256===p;)p=f(d);if(257===p)break;if(p>256)throw new Error("corrupted code at scanline ".concat(p));P(c,u(p)),h=p}else if(p=Math.pow(2,a)&&(12===a?h=void 0:a++),p=f(d)}return new Uint8Array(c)}var U=function(e){p(r,b);var t=A(r);function r(){return u(this,r),t.apply(this,arguments)}return h(r,[{key:"decodeBlock",value:function(e){return I(e).buffer}}]),r}(),S=Object.freeze({__proto__:null,default:U});function T(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var i=v(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return m(this,r)}}var D=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function E(e,t){for(var r=0,n=[],i=16;i>0&&!e[i-1];)--i;n.push({children:[],index:0});for(var a,o=n[0],s=0;s0;)o=n.pop();for(o.index++,n.push(o);n.length<=s;)n.push(a={children:[],index:0}),o.children[o.index]=a.children,o=a;r++}s+10)return m--,p>>m&1;if(255===(p=e[d++])){var t=e[d++];if(t)throw new Error("unexpected marker: ".concat((p<<8|t).toString(16)))}return m=7,p>>>7}function y(e){for(var t,n=e;null!==(t=v());){if("number"==typeof(n=n[t]))return n;if("object"!==r(n))throw new Error("invalid huffman sequence")}return null}function w(e){for(var t=e,r=0;t>0;){var n=v();if(null===n)return;r=r<<1|n,--t}return r}function g(e){var t=w(e);return t>=1<0)b--;else for(var r=o,n=s;r<=n;){var i=y(e.huffmanTableAC),a=15&i,f=i>>4;if(0===a){if(f<15){b=w(f)+(1<>4,0===c)i<15?(b=w(i)+(1<>4;if(0===o){if(s<15)break;i+=16}else t[D[i+=s]]=g(o),i++}};var O,M,C=0;M=1===B?i[0].blocksPerLine*i[0].blocksPerColumn:u*n.mcusPerColumn;for(var L=a||M;C=65488&&O<=65495))break;d+=2}return d-h}function O(e,t){var r=[],n=t.blocksPerLine,i=t.blocksPerColumn,a=n<<3,o=new Int32Array(64),s=new Uint8Array(64);function f(e,r,n){var i,a,o,s,f,l,u,c,h,d,p=t.quantizationTable,m=n;for(d=0;d<64;d++)m[d]=e[d]*p[d];for(d=0;d<8;++d){var v=8*d;0!==m[1+v]||0!==m[2+v]||0!==m[3+v]||0!==m[4+v]||0!==m[5+v]||0!==m[6+v]||0!==m[7+v]?(i=5793*m[0+v]+128>>8,a=5793*m[4+v]+128>>8,o=m[2+v],s=m[6+v],f=2896*(m[1+v]-m[7+v])+128>>8,c=2896*(m[1+v]+m[7+v])+128>>8,l=m[3+v]<<4,h=i-a+1>>1,i=i+a+1>>1,a=h,h=3784*o+1567*s+128>>8,o=1567*o-3784*s+128>>8,s=h,h=f-(u=m[5+v]<<4)+1>>1,f=f+u+1>>1,u=h,h=c+l+1>>1,l=c-l+1>>1,c=h,h=i-s+1>>1,i=i+s+1>>1,s=h,h=a-o+1>>1,a=a+o+1>>1,o=h,h=2276*f+3406*c+2048>>12,f=3406*f-2276*c+2048>>12,c=h,h=799*l+4017*u+2048>>12,l=4017*l-799*u+2048>>12,u=h,m[0+v]=i+c,m[7+v]=i-c,m[1+v]=a+u,m[6+v]=a-u,m[2+v]=o+l,m[5+v]=o-l,m[3+v]=s+f,m[4+v]=s-f):(h=5793*m[0+v]+512>>10,m[0+v]=h,m[1+v]=h,m[2+v]=h,m[3+v]=h,m[4+v]=h,m[5+v]=h,m[6+v]=h,m[7+v]=h)}for(d=0;d<8;++d){var y=d;0!==m[8+y]||0!==m[16+y]||0!==m[24+y]||0!==m[32+y]||0!==m[40+y]||0!==m[48+y]||0!==m[56+y]?(i=5793*m[0+y]+2048>>12,a=5793*m[32+y]+2048>>12,o=m[16+y],s=m[48+y],f=2896*(m[8+y]-m[56+y])+2048>>12,c=2896*(m[8+y]+m[56+y])+2048>>12,l=m[24+y],h=i-a+1>>1,i=i+a+1>>1,a=h,h=3784*o+1567*s+2048>>12,o=1567*o-3784*s+2048>>12,s=h,h=f-(u=m[40+y])+1>>1,f=f+u+1>>1,u=h,h=c+l+1>>1,l=c-l+1>>1,c=h,h=i-s+1>>1,i=i+s+1>>1,s=h,h=a-o+1>>1,a=a+o+1>>1,o=h,h=2276*f+3406*c+2048>>12,f=3406*f-2276*c+2048>>12,c=h,h=799*l+4017*u+2048>>12,l=4017*l-799*u+2048>>12,u=h,m[0+y]=i+c,m[56+y]=i-c,m[8+y]=a+u,m[48+y]=a-u,m[16+y]=o+l,m[40+y]=o-l,m[24+y]=s+f,m[32+y]=s-f):(h=5793*n[d+0]+8192>>14,m[0+y]=h,m[8+y]=h,m[16+y]=h,m[24+y]=h,m[32+y]=h,m[40+y]=h,m[48+y]=h,m[56+y]=h)}for(d=0;d<64;++d){var w=128+(m[d]+8>>4);r[d]=w<0?0:w>255?255:w}}for(var l=0;l>4==0)for(var c=0;c<64;c++){u[D[c]]=e[t++]}else{if(l>>4!=1)throw new Error("DQT: invalid table spec");for(var h=0;h<64;h++){u[D[h]]=r()}}this.quantizationTables[15&l]=u}break;case 65472:case 65473:case 65474:r();for(var d={extended:65473===o,progressive:65474===o,precision:e[t++],scanLines:r(),samplesPerLine:r(),components:{},componentsOrder:[]},p=e[t++],m=void 0,v=0;v>4,w=15&e[t+1],g=e[t+2];d.componentsOrder.push(m),d.components[m]={h:y,v:w,quantizationIdx:g},t+=3}n(d),this.frames.push(d);break;case 65476:for(var b=r(),k=2;k>4==0?this.huffmanTablesDC[15&x]=E(_,I):this.huffmanTablesAC[15&x]=E(_,I)}break;case 65501:r(),this.resetInterval=r();break;case 65498:r();for(var S=e[t++],T=[],O=this.frames[0],M=0;M>4],C.huffmanTableAC=this.huffmanTablesAC[15&L],T.push(C)}var R=e[t++],V=e[t++],G=e[t++],F=B(e,t,O,T,this.resetInterval,R,V,G>>4,15&G);t+=F;break;case 65535:255!==e[t]&&t--;break;default:if(255===e[t-3]&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error("unknown JPEG marker ".concat(o.toString(16)))}o=r()}}},{key:"getResult",value:function(){var e=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var t=0;t=0;)e[t]=0}R(new Array(576)),R(new Array(60)),R(new Array(512)),R(new Array(256)),R(new Array(29)),R(new Array(30));var V=function(e,t,r,n){for(var i=65535&e|0,a=e>>>16&65535|0,o=0;0!==r;){r-=o=r>2e3?2e3:r;do{a=a+(i=i+t[n++]|0)|0}while(--o);i%=65521,a%=65521}return i|a<<16|0},G=new Uint32Array(function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}()),F=function(e,t,r,n){var i=G,a=n+r;e^=-1;for(var o=n;o>>8^i[255&(e^t[o])];return-1^e},z={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},j={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},N=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},Z=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!==r(n))throw new TypeError(n+"must be non-object");for(var i in n)N(n,i)&&(e[i]=n[i])}}return e},K=function(e){for(var t=0,r=0,n=e.length;r=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;Y[254]=Y[254]=1;var W=function(e){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);var t,r,n,i,a,o=e.length,s=0;for(i=0;i>>6,t[a++]=128|63&r):r<65536?(t[a++]=224|r>>>12,t[a++]=128|r>>>6&63,t[a++]=128|63&r):(t[a++]=240|r>>>18,t[a++]=128|r>>>12&63,t[a++]=128|r>>>6&63,t[a++]=128|63&r);return t},q=function(e,t){var r,n,i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));var a=new Array(2*i);for(n=0,r=0;r4)a[n++]=65533,r+=s-1;else{for(o&=2===s?31:3===s?15:7;s>1&&r1?a[n++]=65533:o<65536?a[n++]=o:(o-=65536,a[n++]=55296|o>>10&1023,a[n++]=56320|1023&o)}}}return function(e,t){if(t<65534&&e.subarray&&H)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));for(var r="",n=0;ne.length&&(t=e.length);for(var r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+Y[e[r]]>t?r:t};var Q=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(e,t){var r,n,i,a,o,s,f,l,u,c,h,d,p,m,v,y,w,g,b,k,x,_,A,P,I=e.state;r=e.next_in,A=e.input,n=r+(e.avail_in-5),i=e.next_out,P=e.output,a=i-(t-e.avail_out),o=i+(e.avail_out-257),s=I.dmax,f=I.wsize,l=I.whave,u=I.wnext,c=I.window,h=I.hold,d=I.bits,p=I.lencode,m=I.distcode,v=(1<>>=g=w>>>24,d-=g,0===(g=w>>>16&255))P[i++]=65535&w;else{if(!(16&g)){if(0==(64&g)){w=p[(65535&w)+(h&(1<>>=g,d-=g),d<15&&(h+=A[r++]<>>=g=w>>>24,d-=g,!(16&(g=w>>>16&255))){if(0==(64&g)){w=m[(65535&w)+(h&(1<s){e.msg="invalid distance too far back",I.mode=30;break e}if(h>>>=g,d-=g,k>(g=i-a)){if((g=k-g)>l&&I.sane){e.msg="invalid distance too far back",I.mode=30;break e}if(x=0,_=c,0===u){if(x+=f-g,g2;)P[i++]=_[x++],P[i++]=_[x++],P[i++]=_[x++],b-=3;b&&(P[i++]=_[x++],b>1&&(P[i++]=_[x++]))}else{x=i-k;do{P[i++]=P[x++],P[i++]=P[x++],P[i++]=P[x++],b-=3}while(b>2);b&&(P[i++]=P[x++],b>1&&(P[i++]=P[x++]))}break}}break}}while(r>3,h&=(1<<(d-=b<<3))-1,e.next_in=r,e.next_out=i,e.avail_in=r=1&&0===D[k];k--);if(x>k&&(x=k),0===k)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(b=1;b0&&(0===e||1!==k))return-1;for(E[1]=0,w=1;w<15;w++)E[w+1]=E[w]+D[w];for(g=0;g852||2===e&&I>592)return 1;for(;;){p=w-A,o[g]d?(m=B[O+o[g]],v=S[T+o[g]]):(m=96,v=0),f=1<>A)+(l-=f)]=p<<24|m<<16|v|0}while(0!==l);for(f=1<>=1;if(0!==f?(U&=f-1,U+=f):U=0,g++,0==--D[w]){if(w===k)break;w=t[r+o[g]]}if(w>x&&(U&c)!==u){for(0===A&&(A=x),h+=b,P=1<<(_=w-A);_+A852||2===e&&I>592)return 1;i[u=U&c]=x<<24|_<<16|h-a|0}}return 0!==U&&(i[h+U]=w-A<<24|64<<16|0),s.bits=x,0},ae=j.Z_FINISH,oe=j.Z_BLOCK,se=j.Z_TREES,fe=j.Z_OK,le=j.Z_STREAM_END,ue=j.Z_NEED_DICT,ce=j.Z_STREAM_ERROR,he=j.Z_DATA_ERROR,de=j.Z_MEM_ERROR,pe=j.Z_BUF_ERROR,me=j.Z_DEFLATED,ve=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function ye(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var we,ge,be=function(e){if(!e||!e.state)return ce;var t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,fe},ke=function(e){if(!e||!e.state)return ce;var t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,be(e)},xe=function(e,t){var r;if(!e||!e.state)return ce;var n=e.state;return t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?ce:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,ke(e))},_e=function(e,t){if(!e)return ce;var r=new ye;e.state=r,r.window=null;var n=xe(e,t);return n!==fe&&(e.state=null),n},Ae=!0,Pe=function(e){if(Ae){we=new Int32Array(512),ge=new Int32Array(32);for(var t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(ie(1,e.lens,0,288,we,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;ie(2,e.lens,0,32,ge,0,e.work,{bits:5}),Ae=!1}e.lencode=we,e.lenbits=9,e.distcode=ge,e.distbits=5},Ie=function(e,t,r,n){var i,a=e.state;return null===a.window&&(a.wsize=1<=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):((i=a.wsize-a.wnext)>n&&(i=n),a.window.set(t.subarray(r-n,r-n+i),a.wnext),(n-=i)?(a.window.set(t.subarray(r-n,r),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave>>8&255,r.check=F(r.check,U,2,0),l=0,u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&l)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=30;break}if((15&l)!==me){e.msg="unknown compression method",r.mode=30;break}if(u-=4,x=8+(15&(l>>>=4)),0===r.wbits)r.wbits=x;else if(x>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(U[0]=255&l,U[1]=l>>>8&255,r.check=F(r.check,U,2,0)),l=0,u=0,r.mode=3;case 3:for(;u<32;){if(0===s)break e;s--,l+=n[a++]<>>8&255,U[2]=l>>>16&255,U[3]=l>>>24&255,r.check=F(r.check,U,4,0)),l=0,u=0,r.mode=4;case 4:for(;u<16;){if(0===s)break e;s--,l+=n[a++]<>8),512&r.flags&&(U[0]=255&l,U[1]=l>>>8&255,r.check=F(r.check,U,2,0)),l=0,u=0,r.mode=5;case 5:if(1024&r.flags){for(;u<16;){if(0===s)break e;s--,l+=n[a++]<>>8&255,r.check=F(r.check,U,2,0)),l=0,u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((d=r.length)>s&&(d=s),d&&(r.head&&(x=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(n.subarray(a,a+d),x)),512&r.flags&&(r.check=F(r.check,n,d,a)),s-=d,a+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===s)break e;d=0;do{x=n[a+d++],r.head&&x&&r.length<65536&&(r.head.name+=String.fromCharCode(x))}while(x&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;u<32;){if(0===s)break e;s--,l+=n[a++]<>>=7&u,u-=7&u,r.mode=27;break}for(;u<3;){if(0===s)break e;s--,l+=n[a++]<>>=1)){case 0:r.mode=14;break;case 1:if(Pe(r),r.mode=20,t===se){l>>>=2,u-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}l>>>=2,u-=2;break;case 14:for(l>>>=7&u,u-=7&u;u<32;){if(0===s)break e;s--,l+=n[a++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&l,l=0,u=0,r.mode=15,t===se)break e;case 15:r.mode=16;case 16:if(d=r.length){if(d>s&&(d=s),d>f&&(d=f),0===d)break e;i.set(n.subarray(a,a+d),o),s-=d,a+=d,f-=d,o+=d,r.length-=d;break}r.mode=12;break;case 17:for(;u<14;){if(0===s)break e;s--,l+=n[a++]<>>=5,u-=5,r.ndist=1+(31&l),l>>>=5,u-=5,r.ncode=4+(15&l),l>>>=4,u-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,u-=3}for(;r.have<19;)r.lens[S[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,A={bits:r.lenbits},_=ie(0,r.lens,0,19,r.lencode,0,r.work,A),r.lenbits=A.bits,_){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,w=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,l+=n[a++]<>>=v,u-=v,r.lens[r.have++]=w;else{if(16===w){for(P=v+2;u>>=v,u-=v,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}x=r.lens[r.have-1],d=3+(3&l),l>>>=2,u-=2}else if(17===w){for(P=v+3;u>>=v)),l>>>=3,u-=3}else{for(P=v+7;u>>=v)),l>>>=7,u-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=x}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,A={bits:r.lenbits},_=ie(1,r.lens,0,r.nlen,r.lencode,0,r.work,A),r.lenbits=A.bits,_){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,A={bits:r.distbits},_=ie(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,A),r.distbits=A.bits,_){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,t===se)break e;case 20:r.mode=21;case 21:if(s>=6&&f>=258){e.next_out=o,e.avail_out=f,e.next_in=a,e.avail_in=s,r.hold=l,r.bits=u,$(e,h),o=e.next_out,i=e.output,f=e.avail_out,a=e.next_in,n=e.input,s=e.avail_in,l=r.hold,u=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;y=(I=r.lencode[l&(1<>>16&255,w=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,l+=n[a++]<>g)])>>>16&255,w=65535&I,!(g+(v=I>>>24)<=u);){if(0===s)break e;s--,l+=n[a++]<>>=g,u-=g,r.back+=g}if(l>>>=v,u-=v,r.back+=v,r.length=w,0===y){r.mode=26;break}if(32&y){r.back=-1,r.mode=12;break}if(64&y){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&y,r.mode=22;case 22:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;y=(I=r.distcode[l&(1<>>16&255,w=65535&I,!((v=I>>>24)<=u);){if(0===s)break e;s--,l+=n[a++]<>g)])>>>16&255,w=65535&I,!(g+(v=I>>>24)<=u);){if(0===s)break e;s--,l+=n[a++]<>>=g,u-=g,r.back+=g}if(l>>>=v,u-=v,r.back+=v,64&y){e.msg="invalid distance code",r.mode=30;break}r.offset=w,r.extra=15&y,r.mode=24;case 24:if(r.extra){for(P=r.extra;u>>=r.extra,u-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===f)break e;if(d=h-f,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}d>r.wnext?(d-=r.wnext,p=r.wsize-d):p=r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=o-r.offset,d=r.length;d>f&&(d=f),f-=d,r.length-=d;do{i[o++]=m[p++]}while(--d);0===r.length&&(r.mode=21);break;case 26:if(0===f)break e;i[o++]=r.length,f--,r.mode=21;break;case 27:if(r.wrap){for(;u<32;){if(0===s)break e;s--,l|=n[a++]<=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Q,this.strm.avail_out=0;var r=Ue.inflateInit2(this.strm,t.windowBits);if(r!==Be)throw new Error(z[r]);if(this.header=new Se,Ue.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=W(t.dictionary):"[object ArrayBuffer]"===Te.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=Ue.inflateSetDictionary(this.strm,t.dictionary))!==Be))throw new Error(z[r])}function Ge(e,t){var r=new Ve(t);if(r.push(e),r.err)throw r.msg||z[r.err];return r.result}Ve.prototype.push=function(e,t){var r,n,i,a=this.strm,o=this.options.chunkSize,s=this.options.dictionary;if(this.ended)return!1;for(n=t===~~t?t:!0===t?Ee:De,"[object ArrayBuffer]"===Te.call(e)?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(o),a.next_out=0,a.avail_out=o),(r=Ue.inflate(a,n))===Me&&s&&((r=Ue.inflateSetDictionary(a,s))===Be?r=Ue.inflate(a,n):r===Le&&(r=Me));a.avail_in>0&&r===Oe&&a.state.wrap>0&&0!==e[a.next_in];)Ue.inflateReset(a),r=Ue.inflate(a,n);switch(r){case Ce:case Le:case Me:case Re:return this.onEnd(r),this.ended=!0,!1}if(i=a.avail_out,a.next_out&&(0===a.avail_out||r===Oe))if("string"===this.options.to){var f=J(a.output,a.next_out),l=a.next_out-f,u=q(a.output,f);a.next_out=l,a.avail_out=o-l,l&&a.output.set(a.output.subarray(f,f+l),0),this.onData(u)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(r!==Be||0!==i){if(r===Oe)return r=Ue.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Ve.prototype.onData=function(e){this.chunks.push(e)},Ve.prototype.onEnd=function(e){e===Be&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=K(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Fe={Inflate:Ve,inflate:Ge,inflateRaw:function(e,t){return(t=t||{}).raw=!0,Ge(e,t)},ungzip:Ge,constants:j}.inflate;function ze(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var i=v(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return m(this,r)}}var je=function(e){p(r,b);var t=ze(r);function r(){return u(this,r),t.apply(this,arguments)}return h(r,[{key:"decodeBlock",value:function(e){return Fe(new Uint8Array(e)).buffer}}]),r}(),Ne=Object.freeze({__proto__:null,default:je});function Ze(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var i=v(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return m(this,r)}}var Ke,He=function(e){p(r,b);var t=Ze(r);function r(){return u(this,r),t.apply(this,arguments)}return h(r,[{key:"decodeBlock",value:function(e){for(var t=new DataView(e),r=[],n=0;n>3],I<<=7&U),v=0;v>3]),128&I?(f&&(f[U]=1),m=m>(o=T.encoding<2?_[A++]:P)?o:m,s[U++]=o):(f&&(f[U]=0),s[U++]=n),I<<=1;U+=S}else if(T.encoding<2)for(y=0;y(o=_[A++])?o:m,s[U++]=o;U+=S}else for(m=m>P?P:m,y=0;y0){var o=new Uint8Array(Math.ceil(n.width*n.height/8)),s=(a=new DataView(e,t,n.mask.numBytes)).getInt16(0,!0),f=2,l=0;do{if(s>0)for(;s--;)o[l++]=a.getUint8(f++);else{var u=a.getUint8(f++);for(s=-s;s--;)o[l++]=u}s=a.getInt16(f,!0),f+=2}while(f0?1:0),p=h+(n.height%h>0?1:0);n.pixels.blocks=new Array(d*p);for(var m=0,v=0;v3)throw"Invalid block encoding ("+b.encoding+")";if(2!==b.encoding){if(0!==k&&2!==k){if(k>>=6,b.offsetType=k,2===k)b.offset=a.getInt8(1),w++;else if(1===k)b.offset=a.getInt16(1,!0),w+=2;else{if(0!==k)throw"Invalid block offset type";b.offset=a.getFloat32(1,!0),w+=4}if(1===b.encoding)if(k=a.getUint8(w),w++,b.bitsPerPixel=63&k,k>>=6,b.numValidPixelsType=k,2===k)b.numValidPixels=a.getUint8(w),w++;else if(1===k)b.numValidPixels=a.getUint16(w,!0),w+=2;else{if(0!==k)throw"Invalid valid pixel count type";b.numValidPixels=a.getUint32(w,!0),w+=4}}var x;if(t+=w,3!==b.encoding)if(0===b.encoding){var _=(n.pixels.numBytes-1)/4;if(_!==Math.floor(_))throw"uncompressed block has invalid length";x=new ArrayBuffer(4*_),new Uint8Array(x).set(new Uint8Array(e,t,4*_));var A=new Float32Array(x);b.rawData=A,t+=4*_}else if(1===b.encoding){var P=Math.ceil(b.numValidPixels*b.bitsPerPixel/8),I=Math.ceil(P/4);x=new ArrayBuffer(4*I),new Uint8Array(x).set(new Uint8Array(e,t,P)),b.stuffedData=new Uint32Array(x),t+=P}}else t++}return n.eofOffset=t,n},a=function(e,t,r,n,i,a,o){var s,f,l,u=(1<=t)f=l>>>h-t&u,h-=t;else{var m=t-h;f=(l&u)<>>(h=32-m)}a[s]=f=r?(l=u>>>m-r&d,m-=r):(l=(u&d)<<(c=r-m)&d,l+=(u=e[p++])>>>(m=32-c)),t[f]=i[l];else for(h=Math.ceil((s-a)/o),f=0;f=r?(l=u>>>m-r&d,m-=r):(l=(u&d)<<(c=r-m)&d,l+=(u=e[p++])>>>(m=32-c)),t[f]=l=t?(h=o>>>c-t&s,c-=t):(h=(o&s)<<(u=t-c)&s,h+=(o=e[f++])>>>(c=32-u)),d[l]=h=r?(l=u>>>m&h,p-=r,m+=r):(l=u>>>m&h,p=32-(c=r-p),l|=((u=e[d++])&(1<=r?(l=u>>>m&h,p-=r,m+=r):(l=u>>>m&h,p=32-(c=r-p),l|=((u=e[d++])&(1<=t?(h=o>>>d&s,c-=t,d+=t):(h=o>>>d&s,c=32-(u=t-c),h|=((o=e[f++])&(1<=r?(a=o>>>u-r&f,u-=r):(a=(o&f)<<(s=r-u)&f,a+=(o=e[l++])>>>(u=32-s)),t[i]=a;return t},c=function(e,t,r,n){var i,a,o,s,f=(1<=r?(a=o>>>c&f,u-=r,c+=r):(a=o>>>c&f,u=32-(s=r-u),a|=((o=e[l++])&(1<=359?359:i;i-=o;do{t+=e[a++]<<8,r+=t+=e[a++]}while(--o);t=(65535&t)+(t>>>16),r=(65535&r)+(r>>>16)}return 1&n&&(r+=t+=e[a]<<8),((r=(65535&r)+(r>>>16))<<16|(t=(65535&t)+(t>>>16)))>>>0},readHeaderInfo:function(e,t){var r=t.ptr,n=new Uint8Array(e,r,6),i={};if(i.fileIdentifierString=String.fromCharCode.apply(null,n),0!==i.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+i.fileIdentifierString;r+=6;var a,o=new DataView(e,r,8),s=o.getInt32(0,!0);if(i.fileVersion=s,r+=4,s>=3&&(i.checksum=o.getUint32(4,!0),r+=4),o=new DataView(e,r,12),i.height=o.getUint32(0,!0),i.width=o.getUint32(4,!0),r+=8,s>=4?(i.numDims=o.getUint32(8,!0),r+=4):i.numDims=1,o=new DataView(e,r,40),i.numValidPixel=o.getUint32(0,!0),i.microBlockSize=o.getInt32(4,!0),i.blobSize=o.getInt32(8,!0),i.imageType=o.getInt32(12,!0),i.maxZError=o.getFloat64(16,!0),i.zMin=o.getFloat64(24,!0),i.zMax=o.getFloat64(32,!0),r+=40,t.headerInfo=i,t.ptr=r,s>=3&&(a=s>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(e,r-a,i.blobSize-14))!==i.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(e,t){var r=t.headerInfo,n=this.getDataTypeArray(r.imageType),i=r.numDims*this.getDataTypeSize(r.imageType),a=this.readSubArray(e,t.ptr,n,i),o=this.readSubArray(e,t.ptr+i,n,i);t.ptr+=2*i;var s,f=!0;for(s=0;s0){r=new Uint8Array(Math.ceil(o/8));var u=(f=new DataView(e,i,l.numBytes)).getInt16(0,!0),c=2,h=0,d=0;do{if(u>0)for(;u--;)r[h++]=f.getUint8(c++);else for(d=f.getUint8(c++),u=-u;u--;)r[h++]=d;u=f.getInt16(c,!0),c+=2}while(c>3],p<<=7&m):p=r[m>>3],128&p&&(n[m]=1);t.pixels.resultMask=n,l.bitset=r,i+=l.numBytes}return t.ptr=i,t.mask=l,!0},readDataOneSweep:function(e,t,r,n){var i,a=t.ptr,o=t.headerInfo,s=o.numDims,f=o.width*o.height,l=o.imageType,u=o.numValidPixel*h.getDataTypeSize(l)*s,c=t.pixels.resultMask;if(r===Uint8Array)i=new Uint8Array(e,a,u);else{var d=new ArrayBuffer(u);new Uint8Array(d).set(new Uint8Array(e,a,u)),i=new r(d)}if(i.length===f*s)t.pixels.resultPixels=n?h.swapDimensionOrder(i,f,s,r,!0):i;else{t.pixels.resultPixels=new r(f*s);var p=0,m=0,v=0,y=0;if(s>1){if(n){for(m=0;m=o)return!1;var s=new Uint32Array(o-a);h.decodeBits(e,t,s);var f,l,u,c,p=[];for(f=a;f0&&(p[l].second=w<>>32-c,32-b>=c?32===(b+=c)&&(b=0,w=g[++k]):(b+=c-32,w=g[++k],p[l].second|=w>>>32-b));var x=0,_=0,A=new d;for(f=0;f=r?r:x;var P,I,U,S,T,D=[];for(f=a;f0)if(P=[c,l],c<=_)for(I=p[l].second<<_-c,U=1<<_-c,u=0;u=0;S--)I>>>S&1?(T.right||(T.right=new d),T=T.right):(T.left||(T.left=new d),T=T.left),0!==S||T.val||(T.val=P[1]);return{decodeLut:D,numBitsLUTQick:_,numBitsLUT:x,tree:A,stuffedData:g,srcPtr:k,bitPos:b}},readHuffman:function(e,t,r,n){var i,a,o,s,f,l,u,c,d,p=t.headerInfo.numDims,m=t.headerInfo.height,v=t.headerInfo.width,y=v*m,w=this.readHuffmanTree(e,t),g=w.decodeLut,b=w.tree,k=w.stuffedData,x=w.srcPtr,_=w.bitPos,A=w.numBitsLUTQick,P=w.numBitsLUT,I=0===t.headerInfo.imageType?128:0,U=t.pixels.resultMask,S=0;_>0&&(x++,_=0);var T,D=k[x],E=1===t.encodeMode,B=new r(y*p),O=B;if(p<2||E){for(T=0;T1&&(O=new r(B.buffer,y*T,y),S=0),t.headerInfo.numValidPixel===v*m)for(c=0,l=0;l>>32-A,32-_>>64-_-A),g[f])a=g[f][1],_+=g[f][0];else for(f=s=D<<_>>>32-P,32-_>>64-_-P),i=b,d=0;d>>P-d-1&1?i.right:i.left).left&&!i.right){a=i.val,_=_+d+1;break}_>=32&&(_-=32,D=k[++x]),o=a-I,E?(o+=u>0?S:l>0?O[c-v]:S,o&=255,O[c]=o,S=o):O[c]=o}else for(c=0,l=0;l>>32-A,32-_>>64-_-A),g[f])a=g[f][1],_+=g[f][0];else for(f=s=D<<_>>>32-P,32-_>>64-_-P),i=b,d=0;d>>P-d-1&1?i.right:i.left).left&&!i.right){a=i.val,_=_+d+1;break}_>=32&&(_-=32,D=k[++x]),o=a-I,E?(u>0&&U[c-1]?o+=S:l>0&&U[c-v]?o+=O[c-v]:o+=S,o&=255,O[c]=o,S=o):O[c]=o}}else for(c=0,l=0;l>>32-A,32-_>>64-_-A),g[f])a=g[f][1],_+=g[f][0];else for(f=s=D<<_>>>32-P,32-_>>64-_-P),i=b,d=0;d>>P-d-1&1?i.right:i.left).left&&!i.right){a=i.val,_=_+d+1;break}_>=32&&(_-=32,D=k[++x]),o=a-I,O[c]=o}t.ptr=t.ptr+4*(x+1)+(_>0?4:0),t.pixels.resultPixels=B,p>1&&!n&&(t.pixels.resultPixels=h.swapDimensionOrder(B,y,p,r))},decodeBits:function(e,t,r,n,i){var a=t.headerInfo,h=a.fileVersion,d=0,p=e.byteLength-t.ptr>=5?5:e.byteLength-t.ptr,m=new DataView(e,t.ptr,p),v=m.getUint8(0);d++;var y=v>>6,w=0===y?4:3-y,g=(32&v)>0,b=31&v,k=0;if(1===w)k=m.getUint8(d),d++;else if(2===w)k=m.getUint16(d,!0),d+=2;else{if(4!==w)throw"Invalid valid pixel count type";k=m.getUint32(d,!0),d+=4}var x,_,A,P,I,U,S,T,D,E=2*a.maxZError,B=a.numDims>1?a.maxValues[i]:a.zMax;if(g){for(t.counter.lut++,T=m.getUint8(d),d++,P=Math.ceil((T-1)*b/8),I=Math.ceil(P/4),_=new ArrayBuffer(4*I),A=new Uint8Array(_),t.ptr+=d,A.set(new Uint8Array(e,t.ptr,P)),S=new Uint32Array(_),t.ptr+=P,D=0;T-1>>>D;)D++;P=Math.ceil(k*D/8),I=Math.ceil(P/4),_=new ArrayBuffer(4*I),(A=new Uint8Array(_)).set(new Uint8Array(e,t.ptr,P)),x=new Uint32Array(_),t.ptr+=P,U=h>=3?l(S,b,T-1,n,E,B):s(S,b,T-1,n,E,B),h>=3?f(x,r,D,k,U):o(x,r,D,k,U)}else t.counter.bitstuffer++,D=b,t.ptr+=d,D>0&&(P=Math.ceil(k*D/8),I=Math.ceil(P/4),_=new ArrayBuffer(4*I),(A=new Uint8Array(_)).set(new Uint8Array(e,t.ptr,P)),x=new Uint32Array(_),t.ptr+=P,h>=3?null==n?c(x,r,D,k):f(x,r,D,k,!1,n,E,B):null==n?u(x,r,D,k):o(x,r,D,k,!1,n,E,B))},readTiles:function(e,t,r,n){var i=t.headerInfo,a=i.width,o=i.height,s=a*o,f=i.microBlockSize,l=i.imageType,u=h.getDataTypeSize(l),c=Math.ceil(a/f),d=Math.ceil(o/f);t.pixels.numBlocksY=d,t.pixels.numBlocksX=c,t.pixels.ptr=0;var p,m,v,y,w,g,b,k,x,_,A=0,P=0,I=0,U=0,S=0,T=0,D=0,E=0,B=0,O=0,M=0,C=0,L=0,R=0,V=0,G=new r(f*f),F=o%f||f,z=a%f||f,j=i.numDims,N=t.pixels.resultMask,Z=t.pixels.resultPixels,K=i.fileVersion>=5?14:15,H=i.zMax;for(I=0;I1?(_=Z,O=I*a*f+U*f,Z=new r(t.pixels.resultPixels.buffer,s*k*u,s),H=i.maxValues[k]):_=null,D=e.byteLength-t.ptr,m={},V=0,E=(p=new DataView(e,t.ptr,Math.min(10,D))).getUint8(0),V++,x=i.fileVersion>=5?4&E:0,B=E>>6&255,(E>>2&K)!=(U*f>>3&K))throw"integrity issue";if(x&&0===k)throw"integrity issue";if((w=3&E)>3)throw t.ptr+=V,"Invalid block encoding ("+w+")";if(2!==w)if(0===w){if(x)throw"integrity issue";if(t.counter.uncompressed++,t.ptr+=V,C=(C=S*T*u)<(L=e.byteLength-t.ptr)?C:L,v=new ArrayBuffer(C%u==0?C:C+u-C%u),new Uint8Array(v).set(new Uint8Array(e,t.ptr,C)),y=new r(v),R=0,N)for(A=0;A1&&!n&&(t.pixels.resultPixels=h.swapDimensionOrder(t.pixels.resultPixels,s,j,r))},formatFileInfo:function(e){return{fileIdentifierString:e.headerInfo.fileIdentifierString,fileVersion:e.headerInfo.fileVersion,imageType:e.headerInfo.imageType,height:e.headerInfo.height,width:e.headerInfo.width,numValidPixel:e.headerInfo.numValidPixel,microBlockSize:e.headerInfo.microBlockSize,blobSize:e.headerInfo.blobSize,maxZError:e.headerInfo.maxZError,pixelType:h.getPixelType(e.headerInfo.imageType),eofOffset:e.eofOffset,mask:e.mask?{numBytes:e.mask.numBytes}:null,pixels:{numBlocksX:e.pixels.numBlocksX,numBlocksY:e.pixels.numBlocksY,maxValue:e.headerInfo.zMax,minValue:e.headerInfo.zMin,noDataValue:e.noDataValue}}},constructConstantSurface:function(e,t){var r=e.headerInfo.zMax,n=e.headerInfo.zMin,i=e.headerInfo.maxValues,a=e.headerInfo.numDims,o=e.headerInfo.height*e.headerInfo.width,s=0,f=0,l=0,u=e.pixels.resultMask,c=e.pixels.resultPixels;if(u)if(a>1){if(t)for(s=0;s1&&n!==r)if(t)for(s=0;s=-128&&t<=127;break;case 1:r=t>=0&&t<=255;break;case 2:r=t>=-32768&&t<=32767;break;case 3:r=t>=0&&t<=65536;break;case 4:r=t>=-2147483648&&t<=2147483647;break;case 5:r=t>=0&&t<=4294967296;break;case 6:r=t>=-34027999387901484e22&&t<=34027999387901484e22;break;case 7:r=t>=-17976931348623157e292&&t<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(e){var t=0;switch(e){case 0:case 1:t=1;break;case 2:case 3:t=2;break;case 4:case 5:case 6:t=4;break;case 7:t=8;break;default:t=e}return t},getDataTypeUsed:function(e,t){var r=e;switch(e){case 2:case 4:r=e-t;break;case 3:case 5:r=e-2*t;break;case 6:r=0===t?e:1===t?2:1;break;case 7:r=0===t?e:e-2*t+1;break;default:r=e}return r},getOnePixel:function(e,t,r,n){var i=0;switch(r){case 0:i=n.getInt8(t);break;case 1:i=n.getUint8(t);break;case 2:i=n.getInt16(t,!0);break;case 3:i=n.getUint16(t,!0);break;case 4:i=n.getInt32(t,!0);break;case 5:i=n.getUInt32(t,!0);break;case 6:i=n.getFloat32(t,!0);break;case 7:i=n.getFloat64(t,!0);break;default:throw"the decoder does not understand this pixel type"}return i},swapDimensionOrder:function(e,t,r,n,i){var a=0,o=0,s=0,f=0,l=e;if(r>1)if(l=new n(t*r),i)for(a=0;a5)throw"unsupported lerc version 2."+o;h.readMask(e,i),a.numValidPixel===a.width*a.height||i.pixels.resultMask||(i.pixels.resultMask=t.maskData);var f=a.width*a.height;i.pixels.resultPixels=new s(f*a.numDims),i.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var l,u=!t.returnPixelInterleavedDims;if(0!==a.numValidPixel)if(a.zMax===a.zMin)h.constructConstantSurface(i,u);else if(o>=4&&h.checkMinMaxRanges(e,i))h.constructConstantSurface(i,u);else{var c=new DataView(e,i.ptr,2),d=c.getUint8(0);if(i.ptr++,d)h.readDataOneSweep(e,i,s,u);else if(o>1&&a.imageType<=1&&Math.abs(a.maxZError-.5)<1e-5){var p=c.getUint8(1);if(i.ptr++,i.encodeMode=p,p>2||o<4&&p>1)throw"Invalid Huffman flag "+p;p?h.readHuffman(e,i,s,u):h.readTiles(e,i,s,u)}else h.readTiles(e,i,s,u)}i.eofOffset=i.ptr,t.inputOffset?(l=i.headerInfo.blobSize+t.inputOffset-i.ptr,Math.abs(l)>=1&&(i.eofOffset=t.inputOffset+i.headerInfo.blobSize)):(l=i.headerInfo.blobSize-i.ptr,Math.abs(l)>=1&&(i.eofOffset=i.headerInfo.blobSize));var m={width:a.width,height:a.height,pixelData:i.pixels.resultPixels,minValue:a.zMin,maxValue:a.zMax,validPixelCount:a.numValidPixel,dimCount:a.numDims,dimStats:{minValues:a.minValues,maxValues:a.maxValues},maskData:i.pixels.resultMask};if(i.pixels.resultMask&&h.isValidPixelValue(a.imageType,r)){var v=i.pixels.resultMask;for(n=0;n1&&(l&&m.push(l),k.fileInfo.mask&&k.fileInfo.mask.numBytes>0&&b++),d++,g.pixels.push(k.pixelData),g.statistics.push({minValue:k.minValue,maxValue:k.maxValue,noDataValue:k.noDataValue,dimStats:k.dimStats})}if(n>1&&b>1){for(h=g.width*g.height,g.bandMasks=m,(l=new Uint8Array(h)).set(m[0]),u=1;u{var t={792:function(t,e,i){var n; -/** - * @license - * - * chroma.js - JavaScript library for color conversions - * - * Copyright (c) 2011-2017, Gregor Aisch - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * 3. The name Gregor Aisch may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */t=i.nmd(t),function(){var i,r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y,I,E,C,v,x,w,S,b,B,L,M,T,R,N,P,F,D,O,Q,k,G,U,q,V,z,Y,j,H,X,W,K,J,Z,$,tt,et,it,nt,rt,st,ot,at,lt,ht,ct,ut,gt,dt,At,pt,ft,mt,_t,yt,It,Et,Ct,vt,xt,wt,St,bt,Bt,Lt=[].slice;xt=function(){var t,e,i,n,r;for(t={},n=0,e=(r="Boolean Number String Function Array Date RegExp Undefined Null".split(" ")).length;ni&&(t=i),t},wt=function(t){return t.length>=3?Array.prototype.slice.call(t):t[0]},v=function(t){var e,i;for(t._clipped=!1,t._unclipped=t.slice(0),e=i=0;i<3;e=++i)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]<0&&(t[e]=0),t[e]>255&&(t[e]=255)):3===e&&(t[e]<0&&(t[e]=0),t[e]>1&&(t[e]=1));return t._clipped||delete t._unclipped,t},o=Math.PI,yt=Math.round,w=Math.cos,M=Math.floor,nt=Math.pow,K=Math.log,Et=Math.sin,Ct=Math.sqrt,f=Math.atan2,$=Math.max,p=Math.abs,h=2*o,a=o/3,r=o/180,l=180/o,C=function(){return arguments[0]instanceof i?arguments[0]:function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,arguments,(function(){}))},C.default=C,A=[],null!==t&&null!=t.exports&&(t.exports=C),void 0===(n=function(){return C}.apply(e,[]))||(t.exports=n),C.version="1.4.0",d={},u=[],g=!1,i=function(){function t(){var t,e,i,n,r,s,o,a,l;for(s=this,e=[],a=0,n=arguments.length;a1&&(o=e[e.length-1]),null!=d[o])s._rgb=v(d[o](wt(e.slice(0,-1))));else{for(g||(u=u.sort((function(t,e){return e.p-t.p})),g=!0),l=0,r=u.length;l3?e[3]:1]},Bt=function(t){return 255*(t<=.00304?12.92*t:1.055*nt(t,1/2.4)-.055)},Y=function(t){return t>s.t1?t*t*t:s.t2*(t-s.t0)},s={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ut=function(){var t,e,i,n,r,s,o;return i=(n=wt(arguments))[0],e=n[1],t=n[2],s=(r=ft(i,e,t))[0],[116*(o=r[1])-16,500*(s-o),200*(o-r[2])]},mt=function(t){return(t/=255)<=.04045?t/12.92:nt((t+.055)/1.055,2.4)},bt=function(t){return t>s.t3?nt(t,1/3):t/s.t2+s.t0},ft=function(){var t,e,i,n;return i=(n=wt(arguments))[0],e=n[1],t=n[2],i=mt(i),e=mt(e),t=mt(t),[bt((.4124564*i+.3575761*e+.1804375*t)/s.Xn),bt((.2126729*i+.7151522*e+.072175*t)/s.Yn),bt((.0193339*i+.119192*e+.9503041*t)/s.Zn)]},C.lab=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["lab"]),(function(){}))},d.lab=z,i.prototype.lab=function(){return ut(this._rgb)},m=function(t){var e,i,n,r,s,o,a,l,h,c,u;return 2===(t=function(){var e,i,n;for(n=[],i=0,e=t.length;i=0&&e[3]<=1?"rgb":void 0}}),d.lrgb=d.rgb,G=function(t,e,n,r){var s,o;return s=t._rgb,o=e._rgb,new i(Ct(nt(s[0],2)*(1-n)+nt(o[0],2)*n),Ct(nt(s[1],2)*(1-n)+nt(o[1],2)*n),Ct(nt(s[2],2)*(1-n)+nt(o[2],2)*n),r)},c=function(t){var e,n,r,s,o;for(e=1/t.length,o=[0,0,0,0],r=0,n=t.length;r1&&(o[3]=1),new i(v(o))},A.push(["lrgb",G]),C.average=function(t,e){var i,n,r,s,a,l,h,u,g,d,A,p,m;if(null==e&&(e="rgb"),g=t.length,t=t.map((function(t){return C(t)})),h=t.splice(0,1)[0],"lrgb"===e)return c(t);for(u in s=[],a=0,l=0,p=h.get(e))p[u]=p[u]||0,s.push(isNaN(p[u])?0:1),"h"!==e.charAt(u)||isNaN(p[u])||(i=p[u]/180*o,a+=w(i),l+=Et(i));for(n=h.alpha(),A=0,d=t.length;A=360;)i-=360;p[u]=i}else p[u]=p[u]/s[u];return C(p,e).alpha(n/g)},R=function(t){var e,i;if(t.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))return 4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[(i=parseInt(t,16))>>16,i>>8&255,255&i,1];if(t.match(/^#?([A-Fa-f0-9]{8})$/))return 9===t.length&&(t=t.substr(1)),[(i=parseInt(t,16))>>24&255,i>>16&255,i>>8&255,yt((255&i)/255*100)/100];if(null!=d.css&&(e=d.css(t)))return e;throw"unknown color: "+t},at=function(t,e){var i,n,r,s,o,a;return null==e&&(e="auto"),o=t[0],r=t[1],n=t[2],i=t[3],"auto"===e&&(e=i<1?"rgba":"rgb"),o=Math.round(o),r=Math.round(r),n=Math.round(n),a=(a="000000"+(o<<16|r<<8|n).toString(16)).substr(a.length-6),s=(s="0"+yt(255*i).toString(16)).substr(s.length-2),"#"+function(){switch(e.toLowerCase()){case"rgba":return a+s;case"argb":return s+a;default:return a}}()},d.hex=function(t){return R(t)},C.hex=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["hex"]),(function(){}))},i.prototype.hex=function(t){return null==t&&(t="auto"),at(this._rgb,t)},u.push({p:4,test:function(t){if(1===arguments.length&&"string"===xt(t))return"hex"}}),F=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d;if(r=(t=wt(arguments))[0],c=t[1],o=t[2],0===c)l=n=e=255*o;else{for(i=[0,0,0],u=2*o-(g=o<.5?o*(1+c):o+c-o*c),(d=[0,0,0])[0]=(r/=360)+1/3,d[1]=r,d[2]=r-1/3,s=a=0;a<=2;s=++a)d[s]<0&&(d[s]+=1),d[s]>1&&(d[s]-=1),6*d[s]<1?i[s]=u+6*(g-u)*d[s]:2*d[s]<1?i[s]=g:3*d[s]<2?i[s]=u+(g-u)*(2/3-d[s])*6:i[s]=u;l=(h=[yt(255*i[0]),yt(255*i[1]),yt(255*i[2])])[0],n=h[1],e=h[2]}return t.length>3?[l,n,e,t[3]]:[l,n,e]},ht=function(t,e,i){var n,r,s,o,a;return void 0!==t&&t.length>=3&&(t=(o=t)[0],e=o[1],i=o[2]),t/=255,e/=255,i/=255,s=Math.min(t,e,i),r=(($=Math.max(t,e,i))+s)/2,$===s?(a=0,n=Number.NaN):a=r<.5?($-s)/($+s):($-s)/(2-$-s),t===$?n=(e-i)/($-s):e===$?n=2+(i-t)/($-s):i===$&&(n=4+(t-e)/($-s)),(n*=60)<0&&(n+=360),[n,a,r]},C.hsl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["hsl"]),(function(){}))},d.hsl=F,i.prototype.hsl=function(){return ht(this._rgb)},D=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d,A,p,f,m;if(r=(t=wt(arguments))[0],p=t[1],m=t[2],m*=255,0===p)l=n=e=m;else switch(360===r&&(r=0),r>360&&(r-=360),r<0&&(r+=360),o=m*(1-p),a=m*(1-p*(i=(r/=60)-(s=M(r)))),f=m*(1-p*(1-i)),s){case 0:l=(h=[m,f,o])[0],n=h[1],e=h[2];break;case 1:l=(c=[a,m,o])[0],n=c[1],e=c[2];break;case 2:l=(u=[o,m,f])[0],n=u[1],e=u[2];break;case 3:l=(g=[o,a,m])[0],n=g[1],e=g[2];break;case 4:l=(d=[f,o,m])[0],n=d[1],e=d[2];break;case 5:l=(A=[m,o,a])[0],n=A[1],e=A[2]}return[l,n,e,t.length>3?t[3]:1]},ct=function(){var t,e,i,n,r,s,o,a,l;return s=(o=wt(arguments))[0],i=o[1],t=o[2],r=Math.min(s,i,t),e=($=Math.max(s,i,t))-r,l=$/255,0===$?(n=Number.NaN,a=0):(a=e/$,s===$&&(n=(i-t)/e),i===$&&(n=2+(t-s)/e),t===$&&(n=4+(s-i)/e),(n*=60)<0&&(n+=360)),[n,a,l]},C.hsv=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["hsv"]),(function(){}))},d.hsv=D,i.prototype.hsv=function(){return ct(this._rgb)},et=function(t){return"number"===xt(t)&&t>=0&&t<=16777215?[t>>16,t>>8&255,255&t,1]:(console.warn("unknown num color: "+t),[0,0,0,1])},At=function(){var t;return((t=wt(arguments))[0]<<16)+(t[1]<<8)+t[2]},C.num=function(t){return new i(t,"num")},i.prototype.num=function(t){return null==t&&(t="rgb"),At(this._rgb,t)},d.num=et,u.push({p:1,test:function(t){if(1===arguments.length&&"number"===xt(t)&&t>=0&&t<=16777215)return"num"}}),T=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y;if(a=(i=wt(arguments))[0],r=i[1],e=i[2],o=o/100*255,t=255*(r/=100),0===r)u=o=n=e;else switch(360===a&&(a=0),a>360&&(a-=360),a<0&&(a+=360),c=(h=e*(1-r))+t*(1-(s=(a/=60)-(l=M(a)))),_=h+t*s,y=h+t,l){case 0:u=(g=[y,_,h])[0],o=g[1],n=g[2];break;case 1:u=(d=[c,y,h])[0],o=d[1],n=d[2];break;case 2:u=(A=[h,y,_])[0],o=A[1],n=A[2];break;case 3:u=(p=[h,c,y])[0],o=p[1],n=p[2];break;case 4:u=(f=[_,h,y])[0],o=f[1],n=f[2];break;case 5:u=(m=[y,h,c])[0],o=m[1],n=m[2]}return[u,o,n,i.length>3?i[3]:1]},ot=function(){var t,e,i,n,r,s,o,a,l;return a=(l=wt(arguments))[0],r=l[1],e=l[2],o=Math.min(a,r,e),i=100*(n=($=Math.max(a,r,e))-o)/255,t=o/(255-n)*100,0===n?s=Number.NaN:(a===$&&(s=(r-e)/n),r===$&&(s=2+(e-a)/n),e===$&&(s=4+(a-r)/n),(s*=60)<0&&(s+=360)),[s,i,t]},C.hcg=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["hcg"]),(function(){}))},d.hcg=T,i.prototype.hcg=function(){return ot(this._rgb)},S=function(t){var e,i,n,r,s,o,a,l;if(t=t.toLowerCase(),null!=C.colors&&C.colors[t])return R(C.colors[t]);if(s=t.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(a=s.slice(1,4),r=o=0;o<=2;r=++o)a[r]=+a[r];a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(a=s.slice(1,5),r=l=0;l<=3;r=++l)a[r]=+a[r];else if(s=t.match(/rgb\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/)){for(a=s.slice(1,4),r=e=0;e<=2;r=++e)a[r]=yt(2.55*a[r]);a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/)){for(a=s.slice(1,5),r=i=0;i<=2;r=++i)a[r]=yt(2.55*a[r]);a[3]=+a[3]}else(s=t.match(/hsl\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/))?((n=s.slice(1,4))[1]*=.01,n[2]*=.01,(a=F(n))[3]=1):(s=t.match(/hsla\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/))&&((n=s.slice(1,4))[1]*=.01,n[2]*=.01,(a=F(n))[3]=+s[4]);return a},st=function(t){var e;return"rgb"===(e=t[3]<1?"rgba":"rgb")?e+"("+t.slice(0,3).map(yt).join(",")+")":"rgba"===e?e+"("+t.slice(0,3).map(yt).join(",")+","+t[3]+")":void 0},_t=function(t){return yt(100*t)/100},P=function(t,e){var i;return i=e<1?"hsla":"hsl",t[0]=_t(t[0]||0),t[1]=_t(100*t[1])+"%",t[2]=_t(100*t[2])+"%","hsla"===i&&(t[3]=e),i+"("+t.join(",")+")"},d.css=function(t){return S(t)},C.css=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["css"]),(function(){}))},i.prototype.css=function(t){return null==t&&(t="rgb"),"rgb"===t.slice(0,3)?st(this._rgb):"hsl"===t.slice(0,3)?P(this.hsl(),this.alpha()):void 0},d.named=function(t){return R(St[t])},u.push({p:5,test:function(t){if(1===arguments.length&&null!=St[t])return"named"}}),i.prototype.name=function(t){var e,i;for(i in arguments.length&&(St[t]&&(this._rgb=R(St[t])),this._rgb[3]=1),e=this.hex("rgb"),St)if(e===St[i])return i;return e},j=function(){var t,e,i,n;return i=(n=wt(arguments))[0],t=n[1],e=n[2],[i,w(e*=r)*t,Et(e)*t]},H=function(){var t,e,i,n,r,s,o,a,l;return o=(i=wt(arguments))[0],r=i[1],s=i[2],t=(a=j(o,r,s))[0],e=a[1],n=a[2],[(l=z(t,e,n))[0],l[1],n=l[2],i.length>3?i[3]:1]},V=function(){var t,e,i,n,r,s;return r=(s=wt(arguments))[0],t=s[1],e=s[2],i=Ct(t*t+e*e),n=(f(e,t)*l+360)%360,0===yt(1e4*i)&&(n=Number.NaN),[r,i,n]},gt=function(){var t,e,i,n,r,s,o;return r=(s=wt(arguments))[0],i=s[1],e=s[2],n=(o=ut(r,i,e))[0],t=o[1],e=o[2],V(n,t,e)},C.lch=function(){var t;return t=wt(arguments),new i(t,"lch")},C.hcl=function(){var t;return t=wt(arguments),new i(t,"hcl")},d.lch=H,d.hcl=function(){var t,e,i,n;return e=(n=wt(arguments))[0],t=n[1],i=n[2],H([i,t,e])},i.prototype.lch=function(){return gt(this._rgb)},i.prototype.hcl=function(){return gt(this._rgb).reverse()},rt=function(t){var e,i,n,r,s,o;return null==t&&(t="rgb"),s=(o=wt(arguments))[0],n=o[1],e=o[2],n/=255,e/=255,[(1-(s/=255)-(r=1-Math.max(s,Math.max(n,e))))*(i=r<1?1/(1-r):0),(1-n-r)*i,(1-e-r)*i,r]},x=function(){var t,e,i,n,r,s;return i=(e=wt(arguments))[0],r=e[1],s=e[2],n=e[3],t=e.length>4?e[4]:1,1===n?[0,0,0,t]:[i>=1?0:255*(1-i)*(1-n),r>=1?0:255*(1-r)*(1-n),s>=1?0:255*(1-s)*(1-n),t]},d.cmyk=function(){return x(wt(arguments))},C.cmyk=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["cmyk"]),(function(){}))},i.prototype.cmyk=function(){return rt(this._rgb)},d.gl=function(){var t,e,i,n,r;for(n=function(){var t,i;for(e in i=[],t=wt(arguments))r=t[e],i.push(r);return i}.apply(this,arguments),t=i=0;i<=2;t=++i)n[t]*=255;return n},C.gl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["gl"]),(function(){}))},i.prototype.gl=function(){var t;return[(t=this._rgb)[0]/255,t[1]/255,t[2]/255,t[3]]},dt=function(t,e,i){var n;return t=(n=wt(arguments))[0],e=n[1],i=n[2],.2126*(t=J(t))+.7152*(e=J(e))+.0722*(i=J(i))},J=function(t){return(t/=255)<=.03928?t/12.92:nt((t+.055)/1.055,2.4)},q=function(t,e,n,r){var s,o;return s=t._rgb,o=e._rgb,new i(s[0]+n*(o[0]-s[0]),s[1]+n*(o[1]-s[1]),s[2]+n*(o[2]-s[2]),r)},A.push(["rgb",q]),i.prototype.luminance=function(t,e){var i,n,r,s;return null==e&&(e="rgb"),arguments.length?(r=this._rgb,0===t?r=[0,0,0,this._rgb[3]]:1===t?r=[255,255,255,this[3]]:(i=dt(this._rgb),1e-7,n=20,s=function(i,r){var o,a;return o=(a=i.interpolate(r,.5,e)).luminance(),Math.abs(t-o)<1e-7||!n--?a:o>t?s(i,a):s(a,r)},r=i>t?s(C("black"),this).rgba():s(this,C("white")).rgba()),C(r).alpha(this.alpha())):dt(this._rgb)},vt=function(t){var e,i,n,r;return(r=t/100)<66?(n=255,i=-155.25485562709179-.44596950469579133*(i=r-2)+104.49216199393888*K(i),e=r<20?0:.8274096064007395*(e=r-10)-254.76935184120902+115.67994401066147*K(e)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*K(n),i=325.4494125711974+.07943456536662342*(i=r-50)-28.0852963507957*K(i),e=255),[n,i,e]},pt=function(){var t,e,i,n,r,s,o;for(n=(r=wt(arguments))[0],r[1],t=r[2],i=1e3,e=4e4,.4;e-i>.4;)(s=vt(o=.5*(e+i)))[2]/s[0]>=t/n?e=o:i=o;return yt(o)},C.temperature=C.kelvin=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["temperature"]),(function(){}))},d.temperature=d.kelvin=d.K=vt,i.prototype.temperature=function(){return pt(this._rgb)},i.prototype.kelvin=i.prototype.temperature,C.contrast=function(t,e){var n,r,s,o;return"string"!==(s=xt(t))&&"number"!==s||(t=new i(t)),"string"!==(o=xt(e))&&"number"!==o||(e=new i(e)),(n=t.luminance())>(r=e.luminance())?(n+.05)/(r+.05):(r+.05)/(n+.05)},C.distance=function(t,e,n){var r,s,o,a,l,h,c;for(s in null==n&&(n="lab"),"string"!==(l=xt(t))&&"number"!==l||(t=new i(t)),"string"!==(h=xt(e))&&"number"!==h||(e=new i(e)),o=t.get(n),a=e.get(n),c=0,o)c+=(r=(o[s]||0)-(a[s]||0))*r;return Math.sqrt(c)},C.deltaE=function(t,e,n,r){var s,a,l,h,c,u,g,d,A,m,_,y,I,E,C,v,x,S,b,B,L,M,T,R;for(null==n&&(n=1),null==r&&(r=1),"string"!==(C=xt(t))&&"number"!==C||(t=new i(t)),"string"!==(v=xt(e))&&"number"!==v||(e=new i(e)),s=(x=t.lab())[0],l=x[1],c=x[2],a=(S=e.lab())[0],h=S[1],u=S[2],g=Ct(l*l+c*c),d=Ct(h*h+u*u),B=s<16?.511:.040975*s/(1+.01765*s),b=.0638*g/(1+.0131*g)+.638,E=g<1e-6?0:180*f(c,l)/o;E<0;)E+=360;for(;E>=360;)E-=360;return L=E>=164&&E<=345?.56+p(.2*w(o*(E+168)/180)):.36+p(.4*w(o*(E+35)/180)),I=Ct((A=g*g*g*g)/(A+1900)),Ct((M=(s-a)/(n*B))*M+(T=(y=g-d)/(r*b))*T+((m=l-h)*m+(_=c-u)*_-y*y)/((R=b*(I*L+1-I))*R))},i.prototype.get=function(t){var e,i,n,r,s;return this,n=(r=t.split("."))[0],e=r[1],s=this[n](),e?(i=n.indexOf(e))>-1?s[i]:console.warn("unknown channel "+e+" in mode "+n):s},i.prototype.set=function(t,e){var i,n,r,s,o;if(this,r=(s=t.split("."))[0],i=s[1])if(o=this[r](),(n=r.indexOf(i))>-1)if("string"===xt(e))switch(e.charAt(0)){case"+":case"-":o[n]+=+e;break;case"*":o[n]*=+e.substr(1);break;case"/":o[n]/=+e.substr(1);break;default:o[n]=+e}else o[n]=e;else console.warn("unknown channel "+i+" in mode "+r);else o=e;return C(o,r).alpha(this.alpha())},i.prototype.clipped=function(){return this._rgb._clipped||!1},i.prototype.alpha=function(t){return arguments.length?C.rgb([this._rgb[0],this._rgb[1],this._rgb[2],t]):this._rgb[3]},i.prototype.darken=function(t){var e;return null==t&&(t=1),this,(e=this.lab())[0]-=s.Kn*t,C.lab(e).alpha(this.alpha())},i.prototype.brighten=function(t){return null==t&&(t=1),this.darken(-t)},i.prototype.darker=i.prototype.darken,i.prototype.brighter=i.prototype.brighten,i.prototype.saturate=function(t){var e;return null==t&&(t=1),this,(e=this.lch())[1]+=t*s.Kn,e[1]<0&&(e[1]=0),C.lch(e).alpha(this.alpha())},i.prototype.desaturate=function(t){return null==t&&(t=1),this.saturate(-t)},i.prototype.premultiply=function(){var t,e;return e=this.rgb(),t=this.alpha(),C(e[0]*t,e[1]*t,e[2]*t,t)},tt=function(t,e){return t*e/255},b=function(t,e){return t>e?e:t},X=function(t,e){return t>e?t:e},It=function(t,e){return 255*(1-(1-t/255)*(1-e/255))},it=function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))},E=function(t,e){return 255*(1-(1-e/255)/(t/255))},B=function(t,e){return 255===t||(t=e/255*255/(1-t/255))>255?255:t},(_=function(t,e,i){if(!_[i])throw"unknown blend mode "+i;return _[i](t,e)}).normal=(y=function(t){return function(e,i){var n,r;return n=C(i).rgb(),r=C(e).rgb(),C(t(n,r),"rgb")}})((L=function(t){return function(e,i){var n,r,s;for(s=[],n=r=0;r<=3;n=++r)s[n]=t(e[n],i[n]);return s}})((function(t,e){return t}))),_.multiply=y(L(tt)),_.screen=y(L(It)),_.overlay=y(L(it)),_.darken=y(L(b)),_.lighten=y(L(X)),_.dodge=y(L(B)),_.burn=y(L(E)),C.blend=_,C.analyze=function(t){var e,i,n,r;for(n={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},i=0,e=t.length;in.max&&(n.max=r),n.count+=1);return n.domain=[n.min,n.max],n.limits=function(t,e){return C.limits(n,t,e)},n},C.scale=function(t,e){var i,n,r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y,I,E,v;return c="rgb",u=C("#ccc"),p=0,!1,o=[0,1],A=[],d=[0,0],i=!1,r=[],g=!1,h=0,l=1,s=!1,n={},f=!0,a=1,E=function(t){var e,i,n,s,o,a;if(null==t&&(t=["#fff","#000"]),null!=t&&"string"===xt(t)&&null!=C.brewer&&(t=C.brewer[t]||C.brewer[t.toLowerCase()]||t),"array"===xt(t)){for(1===t.length&&(t=[t[0],t[0]]),e=n=0,s=(t=t.slice(0)).length-1;0<=s?n<=s:n>=s;e=0<=s?++n:--n)i=t[e],"string"===xt(i)&&(t[e]=C(i));for(A.length=0,e=a=0,o=t.length-1;0<=o?a<=o:a>=o;e=0<=o?++a:--a)A.push(e/(t.length-1))}return I(),r=t},_=function(t){var e,n;if(null!=i){for(n=i.length-1,e=0;e=i[e];)e++;return e-1}return 0},v=function(t){return t},function(t){var e,n,r,s,o;return o=t,i.length>2&&(s=i.length-1,e=_(t),r=i[0]+(i[1]-i[0])*(0+.5*p),n=i[s-1]+(i[s]-i[s-1])*(1-.5*p),o=h+(i[e]+.5*(i[e+1]-i[e])-r)/(n-r)*(l-h)),o},y=function(t,e){var s,o,g,p,m,y,I;if(null==e&&(e=!1),isNaN(t))return u;if(I=e?t:i&&i.length>2?_(t)/(i.length-2):l!==h?(t-h)/(l-h):1,e||(I=v(I)),1!==a&&(I=nt(I,a)),I=d[0]+I*(1-d[0]-d[1]),I=Math.min(1,Math.max(0,I)),g=Math.floor(1e4*I),f&&n[g])s=n[g];else{if("array"===xt(r))for(o=p=0,y=A.length-1;0<=y?p<=y:p>=y;o=0<=y?++p:--p){if(I<=(m=A[o])){s=r[o];break}if(I>=m&&o===A.length-1){s=r[o];break}if(I>m&&I=c;e=0<=c?++u:--u)A.push(e/(n-1));return o=[h,l],m},m.mode=function(t){return arguments.length?(c=t,I(),m):c},m.range=function(t,e){return E(t),m},m.out=function(t){return g=t,m},m.spread=function(t){return arguments.length?(p=t,m):p},m.correctLightness=function(t){return null==t&&(t=!0),s=t,I(),v=s?function(t){var e,i,n,r,s,o,a,l,h;for(e=y(0,!0).lab()[0],i=y(1,!0).lab()[0],a=e>i,n=y(t,!0).lab()[0],r=n-(s=e+(i-e)*t),l=0,h=1,o=20;Math.abs(r)>.01&&o-- >0;)a&&(r*=-1),r<0?(l=t,t+=.5*(h-t)):(h=t,t+=.5*(l-t)),n=y(t,!0).lab()[0],r=n-s;return t}:function(t){return t},m},m.padding=function(t){return null!=t?("number"===xt(t)&&(t=[t,t]),d=t,m):d},m.colors=function(e,n){var s,a,l,h,c,u,g,d;if(arguments.length<2&&(n="hex"),c=[],0===arguments.length)c=r.slice(0);else if(1===e)c=[m(.5)];else if(e>1)a=o[0],s=o[1]-a,c=function(){u=[];for(var t=0;0<=e?te;0<=e?t++:t--)u.push(t);return u}.apply(this).map((function(t){return m(a+t/(e-1)*s)}));else{if(t=[],g=[],i&&i.length>2)for(l=d=1,h=i.length;1<=h?dh;l=1<=h?++d:--d)g.push(.5*(i[l-1]+i[l]));else g=o;c=g.map((function(t){return m(t)}))}return C[n]&&(c=c.map((function(t){return t[n]()}))),c},m.cache=function(t){return null!=t?(f=t,m):f},m.gamma=function(t){return null!=t?(a=t,m):a},m},null==C.scales&&(C.scales={}),C.scales.cool=function(){return C.scale([C.hsl(180,1,.9),C.hsl(250,.7,.4)])},C.scales.hot=function(){return C.scale(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")},C.analyze=function(t,e,i){var n,r,s,o,a,l;if(a={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},null==i&&(i=function(){return!0}),n=function(t){null==t||isNaN(t)||(a.values.push(t),a.sum+=t,ta.max&&(a.max=t),a.count+=1)},l=function(t,r){if(i(t,r))return null!=e&&"function"===xt(e)?n(e(t)):null!=e&&"string"===xt(e)||"number"===xt(e)?n(t[e]):n(t)},"array"===xt(t))for(o=0,s=t.length;o=G;x=1<=G?++D:--D)b.push(L+x/i*($-L));b.push($)}else if("l"===e.substr(0,1)){if(L<=0)throw"Logarithmic scales are only possible for values > 0";for(T=Math.LOG10E*K(L),B=Math.LOG10E*K($),b.push(L),x=ht=1,U=i-1;1<=U?ht<=U:ht>=U;x=1<=U?++ht:--ht)b.push(nt(10,T+x/i*(B-T)));b.push($)}else if("q"===e.substr(0,1)){for(b.push(L),x=n=1,H=i-1;1<=H?n<=H:n>=H;x=1<=H?++n:--n)O=(lt.length-1)*x/i,(Q=M(O))===O?b.push(lt[Q]):(k=O-Q,b.push(lt[Q]*(1-k)+lt[Q+1]*k));b.push($)}else if("k"===e.substr(0,1)){for(N=lt.length,m=new Array(N),E=new Array(i),rt=!0,P=0,y=null,(y=[]).push(L),x=r=1,X=i-1;1<=X?r<=X:r>=X;x=1<=X?++r:--r)y.push(L+x/i*($-L));for(y.push($);rt;){for(w=s=0,W=i-1;0<=W?s<=W:s>=W;w=0<=W?++s:--s)E[w]=0;for(x=o=0,J=N-1;0<=J?o<=J:o>=J;x=0<=J?++o:--o){for(at=lt[x],R=Number.MAX_VALUE,w=a=0,Z=i-1;0<=Z?a<=Z:a>=Z;w=0<=Z?++a:--a)(v=p(y[w]-at))=tt;w=0<=tt?++l:--l)F[w]=null;for(x=h=0,et=N-1;0<=et?h<=et:h>=et;x=0<=et?++h:--h)null===F[I=m[x]]?F[I]=lt[x]:F[I]+=lt[x];for(w=c=0,it=i-1;0<=it?c<=it:c>=it;w=0<=it?++c:--c)F[w]*=1/E[w];for(rt=!1,w=u=0,q=i-1;0<=q?u<=q:u>=q;w=0<=q?++u:--u)if(F[w]!==y[x]){rt=!0;break}y=F,++P>200&&(rt=!1)}for(S={},w=g=0,V=i-1;0<=V?g<=V:g>=V;w=0<=V?++g:--g)S[w]=[];for(x=d=0,z=N-1;0<=z?d<=z:d>=z;x=0<=z?++d:--d)S[I=m[x]].push(lt[x]);for(st=[],w=A=0,Y=i-1;0<=Y?A<=Y:A>=Y;w=0<=Y?++A:--A)st.push(S[w][0]),st.push(S[w][S[w].length-1]);for(st=st.sort((function(t,e){return t-e})),b.push(st[0]),x=f=1,j=st.length-1;f<=j;x=f+=2)ot=st[x],isNaN(ot)||-1!==b.indexOf(ot)||b.push(ot)}return b},N=function(t,e,i){var n,r,s,o;return t=(n=wt(arguments))[0],e=n[1],i=n[2],isNaN(t)&&(t=0),(t/=360)<1/3?s=1-((r=(1-e)/3)+(o=(1+e*w(h*t)/w(a-h*t))/3)):t<2/3?r=1-((o=(1-e)/3)+(s=(1+e*w(h*(t-=1/3))/w(a-h*t))/3)):o=1-((s=(1-e)/3)+(r=(1+e*w(h*(t-=2/3))/w(a-h*t))/3)),[255*(o=W(i*o*3)),255*(s=W(i*s*3)),255*(r=W(i*r*3)),n.length>3?n[3]:1]},lt=function(){var t,e,i,n,r,s,o;return r=(s=wt(arguments))[0],e=s[1],t=s[2],h=2*Math.PI,r/=255,e/=255,t/=255,0===(o=1-Math.min(r,e,t)/(n=(r+e+t)/3))?i=0:(i=(r-e+(r-t))/2,i/=Math.sqrt((r-e)*(r-e)+(r-t)*(e-t)),i=Math.acos(i),t>e&&(i=h-i),i/=h),[360*i,o,n]},C.hsi=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Lt.call(arguments).concat(["hsi"]),(function(){}))},d.hsi=N,i.prototype.hsi=function(){return lt(this._rgb)},Q=function(t,e,i,n){var r,s,o,a,l,h,c,u,g,d;return"hsl"===n?(g=t.hsl(),d=e.hsl()):"hsv"===n?(g=t.hsv(),d=e.hsv()):"hcg"===n?(g=t.hcg(),d=e.hcg()):"hsi"===n?(g=t.hsi(),d=e.hsi()):"lch"!==n&&"hcl"!==n||(n="hcl",g=t.hcl(),d=e.hcl()),"h"===n.substr(0,1)&&(s=g[0],c=g[1],a=g[2],o=d[0],u=d[1],l=d[2]),isNaN(s)||isNaN(o)?isNaN(s)?isNaN(o)?r=Number.NaN:(r=o,1!==a&&0!==a||"hsv"===n||(h=u)):(r=s,1!==l&&0!==l||"hsv"===n||(h=c)):r=s+i*(o>s&&o-s>180?o-(s+360):o180?o+360-s:o-s),null==h&&(h=c+i*(u-c)),C[n](r,h,a+i*(l-a))},U=function(t,e,i,n){var r,s;return r=t.num(),s=e.num(),C.num(r+(s-r)*i,"num")},(A=A.concat(function(){var t,e,i,n;for(n=[],e=0,t=(i=["hsv","hsl","hsi","hcl","lch","hcg"]).length;e{"use strict";function e(t,e,n){n=n||2;var s,o,a,l,u,g,A,p=e&&e.length,f=p?e[0]*n:t.length,m=i(t,0,f,n,!0),_=[];if(!m||m.next===m.prev)return _;if(p&&(m=function(t,e,n,r){var s,o,a,l=[];for(s=0,o=e.length;s80*n){s=a=t[0],o=l=t[1];for(var y=n;ya&&(a=u),g>l&&(l=g);A=0!==(A=Math.max(a-s,l-o))?32767/A:0}return r(m,_,n,s,o,A,0),_}function i(t,e,i,n,r){var s,o;if(r===S(t,e,i,n)>0)for(s=e;s=e;s-=n)o=v(s,t[s],t[s+1],o);return o&&m(o,o.next)&&(x(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!m(n,n.next)&&0!==f(n.prev,n,n.next))n=n.next;else{if(x(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function r(t,e,i,h,c,u,d){if(t){!d&&u&&function(t,e,i,n){var r=t;do{0===r.z&&(r.z=g(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e0||l>0&&n;)0!==a&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,h*=2}while(o>1)}(r)}(t,h,c,u);for(var A,p,f=t;t.prev!==t.next;)if(A=t.prev,p=t.next,u?o(t,h,c,u):s(t))e.push(A.i/i|0),e.push(t.i/i|0),e.push(p.i/i|0),x(t),t=p.next,f=p.next;else if((t=p)===f){d?1===d?r(t=a(n(t),e,i),e,i,h,c,u,2):2===d&&l(t,e,i,h,c,u):r(n(t),e,i,h,c,u,1);break}}}function s(t){var e=t.prev,i=t,n=t.next;if(f(e,i,n)>=0)return!1;for(var r=e.x,s=i.x,o=n.x,a=e.y,l=i.y,h=n.y,c=rs?r>o?r:o:s>o?s:o,d=a>l?a>h?a:h:l>h?l:h,p=n.next;p!==e;){if(p.x>=c&&p.x<=g&&p.y>=u&&p.y<=d&&A(r,a,s,l,o,h,p.x,p.y)&&f(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,i,n){var r=t.prev,s=t,o=t.next;if(f(r,s,o)>=0)return!1;for(var a=r.x,l=s.x,h=o.x,c=r.y,u=s.y,d=o.y,p=al?a>h?a:h:l>h?l:h,y=c>u?c>d?c:d:u>d?u:d,I=g(p,m,e,i,n),E=g(_,y,e,i,n),C=t.prevZ,v=t.nextZ;C&&C.z>=I&&v&&v.z<=E;){if(C.x>=p&&C.x<=_&&C.y>=m&&C.y<=y&&C!==r&&C!==o&&A(a,c,l,u,h,d,C.x,C.y)&&f(C.prev,C,C.next)>=0)return!1;if(C=C.prevZ,v.x>=p&&v.x<=_&&v.y>=m&&v.y<=y&&v!==r&&v!==o&&A(a,c,l,u,h,d,v.x,v.y)&&f(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;C&&C.z>=I;){if(C.x>=p&&C.x<=_&&C.y>=m&&C.y<=y&&C!==r&&C!==o&&A(a,c,l,u,h,d,C.x,C.y)&&f(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;v&&v.z<=E;){if(v.x>=p&&v.x<=_&&v.y>=m&&v.y<=y&&v!==r&&v!==o&&A(a,c,l,u,h,d,v.x,v.y)&&f(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function a(t,e,i){var r=t;do{var s=r.prev,o=r.next.next;!m(s,o)&&_(s,r,r.next,o)&&E(s,o)&&E(o,s)&&(e.push(s.i/i|0),e.push(r.i/i|0),e.push(o.i/i|0),x(r),x(r.next),r=t=o),r=r.next}while(r!==t);return n(r)}function l(t,e,i,s,o,a){var l=t;do{for(var h=l.next.next;h!==l.prev;){if(l.i!==h.i&&p(l,h)){var c=C(l,h);return l=n(l,l.next),c=n(c,c.next),r(l,e,i,s,o,a,0),void r(c,e,i,s,o,a,0)}h=h.next}l=l.next}while(l!==t)}function h(t,e){return t.x-e.x}function c(t,e){var i=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o&&(o=a,i=n.x=n.x&&n.x>=c&&r!==n.x&&A(si.x||n.x===i.x&&u(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}(t,e);if(!i)return e;var r=C(i,t);return n(r,r.next),n(i,i.next)}function u(t,e){return f(t.prev,t,e.prev)<0&&f(e.next,t,t.next)<0}function g(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,i=t;do{(e.x=(t-o)*(s-a)&&(t-o)*(n-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(r-o)*(n-a)}function p(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&_(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(E(t,e)&&E(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&(f(t.prev,t,e.prev)||f(t,e.prev,e))||m(t,e)&&f(t.prev,t,t.next)>0&&f(e.prev,e,e.next)>0)}function f(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function m(t,e){return t.x===e.x&&t.y===e.y}function _(t,e,i,n){var r=I(f(t,e,i)),s=I(f(t,e,n)),o=I(f(i,n,t)),a=I(f(i,n,e));return r!==s&&o!==a||(!(0!==r||!y(t,i,e))||(!(0!==s||!y(t,n,e))||(!(0!==o||!y(i,t,n))||!(0!==a||!y(i,e,n)))))}function y(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function I(t){return t>0?1:t<0?-1:0}function E(t,e){return f(t.prev,t,t.next)<0?f(t,e,t.next)>=0&&f(t,t.prev,e)>=0:f(t,e,t.prev)<0||f(t,t.next,e)<0}function C(t,e){var i=new w(t.i,t.x,t.y),n=new w(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function v(t,e,i,n){var r=new w(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function x(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function w(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function S(t,e,i,n){for(var r=0,s=e,o=i-n;s0&&(n+=t[r-1].length,i.holes.push(n))}return i}},177:function(t){ -/**! - - @license - handlebars v4.5.2 - -Copyright (C) 2011-2017 by Yehuda Katz - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ -t.exports=function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function n(){var t=g();return t.compile=function(e,i){return l.compile(e,i,t)},t.precompile=function(e,i){return l.precompile(e,i,t)},t.AST=o.default,t.Compiler=l.Compiler,t.JavaScriptCompiler=h.default,t.Parser=a.parser,t.parse=a.parse,t.parseWithoutProcessing=a.parseWithoutProcessing,t}var r=i(1).default;e.__esModule=!0;var s=r(i(2)),o=r(i(35)),a=i(36),l=i(41),h=r(i(42)),c=r(i(39)),u=r(i(34)),g=s.default.create,d=n();d.create=n,u.default(d),d.Visitor=c.default,d.default=d,e.default=d,t.exports=e.default},function(t,e){"use strict";e.default=function(t){return t&&t.__esModule?t:{default:t}},e.__esModule=!0},function(t,e,i){"use strict";function n(){var t=new o.HandlebarsEnvironment;return h.extend(t,o),t.SafeString=a.default,t.Exception=l.default,t.Utils=h,t.escapeExpression=h.escapeExpression,t.VM=c,t.template=function(e){return c.template(e,t)},t}var r=i(3).default,s=i(1).default;e.__esModule=!0;var o=r(i(4)),a=s(i(21)),l=s(i(6)),h=r(i(5)),c=r(i(22)),u=s(i(34)),g=n();g.create=n,u.default(g),g.default=g,e.default=g,t.exports=e.default},function(t,e){"use strict";e.default=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e},e.__esModule=!0},function(t,e,i){"use strict";function n(t,e,i){this.helpers=t||{},this.partials=e||{},this.decorators=i||{},a.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}var r=i(1).default;e.__esModule=!0,e.HandlebarsEnvironment=n;var s=i(5),o=r(i(6)),a=i(10),l=i(18),h=r(i(20)),c="4.5.2";e.VERSION=c;var u=8;e.COMPILER_REVISION=u;var g=7;e.LAST_COMPATIBLE_COMPILER_REVISION=g;var d={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};e.REVISION_CHANGES=d;var A="[object Object]";n.prototype={constructor:n,logger:h.default,log:h.default.log,registerHelper:function(t,e){if(s.toString.call(t)===A){if(e)throw new o.default("Arg not supported with multiple helpers");s.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if(s.toString.call(t)===A)s.extend(this.partials,t);else{if(void 0===e)throw new o.default('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if(s.toString.call(t)===A){if(e)throw new o.default("Arg not supported with multiple decorators");s.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]}};var p=h.default.log;e.log=p,e.createFrame=s.createFrame,e.logger=h.default},function(t,e){"use strict";function i(t){return c[t]}function n(t){for(var e=1;e":">",'"':""","'":"'","`":"`","=":"="},u=/[&<>"'`=]/g,g=/[&<>"'`=]/,d=Object.prototype.toString;e.toString=d;var A=function(t){return"function"==typeof t};A(/x/)&&(e.isFunction=A=function(t){return"function"==typeof t&&"[object Function]"===d.call(t)}),e.isFunction=A;var p=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===d.call(t)};e.isArray=p},function(t,e,i){"use strict";function n(t,e){var i=e&&e.loc,o=void 0,a=void 0,l=void 0,h=void 0;i&&(o=i.start.line,a=i.end.line,l=i.start.column,h=i.end.column,t+=" - "+o+":"+l);for(var c=Error.prototype.constructor.call(this,t),u=0;u0?(i.ids&&(i.ids=[i.name]),t.helpers.each(e,i)):r(this);if(i.data&&i.ids){var o=n.createFrame(i.data);o.contextPath=n.appendContextPath(i.data.contextPath,i.name),i={data:o}}return s(e,i)}))},t.exports=e.default},function(t,e,i){(function(n){"use strict";var r=i(1).default;e.__esModule=!0;var s=i(5),o=r(i(6));e.default=function(t){t.registerHelper("each",(function(t,e){function i(e,i,n){c&&(c.key=e,c.index=i,c.first=0===i,c.last=!!n,u&&(c.contextPath=u+e)),h+=r(t[e],{data:c,blockParams:s.blockParams([t[e],e],[u+e,null])})}if(!e)throw new o.default("Must pass iterator to #each");var r=e.fn,a=e.inverse,l=0,h="",c=void 0,u=void 0;if(e.data&&e.ids&&(u=s.appendContextPath(e.data.contextPath,e.ids[0])+"."),s.isFunction(t)&&(t=t.call(this)),e.data&&(c=s.createFrame(e.data)),t&&"object"==typeof t)if(s.isArray(t))for(var g=t.length;l=0?e:parseInt(t,10)}return t},log:function(t){if(t=r.lookupLevel(t),"undefined"!=typeof console&&r.lookupLevel(r.level)<=t){var e=r.methodMap[t];console[e]||(e="log");for(var i=arguments.length,n=Array(i>1?i-1:0),s=1;s=f.LAST_COMPATIBLE_COMPILER_REVISION&&e<=f.COMPILER_REVISION)){if(e2&&E.push("'"+this.terminals_[_]+"'");v=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[d]||d)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(v,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:E})}}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+d);switch(f[0]){case 1:n.push(d),r.push(this.lexer.yytext),s.push(this.lexer.yylloc),n.push(f[1]),d=null,A?(d=A,A=null):(h=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,c>0&&c--);break;case 2:if(y=this.productions_[f[1]][1],C.$=r[r.length-y],C._$={first_line:s[s.length-(y||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(y||1)].first_column,last_column:s[s.length-1].last_column},g&&(C._$.range=[s[s.length-(y||1)].range[0],s[s.length-1].range[1]]),void 0!==(m=this.performAction.call(C,a,h,l,this.yy,f[1],r,s)))return m;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),s=s.slice(0,-1*y)),n.push(this.productions_[f[1]][0]),r.push(C.$),s.push(C._$),I=o[n[n.length-2]][n[n.length-1]],n.push(I);break;case 3:return!0}}return!0}},i=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,i,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),o=0;oe[0].length)||(e=i,n=o,this.options.flex));o++);return e?((r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,s[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,i,n){function r(t,i){return e.yytext=e.yytext.substring(t,e.yyleng-i+t)}switch(i){case 0:if("\\\\"===e.yytext.slice(-2)?(r(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(r(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:case 5:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(r(5,9),"END_RAW_BLOCK");case 6:case 22:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:case 23:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 24:return 73;case 25:case 26:case 41:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=r(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=r(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return t}();return e.lexer=i,t.prototype=e,e.Parser=t,new t}();e.default=i,t.exports=e.default},function(t,e,i){"use strict";function n(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}function r(t,e,i){void 0===e&&(e=t.length);var n=t[e-1],r=t[e-2];return n?"ContentStatement"===n.type?(r||!i?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(n.original):void 0:i}function s(t,e,i){void 0===e&&(e=-1);var n=t[e+1],r=t[e+2];return n?"ContentStatement"===n.type?(r||!i?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(n.original):void 0:i}function o(t,e,i){var n=t[null==e?0:e+1];if(n&&"ContentStatement"===n.type&&(i||!n.rightStripped)){var r=n.value;n.value=n.value.replace(i?/^\s+/:/^[ \t]*\r?\n?/,""),n.rightStripped=n.value!==r}}function a(t,e,i){var n=t[null==e?t.length-1:e-1];if(n&&"ContentStatement"===n.type&&(i||!n.leftStripped)){var r=n.value;return n.value=n.value.replace(i?/\s+$/:/[ \t]+$/,""),n.leftStripped=n.value!==r,n.leftStripped}}var l=i(1).default;e.__esModule=!0;var h=l(i(39));n.prototype=new h.default,n.prototype.Program=function(t){var e=!this.options.ignoreStandalone,i=!this.isRootSeen;this.isRootSeen=!0;for(var n=t.body,l=0,h=n.length;l0)throw new p.default("Invalid path: "+n,{loc:i});".."===l&&s++}}return{type:"PathExpression",data:t,depth:s,parts:r,original:n,loc:i}}function h(t,e,i,n,r,s){var o=n.charAt(3)||n.charAt(2),a="{"!==o&&"&"!==o;return{type:/\*/.test(n)?"Decorator":"MustacheStatement",path:t,params:e,hash:i,escaped:a,strip:r,loc:this.locInfo(s)}}function c(t,e,i,r){n(t,i);var s={type:"Program",body:e,strip:{},loc:r=this.locInfo(r)};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:s,openStrip:{},inverseStrip:{},closeStrip:{},loc:r}}function u(t,e,i,r,s,o){r&&r.path&&n(t,r);var a=/\*/.test(t.open);e.blockParams=t.blockParams;var l=void 0,h=void 0;if(i){if(a)throw new p.default("Unexpected inverse block on decorator",i);i.chain&&(i.program.body[0].closeStrip=r.strip),h=i.strip,l=i.program}return s&&(s=l,l=e,e=s),{type:a?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:l,openStrip:t.strip,inverseStrip:h,closeStrip:r&&r.strip,loc:this.locInfo(o)}}function g(t,e){if(!e&&t.length){var i=t[0].loc,n=t[t.length-1].loc;i&&n&&(e={source:i.source,start:{line:i.start.line,column:i.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:"Program",body:t,strip:{},loc:e}}function d(t,e,i,r){return n(t,i),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:i&&i.strip,loc:this.locInfo(r)}}var A=i(1).default;e.__esModule=!0,e.SourceLocation=r,e.id=s,e.stripFlags=o,e.stripComment=a,e.preparePath=l,e.prepareMustache=h,e.prepareRawBlock=c,e.prepareBlock=u,e.prepareProgram=g,e.preparePartialBlock=d;var p=A(i(6))},function(t,e,i){"use strict";function n(){}function r(t,e,i){if(null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+t);"data"in(e=e||{})||(e.data=!0),e.compat&&(e.useDepths=!0);var n=i.parse(t,e),r=(new i.Compiler).compile(n,e);return(new i.JavaScriptCompiler).compile(r,e)}function s(t,e,i){function n(){var n=i.parse(t,e),r=(new i.Compiler).compile(n,e),s=(new i.JavaScriptCompiler).compile(r,e,void 0,!0);return i.template(s)}function r(t,e){return s||(s=n()),s.call(this,t,e)}if(void 0===e&&(e={}),null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+t);"data"in(e=c.extend({},e))||(e.data=!0),e.compat&&(e.useDepths=!0);var s=void 0;return r._setup=function(t){return s||(s=n()),s._setup(t)},r._child=function(t,e,i,r){return s||(s=n()),s._child(t,e,i,r)},r}function o(t,e){if(t===e)return!0;if(c.isArray(t)&&c.isArray(e)&&t.length===e.length){for(var i=0;i1)throw new h.default("Unsupported number of partial arguments: "+i.length,t);i.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):i.push({type:"PathExpression",parts:[],depth:0}));var n=t.name.original,r="SubExpression"===t.name.type;r&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var s=t.indent||"";this.options.preventIndent&&s&&(this.opcode("appendContent",s),s=""),this.opcode("invokePartial",r,n,s),this.opcode("append")},PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){a(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,i){var n=t.path,r=n.parts[0],s=null!=e||null!=i;this.opcode("getContext",n.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",i),n.strict=!0,this.accept(n),this.opcode("invokeAmbiguous",r,s)},simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,i){var n=this.setupFullMustacheParams(t,e,i),r=t.path,s=r.parts[0];if(this.options.knownHelpers[s])this.opcode("invokeKnownHelper",n.length,s);else{if(this.options.knownHelpersOnly)throw new h.default("You specified knownHelpersOnly, but used the unknown helper "+s,t);r.strict=!0,r.falsy=!0,this.accept(r),this.opcode("invokeHelper",n.length,r.original,u.default.helpers.simpleId(r))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],i=u.default.helpers.scopedId(t),n=!t.depth&&!i&&this.blockParamIndex(e);n?this.opcode("lookupBlockParam",n,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,i):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,i=0,n=e.length;for(this.opcode("pushHash");i=0)return[e,r]}}}},function(t,e,i){"use strict";function n(t){this.value=t}function r(){}function s(t,e,i,n){var r=e.popStack(),s=0,o=i.length;for(t&&o--;s0&&(e+=", "+i.join(", "));var n=0;for(var r in this.aliases){var s=this.aliases[r];this.aliases.hasOwnProperty(r)&&s.children&&s.referenceCount>1&&(e+=", alias"+ ++n+"="+r,s.children[0]="alias"+n)}var o=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&o.push("blockParams"),this.useDepths&&o.push("depths");var a=this.mergeSource(e);return t?(o.push(a),Function.apply(this,o)):this.source.wrap(["function(",o.join(","),") {\n ",a,"}"])},mergeSource:function(t){var e=this.environment.isSimple,i=!this.forceBuffer,n=void 0,r=void 0,s=void 0,o=void 0;return this.source.each((function(t){t.appendToBuffer?(s?t.prepend(" + "):s=t,o=t):(s&&(r?s.prepend("buffer += "):n=!0,o.add(";"),s=o=void 0),r=!0,e||(i=!1))})),i?s?(s.prepend("return "),o.add(";")):r||this.source.push('return "";'):(t+=", buffer = "+(n?"":this.initializeBuffer()),s?(s.prepend("return buffer + "),o.add(";")):this.source.push("return buffer;")),t&&this.source.prepend("var "+t.substring(2)+(n?"":";\n")),this.source.merge()},blockValue:function(t){var e=this.aliasable("container.hooks.blockHelperMissing"),i=[this.contextName(0)];this.setupHelperArgs(t,0,i);var n=this.popStack();i.splice(1,0,n),this.push(this.source.functionCall(e,"call",i))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var i=this.topStack();e.splice(1,0,i),this.pushSource(["if (!",this.lastHelper,") { ",i," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack((function(t){return[" != null ? ",t,' : ""']})),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,i,n){var r=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[r++])),this.resolvePath("context",t,r,e,i)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,i){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,i)},resolvePath:function(t,e,i,n,r){var o=this;if(this.options.strict||this.options.assumeObjects)this.push(s(this.options.strict&&r,this,e,t));else for(var a=e.length;ithis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,i=t.length;e{t.exports='
    \n
    \n
    \n
    \n \n {{{title}}}\n
    \n
    {{{message}}}
    \n
    \n \n
    \n
    \n
    \n
    '},130:t=>{t.exports='
    \n {{#each features}}\n
    \n {{#each attributes}}\n \n \n \n \n \n
    {{key}}{{{value}}}
    \n {{/each}}\n
    \n
    \n {{/each}}\n
    '},649:t=>{t.exports='
    \n \n
    '},512:t=>{t.exports=" {{#each layers}}\n \n {{/each}}"},690:t=>{t.exports='
    \n {{{info}}}\n
    '},279:t=>{t.exports='
    \n

    {{{name}}}

    \n
    {{{desc}}}
    \n
    '},340:t=>{t.exports='
    \n {{{info}}}\n
    '},582:t=>{t.exports='{{#*inline "layerswitcherLayer"}}\n {{#each layers}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n {{#if visible}}\n {{#unless base}}\n
    \n \n \n
    \n {{/unless}}\n
    \n \n
    \n {{/if}}\n
  • \n {{/each}}\n {{/inline}}\n {{#*inline "layerswitcherGroup"}}\n {{#each layerGroups}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n
    \n \n
    \n {{#unless collapsed}}\n {{#gt layerGroups.length 0}}\n
      \n {{> layerswitcherGroup}}\n
    \n {{/gt}}\n {{#gt layers.length 0}}\n
      \n {{> layerswitcherLayer group=id}}\n
    \n {{/gt}}\n {{/unless}}\n
  • \n {{/each}}\n {{/inline}}\n
    \n
    \n
      \n {{#gt baseLayers.length 0}}\n
    • \n
      Capas base
      \n
        \n {{> layerswitcherLayer layers=baseLayers}}\n
      \n
    • \n {{/gt}}\n {{#gt layerGroups.length 0}}\n
    • \n
      Grupos de capas
      \n
        \n {{> layerswitcherGroup }}\n
      \n
    • \n {{/gt}}\n {{#gt overlayLayers.length 0}}\n
    • \n
      Otras capas
      \n
        \n {{> layerswitcherLayer layers=overlayLayers}}\n
      \n
    • \n {{/gt}}\n
    \n
    \n
    '},326:t=>{t.exports='
    \n \n
    '},389:t=>{t.exports='
    '},637:t=>{t.exports='
    '},922:t=>{t.exports='
    '},83:t=>{t.exports='
    \n \n
    \n
    '},72:t=>{t.exports='
    '},107:t=>{t.exports='
    '},810:t=>{t.exports='
    \n {{#gt tabs.length 1}}\n
    \n {{#each tabs}}\n
    \n \n
    \n {{/each}}\n
    \n {{/gt}}\n
    \n \n {{#if options.takeMeThere}}\n {{#if options.textMode}}\n \n {{else}}\n \n {{/if}}\n {{/if}}\n
    {{{tabs.0.content}}}
    \n
    \n
    '},29:t=>{t.exports='
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    '},797:t=>{t.exports='
    \n
    {{scale}} = 1 :
    \n
    \n
    '},959:t=>{t.exports='
    '},93:t=>{t.exports='
    \n \n
    '},645:(t,e)=>{ -/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ -e.read=function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<>1,c=-7,u=i?r-1:0,g=i?-1:1,d=t[e+u];for(u+=g,s=d&(1<<-c)-1,d>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=g,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=256*o+t[e+u],u+=g,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),s-=h}return(d?-1:1)*o*Math.pow(2,s-n)},e.write=function(t,e,i,n,r,s){var o,a,l,h=8*s-r-1,c=(1<>1,g=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,A=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?g/l:g*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+d]=255&a,d+=A,a/=256,r-=8);for(o=o<0;t[i+d]=255&o,d+=A,o/=256,h-=8);t[i+d-A]|=128*p}},98:function(t,e){ -/** - * JSTS. See https://github.com/bjornharrtell/jsts - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EDLv1.txt - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EPLv1.txt - * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_LICENSE_ES6_COLLECTIONS.txt - * @license - */ -!function(t){"use strict";"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(t){if(null==this)throw new TypeError(this+" is not an object");var e=Object(this),i=Math.max(Math.min(e.length,9007199254740991),0)||0,n=1 in arguments&&parseInt(Number(arguments[1]),10)||0;n=n<0?Math.max(i+n,0):Math.min(n,i);var r=2 in arguments&&void 0!==arguments[2]?parseInt(Number(arguments[2]),10)||0:i;for(r=r<0?Math.max(i+arguments[2],0):Math.min(r,i);n0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},r.isNaN=t=>Number.isNaN(t),r.isInfinite=t=>!Number.isFinite(t),r.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(h=new Float64Array(1),c=new Int32Array(h.buffer),r.doubleToLongBits=function(t){h[0]=t;var e=0|c[0],i=0|c[1];return 2146435072==(2146435072&i)&&0!=(1048575&i)&&0!==e&&(e=0,i=2146959360),new n(i,e)},r.longBitsToDouble=function(t){return c[0]=t.low,c[1]=t.high,h[0]}):(s=Math.log2,o=Math.floor,a=Math.pow,l=function(){for(var t=53;t>0;t--){var e=a(2,t)-1;if(o(s(e))+1===t)return e}return 0}(),r.doubleToLongBits=function(t){var e,i,r,h,c,u,g,d,A;if(t<0||1/t===Number.NEGATIVE_INFINITY?(u=1<<31,t=-t):u=0,0===t)return new n(d=u,A=0);if(t===1/0)return new n(d=2146435072|u,A=0);if(t!=t)return new n(d=2146959360,A=0);if(h=0,A=0,(e=o(t))>1)if(e<=l)(h=o(s(e)))<=20?(A=0,d=e<<20-h&1048575):(A=e%(i=a(2,r=h-20))<<32-r,d=e/i&1048575);else for(r=e,A=0;0!==(r=o(i=r/2));)h++,A>>>=1,A|=(1&d)<<31,d>>>=1,i!==r&&(d|=524288);if(g=h+1023,c=0===e,e=t-e,h<52&&0!==e)for(r=0;;){if((i=2*e)>=1?(e=i-1,c?(g--,c=!1):(r<<=1,r|=1,h++)):(e=i,c?0==--g&&(h++,c=!1):(r<<=1,h++)),20===h)d|=r,r=0;else if(52===h){A|=r;break}if(1===i){h<20?d|=r<<20-h:h<52&&(A|=r<<52-h);break}}return d|=g<<20,new n(d|=u,A)},r.longBitsToDouble=function(t){var e,i,n,r,s=t.high,o=t.low;i=s&1<<31?-1:1,n=((2146435072&s)>>20)-1023,r=0,e=1<<19;for(var l=1;l<=20;l++)s&e&&(r+=a(2,-l)),e>>>=1;for(e=1<<31,l=21;l<=52;l++)o&e&&(r+=a(2,-l)),e>>>=1;if(-1023===n){if(0===r)return 0*i;n=-1022}else{if(1024===n)return 0===r?i/0:NaN;r+=1}return i*r*a(2,n)}),p.prototype=Object.create(Error.prototype),p.prototype.constructor=Error;class f extends p{constructor(){super(),f.constructor_.apply(this,arguments)}getClass(){return f}get interfaces_(){return[]}}f.constructor_=function(){if(0===arguments.length)p.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];p.constructor_.call(this,t)}};class m{constructor(){m.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)m.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new f("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];m.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new f:new f(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];m.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new f("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return m}get interfaces_(){return[]}}m.constructor_=function(){};class _{constructor(){_.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=r.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case _.X:this.x=e;break;case _.Y:this.y=e;break;case _.Z:this.z=e;break;default:throw new i("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],i=arguments[1];return!!e.equalsWithTolerance(this.x,t.x,i)&&!!e.equalsWithTolerance(this.y,t.y,i)}}getOrdinate(t){switch(t){case _.X:return this.x;case _.Y:return this.y;case _.Z:return this.z}throw new i("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||r.isNaN(this.z)&&r.isNaN(t.z))}equals(t){return t instanceof _&&this.equals2D(t)}equalInZ(t,i){return e.equalsWithTolerance(this.z,t.z,i)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return m.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new _(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return Math.sqrt(e*e+i*i+n*n)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*t+_.hashCode(this.x))+_.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return _}get interfaces_(){return[u,g,A]}}class y{constructor(){y.constructor_.apply(this,arguments)}static compare(t,e){return te?1:r.isNaN(t)?r.isNaN(e)?0:-1:r.isNaN(e)?1:0}compare(t,e){var i=t,n=e,r=y.compare(i.x,n.x);if(0!==r)return r;var s=y.compare(i.y,n.y);return 0!==s?s:this._dimensionsToTest<=2?0:y.compare(i.z,n.z)}getClass(){return y}get interfaces_(){return[d]}}function I(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}function E(){}function C(){}function v(t){this.message=t||""}function x(){}function w(t){this.message=t||""}function S(t){this.message=t||""}function b(){this.array_=[],arguments[0]instanceof C&&this.addAll(arguments[0])}y.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)y.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new i("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},_.DimensionalComparator=y,_.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)_.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];_.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];_.constructor_.call(this,t,e,_.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},_.serialVersionUID=0x5cbf2c235c7e5800,_.NULL_ORDINATE=r.NaN,_.X=0,_.Y=1,_.Z=2,E.prototype.hasNext=function(){},E.prototype.next=function(){},E.prototype.remove=function(){},C.prototype.add=function(){},C.prototype.addAll=function(){},C.prototype.isEmpty=function(){},C.prototype.iterator=function(){},C.prototype.size=function(){},C.prototype.toArray=function(){},C.prototype.remove=function(){},v.prototype=new Error,v.prototype.name="IndexOutOfBoundsException",x.prototype=Object.create(C.prototype),x.prototype.constructor=x,x.prototype.get=function(){},x.prototype.set=function(){},x.prototype.isEmpty=function(){},w.prototype=new Error,w.prototype.name="NoSuchElementException",S.prototype=new Error,S.prototype.name="OperationNotSupported",b.prototype=Object.create(x.prototype),b.prototype.constructor=b,b.prototype.ensureCapacity=function(){},b.prototype.interfaces_=[x,C],b.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},b.prototype.clear=function(){this.array_=[]},b.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},b.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},b.prototype.iterator=function(){return new B(this)},b.prototype.get=function(t){if(t<0||t>=this.size())throw new v;return this.array_[t]},b.prototype.isEmpty=function(){return 0===this.array_.length},b.prototype.size=function(){return this.array_.length},b.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1&&this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof _){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0&&this.get(t-1).equals2D(i))return null;if(ts&&(i=-1),t=r;t!==s;t+=i)this.add(e[t],n);return!0}}closeRing(){this.size()>0&&this.add(new _(this.get(0)),!1)}getClass(){return L}get interfaces_(){return[]}}L.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},L.coordArrayType=new Array(0).fill(null);class M{constructor(){M.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(r.x,s.x),n=Math.max(r.x,s.x);return!(i>e||ne||nt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,n=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy}}intersects(){if(1===arguments.length){if(arguments[0]instanceof M){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||(t.x>e.x?t.x:e.x)this._maxy||(t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof M){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof _){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new _((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof M){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*(t=37*(t=37*t+_.hashCode(this._minx))+_.hashCode(this._maxx))+_.hashCode(this._miny))+_.hashCode(this._maxy)}getClass(){return M}get interfaces_(){return[u,A]}}function T(){}M.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof M){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this.init(t,e,i,n)}},M.serialVersionUID=0x51845cd552189800;class R extends T{constructor(){super(),R.constructor_.apply(this,arguments)}getClass(){return R}get interfaces_(){return[]}}function N(t){this.str=t}function P(t){this.value=t}function F(){}R.constructor_=function(){T.constructor_.call(this,"Projective point not representable on the Cartesian plane.")},N.prototype.append=function(t){this.str+=t},N.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)},N.prototype.toString=function(t){return this.str},P.prototype.intValue=function(){return this.value},P.prototype.compareTo=function(t){return this.valuet?1:0},P.isNaN=t=>Number.isNaN(t),F.isWhitespace=t=>t<=32&&t>=0||127==t,F.toUpperCase=t=>t.toUpperCase();class D{constructor(){D.constructor_.apply(this,arguments)}static sqr(t){return D.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return D.parse(t)}if("number"==typeof arguments[0])return new D(arguments[0])}static sqrt(t){return D.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;F.isWhitespace(t.charAt(e));)e++;var n=!1;if(e=i);){var h=t.charAt(e);if(e++,F.isDigit(h)){var c=h-"0";s.selfMultiply(D.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=P.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var g=s,d=o-a-l;if(0===d)g=s;else if(d>0){var A=D.TEN.pow(d);g=s.divide(A)}else d<0&&(A=D.TEN.pow(-d),g=s.multiply(A));return n?g.negate():g}static createNaN(){return new D(r.NaN,r.NaN)}static copy(t){return new D(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),n=Math.trunc(Math.floor(i));return 10*Math.pow(10,n)<=e&&(n+=1),n}static stringOfChar(t,e){for(var i=new N,n=0;n9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(D.valueOf(h)).multiply(D.TEN),c&&i.selfAdd(D.TEN);var g=!0,d=D.magnitude(i._hi);if(d<0&&Math.abs(d)>=a-l&&(g=!1),!g)break}return e[0]=n,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof D){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof D){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof D){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,n,r=null,s=null,o=null,a=null;return i=this._hi/l,a=(r=(o=D.SPLIT*i)-(r=o-i))*(s=(a=D.SPLIT*l)-(s=a-l))-(n=i*l)+r*(e=l-s)+(t=i-r)*s+t*e,a=i+(o=(this._hi-n-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof D){let r=arguments[0];var t,e,i,n,s=null,o=null,a=null,l=null;return t=(i=this._hi/r._hi)-(s=(a=D.SPLIT*i)-(s=a-i)),l=s*(o=(l=D.SPLIT*r._hi)-(o=l-r._hi))-(n=i*r._hi)+s*(e=r._hi-o)+t*o+t*e,a=(this._hi-n-l+this._lo-i*r._lo)/r._hi,new D(l=i+a,i-l+a)}if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)?D.createNaN():D.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return D.valueOf(1);var e=new D(this),i=D.valueOf(1),n=Math.abs(t);if(n>1)for(;n>0;)n%2==1&&i.selfMultiply(e),(n/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return D.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new D(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof D){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return D.valueOf(0);if(this.isNegative())return D.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=D.valueOf(e),n=this.subtract(i.sqr())._hi*(.5*t);return i.add(n)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,n=null,r=null,s=null;return n=(i=this._hi+o)-(r=i-this._hi),e=(s=(n=o-r+(this._hi-n))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,n=null,r=null,s=null,i=this._hi+c,o=this._lo+u,n=i-(r=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(r=(n=c-r+(this._hi-n))+o))+(r=(a=u-s+(this._lo-a))+(e=r+(i-t))),h=r+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,n=null,r=null,s=null;i=(r=D.SPLIT*this._hi)-this._hi,s=D.SPLIT*l,i=r-i,t=this._hi-i,n=s-l;var o=(r=this._hi*l)+(s=i*(n=s-n)-r+i*(e=l-n)+t*n+t*e+(this._hi*h+this._lo*l)),a=s+(i=r-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return D.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new D(t,e)}negate(){return this.isNaN()?this:new D(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof D){let t=arguments[0];return t.isNaN()?D.createNaN():D.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)?D.createNaN():D.copy(this).selfMultiply(t,0)}}isNaN(){return r.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=D.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),n=e[0]+1,r=i;if("."===i.charAt(0))r="0"+i;else if(n<0)r="0."+D.stringOfChar("0",-n)+i;else if(-1===i.indexOf(".")){var s=n-i.length;r=i+D.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+r:r}reciprocal(){var t,e,i,n,r=null,s=null,o=null,a=null;t=(i=1/this._hi)-(r=(o=D.SPLIT*i)-(r=o-i)),s=(a=D.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(n=i*this._hi)-(a=r*(s=a-s)-n+r*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new D(l,i-l+o)}toSciNotation(){if(this.isZero())return D.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),n=D.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var r="";i.length>1&&(r=i.substring(1));var s=i.charAt(0)+"."+r;return this.isNegative()?"-"+s+n:s+n}abs(){return this.isNaN()?D.NaN:this.isNegative()?this.negate():new D(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?D.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return D}get interfaces_(){return[A,u,g]}}D.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof D){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];D.constructor_.call(this,D.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},D.PI=new D(3.141592653589793,12246467991473532e-32),D.TWO_PI=new D(6.283185307179586,24492935982947064e-32),D.PI_2=new D(1.5707963267948966,6123233995736766e-32),D.E=new D(2.718281828459045,14456468917292502e-32),D.NaN=new D(r.NaN,r.NaN),D.EPS=123259516440783e-46,D.SPLIT=134217729,D.MAX_PRINT_DIGITS=32,D.TEN=D.valueOf(10),D.ONE=D.valueOf(1),D.SCI_NOT_EXPONENT_CHAR="E",D.SCI_NOT_ZERO="0.0E0";class O{constructor(){O.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var n=O.orientationIndexFilter(t,e,i);if(n<=1)return n;var r=D.valueOf(e.x).selfAdd(-t.x),s=D.valueOf(e.y).selfAdd(-t.y),o=D.valueOf(i.x).selfAdd(-e.x),a=D.valueOf(i.y).selfAdd(-e.y);return r.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof D){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=D.valueOf(r),e=D.valueOf(s),i=D.valueOf(o),n=D.valueOf(a);return t.multiply(n).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,n){var r=D.valueOf(n.y).selfSubtract(i.y).selfMultiply(D.valueOf(e.x).selfSubtract(t.x)),s=D.valueOf(n.x).selfSubtract(i.x).selfMultiply(D.valueOf(e.y).selfSubtract(t.y)),o=r.subtract(s),a=D.valueOf(n.x).selfSubtract(i.x).selfMultiply(D.valueOf(t.y).selfSubtract(i.y)),l=D.valueOf(n.y).selfSubtract(i.y).selfMultiply(D.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=D.valueOf(t.x).selfAdd(D.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=D.valueOf(e.x).selfSubtract(t.x).selfMultiply(D.valueOf(t.y).selfSubtract(i.y)),g=D.valueOf(e.y).selfSubtract(t.y).selfMultiply(D.valueOf(t.x).selfSubtract(i.x)),d=u.subtract(g).selfDivide(o).doubleValue(),A=D.valueOf(i.y).selfAdd(D.valueOf(n.y).selfSubtract(i.y).selfMultiply(d)).doubleValue();return new _(c,A)}static orientationIndexFilter(t,e,i){var n=null,r=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=r-s;if(r>0){if(s<=0)return O.signum(o);n=r+s}else{if(!(r<0))return O.signum(o);if(s>=0)return O.signum(o);n=-r-s}var a=O.DP_SAFE_EPSILON*n;return o>=a||-o>=a?O.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return O}get interfaces_(){return[]}}O.constructor_=function(){},O.DP_SAFE_EPSILON=1e-15;class Q{constructor(){Q.constructor_.apply(this,arguments)}static index(t,e,i){return O.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new i("Ring has fewer than 4 points, so orientation cannot be determined");for(var n=t[0],r=0,s=1;s<=e;s++){var o=t[s];o.y>n.y&&(n=o,r=s)}var a=r;do{(a-=1)<0&&(a=e)}while(t[a].equals2D(n)&&a!==r);var l=r;do{l=(l+1)%e}while(t[l].equals2D(n)&&l!==r);var h=t[a],c=t[l];if(h.equals2D(n)||c.equals2D(n)||h.equals2D(c))return!1;var u=Q.index(h,n,c);return 0===u?h.x>c.x:u>0}getClass(){return Q}get interfaces_(){return[]}}function k(){}Q.constructor_=function(){},Q.CLOCKWISE=-1,Q.RIGHT=Q.CLOCKWISE,Q.COUNTERCLOCKWISE=1,Q.LEFT=Q.COUNTERCLOCKWISE,Q.COLLINEAR=0,Q.STRAIGHT=Q.COLLINEAR,k.arraycopy=(t,e,i,n,r)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class G{constructor(){G.constructor_.apply(this,arguments)}static intersection(t,e,i,n){var s=t.y-e.y,o=e.x-t.x,a=t.x*e.y-e.x*t.y,l=i.y-n.y,h=n.x-i.x,c=i.x*n.y-n.x*i.y,u=s*h-l*o,g=(o*c-h*a)/u,d=(l*a-s*c)/u;if(r.isNaN(g)||r.isInfinite(g)||r.isNaN(d)||r.isInfinite(d))throw new R;return new _(g,d)}getY(){var t=this.y/this.w;if(r.isNaN(t)||r.isInfinite(t))throw new R;return t}getX(){var t=this.x/this.w;if(r.isNaN(t)||r.isInfinite(t))throw new R;return t}getCoordinate(){var t=new _;return t.x=this.getX(),t.y=this.getY(),t}getClass(){return G}get interfaces_(){return[]}}G.constructor_=function(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){let t=arguments[0];this.x=t.x,this.y=t.y,this.w=1}else if(2===arguments.length){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];this.x=t,this.y=e,this.w=1}else if(arguments[0]instanceof G&&arguments[1]instanceof G){let t=arguments[0],e=arguments[1];this.x=t.y*e.w-e.y*t.w,this.y=e.x*t.w-t.x*e.w,this.w=t.x*e.y-e.x*t.y}else if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];this.x=t.y-e.y,this.y=e.x-t.x,this.w=t.x*e.y-e.x*t.y}}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.w=i}else if(4===arguments.length){let o=arguments[0],a=arguments[1],l=arguments[2],h=arguments[3];var t=o.y-a.y,e=a.x-o.x,i=o.x*a.y-a.x*o.y,n=l.y-h.y,r=h.x-l.x,s=l.x*h.y-h.x*l.y;this.x=e*s-r*i,this.y=n*i-t*s,this.w=t*r-n*e}};class U{constructor(){U.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return r.isInfinite(e)||r.isNaN(e)?e:e/U.LOG_10}static min(t,e,i,n){var r=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],n=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),n>t&&(t=n),t}}static average(t,e){return(t+e)/2}getClass(){return U}get interfaces_(){return[]}}U.constructor_=function(){},U.LOG_10=Math.log(10);class q{constructor(){q.constructor_.apply(this,arguments)}static segmentToSegment(t,e,i,n){if(t.equals(e))return q.pointToSegment(t,i,n);if(i.equals(n))return q.pointToSegment(n,t,e);var r=!1;if(M.intersects(t,e,i,n)){var s=(e.x-t.x)*(n.y-i.y)-(e.y-t.y)*(n.x-i.x);if(0===s)r=!0;else{var o=(t.y-i.y)*(n.x-i.x)-(t.x-i.x)*(n.y-i.y),a=((t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y))/s,l=o/s;(l<0||l>1||a<0||a>1)&&(r=!0)}}else r=!0;return r?U.min(q.pointToSegment(t,i,n),q.pointToSegment(e,i,n),q.pointToSegment(i,t,e),q.pointToSegment(n,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;if(r<=0)return t.distance(e);if(r>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(s)*Math.sqrt(n)}static pointToLinePerpendicular(t,e,i){var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(r)*Math.sqrt(n)}static pointToSegmentString(t,e){if(0===e.length)throw new i("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r0}getClass(){return K}get interfaces_(){return[X]}}K.constructor_=function(){};class J{constructor(){J.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return J}get interfaces_(){return[X]}}J.constructor_=function(){};class Z{constructor(){Z.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return Z}get interfaces_(){return[X]}}Z.constructor_=function(){},X.Mod2BoundaryNodeRule=W,X.EndPointBoundaryNodeRule=K,X.MultiValentEndPointBoundaryNodeRule=J,X.MonoValentEndPointBoundaryNodeRule=Z,X.constructor_=function(){},X.MOD2_BOUNDARY_RULE=new W,X.ENDPOINT_BOUNDARY_RULE=new K,X.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new J,X.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new Z,X.OGC_SFS_BOUNDARY_RULE=X.MOD2_BOUNDARY_RULE;class ${constructor(){$.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4||!t[0].equals2D(t[t.length-1]))}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=U.clamp(e,0,t.length);var n=(i=U.clamp(i,-1,t.length))-e+1;i<0&&(n=0),e>=t.length&&(n=0),in.length)return 1;if(0===i.length)return 0;var r=$.compare(i,n);return $.isEqualReversed(i,n)?0:r}OLDcompare(t,e){var i=t,n=e;if(i.lengthn.length)return 1;if(0===i.length)return 0;for(var r=$.increasingDirection(i),s=$.increasingDirection(n),o=r>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},dt.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:at,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,n,r=this.root_;do{if(i=r,(n=t.compareTo(r.key))<0)r=r.left;else{if(!(n>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var o={key:t,left:null,right:null,value:e,parent:i,color:at,getValue(){return this.value},getKey(){return this.key}};return n<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},dt.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;ht(t)==ut(ht(ht(t)))?1==lt(e=gt(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==gt(ht(t))&&(t=ht(t),this.rotateLeft(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateRight(ht(ht(t)))):1==lt(e=ut(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==ut(ht(t))&&(t=ht(t),this.rotateRight(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateLeft(ht(ht(t))))}this.root_.color=at},dt.prototype.values=function(){var t=new b,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=dt.successor(e));)t.add(e.value);return t},dt.prototype.entrySet=function(){var t=new st,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=dt.successor(e));)t.add(e);return t},dt.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},dt.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},dt.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},dt.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},dt.prototype.size=function(){return this.size_},dt.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class At{constructor(){At.constructor_.apply(this,arguments)}getClass(){return At}get interfaces_(){return[]}}function pt(){}function ft(){this.array_=[],arguments[0]instanceof C&&this.addAll(arguments[0])}At.constructor_=function(){},pt.prototype=new rt,ft.prototype=new pt,ft.prototype.contains=function(t){for(var e=0,i=this.array_.length;e=0;){var o=r.substring(0,s);n.add(o),s=(r=r.substring(s+i)).indexOf(e)}r.length>0&&n.add(r);for(var a=new Array(n.size()).fill(null),l=0;l0)for(var s=r;s0&&i.append(" ");for(var r=0;r0&&i.append(","),i.append(Nt.toString(s.getOrdinate(n,r)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?Ft.createClosedRing(t,e,4):e.getOrdinate(0,V.X)===e.getOrdinate(i-1,V.X)&&e.getOrdinate(0,V.Y)===e.getOrdinate(i-1,V.Y)?e:Ft.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var n=t.create(i,e.getDimension()),r=e.size();Ft.copy(e,0,n,0,r);for(var s=r;s0){var i=this._points.copy();Ft.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?It.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return j.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return bt.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return Ft.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return j.TYPENAME_LINEARRING}copy(){return new Vt(this._points.copy(),this._factory)}getClass(){return Vt}get interfaces_(){return[]}}Vt.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];Vt.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(I(arguments[0],V)&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];Dt.constructor_.call(this,t,e),this.validateConstruction()}},Vt.MINIMUM_VALID_SIZE=4,Vt.serialVersionUID=-0x3b229e262367a600;class zt extends vt{constructor(){super(),zt.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof j){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return j.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new Pt(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new Kt(t):new Kt(t,e)}}getClass(){return Jt}get interfaces_(){return[z,A]}}Jt.constructor_=function(){},Jt.serialVersionUID=-0x38e49fa6cf6f2e00,Jt.instanceObject=new Jt;var Zt=Object.defineProperty,$t=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&function(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}.call(this,t)}return e||Zt(t,"size",{get:ee}),t.constructor=i,i.prototype=t,i}({delete:function(t){return this.has(t)&&(this._keys.splice(mt,1),this._values.splice(mt,1),this._itp.forEach((function(t){mt-1},has:function(t){return function(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(mt=t.length;mt--&&(i=t[mt])!==(n=e)&&(i==i||n==n););else mt=t.indexOf(e);var i,n;return mt>-1}.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[mt]:void 0},set:function(t,e){return this.has(t)?this._values[mt]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return te(this._itp,this._keys)},values:function(){return te(this._itp,this._values)},entries:function(){return te(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var n=i.next();if(n.done)break;t.call(e,n.value[1],n.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function te(t,e,i){var n=[0],r=!1;return t.push(n),{next:function(){var s,o=n[0];return!r&&ot.add(e))),t},ne.prototype.size=function(){return this.map_.size()};class re{constructor(){re.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof re))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),n=e.getMaximumSignificantDigits();return new P(i).compareTo(new P(n))}getScale(){return this._scale}isFloating(){return this._modelType===re.FLOATING||this._modelType===re.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===re.FLOATING?t="Floating":this._modelType===re.FLOATING_SINGLE?t="Floating-Single":this._modelType===re.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)||this._modelType===re.FLOATING_SINGLE?t:this._modelType===re.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof _){let t=arguments[0];if(this._modelType===re.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===re.FLOATING?t=16:this._modelType===re.FLOATING_SINGLE?t=6:this._modelType===re.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return re}get interfaces_(){return[A,u]}}class se{constructor(){se.constructor_.apply(this,arguments)}readResolve(){return se.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return se}get interfaces_(){return[A]}}se.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,se.nameToTypeMap.put(t,this)},se.serialVersionUID=-552860263173159e4,se.nameToTypeMap=new ne,re.Type=se,re.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=re.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof se){let t=arguments[0];this._modelType=t,t===re.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=re.FIXED,this.setScale(t)}else if(arguments[0]instanceof re){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},re.serialVersionUID=0x6bee6404e9a25c00,re.FIXED=new se("FIXED"),re.FLOATING=new se("FLOATING"),re.FLOATING_SINGLE=new se("FLOATING SINGLE"),re.maximumPreciseValue=9007199254740992;class oe{constructor(){oe.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return Jt.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new _(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new _(t.getMinX(),t.getMinY()),new _(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new _(t.getMinX(),t.getMinY()),new _(t.getMinX(),t.getMaxY()),new _(t.getMaxX(),t.getMaxY()),new _(t.getMaxX(),t.getMinY()),new _(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(I(arguments[0],V))return new Dt(arguments[0],this)}}createMultiLineString(){return 0===arguments.length?new xt(null,this):1===arguments.length?new xt(arguments[0],this):void 0}buildGeometry(t){for(var e=null,i=!1,n=!1,r=t.iterator();r.hasNext();){var s=r.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof vt&&(n=!0)}if(null===e)return this.createGeometryCollection();if(i||n)return this.createGeometryCollection(oe.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof Ut)return this.createMultiPolygon(oe.toPolygonArray(t));if(a instanceof Dt)return this.createMultiLineString(oe.toLineStringArray(t));if(a instanceof Qt)return this.createMultiPoint(oe.toPointArray(t));m.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(I(arguments[0],V))return new Qt(arguments[0],this)}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(I(arguments[0],V)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Vt){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length)return new Ut(arguments[0],arguments[1],this)}getSRID(){return this._SRID}createGeometryCollection(){return 0===arguments.length?new vt(null,this):1===arguments.length?new vt(arguments[0],this):void 0}createGeometry(t){return new Yt(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof j&&I(arguments[0],V)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(I(arguments[0],V))return new Vt(arguments[0],this)}}createMultiPolygon(){return 0===arguments.length?new zt(null,this):1===arguments.length?new zt(arguments[0],this):void 0}createMultiPoint(){if(0===arguments.length)return new qt(null,this);if(1===arguments.length){if(arguments[0]instanceof Array)return new qt(arguments[0],this);if(I(arguments[0],V)){let n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(n.size()).fill(null),e=0;et.x+" "+t.y,point(t){return he.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,n=t._geometries.length;ir?n:r;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=n>r?o:a)||t.equals(e)||(s=Math.max(o,a))}return m.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var n=t.x-e.x,r=t.y-e.y,s=Math.sqrt(n*n+r*r);return m.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new Pt;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,n){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=n,this._result=this.computeIntersect(t,e,i,n)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((()=>Array(2))),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2))),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new _,this._intPt[1]=new _,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},ge.DONT_INTERSECT=0,ge.DO_INTERSECT=1,ge.COLLINEAR=2,ge.NO_INTERSECTION=0,ge.POINT_INTERSECTION=1,ge.COLLINEAR_INTERSECTION=2;class de extends ge{constructor(){super(),de.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,n){var r=t,s=q.pointToSegment(t,i,n),o=q.pointToSegment(e,i,n);return o1e-4&&k.out.println("Distance = "+r.distance(s))}intersectionWithNormalization(t,e,i,n){var r=new _(t),s=new _(e),o=new _(i),a=new _(n),l=new _;this.normalizeToEnvCentre(r,s,o,a,l);var h=this.safeHCoordinateIntersection(r,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,n){var r=M.intersects(t,e,i),s=M.intersects(t,e,n),o=M.intersects(i,n,t),a=M.intersects(i,n,e);return r&&s?(this._intPt[0]=i,this._intPt[1]=n,ge.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,ge.COLLINEAR_INTERSECTION):r&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):r&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):s&&o?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||r||a?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):s&&a?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||r||o?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):ge.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,n,r){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xn.x?i.x:n.x,g=i.y>n.y?i.y:n.y,d=((s>h?s:h)+(ac?o:c)+(l0&&s>0||r<0&&s<0)return ge.NO_INTERSECTION;var o=Q.index(i,n,t),a=Q.index(i,n,e);return o>0&&a>0||o<0&&a<0?ge.NO_INTERSECTION:0===r&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,n):(0===r||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(n)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(n)?this._intPt[0]=e:0===r?this._intPt[0]=new _(i):0===s?this._intPt[0]=new _(n):0===o?this._intPt[0]=new _(t):0===a&&(this._intPt[0]=new _(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,n)),ge.POINT_INTERSECTION)}getClass(){return de}get interfaces_(){return[]}}de.constructor_=function(){};class Ae{constructor(){Ae.constructor_.apply(this,arguments)}static midPoint(t,e){return new _((t.x+e.x)/2,(t.y+e.y)/2)}minX(){return Math.min(this.p0.x,this.p1.x)}orientationIndex(){if(arguments[0]instanceof Ae){let i=arguments[0];var t=Q.index(this.p0,this.p1,i.p0),e=Q.index(this.p0,this.p1,i.p1);return t>=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof _){let t=arguments[0];return Q.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof Ae))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new de;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof _){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new _(i);var t=this.projectionFactor(i),e=new _;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof Ae){let t=arguments[0];var i=this.projectionFactor(t.p0),n=this.projectionFactor(t.p1);if(i>=1&&n>=1)return null;if(i<=0&&n<=0)return null;var r=this.project(t.p0);i<0&&(r=this.p0),i>1&&(r=this.p1);var s=this.project(t.p1);return n<0&&(s=this.p0),n>1&&(s=this.p1),new Ae(r,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return q.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return Ae.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,n=e*e+i*i;return n<=0?r.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/n}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),n=r.MAX_VALUE,s=null,o=this.closestPoint(t.p0);n=o.distance(t.p0),i[0]=o,i[1]=t.p0;var a=this.closestPoint(t.p1);(s=a.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||r.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof Ae){let t=arguments[0];return q.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof _){let t=arguments[0];return q.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new _;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^Math.trunc(i)^Math.trunc(i>>32)}getClass(){return Ae}get interfaces_(){return[u,A]}}Ae.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)Ae.constructor_.call(this,new _,new _);else if(1===arguments.length){let t=arguments[0];Ae.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];Ae.constructor_.call(this,new _(t,e),new _(i,n))}},Ae.serialVersionUID=0x2d2172135f411c00;class pe{constructor(){pe.constructor_.apply(this,arguments)}static toLocationSymbol(t){switch(t){case pe.EXTERIOR:return"e";case pe.BOUNDARY:return"b";case pe.INTERIOR:return"i";case pe.NONE:return"-"}throw new i("Unknown location value: "+t)}getClass(){return pe}get interfaces_(){return[]}}pe.constructor_=function(){},pe.INTERIOR=0,pe.BOUNDARY=1,pe.EXTERIOR=2,pe.NONE=-1;class fe{constructor(){fe.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===It.SYM_DONTCARE||e===It.SYM_TRUE&&(t>=0||t===It.TRUE)||e===It.SYM_FALSE&&t===It.FALSE||e===It.SYM_P&&t===It.P||e===It.SYM_L&&t===It.L||e===It.SYM_A&&t===It.A}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new fe(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===It.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])||fe.isTrue(this._matrix[pe.INTERIOR][pe.BOUNDARY])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.INTERIOR])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.BOUNDARY]))&&this._matrix[pe.EXTERIOR][pe.INTERIOR]===It.FALSE&&this._matrix[pe.EXTERIOR][pe.BOUNDARY]===It.FALSE}isCoveredBy(){return(fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])||fe.isTrue(this._matrix[pe.INTERIOR][pe.BOUNDARY])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.INTERIOR])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.BOUNDARY]))&&this._matrix[pe.INTERIOR][pe.EXTERIOR]===It.FALSE&&this._matrix[pe.BOUNDARY][pe.EXTERIOR]===It.FALSE}set(){if(1===arguments.length){let n=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])&&this._matrix[pe.INTERIOR][pe.EXTERIOR]===It.FALSE&&this._matrix[pe.BOUNDARY][pe.EXTERIOR]===It.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===It.A&&e===It.A||t===It.L&&e===It.L||t===It.L&&e===It.A||t===It.P&&e===It.A||t===It.P&&e===It.L)&&this._matrix[pe.INTERIOR][pe.INTERIOR]===It.FALSE&&(fe.isTrue(this._matrix[pe.INTERIOR][pe.BOUNDARY])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.INTERIOR])||fe.isTrue(this._matrix[pe.BOUNDARY][pe.BOUNDARY]))}isOverlaps(t,e){return t===It.P&&e===It.P||t===It.A&&e===It.A?fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])&&fe.isTrue(this._matrix[pe.INTERIOR][pe.EXTERIOR])&&fe.isTrue(this._matrix[pe.EXTERIOR][pe.INTERIOR]):t===It.L&&e===It.L&&1===this._matrix[pe.INTERIOR][pe.INTERIOR]&&fe.isTrue(this._matrix[pe.INTERIOR][pe.EXTERIOR])&&fe.isTrue(this._matrix[pe.EXTERIOR][pe.INTERIOR])}isEquals(t,e){return t===e&&fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])&&this._matrix[pe.INTERIOR][pe.EXTERIOR]===It.FALSE&&this._matrix[pe.BOUNDARY][pe.EXTERIOR]===It.FALSE&&this._matrix[pe.EXTERIOR][pe.INTERIOR]===It.FALSE&&this._matrix[pe.EXTERIOR][pe.BOUNDARY]===It.FALSE}toString(){for(var t=new Pt("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,It.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new i("Should be length 9: "+t);for(var e=0;e<3;e++)for(var n=0;n<3;n++)if(!fe.matches(this._matrix[e][n],t.charAt(3*e+n)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[pe.INTERIOR][pe.INTERIOR]===It.FALSE&&this._matrix[pe.INTERIOR][pe.BOUNDARY]===It.FALSE&&this._matrix[pe.BOUNDARY][pe.INTERIOR]===It.FALSE&&this._matrix[pe.BOUNDARY][pe.BOUNDARY]===It.FALSE}isCrosses(t,e){return t===It.P&&e===It.L||t===It.P&&e===It.A||t===It.L&&e===It.A?fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])&&fe.isTrue(this._matrix[pe.INTERIOR][pe.EXTERIOR]):t===It.L&&e===It.P||t===It.A&&e===It.P||t===It.A&&e===It.L?fe.isTrue(this._matrix[pe.INTERIOR][pe.INTERIOR])&&fe.isTrue(this._matrix[pe.EXTERIOR][pe.INTERIOR]):t===It.L&&e===It.L&&0===this._matrix[pe.INTERIOR][pe.INTERIOR]}getClass(){return fe}get interfaces_(){return[g]}}fe.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((()=>Array(3))),this.setAll(It.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];fe.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof fe){let t=arguments[0];fe.constructor_.call(this),this._matrix[pe.INTERIOR][pe.INTERIOR]=t._matrix[pe.INTERIOR][pe.INTERIOR],this._matrix[pe.INTERIOR][pe.BOUNDARY]=t._matrix[pe.INTERIOR][pe.BOUNDARY],this._matrix[pe.INTERIOR][pe.EXTERIOR]=t._matrix[pe.INTERIOR][pe.EXTERIOR],this._matrix[pe.BOUNDARY][pe.INTERIOR]=t._matrix[pe.BOUNDARY][pe.INTERIOR],this._matrix[pe.BOUNDARY][pe.BOUNDARY]=t._matrix[pe.BOUNDARY][pe.BOUNDARY],this._matrix[pe.BOUNDARY][pe.EXTERIOR]=t._matrix[pe.BOUNDARY][pe.EXTERIOR],this._matrix[pe.EXTERIOR][pe.INTERIOR]=t._matrix[pe.EXTERIOR][pe.INTERIOR],this._matrix[pe.EXTERIOR][pe.BOUNDARY]=t._matrix[pe.EXTERIOR][pe.BOUNDARY],this._matrix[pe.EXTERIOR][pe.EXTERIOR]=t._matrix[pe.EXTERIOR][pe.EXTERIOR]}};class me{constructor(){me.constructor_.apply(this,arguments)}static toDegrees(t){return 180*t/Math.PI}static normalize(t){for(;t>Math.PI;)t-=me.PI_TIMES_2;for(;t<=-Math.PI;)t+=me.PI_TIMES_2;return t}static angle(){if(1===arguments.length){let t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){let i=arguments[0],n=arguments[1];var t=n.x-i.x,e=n.y-i.y;return Math.atan2(e,t)}}static isAcute(t,e,i){var n=t.x-e.x,r=t.y-e.y;return n*(i.x-e.x)+r*(i.y-e.y)>0}static isObtuse(t,e,i){var n=t.x-e.x,r=t.y-e.y;return n*(i.x-e.x)+r*(i.y-e.y)<0}static interiorAngle(t,e,i){var n=me.angle(e,t),r=me.angle(e,i);return Math.abs(r-n)}static normalizePositive(t){if(t<0){for(;t<0;)t+=me.PI_TIMES_2;t>=me.PI_TIMES_2&&(t=0)}else{for(;t>=me.PI_TIMES_2;)t-=me.PI_TIMES_2;t<0&&(t=0)}return t}static angleBetween(t,e,i){var n=me.angle(e,t),r=me.angle(e,i);return me.diff(n,r)}static diff(t,e){var i=null;return(i=tMath.PI&&(i=2*Math.PI-i),i}static toRadians(t){return t*Math.PI/180}static getTurn(t,e){var i=Math.sin(e-t);return i>0?me.COUNTERCLOCKWISE:i<0?me.CLOCKWISE:me.NONE}static angleBetweenOriented(t,e,i){var n=me.angle(e,t),r=me.angle(e,i)-n;return r<=-Math.PI?r+me.PI_TIMES_2:r>Math.PI?r-me.PI_TIMES_2:r}getClass(){return me}get interfaces_(){return[]}}me.constructor_=function(){},me.PI_TIMES_2=2*Math.PI,me.PI_OVER_2=Math.PI/2,me.PI_OVER_4=Math.PI/4,me.COUNTERCLOCKWISE=Q.COUNTERCLOCKWISE,me.CLOCKWISE=Q.CLOCKWISE,me.NONE=Q.COLLINEAR;class _e{constructor(){_e.constructor_.apply(this,arguments)}static area(t,e,i){return Math.abs(((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2)}static signedArea(t,e,i){return((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2}static det(t,e,i,n){return t*n-e*i}static interpolateZ(t,e,i,n){var r=e.x,s=e.y,o=i.x-r,a=n.x-r,l=i.y-s,h=n.y-s,c=o*h-a*l,u=t.x-r,g=t.y-s,d=(h*u-a*g)/c,A=(-l*u+o*g)/c;return e.z+d*(i.z-e.z)+A*(n.z-e.z)}static longestSideLength(t,e,i){var n=t.distance(e),r=e.distance(i),s=i.distance(t),o=n;return r>o&&(o=r),s>o&&(o=s),o}static isAcute(t,e,i){return!!me.isAcute(t,e,i)&&!!me.isAcute(e,i,t)&&!!me.isAcute(i,t,e)}static circumcentre(t,e,i){var n=i.x,r=i.y,s=t.x-n,o=t.y-r,a=e.x-n,l=e.y-r,h=2*_e.det(s,o,a,l),c=_e.det(o,s*s+o*o,l,a*a+l*l),u=_e.det(s,s*s+o*o,a,a*a+l*l);return new _(n-c/h,r+u/h)}static perpendicularBisector(t,e){var i=e.x-t.x,n=e.y-t.y,r=new G(t.x+i/2,t.y+n/2,1),s=new G(t.x-n+i/2,t.y+i+n/2,1);return new G(r,s)}static angleBisector(t,e,i){var n=e.distance(t),r=n/(n+e.distance(i)),s=i.x-t.x,o=i.y-t.y;return new _(t.x+r*s,t.y+r*o)}static area3D(t,e,i){var n=e.x-t.x,r=e.y-t.y,s=e.z-t.z,o=i.x-t.x,a=i.y-t.y,l=i.z-t.z,h=r*l-s*a,c=s*o-n*l,u=n*a-r*o,g=h*h+c*c+u*u;return Math.sqrt(g)/2}static centroid(t,e,i){var n=(t.x+e.x+i.x)/3,r=(t.y+e.y+i.y)/3;return new _(n,r)}static inCentre(t,e,i){var n=e.distance(i),r=t.distance(i),s=t.distance(e),o=n+r+s,a=(n*t.x+r*e.x+s*i.x)/o,l=(n*t.y+r*e.y+s*i.y)/o;return new _(a,l)}area(){return _e.area(this.p0,this.p1,this.p2)}signedArea(){return _e.signedArea(this.p0,this.p1,this.p2)}interpolateZ(t){if(null===t)throw new i("Supplied point is null.");return _e.interpolateZ(t,this.p0,this.p1,this.p2)}longestSideLength(){return _e.longestSideLength(this.p0,this.p1,this.p2)}isAcute(){return _e.isAcute(this.p0,this.p1,this.p2)}circumcentre(){return _e.circumcentre(this.p0,this.p1,this.p2)}area3D(){return _e.area3D(this.p0,this.p1,this.p2)}centroid(){return _e.centroid(this.p0,this.p1,this.p2)}inCentre(){return _e.inCentre(this.p0,this.p1,this.p2)}getClass(){return _e}get interfaces_(){return[]}}_e.constructor_=function(){this.p0=null,this.p1=null,this.p2=null;let t=arguments[0],e=arguments[1],i=arguments[2];this.p0=t,this.p1=e,this.p2=i};var ye=Object.freeze({Coordinate:_,CoordinateList:L,Envelope:M,LineSegment:Ae,GeometryFactory:oe,Geometry:j,Point:Qt,LineString:Dt,LinearRing:Vt,Polygon:Ut,GeometryCollection:vt,MultiPoint:qt,MultiLineString:xt,MultiPolygon:zt,Dimension:It,IntersectionMatrix:fe,PrecisionModel:re,Location:pe,Triangle:_e});class Ie{constructor(){Ie.constructor_.apply(this,arguments)}getCoordinates(){return this._pt}getCoordinate(t){return this._pt[t]}setMinimum(){if(1===arguments.length){let t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(2===arguments.length){let e=arguments[0],i=arguments[1];if(this._isNull)return this.initialize(e,i),null;var t=e.distance(i);tthis._distance&&this.initialize(e,i,t)}}getClass(){return Ie}get interfaces_(){return[]}}Ie.constructor_=function(){this._pt=[new _,new _],this._distance=r.NaN,this._isNull=!0};class Ee{constructor(){Ee.constructor_.apply(this,arguments)}static computeDistance(){if(arguments[2]instanceof Ie&&arguments[0]instanceof Dt&&arguments[1]instanceof _){let r=arguments[0],s=arguments[1],o=arguments[2];for(var t=new Ae,e=r.getCoordinates(),i=0;i1||t<=0)throw new i("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t}compute(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)}distance(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()}computeOrientedDistance(t,e,i){var n=new ve(e);if(t.apply(n),i.setMaximum(n.getMaxPointDistance()),this._densifyFrac>0){var r=new xe(e,this._densifyFrac);t.apply(r),i.setMaximum(r.getMaxPointDistance())}}orientedDistance(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()}getClass(){return Ce}get interfaces_(){return[]}}class ve{constructor(){ve.constructor_.apply(this,arguments)}filter(t){this._minPtDist.initialize(),Ee.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)}getMaxPointDistance(){return this._maxPtDist}getClass(){return ve}get interfaces_(){return[H]}}ve.constructor_=function(){this._maxPtDist=new Ie,this._minPtDist=new Ie,this._euclideanDist=new Ee,this._geom=null;let t=arguments[0];this._geom=t};class xe{constructor(){xe.constructor_.apply(this,arguments)}filter(t,e){if(0===e)return null;for(var i=t.getCoordinate(e-1),n=t.getCoordinate(e),r=(n.x-i.x)/this._numSubSegs,s=(n.y-i.y)/this._numSubSegs,o=0;oe||this._maxs?1:0}getClass(){return Le}get interfaces_(){return[d]}}Le.constructor_=function(){},Be.NodeComparator=Le,Be.constructor_=function(){this._min=r.POSITIVE_INFINITY,this._max=r.NEGATIVE_INFINITY};class Me extends Be{constructor(){super(),Me.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return Me}get interfaces_(){return[]}}Me.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};const Te={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return Te.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?yt.sort(i,e):yt.sort(i);const n=t.iterator();for(let t=0,e=i.length;tn&&(i=e.x,n=t.x),this._p.x>=i&&this._p.x<=n&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=Q.index(t,e,this._p);if(r===Q.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new w;var t=this._parent.getGeometryN(this._index++);return t instanceof vt?(this._subcollectionIterator=new Ue(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return Ue}get interfaces_(){return[E]}}Ue.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class qe{constructor(){qe.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return pe.EXTERIOR;var i=e.getExteriorRing(),n=qe.locatePointInRing(t,i);if(n!==pe.INTERIOR)return n;for(var r=0;r0&&this.addPoint(t[0])}addHole(t){for(var e=Q.isCCW(t),i=0;i0)t.x=this._cg3.x/3/this._areasum2,t.y=this._cg3.y/3/this._areasum2;else if(this._totalLength>0)t.x=this._lineCentSum.x/this._totalLength,t.y=this._lineCentSum.y/this._totalLength;else{if(!(this._ptCount>0))return null;t.x=this._ptCentSum.x/this._ptCount,t.y=this._ptCentSum.y/this._ptCount}return t}addShell(t){t.length>0&&this.setAreaBasePoint(t[0]);for(var e=!Q.isCCW(t),i=0;i=this.size())throw new IndexOutOfBoundsException;return this.array_[t]},Je.prototype.push=function(t){return this.array_.push(t),t},Je.prototype.pop=function(t){if(0===this.array_.length)throw new Ke;return this.array_.pop()},Je.prototype.peek=function(){if(0===this.array_.length)throw new Ke;return this.array_[this.array_.length-1]},Je.prototype.empty=function(){return 0===this.array_.length},Je.prototype.isEmpty=function(){return this.empty()},Je.prototype.search=function(t){return this.array_.indexOf(t)},Je.prototype.size=function(){return this.array_.length},Je.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e50&&(t=this.reduce(this._inputPts));var e=this.preSort(t),i=this.grahamScan(e),n=this.toCoordinateArray(i);return this.lineOrPolygon(n)}padArray3(t){for(var e=new Array(3).fill(null),i=0;ie[2].y&&(e[2]=t[n]),t[n].x+t[n].y>e[3].x+e[3].y&&(e[3]=t[n]),t[n].x>e[4].x&&(e[4]=t[n]),t[n].x-t[n].y>e[5].x-e[5].y&&(e[5]=t[n]),t[n].y0;)e=i.pop();i.push(e),i.push(t[n])}return i.push(t[0]),i}getClass(){return $e}get interfaces_(){return[]}}class ti{constructor(){ti.constructor_.apply(this,arguments)}static polarCompare(t,e,i){var n=e.x-t.x,r=e.y-t.y,s=i.x-t.x,o=i.y-t.y,a=Q.index(t,e,i);if(a===Q.COUNTERCLOCKWISE)return 1;if(a===Q.CLOCKWISE)return-1;var l=n*n+r*r,h=s*s+o*o;return lh?1:0}compare(t,e){var i=t,n=e;return ti.polarCompare(this._origin,i,n)}getClass(){return ti}get interfaces_(){return[d]}}ti.constructor_=function(){this._origin=null;let t=arguments[0];this._origin=t},$e.RadialComparator=ti,$e.constructor_=function(){if(this._geomFactory=null,this._inputPts=null,1===arguments.length){let t=arguments[0];$e.constructor_.call(this,$e.extractCoordinates(t),t.getFactory())}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._inputPts=Ze.filterCoordinates(t),this._geomFactory=e}};class ei{constructor(){ei.constructor_.apply(this,arguments)}static centre(t){return new _(ei.avg(t.getMinX(),t.getMaxX()),ei.avg(t.getMinY(),t.getMaxY()))}static avg(t,e){return(t+e)/2}addPolygon(t){if(t.isEmpty())return null;var e=null,i=null,n=this.horizontalBisector(t);if(0===n.getLength())i=0,e=n.getCoordinate();else{var r=n.intersection(t),s=this.widestGeometry(r);i=s.getEnvelopeInternal().getWidth(),e=ei.centre(s.getEnvelopeInternal())}(null===this._interiorPoint||i>this._maxWidth)&&(this._interiorPoint=e,this._maxWidth=i)}getInteriorPoint(){return this._interiorPoint}widestGeometry(){if(arguments[0]instanceof vt){let i=arguments[0];if(i.isEmpty())return i;for(var t=i.getGeometryN(0),e=1;et.getEnvelopeInternal().getWidth()&&(t=i.getGeometryN(e));return t}if(arguments[0]instanceof j){let t=arguments[0];return t instanceof vt?this.widestGeometry(t):t}}horizontalBisector(t){var e=t.getEnvelopeInternal(),i=ii.getBisectorY(t);return this._factory.createLineString([new _(e.getMinX(),i),new _(e.getMaxX(),i)])}add(t){if(t instanceof Ut)this.addPolygon(t);else if(t instanceof vt)for(var e=t,i=0;ithis._loY&&(this._loY=t):t>this._centreY&&t=t.length&&(e=0),e}static computeC(t,e,i){return t*i.y-e*i.x}static getMinimumDiameter(t){return new oi(t).getDiameter()}static getMinimumRectangle(t){return new oi(t).getMinimumRectangle()}static computeSegmentForLine(t,e,i){var n=null,r=null;return Math.abs(e)>Math.abs(t)?(n=new _(0,i/e),r=new _(1,i/e-t/e)):(n=new _(i/t,0),r=new _(i/t-e/t,1)),new Ae(n,r)}getWidthCoordinate(){return this.computeMinimumDiameter(),this._minWidthPt}getSupportingSegment(){return this.computeMinimumDiameter(),this._inputGeom.getFactory().createLineString([this._minBaseSeg.p0,this._minBaseSeg.p1])}getDiameter(){if(this.computeMinimumDiameter(),null===this._minWidthPt)return this._inputGeom.getFactory().createLineString();var t=this._minBaseSeg.project(this._minWidthPt);return this._inputGeom.getFactory().createLineString([t,this._minWidthPt])}computeWidthConvex(t){this._convexHullPts=t instanceof Ut?t.getExteriorRing().getCoordinates():t.getCoordinates(),0===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=null,this._minBaseSeg=null):1===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[0]):2===this._convexHullPts.length||3===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[1]):this.computeConvexRingMinDiameter(this._convexHullPts)}computeConvexRingMinDiameter(t){this._minWidth=r.MAX_VALUE;for(var e=1,i=new Ae,n=0;n=n;)n=r,s=o,o=oi.nextIndex(t,s),r=e.distancePerpendicular(t[o]);return nn&&(n=l),lo&&(o=h),h0&&n<4&&!this._preserveType?this._factory.createLineString(i):this._factory.createLinearRing(i)}getClass(){return li}get interfaces_(){return[]}}li.constructor_=function(){this._inputGeom=null,this._factory=null,this._pruneEmptyGeometry=!0,this._preserveGeometryCollectionType=!0,this._preserveCollections=!1,this._preserveType=!1};class hi{constructor(){hi.constructor_.apply(this,arguments)}static densifyPoints(t,e,i){for(var n=new Ae,r=new L,s=0;s1)for(var l=o/a,h=1;he?t:e)?3:i}static isInHalfPlane(t,e){return e===gi.SE?t===gi.SE||t===gi.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new i("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?gi.NE:gi.SE:e>=0?gi.NW:gi.SW}if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new i("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?gi.NE:gi.SE:e.y>=t.y?gi.NW:gi.SW}}getClass(){return gi}get interfaces_(){return[]}}gi.constructor_=function(){},gi.NE=0,gi.NW=1,gi.SW=2,gi.SE=3;class di{constructor(){di.constructor_.apply(this,arguments)}static init(t,e){if(null!==t._sym||null!==e._sym||null!==t._next||null!==e._next)throw new IllegalStateException("Edges are already initialized");return t.init(e),t}static create(t,e){var i=new di(t),n=new di(e);return i.init(n),i}find(t){var e=this;do{if(null===e)return null;if(e.dest().equals2D(t))return e;e=e.oNext()}while(e!==this);return null}dest(){return this._sym._orig}oNext(){return this._sym._next}insert(t){if(this.oNext()===this)return this.insertAfter(t),null;var e=this.compareTo(t),i=this;do{var n=i.oNext();if(n.compareTo(t)!==e||n===this)return i.insertAfter(t),null;i=n}while(i!==this);m.shouldNeverReachHere()}insertAfter(t){m.equals(this._orig,t.orig());var e=this.oNext();this._sym.setNext(t),t.sym().setNext(e)}degree(){var t=0,e=this;do{t++,e=e.oNext()}while(e!==this);return t}equals(){if(2===arguments.length&&arguments[1]instanceof _&&arguments[0]instanceof _){let t=arguments[0],e=arguments[1];return this._orig.equals2D(t)&&this._sym._orig.equals(e)}}deltaY(){return this._sym._orig.y-this._orig.y}sym(){return this._sym}prev(){return this._sym.next()._sym}compareAngularDirection(t){var e=this.deltaX(),i=this.deltaY(),n=t.deltaX(),r=t.deltaY();if(e===n&&i===r)return 0;var s=gi.quadrant(e,i),o=gi.quadrant(n,r);return s>o?1:s0||this._isIn?pe.INTERIOR:pe.EXTERIOR)}getClass(){return Ii}get interfaces_(){return[]}}Ii.constructor_=function(){if(this._boundaryRule=X.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new i("Rule must be non-null");this._boundaryRule=t}};class Ei{constructor(){Ei.constructor_.apply(this,arguments)}static opposite(t){return t===Ei.LEFT?Ei.RIGHT:t===Ei.RIGHT?Ei.LEFT:t}getClass(){return Ei}get interfaces_(){return[]}}Ei.constructor_=function(){},Ei.ON=0,Ei.LEFT=1,Ei.RIGHT=2;class Ci{constructor(){Ci.constructor_.apply(this,arguments)}computeIntersections(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)}getClass(){return Ci}get interfaces_(){return[]}}Ci.constructor_=function(){this.mce=null,this.chainIndex=null;let t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};class vi{constructor(){vi.constructor_.apply(this,arguments)}isDelete(){return this._eventType===vi.DELETE}setDeleteEventIndex(t){this._deleteEventIndex=t}getObject(){return this._obj}compareTo(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===vi.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return vi}get interfaces_(){return[u]}}vi.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=vi.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=vi.INSERT,this._label=t,this._xValue=e,this._obj=i}},vi.INSERT=1,vi.DELETE=2;class xi{constructor(){xi.constructor_.apply(this,arguments)}getClass(){return xi}get interfaces_(){return[]}}xi.constructor_=function(){};class wi{constructor(){wi.constructor_.apply(this,arguments)}static isAdjacentSegments(t,e){return 1===Math.abs(t-e)}isTrivialIntersection(t,e,i,n){if(t===i&&1===this._li.getIntersectionNum()){if(wi.isAdjacentSegments(e,n))return!0;if(t.isClosed()){var r=t.getNumPoints()-1;if(0===e&&n===r||0===n&&e===r)return!0}}return!1}getProperIntersectionPoint(){return this._properIntersectionPoint}setIsDoneIfProperInt(t){this._isDoneWhenProperInt=t}hasProperInteriorIntersection(){return this._hasProperInterior}isBoundaryPointInternal(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next().getCoordinate();if(t.isIntersection(n))return!0}return!1}hasProperIntersection(){return this._hasProper}hasIntersection(){return this._hasIntersection}isDone(){return this._isDone}isBoundaryPoint(t,e){return!(null===e||!this.isBoundaryPointInternal(t,e[0])&&!this.isBoundaryPointInternal(t,e[1]))}setBoundaryNodes(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e}addIntersections(t,e,i,n){if(t===i&&e===n)return null;this.numTests++;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[n],a=i.getCoordinates()[n+1];this._li.computeIntersection(r,s,o,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),i.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,i,n)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),i.addIntersections(this._li,n,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))}getClass(){return wi}get interfaces_(){return[]}}wi.constructor_=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=i};class Si extends xi{constructor(){super(),Si.constructor_.apply(this,arguments)}prepareEvents(){Te.sort(this.events);for(var t=0;tthis.location.length){var e=new Array(3).fill(null);e[Ei.ON]=this.location[Ei.ON],e[Ei.LEFT]=pe.NONE,e[Ei.RIGHT]=pe.NONE,this.location=e}for(var i=0;i1&&t.append(pe.toLocationSymbol(this.location[Ei.LEFT])),t.append(pe.toLocationSymbol(this.location[Ei.ON])),this.location.length>1&&t.append(pe.toLocationSymbol(this.location[Ei.RIGHT])),t.toString()}setLocations(t,e,i){this.location[Ei.ON]=t,this.location[Ei.LEFT]=e,this.location[Ei.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t0||!e.coord.equals2D(n);r||i--;var s=new Array(i).fill(null),o=0;s[o++]=new _(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return r&&(s[o]=e.coord),new Fi(s,new Bi(this.edge._label))}add(t,e,i){var n=new Li(t,e,i),r=this._nodeMap.get(n);return null!==r?r:(this._nodeMap.put(n,n),n)}isIntersection(t){for(var e=this.iterator();e.hasNext();)if(e.next().coord.equals(t))return!0;return!1}getClass(){return Mi}get interfaces_(){return[]}}Mi.constructor_=function(){this._nodeMap=new dt,this.edge=null;let t=arguments[0];this.edge=t};class Ti{constructor(){Ti.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(n=1),this._depth[t][i]=n}}}getDelta(t){return this._depth[t][Ei.RIGHT]-this._depth[t][Ei.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?pe.EXTERIOR:pe.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let n=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=n.getLocation(t,e);i!==pe.EXTERIOR&&i!==pe.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=Ni.depthAtLocation(i):this._depth[t][e]+=Ni.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===pe.INTERIOR&&this._depth[t][e]++}}getClass(){return Ni}get interfaces_(){return[]}}Ni.constructor_=function(){this._depth=Array(2).fill().map((()=>Array(3)));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=Ni.NULL_VALUE},Ni.NULL_VALUE=-1;class Pi{constructor(){Pi.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){m.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return Pi}get interfaces_(){return[]}}Pi.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class Fi extends Pi{constructor(){super(),Fi.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof fe&&arguments[0]instanceof Bi))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,Ei.ON),t.getLocation(1,Ei.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,Ei.LEFT),t.getLocation(1,Ei.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,Ei.RIGHT),t.getLocation(1,Ei.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new Fi(t,Bi.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof Fi))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,n=!0,r=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){Fi.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&3===this.pts.length&&!!this.pts[0].equals(this.pts[2])}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new Ri(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new M;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;et._quadrant?1:this._quadrant=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=r.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===pe.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var n=$.removeRepeatedPoints(t.getCoordinates());if(n.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=n[0],null;var r=e,s=i;Q.isCCW(n)&&(r=i,s=e);var o=new Fi(n,new Bi(this._argIndex,pe.BOUNDARY,r,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,n[0],pe.BOUNDARY)}insertPoint(t,e,i){var n=this._nodes.addNode(e),r=n.getLabel();null===r?n._label=new Bi(t,i):r.setLocation(t,i)}createEdgeSetIntersector(){return new Si}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.eiList.iterator();r.hasNext();){var s=r.next();this.addSelfIntersectionNode(t,s.coord,n)}}add(){if(!(1===arguments.length&&arguments[0]instanceof j))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof zt&&(this._useBoundaryDeterminationRule=!1),t instanceof Ut)this.addPolygon(t);else if(t instanceof Dt)this.addLineString(t);else if(t instanceof Qt)this.addPoint(t);else if(t instanceof qt)this.addCollection(t);else if(t instanceof xt)this.addCollection(t);else if(t instanceof zt)this.addCollection(t);else{if(!(t instanceof vt))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new Oe(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof Dt){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return Vi}get interfaces_(){return[]}}Vi.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new ne,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new Ii,2===arguments.length){let t=arguments[0],e=arguments[1];Vi.constructor_.call(this,t,e,X.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};var zi=Object.freeze({GeometryGraph:Vi});class Yi{constructor(){Yi.constructor_.apply(this,arguments)}visit(t){}getClass(){return Yi}get interfaces_(){return[]}}Yi.constructor_=function(){};class ji{constructor(){ji.constructor_.apply(this,arguments)}isRepeated(){return this._count>1}getRight(){return this._right}getCoordinate(){return this._p}setLeft(t){this._left=t}getX(){return this._p.x}getData(){return this._data}getCount(){return this._count}getLeft(){return this._left}getY(){return this._p.y}increment(){this._count=this._count+1}setRight(t){this._right=t}getClass(){return ji}get interfaces_(){return[]}}ji.constructor_=function(){if(this._p=null,this._data=null,this._left=null,this._right=null,this._count=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._p=new _(t),this._left=null,this._right=null,this._count=1,this._data=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._p=new _(t,e),this._left=null,this._right=null,this._count=1,this._data=i}};class Hi{constructor(){Hi.constructor_.apply(this,arguments)}static toCoordinates(){if(1===arguments.length){let t=arguments[0];return Hi.toCoordinates(t,!1)}if(2===arguments.length){let s=arguments[0],o=arguments[1];for(var t=new L,e=s.iterator();e.hasNext();)for(var i=e.next(),n=o?i.getCount():1,r=0;r0){var t=this.findBestMatchNode(e);if(null!==t)return t.increment(),t}return this.insertExact(e,i)}}query(){if(1===arguments.length){let e=arguments[0];var t=new b;return this.query(e,t),t}if(2===arguments.length)if(arguments[0]instanceof M&&I(arguments[1],x)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,new class{get interfaces_(){return[Yi]}visit(t){e.add(t)}})}else if(arguments[0]instanceof M&&I(arguments[1],Yi)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,e)}}queryNode(t,e,i,n){if(null===t)return null;var r=null,s=null,o=null;i?(r=e.getMinX(),s=e.getMaxX(),o=t.getX()):(r=e.getMinY(),s=e.getMaxY(),o=t.getY());var a=o<=s;r=e&&(t.getMinY()>=i&&(n=3),t.getMaxY()<=i&&(n=1)),t.getMaxX()<=e&&(t.getMinY()>=i&&(n=2),t.getMaxY()<=i&&(n=0)),n}hasChildren(){for(var t=0;t<4;t++)if(null!==this._subnode[t])return!0;return!1}isPrunable(){return!(this.hasChildren()||this.hasItems())}addAllItems(t){t.addAll(this._items);for(var e=0;e<4;e++)null!==this._subnode[e]&&this._subnode[e].addAllItems(t);return t}getNodeCount(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+1}size(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+this._items.size()}addAllItemsFromOverlapping(t,e){if(!this.isSearchMatch(t))return null;e.addAll(this._items);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].addAllItemsFromOverlapping(t,e)}visitItems(t,e){for(var i=this._items.iterator();i.hasNext();)e.visitItem(i.next())}hasItems(){return!this._items.isEmpty()}remove(t,e){if(!this.isSearchMatch(t))return!1;for(var i=!1,n=0;n<4;n++)if(null!==this._subnode[n]&&(i=this._subnode[n].remove(t,e))){this._subnode[n].isPrunable()&&(this._subnode[n]=null);break}return i||this._items.remove(e)}visit(t,e){if(!this.isSearchMatch(t))return null;this.visitItems(t,e);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].visit(t,e)}getItems(){return this._items}depth(){for(var t=0,e=0;e<4;e++)if(null!==this._subnode[e]){var i=this._subnode[e].depth();i>t&&(t=i)}return t+1}isEmpty(){var t=!0;if(this._items.isEmpty()){for(var e=0;e<4;e++)if(null!==this._subnode[e]&&!this._subnode[e].isEmpty()){t=!1;break}}else t=!1;return t}add(t){this._items.add(t)}getClass(){return Ki}get interfaces_(){return[A]}}function Ji(){}Ki.constructor_=function(){this._items=new b,this._subnode=new Array(4).fill(null)},Ji.exponent=function(t){return function(t,e){var i,n,r,s,o={32:8,64:11}[t];if(s||(i=e<0||1/e<0,isFinite(e)||(s={32:{d:127,c:128,b:0,a:0},64:{d:32752,c:0,b:0,a:0}}[t],i&&(s.d+=1<=2;)n++,r/=2;for(;r<1&&n>0;)n--,r*=2;n<=0&&(r/=2),32===t&&n>254&&(s={d:i?255:127,c:128,b:0,a:0},n=Math.pow(2,o)-1,r=0)}return n}(64,t)-1023},Ji.powerOf2=function(t){return Math.pow(2,t)};class Zi{constructor(){Zi.constructor_.apply(this,arguments)}static computeQuadLevel(t){var e=t.getWidth(),i=t.getHeight(),n=e>i?e:i;return Ji.exponent(n)+1}getLevel(){return this._level}computeKey(){if(1===arguments.length){let t=arguments[0];for(this._level=Zi.computeQuadLevel(t),this._env=new M,this.computeKey(this._level,t);!this._env.contains(t);)this._level+=1,this.computeKey(this._level,t)}else if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=Ji.powerOf2(e);this._pt.x=Math.floor(i.getMinX()/t)*t,this._pt.y=Math.floor(i.getMinY()/t)*t,this._env.init(this._pt.x,this._pt.x+t,this._pt.y,this._pt.y+t)}}getEnvelope(){return this._env}getCentre(){return new _((this._env.getMinX()+this._env.getMaxX())/2,(this._env.getMinY()+this._env.getMaxY())/2)}getPoint(){return this._pt}getClass(){return Zi}get interfaces_(){return[]}}Zi.constructor_=function(){this._pt=new _,this._level=0,this._env=null;let t=arguments[0];this.computeKey(t)};class $i extends Ki{constructor(){super(),$i.constructor_.apply(this,arguments)}static createNode(t){var e=new Zi(t);return new $i(e.getEnvelope(),e.getLevel())}static createExpanded(t,e){var i=new M(e);null!==t&&i.expandToInclude(t._env);var n=$i.createNode(i);return null!==t&&n.insertNode(t),n}find(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1===e?this:null!==this._subnode[e]?this._subnode[e].find(t):this}isSearchMatch(t){return null!==t&&this._env.intersects(t)}getSubnode(t){return null===this._subnode[t]&&(this._subnode[t]=this.createSubnode(t)),this._subnode[t]}getEnvelope(){return this._env}getNode(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1!==e?this.getSubnode(e).getNode(t):this}createSubnode(t){var e=0,i=0,n=0,r=0;switch(t){case 0:e=this._env.getMinX(),i=this._centrex,n=this._env.getMinY(),r=this._centrey;break;case 1:e=this._centrex,i=this._env.getMaxX(),n=this._env.getMinY(),r=this._centrey;break;case 2:e=this._env.getMinX(),i=this._centrex,n=this._centrey,r=this._env.getMaxY();break;case 3:e=this._centrex,i=this._env.getMaxX(),n=this._centrey,r=this._env.getMaxY()}var s=new M(e,i,n,r);return new $i(s,this._level-1)}insertNode(t){m.isTrue(null===this._env||this._env.contains(t._env));var e=Ki.getSubnodeIndex(t._env,this._centrex,this._centrey);if(t._level===this._level-1)this._subnode[e]=t;else{var i=this.createSubnode(e);i.insertNode(t),this._subnode[e]=i}}getClass(){return $i}get interfaces_(){return[]}}$i.constructor_=function(){this._env=null,this._centrex=null,this._centrey=null,this._level=null;let t=arguments[0],e=arguments[1];this._env=t,this._level=e,this._centrex=(t.getMinX()+t.getMaxX())/2,this._centrey=(t.getMinY()+t.getMaxY())/2};class tn{constructor(){tn.constructor_.apply(this,arguments)}static isZeroWidth(t,e){var i=e-t;if(0===i)return!0;var n=i/Math.max(Math.abs(t),Math.abs(e));return Ji.exponent(n)<=tn.MIN_BINARY_EXPONENT}getClass(){return tn}get interfaces_(){return[]}}tn.constructor_=function(){},tn.MIN_BINARY_EXPONENT=-50;class en extends Ki{constructor(){super(),en.constructor_.apply(this,arguments)}insert(t,e){var i=Ki.getSubnodeIndex(t,en.origin.x,en.origin.y);if(-1===i)return this.add(e),null;var n=this._subnode[i];if(null===n||!n.getEnvelope().contains(t)){var r=$i.createExpanded(n,t);this._subnode[i]=r}this.insertContained(this._subnode[i],t,e)}isSearchMatch(t){return!0}insertContained(t,e,i){m.isTrue(t.getEnvelope().contains(e));var n=tn.isZeroWidth(e.getMinX(),e.getMaxX()),r=tn.isZeroWidth(e.getMinY(),e.getMaxY());(n||r?t.find(e):t.getNode(e)).add(i)}getClass(){return en}get interfaces_(){return[]}}en.constructor_=function(){},en.origin=new _(0,0);class nn{constructor(){nn.constructor_.apply(this,arguments)}insert(t,e){}remove(t,e){}query(){}getClass(){return nn}get interfaces_(){return[]}}nn.constructor_=function(){};class rn{constructor(){rn.constructor_.apply(this,arguments)}static ensureExtent(t,e){var i=t.getMinX(),n=t.getMaxX(),r=t.getMinY(),s=t.getMaxY();return i!==n&&r!==s?t:(i===n&&(n=(i-=e/2)+e/2),r===s&&(s=(r-=e/2)+e/2),new M(i,n,r,s))}size(){return null!==this._root?this._root.size():0}insert(t,e){this.collectStats(t);var i=rn.ensureExtent(t,this._minExtent);this._root.insert(i,e)}query(){if(1===arguments.length){let e=arguments[0];var t=new Fe;return this.query(e,t),t.getItems()}if(2===arguments.length){let t=arguments[0],e=arguments[1];this._root.visit(t,e)}}queryAll(){var t=new b;return this._root.addAllItems(t),t}remove(t,e){var i=rn.ensureExtent(t,this._minExtent);return this._root.remove(i,e)}collectStats(t){var e=t.getWidth();e0&&(this._minExtent=e);var i=t.getHeight();i0&&(this._minExtent=i)}depth(){return null!==this._root?this._root.depth():0}isEmpty(){return null===this._root||this._root.isEmpty()}getClass(){return rn}get interfaces_(){return[nn,A]}}rn.constructor_=function(){this._root=null,this._minExtent=1,this._root=new en},rn.serialVersionUID=-0x678b60c967a25400;var sn=Object.freeze({Quadtree:rn});class on{constructor(){on.constructor_.apply(this,arguments)}getBounds(){}getClass(){return on}get interfaces_(){return[]}}on.constructor_=function(){};class an{constructor(){an.constructor_.apply(this,arguments)}getItem(){return this._item}getBounds(){return this._bounds}getClass(){return an}get interfaces_(){return[on,A]}}an.constructor_=function(){this._bounds=null,this._item=null;let t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};class ln{constructor(){ln.constructor_.apply(this,arguments)}poll(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t}size(){return this._size}reorder(t){for(var e=null,i=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(i)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,i)}clear(){this._size=0,this._items.clear()}peek(){return this.isEmpty()?null:this._items.get(1)}isEmpty(){return 0===this._size}add(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)}getClass(){return ln}get interfaces_(){return[]}}ln.constructor_=function(){this._size=null,this._items=null,this._size=0,this._items=new b,this._items.add(null)};class hn{constructor(){hn.constructor_.apply(this,arguments)}getLevel(){return this._level}size(){return this._childBoundables.size()}getChildBoundables(){return this._childBoundables}addChildBoundable(t){m.isTrue(null===this._bounds),this._childBoundables.add(t)}isEmpty(){return this._childBoundables.isEmpty()}getBounds(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds}getClass(){return hn}get interfaces_(){return[on,A]}}hn.constructor_=function(){if(this._childBoundables=new b,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._level=t}},hn.serialVersionUID=0x5a1e55ec41369800;class cn{constructor(){cn.constructor_.apply(this,arguments)}static area(t){return t.getBounds().getArea()}static isComposite(t){return t instanceof hn}expandToQueue(t,e){var n=cn.isComposite(this._boundable1),r=cn.isComposite(this._boundable2);if(n&&r)return cn.area(this._boundable1)>cn.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new i("neither boundable is composite")}isLeaves(){return!(cn.isComposite(this._boundable1)||cn.isComposite(this._boundable2))}compareTo(t){var e=t;return this._distancee._distance?1:0}expand(t,e,i,n){for(var r=t.getChildBoundables().iterator();r.hasNext();){var s=r.next(),o=new cn(s,e,this._itemDistance);o.getDistance()e?1:t-2),n.getLevel()===t)return r.add(n),null;for(var e=n.getChildBoundables().iterator();e.hasNext();){var i=e.next();i instanceof hn?this.boundablesAtLevel(t,i,r):(m.isTrue(i instanceof an),-1===t&&r.add(i))}return null}}query(){if(1===arguments.length){let e=arguments[0];this.build();var t=new b;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.queryInternal(e,this._root,t),t}if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.queryInternal(t,this._root,e)}}build(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0}getRoot(){return this.build(),this._root}remove(){if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.remove(t,this._root,e)}if(3===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2];var t=this.removeItem(s,o);if(t)return!0;for(var e=null,i=s.getChildBoundables().iterator();i.hasNext();){var n=i.next();if(this.getIntersectsOp().intersects(n.getBounds(),r)&&n instanceof hn&&(t=this.remove(r,n,o))){e=n;break}}return null!==e&&e.getChildBoundables().isEmpty()&&s.getChildBoundables().remove(e),t}}createHigherLevels(t,e){m.isTrue(!t.isEmpty());var i=this.createParentBoundables(t,e+1);return 1===i.size()?i.get(0):this.createHigherLevels(i,e+1)}depth(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var i=e.next();if(i instanceof hn){var n=this.depth(i);n>t&&(t=n)}}return t+1}}createParentBoundables(t,e){m.isTrue(!t.isEmpty());var i=new b;i.add(this.createNode(e));var n=new b(t);Te.sort(n,this.getComparator());for(var r=n.iterator();r.hasNext();){var s=r.next();this.lastNode(i).getChildBoundables().size()===this.getNodeCapacity()&&i.add(this.createNode(e)),this.lastNode(i).addChildBoundable(s)}return i}isEmpty(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}getClass(){return un}get interfaces_(){return[A]}}un.IntersectsOp=function(){},un.constructor_=function(){if(this._root=null,this._built=!1,this._itemBoundables=new b,this._nodeCapacity=null,0===arguments.length)un.constructor_.call(this,un.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];m.isTrue(t>1,"Node capacity must be greater than 1"),this._nodeCapacity=t}},un.serialVersionUID=-0x35ef64c82d4c5400,un.DEFAULT_NODE_CAPACITY=10;class gn{constructor(){gn.constructor_.apply(this,arguments)}distance(t,e){}getClass(){return gn}get interfaces_(){return[]}}gn.constructor_=function(){};class dn extends un{constructor(){super(),dn.constructor_.apply(this,arguments)}static centreX(t){return dn.avg(t.getMinX(),t.getMaxX())}static avg(t,e){return(t+e)/2}static getItems(t){for(var e=new Array(t.size()).fill(null),i=0;!t.isEmpty();){var n=t.poll();e[i]=n.getBoundable(0).getItem(),i++}return e}static centreY(t){return dn.avg(t.getMinY(),t.getMaxY())}createParentBoundablesFromVerticalSlices(t,e){m.isTrue(t.length>0);for(var i=new b,n=0;n0&&!((l=(a=s.poll()).getDistance())>=e);)a.isLeaves()?(e=l,i=a):a.expandToQueue(s,e);return[i.getBoundable(0).getItem(),i.getBoundable(1).getItem()]}if(arguments[0]instanceof cn&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1];return this.nearestNeighbour(t,r.POSITIVE_INFINITY,e)}}else if(3===arguments.length){if(I(arguments[2],gn)&&arguments[0]instanceof M&&arguments[1]instanceof Object){let e=arguments[2];var n=new an(arguments[0],arguments[1]);return t=new cn(this.getRoot(),n,e),this.nearestNeighbour(t)[0]}if(Number.isInteger(arguments[2])&&arguments[0]instanceof cn&&"number"==typeof arguments[1]){let t=arguments[0],i=arguments[2];var s;e=arguments[1],(s=new ln).add(t);for(var o=new ln;!s.isEmpty()&&e>=0;){var a,l;if((l=(a=s.poll()).getDistance())>=e)break;a.isLeaves()?o.size()l&&(o.poll(),o.add(a)),e=o.peek().getDistance()):a.expandToQueue(s,e)}return dn.getItems(o)}}else if(4===arguments.length){let e=arguments[2],i=arguments[3];return n=new an(arguments[0],arguments[1]),t=new cn(this.getRoot(),n,e),this.nearestNeighbour(t,i)}}getClass(){return dn}get interfaces_(){return[nn,A]}}class An extends hn{constructor(){super(),An.constructor_.apply(this,arguments)}computeBounds(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var i=e.next();null===t?t=new M(i.getBounds()):t.expandToInclude(i.getBounds())}return t}getClass(){return An}get interfaces_(){return[]}}An.constructor_=function(){let t=arguments[0];hn.constructor_.call(this,t)},dn.STRtreeNode=An,dn.constructor_=function(){if(0===arguments.length)dn.constructor_.call(this,dn.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];un.constructor_.call(this,t)}},dn.serialVersionUID=0x39920f7d5f261e0,dn.xComparator=new class{get interfaces_(){return[d]}compare(t,e){return un.compareDoubles(dn.centreX(t.getBounds()),dn.centreX(e.getBounds()))}},dn.yComparator=new class{get interfaces_(){return[d]}compare(t,e){return un.compareDoubles(dn.centreY(t.getBounds()),dn.centreY(e.getBounds()))}},dn.intersectsOp=new class{get interfaces_(){return[IntersectsOp]}intersects(t,e){return t.intersects(e)}},dn.DEFAULT_NODE_CAPACITY=10;var pn=Object.freeze({STRtree:dn}),fn=Object.freeze({kdtree:Wi,quadtree:sn,strtree:pn});const mn=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"];class _n{constructor(t){this.geometryFactory=t||new oe}read(t){let e;const i=(e="string"==typeof t?JSON.parse(t):t).type;if(!yn[i])throw new Error("Unknown GeoJSON type: "+e.type);return-1!==mn.indexOf(i)?yn[i].call(this,e.coordinates):"GeometryCollection"===i?yn[i].call(this,e.geometries):yn[i].call(this,e)}write(t){const e=t.getGeometryType();if(!In[e])throw new Error("Geometry is not supported");return In[e].call(this,t)}}const yn={Feature:function(t){const e={};for(let i in t)e[i]=t[i];if(t.geometry){const i=t.geometry.type;if(!yn[i])throw new Error("Unknown GeoJSON type: "+t.type);e.geometry=this.read(t.geometry)}return t.bbox&&(e.bbox=yn.bbox.call(this,t.bbox)),e},FeatureCollection:function(t){const e={};if(t.features){e.features=[];for(let i=0;ie?1:0}static compare(t,e,i){if(e.equals2D(i))return 0;var n=vn.relativeSign(e.x,i.x),r=vn.relativeSign(e.y,i.y);switch(t){case 0:return vn.compareValue(n,r);case 1:return vn.compareValue(r,n);case 2:return vn.compareValue(r,-n);case 3:return vn.compareValue(-n,r);case 4:return vn.compareValue(-n,-r);case 5:return vn.compareValue(-r,-n);case 6:return vn.compareValue(-r,n);case 7:return vn.compareValue(n,-r)}return m.shouldNeverReachHere("invalid octant value"),0}static compareValue(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0}getClass(){return vn}get interfaces_(){return[]}}vn.constructor_=function(){};class xn{constructor(){xn.constructor_.apply(this,arguments)}getCoordinate(){return this.coord}print(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)}compareTo(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:vn.compare(this._segmentOctant,this.coord,e.coord)}isEndPoint(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t}isInterior(){return this._isInterior}getClass(){return xn}get interfaces_(){return[u]}}xn.constructor_=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this._segString=t,this.coord=new _(e),this.segmentIndex=i,this._segmentOctant=n,this._isInterior=!e.equals2D(t.getCoordinate(i))};class wn{constructor(){wn.constructor_.apply(this,arguments)}getSplitCoordinates(){var t=new L;this.addEndpoints();for(var e=this.iterator(),i=e.next();e.hasNext();){var n=e.next();this.addEdgeCoordinates(i,n,t),i=n}return t.toCoordinateArray()}addCollapsedNodes(){var t=new b;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var i=e.next().intValue();this.add(this._edge.getCoordinate(i),i)}}print(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();)e.next().print(t)}findCollapsesFromExistingVertices(t){for(var e=0;e=0?r>=0?t>=e?0:1:t>=e?7:6:r>=0?t>=e?3:2:t>=e?4:5}if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];var n=e.x-t.x,r=e.y-t.y;if(0===n&&0===r)throw new i("Cannot compute the octant for two identical points "+t);return Sn.octant(n,r)}}getClass(){return Sn}get interfaces_(){return[]}}Sn.constructor_=function(){};class bn{constructor(){bn.constructor_.apply(this,arguments)}getCoordinates(){}size(){}getCoordinate(t){}isClosed(){}setData(t){}getData(){}getClass(){return bn}get interfaces_(){return[]}}bn.constructor_=function(){};class Bn{constructor(){Bn.constructor_.apply(this,arguments)}addIntersection(t,e){}getClass(){return Bn}get interfaces_(){return[bn]}}Bn.constructor_=function(){};class Ln{constructor(){Ln.constructor_.apply(this,arguments)}static getNodedSubstrings(){if(1===arguments.length){let e=arguments[0];var t=new b;return Ln.getNodedSubstrings(e,t),t}if(2===arguments.length){let t=arguments[1];for(var e=arguments[0].iterator();e.hasNext();)e.next().getNodeList().addSplitEdges(t)}}getCoordinates(){return this._pts}size(){return this._pts.length}getCoordinate(t){return this._pts[t]}isClosed(){return this._pts[0].equals(this._pts[this._pts.length-1])}getSegmentOctant(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))}setData(t){this._data=t}safeOctant(t,e){return t.equals2D(e)?0:Sn.octant(t,e)}getData(){return this._data}addIntersection(){if(2===arguments.length){let t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){let e=arguments[1],i=arguments[3];var t=new _(arguments[0].getIntersection(i));this.addIntersection(t,e)}}toString(){return ue.toLineString(new Kt(this._pts))}getNodeList(){return this._nodeList}addIntersectionNode(t,e){var i=e,n=i+1;if(n=t.length-1)return t.length-1;for(var n=gi.quadrant(t[i],t[i+1]),r=e+1;ri.getId()&&(i.computeOverlaps(r,t),this._nOverlaps++),this._segInt.isDone())return null}}getClass(){return Fn}get interfaces_(){return[]}}class Dn extends Mn{constructor(){super(),Dn.constructor_.apply(this,arguments)}overlap(){if(4!==arguments.length)return super.overlap.apply(this,arguments);{let i=arguments[1],n=arguments[2],r=arguments[3];var t=arguments[0].getContext(),e=n.getContext();this._si.processIntersections(t,i,e,r)}}getClass(){return Dn}get interfaces_(){return[]}}Dn.constructor_=function(){this._si=null;let t=arguments[0];this._si=t},Fn.SegmentOverlapAction=Dn,Fn.constructor_=function(){if(this._monoChains=new b,this._index=new dn,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];Pn.constructor_.call(this,t)}};class On{constructor(){On.constructor_.apply(this,arguments)}rescale(){if(I(arguments[0],C))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.rescale(e.getCoordinates())}else if(arguments[0]instanceof Array){let e=arguments[0];for(2===e.length&&(new _(e[0]),new _(e[1])),t=0;t0&&this._minIndexthis._minCoord.y&&i.y>this._minCoord.y&&n===Q.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)}getRightmostSideOfSegment(t,e){var i=t.getEdge().getCoordinates();if(e<0||e+1>=i.length)return-1;if(i[e].y===i[e+1].y)return-1;var n=Ei.LEFT;return i[e].ythis._minCoord.x)&&(this._minDe=t,this._minIndex=i,this._minCoord=e[i])}findRightmostEdgeAtNode(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}findEdge(t){for(var e=t.iterator();e.hasNext();){var i=e.next();i.isForward()&&this.checkForRightmostCoordinate(i)}m.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===Ei.LEFT&&(this._orientedDe=this._minDe.getSym())}getClass(){return qn}get interfaces_(){return[]}}function Vn(){this.array_=[]}qn.constructor_=function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null},Vn.prototype.addLast=function(t){this.array_.push(t)},Vn.prototype.removeFirst=function(){return this.array_.shift()},Vn.prototype.isEmpty=function(){return 0===this.array_.length};class zn{constructor(){zn.constructor_.apply(this,arguments)}clearVisitedEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();)t.next().setVisited(!1)}getRightmostCoordinate(){return this._rightMostCoord}computeNodeDepth(t){for(var e=null,i=t.getEdges().iterator();i.hasNext();)if((n=i.next()).isVisited()||n.getSym().isVisited()){e=n;break}if(null===e)throw new ki("unable to find edge to compute depths at "+t.getCoordinate());for(t.getEdges().computeDepths(e),i=t.getEdges().iterator();i.hasNext();){var n;(n=i.next()).setVisited(!0),this.copySymDepths(n)}}computeDepth(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.getNode(),e.getLabel(),e.setEdgeDepths(Ei.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)}create(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}findResultEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(Ei.RIGHT)>=1&&e.getDepth(Ei.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}}computeDepths(t){var e=new st,i=new Vn,n=t.getNode();for(i.addLast(n),e.add(n),t.setVisited(!0);!i.isEmpty();){var r=i.removeFirst();e.add(r),this.computeNodeDepth(r);for(var s=r.getEdges().iterator();s.hasNext();){var o=s.next().getSym();if(!o.isVisited()){var a=o.getNode();e.contains(a)||(i.addLast(a),e.add(a))}}}}compareTo(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0}getEnvelope(){if(null===this._env){for(var t=new M,e=this._dirEdgeList.iterator();e.hasNext();)for(var i=e.next().getEdge().getCoordinates(),n=0;nthis._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2}addPoints(t,e,i){var n=t.getCoordinates();if(e){var r=1;i&&(r=0);for(var s=r;s=0;s--)this._pts.add(n[s])}isHole(){return this._isHole}setInResult(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)}containsPoint(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!Ge.isInRing(t,e.getCoordinates()))return!1;for(var i=this._holes.iterator();i.hasNext();)if(i.next().containsPoint(t))return!1;return!0}addHole(t){this._holes.add(t)}isShell(){return null===this._shell}getLabel(){return this._label}getEdges(){return this._edges}getMaxNodeDegree(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree}getShell(){return this._shell}mergeLabel(){if(1===arguments.length){let t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){let e=arguments[1];var t=arguments[0].getLocation(e,Ei.RIGHT);if(t===pe.NONE)return null;if(this._label.getLocation(e)===pe.NONE)return this._label.setLocation(e,t),null}}setShell(t){this._shell=t,null!==t&&t.addHole(this)}toPolygon(t){for(var e=new Array(this._holes.size()).fill(null),i=0;i2){s.linkDirectedEdgesForMinimalEdgeRings();var o=s.buildMinimalRings(),a=this.findShell(o);null!==a?(this.placePolygonHoles(a,o),e.add(a)):i.addAll(o)}else n.add(s)}return n}containsPoint(t){for(var e=this._shellList.iterator();e.hasNext();)if(e.next().containsPoint(t))return!0;return!1}buildMaximalEdgeRings(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next();if(n.isInResult()&&n.getLabel().isArea()&&null===n.getEdgeRing()){var r=new Hn(n,this._geometryFactory);e.add(r),r.setInResult()}}return e}placePolygonHoles(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next();n.isHole()&&n.setShell(t)}}getPolygons(){return this.computePolygons(this._shellList)}findEdgeRingContaining(t,e){for(var i=t.getLinearRing(),n=i.getEnvelopeInternal(),r=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getLinearRing(),c=h.getEnvelopeInternal();null!==s&&(o=s.getLinearRing().getEnvelopeInternal());var u=!1;c.contains(n)&&Ge.isInRing(r,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(s=l)}return s}findShell(t){for(var e=0,i=null,n=t.iterator();n.hasNext();){var r=n.next();r.isHole()||(i=r,e++)}return m.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),i}add(){if(1===arguments.length){let t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){let n=arguments[0],r=arguments[1];qi.linkResultDirectedEdges(r);var t=this.buildMaximalEdgeRings(n),e=new b,i=this.buildMinimalEdgeRings(t,this._shellList,e);this.sortShellsAndHoles(i,this._shellList,e),this.placeFreeHoles(this._shellList,e)}}getClass(){return Xn}get interfaces_(){return[]}}Xn.constructor_=function(){this._geometryFactory=null,this._shellList=new b;let t=arguments[0];this._geometryFactory=t};class Wn{constructor(){Wn.constructor_.apply(this,arguments)}static simplify(t,e){return new Wn(t).simplify(e)}isDeletable(t,e,i,n){var r=this._inputLine[t],s=this._inputLine[e],o=this._inputLine[i];return!!this.isConcave(r,s,o)&&!!this.isShallow(r,s,o,n)&&this.isShallowSampled(r,s,t,i,n)}deleteShallowConcavities(){for(var t=1,e=(this._inputLine.length,this.findNextNonDeletedIndex(t)),i=this.findNextNonDeletedIndex(e),n=!1;i=0;i--)this.addPt(t[i])}isRedundant(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)=2&&this._ptList.get(this._ptList.size()-2),t.equals(e))return null;this._ptList.add(t)}setMinimumVertexDistance(t){this._minimimVertexDistance=t}getClass(){return Kn}get interfaces_(){return[]}}Kn.constructor_=function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new b},Kn.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);class Jn{constructor(){Jn.constructor_.apply(this,arguments)}addNextSegment(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var i=Q.index(this._s0,this._s1,this._s2),n=i===Q.CLOCKWISE&&this._side===Ei.LEFT||i===Q.COUNTERCLOCKWISE&&this._side===Ei.RIGHT;0===i?this.addCollinear(e):n?this.addOutsideTurn(i,e):this.addInsideTurn(i,e)}addLineEndCap(t,e){var i=new Ae(t,e),n=new Ae;this.computeOffsetSegment(i,Ei.LEFT,this._distance,n);var r=new Ae;this.computeOffsetSegment(i,Ei.RIGHT,this._distance,r);var s=e.x-t.x,o=e.y-t.y,a=Math.atan2(o,s);switch(this._bufParams.getEndCapStyle()){case Un.CAP_ROUND:this._segList.addPt(n.p1),this.addDirectedFillet(e,a+Math.PI/2,a-Math.PI/2,Q.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case Un.CAP_FLAT:this._segList.addPt(n.p1),this._segList.addPt(r.p1);break;case Un.CAP_SQUARE:var l=new _;l.x=Math.abs(this._distance)*Math.cos(a),l.y=Math.abs(this._distance)*Math.sin(a);var h=new _(n.p1.x+l.x,n.p1.y+l.y),c=new _(r.p1.x+l.x,r.p1.y+l.y);this._segList.addPt(h),this._segList.addPt(c)}}getCoordinates(){return this._segList.getCoordinates()}addMitreJoin(t,e,i,n){var r=!0,s=null;try{s=G.intersection(e.p0,e.p1,i.p0,i.p1),(n<=0?1:s.distance(t)/Math.abs(n))>this._bufParams.getMitreLimit()&&(r=!1)}catch(t){if(!(t instanceof R))throw t;s=new _(0,0),r=!1}r?this._segList.addPt(s):this.addLimitedMitreJoin(e,i,n,this._bufParams.getMitreLimit())}addOutsideTurn(t,e){if(this._offset0.p1.distance(this._offset1.p0)=c&&(a-=2*Math.PI),this._segList.addPt(e),this.addDirectedFillet(t,a,c,n,r),this._segList.addPt(i)}addLastSegment(){this._segList.addPt(this._offset1.p1)}initSideSegments(t,e,i){this._s1=t,this._s2=e,this._side=i,this._seg1.setCoordinates(t,e),this.computeOffsetSegment(this._seg1,i,this._distance,this._offset1)}addLimitedMitreJoin(t,e,i,n){var r=this._seg0.p1,s=me.angle(r,this._seg0.p0),o=(me.angle(r,this._seg1.p1),me.angleBetweenOriented(this._seg0.p0,r,this._seg1.p1)/2),a=me.normalize(s+o),l=me.normalize(a+Math.PI),h=n*i,c=i-h*Math.abs(Math.sin(o)),u=r.x+h*Math.cos(l),g=r.y+h*Math.sin(l),d=new _(u,g),A=new Ae(r,d),p=A.pointAlongOffset(1,c),f=A.pointAlongOffset(1,-c);this._side===Ei.LEFT?(this._segList.addPt(p),this._segList.addPt(f)):(this._segList.addPt(f),this._segList.addPt(p))}addDirectedFillet(t,e,i,n,r){var s,o=n===Q.CLOCKWISE?-1:1,a=Math.abs(e-i),l=Math.trunc(a/this._filletAngleQuantum+.5);if(l<1)return null;s=a/l;for(var h=0,c=new _;h0){var i=new _((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i);var n=new _((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}createCircle(t){var e=new _(t.x+this._distance,t.y);this._segList.addPt(e),this.addDirectedFillet(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}addBevelJoin(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)}init(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Kn,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Jn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}addCollinear(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===Un.JOIN_BEVEL||this._bufParams.getJoinStyle()===Un.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,Q.CLOCKWISE,this._distance))}closeRing(){this._segList.closeRing()}hasNarrowConcaveAngle(){return this._hasNarrowConcaveAngle}getClass(){return Jn}get interfaces_(){return[]}}Jn.constructor_=function(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new Ae,this._seg1=new Ae,this._offset0=new Ae,this._offset1=new Ae,this._side=0,this._hasNarrowConcaveAngle=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._precisionModel=t,this._bufParams=e,this._li=new de,this._filletAngleQuantum=Math.PI/2/e.getQuadrantSegments(),e.getQuadrantSegments()>=8&&e.getJoinStyle()===Un.JOIN_ROUND&&(this._closingSegLengthFactor=Jn.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)},Jn.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,Jn.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,Jn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,Jn.MAX_CLOSING_SEG_LEN_FACTOR=80;class Zn{constructor(){Zn.constructor_.apply(this,arguments)}static copyCoordinates(t){for(var e=new Array(t.length).fill(null),i=0;i=0;o--)i.addNextSegment(r[o],!0)}else{i.addSegments(t,!1);var a=Wn.simplify(t,n),l=a.length-1;for(i.initSideSegments(a[0],a[1],Ei.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment(),i.closeRing()}computeRingBufferCurve(t,e,i){var n=this.simplifyTolerance(this._distance);e===Ei.RIGHT&&(n=-n);var r=Wn.simplify(t,n),s=r.length-1;i.initSideSegments(r[s-1],r[0],e);for(var o=1;o<=s;o++){var a=1!==o;i.addNextSegment(r[o],a)}i.closeRing()}computeLineBufferCurve(t,e){var i=this.simplifyTolerance(this._distance),n=Wn.simplify(t,i),r=n.length-1;e.initSideSegments(n[0],n[1],Ei.LEFT);for(var s=2;s<=r;s++)e.addNextSegment(n[s],!0);e.addLastSegment(),e.addLineEndCap(n[r-1],n[r]);var o=Wn.simplify(t,-i),a=o.length-1;for(e.initSideSegments(o[a],o[a-1],Ei.LEFT),s=a-2;s>=0;s--)e.addNextSegment(o[s],!0);e.addLastSegment(),e.addLineEndCap(o[1],o[0]),e.closeRing()}computePointCurve(t,e){switch(this._bufParams.getEndCapStyle()){case Un.CAP_ROUND:e.createCircle(t);break;case Un.CAP_SQUARE:e.createSquare(t)}}getLineCurve(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var i=Math.abs(e),n=this.getSegGen(i);if(t.length<=1)this.computePointCurve(t[0],n);else if(this._bufParams.isSingleSided()){var r=e<0;this.computeSingleSidedBufferCurve(t,r,n)}else this.computeLineBufferCurve(t,n);return n.getCoordinates()}getBufferParameters(){return this._bufParams}simplifyTolerance(t){return t*this._bufParams.getSimplifyFactor()}getRingCurve(t,e,i){if(this._distance=i,t.length<=2)return this.getLineCurve(t,i);if(0===i)return Zn.copyCoordinates(t);var n=this.getSegGen(i);return this.computeRingBufferCurve(t,e,n),n.getCoordinates()}computeOffsetCurve(t,e,i){var n=this.simplifyTolerance(this._distance);if(e){var r=Wn.simplify(t,-n),s=r.length-1;i.initSideSegments(r[s],r[s-1],Ei.LEFT),i.addFirstSegment();for(var o=s-2;o>=0;o--)i.addNextSegment(r[o],!0)}else{var a=Wn.simplify(t,n),l=a.length-1;for(i.initSideSegments(a[0],a[1],Ei.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment()}getSegGen(t){return new Jn(this._precisionModel,this._bufParams,t)}getClass(){return Zn}get interfaces_(){return[]}}Zn.constructor_=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;let t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};class $n{constructor(){$n.constructor_.apply(this,arguments)}findStabbedSegments(){if(1===arguments.length){let r=arguments[0];for(var t=new b,e=this._subgraphs.iterator();e.hasNext();){var i=e.next(),n=i.getEnvelope();r.yn.getMaxY()||this.findStabbedSegments(r,i.getDirectedEdges(),t)}return t}if(3===arguments.length)if(I(arguments[2],x)&&arguments[0]instanceof _&&arguments[1]instanceof Gi){let t=arguments[0],i=arguments[1],n=arguments[2];var r=i.getEdge().getCoordinates();for(e=0;ethis._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||Q.index(this._seg.p0,this._seg.p1,t)===Q.RIGHT)){var s=i.getDepth(Ei.LEFT);this._seg.p0.equals(r[e])||(s=i.getDepth(Ei.RIGHT));var o=new tr(this._seg,s);n.add(o)}}else if(I(arguments[2],x)&&arguments[0]instanceof _&&I(arguments[1],x)){let t=arguments[0],i=arguments[2];for(e=arguments[1].iterator();e.hasNext();){var a=e.next();a.isForward()&&this.findStabbedSegments(t,a,i)}}}getDepth(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:Te.min(e)._leftDepth}getClass(){return $n}get interfaces_(){return[]}}class tr{constructor(){tr.constructor_.apply(this,arguments)}compareTo(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var i=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==i||0!=(i=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?i:this._upwardSeg.compareTo(e._upwardSeg)}compareX(t,e){var i=t.p0.compareTo(e.p0);return 0!==i?i:t.p1.compareTo(e.p1)}toString(){return this._upwardSeg.toString()}getClass(){return tr}get interfaces_(){return[u]}}tr.constructor_=function(){this._upwardSeg=null,this._leftDepth=null;let t=arguments[0],e=arguments[1];this._upwardSeg=new Ae(t),this._leftDepth=e},$n.DepthSegment=tr,$n.constructor_=function(){this._subgraphs=null,this._seg=new Ae;let t=arguments[0];this._subgraphs=t};class er{constructor(){er.constructor_.apply(this,arguments)}addPoint(t){if(this._distance<=0)return null;var e=t.getCoordinates(),i=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(i,pe.EXTERIOR,pe.INTERIOR)}addPolygon(t){var e=this._distance,i=Ei.LEFT;this._distance<0&&(e=-this._distance,i=Ei.RIGHT);var n=t.getExteriorRing(),r=$.removeRepeatedPoints(n.getCoordinates());if(this._distance<0&&this.isErodedCompletely(n,this._distance))return null;if(this._distance<=0&&r.length<3)return null;this.addPolygonRing(r,e,i,pe.EXTERIOR,pe.INTERIOR);for(var s=0;s0&&this.isErodedCompletely(o,-this._distance)||this.addPolygonRing(a,e,Ei.opposite(i),pe.INTERIOR,pe.EXTERIOR)}}isTriangleErodedCompletely(t,e){var i=new _e(t[0],t[1],t[2]),n=i.inCentre();return q.pointToSegment(n,i.p0,i.p1)=Vt.MINIMUM_VALID_SIZE&&Q.isCCW(t)&&(s=r,o=n,i=Ei.opposite(i));var a=this._curveBuilder.getRingCurve(t,i,e);this.addCurve(a,s,o)}add(t){if(t.isEmpty())return null;if(t instanceof Ut)this.addPolygon(t);else if(t instanceof Dt)this.addLineString(t);else if(t instanceof Qt)this.addPoint(t);else if(t instanceof qt)this.addCollection(t);else if(t instanceof xt)this.addCollection(t);else if(t instanceof zt)this.addCollection(t);else{if(!(t instanceof vt))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}isErodedCompletely(t,e){var i=t.getCoordinates();if(i.length<4)return e<0;if(4===i.length)return this.isTriangleErodedCompletely(i,e);var n=t.getEnvelopeInternal(),r=Math.min(n.getHeight(),n.getWidth());return e<0&&2*Math.abs(e)>r}addCollection(t){for(var e=0;e=0;i--){var n=this._edgeList.get(i),r=n.getSym();null===e&&(e=r),null!==t&&r.setNext(t),t=n}e.setNext(t)}computeDepths(){if(1===arguments.length){let r=arguments[0];var t=this.findIndex(r),e=(r.getLabel(),r.getDepth(Ei.LEFT)),i=r.getDepth(Ei.RIGHT),n=this.computeDepths(t+1,this._edgeList.size(),e);if(this.computeDepths(0,t,n)!==i)throw new ki("depth mismatch at "+r.getCoordinate())}else if(3===arguments.length){let t=arguments[1];for(var r=arguments[2],s=arguments[0];s=0;r--){var s=this._resultAreaEdgeList.get(r),o=s.getSym();switch(null===e&&s.getEdgeRing()===t&&(e=s),n){case this._SCANNING_FOR_INCOMING:if(o.getEdgeRing()!==t)continue;i=o,n=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;i.setNextMin(s),n=this._SCANNING_FOR_INCOMING}}n===this._LINKING_TO_OUTGOING&&(m.isTrue(null!==e,"found null for first outgoing dirEdge"),m.isTrue(e.getEdgeRing()===t,"unable to link last incoming dirEdge"),i.setNextMin(e))}getOutgoingDegree(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();)e.next().isInResult()&&t++;return t}if(1===arguments.length){let i=arguments[0];for(t=0,e=this.iterator();e.hasNext();)e.next().getEdgeRing()===i&&t++;return t}}getLabel(){return this._label}findCoveredLineEdges(){for(var t=pe.NONE,e=this.iterator();e.hasNext();){var i=(r=e.next()).getSym();if(!r.isLineEdge()){if(r.isInResult()){t=pe.INTERIOR;break}if(i.isInResult()){t=pe.EXTERIOR;break}}}if(t===pe.NONE)return null;var n=t;for(e=this.iterator();e.hasNext();){var r;i=(r=e.next()).getSym(),r.isLineEdge()?r.getEdge().setCovered(n===pe.INTERIOR):(r.isInResult()&&(n=pe.EXTERIOR),i.isInResult()&&(n=pe.INTERIOR))}}computeLabelling(t){super.computeLabelling.call(this,t),this._label=new Bi(pe.NONE);for(var e=this.iterator();e.hasNext();)for(var i=e.next().getEdge().getLabel(),n=0;n<2;n++){var r=i.getLocation(n);r!==pe.INTERIOR&&r!==pe.BOUNDARY||this._label.setLocation(n,pe.INTERIOR)}}getClass(){return nr}get interfaces_(){return[]}}nr.constructor_=function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2};class rr extends Ui{constructor(){super(),rr.constructor_.apply(this,arguments)}createNode(t){return new Di(t,new nr)}getClass(){return rr}get interfaces_(){return[]}}rr.constructor_=function(){};class sr{constructor(){sr.constructor_.apply(this,arguments)}static orientation(t){return 1===$.increasingDirection(t)}static compareOriented(t,e,i,n){for(var r=e?1:-1,s=n?1:-1,o=e?t.length:-1,a=n?i.length:-1,l=e?0:t.length-1,h=n?0:i.length-1;;){var c=t[l].compareTo(i[h]);if(0!==c)return c;var u=(l+=r)===o,g=(h+=s)===a;if(u&&!g)return-1;if(!u&&g)return 1;if(u&&g)return 0}}compareTo(t){var e=t;return sr.compareOriented(this._pts,this._orientation,e._pts,e._orientation)}getClass(){return sr}get interfaces_(){return[u]}}sr.constructor_=function(){this._pts=null,this._orientation=null;let t=arguments[0];this._pts=t,this._orientation=sr.orientation(t)};class or{constructor(){or.constructor_.apply(this,arguments)}print(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var n=i.getCoordinates(),r=0;r0&&t.print(","),t.print(n[r].x+" "+n[r].y);t.println(")")}t.print(") ")}addAll(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())}findEdgeIndex(t){for(var e=0;en||this._maxys;if(o)return!1;var a=this.intersectsToleranceSquare(t,e);return m.isTrue(!(o&&a),"Found bad envelope test"),a}initCorners(t){this._minx=t.x-.5,this._maxx=t.x+.5,this._miny=t.y-.5,this._maxy=t.y+.5,this._corner[0]=new _(this._maxx,this._maxy),this._corner[1]=new _(this._minx,this._maxy),this._corner[2]=new _(this._minx,this._miny),this._corner[3]=new _(this._maxx,this._miny)}intersects(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}scale(t){return Math.round(t*this._scaleFactor)}getCoordinate(){return this._originalPt}copyScaled(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)}getSafeEnvelope(){if(null===this._safeEnv){var t=ur.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new M(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv}intersectsPixelClosure(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.hasIntersection()))))}intersectsToleranceSquare(t,e){var i=!1,n=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.isProper()||i&&n||t.equals(this._pt)||e.equals(this._pt)))))}addSnappedNode(t,e){var i=t.getCoordinate(e),n=t.getCoordinate(e+1);return!!this.intersects(i,n)&&(t.addIntersection(this.getCoordinate(),e),!0)}getClass(){return ur}get interfaces_(){return[]}}ur.constructor_=function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;let t=arguments[0],e=arguments[1],n=arguments[2];if(this._originalPt=t,this._pt=t,this._scaleFactor=e,this._li=n,e<=0)throw new i("Scale factor must be non-zero");1!==e&&(this._pt=new _(this.scale(t.x),this.scale(t.y)),this._p0Scaled=new _,this._p1Scaled=new _),this.initCorners(this._pt)},ur.SAFE_ENV_EXPANSION_FACTOR=.75;class gr{constructor(){gr.constructor_.apply(this,arguments)}select(){if(1===arguments.length);else if(2===arguments.length){let t=arguments[1];arguments[0].getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}getClass(){return gr}get interfaces_(){return[]}}gr.constructor_=function(){this.selectedSegment=new Ae};class dr{constructor(){dr.constructor_.apply(this,arguments)}snap(){if(1===arguments.length){let t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){let i=arguments[0],n=arguments[1],r=arguments[2];var t=i.getSafeEnvelope(),e=new Ar(i,n,r);return this._index.query(t,new class{get interfaces_(){return[Se]}visitItem(i){i.select(t,e)}}),e.isNodeAdded()}}getClass(){return dr}get interfaces_(){return[]}}class Ar extends gr{constructor(){super(),Ar.constructor_.apply(this,arguments)}isNodeAdded(){return this._isNodeAdded}select(){if(!(2===arguments.length&&Number.isInteger(arguments[1])&&arguments[0]instanceof Tn))return super.select.apply(this,arguments);{let e=arguments[1];var t=arguments[0].getContext();if(null!==this._parentEdge&&t===this._parentEdge&&e===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(t,e)}}getClass(){return Ar}get interfaces_(){return[]}}Ar.constructor_=function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._hotPixel=t,this._parentEdge=e,this._hotPixelVertexIndex=i},dr.HotPixelSnapAction=Ar,dr.constructor_=function(){this._index=null;let t=arguments[0];this._index=t};class pr{constructor(){pr.constructor_.apply(this,arguments)}processIntersections(t,e,i,n){if(t===i&&e===n)return null;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[n],a=i.getCoordinates()[n+1];if(this._li.computeIntersection(r,s,o,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var l=0;l0?e:0),s=i-Math.trunc(Math.log(r)/Math.log(10)+1);return Math.pow(10,s)}bufferFixedPrecision(t){var e=new On(new fr(new re(1)),t.getScale()),i=new hr(this._bufParams);i.setWorkingPrecisionModel(t),i.setNoder(e),this._resultGeometry=i.buffer(this._argGeom,this._distance)}bufferReducedPrecision(){if(0===arguments.length){for(var t=mr.MAX_PRECISION_DIGITS;t>=0;t--){try{this.bufferReducedPrecision(t)}catch(t){if(!(t instanceof ki))throw t;this._saveException=t}if(null!==this._resultGeometry)return null}throw this._saveException}if(1===arguments.length){let t=arguments[0];var e=mr.precisionScaleFactor(this._argGeom,this._distance,t),i=new re(e);this.bufferFixedPrecision(i)}}computeGeometry(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===re.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()}setQuadrantSegments(t){this._bufParams.setQuadrantSegments(t)}bufferOriginalPrecision(){try{var t=new hr(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof p))throw t;this._saveException=t}}getResultGeometry(t){return this._distance=t,this.computeGeometry(),this._resultGeometry}setEndCapStyle(t){this._bufParams.setEndCapStyle(t)}getClass(){return mr}get interfaces_(){return[]}}mr.constructor_=function(){if(this._argGeom=null,this._distance=null,this._bufParams=new Un,this._resultGeometry=null,this._saveException=null,1===arguments.length){let t=arguments[0];this._argGeom=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._argGeom=t,this._bufParams=e}},mr.CAP_ROUND=Un.CAP_ROUND,mr.CAP_BUTT=Un.CAP_FLAT,mr.CAP_FLAT=Un.CAP_FLAT,mr.CAP_SQUARE=Un.CAP_SQUARE,mr.MAX_PRECISION_DIGITS=12;var _r=Object.freeze({BufferOp:mr,BufferParameters:Un});class yr{constructor(){yr.constructor_.apply(this,arguments)}static getPolygons(){if(1===arguments.length){let t=arguments[0];return yr.getPolygons(t,new b)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof Ut?e.add(t):t instanceof vt&&t.apply(new yr(e)),e}}filter(t){t instanceof Ut&&this._comps.add(t)}getClass(){return yr}get interfaces_(){return[Et]}}yr.constructor_=function(){this._comps=null;let t=arguments[0];this._comps=t};class Ir{constructor(){Ir.constructor_.apply(this,arguments)}isInsideArea(){return this._segIndex===Ir.INSIDE_AREA}getCoordinate(){return this._pt}getGeometryComponent(){return this._component}getSegmentIndex(){return this._segIndex}getClass(){return Ir}get interfaces_(){return[]}}Ir.constructor_=function(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){let t=arguments[0],e=arguments[1];Ir.constructor_.call(this,t,Ir.INSIDE_AREA,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._component=t,this._segIndex=e,this._pt=i}},Ir.INSIDE_AREA=-1;class Er{constructor(){Er.constructor_.apply(this,arguments)}static getPoints(){if(1===arguments.length){let t=arguments[0];return t instanceof Qt?Te.singletonList(t):Er.getPoints(t,new b)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof Qt?e.add(t):t instanceof vt&&t.apply(new Er(e)),e}}filter(t){t instanceof Qt&&this._pts.add(t)}getClass(){return Er}get interfaces_(){return[Et]}}Er.constructor_=function(){this._pts=null;let t=arguments[0];this._pts=t};class Cr{constructor(){Cr.constructor_.apply(this,arguments)}static getLocations(t){var e=new b;return t.apply(new Cr(e)),e}filter(t){(t instanceof Qt||t instanceof Dt||t instanceof Ut)&&this._locations.add(new Ir(t,0,t.getCoordinate()))}getClass(){return Cr}get interfaces_(){return[Et]}}Cr.constructor_=function(){this._locations=null;let t=arguments[0];this._locations=t};class vr{constructor(){vr.constructor_.apply(this,arguments)}static distance(t,e){return new vr(t,e).distance()}static isWithinDistance(t,e,i){return!(t.getEnvelopeInternal().distance(e.getEnvelopeInternal())>i)&&new vr(t,e,i).distance()<=i}static nearestPoints(t,e){return new vr(t,e).nearestPoints()}computeContainmentDistance(){if(0===arguments.length){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(2===arguments.length){let t=arguments[0],s=arguments[1];var e=this._geom[t];if(e.getDimension()<2)return null;var i=1-t,n=yr.getPolygons(e);if(n.size()>0){var r=Cr.getLocations(this._geom[i]);if(this.computeContainmentDistance(r,n,s),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[i]=s[0],this._minDistanceLocation[t]=s[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&I(arguments[0],x)&&I(arguments[1],x)){let t=arguments[0],e=arguments[1],i=arguments[2];for(var s=0;sthis._minDistance)return null;for(var t=r.getCoordinates(),e=s.getCoordinate(),i=0;ithis._minDistance)return null;t=e.getCoordinates();var r=n.getCoordinates();for(i=0;it&&$.reverse(this._coordinates)}return this._coordinates}toLineString(){return this._factory.createLineString(this.getCoordinates())}add(t){this._directedEdges.add(t)}getClass(){return wr}get interfaces_(){return[]}}wr.constructor_=function(){this._factory=null,this._directedEdges=new b,this._coordinates=null;let t=arguments[0];this._factory=t};class Sr{constructor(){Sr.constructor_.apply(this,arguments)}static getComponentWithVisitedState(t,e){for(;t.hasNext();){var i=t.next();if(i.isVisited()===e)return i}return null}static setVisited(t,e){for(;t.hasNext();)t.next().setVisited(e)}static setMarked(t,e){for(;t.hasNext();)t.next().setMarked(e)}setVisited(t){this._isVisited=t}isMarked(){return this._isMarked}setData(t){this._data=t}getData(){return this._data}setMarked(t){this._isMarked=t}getContext(){return this._data}isVisited(){return this._isVisited}setContext(t){this._data=t}getClass(){return Sr}get interfaces_(){return[]}}Sr.constructor_=function(){this._isMarked=!1,this._isVisited=!1,this._data=null};class br extends Sr{constructor(){super(),br.constructor_.apply(this,arguments)}static toEdges(t){for(var e=new b,i=t.iterator();i.hasNext();)e.add(i.next()._parentEdge);return e}isRemoved(){return null===this._parentEdge}compareDirection(t){return this._quadrant>t._quadrant?1:this._quadrant=t.size()-2}hasIntersection(){return null!==this._interiorIntersection}isDone(){return!this._findAllIntersections&&null!==this._interiorIntersection}getClass(){return kr}get interfaces_(){return[ar]}}kr.constructor_=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new b,this._intersectionCount=0,this._keepIntersections=!0;let t=arguments[0];this._li=t,this._interiorIntersection=null};class Gr{constructor(){Gr.constructor_.apply(this,arguments)}static computeIntersections(t){var e=new Gr(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()}execute(){if(null!==this._segInt)return null;this.checkInteriorIntersections()}getIntersections(){return this._segInt.getIntersections()}isValid(){return this.execute(),this._isValid}setFindAllIntersections(t){this._findAllIntersections=t}checkInteriorIntersections(){this._isValid=!0,this._segInt=new kr(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new Fn;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null}checkValid(){if(this.execute(),!this._isValid)throw new ki(this.getErrorMessage(),this._segInt.getInteriorIntersection())}getErrorMessage(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+ue.toLineString(t[0],t[1])+" and "+ue.toLineString(t[2],t[3])}getClass(){return Gr}get interfaces_(){return[]}}Gr.constructor_=function(){this._li=new de,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;let t=arguments[0];this._segStrings=t};class Ur{constructor(){Ur.constructor_.apply(this,arguments)}static toSegmentStrings(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next();e.add(new Qr(n.getCoordinates(),n))}return e}static checkValid(t){new Ur(t).checkValid()}checkValid(){this._nv.checkValid()}getClass(){return Ur}get interfaces_(){return[]}}Ur.constructor_=function(){this._nv=null;let t=arguments[0];this._nv=new Gr(Ur.toSegmentStrings(t))};class qr{constructor(){qr.constructor_.apply(this,arguments)}static map(t,e){return new qr(e).map(t)}map(t){for(var e=new b,i=0;i=0&&t.add(s+1,new _(r),!1)}}findSegmentIndexToSnap(t,e){for(var i=r.MAX_VALUE,n=-1,s=0;st&&(t=i)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Math.min(jr.computeOverlaySnapTolerance(t),jr.computeOverlaySnapTolerance(e))}}static computeSizeBasedSnapTolerance(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*jr.SNAP_PRECISION_FACTOR}static snapToSelf(t,e,i){return new jr(t).snapToSelf(e,i)}snapTo(t,e){var i=this.extractTargetCoordinates(t);return new Hr(e,i).transform(this._srcGeom)}snapToSelf(t,e){var i=this.extractTargetCoordinates(this._srcGeom),n=new Hr(t,i,!0).transform(this._srcGeom),r=n;return e&&I(r,Gt)&&(r=n.buffer(0)),r}computeSnapTolerance(t){return this.computeMinimumSegmentLength(t)/10}extractTargetCoordinates(t){for(var e=new ft,i=t.getCoordinates(),n=0;n>>20}static zeroLowerBits(t,e){var i="low";if(e>32&&(t.low=0,e%=32,i="high"),e>0){var n=e<32?~((1<=0;n--){if(Xr.getBit(t,n)!==Xr.getBit(e,n))return i;i++}return 52}}class Wr{constructor(){Wr.constructor_.apply(this,arguments)}addCommonBits(t){var e=new Jr(this._commonCoord);t.apply(e),t.geometryChanged()}removeCommonBits(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new _(this._commonCoord);e.x=-e.x,e.y=-e.y;var i=new Jr(e);return t.apply(i),t.geometryChanged(),t}getCommonCoordinate(){return this._commonCoord}add(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()}getClass(){return Wr}get interfaces_(){return[]}}class Kr{constructor(){Kr.constructor_.apply(this,arguments)}filter(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)}getCommonCoordinate(){return new _(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())}getClass(){return Kr}get interfaces_(){return[H]}}Kr.constructor_=function(){this._commonBitsX=new Xr,this._commonBitsY=new Xr};class Jr{constructor(){Jr.constructor_.apply(this,arguments)}filter(t,e){var i=t.getOrdinate(e,0)+this.trans.x,n=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,i),t.setOrdinate(e,1,n)}isDone(){return!1}isGeometryChanged(){return!0}getClass(){return Jr}get interfaces_(){return[Ct]}}Jr.constructor_=function(){this.trans=null;let t=arguments[0];this.trans=t},Wr.CommonCoordinateFilter=Kr,Wr.Translater=Jr,Wr.constructor_=function(){this._commonCoord=null,this._ccFilter=new Kr};class Zr{constructor(){Zr.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new Zr(t,e).getResultGeometry(i)}static union(t,e){return Zr.overlayOp(t,e,es.UNION)}static intersection(t,e){return Zr.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return Zr.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return Zr.overlayOp(t,e,es.DIFFERENCE)}selfSnap(t){return new jr(t).snapTo(t,this._snapTolerance)}removeCommonBits(t){this._cbr=new Wr,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e}prepareResult(t){return this._cbr.addCommonBits(t),t}getResultGeometry(t){var e=this.snap(this._geom),i=es.overlayOp(e[0],e[1],t);return this.prepareResult(i)}checkValid(t){t.isValid()||k.out.println("Snapped geometry is invalid")}computeSnapTolerance(){this._snapTolerance=jr.computeOverlaySnapTolerance(this._geom[0],this._geom[1])}snap(t){var e=this.removeCommonBits(t);return jr.snap(e[0],e[1],this._snapTolerance)}getClass(){return Zr}get interfaces_(){return[]}}Zr.constructor_=function(){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null;let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};class $r{constructor(){$r.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new $r(t,e).getResultGeometry(i)}static union(t,e){return $r.overlayOp(t,e,es.UNION)}static intersection(t,e){return $r.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return $r.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return $r.overlayOp(t,e,es.DIFFERENCE)}getResultGeometry(t){var e=null,i=!1,n=null;try{e=es.overlayOp(this._geom[0],this._geom[1],t),i=!0}catch(t){if(!(t instanceof p))throw t;n=t}if(!i)try{e=Zr.overlayOp(this._geom[0],this._geom[1],t)}catch(t){throw t instanceof p?n:t}return e}getClass(){return $r}get interfaces_(){return[]}}$r.constructor_=function(){this._geom=new Array(2).fill(null);let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e};class ts{constructor(){ts.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return ts}get interfaces_(){return[]}}ts.constructor_=function(){if(this._li=new de,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Vi(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e,X.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Vi(0,t,i),this._arg[1]=new Vi(1,e,i)}};class es extends ts{constructor(){super(),es.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new es(t,e).getResultGeometry(i)}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.UNION)}static intersection(t,e){if(t.isEmpty()||e.isEmpty())return es.createEmptyResult(es.INTERSECTION,t,e,t.getFactory());if(t.isGeometryCollection()){var n=e;return qr.map(t,new class{get interfaces_(){return[MapOp]}map(t){return t.intersection(n)}})}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.SYMDIFFERENCE)}static resultDimension(t,e,i){var n=e.getDimension(),r=i.getDimension(),s=-1;switch(t){case es.INTERSECTION:s=Math.min(n,r);break;case es.UNION:s=Math.max(n,r);break;case es.DIFFERENCE:s=n;break;case es.SYMDIFFERENCE:s=Math.max(n,r)}return s}static createEmptyResult(t,e,i,n){var r=null;switch(es.resultDimension(t,e,i)){case-1:r=n.createGeometryCollection();break;case 0:r=n.createPoint();break;case 1:r=n.createLineString();break;case 2:r=n.createPolygon()}return r}static difference(t,e){if(t.isEmpty())return es.createEmptyResult(es.DIFFERENCE,t,e,t.getFactory());if(e.isEmpty())return t.copy();if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.DIFFERENCE)}static isResultOfOp(){if(2===arguments.length){let i=arguments[0],n=arguments[1];var t=i.getLocation(0),e=i.getLocation(1);return es.isResultOfOp(t,e,n)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];switch(t===pe.BOUNDARY&&(t=pe.INTERIOR),e===pe.BOUNDARY&&(e=pe.INTERIOR),i){case es.INTERSECTION:return t===pe.INTERIOR&&e===pe.INTERIOR;case es.UNION:return t===pe.INTERIOR||e===pe.INTERIOR;case es.DIFFERENCE:return t===pe.INTERIOR&&e!==pe.INTERIOR;case es.SYMDIFFERENCE:return t===pe.INTERIOR&&e!==pe.INTERIOR||t!==pe.INTERIOR&&e===pe.INTERIOR}return!1}}insertUniqueEdge(t){var e=this._edgeList.findEqualEdge(t);if(null!==e){var i=e.getLabel(),n=t.getLabel();e.isPointwiseEqual(t)||(n=new Bi(t.getLabel())).flip();var r=e.getDepth();r.isNull()&&r.add(i),r.add(n),i.merge(n)}else this._edgeList.add(t)}getGraph(){return this._graph}cancelDuplicateResultEdges(){for(var t=this._graph.getEdgeEnds().iterator();t.hasNext();){var e=t.next(),i=e.getSym();e.isInResult()&&i.isInResult()&&(e.setInResult(!1),i.setInResult(!1))}}isCoveredByLA(t){return!!this.isCovered(t,this._resultLineList)||!!this.isCovered(t,this._resultPolyList)}computeGeometry(t,e,i,n){var r=new b;return r.addAll(t),r.addAll(e),r.addAll(i),r.isEmpty()?es.createEmptyResult(n,this._arg[0].getGeometry(),this._arg[1].getGeometry(),this._geomFact):this._geomFact.buildGeometry(r)}mergeSymLabels(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().mergeSymLabels()}isCovered(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next();if(this._ptLocator.locate(t,n)!==pe.EXTERIOR)return!0}return!1}replaceCollapsedEdges(){for(var t=new b,e=this._edgeList.iterator();e.hasNext();){var i=e.next();i.isCollapsed()&&(e.remove(),t.add(i.getCollapsedEdge()))}this._edgeList.addAll(t)}updateNodeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getEdges().getLabel();e.getLabel().merge(i)}}getResultGeometry(t){return this.computeOverlay(t),this._resultGeom}insertUniqueEdges(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this.insertUniqueEdge(i)}}computeOverlay(t){this.copyPoints(0),this.copyPoints(1),this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1),this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!0);var e=new b;this._arg[0].computeSplitEdges(e),this._arg[1].computeSplitEdges(e),this.insertUniqueEdges(e),this.computeLabelsFromDepths(),this.replaceCollapsedEdges(),Ur.checkValid(this._edgeList.getEdges()),this._graph.addEdges(this._edgeList.getEdges()),this.computeLabelling(),this.labelIncompleteNodes(),this.findResultAreaEdges(t),this.cancelDuplicateResultEdges();var i=new Xn(this._geomFact);i.add(this._graph),this._resultPolyList=i.getPolygons();var n=new Vr(this,this._geomFact,this._ptLocator);this._resultLineList=n.build(t);var r=new zr(this,this._geomFact,this._ptLocator);this._resultPointList=r.build(t),this._resultGeom=this.computeGeometry(this._resultPointList,this._resultLineList,this._resultPolyList,t)}labelIncompleteNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setLocation(e,i)}copyPoints(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._graph.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}findResultAreaEdges(t){for(var e=this._graph.getEdgeEnds().iterator();e.hasNext();){var i=e.next(),n=i.getLabel();n.isArea()&&!i.isInteriorAreaEdge()&&es.isResultOfOp(n.getLocation(0,Ei.RIGHT),n.getLocation(1,Ei.RIGHT),t)&&i.setInResult(!0)}}computeLabelsFromDepths(){for(var t=this._edgeList.iterator();t.hasNext();){var e=t.next(),i=e.getLabel(),n=e.getDepth();if(!n.isNull()){n.normalize();for(var r=0;r<2;r++)i.isNull(r)||!i.isArea()||n.isNull(r)||(0===n.getDelta(r)?i.toLine(r):(m.isTrue(!n.isNull(r,Ei.LEFT),"depth of LEFT side has not been initialized"),i.setLocation(r,Ei.LEFT,n.getLocation(r,Ei.LEFT)),m.isTrue(!n.isNull(r,Ei.RIGHT),"depth of RIGHT side has not been initialized"),i.setLocation(r,Ei.RIGHT,n.getLocation(r,Ei.RIGHT))))}}}computeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg);this.mergeSymLabels(),this.updateNodeLabelling()}labelIncompleteNodes(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getLabel();e.isIsolated()&&(i.isNull(0)?this.labelIncompleteNode(e,0):this.labelIncompleteNode(e,1)),e.getEdges().updateLabelling(i)}}isCoveredByA(t){return!!this.isCovered(t,this._resultPolyList)}getClass(){return es}get interfaces_(){return[]}}es.constructor_=function(){this._ptLocator=new Ii,this._geomFact=null,this._resultGeom=null,this._graph=null,this._edgeList=new or,this._resultPolyList=new b,this._resultLineList=new b,this._resultPointList=new b;let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._graph=new qi(new rr),this._geomFact=t.getFactory()},es.INTERSECTION=1,es.UNION=2,es.DIFFERENCE=3,es.SYMDIFFERENCE=4;var is=Object.freeze({OverlayOp:es});class ns extends br{constructor(){super(),ns.constructor_.apply(this,arguments)}getNext(){return this._next}isInRing(){return null!==this._edgeRing}setRing(t){this._edgeRing=t}setLabel(t){this._label=t}getLabel(){return this._label}setNext(t){this._next=t}getRing(){return this._edgeRing}getClass(){return ns}get interfaces_(){return[]}}ns.constructor_=function(){this._edgeRing=null,this._next=null,this._label=-1;let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];br.constructor_.call(this,t,e,i,n)};class rs extends Lr{constructor(){super(),rs.constructor_.apply(this,arguments)}getLine(){return this._line}getClass(){return rs}get interfaces_(){return[]}}rs.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class ss{constructor(){ss.constructor_.apply(this,arguments)}static findDirEdgesInRing(t){var e=t,i=new b;do{i.add(e),e=e.getNext(),m.isTrue(null!==e,"found null DE in ring"),m.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t);return i}static addEdge(t,e,i){if(e)for(var n=0;n=0;n--)i.add(t[n],!1)}static findEdgeRingContaining(t,e){for(var i=t.getRing(),n=i.getEnvelopeInternal(),r=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getRing(),c=h.getEnvelopeInternal();if(!c.equals(n)&&c.contains(n)){r=$.ptNotInList(i.getCoordinates(),h.getCoordinates());var u=!1;Ge.isInRing(r,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(o=(s=l).getRing().getEnvelopeInternal())}}return s}isIncluded(){return this._isIncluded}getCoordinates(){if(null===this._ringPts){for(var t=new L,e=this._deList.iterator();e.hasNext();){var i=e.next(),n=i.getEdge();ss.addEdge(n.getLine().getCoordinates(),i.getEdgeDirection(),t)}this._ringPts=t.toCoordinateArray()}return this._ringPts}isIncludedSet(){return this._isIncludedSet}isValid(){return this.getCoordinates(),!(this._ringPts.length<=3)&&(this.getRing(),this._ring.isValid())}build(t){var e=t;do{this.add(e),e.setRing(this),e=e.getNext(),m.isTrue(null!==e,"found null DE in ring"),m.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t)}isOuterHole(){return!!this._isHole&&!this.hasShell()}getPolygon(){var t=null;if(null!==this._holes){t=new Array(this._holes.size()).fill(null);for(var e=0;e=0)){e.add(r);var s=ss.findDirEdgesInRing(r);as.label(s,i),i++}}return e}static getDegreeNonDeleted(t){for(var e=0,i=t.getOutEdges().getEdges().iterator();i.hasNext();)i.next().isMarked()||e++;return e}static deleteAllEdges(t){for(var e=t.getOutEdges().getEdges().iterator();e.hasNext();){var i=e.next();i.setMarked(!0);var n=i.getSym();null!==n&&n.setMarked(!0)}}static label(t,e){for(var i=t.iterator();i.hasNext();)i.next().setLabel(e)}static computeNextCWEdges(t){for(var e=null,i=null,n=t.getOutEdges().getEdges().iterator();n.hasNext();){var r=n.next();r.isMarked()||(null===e&&(e=r),null!==i&&i.getSym().setNext(r),i=r)}null!==i&&i.getSym().setNext(e)}static computeNextCCWEdges(t,e){for(var i=null,n=null,r=t.getOutEdges().getEdges(),s=r.size()-1;s>=0;s--){var o=r.get(s),a=o.getSym(),l=null;o.getLabel()===e&&(l=o);var h=null;a.getLabel()===e&&(h=a),null===l&&null===h||(null!==h&&(n=h),null!==l&&(null!==n&&(n.setNext(l),n=null),null===i&&(i=l)))}null!==n&&(m.isTrue(null!==i),n.setNext(i))}static getDegree(t,e){for(var i=0,n=t.getOutEdges().getEdges().iterator();n.hasNext();)n.next().getLabel()===e&&i++;return i}static findIntersectionNodes(t,e){var i=t,n=null;do{var r=i.getFromNode();as.getDegree(r,e)>1&&(null===n&&(n=new b),n.add(r)),i=i.getNext(),m.isTrue(null!==i,"found null DE in ring"),m.isTrue(i===t||!i.isInRing(),"found DE already in ring")}while(i!==t);return n}findEdgeRing(t){var e=new ss(this._factory);return e.build(t),e}computeDepthParity(){if(0===arguments.length)for(;;)return null}computeNextCWEdges(){for(var t=this.nodeIterator();t.hasNext();){var e=t.next();as.computeNextCWEdges(e)}}addEdge(t){if(t.isEmpty())return null;var e=$.removeRepeatedPoints(t.getCoordinates());if(e.length<2)return null;var i=e[0],n=e[e.length-1],r=this.getNode(i),s=this.getNode(n),o=new ns(r,s,e[1],!0),a=new ns(s,r,e[e.length-2],!1),l=new rs(t);l.setDirectedEdges(o,a),this.add(l)}deleteCutEdges(){this.computeNextCWEdges(),as.findLabeledEdgeRings(this._dirEdges);for(var t=new b,e=this._dirEdges.iterator();e.hasNext();){var i=e.next();if(!i.isMarked()){var n=i.getSym();if(i.getLabel()===n.getLabel()){i.setMarked(!0),n.setMarked(!0);var r=i.getEdge();t.add(r.getLine())}}}return t}getEdgeRings(){this.computeNextCWEdges(),as.label(this._dirEdges,-1);var t=as.findLabeledEdgeRings(this._dirEdges);this.convertMaximalToMinimalEdgeRings(t);for(var e=new b,i=this._dirEdges.iterator();i.hasNext();){var n=i.next();if(!n.isMarked()&&!n.isInRing()){var r=this.findEdgeRing(n);e.add(r)}}return e}getNode(t){var e=this.findNode(t);return null===e&&(e=new Tr(t),this.add(e)),e}convertMaximalToMinimalEdgeRings(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),n=i.getLabel(),r=as.findIntersectionNodes(i,n);if(null!==r)for(var s=r.iterator();s.hasNext();){var o=s.next();as.computeNextCCWEdges(o,n)}}}deleteDangles(){for(var t=this.findNodesOfDegree(1),e=new st,i=new Je,n=t.iterator();n.hasNext();)i.push(n.next());for(;!i.isEmpty();){var r=i.pop();for(as.deleteAllEdges(r),n=r.getOutEdges().getEdges().iterator();n.hasNext();){var s=n.next();s.setMarked(!0);var o=s.getSym();null!==o&&o.setMarked(!0);var a=s.getEdge();e.add(a.getLine());var l=s.getToNode();1===as.getDegreeNonDeleted(l)&&i.push(l)}}return e}getClass(){return as}get interfaces_(){return[]}}as.constructor_=function(){this._factory=null;let t=arguments[0];this._factory=t};class ls{constructor(){ls.constructor_.apply(this,arguments)}static findOuterShells(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),n=i.getOuterHole();null===n||n.isProcessed()||(i.setIncluded(!0),n.setProcessed(!0))}}static extractPolygons(t,e){for(var i=new b,n=t.iterator();n.hasNext();){var r=n.next();(e||r.isIncluded())&&i.add(r.getPolygon())}return i}static assignHolesToShells(t,e){for(var i=t.iterator();i.hasNext();){var n=i.next();ls.assignHoleToShell(n,e)}}static assignHoleToShell(t,e){var i=ss.findEdgeRingContaining(t,e);null!==i&&i.addHole(t)}static findDisjointShells(t){ls.findOuterShells(t);var e=null;do{e=!1;for(var i=t.iterator();i.hasNext();){var n=i.next();n.isIncludedSet()||(n.updateIncluded(),n.isIncludedSet()||(e=!0))}}while(e)}getGeometry(){return null===this._geomFactory&&(this._geomFactory=new oe),this.polygonize(),this._extractOnlyPolygonal?this._geomFactory.buildGeometry(this._polyList):this._geomFactory.createGeometryCollection(oe.toGeometryArray(this._polyList))}getInvalidRingLines(){return this.polygonize(),this._invalidRingLines}findValidRings(t,e,i){for(var n=t.iterator();n.hasNext();){var r=n.next();r.isValid()?e.add(r):i.add(r.getLineString())}}polygonize(){if(null!==this._polyList)return null;if(this._polyList=new b,null===this._graph)return null;this._dangles=this._graph.deleteDangles(),this._cutEdges=this._graph.deleteCutEdges();var t=this._graph.getEdgeRings(),e=new b;this._invalidRingLines=new b,this._isCheckingRingsValid?this.findValidRings(t,e,this._invalidRingLines):e=t,this.findShellsAndHoles(e),ls.assignHolesToShells(this._holeList,this._shellList),Te.sort(this._shellList,new ss.EnvelopeComparator);var i=!0;this._extractOnlyPolygonal&&(ls.findDisjointShells(this._shellList),i=!1),this._polyList=ls.extractPolygons(this._shellList,i)}getDangles(){return this.polygonize(),this._dangles}getCutEdges(){return this.polygonize(),this._cutEdges}getPolygons(){return this.polygonize(),this._polyList}add(){if(I(arguments[0],C))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.add(e)}else if(arguments[0]instanceof Dt){let t=arguments[0];this._geomFactory=t.getFactory(),null===this._graph&&(this._graph=new as(this._geomFactory)),this._graph.addEdge(t)}else arguments[0]instanceof j&&arguments[0].apply(this._lineStringAdder)}setCheckRingsValid(t){this._isCheckingRingsValid=t}findShellsAndHoles(t){this._holeList=new b,this._shellList=new b;for(var e=t.iterator();e.hasNext();){var i=e.next();i.computeHole(),i.isHole()?this._holeList.add(i):this._shellList.add(i)}}getClass(){return ls}get interfaces_(){return[]}}class hs{constructor(){hs.constructor_.apply(this,arguments)}filter(t){t instanceof Dt&&this.p.add(t)}getClass(){return hs}get interfaces_(){return[Y]}}hs.constructor_=function(){this.p=null;let t=arguments[0];this.p=t},ls.LineStringAdder=hs,ls.constructor_=function(){if(this._lineStringAdder=new hs(this),this._graph=null,this._dangles=new b,this._cutEdges=new b,this._invalidRingLines=new b,this._holeList=null,this._shellList=null,this._polyList=null,this._isCheckingRingsValid=!0,this._extractOnlyPolygonal=null,this._geomFactory=null,0===arguments.length)ls.constructor_.call(this,!1);else if(1===arguments.length){let t=arguments[0];this._extractOnlyPolygonal=t}};var cs=Object.freeze({Polygonizer:ls});class us{constructor(){us.constructor_.apply(this,arguments)}createEdgeEndForNext(t,e,i,n){var r=i.segmentIndex+1;if(r>=t.getNumPoints()&&null===n)return null;var s=t.getCoordinate(r);null!==n&&n.segmentIndex===i.segmentIndex&&(s=n.coord);var o=new Qi(t,i.coord,s,new Bi(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,n){var r=i.segmentIndex;if(0===i.dist){if(0===r)return null;r--}var s=t.getCoordinate(r);null!==n&&n.segmentIndex>=r&&(s=n.coord);var o=new Bi(t.getLabel());o.flip();var a=new Qi(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let n=arguments[0];for(var t=new b,e=n;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var n=t.getEdgeIntersectionList();n.addEndpoints();var r=n.iterator(),s=null,o=null;if(!r.hasNext())return null;var a=r.next();do{s=o,o=a,a=null,r.hasNext()&&(a=r.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return us}get interfaces_(){return[]}}us.constructor_=function(){};class gs extends Qi{constructor(){super(),gs.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();)e.next().print(t),t.println()}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,n=!1,r=this.iterator();r.hasNext();)(s=r.next().getLabel().getLocation(t))===pe.BOUNDARY&&i++,s===pe.INTERIOR&&(n=!0);var s=pe.NONE;n&&(s=pe.INTERIOR),i>0&&(s=Vi.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var n=i.next();if(n.getLabel().isArea()){var r=n.getLabel().getLocation(t,e);if(r===pe.INTERIOR)return this._label.setLocation(t,e,pe.INTERIOR),null;r===pe.EXTERIOR&&this._label.setLocation(t,e,pe.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,Ei.LEFT),this.computeLabelSide(t,Ei.RIGHT)}updateIM(t){Fi.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();)i.next().getLabel().isArea()&&(e=!0);this._label=e?new Bi(pe.NONE,pe.NONE,pe.NONE):new Bi(pe.NONE);for(var n=0;n<2;n++)this.computeLabelOn(n,t),e&&this.computeLabelSides(n)}getClass(){return gs}get interfaces_(){return[]}}gs.constructor_=function(){if(this._edgeEnds=new b,1===arguments.length){let t=arguments[0];gs.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];Qi.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new Bi(t.getLabel())),this.insert(t)}};class ds extends ir{constructor(){super(),ds.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();)e.next().updateIM(t)}insert(t){var e=this._edgeMap.get(t);null===e?(e=new gs(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return ds}get interfaces_(){return[]}}ds.constructor_=function(){};class As extends Di{constructor(){super(),As.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return As}get interfaces_(){return[]}}As.constructor_=function(){let t=arguments[0],e=arguments[1];Di.constructor_.call(this,t,e)};class ps extends Ui{constructor(){super(),ps.constructor_.apply(this,arguments)}createNode(t){return new As(t,new ds)}getClass(){return ps}get interfaces_(){return[]}}ps.constructor_=function(){};class fs{constructor(){fs.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),n=this._arg[1].getGeometry().getDimension(),r=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===n?r&&e.setAtLeast("212101212"):2===i&&1===n?(r&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===n?(r&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===n&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var n=i.next();n.isIsolated()&&(this.labelIsolatedEdge(n,e,this._arg[e].getGeometry()),this._isolatedEdges.add(n))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var n=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,n)}else t.getLabel().setAllLocations(e,pe.EXTERIOR)}computeIM(){var t=new fe;if(t.set(pe.EXTERIOR,pe.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new us,n=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(n);var r=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(r),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg)}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(n===pe.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,pe.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.addNode(s.coord);n===pe.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,pe.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();m.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();)e.next().updateIM(t);for(var i=this._nodes.iterator();i.hasNext();){var n=i.next();n.updateIM(t),n.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(pe.INTERIOR,pe.EXTERIOR,e.getDimension()),t.set(pe.BOUNDARY,pe.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(pe.EXTERIOR,pe.INTERIOR,i.getDimension()),t.set(pe.EXTERIOR,pe.BOUNDARY,i.getBoundaryDimension()))}getClass(){return fs}get interfaces_(){return[]}}fs.constructor_=function(){this._li=new de,this._ptLocator=new Ii,this._arg=null,this._nodes=new Oi(new ps),this._im=null,this._isolatedEdges=new b,this._invalidPoint=null;let t=arguments[0];this._arg=t};class ms{constructor(){ms.constructor_.apply(this,arguments)}static contains(t,e){return new ms(t).contains(e)}isContainedInBoundary(t){if(t instanceof Ut)return!1;if(t instanceof Qt)return this.isPointContainedInBoundary(t);if(t instanceof Dt)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var n=t;t=e,e=n}var r=!1;return e.y>t.y&&(r=!0),r?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return _s}get interfaces_(){return[]}}_s.constructor_=function(){this._li=new de,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new _(t.getMinX(),t.getMinY()),this._diagUp1=new _(t.getMaxX(),t.getMaxY()),this._diagDown0=new _(t.getMinX(),t.getMaxY()),this._diagDown1=new _(t.getMaxX(),t.getMinY())};class ys{constructor(){ys.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return Es}get interfaces_(){return[]}}Es.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class Cs extends ys{constructor(){super(),Cs.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof Ut))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new _,n=0;n<4;n++)if(this._rectSeq.getCoordinate(n,i),e.contains(i)&&qe.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return Cs}get interfaces_(){return[]}}Cs.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class vs extends ys{constructor(){super(),vs.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=Pe.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new xs(t,e).getIntersectionMatrix().isCovers())}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return Is.intersects(t,e);if(e.isRectangle())return Is.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?ms.contains(t,e):new xs(t,e).getIntersectionMatrix().isContains())}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return xs}get interfaces_(){return[]}}xs.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._relate=new fs(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];ts.constructor_.call(this,t,e,i),this._relate=new fs(this._arg)}};var ws=Object.freeze({RelateOp:xs});class Ss{constructor(){Ss.constructor_.apply(this,arguments)}static combine(){if(1===arguments.length)return new Ss(arguments[0]).combine();if(2===arguments.length){let t=arguments[0],e=arguments[1];return new Ss(Ss.createList(t,e)).combine()}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return new Ss(Ss.createList(t,e,i)).combine()}}static extractFactory(t){return t.isEmpty()?null:t.iterator().next().getFactory()}static createList(){if(2===arguments.length){let e=arguments[0],i=arguments[1];return(t=new b).add(e),t.add(i),t}if(3===arguments.length){let e=arguments[0],i=arguments[1],n=arguments[2];var t;return(t=new b).add(e),t.add(i),t.add(n),t}}extractElements(t,e){if(null===t)return null;for(var i=0;i=t.size()?null:t.get(e)}static union(t){return new Ls(t).union()}reduceToGeometries(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next(),r=null;I(n,x)?r=this.unionTree(n):n instanceof j&&(r=n),e.add(r)}return e}extractByEnvelope(t,e,i){for(var n=new b,r=0;r0){var e=this._geomFact.buildGeometry(this._points);t=this.unionNoOpt(e)}var i=null;if(this._lines.size()>0){var n=this._geomFact.buildGeometry(this._lines);i=this.unionNoOpt(n)}var r=null;this._polygons.size()>0&&(r=Ls.union(this._polygons));var s=this.unionWithNull(i,r),o=null;return null===(o=null===t?s:null===s?t:bs.union(t,s))?this._geomFact.createGeometryCollection():o}getClass(){return Ms}get interfaces_(){return[]}}Ms.constructor_=function(){if(this._polygons=new b,this._lines=new b,this._points=new b,this._geomFact=null,1===arguments.length){if(I(arguments[0],C)){let t=arguments[0];this.extract(t)}else if(arguments[0]instanceof j){let t=arguments[0];this.extract(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._geomFact=e,this.extract(t)}};var Ts=Object.freeze({UnaryUnionOp:Ms});class Rs{constructor(){Rs.constructor_.apply(this,arguments)}static findDifferentPoint(t,e){for(var i=0;i1)return this._invalidPoint=i.getEdge().getCoordinate(0),!0}return!1}isNodeConsistentArea(){var t=this._geomGraph.computeSelfNodes(this._li,!0,!0);return t.hasProperIntersection()?(this._invalidPoint=t.getProperIntersectionPoint(),!1):(this._nodeGraph.build(this._geomGraph),this.isNodeEdgeAreaLabelsConsistent())}getClass(){return Ps}get interfaces_(){return[]}}Ps.constructor_=function(){this._li=new de,this._geomGraph=null,this._nodeGraph=new Ns,this._invalidPoint=null;let t=arguments[0];this._geomGraph=t};class Fs{constructor(){Fs.constructor_.apply(this,arguments)}buildIndex(){this._index=new dn;for(var t=0;t=1&&(e=t.getCoordinateN(0)),this._validErr=new Ds(Ds.RING_NOT_CLOSED,e)}}checkShellsNotNested(t,e){for(var i=0;i=2&&(n=!0),e.edit(t,new Gs(this._targetPM,n))}changePM(t,e){return this.createEditor(t.getFactory(),e).edit(t,new Yt.NoOpGeometryOperation)}setRemoveCollapsedComponents(t){this._removeCollapsed=t}createFactory(t,e){return new oe(e,t.getSRID(),t.getCoordinateSequenceFactory())}setChangePrecisionModel(t){this._changePrecisionModel=t}reduce(t){var e=this.reducePointwise(t);return this._isPointwise?e:I(e,Gt)?Os.isValid(e)?e:this.fixPolygonalTopology(e):e}setPointwise(t){this._isPointwise=t}createEditor(t,e){if(t.getPrecisionModel()===e)return new Yt;var i=this.createFactory(t,e);return new Yt(i)}getClass(){return Us}get interfaces_(){return[]}}Us.constructor_=function(){this._targetPM=null,this._removeCollapsed=!0,this._changePrecisionModel=!1,this._isPointwise=!1;let t=arguments[0];this._targetPM=t};var qs=Object.freeze({GeometryPrecisionReducer:Us});class Vs{constructor(){Vs.constructor_.apply(this,arguments)}static simplify(t,e){var i=new Vs(t);return i.setDistanceTolerance(e),i.simplify()}simplifySection(t,e){if(t+1===e)return null;this._seg.p0=this._pts[t],this._seg.p1=this._pts[e];for(var i=-1,n=t,r=t+1;ri&&(i=s,n=r)}if(i<=this._distanceTolerance)for(r=t+1;r=e[0]&&nthis._distanceTolerance&&(s=!1);var l=new Ae;if(l.p0=this._linePts[t],l.p1=this._linePts[e],n[0]=t,n[1]=e,this.hasBadIntersection(this._line,n,l)&&(s=!1),s)return r=this.flatten(t,e),this._line.addToResult(r),null;this.simplifySection(t,a,i),this.simplifySection(a,e,i)}hasBadOutputIntersection(t){for(var e=this._outputIndex.query(t).iterator();e.hasNext();){var i=e.next();if(this.hasInteriorIntersection(i,t))return!0}return!1}findFurthestPoint(t,e,i,n){var r=new Ae;r.p0=t[e],r.p1=t[i];for(var s=-1,o=e,a=e+1;as&&(s=h,o=a)}return n[0]=s,o}simplify(t){this._line=t,this._linePts=t.getParentCoordinates(),this.simplifySection(0,this._linePts.length-1,0)}remove(t,e,i){for(var n=e;nn&&(o=n),r.setMinimumLength(o),r.splitAt(s),r.getSplitPoint()}getClass(){return ro}get interfaces_(){return[no]}}ro.constructor_=function(){};class so{constructor(){so.constructor_.apply(this,arguments)}static triArea(t,e,i){return(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x)}static isInCircleDDNormalized(t,e,i,n){var r=D.valueOf(t.x).selfSubtract(n.x),s=D.valueOf(t.y).selfSubtract(n.y),o=D.valueOf(e.x).selfSubtract(n.x),a=D.valueOf(e.y).selfSubtract(n.y),l=D.valueOf(i.x).selfSubtract(n.x),h=D.valueOf(i.y).selfSubtract(n.y),c=r.multiply(a).selfSubtract(o.multiply(s)),u=o.multiply(h).selfSubtract(l.multiply(a)),g=l.multiply(s).selfSubtract(r.multiply(h)),d=r.multiply(r).selfAdd(s.multiply(s)),A=o.multiply(o).selfAdd(a.multiply(a)),p=l.multiply(l).selfAdd(h.multiply(h));return d.selfMultiply(u).selfAdd(A.selfMultiply(g)).selfAdd(p.selfMultiply(c)).doubleValue()>0}static checkRobustInCircle(t,e,i,n){var r=so.isInCircleNonRobust(t,e,i,n),s=so.isInCircleDDSlow(t,e,i,n),o=so.isInCircleCC(t,e,i,n),a=_e.circumcentre(t,e,i);k.out.println("p radius diff a = "+Math.abs(n.distance(a)-t.distance(a))/t.distance(a)),r===s&&r===o||(k.out.println("inCircle robustness failure (double result = "+r+", DD result = "+s+", CC result = "+o+")"),k.out.println(ue.toLineString(new Kt([t,e,i,n]))),k.out.println("Circumcentre = "+ue.toPoint(a)+" radius = "+t.distance(a)),k.out.println("p radius diff a = "+Math.abs(n.distance(a)/t.distance(a)-1)),k.out.println("p radius diff b = "+Math.abs(n.distance(a)/e.distance(a)-1)),k.out.println("p radius diff c = "+Math.abs(n.distance(a)/i.distance(a)-1)),k.out.println())}static isInCircleDDFast(t,e,i,n){var r=D.sqr(t.x).selfAdd(D.sqr(t.y)).selfMultiply(so.triAreaDDFast(e,i,n)),s=D.sqr(e.x).selfAdd(D.sqr(e.y)).selfMultiply(so.triAreaDDFast(t,i,n)),o=D.sqr(i.x).selfAdd(D.sqr(i.y)).selfMultiply(so.triAreaDDFast(t,e,n)),a=D.sqr(n.x).selfAdd(D.sqr(n.y)).selfMultiply(so.triAreaDDFast(t,e,i));return r.selfSubtract(s).selfAdd(o).selfSubtract(a).doubleValue()>0}static isInCircleCC(t,e,i,n){var r=_e.circumcentre(t,e,i),s=t.distance(r);return n.distance(r)-s<=0}static isInCircleNormalized(t,e,i,n){var r=t.x-n.x,s=t.y-n.y,o=e.x-n.x,a=e.y-n.y,l=i.x-n.x,h=i.y-n.y;return(r*r+s*s)*(o*h-l*a)+(o*o+a*a)*(l*s-r*h)+(l*l+h*h)*(r*a-o*s)>0}static isInCircleDDSlow(t,e,i,n){var r=D.valueOf(n.x),s=D.valueOf(n.y),o=D.valueOf(t.x),a=D.valueOf(t.y),l=D.valueOf(e.x),h=D.valueOf(e.y),c=D.valueOf(i.x),u=D.valueOf(i.y),g=o.multiply(o).add(a.multiply(a)).multiply(so.triAreaDDSlow(l,h,c,u,r,s)),d=l.multiply(l).add(h.multiply(h)).multiply(so.triAreaDDSlow(o,a,c,u,r,s)),A=c.multiply(c).add(u.multiply(u)).multiply(so.triAreaDDSlow(o,a,l,h,r,s)),p=r.multiply(r).add(s.multiply(s)).multiply(so.triAreaDDSlow(o,a,l,h,c,u));return g.subtract(d).add(A).subtract(p).doubleValue()>0}static isInCircleNonRobust(t,e,i,n){return(t.x*t.x+t.y*t.y)*so.triArea(e,i,n)-(e.x*e.x+e.y*e.y)*so.triArea(t,i,n)+(i.x*i.x+i.y*i.y)*so.triArea(t,e,n)-(n.x*n.x+n.y*n.y)*so.triArea(t,e,i)>0}static isInCircleRobust(t,e,i,n){return so.isInCircleNormalized(t,e,i,n)}static triAreaDDSlow(t,e,i,n,r,s){return i.subtract(t).multiply(s.subtract(e)).subtract(n.subtract(e).multiply(r.subtract(t)))}static triAreaDDFast(t,e,i){var n=D.valueOf(e.x).selfSubtract(t.x).selfMultiply(D.valueOf(i.y).selfSubtract(t.y)),r=D.valueOf(e.y).selfSubtract(t.y).selfMultiply(D.valueOf(i.x).selfSubtract(t.x));return n.selfSubtract(r)}getClass(){return so}get interfaces_(){return[]}}so.constructor_=function(){};class oo{constructor(){oo.constructor_.apply(this,arguments)}static interpolateZ(){if(3===arguments.length){let n=arguments[0],r=arguments[1],s=arguments[2];var t=r.distance(s),e=n.distance(r),i=s.z-r.z;return r.z+i*(e/t)}if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],A=arguments[3];var n=e.x,r=e.y,s=i.x-n,o=A.x-n,a=i.y-r,l=A.y-r,h=s*l-o*a,c=t.x-n,u=t.y-r,g=(l*c-o*u)/h,d=(-a*c+s*u)/h;return e.z+g*(i.z-e.z)+d*(A.z-e.z)}}circleCenter(t,e){var i=new oo(this.getX(),this.getY()),n=this.bisector(i,t),r=this.bisector(t,e),s=new G(n,r),o=null;try{o=new oo(s.getX(),s.getY())}catch(n){if(!(n instanceof R))throw n;k.err.println("a: "+i+" b: "+t+" c: "+e),k.err.println(n)}return o}dot(t){return this._p.x*t.getX()+this._p.y*t.getY()}magn(){return Math.sqrt(this._p.x*this._p.x+this._p.y*this._p.y)}getZ(){return this._p.z}bisector(t,e){var i=e.getX()-t.getX(),n=e.getY()-t.getY(),r=new G(t.getX()+i/2,t.getY()+n/2,1),s=new G(t.getX()-n+i/2,t.getY()+i+n/2,1);return new G(r,s)}equals(){if(1===arguments.length){let t=arguments[0];return this._p.x===t.getX()&&this._p.y===t.getY()}if(2===arguments.length){let t=arguments[0],e=arguments[1];return this._p.distance(t.getCoordinate())0}getX(){return this._p.x}crossProduct(t){return this._p.x*t.getY()-this._p.y*t.getX()}setZ(t){this._p.z=t}times(t){return new oo(t*this._p.x,t*this._p.y)}cross(){return new oo(this._p.y,-this._p.x)}leftOf(t){return this.isCCW(t.orig(),t.dest())}toString(){return"POINT ("+this._p.x+" "+this._p.y+")"}sub(t){return new oo(this._p.x-t.getX(),this._p.y-t.getY())}getY(){return this._p.y}classify(t,e){var i=e.sub(t),n=this.sub(t),r=i.crossProduct(n);return r>0?oo.LEFT:r<0?oo.RIGHT:i.getX()*n.getX()<0||i.getY()*n.getY()<0?oo.BEHIND:i.magn()0};class co{constructor(){co.constructor_.apply(this,arguments)}locate(t){}getClass(){return co}get interfaces_(){return[]}}co.constructor_=function(){};class uo{constructor(){uo.constructor_.apply(this,arguments)}init(){this._lastEdge=this.findEdge()}locate(t){this._lastEdge.isLive()||this.init();var e=this._subdiv.locateFromEdge(t,this._lastEdge);return this._lastEdge=e,e}findEdge(){return this._subdiv.getEdges().iterator().next()}getClass(){return uo}get interfaces_(){return[co]}}uo.constructor_=function(){this._subdiv=null,this._lastEdge=null;let t=arguments[0];this._subdiv=t,this.init()};class go extends p{constructor(){super(),go.constructor_.apply(this,arguments)}static msgWithSpatial(t,e){return null!==e?t+" [ "+e+" ]":t}getSegment(){return this._seg}getClass(){return go}get interfaces_(){return[]}}go.constructor_=function(){if(this._seg=null,1===arguments.length){if("string"==typeof arguments[0]){let t=arguments[0];p.constructor_.call(this,t)}else if(arguments[0]instanceof Ae){let t=arguments[0];p.constructor_.call(this,"Locate failed to converge (at edge: "+t+"). Possible causes include invalid Subdivision topology or very close sites"),this._seg=new Ae(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];p.constructor_.call(this,go.msgWithSpatial(t,e)),this._seg=new Ae(e)}};class Ao{constructor(){Ao.constructor_.apply(this,arguments)}visit(t){}getClass(){return Ao}get interfaces_(){return[]}}Ao.constructor_=function(){};class po{constructor(){po.constructor_.apply(this,arguments)}static getTriangleEdges(t,e){if(e[0]=t,e[1]=e[0].lNext(),e[2]=e[1].lNext(),e[2].lNext()!==e[0])throw new i("Edges do not form a triangle")}getTriangleVertices(t){var e=new _o;return this.visitTriangles(e,t),e.getTriangleVertices()}isFrameVertex(t){return!!t.equals(this._frameVertex[0])||!!t.equals(this._frameVertex[1])||!!t.equals(this._frameVertex[2])}isVertexOfEdge(t,e){return!(!e.equals(t.orig(),this._tolerance)&&!e.equals(t.dest(),this._tolerance))}connect(t,e){var i=lo.connect(t,e);return this._quadEdges.add(i),i}getVoronoiCellPolygon(t,e){var i=new b,n=t;do{var r=t.rot().orig().getCoordinate();i.add(r),t=t.oPrev()}while(t!==n);var s=new L;s.addAll(i,!1),s.closeRing(),s.size()<4&&(k.out.println(s),s.add(s.get(s.size()-1),!0));var o=s.toCoordinateArray(),a=e.createPolygon(e.createLinearRing(o)),l=n.orig();return a.setUserData(l.getCoordinate()),a}setLocator(t){this._locator=t}initSubdiv(){var t=this.makeEdge(this._frameVertex[0],this._frameVertex[1]),e=this.makeEdge(this._frameVertex[1],this._frameVertex[2]);lo.splice(t.sym(),e);var i=this.makeEdge(this._frameVertex[2],this._frameVertex[0]);return lo.splice(e.sym(),i),lo.splice(i.sym(),t),t}isFrameBorderEdge(t){var e=new Array(3).fill(null);po.getTriangleEdges(t,e);var i=new Array(3).fill(null);po.getTriangleEdges(t.sym(),i);var n=t.lNext().dest();if(this.isFrameVertex(n))return!0;var r=t.sym().lNext().dest();return!!this.isFrameVertex(r)}makeEdge(t,e){var i=lo.makeEdge(t,e);return this._quadEdges.add(i),i}visitTriangles(t,e){this._visitedKey++;var i=new Je;i.push(this._startingEdge);for(var n=new st;!i.empty();){var r=i.pop();if(!n.contains(r)){var s=this.fetchTriangleToVisit(r,i,e,n);null!==s&&t.visit(s)}}}isFrameEdge(t){return!(!this.isFrameVertex(t.orig())&&!this.isFrameVertex(t.dest()))}isOnEdge(t,e){return this._seg.setCoordinates(t.orig().getCoordinate(),t.dest().getCoordinate()),this._seg.distance(e)i?10*e:10*i,this._frameVertex[0]=new oo((t.getMaxX()+t.getMinX())/2,t.getMaxY()+n),this._frameVertex[1]=new oo(t.getMinX()-n,t.getMinY()-n),this._frameVertex[2]=new oo(t.getMaxX()+n,t.getMinY()-n),this._frameEnv=new M(this._frameVertex[0].getCoordinate(),this._frameVertex[1].getCoordinate()),this._frameEnv.expandToInclude(this._frameVertex[2].getCoordinate())}getTriangleCoordinates(t){var e=new yo;return this.visitTriangles(e,t),e.getTriangles()}getVertices(t){for(var e=new st,i=this._quadEdges.iterator();i.hasNext();){var n=i.next(),r=n.orig();!t&&this.isFrameVertex(r)||e.add(r);var s=n.dest();!t&&this.isFrameVertex(s)||e.add(s)}return e}fetchTriangleToVisit(t,e,i,n){var r=t,s=0,o=!1;do{this._triEdges[s]=r,this.isFrameEdge(r)&&(o=!0);var a=r.sym();n.contains(a)||e.push(a),n.add(r),s++,r=r.lNext()}while(r!==t);return o&&!i?null:this._triEdges}getEdges(){if(0===arguments.length)return this._quadEdges;if(1===arguments.length){let s=arguments[0];for(var t=this.getPrimaryEdges(!1),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=s.createLineString([r.orig().getCoordinate(),r.dest().getCoordinate()])}return s.createMultiLineString(e)}}getVertexUniqueEdges(t){for(var e=new b,i=new st,n=this._quadEdges.iterator();n.hasNext();){var r=n.next(),s=r.orig();i.contains(s)||(i.add(s),!t&&this.isFrameVertex(s)||e.add(r));var o=r.sym(),a=o.orig();i.contains(a)||(i.add(a),!t&&this.isFrameVertex(a)||e.add(o))}return e}getTriangleEdges(t){var e=new mo;return this.visitTriangles(e,t),e.getTriangleEdges()}getPrimaryEdges(t){this._visitedKey++;var e=new b,i=new Je;i.push(this._startingEdge);for(var n=new st;!i.empty();){var r=i.pop();if(!n.contains(r)){var s=r.getPrimary();!t&&this.isFrameEdge(s)||e.add(s),i.push(r.oNext()),i.push(r.sym().oNext()),n.add(r),n.add(r.sym())}}return e}delete(t){lo.splice(t,t.oPrev()),lo.splice(t.sym(),t.sym().oPrev());var e=t.sym(),i=t.rot(),n=t.rot().sym();this._quadEdges.remove(t),this._quadEdges.remove(e),this._quadEdges.remove(i),this._quadEdges.remove(n),t.delete(),e.delete(),i.delete(),n.delete()}locateFromEdge(t,e){for(var i=0,n=this._quadEdges.size(),r=e;;){if(++i>n)throw new go(r.toLineSegment());if(t.equals(r.orig())||t.equals(r.dest()))break;if(t.rightOf(r))r=r.sym();else if(t.rightOf(r.oNext())){if(t.rightOf(r.dPrev()))break;r=r.dPrev()}else r=r.oNext()}return r}getTolerance(){return this._tolerance}getVoronoiCellPolygons(t){this.visitTriangles(new fo,!0);for(var e=new b,i=this.getVertexUniqueEdges(!1).iterator();i.hasNext();){var n=i.next();e.add(this.getVoronoiCellPolygon(n,t))}return e}getVoronoiDiagram(t){var e=this.getVoronoiCellPolygons(t);return t.createGeometryCollection(oe.toGeometryArray(e))}getTriangles(t){for(var e=this.getTriangleCoordinates(!1),i=new Array(e.size()).fill(null),n=0,r=e.iterator();r.hasNext();){var s=r.next();i[n++]=t.createPolygon(t.createLinearRing(s))}return t.createGeometryCollection(i)}insertSite(t){var e=this.locate(t);if(t.equals(e.orig(),this._tolerance)||t.equals(e.dest(),this._tolerance))return e;var i=this.makeEdge(e.orig(),t);lo.splice(i,e);var n=i;do{e=(i=this.connect(e,i.sym())).oPrev()}while(e.lNext()!==n);return n}locate(){if(1===arguments.length){if(arguments[0]instanceof oo){let t=arguments[0];return this._locator.locate(t)}if(arguments[0]instanceof _){let t=arguments[0];return this._locator.locate(new oo(t))}}else if(2===arguments.length){let n=arguments[0],r=arguments[1];var t=this._locator.locate(new oo(n));if(null===t)return null;var e=t;t.dest().getCoordinate().equals2D(n)&&(e=t.sym());var i=e;do{if(i.dest().getCoordinate().equals2D(r))return i;i=i.oNext()}while(i!==e);return null}}getClass(){return po}get interfaces_(){return[]}}class fo{constructor(){fo.constructor_.apply(this,arguments)}visit(t){for(var e=t[0].orig().getCoordinate(),i=t[1].orig().getCoordinate(),n=t[2].orig().getCoordinate(),r=_e.circumcentre(e,i,n),s=new oo(r),o=0;o<3;o++)t[o].rot().setOrig(s)}getClass(){return fo}get interfaces_(){return[Ao]}}fo.constructor_=function(){};class mo{constructor(){mo.constructor_.apply(this,arguments)}getTriangleEdges(){return this._triList}visit(t){this._triList.add(t)}getClass(){return mo}get interfaces_(){return[Ao]}}mo.constructor_=function(){this._triList=new b};class _o{constructor(){_o.constructor_.apply(this,arguments)}visit(t){this._triList.add([t[0].orig(),t[1].orig(),t[2].orig()])}getTriangleVertices(){return this._triList}getClass(){return _o}get interfaces_(){return[Ao]}}_o.constructor_=function(){this._triList=new b};class yo{constructor(){yo.constructor_.apply(this,arguments)}checkTriangleSize(t){t.length>=2?ue.toLineString(t[0],t[1]):t.length>=1&&ue.toPoint(t[0])}visit(t){this._coordList.clear();for(var e=0;e<3;e++){var i=t[e].orig();this._coordList.add(i.getCoordinate())}if(this._coordList.size()>0){this._coordList.closeRing();var n=this._coordList.toCoordinateArray();if(4!==n.length)return null;this._triCoords.add(n)}}getTriangles(){return this._triCoords}getClass(){return yo}get interfaces_(){return[Ao]}}yo.constructor_=function(){this._coordList=new L,this._triCoords=new b},po.TriangleCircumcentreVisitor=fo,po.TriangleEdgesListVisitor=mo,po.TriangleVertexListVisitor=_o,po.TriangleCoordinatesVisitor=yo,po.constructor_=function(){this._visitedKey=0,this._quadEdges=new b,this._startingEdge=null,this._tolerance=null,this._edgeCoincidenceTolerance=null,this._frameVertex=new Array(3).fill(null),this._frameEnv=null,this._locator=null,this._seg=new Ae,this._triEdges=new Array(3).fill(null);let t=arguments[0],e=arguments[1];this._tolerance=e,this._edgeCoincidenceTolerance=e/po.EDGE_COINCIDENCE_TOL_FACTOR,this.createFrame(t),this._startingEdge=this.initSubdiv(),this._locator=new uo(this)},po.EDGE_COINCIDENCE_TOL_FACTOR=1e3;class Io{constructor(){Io.constructor_.apply(this,arguments)}getLineSegment(){return this._ls}getEndZ(){return this._ls.getCoordinate(1).z}getStartZ(){return this._ls.getCoordinate(0).z}intersection(t){return this._ls.intersection(t.getLineSegment())}getStart(){return this._ls.getCoordinate(0)}getEnd(){return this._ls.getCoordinate(1)}getEndY(){return this._ls.getCoordinate(1).y}getStartX(){return this._ls.getCoordinate(0).x}equalsTopo(t){return this._ls.equalsTopo(t.getLineSegment())}getStartY(){return this._ls.getCoordinate(0).y}setData(t){this._data=t}getData(){return this._data}getEndX(){return this._ls.getCoordinate(1).x}toString(){return this._ls.toString()}getClass(){return Io}get interfaces_(){return[]}}Io.constructor_=function(){if(this._ls=null,this._data=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._ls=new Ae(t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._ls=new Ae(t,e),this._data=i}else if(6===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],r=arguments[4],s=arguments[5];Io.constructor_.call(this,new _(t,e,i),new _(n,r,s))}else if(7===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],r=arguments[4],s=arguments[5],o=arguments[6];Io.constructor_.call(this,new _(t,e,i),new _(n,r,s),o)}};class Eo{constructor(){Eo.constructor_.apply(this,arguments)}static computeVertexEnvelope(t){for(var e=new M,i=t.iterator();i.hasNext();){var n=i.next();e.expandToInclude(n.getCoordinate())}return e}getInitialVertices(){return this._initialVertices}getKDT(){return this._kdt}enforceConstraints(){this.addConstraintVertices();var t=0,e=0;do{e=this.enforceGabriel(this._segments),t++}while(e>0&&t=1)return e;var n=(e.x-t.x)*i+t.x,r=(e.y-t.y)*i+t.y,s=(e.z-t.z)*i+t.z;return new _(n,r,s)}static compareLocationValues(t,e,i,n,r,s){return tn?1:er?1:is?1:0}getSegmentIndex(){return this._segmentIndex}getComponentIndex(){return this._componentIndex}isEndpoint(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex>=e||this._segmentIndex===e&&this._segmentFraction>=1}isValid(t){if(this._componentIndex<0||this._componentIndex>=t.getNumGeometries())return!1;var e=t.getGeometryN(this._componentIndex);return!(this._segmentIndex<0||this._segmentIndex>e.getNumPoints()||this._segmentIndex===e.getNumPoints()&&0!==this._segmentFraction||this._segmentFraction<0||this._segmentFraction>1)}normalize(){this._segmentFraction<0&&(this._segmentFraction=0),this._segmentFraction>1&&(this._segmentFraction=1),this._componentIndex<0&&(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0),this._segmentIndex<0&&(this._segmentIndex=0,this._segmentFraction=0),1===this._segmentFraction&&(this._segmentFraction=0,this._segmentIndex+=1)}toLowest(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex=e.getNumPoints()-1)return i;var n=e.getCoordinateN(this._segmentIndex+1);return bo.pointAlongSegmentByFraction(i,n,this._segmentFraction)}getSegmentFraction(){return this._segmentFraction}getSegment(t){var e=t.getGeometryN(this._componentIndex),i=e.getCoordinateN(this._segmentIndex);if(this._segmentIndex>=e.getNumPoints()-1){var n=e.getCoordinateN(e.getNumPoints()-2);return new Ae(n,i)}var r=e.getCoordinateN(this._segmentIndex+1);return new Ae(i,r)}clamp(t){if(this._componentIndex>=t.getNumGeometries())return this.setToEnd(t),null;if(this._segmentIndex>=t.getNumPoints()){var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}}setToEnd(t){this._componentIndex=t.getNumGeometries()-1;var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}compareTo(t){var e=t;return this._componentIndexe._componentIndex?1:this._segmentIndexe._segmentIndex?1:this._segmentFractione._segmentFraction?1:0}copy(){return new bo(this._componentIndex,this._segmentIndex,this._segmentFraction)}toString(){return"LinearLoc["+this._componentIndex+", "+this._segmentIndex+", "+this._segmentFraction+"]"}isOnSameSegment(t){return this._componentIndex===t._componentIndex&&(this._segmentIndex===t._segmentIndex||t._segmentIndex-this._segmentIndex==1&&0===t._segmentFraction||this._segmentIndex-t._segmentIndex==1&&0===this._segmentFraction)}snapToVertex(t,e){if(this._segmentFraction<=0||this._segmentFraction>=1)return null;var i=this.getSegmentLength(t),n=this._segmentFraction*i,r=i-n;n<=r&&nt?1:this._segmentIndexe?1:this._segmentFractioni?1:0}getSegmentLength(t){var e=t.getGeometryN(this._componentIndex),i=this._segmentIndex;this._segmentIndex>=e.getNumPoints()-1&&(i=e.getNumPoints()-2);var n=e.getCoordinateN(i),r=e.getCoordinateN(i+1);return n.distance(r)}isVertex(){return this._segmentFraction<=0||this._segmentFraction>=1}getClass(){return bo}get interfaces_(){return[u]}}bo.constructor_=function(){if(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._componentIndex=t._componentIndex,this._segmentIndex=t._segmentIndex,this._segmentFraction=t._segmentFraction}else if(2===arguments.length){let t=arguments[0],e=arguments[1];bo.constructor_.call(this,0,t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,this.normalize()}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,n&&this.normalize()}};class Bo{constructor(){Bo.constructor_.apply(this,arguments)}static segmentEndVertexIndex(t){return t.getSegmentFraction()>0?t.getSegmentIndex()+1:t.getSegmentIndex()}getComponentIndex(){return this._componentIndex}getLine(){return this._currentLine}getVertexIndex(){return this._vertexIndex}getSegmentEnd(){return this._vertexIndex=this._currentLine.getNumPoints()&&(this._componentIndex++,this.loadCurrentLine(),this._vertexIndex=0)}loadCurrentLine(){if(this._componentIndex>=this._numLines)return this._currentLine=null,null;this._currentLine=this._linearGeom.getGeometryN(this._componentIndex)}getSegmentStart(){return this._currentLine.getCoordinateN(this._vertexIndex)}isEndOfLine(){return!(this._componentIndex>=this._numLines||this._vertexIndex=this._numLines||this._componentIndex===this._numLines-1&&this._vertexIndex>=this._currentLine.getNumPoints())}getClass(){return Bo}get interfaces_(){return[]}}Bo.constructor_=function(){if(this._linearGeom=null,this._numLines=null,this._currentLine=null,this._componentIndex=0,this._vertexIndex=0,1===arguments.length){let t=arguments[0];Bo.constructor_.call(this,t,0,0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];Bo.constructor_.call(this,t,e.getComponentIndex(),Bo.segmentEndVertexIndex(e))}else if(3===arguments.length){let t=arguments[0],e=arguments[1],n=arguments[2];if(!I(t,At))throw new i("Lineal geometry is required");this._linearGeom=t,this._numLines=t.getNumGeometries(),this._componentIndex=e,this._vertexIndex=n,this.loadCurrentLine()}};class Lo{constructor(){Lo.constructor_.apply(this,arguments)}static indexOf(t,e){return new Lo(t).indexOf(e)}static indexOfAfter(t,e,i){return new Lo(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,null)}indexOfFromStart(t,e){for(var i=r.MAX_VALUE,n=0,s=0,o=-1,a=new Ae,l=new Bo(this._linearGeom);l.hasNext();l.next())if(!l.isEndOfLine()){a.p0=l.getSegmentStart(),a.p1=l.getSegmentEnd();var h=a.distance(t),c=a.segmentFraction(t),u=l.getComponentIndex(),g=l.getVertexIndex();h=0,"computed location is before specified minimum location"),n}getClass(){return Lo}get interfaces_(){return[]}}Lo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Mo{constructor(){Mo.constructor_.apply(this,arguments)}static indicesOf(t,e){return new Mo(t).indicesOf(e)}indicesOf(t){var e=t.getGeometryN(0).getCoordinateN(0),i=t.getGeometryN(t.getNumGeometries()-1),n=i.getCoordinateN(i.getNumPoints()-1),r=new Lo(this._linearGeom),s=new Array(2).fill(null);return s[0]=r.indexOf(e),0===t.getLength()?s[1]=s[0].copy():s[1]=r.indexOfAfter(n,s[0]),s}getClass(){return Mo}get interfaces_(){return[]}}Mo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class To{constructor(){To.constructor_.apply(this,arguments)}getGeometry(){return this.endLine(),this._geomFact.buildGeometry(this._lines)}getLastCoordinate(){return this._lastPt}endLine(){if(null===this._coordList)return null;if(this._ignoreInvalidLines&&this._coordList.size()<2)return this._coordList=null,null;var t=this._coordList.toCoordinateArray(),e=t;this._fixInvalidLines&&(e=this.validCoordinateSequence(t)),this._coordList=null;var n=null;try{n=this._geomFact.createLineString(e)}catch(t){if(!(t instanceof i))throw t;if(!this._ignoreInvalidLines)throw t}null!==n&&this._lines.add(n)}setFixInvalidLines(t){this._fixInvalidLines=t}add(){if(1===arguments.length){let t=arguments[0];this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];null===this._coordList&&(this._coordList=new L),this._coordList.add(t,e),this._lastPt=t}}setIgnoreInvalidLines(t){this._ignoreInvalidLines=t}validCoordinateSequence(t){return t.length>=2?t:[t[0],t[0]]}getClass(){return To}get interfaces_(){return[]}}To.constructor_=function(){this._geomFact=null,this._lines=new b,this._coordList=null,this._ignoreInvalidLines=!1,this._fixInvalidLines=!1,this._lastPt=null;let t=arguments[0];this._geomFact=t};class Ro{constructor(){Ro.constructor_.apply(this,arguments)}static extract(t,e,i){return new Ro(t).extract(e,i)}computeLinear(t,e){var i=new To(this._line.getFactory());i.setFixInvalidLines(!0),t.isVertex()||i.add(t.getCoordinate(this._line));for(var n=new Bo(this._line,t);n.hasNext()&&!(e.compareLocationValues(n.getComponentIndex(),n.getVertexIndex(),0)<0);n.next()){var r=n.getSegmentStart();i.add(r),n.isEndOfLine()&&i.endLine()}return e.isVertex()||i.add(e.getCoordinate(this._line)),i.getGeometry()}computeLine(t,e){var i=this._line.getCoordinates(),n=new L,r=t.getSegmentIndex();t.getSegmentFraction()>0&&(r+=1);var s=e.getSegmentIndex();1===e.getSegmentFraction()&&(s+=1),s>=i.length&&(s=i.length-1),t.isVertex()||n.add(t.getCoordinate(this._line));for(var o=r;o<=s;o++)n.add(i[o]);e.isVertex()||n.add(e.getCoordinate(this._line)),n.size()<=0&&n.add(t.getCoordinate(this._line));var a=n.toCoordinateArray();return a.length<=1&&(a=[a[0],a[0]]),this._line.getFactory().createLineString(a)}extract(t,e){return e.compareTo(t)<0?this.reverse(this.computeLinear(e,t)):this.computeLinear(t,e)}reverse(t){return t instanceof Dt||t instanceof xt?t.reverse():(m.shouldNeverReachHere("non-linear geometry encountered"),null)}getClass(){return Ro}get interfaces_(){return[]}}Ro.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class No{constructor(){No.constructor_.apply(this,arguments)}clampIndex(t){var e=t.copy();return e.clamp(this._linearGeom),e}project(t){return Lo.indexOf(this._linearGeom,t)}checkGeometryType(){if(!(this._linearGeom instanceof Dt||this._linearGeom instanceof xt))throw new i("Input geometry must be linear")}extractPoint(){if(1===arguments.length)return arguments[0].getCoordinate(this._linearGeom);if(2===arguments.length){let e=arguments[1];var t=arguments[0].toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),e)}}isValidIndex(t){return t.isValid(this._linearGeom)}getEndIndex(){return bo.getEndLocation(this._linearGeom)}getStartIndex(){return new bo}indexOfAfter(t,e){return Lo.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){return Ro.extract(this._linearGeom,t,e)}indexOf(t){return Lo.indexOf(this._linearGeom,t)}indicesOf(t){return Mo.indicesOf(this._linearGeom,t)}getClass(){return No}get interfaces_(){return[]}}No.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t,this.checkGeometryType()};class Po{constructor(){Po.constructor_.apply(this,arguments)}static indexOf(t,e){return new Po(t).indexOf(e)}static indexOfAfter(t,e,i){return new Po(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,-1)}indexOfFromStart(t,e){for(var i=r.MAX_VALUE,n=e,s=0,o=new Ae,a=new Bo(this._linearGeom);a.hasNext();){if(!a.isEndOfLine()){o.p0=a.getSegmentStart(),o.p1=a.getSegmentEnd();var l=o.distance(t),h=this.segmentNearestMeasure(o,t,s);le&&(n=h,i=l),s+=o.getLength()}a.next()}return n}indexOfAfter(t,e){if(e<0)return this.indexOf(t);var i=this._linearGeom.getLength();if(i=e,"computed index is before specified minimum index"),n}segmentNearestMeasure(t,e,i){var n=t.projectionFactor(e);return n<=0?i:n<=1?i+n*t.getLength():i+t.getLength()}getClass(){return Po}get interfaces_(){return[]}}Po.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Fo{constructor(){Fo.constructor_.apply(this,arguments)}static getLength(t,e){return new Fo(t).getLength(e)}static getLocation(){if(2===arguments.length){let t=arguments[1];return new Fo(arguments[0]).getLocation(t)}if(3===arguments.length){let t=arguments[1],e=arguments[2];return new Fo(arguments[0]).getLocation(t,e)}}getLength(t){for(var e=0,i=new Bo(this._linearGeom);i.hasNext();){if(!i.isEndOfLine()){var n=i.getSegmentStart(),r=i.getSegmentEnd().distance(n);if(t.getComponentIndex()===i.getComponentIndex()&&t.getSegmentIndex()===i.getVertexIndex())return e+r*t.getSegmentFraction();e+=r}i.next()}return e}resolveHigher(t){if(!t.isEndpoint(this._linearGeom))return t;var e=t.getComponentIndex();if(e>=this._linearGeom.getNumGeometries()-1)return t;do{e++}while(et){var a=(t-e)/o;return n=i.getComponentIndex(),r=i.getVertexIndex(),new bo(n,r,a)}e+=o}i.next()}return bo.getEndLocation(this._linearGeom)}getClass(){return Fo}get interfaces_(){return[]}}Fo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Do{constructor(){Do.constructor_.apply(this,arguments)}clampIndex(t){var e=this.positiveIndex(t),i=this.getStartIndex();if(en?n:e}locationOf(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Fo.getLocation(this._linearGeom,t,e)}}project(t){return Po.indexOf(this._linearGeom,t)}positiveIndex(t){return t>=0?t:this._linearGeom.getLength()+t}extractPoint(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t).getCoordinate(this._linearGeom)}if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=Fo.getLocation(this._linearGeom,e).toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),i)}}isValidIndex(t){return t>=this.getStartIndex()&&t<=this.getEndIndex()}getEndIndex(){return this._linearGeom.getLength()}getStartIndex(){return 0}indexOfAfter(t,e){return Po.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){new No(this._linearGeom);var i=this.clampIndex(t),n=this.clampIndex(e),r=i===n,s=this.locationOf(i,r),o=this.locationOf(n);return Ro.extract(this._linearGeom,s,o)}indexOf(t){return Po.indexOf(this._linearGeom,t)}indicesOf(t){var e=Mo.indicesOf(this._linearGeom,t);return[Fo.getLength(this._linearGeom,e[0]),Fo.getLength(this._linearGeom,e[1])]}getClass(){return Do}get interfaces_(){return[]}}Do.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};var Oo=Object.freeze({LengthIndexedLine:Do,LengthLocationMap:Fo,LinearGeometryBuilder:To,LinearIterator:Bo,LinearLocation:bo,LocationIndexedLine:No});class Qo{get interfaces_(){return[]}getClass(){return Qo}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),$r.overlayOp(t,e,es.UNION)}}j.prototype.equalsTopo=function(t){return!!this.getEnvelopeInternal().equals(t.getEnvelopeInternal())&&xs.relate(this,t).isEquals(this.getDimension(),t.getDimension())},j.prototype.union=function(){if(0===arguments.length)return Ms.union(this);if(1===arguments.length){let t=arguments[0];return Qo.union(this,t)}},j.prototype.isValid=function(){return Os.isValid(this)},j.prototype.intersection=function(t){if(this.isEmpty()||t.isEmpty())return es.createEmptyResult(es.INTERSECTION,this,t,this._factory);if(this.isGeometryCollection()){var e=t;return qr.map(this,{interfaces_:[MapOp],map:function(t){return t.intersection(e)}})}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.INTERSECTION)},j.prototype.covers=function(t){return xs.covers(this,t)},j.prototype.coveredBy=function(t){return xs.covers(t,this)},j.prototype.touches=function(t){return xs.touches(this,t)},j.prototype.intersects=function(t){return xs.intersects(this,t)},j.prototype.within=function(t){return xs.contains(t,this)},j.prototype.overlaps=function(t){return xs.overlaps(this,t)},j.prototype.disjoint=function(t){return xs.disjoint(this,t)},j.prototype.crosses=function(t){return xs.crosses(this,t)},j.prototype.buffer=function(){if(1===arguments.length){let t=arguments[0];return mr.bufferOp(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return mr.bufferOp(this,t,e)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return mr.bufferOp(this,t,e,i)}},j.prototype.convexHull=function(){return new $e(this).getConvexHull()},j.prototype.relate=function(...t){if(1===arguments.length){let t=arguments[0];return xs.relate(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return xs.relate(this,t).matches(e)}},j.prototype.getCentroid=function(){if(this.isEmpty())return this._factory.createPoint();var t=We.getCentroid(this);return this.createPointFromInternalCoord(t,this)},j.prototype.getInteriorPoint=function(){if(this.isEmpty())return this._factory.createPoint();var t=null,e=this.getDimension();return t=0===e?new ri(this).getInteriorPoint():1===e?new ni(this).getInteriorPoint():new ei(this).getInteriorPoint(),this.createPointFromInternalCoord(t,this)},j.prototype.symDifference=function(t){if(this.isEmpty()||t.isEmpty()){if(this.isEmpty()&&t.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,this,t,this._factory);if(this.isEmpty())return t.copy();if(t.isEmpty())return this.copy()}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.SYMDIFFERENCE)},j.prototype.createPointFromInternalCoord=function(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)},j.prototype.toText=function(){return(new ue).write(this)},j.prototype.toString=function(){this.toText()},j.prototype.contains=function(t){return xs.contains(this,t)},j.prototype.difference=function(t){return this.isEmpty()?es.createEmptyResult(es.DIFFERENCE,this,t,this._factory):t.isEmpty()?this.copy():(this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.DIFFERENCE))},j.prototype.isSimple=function(){return new kn(this).isSimple()},j.prototype.isWithinDistance=function(t,e){return!(this.getEnvelopeInternal().distance(t.getEnvelopeInternal())>e)&&vr.isWithinDistance(this,t,e)},j.prototype.distance=function(t){return vr.distance(this,t)},j.prototype.isEquivalentClass=function(t){return this.getClass()===t.getClass()},t.version="2.0.2 (f363091)",t.algorithm=ai,t.densify=ui,t.dissolve=yi,t.geom=ye,t.geomgraph=zi,t.index=fn,t.io=Cn,t.noding=Qn,t.operation=ks,t.precision=qs,t.simplify=eo,t.triangulate=So,t.linearref=Oo,Object.defineProperty(t,"__esModule",{value:!0})}(e)},197:(t,e)=>{var i,n,r,s,o,a,l,h,c,u,g,d,A; -/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */n={defaultNoDataValue:-34027999387901484e22,decode:function(t,e){var i=(e=e||{}).encodedMaskData||null===e.encodedMaskData,l=a(t,e.inputOffset||0,i),h=null!==e.noDataValue?e.noDataValue:n.defaultNoDataValue,c=r(l,e.pixelType||Float32Array,e.encodedMaskData,h,e.returnMask),u={width:l.width,height:l.height,pixelData:c.resultPixels,minValue:c.minValue,maxValue:l.pixels.maxValue,noDataValue:h};return c.resultMask&&(u.maskData=c.resultMask),e.returnEncodedMask&&l.mask&&(u.encodedMaskData=l.mask.bitset?l.mask.bitset:null),e.returnFileInfo&&(u.fileInfo=s(l),e.computeUsedBitDepths&&(u.fileInfo.bitDepths=o(l))),u}},r=function(t,e,i,n,r){var s,o,a,h=0,c=t.pixels.numBlocksX,u=t.pixels.numBlocksY,g=Math.floor(t.width/c),d=Math.floor(t.height/u),A=2*t.maxZError,p=Number.MAX_VALUE;i=i||(t.mask?t.mask.bitset:null),o=new e(t.width*t.height),r&&i&&(a=new Uint8Array(t.width*t.height));for(var f,m,_=new Float32Array(g*d),y=0;y<=u;y++){var I=y!==u?d:t.height%u;if(0!==I)for(var E=0;E<=c;E++){var C=E!==c?g:t.width%c;if(0!==C){var v,x,w,S,b=y*t.width*d+E*g,B=t.width-C,L=t.pixels.blocks[h];if(L.encoding<2?(0===L.encoding?v=L.rawData:(l(L.stuffedData,L.bitsPerPixel,L.numValidPixels,L.offset,A,_,t.pixels.maxValue),v=_),x=0):w=2===L.encoding?0:L.offset,i)for(m=0;m>3],S<<=7&b),f=0;f>3]),128&S?(a&&(a[b]=1),p=p>(s=L.encoding<2?v[x++]:w)?s:p,o[b++]=s):(a&&(a[b]=0),o[b++]=n),S<<=1;b+=B}else if(L.encoding<2)for(m=0;m(s=v[x++])?s:p,o[b++]=s;b+=B}else for(p=p>w?w:p,m=0;m0){var o=new Uint8Array(Math.ceil(n.width*n.height/8)),a=(s=new DataView(t,e,n.mask.numBytes)).getInt16(0,!0),l=2,h=0;do{if(a>0)for(;a--;)o[h++]=s.getUint8(l++);else{var c=s.getUint8(l++);for(a=-a;a--;)o[h++]=c}a=s.getInt16(l,!0),l+=2}while(l0?1:0),A=g+(n.height%g>0?1:0);n.pixels.blocks=new Array(d*A);for(var p=0,f=0;f3)throw"Invalid block encoding ("+I.encoding+")";if(2!==I.encoding){if(0!==E&&2!==E){if(E>>=6,I.offsetType=E,2===E)I.offset=s.getInt8(1),_++;else if(1===E)I.offset=s.getInt16(1,!0),_+=2;else{if(0!==E)throw"Invalid block offset type";I.offset=s.getFloat32(1,!0),_+=4}if(1===I.encoding)if(E=s.getUint8(_),_++,I.bitsPerPixel=63&E,E>>=6,I.numValidPixelsType=E,2===E)I.numValidPixels=s.getUint8(_),_++;else if(1===E)I.numValidPixels=s.getUint16(_,!0),_+=2;else{if(0!==E)throw"Invalid valid pixel count type";I.numValidPixels=s.getUint32(_,!0),_+=4}}var C;if(e+=_,3!==I.encoding)if(0===I.encoding){var v=(n.pixels.numBytes-1)/4;if(v!==Math.floor(v))throw"uncompressed block has invalid length";C=new ArrayBuffer(4*v),new Uint8Array(C).set(new Uint8Array(t,e,4*v));var x=new Float32Array(C);I.rawData=x,e+=4*v}else if(1===I.encoding){var w=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),S=Math.ceil(w/4);C=new ArrayBuffer(4*S),new Uint8Array(C).set(new Uint8Array(t,e,w)),I.stuffedData=new Uint32Array(C),e+=w}}else e++}return n.eofOffset=e,n},l=function(t,e,i,n,r,s,o){var a,l,h,c=(1<=e)l=h>>>g-e&c,g-=e;else{var p=e-g;l=(h&c)<>>(g=32-p)}s[a]=l=i?(h=c>>>p-i&d,p-=i):(h=(c&d)<<(u=i-p)&d,h+=(c=t[A++])>>>(p=32-u)),e[l]=r[h];else for(g=Math.ceil((a-s)/o),l=0;l=i?(h=c>>>p-i&d,p-=i):(h=(c&d)<<(u=i-p)&d,h+=(c=t[A++])>>>(p=32-u)),e[l]=h=e?(g=o>>>u-e&a,u-=e):(g=(o&a)<<(c=e-u)&a,g+=(o=t[l++])>>>(u=32-c)),d[h]=g=i?(h=c>>>p&g,A-=i,p+=i):(h=c>>>p&g,A=32-(u=i-A),h|=((c=t[d++])&(1<=i?(h=c>>>p&g,A-=i,p+=i):(h=c>>>p&g,A=32-(u=i-A),h|=((c=t[d++])&(1<=e?(g=o>>>d&a,u-=e,d+=e):(g=o>>>d&a,u=32-(c=e-u),g|=((o=t[l++])&(1<=i?(s=o>>>c-i&l,c-=i):(s=(o&l)<<(a=i-c)&l,s+=(o=t[h++])>>>(c=32-a)),e[r]=s;return e},s=function(t,e,i,n){var r,s,o,a,l=(1<=i?(s=o>>>u&l,c-=i,u+=i):(s=o>>>u&l,c=32-(a=i-c),s|=((o=t[h++])&(1<=359?359:r;r-=o;do{e+=t[s++]<<8,i+=e+=t[s++]}while(--o);e=(65535&e)+(e>>>16),i=(65535&i)+(i>>>16)}return 1&n&&(i+=e+=t[s]<<8),((i=(65535&i)+(i>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(t,e){var i=e.ptr,n=new Uint8Array(t,i,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,n),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;i+=6;var s,o=new DataView(t,i,8),a=o.getInt32(0,!0);if(r.fileVersion=a,i+=4,a>=3&&(r.checksum=o.getUint32(4,!0),i+=4),o=new DataView(t,i,12),r.height=o.getUint32(0,!0),r.width=o.getUint32(4,!0),i+=8,a>=4?(r.numDims=o.getUint32(8,!0),i+=4):r.numDims=1,o=new DataView(t,i,40),r.numValidPixel=o.getUint32(0,!0),r.microBlockSize=o.getInt32(4,!0),r.blobSize=o.getInt32(8,!0),r.imageType=o.getInt32(12,!0),r.maxZError=o.getFloat64(16,!0),r.zMin=o.getFloat64(24,!0),r.zMax=o.getFloat64(32,!0),i+=40,e.headerInfo=r,e.ptr=i,a>=3&&(s=a>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(t,i-s,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(t,e){var i=e.headerInfo,n=this.getDataTypeArray(i.imageType),r=i.numDims*this.getDataTypeSize(i.imageType),s=this.readSubArray(t,e.ptr,n,r),o=this.readSubArray(t,e.ptr+r,n,r);e.ptr+=2*r;var a,l=!0;for(a=0;a0){i=new Uint8Array(Math.ceil(o/8));var c=(l=new DataView(t,r,h.numBytes)).getInt16(0,!0),u=2,g=0,d=0;do{if(c>0)for(;c--;)i[g++]=l.getUint8(u++);else for(d=l.getUint8(u++),c=-c;c--;)i[g++]=d;c=l.getInt16(u,!0),u+=2}while(u>3],A<<=7&p):A=i[p>>3],128&A&&(n[p]=1);e.pixels.resultMask=n,h.bitset=i,r+=h.numBytes}return e.ptr=r,e.mask=h,!0},readDataOneSweep:function(t,e,i,n){var r,s=e.ptr,a=e.headerInfo,l=a.numDims,h=a.width*a.height,c=a.imageType,u=a.numValidPixel*o.getDataTypeSize(c)*l,g=e.pixels.resultMask;if(i===Uint8Array)r=new Uint8Array(t,s,u);else{var d=new ArrayBuffer(u);new Uint8Array(d).set(new Uint8Array(t,s,u)),r=new i(d)}if(r.length===h*l)e.pixels.resultPixels=n?o.swapDimensionOrder(r,h,l,i,!0):r;else{e.pixels.resultPixels=new i(h*l);var A=0,p=0,f=0,m=0;if(l>1){if(n){for(p=0;p=l)return!1;var h=new Uint32Array(l-s);o.decodeBits(t,e,h);var c,u,g,d,A=[];for(c=s;c0&&(A[u].second=_<>>32-d,32-I>=d?32===(I+=d)&&(I=0,_=y[++E]):(I+=d-32,_=y[++E],A[u].second|=_>>>32-I));var C=0,v=0,x=new a;for(c=0;c=i?i:C;var w,S,b,B,L,M=[];for(c=s;c0)if(w=[d,u],d<=v)for(S=A[u].second<=0;B--)S>>>B&1?(L.right||(L.right=new a),L=L.right):(L.left||(L.left=new a),L=L.left),0!==B||L.val||(L.val=w[1]);return{decodeLut:M,numBitsLUTQick:v,numBitsLUT:C,tree:x,stuffedData:y,srcPtr:E,bitPos:I}},readHuffman:function(t,e,i,n){var r,s,a,l,h,c,u,g,d,A=e.headerInfo.numDims,p=e.headerInfo.height,f=e.headerInfo.width,m=f*p,_=this.readHuffmanTree(t,e),y=_.decodeLut,I=_.tree,E=_.stuffedData,C=_.srcPtr,v=_.bitPos,x=_.numBitsLUTQick,w=_.numBitsLUT,S=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,B=0;v>0&&(C++,v=0);var L,M=E[C],T=1===e.encodeMode,R=new i(m*A),N=R;if(A<2||T){for(L=0;L1&&(N=new i(R.buffer,m*L,m),B=0),e.headerInfo.numValidPixel===f*p)for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,T?(a+=u>0?B:c>0?N[g-f]:B,a&=255,N[g]=a,B=a):N[g]=a}else for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,T?(u>0&&b[g-1]?a+=B:c>0&&b[g-f]?a+=N[g-f]:a+=B,a&=255,N[g]=a,B=a):N[g]=a}}else for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,N[g]=a}e.ptr=e.ptr+4*(C+1)+(v>0?4:0),e.pixels.resultPixels=R,A>1&&!n&&(e.pixels.resultPixels=o.swapDimensionOrder(R,m,A,i))},decodeBits:function(o,a,l,h,c){var u=a.headerInfo,g=u.fileVersion,d=0,A=o.byteLength-a.ptr>=5?5:o.byteLength-a.ptr,p=new DataView(o,a.ptr,A),f=p.getUint8(0);d++;var m=f>>6,_=0===m?4:3-m,y=(32&f)>0,I=31&f,E=0;if(1===_)E=p.getUint8(d),d++;else if(2===_)E=p.getUint16(d,!0),d+=2;else{if(4!==_)throw"Invalid valid pixel count type";E=p.getUint32(d,!0),d+=4}var C,v,x,w,S,b,B,L,M,T=2*u.maxZError,R=u.numDims>1?u.maxValues[c]:u.zMax;if(y){for(a.counter.lut++,L=p.getUint8(d),d++,w=Math.ceil((L-1)*I/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),x=new Uint8Array(v),a.ptr+=d,x.set(new Uint8Array(o,a.ptr,w)),B=new Uint32Array(v),a.ptr+=w,M=0;L-1>>>M;)M++;w=Math.ceil(E*M/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),(x=new Uint8Array(v)).set(new Uint8Array(o,a.ptr,w)),C=new Uint32Array(v),a.ptr+=w,b=g>=3?n(B,I,L-1,h,T,R):e(B,I,L-1,h,T,R),g>=3?i(C,l,M,E,b):t(C,l,M,E,b)}else a.counter.bitstuffer++,M=I,a.ptr+=d,M>0&&(w=Math.ceil(E*M/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),(x=new Uint8Array(v)).set(new Uint8Array(o,a.ptr,w)),C=new Uint32Array(v),a.ptr+=w,g>=3?null==h?s(C,l,M,E):i(C,l,M,E,!1,h,T,R):null==h?r(C,l,M,E):t(C,l,M,E,!1,h,T,R))},readTiles:function(t,e,i,n){var r=e.headerInfo,s=r.width,a=r.height,l=s*a,h=r.microBlockSize,c=r.imageType,u=o.getDataTypeSize(c),g=Math.ceil(s/h),d=Math.ceil(a/h);e.pixels.numBlocksY=d,e.pixels.numBlocksX=g,e.pixels.ptr=0;var A,p,f,m,_,y,I,E,C,v,x=0,w=0,S=0,b=0,B=0,L=0,M=0,T=0,R=0,N=0,P=0,F=0,D=0,O=0,Q=0,k=new i(h*h),G=a%h||h,U=s%h||h,q=r.numDims,V=e.pixels.resultMask,z=e.pixels.resultPixels,Y=r.fileVersion>=5?14:15,j=r.zMax;for(S=0;S1?(v=z,N=S*s*h+b*h,z=new i(e.pixels.resultPixels.buffer,l*E*u,l),j=r.maxValues[E]):v=null,M=t.byteLength-e.ptr,p={},Q=0,T=(A=new DataView(t,e.ptr,Math.min(10,M))).getUint8(0),Q++,C=r.fileVersion>=5?4&T:0,R=T>>6&255,(T>>2&Y)!=(b*h>>3&Y))throw"integrity issue";if(C&&0===E)throw"integrity issue";if((_=3&T)>3)throw e.ptr+=Q,"Invalid block encoding ("+_+")";if(2!==_)if(0===_){if(C)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=Q,F=(F=B*L*u)<(D=t.byteLength-e.ptr)?F:D,f=new ArrayBuffer(F%u==0?F:F+u-F%u),new Uint8Array(f).set(new Uint8Array(t,e.ptr,F)),m=new i(f),O=0,V)for(x=0;x1&&!n&&(e.pixels.resultPixels=o.swapDimensionOrder(e.pixels.resultPixels,l,q,i))},formatFileInfo:function(t){return{fileIdentifierString:t.headerInfo.fileIdentifierString,fileVersion:t.headerInfo.fileVersion,imageType:t.headerInfo.imageType,height:t.headerInfo.height,width:t.headerInfo.width,numValidPixel:t.headerInfo.numValidPixel,microBlockSize:t.headerInfo.microBlockSize,blobSize:t.headerInfo.blobSize,maxZError:t.headerInfo.maxZError,pixelType:o.getPixelType(t.headerInfo.imageType),eofOffset:t.eofOffset,mask:t.mask?{numBytes:t.mask.numBytes}:null,pixels:{numBlocksX:t.pixels.numBlocksX,numBlocksY:t.pixels.numBlocksY,maxValue:t.headerInfo.zMax,minValue:t.headerInfo.zMin,noDataValue:t.noDataValue}}},constructConstantSurface:function(t,e){var i=t.headerInfo.zMax,n=t.headerInfo.zMin,r=t.headerInfo.maxValues,s=t.headerInfo.numDims,o=t.headerInfo.height*t.headerInfo.width,a=0,l=0,h=0,c=t.pixels.resultMask,u=t.pixels.resultPixels;if(c)if(s>1){if(e)for(a=0;a1&&n!==i)if(e)for(a=0;a=-128&&e<=127;break;case 1:i=e>=0&&e<=255;break;case 2:i=e>=-32768&&e<=32767;break;case 3:i=e>=0&&e<=65536;break;case 4:i=e>=-2147483648&&e<=2147483647;break;case 5:i=e>=0&&e<=4294967296;break;case 6:i=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:i=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:i=!1}return i},getDataTypeSize:function(t){var e=0;switch(t){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=t}return e},getDataTypeUsed:function(t,e){var i=t;switch(t){case 2:case 4:i=t-e;break;case 3:case 5:i=t-2*e;break;case 6:i=0===e?t:1===e?2:1;break;case 7:i=0===e?t:t-2*e+1;break;default:i=t}return i},getOnePixel:function(t,e,i,n){var r=0;switch(i){case 0:r=n.getInt8(e);break;case 1:r=n.getUint8(e);break;case 2:r=n.getInt16(e,!0);break;case 3:r=n.getUint16(e,!0);break;case 4:r=n.getInt32(e,!0);break;case 5:r=n.getUInt32(e,!0);break;case 6:r=n.getFloat32(e,!0);break;case 7:r=n.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(t,e,i,n,r){var s=0,o=0,a=0,l=0,h=t;if(i>1)if(h=new n(e*i),r)for(s=0;s5)throw"unsupported lerc version 2."+a;o.readMask(t,r),s.numValidPixel===s.width*s.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var h=s.width*s.height;r.pixels.resultPixels=new l(h*s.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var c,u=!e.returnPixelInterleavedDims;if(0!==s.numValidPixel)if(s.zMax===s.zMin)o.constructConstantSurface(r,u);else if(a>=4&&o.checkMinMaxRanges(t,r))o.constructConstantSurface(r,u);else{var g=new DataView(t,r.ptr,2),d=g.getUint8(0);if(r.ptr++,d)o.readDataOneSweep(t,r,l,u);else if(a>1&&s.imageType<=1&&Math.abs(s.maxZError-.5)<1e-5){var A=g.getUint8(1);if(r.ptr++,r.encodeMode=A,A>2||a<4&&A>1)throw"Invalid Huffman flag "+A;A?o.readHuffman(t,r,l,u):o.readTiles(t,r,l,u)}else o.readTiles(t,r,l,u)}r.eofOffset=r.ptr,e.inputOffset?(c=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(c)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(c=r.headerInfo.blobSize-r.ptr,Math.abs(c)>=1&&(r.eofOffset=r.headerInfo.blobSize));var p={width:s.width,height:s.height,pixelData:r.pixels.resultPixels,minValue:s.zMin,maxValue:s.zMax,validPixelCount:s.numValidPixel,dimCount:s.numDims,dimStats:{minValues:s.minValues,maxValues:s.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&o.isValidPixelValue(s.imageType,i)){var f=r.pixels.resultMask;for(n=0;n1&&(h&&_.push(h),E.fileInfo.mask&&E.fileInfo.mask.numBytes>0&&I++),f++,y.pixels.push(E.pixelData),y.statistics.push({minValue:E.minValue,maxValue:E.maxValue,noDataValue:E.noDataValue,dimStats:E.dimStats})}if(n>1&&I>1){for(p=y.width*y.height,y.bandMasks=_,(h=new Uint8Array(p)).set(_[0]),c=1;c<_.length;c++)for(l=_[c],A=0;A{"use strict";t.exports=r;var n=i(645);function r(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}r.Varint=0,r.Fixed64=1,r.Bytes=2,r.Fixed32=5;var s=4294967296,o=1/s,a="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function l(t){return t.type===r.Bytes?t.readVarint()+t.pos:t.pos+1}function h(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function c(t,e,i){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(n);for(var r=i.pos-1;r>=t;r--)i.buf[r+n]=i.buf[r]}function u(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function C(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}r.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,s=this.pos;this.type=7&n,t(r,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=I(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=C(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=I(this.buf,this.pos)+I(this.buf,this.pos+4)*s;return this.pos+=8,t},readSFixed64:function(){var t=I(this.buf,this.pos)+C(this.buf,this.pos+4)*s;return this.pos+=8,t},readFloat:function(){var t=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,n=this.buf;return e=127&(i=n[this.pos++]),i<128?e:(e|=(127&(i=n[this.pos++]))<<7,i<128?e:(e|=(127&(i=n[this.pos++]))<<14,i<128?e:(e|=(127&(i=n[this.pos++]))<<21,i<128?e:function(t,e,i){var n,r,s=i.buf;if(r=s[i.pos++],n=(112&r)>>4,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<3,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<10,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<17,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<24,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(1&r)<<31,r<128)return h(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&a?function(t,e,i){return a.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var n="",r=e;for(;r239?4:l>223?3:l>191?2:1;if(r+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[r+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[r+1],o=t[r+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[r+1],o=t[r+2],a=t[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),n+=String.fromCharCode(h),r+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==r.Bytes)return t.push(this.readVarint(e));var i=l(this);for(t=t||[];this.pos127;);else if(e===r.Bytes)this.pos=this.readVarint()+this.pos;else if(e===r.Fixed32)this.pos+=4;else{if(e!==r.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,n;t>=0?(i=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var n,r,s=0;s55295&&n<57344){if(!r){n>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):r=n;continue}if(n<56320){t[i++]=239,t[i++]=191,t[i++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(t[i++]=239,t[i++]=191,t[i++]=189,r=null);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:(n<65536?t[i++]=n>>12|224:(t[i++]=n>>18|240,t[i++]=n>>12&63|128),t[i++]=n>>6&63|128),t[i++]=63&n|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&c(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),n.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),n.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&c(i,n,this),this.pos=i-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,i){this.writeTag(t,r.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,u,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,g,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,p,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,d,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,A,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,f,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,m,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,y,e)},writeBytesField:function(t,e){this.writeTag(t,r.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,r.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,r.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,r.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,r.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,r.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,r.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,r.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,r.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,r.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},402:function(t){t.exports=function(){"use strict";function t(t,n,r,s,o){!function t(i,n,r,s,o){for(;s>r;){if(s-r>600){var a=s-r+1,l=n-r+1,h=Math.log(a),c=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*c*(a-c)/a)*(l-a/2<0?-1:1);t(i,n,Math.max(r,Math.floor(n-l*c/a+u)),Math.min(s,Math.floor(n+(a-l)*c/a+u)),o)}var g=i[n],d=r,A=s;for(e(i,r,n),o(i[s],g)>0&&e(i,r,s);d0;)A--}0===o(i[r],g)?e(i,r,A):e(i,++A,s),A<=n&&(r=A+1),n<=A&&(s=A-1)}}(t,n,r||0,s||t.length-1,o||i)}function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function A(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function p(e,i,n,r,s){for(var o=[i,n];o.length;)if(!((n=o.pop())-(i=o.pop())<=r)){var a=i+Math.ceil((n-i)/r/2)*r;t(e,a,i,n,s),o.push(i,a,a,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,i=[];if(!d(t,e))return i;for(var n=this.toBBox,r=[];e;){for(var s=0;s=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)},n.prototype._split=function(t,e){var i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var o=this._chooseSplitIndex(i,r,n),a=A(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},n.prototype._splitRoot=function(t,e){this.data=A([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,i){for(var n,r,s,a,l,h,u,g=1/0,d=1/0,A=e;A<=i-e;A++){var p=o(t,0,A,this.toBBox),f=o(t,A,i,this.toBBox),m=(r=p,s=f,a=void 0,l=void 0,h=void 0,u=void 0,a=Math.max(r.minX,s.minX),l=Math.max(r.minY,s.minY),h=Math.min(r.maxX,s.maxX),u=Math.min(r.maxY,s.maxY),Math.max(0,h-a)*Math.max(0,u-l)),_=c(p)+c(f);m=e;d--){var A=t.children[d];a(l,t.leaf?r(A):A),h+=u(l)}return h},n.prototype._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)a(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():s(t[e],this.toBBox)},n}()},840:t=>{function e(t,e){const i=new RegExp(e,"g"),n=t.match(i);return n?n.length:0}t.exports=e,t.exports.default=e},635:(t,e,i)=>{const n=i(622),r=i(566),s=i(840);function o(t,e,i){const o=i&&i.debug||!1,a=!(i&&!1===typeof i.nested),l=i&&i.startIndex||0;o&&console.log("[xml-utils] starting findTagByName with",e," and ",i);const h=n(t,`<${e}[ \n>/]`,l);if(o&&console.log("[xml-utils] start:",h),-1===h)return;const c=t.slice(h+e.length);let u=r(c,"^[^<]*[ /]>",0);const g=-1!==u&&"/"===c[u-1];if(o&&console.log("[xml-utils] selfClosing:",g),!1===g)if(a){let t=0,i=1,n=0;for(;-1!==(u=r(c,"[ /]"+e+">",t));){const r=c.substring(t,u+1);if(i+=s(r,"<"+e+"[ \n\t>]"),n+=s(r,""),n>=i)break;t=u}}else u=r(c,"[ /]"+e+">",0);const d=h+e.length+u+1;if(o&&console.log("[xml-utils] end:",d),-1===d)return;const A=t.slice(h,d);let p;return p=g?null:A.slice(A.indexOf(">")+1,A.lastIndexOf("<")),{inner:p,outer:A,start:h,end:d}}t.exports=o,t.exports.default=o},602:(t,e,i)=>{const n=i(635);function r(t,e,i){const r=[],s=i&&i.debug||!1,o=!i||"boolean"!=typeof i.nested||i.nested;let a,l=i&&i.startIndex||0;for(;a=n(t,e,{debug:s,startIndex:l});)l=o?a.start+1+e.length:a.end,r.push(a);return s&&console.log("findTagsByName found",r.length,"tags"),r}t.exports=r,t.exports.default=r},330:t=>{function e(t,e,i){const n=i&&i.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+t);const r="object"==typeof t?t.outer:t,s=r.slice(0,r.indexOf(">")+1),o=['"',"'"];for(let t=0;t{function e(t,e,i){const n=new RegExp(e).exec(t.slice(i));return n?i+n.index+n[0].length-1:-1}t.exports=e,t.exports.default=e},622:t=>{function e(t,e,i){const n=new RegExp(e).exec(t.slice(i));return n?i+n.index:-1}t.exports=e,t.exports.default=e},421:()=>{[].includes||(Array.prototype.includes=function(t){let e=Object(this),i=parseInt(e.length)||0;if(0===i)return!1;let n,r,s=parseInt(arguments[1])||0;for(s>=0?n=s:(n=i+s,n<0&&(n=0));n=0?n=r:(n=i+r,n<0&&(n=0));let s,o=[];for(;n{if(null!==t.equals&&"function"==typeof t.equals&&t.equals.call)return t.equals(e);if(null!==e.equals&&"function"==typeof e.equals&&e.equals.call)return e.equals(t);{let i,n=[],r=[];if(isNaN(t)&&isNaN(e)&&"number"==typeof t&&"number"==typeof e)return!0;if(t===e)return!0;if("function"==typeof t&&"function"==typeof e||t instanceof Date&&e instanceof Date||t instanceof RegExp&&e instanceof RegExp||t instanceof String&&e instanceof String||t instanceof Number&&e instanceof Number)return t.toString()===e.toString();if(!(t instanceof Object&&e instanceof Object))return!1;if(t.isPrototypeOf(e)||e.isPrototypeOf(t))return!1;if(t.constructor!==e.constructor)return!1;if(t.prototype!==e.prototype)return!1;if(n.indexOf(t)>-1||r.indexOf(e)>-1)return!1;for(i in e){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1}for(i in t){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1;switch(typeof t[i]){case"object":case"function":if(n.push(t),r.push(e),!Object.equals(t[i],e[i]))return!1;n.pop(),r.pop();break;default:if(t[i]!==e[i])return!1}}return!0}})},752:()=>{},640:()=>{},630:()=>{},737:(t,e,i)=>{"use strict";function n(t,e){let i=t.length-e,n=0;do{for(let i=e;i>0;i--)t[n+e]+=t[n],n++;i-=e}while(i>0)}function r(t,e,i){let n=0,r=t.length;const s=r/i;for(;r>e;){for(let i=e;i>0;--i)t[n+e]+=t[n],++n;r-=e}const o=t.slice();for(let e=0;es});class s{async decode(t,e){const i=await this.decodeBlock(e),s=t.Predictor||1;if(1!==s){const e=!t.StripOffsets;return function(t,e,i,s,o,a){if(!e||1===e)return t;for(let t=0;t=t.byteLength);++a){let s;if(2===e){switch(o[0]){case 8:s=new Uint8Array(t,a*h*i*l,h*i*l);break;case 16:s=new Uint16Array(t,a*h*i*l,h*i*l/2);break;case 32:s=new Uint32Array(t,a*h*i*l,h*i*l/4);break;default:throw new Error(`Predictor 2 not allowed with ${o[0]} bits per sample.`)}n(s,h)}else 3===e&&(s=new Uint8Array(t,a*h*i*l,h*i*l),r(s,h,l))}return t}(i,s,e?t.TileWidth:t.ImageWidth,e?t.TileLength:t.RowsPerStrip||t.ImageLength,t.BitsPerSample,t.PlanarConfiguration)}return i}}},522:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>s});var n=i(885),r=i(737);class s extends r.Z{decodeBlock(t){return(0,n.rr)(new Uint8Array(t)).buffer}}},347:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>m});var n=i(737);const r=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,a=3406,l=2276,h=1567,c=3784,u=5793,g=2896;function d(t,e){let i=0;const n=[];let r=16;for(;r>0&&!t[r-1];)--r;n.push({children:[],index:0});let s,o=n[0];for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;i++}a+10)return p--,A>>p&1;if(A=t[d++],255===A){const e=t[d++];if(e)throw new Error(`unexpected marker: ${(A<<8|e).toString(16)}`)}return p=7,A>>>7}function m(t){let e,i=t;for(;null!==(e=f());){if(i=i[e],"number"==typeof i)return i;if("object"!=typeof i)throw new Error("invalid huffman sequence")}return null}function _(t){let e=t,i=0;for(;e>0;){const t=f();if(null===t)return;i=i<<1|t,--e}return i}function y(t){const e=_(t);return e>=1<0)return void I--;let i=o;const n=a;for(;i<=n;){const n=m(t.huffmanTableAC),s=15&n,o=n>>4;if(0===s){if(o<15){I=_(o)+(1<>4,0===i)s<15?(I=_(s)+(1<>4;if(0===n){if(o<15)break;s+=16}else s+=o,e[r[s]]=y(n),s++}};let R,N,P=0;N=1===w?n[0].blocksPerLine*n[0].blocksPerColumn:c*i.mcusPerColumn;const F=s||N;for(;P=65488&&R<=65495))break;d+=2}return d-g}function p(t,e){const i=[],{blocksPerLine:n,blocksPerColumn:r}=e,d=n<<3,A=new Int32Array(64),p=new Uint8Array(64);function f(t,i,n){const r=e.quantizationTable;let d,A,p,f,m,_,y,I,E;const C=n;let v;for(v=0;v<64;v++)C[v]=t[v]*r[v];for(v=0;v<8;++v){const t=8*v;0!==C[1+t]||0!==C[2+t]||0!==C[3+t]||0!==C[4+t]||0!==C[5+t]||0!==C[6+t]||0!==C[7+t]?(d=u*C[0+t]+128>>8,A=u*C[4+t]+128>>8,p=C[2+t],f=C[6+t],m=g*(C[1+t]-C[7+t])+128>>8,I=g*(C[1+t]+C[7+t])+128>>8,_=C[3+t]<<4,y=C[5+t]<<4,E=d-A+1>>1,d=d+A+1>>1,A=E,E=p*c+f*h+128>>8,p=p*h-f*c+128>>8,f=E,E=m-y+1>>1,m=m+y+1>>1,y=E,E=I+_+1>>1,_=I-_+1>>1,I=E,E=d-f+1>>1,d=d+f+1>>1,f=E,E=A-p+1>>1,A=A+p+1>>1,p=E,E=m*l+I*a+2048>>12,m=m*a-I*l+2048>>12,I=E,E=_*o+y*s+2048>>12,_=_*s-y*o+2048>>12,y=E,C[0+t]=d+I,C[7+t]=d-I,C[1+t]=A+y,C[6+t]=A-y,C[2+t]=p+_,C[5+t]=p-_,C[3+t]=f+m,C[4+t]=f-m):(E=u*C[0+t]+512>>10,C[0+t]=E,C[1+t]=E,C[2+t]=E,C[3+t]=E,C[4+t]=E,C[5+t]=E,C[6+t]=E,C[7+t]=E)}for(v=0;v<8;++v){const t=v;0!==C[8+t]||0!==C[16+t]||0!==C[24+t]||0!==C[32+t]||0!==C[40+t]||0!==C[48+t]||0!==C[56+t]?(d=u*C[0+t]+2048>>12,A=u*C[32+t]+2048>>12,p=C[16+t],f=C[48+t],m=g*(C[8+t]-C[56+t])+2048>>12,I=g*(C[8+t]+C[56+t])+2048>>12,_=C[24+t],y=C[40+t],E=d-A+1>>1,d=d+A+1>>1,A=E,E=p*c+f*h+2048>>12,p=p*h-f*c+2048>>12,f=E,E=m-y+1>>1,m=m+y+1>>1,y=E,E=I+_+1>>1,_=I-_+1>>1,I=E,E=d-f+1>>1,d=d+f+1>>1,f=E,E=A-p+1>>1,A=A+p+1>>1,p=E,E=m*l+I*a+2048>>12,m=m*a-I*l+2048>>12,I=E,E=_*o+y*s+2048>>12,_=_*s-y*o+2048>>12,y=E,C[0+t]=d+I,C[56+t]=d-I,C[8+t]=A+y,C[48+t]=A-y,C[16+t]=p+_,C[40+t]=p-_,C[24+t]=f+m,C[32+t]=f-m):(E=u*n[v+0]+8192>>14,C[0+t]=E,C[8+t]=E,C[16+t]=E,C[24+t]=E,C[32+t]=E,C[40+t]=E,C[48+t]=E,C[56+t]=E)}for(v=0;v<64;++v){const t=128+(C[v]+8>>4);i[v]=t<0?0:t>255?255:t}}for(let t=0;t>4==0)for(let i=0;i<64;i++){s[r[i]]=t[e++]}else{if(n>>4!=1)throw new Error("DQT: invalid table spec");for(let t=0;t<64;t++){s[r[t]]=i()}}this.quantizationTables[15&n]=s}break}case 65472:case 65473:case 65474:{i();const n={extended:65473===o,progressive:65474===o,precision:t[e++],scanLines:i(),samplesPerLine:i(),components:{},componentsOrder:[]},r=t[e++];let a;for(let i=0;i>4,r=15&t[e+1],s=t[e+2];n.componentsOrder.push(a),n.components[a]={h:i,v:r,quantizationIdx:s},e+=3}s(n),this.frames.push(n);break}case 65476:{const n=i();for(let i=2;i>4==0?this.huffmanTablesDC[15&n]=d(r,o):this.huffmanTablesAC[15&n]=d(r,o)}break}case 65501:i(),this.resetInterval=i();break;case 65498:{i();const n=t[e++],r=[],s=this.frames[0];for(let i=0;i>4],i.huffmanTableAC=this.huffmanTablesAC[15&n],r.push(i)}const o=t[e++],a=t[e++],l=t[e++],h=A(t,e,s,r,this.resetInterval,o,a,l>>4,15&l);e+=h;break}case 65535:255!==t[e]&&e--;break;default:if(255===t[e-3]&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${o.toString(16)}`)}o=i()}}getResult(){const{frames:t}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let t=0;t{"use strict";i.r(e),i.d(e,{default:()=>d,zstd:()=>g});var n=i(885),r=i(197);let s,o,a;const l={env:{emscripten_notify_memory_growth:function(t){a=new Uint8Array(o.exports.memory.buffer)}}};const h="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var c=i(737),u=i(499);const g=new class{init(){return s||(s="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+h).then((t=>t.arrayBuffer())).then((t=>WebAssembly.instantiate(t,l))).then(this._init):WebAssembly.instantiate(Buffer.from(h,"base64"),l).then(this._init),s)}_init(t){o=t.instance,l.env.emscripten_notify_memory_growth(0)}decode(t,e=0){if(!o)throw new Error("ZSTDDecoder: Await .init() before decoding.");const i=t.byteLength,n=o.exports.malloc(i);a.set(t,n),e=e||Number(o.exports.ZSTD_findDecompressedSize(n,i));const r=o.exports.malloc(e),s=o.exports.ZSTD_decompress(r,e,n,i),l=a.slice(r,r+s);return o.exports.free(n),o.exports.free(r),l}};class d extends c.Z{constructor(t){super(),this.planarConfiguration=void 0!==t.PlanarConfiguration?t.PlanarConfiguration:1,this.samplesPerPixel=void 0!==t.SamplesPerPixel?t.SamplesPerPixel:1,this.addCompression=t.LercParameters[u.L5.AddCompression]}decodeBlock(t){switch(this.addCompression){case u.Qb.None:break;case u.Qb.Deflate:t=(0,n.rr)(new Uint8Array(t)).buffer;break;case u.Qb.Zstandard:t=g.decode(new Uint8Array(t)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return r.decode(t,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}},672:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>a});var n=i(737);const r=257;function s(t,e){for(let i=e.length-1;i>=0;i--)t.push(e[i]);return t}function o(t){const e=new Uint16Array(4093),i=new Uint8Array(4093);for(let t=0;t<=257;t++)e[t]=4096,i[t]=t;let n=258,o=9,a=0;function l(){n=258,o=9}function h(t){const e=function(t,e,i){const n=e%8,s=Math.floor(e/8),o=8-n,a=e+i-8*(s+1);let l=8*(s+2)-(e+i);const h=8*(s+2)-e;if(l=Math.max(0,l),s>=t.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),r;let c=t[s]&2**(8-n)-1;c<<=i-o;let u=c;if(s+1>>l;e<<=Math.max(0,i-h),u+=e}if(a>8&&s+2>>n}return u}(t,a,o);return a+=o,e}function c(t,r){return i[n]=r,e[n]=t,n++,n-1}function u(t){const n=[];for(let r=t;4096!==r;r=e[r])n.push(i[r]);return n}const g=[];l();const d=new Uint8Array(t);let A,p=h(d);for(;p!==r;){if(256===p){for(l(),p=h(d);256===p;)p=h(d);if(p===r)break;if(p>256)throw new Error(`corrupted code at scanline ${p}`);s(g,u(p)),A=p}else if(p=2**o&&(12===o?A=void 0:o++),p=h(d)}return new Uint8Array(g)}class a extends n.Z{decodeBlock(t){return o(t).buffer}}},411:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{decodeBlock(t){const e=new DataView(t),i=[];for(let n=0;n{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{decodeBlock(t){return t}}},588:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{constructor(){if(super(),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(t,e){const i=new Blob([e]),n=await createImageBitmap(i);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=n.width,r.height=n.height):r=new OffscreenCanvas(n.width,n.height);const s=r.getContext("2d");return s.drawImage(n,0,0),s.getImageData(0,0,n.width,n.height).data.buffer}}},499:(t,e,i)=>{"use strict";i.d(e,{Ie:()=>l,It:()=>s,L:()=>n,L5:()=>c,P1:()=>g,Qb:()=>u,pd:()=>h,sf:()=>a});const n={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},r={};for(const t in n)n.hasOwnProperty(t)&&(r[n[t]]=parseInt(t,10));const s=[r.BitsPerSample,r.ExtraSamples,r.SampleFormat,r.StripByteCounts,r.StripOffsets,r.StripRowCounts,r.TileByteCounts,r.TileOffsets,r.SubIFDs],o={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},a={};for(const t in o)o.hasOwnProperty(t)&&(a[o[t]]=parseInt(t,10));const l={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},h={Unspecified:0,Assocalpha:1,Unassalpha:2},c={Version:0,AddCompression:1},u={None:0,Deflate:1,Zstandard:2},g={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},d={};for(const t in g)g.hasOwnProperty(t)&&(d[g[t]]=parseInt(t,10))},294:(t,e,i)=>{"use strict";i.r(e),i.d(e,{create:()=>r});const n=Worker;function r(){const t='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new n("undefined"!=typeof Buffer?"data:application/javascript;base64,"+Buffer.from(t,"binary").toString("base64"):URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}},885:(t,e,i)=>{"use strict";i.d(e,{rr:()=>fi});function n(t){let e=t.length;for(;--e>=0;)t[e]=0}const r=256,s=286,o=30,a=15,l=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),h=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),c=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),g=new Array(576);n(g);const d=new Array(60);n(d);const A=new Array(512);n(A);const p=new Array(256);n(p);const f=new Array(29);n(f);const m=new Array(o);function _(t,e,i,n,r){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=t&&t.length}let y,I,E;function C(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}n(m);const v=t=>t<256?A[t]:A[256+(t>>>7)],x=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},w=(t,e,i)=>{t.bi_valid>16-i?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<{w(t,i[2*e],i[2*e+1])},b=(t,e)=>{let i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1},B=(t,e,i)=>{const n=new Array(16);let r,s,o=0;for(r=1;r<=a;r++)o=o+i[r-1]<<1,n[r]=o;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=b(n[e]++,e))}},L=t=>{let e;for(e=0;e{t.bi_valid>8?x(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},T=(t,e,i,n)=>{const r=2*e,s=2*i;return t[r]{const n=t.heap[i];let r=i<<1;for(;r<=t.heap_len&&(r{let n,s,o,a,c=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+c++],n+=(255&t.pending_buf[t.sym_buf+c++])<<8,s=t.pending_buf[t.sym_buf+c++],0===n?S(t,s,e):(o=p[s],S(t,o+r+1,e),a=l[o],0!==a&&(s-=f[o],w(t,s,a)),n--,o=v(n),S(t,o,i),a=h[o],0!==a&&(n-=m[o],w(t,n,a)))}while(c{const i=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,s=e.stat_desc.elems;let o,l,h,c=-1;for(t.heap_len=0,t.heap_max=573,o=0;o>1;o>=1;o--)R(t,i,o);h=s;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],R(t,i,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,i[2*h]=i[2*o]+i[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,i[2*o+1]=i[2*l+1]=h,t.heap[1]=h++,R(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const i=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let c,u,g,d,A,p,f=0;for(d=0;d<=a;d++)t.bl_count[d]=0;for(i[2*t.heap[t.heap_max]+1]=0,c=t.heap_max+1;c<573;c++)u=t.heap[c],d=i[2*i[2*u+1]+1]+1,d>h&&(d=h,f++),i[2*u+1]=d,u>n||(t.bl_count[d]++,A=0,u>=l&&(A=o[u-l]),p=i[2*u],t.opt_len+=p*(d+A),s&&(t.static_len+=p*(r[2*u+1]+A)));if(0!==f){do{for(d=h-1;0===t.bl_count[d];)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[h]--,f-=2}while(f>0);for(d=h;0!==d;d--)for(u=t.bl_count[d];0!==u;)g=t.heap[--c],g>n||(i[2*g+1]!==d&&(t.opt_len+=(d-i[2*g+1])*i[2*g],i[2*g+1]=d),u--)}})(t,e),B(i,c,t.bl_count)},F=(t,e,i)=>{let n,r,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),e[2*(i+1)+1]=65535,n=0;n<=i;n++)r=o,o=e[2*(n+1)+1],++a{let n,r,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),n=0;n<=i;n++)if(r=o,o=e[2*(n+1)+1],!(++a{w(t,0+(n?1:0),3),M(t),x(t,i),x(t,~i),i&&t.pending_buf.set(t.window.subarray(e,e+i),t.pending),t.pending+=i};var k=(t,e,i,n)=>{let s,o,a=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(F(t,t.dyn_ltree,t.l_desc.max_code),F(t,t.dyn_dtree,t.d_desc.max_code),P(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*u[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,o<=s&&(s=o)):s=o=i+5,i+4<=s&&-1!==e?Q(t,e,i,n):4===t.strategy||o===s?(w(t,2+(n?1:0),3),N(t,g,d)):(w(t,4+(n?1:0),3),((t,e,i,n)=>{let r;for(w(t,e-257,5),w(t,i-1,5),w(t,n-4,4),r=0;r{O||((()=>{let t,e,i,n,r;const u=new Array(16);for(i=0,n=0;n<28;n++)for(f[n]=i,t=0;t<1<>=7;n(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(p[i]+r+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{w(t,2,3),S(t,256,g),(t=>{16===t.bi_valid?(x(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var U=(t,e,i,n)=>{let r=65535&t|0,s=t>>>16&65535|0,o=0;for(;0!==i;){o=i>2e3?2e3:i,i-=o;do{r=r+e[n++]|0,s=s+r|0}while(--o);r%=65521,s%=65521}return r|s<<16|0};const q=new Uint32Array((()=>{let t,e=[];for(var i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e})());var V=(t,e,i,n)=>{const r=q,s=n+i;t^=-1;for(let i=n;i>>8^r[255&(t^e[i])];return-1^t},z={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Y={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:j,_tr_stored_block:H,_tr_flush_block:X,_tr_tally:W,_tr_align:K}=G,{Z_NO_FLUSH:J,Z_PARTIAL_FLUSH:Z,Z_FULL_FLUSH:$,Z_FINISH:tt,Z_BLOCK:et,Z_OK:it,Z_STREAM_END:nt,Z_STREAM_ERROR:rt,Z_DATA_ERROR:st,Z_BUF_ERROR:ot,Z_DEFAULT_COMPRESSION:at,Z_FILTERED:lt,Z_HUFFMAN_ONLY:ht,Z_RLE:ct,Z_FIXED:ut,Z_DEFAULT_STRATEGY:gt,Z_UNKNOWN:dt,Z_DEFLATED:At}=Y,pt=258,ft=262,mt=42,_t=113,yt=666,It=(t,e)=>(t.msg=z[e],e),Et=t=>2*t-(t>4?9:0),Ct=t=>{let e=t.length;for(;--e>=0;)t[e]=0},vt=t=>{let e,i,n,r=t.w_size;e=t.hash_size,n=e;do{i=t.head[--n],t.head[n]=i>=r?i-r:0}while(--e);e=r,n=e;do{i=t.prev[--n],t.prev[n]=i>=r?i-r:0}while(--e)};let xt=(t,e,i)=>(e<{const e=t.state;let i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+i),t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))},St=(t,e)=>{X(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wt(t.strm)},bt=(t,e)=>{t.pending_buf[t.pending++]=e},Bt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Lt=(t,e,i,n)=>{let r=t.avail_in;return r>n&&(r=n),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),i),1===t.state.wrap?t.adler=U(t.adler,e,r,i):2===t.state.wrap&&(t.adler=V(t.adler,e,r,i)),t.next_in+=r,t.total_in+=r,r)},Mt=(t,e)=>{let i,n,r=t.max_chain_length,s=t.strstart,o=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,c=t.w_mask,u=t.prev,g=t.strstart+pt;let d=h[s+o-1],A=h[s+o];t.prev_length>=t.good_match&&(r>>=2),a>t.lookahead&&(a=t.lookahead);do{if(i=e,h[i+o]===A&&h[i+o-1]===d&&h[i]===h[s]&&h[++i]===h[s+1]){s+=2,i++;do{}while(h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&so){if(t.match_start=e,o=n,n>=a)break;d=h[s+o-1],A=h[s+o]}}}while((e=u[e&c])>l&&0!=--r);return o<=t.lookahead?o:t.lookahead},Tt=t=>{const e=t.w_size;let i,n,r;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ft)&&(t.window.set(t.window.subarray(e,e+e-n),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),n+=e),0===t.strm.avail_in)break;if(i=Lt(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=xt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=xt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let i,n,r,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,o=0,a=t.strm.avail_in;do{if(i=65535,r=t.bi_valid+42>>3,t.strm.avail_outn+t.strm.avail_in&&(i=n+t.strm.avail_in),i>r&&(i=r),i>8,t.pending_buf[t.pending-2]=~i,t.pending_buf[t.pending-1]=~i>>8,wt(t.strm),n&&(n>i&&(n=i),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+n),t.strm.next_out),t.strm.next_out+=n,t.strm.avail_out-=n,t.strm.total_out+=n,t.block_start+=n,i-=n),i&&(Lt(t.strm,t.strm.output,t.strm.next_out,i),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i)}while(0===o);return a-=t.strm.avail_in,a&&(a>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=a&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-a,t.strm.next_in),t.strstart),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.block_start=t.strstart),t.high_waterr&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,r+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),r>t.strm.avail_in&&(r=t.strm.avail_in),r&&(Lt(t.strm,t.window,t.strstart,r),t.strstart+=r,t.insert+=r>t.w_size-t.insert?t.w_size-t.insert:r),t.high_water>3,r=t.pending_buf_size-r>65535?65535:t.pending_buf_size-r,s=r>t.w_size?t.w_size:r,n=t.strstart-t.block_start,(n>=s||(n||e===tt)&&e!==J&&0===t.strm.avail_in&&n<=r)&&(i=n>r?r:n,o=e===tt&&0===t.strm.avail_in&&i===n?1:0,H(t,t.block_start,i,o),t.block_start+=i,wt(t.strm)),o?3:1)},Nt=(t,e)=>{let i,n;for(;;){if(t.lookahead=3&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-ft&&(t.match_length=Mt(t,i)),t.match_length>=3)if(n=W(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=xt(t,t.ins_h,t.window[t.strstart+1]);else n=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2},Pt=(t,e)=>{let i,n,r;for(;;){if(t.lookahead=3&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,n=W(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(St(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(n=W(t,0,t.window[t.strstart-1]),n&&St(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=W(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2};function Ft(t,e,i,n,r){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=n,this.func=r}const Dt=[new Ft(0,0,0,0,Rt),new Ft(4,4,8,4,Nt),new Ft(4,5,16,8,Nt),new Ft(4,6,32,32,Nt),new Ft(4,4,16,16,Pt),new Ft(8,16,32,32,Pt),new Ft(8,16,128,128,Pt),new Ft(8,32,128,256,Pt),new Ft(32,128,258,1024,Pt),new Ft(32,258,258,4096,Pt)];function Ot(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=At,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ct(this.dyn_ltree),Ct(this.dyn_dtree),Ct(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ct(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ct(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Qt=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==mt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==_t&&e.status!==yt?1:0},kt=t=>{if(Qt(t))return It(t,rt);t.total_in=t.total_out=0,t.data_type=dt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?mt:_t,t.adler=2===e.wrap?0:1,e.last_flush=-2,j(e),it},Gt=t=>{const e=kt(t);var i;return e===it&&((i=t.state).window_size=2*i.w_size,Ct(i.head),i.max_lazy_match=Dt[i.level].max_lazy,i.good_match=Dt[i.level].good_length,i.nice_match=Dt[i.level].nice_length,i.max_chain_length=Dt[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),e},Ut=(t,e,i,n,r,s)=>{if(!t)return rt;let o=1;if(e===at&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||i!==At||n<8||n>15||e<0||e>9||s<0||s>ut||8===n&&1!==o)return It(t,rt);8===n&&(n=9);const a=new Ot;return t.state=a,a.strm=t,a.status=mt,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<Ut(t,e,At,15,8,gt),deflateInit2:Ut,deflateReset:Gt,deflateResetKeep:kt,deflateSetHeader:(t,e)=>Qt(t)||2!==t.state.wrap?rt:(t.state.gzhead=e,it),deflate:(t,e)=>{if(Qt(t)||e>et||e<0)return t?It(t,rt):rt;const i=t.state;if(!t.output||0!==t.avail_in&&!t.input||i.status===yt&&e!==tt)return It(t,0===t.avail_out?ot:rt);const n=i.last_flush;if(i.last_flush=e,0!==i.pending){if(wt(t),0===t.avail_out)return i.last_flush=-1,it}else if(0===t.avail_in&&Et(e)<=Et(n)&&e!==tt)return It(t,ot);if(i.status===yt&&0!==t.avail_in)return It(t,ot);if(i.status===mt&&0===i.wrap&&(i.status=_t),i.status===mt){let e=At+(i.w_bits-8<<4)<<8,n=-1;if(n=i.strategy>=ht||i.level<2?0:i.level<6?1:6===i.level?2:3,e|=n<<6,0!==i.strstart&&(e|=32),e+=31-e%31,Bt(i,e),0!==i.strstart&&(Bt(i,t.adler>>>16),Bt(i,65535&t.adler)),t.adler=1,i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it}if(57===i.status)if(t.adler=0,bt(i,31),bt(i,139),bt(i,8),i.gzhead)bt(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),bt(i,255&i.gzhead.time),bt(i,i.gzhead.time>>8&255),bt(i,i.gzhead.time>>16&255),bt(i,i.gzhead.time>>24&255),bt(i,9===i.level?2:i.strategy>=ht||i.level<2?4:0),bt(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(bt(i,255&i.gzhead.extra.length),bt(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=V(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(bt(i,0),bt(i,0),bt(i,0),bt(i,0),bt(i,0),bt(i,9===i.level?2:i.strategy>=ht||i.level<2?4:0),bt(i,3),i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it;if(69===i.status){if(i.gzhead.extra){let e=i.pending,n=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+n>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>e&&(t.adler=V(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex+=r,wt(t),0!==i.pending)return i.last_flush=-1,it;e=0,n-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+n),i.pending),i.pending+=n,i.gzhead.hcrc&&i.pending>e&&(t.adler=V(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let e,n=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>n&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),wt(t),0!==i.pending)return i.last_flush=-1,it;n=0}e=i.gzindexn&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let e,n=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>n&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),wt(t),0!==i.pending)return i.last_flush=-1,it;n=0}e=i.gzindexn&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(wt(t),0!==i.pending))return i.last_flush=-1,it;bt(i,255&t.adler),bt(i,t.adler>>8&255),t.adler=0}if(i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it}if(0!==t.avail_in||0!==i.lookahead||e!==J&&i.status!==yt){let n=0===i.level?Rt(i,e):i.strategy===ht?((t,e)=>{let i;for(;;){if(0===t.lookahead&&(Tt(t),0===t.lookahead)){if(e===J)return 1;break}if(t.match_length=0,i=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2})(i,e):i.strategy===ct?((t,e)=>{let i,n,r,s;const o=t.window;for(;;){if(t.lookahead<=pt){if(Tt(t),t.lookahead<=pt&&e===J)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,n=o[r],n===o[++r]&&n===o[++r]&&n===o[++r])){s=t.strstart+pt;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&rt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=W(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2})(i,e):Dt[i.level].func(i,e);if(3!==n&&4!==n||(i.status=yt),1===n||3===n)return 0===t.avail_out&&(i.last_flush=-1),it;if(2===n&&(e===Z?K(i):e!==et&&(H(i,0,0,!1),e===$&&(Ct(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),wt(t),0===t.avail_out))return i.last_flush=-1,it}return e!==tt?it:i.wrap<=0?nt:(2===i.wrap?(bt(i,255&t.adler),bt(i,t.adler>>8&255),bt(i,t.adler>>16&255),bt(i,t.adler>>24&255),bt(i,255&t.total_in),bt(i,t.total_in>>8&255),bt(i,t.total_in>>16&255),bt(i,t.total_in>>24&255)):(Bt(i,t.adler>>>16),Bt(i,65535&t.adler)),wt(t),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?it:nt)},deflateEnd:t=>{if(Qt(t))return rt;const e=t.state.status;return t.state=null,e===_t?It(t,st):it},deflateSetDictionary:(t,e)=>{let i=e.length;if(Qt(t))return rt;const n=t.state,r=n.wrap;if(2===r||1===r&&n.status!==mt||n.lookahead)return rt;if(1===r&&(t.adler=U(t.adler,e,i,0)),n.wrap=0,i>=n.w_size){0===r&&(Ct(n.head),n.strstart=0,n.block_start=0,n.insert=0);let t=new Uint8Array(n.w_size);t.set(e.subarray(i-n.w_size,i),0),e=t,i=n.w_size}const s=t.avail_in,o=t.next_in,a=t.input;for(t.avail_in=i,t.next_in=0,t.input=e,Tt(n);n.lookahead>=3;){let t=n.strstart,e=n.lookahead-2;do{n.ins_h=xt(n,n.ins_h,n.window[t+3-1]),n.prev[t&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=t,t++}while(--e);n.strstart=t,n.lookahead=2,Tt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,t.next_in=o,t.input=a,t.avail_in=s,n.wrap=r,it},deflateInfo:"pako deflate (from Nodeca project)"};const Vt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var zt={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const e in i)Vt(i,e)&&(t[e]=i[e])}}return t},flattenChunks:t=>{let e=0;for(let i=0,n=t.length;i=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;jt[254]=jt[254]=1;var Ht={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,i,n,r,s,o=t.length,a=0;for(r=0;r>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},buf2string:(t,e)=>{const i=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let n,r;const s=new Array(2*i);for(r=0,n=0;n4)s[r++]=65533,n+=o-1;else{for(e&=2===o?31:3===o?15:7;o>1&&n1?s[r++]=65533:e<65536?s[r++]=e:(e-=65536,s[r++]=55296|e>>10&1023,s[r++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Yt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let i="";for(let n=0;n{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+jt[t[i]]>e?i:e}};var Xt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Wt=Object.prototype.toString,{Z_NO_FLUSH:Kt,Z_SYNC_FLUSH:Jt,Z_FULL_FLUSH:Zt,Z_FINISH:$t,Z_OK:te,Z_STREAM_END:ee,Z_DEFAULT_COMPRESSION:ie,Z_DEFAULT_STRATEGY:ne,Z_DEFLATED:re}=Y;function se(t){this.options=zt.assign({level:ie,method:re,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xt,this.strm.avail_out=0;let i=qt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==te)throw new Error(z[i]);if(e.header&&qt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Ht.string2buf(e.dictionary):"[object ArrayBuffer]"===Wt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,i=qt.deflateSetDictionary(this.strm,t),i!==te)throw new Error(z[i]);this._dict_set=!0}}function oe(t,e){const i=new se(e);if(i.push(t,!0),i.err)throw i.msg||z[i.err];return i.result}se.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize;let r,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?$t:Kt,"string"==typeof t?i.input=Ht.string2buf(t):"[object ArrayBuffer]"===Wt.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(s===Jt||s===Zt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=qt.deflate(i,s),r===ee)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=qt.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===te;if(0!==i.avail_out){if(s>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},se.prototype.onData=function(t){this.chunks.push(t)},se.prototype.onEnd=function(t){t===te&&(this.result=zt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ae={Deflate:se,deflate:oe,deflateRaw:function(t,e){return(e=e||{}).raw=!0,oe(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,oe(t,e)},constants:Y};const le=16209;var he=function(t,e){let i,n,r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y,I,E,C,v,x,w;const S=t.state;i=t.next_in,x=t.input,n=i+(t.avail_in-5),r=t.next_out,w=t.output,s=r-(e-t.avail_out),o=r+(t.avail_out-257),a=S.dmax,l=S.wsize,h=S.whave,c=S.wnext,u=S.window,g=S.hold,d=S.bits,A=S.lencode,p=S.distcode,f=(1<>>24,g>>>=y,d-=y,y=_>>>16&255,0===y)w[r++]=65535&_;else{if(!(16&y)){if(0==(64&y)){_=A[(65535&_)+(g&(1<>>=y,d-=y),d<15&&(g+=x[i++]<>>24,g>>>=y,d-=y,y=_>>>16&255,!(16&y)){if(0==(64&y)){_=p[(65535&_)+(g&(1<a){t.msg="invalid distance too far back",S.mode=le;break t}if(g>>>=y,d-=y,y=r-s,E>y){if(y=E-y,y>h&&S.sane){t.msg="invalid distance too far back",S.mode=le;break t}if(C=0,v=u,0===c){if(C+=l-y,y2;)w[r++]=v[C++],w[r++]=v[C++],w[r++]=v[C++],I-=3;I&&(w[r++]=v[C++],I>1&&(w[r++]=v[C++]))}else{C=r-E;do{w[r++]=w[C++],w[r++]=w[C++],w[r++]=w[C++],I-=3}while(I>2);I&&(w[r++]=w[C++],I>1&&(w[r++]=w[C++]))}break}}break}}while(i>3,i-=I,d-=I<<3,g&=(1<{const l=a.bits;let h,c,u,g,d,A,p=0,f=0,m=0,_=0,y=0,I=0,E=0,C=0,v=0,x=0,w=null;const S=new Uint16Array(16),b=new Uint16Array(16);let B,L,M,T=null;for(p=0;p<=ce;p++)S[p]=0;for(f=0;f=1&&0===S[_];_--);if(y>_&&(y=_),0===_)return r[s++]=20971520,r[s++]=20971520,a.bits=1,0;for(m=1;m<_&&0===S[m];m++);for(y0&&(0===t||1!==_))return-1;for(b[1]=0,p=1;p852||2===t&&v>592)return 1;for(;;){B=p-E,o[f]+1=A?(L=T[o[f]-A],M=w[o[f]-A]):(L=96,M=0),h=1<>E)+c]=B<<24|L<<16|M|0}while(0!==c);for(h=1<>=1;if(0!==h?(x&=h-1,x+=h):x=0,f++,0==--S[p]){if(p===_)break;p=e[i+o[f]]}if(p>y&&(x&g)!==u){for(0===E&&(E=y),d+=m,I=p-E,C=1<852||2===t&&v>592)return 1;u=x&g,r[u]=y<<24|I<<16|d-s|0}}return 0!==x&&(r[d+x]=p-E<<24|64<<16|0),a.bits=y,0};const{Z_FINISH:fe,Z_BLOCK:me,Z_TREES:_e,Z_OK:ye,Z_STREAM_END:Ie,Z_NEED_DICT:Ee,Z_STREAM_ERROR:Ce,Z_DATA_ERROR:ve,Z_MEM_ERROR:xe,Z_BUF_ERROR:we,Z_DEFLATED:Se}=Y,be=16180,Be=16190,Le=16191,Me=16192,Te=16194,Re=16199,Ne=16200,Pe=16206,Fe=16209,De=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Oe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qe=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},ke=t=>{if(Qe(t))return Ce;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=be,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ye},Ge=t=>{if(Qe(t))return Ce;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,ke(t)},Ue=(t,e)=>{let i;if(Qe(t))return Ce;const n=t.state;return e<0?(i=0,e=-e):(i=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Ce:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,Ge(t))},qe=(t,e)=>{if(!t)return Ce;const i=new Oe;t.state=i,i.strm=t,i.window=null,i.mode=be;const n=Ue(t,e);return n!==ye&&(t.state=null),n};let Ve,ze,Ye=!0;const je=t=>{if(Ye){Ve=new Int32Array(512),ze=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(pe(1,t.lens,0,288,Ve,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;pe(2,t.lens,0,32,ze,0,t.work,{bits:5}),Ye=!1}t.lencode=Ve,t.lenbits=9,t.distcode=ze,t.distbits=5},He=(t,e,i,n)=>{let r;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(i-s.wsize,i),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>n&&(r=n),s.window.set(e.subarray(i-n,i-n+r),s.wnext),(n-=r)?(s.window.set(e.subarray(i-n,i),0),s.wnext=n,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whaveqe(t,15),inflateInit2:qe,inflate:(t,e)=>{let i,n,r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y,I,E,C,v,x=0;const w=new Uint8Array(4);let S,b;const B=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qe(t)||!t.output||!t.input&&0!==t.avail_in)return Ce;i=t.state,i.mode===Le&&(i.mode=Me),o=t.next_out,r=t.output,l=t.avail_out,s=t.next_in,n=t.input,a=t.avail_in,h=i.hold,c=i.bits,u=a,g=l,v=ye;t:for(;;)switch(i.mode){case be:if(0===i.wrap){i.mode=Me;break}for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>>8&255,i.check=V(i.check,w,2,0),h=0,c=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",i.mode=Fe;break}if((15&h)!==Se){t.msg="unknown compression method",i.mode=Fe;break}if(h>>>=4,c-=4,C=8+(15&h),0===i.wbits&&(i.wbits=C),C>15||C>i.wbits){t.msg="invalid window size",i.mode=Fe;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(w[0]=255&h,w[1]=h>>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0,i.mode=16182;case 16182:for(;c<32;){if(0===a)break t;a--,h+=n[s++]<>>8&255,w[2]=h>>>16&255,w[3]=h>>>24&255,i.check=V(i.check,w,4,0)),h=0,c=0,i.mode=16183;case 16183:for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>8),512&i.flags&&4&i.wrap&&(w[0]=255&h,w[1]=h>>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0,i.mode=16184;case 16184:if(1024&i.flags){for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(C=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(s,s+d),C)),512&i.flags&&4&i.wrap&&(i.check=V(i.check,n,d,s)),a-=d,s+=d,i.length-=d),i.length))break t;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break t;d=0;do{C=n[s+d++],i.head&&C&&i.length<65536&&(i.head.name+=String.fromCharCode(C))}while(C&&d>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=Le;break;case 16189:for(;c<32;){if(0===a)break t;a--,h+=n[s++]<>>=7&c,c-=7&c,i.mode=Pe;break}for(;c<3;){if(0===a)break t;a--,h+=n[s++]<>>=1,c-=1,3&h){case 0:i.mode=16193;break;case 1:if(je(i),i.mode=Re,e===_e){h>>>=2,c-=2;break t}break;case 2:i.mode=16196;break;case 3:t.msg="invalid block type",i.mode=Fe}h>>>=2,c-=2;break;case 16193:for(h>>>=7&c,c-=7&c;c<32;){if(0===a)break t;a--,h+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",i.mode=Fe;break}if(i.length=65535&h,h=0,c=0,i.mode=Te,e===_e)break t;case Te:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break t;r.set(n.subarray(s,s+d),o),a-=d,s+=d,l-=d,o+=d,i.length-=d;break}i.mode=Le;break;case 16196:for(;c<14;){if(0===a)break t;a--,h+=n[s++]<>>=5,c-=5,i.ndist=1+(31&h),h>>>=5,c-=5,i.ncode=4+(15&h),h>>>=4,c-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=Fe;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,c-=3}for(;i.have<19;)i.lens[B[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,S={bits:i.lenbits},v=pe(0,i.lens,0,19,i.lencode,0,i.work,S),i.lenbits=S.bits,v){t.msg="invalid code lengths set",i.mode=Fe;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=f,c-=f,i.lens[i.have++]=_;else{if(16===_){for(b=f+2;c>>=f,c-=f,0===i.have){t.msg="invalid bit length repeat",i.mode=Fe;break}C=i.lens[i.have-1],d=3+(3&h),h>>>=2,c-=2}else if(17===_){for(b=f+3;c>>=f,c-=f,C=0,d=3+(7&h),h>>>=3,c-=3}else{for(b=f+7;c>>=f,c-=f,C=0,d=11+(127&h),h>>>=7,c-=7}if(i.have+d>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=Fe;break}for(;d--;)i.lens[i.have++]=C}}if(i.mode===Fe)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=Fe;break}if(i.lenbits=9,S={bits:i.lenbits},v=pe(1,i.lens,0,i.nlen,i.lencode,0,i.work,S),i.lenbits=S.bits,v){t.msg="invalid literal/lengths set",i.mode=Fe;break}if(i.distbits=6,i.distcode=i.distdyn,S={bits:i.distbits},v=pe(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,S),i.distbits=S.bits,v){t.msg="invalid distances set",i.mode=Fe;break}if(i.mode=Re,e===_e)break t;case Re:i.mode=Ne;case Ne:if(a>=6&&l>=258){t.next_out=o,t.avail_out=l,t.next_in=s,t.avail_in=a,i.hold=h,i.bits=c,he(t,g),o=t.next_out,r=t.output,l=t.avail_out,s=t.next_in,n=t.input,a=t.avail_in,h=i.hold,c=i.bits,i.mode===Le&&(i.back=-1);break}for(i.back=0;x=i.lencode[h&(1<>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>y)],f=x>>>24,m=x>>>16&255,_=65535&x,!(y+f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=y,c-=y,i.back+=y}if(h>>>=f,c-=f,i.back+=f,i.length=_,0===m){i.mode=16205;break}if(32&m){i.back=-1,i.mode=Le;break}if(64&m){t.msg="invalid literal/length code",i.mode=Fe;break}i.extra=15&m,i.mode=16201;case 16201:if(i.extra){for(b=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;x=i.distcode[h&(1<>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>y)],f=x>>>24,m=x>>>16&255,_=65535&x,!(y+f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=y,c-=y,i.back+=y}if(h>>>=f,c-=f,i.back+=f,64&m){t.msg="invalid distance code",i.mode=Fe;break}i.offset=_,i.extra=15&m,i.mode=16203;case 16203:if(i.extra){for(b=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=Fe;break}i.mode=16204;case 16204:if(0===l)break t;if(d=g-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=Fe;break}d>i.wnext?(d-=i.wnext,A=i.wsize-d):A=i.wnext-d,d>i.length&&(d=i.length),p=i.window}else p=r,A=o-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[o++]=p[A++]}while(--d);0===i.length&&(i.mode=Ne);break;case 16205:if(0===l)break t;r[o++]=i.length,l--,i.mode=Ne;break;case Pe:if(i.wrap){for(;c<32;){if(0===a)break t;a--,h|=n[s++]<{if(Qe(t))return Ce;let e=t.state;return e.window&&(e.window=null),t.state=null,ye},inflateGetHeader:(t,e)=>{if(Qe(t))return Ce;const i=t.state;return 0==(2&i.wrap)?Ce:(i.head=e,e.done=!1,ye)},inflateSetDictionary:(t,e)=>{const i=e.length;let n,r,s;return Qe(t)?Ce:(n=t.state,0!==n.wrap&&n.mode!==Be?Ce:n.mode===Be&&(r=1,r=U(r,e,i,0),r!==n.check)?ve:(s=He(t,e,i,i),s?(n.mode=16210,xe):(n.havedict=1,ye)))},inflateInfo:"pako inflate (from Nodeca project)"};var We=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Ke=Object.prototype.toString,{Z_NO_FLUSH:Je,Z_FINISH:Ze,Z_OK:$e,Z_STREAM_END:ti,Z_NEED_DICT:ei,Z_STREAM_ERROR:ii,Z_DATA_ERROR:ni,Z_MEM_ERROR:ri}=Y;function si(t){this.options=zt.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xt,this.strm.avail_out=0;let i=Xe.inflateInit2(this.strm,e.windowBits);if(i!==$e)throw new Error(z[i]);if(this.header=new We,Xe.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Ht.string2buf(e.dictionary):"[object ArrayBuffer]"===Ke.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=Xe.inflateSetDictionary(this.strm,e.dictionary),i!==$e)))throw new Error(z[i])}function oi(t,e){const i=new si(e);if(i.push(t),i.err)throw i.msg||z[i.err];return i.result}si.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(o=e===~~e?e:!0===e?Ze:Je,"[object ArrayBuffer]"===Ke.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),s=Xe.inflate(i,o),s===ei&&r&&(s=Xe.inflateSetDictionary(i,r),s===$e?s=Xe.inflate(i,o):s===ni&&(s=ei));i.avail_in>0&&s===ti&&i.state.wrap>0&&0!==t[i.next_in];)Xe.inflateReset(i),s=Xe.inflate(i,o);switch(s){case ii:case ni:case ei:case ri:return this.onEnd(s),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||s===ti))if("string"===this.options.to){let t=Ht.utf8border(i.output,i.next_out),e=i.next_out-t,r=Ht.buf2string(i.output,t);i.next_out=e,i.avail_out=n-e,e&&i.output.set(i.output.subarray(t,t+e),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(s!==$e||0!==a){if(s===ti)return s=Xe.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},si.prototype.onData=function(t){this.chunks.push(t)},si.prototype.onEnd=function(t){t===$e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=zt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ai={Inflate:si,inflate:oi,inflateRaw:function(t,e){return(e=e||{}).raw=!0,oi(t,e)},ungzip:oi,constants:Y};const{Deflate:li,deflate:hi,deflateRaw:ci,gzip:ui}=ae,{Inflate:gi,inflate:di,inflateRaw:Ai,ungzip:pi}=ai;var fi=di}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var s=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";var t={};i.r(t),i.d(t,{easeIn:()=>ca,easeOut:()=>ua,inAndOut:()=>ga,linear:()=>da,upAndDown:()=>Aa});var e={};i.r(e),i.d(e,{CENTER:()=>dm,JUSTIFY:()=>pm,LEFT:()=>gm,RIGHT:()=>Am});var n={};i.r(n),i.d(n,{ALPHABETIC:()=>ym,BOTTOM:()=>_m,HANGING:()=>Im,IDEOGRAPHIC:()=>Em,MIDDLE:()=>mm,TOP:()=>fm});var r={};i.r(r),i.d(r,{error:()=>AI,info:()=>dI,show:()=>gI,success:()=>pI});var s={};i.r(s),i.d(s,{LINE:()=>US,MLINE:()=>zS,MPOINT:()=>VS,MPOLYGON:()=>YS,POINT:()=>GS,POLYGON:()=>qS});var o=i(792),a=i.n(o);const l={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function h(t){return l[t]}const c={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};const u=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||c[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}},g=6378137,d=Math.PI*g,A=[-d,-d,d,d],p=[-180,-85,180,85],f=g*Math.log(Math.tan(Math.PI/2));class m extends u{constructor(t){super({code:t,units:"m",extent:A,global:!0,worldExtent:p,getPointResolution:function(t,e){return t/Math.cosh(e[1]/g)}})}}const _=[new m("EPSG:3857"),new m("EPSG:102100"),new m("EPSG:102113"),new m("EPSG:900913"),new m("http://www.opengis.net/def/crs/EPSG/0/3857"),new m("http://www.opengis.net/gml/srs/epsg.xml#3857")];function y(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;rf?i=f:i<-f&&(i=-f),e[r+1]=i}return e}function I(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;rr&&(l|=L.RIGHT),as&&(l|=L.ABOVE),l===L.UNKNOWN&&(l=L.INTERSECTING),l}function k(){return[1/0,1/0,-1/0,-1/0]}function G(t,e,i,n,r){return r?(r[0]=t,r[1]=e,r[2]=i,r[3]=n,r):[t,e,i,n]}function U(t){return G(1/0,1/0,-1/0,-1/0,t)}function q(t,e){const i=t[0],n=t[1];return G(i,n,i,n,e)}function V(t,e,i,n,r){return H(U(r),t,e,i,n)}function z(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function Y(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function j(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function H(t,e,i,n,r){for(;ie[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function ht(t){return t[2]1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s=i[2])){const e=at(i),r=Math.floor((n[0]-i[0])/e)*e;t[0]-=r,t[2]-=r}return t}function dt(t,e,i){return Math.min(Math.max(t,e),i)}function At(t,e,i,n,r,s){const o=r-i,a=s-n;if(0!==o||0!==a){const l=((t-i)*o+(e-n)*a)/(o*o+a*a);l>1?(i=r,n=s):l>0&&(i+=o*l,n+=a*l)}return pt(t,e,i,n)}function pt(t,e,i,n){const r=i-t,s=n-e;return r*r+s*s}function ft(t){return 180*t/Math.PI}function mt(t){return t*Math.PI/180}function _t(t,e){const i=t%e;return i*e<0?i+e:i}function yt(t,e,i){return t+i*(e-t)}function It(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function Et(t,e){return Math.round(It(t,e))}function Ct(t,e){return Math.floor(It(t,e))}function vt(t,e){return Math.ceil(It(t,e))}function xt(t,e,i){const n=void 0!==i?t.toFixed(i):""+t;let r=n.indexOf(".");return r=-1===r?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function wt(t,e){const i=(""+t).split("."),n=(""+e).split(".");for(let t=0;tr)return 1;if(r>e)return-1}return 0}function St(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function bt(t,e){const i=e.getRadius(),n=e.getCenter(),r=n[0],s=n[1];let o=t[0]-r;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[r+i*o/l,s+i*a/l]}function Bt(t,e){const i=t[0],n=t[1],r=e[0],s=e[1],o=r[0],a=r[1],l=s[0],h=s[1],c=l-o,u=h-a,g=0===c&&0===u?0:(c*(i-o)+u*(n-a))/(c*c+u*u||0);let d,A;return g<=0?(d=o,A=a):g>=1?(d=l,A=h):(d=o+g*c,A=a+g*u),[d,A]}function Lt(t){return function(e){return Qt(e,t)}}function Mt(t,e,i){const n=_t(e+180,360)-180,r=Math.abs(3600*n),s=i||0;let o=Math.floor(r/3600),a=Math.floor((r-3600*o)/60),l=It(r-3600*o-60*a,s);l>=60&&(l=0,a+=1),a>=60&&(a=0,o+=1);let h=o+"°";return 0===a&&0===l||(h+=" "+xt(a,2)+"′"),0!==l&&(h+=" "+xt(l,2,s)+"″"),0!==n&&(h+=" "+t.charAt(n<0?1:0)),h}function Tt(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Rt(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function Nt(t,e){const i=Math.cos(e),n=Math.sin(e),r=t[0]*i-t[1]*n,s=t[1]*i+t[0]*n;return t[0]=r,t[1]=s,t}function Pt(t,e){return t[0]*=e,t[1]*=e,t}function Ft(t,e){const i=t[0]-e[0],n=t[1]-e[1];return i*i+n*n}function Dt(t,e){return Math.sqrt(Ft(t,e))}function Ot(t,e){return Ft(t,Bt(t,e))}function Qt(t,e){return Tt(t,"{x}, {y}",e)}function kt(t,e){if(e.canWrapX()){const i=at(e.getExtent()),n=Gt(t,e,i);n&&(t[0]-=n*i)}return t}function Gt(t,e,i){const n=e.getExtent();let r=0;return e.canWrapX()&&(t[0]n[2])&&(i=i||at(n),r=Math.floor((t[0]-n[0])/i)),r}const Ut=6371008.8;function qt(t,e,i){i=i||Ut;const n=mt(t[1]),r=mt(e[1]),s=(r-n)/2,o=mt(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(r);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function Vt(t,e){let i=0;for(let n=0,r=t.length;njt.warn||console.warn(...t)}function Wt(...t){Ht>jt.error||console.error(...t)}let Kt=!0;function Jt(t){Kt=!(void 0===t||t)}function Zt(t,e){if(void 0!==e)for(let i=0,n=t.length;i=o?e[s+t]:r[t]}return i}}function oe(t,e,i,n){const r=ee(t),s=ee(e);b(r,s,se(i)),b(s,r,se(n))}function ae(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return le(t,e)===Zt&&i}function le(t,e){let i=B(t.getCode(),e.getCode());return i||(i=$t),i}function he(t,e){return le(ee(t),ee(e))}function ce(t,e,i){return he(e,i)(t,void 0,t.length)}function ue(t,e,i,n){return ut(t,he(e,i),void 0,n)}let ge=null;function de(t){ge=ee(t)}function Ae(){return ge}function pe(t,e){return ge?ce(t,e,ge):t}function fe(t,e){return ge?ce(t,ge,e):(Kt&&!Rt(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Kt=!1,Xt("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function me(t,e){return ge?ue(t,e,ge):t}function _e(t,e){return ge?ue(t,ge,e):t}function ye(t,e){if(!ge)return t;const i=ee(e).getUnits(),n=ge.getUnits();return i&&n?t*c[i]/c[n]:t}function Ie(t,e,i){return function(n){let r,s;if(t.canWrapX()){const e=t.getExtent(),o=at(e);s=Gt(n=n.slice(0),t,o),s&&(n[0]=n[0]-s*o),n[0]=dt(n[0],e[0],e[2]),n[1]=dt(n[1],e[1],e[3]),r=i(n)}else r=i(n);return s&&e.canWrapX()&&(r[0]+=s*at(e.getExtent())),r}}var Ee,Ce,ve;ne(_),ne(x),Ee=_,Ce=y,ve=I,x.forEach((function(t){Ee.forEach((function(e){b(t,e,Ce),b(e,t,ve)}))}));const xe=(t,e,i)=>ce(t,ee(e),ee(i));var we=1,Se=2,be=3,Be=5,Le=6378137,Me=6356752.314,Te=.0066943799901413165,Re=484813681109536e-20,Ne=Math.PI/2,Pe=.16666666666666666,Fe=.04722222222222222,De=.022156084656084655,Oe=1e-10,Qe=.017453292519943295,ke=57.29577951308232,Ge=Math.PI/4,Ue=2*Math.PI,qe=3.14159265359,Ve={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667};const ze={ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937}};var Ye=/[\s_\-\/\(\)]/g;function je(t,e){if(t[e])return t[e];for(var i,n=Object.keys(t),r=e.toLowerCase().replace(Ye,""),s=-1;++s=this.text.length)return;t=this.text[this.place++]}switch(this.state){case We:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},ei.prototype.afterquote=function(t){if('"'===t)return this.word+='"',void(this.state=4);if($e.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in afterquote yet, index '+this.place)},ei.prototype.afterItem=function(t){return","===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=We)):"]"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=We,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},ei.prototype.number=function(t){if(!ti.test(t)){if($e.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in number yet, index '+this.place)}this.word+=t},ei.prototype.quoted=function(t){'"'!==t?this.word+=t:this.state=5},ei.prototype.keyword=function(t){if(Ze.test(t))this.word+=t;else{if("["===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=We)}if(!$e.test(t))throw new Error("havn't handled \""+t+'" in keyword yet, index '+this.place);this.afterItem(t)}},ei.prototype.neutral=function(t){if(Je.test(t))return this.word=t,void(this.state=2);if('"'===t)return this.word="",void(this.state=4);if(ti.test(t))return this.word=t,void(this.state=3);if(!$e.test(t))throw new Error("havn't handled \""+t+'" in neutral yet, index '+this.place);this.afterItem(t)},ei.prototype.output=function(){for(;this.place0?90:-90)):(t.lat0=si(t.lat1>0?90:-90),t.lat_ts=t.lat1)}(r),r}function ai(t){var e=this;if(2===arguments.length){var i=arguments[1];"string"==typeof i?"+"===i.charAt(0)?ai[t]=He(arguments[1]):ai[t]=oi(arguments[1]):ai[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?ai.apply(e,t):ai(t)}));if("string"==typeof t){if(t in ai)return ai[t]}else"EPSG"in t?ai["EPSG:"+t.EPSG]=t:"ESRI"in t?ai["ESRI:"+t.ESRI]=t:"IAU2000"in t?ai["IAU2000:"+t.IAU2000]=t:console.log(t);return}}!function(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}(ai);const li=ai;var hi=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];var ci=["3857","900913","3785","102113"];const ui=function(t){if(!function(t){return"string"==typeof t}(t))return t;if(function(t){return t in li}(t))return li[t];if(function(t){return hi.some((function(e){return t.indexOf(e)>-1}))}(t)){var e=oi(t);if(function(t){var e=je(t,"authority");if(e){var i=je(e,"epsg");return i&&ci.indexOf(i)>-1}}(e))return li["EPSG:3857"];var i=function(t){var e=je(t,"extension");if(e)return je(e,"proj4")}(e);return i?He(i):e}return function(t){return"+"===t[0]}(t)?He(t):void 0};function gi(t,e){var i,n;if(t=t||{},!e)return t;for(n in e)void 0!==(i=e[n])&&(t[n]=i);return t}function di(t,e,i){var n=t*e;return i/Math.sqrt(1-n*n)}function Ai(t){return t<0?-1:1}function pi(t){return Math.abs(t)<=qe?t:t-Ai(t)*Ue}function fi(t,e,i){var n=t*i,r=.5*t;return n=Math.pow((1-n)/(1+n),r),Math.tan(.5*(Ne-e))/n}function mi(t,e){for(var i,n,r=.5*t,s=Ne-2*Math.atan(e),o=0;o<=15;o++)if(i=t*Math.sin(s),s+=n=Ne-2*Math.atan(e*Math.pow((1-i)/(1+i),r))-s,Math.abs(n)<=1e-10)return s;return-9999}function _i(t){return t}var yi=[{init:function(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},forward:function(t){var e,i,n=t.x,r=t.y;if(r*ke>90&&r*ke<-90&&n*ke>180&&n*ke<-180)return null;if(Math.abs(Math.abs(r)-Ne)<=Oe)return null;if(this.sphere)e=this.x0+this.a*this.k0*pi(n-this.long0),i=this.y0+this.a*this.k0*Math.log(Math.tan(Ge+.5*r));else{var s=Math.sin(r),o=fi(this.e,r,s);e=this.x0+this.a*this.k0*pi(n-this.long0),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=e,t.y=i,t},inverse:function(t){var e,i,n=t.x-this.x0,r=t.y-this.y0;if(this.sphere)i=Ne-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else{var s=Math.exp(-r/(this.a*this.k0));if(-9999===(i=mi(this.e,s)))return null}return e=pi(this.long0+n/(this.a*this.k0)),t.x=e,t.y=i,t},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{init:function(){},forward:_i,inverse:_i,names:["longlat","identity"]}],Ii={},Ei=[];function Ci(t,e){var i=Ei.length;return t.names?(Ei[i]=t,t.names.forEach((function(t){Ii[t.toLowerCase()]=i})),this):(console.log(e),!0)}const vi={start:function(){yi.forEach(Ci)},add:Ci,get:function(t){if(!t)return!1;var e=t.toLowerCase();return void 0!==Ii[e]&&Ei[Ii[e]]?Ei[Ii[e]]:void 0}};var xi={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"}},wi=xi.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};xi.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"};var Si={};Si.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},Si.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},Si.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},Si.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},Si.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},Si.potsdam={towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},Si.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},Si.hermannskogel={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},Si.osni52={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},Si.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},Si.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},Si.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},Si.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"},Si.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},Si.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},Si.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},Si.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"};const bi=function(t,e,i,n,r,s,o){var a={};return a.datum_type=void 0===t||"none"===t?Be:4,e&&(a.datum_params=e.map(parseFloat),0===a.datum_params[0]&&0===a.datum_params[1]&&0===a.datum_params[2]||(a.datum_type=we),a.datum_params.length>3&&(0===a.datum_params[3]&&0===a.datum_params[4]&&0===a.datum_params[5]&&0===a.datum_params[6]||(a.datum_type=Se,a.datum_params[3]*=Re,a.datum_params[4]*=Re,a.datum_params[5]*=Re,a.datum_params[6]=a.datum_params[6]/1e6+1))),o&&(a.datum_type=be,a.grids=o),a.a=i,a.b=n,a.es=r,a.ep2=s,a};var Bi={};function Li(t){if(0===t.length)return null;var e="@"===t[0];return e&&(t=t.slice(1)),"null"===t?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Bi[t]||null,isNull:!1}}function Mi(t){return t/3600*Math.PI/180}function Ti(t,e,i){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,i)))}function Ri(t){return t.map((function(t){return[Mi(t.longitudeShift),Mi(t.latitudeShift)]}))}function Ni(t,e,i){return{name:Ti(t,e+8,e+16).trim(),parent:Ti(t,e+24,e+24+8).trim(),lowerLatitude:t.getFloat64(e+72,i),upperLatitude:t.getFloat64(e+88,i),lowerLongitude:t.getFloat64(e+104,i),upperLongitude:t.getFloat64(e+120,i),latitudeInterval:t.getFloat64(e+136,i),longitudeInterval:t.getFloat64(e+152,i),gridNodeCount:t.getInt32(e+168,i)}}function Pi(t,e,i,n){for(var r=e+176,s=[],o=0;o-1.001*Ne)l=-Ne;else if(l>Ne&&l<1.001*Ne)l=Ne;else{if(l<-Ne)return{x:-1/0,y:-1/0,z:t.z};if(l>Ne)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),r=Math.sin(l),o=Math.cos(l),s=r*r,{x:((n=i/Math.sqrt(1-e*s))+h)*o*Math.cos(a),y:(n+h)*o*Math.sin(a),z:(n*(1-e)+h)*r}}function Qi(t,e,i,n){var r,s,o,a,l,h,c,u,g,d,A,p,f,m,_,y=1e-12,I=t.x,E=t.y,C=t.z?t.z:0;if(r=Math.sqrt(I*I+E*E),s=Math.sqrt(I*I+E*E+C*C),r/i1e-24&&f<30);return{x:m,y:Math.atan(A/Math.abs(d)),z:_}}function ki(t){return t===we||t===Se}function Gi(t,e,i){if(function(t,e){return t.datum_type===e.datum_type&&!(t.a!==e.a||Math.abs(t.es-e.es)>5e-11)&&(t.datum_type===we?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type!==Se||t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6])}(t,e))return i;if(t.datum_type===Be||e.datum_type===Be)return i;var n=t.a,r=t.es;if(t.datum_type===be){if(0!==Ui(t,!1,i))return;n=Le,r=Te}var s=e.a,o=e.b,a=e.es;if(e.datum_type===be&&(s=Le,o=Me,a=Te),r===a&&n===s&&!ki(t.datum_type)&&!ki(e.datum_type))return i;if((i=Oi(i,r,n),ki(t.datum_type)&&(i=function(t,e,i){if(e===we)return{x:t.x+i[0],y:t.y+i[1],z:t.z+i[2]};if(e===Se){var n=i[0],r=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6];return{x:h*(t.x-l*t.y+a*t.z)+n,y:h*(l*t.x+t.y-o*t.z)+r,z:h*(-a*t.x+o*t.y+t.z)+s}}}(i,t.datum_type,t.datum_params)),ki(e.datum_type)&&(i=function(t,e,i){if(e===we)return{x:t.x-i[0],y:t.y-i[1],z:t.z-i[2]};if(e===Se){var n=i[0],r=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6],c=(t.x-n)/h,u=(t.y-r)/h,g=(t.z-s)/h;return{x:c+l*u-a*g,y:-l*c+u+o*g,z:a*c-o*u+g}}}(i,e.datum_type,e.datum_params)),i=Qi(i,a,s,o),e.datum_type===be)&&0!==Ui(e,!0,i))return;return i}function Ui(t,e,i){if(null===t.grids||0===t.grids.length)return console.log("Grid shift grids not found"),-1;for(var n={x:-i.x,y:i.y},r={x:Number.NaN,y:Number.NaN},s=[],o=0;on.y||c>n.x||d1e-12&&Math.abs(o.y)>1e-12);if(l<0)return console.log("Inverse grid shift iterator failed to converge."),n;n.x=pi(s.x+i.ll[0]),n.y=s.y+i.ll[1]}else isNaN(s.x)||(n.x=t.x+s.x,n.y=t.y+s.y);return n}function Vi(t,e){var i,n={x:t.x/e.del[0],y:t.y/e.del[1]},r=Math.floor(n.x),s=Math.floor(n.y),o=n.x-1*r,a=n.y-1*s,l={x:Number.NaN,y:Number.NaN};if(r<0||r>=e.lim[0])return l;if(s<0||s>=e.lim[1])return l;i=s*e.lim[0]+r;var h=e.cvs[i][0],c=e.cvs[i][1];i++;var u=e.cvs[i][0],g=e.cvs[i][1];i+=e.lim[0];var d=e.cvs[i][0],A=e.cvs[i][1];i--;var p=e.cvs[i][0],f=e.cvs[i][1],m=o*a,_=o*(1-a),y=(1-o)*(1-a),I=(1-o)*a;return l.x=y*h+_*u+I*p+m*d,l.y=y*c+_*g+I*f+m*A,l}function zi(t,e,i){var n,r,s,o=i.x,a=i.y,l=i.z||0,h={};for(s=0;s<3;s++)if(!e||2!==s||void 0!==i.z)switch(0===s?(n=o,r=-1!=="ew".indexOf(t.axis[s])?"x":"y"):1===s?(n=a,r=-1!=="ns".indexOf(t.axis[s])?"y":"x"):(n=l,r="z"),t.axis[s]){case"e":case"n":h[r]=n;break;case"w":case"s":h[r]=-n;break;case"u":void 0!==i[r]&&(h.z=n);break;case"d":void 0!==i[r]&&(h.z=-n);break;default:return null}return h}function Yi(t){var e={x:t[0],y:t[1]};return t.length>2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function ji(t){if("function"==typeof Number.isFinite){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof t||t!=t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function Hi(t,e,i,n){var r,s=void 0!==(i=Array.isArray(i)?Yi(i):{x:i.x,y:i.y,z:i.z,m:i.m}).z;if(function(t){ji(t.x),ji(t.y)}(i),t.datum&&e.datum&&function(t,e){return(t.datum.datum_type===we||t.datum.datum_type===Se||t.datum.datum_type===be)&&"WGS84"!==e.datumCode||(e.datum.datum_type===we||e.datum.datum_type===Se||e.datum.datum_type===be)&&"WGS84"!==t.datumCode}(t,e)&&(i=Hi(t,r=new Di("WGS84"),i,n),t=r),n&&"enu"!==t.axis&&(i=zi(t,!1,i)),"longlat"===t.projName)i={x:i.x*Qe,y:i.y*Qe,z:i.z||0};else if(t.to_meter&&(i={x:i.x*t.to_meter,y:i.y*t.to_meter,z:i.z||0}),!(i=t.inverse(i)))return;if(t.from_greenwich&&(i.x+=t.from_greenwich),i=Gi(t.datum,e.datum,i))return e.from_greenwich&&(i={x:i.x-e.from_greenwich,y:i.y,z:i.z||0}),"longlat"===e.projName?i={x:i.x*ke,y:i.y*ke,z:i.z||0}:(i=e.forward(i),e.to_meter&&(i={x:i.x/e.to_meter,y:i.y/e.to_meter,z:i.z||0})),n&&"enu"!==e.axis?zi(e,!0,i):(s||delete i.z,i)}var Xi=Di("WGS84");function Wi(t,e,i,n){var r,s,o;return Array.isArray(i)?(r=Hi(t,e,i,n)||{x:NaN,y:NaN},i.length>2?void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name?"number"==typeof r.z?[r.x,r.y,r.z].concat(i.splice(3)):[r.x,r.y,i[2]].concat(i.splice(3)):[r.x,r.y].concat(i.splice(2)):[r.x,r.y]):(s=Hi(t,e,i,n),2===(o=Object.keys(i)).length||o.forEach((function(n){if(void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name){if("x"===n||"y"===n||"z"===n)return}else if("x"===n||"y"===n)return;s[n]=i[n]})),s)}function Ki(t){return t instanceof Di?t:t.oProj?t.oProj:Di(t)}const Ji=function(t,e,i){t=Ki(t);var n,r=!1;return void 0===e?(e=t,t=Xi,r=!0):(void 0!==e.x||Array.isArray(e))&&(i=e,e=t,t=Xi,r=!0),e=Ki(e),i?Wi(t,e,i):(n={forward:function(i,n){return Wi(t,e,i,n)},inverse:function(i,n){return Wi(e,t,i,n)}},r&&(n.oProj=e),n)};var Zi=6,$i="AJSAJS",tn="AFAFAF",en=65,nn=73,rn=79,sn=86,on=90;const an={forward:ln,inverse:function(t){var e=gn(pn(t.toUpperCase()));if(e.lat&&e.lon)return[e.lon,e.lat,e.lon,e.lat];return[e.left,e.bottom,e.right,e.top]},toPoint:hn};function ln(t,e){return e=e||5,function(t,e){var i="00000"+t.easting,n="00000"+t.northing;return t.zoneNumber+t.zoneLetter+(d=t.easting,A=t.northing,p=t.zoneNumber,f=An(p),m=Math.floor(d/1e5),_=Math.floor(A/1e5)%20,r=m,s=_,o=f,a=o-1,l=$i.charCodeAt(a),h=tn.charCodeAt(a),c=l+r-1,u=h+s,g=!1,c>on&&(c=c-on+en-1,g=!0),(c===nn||lnn||(c>nn||lrn||(c>rn||lon&&(c=c-on+en-1),u>sn?(u=u-sn+en-1,g=!0):g=!1,(u===nn||hnn||(u>nn||hrn||(u>rn||hsn&&(u=u-sn+en-1),String.fromCharCode(c)+String.fromCharCode(u))+i.substr(i.length-5,e)+n.substr(n.length-5,e);var r,s,o,a,l,h,c,u,g;var d,A,p,f,m,_}(function(t){var e,i,n,r,s,o,a,l,h=t.lat,c=t.lon,u=6378137,g=.00669438,d=.9996,A=cn(h),p=cn(c);l=Math.floor((c+180)/6)+1,180===c&&(l=60);h>=56&&h<64&&c>=3&&c<12&&(l=32);h>=72&&h<84&&(c>=0&&c<9?l=31:c>=9&&c<21?l=33:c>=21&&c<33?l=35:c>=33&&c<42&&(l=37));a=cn(6*(l-1)-180+3),e=g/(1-g),i=u/Math.sqrt(1-g*Math.sin(A)*Math.sin(A)),n=Math.tan(A)*Math.tan(A),r=e*Math.cos(A)*Math.cos(A),s=Math.cos(A)*(p-a),o=u*((1-g/4-3*g*g/64-5*g*g*g/256)*A-(3*g/8+3*g*g/32+45*g*g*g/1024)*Math.sin(2*A)+(15*g*g/256+45*g*g*g/1024)*Math.sin(4*A)-35*g*g*g/3072*Math.sin(6*A));var f=d*i*(s+(1-n+r)*s*s*s/6+(5-18*n+n*n+72*r-58*e)*s*s*s*s*s/120)+5e5,m=d*(o+i*Math.tan(A)*(s*s/2+(5-n+9*r+4*r*r)*s*s*s*s/24+(61-58*n+n*n+600*r-330*e)*s*s*s*s*s*s/720));h<0&&(m+=1e7);return{northing:Math.round(m),easting:Math.round(f),zoneNumber:l,zoneLetter:dn(h)}}({lat:t[1],lon:t[0]}),e)}function hn(t){var e=gn(pn(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function cn(t){return t*(Math.PI/180)}function un(t){return t/Math.PI*180}function gn(t){var e=t.northing,i=t.easting,n=t.zoneLetter,r=t.zoneNumber;if(r<0||r>60)return null;var s,o,a,l,h,c,u,g,d,A=.9996,p=6378137,f=.00669438,m=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),_=i-5e5,y=e;n<"N"&&(y-=1e7),u=6*(r-1)-180+3,s=.006739496752268451,d=(g=y/A/6367449.145945056)+(3*m/2-27*m*m*m/32)*Math.sin(2*g)+(21*m*m/16-55*m*m*m*m/32)*Math.sin(4*g)+151*m*m*m/96*Math.sin(6*g),o=p/Math.sqrt(1-f*Math.sin(d)*Math.sin(d)),a=Math.tan(d)*Math.tan(d),l=s*Math.cos(d)*Math.cos(d),h=.99330562*p/Math.pow(1-f*Math.sin(d)*Math.sin(d),1.5),c=_/(o*A);var I=d-o*Math.tan(d)/h*(c*c/2-(5+3*a+10*l-4*l*l-9*s)*c*c*c*c/24+(61+90*a+298*l+45*a*a-1.6983531815716497-3*l*l)*c*c*c*c*c*c/720);I=un(I);var E,C=(c-(1+2*a+l)*c*c*c/6+(5-2*l+28*a-3*l*l+8*s+24*a*a)*c*c*c*c*c/120)/Math.cos(d);if(C=u+un(C),t.accuracy){var v=gn({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});E={top:v.lat,right:v.lon,bottom:I,left:C}}else E={lat:I,lon:C};return E}function dn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function An(t){var e=t%Zi;return 0===e&&(e=Zi),e}function pn(t){if(t&&0===t.length)throw"MGRSPoint coverting from nothing";for(var e,i=t.length,n=null,r="",s=0;!/[A-Z]/.test(e=t.charAt(s));){if(s>=2)throw"MGRSPoint bad conversion from: "+t;r+=e,s++}var o=parseInt(r,10);if(0===s||s+3>i)throw"MGRSPoint bad conversion from: "+t;var a=t.charAt(s++);if(a<="A"||"B"===a||"Y"===a||a>="Z"||"I"===a||"O"===a)throw"MGRSPoint zone letter "+a+" not handled: "+t;n=t.substring(s,s+=2);for(var l=An(o),h=function(t,e){var i=$i.charCodeAt(e-1),n=1e5,r=!1;for(;i!==t.charCodeAt(0);){if(++i===nn&&i++,i===rn&&i++,i>on){if(r)throw"Bad character: "+t;i=en,r=!0}n+=1e5}return n}(n.charAt(0),l),c=function(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;var i=tn.charCodeAt(e-1),n=0,r=!1;for(;i!==t.charCodeAt(0);){if(++i===nn&&i++,i===rn&&i++,i>sn){if(r)throw"Bad character: "+t;i=en,r=!0}n+=1e5}return n}(n.charAt(1),l);c0&&(g=1e5/Math.pow(10,p),d=t.substring(s,s+p),f=parseFloat(d)*g,A=t.substring(s+p),m=parseFloat(A)*g),{easting:f+h,northing:m+c,zoneLetter:a,zoneNumber:o,accuracy:g}}function fn(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function mn(t,e,i){if(!(this instanceof mn))return new mn(t,e,i);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if("object"==typeof t)this.x=t.x,this.y=t.y,this.z=t.z||0;else if("string"==typeof t&&void 0===e){var n=t.split(",");this.x=parseFloat(n[0],10),this.y=parseFloat(n[1],10),this.z=parseFloat(n[2],10)||0}else this.x=t,this.y=e,this.z=i||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}mn.fromMGRS=function(t){return new mn(hn(t))},mn.prototype.toMGRS=function(t){return ln([this.x,this.y],t)};const _n=mn;var yn=1,In=.25,En=.046875,Cn=.01953125,vn=.01068115234375,xn=.75,wn=.46875,Sn=.013020833333333334,bn=.007120768229166667,Bn=.3645833333333333,Ln=.005696614583333333,Mn=.3076171875;function Tn(t){var e=[];e[0]=yn-t*(In+t*(En+t*(Cn+t*vn))),e[1]=t*(xn-t*(En+t*(Cn+t*vn)));var i=t*t;return e[2]=i*(wn-t*(Sn+t*bn)),i*=t,e[3]=i*(Bn-t*Ln),e[4]=i*t*Mn,e}function Rn(t,e,i,n){return i*=e,e*=e,n[0]*t-i*(n[1]+e*(n[2]+e*(n[3]+e*n[4])))}var Nn=20;function Pn(t,e,i){for(var n=1/(1-e),r=t,s=Nn;s;--s){var o=Math.sin(r),a=1-e*o*o;if(r-=a=(Rn(r,o,Math.cos(r),i)-t)*(a*Math.sqrt(a))*n,Math.abs(a)Oe?Math.tan(s):0,A=Math.pow(d,2),p=Math.pow(A,2);e=1-this.es*Math.pow(a,2),h/=Math.sqrt(e);var f=Rn(s,a,l,this.en);i=this.a*(this.k0*h*(1+c/6*(1-A+u+c/20*(5-18*A+p+14*u-58*A*u+c/42*(61+179*p-p*A-479*A)))))+this.x0,n=this.a*(this.k0*(f-this.ml0+a*o*h/2*(1+c/12*(5-A+9*u+4*g+c/30*(61+p-58*A+270*u-330*A*u+c/56*(1385+543*p-p*A-3111*A))))))+this.y0}else{var m=l*Math.sin(o);if(Math.abs(Math.abs(m)-1)=1){if(m-1>Oe)return 93;n=0}else n=Math.acos(n);s<0&&(n=-n),n=this.a*this.k0*(n-this.lat0)+this.y0}return t.x=i,t.y=n,t},inverse:function(t){var e,i,n,r,s=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(i=Pn(e=this.ml0+o/this.k0,this.es,this.en),Math.abs(i)Oe?Math.tan(i):0,c=this.ep2*Math.pow(l,2),u=Math.pow(c,2),g=Math.pow(h,2),d=Math.pow(g,2);e=1-this.es*Math.pow(a,2);var A=s*Math.sqrt(e)/this.k0,p=Math.pow(A,2);n=i-(e*=h)*p/(1-this.es)*.5*(1-p/12*(5+3*g-9*c*g+c-4*u-p/30*(61+90*g-252*c*g+45*d+46*c-p/56*(1385+3633*g+4095*d+1574*d*g)))),r=pi(this.long0+A*(1-p/6*(1+2*g+c-p/20*(5+28*g+24*d+8*c*g+6*c-p/42*(61+662*g+1320*d+720*d*g))))/l)}else n=Ne*Ai(o),r=0;else{var f=Math.exp(s/this.k0),m=.5*(f-1/f),_=this.lat0+o/this.k0,y=Math.cos(_);e=Math.sqrt((1-Math.pow(y,2))/(1+Math.pow(m,2))),n=Math.asin(e),o<0&&(n=-n),r=0===m&&0===y?0:pi(Math.atan2(m,y)+this.long0)}return t.x=r,t.y=n,t},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]};function Dn(t){var e=Math.exp(t);return e=(e-1/e)/2}function On(t,e){t=Math.abs(t),e=Math.abs(e);var i=Math.max(t,e),n=Math.min(t,e)/(i||1);return i*Math.sqrt(1+Math.pow(n,2))}function Qn(t){var e=Math.abs(t);return e=function(t){var e=1+t,i=e-1;return 0===i?t:t*Math.log(e)/i}(e*(1+e/(On(1,e)+1))),t<0?-e:e}function kn(t,e){for(var i,n=2*Math.cos(2*e),r=t.length-1,s=t[r],o=0;--r>=0;)i=n*s-o+t[r],o=s,s=i;return e+i*Math.sin(2*e)}function Gn(t,e,i){for(var n,r,s=Math.sin(e),o=Math.cos(e),a=Dn(i),l=function(t){var e=Math.exp(t);return(e+1/e)/2}(i),h=2*o*l,c=-2*s*a,u=t.length-1,g=t[u],d=0,A=0,p=0;--u>=0;)n=A,r=d,g=h*(A=g)-n-c*(d=p)+t[u],p=c*A-r+h*d;return[(h=s*l)*g-(c=o*a)*p,h*p+c*g]}const Un={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(Fn.init.apply(this),this.forward=Fn.forward,this.inverse=Fn.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),i=e;this.cgb[0]=e*(2+e*(-2/3+e*(e*(116/45+e*(26/45+e*(-2854/675)))-2))),this.cbg[0]=e*(e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))-2),i*=e,this.cgb[1]=i*(7/3+e*(e*(-227/45+e*(2704/315+e*(2323/945)))-1.6)),this.cbg[1]=i*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),i*=e,this.cgb[2]=i*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=i*(-26/15+e*(34/21+e*(1.6+e*(-12686/2835)))),i*=e,this.cgb[3]=i*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=i*(1237/630+e*(e*(-24832/14175)-2.4)),i*=e,this.cgb[4]=i*(4174/315+e*(-144838/6237)),this.cbg[4]=i*(-734/315+e*(109598/31185)),i*=e,this.cgb[5]=i*(601676/22275),this.cbg[5]=i*(444337/155925),i=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+i*(1/4+i*(1/64+i/256))),this.utg[0]=e*(e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))-.5),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=i*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=i*(13/48+e*(e*(557/1440+e*(281/630+e*(-1983433/1935360)))-.6)),i*=e,this.utg[2]=i*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=i*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),i*=e,this.utg[3]=i*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=i*(49561/161280+e*(-179/168+e*(6601661/7257600))),i*=e,this.utg[4]=i*(-4583/161280+e*(108847/3991680)),this.gtu[4]=i*(34729/80640+e*(-3418889/1995840)),i*=e,this.utg[5]=i*(-20648693/638668800),this.gtu[5]=.6650675310896665*i;var n=kn(this.cbg,this.lat0);this.Zb=-this.Qn*(n+function(t,e){for(var i,n=2*Math.cos(e),r=t.length-1,s=t[r],o=0;--r>=0;)i=n*s-o+t[r],o=s,s=i;return Math.sin(e)*i}(this.gtu,2*n))},forward:function(t){var e=pi(t.x-this.long0),i=t.y;i=kn(this.cbg,i);var n=Math.sin(i),r=Math.cos(i),s=Math.sin(e),o=Math.cos(e);i=Math.atan2(n,o*r),e=Math.atan2(s*r,On(n,r*o)),e=Qn(Math.tan(e));var a,l,h=Gn(this.gtu,2*i,2*e);return i+=h[0],e+=h[1],Math.abs(e)<=2.623395162778?(a=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*i+this.Zb)+this.y0):(a=1/0,l=1/0),t.x=a,t.y=l,t},inverse:function(t){var e,i,n=(t.x-this.x0)*(1/this.a),r=(t.y-this.y0)*(1/this.a);if(r=(r-this.Zb)/this.Qn,n/=this.Qn,Math.abs(n)<=2.623395162778){var s=Gn(this.utg,2*r,2*n);r+=s[0],n+=s[1],n=Math.atan(Dn(n));var o=Math.sin(r),a=Math.cos(r),l=Math.sin(n),h=Math.cos(n);r=Math.atan2(o*h,On(l,h*a)),e=pi((n=Math.atan2(l,h*a))+this.long0),i=kn(this.cgb,r)}else e=1/0,i=1/0;return t.x=e,t.y=i,t},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","tmerc"]};const qn={init:function(){var t=function(t,e){if(void 0===t){if((t=Math.floor(30*(pi(e)+Math.PI)/Math.PI)+1)<0)return 0;if(t>60)return 60}return t}(this.zone,this.long0);if(void 0===t)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Qe,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Un.init.apply(this),this.forward=Un.forward,this.inverse=Un.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"};function Vn(t,e){return Math.pow((1-t)/(1+t),e)}const zn={init:function(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Ge)/(Math.pow(Math.tan(.5*this.lat0+Ge),this.C)*Vn(this.e*t,this.ratexp))},forward:function(t){var e=t.x,i=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*i+Ge),this.C)*Vn(this.e*Math.sin(i),this.ratexp))-Ne,t.x=this.C*e,t},inverse:function(t){for(var e=t.x/this.C,i=t.y,n=Math.pow(Math.tan(.5*i+Ge)/this.K,1/this.C),r=20;r>0&&(i=2*Math.atan(n*Vn(this.e*Math.sin(t.y),-.5*this.e))-Ne,!(Math.abs(i-t.y)<1e-14));--r)t.y=i;return r?(t.x=e,t.y=i,t):null},names:["gauss"]};const Yn={init:function(){zn.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(t){var e,i,n,r;return t.x=pi(t.x-this.long0),zn.forward.apply(this,[t]),e=Math.sin(t.y),i=Math.cos(t.y),n=Math.cos(t.x),r=this.k0*this.R2/(1+this.sinc0*e+this.cosc0*i*n),t.x=r*i*Math.sin(t.x),t.y=r*(this.cosc0*e-this.sinc0*i*n),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t},inverse:function(t){var e,i,n,r,s;if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,s=Math.sqrt(t.x*t.x+t.y*t.y)){var o=2*Math.atan2(s,this.R2);e=Math.sin(o),i=Math.cos(o),r=Math.asin(i*this.sinc0+t.y*e*this.cosc0/s),n=Math.atan2(t.x*e,s*this.cosc0*i-t.y*this.sinc0*e)}else r=this.phic0,n=0;return t.x=n,t.y=r,zn.inverse.apply(this,[t]),t.x=pi(t.x+this.long0),t},names:["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]};const jn={init:function(){this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Oe&&(this.k0=.5*(1+Ai(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=Oe&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Oe&&(this.k0=.5*this.cons*di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/fi(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=di(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-Ne,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(t){var e,i,n,r,s,o,a=t.x,l=t.y,h=Math.sin(l),c=Math.cos(l),u=pi(a-this.long0);return Math.abs(Math.abs(a-this.long0)-Math.PI)<=Oe&&Math.abs(l+this.lat0)<=Oe?(t.x=NaN,t.y=NaN,t):this.sphere?(e=2*this.k0/(1+this.sinlat0*h+this.coslat0*c*Math.cos(u)),t.x=this.a*e*c*Math.sin(u)+this.x0,t.y=this.a*e*(this.coslat0*h-this.sinlat0*c*Math.cos(u))+this.y0,t):(i=2*Math.atan(this.ssfn_(l,h,this.e))-Ne,r=Math.cos(i),n=Math.sin(i),Math.abs(this.coslat0)<=Oe?(s=fi(this.e,l*this.con,this.con*h),o=2*this.a*this.k0*s/this.cons,t.x=this.x0+o*Math.sin(a-this.long0),t.y=this.y0-this.con*o*Math.cos(a-this.long0),t):(Math.abs(this.sinlat0)0?pi(this.long0+Math.atan2(t.x,-1*t.y)):pi(this.long0+Math.atan2(t.x,t.y)):pi(this.long0+Math.atan2(t.x*Math.sin(a),o*this.coslat0*Math.cos(a)-t.y*this.sinlat0*Math.sin(a))),t.x=e,t.y=i,t)}if(Math.abs(this.coslat0)<=Oe){if(o<=Oe)return i=this.lat0,e=this.long0,t.x=e,t.y=i,t;t.x*=this.con,t.y*=this.con,n=o*this.cons/(2*this.a*this.k0),i=this.con*mi(this.e,n),e=this.con*pi(this.con*this.long0+Math.atan2(t.x,-1*t.y))}else r=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=Oe?s=this.X0:(s=Math.asin(Math.cos(r)*this.sinX0+t.y*Math.sin(r)*this.cosX0/o),e=pi(this.long0+Math.atan2(t.x*Math.sin(r),o*this.cosX0*Math.cos(r)-t.y*this.sinX0*Math.sin(r)))),i=-1*mi(this.e,Math.tan(.5*(Ne+s)));return t.x=e,t.y=i,t},names:["stere","Stereographic_South_Pole","Polar Stereographic (variant B)"],ssfn_:function(t,e,i){return e*=i,Math.tan(.5*(Ne+t))*Math.pow((1-e)/(1+e),.5*i)}};const Hn={init:function(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),i=this.a,n=1/this.rf,r=2*n-Math.pow(n,2),s=this.e=Math.sqrt(r);this.R=this.k0*i*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var o=Math.log(Math.tan(Math.PI/4+this.b0/2)),a=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+s*e)/(1-s*e));this.K=o-this.alpha*a+this.alpha*s/2*l},forward:function(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),i=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),n=-this.alpha*(e+i)+this.K,r=2*(Math.atan(Math.exp(n))-Math.PI/4),s=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(s)/(Math.sin(this.b0)*Math.tan(r)+Math.cos(this.b0)*Math.cos(s))),a=Math.asin(Math.cos(this.b0)*Math.sin(r)-Math.sin(this.b0)*Math.cos(r)*Math.cos(s));return t.y=this.R/2*Math.log((1+Math.sin(a))/(1-Math.sin(a)))+this.y0,t.x=this.R*o+this.x0,t},inverse:function(t){for(var e=t.x-this.x0,i=t.y-this.y0,n=e/this.R,r=2*(Math.atan(Math.exp(i/this.R))-Math.PI/4),s=Math.asin(Math.cos(this.b0)*Math.sin(r)+Math.sin(this.b0)*Math.cos(r)*Math.cos(n)),o=Math.atan(Math.sin(n)/(Math.cos(this.b0)*Math.cos(n)-Math.sin(this.b0)*Math.tan(r))),a=this.lambda0+o/this.alpha,l=0,h=s,c=-1e3,u=0;Math.abs(h-c)>1e-7;){if(++u>20)return;l=1/this.alpha*(Math.log(Math.tan(Math.PI/4+s/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(h))/2)),c=h,h=2*Math.atan(Math.exp(l))-Math.PI/2}return t.x=a,t.y=h,t},names:["somerc"]};var Xn=1e-7;const Wn={init:function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d=0,A=0,p=0,f=0,m=0,_=0,y=0;this.no_off=(g="object"==typeof(u=this).PROJECTION?Object.keys(u.PROJECTION)[0]:u.PROJECTION,"no_uoff"in u||"no_off"in u||-1!==["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"].indexOf(g)),this.no_rot="no_rot"in this;var I=!1;"alpha"in this&&(I=!0);var E=!1;if("rectified_grid_angle"in this&&(E=!0),I&&(y=this.alpha),E&&(d=this.rectified_grid_angle*Qe),I||E)A=this.longc;else if(p=this.long1,m=this.lat1,f=this.long2,_=this.lat2,Math.abs(m-_)<=Xn||(t=Math.abs(m))<=Xn||Math.abs(t-Ne)<=Xn||Math.abs(Math.abs(this.lat0)-Ne)<=Xn||Math.abs(Math.abs(_)-Ne)<=Xn)throw new Error;var C=1-this.es;e=Math.sqrt(C),Math.abs(this.lat0)>Oe?(a=Math.sin(this.lat0),i=Math.cos(this.lat0),t=1-this.es*a*a,this.B=i*i,this.B=Math.sqrt(1+this.es*this.B*this.B/C),this.A=this.B*this.k0*e/t,(r=(n=this.B*e/(i*Math.sqrt(t)))*n-1)<=0?r=0:(r=Math.sqrt(r),this.lat0<0&&(r=-r)),this.E=r+=n,this.E*=Math.pow(fi(this.e,this.lat0,a),this.B)):(this.B=1/e,this.A=this.k0,this.E=n=r=1),I||E?(I?(c=Math.asin(Math.sin(y)/n),E||(d=y)):(c=d,y=Math.asin(n*Math.sin(c))),this.lam0=A-Math.asin(.5*(r-1/r)*Math.tan(c))/this.B):(s=Math.pow(fi(this.e,m,Math.sin(m)),this.B),o=Math.pow(fi(this.e,_,Math.sin(_)),this.B),r=this.E/s,l=(o-s)/(o+s),h=((h=this.E*this.E)-o*s)/(h+o*s),(t=p-f)<-Math.pi?f-=Ue:t>Math.pi&&(f+=Ue),this.lam0=pi(.5*(p+f)-Math.atan(h*Math.tan(.5*this.B*(p-f))/l)/this.B),c=Math.atan(2*Math.sin(this.B*pi(p-this.lam0))/(r-1/r)),d=y=Math.asin(n*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(d),this.cosrot=Math.cos(d),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.A,this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(n*n-1)/Math.cos(y))),this.lat0<0&&(this.u_0=-this.u_0)),r=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(Ge-r)),this.v_pole_s=this.ArB*Math.log(Math.tan(Ge+r))},forward:function(t){var e,i,n,r,s,o,a,l,h={};if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-Ne)>Oe){if(e=.5*((s=this.E/Math.pow(fi(this.e,t.y,Math.sin(t.y)),this.B))-(o=1/s)),i=.5*(s+o),r=Math.sin(this.B*t.x),n=(e*this.singam-r*this.cosgam)/i,Math.abs(Math.abs(n)-1)0?this.v_pole_n:this.v_pole_s,a=this.ArB*t.y;return this.no_rot?(h.x=a,h.y=l):(a-=this.u_0,h.x=l*this.cosrot+a*this.sinrot,h.y=a*this.cosrot-l*this.sinrot),h.x=this.a*h.x+this.x0,h.y=this.a*h.y+this.y0,h},inverse:function(t){var e,i,n,r,s,o,a,l={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(i=t.y,e=t.x):(i=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),r=.5*((n=Math.exp(-this.BrA*i))-1/n),s=.5*(n+1/n),a=((o=Math.sin(this.BrA*e))*this.cosgam+r*this.singam)/s,Math.abs(Math.abs(a)-1)Oe?this.ns=Math.log(n/a)/Math.log(r/l):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=n/(this.ns*Math.pow(r,this.ns)),this.rh=this.a*this.f0*Math.pow(h,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(t){var e=t.x,i=t.y;Math.abs(2*Math.abs(i)-Math.PI)<=Oe&&(i=Ai(i)*(Ne-2*Oe));var n,r,s=Math.abs(Math.abs(i)-Ne);if(s>Oe)n=fi(this.e,i,Math.sin(i)),r=this.a*this.f0*Math.pow(n,this.ns);else{if((s=i*this.ns)<=0)return null;r=0}var o=this.ns*pi(e-this.long0);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t},inverse:function(t){var e,i,n,r,s,o=(t.x-this.x0)/this.k0,a=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+a*a),i=1):(e=-Math.sqrt(o*o+a*a),i=-1);var l=0;if(0!==e&&(l=Math.atan2(i*o,i*a)),0!==e||this.ns>0){if(i=1/this.ns,n=Math.pow(e/(this.a*this.f0),i),-9999===(r=mi(this.e,n)))return null}else r=-Ne;return s=pi(l/this.ns+this.long0),t.x=s,t.y=r,t},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]};const Jn={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(t){var e,i,n,r,s,o,a,l=t.x,h=t.y,c=pi(l-this.long0);return e=Math.pow((1+this.e*Math.sin(h))/(1-this.e*Math.sin(h)),this.alfa*this.e/2),i=2*(Math.atan(this.k*Math.pow(Math.tan(h/2+this.s45),this.alfa)/e)-this.s45),n=-c*this.alfa,r=Math.asin(Math.cos(this.ad)*Math.sin(i)+Math.sin(this.ad)*Math.cos(i)*Math.cos(n)),s=Math.asin(Math.cos(i)*Math.sin(n)/Math.cos(r)),o=this.n*s,a=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(r/2+this.s45),this.n),t.y=a*Math.cos(o)/1,t.x=a*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t},inverse:function(t){var e,i,n,r,s,o,a,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),s=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x)/Math.sin(this.s0),n=2*(Math.atan(Math.pow(this.ro0/s,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(n)-Math.sin(this.ad)*Math.cos(n)*Math.cos(r)),i=Math.asin(Math.cos(n)*Math.sin(r)/Math.cos(e)),t.x=this.long0-i/this.alfa,o=e,a=0;var h=0;do{t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(o))/(1-this.e*Math.sin(o)),this.e/2))-this.s45),Math.abs(o-t.y)<1e-10&&(a=1),o=t.y,h+=1}while(0===a&&h<15);return h>=15?null:t},names:["Krovak","krovak"]};function Zn(t,e,i,n,r){return t*r-e*Math.sin(2*r)+i*Math.sin(4*r)-n*Math.sin(6*r)}function $n(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function tr(t){return.375*t*(1+.25*t*(1+.46875*t))}function er(t){return.05859375*t*t*(1+.75*t)}function ir(t){return t*t*t*(35/3072)}function nr(t,e,i){var n=e*i;return t/Math.sqrt(1-n*n)}function rr(t){return Math.abs(t)1e-7?(1-t*t)*(e/(1-(i=t*e)*i)-.5/t*Math.log((1-i)/(1+i))):2*e}var lr=.3333333333333333,hr=.17222222222222222,cr=.10257936507936508,ur=.06388888888888888,gr=.0664021164021164,dr=.016415012942191543;const Ar={init:function(){var t,e=Math.abs(this.lat0);if(Math.abs(e-Ne)0)switch(this.qp=ar(this.e,1),this.mmf=.5/(1-this.es),this.apa=function(t){var e,i=[];return i[0]=t*lr,e=t*t,i[0]+=e*hr,i[1]=e*ur,e*=t,i[0]+=e*cr,i[1]+=e*gr,i[2]=e*dr,i}(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=ar(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(t){var e,i,n,r,s,o,a,l,h,c,u=t.x,g=t.y;if(u=pi(u-this.long0),this.sphere){if(s=Math.sin(g),c=Math.cos(g),n=Math.cos(u),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((i=this.mode===this.EQUIT?1+c*n:1+this.sinph0*s+this.cosph0*c*n)<=Oe)return null;e=(i=Math.sqrt(2/i))*c*Math.sin(u),i*=this.mode===this.EQUIT?s:this.cosph0*s-this.sinph0*c*n}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(n=-n),Math.abs(g+this.lat0)=0?(e=(h=Math.sqrt(o))*r,i=n*(this.mode===this.S_POLE?h:-h)):e=i=0}}return t.x=this.a*e+this.x0,t.y=this.a*i+this.y0,t},inverse:function(t){t.x-=this.x0,t.y-=this.y0;var e,i,n,r,s,o,a,l,h,c,u=t.x/this.a,g=t.y/this.a;if(this.sphere){var d,A=0,p=0;if((i=.5*(d=Math.sqrt(u*u+g*g)))>1)return null;switch(i=2*Math.asin(i),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(p=Math.sin(i),A=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(d)<=Oe?0:Math.asin(g*p/d),u*=p,g=A*d;break;case this.OBLIQ:i=Math.abs(d)<=Oe?this.lat0:Math.asin(A*this.sinph0+g*p*this.cosph0/d),u*=p*this.cosph0,g=(A-Math.sin(i)*this.sinph0)*d;break;case this.N_POLE:g=-g,i=Ne-i;break;case this.S_POLE:i-=Ne}e=0!==g||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(u,g):0}else{if(a=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(u/=this.dd,g*=this.dd,(o=Math.sqrt(u*u+g*g))1&&(t=t>1?1:-1),Math.asin(t)}const fr={init:function(){Math.abs(this.lat1+this.lat2)Oe?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(t){var e=t.x,i=t.y;this.sin_phi=Math.sin(i),this.cos_phi=Math.cos(i);var n=ar(this.e3,this.sin_phi),r=this.a*Math.sqrt(this.c-this.ns0*n)/this.ns0,s=this.ns0*pi(e-this.long0),o=r*Math.sin(s)+this.x0,a=this.rh-r*Math.cos(s)+this.y0;return t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),n=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),n=-1),r=0,0!==e&&(r=Math.atan2(n*t.x,n*t.y)),n=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-n*n)/(2*this.ns0)):(i=(this.c-n*n)/this.ns0,o=this.phi1z(this.e3,i)),s=pi(r/this.ns0+this.long0),t.x=s,t.y=o,t},names:["Albers_Conic_Equal_Area","Albers","aea"],phi1z:function(t,e){var i,n,r,s,o=pr(.5*e);if(t0||Math.abs(s)<=Oe?(o=this.x0+1*this.a*i*Math.sin(n)/s,a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*r)/s):(o=this.x0+this.infinity_dist*i*Math.sin(n),a=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*i*r)),t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(r=Math.atan2(e,this.rc),i=Math.sin(r),o=pr((n=Math.cos(r))*this.sin_p14+t.y*i*this.cos_p14/e),s=Math.atan2(t.x*i,e*this.cos_p14*n-t.y*this.sin_p14*i),s=pi(this.long0+s)):(o=this.phic0,s=0),t.x=s,t.y=o,t},names:["gnom"]};const _r={init:function(){this.sphere||(this.k0=di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(t){var e,i,n=t.x,r=t.y,s=pi(n-this.long0);if(this.sphere)e=this.x0+this.a*s*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(r)/Math.cos(this.lat_ts);else{var o=ar(this.e,Math.sin(r));e=this.x0+this.a*this.k0*s,i=this.y0+this.a*o*.5/this.k0}return t.x=e,t.y=i,t},inverse:function(t){var e,i;return t.x-=this.x0,t.y-=this.y0,this.sphere?(e=pi(this.long0+t.x/this.a/Math.cos(this.lat_ts)),i=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(i=function(t,e){var i=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-i)<1e-6)return e<0?-1*Ne:Ne;for(var n,r,s,o,a=Math.asin(.5*e),l=0;l<30;l++)if(r=Math.sin(a),s=Math.cos(a),o=t*r,a+=n=Math.pow(1-o*o,2)/(2*s)*(e/(1-t*t)-r/(1-o*o)+.5/t*Math.log((1-o)/(1+o))),Math.abs(n)<=1e-10)return a;return NaN}(this.e,2*t.y*this.k0/this.a),e=pi(this.long0+t.x/(this.a*this.k0))),t.x=e,t.y=i,t},names:["cea"]};const yr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(t){var e=t.x,i=t.y,n=pi(e-this.long0),r=rr(i-this.lat0);return t.x=this.x0+this.a*n*this.rc,t.y=this.y0+this.a*r,t},inverse:function(t){var e=t.x,i=t.y;return t.x=pi(this.long0+(e-this.x0)/(this.a*this.rc)),t.y=rr(this.lat0+(i-this.y0)/this.a),t},names:["Equirectangular","Equidistant_Cylindrical","eqc"]};const Ir={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=$n(this.es),this.e1=tr(this.es),this.e2=er(this.es),this.e3=ir(this.es),this.ml0=this.a*Zn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(t){var e,i,n,r=t.x,s=t.y,o=pi(r-this.long0);if(n=o*Math.sin(s),this.sphere)Math.abs(s)<=Oe?(e=this.a*o,i=-1*this.a*this.lat0):(e=this.a*Math.sin(n)/Math.tan(s),i=this.a*(rr(s-this.lat0)+(1-Math.cos(n))/Math.tan(s)));else if(Math.abs(s)<=Oe)e=this.a*o,i=-1*this.ml0;else{var a=nr(this.a,this.e,Math.sin(s))/Math.tan(s);e=a*Math.sin(n),i=this.a*Zn(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+a*(1-Math.cos(n))}return t.x=e+this.x0,t.y=i+this.y0,t},inverse:function(t){var e,i,n,r,s,o,a,l,h;if(n=t.x-this.x0,r=t.y-this.y0,this.sphere)if(Math.abs(r+this.a*this.lat0)<=Oe)e=pi(n/this.a+this.long0),i=0;else{var c;for(o=this.lat0+r/this.a,a=n*n/this.a/this.a+o*o,l=o,s=20;s;--s)if(l+=h=-1*(o*(l*(c=Math.tan(l))+1)-l-.5*(l*l+a)*c)/((l-o)/c-1),Math.abs(h)<=Oe){i=l;break}e=pi(this.long0+Math.asin(n*Math.tan(l)/this.a)/Math.sin(i))}else if(Math.abs(r+this.ml0)<=Oe)i=0,e=pi(this.long0+n/this.a);else{var u,g,d,A,p;for(o=(this.ml0+r)/this.a,a=n*n/this.a/this.a+o*o,l=o,s=20;s;--s)if(p=this.e*Math.sin(l),u=Math.sqrt(1-p*p)*Math.tan(l),g=this.a*Zn(this.e0,this.e1,this.e2,this.e3,l),d=this.e0-2*this.e1*Math.cos(2*l)+4*this.e2*Math.cos(4*l)-6*this.e3*Math.cos(6*l),l-=h=(o*(u*(A=g/this.a)+1)-A-.5*u*(A*A+a))/(this.es*Math.sin(2*l)*(A*A+a-2*o*A)/(4*u)+(o-A)*(u*d-2/Math.sin(2*l))-d),Math.abs(h)<=Oe){i=l;break}u=Math.sqrt(1-this.es*Math.pow(Math.sin(i),2))*Math.tan(i),e=pi(this.long0+Math.asin(n*u/this.a)/Math.sin(i))}return t.x=e,t.y=i,t},names:["Polyconic","poly"]};const Er={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(t){var e,i=t.x,n=t.y-this.lat0,r=i-this.long0,s=n/Re*1e-5,o=r,a=1,l=0;for(e=1;e<=10;e++)a*=s,l+=this.A[e]*a;var h,c=l,u=o,g=1,d=0,A=0,p=0;for(e=1;e<=6;e++)h=d*c+g*u,g=g*c-d*u,d=h,A=A+this.B_re[e]*g-this.B_im[e]*d,p=p+this.B_im[e]*g+this.B_re[e]*d;return t.x=p*this.a+this.x0,t.y=A*this.a+this.y0,t},inverse:function(t){var e,i,n=t.x,r=t.y,s=n-this.x0,o=(r-this.y0)/this.a,a=s/this.a,l=1,h=0,c=0,u=0;for(e=1;e<=6;e++)i=h*o+l*a,l=l*o-h*a,h=i,c=c+this.C_re[e]*l-this.C_im[e]*h,u=u+this.C_im[e]*l+this.C_re[e]*h;for(var g=0;g.999999999999&&(i=.999999999999),e=Math.asin(i);var n=pi(this.long0+t.x/(.900316316158*this.a*Math.cos(e)));n<-Math.PI&&(n=-Math.PI),n>Math.PI&&(n=Math.PI),i=(2*e+Math.sin(2*e))/Math.PI,Math.abs(i)>1&&(i=1);var r=Math.asin(i);return t.x=n,t.y=r,t},names:["Mollweide","moll"]};const wr={init:function(){Math.abs(this.lat1+this.lat2)=0?(i=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(i=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var s=0;return 0!==i&&(s=Math.atan2(e*t.x,e*t.y)),this.sphere?(r=pi(this.long0+s/this.ns),n=rr(this.g-i/this.a),t.x=r,t.y=n,t):(n=sr(this.g-i/this.a,this.e0,this.e1,this.e2,this.e3),r=pi(this.long0+s/this.ns),t.x=r,t.y=n,t)},names:["Equidistant_Conic","eqdc"]};const Sr={init:function(){this.R=this.a},forward:function(t){var e,i,n=t.x,r=t.y,s=pi(n-this.long0);Math.abs(r)<=Oe&&(e=this.x0+this.R*s,i=this.y0);var o=pr(2*Math.abs(r/Math.PI));(Math.abs(s)<=Oe||Math.abs(Math.abs(r)-Ne)<=Oe)&&(e=this.x0,i=r>=0?this.y0+Math.PI*this.R*Math.tan(.5*o):this.y0+Math.PI*this.R*-Math.tan(.5*o));var a=.5*Math.abs(Math.PI/s-s/Math.PI),l=a*a,h=Math.sin(o),c=Math.cos(o),u=c/(h+c-1),g=u*u,d=u*(2/h-1),A=d*d,p=Math.PI*this.R*(a*(u-A)+Math.sqrt(l*(u-A)*(u-A)-(A+l)*(g-A)))/(A+l);s<0&&(p=-p),e=this.x0+p;var f=l+u;return p=Math.PI*this.R*(d*f-a*Math.sqrt((A+l)*(l+1)-f*f))/(A+l),i=r>=0?this.y0+p:this.y0-p,t.x=e,t.y=i,t},inverse:function(t){var e,i,n,r,s,o,a,l,h,c,u,g;return t.x-=this.x0,t.y-=this.y0,u=Math.PI*this.R,s=(n=t.x/u)*n+(r=t.y/u)*r,u=3*(r*r/(l=-2*(o=-Math.abs(r)*(1+s))+1+2*r*r+s*s)+(2*(a=o-2*r*r+n*n)*a*a/l/l/l-9*o*a/l/l)/27)/(h=(o-a*a/3/l)/l)/(c=2*Math.sqrt(-h/3)),Math.abs(u)>1&&(u=u>=0?1:-1),g=Math.acos(u)/3,i=t.y>=0?(-c*Math.cos(g+Math.PI/3)-a/3/l)*Math.PI:-(-c*Math.cos(g+Math.PI/3)-a/3/l)*Math.PI,e=Math.abs(n)2*Ne*this.a)return;return i=e/this.a,n=Math.sin(i),r=Math.cos(i),s=this.long0,Math.abs(e)<=Oe?o=this.lat0:(o=pr(r*this.sin_p12+t.y*n*this.cos_p12/e),a=Math.abs(this.lat0)-Ne,s=Math.abs(a)<=Oe?this.lat0>=0?pi(this.long0+Math.atan2(t.x,-t.y)):pi(this.long0-Math.atan2(-t.x,t.y)):pi(this.long0+Math.atan2(t.x*n,e*this.cos_p12*r-t.y*this.sin_p12*n))),t.x=s,t.y=o,t}return l=$n(this.es),h=tr(this.es),c=er(this.es),u=ir(this.es),Math.abs(this.sin_p12-1)<=Oe?(o=sr(((g=this.a*Zn(l,h,c,u,Ne))-(e=Math.sqrt(t.x*t.x+t.y*t.y)))/this.a,l,h,c,u),s=pi(this.long0+Math.atan2(t.x,-1*t.y)),t.x=s,t.y=o,t):Math.abs(this.sin_p12+1)<=Oe?(g=this.a*Zn(l,h,c,u,Ne),o=sr(((e=Math.sqrt(t.x*t.x+t.y*t.y))-g)/this.a,l,h,c,u),s=pi(this.long0+Math.atan2(t.x,t.y)),t.x=s,t.y=o,t):(e=Math.sqrt(t.x*t.x+t.y*t.y),p=Math.atan2(t.x,t.y),d=nr(this.a,this.e,this.sin_p12),f=Math.cos(p),_=-(m=this.e*this.cos_p12*f)*m/(1-this.es),y=3*this.es*(1-_)*this.sin_p12*this.cos_p12*f/(1-this.es),C=1-_*(E=(I=e/d)-_*(1+_)*Math.pow(I,3)/6-y*(1+3*_)*Math.pow(I,4)/24)*E/2-I*E*E*E/6,A=Math.asin(this.sin_p12*Math.cos(E)+this.cos_p12*Math.sin(E)*f),s=pi(this.long0+Math.asin(Math.sin(p)*Math.sin(E)/Math.cos(A))),v=Math.sin(A),o=Math.atan2((v-this.es*C*this.sin_p12)*Math.tan(A),v*(1-this.es)),t.x=s,t.y=o,t)},names:["Azimuthal_Equidistant","aeqd"]};const Br={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(t){var e,i,n,r,s,o,a,l=t.x,h=t.y;return n=pi(l-this.long0),e=Math.sin(h),i=Math.cos(h),r=Math.cos(n),1,((s=this.sin_p14*e+this.cos_p14*i*r)>0||Math.abs(s)<=Oe)&&(o=1*this.a*i*Math.sin(n),a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*r)),t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o,a;return t.x-=this.x0,t.y-=this.y0,i=pr((e=Math.sqrt(t.x*t.x+t.y*t.y))/this.a),n=Math.sin(i),r=Math.cos(i),o=this.long0,Math.abs(e)<=Oe?(a=this.lat0,t.x=o,t.y=a,t):(a=pr(r*this.sin_p14+t.y*n*this.cos_p14/e),s=Math.abs(this.lat0)-Ne,Math.abs(s)<=Oe?(o=this.lat0>=0?pi(this.long0+Math.atan2(t.x,-t.y)):pi(this.long0-Math.atan2(-t.x,t.y)),t.x=o,t.y=a,t):(o=pi(this.long0+Math.atan2(t.x*n,e*this.cos_p14*r-t.y*this.sin_p14*n)),t.x=o,t.y=a,t))},names:["ortho"]};var Lr=1,Mr=2,Tr=3,Rr=4,Nr=5,Pr=6,Fr={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function Dr(t,e,i,n){var r;return tGe&&r<=Ne+Ge?(n.value=Fr.AREA_1,r-=Ne):r>Ne+Ge||r<=-(Ne+Ge)?(n.value=Fr.AREA_2,r=r>=0?r-qe:r+qe):(n.value=Fr.AREA_3,r+=Ne)),r}function Or(t,e){var i=t+e;return i<-qe?i+=Ue:i>+qe&&(i-=Ue),i}const Qr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=Ne-Ge/2?this.face=Nr:this.lat0<=-(Ne-Ge/2)?this.face=Pr:Math.abs(this.long0)<=Ge?this.face=Lr:Math.abs(this.long0)<=Ne+Ge?this.face=this.long0>0?Mr:Rr:this.face=Tr,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(t){var e,i,n,r,s,o,a={x:0,y:0},l={value:0};if(t.x-=this.long0,e=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(t.y)):t.y,i=t.x,this.face===Nr)r=Ne-e,i>=Ge&&i<=Ne+Ge?(l.value=Fr.AREA_0,n=i-Ne):i>Ne+Ge||i<=-(Ne+Ge)?(l.value=Fr.AREA_1,n=i>0?i-qe:i+qe):i>-(Ne+Ge)&&i<=-Ge?(l.value=Fr.AREA_2,n=i+Ne):(l.value=Fr.AREA_3,n=i);else if(this.face===Pr)r=Ne+e,i>=Ge&&i<=Ne+Ge?(l.value=Fr.AREA_0,n=-i+Ne):i=-Ge?(l.value=Fr.AREA_1,n=-i):i<-Ge&&i>=-(Ne+Ge)?(l.value=Fr.AREA_2,n=-i-Ne):(l.value=Fr.AREA_3,n=i>0?-i+qe:-i-qe);else{var h,c,u,g,d,A;this.face===Mr?i=Or(i,+Ne):this.face===Tr?i=Or(i,+qe):this.face===Rr&&(i=Or(i,-Ne)),g=Math.sin(e),d=Math.cos(e),A=Math.sin(i),h=d*Math.cos(i),c=d*A,u=g,this.face===Lr?n=Dr(r=Math.acos(h),u,c,l):this.face===Mr?n=Dr(r=Math.acos(c),u,-h,l):this.face===Tr?n=Dr(r=Math.acos(-h),u,-c,l):this.face===Rr?n=Dr(r=Math.acos(-c),u,h,l):(r=n=0,l.value=Fr.AREA_0)}return o=Math.atan(12/qe*(n+Math.acos(Math.sin(n)*Math.cos(Ge))-Ne)),s=Math.sqrt((1-Math.cos(r))/(Math.cos(o)*Math.cos(o))/(1-Math.cos(Math.atan(1/Math.cos(n))))),l.value===Fr.AREA_1?o+=Ne:l.value===Fr.AREA_2?o+=qe:l.value===Fr.AREA_3&&(o+=1.5*qe),a.x=s*Math.cos(o),a.y=s*Math.sin(o),a.x=a.x*this.a+this.x0,a.y=a.y*this.a+this.y0,t.x=a.x,t.y=a.y,t},inverse:function(t){var e,i,n,r,s,o,a,l,h,c,u,g,d={lam:0,phi:0},A={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,i=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),e=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?A.value=Fr.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(A.value=Fr.AREA_1,e-=Ne):t.x<0&&-t.x>=Math.abs(t.y)?(A.value=Fr.AREA_2,e=e<0?e+qe:e-qe):(A.value=Fr.AREA_3,e+=Ne),h=qe/12*Math.tan(e),s=Math.sin(h)/(Math.cos(h)-1/Math.sqrt(2)),o=Math.atan(s),(a=1-(n=Math.cos(e))*n*(r=Math.tan(i))*r*(1-Math.cos(Math.atan(1/Math.cos(o)))))<-1?a=-1:a>1&&(a=1),this.face===Nr)l=Math.acos(a),d.phi=Ne-l,A.value===Fr.AREA_0?d.lam=o+Ne:A.value===Fr.AREA_1?d.lam=o<0?o+qe:o-qe:A.value===Fr.AREA_2?d.lam=o-Ne:d.lam=o;else if(this.face===Pr)l=Math.acos(a),d.phi=l-Ne,A.value===Fr.AREA_0?d.lam=-o+Ne:A.value===Fr.AREA_1?d.lam=-o:A.value===Fr.AREA_2?d.lam=-o-Ne:d.lam=o<0?-o-qe:-o+qe;else{var p,f,m;h=(p=a)*p,f=(h+=(m=h>=1?0:Math.sqrt(1-h)*Math.sin(o))*m)>=1?0:Math.sqrt(1-h),A.value===Fr.AREA_1?(h=f,f=-m,m=h):A.value===Fr.AREA_2?(f=-f,m=-m):A.value===Fr.AREA_3&&(h=f,f=m,m=-h),this.face===Mr?(h=p,p=-f,f=h):this.face===Tr?(p=-p,f=-f):this.face===Rr&&(h=p,p=f,f=-h),d.phi=Math.acos(-m)-Ne,d.lam=Math.atan2(f,p),this.face===Mr?d.lam=Or(d.lam,-Ne):this.face===Tr?d.lam=Or(d.lam,-qe):this.face===Rr&&(d.lam=Or(d.lam,+Ne))}return 0!==this.es&&(c=d.phi<0?1:0,u=Math.tan(d.phi),g=this.b/Math.sqrt(u*u+this.one_minus_f_squared),d.phi=Math.atan(Math.sqrt(this.a*this.a-g*g)/(this.one_minus_f*g)),c&&(d.phi=-d.phi)),d.lam+=this.long0,t.x=d.lam,t.y=d.phi,t},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]};var kr=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Gr=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],Ur=.8487,qr=1.3523,Vr=ke/5,zr=1/Vr,Yr=18,jr=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))};const Hr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(t){var e=pi(t.x-this.long0),i=Math.abs(t.y),n=Math.floor(i*Vr);n<0?n=0:n>=Yr&&(n=17);var r={x:jr(kr[n],i=ke*(i-zr*n))*e,y:jr(Gr[n],i)};return t.y<0&&(r.y=-r.y),r.x=r.x*this.a*Ur+this.x0,r.y=r.y*this.a*qr+this.y0,r},inverse:function(t){var e={x:(t.x-this.x0)/(this.a*Ur),y:Math.abs(t.y-this.y0)/(this.a*qr)};if(e.y>=1)e.x/=kr[18][0],e.y=t.y<0?-Ne:Ne;else{var i=Math.floor(e.y*Yr);for(i<0?i=0:i>=Yr&&(i=17);;)if(Gr[i][0]>e.y)--i;else{if(!(Gr[i+1][0]<=e.y))break;++i}var n=Gr[i],r=5*(e.y-n[0])/(Gr[i+1][0]-n[0]);r=function(t,e,i,n){for(var r=e;n;--n){var s=t(r);if(r-=s,Math.abs(s)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(t){var e,i,n,r,s=t.x,o=t.y;if(s-=this.long0,"ellipse"===this.shape){o=Math.atan(this.radius_p2*Math.tan(o));var a=this.radius_p/On(this.radius_p*Math.cos(o),Math.sin(o));if(i=a*Math.cos(s)*Math.cos(o),n=a*Math.sin(s)*Math.cos(o),r=a*Math.sin(o),(this.radius_g-i)*i-n*n-r*r*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/On(r,e)),t.y=this.radius_g_1*Math.atan(r/e)):(t.x=this.radius_g_1*Math.atan(n/e),t.y=this.radius_g_1*Math.atan(r/On(n,e)))}else"sphere"===this.shape&&(e=Math.cos(o),i=Math.cos(s)*e,n=Math.sin(s)*e,r=Math.sin(o),e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/On(r,e)),t.y=this.radius_g_1*Math.atan(r/e)):(t.x=this.radius_g_1*Math.atan(n/e),t.y=this.radius_g_1*Math.atan(r/On(n,e))));return t.x=t.x*this.a,t.y=t.y*this.a,t},inverse:function(t){var e,i,n,r,s=-1,o=0,a=0;if(t.x=t.x/this.a,t.y=t.y/this.a,"ellipse"===this.shape){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*On(1,a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*On(1,o));var l=a/this.radius_p;if(e=o*o+l*l+s*s,(n=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-i-Math.sqrt(n))/(2*e),s=this.radius_g+r*s,o*=r,a*=r,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if("sphere"===this.shape){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+o*o)),e=o*o+a*a+s*s,(n=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-i-Math.sqrt(n))/(2*e),s=this.radius_g+r*s,o*=r,a*=r,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s)}return t.x=t.x+this.long0,t},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]};Ji.defaultDatum="WGS84",Ji.Proj=Di,Ji.WGS84=new Ji.Proj("WGS84"),Ji.Point=_n,Ji.toPoint=Yi,Ji.defs=li,Ji.nadgrid=function(t,e){var i=new DataView(e),n=function(t){var e=t.getInt32(8,!1);if(11===e)return!1;e=t.getInt32(8,!0),11!==e&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian");return!0}(i),r=function(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ti(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}(i,n);r.nSubgrids>1&&console.log("Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored");var s=function(t,e,i){for(var n=176,r=[],s=0;s{let e=t;Array.isArray(e)||(e=[e]),e.forEach((t=>{t.codes.forEach((e=>{is.defs(e,t.def)}));ne(t.codes.map((e=>new u({code:e,extent:t.extent,worldExtent:t.worldExtent,units:t.units,metersPerUnit:t.metersPerUnit,axisOrientation:t.axisOrientation,global:t.global})))),-1===os.indexOf(t)&&os.push(t)}))},ls=()=>os;as(os),ls(),rs(is);const hs={addProjections:as,getSupportedProjs:ls};function cs(t){t.stopPropagation()}const us=class{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},gs="propertychange";const ds=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function As(t,e){return t>e?1:te?-1:0}function fs(t,e,i){if(t[0]<=e)return 0;const n=t.length;if(e<=t[n-1])return n-1;if("function"==typeof i){for(let r=1;r0?r-1:r}return n-1}if(i>0){for(let i=1;i0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=Cs,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}},bs="change",Bs="error",Ls="contextmenu",Ms="click",Ts="dblclick",Rs="dragenter",Ns="dragover",Ps="drop",Fs="keydown",Ds="keypress",Os="load",Qs="touchmove",ks="wheel";function Gs(t,e,i,n,r){if(n&&n!==t&&(i=i.bind(n)),r){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function Us(t,e,i,n){return Gs(t,e,i,n,!0)}function qs(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),xs(t))}class Vs extends Ss{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(bs)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;r0;)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new to(Js,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new to(Zs,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new to(Zs,i,t)),this.dispatchEvent(new to(Js,e,t))}updateLength_(){this.set($s,this.array_.length)}assertUnique_(t,e){for(let i=0,n=this.array_.length;i=1024){let i=0;for(const n in t)0==(3&i++)&&(delete t[n],--e)}n=function(t){let e,i,n,r,s;So.exec(t)&&(t=Bo(t));if(wo.exec(t)){const o=t.length-1;let a;a=o<=4?1:2;const l=4===o||8===o;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),r=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(r=(r<<4)+r)),s=[e,i,n,r/255]}else if(t.startsWith("rgba("))s=t.slice(5,-1).split(",").map(Number),To(s);else{if(!t.startsWith("rgb("))throw new Error("Invalid color");s=t.slice(4,-1).split(",").map(Number),s.push(1),To(s)}return s}(i),t[i]=n,++e}return n}}();function Mo(t){return Array.isArray(t)?t:Lo(t)}function To(t){return t[0]=dt(t[0]+.5|0,0,255),t[1]=dt(t[1]+.5|0,0,255),t[2]=dt(t[2]+.5|0,0,255),t[3]=dt(t[3],0,1),t}function Ro(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);return"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}class No{constructor(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];0!=(3&t++)||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=Po(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const r=Po(t,e,i);this.cache_[r]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function Po(t,e,i){return e+":"+t+":"+(i?bo(i):"null")}const Fo=new No,Do="opacity",Oo="visible",Qo="extent",ko="zIndex",Go="maxResolution",Uo="minResolution",qo="maxZoom",Vo="minZoom",zo="source",Yo="map";const jo=class extends Ks{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[Do]=void 0!==t.opacity?t.opacity:1,go("number"==typeof e[Do],"Layer opacity must be a number"),e[Oo]=void 0===t.visible||t.visible,e[ko]=t.zIndex,e[Go]=void 0!==t.maxResolution?t.maxResolution:1/0,e[Uo]=void 0!==t.minResolution?t.minResolution:0,e[Vo]=void 0!==t.minZoom?t.minZoom:-1/0,e[qo]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=dt(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return js()}getLayerStatesArray(t){return js()}getExtent(){return this.get(Qo)}getMaxResolution(){return this.get(Go)}getMinResolution(){return this.get(Uo)}getMinZoom(){return this.get(Vo)}getMaxZoom(){return this.get(qo)}getOpacity(){return this.get(Do)}getSourceState(){return js()}getVisible(){return this.get(Oo)}getZIndex(){return this.get(ko)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(Qo,t)}setMaxResolution(t){this.set(Go,t)}setMinResolution(t){this.set(Uo,t)}setMaxZoom(t){this.set(qo,t)}setMinZoom(t){this.set(Vo,t)}setOpacity(t){go("number"==typeof t,"Layer opacity must be a number"),this.set(Do,t)}setVisible(t){this.set(Oo,t)}setZIndex(t){this.set(ko,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},Ho="prerender",Xo="postrender",Wo="precompose",Ko="postcompose",Jo="rendercomplete",Zo=0,$o=1,ta={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"},ea=42,ia=256;function na(t,e,i){return function(n,r,s,o,a){if(!n)return;if(!r&&!e)return n;const l=e?0:s[0]*r,h=e?0:s[1]*r,c=a?a[0]:0,u=a?a[1]:0;let g=t[0]+l/2+c,d=t[2]-l/2+c,A=t[1]+h/2+u,p=t[3]-h/2+u;g>d&&(g=(d+g)/2,d=g),A>p&&(A=(p+A)/2,p=A);let f=dt(n[0],g,d),m=dt(n[1],A,p);if(o&&i&&r){const t=30*r;f+=-t*Math.log(1+Math.max(0,g-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-d)/t),m+=-t*Math.log(1+Math.max(0,A-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-p)/t)}return[f,m]}}function ra(t){return t}function sa(t,e,i,n){const r=at(e)/i[0],s=nt(e)/i[1];return n?Math.min(t,Math.max(r,s)):Math.min(t,Math.min(r,s))}function oa(t,e,i){let n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(n=Math.max(n,i),n/=Math.log(1+50*Math.max(0,i/t-1))/50+1),dt(n,i/2,2*e)}function aa(t,e,i,n,r){return i=void 0===i||i,function(s,o,a,l){if(void 0!==s){const o=n?sa(t,n,a,r):t;return i&&l?oa(s,o,e):dt(s,e,o)}}}function la(t){if(void 0!==t)return 0}function ha(t){if(void 0!==t)return t}function ca(t){return Math.pow(t,3)}function ua(t){return 1-ca(1-t)}function ga(t){return 3*t*t-2*t*t*t}function da(t){return t}function Aa(t){return t<.5?ga(2*t):1-ga(2*(t-.5))}function pa(t,e,i,n,r,s){s=s||[];let o=0;for(let a=e;a1)u=i;else{if(g>0){for(let r=0;rr&&(r=a),s=i,o=n}return r}function va(t,e,i,n,r){for(let s=0,o=i.length;s0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],g=t[i],d=t[i+1];for(let e=s+n;eo&&(c=e,o=i)}o>r&&(l[(c-e)/n]=1,s+n0&&A>g)&&(d<0&&p0&&p>d)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function Na(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;ls&&(i-a)*(s-l)-(r-a)*(n-l)>0&&o++:n<=s&&(i-a)*(s-l)-(r-a)*(n-l)<0&&o--,a=i,l=n}return 0!==o}function Ya(t,e,i,n,r,s){if(0===i.length)return!1;if(!za(t,e,i[0],n,r,s))return!1;for(let e=1,o=i.length;em&&(h=(c+u)/2,Ya(t,e,i,n,h,A)&&(f=h,m=r)),c=u}return isNaN(f)&&(f=r[s]),o?(o.push(f,A,m),o):[f,A,m]}function Ha(t,e,i,n,r){let s=[];for(let o=0,a=i.length;o=r[0]&&s[2]<=r[2]||(s[1]>=r[1]&&s[3]<=r[3]||Xa(t,e,i,n,(function(t,e){return function(t,e,i){let n=!1;const r=Q(t,e),s=Q(t,i);if(r===L.INTERSECTING||s===L.INTERSECTING)n=!0;else{const o=t[0],a=t[1],l=t[2],h=t[3],c=e[0],u=e[1],g=i[0],d=i[1],A=(d-u)/(g-c);let p,f;s&L.ABOVE&&!(r&L.ABOVE)&&(p=g-(d-h)/A,n=p>=o&&p<=l),n||!(s&L.RIGHT)||r&L.RIGHT||(f=d-(g-l)*A,n=f>=a&&f<=h),n||!(s&L.BELOW)||r&L.BELOW||(p=g-(d-a)/A,n=p>=o&&p<=l),n||!(s&L.LEFT)||r&L.LEFT||(f=d-(g-o)*A,n=f>=a&&f<=h)}return n}(r,t,e)})))))}function Ka(t,e,i,n,r){return!!Wa(t,e,i,n,r)||(!!za(t,e,i,n,r[0],r[1])||(!!za(t,e,i,n,r[0],r[3])||(!!za(t,e,i,n,r[2],r[1])||!!za(t,e,i,n,r[2],r[3]))))}function Ja(t,e,i,n,r){if(!Ka(t,e,i[0],n,r))return!1;if(1===i.length)return!0;for(let e=1,s=i.length;e0}function tl(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;sc&&g1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n0}getInteracting(){return this.hints_[$o]>0}cancelAnimations(){let t;this.setHint(Zo,-this.hints_[Zo]);for(let e=0,i=this.animations_.length;e=0;--i){const n=this.animations_[i];let r=!0;for(let i=0,s=n.length;i0?o/s.duration:1;a>=1?(s.complete=!0,a=1):r=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],n=s.targetCenter[1];this.nextCenter_=s.targetCenter;const r=t+l*(i-t),o=e+l*(n-e);this.targetCenter_=[r,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?_t(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(r){this.animations_[i]=null,this.setHint(Zo,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&cl(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],Nt(i,t-this.getRotation()),St(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),r=this.getResolution();if(void 0!==n&&void 0!==r){i=[e[0]-t*(e[0]-n[0])/r,e[1]-t*(e[1]-n[1])/r]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?pe(t,this.getProjection()):t}getCenterInternal(){return this.get(ta.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return me(this.calculateExtentInternal(t),this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();go(e,"The view center is not defined");const i=this.getResolution();go(void 0!==i,"The view resolution is not defined");const n=this.getRotation();return go(void 0!==n,"The view rotation is not defined"),et(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(ta.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(_e(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=at(t)/e[0],n=nt(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*n)}}getRotation(){return this.get(ta.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(i/n)/e;return function(t){return Math.log(i/t)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const r=this.padding_;if(r){const t=this.getViewportSizeMinusPadding_();n=gl(n,this.getViewportSize_(),[t[0]/2+r[3],t[1]/2+r[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const r=fs(this.resolutions_,t,1);n=r,e=this.resolutions_[r],i=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=dt(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,dt(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(go(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t)){go(!ht(t),"Cannot fit empty extent provided as `geometry`");i=al(_e(t,this.getProjection()))}else if("Circle"===t.getType()){const e=_e(t.getExtent(),this.getProjection());i=al(e),i.rotate(this.getRotation(),$(e))}else{const e=Ae();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),r=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=r.length;tt.maxResolution)return!1;var n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}const pl=class extends jo{constructor(t){const e=Object.assign({},t);delete e.source,super(e),this.on,this.once,this.un,this.mapPrecomposeKey_=null,this.mapRenderKey_=null,this.sourceChangeKey_=null,this.renderer_=null,this.sourceReady_=!1,this.rendered=!1,t.render&&(this.render=t.render),t.map&&this.setMap(t.map),this.addChangeListener(zo,this.handleSourcePropertyChange_);const i=t.source?t.source:null;this.setSource(i)}getLayersArray(t){return(t=t||[]).push(this),t}getLayerStatesArray(t){return(t=t||[]).push(this.getLayerState()),t}getSource(){return this.get(zo)||null}getRenderSource(){return this.getSource()}getSourceState(){const t=this.getSource();return t?t.getState():"undefined"}handleSourceChange_(){this.changed(),this.sourceReady_||"ready"!==this.getSource().getState()||(this.sourceReady_=!0,this.dispatchEvent("sourceready"))}handleSourcePropertyChange_(){this.sourceChangeKey_&&(qs(this.sourceChangeKey_),this.sourceChangeKey_=null),this.sourceReady_=!1;const t=this.getSource();t&&(this.sourceChangeKey_=Gs(t,bs,this.handleSourceChange_,this),"ready"===t.getState()&&(this.sourceReady_=!0,setTimeout((()=>{this.dispatchEvent("sourceready")}),0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const i=this.getMapInternal();let n;!t&&i&&(t=i.getView()),e=t instanceof dl?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&i&&(e.layerStatesArray=i.getLayerGroup().getLayerStatesArray()),n=e.layerStatesArray?e.layerStatesArray.find((t=>t.layer===this)):this.getLayerState();const r=this.getExtent();return Al(n,e.viewState)&&(!r||lt(r,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];let e;const i=this.getSource();if(i&&(e=i.getAttributions()),!e)return[];let n=e(t instanceof dl?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const i=this.getRenderer();return i.prepareFrame(t)?(this.rendered=!0,i.renderFrame(t,e)):null}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(Yo,t)}getMapInternal(){return this.get(Yo)}setMap(t){this.mapPrecomposeKey_&&(qs(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(qs(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=Gs(t,Wo,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);go(!e.some((function(t){return t.layer===i.layer})),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(i)}),this),this.mapRenderKey_=Gs(this,bs,t.render,t),this.changed())}setSource(t){this.set(zo,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}};function fl(t,e){Fo.expire()}const ml=class extends ds{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){js()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Eo(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Co(n,i)}forEachFeatureAtCoordinate(t,e,i,n,r,s,o,a){let l;const h=e.viewState;function c(t,e,i,n){return r.call(s,e,t?i:null,n)}const u=h.projection,g=kt(t.slice(),u),d=[[0,0]];if(u.canWrapX()&&n){const t=at(u.getExtent());d.push([-t,0],[t,0])}const A=e.layerStatesArray,p=A.length,f=[],m=[];for(let n=0;n=0;--r){const s=A[r],u=s.layer;if(u.hasRenderer()&&Al(s,h)&&o.call(a,u)){const r=u.getRenderer(),o=u.getSource();if(r&&o){const a=o.getWrapX()?g:t,h=c.bind(null,s.managed);m[0]=a[0]+d[n][0],m[1]=a[1]+d[n][1],l=r.forEachFeatureAtCoordinate(m,e,i,h,f)}if(l)return l}}if(0===f.length)return;const _=1/f.length;return f.forEach(((t,e)=>t.distanceSq+=e*_)),f.sort(((t,e)=>t.distanceSq-e.distanceSq)),f.some((t=>l=t.callback(t.feature,t.layer,t.geometry))),l}hasFeatureAtCoordinate(t,e,i,n,r,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,n,Is,this,r,s)}getMap(){return this.map_}renderFrame(t){js()}flushDeclutterItems(t){}scheduleExpireIconCache(t){Fo.canExpireCache()&&t.postRenderFunctions.push(fl)}};const _l=class extends us{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}},yl="ol-hidden",Il="ol-unselectable",El="ol-unsupported",Cl="ol-control",vl="ol-collapsed",xl=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),wl=["style","variant","weight","size","lineHeight","family"],Sl=function(t){const e=t.match(xl);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,n=wl.length;tMath.max(e,Kl(t,i))),0);return i[e]=n,n}function Zl(t,e,i,n,r,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.transform.apply(t,e),n.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,n=i.length;t=0;--i)e[i].renderDeclutter(t);e.length=0}};class th extends us{constructor(t,e){super(t),this.layer=e}}const eh="layers";class ih extends jo{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(eh,this.handleLayersChanged_),i?Array.isArray(i)?i=new eo(i.slice(),{unique:!0}):go("function"==typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new eo(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(qs),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(Gs(t,Js,this.handleLayersAdd_,this),Gs(t,Zs,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(qs);xs(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t{this.clickTimeoutId_=void 0;const e=new sh(oh.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==oh.POINTERUP||e.type==oh.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=oh.POINTERDOWN&&e.type!=oh.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new sh(oh.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new sh(oh.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(Gs(t,oh.POINTERMOVE,this.handlePointerMove_,this),Gs(t,oh.POINTERUP,this.handlePointerUp_,this),Gs(this.element_,oh.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(Gs(this.element_.getRootNode(),oh.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new sh(oh.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new sh(oh.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(qs(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(Qs,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(qs(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},gh="postrender",dh="movestart",Ah="moveend",ph="loadstart",fh="loadend",mh="layergroup",_h="size",yh="target",Ih="view",Eh=1/0;const Ch=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,xs(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){go(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=Eh&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,r=e[t],s=i[t],o=t;for(;t>1;){const r=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(n[t]>s))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=r,n[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const r=e.length;let s,o,a;for(o=0;o0;)n=this.dequeue()[0],r=n.getKey(),i=n.getState(),i!==vh||r in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[r]=!0,++this.tilesLoading_,++s,n.load())}};const Lh=class extends Ks{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){Rl(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&Rl(this.element);for(let t=0,e=this.listenerKeys.length;te.getAttributions(t))))),i=!this.getMap().getAllLayers().some((t=>t.getSource()&&!1===t.getSource().getAttributionsCollapsible()));return this.overrideCollapsible_||this.setCollapsible(i),e}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!ys(e,this.renderedAttributions_)){Nl(this.ulElement_);for(let t=0,i=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:ua}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(yl);t||0!==i?t&&0!==i&&this.element.classList.remove(yl):this.element.classList.add(yl)}this.label_.style.transform=t}this.rotation_=i}};const Rh=class extends Lh{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",r=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=n,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(Ms,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(Ms,this.handleClick_.bind(this,-i),!1);const u=e+" "+Il+" "+Cl,g=this.element;g.className=u,g.appendChild(h),g.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const n=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:ua})):e.setZoom(n)}}};function Nh(t){t=t||{};const e=new eo;(void 0===t.zoom||t.zoom)&&e.push(new Rh(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new Th(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new Mh(t.attributionOptions)),e}const Ph="active";function Fh(t,e,i,n){const r=t.getZoom();if(void 0===r)return;const s=t.getConstrainedZoom(r+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:ua})}const Dh=class extends Ks{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(Ph)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(Ph,t)}setMap(t){this.map_=t}};const Oh=class extends Dh{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==oh.DBLCLICK){const i=t.originalEvent,n=t.map,r=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;Fh(n.getView(),s,r,this.duration_),i.preventDefault(),e=!0}return!e}};function Qh(t){const e=t.length;let i=0,n=0;for(let r=0;r0}}else if(t.type==oh.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==oh.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function Gh(t){const e=arguments;return function(t){let i=!0;for(let n=0,r=e.length;n0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};const ic=class extends kh{constructor(t){t=t||{},super({stopDown:Es}),this.condition_=t.condition?t.condition:qh,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!$h(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===la)return;const n=e.getSize(),r=t.pixel,s=Math.atan2(n[1]/2-r[1],r[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!$h(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!$h(t))return!1;if(jh(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}};const nc=class extends ds{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new sl([i])}getGeometry(){return this.geometry_}},rc="boxstart",sc="boxdrag",oc="boxend",ac="boxcancel";class lc extends us{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}const hc=class extends kh{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new nc(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:jh,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],r=i[1]-e[1];return n*n+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new lc(sc,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new lc(e?oc:ac,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new lc(rc,t.coordinate,t)),!0)}onBoxEnd(t){}};const cc=class extends hc{constructor(t){super({condition:(t=t||{}).condition?t.condition:Jh,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),n=e.getResolutionForExtentInternal(t),r=e.getResolution()/n;i=i.clone(),i.scale(r*r)}e.fitInternal(i,{duration:this.duration_,easing:ua})}},uc="ArrowLeft",gc="ArrowUp",dc="ArrowRight",Ac="ArrowDown";const pc=class extends Dh{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Wh(t)&&Zh(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==Fs){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&(n==Ac||n==uc||n==dc||n==gc)){const r=t.map.getView(),s=r.getResolution()*this.pixelDelta_;let o=0,a=0;n==Ac?a=-s:n==uc?o=-s:n==dc?o=s:a=s;const l=[o,a];Nt(l,r.getRotation()),function(t,e,i){const n=t.getCenterInternal();if(n){const r=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:da,center:t.getConstrainedCenter(r)})}}(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}};const fc=class extends Dh{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!Kh(t)&&Zh(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==Fs||t.type==Ds){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&("+"===n||"-"===n)){const r=t.map,s="+"===n?this.delta_:-this.delta_;Fh(r.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}};const mc=class{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t;)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const r=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,r),this.initialVelocity_=Math.sqrt(r*r+s*s)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}};const _c=class extends Dh{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Yh;this.condition_=t.onFocusOnly?Gh(zh,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==ks)return!0;const e=t.map,i=t.originalEvent;let n;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==ks&&(n=i.deltaY,no&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(n/=ao),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(n*=40)),0===n)return!1;this.lastDelta_=n;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(n)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-n/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=n;const o=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-dt(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),Fh(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}};const yc=class extends kh{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=Es),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],r=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=r;const s=t.map,o=s.getView();o.getConstraints().rotation!==la&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(Qh(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};const Ic=class extends kh{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=Es),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],r=i.clientX-n.clientX,s=i.clientY-n.clientY,o=Math.sqrt(r*r+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(Qh(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function Ec(t){t=t||{};const e=new eo,i=new mc(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new ic);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new Oh({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new ec({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new yc);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new Ic({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new pc),e.push(new fc({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new _c({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new cc({duration:t.zoomDuration})),e}function Cc(t){return t[0]>0&&t[1]>0}function vc(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function xc(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}function wc(t){t instanceof pl?t.setMapInternal(null):t instanceof nh&&t.getLayers().forEach(wc)}function Sc(t,e){if(t instanceof pl)t.setMapInternal(e);else if(t instanceof nh){const i=t.getLayers().getArray();for(let t=0,n=i.length;tthis.updateSize())),this.controls=e.controls||Nh(),this.interactions=e.interactions||Ec({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Bh(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(mh,this.handleLayerGroupChanged_),this.addChangeListener(Ih,this.handleViewChanged_),this.addChangeListener(_h,this.handleSizeChanged_),this.addChangeListener(yh,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof dl||t.view.then((function(t){i.setView(new dl(t))})),this.controls.addEventListener(Js,(t=>{t.element.setMap(this)})),this.controls.addEventListener(Zs,(t=>{t.element.setMap(null)})),this.interactions.addEventListener(Js,(t=>{t.element.setMap(this)})),this.interactions.addEventListener(Zs,(t=>{t.element.setMap(null)})),this.overlays_.addEventListener(Js,(t=>{this.addOverlayInternal_(t.element)})),this.overlays_.addEventListener(Zs,(t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)})),this.controls.forEach((t=>{t.setMap(this)})),this.interactions.forEach((t=>{t.setMap(this)})),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){Sc(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:Is,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,r,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof nh?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:Is,r=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,r,s,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i=this.getSize(),n=e.width/i[0],r=e.height/i[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/n,(s.clientY-e.top)/r]}getTarget(){return this.get(yh)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return pe(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?_o(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(mh)}setLayers(t){const e=this.getLayerGroup();if(t instanceof eo)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;if(!n.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Zo]||e[$o]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new th("removelayer",e)),this.set(mh,t)}setSize(t){this.set(_h,t)}setTarget(t){this.set(yh,t)}setView(t){if(!t||t instanceof dl)return void this.set(Ih,t);this.set(Ih,new dl);const e=this;t.then((function(t){e.setView(new dl(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),r=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(n)||isNaN(r)||(e=[n,r],!Cc(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Xt("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&ys(e,i)||(this.setSize(e),this.updateViewportSize_())}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}};const Bc=class{constructor(t,e,i=!1){this._listener=t,this._scope=e,this.eventKey_=JB(),this.once_=i}fire(t){let e=t;UB(e)||(e=[e]),this._listener.apply(this._scope,e)}getEventKey(){return this.eventKey_}isOnce(){return this.once_}has(t,e){let i=!1;return i=VB(t)?this._listener===t&&this._scope===e:this.eventKey_===t,i}};const Lc=class{constructor(){this.events_={}}add(t,e,i,n=!1){let r;if(!qB(t)&&VB(e)&&(qB(this.events_[t])&&(this.events_[t]=[]),-1===this.indexOf(t,e,i))){const s=new Bc(e,i,n);this.events_[t].push(s),r=s.getEventKey()}return r}remove(t,e,i){const n=this.events_[t];if(!qB(n)){const r=this.indexOf(t,e,i);-1!==r&&n.splice(r,1)}}removeByKey(t,e){const i=this.events_[t];if(!qB(i)){const t=i.map(((t,i)=>{let n=-1;return t.getEventKey()===e&&(n=i),n}));-1!==t&&i.splice(t,1)}}fire(t,e){const i=[].concat(this.events_[t]);qB(i)||i.forEach((i=>{i.fire(e),!0===i.isOnce()&&this.remove(t,i.getEventKey())}))}indexOf(t,e,i){let n=-1;const r=this.events_[t];if(!qB(r))for(let t=0,s=r.length;ti?(this.direction_=Pc,this.widthLimit_=e-o):(this.direction_=Nc,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(i),r=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:r,duration:this.duration_,easing:ua})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(Gs(i,ah,t,this),Gs(i,hh,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,n=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==Pc?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===Pc?t/this.widthLimit_:e/this.heightLimit_,dt(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){return dt(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}};const Dc=class extends Fc{constructor(t){super(hL({},t,!0)),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}},Oc=t=>{throw new Error(t)};const Qc=class extends Mc{constructor(t){super(),this.impl_=t,!qB(this.impl_)&&VB(this.impl_.setFacadeObj)&&this.impl_.setFacadeObj(this)}getImpl(){return this.impl_}setImpl(t){this.impl_=t}destroy(){!qB(this.impl_)&&VB(this.impl_.destroy)&&this.impl_.destroy()}},kc="added:map",Gc="added:panel",Uc="added:layer",qc="added:wmc",Vc="added:kml",zc="added:wms",Yc="added:wfs",jc="added:vectortile",Hc="removed:layer",Xc="removed:map",Wc="added:wmts",Kc="activated",Jc="deactivated",Zc="show",$c="hide",tu="destroy",eu="select:features",iu="unselect:features",nu="hover:features",ru="leave:features",su="load",ou="completed",au="change",lu="change:wmc",hu="change:proj",cu="change:style",uu="change:zoom",gu="change:rotation",du="changed:layer-visibility",Au="click",pu="move",fu="popup:added",mu="popup:removed",_u="popup:addtabed",yu="popup:removedtab",Iu={translations:{en:JSON.parse('{"location":{"title":"Get current location"},"layerswitcher":{"title":"Layer selector","unsupported_param":"Unsupported parameter","no_base_layer":"Without base layer"},"scale":{"title":"Scale","scale":"Scale"},"getfeatureinfo":{"info":"Information","title":"Consult layer","no_info":"No associated info","info_of":"Information about","unsupported_format":"Unsupported format"},"wmcselector":{"title":"Context selector"},"dialog":{"info":"INFORMATION","error":"ERROR","success":"SUCCESS","id_feature":"An ID has not been indicated to obtain the feature","invalid_type_layer":"A valid type was not specified for the layer","vector_filter":"The indicated filter is not correct","unauthorized_user":"An error occurred while loading the layer: Unauthorized user.","only_one_filter":"FeatureID and CQL are mutually exclusive, indicate only one type of filtering.","getfeatureinfo_type":"The requested format for the information is not available. Try it using gml, plain or html."},"feature":{"incorrect_attributes":"The attributes were not specified correctly."},"exception":{"addto_method":"The used implementation does not have the addTo method","no_get_rotation_method":"The used implementation does not have the getRotation method","no_set_rotation_method":"The used implementation does not have the setRotation method","getelement_method":"The used implementation does not have the getElement method","getfeatureinfo_method":"The used implementation can not create GetFeatureInfo controls","mouse_method":"The used implementation can not create Mouse controls","navtoolbar_method":"The used implementation can not create navtoolbar controls","overviewmap_method":"The used implementation can not create OverviewMap controls","panzoom_method":"The used implementation can not create Panzoom controls","panzoombar_method":"The used implementation can not create Panzoombar controls","scale_method":"The used implementation can not create Scale controls","scaleline_method":"The used implementation can not create ScaleLine controls","wmcselector_method":"The used implementation can not create WMCSelector controls","geojson_method":"The used implementation can not create objects M.impl.format.GeoJSON","wkt_method":"The used implementation can not creat objects M.impl.format.WKT","getfeaturesbylayer_method":"The used implementation does not have the getFeaturesByLayer method","geojsonlayer_method":"The used implementation can not create GeoJSON layers","no_param":"No parameters specified","no_name":"You have not specified any name","kmllayer_method":"The used implementation can not create KML layers","isvisible_method":"The used implementation does not have the isVisible method","isqueryable_methd":"The used implementation does not have the isQueryable method","visibility_param":"You have not specified any visibility parameters","setvisible_method":"The used implementation does not have the setVisible method","inrange_method":"The used implementation does not have the inRange method","mapbox_method":"The used implementation can not create Mapbox layers","osm_method":"The used implementation can not create OSM layers","vectorlayer_method":"The used implementation can not create Vector layers","wfslayer_method":"The used implementation can not create WFS layers","wmclayer_method":"The used implementation can not create WMC layers","select_method":"The used implementation does not have the select method","unselect_method":"The used implementation does not have the unselect method","constructor_impl":"The used implementation does not have a constructor.","getlayers_method":"The used implementation does not have the getLayers method.","getbaselayers_method":"The used implementation does not have the getBaseLayers method.","addlayers_method":"The used implementation does not have the addLayers method.","removelayers_method":"The used implementation does not have the removeLayers method.","getwmc_method":"The implementation used does not have the getWMC method.","addwmc_method":"The used implementation does not have the addWMC method.","removewmc_method":"The used implementation does not have the removeWMC method.","getkml_method":"The used implementation does not have the getKML method.","addkml_method":"The implementation used does not have the addKML method.","removekml_method":"The implementation used does not have the removeKML method.","getwms_method":"The used implementation does not have the getWMS method.","addwms_method":"The used implementation does not have the addWMS method.","removewms_method":"The used implementation does not have the removeWMS method.","getwfs_method":"The implementation used does not have the getWFS method.","getgeojson_method":"The used implementation does not have the getGeoJSON method.","addwfs_method":"The used implementation does not have the addWFS method.","removewfs_method":"The used implementation does not have the removeWFS method.","getwmts_method":"The implementation used does not have the getWMTS method.","addwmts_method":"The used implementation does not have the addWMTS method.","removewmts_method":"The used implementation does not have the removeWMTS method.","getmbtiles_method":"The used implementation does not have the getMBtiles method.","getcontrols_method":"The used implementation does not have the getControls method.","addcontrols_method":"The used implementation does not have the addControls method.","remove_control":"You have not specified any control to delete.","removecontrol_method":"The used implementation does not have the removeControls method.","setmaxextent_method":"The used implementation does not have the setMaxExtent method.","getbbox_method":"The used implementation does not have the getBbox method.","no_bbox":"You have not specified any bbox.","setbbox_method":"The used implementation does not have the setBbox method.","incorrect_bbox_format":"The format of the bbox parameter is not correct.","getzoom_method":"The used implementation does not have the getZoom method.","no_zoom":"You have not specified any zoom.","setzoom_method":"The implementation used does not have the setZoom method.","getcenter_method":"The used implementation does not have the getCenter method.","setcenter_method":"The used implementation does not have the setCenter method.","getresolutions_method":"The used implementation does not have the getResolutions method.","no_resolutions":"You have not specified any resolution.","setresolutions_method":"The used implementation does not have the setResolutions method.","getscale_method":"The used implementation does not have the getScale method.","getprojection_method":"The implementation used does not have the getProjection method.","no_projection":"You have not specified any projection.","setprojection_method":"The used implementation does not have the setProjection method.","no_plugins":"You have not specified any plugins.","no_add_plugin_to_map":"The plugin can not be added to the map.","no_plugin_to_remove":"You have not specified any plugins to delete.","destroy_method":"The used implementation does not have the destroy method.","addlabel_method":"The used implementation does not have the addLabel method.","no_point":"You have not specified any points.","remove_control_from_panel":"You must remove the controls from the panel previously.","getcontainer_method":"The used implementation does not have the getContainer method.","getmapimpl_method":"The used implementation does not have the getMapImpl method.","removepopup_method":"The used implementation does not have the removePopup method.","no_popup":"You have not specified any popup.","invalid_popup":"The specified popup is not valid.","no_maxextent":"You have not specified any maxExtent","must_be_document":"doc.nodeType must be DOCUMENT type","no_service_response":"There was no reply from the service","no_kml_response":"There was no response from the KML","no_getfeature_response":"There was no response in the GetFeature operation","no_map":"You have not specified any map","layerswitcher_method":"The used implementation can not create LayerSwitcher controls","location_method":"The used implementation can not create Location controls","wms_method":"The used implementation can not create WMS layers","wmts_method":"The used implementation can not create WMTS layers","no_impl":"No implementation specified","no_container":"You have not specified any container parameters","no_id_container":"There is no container with the specified id","no_center":"You have not specified any center parameters","no_attr_name":"The name of the attribute was not specified","no_empty":"The attribute name can not be null. Specify string or function","invalid_center_param":"The format of the center parameter is not correct","invalid_maxextent_param":"The format of the maxExtent parameter is not correct","invalid_resolutions_param":"The format of the resolutions parameter is not correct","invalid_zoom_param":"The format of the zoom parameter is not correct","min_gt_max":"A minimum radius greater than the maximum can not be established.","max_lt_min":"A maximum radius of less than the minimum can not be established.","no_geojson":"No GeoJSON has been specified","unsupported_lang":"A language without support has been established","generate_image":"An error occurred while generating the image","id_exists":"ID already exists"}}'),es:JSON.parse('{"location":{"title":"Obtener ubicación actual"},"layerswitcher":{"title":"Selector de capas","unsupported_param":"Parámetro no soportado","no_base_layer":"Sin capa base"},"scale":{"title":"Escala","scale":"Escala"},"getfeatureinfo":{"info":"Información","title":"Consultar capa","no_info":"No existe información asociada","info_of":"Información de","unsupported_format":"Formato no soportado"},"wmcselector":{"title":"Selector de contextos"},"dialog":{"info":"INFORMACIÓN","error":"ERROR","success":"ÉXITO","id_feature":"No se ha indicado un ID para obtener el feature","invalid_type_layer":"No se ha especificado un tipo válido para la capa","vector_filter":"El filtro indicado no es correcto","unauthorized_user":"Ha ocurrido un error al cargar la capa: Usuario no autorizado.","only_one_filter":"FeatureID y CQL son mutuamente excluyentes. Indicar sólo un tipo de filtrado.","getfeatureinfo_type":"El formato solicitado para la información no está disponible. Inténtelo utilizando gml, plain o html."},"feature":{"incorrect_attributes":"No se han especificado correctamente los atributos."},"exception":{"addto_method":"La implementación usada no posee el método addTo","no_get_rotation_method":"La implementación usada no posee el método getRotation","no_set_rotation_method":"La implementación usada no posee el método setRotation","getelement_method":"La implementación usada no posee el método getElement","getfeatureinfo_method":"La implementación usada no puede crear controles GetFeatureInfo","mouse_method":"La implementación usada no puede crear controles Mouse","navtoolbar_method":"La implementación usada no puede crear controles Navtoolbar","overviewmap_method":"La implementación usada no puede crear controles OverviewMap","panzoom_method":"La implementación usada no puede crear controles Panzoom","panzoombar_method":"La implementación usada no puede crear controles Panzoombar","scale_method":"La implementación usada no puede crear controles Scale","scaleline_method":"La implementación usada no puede crear controles ScaleLine","wmcselector_method":"La implementación usada no puede crear controles WMCSelector","geojson_method":"La implementación usada no puede crear objetos M.impl.format.GeoJSON","wkt_method":"La implementación usada no puede creat objetos M.impl.format.WKT","getfeaturesbylayer_method":"La implementación usada no posee el método getFeaturesByLayer","geojsonlayer_method":"La implementación usada no puede crear capas GeoJSON","no_param":"No se ha especificado ningun parámetro","no_name":"No ha especificado ningún nombre","kmllayer_method":"La implementación usada no puede crear capas KML","isvisible_method":"La implementación usada no posee el método isVisible","isqueryable_methd":"La implementación usada no posee el método isQueryable","visibility_param":"No ha especificado ningún parámetro de visibilidad","setvisible_method":"La implementación usada no posee el método setVisible","inrange_method":"La implementación usada no posee el método inRange","mapbox_method":"La implementación usada no puede crear capas Mapbox","osm_method":"La implementación usada no puede crear capas OSM","vectorlayer_method":"La implementación usada no puede crear capas Vector","wfslayer_method":"La implementación usada no puede crear capas WFS","wmclayer_method":"La implementación usada no puede crear capas WMC","select_method":"La implementación usada no posee el método select","unselect_method":"La implementación usada no posee el método unselect","constructor_impl":"La implementación usada no posee un constructor.","getlayers_method":"La implementación usada no posee el método getLayers.","getbaselayers_method":"La implementación usada no posee el método getBaseLayers.","addlayers_method":"La implementación usada no posee el método addLayers.","removelayers_method":"La implementación usada no posee el método removeLayers.","getwmc_method":"La implementación usada no posee el método getWMC.","addwmc_method":"La implementación usada no posee el método addWMC.","removewmc_method":"La implementación usada no posee el método removeWMC.","getkml_method":"La implementación usada no posee el método getKML.","addkml_method":"La implementación usada no posee el método addKML.","removekml_method":"La implementación usada no posee el método removeKML.","getwms_method":"La implementación usada no posee el método getWMS.","addwms_method":"La implementación usada no posee el método addWMS.","removewms_method":"La implementación usada no posee el método removeWMS.","getwfs_method":"La implementación usada no posee el método getWFS.","getgeojson_method":"La implementación usada no posee el método getGeoJSON.","addwfs_method":"La implementación usada no posee el método addWFS.","removewfs_method":"La implementación usada no posee el método removeWFS.","getwmts_method":"La implementación usada no posee el método getWMTS.","addwmts_method":"La implementación usada no posee el método addWMTS.","removewmts_method":"La implementación usada no posee el método removeWMTS.","getmbtiles_method":"La implementación usada no posee el método getMBtiles.","getcontrols_method":"La implementación usada no posee el método getControls.","addcontrols_method":"La implementación usada no posee el método addControls.","remove_control":"No ha especificado ningún control a eliminar.","removecontrol_method":"La implementación usada no posee el método removeControls.","setmaxextent_method":"La implementación usada no posee el método setMaxExtent.","getbbox_method":"La implementación usada no posee el método getBbox.","no_bbox":"No ha especificado ningún bbox.","setbbox_method":"La implementación usada no posee el método setBbox.","incorrect_bbox_format":"El formato del parámetro bbox no es el correcto.","getzoom_method":"La implementación usada no posee el método getZoom.","no_zoom":"No ha especificado ningún zoom.","setzoom_method":"La implementación usada no posee el método setZoom.","getcenter_method":"La implementación usada no posee el método getCenter.","setcenter_method":"La implementación usada no posee el método setCenter.","getresolutions_method":"La implementación usada no posee el método getResolutions.","no_resolutions":"No ha especificado ninguna resolución.","setresolutions_method":"La implementación usada no posee el método setResolutions.","getscale_method":"La implementación usada no posee el método getScale.","getprojection_method":"La implementación usada no posee el método getProjection.","no_projection":"No ha especificado ninguna proyección.","setprojection_method":"La implementación usada no posee el método setProjection.","no_plugins":"No ha especificado ningún plugin.","no_add_plugin_to_map":"El plugin no puede añadirse al mapa.","no_plugin_to_remove":"No ha especificado ningún plugin a eliminar.","destroy_method":"La implementación usada no posee el método destroy.","addlabel_method":"La implementación usada no posee el método addLabel.","no_point":"No ha especificado ningún punto.","remove_control_from_panel":"Debe eliminar los controles del panel previamente.","getcontainer_method":"La implementación usada no posee el método getContainer.","getmapimpl_method":"La implementación usada no posee el método getMapImpl.","removepopup_method":"La implementación usada no posee el método removePopup.","no_popup":"No ha especificado ningún popup.","invalid_popup":"El popup especificado no es válido.","no_maxextent":"No ha especificado ningún maxExtent","must_be_document":"doc.nodeType debe ser de tipo DOCUMENT","no_service_response":"No hubo respuesta del servicio","no_kml_response":"No hubo respuesta del KML","no_getfeature_response":"No hubo respuesta en la operación GetFeature","no_map":"No ha especificado ningun mapa","layerswitcher_method":"La implementación usada no puede crear controles LayerSwitcher","location_method":"La implementación usada no puede crear controles Location","wms_method":"La implementación usada no puede crear capas WMS","wmts_method":"La implementación usada no puede crear capas WMTS","no_impl":"No se ha especificado ninguna implementación","no_container":"No ha especificado ningún parámetro contenedor","no_id_container":"No existe ningún contenedor con el id especificado","no_center":"No ha especificado ningún parámetro center","no_attr_name":"No se ha especificado el nombre del atributo","no_empty":"El nombre de atributo no puede ser nulo. Especifique cadena o función","invalid_center_param":"El formato del parámetro center no es correcto","invalid_maxextent_param":"El formato del parámetro maxExtent no es correcto","invalid_resolutions_param":"El formato del parámetro resolutions no es correcto","invalid_zoom_param":"El formato del parámetro zoom no es correcto","min_gt_max":"No puede establecerse un radio mínimo mayor que el máximo.","max_lt_min":"No puede establecerse un radio máximo menor que el mínimo.","no_geojson":"No se ha especificado ningun GeoJSON","unsupported_lang":"Se ha establecido un idioma sin soporte","generate_image":"Se ha producido un error al generar la imagen","id_exists":"El ID indicado ya existe"}}')},lang:"es"},Eu=t=>Iu.translations[t],Cu=(t,e=Iu.lang)=>Eu(e)[t];const vu=class extends Qc{constructor(t,e){const i=t;super(i),QB(i.addTo)&&Oc(Cu("exception").addto_method),QB(i.getElement)&&Oc(Cu("exception").getelement_method),QB(i.isByDefault)&&(i.isByDefault=!0),this.name=e,this.map_=null,this.element_=null,this.activationBtn_=null,this.activated=!1,this.panel_=null,this.controls_=null}setImpl(t){const e=t;QB(e.addTo)&&Oc(Cu("exception").addto_method),QB(e.getElement)&&Oc(Cu("exception").getelement_method),QB(e.isByDefault)&&(e.isByDefault=!0)}addTo(t){this.map_=t;const e=this.getImpl(),i=this.createView(t);i instanceof Promise?i.then((i=>{this.manageActivation(i),e.addTo(t,i),this.fire(kc)})):(this.manageActivation(i),e.addTo(t,i),this.fire(kc))}createView(t){}manageActivation(t){this.element_=t,this.activationBtn_=this.getActivationButton(this.element_),qB(this.activationBtn_)||this.activationBtn_.addEventListener("click",(t=>{t.preventDefault(),this.activated?(this.deactivate(),this.activated=!1):(this.activate(),this.activated=!0)}),!1)}getActivationButton(t){}activate(){qB(this.element_)||this.element_.classList.add("activated"),QB(this.getImpl().activate)||this.getImpl().activate(),this.activated=!0,this.fire(Kc)}deactivate(){qB(this.element_)||this.element_.classList.remove("activated"),QB(this.getImpl().deactivate)||this.getImpl().deactivate(),this.activated=!1,this.fire(Jc)}getElement(){return this.getImpl().getElement()}setPanel(t){this.panel_=t}getPanel(){return this.panel_}destroy(){SL(this.getElement())}};var xu=i(177),wu=i.n(xu);wu().registerHelper("gt",(function(t,e,i){return t>e?i.fn(this):i.inverse(this)})),wu().registerHelper("lt",(function(t,e,i){return t{let i,n,r={};QB(e)||(r=_L(r,e.vars),n=e.parseToHtml);const s=wu().compile(t)(r);return i=!1!==n?rL(s):s,i},Bu=(t,e)=>{let i;return QB(e)||(i=e.scope),new Promise(((n,r)=>{let s=Su[t];if(QB(s)){let r=t;QB(e)||!0!==e.jsonp||(r=(t=>{let e=null;return qB(t)||(e=M.config.MAPEA_URL.concat(M.config.TEMPLATES_PATH),e=e.concat(t)),e})(t));const o=qB(e)&&!0===e.jsonp;DB(r,null,{jsonp:o}).then((e=>{s=wu().compile(e.text),Su[t]=s,n.call(i,s)}))}else n.call(i,s)}))};class Lu extends vu{constructor(t={}){super(new Dc(t),Lu.NAME),QB(Dc)&&Oc(Cu("exception").panzoombar_method)}createView(t){return bu(Rc())}equals(t){return t instanceof Lu}}Lu.NAME="panzoombar";const Mu=Lu,Tu="WMC",Ru="KML",Nu="WMS",Pu="WFS",Fu="WMTS",Du="OSM",Ou="Mapbox",Qu="GeoJSON",ku="Vector",Gu="MVT",Uu={WMC:Tu,KML:Ru,WMS:Nu,WFS:Pu,WMTS:Fu,OSM:Du,Mapbox:Ou,GeoJSON:Qu,Vector:ku,MVT:Gu},qu=t=>{let e=XB(t,!0);return e="WMS_FULL"===e?Nu:"WFST"===e?Pu:Object.keys(Uu).find((t=>{const i=Uu[t];return YB(i)&&XB(i,!0)===e})),Uu[e]},Vu=t=>-1!==[Tu,Ru,Nu,Pu,Fu,Gu].indexOf(qu(t)),zu=/WMS\*.*/,Yu=/WMS_FULL\*.*/,ju=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t))),array_string:t=>t.split(n).map((t=>t.trim())).map((t=>String(t)))};if(YB(t)&&s.test(t)){const e=t.split("*")[o];qB(e)||(a=l[i](e))}else zB(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YB(a)&&(a=a.trim()),!0===r&&(a=XB(a)),a},Hu=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((t=>{const e=Nu,i=ju({parameter:t,type:"string",attr:"name"}),n=ju({parameter:t,type:"string",attr:"url"}),r=ju({parameter:t,type:"string",attr:"legend"}),s=ju({parameter:t,type:"boolean",attr:"transparent"}),o=ju({parameter:t,type:"boolean",attr:"tiled"}),a=ju({parameter:t,type:"array_number",attr:"maxExtent",separator:"_"}),l=ju({parameter:t,type:"string",attr:"version"}),h=ju({parameter:t,type:"array_string",attr:"styles",separator:"%"});let c;return c=zu.test(t)||zB(t)?{type:e,name:i(zu,3),tiled:o(zu,5),url:n(zu,2),legend:r(zu,1),transparent:s(zu,4),maxExtent:a(zu,6),version:l(zu,7),styles:h(zu,8)}:{type:e,url:n(Yu,1)},c})),UB(t)||(e=e[0]),e},Xu=/KML\*.*/,Wu=({parameter:t,attr:e,type:i,valueCmp:n=/^1|true/i,separator:r,normalized:s=!1})=>(o,a)=>{let l;const h={boolean:t=>n.test(t),boolean_eql:t=>void 0===t||"true"===t,string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YB(t)&&o.test(t)){const n=t.split("*");let r=n[a];l=h[i](r),"extract"===e&&(r=n.slice(-2,-1)[0],l="false"!==r),"label"===e&&(r=n.slice(-1)[0],l="false"!==r),"url"!==e||"true"!==l&&"false"!==l&&void 0!==l||(l="")}else zB(t)?l=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YB(l)&&(l=l.trim()),!0===s&&(l=XB(l)),l},Ku=t=>{const e=t;let i=[];qB(e)&&Oc(Cu("exception").no_param);let n=e;return UB(n)||(n=[n]),i=n.map((t=>{let e={};const i=Wu({parameter:t,type:"string",attr:"name"}),n=Wu({parameter:t,type:"string",attr:"url"}),r=Wu({parameter:t,type:"boolean",attr:"extract"}),s=Wu({parameter:t,type:"boolean_eql",attr:"label"});return e=Xu.test(t)?{type:Ru,name:i(Xu,1),url:n(Xu,2)+n(Xu,3),extract:r(Xu,4),label:s(Xu,5)}:{type:Ru,name:i(Xu),url:n(Xu),extract:r(Xu),label:s(Xu)},e})),UB(e)||(i=i[0]),i},Ju=/MAPBOX\*.*/,Zu=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YB(t)&&s.test(t)){const e=t.split("*")[o];qB(e)||(a=l[i](e))}else zB(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YB(a)&&(a=a.trim()),!0===r&&(a=XB(a)),a},$u=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((t=>{const e=Zu({parameter:t,type:"string",attr:"name"})(Ju,1),i=Zu({parameter:t,type:"string",attr:"legend"})(Ju,3),n=Zu({parameter:t,type:"boolean",attr:"transparent"})(Ju,2),r=(t=>{let e;return YB(t)?e=null:zB(t)&&!qB(t.accessToken)?e=t.accessToken.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),e})(t);return{type:Ou,name:e,legend:i,transparent:n,accessToken:r}})),UB(t)||(e=e[0]),e},tg=/OSM\.*/,eg=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YB(t)&&s.test(t)){const e=t.split("*")[o];qB(e)||(a=l[i](e))}else zB(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YB(a)&&(a=a.trim()),!0===r&&(a=XB(a)),a},ig=t=>{let e=t,i=[];qB(e)&&(e={type:Du,name:"osm"});let n=e;return UB(n)||(n=[n]),i=n.map((t=>({type:Du,name:eg({parameter:t,type:"string",attr:"name"})(tg,3),transparent:eg({parameter:t,type:"boolean",attr:"transparent"})(tg,1),legend:eg({parameter:t,type:"string",attr:"legend"})(tg,2)}))),UB(e)||(i=i[0]),i},ng=/^GeoJSON(T)?\*.*/,rg=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YB(t)&&s.test(t)){const e=t.split("*")[o];qB(e)||(a=l[i](e))}else zB(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YB(a)&&(a=a.trim()),!0===r&&(a=XB(a)),a},sg=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((t=>({type:Qu,name:rg({parameter:t,type:"string",attr:"name"})(ng,1),url:rg({parameter:t,type:"string",attr:"name"})(ng,2),extract:rg({parameter:t,type:"boolean",attr:"extract"})(ng,3),style:rg({parameter:t,type:"string",attr:"style"})(ng,4)}))),UB(t)||(e=e[0]),e},og=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Tu,e.name=((t,e)=>{let i,n;return YB(t)?/^\w{3,7}\*[^*]+\*[^*]+$/.test(t)?(n=t.split(/\*/),i=n[2].trim()):/^\w{3,7}\*[^*]$/.test(t)||/^[^*]+\*[^*]+$/.test(t)?(n=t.split(/\*/),i=n[1].trim()):/^[^*]+$/.test(t)&&!jB(t)&&(i=t):zB(t)?i=XB(t.name):Oc("El parámetro no es de un tipo soportado: "+typeof t),jB(i)&&(i=null),i})(t),e.url=(t=>{let e;if(YB(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zB(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.options=(t=>{let e;return YB(t)||(zB(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e})),UB(t)||(e=e[0]),e},ag=t=>{let e=t;const i={};if(qB(e)&&Oc(Cu("exception").no_center),YB(e))if(e=XB(e),/^-?\d+(\.\d+)?[,;]-?\d+(\.\d+)?([*](true|false))?$/i.test(e)){const t=e.split(/\*/),n=t[0],r=t[1],s=n.split(/[,;]+/);2===s.length?(i.x=Number.parseFloat(s[0]),i.y=Number.parseFloat(s[1])):Oc(Cu("exception").invalid_center_param),i.draw=/^1|(true)$/i.test(r)}else Oc(Cu("exception").invalid_center_param);else UB(e)?2===e.length||3===e.length?(YB(e[0])&&(e[0]=Number.parseFloat(e[0])),YB(e[1])&&(e[1]=Number.parseFloat(e[1])),i.x=e[0],i.y=e[1]):Oc(Cu("exception").invalid_center_param):zB(e)?(GB(e.x)?Oc(Cu("exception").invalid_center_param):(YB(e.x)&&(e.x=Number.parseFloat(e.x)),i.x=e.x),GB(e.y)?Oc(Cu("exception").invalid_center_param):(YB(e.y)&&(e.y=Number.parseFloat(e.y)),i.y=e.y),GB(e.draw)?i.draw=!1:i.draw=/^true$/.test(e.draw)):Oc("El parámetro no es de un tipo soportado: "+typeof maxExtentParameter);return(Number.isNaN(i.x)||Number.isNaN(i.y))&&Oc(Cu("exception").invalid_center_param),i},lg=t=>{const e=t;let i;if(!qB(e)){if(i={x:{},y:{}},qB(e)&&Oc(Cu("exception").no_maxextent),YB(e))if(/^\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?$/.test(e)){const t=e.split(/[,;]+/);4===t.length?(i.x.min=Number.parseFloat(t[0]),i.y.min=Number.parseFloat(t[1]),i.x.max=Number.parseFloat(t[2]),i.y.max=Number.parseFloat(t[3])):Oc(Cu("exception").invalid_maxextent_param)}else Oc(Cu("exception").invalid_maxextent_param);else UB(e)?4===e.length?(YB(e[0])&&(e[0]=Number.parseFloat(e[0])),YB(e[1])&&(e[1]=Number.parseFloat(e[1])),YB(e[2])&&(e[2]=Number.parseFloat(e[2])),YB(e[3])&&(e[3]=Number.parseFloat(e[3])),i.x.min=e[0],i.y.min=e[1],i.x.max=e[2],i.y.max=e[3]):Oc(Cu("exception").invalid_maxextent_param):zB(e)?(GB(e.left)?GB(e.x.min)?Oc(Cu("exception").invalid_maxextent_param):(YB(e.x.min)&&(e.x.min=Number.parseFloat(e.x.min)),i.x.min=e.x.min):(YB(e.left)&&(e.left=Number.parseFloat(e.left)),i.x.min=e.left),GB(e.bottom)?GB(e.y.min)?Oc(Cu("exception").invalid_maxextent_param):(YB(e.y.min)&&(e.y.min=Number.parseFloat(e.y.min)),i.y.min=e.y.min):(YB(e.bottom)&&(e.bottom=Number.parseFloat(e.bottom)),i.y.min=e.bottom),GB(e.right)?GB(e.x.max)?Oc(Cu("exception").invalid_maxextent_param):(YB(e.x.max)&&(e.x.max=Number.parseFloat(e.x.max)),i.x.max=e.x.max):(YB(e.right)&&(e.right=Number.parseFloat(e.right)),i.x.max=e.right),GB(e.top)?GB(e.y.max)?Oc(Cu("exception").invalid_maxextent_param):(YB(e.y.max)&&(e.y.max=Number.parseFloat(e.y.max)),i.y.max=e.y.max):(YB(e.top)&&(e.top=Number.parseFloat(e.top)),i.y.max=e.top)):Oc("El parámetro no es de un tipo soportado: "+typeof e);(Number.isNaN(i.x.min)||Number.isNaN(i.y.min)||Number.isNaN(i.x.max)||Number.isNaN(i.y.max))&&Oc(Cu("exception").invalid_maxextent_param)}return i},hg=t=>{const e={code:null,units:null};if(qB(t)&&Oc(Cu("exception").no_projection),YB(t))if(/^(EPSG:)?\d+\*((d(egrees)?)|(m(eters)?))$/i.test(t)){const i=t.split(/\*/);e.code=i[0],e.units=XB(i[1].substring(0,1))}else Oc(`El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: ${M.config.DEFAULT_PROJ}`);else zB(t)?GB(t.code)||GB(t.units)?Oc(`El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: ${M.config.DEFAULT_PROJ}`):(e.code=t.code,e.units=XB(t.units.substring(0,1))):Oc("El parámetro no es de un tipo soportado: "+typeof t);return"m"!==e.units&&"d"!==e.units&&Oc(`La unidad "${t.units}" del parámetro projection no es válida. Las disponibles son: "m" o "d"`),e},cg=t=>{let e=t,i=[];qB(e)&&Oc(Cu("exception").no_resolutions),YB(e)&&(/^\d+(\.\d+)?([,;]\d+(\.\d+)?)*$/.test(e)?e=e.split(/[,;]+/):Oc(Cu("exception").invalid_resolutions_param)),UB(e)?i=e.map((t=>YB(t)?Number.parseFloat(t):t)):Oc("El parámetro no es de un tipo soportado: "+typeof e);let n=!0;for(let t=0,e=i.length;t{const e=t;let i;return qB(e)&&Oc(Cu("exception").no_zoom),YB(e)?i=Number.parseInt(e,10):"number"==typeof e?i=e:Oc("El parámetro no es de un tipo soportado: "+typeof e),Number.isNaN(i)&&Oc(Cu("exception").invalid_zoom_param),i},gg=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((e=>{const i={};return i.type=Pu,i.name=(t=>{let e,i,n;return YB(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)||/^[^*]*\*[^*]+:[^*]+/.test(t)?(i=t.split(/\*/),n=i[3].trim(),e=n.split(":")[1]):/^WFS(T)?\*[^*]*\*[^*]+[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),n=i[1].trim(),e=n.split(":")[1]):zB(t)&&!qB(t.name)?e=t.name.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.url=(t=>{let e;if(YB(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zB(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(e),i.namespace=(t=>{let e,i,n;return YB(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)&&(i=t.split(/\*/),n=i[3].trim(),e=n.split(":")[0]):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),n=i[1].trim(),e=n.split(":")[0]):zB(t)&&!qB(t.namespace)?e=t.namespace.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.legend=(t=>{let e,i;return YB(t)?/^WFS(T)?\*[^*]/i.test(t)?(i=t.split(/\*/),e=i[1].trim()):/^[^*]+\*[^*]+:[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zB(t)&&!qB(t.legend)?e=t.legend.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.cql=(t=>{let e,i;return YB(t)?(/^[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()),/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*/i.test(t)&&(i=t.split(/\*/),e=i[6].trim())):zB(t)&&!qB(t.cql)||!qB(t.ecql)?e=t.cql?t.cql.trim():t.ecql.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(/^(true|false)$/i.test(e)||/^\d\.\d\.\d$/.test(e))&&(e=void 0),e})(e),i.geometry=(t=>{let e,i;return YB(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+/i.test(t)||/^WFS(T)?\*[^*]*\*[^*][^*]+\*[^*]+/i.test(t))&&(i=t.split(/\*/),e=i[4].trim()):zB(t)&&!qB(t.geometry)?e=t.geometry.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.ids=(t=>{let e,i;return YB(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*(.-?)+$/i.test(t)||/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+\*[^*]+\*(.-?)+$/i.test(t))&&(i=t.split(/\*/),e=i[5].trim().split("-")):zB(t)&&!qB(t.ids)?e=t.ids:zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),jB(e)&&(e=null),qB(e)||UB(e)||(e=[e]),e})(e),i.version=(t=>{let e;return YB(t)?/(\d\.\d\.\d)$/.test(t)&&(e=t.match(/\d\.\d\.\d$/)[0]):zB(t)?e=t.version:Oc("El parámetro no es de un tipo soportado: "+typeof t),e})(e),i.style=(t=>{let e,i;return YB(t)?/^WFS(T)?\*.+/i.test(t)&&/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*\*[^*]*/i.test(t)&&(e=t.split(/\*/),i=e[7].trim()):zB(t)&&!qB(t.style)?i=t.style:zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),i})(e),i.options=(t=>{let e;return YB(t)||(zB(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(e),i.outputFormat=t.outputFormat,i})),UB(t)||(e=e[0]),e},dg=t=>{let e=[];qB(t)&&Oc("No ha especificado ningún parámetro");let i=t;return UB(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Gu,e.name=(t=>{let e;if(YB(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)/i);i&&i.length>2&&(e=i[2])}}else zB(t)&&!qB(t.name)?e=t.name.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.url=(t=>{let e;if(YB(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+).*/i);i&&i.length>1&&(e=i[1])}}else zB(t)&&!qB(t.url)?e=t.url.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.mode=(t=>{let e;if(YB(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>3&&(e=i[3])}}else zB(t)&&!qB(t.mode)?e=t.mode.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.projection=(t=>{let e;if(YB(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>4&&(e=i[4])}}else zB(t)&&!qB(t.proj)?e=t.proj.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e})),UB(t)||(e=e[0]),e},Ag=t=>{let e=[];qB(t)&&Oc(Cu("exception").no_param);let i=t;return UB(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Fu,e.name=(t=>{let e,i;return YB(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):/^[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[1].trim()):zB(t)&&!qB(t.name)?e=t.name.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.url=(t=>{let e;if(YB(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zB(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.matrixSet=(t=>{let e,i;return YB(t)?/^WMTS\*[^*]+\*[^*]+(\*[^*]])*/i.test(t)?(i=t.split(/\*/),e=i[3]?i[3].trim():null):/^[^*]+\*[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zB(t)&&!qB(t.matrixSet)?e=t.matrixSet.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.legend=(t=>{let e,i;return YB(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[4].trim()):/^[^*]+\*[^*]+\*[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[3].trim()):zB(t)&&!qB(t.legend)?e=t.legend.trim():zB(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jB(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.options=(t=>{let e;return YB(t)||(zB(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e.transparent=(t=>{let e,i;return YB(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]*\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[5].trim()):/^WMS_FULL\*[^*]+(\*(true|false))?/i.test(t)?(i=t.split(/\*/),e=!0):/^[^*]+\*[^*]+\*[^*]+\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[3].trim()):/^[^*]+\*[^*]+\*(true|false)/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zB(t)?e=XB(t.transparent):Oc("El parámetro no es de un tipo soportado: "+typeof t),qB(e)||(e=/^1|(true)$/i.test(e)),e})(t),e})),UB(t)||(e=e[0]),e},pg={kml:Ku,mapbox:$u,osm:ig,wfs:gg,wmc:og,wms:Hu,wmts:Ag,geojson:sg,mvt:dg},fg=(t,e)=>{let i=[];qB(t)&&Oc(Cu("exception").no_param);let n=t;return UB(n)||(n=[n]),i=n.map((t=>{let i=null;if(zB(t)&&t instanceof _g)i=t;else{let n=((t,e)=>{let i;if(YB(t))if(/^\s*osm\s*$/i.test(t))i=Du;else if(/^\s*mapbox\*.+$/i.test(t))i=Ou;else{const n=t.match(/^(\w+)\*.+$/);n&&n.length>1&&(i=qu(n[1]),QB(i)&&Oc(`No se reconoce el tipo de capa ${n[1]}`)),QB(i)&&!qB(e)?i=e:QB(i)&&Oc(`No se reconoce el tipo de capa ${i}`)}else zB(t)?qB(t.type)||(i=qu(t.type),QB(i)&&Oc(`No se reconoce el tipo de capa ${i}`)):Oc("El parámetro no es de un tipo soportado: "+typeof t);return qB(i)||qB(e)||i===e||Oc("El tipo de la capa (".concat(i).concat(") no era el esperado (").concat(e).concat(")")),qB(i)&&!qB(e)&&(i=e),i})(t,e);n=XB(n),i=VB(pg[n])?pg[n](t):t}return i})),UB(t)||(i=i[0]),i};class mg extends Qc{constructor(t,e){super(e);const i=fg(t);this.type=i.type,this.url=i.url,this.name=i.name,this.transparent=i.transparent,this.maxExtent_=null,this.zindex_=null,this.minScale_=t.minScale,this.maxScale_=t.maxScale,this.map_=null,this.userMaxExtent=i.maxExtent,this.legend=i.legend,this.layerGroup_=null,this.id=JB(`${i.name}_`)}getLegend(){return this.getImpl().legend}setLegend(t){this.legend=t,this.getImpl().legend=t}getID(){return this.id}setId(t){if(!qB(this.map_)){const e=this.map_.getLayers().find((e=>{let i=null;return i="WMC"===e.constructor.name?e.layers.find((i=>e.id===t)):e.id===t,i}));QB(e)?(this.map_.getFeatureHandler().changeNamePrevs(this.id,t),this.id=t):Oc(Cu("exception").id_exists)}}get url(){return this.getImpl().url}set url(t){this.getImpl().url=t}get name(){return this.getImpl().name}set name(t){this.getImpl().name=t}get transparent(){return this.getImpl().transparent}set transparent(t){qB(t)?this.getImpl().transparent=!0:YB(t)?this.getImpl().transparent="true"===XB(t):this.getImpl().transparent=t}get displayInLayerSwitcher(){return this.getImpl().displayInLayerSwitcher}set displayInLayerSwitcher(t){qB(t)?this.getImpl().displayInLayerSwitcher=!0:YB(t)?this.getImpl().displayInLayerSwitcher="true"===XB(t):this.getImpl().displayInLayerSwitcher=t}getMaxExtent(){let t=this.userMaxExtent;return qB(t)&&(t=this.map_.userMaxExtent,qB(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise((t=>t(this.getMaxExtent())))}setMaxExtent(t){this.userMaxExtent=t,!UB(t)&&zB(t)&&(this.userMaxExtent=[t.x.min,t.y.min,t.x.max,t.y.max]),VB(this.getImpl().setMaxExtent)&&(qB(t)?this.resetMaxExtent():this.getImpl().setMaxExtent(t))}resetMaxExtent(){this.userMaxExtent=null,this.calculateMaxExtent().then((t=>{VB(this.getImpl().setMaxExtent)&&this.getImpl().setMaxExtent(t)}))}setMap(t){this.map_=t}getLayerGroup(){return this.layerGroup_}setLayerGroup(t){this.layerGroup_=t}isVisible(){return QB(this.getImpl().isVisible)&&Oc(Cu("exception").isvisible_method),this.getImpl().isVisible()}isQueryable(){return QB(this.getImpl().isQueryable)&&Oc(Cu("exception").isqueryable_method),this.getImpl().isQueryable()}setVisible(t){let e=t;qB(e)&&Oc(Cu("exception").visibility_param),YB(e)||kB(e)||Oc(Cu("exception").visibility_param),QB(this.getImpl().setVisible)&&Oc(Cu("exception").setvisible_method),e=/^1|(true)$/i.test(e),this.getImpl().setVisible(e),this.fire(du,[{visibility:e,layer:this},this])}inRange(){return QB(this.getImpl().inRange)&&Oc(Cu("exception").inrage_method),this.getImpl().inRange()}getLegendURL(){return this.getImpl().getLegendURL()}setLegendURL(t){let e=t;qB(e)&&(e=aL([M.config.THEME_URL,mg.LEGEND_DEFAULT])),this.getImpl().setLegendURL(e)}getZIndex(){return this.zindex_}setZIndex(t){this.zindex_=t,this.getImpl().setZIndex(t)}getMinScale(){return this.minScale_}setMinScale(t){this.minScale_=t,this.getImpl().setMinScale(t)}getMaxScale(){return this.maxScale_}setMaxScale(t){this.maxScale_=t,this.getImpl().setMaxScale(t)}getOpacity(){return this.getImpl().getOpacity()}setOpacity(t){this.getImpl().setOpacity(t)}refresh(){!QB(this.getImpl().refresh)&&VB(this.getImpl().refresh)&&this.getImpl().refresh()}generateName_(){this.name=JB("layer_","_".concat(this.type))}}mg.LEGEND_DEFAULT="/img/legend-default.png",mg.LEGEND_ERROR="/img/legend-error.png";const _g=mg,yg="preload",Ig="useInterimTilesOnError";const Eg=class extends pl{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(yg)}setPreload(t){this.set(yg,t)}getUseInterimTilesOnError(){return this.get(Ig)}setUseInterimTilesOnError(t){this.set(Ig,t)}getData(t){return super.getData(t)}},Cg=0,vg=1,xg=2,wg=3,Sg=4;const bg=class extends Ys{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return js()}getData(t){return null}prepareFrame(t){return js()}renderFrame(t,e){return js()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return(n,r)=>{const s=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,r,s)}}forEachFeatureAtCoordinate(t,e,i,n,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;e.getState()!==xg&&e.getState()!==wg||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=xg&&e!=wg&&t.addEventListener(bs,this.boundHandleImageChange_),e==Cg&&(t.load(),e=t.getState()),e==xg}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}},Bg=[];let Lg=null;const Mg=class extends bg{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=[1,0,0,1,0,0],this.pixelTransform=[1,0,0,1,0,0],this.inversePixelTransform=[1,0,0,1,0,0],this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;Lg||(Lg=bl(1,1,void 0,{willReadFrequently:!0})),Lg.clearRect(0,0,1,1);try{Lg.drawImage(t,e,i,1,1,0,0,1,1),n=Lg.getImageData(0,0,1,1).data}catch(t){return Lg=null,null}return n}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let r,s;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&ys(Mo(t.style.backgroundColor),Mo(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){r=document.createElement("div"),r.className=n;let t=r.style;t.position="absolute",t.width="100%",t.height="100%",s=bl();const e=s.canvas;r.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=r,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=st(i),r=ot(i),s=Z(i),o=J(i);_o(e.coordinateToPixelTransform,n),_o(e.coordinateToPixelTransform,r),_o(e.coordinateToPixelTransform,s),_o(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;_o(a,n),_o(a,r),_o(a,s),_o(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const r=new _l(t,this.inversePixelTransform,i,e);n.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(Ho,t,e)}postRender(t,e){this.dispatchRenderEvent_(Xo,t,e)}getRenderTransform(t,e,i,n,r,s,o){const a=r/2,l=s/2,h=n/e,c=-h,u=-t[0]+o,g=-t[1];return Eo(this.tempTransform,a,l,h,c,-i,u,g)}disposeInternal(){delete this.frameState,super.disposeInternal()}};const Tg=class extends Ss{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(bs)}release(){this.state===Sh&&this.setState(bh)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==wh)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==wh){t.interimTile=null;break}t.getState()==xh?e=t:t.getState()==vh?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==Sh&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){js()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:ca(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}};function Rg(t,e){return new Promise(((i,n)=>{function r(){o(),i(t)}function s(){o(),n(new Error("Image load error"))}function o(){t.removeEventListener("load",r),t.removeEventListener("error",s)}t.addEventListener("load",r),t.addEventListener("error",s),e&&(t.src=e)}))}function Ng(t,e){return e&&(t.src=e),ho?new Promise(((e,i)=>t.decode().then((()=>e(t)),i))):Rg(t)}function Pg(t,e){return e&&(t.src=e),ho&&co?t.decode().then((()=>createImageBitmap(t))):Ng(t)}const Fg=class extends Ss{constructor(t,e,i,n){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state="function"==typeof n?Cg:n,this.image_=null,this.loader="function"==typeof n?n:null}changed(){this.dispatchEvent(bs)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(this.state==Cg&&this.loader){this.state=vg,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;vs((()=>this.loader(this.getExtent(),e,this.getPixelRatio()))).then((t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=xg})).catch((t=>{this.state=wg,console.error(t)})).finally((()=>this.changed()))}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};const Dg=class extends Tg{constructor(t,e,i,n,r,s){super(t,e,s),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=r}getImage(){return this.image_}setImage(t){this.image_=t,this.state=wh,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=Sh,this.unlistenImage_(),this.image_=function(){const t=bl(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=wh:this.state=bh,this.unlistenImage_(),this.changed()}load(){this.state==Sh&&(this.state=vh,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==vh&&(this.state=xh,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(t,e,i){const n=t;let r=!0,s=!1,o=!1;const a=[Us(n,Os,(function(){o=!0,s||e()}))];return n.src&&ho?(s=!0,n.decode().then((function(){r&&e()})).catch((function(t){r&&(o?e():i())}))):a.push(Us(n,Bs,i)),function(){r=!1,a.forEach(qs)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}};const Og=class{constructor(t,e,i,n,r,s){this.sourceProj_=t,this.targetProj_=e;let o={};const a=he(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return o[e]||(o[e]=a(t)),o[e]},this.maxSourceExtent_=n,this.errorThresholdSquared_=r*r,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!n&&!!this.sourceProj_.getExtent()&&at(n)>=at(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?at(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?at(this.targetProj_.getExtent()):null;const l=st(i),h=ot(i),c=Z(i),u=J(i),g=this.transformInv_(l),d=this.transformInv_(h),A=this.transformInv_(c),p=this.transformInv_(u),f=10+(s?Math.max(0,Math.ceil(Math.log2(K(i)/(s*s*256*256)))):0);if(this.addQuad_(l,h,c,u,g,d,A,p,f),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach((e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-n.5&&c<1;let d=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){d=at(T([t,e,i,n]))/this.targetWorldWidth_>.25||d}!g&&this.sourceProj_.isGlobal()&&c&&(d=c>.25||d)}if(!d&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3])&&!lt(h,this.maxSourceExtent_))return;let A=0;if(!(d||isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)d=!0;else if(A=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=A&&2!=A&&4!=A&&8!=A)return;if(l>0){if(!d){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let s;if(g){s=(_t(r[0],u)+_t(o[0],u))/2-_t(n[0],u)}else s=(r[0]+o[0])/2-n[0];const a=(r[1]+o[1])/2-n[1];d=s*s+a*a>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const h=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(h),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],g=this.transformInv_(u);this.addQuad_(t,e,h,u,r,s,c,g,l-1),this.addQuad_(u,h,i,n,g,c,o,a,l-1)}else{const h=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(h),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],g=this.transformInv_(u);this.addQuad_(t,h,u,n,r,c,g,a,l-1),this.addQuad_(h,e,i,u,c,s,o,g,l-1)}return}}if(g){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}0==(11&A)&&this.addTriangle_(t,i,n,r,o,a),0==(14&A)&&this.addTriangle_(t,i,e,r,o,s),A&&(0==(13&A)&&this.addTriangle_(e,n,t,s,a,r),0==(7&A)&&this.addTriangle_(e,n,i,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,i,n){const r=e.source;j(t,r[0]),j(t,r[1]),j(t,r[2])})),t}getTriangles(){return this.triangles_}};let Qg;const kg=[];function Gg(t,e,i,n,r){t.beginPath(),t.moveTo(0,0),t.lineTo(e,i),t.lineTo(n,r),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,n)+1,Math.max(i,r)),t.restore()}function Ug(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function qg(t,e,i,n){const r=ce(i,e,t);let s=ie(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||F(l,r)){const e=ie(t,s,r)/s;isFinite(e)&&e>0&&(s/=e)}return s}function Vg(t,e,i,n){const r=$(i);let s=qg(t,e,r,n);return(!isFinite(s)||s<=0)&&W(i,(function(i){return s=qg(t,e,i,n),isFinite(s)&&s>0})),s}function zg(t,e,i,n,r,s,o,a,l,h,c,u){const g=bl(Math.round(i*t),Math.round(i*e),kg);if(u||(g.imageSmoothingEnabled=!1),0===l.length)return g.canvas;function d(t){return Math.round(t*i)/i}g.scale(i,i),g.globalCompositeOperation="lighter";const A=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,i){Y(A,t.extent)}));const p=at(A),f=nt(A),m=bl(Math.round(i*p/n),Math.round(i*f/n),kg);u||(m.imageSmoothingEnabled=!1);const _=i/n;l.forEach((function(t,e,i){const n=t.extent[0]-A[0],r=-(t.extent[3]-A[3]),s=at(t.extent),o=nt(t.extent);t.image.width>0&&t.image.height>0&&m.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,n*_,r*_,s*_,o*_)}));const y=st(o);return a.getTriangles().forEach((function(t,e,r){const o=t.source,a=t.target;let l=o[0][0],h=o[0][1],c=o[1][0],p=o[1][1],f=o[2][0],_=o[2][1];const I=d((a[0][0]-y[0])/s),E=d(-(a[0][1]-y[1])/s),C=d((a[1][0]-y[0])/s),v=d(-(a[1][1]-y[1])/s),x=d((a[2][0]-y[0])/s),w=d(-(a[2][1]-y[1])/s),S=l,b=h;l=0,h=0,c-=S,p-=b,f-=S,_-=b;const B=function(t){const e=t.length;for(let i=0;ir&&(r=e,n=s)}if(0===r)return null;const s=t[n];t[n]=t[i],t[i]=s;for(let n=i+1;n=0;n--){i[n]=t[n][e]/t[n][n];for(let r=n-1;r>=0;r--)t[r][e]-=t[r][n]*i[n]}return i}([[c,p,0,0,C-I],[f,_,0,0,x-I],[0,0,c,p,v-E],[0,0,f,_,w-E]]);if(B){if(g.save(),g.beginPath(),function(){if(void 0===Qg){const t=bl(6,6,kg);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Gg(t,4,5,4,0),Gg(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;Qg=Ug(e,0)||Ug(e,4)||Ug(e,8),Bl(t),kg.push(t.canvas)}return Qg}()||!u){g.moveTo(C,v);const t=4,e=I-C,i=E-v;for(let n=0;n{e&&e.getState()==wh&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})})),this.sourceTiles_.length=0,0===t.length)this.state=Sh;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=zg(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=wh}this.changed()}load(){if(this.state==vh){this.state=xh,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach((e=>{const i=e.getState();if(i==vh||i==xh){t++;const i=Gs(e,bs,(function(n){const r=e.getState();r!=wh&&r!=Sh&&r!=bh||(qs(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==vh&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(qs),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Bl(this.canvas_.getContext("2d")),kg.push(this.canvas_),this.canvas_=null),super.release()}};class jg{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function Hg(t,e,i,n,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=i,r.maxY=n,r):new jg(t,e,i,n)}const Xg=jg;const Wg=class extends Mg{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new Xg(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==wh||i==bh||i==Sh&&!n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState.projection,o=this.getLayer();let a=o.getSource().getTile(t,e,i,r,s);return a.getState()==Sh&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(a)||(a=a.getInterimTile()),a}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=_o(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!F(r,n))return null;const s=e.pixelRatio,o=e.viewState.projection,a=e.viewState,l=i.getRenderSource(),h=l.getTileGridForProjection(a.projection),c=l.getTilePixelRatio(e.pixelRatio);for(let t=h.getZForResolution(a.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=l.getTile(t,e[1],e[2],s,o);if(!(i instanceof Dg||i instanceof Yg)||i instanceof Yg&&i.getState()===bh)return null;if(i.getState()!==wh)continue;const r=h.getOrigin(t),u=xc(h.getTileSize(t)),g=h.getResolution(t),d=Math.floor(c*((n[0]-r[0])/g-e[1]*u[0])),A=Math.floor(c*((r[1]-n[1])/g-e[2]*u[1])),p=Math.round(c*l.getGutterForProjection(a.projection));return this.getImageData(i.getImage(),d+p,A+p)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,r=n.projection,s=n.resolution,o=n.center,a=n.rotation,l=t.pixelRatio,h=this.getLayer(),c=h.getSource(),u=c.getRevision(),g=c.getTileGridForProjection(r),d=g.getZForResolution(s,c.zDirection),A=g.getResolution(d);let p=t.extent;const f=t.viewState.resolution,m=c.getTilePixelRatio(l),_=Math.round(at(p)/f*l),y=Math.round(nt(p)/f*l),I=i.extent&&_e(i.extent,r);I&&(p=rt(p,_e(i.extent,r)));const E=A*_/2/m,C=A*y/2/m,v=[o[0]-E,o[1]-C,o[0]+E,o[1]+C],x=g.getTileRangeForExtentAndZ(p,d),w={};w[d]={};const S=this.createLoadedTileFinder(c,r,w),b=this.tmpExtent,B=this.tmpTileRange_;this.newTiles_=!1;const L=a?it(n.center,f,a,t.size):void 0;for(let e=x.minX;e<=x.maxX;++e)for(let n=x.minY;n<=x.maxY;++n){if(a&&!g.tileCoordIntersectsViewport([d,e,n],L))continue;const r=this.getTile(d,e,n,t);if(this.isDrawableTile(r)){const e=Xs(this);if(r.getState()==wh){w[d][r.tileCoord.toString()]=r;let t=r.inTransition(e);t&&1!==i.opacity&&(r.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(r)||(this.newTiles_=!0)}if(1===r.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(r.tileCoord,B,b);let o=!1;s&&(o=S(d+1,s)),o||g.forEachTileCoordParentTileRange(r.tileCoord,S,B,b)}const M=A/s*l/m;Eo(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/l,1/l,a,-_/2,-y/2);const T=xo(this.pixelTransform);this.useContainer(e,T,this.getBackground(t));const R=this.context,N=R.canvas;Co(this.inversePixelTransform,this.pixelTransform),Eo(this.tempTransform,_/2,y/2,M,M,0,-_/2,-y/2),N.width!=_||N.height!=y?(N.width=_,N.height=y):this.containerReused||R.clearRect(0,0,_,y),I&&this.clipUnrotated(R,t,I),c.getInterpolate()||(R.imageSmoothingEnabled=!1),this.preRender(R,t),this.renderedTiles.length=0;let P,F,D,O=Object.keys(w).map(Number);O.sort(As),1!==i.opacity||this.containerReused&&!c.getOpaque(t.viewState.projection)?(P=[],F=[]):O=O.reverse();for(let e=O.length-1;e>=0;--e){const i=O[e],n=c.getTilePixelSize(i,l,r),s=g.getResolution(i)/A,o=n[0]*s*M,a=n[1]*s*M,h=g.getTileCoordForCoordAndZ(st(v),i),u=g.getTileCoordExtent(h),p=_o(this.tempTransform,[m*(u[0]-v[0])/A,m*(v[3]-u[3])/A]),f=m*c.getGutterForProjection(r),_=w[i];for(const e in _){const n=_[e],r=n.tileCoord,s=h[1]-r[1],l=Math.round(p[0]-(s-1)*o),u=h[2]-r[2],g=Math.round(p[1]-(u-1)*a),A=Math.round(p[0]-s*o),m=Math.round(p[1]-u*a),y=l-A,I=g-m,E=d===i,C=E&&1!==n.getAlpha(Xs(this),t.time);let v=!1;if(!C)if(P){D=[A,m,A+y,m,A+y,m+I,A,m+I];for(let t=0,e=P.length;t=o.width)return null;const h=nt(s),c=Math.floor(o.height*((s[3]-n[1])/h));return c<0||c>=o.height?null:this.getImageData(o,l,c)}renderFrame(t,e){const i=this.image_,n=i.getExtent(),r=i.getResolution(),[s,o]=Array.isArray(r)?r:[r,r],a=i.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],h=t.pixelRatio,c=t.viewState,u=c.center,g=c.resolution,d=h*s/(g*a),A=h*o/(g*a),p=t.extent,f=c.resolution,m=c.rotation,_=Math.round(at(p)/f*h),y=Math.round(nt(p)/f*h);Eo(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,m,-_/2,-y/2),Co(this.inversePixelTransform,this.pixelTransform);const I=xo(this.pixelTransform);this.useContainer(e,I,this.getBackground(t));const E=this.context,C=E.canvas;C.width!=_||C.height!=y?(C.width=_,C.height=y):this.containerReused||E.clearRect(0,0,_,y);let v=!1,x=!0;if(l.extent){const e=_e(l.extent,c.projection);x=lt(e,t.extent),v=x&&!D(e,t.extent),v&&this.clipUnrotated(E,t,e)}const w=i.getImage(),S=Eo(this.tempTransform,_/2,y/2,d,A,0,a*(n[0]-u[0])/s,a*(u[1]-n[3])/o);this.renderedResolution=o*h/a;const b=w.width*S[0],B=w.height*S[3];if(this.getLayer().getSource().getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,t),x&&b>=.5&&B>=.5){const t=S[4],e=S[5],i=l.opacity;let n;1!==i&&(n=E.globalAlpha,E.globalAlpha=i),E.drawImage(w,0,0,+w.width,+w.height,t,e,b,B),1!==i&&(E.globalAlpha=n)}return this.postRender(E,t),v&&E.restore(),E.imageSmoothingEnabled=!0,I!==C.style.transform&&(C.style.transform=I),this.container}};const $g=class extends Jg{constructor(t){super(t)}createRenderer(){return new Zg(this)}getData(t){return super.getData(t)}};function td(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function ed(t,e,i){return t+"/"+e+"/"+i}function id(t){return ed(t[0],t[1],t[2])}function nd(t){return t.split("/").map(Number)}function rd(t){return(t[1]<0||i&&0===s)}))}(this.resolutions_,(function(t,e){return e-t}),!0),"`resolutions` must be sorted in descending order"),!t.origins)for(let t=0,i=this.resolutions_.length-1;t=this.minZoom;){if(2===this.zoomFactor_?(s=Math.floor(s/2),o=Math.floor(o/2),r=Hg(s,s,o,o,i)):r=this.getTileRangeForExtentAndZ(a,l,i),e(l,r))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||e>1),r=+i(t[n],e),r<0?s=n+1:(o=n,a=!r);return a?s:~s}(c,u);g<0?(l=(u-c[-g-2])/(c[-g-1]-c[-g-2]),a=e+(-g-2)*n):a=e+g*n}o=o>1?o:2,s=s||new Array(o);for(let e=0;e>1;r1?new Md(i,"XY",r):new sl(i,"XY",n);default:throw new Error("Invalid geometry type:"+e)}}Rd.prototype.getEndss=Rd.prototype.getEnds,Rd.prototype.getFlatCoordinates=Rd.prototype.getOrientedFlatCoordinates;const Pd=Rd;class Fd extends _a{constructor(t){super(),this.geometries_=t||null,this.changeEventsKeys_=[],this.listenGeometriesChange_()}unlistenGeometriesChange_(){this.changeEventsKeys_.forEach(qs),this.changeEventsKeys_.length=0}listenGeometriesChange_(){if(this.geometries_)for(let t=0,e=this.geometries_.length;t=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||W(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+i;for(let i=1;i{const i=he(e,"EPSG:4326"),n=[];let r={};return t.forEach((e=>{const s=[];if(Array.isArray(e.geometry.coordinates[0])&&t.length>1)e.geometry.coordinates.forEach((t=>{if(!Number.isFinite(t[0])&&Array.isArray(t))s.push(t.map((t=>{const e=[];return Number.isFinite(t[0])?e.push(i(t)):t.forEach((t=>{e.push(i(t))})),e}))),r={...e,geometry:{type:e.geometry.type,coordinates:s}};else{const n=i(t);s.push(n),r={...e,geometry:{type:e.geometry.type,coordinates:s}}}})),n.push(r);else if(3===e.geometry.coordinates.length)e.geometry.coordinates.pop(),r={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates)}},n.push(r);else if(1===t.length)if(e.geometry.coordinates[0].length>2){const t=e.geometry.coordinates[0].map((t=>i(t)));r={...e,geometry:{type:e.geometry.type,coordinates:t}},n.push(r)}else r={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates[0])}},n.push(r);else if(Number.isFinite(e.geometry.coordinates[0])){const t=i(e.geometry.coordinates);r={...e,geometry:{type:e.geometry.type,coordinates:t}},n.push(r)}})),n};class Ud{static generateResolutions(t,e,i,n){let r,s,o;const a=[];qB(e)&&(r=t.getExtent());const l=at(r)/256;qB(i)&&(s=0),qB(n)&&(o=28);const h=o-s;for(let t=0;tt instanceof DL?t.getImpl().getOLFeature():t));let n=i.map((t=>t.getGeometry().getExtent().slice(0)));if(1===n.length){const t=i[0].getGeometry();if("Point"===t.getType()){const i=((t,e)=>e/ee(t).getMetersPerUnit())(e,1e3),r=t.getCoordinates()[0],s=t.getCoordinates()[1];n=[[r-i,s-i,r+i,s+i]]}}return 0===n.length?null:n.reduce(((t,e)=>Y(t,e)))}static getCentroidCoordinate(t){let e,i,n,r,s,o;return t.getType()===Ad?e=t.getCoordinates():t.getType()===ld||t.getType()===dd?(i=t.getCoordinates(),n=Math.floor(i.length/2),e=i[n]):t.getType()===hd?e=Ud.getCentroidCoordinate(t.getInteriorPoint()):t.getType()===cd?(r=t.getPoints(),n=Math.floor(r.length/2),e=Ud.getCentroidCoordinate(r[n])):t.getType()===ud?(s=t.getLineStrings(),n=Math.floor(s.length/2),e=Ud.getCentroidCoordinate(s[n])):t.getType()===gd?(r=t.getInteriorPoints(),e=Ud.getCentroidCoordinate(r)):t.getType()===fd?e=t.getCenter():t.getType()===pd&&(o=t.getGeometries(),n=Math.floor(o.length/2),e=Ud.getCentroidCoordinate(o[n])),e}static transformExtent(t,e,i){let n;const r=YB(e)?ee(e):e,s=YB(i)?ee(i):i,o=r.getExtent(),a=t.every(((t,e)=>{let i=!1;return i=e<2?t<=o[e]:t>=o[e],i}));return n=a?s.getExtent():ue(t,r,s),n}static olRenderFeature2olFeature(t,e,i){let n;if(!qB(t)){const r=t.getId(),s=t.getProperties();let o;if(qB(e)&&qB(e))o=this.getGeometryFromRenderFeature(t.getGeometry());else{const n=e.getExtent(),r=e.getWorldExtent();if(!qB(n)&&!qB(r)){const n=this.cloneOLRenderFeature(t);n.transform(e,i),o=this.getGeometryFromRenderFeature(n.getGeometry())}}n=new _d,qB(r)?n.setId(JB("mapea_feature_")):n.setId(r),n.setProperties(s,!0),n.setGeometry(o)}return n}static cloneOLRenderFeature(t){const e=t.getType(),i=t.getFlatCoordinates(),n=t.getEnds(),r=t.getProperties(),s=t.getId(),o=[...i],a=Object.assign(r),l=[...n];return new Pd(e,o,l,a,s)}static getGeometryFromRenderFeature(t){let e;const i=t.getFlatCoordinates(),n=t.getEnds(),r=t.getEndss();switch(t.getType()){case"Point":e=new qa(i);break;case"LineString":e=new wd(i);break;case"LinearRing":e=new Ga(i);break;case"Polygon":e=new sl(i);break;case"MultiPoint":e=new Id(i);break;case"MultiLineString":e=new bd(i,void 0,n);break;case"MultiPolygon":e=new Md(i,void 0,r);break;case"GeometryCollection":const s=t.getGeometries();e=new Od(s);break;case"Circle":const o=t.getFlatInteriorPoint();e=new kd(o);break;default:e=null}return e}static getWMTSScale(t,e){const i=ee(t.getProjection().code).getMetersPerUnit(),n=t.getMapImpl().getSize(),r=n[0],s=t.getMapImpl().getView().calculateExtent(n);let o=i*(s[2]-s[0])/r*1e3/.28;return!0==!e&&(o=o>=1e3&&o<=95e4?1e3*Math.round(o/1e3):o>=95e4?1e6*Math.round(o/1e6):Math.round(o)),Math.trunc(o)}}const qd=Ud;const Vd=class extends Mc{constructor(t={},e={}){super(t),this.vendorOptions_=e,this.map=null,this.ol3Layer=null,this.options=t,this.visibility=!1!==this.options.visibility,this.displayInLayerSwitcher=!1!==this.options.displayInLayerSwitcher,this.zIndex_=null,this.minScale_=null,this.maxScale_=null,this.opacity_=this.options.opacity||1,this.legendUrl_=aL([M.config.THEME_URL,_g.LEGEND_DEFAULT])}isVisible(){let t=!1;return t=qB(this.ol3Layer)?this.visibility:this.ol3Layer.getVisible(),t}isQueryable(){return!1}inRange(){let t=!1;if(!qB(this.ol3Layer)){const e=this.map.getMapImpl().getView().getResolution(),i=this.ol3Layer.getMaxResolution();t=e>=this.ol3Layer.getMinResolution()&&e<=i}return t}setVisible(t){this.visibility=t,qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}getZIndex(){return qB(this.getOLLayer())||(this.zIndex_=this.getOLLayer().getZIndex()),this.zIndex_}setZIndex(t){this.zIndex_=t,qB(this.getOLLayer())||this.getOLLayer().setZIndex(t)}getMinScale(){const t=this.map.getProjection().units;return qB(this.getOLLayer())||qB(t)||(this.minScale_=nL(this.getOLLayer().getMinResolution(),t)),this.minScale_}setMinScale(t){this.minScale_=t;const e=this.map.getProjection().units,i=eL(t,e);qB(this.getOLLayer())||qB(i)||qB(e)||this.getOLLayer().setMinResolution(i)}getMaxScale(){const t=this.map.getProjection().units;return qB(this.getOLLayer())||qB(t)||(this.maxScale_=nL(this.getOLLayer().getMaxResolution(),t)),this.maxScale_}setMaxScale(t){this.maxScale_=t;const e=this.map.getProjection().units,i=eL(t,e);qB(this.getOLLayer())||qB(i)||qB(e)||this.getOLLayer().setMaxResolution(i)}getOpacity(){return qB(this.getOLLayer())||(this.opacity_=this.getOLLayer().getOpacity()),this.opacity_}setOpacity(t){this.opacity_=t,qB(this.getOLLayer())||this.getOLLayer().setOpacity(t)}getOL3Layer(){return this.ol3Layer}getOLLayer(){return this.ol3Layer}setOL3Layer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}setOLLayer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}getMap(){return this.map}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}getNumZoomLevels(){return M.config.ZOOM_LEVELS}unselectFeatures(t,e,i){}selectFeatures(t,e,i){}};const zd=class{constructor(t,e,i){this.capabilities_=t,this.projection_=i,this.serviceUrl_=e}get capabilities(){return this.capabilities_}get projection(){return this.projection_}get serviceUrl(){return this.serviceUrl_}getLayerExtent(t,e){const i=this.capabilities_.Capability.Layer,n=this.getExtentRecursive_(i,t,e);return this.transformExtent(n)}getExtentRecursive_(t,e,i){let n,r=null;if(!qB(t))if(UB(t))for(n=0;nt.crs===e));if(qB(i)){const e=t.BoundingBox[0];this.capabilitiesProj=e.crs;const i=ee(e.crs),n=ee(this.projection_.code);r=qd.transformExtent(e.extent,i,n)}else this.capabilitiesProj=i.crs,r=i.extent}}else QB(t.Layer)||(r=this.getExtentRecursive_(t.Layer,e,i));return r}getLayers(){const t=this.capabilities_.Capability.Layer;return this.getLayersRecursive_(t)}getLayersRecursive_(t){let e=[];return qB(t.Layer)?UB(t)?t.forEach((t=>{e=e.concat(this.getLayersRecursive_(t))})):e.push(new rf({url:this.serviceUrl_,name:t.Name})):e=this.getLayersRecursive_(t.Layer),e}transformExtent(t){let e=t;if("1.3.0"===this.capabilities_.version&&YB(this.capabilitiesProj)){const i=ee(this.capabilitiesProj).getAxisOrientation();Array.isArray(e)&&"ne"===i.substr(0,2)&&(e=[t[1],t[0],t[3],t[2]])}return e}},Yd="http://www.w3.org/2001/XMLSchema-instance";function jd(t,e){return AA().createElementNS(t,e)}function Hd(t,e){return Xd(t,e,[]).join("")}function Xd(t,e,i){if(t.nodeType==Node.CDATA_SECTION_NODE||t.nodeType==Node.TEXT_NODE)e?i.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(t.nodeValue);else{let n;for(n=t.firstChild;n;n=n.nextSibling)Xd(n,e,i)}return i}function Wd(t){return"documentElement"in t}function Kd(t){return(new DOMParser).parseFromString(t,"application/xml")}function Jd(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){_s(n[n.length-1],r)}}}function Zd(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){n[n.length-1].push(r)}}}function $d(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);void 0!==r&&(n[n.length-1]=r)}}function tA(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){const t=r[r.length-1],i=void 0!==e?e:n.localName;let o;i in t?o=t[i]:(o=[],t[i]=o),o.push(s)}}}function eA(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){r[r.length-1][void 0!==e?e:n.localName]=s}}}function iA(t,e){return function(i,n,r){t.call(void 0!==e?e:this,i,n,r);r[r.length-1].node.appendChild(i)}}function nA(t,e){let i,n;return function(e,r,s){if(void 0===i){i={};const r={};r[e.localName]=t,i[e.namespaceURI]=r,n=rA(e.localName)}cA(i,n,r,s)}}function rA(t,e){return function(i,n,r){const s=n[n.length-1].node;let o=t;void 0===o&&(o=r);return jd(void 0!==e?e:s.namespaceURI,o)}}const sA=rA();function oA(t,e){const i=e.length,n=new Array(i);for(let r=0;r{null!==t&&tp.forEach((i=>{if(n=e,r=i,!(Array.prototype.filter.call(n.children,(t=>t.tagName===r)).length>0)){Array.prototype.filter.call(t.children,(t=>t.tagName===i)).forEach((t=>{const i=t.cloneNode(!0);e.appendChild(i)}))}var n,r}))},ip=(t,e=!0,i={},n=null)=>{let r=i,s=t;if(!0===e&&(s=t.querySelector("Layer")),null!==s){ep(n,s);const t=s.querySelector("Name").innerHTML,e=s.children;Array.prototype.forEach.call(e,(t=>{"Layer"===t.tagName&&(r=ip(t,!1,r,s))})),r[t]=s}return r},np=(t,e)=>{const i=t,n=e[i.Name];if(qB(n))UB(i.Layer)&&i.Layer.forEach((t=>np(t,e)));else{const t=n.querySelector("SRS");if(null!==t){const e=t.innerHTML;i.SRS=[e]}}},rp=(t,e)=>{const i=e[t.Name];if(qB(i))UB(t.Layer)&&t.Layer.forEach((t=>rp(t,e)));else if(UB(t.BoundingBox)){const e=Array.prototype.filter.call(i.children,(t=>"Layer"===t.tagName));let n=Array.prototype.map.call(i.children,(t=>t));n=n.filter((t=>["BoundingBox"].includes(t.tagName))),0===n.length&&e.length>0?e.forEach((e=>rp(t,{[t.Name]:e}))):t.BoundingBox.forEach(((t,e)=>{const i=t;if(null===i.crs){const t=n[e];if(!qB(t)){const e=t.getAttribute("SRS");qB(e)||(i.crs=e)}}}))}},sp=(t,e)=>{const i=t,n=e[t.Name];if(qB(n))UB(t.Layer)&&t.Layer.forEach((t=>sp(t,e)));else{i.ScaleHint=[];let t=Array.prototype.map.call(n.children,(t=>t));t=t.filter((t=>"ScaleHint"===t.tagName)),t.forEach((t=>{const e={minScale:parseFloat(t.getAttribute("min")),maxScale:parseFloat(t.getAttribute("max"))};i.ScaleHint.push(e)}))}},op=(t,e)=>{const i=t,n=e[t.Name];if(qB(n))UB(i.Layer)&&i.Layer.forEach((t=>op(t,e)));else{i.LatLonBoundingBox=[];let t=Array.prototype.map.call(n.children,(t=>t));t=t.filter((t=>"LatLonBoundingBox"===t.tagName)),t.forEach((t=>{const e={crs:"EPSG:4326",extent:[parseFloat(t.getAttribute("minx")),parseFloat(t.getAttribute("miny")),parseFloat(t.getAttribute("maxx")),parseFloat(t.getAttribute("maxy"))]};i.LatLonBoundingBox.push(e)}))}},ap=[np,rp,sp,op,(t,e)=>{const i=t,n="LatLonBoundingBox",r="BoundingBox";qB(i[r])&&!qB(i[n])&&(i[r]=i[n])},(t,e)=>{const i=t,n="MaxScaleDenominator";qB(i[n])&&!qB(i.ScaleHint)&&(i[n]=i.ScaleHint[0].maxScale)},(t,e)=>{const i=t,n="MinScaleDenominator";qB(i[n])&&!qB(i.ScaleHint)&&(i[n]=i.ScaleHint[0].minScale)}],lp=(t,e)=>{UB(t)?t.forEach((t=>{lp(t,e)})):zB(t)&&(((t,e)=>{ap.forEach((i=>{i(t,e)}))})(t,e),lp(t.Layer,e))};const hp=class extends $A{customRead(t){const e=this.read(t),i=ip(t),n=e.Capability;return qB(n)||qB(n.Layer)||lp(n.Layer,i),e}};const cp=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return go(void 0!==i,"Tried to get a value for a key that does not exist in the cache"),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return go(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){go(!(t in this.entries_),"Tried to set a value for a key that is used already");const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}};const up=class extends cp{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=nd(this.peekFirstKey())[0];this.forEach((e=>{e.tileCoord[0]!==t&&(this.remove(id(e.tileCoord)),e.release())}))}},gp="tileloadstart",dp="tileloadend",Ap="tileloaderror";function pp(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}const fp=class extends Ks{constructor(t){super(),this.projection=ee(t.projection),this.attributions_=pp(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(t){return null}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=pp(t),this.changed()}setState(t){this.state_=t,this.changed()}};function mp(t){let e=t.getDefaultTileGrid();return e||(e=function(t,e,i,n){const r=Ip(t);return function(t,e,i,n){n=void 0!==n?n:"top-left";const r=yp(t,e,i);return new od({extent:t,origin:tt(t,n),resolutions:r,tileSize:i})}(r,e,i,n)}(t),t.setDefaultTileGrid(e)),e}function _p(t){const e=t||{},i=e.extent||ee("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:yp(i,e.maxZoom,e.tileSize,e.maxResolution)};return new od(n)}function yp(t,e,i,n){e=void 0!==e?e:ea,i=xc(void 0!==i?i:ia);const r=nt(t),s=at(t);n=n>0?n:Math.max(s/i[0],r/i[1]);const o=e+1,a=new Array(o);for(let t=0;ti||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(n,r)}(t,i)?t:null}clear(){this.tileCache.clear()}refresh(){this.clear(),super.refresh()}updateCacheSize(t,e){const i=this.getTileCacheForProjection(e);t>i.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}};function vp(t,e){const i=/\{z\}/g,n=/\{x\}/g,r=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(r,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);go(i,"The {-y} placeholder requires a tile grid with extent");return(i.getHeight()-o[2]-1).toString()}))}}function xp(t,e){const i=t.length,n=new Array(i);for(let r=0;rthis.getTileInternal(t,e,i,n,s)),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return A.key=c,l?(A.interimTile=l,A.refreshInterimChain(),o.replace(h,A)):o.set(h,A),A}getTileInternal(t,e,i,n,r){let s=null;const o=ed(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,n,r,a),l.getState()==vh?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,n,r,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=ee(t);if(i){const t=Xs(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}},Rp=4;function Np(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const n=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+n}function Pp(t){return Array.isArray(t)?Math.min(...t):t}const Fp=class extends Fg{constructor(t,e,i,n,r,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const h=l?rt(i,l):i,c=qg(t,e,$(h),n),u=new Og(t,e,h,a,.5*c,n),g=u.calculateSourceExtent(),d=ht(g)?null:s(g,c,r),A=d?Cg:Sg,p=d?d.getPixelRatio():1;super(i,n,p,A),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=u,this.targetResolution_=n,this.targetExtent_=i,this.sourceImage_=d,this.sourcePixelRatio_=p,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){this.state==vg&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(t==xg){const t=at(this.targetExtent_)/this.targetResolution_,e=nt(this.targetExtent_)/this.targetResolution_;this.canvas_=zg(t,e,this.sourcePixelRatio_,Pp(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_)}this.state=t,this.changed()}load(){if(this.state==Cg){this.state=vg,this.changed();const t=this.sourceImage_.getState();t==xg||t==wg?this.reproject_():(this.sourceListenerKey_=Gs(this.sourceImage_,bs,(function(t){const e=this.sourceImage_.getState();e!=xg&&e!=wg||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}}unlistenSource_(){qs(this.sourceListenerKey_),this.sourceListenerKey_=null}},Dp="imageloadstart",Op="imageloadend",Qp="imageloaderror";class kp extends us{constructor(t,e){super(t),this.image=e}}function Gp(t,e){t.getImage().src=e}function Up(t,e,i,n){const r=e/i,s=$(t),o=vt(at(t)/r,Rp),a=vt(nt(t)/r,Rp);return et(s,r,0,[o+2*vt((n-1)*o/2,Rp),a+2*vt((n-1)*a/2,Rp)])}const qp=class extends fp{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();if(e){t=e[fs(e,t,0)]}return t}getImage(t,e,i,n){const r=this.getProjection();if(!r||!n||ae(r,n))return r&&(n=r),this.getImageInternal(t,e,i,n);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&ae(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&z(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new Fp(r,n,t,e,i,((t,e,i)=>this.getImageInternal(t,e,i,r)),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,n){if(this.loader){const n=Up(t,e,i,1),r=this.findNearestResolution(e);if(this.image&&(this.static_||(this.wantedExtent_&&D(this.wantedExtent_,n)||D(this.image.getExtent(),n))&&(this.wantedResolution_&&Pp(this.wantedResolution_)===r||Pp(this.image.getResolution())===r)))return this.image;this.wantedExtent_=n,this.wantedResolution_=r,this.image=new Fg(n,r,i,this.loader),this.image.addEventListener(bs,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case vg:this.loading=!0,i=Dp;break;case xg:this.loading=!1,i=Op;break;case wg:this.loading=!1,i=Qp;break;default:return}this.hasListener(i)&&this.dispatchEvent(new kp(i,e))}},Vp="1.3.0";function zp(t,e,i,n,r){r.WIDTH=i[0],r.HEIGHT=i[1];const s=n.getAxisOrientation();let o;const a=wt(r.VERSION,"1.3")>=0;return r[a?"CRS":"SRS"]=n.getCode(),o=a&&"ne"==s.substr(0,2)?[e[1],e[0],e[3],e[2]]:e,r.BBOX=o.join(","),Np(t,r)}function Yp(t,e,i,n,r,s,o){s=Object.assign({REQUEST:"GetMap"},s);const a=e/i,l=[Et(at(t)/a,Rp),Et(nt(t)/a,Rp)];if(1!=i)switch(o){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":s.DPI=90*i;break;default:throw new Error("Unknown `serverType` configured")}return zp(r,t,l,n,s)}function jp(t,e){return Object.assign({REQUEST:e,SERVICE:"WMS",VERSION:Vp,FORMAT:"image/png",STYLES:"",TRANSPARENT:!0},t)}function Hp(t){const e=void 0===t.hidpi||t.hidpi,i=ee(t.projection||"EPSG:3857"),n=t.ratio||1.5,r=t.load||Pg;return(s,o,a)=>{s=Up(s,o,a,n),1==a||e&&void 0!==t.serverType||(a=1);const l=Yp(s,o,a,i,t.url,jp(t.params,"GetMap"),t.serverType),h=new Image;return null!==t.crossOrigin&&(h.crossOrigin=t.crossOrigin),r(h,l).then((t=>({image:t,extent:s,pixelRatio:a})))}}const Xp=class extends Tp{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,n){const r=ee(i),s=this.getProjection()||r;let o=this.getTileGrid();o||(o=this.getTileGridForProjection(s));const a=ce(t,r,s),l=qg(s,r,t,e),h=o.getZForResolution(l,this.zDirection),c=o.getResolution(h),u=o.getTileCoordForCoordAndZ(a,h);if(o.getResolutions().length<=u[0])return;let g=o.getTileCoordExtent(u,this.tmpExtent_);const d=this.gutter_;0!==d&&(g=R(g,c*d,g));const A={QUERY_LAYERS:this.params_.LAYERS};Object.assign(A,jp(this.params_,"GetFeatureInfo"),n);const p=Math.floor((a[0]-g[0])/c),f=Math.floor((g[3]-a[1])/c);return A[this.v13_?"I":"X"]=p,A[this.v13_?"J":"Y"]=f,this.getRequestUrl_(u,g,1,s||r,A)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:Vp,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),Np(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r){const s=this.urls;if(!s)return;let o;if(1==s.length)o=s[0];else{o=s[_t(rd(t),s.length)]}return Yp(e,(this.tileGrid||this.getTileGridForProjection(n)).getResolution(t[0]),i,n,o,r,this.serverType_)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||Vp;this.v13_=wt(t,"1.3")>=0}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const r=n.getResolution(t[0]);let s=n.getTileCoordExtent(t,this.tmpExtent_);const o=this.gutter_;0!==o&&(s=R(s,r*o,s));const a=Object.assign({},jp(this.params_,"GetMap"));return this.getRequestUrl_(t,s,e,i,a)}};class Wp extends Xp{constructor(t={}){const e=t;qB(t.tileLoadFunction)&&(e.tileLoadFunction=Wp.tileLoadFunction),super(e)}changed(){qB(this.tileCache)||this.tileCache.clear(),super.changed()}static tileLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+=`&ticket=${M.config.ticket}`)}}const Kp=Wp,Jp=[101,101];const Zp=class extends qp{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Gp,this.params_=t.params,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getFeatureInfoUrl(t,e,i,n){if(void 0===this.url_)return;const r=ee(i),s=this.getProjection();s&&s!==r&&(e=qg(s,r,t,e),t=ce(t,r,s));const o=et(t,e,0,Jp),a={QUERY_LAYERS:this.params_.LAYERS};Object.assign(a,jp(this.params_,"GetFeatureInfo"),n);const l=Ct((t[0]-o[0])/e,Rp),h=Ct((o[3]-t[1])/e,Rp),c=wt(a.VERSION,"1.3")>=0;return a[c?"I":"X"]=l,a[c?"J":"Y"]=h,zp(this.url_,o,Jp,s||r,a)}getLegendUrl(t,e){if(void 0===this.url_)return;const i={SERVICE:"WMS",VERSION:Vp,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),Np(this.url_,i)}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=Hp({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,serverType:this.serverType_,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.loader=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.changed()}changed(){this.image=null,super.changed()}};const $p=class extends Zp{constructor(t={}){const e=t;super(e),this.imageLoadFunction_=e.imageLoadFunction||this.imageLoadFunction}changed(){super.changed()}imageLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+=`&ticket=${M.config.ticket}`)}};class tf extends Vd{constructor(t={},e){super(t,e),this.facadeLayer_=null,this.options=t,this.layers=[],this.displayInLayerSwitcher_=!0,this.getCapabilitiesPromise=null,this.extentPromise=null,this.extent=null,this.resolutions_=null,this.extentProj_=null,!1===this.options.visibility&&(this.visibility=!1),qB(this.tiled)&&(this.tiled=!0!==this.options.singleTile),qB(this.options.numZoomLevels)&&(this.options.numZoomLevels=M.config.ZOOM_LEVELS),qB(this.options.animated)&&(this.options.animated=!1),this.styles=this.options.styles||"",this.sldBody=t.sldBody,this.zIndex_=uf.Z_INDEX[Nu]}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter((t=>!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),qB(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),qB(e)||this.map.setZoom(e)}else qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}isQueryable(){return!1!==this.options.queryable}addTo(t){if(this.map=t,this.fire(kc),!GB(this.options)&&!GB(this.options.minScale)&&!GB(this.options.maxScale)){const t=this.map.getProjection().units;this.options.minResolution=eL(this.options.minScale,t),this.options.maxResolution=eL(this.options.maxScale,t)}qB(this.name)?this.addAllLayers_():this.addSingleLayer_(),this.legendUrl_===aL([M.config.THEME_URL,_g.LEGEND_DEFAULT])&&(this.legendUrl_=KB(this.url,{SERVICE:"WMS",VERSION:this.version,REQUEST:"GetLegendGraphic",LAYER:this.name,FORMAT:"image/png",STYLE:this.styles[0]||"",SLD_VERSION:"1.1.0"}))}setResolutions(t){this.resolutions_=t,this.facadeLayer_.calculateMaxExtent().then((e=>{if(!qB(this.ol3Layer)){const i=this.options.minResolution,n=this.options.maxResolution,r=this.createOLSource_(t,i,n,e);this.ol3Layer.setSource(r),this.ol3Layer.setExtent(e)}}))}addSingleLayer_(){this.facadeLayer_.calculateMaxExtent().then((t=>{const e=this.options.minResolution,i=this.options.maxResolution,n=this.opacity_,r=this.zIndex_,s=this.visibility&&!1!==this.options.visibility;let o=this.map.getResolutions();if(qB(o)&&!qB(this.resolutions_))o=this.resolutions_;else if(qB(o)){const n=this.getNumZoomLevels(),r=this.map.getMapImpl().getSize(),s=this.map.getProjection().units;o=qB(e)||qB(i)?iL(t,r,n,s):tL(e,i,n)}const a=this.createOLSource_(o,e,i,t);!0===this.tiled?this.ol3Layer=new Kg(hL({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:n,zIndex:r},this.vendorOptions_,!0)):this.ol3Layer=new $g(hL({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:n,zIndex:r},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.facadeLayer_.fire(su),this.isVisible()&&!this.inRange()?this.setVisible(!1):this.setVisible(this.visibility),null!==r&&this.setZIndex(r),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const l=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",l)}))}createOLSource_(t,e,i,n){let r=this.vendorOptions_.source;if(qB(this.vendorOptions_.source)){const s=this.options.crossOrigin,o={LAYERS:this.name,TILED:!0,VERSION:this.version,TRANSPARENT:this.transparent,FORMAT:"image/png",STYLES:this.styles};qB(this.sldBody)||(o.SLD_BODY=this.sldBody),qB(this.options.params)||Object.keys(this.options.params).forEach((t=>{o[t.toUpperCase()]=this.options.params[t]}));const a=this.opacity_,l=this.zIndex_;if(!0===this.tiled){const h=J(n),c={url:this.url,tileGrid:new od({resolutions:t,extent:n,origin:h}),extent:n,minResolution:e,maxResolution:i,opacity:a,zIndex:l};QB(s)||(c.crossOrigin=s),r=new Kp(c),r.updateParams(o)}else{const h={url:this.url,resolutions:t,extent:n,minResolution:e,maxResolution:i,opacity:a,zIndex:l,params:{}};QB(s)||(h.crossOrigin=s),r=new $p(h),r.updateParams(o)}}return r}addAllLayers_(){this.getCapabilities().then((t=>{t.getLayers().forEach((t=>{const e=new rf({url:this.url,name:t.name,version:t.version,tiled:this.tiled},this.vendorOptions_);this.layers.push(e)})),this.map.addWMS(this.layers);let e=this.layers.length;this.layers.forEach((t=>{t.setZIndex(uf.Z_INDEX[Nu]+e),e+=1}))}))}getExtent(){const t=ee(this.map.getProjection().code);return this.extentPromise=new Promise(((e,i)=>{qB(this.extent_)?this.getCapabilities().then((i=>{this.extent_=i.getLayerExtent(this.name),this.extentProj_=t,e(this.extent_)})):(this.extent_=qd.transformExtent(this.extent_,this.extentProj_,t),this.extentProj_=t,e(this.extent_))})),this.extentPromise}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}updateMinMaxResolution(t){qB(this.options.minResolution)||(this.options.minResolution=eL(this.options.minScale,t.units),this.ol3Layer.setMinResolution(this.options.minResolution)),qB(this.options.maxResolution)||(this.options.maxResolution=eL(this.options.maxScale,t.units),this.ol3Layer.setMaxResolution(this.options.maxResolution))}setMaxExtent(t){const e=this.options.minResolution,i=this.options.maxResolution,n=this.getOLLayer();if(!qB(n)&&(n.setExtent(t),!0===this.tiled)){let r=this.map.getResolutions();if(qB(r)&&!qB(this.resolutions_)&&(r=this.resolutions_),!qB(r)){const s=this.createOLSource_(r,e,i,t);n.setSource(s)}}}getNumZoomLevels(){return this.options.numZoomLevels}getLayers(){return this.layers}getCapabilities(){if(qB(this.getCapabilitiesPromise)){const t=this.url,e=this.version,i=this.map.getProjection(),n=this.map.getTicket();this.getCapabilitiesPromise=new Promise(((r,s)=>{const o=ZB(t,e,n);DB(o).then((e=>{if("xml"in e&&!qB(e.xml)){const n=e.xml,s=(new hp).customRead(n),o=new zd(s,t,i);r(o)}else DB(o,"",{ticket:!1}).then((e=>{const n=e.xml,s=(new hp).customRead(n),o=new zd(s,t,i);r(o)}))}))}))}return this.getCapabilitiesPromise}getLegendCapabilities(){return this.getCapabilities().then((t=>{let e="",i=t.capabilities.Capability.Layer.Layer;return i=i.length>1?i.find((t=>t.Name===this.name)):1===i.length&&i[0].Name!==this.name?i[0].Layer.find((t=>t.Name===this.name)):i[0],QB(i.Style)||QB(i.Style[0].LegendURL)||QB(i.Style[0].LegendURL[0].OnlineResource)||(e=i.Style[0].LegendURL[0].OnlineResource),e}))}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}refresh(){const t=this.getOLLayer();qB(t)||t.getSource().updateParams({time:Date.now()})}getExtentFromCapabilities(t){const e=this.facadeLayer_.name,i=this.map.getProjection().code;return t.getLayerExtent(e,i)}setFacadeObj(t){this.facadeLayer_=t}getStyles(){return this.getOLLayer().getSource().getParams().STYLES}setStyles(t){const e=this.getOLLayer();qB(e)||e.getSource().updateParams({STYLES:t})}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),qB(this.layers)||(this.layers.map(this.map.removeLayers,this.map),this.layers.length=0)}equals(t){let e=!1;return t instanceof tf&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=!0===this.tiled?new Kg(e):new $g(e)}return t}}tf.LEGEND_IMAGE=null;const ef=tf;class nf extends _g{constructor(t,e={},i){QB(ef)&&Oc(Cu("exception").wms_method),qB(t)&&Oc(Cu("exception").no_param);const n=fg(t,Nu),r=n.styles||"";qB(r)||Object.defineProperty(e,"styles",{value:r,writable:!0});super(n,new ef(e,i)),this.legend=n.legend,this.cql=n.cql,this.version=n.version,qB(n.tiled)||(this.tiled=n.tiled),this.transparent=n.transparent,this.styles=r,this.options=e,this.wmcParent_=null,this.getCapabilitiesPromise_=null,this._updateNoCache()}get type(){return Nu}set type(t){QB(t)||qB(t)||t===Nu||Oc("El tipo de capa debe ser '".concat(Nu).concat("' pero se ha especificado '").concat(t).concat("'"))}get legend(){return this.getImpl().legend}set legend(t){qB(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get tiled(){return this.getImpl().tiled}set tiled(t){qB(t)?this.getImpl().tiled=!0:YB(t)?this.getImpl().tiled="true"===XB(t):this.getImpl().tiled=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get version(){return this.getImpl().version}set version(t){qB(t)?this.getImpl().version="1.3.0":this.getImpl().version=t}getStyles(){return this.getImpl().getStyles()}setStyles(t){this.styles=t,this.getImpl().setStyles(t)}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}getMaxExtent(t){let e;if(qB(this.userMaxExtent))if(qB(this.options.wmcMaxExtent))if(qB(this.map_.userMaxExtent)){const e=this.map_.getWMC().find((t=>t.selected));qB(e)?this.getCapabilities().then((e=>{const i=this.getImpl().getExtentFromCapabilities(e);if(qB(i)){const t=this.map_.getProjection().getExtent();this.maxExtent_=t}else this.maxExtent_=i;VB(t)&&t(this.maxExtent_)})):e.calculateMaxExtent().then((e=>{this.maxExtent_=e,VB(t)&&t(this.maxExtent_)}))}else this.maxExtent_=this.map_.userMaxExtent,e=this.maxExtent_;else this.maxExtent_=this.options.wmcMaxExtent,e=this.maxExtent_;else e=this.userMaxExtent;return!qB(e)&&VB(t)?t(e):qB(e)&&(e=this.maxExtent_),e}calculateMaxExtent(){return new Promise((t=>this.getMaxExtent(t)))}getCapabilities(){return qB(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}getLegendCapabilities(){return this.getImpl().getLegendCapabilities()}getNoCacheUrl(){return this._noCacheUrl}getNoCacheName(){return this._noCacheName}setWMCParent(t){this.wmcParent_=t}getWMCParent(){return this.wmcParent_}updateMinMaxResolution(t){return this.getImpl().updateMinMaxResolution(t)}_updateNoCache(){const t=M.config.tileMappgins.tiledNames.indexOf(this.name);-1!==t&&gL(M.config.tileMappgins.tiledUrls[t],this.url)&&(this._noCacheUrl=M.config.tileMappgins.urls[t],this._noCacheName=M.config.tileMappgins.names[t])}equals(t){let e=!1;return t instanceof nf&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}const rf=nf;const sf=class extends dl{constructor(t){super(t),this.userZoom_=null}setUserZoom(t){this.userZoom_=t,qB(t)||this.setZoom(t)}getUserZoom(){return this.userZoom_}setProjection(t){this.projection_=t}getResolutions(){return this.get("resolutions")}setResolutions(t){this.set("resolutions",t),this.maxResolution_=t[0],this.minResolution_=t[t.length-1],this.setCenter(this.getCenter()),this.applyOptions_({minZoom:this.minZoom_,resolutions:t,zoomFactor:this.zoomFactor_,minResolution:this.minResolution_,maxResolution:this.maxResolution_,projection:this.projection_,center:this.getCenter(),constrainResolution:!0,multiWorld:!0}),qB(this.userZoom_)||this.setZoom(this.userZoom_)}},of=[],af=[],lf=[],hf=[Nu,Du,Ou,Fu,Gu];class cf extends Mc{constructor(t,e,i={}){super(),this.facadeMap_=e,this.layers_=[],this.layerGroups_=[],this.controls_=[],this.initZoom_=!0,this.userResolutions_=null,this.userBbox_=null,this.maxExtentForResolutions_=null,this.envolvedMaxExtent_=null,this._calculatedResolutions=!1,this._resolutionsEnvolvedExtent=!1,this._resolutionsBaseLayer=!1,this.label=[],this.map_=new bc({controls:[],target:t.id,view:new sf}),this.registerEvents_(),this.map_.addInteraction(new Dh({handleEvent:t=>("pointermove"===t.type&&this.onMapMove_(t),!0)}));const n=this.map_.getInteractions().getArray();this.mouseWheelZoom_=n.find((t=>t instanceof _c)),this.dragPan_=n.find((t=>t instanceof ec))}getLayers(t){const e=this.getWMC(t),i=this.getKML(t),n=this.getWMS(t),r=this.getWFS(t),s=this.getWMTS(t),o=this.getMVT(t),a=this.getUnknowLayers_(t),l=of.map((e=>this[e](t)));return e.concat(i).concat(n).concat(r).concat(s).concat(o).concat(a).concat(l)}getBaseLayers(){return this.getLayers().filter((t=>{let e=!1;return hf.includes(t.type)&&(e=!0!==t.transparent),e}))}addLayers(t){const e=t.filter((t=>!Vu(t.type))),i=t.filter((t=>Vu(t.type)));return this.addUnknowLayers_(e),this.facadeMap_.addWMC(i.filter((t=>t.type===Tu))),this.facadeMap_.addWMS(i.filter((t=>t.type===Nu))),this.facadeMap_.addWMTS(i.filter((t=>t.type===Fu))),this.facadeMap_.addKML(i.filter((t=>t.type===Ru))),this.facadeMap_.addWFS(i.filter((t=>t.type===Pu))),this.facadeMap_.addMVT(i.filter((t=>t.type===Gu))),lf.forEach((t=>t(e))),this}removeLayers(t){const e=t.filter((t=>!Vu(t.type))),i=t.filter((t=>Vu(t.type)));i.length>0&&(this.removeWMC(i),this.removeKML(i),this.removeWMS(i),this.removeWFS(i),this.removeWMTS(i),this.removeMVT(i)),e.length>0&&(this.removeUnknowLayers_(e),af.forEach((t=>t(e)))),t.forEach((t=>{if(t.getLayerGroup&&!qB(t.getLayerGroup())){t.getLayerGroup().deleteChild(t)}}));return Array.isArray(this.getBaseLayers())&&this.getBaseLayers().length>0||(this._resolutionsBaseLayer=!1),this.facadeMap_.fire(Hc,[t]),this}getLayerGroups(){return this.layerGroups_}getGroupedLayers(){let t=[];const e=this.getLayerGroups();return 1===e.length?t=e[0].getAllLayers():e.length>1&&(t=e.reduce(((t,e)=>Array.isArray(t)?t.concat(e.getAllLayers()):t.getAllLayers().concat(e.getAllLayers())))),t}addLayerGroups(t){return t.forEach((t=>{t.addTo(this.facadeMap_),lL(this.layerGroups_,t)||(this.layerGroups_.push(t),t.getAllLayers().forEach((t=>{this.facadeMap_.addLayers(t)})))})),this}removeLayerGroups(t){let e=[];return e=Array.isArray(t)?[...t]:[t],e.forEach((t=>{this.layerGroups_.remove(t),t.destroy(),t.fire(Xc,[t])})),this}getWMC(t){let e=t,i=[];const n=this.layers_.filter((t=>t.type===Tu));return qB(e)&&(e=[]),UB(e)||(e=[e]),0===e.length?i=n:e.forEach((t=>{i=i.concat(n.filter((e=>{let n=!0;return i.includes(e)?n=!1:(qB(t.type)||(n=n&&t.type===e.type),qB(t.url)||(n=n&&t.url===e.url),qB(t.name)||(n=n&&t.name===e.name)),n})))}),this),i}addWMC(t){return t.forEach(((t,e)=>{t.type===Tu&&(lL(this.layers_,t)||(t.setZIndex(cf.Z_INDEX[Tu]),t.getImpl().addTo(this.facadeMap_),this.layers_.push(t)))}),this),this}removeWMC(t){return this.getWMC(t).forEach((t=>{!0===t.selected&&!1===t.isLoaded()?t.on(su,(()=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),this.facadeMap_.removeWMS(t.layers),this.facadeMap_.refreshWMCSelectorControl()})):(this.layers_=this.layers_.filter((e=>!e.equals(t))),this.facadeMap_.removeWMS(t.layers)),this.facadeMap_.refreshWMCSelectorControl(),t.fire(Xc,[t])}),this),this}getKML(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Ru));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name),qB(t.extract)||(n=n&&t.extract===i.extract)),n}));e=e.concat(i)}),this),e}addKML(t){const e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Ru&&!lL(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Ru];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}}),this),this}removeKML(t){return this.getKML(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!t.equals(e))),t.getImpl().destroy(),t.fire(Xc,[t])}),this),this}getWMS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Nu));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:t instanceof rf?n=t===i:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name),qB(t.legend)||(n=n&&t.legend===i.legend),qB(t.transparent)||(n=n&&t.transparent===i.transparent),qB(t.tiled)||(n=n&&t.tiled===i.tiled),qB(t.cql)||(n=n&&t.cql===i.cql),qB(t.version)||(n=n&&t.version===i.version)),n}));e=e.concat(i)}),this),e}addWMS(t){let e=this.getBaseLayers().length>0;const i=[];t.forEach((t=>{if(t.type===Nu&&!lL(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(cf.Z_INDEX_BASELAYER);else if(null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Nu];t.setZIndex(e)}}));return(i.length>0&&!e||i.some((t=>!0!==t.transparent&&t.isVisible())))&&this.updateResolutionsFromBaseLayer(),this}removeWMS(t){return this.getWMS(t).forEach((t=>{if(this.layers_=this.layers_.filter((e=>!t.equals(e))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}})),this}getGeoJSON(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Qu));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name),qB(t.legend)||(n=n&&t.legend===i.legend)),n}));e=e.concat(i)})),e}getWFS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Pu));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name),qB(t.namespace)||(n=n&&t.namespace===i.namespace),qB(t.legend)||(n=n&&t.legend===i.legend),qB(t.cql)||(n=n&&t.cql===i.cql),qB(t.geometry)||(n=n&&t.geometry===i.geometry),qB(t.ids)||(n=n&&t.ids===i.ids),qB(t.version)||(n=n&&t.version===i.version)),n}));e=e.concat(i)})),e}addWFS(t){const e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Pu&&!lL(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Pu];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}})),this}removeWFS(t){return this.getWFS(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t])})),this}getWMTS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Fu));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name),qB(t.matrixSet)||(n=n&&t.matrixSet===i.matrixSet),qB(t.legend)||(n=n&&t.legend===i.legend)),n}));e=e.concat(i)})),e}addWMTS(t){let e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Fu&&!lL(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent){t.getImpl().visibility=!e,e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(cf.Z_INDEX_BASELAYER)}else{if(null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Fu];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}})),this}removeWMTS(t){return this.getWMTS(t).forEach((t=>{if(this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}})),this}getUnknowLayers_(t){let e=[],i=t;const n=this.layers_.filter((t=>!Vu(t.type)));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:t instanceof _g?n=t.equals(i):(qB(t.type)||(n=n&&t.type===i.type),qB(t.name)||(n=n&&t.name===i.name)),n}));e=e.concat(i)})),e}addUnknowLayers_(t){let e=this.getBaseLayers().length>0;return t.forEach((t=>{if(!lL(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(cf.Z_INDEX_BASELAYER);else{if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[t.type];t.setZIndex(e)}e||-1!==t.name.indexOf("cluster_cover_")||this.updateResolutionsFromBaseLayer()}})),this}removeUnknowLayers_(t){t.forEach((t=>{if(lL(this.layers_,t)&&(this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent)){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}}))}getMVT(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Gu));return qB(i)&&(i=[]),UB(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qB(t.type)||(n=n&&t.type===i.type),qB(t.url)||(n=n&&t.url===i.url),qB(t.name)||(n=n&&t.name===i.name)),n}));e=e.concat(i)})),e}removeMVT(t){return this.getMVT(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t])})),this}addMVT(t){let e=this.getBaseLayers().length>0;const i=[];return t.forEach((t=>{if(t.type===Gu&&!lL(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(cf.Z_INDEX_BASELAYER);else if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Gu];t.setZIndex(e)}(i.length>0&&!e||i.some((t=>!0!==t.transparent&&t.isVisible())))&&this.updateResolutionsFromBaseLayer()}})),this}getControls(t){let e=t,i=[],n=this.facadeMap_.getPanels().map((t=>t.getControls()));n.length>0&&(n=n.reduce(((t,e)=>t.concat(e))));const r=this.controls_.concat(n);qB(e)&&(e=[]),UB(e)||(e=[e]),0===e.length?i=r:e.forEach((t=>{i=i.concat(r.filter((e=>{let n=!1;return lL(i,e)||(YB(t)?n=t===e.name:t instanceof vu?n=t===e:zB(t)&&(n=t.name===e.name)),n})))}));const s=[];return i.forEach((t=>{s.map((t=>t.name)).includes(t.name)||s.push(t)})),s}addControls(t){return t.forEach((t=>{t instanceof Mu&&this.facadeMap_.addControls("panzoom"),lL(this.controls_,t)||this.controls_.push(t)})),this}removeControls(t){return this.getControls(t).forEach((t=>{qB(this.map_)||this.map_.removeControl(t.getImpl()),t.destroy(),this.controls_=this.controls_.filter((e=>{let i=e.constructor===t.constructor;return qB(e.equals)||(i=!e.equals(t)),i}))})),this}setMaxExtent(t,e){let i=t;qB(i)||UB(i)||!zB(i)||(i=[t.x.min,t.y.min,t.x.max,t.y.max]);return this.getMapImpl().getView().set("extent",i),this.updateResolutionsFromBaseLayer(),qB(i)||!1===e||this.setBbox(i),this}getMaxExtent(){let t;const e=this.getMapImpl().getView().get("extent");return t=qB(e)?this.envolvedMaxExtent_:{x:{min:e[0],max:e[2]},y:{min:e[1],max:e[3]}},t}setBbox(t,e){let i;qB(t)&&Oc(Cu("exception").no_bbox),this.userBbox_=t,UB(t)?i=t:zB(t)&&(i=[t.x.min,t.y.min,t.x.max,t.y.max]);const n=this.getMapImpl();return n.updateSize(),n.getView().fit(i,e),this}getBbox(){let t=null;const e=this.getMapImpl(),i=e.getView();if(!qB(i.getCenter())){const n=i.calculateExtent(e.getSize());qB(n)||(t={x:{min:n[0],max:n[2]},y:{min:n[1],max:n[3]}})}return t}setZoom(t){return qB(t)&&Oc(Cu("exception").no_zoom),this.getMapImpl().getView().setUserZoom(t),this}getZoom(){let t=null;const e=this.getMapImpl().getView(),i=e.getResolution(),n=this.getResolutions();if(qB(n))qB(i)||(t=e.getZoomForResolution(i));else for(let e=0,r=n.length;eMath.abs(t-i))),r=n.indexOf(Math.min(...n));l=t[r]}}else l=t[s];a.setResolution(l),n.setView(a);return this.getWMS().forEach((e=>{e.getImpl().setResolutions(t)})),this}getScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units;let i=nL(t,e);return qB(i)||(i=i>=1e3&&i<=95e4?1e3*Math.round(i/1e3):i>=95e4?1e6*Math.round(i/1e6):Math.round(i)),i}getExactScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units,i=nL(t,e);return Math.trunc(i)}setProjection(t){qB(t)&&Oc(Cu("exception").no_projection);let e=ee(t.code);qB(e)&&(e=new u(t));const i=ee(this.getProjection().code);let n=this.facadeMap_.getBbox();const r=this.getMapImpl(),s=r.getView().getUserZoom(),o=new sf({projection:e});if(o.setUserZoom(s),r.setView(o),this.facadeMap_.getWMS().forEach((e=>{e.updateMinMaxResolution(t)})),this.updateResolutionsFromBaseLayer(),!qB(n)){UB(n)||(n=[n.x.min,n.y.min,n.x.max,n.y.max]);let t=qd.transformExtent(n,i,e);t.includes(NaN)&&(t=e.getExtent()),this.facadeMap_.setBbox(t,{nearest:!0})}return this}getProjection(){const t=this.getMapImpl().getView().getProjection();let e=null;return qB(t)||(e={code:t.getCode(),units:t.getUnits(),getExtent:()=>t.getExtent()}),e}getMapImpl(){return this.map_}removePopup(t){if(!qB(t)){const e=t.getImpl();this.getMapImpl().removeOverlay(e),t.fire(mu,[t]),this.facadeMap_.fire(mu,[t])}return this}destroy(){this.layers_.length=0,this.controls_.length=0,this.popup_=null,this.options_=null,this.map_.setTarget(null),this.map_=null}updateResolutionsFromBaseLayer(){let t=[],e=M.config.ZOOM_LEVELS;const i=this.getProjection().units,n=this.getBaseLayers().filter((t=>t.isVisible()))[0];let r=null,s=null;qB(n)||(s=void 0!==n.getImpl().getMinResolution?n.getImpl().getMinResolution():null,r=void 0!==n.getImpl().getMaxResolution?n.getImpl().getMaxResolution():null,e=n.getImpl().getNumZoomLevels()),null===this.userResolutions_&&(qB(s)||qB(r)?this.facadeMap_.calculateMaxExtent().then((n=>{if(!this._resolutionsBaseLayer&&null===this.userResolutions_){this.getMapImpl().updateSize();const r=this.getMapImpl().getSize();t=iL(n,r,e,i),this.setResolutions(t,!0),this._resolutionsEnvolvedExtent=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(ou))}})).catch((t=>{throw t})):(t=tL(s,r,e),this.setResolutions(t,!0),this._resolutionsBaseLayer=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(ou))))}addLabel(t,e){return this.label.push(t),t.show(this.facadeMap_,e),this}getLabel(){return this.label[0]}getLabels(){return this.label}removeLabel(t){let e=t;qB(this.label)||(qB(t)?(this.label.forEach((t=>this.removePopup(t.getPopup()))),this.label=[]):(UB(t)||(e=[t]),e.forEach((t=>{const e=this.label.findIndex((e=>e.text===t.text&&e.coord===t.coord));-1!==e&&(this.removePopup(this.label[e].getPopup()),this.label.splice(e,1))}))))}refresh(){return this.map_.updateSize(),this}getContainer(){return this.map_.getOverlayContainerStopEvent()}setFacadeMap(t){this.facadeMap_=t}registerEvents_(){this.facadeMap_.on(ou,(()=>{this.map_.updateSize()})),this.map_.on("singleclick",this.onMapClick_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this)),this.map_.on("change:view",(t=>{t.oldValue.un("change:resolution",this.zoomEvent_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this))}))}zoomEvent_(t){this.getZoom()<=t.target.getZoom()&&this.facadeMap_.fire(uu,t)}onMapClick_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e),n=this.facadeMap_.getLabel();qB(n)||n.hide(),this.facadeMap_.fire(Au,[{pixel:e,coord:i,vendor:t}])}onMapMove_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e);this.facadeMap_.fire(pu,[{pixel:e,coord:i,vendor:t}])}getRotation(){let t;const e=this.map_.getView();return qB(e)||(t=e.getRotation()),t}setRotation(t){const e=this.map_.getView();qB(e)||e.setRotation(t)}static registerExternalFunction(t,e){const i={getLayers:of,addLayers:lf,removeLayers:af}[e];i.find((e=>e===t))&&i.push(t)}static registerBaseLayerType(t){!hf.find((e=>e===t))&&hf.push(t)}enableMouseWheel(t=!0){qB(this.mouseWheelZoom_)||this.mouseWheelZoom_.setActive(t)}enableDrag(t=!0){qB(this.dragPan_)||this.dragPan_.setActive(t)}getImageMap(){const t=this.map_.getViewport().querySelectorAll(".ol-layer canvas, canvas.ol-layer")[0];let e=null;if(!QB(t))try{e=t.toDataURL()}catch(t){throw t}return e}setToClosestScale(t){this.getMapImpl().getView().setResolution(t)}}cf.Z_INDEX={},cf.Z_INDEX_BASELAYER=0,cf.Z_INDEX[Tu]=1,cf.Z_INDEX[Nu]=1e3,cf.Z_INDEX[Fu]=2e3,cf.Z_INDEX[Du]=2e3,cf.Z_INDEX[Ou]=2e3,cf.Z_INDEX[Ru]=3e3,cf.Z_INDEX[Pu]=9999,cf.Z_INDEX[ku]=9999,cf.Z_INDEX[Gu]=9999,cf.Z_INDEX[Qu]=9999;const uf=cf;var gf=i(93),df=i.n(gf);const Af=class extends Lh{constructor(){super({}),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}getElement(){return this.element}};const pf=class extends Af{addTo(t,e){e.getElementsByTagName("select")[0].addEventListener("change",(e=>{const i=t.getWMC(e.target.options[e.target.selectedIndex].text)[0],n=t.getZoom();i.select(),t.setZoom(n)})),super.addTo(t,e)}};class ff extends vu{constructor(){super(new pf,ff.NAME),QB(pf)&&Oc(Cu("exception").wmcselector_method)}createView(t){return bu(df(),{vars:{layers:t.getWMC(),title:Cu("wmcselector").title}})}equals(t){let e=!1;return t instanceof ff&&(e=this.name===t.name),e}destroy(){super.destroy();const t=this.getPanel();qB(t)||t.removeClassName("m-with-wmcselector")}}ff.NAME="wmcselector";const mf=ff;var _f=i(582),yf=i.n(_f);const If=class extends Mc{constructor(t,e,i){super(),this.id_=t,this.title_=e,this.order_=i,this.zindex_=null}};class Ef extends Mc{constructor(t){const e={...t};qB(e.id)&&(e.id=JB("mapea_layer_group_")),qB(e.title)&&(e.title="Grupo de capas"),qB(e.zIndex)&&(e.zIndex=1e4),qB(e.order)&&(e.order=0);const i=new If(e);super(i),this.id=e.id,this.title=e.title,this.collapsed=!!e.collapsed,this.order=e.order,this.parent=null,this.children_=[],this.impl_=i,this.zIndex_=e.zIndex,Array.isArray(e.children)&&this.addChildren(e.children)}addTo(t){this.map=t,this.children_.forEach((e=>{e instanceof Ef&&e.addTo(t)})),this.fire(kc)}setVisible(t){this.getAllLayers().forEach((e=>!0===e.transparent&&e.setVisible(t)))}setZIndex(t){this.zIndex_=t;const e=[...this.getChildren()].reverse();let i=t;e.forEach((t=>{t.setZIndex(i),i+=1}))}getZIndex(t){return this.zIndex_}addChild(t,e){let i=this.getZIndex()+this.children_.length;const n=t;qB(e)?this.children_.unshift(n):(this.children_.splice(e-1,0,n),i=this.getZIndex()+e),n instanceof Ef?n.parent=this:n instanceof _g&&(n.setLayerGroup(this),n.setZIndex(i),qB(this.map)||this.map.getRootLayers().some((t=>t.equals(n)))||(this.map.addLayers(n),n instanceof Ef&&this.map.addLayerGroup(n)))}deleteChild(t){const e=t;e instanceof Ef?(e.parent=null,this.map.removeLayerGroup(e)):e instanceof _g&&(this.map.removeLayers(e),this.ungroup(t))}deleteChildren(t){t.forEach(this.deleteChild,this)}ungroup(t){t.setLayerGroup(null),this.children_.remove(t)}addChildren(t=[]){let e=t;Array.isArray(t)||(e=[e]),e.forEach(this.addChild,this)}getChildren(){return this.children_}getAllLayers(){let t=[];return this.getChildren().forEach((e=>{e instanceof _g?t.push(e):e instanceof Ef&&(t=t.concat(e.getAllLayers()))})),t}destroy(){this.map.removeLayers(this.getAllLayers())}static findGroupById(t,e){let i=null;if(UB(e)&&e.length>0&&(i=e.find((e=>e instanceof Ef&&e.id===t)),null==i)){const n=e.map((t=>t.getChildren())).reduce(((t,e)=>t.concat(e)),[]).filter((t=>t instanceof Ef));i=Ef.findGroupById(t,n)}return i}}const Cf=Ef;class vf extends Af{constructor(t){super(),this.mouseoutTimeId=null,this.panel=null,this.statusEmptyLayer=!1,QB(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t,e){this.facadeMap_=t;const i=t.getMapImpl();this.panel=e.getElementsByTagName("div")[vf.PANEL_ID],this.panel.addEventListener("click",this.clickLayer.bind(this),!1),this.panel.addEventListener("input",this.inputLayer.bind(this),!1),this.element=e,this.target_=null,i.addControl(this)}inputLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let n=null;if(!qB(e.target)){const t=e.target.getAttribute("data-layer-name");if(!qB(t)){e.stopPropagation();let r=this.facadeMap_.getLayers().filter((e=>e.id===t))[0];if(qB(r)&&!qB(i)&&(n=Cf.findGroupById(i,this.facadeMap_.getLayerGroup()),r=n.getChildren().find((e=>e instanceof _g&&e.id===t))),e.target.classList.contains("m-check"))if(QB(r)||!0!==r.transparent&&r.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach((t=>{t.setVisible(!1)}));else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");qB(t)||r.setOpacity(parseFloat(t.value)),r.setVisible(!r.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?r.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&this.facadeMap_.removeLayers(r)}}}clickLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let n=null;if(!qB(e.target)){const t=e.target.getAttribute("data-layer-name");if(qB(t)){if(!qB(i)){const t=e.target.getAttribute("data-group-id");n=Cf.findGroupById(t,this.facadeMap_.getLayerGroup()),e.target.classList.contains("m-check")?e.target.classList.contains("g-cartografia-check3")?n.setVisible(!1):n.setVisible(!0):(n.collapsed=!n.collapsed,this.renderPanel())}}else{e.stopPropagation();let r=this.facadeMap_.getLayers().filter((e=>e.id===t))[0];if(qB(r)&&!qB(i)&&(n=Cf.findGroupById(i,this.facadeMap_.getLayerGroup()),r=n.getChildren().find((e=>e instanceof _g&&e.id===t))),e.target.classList.contains("m-check"))if(QB(r)||!0!==r.transparent&&r.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach((t=>{t.setVisible(!1)}));else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");qB(t)||r.setOpacity(parseFloat(t.value)),r.setVisible(!r.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?r.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&(qB(n)?this.facadeMap_.removeLayers(r):(r.getImpl().destroy(),n.removeChild(r)))}}this.renderPanel()}renderPanel(){xI.getTemplateVariables(this.facadeMap_).then((t=>{if(this.activeEmptyLayer){const e=Object.assign({},xI.EMPTYLAYER);e.visible=this.statusEmptyLayer,t.baseLayers.unshift(e)}const e=bu(yf(),{vars:t});this.registerImgErrorEvents_(e);const i=e.querySelector("div#".concat(vf.PANEL_ID));this.panel.innerHTML=i.innerHTML}))}registerEvents(){if(!qB(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.registerViewEvents_(t.getView()),this.registerLayersEvents_(t.getLayers()),t.on("change:view",(()=>this.onViewChange_.bind(this)))}}unregisterEvents(){if(!qB(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.unregisterViewEvents_(t.getView()),this.unregisterLayersEvents_(t.getLayers()),t.un("change:view",(()=>this.onViewChange_.bind(this)))}}registerViewEvents_(t){t.on("change:resolution",(()=>this.renderPanel.bind(this)))}registerLayersEvents_(t){t.forEach(this.registerLayerEvents_.bind(this)),t.on("remove",(()=>this.renderPanel.bind(this))),t.on("add",(()=>this.onAddLayer_.bind(this)))}registerLayerEvents_(t){t.on("change:visible",(()=>this.renderPanel.bind(this))),t.on("change:extent",(()=>this.renderPanel.bind(this)))}unregisterViewEvents_(t){t.un("change:resolution",(()=>this.renderPanel.bind(this)))}unregisterLayersEvents_(t){t.forEach(this.unregisterLayerEvents_.bind(this)),t.un("remove",(()=>this.renderPanel.bind(this))),t.un("add",(()=>this.onAddLayer_.bind(this)))}unregisterLayerEvents_(t){t.un("change:visible",(()=>this.renderPanel.bind(this))),t.un("change:extent",(()=>this.renderPanel.bind(this)))}onViewChange_(t){this.unregisterViewEvents_(t.oldValue);const e=this.facadeMap_.getMapImpl();this.registerViewEvents_(e.getView())}onAddLayer_(t){this.registerLayerEvents_(t.element),this.renderPanel()}registerImgErrorEvents_(t){const e=t.querySelectorAll("img");Array.prototype.forEach.call(e,(t=>{t.addEventListener("error",(t=>{const e=t.target.getAttribute("data-layer-name"),i=aL([M.config.THEME_URL,_g.LEGEND_ERROR]),n=this.facadeMap_.getLayers().filter((t=>t.id===e))[0];qB(n)||n.setLegendURL(i)}))}))}setMap(t){super.setMap(t),this.renderPanel()}}vf.PANEL_ID="m-layerswitcher-panel";const xf=vf;var wf=i(402);const Sf=class{constructor(t){this.rbush_=new wf(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[Xs(e)]=i}load(t,e){const i=new Array(e.length);for(let n=0,r=e.length;n=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?s(e.readFeatures(n,{extent:i,featureProjection:r}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Of(t,e){return function(i,n,r,s,o){const a=this;Df(t,e,i,n,r,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||Cs)}}class Qf extends us{constructor(t,e,i){super(t),this.feature=e,this.features=i}}const kf=class extends fp{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=Cs,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(go(this.format_,"`format` must be set when `url` is set"),this.loader_=Of(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:Pf;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Sf:null,this.loadedExtentsRtree_=new Sf,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new eo(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=Xs(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Qf(bf,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[Gs(e,bs,this.handleFeatureChange_,this),Gs(e,gs,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(go(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let e=0,n=t.length;e{e||(e=!0,this.addFeature(t.element),e=!1)})),t.addEventListener(Zs,(t=>{e||(e=!0,this.removeFeature(t.element),e=!1)})),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(qs)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Qf(Lf);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){if(i.getGeometry().intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){if(i.getGeometry().intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),ws(this.nullGeometryFeatures_)||_s(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=function(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];gt(t,e);const n=at(i);if(at(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}(t,e);return[].concat(...i.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let r=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||Is,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e.closestPointXY(i,n,s,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Qf(Rf,void 0,t))}),(()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Qf(Nf))})),n.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(z(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=Xs(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=Xs(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(qs),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Qf(Mf,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){go(this.format_,"`format` must be set when `url` is set"),this.url_=t,this.setLoader(Of(t,this.format_))}};const Gf=class extends kf{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return go(!e||"Point"===e.getType(),"The default `geometryFunction` can only handle `Point` or null geometries"),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(bs,this.boundRefresh_),this.source=t,t&&t.addEventListener(bs,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,n=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,n&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=[1/0,1/0,-1/0,-1/0],e=this.distance*this.resolution,i=this.source.getFeatures(),n={};for(let r=0,s=i.length;r=0;--e){const n=this.geometryFunction(t[e]);n?St(i,n.getCoordinates()):t.splice(e,1)}Pt(i,1/t.length);const n=$(e),r=this.interpolationRatio,s=new qa([i[0]*(1-r)+n[0]*r,i[1]*(1-r)+n[1]*r]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new _d({geometry:s,features:t})}};class Uf{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=xc(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Uf({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return js()}getImage(t){return js()}getHitDetectionImage(){return js()}getPixelRatio(t){return 1}getImageState(){return js()}getImageSize(){return js()}getOrigin(){return js()}getSize(){return js()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=xc(t)}listenImageChange(t){js()}load(){js()}unlistenImageChange(t){js()}}const qf=Uf;let Vf=null;class zf extends Ss{constructor(t,e,i,n,r){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=i,this.canvas_={},this.color_=r,this.imageState_=void 0===n?Cg:n,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===xg){Vf||(Vf=bl(1,1,void 0,{willReadFrequently:!0})),Vf.drawImage(this.image_,0,0);try{Vf.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Vf=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(bs)}handleImageError_(){this.imageState_=wg,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=xg,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=bl(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Cg){this.image_||this.initializeImage_(),this.imageState_=vg;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch(t){this.handleImageError_()}this.image_ instanceof HTMLImageElement&&Ng(this.image_,this.src_).then((t=>{this.image_=t,this.handleImageLoad_()})).catch(this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==xg)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=bo(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}}function Yf(t,e,i,n){return void 0!==i&&void 0!==n?[i/t,n/e]:void 0!==i?i/t:void 0!==n?n/e:1}class jf extends qf{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,r=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;let o,a=t.src;if(go(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||Xs(s)),go(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),go(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=Cg:void 0!==s&&(o=s instanceof HTMLImageElement?s.complete?s.src?xg:Cg:vg:xg),this.color_=void 0!==t.color?Mo(t.color):null,this.iconImage_=function(t,e,i,n,r){let s=void 0===e?void 0:Fo.get(e,i,r);return s||(s=new zf(t,t instanceof HTMLImageElement?t.src||void 0:e,i,n,r),Fo.set(e,i,r,s)),s}(s,a,this.crossOrigin_,o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,void 0!==t.width||void 0!==t.height){let e,i;if(t.size)[e,i]=t.size;else{const n=this.getImage(1);if(n.width&&n.height)e=n.width,i=n.height;else if(n instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const i=this.iconImage_.getSize();this.setScale(Yf(i[0],i[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(Yf(e,i,t.width,t.height))}}clone(){let t,e,i;return this.initialOptions_?(e=this.initialOptions_.width,i=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new jf({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:e,height:i,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:this.iconImage_.getImageState()==xg?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:this.iconImage_.getImageState()==xg?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(bs,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(bs,t)}}const Hf=jf;const Xf=class{drawCustom(t,e,i,n){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}};function Wf(t){return Array.isArray(t)?Ro(t):t}const Kf=class extends Xf{constructor(t,e,i,n,r,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=n,this.transformRotation_=n?It(Math.atan2(n[1],n[0]),10):0,this.viewRotation_=r,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=[1,0,0,1,0,0]}drawImages_(t,e,i,n){if(!this.image_)return;const r=pa(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=r.length;tt*this.pixelRatio_)),lineDashOffset:(r||0)*this.pixelRatio_,lineJoin:void 0!==s?s:Ql,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:Wf(t||kl)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Wf(t||Fl)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),r=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Dl,lineDash:n||Ol,lineDashOffset:r||0,lineJoin:void 0!==s?s:Ql,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:Wf(t||kl)}}else this.textStrokeState_=null;const n=t.getFont(),r=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:Pl,textAlign:void 0!==c?c:Gl,textBaseline:void 0!==u?u:Ul},this.text_=void 0!==h?Array.isArray(h)?h.reduce(((t,e,i)=>t+(i%2?" ":e)),""):h:"",this.textOffsetX_=void 0!==r?this.pixelRatio_*r:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},Jf=.5,Zf={Point:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=xg)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},LineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},Polygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},MultiPoint:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=xg)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawMultiPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},MultiLineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawMultiLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},MultiPolygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(o||s){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawMultiPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},GeometryCollection:function(t,e,i,n,r){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o{let n=e[t];"string"==typeof n&&1===n.length&&(n={char:n}),lm.defs.glyphs[t]={font:i.font,char:n.char||`${String.fromCharCode(n.code)}`||"",theme:n.theme||i.name,name:n.name||t,search:n.search||""}}))}getFill(){return this.fill_}getStroke(){return this.stroke_}getGlyph(t){let e=this.glyph_;return t&&(e=lm.defs.glyphs[t],e=e||{font:"none",char:t.charAt(0),theme:"none",name:"none",search:""}),e}getGlyphName(){let t="";return Object.keys(lm.defs.glyphs).forEach((e=>{lm.defs.glyph[e]===this.glyph_&&(t=e)})),t}getFontInfo(t){return lm.defs.fonts[t.font]}renderMaker(t){let e,i=0;this.stroke_&&(e=bo(this.stroke_.getColor()),i=this.stroke_.getWidth());const n=this.getImage(1);n.height+=1,n.width+=1;const r={strokeStyle:e,strokeWidth:i,size:n.width},s=n.getContext("2d");s.clearRect(0,0,n.width,n.height),this.drawMarker_(r,s,0,0);const o=this.getAnchor();o[0]=n.width/2-this.offset_[0],o[1]=n.width/2-this.offset_[1]}drawPath_(t,e){const i=e,n=2*this.radius_+t.strokeWidth,r=t.strokeWidth/2,s=t.size/2;let o={fac:1,posX:t.size/2,posY:t.size/2};i.lineJoin="round",i.beginPath();const a=Math.PI;switch(this.form_){case"none":o.fac=1;break;case"circle":case"ban":i.arc(s,s,n/2,0,2*Math.PI,!0);break;case"poi":i.arc(s,s-.4*this.radius_,.6*this.radius_,.15*a,.85*a,!0),i.lineTo(s-.89*.05*n,(.95+.45*.05)*n+r),i.arc(s,.95*n+r,.05*n,.85*Math.PI,.15*Math.PI,!0),o={fac:.45,posX:s,posY:s-.35*this.radius_};break;case"bubble":i.arc(s,s-.2*this.radius_,.8*this.radius_,.4*a,.6*a,!0),i.lineTo(.5*n+r,n+r),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"marker":i.arc(s,s-.2*this.radius_,.8*this.radius_,.25*a,.75*a,!0),i.lineTo(.5*n+r,n+r),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"coma":i.moveTo(s+.8*this.radius_,s-.2*this.radius_),i.quadraticCurveTo(.95*n+r,.75*n+r,.5*n+r,n+r),i.arc(s,s-.2*this.radius_,.8*this.radius_,.45*a,0,!1),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;default:let t;switch(this.form_){case"shield":t=[.05,0,.95,0,.95,.8,.5,1,.05,.8,.05,0],o.posY=.45*n+r;break;case"blazon":t=[.1,0,.9,0,.9,.8,.6,.8,.5,1,.4,.8,.1,.8,.1,0],o.fac=.8,o.posY=.4*n+r;break;case"bookmark":t=[.05,0,.95,0,.95,1,.5,.8,.05,1,.05,0],o.fac=.9,o.posY=.4*n+r;break;case"hexagon":t=[.05,.2,.5,0,.95,.2,.95,.8,.5,1,.05,.8,.05,.2],o.fac=.9,o.posY=.5*n+r;break;case"diamond":t=[.25,0,.75,0,1,.2,1,.4,.5,1,0,.4,0,.2,.25,0],o.fac=.75,o.posY=.35*n+r;break;case"triangle":t=[0,0,1,0,.5,1,0,0],o.fac=.6,o.posY=.3*n+r;break;case"sign":t=[.5,.05,1,.95,0,.95,.5,.05],o.fac=.7,o.posY=.65*n+r;break;case"lozenge":t=[.5,0,1,.5,.5,1,0,.5,.5,0],o.fac=.7;break;default:t=[0,0,1,0,1,1,0,1,0,0]}for(let e=0;e0?Number(t.scale):1)*ao||ao,r=i.getContext("2d");if(t.image){t.image.load();const s=t.image.getImage();s.width?(i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.globalAlpha="number"==typeof t.opacity?t.opacity:1,r.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=r.createPattern(i,"repeat")):(e=[0,0,0,0],s.onload=function(){i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.globalAlpha="number"==typeof t.opacity?t.opacity:1,r.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=r.createPattern(i,"repeat"),this.color_=e,this.checksum_=void 0})}else{const s=km.getPattern(t);if(i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.beginPath(),t.fill&&(r.fillStyle=bo(t.fill.getColor()),r.fillRect(0,0,i.width,i.height)),r.scale(n,n),r.lineCap="round",r.lineWidth=s.stroke||1,r.fillStyle=bo(t.color||"#000"),r.strokeStyle=bo(t.color||"#000"),s.circles)for(let t=0;t180&&(r-=360),r*=Math.PI/180;const s=Math.cos(r),o=Math.sin(r);if(Math.abs(o)<1e-4)i.width=n,i.height=n,i.lines=[[0,.5,n,.5]],i.repeat=[[0,0],[0,n]];else if(Math.abs(s)<1e-4)i.height=n,i.width=n,i.lines=[[.5,0,.5,n]],i.repeat=[[0,0],[n,0]],"cross"===e.pattern&&(i.lines.push([0,.5,n,.5]),i.repeat.push([0,n]));else{i.width=Math.round(Math.abs(n/o))||1,i.height=Math.round(Math.abs(n/s))||1;const t=i.width,r=i.height;"cross"===e.pattern?(i.lines=[[-t,-r,2*t,2*r],[2*t,-r,-t,2*r]],i.repeat=[[0,0]]):s*o>0?(i.lines=[[-t,-r,2*t,2*r]],i.repeat=[[0,0],[t,0],[0,r]]):(i.lines=[[2*t,-r,-t,2*r]],i.repeat=[[0,0],[-t,0],[0,r]])}i.stroke=0===e.size?0:e.size||4}return i}static addPattern(t,e={}){km.patterns[t||e.char]={width:e.width||e.size||10,height:e.height||e.size||10,font:e.font,char:e.char,circles:e.circles,lines:e.lines,repeat:e.repeat,stroke:e.stroke,angle:e.angle,fill:e.fill}}}km.patterns={hatch:{width:5,height:5,lines:[[0,2.5,5,2.5]],stroke:1},cross:{width:7,height:7,lines:[[0,3,10,3],[3,0,3,10]],stroke:1},dot:{width:8,height:8,circles:[[5,5,2]],stroke:!1,fill:!0},circle:{width:10,height:10,circles:[[5,5,2]],stroke:1,fill:!1},square:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],stroke:1,fill:!1},tile:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],fill:!0},woven:{width:12,height:12,lines:[[3,3,9,9],[0,12,3,9],[9,3,12,0],[-1,1,1,-1],[13,11,11,13]],stroke:1},crosses:{width:8,height:8,lines:[[2,2,6,6],[2,6,6,2]],stroke:1},caps:{width:8,height:8,lines:[[2,6,4,2,6,6]],stroke:1},nylon:{width:20,height:20,lines:[[1,6,1,1,6,1],[6,11,11,11,11,6],[11,16,11,21,16,21],[16,11,21,11,21,16]],repeat:[[0,0],[-20,0],[0,-20]],stroke:1},hexagon:{width:20,height:12,lines:[[0,10,4,4,10,4,14,10,10,16,4,16,0,10]],stroke:1,repeat:[[0,0],[10,6],[10,-6],[-10,-6]]},cemetry:{width:15,height:19,lines:[[0,3.5,7,3.5],[3.5,0,3.5,10]],stroke:1,repeat:[[0,0],[7,9]]},sand:{width:20,height:20,circles:[[1,2,1],[9,3,1],[2,16,1],[7,8,1],[6,14,1],[4,19,1],[14,2,1],[12,10,1],[14,18,1],[18,8,1],[18,14,1]],fill:1},conglomerate:{width:30,height:20,circles:[[2,4,1],[17,3,1],[26,18,1],[12,17,1],[5,17,2],[28,11,2]],lines:[[7,5,6,7,9,9,11,8,11,6,9,5,7,5],[16,10,15,13,16,14,19,15,21,13,22,9,20,8,19,8,16,10],[24,6,26,7,27,5,26,4,24,4,24,6]],stroke:1},gravel:{width:15,height:10,circles:[[4,2,1],[5,9,1],[1,7,1]],lines:[[7,5,6,6,7,7,8,7,9,7,10,5,9,4,7,5],[11,2,14,4,14,1,12,1,11,2]],stroke:1},brick:{width:18,height:16,lines:[[0,1,18,1],[0,10,18,10],[6,1,6,10],[12,10,12,18],[12,0,12,1]],stroke:1},dolomite:{width:20,height:16,lines:[[0,1,20,1],[0,9,20,9],[1,9,6,1],[11,9,14,16],[14,0,14.4,1]],stroke:1},coal:{width:20,height:16,lines:[[1,5,7,1,7,7],[11,10,12,5,18,9],[5,10,2,15,9,15],[15,16,15,13,20,16],[15,0,15,2,20,0]],fill:1},breccia:{width:20,height:16,lines:[[1,5,7,1,7,7,1,5],[11,10,12,5,18,9,11,10],[5,10,2,15,9,15,5,10],[15,16,15,13,22,18],[15,0,15,2,20,0]],stroke:1},clay:{width:20,height:20,lines:[[0,0,3,11,0,20],[11,0,10,3,13,13,11,20],[0,0,10,3,20,0],[0,12,3,11,13,13,20,12]],stroke:1},flooded:{width:15,height:10,lines:[[0,1,10,1],[0,6,5,6],[10,6,15,6]],stroke:1},chaos:{width:40,height:40,lines:[[40,2,40,0,38,0,40,2],[4,0,3,2,2,5,0,0,0,3,2,7,5,6,7,7,8,10,9,12,9,13,9,14,8,14,6,15,2,15,0,20,0,22,2,20,5,19,8,15,10,14,11,12.25,10,12,10,10,12,9,13,7,12,6,13,4,16,7,17,4,20,0,18,0,15,3,14,2,14,0,12,1,11,0,10,1,11,4,10,7,9,8,8,5,6,4,5,3,5,1,5,0,4,0],[7,1,7,3,8,3,8,2,7,1],[4,3,5,5,4,5,4,3],[34,5,33,7,38,10,38,8,36,5,34,5],[27,0,23,2,21,8,30,0,27,0],[25,8,26,12,26,16,22.71875,15.375,20,13,18,15,17,18,13,22,17,21,19,22,21,20,19,18,22,17,30,25,26,26,24,28,21.75,33.34375,20,36,18,40,20,40,24,37,25,32,27,31,26,38,27,37,30,32,32,35,36,37,38,40,38,39,40,40,37,36,34,32,37,31,36,29,33,27,34,24,39,21,40,21,40,16,37,20,31,22,32,25,27,20,29,15,30,20,32,20,34,18,33,12,31,11,29,14,26,9,25,8],[39,24,37,26,40,28,39,24],[13,15,9,19,14,18,13,15],[18,23,14,27,16,27,17,25,20,26,18,23],[6,24,2,26,1,28,2,30,5,28,12,30,16,32,18,30,15,30,12,28,9,25,7,27,6,24],[29,27,32,28,33,31,30,29,27,28,29,27],[5,35,1,33,3,36,13,38,15,35,10,36,5,35]],fill:1},grass:{width:27,height:22,lines:[[0,10.5,13,10.5],[2.5,10,1.5,7],[4.5,10,4.5,5,3.5,4],[7,10,7.5,6,8.5,3],[10,10,11,6]],repeat:[[0,0],[14,10]],stroke:1},swamp:{width:24,height:23,lines:[[0,10.5,9.5,10.5],[2.5,10,2.5,7],[4.5,10,4.5,4],[6.5,10,6.5,6],[3,12.5,7,12.5]],repeat:[[0,0],[14,10]],stroke:1},wave:{width:10,height:8,lines:[[0,0,5,4,10,0]],stroke:1},vine:{width:13,height:13,lines:[[3,0,3,6],[9,7,9,13]],stroke:1},forest:{width:55,height:30,circles:[[7,7,3.5],[20,20,1.5],[42,22,3.5],[35,5,1.5]],stroke:1},scrub:{width:26,height:20,lines:[[1,4,4,8,6,4]],circles:[[20,13,1.5]],stroke:1},tree:{width:30,height:30,lines:[[7.78,10.61,4.95,10.61,4.95,7.78,3.54,7.78,2.12,6.36,.71,6.36,0,4.24,.71,2.12,4.24,0,7.78,.71,9.19,3.54,7.78,4.95,7.07,7.07,4.95,7.78]],repeat:[[3,1],[18,16]],stroke:1},pine:{width:30,height:30,lines:[[5.66,11.31,2.83,11.31,2.83,8.49,0,8.49,2.83,0,5.66,8.49,2.83,8.49]],repeat:[[3,1],[18,16]],stroke:1},pines:{width:22,height:20,lines:[[1,4,3.5,1,6,4],[1,8,3.5,5,6,8],[3.5,1,3.5,11],[12,14.5,14.5,14,17,14.5],[12,18,17,18],[14.5,12,14.5,18]],repeat:[[2,1]],stroke:1},rock:{width:20,height:20,lines:[[1,0,1,9],[4,0,4,9],[7,0,7,9],[10,1,19,1],[10,4,19,4],[10,7,19,7],[0,11,9,11],[0,14,9,14],[0,17,9,17],[12,10,12,19],[15,10,15,19],[18,10,18,19]],repeat:[[.5,.5]],stroke:1},rocks:{width:20,height:20,lines:[[5,0,3,0,5,4,4,6,0,3,0,5,3,6,5,9,3.75,10,2.5,10,0,9,0,10,4,11,5,14,4,15,0,13,0,13,0,13,0,14,0,14,5,16,5,18,3,19,0,19,-.25,19.9375,5,20,10,19,10,20,11,20,12,19,14,20,15,20,17,19,20,20,20,19,19,16,20,15,20,11,20,10,19,8,20,5,20,0,19,0,20,2,19,4,17,4,16,3,15,0,14,0,15,4,11,5,10,4,11,0,10,0,9,4,6,5,5,0],[18,5,19,6,18,10,16,10,14,9,16,5,18,5],[5,6,9,5,10,6,10,9,6,10,5,6],[14,5,14,8,13,9,12,9,11,7,12,5,14,5],[5,11,8,10,9,11,10,14,6,15,6,15,5,11],[13,10,14,11,15,14,15,14,15,14,11,15,10,11,11,10,13,10],[15,12,16,11,19,11,19,15,16,14,16,14,15,12],[6,16,9,15,10,18,5,19,6,16],[10,16,14,16,14,18,13,19,11,18,10,16],[15,15,18,16,18,18,16,19,15,18,15,15]],stroke:1}};class Gm extends vm{constructor(t={}){super({points:1/0,fill:t.fill,radius:t.radius,snapToPixel:t.snapToPixel,stroke:t.stroke,atlasManager:t.atlasManager})}clone(){const t=new Gm({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t}}const Um=(t,e,i)=>{let n;if(!qB(t.fill)){const r=um.getValue(t.fill.color,e,i);let s=um.getValue(t.fill.opacity,e,i);s||0===s||(s=1),qB(r)||(n=new wm({color:a()(r).alpha(s).css()}))}return n},qm=(t,e,i)=>{let n;if(!qB(t.stroke)){const r=um.getValue(t.stroke.color,e,i);if(!qB(r)){const{linedashoffset:s}=t.stroke;n=new bm({color:r,width:um.getValue(t.stroke.width,e,i),lineDash:um.getValue(t.stroke.linedash,e,i),lineDashOffset:um.getValue(s,e,i),lineCap:um.getValue(t.stroke.linecap,e,i),lineJoin:um.getValue(t.stroke.linejoin,e,i),miterLimit:um.getValue(t.stroke.miterlimit,e,i)})}}return n},Vm=(t,i,r)=>{let s;if(t.label){const o=um.getValue(t.label.text,i,r),a=um.getValue(t.label.align,i,r),l=um.getValue(t.label.baseline,i,r);if(s=new Fm({font:um.getValue(t.label.font,i,r),rotateWithView:um.getValue(t.label.rotate,i,r),scale:um.getValue(t.label.scale,i,r),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,i,r),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,i,r),fill:new wm({color:um.getValue(t.label.color||"#000",i,r)}),textAlign:Object.values(e).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:um.getValue(t.label.rotation,i,r),overflow:um.getValue(t.label.overflow,i,r)}),!qB(t.label.stroke)){const{miterlimit:e,linedashoffset:n}=t.label.stroke;s.setStroke(new bm({color:um.getValue(t.label.stroke.color,i,r),width:um.getValue(t.label.stroke.width,i,r),lineCap:um.getValue(t.label.stroke.linecap,i,r),lineJoin:um.getValue(t.label.stroke.linejoin,i,r),lineDash:um.getValue(t.label.stroke.linedash,i,r),lineDashOffset:um.getValue(n,i,r),miterLimit:um.getValue(e,i,r)}))}}return s},zm={},Ym=(t,e,i)=>{const n=t||{},r=Um(n,e,i),s=qm(n,e,i),o=new Gm({fill:r,stroke:s,radius:um.getValue(n.radius,e,i),snapToPixel:um.getValue(n.snapToPixel,e,i)}),a=new Nm({image:o}),l=new Nm;if(!qB(n.icon)){let t;const r=um.getValue(n.icon.src,e,i);qB(r)?qB(n.icon.form)||(t=((t,e,i)=>new Qm({form:qB(um.getValue(t.icon.form,e,i))?"":um.getValue(t.icon.form,e,i).toLowerCase(),gradient:um.getValue(t.icon.gradient,e,i),glyph:um.getValue(t.icon.class,e,i),fontSize:um.getValue(t.icon.fontsize,e,i),radius:um.getValue(t.icon.radius,e,i),rotation:um.getValue(t.icon.rotation,e,i),rotateWithView:um.getValue(t.icon.rotate,e,i),offsetX:um.getValue(t.icon.offset?t.icon.offset[0]:void 0,e,i),offsetY:um.getValue(t.icon.offset?t.icon.offset[1]:void 0,e,i),fill:new wm({color:um.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",e,i)}),stroke:t.icon.color?new bm({color:um.getValue(t.icon.color,e,i),width:1}):void 0,anchor:um.getValue(t.icon.anchor,e,i),anchorXUnits:um.getValue(t.icon.anchorxunits,e,i),anchorYUnits:um.getValue(t.icon.anchoryunits,e,i),src:um.getValue(t.icon.src,e,i),opacity:um.getValue(t.icon.opacity,e,i),scale:um.getValue(t.icon.scale,e,i),snapToPixel:um.getValue(t.icon.snaptopixel,e,i),offsetOrigin:um.getValue(t.icon.offsetorigin,e,i),offset:um.getValue(t.icon.offset,e,i),crossOrigin:um.getValue(t.icon.crossorigin,e,i),anchorOrigin:um.getValue(t.icon.anchororigin,e,i),size:um.getValue(t.icon.size,e,i)}))(n,e,i),l.setImage(t)):(t=((t,e,i)=>{const n=um.getValue(t.icon.anchor,e,i),r=um.getValue(t.icon.anchorxunits,e,i),s=um.getValue(t.icon.anchoryunits,e,i),o=um.getValue(t.icon.src,e,i),a=um.getValue(t.icon.opacity,e,i),l=um.getValue(t.icon.scale,e,i),h=um.getValue(t.icon.rotation,e,i),c=um.getValue(t.icon.rotate,e,i),u=um.getValue(t.icon.snaptopixel,e,i),g=um.getValue(t.icon.offsetorigin,e,i),d=um.getValue(t.icon.offset,e,i),A=um.getValue(t.icon.crossorigin,e,i),p=um.getValue(t.icon.anchororigin,e,i),f=o+n+r+s+a+l+h+c+u+g+d+A+p+p+um.getValue(t.icon.size,e,i);let m=zm[f];return m||(m=new Om({anchor:um.getValue(t.icon.anchor,e,i),anchorXUnits:um.getValue(t.icon.anchorxunits,e,i),anchorYUnits:um.getValue(t.icon.anchoryunits,e,i),src:um.getValue(t.icon.src,e,i),opacity:um.getValue(t.icon.opacity,e,i),scale:um.getValue(t.icon.scale,e,i),rotation:um.getValue(t.icon.rotation,e,i),rotateWithView:um.getValue(t.icon.rotate,e,i),snapToPixel:um.getValue(t.icon.snaptopixel,e,i),offsetOrigin:um.getValue(t.icon.offsetorigin,e,i),offset:um.getValue(t.icon.offset,e,i),crossOrigin:um.getValue(t.icon.crossorigin,e,i),anchorOrigin:um.getValue(t.icon.anchororigin,e,i),size:um.getValue(t.icon.size,e,i)}),zm[f]=m),m})(n,e,i),l.setImage(t))}const h=Vm(n,e,i);return qB(n.label)||QB(h.getText())||a.setText(h),[a,l]},jm=(t,e,i)=>{const n=t||{},r=qm(n,e,i),s=((t,e,i)=>{let n;if(!qB(t.fill)){const r=um.getValue(t.fill.color,e,i);let s=um.getValue(t.fill.opacity,e,i);s||0===s||(s=1);const o=um.getValue(t.fill.width,e,i);qB(r)||(n=new bm({color:a()(r).alpha(s).css(),width:o}))}return n})(n,e,i),o=((t,e,i)=>{const{label:n}=t;let r;if(!qB(n)){const i={text:void 0===um.getValue(n.text,e)?void 0:String(um.getValue(n.text,e)),font:um.getValue(n.font,e),fill:new wm({color:um.getValue(n.color||"#000",e)}),textBaseline:(um.getValue(n.baseline,e)||"").toLowerCase(),textAlign:um.getValue(n.align,e),scale:um.getValue(n.scale,e),rotateWithView:um.getValue(n.rotate,e)||!1,textOverflow:um.getValue(n.textoverflow,e)||"",minWidth:um.getValue(n.minwidth,e)||0,geometry:um.getValue(n.geometry,e),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,e),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,e)};r=new Dm(i),qB(n.stroke)||r.setStroke(new bm({color:um.getValue(n.stroke.color,e),width:um.getValue(n.stroke.width,e),lineCap:um.getValue(n.stroke.linecap,e),lineJoin:um.getValue(n.stroke.linejoin,e),lineDash:um.getValue(n.stroke.linedash,e),lineDashOffset:um.getValue(n.stroke.linedashoffset,e),miterLimit:um.getValue(n.stroke.miterlimit,e)}))}return r})(n,e),l=new Nm,h=new Nm;if(!qB(o)){!0===um.getValue(o.path,e)?(l.textPath=o,!qB(o.smooth)&&!0===o.smooth&&VB(e.getGeometry)&&l.setGeometry(e.getGeometry().cspline())):l.setText(o)}return l.setStroke(r),h.setStroke(s),[l,h]},Hm=(t,e,i)=>{const n=t||{},r=new Nm,s=qm(n,e,i);let o=Um(n,e,i);const l=Vm(n,e,i);return n.fill&&!qB(n.fill.pattern)&&(o=((t,e,i,n)=>{let r="rgba(0,0,0,1)";if(!qB(t.fill.pattern.color)){let n=um.getValue(t.fill.pattern.opacity,e,i)||1;n||0===n||(n=1),r=a()(t.fill.pattern.color).alpha(n).css()}return new km({pattern:(um.getValue(t.fill.pattern.name,e,i)||"").toLowerCase(),color:r,size:um.getValue(t.fill.pattern.size,e,i),spacing:um.getValue(t.fill.pattern.spacing,e,i),image:"IMAGE"===um.getValue(t.fill.pattern.name,e,i)?new Hf({src:um.getValue(t.fill.pattern.src,e,i)}):void 0,angle:um.getValue(t.fill.pattern.rotation,e,i),scale:um.getValue(t.fill.pattern.scale,e,i),offset:um.getValue(t.fill.pattern.offset,e,i),fill:n})})(n,e,i)),r.setFill(o),r.setStroke(s),r.setText(l),[r]},Xm={Point:(...t)=>Ym(t[0].point,t[1],t[2]),LineString:(...t)=>jm(t[0].line,t[1],t[2]),Polygon:(...t)=>Hm(t[0].polygon,t[1],t[2]),MultiPoint:(...t)=>Ym(t[0].point,t[1],t[2]),MultiLineString:(...t)=>jm(t[0].line,t[1],t[2]),MultiPolygon:(...t)=>Hm(t[0].polygon,t[1],t[2])};const Wm=class extends um{constructor(t={}){super(t),this.styles_={}}toImage(){const t=30;let e=null,i=null,n=null;const r=LL(),s=[];QB(this.options_.polygon)||(i=e=>new Promise(((i,n)=>{const r=new Image;if(r.onload=()=>i(r),r.onerror=n,!0===bL(this.options_.polygon))r.src=e,r.width=t,r.height=t;else{const t=(0,Xm.Polygon)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=10;const i=rm(e.getContext("2d"));i.setStyle(t[0],0,0);const n=[20,7],s=Math.floor(n[0]),o=Math.floor(n[1]),a=n[0]-s,l=n[1]-o;i.drawGeometry(new sl([[[a+1,l+1],[s-1,l+1],[s-1,o-1],[a+1,o-1],[a+1,l+1]]])),r.src=e.toDataURL()}})),s.push(i(r))),QB(this.options_.line)||(n=t=>new Promise(((e,i)=>{const n=new Image;if(n.onload=()=>e(n),n.onerror=i,!0===bL(this.options_.line))n.src=t,n.width=30,n.height=30;else{const t=(0,Xm.LineString)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=15;const i=rm(e.getContext("2d"));i.setStyle(t[0],0,0);const r=20,s=10,o=QB(t[0].getStroke())?1.5:t[0].getStroke().getWidth();i.drawGeometry(new wd([[0+o/2,0+o/2],[r/3,s/2-o/2],[2*r/3,0+o/2],[r-o/2,s/2-o/2]])),n.src=e.toDataURL()}})),s.push(n(r))),QB(this.options_.point)||(e=e=>new Promise(((i,n)=>{const r=new Image;if(this.options_.point.icon){if(this.options_.point.icon.src)this.options_.point.icon.src.startsWith(window.location.origin)?r.src=this.options_.point.icon.src:EL(this.options_.point.icon.src).then((e=>{r.onload=()=>i(r),r.onerror=n;const s=aL([M.config.PROXY_URL,"/image"]);r.crossOrigin="anonymous",r.src=KB(s,{url:this.options_.point.icon.src}),r.width=t,r.height=t;const o=t/(e.width/e.height);r.height=e.width>e.height?o:r.height,r.width=e.height>e.width?t/(e.height/e.width):r.width}));else if(this.options_.point.icon.form){r.onload=()=>i(r),r.width=t,r.height=t;const e=(0,Xm.Point)(this.options_,this,this.layer_)[1].getImage().getImage(1);null!=e&&e&&(r.src=e.toDataURL())}}else if(r.onload=()=>i(r),r.onerror=n,r.width=10,r.height=10,!0===bL(this.options_.point))r.src=e;else{const t=(0,Xm.Point)(this.options_,this,this.layer_);t[0].getImage().setRadius(5);const e=t[0].getImage().getImage(1).toDataURL();r.src=e}})),s.push(e(r)));const o=document.createElement("canvas");o.height=20;const a=o.getContext("2d"),l=[0,35,70];let h=0;return Promise.all(s).then((t=>{const e=t.length;o.width=1===e?35:2===e?70:100;let i=0;return t.forEach((t=>{t.height>i&&(i=t.height)})),o.height=i,t.forEach((t=>{a.drawImage(t,l[h],0,t.width,t.height),h+=1})),o.toDataURL()}))}updateFacadeOptions(t){this.olStyleFn_=e=>{const i=JSON.stringify(e.getProperties());let n=[];this.styles_=[];let r=e;if(r instanceof _d||r instanceof Pd){const e=r.getGeometry().getType(),s=Xm[e];VB(s)&&(n=s(t,r,this.layer_),this.styles_[i]=n)}else r=this;return n}}drawGeometryToCanvas(t){}updateCanvas(t){}getCanvasSize(){return 0}getRadius_(t){let e;return e=t instanceof Hf?25:t instanceof lm?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}};class Km extends Qc{constructor(t,e){super(e),this.options_=t,this.canvas_=document.createElement("canvas"),this.updateCanvasPromise_=null,this.layer_=null}get canvas(){return this.canvas_}apply(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}unapply(t){}get(t){let e;if(e=this.options_[t],qB(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qB(t)||(i=t[e],t instanceof Km&&(i=t.get(e))),i}),this))}return e}set(t,e){const i=this.get(t);return Km.setValue(this.options_,t,e),qB(this.layer_)||this.getImpl().updateFacadeOptions(this.options_),qB(this.feature_)||this.applyToFeature(this.feature_),this.fire(au,[t,i,e]),this.refresh(),this}static setValue(t,e,i){let n=i;const r=t,s=UB(e)?e:e.split("."),o=s.length,a=s[0];1===o?(UB(n)?n=[...n]:zB(n)&&(n=Object.assign({},n)),r[a]=n):o>1&&(qB(r[a])&&(r[a]={}),Km.setValue(r[a],s.slice(1,o),n))}refresh(t=null){if(qB(t)||(this.layer_=t),!qB(this.layer_)&&(this.apply(this.layer_),this.updateCanvas(),!qB(this.layer_.getImpl().getMap()))){const t=this.layer_.getImpl().getMap().getControls("layerswitcher")[0];qB(t)||t.render()}}getOptions(){return this.options_}toImage(){let t;if(qB(this.updateCanvasPromise_))if(qB(this.options_.icon)||qB(this.options_.icon.src))t=this.canvas_.toDataURL("png");else{const e=new Image;e.crossOrigin="Anonymous";const i=this.canvas_;e.onload=()=>{i.getContext("2d").drawImage(this,0,0,50,50)},e.src=this.options_.icon.src,t=this.canvas_.toDataURL("png")}else t=this.updateCanvasPromise_.then((()=>this.canvas_.toDataURL("png")));return t}updateCanvas(){this.updateCanvasPromise_=this.getImpl().updateCanvas(this.canvas_)}equals(t){return this.constructor===t.constructor}clone(){const t={};_L(t,this.options_);const e=new(0,this.getImpl().constructor)(t);return new this.constructor(t,e)}toJSON(){return{parameters:[CL(this.getOptions())],deserializedMethod:this.getDeserializedMethod_()}}serialize(){return window.btoa(unescape(encodeURIComponent(JSON.stringify(this))))}static deserialize(t){const e=decodeURIComponent(escape(window.atob(t))),{parameters:i,deserializedMethod:n}=JSON.parse(e);return new Function("serializedParams",`return ${n}(serializedParams)`)(i)}}const Jm=Km;const Zm=class extends Jm{constructor(t,e){super(t,e),this.feature_=null}applyToFeature(t){this.feature_=t,this.getImpl().applyToFeature(t)}};const $m=class extends Zm{apply(t,e,i){this.layer_=t,this.getImpl().applyToLayer(t),!0===e&&(i?t.getFeatures().forEach((t=>{t.style=null})):t.getFeatures().forEach((t=>{t.setStyle(this.clone())}))),this.updateCanvas()}toImage(){let t=super.toImage();const e={fill:this.options_.fill,stroke:this.options_.stroke};return!0===bL(e)&&(t=LL(this.canvas_)),t}get ORDER(){return 1}static deserialize(t,e){const i=vL(t),n=i.map(((t,e)=>`arg${e}`)),r=n.reduce(((t,e)=>t.concat(", ").concat(e)));return new Function(n,`return new ${e}(${r})`)(...i)}};class t_ extends $m{constructor(t){let e=t;e=qB(e)?t_.DEFAULT_NULL:_L(e,t_.DEFAULT),e=_L({},e);super(e,new Wm(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Generic'))"}}t_.DEFAULT={point:{radius:5}},t_.PARAMS_DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},t_.DEFAULT_NULL={point:{...t_.PARAMS_DEFAULT_NULL,radius:5},line:{...t_.PARAMS_DEFAULT_NULL},polygon:{...t_.PARAMS_DEFAULT_NULL}};const e_=t_;let i_=0;const n_=1<",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match"},__={[m_.Number]:I_(y_(1,1/0,l_),r_),[m_.String]:I_(y_(1,1/0,l_),s_),[m_.Get]:I_((function(t,e){if(2!==t.length)throw new Error("Expected 1 argument for get operation");const i=f_(t[1],e);if(!(i instanceof d_))throw new Error("Expected a literal argument for get operation");if("string"!=typeof i.value)throw new Error("Expected a string argument for get operation");return e.properties.add(i.value),[i]}),l_),[m_.Var]:I_((function(t,e){if(2!==t.length)throw new Error("Expected 1 argument for var operation");const i=f_(t[1],e);if(!(i instanceof d_))throw new Error("Expected a literal argument for var operation");if("string"!=typeof i.value)throw new Error("Expected a string argument for get operation");return e.variables.add(i.value),[i]}),l_),[m_.Resolution]:I_((function(t,e){const i=t[0];if(1!==t.length)throw new Error(`Expected no arguments for ${i} operation`);return[]}),r_),[m_.Any]:I_(y_(2,1/0,n_),n_),[m_.All]:I_(y_(2,1/0,n_),n_),[m_.Not]:I_(y_(1,1,n_),n_),[m_.Equal]:I_(y_(2,2,l_),n_),[m_.NotEqual]:I_(y_(2,2,l_),n_),[m_.GreaterThan]:I_(y_(2,2,l_),n_),[m_.GreaterThanOrEqualTo]:I_(y_(2,2,l_),n_),[m_.LessThan]:I_(y_(2,2,l_),n_),[m_.LessThanOrEqualTo]:I_(y_(2,2,l_),n_),[m_.Multiply]:I_(y_(2,1/0,r_),r_),[m_.Divide]:I_(y_(2,2,r_),r_),[m_.Add]:I_(y_(2,1/0,r_),r_),[m_.Subtract]:I_(y_(2,2,r_),r_),[m_.Clamp]:I_(y_(3,3,r_),r_),[m_.Mod]:I_(y_(2,2,r_),r_),[m_.Pow]:I_(y_(2,2,r_),r_),[m_.Abs]:I_(y_(1,1,r_),r_),[m_.Floor]:I_(y_(1,1,r_),r_),[m_.Ceil]:I_(y_(1,1,r_),r_),[m_.Round]:I_(y_(1,1,r_),r_),[m_.Sin]:I_(y_(1,1,r_),r_),[m_.Cos]:I_(y_(1,1,r_),r_),[m_.Atan]:I_(y_(1,2,r_),r_),[m_.Sqrt]:I_(y_(1,1,r_),r_),[m_.Match]:I_(y_(4,1/0,s_|r_),l_)};function y_(t,e,i){return function(n,r){const s=n[0],o=n.length-1;if(t===e){if(o!==t){throw new Error(`Expected ${t} argument${1===t?"":"s"} for operation ${s}, got ${o}`)}}else if(oe)throw new Error(`Expected ${t} to ${e} arguments for operation ${s}, got ${o}`);const a=new Array(o);for(let t=0;t{for(let e=0;et.properties[n];case m_.Var:return t=>t.variables[n];default:throw new Error(`Unsupported accessor operator ${t.operator}`)}}(t);case m_.Resolution:return t=>t.resolution;case m_.Any:case m_.All:case m_.Not:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let i=0;i{for(let e=0;e{for(let e=0;e!r[0](t);default:throw new Error(`Unsupported logical operator ${i}`)}}(t,e);case m_.Equal:case m_.NotEqual:case m_.LessThan:case m_.LessThanOrEqualTo:case m_.GreaterThan:case m_.GreaterThanOrEqualTo:return function(t,e){const i=t.operator,n=C_(t.args[0],e),r=C_(t.args[1],e);switch(i){case m_.Equal:return t=>n(t)===r(t);case m_.NotEqual:return t=>n(t)!==r(t);case m_.LessThan:return t=>n(t)n(t)<=r(t);case m_.GreaterThan:return t=>n(t)>r(t);case m_.GreaterThanOrEqualTo:return t=>n(t)>=r(t);default:throw new Error(`Unsupported comparison operator ${i}`)}}(t,e);case m_.Multiply:case m_.Divide:case m_.Add:case m_.Subtract:case m_.Clamp:case m_.Mod:case m_.Pow:case m_.Abs:case m_.Floor:case m_.Ceil:case m_.Round:case m_.Sin:case m_.Cos:case m_.Atan:case m_.Sqrt:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let i=0;i{let e=1;for(let i=0;ir[0](t)/r[1](t);case m_.Add:return t=>{let e=0;for(let i=0;ir[0](t)-r[1](t);case m_.Clamp:return t=>{const e=r[0](t),i=r[1](t);if(en?n:e};case m_.Mod:return t=>r[0](t)%r[1](t);case m_.Pow:return t=>Math.pow(r[0](t),r[1](t));case m_.Abs:return t=>Math.abs(r[0](t));case m_.Floor:return t=>Math.floor(r[0](t));case m_.Ceil:return t=>Math.ceil(r[0](t));case m_.Round:return t=>Math.round(r[0](t));case m_.Sin:return t=>Math.sin(r[0](t));case m_.Cos:return t=>Math.cos(r[0](t));case m_.Atan:return 2===n?t=>Math.atan2(r[0](t),r[1](t)):t=>Math.atan(r[0](t));case m_.Sqrt:return t=>Math.sqrt(r[0](t));default:throw new Error(`Unsupported numeric operator ${i}`)}}(t,e);case m_.Match:return function(t,e){const i=t.args.length,n=new Array(i);for(let r=0;r{const e=n[0](t);for(let r=1;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return i}const z_="renderOrder";const Y_=class extends pl{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(z_)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new wf(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(z_,t)}setStyle(t){this.style_=function(t){if(void 0===t)return Mm;if(!t)return null;if("function"==typeof t)return t;if(t instanceof Nm)return t;if(!Array.isArray(t))return w_([t]);if(0===t.length)return[];const e=t.length,i=t[0];if(i instanceof Nm){const i=new Array(e);for(let n=0;no&&(this.instructions.push([J_.CUSTOM,o,l,t,i,Pa]),this.hitDetectionInstructions.push([J_.CUSTOM,o,l,t,n||i,Pa]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([J_.CUSTOM,o,l,t,i]),this.hitDetectionInstructions.push([J_.CUSTOM,o,l,t,n||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[J_.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[J_.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,r,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[J_.SET_FILL_STYLE,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[J_.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,r=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||r!=t.currentLineDash&&!ys(t.currentLineDash,r)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=r,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[J_.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=N(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;R(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}};const $_=class extends Z_{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([J_.DRAW_IMAGE,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([J_.DRAW_IMAGE,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}};const ty=class extends Z_{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const r=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[J_.MOVE_TO_LINE_TO,r,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([J_.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Ol,0],W_);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(X_),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([J_.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Ol,0],W_);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t=t){const e=(t-a+u)/u,g=yt(i,h,e),d=yt(n,c,e);l.push(g,d),s.push(l),l=[g,d],a==t&&(o+=r),a=0}else if(a0&&s.push(l),s}function ny(t,e,i,n,r){let s,o,a,l,h,c,u,g,d,A,p=i,f=i,m=0,_=0,y=i;for(o=i;ot&&(_>m&&(m=_,p=y,f=o),_=0,y=o-r)),a=l,u=d,g=A),h=i,c=n}return _+=l,_>m?[y,o]:[p,f]}const ry={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};const sy=class extends Z_{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[Fl]={fillStyle:Fl},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,r=this.textState_;if(""===this.text_||!r||!i&&!n)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==r.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=r.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),r.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,n=e.length;t{const n=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return n||--t,n}))}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&this.updateFillStyle(this.state,this.createFill),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=r.padding;if(c!=ql&&(r.scale[0]<0||r.scale[1]<0)){let t=r.padding[0],e=r.padding[1],i=r.padding[2],n=r.padding[3];r.scale[0]<0&&(e=-e,n=-n),r.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([J_.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==ql?ql:c.map((function(t){return t*u})),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const g=1/u,d=this.state.fillStyle;r.backgroundFill&&(this.state.fillStyle=Fl,this.hitDetectionInstructions.push(this.createFill(this.state))),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,void 0,this.declutterImageWithText_,c,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?Fl:this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),r.backgroundFill&&(this.state.fillStyle=d,this.hitDetectionInstructions.push(this.createFill(this.state))),this.endGeometry(e)}else{if(!lt(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;tt[2]}else b=I>w;const B=Math.PI,L=[],M=C+n===e;let T;if(f=0,m=v,g=t[e=C],d=t[e+1],M){_(),T=Math.atan2(d-p,g-A),b&&(T+=T>0?-B:B);const t=(w+I)/2,e=(S+E)/2;return L[0]=[t,e,(x-s)/2,T,r],L}for(let t=0,u=(r=r.replace(/\n/g," ")).length;t0?-B:B),void 0!==T){let t=I-T;if(t+=t>B?-2*B:t<-B?2*B:0,Math.abs(t)>o)return null}T=I;const E=t;let C=0;for(;t0&&t.push("\n",""),t.push(e,""),t}const _y=class{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const r=t+e+i+n;if(this.labels_[r])return this.labels_[r];const s=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?ry[a.justify]:fy(Array.isArray(t)?t[0]:t,a.textAlign||Gl),g=n&&s.lineWidth?s.lineWidth:0,d=c?t:t.split("\n").reduce(my,[]),{width:A,height:p,widths:f,heights:m,lineWidths:_}=function(t,e){const i=[],n=[],r=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),r.push(o),o=0,a+=l;continue}const g=e[h+1]||t.font,d=Kl(g,u);i.push(d),o+=d;const A=Xl(g);n.push(A),l=Math.max(l,A)}return{width:s,height:a,widths:i,heights:n,lineWidths:r}}(a,d),y=A+g,I=[],E=(y+2)*h[0],C=(p+g)*h[1],v={width:E<0?Math.floor(E):Math.ceil(E),height:C<0?Math.floor(C):Math.ceil(C),contextInstructions:I};1==h[0]&&1==h[1]||I.push("scale",h),n&&(I.push("strokeStyle",s.strokeStyle),I.push("lineWidth",g),I.push("lineCap",s.lineCap),I.push("lineJoin",s.lineJoin),I.push("miterLimit",s.miterLimit),I.push("setLineDash",[s.lineDash]),I.push("lineDashOffset",s.lineDashOffset)),i&&I.push("fillStyle",o.fillStyle),I.push("textBaseline","middle"),I.push("textAlign","center");const x=.5-u;let w=u*y+x*g;const S=[],b=[];let B,L=0,M=0,T=0,R=0;for(let t=0,e=d.length;tt?t-l:r,y=s+h>e?e-h:s,I=d[3]+_*u[0]+d[1],E=d[0]+y*u[1]+d[2],C=f-d[3],v=m-d[0];let x;return(A||0!==c)&&(cy[0]=C,dy[0]=C,cy[1]=v,uy[1]=v,uy[0]=C+I,gy[0]=uy[0],gy[1]=v+E,dy[1]=gy[1]),0!==c?(x=Eo([1,0,0,1,0,0],i,n,1,1,c,-i,-n),_o(x,cy),_o(x,uy),_o(x,gy),_o(x,dy),G(Math.min(cy[0],uy[0],gy[0],dy[0]),Math.min(cy[1],uy[1],gy[1],dy[1]),Math.max(cy[0],uy[0],gy[0],dy[0]),Math.max(cy[1],uy[1],gy[1],dy[1]),hy)):G(Math.min(C,C+I),Math.min(v,v+E),Math.max(C,C+I),Math.max(v,v+E),hy),g&&(f=Math.round(f),m=Math.round(m)),{drawImageX:f,drawImageY:m,drawImageW:_,drawImageH:y,originX:l,originY:h,declutterBox:{minX:hy[0],minY:hy[1],maxX:hy[2],maxY:hy[3],value:p},canvasTransform:x,scale:u}}replayImageOrLabel_(t,e,i,n,r,s,o){const a=!(!s&&!o),l=n.declutterBox,h=t.canvas,c=o?o[2]*n.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,cy,uy,gy,dy,s,o),Zl(t,n.canvasTransform,r,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=_o(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const r=this.textStates[e],s=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,l=fy(Array.isArray(t)?t[0]:t,r.textAlign||Gl),h=ry[r.textBaseline||Ul],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*r.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,n,r,s,o,a){let l;var h,c;this.pixelCoordinates_&&ys(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=pa(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),h=this.renderedTransform_,c=i,h[0]=c[0],h[1]=c[1],h[2]=c[2],h[3]=c[3],h[4]=c[4],h[5]=c[5]);let u=0;const g=n.length;let d,A,p,f,m,_,y,I,E,C,v,x,w=0,S=0,b=0,B=null,L=null;const M=this.coordinateCache_,T=this.viewRotation_,R=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,N={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:T},P=this.instructions!=n||this.overlaps?0:200;let F,D,O,Q;for(;uP&&(this.fill_(t),S=0),b>P&&(t.stroke(),b=0),S||b||(t.beginPath(),f=NaN,m=NaN),++u;break;case J_.CIRCLE:w=i[1];const n=l[w],h=l[w+1],c=l[w+2]-n,g=l[w+3]-h,k=Math.sqrt(c*c+g*g);t.moveTo(n+k,h),t.arc(n,h,k,0,2*Math.PI,!0),++u;break;case J_.CLOSE_PATH:t.closePath(),++u;break;case J_.CUSTOM:w=i[1],d=i[2];const G=i[3],U=i[4],q=6==i.length?i[5]:void 0;N.geometry=G,N.feature=F,u in M||(M[u]=[]);const V=M[u];q?q(l,w,d,2,V):(V[0]=l[w],V[1]=l[w+1],V.length=2),U(V,N),++u;break;case J_.DRAW_IMAGE:w=i[1],d=i[2],I=i[3],A=i[4],p=i[5];let z=i[6];const Y=i[7],j=i[8],H=i[9],X=i[10];let W=i[11];const K=i[12];let J=i[13];const Z=i[14],$=i[15];if(!I&&i.length>=20){E=i[19],C=i[20],v=i[21],x=i[22];const t=this.drawLabelWithPointPlacement_(E,C,v,x);I=t.label,i[3]=I;const e=i[23];A=(t.anchorX-e)*this.pixelRatio,i[4]=A;const n=i[24];p=(t.anchorY-n)*this.pixelRatio,i[5]=p,z=I.height,i[6]=z,J=I.width,i[13]=J}let tt,et,it,nt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],nt=i[18]):(et=ql,it=!1,nt=!1),X&&R?W+=T:X||R||(W-=T);let rt=0;for(;wi)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const r=[];for(let t=0,e=n.length;t0){if(!s||"Image"!==g&&"Text"!==g||s.includes(t)){const i=(u[a]-3)/4,s=n-i%o,l=n-(i/o|0),h=r(t,e,s*s+l*l);if(h)return h}h.clearRect(0,0,o,o);break}}const A=Object.keys(this.executorsByZIndex_).map(Number);let p,f,m,_,y;for(A.sort(As),p=A.length-1;p>=0;--p){const t=A[p].toString();for(m=this.executorsByZIndex_[t],f=yy.length-1;f>=0;--f)if(g=yy[f],_=m[g],void 0!==_&&(y=_.executeHitDetection(h,a,i,d,c),y))return y}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],r=e[2],s=e[3],o=[i,n,i,s,r,s,r,n];return pa(o,0,8,2,t,o),o}isEmpty(){return ws(this.executorsByZIndex_)}execute(t,e,i,n,r,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let l,h,c,u,g,d;for(a.sort(As),this.maxExtent_&&(t.save(),this.clip(t,i)),s=s||yy,o&&a.reverse(),l=0,h=a.length;l{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];_o(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,r=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*Cy,h=t[1]*Cy;a.push(this.getRenderTransform(e,i,n,Cy,l,h,0).slice());const c=o.getSource(),u=r.getExtent();if(c.getWrapX()&&r.canWrapX()&&!D(u,s)){let t=s[0];const r=at(u);let o,c=0;for(;tu[2];)++c,o=r*c,a.push(this.getRenderTransform(e,i,n,Cy,l,h,o).slice()),t-=r}this.hitDetectionImageData_=vy(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,n)}e(xy(t,this.renderedFeatures_,this.hitDetectionImageData_))}))}forEachFeatureAtCoordinate(t,e,i,n,r){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=Xs(t),o=l[s];if(o){if(!0!==o&&ic=n.forEachFeatureAtCoordinate(t,s,o,i,h,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Zo],r=t.viewHints[$o],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&n||!o&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,h=l.projection,c=l.resolution,u=t.pixelRatio,g=e.getRevision(),d=e.getRenderBuffer();let A=e.getRenderOrder();void 0===A&&(A=$f);const p=l.center.slice(),f=R(a,d*c),m=f.slice(),_=[f.slice()],y=h.getExtent();if(i.getWrapX()&&h.canWrapX()&&!D(y,t.extent)){const t=at(y),e=Math.max(at(f)/2,t);f[0]=y[0]-e,f[2]=y[2]+e,kt(p,h);const i=gt(_[0],h);i[0]y[0]&&i[2]>y[2]&&_.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==g&&this.renderedRenderOrder_==A&&D(this.wrappedRenderedExtent_,f))return ys(this.renderedExtent_,m)||(this.hitDetectionImageData_=null,this.renderedExtent_=m),this.renderedCenter_=p,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const I=new ay(em(c,u),f,c,u);let E;this.getLayer().getDeclutter()&&(E=new ay(em(c,u),f,c,u));const C=Ae();let v;if(C){for(let t=0,e=_.length;t{let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,x,i,I,v,E);w=w&&!e}},b=me(f,h),B=i.getFeaturesInExtent(b);A&&B.sort(A);for(let t=0,e=B.length;t{const i=e.get("features");let n;return qB(i)||(n=i.find((e=>e===t))),n}))}animate(t){const e=t,i=this.get("animationDuration");if(!i)return;if(this.animation_.resolution!==e.frameState.viewState.resolution&&this.sourceChanged){const t=e.frameState.viewState.resolution,i=e.frameState.extent;this.animation_.reverse=this.animation_.resolution>=t,this.prepareAnimation_(i,e.frameState.viewState.resolution),e.frameState.time=this.animation_.start}const n=this.animation_.clustersFrom.length;if(n>0&&n<=1e3&&this.animation_.start){const t=sm(e);let n=(e.frameState.time-this.animation_.start)/i;n>1&&(this.animation_.start=!1,n=1),n=this.get("animationMethod")(n),e.context.save(),e.context.globalAlpha=this.getOpacity(),this.animation_.clustersFrom.forEach(((i,r)=>{const s=i.getGeometry().getCoordinates(),o=this.animation_.clustersTo[r].getGeometry().getCoordinates();this.animation_.reverse?(s[0]=o[0]+n*(s[0]-o[0]),s[1]=o[1]+n*(s[1]-o[1])):(s[0]+=n*(o[0]-s[0]),s[1]+=n*(o[1]-s[1]));const a=this.getStyle()(i,e.frameState.viewState.resolution),l=new qa(s);qB(a)||a.forEach((e=>{const i=e.getImage();qB(i)||(null==i.getOrigin()&&(i.origin_=[]),null==i.getAnchor()&&(i.normalizedAnchor_=[]),null==i.getSize()&&(i.size_=[])),t.setStyle(e),t.drawGeometry(l)}))})),e.context.restore(),e.frameState.animate=!0,e.context.save(),e.context.beginPath(),e.context.rect(0,0,0,0),e.context.clip(),this.clip_=!0}else this.animation_.clustersFrom.length=0,this.animation_.clustersTo.length=0,this.animation_.start=!1}prepareAnimation_(t,e){this.animation_.clustersFrom=[],this.animation_.clustersTo=[];const i=R(t,100*e),n=this.oldCluster_.getFeaturesInExtent(i),r=this.getSource().getFeaturesInExtent(i),s=this.animation_.reverse?r:n,o=this.animation_.reverse?n:r;s.forEach((t=>{const e=t.get("features");if(!qB(e)){const i=by.getClusterForFeature(e[0],o);qB(i)||!1===i||(this.animation_.clustersFrom.push(t),this.animation_.clustersTo.push(i))}})),this.animation_.resolution=e,this.sourceChanged=!1,this.animation_.start=(new Date).getTime()}postanimate(t){this.clip_&&(t.context.restore(),this.clip_=!1)}setStyle(t){super.setStyle(this.styleCluster_)}}const By=by,Ly="select";class My extends us{constructor(t,e,i,n){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=n}}const Ty={};class Ry extends Dh{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:Xh,this.addCondition_=t.addCondition?t.addCondition:Hh,this.removeCondition_=t.removeCondition?t.removeCondition:Hh,this.toggleCondition_=t.toggleCondition?t.toggleCondition:Jh,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:Is,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=Tm();return _s(t.Polygon,t.LineString),_s(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new eo,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=Is;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[Xs(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[Xs(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(Js,this.boundAddFeature_),this.features_.addEventListener(Zs,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(Js,this.boundAddFeature_),this.features_.removeEventListener(Zs,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof Sy&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=Xs(t);e in Ty||(Ty[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const n=e[i];if(n!==this&&n instanceof Ry&&n.getStyle()&&-1!==n.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(n.getStyle())}const i=Xs(t);t.setStyle(Ty[i]),delete Ty[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[Xs(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),n=this.toggleCondition_(t),r=!e&&!i&&!n,s=t.map,o=this.getFeatures(),a=[],l=[];if(r){xs(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,((t,e)=>{if(t instanceof _d&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,((t,r)=>{if(t instanceof _d&&this.filter_(t,r))return!e&&!n||o.getArray().includes(t)?(i||n)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,r),l.push(t)),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new My(Ly,l,a,t)),!0}}const Ny=Ry;const Py=class extends Ny{constructor(t={}){const e=t,i=new Sy({source:new kf({features:new eo,useSpatialIndex:!0}),name:"Cluster overlay",updateWhileAnimating:!0,updateWhileInteracting:!0,displayInLayerSwitcher:!1,style:e.featureStyle});t.layers.push(i),e.filter=(t,e)=>!(!e&&t.get("selectclusterlink")),super(e),this.map=e.map,this.pointRadius=e.pointRadius||12,this.circleMaxObjects=e.circleMaxObjects||10,this.maxObjects=e.maxObjects||60,this.spiral=!1!==e.spiral,this.animate=e.animate,this.animationDuration=e.animationDuration||500,this.selectCluster_=!1!==e.selectCluster,this.maxFeaturesToSelect=e.maxFeaturesToSelect,this.facadeLayer_=e.fLayer,this.style_=e.style,this.filter_=e.filter,this.overlayLayer_=i,this.originalHandleEvent=this.handleEvent,this.on("select",this.selectCluster.bind(this),this)}setMap(t){this.getMap()&&(this.getMap().getView()&&this.getMap().getView().un("change:resolution",this.clear.bind(this)),this.getMap().removeLayer(this.overlayLayer_)),Ny.prototype.setMap.call(this,t),this.overlayLayer_.setMap(t),t&&t.getView()&&t.getView().on("change:resolution",this.clear.bind(this)),this.handleEvent=t=>(this.originalHandleEvent.apply(this,[t]),!0)}clear(){this.getFeatures().clear(),this.overlayLayer_.getSource().clear()}getLayer(){return this.overlayLayer_}refreshViewEvents(){this.getMap()&&this.getMap().getView()&&this.getMap().getView().on("change:resolution",this.clear.bind(this))}selectCluster(t){if(!t.selected.length)return void this.clear();const e=t.selected[0];if(e.get("selectclusterfeature"))return;const i=e.get("features");if(!i||1===i.length)return;if((!i||i.length>this.maxFeaturesToSelect)&&this.facadeLayer_.getImpl().getNumZoomLevels()-this.map.getZoom()!=1){const t=qd.getFeaturesExtent(i,this.map.getProjection().code);return void this.map.setBbox(t)}this.selectCluster_||this.getFeatures().clear();const n=e.getGeometry().getCoordinates(),r=this.getMap().getView().getResolution(),s=r*this.pointRadius*(.5+i.length/4);!this.spiral||i.length<=this.circleMaxObjects?(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInCircle_(i,r,s,n)):(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInSpiral_(i,r,n)),this.animate&&this.animateCluster_(n)}drawFeaturesAndLinsInCircle_(t,e,i,n){const r=Math.min(t.length,this.circleMaxObjects);for(let s=0;s{r.set(e,t.get(e))}));let s=t.getStyle();s||(s=this.facadeLayer_.getStyle().getImpl().oldOLLayer.getStyle());const o=s(t,e),a=o.map?o.map((t=>t.clone())):[o.clone()];r.setId(t.getId()),r.setStyle(a),r.set("features",[t]);const l=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new qa(n):t.getGeometry(),h=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new wd([i,n]):new wd([i,qd.getCentroid(t.getGeometry())]);r.set("geometry",l),this.overlayLayer_.getSource().addFeature(r);const c=new _d({selectclusterlink:!0,geometry:h});this.overlayLayer_.getSource().addFeature(c)}animateCluster_(t,e){this.listenerKey_&&(this.overlayLayer_.setVisible(!0),zs(this.listenerKey_));const i=this.overlayLayer_.getSource().getFeatures();if(!i.length)return;this.overlayLayer_.setVisible(!1);const n=this.animationDuration||500,r=(new Date).getTime();this.listenerKey_=this.facadeLayer_.getImpl().getOLLayer().on(["postrender","postcompose"],(e=>{const s=sm(e),o=this.getMap().getView().getResolution(),a=ua((e.frameState.time-r)/n);for(let n=0;nt.clone()));for(let e=0;et.clone())):[g.clone()];for(let t=0;t1)return zs(this.listenerKey_),this.overlayLayer_.setVisible(!0),void this.overlayLayer_.changed();e.frameState.animate=!0}}),this)}};class Fy extends Nm{constructor(t={}){super(t)}clone(){let t=this.getGeometry();return t&&t.clone&&(t=t.clone()),new Fy({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}}const Dy=Fy,Oy=(t,e,i)=>(t[0]-i[0])*(e[1]-i[1])-(t[1]-i[1])*(e[0]-i[0])<=0,Qy=t=>{t.sort(((t,e)=>t[0]===e[0]?t[1]-e[1]:t[0]-e[0]));const e=[];for(let i=0;i=2&&Oy(e[e.length-2],e[e.length-1],t[i]);)e.pop();e.push(t[i])}const i=[];for(let e=t.length-1;e>=0;e-=1){for(;i.length>=2&&Oy(i[i.length-2],i[i.length-1],t[e]);)i.pop();i.push(t[e])}return i.pop(),e.pop(),e.concat(i)};const ky=class extends cm{constructor(t,e){super({}),this.convexHullLayer_=null,this.oldOLLayer_=null,this.optionsVendor_=e,this.options_=t,this.clusterLayer_=null,this.selectClusterInteraction_=null,this.hoverInteraction_=null}applyToLayer(t,e){this.layer_=t,this.options_=this.updateLastRange_(),qB(this.selectClusterInteraction_)||this.selectClusterInteraction_.clear(),this.updateCanvas();const i=t.getFeatures();i.length>0?this.clusterize_(i):this.layer_.on(su,this.clusterize_.bind(this),this)}get selectClusterInteraction(){return this.selectClusterInteraction_}clusterize_(e){const i=e.map((t=>t.getImpl().getOLFeature()));this.clusterLayer_=new By({name:"Cluster",source:new Gf({distance:this.options_.distance,geometryFunction:t=>new qa($(t.getGeometry().getExtent())),source:new kf({features:i})}),animationDuration:this.optionsVendor_.animationDuration,style:this.clusterStyleFn_.bind(this),animationMethod:t[this.optionsVendor_.animationMethod]}),!1===this.options_.animated&&this.clusterLayer_.set("animationDuration",void 0),this.clusterLayer_.setZIndex(99999);const n=this.layer_.getImpl().getOLLayer();n instanceof By||(this.oldOLLayer_=n),this.clusterLayer_.setMaxResolution(this.oldOLLayer_.getMaxResolution()),this.clusterLayer_.setMinResolution(this.oldOLLayer_.getMinResolution()),this.layer_.getImpl().setOLLayer(this.clusterLayer_),qB(this.options_.ranges)&&(this.options_.ranges=this.getDefaultRanges_()),!1!==this.options_.hoverInteraction&&this.addCoverInteraction_(),!1!==this.options_.selectInteraction&&this.addSelectInteraction_()}setRanges(t){qB(t)?this.options_.ranges=this.getDefaultRanges_():this.options_.ranges=t}updateLastRange_(){const t=_L({},this.options_);if(!qB(this.options_)&&!qB(this.options_.ranges)){let e=t.ranges;if(e.length>0){e=e.sort(((t,e)=>t.min-e.min));const i=e.pop();if(qB(i.max)){const t=this.layer_.getFeatures().length;i.max=t}t.ranges.push(i)}}return t}static updateRangeImpl(t,e,i,n,r){const s=r.getOptions().ranges.find((i=>i.min===t&&i.max===e))||!1;return s&&(s.style=i),s}setAnimated(t,e,i){return i.getOptions().animated=t,!1===t?this.clusterLayer_.set("animationDuration",void 0):this.clusterLayer_.set("animationDuration",this.optionsVendor_.animationDuration),this}addSelectInteraction(){this.addSelectInteraction_()}addSelectInteraction_(){const t=this.layer_.getImpl().getMap();this.selectClusterInteraction_=new Py({fLayer:this.layer_,map:t,maxFeaturesToSelect:this.options_.maxFeaturesToSelect,pointRadius:this.optionsVendor_.distanceSelectFeatures,animate:!0,layers:[this.clusterLayer_]}),this.selectClusterInteraction_.on("select",this.selectClusterFeature_.bind(this),this),t.getMapImpl().addInteraction(this.selectClusterInteraction_),t.getMapImpl().on("change:view",(t=>this.selectClusterInteraction_.refreshViewEvents(t)))}removeSelectInteraction(){this.removeSelectInteraction_()}removeSelectInteraction_(){this.layer_.getImpl().getMap().getMapImpl().removeInteraction(this.selectClusterInteraction_)}hoverFeatureFn_(t,e){if(!qB(t)){let e=[];t.forEach((t=>{t instanceof OL?e=e.concat(t.getAttribute("features")):e.push(t)}));const i=e.map((t=>t.getImpl().getOLFeature().getGeometry().getCoordinates())),n=Qy(i);if(n.length>2){const t=new _d(new sl([n])),e=PL.olFeature2Facade(t);qB(this.convexHullLayer_)?(this.convexHullLayer_=new _I({name:`cluster_cover_${this.layer_.name}`,extract:!1},{displayInLayerSwitcher:!1,style:new e_({polygon:this.optionsVendor_.convexHullStyle})}),this.convexHullLayer_.addFeatures(e),this.layer_.getImpl().getMap().addLayers(this.convexHullLayer_),this.layer_.getImpl().getMap().getMapImpl().getView().on("change:resolution",this.clearConvexHull.bind(this),this),this.convexHullLayer_.setStyle(new e_({polygon:this.optionsVendor_.convexHullStyle})),this.convexHullLayer_.setZIndex(99990)):(this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures()),this.convexHullLayer_.addFeatures(e))}}}leaveFeatureFn_(t,e){qB(this.convexHullLayer_)||this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures())}addCoverInteraction_(){this.hoverKey_=this.layer_.on(nu,this.hoverFeatureFn_.bind(this)),this.leaveKey_=this.layer_.on(ru,this.leaveFeatureFn_.bind(this))}removeCoverInteraction_(){this.layer_.unByKey(nu,this.hoverKey_),this.layer_.unByKey(ru,this.leaveKey_)}clusterStyleFn_(t,e,i){let n;const r=t.get("features");if(!r)return new Dy;const s=r.length,o=this.options_.ranges.find((t=>t.min<=s&&t.max>=s));if(qB(o)){if(1===s){let t=r[0].getStyle();t||(t=this.oldOLLayer_.getStyle()),n=t(r[0],e),n[0].setGeometry(r[0].getGeometry())}}else{let r=o.style.clone();if(r instanceof e_||(r=new e_({point:r.getOptions()})),i)r.set("point.fill.opacity",.33);else if(this.options_.displayAmount){r.set("point.label",this.options_.label);let t=r.get("point.label.color");if(qB(t)){const e=r.get("point.fill.color");t=qB(e)?"#000":mL(e),r.set("point.label.color",t)}}n=r.getImpl().olStyleFn(t,e)}return n}getDefaultRanges_(){const t=this.layer_.getFeatures().length;let e=Math.floor(t/3);e=Math.max(e,3);const i=[{min:2,max:e,style:new e_({point:Vy.RANGE_1_DEFAULT})},{min:e,max:2*e,style:new e_({point:Vy.RANGE_2_DEFAULT})},{min:2*e,max:t+1,style:new e_({point:Vy.RANGE_3_DEFAULT})}];return this.options_.ranges=i,i}selectClusterFeature_(t){this.clearConvexHull()}unapply(){qB(this.clusterLayer_)?qB(this.layer_)||this.layer_.un(su,this.clusterize_.bind(this),this):(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.oldOLLayer_.setMaxResolution(this.clusterLayer_.getMaxResolution()),this.oldOLLayer_.setMinResolution(this.clusterLayer_.getMinResolution()),this.removeCoverInteraction_(),this.removeSelectInteraction_(),this.clearConvexHull(),this.deactivateChangeResolutionEvent(),this.layer_.redraw(),this.deactivateChangeEvent())}clearConvexHull(){null!==this.convexHullLayer_&&(this.layer_.getImpl().getMap().removeLayers(this.convexHullLayer_),this.convexHullLayer_=null)}updateCanvas(){}activateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource(),e=Gf.prototype.refresh;t.getSource().on("change",e)}}deactivateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource();zs({bindTo:void 0,callOnce:!1,listener:Gf.prototype.refresh,target:t.getSource(),type:"change"})}}deactivateChangeResolutionEvent(){if(!qB(this.layer_)&&!qB(this.layer_.getImpl())){const t=this.layer_.getImpl().getMap();if(!qB(t)&&!qB(t.getMapImpl())){const e=t.getMapImpl().getView();zs({type:"change:resolution",bindTo:void 0,listener:this.clearConvexHull,target:e,callOnce:!1})}}}deactivateTemporarilyChangeEvent(t,e){this.deactivateChangeEvent(),VB(t)&&(null==e?t():t(...e))}get oldOLLayer(){return this.oldOLLayer_}};class Gy extends Jm{constructor(t,e){super(t,e),this.styles_=[]}apply(t){this.layer_=t,qB(t)||this.updateInternal_(t)}add(t){let e=t;const i=this.layer_;return this.unapplyInternal(this.layer_),UB(e)||(e=[e]),e=e.filter((t=>t.constructor!==this.constructor)),e.forEach((t=>{this.styles_=this.styles_.filter((e=>e.constructor!==t.constructor))})),this.styles_=this.styles_.concat(e),qB(i)||this.updateInternal_(i),this}remove(t){let e=t;const i=this.layer_;UB(e)||(e=[e]),qB(this.layer_)||this.unapplyInternal(this.layer_),this.styles_=this.styles_.filter((t=>!e.includes(t))),i.setStyle(this.oldStyle_,!0),i.setStyle(this)}getStyles(){return this.styles_}getOldStyle(){return this.oldStyle_}clear(){this.remove(this.styles_)}unapplyInternal(t){this.styles_.concat(this).sort(((t,e)=>IL(e,t))).forEach((e=>{e instanceof Gy&&e.unapplySoft(t)}))}unapplySoft(t){}unapply(t){this.unapplyInternal(t),this.layer_=null}updateInternal_(t){this.styles_.concat(this).sort(((t,e)=>IL(t,e))).forEach((e=>{e instanceof Gy?e.applyInternal(t):e instanceof Jm&&e.apply(t,!0)}))}}const Uy=Gy;class qy extends Uy{constructor(t={},e={}){super(t,new ky(t,e)),_L(t,qy.DEFAULT),_L(e,qy.DEFAULT_VENDOR),this.optsVendor_=e,this.oldStyle_=null}apply(t){super.apply(t);const e=t.getStyle();this.oldStyle_=e instanceof qy?e.getOldStyle():e}unapplySoft(t){this.getImpl().unapply()}add(t){return qB(this.layer_)||this.unapplySoft(this.layer_),super.add(t)}applyInternal(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}getOldStyle(){return this.oldStyle_}getRanges(){return this.options_.ranges}getOptions(){return this.options_}setRanges(t){return this.getImpl().ranges=t,this.unapply(this.layer_),this.layer_.style=this,this}getRange(t,e){return this.options_.ranges.find((i=>i.min===t&&i.max===e))}updateRange(t,e,i){return ky.updateRangeImpl(t,e,i,this.layer_,this),this.unapply(this.layer_),this.layer_.style=this,this}setAnimated(t){return this.getImpl().setAnimated(t,this.layer_,this)}isAnimated(){return this.options_.animated}toImage(){let t;return t=this.oldStyle_ instanceof Jm?this.oldStyle_.toImage():super.toImage(),t}refresh(){if(!qB(this.layer_)){const t=this.layer_;this.unapply(this.layer_),this.apply(t),this.updateCanvas()}}get ORDER(){return 4}addSelectInteraction(){this.getImpl().addSelectInteraction()}removeSelectInteraction(){this.getImpl().removeSelectInteraction()}toJSON(){let t=_L({},this.getOptions());t.ranges=this.getRanges().map((t=>{const e=_L({},t);return e.style=t.style.serialize(),e})),t=CL(t);let e=_L({},this.optsVendor_);e=CL(e);return{parameters:[t,e,this.getStyles().map((t=>t.serialize()))],deserializedMethod:"M.style.Cluster.deserialize"}}static deserialize([t,e,i]){let n=t;n.ranges.forEach((t=>{t.style=Jm.deserialize(t.style)})),n=vL(t);const r=vL(e),s=new Function(["options","optsVendor"],"return new M.style.Cluster(options, optsVendor)")(n,r),o=i.map((t=>Jm.deserialize(t)));return s.add(o),s}}qy.DEFAULT={ranges:[],hoverInteraction:!0,displayAmount:!0,selectInteraction:!0,distance:60,animated:!0,maxFeaturesToSelect:15,label:{text:t=>{let e;const i=t.getAttribute("features");return i.length&&(e=i.length.toString()),e},color:"#fff",font:"bold 15px Arial",baseline:"middle",align:"center"}},qy.DEFAULT_VENDOR={animationDuration:250,animationMethod:"linear",distanceSelectFeatures:15,convexHullStyle:{fill:{color:"#fff",opacity:.25},stroke:{color:"#7b98bc"}}},qy.RANGE_1_DEFAULT={fill:{color:"#81c89a"},stroke:{color:"#6eb988",width:3},radius:15},qy.RANGE_2_DEFAULT={fill:{color:"#85b9d2"},stroke:{color:"#6da4be",width:3},radius:20},qy.RANGE_3_DEFAULT={fill:{color:"#938fcf"},stroke:{color:"#827ec5",width:3},radius:25};const Vy=qy,zy="element",Yy="map",jy="offset",Hy="position",Xy="positioning";const Wy=class extends Ks{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(zy,this.handleElementChanged),this.addChangeListener(Yy,this.handleMapChanged),this.addChangeListener(jy,this.handleOffsetChanged),this.addChangeListener(Hy,this.handlePositionChanged),this.addChangeListener(Xy,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(zy)}getId(){return this.id}getMap(){return this.get(Yy)||null}getOffset(){return this.get(jy)}getPosition(){return this.get(Hy)}getPositioning(){return this.get(Xy)}handleElementChanged(){Nl(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(Rl(this.element),qs(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=Gs(t,gh,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(zy,t)}setMap(t){this.set(Yy,t)}setOffset(t){this.set(jy,t)}setPosition(t){this.set(Hy,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(Hy))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),r=this.getRect(n,[Ll(n),Ml(n)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!D(i,r)){const n=r[0]-i[0],o=i[2]-r[2],a=r[1]-i[1],l=i[3]-r[3],h=[0,0];if(n<0?h[0]=n-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const r=[n[0]+h[0],n[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(r),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,r=i.top+window.pageYOffset;return[n,r,n+e[0],r+e[1]]}setPositioning(t){this.set(Xy,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),r=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==r||"center-right"==r||"top-right"==r?s="-100%":"bottom-center"!=r&&"center-center"!=r&&"top-center"!=r||(s="-50%"),"bottom-left"==r||"bottom-center"==r||"bottom-right"==r?o="-100%":"center-left"!=r&&"center-center"!=r&&"center-right"!=r||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+n[0])+"px"}, ${Math.round(t[1]+n[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}};class Ky{static listen(){Ky.WIDTH=window.innerWidth,Ky.HEIGHT=window.innerHeight,window.addEventListener("resize",(t=>{Ky.WIDTH=t.target.innerWidth,Ky.HEIGHT=t.target.innerHeight}))}}Ky.WIDTH=window.innerWidth,Ky.HEIGHT=window.innerHeight,Ky.listen();const Jy=Ky;const Zy=class extends Wy{constructor(t={}){super({}),this.panMapIfOutOfView=t.panMapIfOutOfView,void 0===this.panMapIfOutOfView&&(this.panMapIfOutOfView=!0),this.ani_opts=t.ani_opts,void 0===this.ani_opts&&(this.ani_opts={duration:250}),this.facadeMap_=null,this.cachedAniPixel_=null}addTo(t,e){this.facadeMap_=t,this.container=e,this.content=this.getContentFromContainer(e),uL(this.content),this.setElement(this.container),t.getMapImpl().addOverlay(this)}show(t,e){return this.setPosition(t),this.panMapIfOutOfView&&this.panIntoView_(t),this.content.scrollTop=0,VB(e)&&e(),this}centerByStatus(t,e){const i=this.getMap().getView().getResolution(),n=[].concat(e);if(t===sI.status.COLLAPSED)n[1]-=.1*Jy.HEIGHT*i;else{if(t!==sI.status.DEFAULT)return;n[1]-=.275*Jy.HEIGHT*i}const r=this.facadeMap_.getFeatureCenter();this.facadeMap_.setCenter({x:n[0],y:n[1]}),qB(r)||this.facadeMap_.drawFeatures([r])}getContentFromContainer(t){return t.querySelector("div.m-body")}panIntoView_(t){return this.panIntoSynchronizedAnim_().then((()=>{if(this.isAnimating_=!0,Jy.WIDTH>768){const e=30,i=this.element.querySelector(".m-popup"),n=i.clientWidth+20,r=i.clientHeight+20+e,s=this.getMap().getSize(),o=this.getMap().getView().getCenter(),a=20,l=60,h=n-l,c=this.getOffset(),u=this.getMap().getPixelFromCoordinate(t);if(!qB(u)){const t=u[0]-l,e=s[0]-(u[0]+h),i=u[1]-(r+c[1]),n=s[1]-(u[1]+a)-c[1],g=this.getMap().getPixelFromCoordinate(o),d=g.slice();e<0?d[0]-=e:t<0&&(d[0]+=t),i<0?d[1]+=i:n<0&&(d[1]-=n),!qB(this.ani_opts)&&qB(this.ani_opts.source)&&(this.ani_opts.source=o,this.getMap().getView().animate(this.ani_opts)),d[0]===g[0]&&d[1]===g[1]||this.getMap().getView().setCenter(this.getMap().getCoordinateFromPixel(d))}}this.isAnimating_=!1})),this.getMap().getView().getCenter()}panIntoSynchronizedAnim_(){return new Promise(((t,e)=>{if(!0===this.isAnimating_){let e=300;qB(this.ani_opts)||(e=this.ani_opts.duration),setTimeout(t,e)}else t()}))}hide(t){this.facadeMap_.removePopup(t)}setContainer(t){this.setElement(t),this.content=this.getContentFromContainer(t),uL(this.content)}getContent(){return this.content}};var $y=i(810),tI=i.n($y);let eI=0;const iI=(t,e)=>({android:t=>`geo:${t[1]}},${t[0]}?q=${t[1]},${t[0]}`,ios:t=>`maps://?ll=${t[1]},${t[0]}`,unknown:t=>`http://maps.google.com?q=${t[1]},${t[0]}`}[t](e));class nI{constructor(t={}){this.icon=t.icon,this.title=t.title,this.content=t.content,this.listeners=t.listeners||[]}}class rI extends Qc{constructor(t){super(new Zy(t)),this.coord_=null,this.tabs_=[],this.element_=null,this.status_=rI.status.COLLAPSED,eI+=1,this.id_="m-popup-".concat(eI)}getId(){return this.id_}getTabs(){return this.tabs_}removeTab(t){const e=[];let i=null;this.tabs_.forEach((n=>{n.content!==t.content?e.push(n):i=n})),this.tabs_=this.tabs_.filter((e=>e.content!==t.content)),this.fire(yu,[i]),this.update()}addTab(t){let e=t;e instanceof nI||(e=new nI(t),this.fire(_u,[e])),this.tabs_.push(e),this.update()}addTo(t,e){if(this.map_=t,qB(this.element_)){const i=RL(e,this.map_.getProjection().code,"EPSG:4326"),n=TL(),r=bu(tI(),{jsonp:!0,vars:{id:this.id_,tabs:this.tabs_,options:rI.options,url:iI(n,i)}});this.tabs_.length>0&&(this.element_=r,this.addEvents(r),this.getImpl().addTo(t,r),this.show(e))}else this.getImpl().addTo(t,this.element_),this.show(e);this.fire(fu,[this]),t.fire(fu,[this])}update(){if(!qB(this.map_)){const t=RL(this.coord_,this.map_.getProjection().code,"EPSG:4326"),e=TL(),i=bu(tI(),{jsonp:!0,vars:{tabs:this.tabs_,options:rI.options,url:iI(e,t)}});this.tabs_.length>0&&(this.element_=i,this.addEventTabs(this.tabs_[0],i),this.addEvents(i),this.getImpl().setContainer(i),this.show(this.coord_))}}show(t){this.coord_=t,this.getImpl().show(this.coord_,(()=>{this.fire(Zc)}))}hide(t){qB(t)||t.preventDefault(),this.getImpl().hide(this)}switchTab(t){if(this.tabs_.length>t){const e=this.tabs_[t];this.setContent_(e.content),this.addEventTabs(e,this.getContent()),this.show(this.coord_)}}addEventTabs(t,e){const{listeners:i}=t;i.forEach((t=>{!0===t.all?e.querySelectorAll(t.selector).forEach((e=>{e.addEventListener(t.type,(e=>t.callback(e)))})):e.querySelector(t.selector).addEventListener(t.type,(e=>t.callback(e)))}))}setContent_(t){this.getContent().innerHTML=t}getContent(){return this.getImpl().getContent()}addEvents(t){const e=t;let i;const n=e.querySelectorAll("div.m-tab");Array.prototype.forEach.call(n,(t=>{t.addEventListener("click",(e=>{e.preventDefault();const r=e.clientY;if("click"===e.type||Math.abs(i-r)<5){Array.prototype.forEach.call(n,(t=>{t.classList.remove("m-activated")})),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}})),t.addEventListener("touchend",(e=>{e.preventDefault();const r=e.clientY;if("touchend"===e.type||Math.abs(i-r)<5){Array.prototype.forEach.call(n,(t=>{t.classList.remove("m-activated")})),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}}))}));const r=e.querySelector("a.m-popup-closer");r.addEventListener("click",this.hide.bind(this),!1),r.addEventListener("touchend",this.hide.bind(this),!1);let s=e.querySelector("div.m-tabs");if(qB(s)&&(s=e.querySelector("div.m-content > div.m-header")),!qB(s)){let t;s.addEventListener("touchstart",(n=>{n.preventDefault(),i=n.touches[0].clientY,this.status_===rI.status.COLLAPSED?t=.9*Jy.HEIGHT:this.status_===rI.status.DEFAULT?t=.45*Jy.HEIGHT:this.status_===rI.status.FULL&&(t=0),e.classList.add("m-no-animation")}),!1),s.addEventListener("touchmove",(n=>{n.preventDefault(),this.touchY=n.touches[0].clientY;const r=this.touchY-i;e.style.top=`${t+r}px`}),!1),s.addEventListener("touchend",(t=>{t.preventDefault(),this.manageCollapsiblePopup_(i,this.touchY)}),!1);const n=window.matchMedia("(max-width: 768px)");setTimeout((()=>this.manageTransform(n,e)),10),n.addEventListener("change",(t=>{this.manageTransform(t,e)})),s.addEventListener("mouseup",(t=>{t.preventDefault(),this.tabs_.length<=1&&(this.status_===rI.status.COLLAPSED?this.setStatus_(rI.status.DEFAULT):this.status_===rI.status.DEFAULT?this.setStatus_(rI.status.FULL):this.setStatus_(rI.status.COLLAPSED))}))}}setStatus_(t){t!==this.status_&&(this.element_.classList.remove(this.status_),this.status_=t,this.element_.classList.add(this.status_),this.element_.style.top="",this.element_.classList.remove("m-no-animation"),Jy.WIDTH<=M.config.MOBILE_WIDTH&&this.getImpl().centerByStatus(t,this.coord_))}manageTransform(t,e){e&&e.parentElement&&(t.matches?e.parentElement.classList.add("unsetTransform"):e.parentElement.classList.remove("unsetTransform"))}manageCollapsiblePopup_(t,e){const i=100*e/Jy.HEIGHT;100*Math.abs(t-e)/Jy.HEIGHT>10?this.status_===rI.status.COLLAPSED?i<45?this.setStatus_(rI.status.FULL):i<85?this.setStatus_(rI.status.DEFAULT):this.setStatus_(rI.status.COLLAPSED):this.status_===rI.status.DEFAULT?i>45?this.setStatus_(rI.status.COLLAPSED):i<45?this.setStatus_(rI.status.FULL):this.setStatus_(rI.status.DEFAULT):this.status_===rI.status.FULL&&(i>45?this.setStatus_(rI.status.COLLAPSED):i>0?this.setStatus_(rI.status.DEFAULT):this.setStatus_(rI.status.FULL)):this.setStatus_(this.status_)}getCoordinate(){return this.coord_}setCoordinate(t){this.coord_=t,qB(this.element_)||this.getImpl().show(t)}destroy(){this.tabs_.length=0,this.coord_=null,this.fire(tu)}}rI.status={},rI.status.COLLAPSED="m-collapsed",rI.status.DEFAULT="m-default",rI.status.FULL="m-full",rI.options={takeMeThere:!1,textMode:!0,msg:"Llévame allí"};const sI=rI;var oI=i(130),aI=i.n(oI);class lI extends Vd{constructor(t,e){super(t,e),this.facadeVector_=null,this.features_=[],this.postComposeEvtKey_=null,this.load_=!1,this.loaded_=!1}addTo(t){this.map=t,this.fire(kc),t.on(hu,this.setProjection_.bind(this),this),this.ol3Layer=new Sy(this.vendorOptions_),this.updateSource_(),this.opacity_&&this.setOpacity(this.opacity_),this.setVisible(this.visibility);this.map.getMapImpl().addLayer(this.ol3Layer)}updateSource_(){qB(this.vendorOptions_.source)&&(qB(this.ol3Layer.getSource())&&this.ol3Layer.setSource(new kf),this.redraw(),this.loaded_=!0,this.fire(su,[this.features_]))}inRange(){return!0}addFeatures(t,e,i=!0){!0===i?t.forEach((t=>{const e=this.features_.find((e=>e.equals(t)));qB(e)&&this.features_.push(t)})):this.features_.push(...t),e&&this.updateLayer_();const n=this.facadeVector_.getStyle();n instanceof Vy?(n.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),n.refresh()):this.redraw()}updateLayer_(){const t=this.facadeVector_.getStyle();if(!qB(t))if(t instanceof Jm)this.facadeVector_.setStyle(t);else if(t instanceof Vy){const t=this.facadeVector_.getStyle();t.unapply(this.facadeVector_),t.getOldStyle().apply(this.facadeVector_),t.apply(this.facadeVector_)}else t.apply(this.facadeVector_)}getFeatures(t,e){let i=this.features_;return t||(i=e.execute(i)),i}getFeatureById(t){return this.features_.filter((e=>e.getId()===t))[0]}removeFeatures(t){this.features_=this.features_.filter((e=>!t.includes(e)));const e=this.facadeVector_.getStyle();e instanceof Vy?(e.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),e.refresh()):this.redraw()}redraw(){const t=this.getOLLayer();if(!qB(t)){const e=this.facadeVector_.getStyle();let i=t.getSource();i instanceof Gf&&(i=i.getSource()),e instanceof Vy&&e.getImpl().deactivateChangeEvent();[...i.getFeatures()].forEach(i.removeFeature,i);const n=this.facadeVector_.getFeatures();i.addFeatures(n.map(PL.facade2OLFeature)),e instanceof Vy&&e.getImpl().activateChangeEvent()}}getFeaturesExtent(t,e){const i=this.getFeatures(t,e);let n=qd.getFeaturesExtent(i,this.map.getProjection().code);return null===n&&(n=this.map.getProjection().getExtent()),n}selectFeatures(t,e,i){const n=t[0];if(!(n instanceof OL||!0!==this.extract||(this.unselectFeatures(),qB(n)))){const r=n.getAttribute("vendor.mapea.click");if(VB(r))r(i,n);else{const i=bu(aI(),{vars:this.parseFeaturesForTemplate_(t),parseToHtml:!1}),n={icon:"g-cartografia-pin",title:this.name,content:i};let r=this.map.getPopup();qB(r)?(r=new sI,r.addTab(n),this.map.addPopup(r,e)):r.addTab(n)}}}unselectFeatures(){}setFacadeObj(t){this.facadeVector_=t}setProjection_(t,e){if(t.code!==e.code){const i=ee(t.code),n=ee(e.code),r=this.facadeVector_.getStyle();r instanceof Vy&&r.getImpl().deactivateChangeEvent(),this.facadeVector_.getFeatures().forEach((t=>t.getImpl().getOLFeature().getGeometry().transform(i,n))),r instanceof Vy&&r.getImpl().activateChangeEvent()}}parseFeaturesForTemplate_(t){const e={features:[]};return t.forEach((t=>{if(!(t instanceof OL)){const i=t.getAttributes(),n=Object.keys(i),r=[];n.forEach((t=>{let e=!0;qB(this.showAttributes_)?qB(this.hiddenAttributes_)||(e=!lL(this.hiddenAttributes_,t)):e=lL(this.showAttributes_,t),e&&r.push({key:oL(t),value:i[t]})}));const s={id:t.getId(),attributes:r};e.features.push(s)}})),e}equals(t){let e=!1;return t instanceof lI&&this.constructor===t.constructor&&(e=!0),e}refresh(){this.getOLLayer().getSource().clear()}isLoaded(){return this.loaded_}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}getFeaturesExtentPromise(t,e){return new Promise((i=>{const n=this.map.getProjection().code;if(!0===this.isLoaded()){const r=this.getFeatures(t,e),s=qd.getFeaturesExtent(r,n);i(s)}else this.requestFeatures_().then((t=>{const e=qd.getFeaturesExtent(t,n);i(e)}))}))}}const hI=lI;var cI=i(200),uI=i.n(cI);const gI=(t,e,i)=>{const n={message:t,title:e,severity:i},r=bu(uI(),{vars:n});(()=>{const t=document.querySelectorAll("div.m-dialog");Array.prototype.forEach.call(t,(t=>{t.parentElement.removeChild(t)}))})();const s=document.querySelector("div.m-mapea-container");r.querySelector("div.m-button > button").addEventListener("click",(t=>{var e;(e=r).parentElement.removeChild(e)})),s.appendChild(r)},dI=(t,e)=>{let i=e;return qB(i)&&(i=Cu("dialog").info),gI(t,i,"info")},AI=(t,e)=>{let i=e;return qB(i)&&(i=Cu("dialog").error),gI(t,i,"error")},pI=(t,e)=>{let i=e;return qB(i)&&(i=Cu("dialog").success),gI(t,i,"success")};const fI=class{getFunctionFilter(){}execute(t){}toCQL(){}};class mI extends _g{constructor(t={},e={},i={},n){const r=n||new hI(e,i);super(t,r),QB(hI)&&Oc(Cu("exception").vectorlayer_method),this.extract=t.extract,qB(this.extract)&&(this.extract=!0),this.style_=null,this.filter_=null,this.setStyle(e.style),r.on(su,(t=>this.fire(su,[t])))}get type(){return ku}set type(t){QB(t)||qB(t)||t===ku||Oc("El tipo de capa debe ser '".concat(ku).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){qB(t)?this.getImpl().extract=!0:YB(t)?this.getImpl().extract="true"===XB(t):this.getImpl().extract=t}addFeatures(t,e=!1,i=!0){let n=t;qB(n)||(UB(n)||(n=[n]),this.getImpl().addFeatures(n,e,i))}getFeatures(t){let e=t;return qB(this.getFilter())&&(e=!0),this.getImpl().getFeatures(e,this.filter_)}getFeatureById(t){let e=null;return qB(t)?AI(Cu("dialog").id_feature):e=this.getImpl().getFeatureById(t),e}removeFeatures(t){let e=t;UB(e)||(e=[e]),this.getImpl().removeFeatures(e)}clear(){this.removeFilter(),this.removeFeatures(this.getFeatures(!0))}refresh(){this.getImpl().refresh(!0),this.redraw()}redraw(){this.getImpl().redraw()}setFilter(t){if(qB(t)||t instanceof fI){this.filter_=t;const e=this.style_;e instanceof Vy&&e.getImpl().deactivateChangeEvent(),this.redraw(),e instanceof Vy&&(e.getImpl().activateChangeEvent(),e.refresh())}else AI(Cu("dialog").vector_filter)}getFilter(){return this.filter_}getFeaturesExtent(t){let e=t;return qB(this.getFilter())&&(e=!0),this.getImpl().getFeaturesExtent(e,this.filter_)}removeFilter(){this.setFilter(null)}equals(t){let e=!1;return t instanceof mI&&(e=this.name===t.name,e=e&&this.id===t.id),e}setStyle(t,e=!1,i=mI.DEFAULT_OPTIONS_STYLE){this.getImpl().isLoaded()?(qB(this.getStyle())&&this.applyStyle_(i,e),qB(t)||this.applyStyle_(t,e)):this.once(su,(()=>{qB(this.getStyle())&&this.applyStyle_(i,e),qB(t)||this.applyStyle_(t,e)}))}applyStyle_(t,e){let i=t;if(YB(i)?i=Jm.deserialize(i):i instanceof Jm||(i=new e_(i)),i instanceof Jm&&(!qB(this.style_)&&this.style_ instanceof Jm&&this.style_.unapply(this),i.apply(this,e),this.style_=i,this.fire(cu,[i,this])),!qB(this.getImpl().getMap())){const t=this.getImpl().getMap().getControls("layerswitcher")[0];qB(t)||t.render()}this.fire(cu,[i,this])}getStyle(){return this.style_}clearStyle(){this.setStyle(null),this.getFeatures().forEach((t=>t.clearStyle()))}getLegendURL(){let t=this.getImpl().getLegendURL();return-1!==t.indexOf(_g.LEGEND_DEFAULT)&&-1===t.indexOf(_g.LEGEND_ERROR)&&this.style_ instanceof Jm&&(t=this.style_ instanceof Vy&&this.style_.getStyles().length>0?this.style_.getStyles()[0].toImage():this.style_.toImage()),t}getGeometryType(){let t=null;if(!qB(this.getFeatures())){const e=this.getFeatures()[0];qB(e)||qB(e.getGeometry())||(t=e.getGeometry().type)}return t}getMaxExtent(){return this.getFeaturesExtent()}calculateMaxExtent(){return this.getImpl().getFeaturesExtentPromise(!0,this.filter_)}toGeoJSON(){const t=this.map_.getProjection().code,e=this.getFeatures().map((t=>t.getGeoJSON()));return{type:"FeatureCollection",features:Gd(e,t)}}}mI.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},mI.DEFAULT_OPTIONS_STYLE={point:{...mI.DEFAULT_PARAMS,radius:5},line:{...mI.DEFAULT_PARAMS},polygon:{...mI.DEFAULT_PARAMS}};const _I=mI;class yI extends um{toImage(t){let e=null;const i={fill:this.options_.fill,stroke:this.options_.stroke,icon:this.options_.icon};if(!0===bL(i))e=LL(t);else{if(qB(this.olStyleFn_))return null;let t=this.olStyleFn_()[1];if(t.getImage&&null!=t.getImage()&&t.getImage()instanceof qf){if(t.getImage()instanceof Qm){const i=t.getImage().getImage(1);null!=i&&i&&(e=i.toDataURL())}else if(t.getImage()instanceof Om){const i=t.getImage();if(!qB(i)&&(e=i.getSrc(),!e.startsWith(window.location.origin))){const t=aL([M.config.PROXY_URL,"/image"]);e=KB(t,{url:e})}}}else{t=this.olStyleFn_()[0],null!=t.getImage()&&null!=t.getImage().getStroke()&&(t.getImage().getStroke().getWidth()>yI.DEFAULT_WIDTH_POINT&&t.getImage().getStroke().setWidth(yI.DEFAULT_WIDTH_POINT),t.getImage().render());const i=t.getImage().getImage(1);null!=i&&(e=i.toDataURL())}}return e}updateFacadeOptions(t){this.olStyleFn_=i=>{let r=i;r instanceof _d||r instanceof Pd||(r=this);const s=new Dy({zIndex:um.getValue(t.zindex,r,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e}}),o=new Dy({zIndex:um.getValue(t.zindex,r,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e}});if(r instanceof _d){const t=t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e};s.setGeometry(t),o.setGeometry(t)}let l,h;if(!qB(t.fill)){const e=um.getValue(t.fill.color,r,this.layer_);let i=um.getValue(t.fill.opacity,r,this.layer_);i||0===i||(i=1),qB(e)||(l=new wm({color:a()(e).alpha(i).css()}))}if(!qB(t.stroke)){const e=um.getValue(t.stroke.color,r,this.layer_);if(!qB(e)){const{linedashoffset:i}=t.stroke;h=new bm({color:e,width:um.getValue(t.stroke.width,r,this.layer_),lineDash:um.getValue(t.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(i,r,this.layer_),lineCap:um.getValue(t.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.stroke.linejoin,r,this.layer_),miterLimit:um.getValue(t.stroke.miterlimit,r,this.layer_)})}}if(!qB(t.label)){const i=um.getValue(t.label.text,r,this.layer_),o=um.getValue(t.label.align,r,this.layer_),a=um.getValue(t.label.baseline,r,this.layer_),l=new Fm({font:um.getValue(t.label.font,r,this.layer_),rotateWithView:um.getValue(t.label.rotate,r,this.layer_),scale:um.getValue(t.label.scale,r,this.layer_),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(t.label.color||"#000000",r,this.layer_)}),textAlign:Object.values(e).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===i?void 0:String(i),rotation:um.getValue(t.label.rotation,r,this.layer_)});if(!qB(t.label.stroke)){const{miterlimit:e,linedashoffset:i}=t.label.stroke;l.setStroke(new bm({color:um.getValue(t.label.stroke.color,r,this.layer_),width:um.getValue(t.label.stroke.width,r,this.layer_),lineCap:um.getValue(t.label.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.label.stroke.linejoin,r,this.layer_),lineDash:um.getValue(t.label.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(i,r,this.layer_),miterLimit:um.getValue(e,r,this.layer_)}))}s.setText(l)}return s.setImage(new Gm({fill:l,stroke:h,radius:um.getValue(t.radius,r,this.layer_),snapToPixel:um.getValue(t.snapToPixel,r,this.layer_)})),qB(t.icon)||(qB(t.icon.src)?qB(t.icon.form)||o.setImage(new Qm({form:qB(um.getValue(t.icon.form,r,this.layer_))?"":um.getValue(t.icon.form,r,this.layer_).toLowerCase(),gradient:um.getValue(t.icon.gradient,r,this.layer_),glyph:um.getValue(t.icon.class,r,this.layer_),fontSize:um.getValue(t.icon.fontsize,r,this.layer_),radius:um.getValue(t.icon.radius,r,this.layer_),rotation:um.getValue(t.icon.rotation,r,this.layer_),rotateWithView:um.getValue(t.icon.rotate,r,this.layer_),offsetX:um.getValue(t.icon.offset?t.icon.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.icon.offset?t.icon.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",r,this.layer_)}),stroke:t.icon.color?new bm({color:um.getValue(t.icon.color,r,this.layer_),width:1}):void 0,anchor:um.getValue(t.icon.anchor,r,this.layer_),anchorXUnits:um.getValue(t.icon.anchorxunits,r,this.layer_),anchorYUnits:um.getValue(t.icon.anchoryunits,r,this.layer_),src:um.getValue(t.icon.src,r,this.layer_),opacity:um.getValue(t.icon.opacity,r,this.layer_),scale:um.getValue(t.icon.scale,r,this.layer_),snapToPixel:um.getValue(t.icon.snaptopixel,r,this.layer_),offsetOrigin:um.getValue(t.icon.offsetorigin,r,this.layer_),offset:um.getValue(t.icon.offset,r,this.layer_),crossOrigin:um.getValue(t.icon.crossorigin,r,this.layer_),anchorOrigin:um.getValue(t.icon.anchororigin,r,this.layer_),size:um.getValue(t.icon.size,r,this.layer_)})):o.setImage(new Om({anchor:um.getValue(t.icon.anchor,r,this.layer_),anchorXUnits:um.getValue(t.icon.anchorxunits,r,this.layer_),anchorYUnits:um.getValue(t.icon.anchoryunits,r,this.layer_),src:um.getValue(t.icon.src,r,this.layer_),opacity:um.getValue(t.icon.opacity,r,this.layer_),scale:um.getValue(t.icon.scale,r,this.layer_),rotation:um.getValue(t.icon.rotation,r,this.layer_),rotateWithView:um.getValue(t.icon.rotate,r,this.layer_),snapToPixel:um.getValue(t.icon.snaptopixel,r,this.layer_),offsetOrigin:um.getValue(t.icon.offsetorigin,r,this.layer_),offset:um.getValue(t.icon.offset,r,this.layer_),crossOrigin:um.getValue(t.icon.crossorigin,r,this.layer_),anchorOrigin:um.getValue(t.icon.anchororigin,r,this.layer_),size:um.getValue(t.icon.size,r,this.layer_)}))),[s,o]}}drawGeometryToCanvas(t){this.olStyleFn_()[1].getImage()instanceof lm?t.drawGeometry(new qa([10,10])):t.drawCircle(new kd([this.getCanvasSize()[0]/2,this.getCanvasSize()[1]/2],this.getRadius_()))}updateCanvas(t){if(this.updateFacadeOptions(this.options_),!bL(this.options_)){const e=this.getCanvasSize(),i=rm(t.getContext("2d"),{size:e});let n=this.olStyleFn_()[0];qB(n.getText())||n.setText(null),!qB(this.olStyleFn_()[1])&&this.olStyleFn_()[1].getImage()instanceof lm&&(n=this.olStyleFn_()[1]);const r=n.getImage().getStroke();qB(r)||qB(r.getWidth())||r.setWidth(3),i.setStyle(n),this.drawGeometryToCanvas(i)}}getCanvasSize(){const t=this.olStyleFn_()[1].getImage();let e;if(t instanceof lm)e=[90,90];else{const i=this.getRadius_(t);e=[2*i+4,2*i+4]}return e}getRadius_(t){let e;return e=t instanceof Hf?25:t instanceof lm?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}}yI.DEFAULT_WIDTH_POINT=3;const II=yI;class EI extends $m{constructor(t){let e=t;e=qB(e)?EI.DEFAULT_NULL:_L(e,EI.DEFAULT),e=_L({},e);super(e,new II(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Point'))"}}EI.DEFAULT={radius:5},EI.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5},radius:5};const CI=EI;class vI extends vu{constructor(t){super(new xf(t),vI.NAME),QB(xf)&&Oc(Cu("exception").layerswitcher_method),QB(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t){this.map_=t;const e=this.getImpl();this.createView(t).then((i=>{this.manageActivation(i),e.addTo(t,i),this.fire(kc)}))}createView(t){return new Promise((t=>{vI.getTemplateVariables(this.map_).then((e=>{this.activeEmptyLayer&&e.baseLayers.unshift(vI.EMPTYLAYER);const i=bu(yf(),{vars:e});t(i)}))}))}equals(t){return t instanceof vI}render(){this.getImpl().renderPanel()}registerEvents(){this.getImpl().registerEvents()}unregisterEvents(){this.getImpl().unregisterEvents()}static getTemplateVariables(t){return new Promise(((e,i)=>{if(!qB(t)){const i=t.getBaseLayers().filter((t=>!0===t.displayInLayerSwitcher)),n=t.getLayerGroup(),r=vI.orderLayerGroups(n),s=t.getRootLayers().filter((t=>{const e=!0===t.transparent,i=!0===t.displayInLayerSwitcher,n=t.type!==Tu,r=!(t.type===Nu&&qB(t.name)),s=t.getLayerGroup&&null===t.getLayerGroup();return e&&n&&r&&i&&s})).reverse(),o=Promise.all(i.map(vI.parseLayerForTemplate)),a=Promise.all(s.map(vI.parseLayerForTemplate)),l=Promise.all(r.map((t=>vI.parseGroupForTemplate(t,i))).filter((t=>!qB(t))));o.then((t=>{l.then((i=>{a.then((n=>e({baseLayers:t,overlayLayers:n,layerGroups:i})))}))}))}}))}static parseLayerForTemplate(t){let e=t.legend;qB(e)&&(e=t.name),qB(e)&&(e="Servicio WMS");let i=!1;if(t instanceof _I){const e=t.getStyle();e instanceof CI&&!qB(e.get("icon.src"))&&(i=!0)}return new Promise(((n,r)=>{const s={base:!1===t.transparent,visible:!0===t.isVisible(),id:t.id,title:e,outOfRange:!t.inRange(),opacity:t.getOpacity(),isIcon:i},o=t.getLegendURL();o instanceof Promise?o.then((t=>{s.legend=t,n(s)})):(s.legend="KML"!==t.type?o:null,n(s))}))}static parseGroupForTemplate(t,e){const i=[...t.getChildren()];let n=t.title;qB(n)&&(n=t.id),qB(n)&&(n="Conjunto de Servicios WMS");let r={id:t.id,title:n,order:t.order,collapsed:t.collapsed,layers:[],layerGroups:[]},s=null;if(i.length>0){i.forEach((t=>{t instanceof _g?r.layers.push(vI.parseLayerForTemplate(t)):t instanceof Cf&&r.layerGroups.push(vI.parseGroupForTemplate(t,e))}));let n=0;const o=t.getAllLayers();o.every((t=>t.isVisible()))?n=2:o.some((t=>t.isVisible()))&&(n=1),r.visible=n,qB(r.layers)&&qB(r.layerGroups)&&(r=null),GB(r)||(s=new Promise(((t,e)=>{Promise.all(r.layers).then((e=>{qB(r)||(r.layers=e,r.layerGroups.length>0?Promise.all(r.layerGroups).then((e=>{GB(e[0])?r.layerGroups=[]:r.layerGroups=e,t(r)})):t(r))}))})))}return s}static orderLayerGroups(t){return t.sort(((t,e)=>t.order-e.order))}}vI.NAME="layerswitcher",vI.EMPTYLAYER={base:!0,id:"emptyLayer",isIcon:!1,legend:"",opacity:1,outOfRange:!1,title:Cu("layerswitcher").no_base_layer,visible:!1};const xI=vI,wI="accuracy",SI="accuracyGeometry",bI="altitude",BI="altitudeAccuracy",LI="heading",MI="position",TI="projection",RI="speed",NI="tracking",PI="trackingOptions",FI="error";class DI extends us{constructor(t){super(FI),this.code=t.code,this.message=t.message}}const OI=class extends Ks{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.position_=null,this.transform_=$t,this.watchId_=void 0,this.addChangeListener(TI,this.handleProjectionChanged_),this.addChangeListener(NI,this.handleTrackingChanged_),void 0!==t.projection&&this.setProjection(t.projection),void 0!==t.trackingOptions&&this.setTrackingOptions(t.trackingOptions),this.setTracking(void 0!==t.tracking&&t.tracking)}disposeInternal(){this.setTracking(!1),super.disposeInternal()}handleProjectionChanged_(){const t=this.getProjection();t&&(this.transform_=le(ee("EPSG:4326"),t),this.position_&&this.set(MI,this.transform_(this.position_)))}handleTrackingChanged_(){if("geolocation"in navigator){const t=this.getTracking();t&&void 0===this.watchId_?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):t||void 0===this.watchId_||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=void 0)}}positionChange_(t){const e=t.coords;this.set(wI,e.accuracy),this.set(bI,null===e.altitude?void 0:e.altitude),this.set(BI,null===e.altitudeAccuracy?void 0:e.altitudeAccuracy),this.set(LI,null===e.heading?void 0:mt(e.heading)),this.position_?(this.position_[0]=e.longitude,this.position_[1]=e.latitude):this.position_=[e.longitude,e.latitude];const i=this.transform_(this.position_);this.set(MI,i.slice()),this.set(RI,null===e.speed?void 0:e.speed);const n=ol(this.position_,e.accuracy);n.applyTransform(this.transform_),this.set(SI,n),this.changed()}positionError_(t){this.dispatchEvent(new DI(t))}getAccuracy(){return this.get(wI)}getAccuracyGeometry(){return this.get(SI)||null}getAltitude(){return this.get(bI)}getAltitudeAccuracy(){return this.get(BI)}getHeading(){return this.get(LI)}getPosition(){return this.get(MI)}getProjection(){return this.get(TI)}getSpeed(){return this.get(RI)}getTracking(){return this.get(NI)}getTrackingOptions(){return this.get(PI)}setProjection(t){this.set(TI,ee(t))}setTracking(t){this.set(NI,t)}setTrackingOptions(t){this.set(PI,t)}};class QI extends Af{constructor(t,e,i,n){super(n),this.vendorOptions_=n,this.geolocation_=null,this.accuracyFeature_=PL.olFeature2Facade(new _d),this.tracking_=t,this.highAccuracy_=e,this.maximumAge_=i,this.activated_=!1,this.positionFeature_=PL.olFeature2Facade(new _d({style:QI.POSITION_STYLE}))}activate(){if(this.element.classList.add("m-locating"),qB(this.geolocation_)){const t=ee(this.facadeMap_.getProjection().code);this.geolocation_=new OI(hL({projection:t,tracking:this.tracking_,trackingOptions:{enableHighAccuracy:this.highAccuracy_,maximumAge:this.maximumAge_}},this.vendorOptions_,!0)),this.geolocation_.on("change:accuracyGeometry",(t=>{const e=t.target.get(t.key);this.accuracyFeature_.getImpl().getOLFeature().setGeometry(e)})),this.geolocation_.on("change:position",(t=>{const e=t.target.get(t.key),i=qB(e)?null:new qa(e);this.positionFeature_.getImpl().getOLFeature().setGeometry(i),this.facadeMap_.setCenter(e),this.element.classList.contains("m-locating")&&this.facadeMap_.setZoom(QI.ZOOM),this.element.classList.remove("m-locating"),this.element.classList.add("m-located"),this.geolocation_.setTracking(this.tracking_)}))}this.geolocation_.setTracking(!0),this.facadeMap_.drawFeatures([this.accuracyFeature_,this.positionFeature_])}removePositions_(){qB(this.accuracyFeature_)||this.facadeMap_.removeFeatures([this.accuracyFeature_]),qB(this.positionFeature_)||this.facadeMap_.removeFeatures([this.positionFeature_]),this.geolocation_.setTracking(!1)}deactivate(){this.removePositions_(),this.element.classList.remove("m-located"),this.element.classList.remove("m-locating"),this.geolocation_=null}setTracking(t){this.tracking_=t,this.geolocation_.setTracking(t)}destroy(){this.removePositions_(),super.destroy()}}QI.POSITION_STYLE=new Nm({image:new vm({radius:6,fill:new wm({color:"#3399CC"}),stroke:new bm({color:"#fff",width:2})})}),QI.ZOOM=12;const kI=QI;var GI=i(326),UI=i.n(GI);class qI extends vu{constructor(t=!0,e=!1,i={}){QB(kI)&&Oc(Cu("exception").location_method);super(new kI(t,e,6e4,i),qI.NAME)}createView(t){return bu(UI(),{vars:{title:Cu("location").title}})}getActivationButton(t){return t.querySelector("button#m-location-button")}equals(t){return t instanceof qI}setTracking(t){this.getImpl().tracking=t}}qI.NAME="location";const VI=qI;var zI=i(797),YI=i.n(zI);const jI=class extends Af{constructor(t={}){super(),this.facadeMap_=null,this.exactScale=t.exactScale||!1}addTo(t,e){this.facadeMap_=t;this.scaleContainer_=e.querySelector("#".concat("m-scale-span")),this.element=e,this.render=this.renderCB,this.target_=null,t.getMapImpl().addControl(this)}renderCB(t){const e=t.frameState;qB(e)||((t,e,i,n)=>{const r=e;i.getWMTS().length>0?r.innerHTML=qd.getWMTSScale(i,n):i.getWMTS().length<=0&&!0===n?r.innerHTML=i.getExactScale():i.getWMTS().length<=0&&1==!n&&(r.innerHTML=i.getScale())})(e.viewState,this.scaleContainer_,this.facadeMap_,this.exactScale)}destroy(){super.destroy(),this.scaleContainer_=null}};class HI extends vu{constructor(t={}){super(new jI(t),HI.NAME),QB(jI)&&Oc(Cu("exception").scale_method)}createView(t){return bu(YI(),{vars:{title:Cu("scale").title,scale:Cu("scale").scale}})}equals(t){return t instanceof HI}destroy(){super.destroy();const t=this.getPanel();qB(t)||t.removeClassName("m-with-scale")}}HI.NAME="scale";const XI=HI;class WI extends Af{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){super.addTo(t,e);const i=t.getMapImpl();this.olMap=i,this.panel=e,this.panel.querySelector("button").addEventListener("click",(()=>{this.resetRotation()})),i.on("change:view",(t=>{t.target.getView().on("change:rotation",(t=>{const e=`rotate(${360*t.target.getRotation()/(2*Math.PI)}deg)`;this.panel.querySelector("button").style.WebkitTransform=e,this.panel.querySelector("button").style.MozTransform=e,this.panel.querySelector("button").style.transform=e}))}))}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}resetRotation(){this.olMap.getView().setRotation(0)}onChangeView(t){const e=t.querySelector("#m-rotate-marker");this.olMap.on("change:view",(t=>{t.target.getView().on("change:rotation",(t=>{const i=t.target.getRotation();e.style.transform=`rotate(${i*(180/Math.PI)+45}deg)`}))}))}}WI.PANEL_ID="m-layerswitcher-panel";const KI=WI;var JI=i(29),ZI=i.n(JI);const $I=(t,e,i)=>{const n=e;let r=t.target.parentElement.parentElement,s=0,o=0;for(;r&&!Number.isNaN(r.offsetLeft)&&!Number.isNaN(r.offsetTop);)s+=r.offsetLeft-r.scrollLeft,o+=r.offsetTop-r.scrollTop,r=r.offsetParent;s=t.clientX-s,o=t.clientY-o;const{clientWidth:a,clientHeight:l}=t.currentTarget,h=[0,-l],c=[s-a/2,o-l/2],u=(h[0]*c[0]+h[1]*c[1])/(Math.sqrt(h[0]**2+h[1]**2)*Math.sqrt(c[0]**2+c[1]**2));let g=180*Math.acos(u)/Math.PI;c[0]<0&&(g=360-g),i.setRotation(g);n.querySelector("#m-rotate-marker").style.WebkitTransform=`rotate(${g+45}deg)`,n.querySelector("#m-rotate-marker").style.MozTransform=`rotate(${g+45}deg)`,n.querySelector("#m-rotate-marker").style.transform=`rotate(${g+45}deg)`},tE=(t,e)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousedown",(e=>{t.setActive(!0),"m-rotate-button"!==e.target.id&&t.setMouseDown(!0)}))},eE=(t,e)=>{document.body.addEventListener("mouseup",(e=>{t.setActive(!1)}))},iE=(t,e,i)=>{const n=e,r=e.querySelector("#m-rotate-slider-container");r.addEventListener("click",(r=>{"m-rotate-button"!==r.target.id||t.getMouseDown()?$I(r,e,i):(t.getImpl().resetRotation(),n.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",n.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",n.querySelector("#m-rotate-marker").style.transform="rotate(40deg)"),t.setMouseDown(!1)}))},nE=(t,e,i)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousemove",(n=>{t.getActive()&&$I(n,e,i)}))};class rE extends vu{constructor(){QB(KI)&&Oc("La implementación usada no puede crear controles Scale");super(new KI,rE.NAME),this.active_=!1,this.isMouseDown_=!1}createView(t){const e=bu(ZI());return e.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.transform="rotate(40deg)",tE(this,e),nE(this,e,t),eE(this),iE(this,e,t),this.on(kc,(()=>{this.getImpl().onChangeView(e)})),e}equals(t){return t instanceof rE}setActive(t){this.active_=!!t}getActive(){return this.active_}setMouseDown(t){this.isMouseDown_=!!t}getMouseDown(){return this.isMouseDown_}}rE.NAME="rotate";const sE=rE,oE="units",aE=[1,2,5],lE=25.4/.28;const hE=class extends Lh{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+Il,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(oE,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get(oE)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set(oE,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r="degrees"==n?"degrees":"m";let s=ie(i,t.resolution,e,r);const o=this.minWidth_*(this.dpi_||lE)/lE,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||lE)/lE:void 0;let l=o*s,h="";if("degrees"==n){const t=c.degrees;l*=t,l=a){u=A,g=p,d=f;break}if(g>=o)break;A=u,p=g,f=d,++m}const _=this.scaleBar_?this.createScaleBar(g,u,h):u.toFixed(d<0?-d:0)+" "+h;this.renderedHTML_!=_&&(this.innerElement_.innerHTML=_,this.renderedHTML_=_),this.renderedWidth_!=g&&(this.innerElement_.style.width=g+"px",this.renderedWidth_=g),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const n=this.getScaleForResolution(),r=n<1?Math.round(1/n).toLocaleString()+" : 1":"1 : "+Math.round(n).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let n=0;n
    `+this.createMarker("relative")+(n%2==0||2===s?this.createStepText(n,t,!1,e,i):"")+"")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`
    `+r+"
    ":"")+a.join("")}createMarker(t){return`
    `}createStepText(t,e,i,n,r){const s=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+r);return`
    `+s+"
    "}getScaleForResolution(){return ie(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||lE)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}},cE="units",uE="degrees",gE="imperial",dE="nautical",AE="metric",pE="us",fE=[1,2,5];const mE=class extends hE{constructor(t){super(t),this.facadeMap_=null,this.keyEvent_=null}addTo(t,e){this.facadeMap_=t,this.removeChangeListener(cE,this.handleUnitsChanged),this.keyEvent_=this.addChangeListener(cE,this.handleUnitsChanged),t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleUnitsChanged_(){this.updateElement_()}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r=n===uE?"degrees":"m";let s=ie(i,t.resolution,e,r);"degrees"!==i.getUnits()&&i.getMetersPerUnit()&&"m"===r&&(s*=i.getMetersPerUnit()),"d"===i.getUnits()&&(s/=12e4);let o=this.minWidth_*s,a="";if(n===uE){const t=c.degrees;"degrees"===i.getUnits()?o*=t:s/=t,o=this.minWidth_)break;u+=1}const g=l.toString().concat(" ").concat(a);this.renderedHTML_!==g&&(this.innerElement_.innerHTML=g,this.renderedHTML_=g),this.renderedWidth_!==h&&(this.innerElement_.style.width=h.toString().concat("px"),this.renderedWidth_=h),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}};var _E=i(959),yE=i.n(_E);class IE extends vu{constructor(t={}){super(new mE(t),IE.NAME),QB(mE)&&Oc(Cu("exception").scaleline_method)}createView(t){return bu(yE())}equals(t){return t instanceof IE}}IE.NAME="scaleline";const EE=IE;var CE=i(389),vE=i.n(CE);const xE="projection",wE="coordinateFormat";const SE=class extends Lh{constructor(t){t=t||{};const e=document.createElement("div");e.className=void 0!==t.className?t.className:"ol-mouse-position",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un,this.addChangeListener(xE,this.handleProjectionChanged_),t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat),t.projection&&this.setProjection(t.projection),this.renderOnMouseOut_=void 0!==t.placeholder,this.placeholder_=this.renderOnMouseOut_?t.placeholder:" ",this.renderedHTML_=e.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=!1!==t.wrapX}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(wE)}getProjection(){return this.get(xE)}handleMouseMove(t){const e=this.getMap();this.updateHTML_(e.getEventPixel(t))}handleMouseOut(t){this.updateHTML_(null)}setMap(t){if(super.setMap(t),t){const e=t.getViewport();this.listenerKeys.push(Gs(e,ah,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(Gs(e,ch,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(t){this.set(wE,t)}setProjection(t){this.set(xE,ee(t))}updateHTML_(t){let e=this.placeholder_;if(t&&this.mapProjection_){if(!this.transform_){const t=this.getProjection();this.transform_=t?le(this.mapProjection_,t):$t}const i=this.getMap().getCoordinateFromPixelInternal(t);if(i){const t=Ae();if(t&&(this.transform_=le(this.mapProjection_,t)),this.transform_(i,i),this.wrapX_){kt(i,t||this.getProjection()||this.mapProjection_)}const n=this.getCoordinateFormat();e=n?n(i):i.toString()}}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=e,this.renderedHTML_=e)}render(t){const e=t.frameState;e?this.mapProjection_!=e.viewState.projection&&(this.mapProjection_=e.viewState.projection,this.transform_=null):this.mapProjection_=null}};const bE=class extends SE{constructor(t){super(t),this.vendorOptions_=t}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleMouseMove(t){const e=this.getMap();this.lastMouseMovePixel_=e.getEventPixel(t),this.updateHTML_(this.lastMouseMovePixel_)}handleMouseOut(t){this.updateHTML_(null),this.lastMouseMovePixel_=null}updateHTML_(t){let e=this.placeholder_;const i=this.getProjection();if(t&&this.mapProjection_){this.transform_||(this.transform_=i?he(this.mapProjection_,i):$t);const n=this.getMap().getCoordinateFromPixel(t);if(n){this.transform_(n,n);const t=this.getCoordinateFormat();e=t?t(n):n.toString()}this.vendorOptions_.label&&(e+=` | ${this.vendorOptions_.label}`)}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=void 0!==e?e:"",this.renderedHTML_=void 0!==e?e:"")}};const BE=class extends bE{constructor(t,e){super(hL({coordinateFormat:Lt(t.precision||4),label:t.label,placeholder:"",className:"m-mouse-position g-cartografia-flecha"},e,!0)),this.srs_=t.srs,this.label_=t.label,this.precision_=t.precision,this.vendorOptions_=e}addTo(t,e){this.facadeMap_=t,this.setProjection(this.srs_||t.getProjection().code),this.setTarget(e),t.getMapImpl().addControl(this),qB(this.vendorOptions_.projection)&&qB(this.srs_)&&t.getImpl().on(au,(()=>{this.mousePositionControl.setProjection(ee(t.getProjection().code))}))}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class LE extends vu{constructor(t={},e={}){super(new BE(t,e),LE.NAME),QB(BE)&&Oc(Cu("exception").mouse_method)}createView(t){return bu(vE())}equals(t){return t instanceof LE}destroy(){super.destroy();const t=this.getPanel();qB(t)||t.removeClassName("m-with-mouse")}}LE.NAME="mouse";const ME=LE,TE=.75,RE=.1;const NE=class extends Lh{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===t.collapsed||t.collapsed,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==t.rotateWithView&&t.rotateWithView,this.viewExtent_=void 0;const e=void 0!==t.className?t.className:"ol-overviewmap",i=void 0!==t.tipLabel?t.tipLabel:"Overview map",n=void 0!==t.collapseLabel?t.collapseLabel:"‹";"string"==typeof n?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=n):this.collapseLabel_=n;const r=void 0!==t.label?t.label:"›";"string"==typeof r?(this.label_=document.createElement("span"),this.label_.textContent=r):this.label_=r;const s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,o=document.createElement("button");o.setAttribute("type","button"),o.title=i,o.appendChild(s),o.addEventListener(Ms,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=t.view;const a=new bc({view:t.view,controls:new eo,interactions:new eo});this.ovmap_=a,t.layers&&t.layers.forEach((function(t){a.addLayer(t)}));const l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new Wy({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);const h=e+" "+Il+" "+Cl+(this.collapsed_&&this.collapsible_?" "+vl:"")+(this.collapsible_?"":" ol-uncollapsible"),c=this.element;c.className=h,c.appendChild(this.ovmapDiv_),c.appendChild(o);const u=this,g=this.boxOverlay_,d=this.boxOverlay_.getElement(),A=function(t){const e={clientX:(i=t).clientX,clientY:i.clientY};var i;const n=a.getEventCoordinateInternal(e);g.setPosition(n)},p=function(t){const e=a.getEventCoordinateInternal(t);u.getMap().getView().setCenterInternal(e),window.removeEventListener("mousemove",A),window.removeEventListener("mouseup",p)};d.addEventListener("mousedown",(function(){window.addEventListener("mousemove",A),window.addEventListener("mouseup",p)}))}setMap(t){const e=this.getMap();if(t!==e){if(e){const t=e.getView();t&&this.unbindView_(t),this.ovmap_.setTarget(null)}if(super.setMap(t),t){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(Gs(t,gs,this.handleMapPropertyChange_,this));const e=t.getView();e&&(this.bindView_(e),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(t){if(t.key===Ih){const e=t.oldValue;e&&this.unbindView_(e);const i=this.getMap().getView();this.bindView_(i)}else this.ovmap_.isRendered()||t.key!==yh&&t.key!==_h||this.ovmap_.updateSize()}bindView_(t){if(!this.view_){const e=new dl({projection:t.getProjection()});this.ovmap_.setView(e)}t.addChangeListener(ta.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(t){t.removeChangeListener(ta.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView().calculateExtentInternal(i);if(this.viewExtent_&&z(n,this.viewExtent_))return;this.viewExtent_=n;const r=e.getSize(),s=e.getView().calculateExtentInternal(r),o=e.getPixelFromCoordinateInternal(st(n)),a=e.getPixelFromCoordinateInternal(Z(n)),l=Math.abs(o[0]-a[0]),h=Math.abs(o[1]-a[1]),c=r[0],u=r[1];lc*TE||h>u*TE?this.resetExtent_():D(s,n)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),n=t.getView().calculateExtentInternal(i),r=e.getView(),s=Math.log(7.5)/Math.LN2;ct(n,1/(Math.pow(2,s/2)*RE)),r.fitInternal(al(n))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView(),r=e.getView(),s=this.rotateWithView_?0:-n.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=n.getCenterInternal(),h=n.getResolution(),c=r.getResolution(),u=i[0]*h/c,g=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=g+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=Us(this.ovmap_,gh,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(vl),this.collapsed_?Tl(this.collapseLabel_,this.label_):Tl(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}};const PE=class extends NE{constructor(t,e={}){super(hL({layers:[]},e,!0)),this.toggleDelay_=0,qB(t.toggleDelay)||(this.toggleDelay_=t.toggleDelay),this.collapsedButtonClass_="g-cartografia-mundo",qB(t.collapsedButtonClass)||(this.collapsedButtonClass_=t.collapsedButtonClass),this.openedButtonClass_="g-cartografia-flecha-derecha2",qB(t.openedButtonClass)||(this.openedButtonClass_=t.openedButtonClass),this.facadeMap_=null}set facadeControl(t){this.facadeControl_=t}get facadeControl(){return this.facadeControl_}addTo(t,e){this.facadeMap_=t,this.update(t,e),this.getCollapsed()||this.addLayers(this.facadeMap_)}update(t,e){const i=this.element.querySelector("button");!0===this.collapsed_?i.classList.contains(this.collapsedButtonClass_)?i.classList.remove(this.collapsedButtonClass_):i.classList.add(this.collapsedButtonClass_):i.classList.contains(this.openedButtonClass_)?i.classList.remove(this.openedButtonClass_):i.classList.add(this.openedButtonClass_),this.addOpenEventListener(i,t),this.setTarget()}addOpenEventListener(t,e){t.onclick=this.openEventListener.bind(this)}openEventListener(t){const e=t;!0===this.getCollapsed()&&(this.addLayers(this.facadeMap_),e.target.onclick=null)}setTarget(){const t=this.facadeControl_;if(!qB(t)){const e=t.getPanel();qB(e)||(this.target_=e.getControlsContainer())}}getElement(){return this.element}addLayer_(t){t.un(kc,this.addLayer_,this),this.getOverviewMap().addLayer(t.getOLLayer())}addLayers(t){const e=[];t.getLayers().forEach((t=>{[t].forEach((t=>{if((t.type===Nu||!1===t.transparent)&&t.isVisible()){const i=t.getImpl().getOLLayer();let n=null;if(!qB(i)){const e=i.getProperties();delete e.map,n=!0===t.tiled?new Kg(e):new $g(e)}qB(n)?t.getImpl().on(kc,this.addLayer_.bind(this)):e.push(n)}}))}));const i=new sf({projection:ee(t.getProjection().code),resolutions:t.getResolutions()});t.getMapImpl().addControl(this),this.ovmap_.setView(i),e.forEach((t=>this.ovmap_.addLayer(t))),this.wasOpen_=!0}handleToggle_(){xL(this.element,"ol-collapsed");const t=this.element.querySelector("button");xL(t,this.openedButtonClass_),xL(t,this.collapsedButtonClass_),setTimeout((()=>{this.collapsed_?wL(this.collapseLabel_,this.label_):wL(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),t.addEventListener("postrender",(t=>{this.updateBox_()})))}),this.toggleDelay_)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};var FE=i(922),DE=i.n(FE);class OE extends vu{constructor(t={},e={}){const i=new PE(t,e);super(i,OE.NAME),QB(PE)&&Oc(Cu("exception").overviewmap_method),i.facadeControl=this}createView(t){return bu(DE())}equals(t){return t instanceof OE}}OE.NAME="overviewmap";const QE=OE;const kE=class{constructor(){this.element_=null}addTo(t,e){this.element_=e}getElement(){return this.element_}destroy(){}};var GE=i(637),UE=i.n(GE);class qE extends vu{constructor(){super(new kE,qE.NAME),QB(kE)&&Oc(Cu("exception").navtoolbar_method)}createView(t){return bu(UE())}equals(t){return t instanceof qE}}qE.NAME="navtoolbar";const VE=qE;var zE=i(72),YE=i.n(zE);const jE=class extends Rh{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class HE extends vu{constructor(t={}){super(new jE(t),HE.NAME),QB(jE)&&Oc(Cu("exception").panzoom_method)}createView(t){return bu(YE())}equals(t){return t instanceof HE}}HE.NAME="panzoom";const XE=HE;const WE=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let i=e.dataProjection?ee(e.dataProjection):this.readProjection(t);e.extent&&i&&"tile-pixels"===i.getUnits()&&(i=ee(i),i.setWorldExtent(e.extent)),e={dataProjection:i,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection},t)}getType(){return js()}readFeature(t,e){return js()}readFeatures(t,e){return js()}readGeometry(t,e){return js()}readProjection(t){return js()}writeFeature(t,e){return js()}writeFeatures(t,e){return js()}writeGeometry(t,e){return js()}};function KE(t,e,i){const n=i?ee(i.featureProjection):null,r=i?ee(i.dataProjection):null;let s;if(s=n&&r&&!ae(n,r)?(e?t.clone():t).transform(e?n:r,e?r:n):t,e&&i&&void 0!==i.decimals){const e=Math.pow(10,i.decimals),n=function(t){for(let i=0,n=t.length;i0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=Kd(t);return this.readFeaturesFromDocument(i,e)}return Wd(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&_s(i,this.readFeaturesFromNode(n,e));return i}readFeaturesFromNode(t,e){return js()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=Kd(t);return this.readGeometryFromDocument(i,e)}return Wd(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=Kd(t);return this.readProjectionFromDocument(e)}return Wd(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}},$E="http://www.opengis.net/gml",tC=/^\s*$/;class eC extends ZE{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:Zd(this.readFeaturesInternal),featureMembers:$d(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let n=null;if("FeatureCollection"==i)n=hA([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const r=e[0];let s=r.featureType,o=r.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e0&&!(t instanceof _a)){t={_content_:t};for(let e=0;e=2,"At least 2 conditions are required")}};const pC=class extends AC{constructor(t){super("And",Array.prototype.slice.call(arguments))}};const fC=class extends dC{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}};const mC=class extends dC{constructor(t,e,i,n){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=n}};const _C=class extends mC{constructor(t,e,i){super("Contains",t,e,i)}};const yC=class extends mC{constructor(t,e,i,n,r){super("DWithin",t,e,r),this.distance=i,this.unit=n}};const IC=class extends mC{constructor(t,e,i){super("Disjoint",t,e,i)}};const EC=class extends dC{constructor(t,e){super(t),this.propertyName=e}};const CC=class extends EC{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}};const vC=class extends EC{constructor(t,e,i,n){super(t,e),this.expression=i,this.matchCase=n}};const xC=class extends vC{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}};const wC=class extends vC{constructor(t,e){super("PropertyIsGreaterThan",t,e)}};const SC=class extends vC{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}};const bC=class extends mC{constructor(t,e,i){super("Intersects",t,e,i)}};const BC=class extends EC{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}};const LC=class extends EC{constructor(t,e,i,n,r,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==r?r:"!",this.matchCase=s}};const MC=class extends EC{constructor(t){super("PropertyIsNull",t)}};const TC=class extends vC{constructor(t,e){super("PropertyIsLessThan",t,e)}};const RC=class extends vC{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}};const NC=class extends dC{constructor(t){super("Not"),this.condition=t}};const PC=class extends vC{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}};const FC=class extends AC{constructor(t){super("Or",Array.prototype.slice.call(arguments))}};const DC=class extends mC{constructor(t,e,i){super("Within",t,e,i)}};function OC(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(pC,e))}function QC(t,e,i){return new fC(t,e,i)}const kC={"http://www.opengis.net/gml":{boundedBy:eA(iC.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:Zd(iC.prototype.readFeaturesInternal)}},GC={"http://www.opengis.net/wfs":{totalInserted:eA(EA),totalUpdated:eA(EA),totalDeleted:eA(EA)},"http://www.opengis.net/wfs/2.0":{totalInserted:eA(EA),totalUpdated:eA(EA),totalDeleted:eA(EA)}},UC={"http://www.opengis.net/wfs":{TransactionSummary:eA(ZC,"transactionSummary"),InsertResults:eA(iv,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:eA(ZC,"transactionSummary"),InsertResults:eA(iv,"insertIds")}},qC={"http://www.opengis.net/wfs":{PropertyName:iA(bA)},"http://www.opengis.net/wfs/2.0":{PropertyName:iA(bA)}},VC={"http://www.opengis.net/wfs":{Insert:iA(nv),Update:iA(av),Delete:iA(ov),Property:iA(lv),Native:iA(hv)},"http://www.opengis.net/wfs/2.0":{Insert:iA(nv),Update:iA(av),Delete:iA(ov),Property:iA(lv),Native:iA(hv)}},zC="feature",YC="http://www.w3.org/2000/xmlns/",jC={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},HC={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},XC={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},WC={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},KC={"2.0.0":gC,"1.1.0":cC,"1.0.0":oC};function JC(t,e,i,n){uA(n,VC,rA(t),e,i)}function ZC(t,e){return hA({},GC,t,e)}const $C={"http://www.opengis.net/ogc":{FeatureId:Zd((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:Zd((function(t,e){return t.getAttribute("fid")}))}};function tv(t,e){lA($C,t,e)}const ev={"http://www.opengis.net/wfs":{Feature:tv},"http://www.opengis.net/wfs/2.0":{Feature:tv}};function iv(t,e){return hA([],ev,t,e)}function nv(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o=n.gmlVersion,a=jd(s,r);t.appendChild(a),2===o?oC.prototype.writeFeatureElement(a,e,i):3===o?cC.prototype.writeFeatureElement(a,e,i):gC.prototype.writeFeatureElement(a,e,i)}function rv(t,e,i){const n=i[i.length-1].version,r=jC[n],s=jd(r,"Filter"),o=jd(r,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function sv(t,e){const i=(t=t||zC)+":";return e.startsWith(i)?e:i+e}function ov(t,e,i){const n=i[i.length-1];go(void 0!==e.getId(),"Features must have an id set");const r=n.featureType,s=n.featurePrefix,o=n.featureNS,a=sv(s,r);t.setAttribute("typeName",a),t.setAttributeNS(YC,"xmlns:"+s,o);const l=e.getId();void 0!==l&&rv(t,l,i)}function av(t,e,i){const n=i[i.length-1];go(void 0!==e.getId(),"Features must have an id set");const r=n.version,s=n.featureType,o=n.featurePrefix,a=n.featureNS,l=sv(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(YC,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t{const r=this.combineBboxAndFilter(n.geometryName,n.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:n.geometryName,filter:r}),bv(e,[n.name],[i])}));return e}combineBboxAndFilter(t,e,i,n){const r=QC(t,e,i);return n?OC(n,r):r}writeTransaction(t,e,i,n){const r=[],s=n.version?n.version:this.version_,o=jd(HC[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),n&&(a=n.gmlOptions?n.gmlOptions:{},n.handle&&o.setAttribute("handle",n.handle)),o.setAttributeNS(Yd,"xsi:schemaLocation",WC[s]);const l=function(t,e,i,n){const r=n.featurePrefix?n.featurePrefix:zC;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);const o=Object.assign({node:t},{version:i,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:r,gmlVersion:s,hasZ:n.hasZ,srsName:n.srsName},e);return o}(o,a,s,n);return t&&JC("Insert",t,r,l),e&&JC("Update",e,r,l),i&&JC("Delete",i,r,l),n.nativeElements&&JC("Native",n.nativeElements,r,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),ee(t.pop().srsName)}return null}};var Mv=i(690),Tv=i.n(Mv),Rv=i(512),Nv=i.n(Rv);class Pv extends Af{constructor(t,e){super(),this.userFormat=t,this.featureCount=e.featureCount,qB(this.featureCount)&&(this.featureCount=10),this.buffer=e.buffer}addTo(t,e){!1===t.getMapImpl().getControls().getArray().some((t=>t instanceof Pv))&&(this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this))}activate(){this.addOnClickEvent_()}deactivate(){this.deleteOnClickEvent_()}addOnClickEvent_(){const t=this.facadeMap_.getMapImpl();"plain"===XB(this.userFormat)||"text/plain"===XB(this.userFormat)?this.userFormat="text/plain":"gml"===XB(this.userFormat)||"application/vnd.ogc.gml"===XB(this.userFormat)?this.userFormat="application/vnd.ogc.gml":this.userFormat="text/html",this.clickEventKey_=t.on("singleclick",(t=>this.buildUrl_(r,t)))}buildUrl_(t,e){this.evt=e;const i=this.facadeMap_.getMapImpl(),n=this.buildWMSInfoURL(this.facadeMap_.getWMS()),r=[...this.buildWMTSInfoURL(this.facadeMap_.getWMTS()),...n].filter((t=>!qB(t)));r.length>0?this.showInfoFromURL_(r,e.coordinate,i):t.info("No existen capas consultables")}buildWMSInfoURL(t){const e=this.facadeMap_.getMapImpl().getView().getResolution(),i=this.facadeMap_.getProjection().code;return t.map((t=>{const n=t.getImpl().getOLLayer();let r;if(t.isVisible()&&t.isQueryable()&&!qB(n)){r={};const s={INFO_FORMAT:this.userFormat,FEATURE_COUNT:this.featureCount},o=/buffer/i,a=n.getSource(),l=this.evt.coordinate;let h=a.getFeatureInfoUrl(l,e,i,s);YB(M.config.ticket)&&(h=KB(h,{ticket:M.config.ticket})),o.test(t.url)||(s.Buffer=this.buffer),r={layer:t.legend||t.name,url:h}}return r}))}buildWMTSInfoURL(t){return t.map((t=>{let e;if(t.isVisible()){e={};const i=this.userFormat,n=this.evt.coordinate;let r=t.getGetFeatureInfoUrl(n,this.facadeMap_.getZoom(),i);YB(M.config.ticket)&&(r=KB(r,{ticket:M.config.ticket})),e={layer:t.legend||t.name,url:r}}return e}))}deleteOnClickEvent_(){zs(this.clickEventKey_)}static insert(t,e){let i=!1;switch(e){case"text/html":const e=document.createElement("div");e.innerHTML=t;let n="";Array.prototype.forEach.call(e.querySelectorAll("body"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("div"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("table"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("b"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("span"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("input"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("a"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("img"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("p"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("ul"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("li"),(t=>{n+=t.innerHTML.trim()})),n.length>0&&!/WMS\s+server\s+error/i.test(t)&&(i=!0);break;case"application/vnd.ogc.gml":i=(new Lv).readFeatures(t).length>0;break;case"text/plain":/returned\s+no\s+results/i.test(t)||/features\s+were\s+found/i.test(t)||/:$/i.test(t)||(i=!0)}return i}formatInfo(t,e,i){let n=null;switch(e){case"text/html":n=t;break;case"application/vnd.ogc.gml":const e=(new Lv).readFeatures(t);n="",e.forEach((t=>{const e=t.getKeys();n+="
    ",n+=`'`;for(let i=0,r=e.length;i"}n+="
    ' ${sL(i)} '
    ',n+=sL(r),n+='',n+=s,n+="
    "}));break;case"text/plain":n=Pv.regExs.gsResponse.test(t)?this.txtToHtmlGeoserver(t,i):this.txtToHtmlMapserver(t,i)}return n}static unsupportedFormat(t,e){let i=!1;return"text/html"===e&&(i=Pv.regExs.msUnsupportedFormat.test(t)),i}txtToHtmlGeoserver(t,e){let i=t;i=i.replace(/[\w\s\S]*':/i,""),i=i.replace(/---(-*)(n+)---(-*)/g,"#newfeature#");const n=i.split("\n");let r="
    ";r+=``;for(let t=0,i=n.length;t1&&(n=t[1].trim(),0!==n.length&&"null"!==n||(n="-")),!1===Pv.regExs.gsGeometry.test(e)&&(r+='")}else Pv.regExs.gsNewFeature.test(i)&&(r+=``)}return r+="
    ${sL(e)}
    ',r+=sL(e),r+='',r+=n,r+="
    ${sL(e)}
    ",r}txtToHtmlMapserver(t){let e=t;e=e.replace(/[\w\s\S]*(layer)/i,"$1");const i=e.replace(/layer(\s*)'(\w+)'[\w\s\S]*/i,"$2");e=e.replace(/layer(\s*)'(\w+)'([\w\s\S]*)/i,"$3"),e=e.replace(/feature(\s*)(\w*)(\s*)(:)([\w\s\S]*)/i,"$5"),e=e.replace(/'/g,""),e=e.replace(/=/g,";");const n=e.split("\n");let r="";const s=``;for(let t=0,e=n.length;t1&&(l=o[1].trim(),0===l.length&&(l="-")),a.length>0&&(Pv.regExs.msNewFeature.test(a)?s.length>0&&!Pv.regExs.msNewFeature.test(s)&&(r+=``):(r+='"))}return r.length>0&&(r=`${s+r}
    ${sL(i)}
    ${sL(i)}
    ',r+=sL(a),r+='',r+=l,r+="
    `),r}showInfoFromURL_(t,e,i){const n=bu(Tv(),{vars:{info:Pv.LOADING_MESSAGE},parseToHtml:!1}),r=[],s=String(this.userFormat);let o=0;const a={icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:n};let l=this.facadeMap_.getPopup();if(qB(l))l=new sI,l.addTab(a),this.facadeMap_.addPopup(l,e);else{l.getTabs().some((t=>t.title!==Pv.POPUP_TITLE))?l.addTab(a):(this.facadeMap_.removePopup(),l=new sI,l.addTab(a),this.facadeMap_.addPopup(l,e))}t.forEach((e=>{const i=e.url,n=e.layer;DB(i).then((e=>{if(l=this.facadeMap_.getPopup(),200===e.code&&!1===e.error){const t=e.text;if(!0===Pv.insert(t,s)){const e=this.formatInfo(t,s,n);r.push({formatedInfo:e,layerName:n})}else Pv.unsupportedFormat(t,s)&&r.push({formatedInfo:Cu("getfeatureinfo").unsupported_format,layerName:n})}if(o+=1,t.length===o&&!qB(l))if(l.removeTab(a),0===r.length)l.addTab({icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:Cu("getfeatureinfo").no_info});else{const t=bu(Nv(),{vars:{layers:r,info_of:Cu("getfeatureinfo").info_of},parseToHtml:!1});l.addTab({icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:t,listeners:[{selector:".m-getfeatureinfo-content-info div.m-arrow-right",all:!0,type:"click",callback:t=>this.toogleSection(t)}]})}}))})),this.popup_=l}toogleSection(t){const{target:e}=t,{parentElement:i}=e.parentElement,n=i.querySelector(".m-getfeatureinfo-content-info-body");if(n.classList.contains("m-content-collapsed")){n.classList.remove("m-content-collapsed"),e.classList.remove("m-arrow-right"),e.classList.add("m-arrow-down");const t=this.popup_.getCoordinate();qB(this.popup_.getImpl().panIntoView)||this.popup_.getImpl().panIntoView(t)}else n.classList.add("m-content-collapsed"),e.classList.add("m-arrow-right"),e.classList.remove("m-arrow-down")}}Pv.LOADING_MESSAGE="Obteniendo información...",Pv.regExs={gsResponse:/^results[\w\s\S]*'http:/i,msNewFeature:/feature(\s*)(\w+)(\s*):/i,gsNewFeature:/#newfeature#/,gsGeometry:/geom$/i,msGeometry:/boundedby$/i,msUnsupportedFormat:/error(.*)unsupported(.*)info_format/i};const Fv=Pv;var Dv=i(649),Ov=i.n(Dv);class Qv extends vu{constructor(t,e={}){super(new Fv(t,e),Qv.NAME),QB(Fv)&&Oc(Cu("exception").getfeatureinfo_method),this.format=t}createView(t){return bu(Ov(),{vars:{title:Cu("getfeatureinfo").title}})}getActivationButton(t){return t.querySelector("button#m-getfeatureinfo-button")}equals(t){let e=!1;return t instanceof Qv&&(e=this.name===t.name),e}}Qv.NAME="getfeatureinfo",Qv.POPUP_TITLE=Cu("getfeatureinfo").info;const kv=Qv;var Gv=i(83),Uv=i.n(Gv);const qv=".m-top.m-left",Vv=".m-top.m-right",zv=".m-bottom.m-left",Yv=".m-bottom.m-right";class jv extends Mc{constructor(t,e={}){super(),this.name=t,this._map=null,this._controls=[],this._buttonPanel=null,this._collapsible=!1,qB(e.collapsible)||(this._collapsible=e.collapsible),this.position=qv,qB(e.position)||(this.position=e.position),this._collapsed=this._collapsible,qB(e.collapsed)||(this._collapsed=e.collapsed&&!0===this._collapsible),this._multiActivation=!1,qB(e.multiActivation)||(this._multiActivation=e.multiActivation),this._className=null,qB(e.className)||(this._className=e.className),this._collapsedButtonClass=null,qB(e.collapsedButtonClass)?this.position===qv||this.position===zv?this._collapsedButtonClass="g-cartografia-flecha-derecha":this.position!==Vv&&this.position!==Yv||(this._collapsedButtonClass="g-cartografia-flecha-izquierda"):this._collapsedButtonClass=e.collapsedButtonClass,this._openedButtonClass=null,qB(e.openedButtonClass)?this.position===qv||this.position===zv?this._openedButtonClass="g-cartografia-flecha-izquierda":this.position!==Vv&&this.position!==Yv||(this._openedButtonClass="g-cartografia-flecha-derecha"):this._openedButtonClass=e.openedButtonClass,this._element=null,this._areaContainer=null,this._controlsContainer=null,this._tooltip=null,qB(e.tooltip)||(this._tooltip=e.tooltip)}destroy(){null!=this._element&&this._areaContainer.removeChild(this._element),this._controlsContainer=null}addTo(t,e){this._map=t,this._areaContainer=e;const i=bu(Uv());this._element=i,qB(this._tooltip)||this._element.setAttribute("title",this._tooltip),this._buttonPanel=i.querySelector("button.m-panel-btn"),qB(this._className)||this._className.split(/\s+/).forEach((t=>{i.classList.add(t)})),!0===this._collapsed?this.collapse():this.open(),!0!==this._collapsible&&i.classList.add("no-collapsible"),this._controlsContainer=i.querySelector("div.m-panel-controls"),e.appendChild(i),this._buttonPanel.addEventListener("click",(t=>{t.preventDefault(),!1===this._collapsed?this.collapse():this.open()})),this.addControls(this._controls),this.fire(kc,i)}_collapse(t){t.classList.remove("opened"),this._buttonPanel.classList.remove(this._openedButtonClass),t.classList.add("collapsed"),this._buttonPanel.classList.add(this._collapsedButtonClass),this._collapsed=!0,this.fire($c)}_open(t){t.classList.remove("collapsed"),this._buttonPanel.classList.remove(this._collapsedButtonClass),t.classList.add("opened"),this._buttonPanel.classList.add(this._openedButtonClass),this._collapsed=!1,this.fire(Zc)}open(){this._open(this._element)}collapse(){this._collapse(this._element)}getControls(){return this._controls}addControls(t){let e=t;qB(e)||(UB(e)||(e=[e]),e.forEach((t=>{t instanceof vu&&(this.hasControl(t)||(this._controls.push(t),t.setPanel(this),t.on(tu,this._removeControl.bind(this),this)),qB(this._controlsContainer)||(t.on(kc,this._moveControlView.bind(this),this),t.addTo(this._map)),t.on(Kc,this._manageActivation.bind(this),this))})))}hasControl(t){let e=!1;return qB(t)||(YB(t)?e=null!=this._controls.filter((e=>e.name===t))[0]:t instanceof vu&&(e=lL(this._controls,t))),e}removeControls(t){let e=t;qB(e)||(UB(e)||(e=[e]),e.forEach((t=>{const e=t;e instanceof vu&&this.hasControl(e)&&(this._controls=this._controls.filter((t=>!e.equals(t))),e.destroy&&e.destroy(),e.setPanel(null))}),this),0===this._controls.length&&this._map.removePanel(this))}_removeControl(t){this._map.controls(t).forEach((t=>{const e=this._controls.indexOf(t);-1!==e&&this._controls.splice(e,1)}))}removeClassName(t){qB(this._element)?this._className=this._className.replace(new RegExp(`s* ${t} s*`),""):this._element.classList.remove(t)}addClassName(t){qB(this._element)?this._className=this._className.concat(" ").concat(t):this._element.classList.add(t)}_moveControlView(t){const e=t.getElement();qB(this._controlsContainer)||this._controlsContainer.appendChild(e),t.fire(Gc)}_manageActivation(t){!0!==this._multiActivation&&this._controls.forEach((e=>{!e.equals(t)&&e.activated&&e.deactivate()}))}equals(t){let e=!1;return t instanceof jv&&(e=t.name===this.name),e}getTemplatePanel(){return this._element}getButtonPanel(){return this._buttonPanel}isCollapsed(){return this._collapsed}setCollapsed(t){this._collapsed=t}getControlsContainer(){return this._controlsContainer}}const Hv=jv,Xv="map-info",Wv=(t,e)=>{t.on(kc,(()=>{3===e.getControls(["wmcselector","scale","scaleline"]).length&&e.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")}))};class Kv{constructor(t={},e=(()=>null)){this.panel_=new Hv(t.name,{...t.params}),e(this.panel_)}get panel(){return this.panel_}}const Jv=t=>{let e=t.getPanels("map-info")[0];if(qB(e)){const i=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}},(e=>{Wv(e,t)}));e=i.panel}return e.addClassName("m-with-scale"),e},Zv=(t,e)=>{const i={[kv.NAME]:()=>(t=>{const e=t;if(qB(e.panel.TOOLS)){const t=new Kv({name:"tools",params:{collapsible:!0,className:"m-tools",collapsedButtonClass:"g-cartografia-herramienta",position:qv,tooltip:"Panel de herramientas"}});e.panel.TOOLS=t.panel}return e.panel.TOOLS})(e),[xI.NAME]:()=>(()=>{const t=new Kv({name:xI.NAME,params:{collapsible:!0,className:"m-layerswitcher",collapsedButtonClass:"g-cartografia-capas2",position:Vv,tooltip:Cu("layerswitcher").title}},(t=>{t.on(kc,(t=>{uL(t.querySelector(".m-panel-controls"))})),t.on(Zc,(t=>{const e=t.getControls()[0];e.registerEvents(),e.render()})),t.on($c,(t=>{t.getControls()[0].unregisterEvents()}))}));return t.panel})(),[VI.NAME]:()=>new Kv({name:VI.NAME,params:{collapsible:!1,className:"m-location",position:Yv}}).panel,[ME.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];qB(e)&&(e=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv,tooltip:"Coordenadas del puntero"}}).panel);return e.addClassName("m-with-mouse"),e})(e),[QE.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];qB(e)&&(e=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}}).panel);return e.addClassName("m-with-overview"),e})(e),[XE.NAME]:()=>new Kv({name:XE.NAME,params:{collapsible:!1,className:"m-panzoom",position:qv}}).panel,[Mu.NAME]:()=>new Kv({name:Mu.NAME,params:{collapsible:!1,className:"m-panzoombar",position:qv,tooltip:"Nivel de zoom"}}).panel,[sE.NAME]:()=>new Kv({name:sE.NAME,params:{collapsible:!1,className:"m-rotate",position:Vv}}).panel,[XI.NAME]:()=>Jv(e),[`${XI.NAME}*true`]:()=>Jv(e),[EE.NAME]:()=>(t=>{const e=new Kv({name:EE.NAME,params:{collapsible:!1,className:"m-scaleline",position:zv,tooltip:"Línea de escala"}},(e=>{Wv(e,t)}));return e.panel})(e),[mf.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];if(qB(e)){const i=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}},(e=>{Wv(e,t)}));e=i.panel}return e.addClassName("m-with-wmcselector"),e})(e)},n=i[t.name];return VB(n)?n():null};var $v=i(340),tx=i.n($v);const ex=class{constructor(t,e,i){this.text_=t,this.coord_=[e.x,e.y],this.popup_=null,this.facadeMap_=null,this.panMapIfOutOfView=i}show(t,e){this.facadeMap_=t;const i=bu(tx(),{vars:{info:this.text_},parseToHtml:!1});this.popup_=new sI({panMapIfOutOfView:this.panMapIfOutOfView}),this.popup_.addTab({icon:"g-cartografia-comentarios",title:"Información",content:i}),t.addPopup(this.popup_,this.coord_,e)}hide(){this.facadeMap_.removePopup()}getPopup(){return this.popup_}getCoordinate(){let t=this.coord;return qB(t)&&(t=this.getPopup().getCoordinate()),t}setCoordinate(t){const e=this.getPopup();qB(e)||e.setCoordinate(t)}};class ix extends Qc{constructor(t,e,i){super(new ex(t,e,i))}hide(){this.getImpl().hide()}show(t,e){this.getImpl().show(t,e)}getPopup(){return this.getImpl().getPopup()}getCoordinate(){return this.getImpl().getCoordinate()}setCoordinate(t){this.getImpl().coordinate=t}}ix.POPUP_TEMPLATE="label_popup.html";const nx=ix,rx=t=>{let e;return YB(t)?e=document.getElementById(t):zB(t)?qB(t.id)?qB(t.container)?Oc(Cu("exception").no_container):e=rx(t.container):e=document.getElementById(t.id):Oc("El tipo del parámetro container no es válido: "+typeof t),qB(e)&&Oc(Cu("exception").no_id_container),e};const sx=class{constructor(t){qB(t)&&Oc(Cu("exception").no_param),this.container=rx(t),this.layers=(t=>{let e;return YB(t)?e=WB("layers",t):zB(t)?e=t.layers:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmc=(t=>{let e;return YB(t)?(e=WB("wmc",t),qB(e)&&(e=WB("wmcfile",t)),qB(e)&&(e=WB("wmcfiles",t))):zB(t)?(e=t.wmc,qB(e)&&(e=t.wmcfile),qB(e)&&(e=t.wmcfiles)):Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wms=(t=>{let e;return YB(t)?e=WB("wms",t):zB(t)?e=t.wms:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmts=(t=>{let e;return YB(t)?e=WB("wmts",t):zB(t)?e=t.wmts:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.kml=(t=>{let e;return YB(t)?e=WB("kml",t):zB(t)?e=t.kml:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.controls=(t=>{let e;return YB(t)?e=WB("controls",t):zB(t)?e=t.controls:Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.getfeatureinfo=(t=>{let e;return YB(t)?e=WB("getfeatureinfo",t):zB(t)?(e=t.getfeatureinfo,!QB(e)&&qB(e)&&(e="plain")):Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.layerswitcher=(t=>{let e;return YB(t)?e=WB("layerswitcher",t):zB(t)?e=t.layerswitcher:Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.maxExtent=(t=>{let e;return YB(t)?(e=WB("maxExtent",t),qB(e)&&(e=WB("maxextent",t))):zB(t)?(e=t.maxExtent,qB(e)&&(e=t.maxextent)):Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.bbox=(t=>{let e;return YB(t)?e=WB("bbox",t):zB(t)?e=t.bbox:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.zoom=(t=>{let e;return YB(t)?e=WB("zoom",t):zB(t)?e=t.zoom:Oc("El tipo del parámetro zoom no es válido: "+typeof t),e})(t),this.center=(t=>{let e;return YB(t)?e=WB("center",t):zB(t)?e=t.center:Oc("El tipo del parámetro center no es válido: "+typeof t),e})(t),this.resolutions=(t=>{let e;return YB(t)?e=WB("resolutions",t):zB(t)?e=t.resolutions:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.projection=(t=>{let e;return YB(t)?e=WB("projection",t):zB(t)?e=t.projection:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.label=(t=>{let e;return YB(t)?e=WB("label",t):zB(t)?e=t.label:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.ticket=(t=>{let e;return YB(t)?e=WB("ticket",t):zB(t)?e=t.ticket:Oc("El tipo del parámetro ticket no es válido: "+typeof t),e})(t),this.rotation=(t=>{let e=t;return YB(t)?e=WB("rotation",t):zB(t)&&(e=t.rotation),e})(t),this.bgColorContainer=(t=>{let e;return YB(t)?e=WB("bgColorContainer",t):zB(t)?e=t.bgColorContainer:Oc("El tipo del parámetro bgColorContainer no es válido: "+typeof t),e})(t)}};class ox extends Qc{constructor(){super(new lx),this.id_=JB("mapea","render_feature")}getId(){return this.id_}getGeometry(){return null}getAttributes(){return this.getImpl().getAttributes()}getType(){return this.getImpl().getType()}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),qB(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qB(t)||(i=t instanceof ox?t.getAttribute(e):t[e]),i}),this))}return e}equals(t){return this.getId()===t.getId()}}const ax=ox;const lx=class{constructor(){this.olFeature_=null}getOLFeature(){return this.olFeature_}getType(){return this.getOLFeature().getType()}setOLFeature(t){qB(t)||(this.olFeature_=t)}getAttributes(){return this.olFeature_.getProperties()}static olFeature2Facade(t,e){let i=null;return qB(t)||(i=new ax,i.getImpl().setOLFeature(t)),i}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){}},hx=(t,e)=>{let i;const n=t.getId();return qB(n)||(i=e.getFeatureById(n)),qB(i)&&t instanceof Pd&&(i=lx.olFeature2Facade(t)),i};const cx=class{constructor(t={}){this.map_=null,this.defaultCursor_=void 0}addTo(t){this.map_=t}getFeaturesByLayer(t,e){const i=[];if(!qB(e)&&e.isVisible()&&!qB(e.getImpl().getOLLayer())){const n=e.getImpl().getOLLayer();this.map_.getMapImpl().forEachFeatureAtPixel(t.pixel,((t,n)=>{if(n instanceof By&&!qB(t.get("features"))){const n=t.get("features").map((t=>hx(t,e)));if(1===n.length)i.push(n[0]);else{let t=e.getStyle();t instanceof Vy||(t=t.getStyles().find((t=>t instanceof Vy))),i.push(new OL(n,{ranges:t.getRanges(),hoverInteraction:t.getOptions().hoverInteraction,maxFeaturesToSelect:t.getOptions().maxFeaturesToSelect,distance:t.getOptions().distance}))}}else Object.prototype.hasOwnProperty.call(t.getProperties(),"selectclusterlink")||i.push(hx(t,e))}),{layerFilter:t=>{let i=!1;return e.getStyle()instanceof Vy&&e.getStyle().getOptions().selectInteraction&&(i=t===e.getStyle().getImpl().selectClusterInteraction.getLayer()),i=i||t===n,i}})}return i}addCursorPointer(){const t=this.map_.getMapImpl().getViewport();"pointer"!==t.style.cursor&&(this.defaultCursor_=t.style.cursor),t.style.cursor="pointer"}removeCursorPointer(){this.map_.getMapImpl().getViewport().style.cursor=this.defaultCursor_}destroy(){this.map_.un("click",this.onMapClick_,this),this.map_=null}};const ux=class extends Qc{constructor(t={},e=new cx(t)){super(e),this.map_=null,this.layers_=[],this.activated_=!1,this.prevSelectedFeatures_={},this.prevHoverFeatures_={},VB(e.addTo)||Oc(Cu("exception").addto_method),VB(e.getFeaturesByLayer)||Oc(Cu("exception").getfeaturesbylayer_method)}addTo(t){this.map_=t,this.map_.on(pu,this.moveOverMap_.bind(this)),this.map_.on(Au,this.clickOnMap_.bind(this)),this.getImpl().addTo(this.map_),this.fire(kc)}changeNamePrevs(t,e){const i=this.prevHoverFeatures_[t],n=this.prevSelectedFeatures_[t];this.prevHoverFeatures_[e]=i,this.prevSelectedFeatures_[e]=n,delete this.prevHoverFeatures_[t],delete this.prevSelectedFeatures_[t]}clickOnMap_(t){if(!0===this.activated_){const e=this.getImpl();this.map_.removePopup(),this.layers_.forEach((i=>{const n=e.getFeaturesByLayer(t,i),r=[...this.prevSelectedFeatures_[i.id]];if(0===n.length&&r.length>0)this.unselectFeatures(r,i,t);else if(n.length>0){const e=n.filter((t=>!r.some((e=>e.equals(t))))),s=r.filter((t=>!n.some((e=>e.equals(t)))));s.length>0&&this.unselectFeatures(s,i,t),e.length>0&&this.selectFeatures(e,i,t)}}))}}moveOverMap_(t){if(!0===this.activated_){const e=this.getImpl();this.layers_.forEach((i=>{const n=e.getFeaturesByLayer(t,i),r=[...this.prevHoverFeatures_[i.id]];if(0===n.length&&r.length>0)this.leaveFeatures_(r,i,t);else if(n.length>0){const e=n.filter((t=>(t instanceof DL||t instanceof ax)&&!r.some((e=>e.equals(t))))),s=r.filter((t=>!n.some((e=>e.equals(t)))));s.length>0&&this.leaveFeatures_(s,i,t),e.length>0&&this.hoverFeatures_(e,i,t)}}))}}selectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].concat(t);const n=e.getImpl();VB(n.selectFeatures)&&n.selectFeatures(t,i.coord,i),e.fire(eu,[t,i])}unselectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].filter((e=>!t.some((t=>t.equals(e)))));const n=e.getImpl();VB(n.unselectFeatures)&&n.unselectFeatures(t,i.coord),e.fire(iu,[t,i.coord])}hoverFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].concat(t),e.fire(nu,[t,i]),this.getImpl().addCursorPointer()}leaveFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].filter((e=>!t.some((t=>t.equals(e))))),e.fire(ru,[t,i.coord]),this.getImpl().removeCursorPointer()}activate(){!1===this.activated_&&(this.activated_=!0,this.fire(Kc))}deactivate(){!0===this.activated_&&(this.activated_=!1,this.fire(Jc))}addLayer(t){lL(this.layers_,t)||(this.layers_.push(t),this.prevSelectedFeatures_[t.id]=[],this.prevHoverFeatures_[t.id]=[])}removeLayer(t){this.layers_=this.layers_.filter((e=>!e.equals(t))),this.prevSelectedFeatures_[t.id]=null,this.prevHoverFeatures_[t.id]=null,delete this.prevSelectedFeatures_[t.id],delete this.prevHoverFeatures_[t.id]}destroy(){}clearSelectedFeatures(){Object.keys(this.prevSelectedFeatures_).forEach((t=>{this.prevSelectedFeatures_[t]=[]}))}clearHoverFeatures(){Object.keys(this.prevHoverFeatures_).forEach((t=>{this.prevHoverFeatures_[t]=[]}))}};var gx=i(279),dx=i.n(gx);const Ax=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{this.loadInternal_(n).then((e=>{t(e)}))}}loadInternal_(t){return new Promise(((t,e)=>{DB(this.url_).then((e=>{const i=this.map_.getProjection().code;if(qB(e.text))Oc(Cu("exception").no_kml_response);else{const n=this.format_.readCustomFeatures(e.text,{featureProjection:i}),r=this.format_.getScreenOverlay(),s=n.map((t=>{const e=new DL(t.getId(),{geometry:{coordinates:t.getGeometry().getCoordinates(),type:t.getGeometry().getType()},properties:t.getProperties()});return e.getImpl().getOLFeature().setStyle(t.getStyle()),e}));t({features:s,screenOverlay:r})}}))}))}},px=["http://www.google.com/kml/ext/2.2"],fx=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],mx={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},_x=aA(fx,{ExtendedData:Ew,Region:Cw,MultiGeometry:eA(gw,"geometry"),LineString:eA(hw,"geometry"),LinearRing:eA(cw,"geometry"),Point:eA(dw,"geometry"),Polygon:eA(pw,"geometry"),Style:eA(mw),StyleMap:function(t,e){const i=Wx.call(this,t,e);if(!i)return;const n=e[e.length-1];if(Array.isArray(i))n.Style=i;else{if("string"!=typeof i)throw new Error("`styleMapValue` has an unknown type");n.styleUrl=i}},address:eA(vA),description:eA(vA),name:eA(vA),open:eA(fA),phoneNumber:eA(vA),styleUrl:eA(jx),visibility:eA(fA)},aA(px,{MultiTrack:eA((function(t,e){const i=hA([],iw,t,e);if(!i)return;return new bd(i)}),"geometry"),Track:eA(rw,"geometry")})),yx=aA(fx,{ExtendedData:Ew,Region:Cw,Link:function(t,e){lA(Ix,t,e)},address:eA(vA),description:eA(vA),name:eA(vA),open:eA(fA),phoneNumber:eA(vA),visibility:eA(fA)}),Ix=aA(fx,{href:eA(Yx)}),Ex=aA(fx,{Altitude:eA(yA),Longitude:eA(yA),Latitude:eA(yA),Tilt:eA(yA),AltitudeMode:eA(vA),Heading:eA(yA),Roll:eA(yA)}),Cx=aA(fx,{LatLonAltBox:function(t,e){const i=hA({},ww,t,e);if(!i)return;const n=e[e.length-1],r=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)];n.extent=r,n.altitudeMode=i.altitudeMode,n.minAltitude=parseFloat(i.minAltitude),n.maxAltitude=parseFloat(i.maxAltitude)},Lod:function(t,e){const i=hA({},Sw,t,e);if(!i)return;const n=e[e.length-1];n.minLodPixels=parseFloat(i.minLodPixels),n.maxLodPixels=parseFloat(i.maxLodPixels),n.minFadeExtent=parseFloat(i.minFadeExtent),n.maxFadeExtent=parseFloat(i.maxFadeExtent)}}),vx=aA(fx,["Document","Placemark"]),xx=aA(fx,{Document:iA((function(t,e,i){const n={node:t};uA(n,Tw,Rw,e,i,void 0,this)})),Placemark:iA(iS)});let wx,Sx,bx,Bx,Lx,Mx,Tx=null;let Rx,Nx=null;let Px,Fx=null;let Dx=null;let Ox=null;let Qx,kx=null;function Gx(t){return 32/Math.min(t[0],t[1])}function Ux(t){return t}function qx(t,e,i){return Array.isArray(t)?t:"string"==typeof t?qx(i[t],e,i):e}function Vx(t){const e=Hd(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){const t=i[1];return[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]}}function zx(t){let e=Hd(t,!1);const i=[];e=e.replace(/\s*,\s*/g,",");const n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;let r;for(;r=n.exec(e);){const t=parseFloat(r[1]),n=parseFloat(r[2]),s=r[3]?parseFloat(r[3]):0;i.push(t,n,s),e=e.substr(r[0].length)}if(""===e)return i}function Yx(t){const e=Hd(t,!1).trim();let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function jx(t){const e=Hd(t,!1).trim().replace(/^(?!.*#)/,"#");let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Hx(t){return yA(t)}const Xx=aA(fx,{Pair:function(t,e){const i=hA({},vw,t,e,this);if(!i)return;const n=i.key;if(n&&"normal"==n){const t=i.styleUrl;t&&(e[e.length-1]=t);const n=i.Style;n&&(e[e.length-1]=n)}}});function Wx(t,e){return hA(void 0,Xx,t,e,this)}const Kx=aA(fx,{Icon:eA((function(t,e){const i=hA({},sw,t,e);if(i)return i;return null})),color:eA(Vx),heading:eA(yA),hotSpot:eA((function(t){const e=t.getAttribute("xunits"),i=t.getAttribute("yunits");let n;return n="insetPixels"!==e?"insetPixels"!==i?"bottom-left":"top-left":"insetPixels"!==i?"bottom-right":"top-right",{x:parseFloat(t.getAttribute("x")),xunits:mx[e],y:parseFloat(t.getAttribute("y")),yunits:mx[i],origin:n}})),scale:eA(Hx)});const Jx=aA(fx,{color:eA(Vx),scale:eA(Hx)});const Zx=aA(fx,{color:eA(Vx),width:eA(yA)});const $x=aA(fx,{color:eA(Vx),fill:eA(fA),outline:eA(fA)});const tw=aA(fx,{coordinates:$d(zx)});function ew(t,e){return hA(null,tw,t,e)}const iw=aA(px,{Track:Zd(rw)});const nw=aA(fx,{when:function(t,e){const i=e[e.length-1].whens,n=Hd(t,!1),r=Date.parse(n);i.push(isNaN(r)?0:r)}},aA(px,{coord:function(t,e){const i=e[e.length-1].coordinates,n=Hd(t,!1),r=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);if(r){const t=parseFloat(r[1]),e=parseFloat(r[2]),n=parseFloat(r[3]);i.push([t,e,n])}else i.push([])}}));function rw(t,e){const i=hA({coordinates:[],whens:[]},nw,t,e);if(!i)return;const n=[],r=i.coordinates,s=i.whens;for(let t=0,e=Math.min(r.length,s.length);t0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=hA(void 0,Bw,t,e);if(i){e[e.length-1][0]=i}}});function pw(t,e){const i=hA({},lw,t,e),n=hA([null],Aw,t,e);if(n&&n[0]){const t=n[0],e=[t.length];for(let i=1,r=n.length;i0;let o;const a=r.href;let l,h,c;a?o=a:s&&(o=Mx);let u="bottom-left";const g=i.hotSpot;let d;g?(l=[g.x,g.y],h=g.xunits,c=g.yunits,u=g.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=Sx,h=bx,c=Bx):o.includes("arrow-reverse")?(l=[54,42],h=bx,c=Bx):o.includes("paddle")&&(l=[32,1],h=bx,c=Bx));const A=r.x,p=r.y;let f;void 0!==A&&void 0!==p&&(d=[A,p]);const m=r.w,_=r.h;let y;void 0!==m&&void 0!==_&&(f=[m,_]);const I=i.heading;void 0!==I&&(y=mt(I));const E=i.scale,C=i.color;if(s){o==Mx&&(f=Lx);const t=new Hf({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:d,offsetOrigin:"bottom-left",rotation:y,scale:E,size:f,src:this.iconUrlFunction_(o),color:C}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Cg||i===vg){const n=function(){const i=t.getImageState();if(i!==Cg&&i!==vg){const i=t.getSize();if(i&&2==i.length){const n=Gx(i);t.setScale(e*n)}t.unlistenImageChange(n)}};t.listenImageChange(n),i===Cg&&t.load()}}else if(2==i.length){const n=Gx(i);t.setScale(e*n)}n.imageStyle=t}else n.imageStyle=Rx},LabelStyle:function(t,e){const i=hA({},Jx,t,e);if(!i)return;const n=e[e.length-1],r=new Fm({fill:new wm({color:"color"in i?i.color:wx}),scale:i.scale});n.textStyle=r},LineStyle:function(t,e){const i=hA({},Zx,t,e);if(!i)return;const n=e[e.length-1],r=new bm({color:"color"in i?i.color:wx,width:"width"in i?i.width:1});n.strokeStyle=r},PolyStyle:function(t,e){const i=hA({},$x,t,e);if(!i)return;const n=e[e.length-1],r=new wm({color:"color"in i?i.color:wx});n.fillStyle=r;const s=i.fill;void 0!==s&&(n.fill=s);const o=i.outline;void 0!==o&&(n.outline=o)}});function mw(t,e){const i=hA({},fw,t,e,this);if(!i)return null;let n="fillStyle"in i?i.fillStyle:Tx;const r=i.fill;let s;void 0===r||r||(n=null),"imageStyle"in i?i.imageStyle!=Rx&&(s=i.imageStyle):s=Nx;const o="textStyle"in i?i.textStyle:Dx,a="strokeStyle"in i?i.strokeStyle:Fx,l=i.outline;return void 0===l||l?[new Nm({fill:n,image:s,stroke:a,text:o,zIndex:void 0})]:[new Nm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Od(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:n,image:s,stroke:a,text:o,zIndex:void 0}),new Nm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Od(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:n,stroke:null,zIndex:void 0})]}function _w(t,e){const i=e.length,n=new Array(e.length),r=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t0){const t=oA(r,o);uA(n,$w,eS,[{names:o,values:t}],i)}const u=i[0];let g=e.getGeometry();g&&(g=KE(g,!0,u)),uA(n,$w,zw,[g],i)}const nS=aA(fx,["extrude","tessellate","altitudeMode","coordinates"]),rS=aA(fx,{extrude:iA(xA),tessellate:iA(xA),altitudeMode:iA(bA),coordinates:iA((function(t,e,i){const n=i[i.length-1],r=n.layout,s=n.stride;let o;if("XY"==r||"XYM"==r)o=2;else{if("XYZ"!=r&&"XYZM"!=r)throw new Error("Invalid geometry layout");o=3}const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Qx||(Qx=document.createElement("textarea")),Qx.innerHTML=l,l=Qx.value));let c=i;if(t?c=t:e&&(c=qx(e,i,n)),a){const t=function(t,e){const i=[0,0];let n="start";const r=t.getImage();if(r){const t=r.getSize();if(t&&2==t.length){const e=r.getScaleArray(),s=r.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),n="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||Dx.getFont()),s.setScale(s.getScale()||Dx.getScale()),s.setFill(s.getFill()||Dx.getFill()),s.setStroke(s.getStroke()||Px)):s=Dx.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(n);const o=new Nm({image:r,text:s});return o}(c[0],l);if(h.length>0){t.setGeometry(new Od(h));return[t,new Nm({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(t)}return delete i.Style,n.setProperties(i,!0),n}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const n=mw.call(this,t,e);if(n){let e,r=t.baseURI;if(r&&"about:blank"!=r||(r=window.location.href),r){e=new URL("#"+i,r).href}else e="#"+i;this.sharedStyles_[e]=n}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const n=Wx.call(this,t,e);if(!n)return;let r,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){r=new URL("#"+i,s).href}else r="#"+i;this.sharedStyles_[r]=n}readFeatureFromNode(t,e){if(!fx.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!fx.includes(t.namespaceURI))return[];let i;const n=t.localName;if("Document"==n||"Folder"==n)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==n){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){i=[];for(let n=t.firstElementChild;n;n=n.nextElementSibling){const t=this.readFeaturesFromNode(n,e);t&&_s(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=Kd(t);return this.readNameFromDocument(e)}return Wd(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(fx.includes(e.namespaceURI)&&"name"==e.localName)return vA(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(fx.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readNetworkLinksFromDocument(i))}else Wd(t)?_s(e,this.readNetworkLinksFromDocument(t)):_s(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&_s(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=hA({},yx,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||_s(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readRegionFromDocument(i))}else Wd(t)?_s(e,this.readRegionFromDocument(t)):_s(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&_s(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"Region"==i.localName){const t=hA({},Cx,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||_s(e,this.readRegionFromNode(i))}return e}readCamera(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readCameraFromDocument(i))}else Wd(t)?_s(e,this.readCameraFromDocument(t)):_s(e,this.readCameraFromNode(t));return e}readCameraFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType===Node.ELEMENT_NODE&&_s(e,this.readCameraFromNode(i));return e}readCameraFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"Camera"===i.localName){const t=hA({},Ex,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!==t&&"Folder"!==t&&"Placemark"!==t&&"kml"!==t||_s(e,this.readCameraFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=jd(fx[4],"kml"),n="http://www.w3.org/2000/xmlns/";i.setAttributeNS(n,"xmlns:gx",px[0]),i.setAttributeNS(n,"xmlns:xsi",Yd),i.setAttributeNS(Yd,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const r={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=vx[i.namespaceURI],a=oA(s,o);return uA(r,xx,sA,a,[e],o,this),i}};class fS extends pS{constructor(t={}){super(),this.screenOverlay_=null,this.label_=void 0===t.label||t.label}readCustomFeatures(t,e){const i=this.readFeatures(t,e).map((t=>{let e=t.getStyle()(t);if(!1===this.label_){const i=[e[0]];t.setStyle(i)}return Array.isArray(e)||(e=[e]),e.forEach((t=>{if(t.getImage()instanceof Hf){const e=t.getImage();t.setImage(e)}})),t.set("name",AL(t.get("name"))),t}));return this.readScreenOverlay(t),i}readScreenOverlay(t){const e="xunits",i="yunits",n=Kd(t).querySelector("ScreenOverlay");if(null!==n){const t=n.querySelector("Icon"),r=null!==t?t.querySelector("href").innerHTML:fS.DEFAULT_NO_IMAGE_STYLE;let s,o,a;const l=n.querySelector("overlayXY");if(null!==l){s=[parseFloat(l.getAttribute("x")),parseFloat(l.getAttribute("y"))],o=l.getAttribute(e),a=l.getAttribute(i)}let h,c,u;const g=n.querySelector("screenXY");if(null!==g){h=[parseFloat(g.getAttribute("x")),parseFloat(g.getAttribute("y"))],c=g.getAttribute(e),u=g.getAttribute(i)}else r===fS.DEFAULT_IMAGE_STYLE_SRC?(h=fS.DEFAULT_IMAGE_STYLE_ANCHOR,c=fS.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS,u=fS.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(h=[.5,0],c=Hf.FRACTION,u=Hf.FRACTION);let d,A,p;const f=n.querySelector("rotationXY");if(null!==f){const t=parseFloat(f.getAttribute("x"));d=Math.PI/180*t,A=f.getAttribute(e),p=f.getAttribute(i)}let m,_,y;const I=n.querySelector("size");if(null!==I){m=[parseFloat(I.getAttribute("x")),parseFloat(I.getAttribute("y"))],_=I.getAttribute(e),y=I.getAttribute(i)}this.screenOverlay_={screenXY:h,screenXUnits:c,screenYUnits:u,overlayXY:s,overlayXUnits:o,overlayYUnits:a,rotationXY:d,rotationXUnits:A,rotationYUnits:p,size:m,sizeXUnits:_,sizeYUnits:y,src:r}}}getScreenOverlay(){return this.screenOverlay_}}fS.DEFAULT_NO_IMAGE_STYLE="NO_IMAGE",fS.DEFAULT_IMAGE_STYLE_SRC="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",fS.DEFAULT_IMAGE_STYLE_ANCHOR=[20,2],fS.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS="pixels",fS.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS="pixels";const mS=fS;class _S extends hI{constructor(t,e){super(t,e),this.popup_=null,this.tabPopup_=null,this.loadFeaturesPromise_=null,this.screenOverlayImg_=null,this.label_=t.label}setVisible(t){if(this.visibility=t,qB(this.ol3Layer)||this.ol3Layer.setVisible(t),!qB(this.screenOverlayImg_)){let e="none";!0===t&&(e="inherit"),this.screenOverlayImg_.style[e]=e}}addTo(t){this.map=t,this.fire(kc),t.on(hu,this.setProjection_.bind(this),this),this.formater_=new mS({label:this.label_}),this.loader_=new Ax(this.map,this.url,this.formater_),this.ol3Layer=new Sy(hL({},this.vendorOptions_,!0)),this.updateSource_(),!1!==this.options.visibility&&this.setVisible(this.inRange()),null!==this.zIndex_&&this.setZIndex(this.zIndex_);this.map.getMapImpl().addLayer(this.ol3Layer)}selectFeatures(t,e,i){const n=t[0];if(!(n instanceof OL)&&!0===this.extract){const t=n.getAttribute("name"),e=n.getAttribute("description"),i=n.getImpl().getOLFeature().getGeometry().getFirstCoordinate(),r=bu(dx(),{vars:{name:t,desc:e},parseToHtml:!1});this.tabPopup_={icon:"g-cartografia-comentarios",title:t,content:r};const s=this.map.getPopup();qB(s)?(this.popup_=new sI,this.popup_.addTab(this.tabPopup_),this.map.addPopup(this.popup_,i)):s.addTab(this.tabPopup_)}}unselectFeatures(){qB(this.popup_)||(this.popup_.hide(),this.popup_=null)}updateSource_(){qB(this.vendorOptions_.source)&&this.requestFeatures_().then((t=>{this.ol3Layer.setSource(new kf({loader:()=>{const e=t.screenOverlay;if(this.facadeVector_.clear(),this.facadeVector_.addFeatures(t.features),this.fire(su,[t.features]),!qB(e)){const t=qd.addOverlayImage(e,this.map);this.setScreenOverlayImg(t)}}})),this.facadeVector_.addFeatures(t.features)}))}setScreenOverlayImg(t){this.screenOverlayImg_=t}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.removePopup(),this.options=null,this.map=null}removePopup(){qB(this.popup_)||(this.popup_.getTabs().length>1?this.popup_.removeTab(this.tabPopup_):this.map.removePopup())}requestFeatures_(){return qB(this.loadFeaturesPromise_)&&(this.loadFeaturesPromise_=new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))),this.loadFeaturesPromise_}equals(t){let e=!1;return t instanceof _S&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract),e}}const yS=_S;class IS extends _I{constructor(t,e={},i={}){const n=fg(t,Ru),r={...e,label:n.label};super(n,e,void 0,new yS(r,i)),QB(yS)&&Oc(Cu("exception").kmllayer_method),qB(t)&&Oc(Cu("exception").no_param),this.extract=n.extract,this.options=e,this.label=n.label}get type(){return Ru}set type(t){QB(t)||qB(t)||t===Ru||Oc("El tipo de capa debe ser '".concat(Ru).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){qB(t)?this.getImpl().extract=!0:YB(t)?this.getImpl().extract="true"===XB(t):this.getImpl().extract=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}equals(t){let e=!1;return t instanceof IS&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.id===t.id),e}}const ES=IS;function CS(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}const vS=class extends WE{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(CS(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(CS(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return js()}readFeaturesFromObject(t,e){return js()}readGeometry(t,e){return this.readGeometryFromObject(CS(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return js()}readProjection(t){return this.readProjectionFromObject(CS(t))}readProjectionFromObject(t){return js()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return js()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return js()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return js()}};function xS(t,e){if(!t)return null;let i;switch(t.type){case"Point":i=function(t){return new qa(t.coordinates)}(t);break;case"LineString":i=function(t){return new wd(t.coordinates)}(t);break;case"Polygon":i=function(t){return new sl(t.coordinates)}(t);break;case"MultiPoint":i=function(t){return new Id(t.coordinates)}(t);break;case"MultiLineString":i=function(t){return new bd(t.coordinates)}(t);break;case"MultiPolygon":i=function(t){return new Md(t.coordinates)}(t);break;case"GeometryCollection":i=function(t,e){const i=t.geometries.map((function(t){return xS(t,e)}));return new Od(i)}(t);break;default:throw new Error("Unsupported GeoJSON type: "+t.type)}return KE(i,!1,e)}function wS(t,e){const i=(t=KE(t,!0,e)).getType();let n;switch(i){case"Point":n=function(t,e){return{type:"Point",coordinates:t.getCoordinates()}}(t);break;case"LineString":n=function(t,e){return{type:"LineString",coordinates:t.getCoordinates()}}(t);break;case"Polygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"Polygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"MultiPoint":n=function(t,e){return{type:"MultiPoint",coordinates:t.getCoordinates()}}(t);break;case"MultiLineString":n=function(t,e){return{type:"MultiLineString",coordinates:t.getCoordinates()}}(t);break;case"MultiPolygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"MultiPolygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"GeometryCollection":n=function(t,e){e=Object.assign({},e),delete e.featureProjection;const i=t.getGeometriesArray().map((function(t){return wS(t,e)}));return{type:"GeometryCollection",geometries:i}}(t,e);break;case"Circle":n={type:"GeometryCollection",geometries:[]};break;default:throw new Error("Unsupported geometry type: "+i)}return n}const SS=class extends vS{constructor(t){t=t||{},super(),this.dataProjection=ee(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=ee(t.featureProjection)),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let i=null;i="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const n=xS(i.geometry,e),r=new _d;return this.geometryName_?r.setGeometryName(this.geometryName_):this.extractGeometryName_&&"geometry_name"in i!==void 0&&r.setGeometryName(i.geometry_name),r.setGeometry(n),"id"in i&&r.setId(i.id),i.properties&&r.setProperties(i.properties,!0),r}readFeaturesFromObject(t,e){let i=null;if("FeatureCollection"===t.type){i=[];const n=t.features;for(let t=0,r=n.length;tthis.writeFeatureObject(t.getImpl().getOLFeature())))}read(t,e,i){let n=[],r=i.code;qB(r)&&(r=qB(i.featureProjection)?ee(i.getCode()):ee(i.featureProjection.getCode()));const s=bS.readProjectionFromObject(t);return n=e.map((t=>{const e=t.id,i=new DL(e,t),n=i.getImpl().getOLFeature();let o;return n.getGeometry()&&(o=n.getGeometry().transform(s,r)),n.setGeometry(o),i})),n}}const BS=bS;const LS=class extends Qc{constructor(t={}){super(new BS(t)),QB(BS)&&Oc(Cu("exception").geojson_method)}write(t){let e=t;return UB(e)||(e=[e]),this.getImpl().write(e)}read(t,e){let i=t,n=[];if(!qB(i)){YB(i)&&(i=JSON.parse(i));let t=[];"FeatureCollection"===i.type?t=i.features:"Feature"===i.type&&(t=[i]),n=this.getImpl().read(i,t,e)}return n}};const MS=class{constructor(t={}){this.rootPrefix=null,this.namespaces={ol:"http://openlayers.org/context",wmc:"http://www.opengis.net/context",sld:"http://www.opengis.net/sld",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",ogc:"http://www.opengis.net/ogc",wmcext:"http://wmcext.org/context"},this.options=t}read(t){let e=t;YB(t)&&(e=Kd(t)),9!==e.nodeType&&Oc(Cu("exception").must_be_document);const i={};return this.readRoot(i,e),i}readRoot(t,e){const i=t,n=e.documentElement;this.rootPrefix=n.prefix,i.version=n.getAttribute("version"),this.runChildNodes(i,n)}runChildNodes(t,e){const i=e.childNodes;let n,r,s,o;for(let e=0,a=i.length;e(t.typeName===this.typeName_&&(e.properties=t.properties,e.properties.some((t=>(dL(t.localType)&&(e.geometryName=t.name),dL(t.localType))))),t.typeName===this.typeName_))),e}};const NS=class{constructor(t,e){this.url_=t.url,this.namespace_=t.namespace,this.name_=t.name,this.typeName_=this.name_,qB(this.namespace_)||(this.typeName_=this.namespace_.concat(":").concat(this.name_)),this.version_=t.version,this.ids_=t.ids,this.cql_=t.cql,this.projection_=t.projection,this.getFeatureOutputFormat_=t.getFeatureOutputFormat,qB(this.getFeatureOutputFormat_)&&(this.getFeatureOutputFormat_="application/json"),this.describeFeatureTypeOutputFormat_=t.describeFeatureTypeOutputFormat,this.getFeatureVendor_={},qB(e)||qB(e.getFeature)||(this.getFeatureVendor_=e.getFeature),this.describeFeatureTypeVendor_={},qB(e)||qB(e.describeFeatureType)||(this.describeFeatureTypeVendor_=e.describeFeatureType)}getDescribeFeatureType(){const t={service:"WFS",version:this.version_,request:"DescribeFeatureType",typename:this.typeName_};qB(this.describeFeatureTypeOutputFormat_)||(t.outputFormat=this.describeFeatureTypeOutputFormat_);const e=M.config.ticket?`${this.url_}ticket=${M.config.ticket}`:this.url_,i=KB(e,t),n=KB(i,this.describeFeatureTypeVendor_),r=this.describeFeatureTypeOutputFormat_,s=new RS(this.name_,r,this.projection_);return new Promise(((t,e)=>{DB(n).then((e=>{t(s.read(e))}))}))}getFeatureUrl(t,e){const i={service:"WFS",version:this.version_,request:"GetFeature",typename:this.typeName_,outputFormat:this.getFeatureOutputFormat_,srsname:e.getCode()};return qB(this.ids_)||(i.featureId=this.ids_.map((t=>this.name_.concat(".").concat(t)))),qB(this.cql_)?qB(t)||(i.bbox=`${t.join(",")},${e.getCode()}`):i.CQL_FILTER=this.cql_,KB(KB(this.url_,i),this.getFeatureVendor_)}},PS=cC;PS.prototype.writeFeatures,PS.prototype.writeFeaturesNode;const FS=PS;const DS=class extends FS{constructor(t={}){super(t)}};const OS=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.service_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{const r=this.getRequestUrl_(e,n);this.loadInternal_(r,n).then(t.bind(this))}}loadInternal_(t,e){let i=t;return new Promise(((t,n)=>{YB(M.config.ticket)&&(i=KB(i,{ticket:M.config.ticket})),DB(i).then((i=>{if(!qB(i.text)&&i.text.indexOf("ServiceExceptionReport")<0){const n=this.format_.read(i.text,e);t(n)}else 401===i.code?AI(Cu("dialog").unauthorized_user):i.text.indexOf("featureId and cql_filter")>=0?AI(Cu("dialog").only_one_filter):Oc(Cu("exception").no_getfeature_response)}))}))}getRequestUrl_(t,e){return this.service_.getFeatureUrl(null,e)}};class QS extends hI{constructor(t={},e){super(t,e),this.describeFeatureType_=null,this.formater_=null,this.loader_=null,this.service_=null,this.loaded_=!1,qB(this.options.getFeatureOutputFormat)&&(this.options.getFeatureOutputFormat="application/json")}addTo(t){super.addTo(t),t.getImpl().on(au,(()=>this.refresh()))}refresh(t){t&&this.facadeVector_.removeFeatures(this.facadeVector_.getFeatures(!0)),this.updateSource_(t)}updateSource_(t){qB(this.vendorOptions_.source)&&(this.service_=new NS({url:this.url,namespace:this.namespace,name:this.name,version:this.version,ids:this.ids,cql:this.cql,projection:this.map.getProjection(),getFeatureOutputFormat:this.options.getFeatureOutputFormat,describeFeatureTypeOutputFormat:this.options.describeFeatureTypeOutputFormat},this.options.vendor),/json/gi.test(this.options.getFeatureOutputFormat)?this.formater_=new LS({defaultDataProjection:ee(this.map.getProjection().code)}):this.formater_=new DS(this.name,this.version,this.map.getProjection()),this.loader_=new OS(this.map,this.service_,this.formater_),this.requestFeatures_().then((e=>{const i=this.facadeVector_.getStyle()instanceof Vy;let n=null;if(qB(this.ol3Layer)||(n=this.ol3Layer.getSource()),!0===t||qB(n)){const t=new kf({loader:()=>{this.loaded_=!0,this.facadeVector_.addFeatures(e),this.fire(su,[e]),this.facadeVector_.redraw()}});if(i){const e=this.facadeVector_.getStyle().getOptions().distance,i=new Gf({distance:e,source:t});this.ol3Layer.setStyle(this.facadeVector_.getStyle().getImpl().olStyleFn),this.ol3Layer.setSource(i)}else this.ol3Layer&&this.ol3Layer.setSource(t)}else i&&(n=n.getSource()),n.set("format",this.formater_),n.set("loader",this.loader_.getLoaderFn((t=>{this.loaded_=!0,this.facadeVector_.addFeatures(t),this.fire(su,[t]),this.facadeVector_.redraw()}))),n.set("strategy",Pf),i||n.changed()})))}setCQL(t){this.cql=t,this.refresh(!0)}getDescribeFeatureType(){return qB(this.describeFeatureType_)&&(this.describeFeatureType_=this.service_.getDescribeFeatureType().then((t=>(qB(t)||(this.formater_=new BS({geometryName:t.geometryName,defaultDataProjection:ee(this.map.getProjection().code)})),t)))),this.describeFeatureType_}getDefaultValue(t){let e;return e="dateTime"===t?"0000-00-00T00:00:00":"date"===t?"0000-00-00":"time"===t?"00:00:00":"duration"===t?"P0Y":"int"===t||"number"===t||"float"===t||"double"===t||"decimal"===t||"short"===t||"byte"===t||"integer"===t||"long"===t||"negativeInteger"===t||"nonNegativeInteger"===t||"nonPositiveInteger"===t||"positiveInteger"===t||"unsignedLong"===t||"unsignedInt"===t||"unsignedShort"===t||"unsignedByte"===t?0:"hexBinary"===t?null:"-",e}isLoaded(){return this.loaded_}requestFeatures_(){return new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))}equals(t){let e=!1;return t instanceof QS&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}}const kS=QS,GS="POINT",US="LINE",qS="POLYGON",VS="MPOINT",zS="MLINE",YS="MPOLYGON",jS=t=>{const e=XB(t,!0);return s[e]};class HS extends _I{constructor(t,e={},i={},n=new kS(e,i)){const r=fg(t,Pu);super(r,e,void 0,n),QB(kS)&&Oc(Cu("exception").wfslayer_method),qB(t)&&Oc(Cu("exception").no_param),this.namespace=r.namespace,this.legend=r.legend,this.cql=r.cql,this.geometry=r.geometry,this.ids=r.ids,this.version=r.version,this.options=e,this.extract=r.extract}get type(){return Pu}set type(t){QB(t)||qB(t)||t===Pu||Oc("El tipo de capa debe ser '".concat(Pu).concat("' pero se ha especificado '").concat(t).concat("'"))}get namespace(){return this.getImpl().namespace}set namespace(t){this.getImpl().namespace=t}get legend(){return this.getImpl().legend}set legend(t){qB(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get geometry(){return this.getImpl().geometry}set geometry(t){if(!qB(t)){const e=jS(t);qB(e)&&Oc(`El tipo de capa WFS ${t} no se reconoce. Los tipos disponibles son: POINT, LINE, POLYGON, MPOINT, MLINE, MPOLYGON`),this.getImpl().geometry=e}}get ids(){return this.getImpl().ids}set ids(t){qB(t)?this.getImpl().ids=this.ids:this.getImpl().ids=t}get version(){return this.getImpl().version}set version(t){qB(t)?this.getImpl().version="1.0.0":this.getImpl().version=t}setCQL(t){let e=t;this.getImpl().getDescribeFeatureType().then((t=>{if(!qB(e)){const i=t.geometryName;e=e.replace(/{{geometryName}}/g,i)}this.getImpl().cql!==e&&this.getImpl().setCQL(e)}))}setStyle(t,e=!1,i=HS.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}equals(t){let e=!1;return t instanceof HS&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}HS.DEFAULT_PARAMS={fill:{color:"rgba(103, 175, 19, 0.2)",opacity:.4},stroke:{color:"#67af13",width:1}},HS.DEFAULT_OPTIONS_STYLE={point:{...HS.DEFAULT_PARAMS,radius:5},line:{...HS.DEFAULT_PARAMS},polygon:{...HS.DEFAULT_PARAMS}};const XS=HS;const WS=class extends MS{readsldMinScaleDenominator(t,e){t.options.minScale=parseFloat(MS.getChildValue(e))}readolgroup(t,e){const i=t;if(UB(i)){const t=i[0],n=i[1],r=t.layerGroups,s=new Cf({id:e.getAttribute("id"),title:e.getAttribute("title"),order:e.getAttribute("orderInsideGroupDisplay")});qB(n)?r.push(s):n.addChild(s),this.runChildNodes([t,s],e)}else i.layerGroups=[],this.runChildNodes([i],e)}readwmcLayer(t,e){const i=t,n={params:this.layerParams||{},options:{visibility:"1"!==e.getAttribute("hidden"),queryable:"1"===e.getAttribute("queryable")},formats:[],styles:[]};this.runChildNodes(n,e),n.params.isWMC="ok",n.params.layers=n.name,n.options.wmcMaxExtent=n.maxExtent,n.options.wmcGlobalMaxExtent=i.maxExtent;const r=this.getLayerFromInfo(n),s=n.options.groupDisplayLayerSwitcher,o=n.options.orderInsideGroupDisplayLayerSwitcher,a=i.layerGroups,l=Cf.findGroupById(s,a);if(null!=n.styles&&null!=n.styles[0]){const t=n.styles[0];if(null!=t.legend&&t.legend.href){const e=t.legend.href;r.setLegendURL(e)}}qB(l)?(qB(i.layers)&&(i.layers=[]),i.layers.push(r)):l.addChild(r,parseInt(o,10))}getLayerFromInfo(t){const e=t.options;e.params=t.params;return new rf({name:t.name,legend:t.title,url:t.href,transparent:!/^1|(true)$/i.test(e.isBaseLayer),version:t.params.version},e)}readolunits(t,e){t.units=MS.getChildValue(e)}readoltileSize(t,e){t.tileSize={width:parseFloat(e.getAttribute("width")),height:parseFloat(e.getAttribute("height"))}}readolgroupDisplayLayerSwitcher(t,e){t.options.groupDisplayLayerSwitcher=MS.getChildValue(e)}readolorderInsideGroupDisplayLayerSwitcher(t,e){t.options.orderInsideGroupDisplayLayerSwitcher=MS.getChildValue(e)}readsldMaxScaleDenominator(t,e){t.options.maxScale=parseFloat(MS.getChildValue(e))}readwmcStyle(t,e){const i=t,n={};this.runChildNodes(n,e),"1"===e.getAttribute("current")&&(n.legend&&(i.params.layerLegend=n.legend),n.href?i.params.sld=n.href:n.body?i.params.sld_body=n.body:i.params.styles=n.name),i.styles.push(n)}readwmcGeneral(t,e){this.runChildNodes(t,e)}readwmcBoundingBox(t,e){const i=t;i.projection=e.getAttribute("SRS"),i.bounds=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLayerList(t,e){const i=t;i.layers=[],this.runChildNodes(i,e)}readwmcExtension(t,e){this.runChildNodes(t,e)}readolmaxExtent(t,e){const i=t;let n=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))],r=this.options.projection,s=i.projection;qB(r)||qB(s)||r===s||(s=ee(s),r=ee(r),n=qd.transformExtent(n,s,r)),i.maxExtent=n}readoltransparent(t,e){t.params.transparent=MS.getChildValue(e)}readolnumZoomLevels(t,e){t.options.numZoomLevels=parseInt(MS.getChildValue(e),10)}readolopacity(t,e){t.options.opacity=parseFloat(MS.getChildValue(e))}readolsingleTile(t,e){t.options.singleTile="true"===MS.getChildValue(e)}readolisBaseLayer(t,e){t.options.isBaseLayer="true"===MS.getChildValue(e)}readoldisplayInLayerSwitcher(t,e){const i=t,n=XB(MS.getChildValue(e));i.options.displayInLayerSwitcher="true"===n}readwmcServer(t,e){const i=t;i.params.version=e.getAttribute("version"),this.runChildNodes(i,e)}readwmcFormatList(t,e){this.runChildNodes(t,e)}readwmcFormat(t,e){const i=t,n=MS.getChildValue(e);i.formats.push(n),"1"===e.getAttribute("current")&&(i.params.format=n)}readwmcStyleList(t,e){this.runChildNodes(t,e)}readwmcSLD(t,e){this.runChildNodes(t,e)}readsldStyledLayerDescriptor(t,e){t.body=Hd(e)}readwmcOnlineResource(t,e){t.href=this.getAttributeNS(e,this.namespaces.xlink,"href")}readwmcName(t,e){const i=t,n=MS.getChildValue(e);if(n){i["name"]=n}}readwmcTitle(t,e){const i=t,n=MS.getChildValue(e);if(n){i["title"]=n}}readwmcMetadataURL(t,e){const i=t,n={},r=e.getElementsByTagName("OnlineResource");r.length>0&&this.readwmcOnlineResource(n,r[0]);i.options.metadataURL=n.href}readwmcextmetadata(t,e){t.options.metadataUrl=e&&e.innerHTML}readwmcAbstract(t,e){const i=t,n=MS.getChildValue(e);if(n){i["abstract"]=n}}readwmcLatLonBoundingBox(t,e){t.llbbox=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLegendURL(t,e){const i=t,n={width:e.getAttribute("width"),height:e.getAttribute("height")},r=e.getElementsByTagName("OnlineResource");r.length>0&&this.readwmcOnlineResource(n,r[0]);i.legend=n}readsldFeatureTypeStyle(t,e){t.body=Hd(e)}readwmcKeywordList(t,e){const i=t,n="keywords";i[n]=[],this.runChildNodes(i[n],e)}readwmcKeyword(t,e){t.push(MS.getChildValue(e))}readwmcLogoURL(t,e){t.logo={width:e.getAttribute("width"),height:e.getAttribute("height"),format:e.getAttribute("format"),href:this.getOnlineResource_href(e)}}readwmcDescriptionURL(t,e){t.descriptionURL=this.getOnlineResource_href(e)}readwmcContactInformation(t,e){const i=t,n={};this.runChildNodes(n,e);i.contactInformation=n}readwmcContactPersonPrimary(t,e){const i=t,n={};this.runChildNodes(n,e);i.personPrimary=n}readwmcContactPerson(t,e){const i=t,n=MS.getChildValue(e);if(n){i["person"]=n}}readwmcContactOrganization(t,e){const i=t,n=MS.getChildValue(e);if(n){i["organization"]=n}}readwmcContactPosition(t,e){const i=t,n=MS.getChildValue(e);if(n){i["position"]=n}}readwmcContactAddress(t,e){const i=t,n={};this.runChildNodes(n,e);i.contactAddress=n}readwmcAddressType(t,e){const i=t,n=MS.getChildValue(e);if(n){i["type"]=n}}readwmcAddress(t,e){const i=t,n=MS.getChildValue(e);if(n){i["address"]=n}}readwmcCity(t,e){const i=t,n=MS.getChildValue(e);if(n){i["city"]=n}}readwmcStateOrProvince(t,e){const i=t,n=MS.getChildValue(e);if(n){i["stateOrProvince"]=n}}readwmcPostCode(t,e){const i=t,n=MS.getChildValue(e);if(n){i["postcode"]=n}}readwmcCountry(t,e){const i=t,n=MS.getChildValue(e);if(n){i["country"]=n}}readwmcContactVoiceTelephone(t,e){const i=t,n=MS.getChildValue(e);if(n){i["phone"]=n}}readwmcContactFacsimileTelephone(t,e){const i=t,n=MS.getChildValue(e);if(n){i["fax"]=n}}readwmcContactElectronicMailAddress(t,e){const i=t,n=MS.getChildValue(e);if(n){i["email"]=n}}readwmcDataURL(t,e){t.dataURL=this.getOnlineResource_href(e)}readwmcDimensionList(t,e){const i=t,n="dimensions";i[n]={},this.runChildNodes(i[n],e)}readwmcDimension(t,e){const i=t,n={name:e.getAttribute("name").toLowerCase(),units:e.getAttribute("units")||"",unitSymbol:e.getAttribute("unitSymbol")||"",userValue:e.getAttribute("userValue")||"",nearestValue:"1"===e.getAttribute("nearestValue"),multipleValues:"1"===e.getAttribute("multipleValues"),current:"1"===e.getAttribute("current"),default:e.getAttribute("default")||""},r=MS.getChildValue(e);n.values=r.split(",");i[n.name]=n}};class KS extends MS{constructor(t){super(t),this.version=null,this.parser=null}readFromDocument(t){9!==t.nodeType&&Oc(Cu("exception").must_be_document);const e=t.documentElement;this.version=e.getAttribute("version"),this.version||(this.version=KS.DEFAULT_VERSION);const i="v".concat(XB(this.version).replace(/\./g,""));this.parser=new KS[i](this.options);return this.parser.read(t)}}KS.v110=WS;const JS=KS;class ZS extends Vd{constructor(t){super(t),this.selected=!1,this.layers=[],this.groups=[],this.loadContextPromise=null,this.maxExtent=null,this.extentProj_=null}addTo(t){this.map=t,this.fire(kc)}select(){!1===this.selected&&(this.map.getWMC().forEach((t=>t.unselect())),this.selected=!0,this.loadContextPromise=new Promise(((t,e)=>{DB(this.url).then((e=>{let i;!1===this.map.defaultProj&&(i=this.map.getProjection().code);const n=e.xml,r=new JS({projection:i}).readFromDocument(n);t.call(this,r)}))})),this.loadContextPromise.then((t=>{if(this.map.defaultProj){const e=ee(t.projection);this.map.setProjection({code:e.getCode(),units:e.getUnits()},!0)}this.loadLayers(t),this.map.fire(lu,this)})))}unselect(){if(!0===this.selected&&(this.selected=!1,qB(this.layers)||this.map.removeLayers(this.layers),!qB(this.groups))){const t=[...this.groups];this.groups=[],this.map.removeLayerGroup(t)}}loadLayers(t){this.layers=t.layers,this.maxExtent=t.maxExtent,qB(t.layerGroups)?this.groups=[]:this.groups=this.groups.concat(t.layerGroups),this.layers.forEach((t=>t.setWMCParent(this.facadeLayer_))),this.map.addWMS(this.layers,!0),this.map.addLayerGroup(this.groups),this.layers.forEach(((t,e)=>t.setZIndex(this.getZIndex()+e))),this.groups.forEach(((t,e)=>t.setZIndex(this.getZIndex()+e))),this.facadeLayer_.fire(su,[this.layers]),this.facadeLayer_.fire(su,[this.groups])}setFacadeObj(t){this.facadeLayer_=t}getMaxExtent(t){return qB(this.maxExtent)&&this.loadContextPromise.then((e=>{this.maxExtent=e.maxExtent,VB(t)&&t(this.maxExtent)})),!qB(this.maxExtent)&&VB(t)&&t(this.maxExtent),this.maxExtent}calculateMaxExtent(){return new Promise((t=>this.getMaxExtent(t)))}getLayers(){return this.layers}destroy(){qB(this.layers)||this.map.removeLayers(this.layers),this.map=null,this.layers.length=0,this.wmcDocument=null}equals(t){let e=!1;return t instanceof ZS&&(e=this.url===t.url,e=e&&this.name===t.name),e}}const $S=ZS;class tb extends _g{constructor(t,e){const i=new $S(e);if(super(fg(t,Tu),i),QB($S)&&Oc(Cu("exception").wmclayer_method),qB(t)&&Oc(Cu("exception").no_param),this.options=e,!qB(this.url)&&qB(this.name))this.generateName_();else if(qB(this.url)&&!qB(this.name)){const t=M.config.predefinedWMC.predefinedNames.indexOf(this.name);-1===t?Oc(`El contexto predefinido '${this.name}'no existe`):(this.url=M.config.predefinedWMC.urls[t],this.name=M.config.predefinedWMC.names[t])}this.loaded_=!1,this.once(su,(()=>{this.setLoaded(!0)}))}get selected(){return this.getImpl().selected}set selected(t){this.getImpl().selected=t}get type(){return Tu}set type(t){QB(t)||qB(t)||t===Tu||Oc("El tipo de capa debe ser '".concat(Tu).concat("' pero se ha especificado '").concat(t).concat("'"))}get layers(){return this.getImpl().layers}set layers(t){this.getImpl().layers=t}get projection(){return this.getImpl().projection}set projection(t){this.getImpl().projection=t}set maxExtent(t){this.getImpl().maxExtent=t}getMaxExtent(t){return this.getImpl().getMaxExtent(t)}calculateMaxExtent(){return this.getImpl().calculateMaxExtent()}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}select(){QB(this.getImpl().select)&&Oc(Cu("exception").select_method),this.getImpl().select()}unselect(){QB(this.getImpl().unselect)&&Oc(Cu("exception").unselect_method),this.getImpl().unselect()}equals(t){let e=!1;return t instanceof tb&&(e=this.url===t.url,e=e&&this.name===t.name),e}isLoaded(){return this.loaded_}setLoaded(t){this.loaded_=t}}const eb=tb;class ib extends od{constructor(t){super({extent:t.extent,origin:t.origin,origins:t.origins,resolutions:t.resolutions,tileSize:t.tileSize,tileSizes:t.tileSizes,sizes:t.sizes}),this.matrixIds_=t.matrixIds}getMatrixId(t){return this.matrixIds_[t]}getMatrixIds(){return this.matrixIds_}}const nb=ib;function rb(t,e,i){const n=[],r=[],s=[],o=[],a=[];i=void 0!==i?i:[];const l="TileMatrix",h="Identifier",c="ScaleDenominator",u="TopLeftCorner",g=ee(t.SupportedCRS),d=g.getMetersPerUnit(),A="ne"==g.getAxisOrientation().substr(0,2);return t[l].sort((function(t,e){return e[c]-t[c]})),t[l].forEach((function(e){let g;if(g=!(i.length>0)||i.find((function(i){return e[h]==i[l]||!e[h].includes(":")&&t[h]+":"+e[h]===i[l]})),g){r.push(e[h]);const t=28e-5*e[c]/d,i=e.TileWidth,l=e.TileHeight;A?s.push([e[u][1],e[u][0]]):s.push(e[u]),n.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new ib({extent:e,origins:s,resolutions:n,matrixIds:r,tileSizes:o,sizes:a})}const sb=class extends Tp{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let n=t.urls;void 0===n&&void 0!==t.url&&(n=bp(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:n,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=wp(n.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(wp(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?Np(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const n=this.tileGrid,r=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:n.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,r);let l=t;return l="KVP"==e?Np(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}};function ob(t,e){const i=t.Contents.Layer.find((function(t){return t.Identifier==e.layer}));if(!i)return null;const n=t.Contents.TileMatrixSet;let r;r=i.TileMatrixSetLink.length>1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=n.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,r=ee(i),s=ee(e.projection);return r&&s?ae(r,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,r<0&&(r=0);const s=i.TileMatrixSetLink[r].TileMatrixSet,o=i.TileMatrixSetLink[r].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),r=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),r<0&&(r=0);const l=i.Style[r].Identifier,h={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const n=t.Identifier;let r=t.Default;void 0===r&&(r=t.Value[0]),h[n]=r}));const c=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let u;const g=c.SupportedCRS;if(g&&(u=ee(g)),"projection"in e){const t=ee(e.projection);t&&(u&&!ae(t,u)||(u=t))}let d=!1;const A="ne"==u.getAxisOrientation().substr(0,2);let p=c.TileMatrix[0],f={MinTileCol:0,MinTileRow:0,MaxTileCol:p.MatrixWidth-1,MaxTileRow:p.MatrixHeight-1};if(o){f=o[o.length-1];const t=c.TileMatrix.find((t=>t.Identifier===f.TileMatrix||c.Identifier+":"+t.Identifier===f.TileMatrix));t&&(p=t)}const m=28e-5*p.ScaleDenominator/u.getMetersPerUnit(),_=A?[p.TopLeftCorner[1],p.TopLeftCorner[0]]:p.TopLeftCorner,y=p.TileWidth*m,I=p.TileHeight*m;let E=c.BoundingBox;E&&A&&(E=[E[1],E[0],E[3],E[2]]);let C=[_[0]+y*f.MinTileCol,_[1]-I*(1+f.MaxTileRow),_[0]+y*(1+f.MaxTileCol),_[1]-I*f.MinTileRow];if(void 0!==E&&!D(E,C)){const t=i.WGS84BoundingBox,e=ee("EPSG:4326").getExtent();if(C=E,t)d=t[0]===e[0]&&t[2]===e[2];else{const t=ue(E,c.SupportedCRS,"EPSG:4326");d=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const v=rb(c,C,o),x=[];let w=e.requestEncoding;if(w=void 0!==w?w:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;tthis.addLayer_(t))):this.addLayer_(e)}setResolutions(t){if(qB(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=ee(this.map.getProjection().code);this.getCapabilities().then((n=>{const r=n.getMatrixSet(this.name),s=n.getMatrixIds(this.name),o=n.getFormat(this.name),a={url:this.url,layer:this.name,matrixSet:r,format:o,projection:i,tileGrid:new nb({origin:J(e),resolutions:t,matrixIds:s}),extent:e},l=this.options.crossOrigin;QB(l)||(a.crossOrigin=l);const h=new sb(a);this.ol3Layer.setSource(h)}))}}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter((t=>!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),qB(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();qB(e)||this.map.setBbox(e,{nearest:!0})}else qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}addLayer_(t){const e=this.facadeLayer_.getMaxExtent(),i=t,n=this.options.minResolution,r=this.options.maxResolution;i.format=this.options.format||t.format;const s=this.options.crossOrigin;QB(s)||(i.crossOrigin=s);const o=new sb(hL(i,{extent:e},!0));this.ol3Layer=new Kg(hL({visible:this.options.visibility,source:o,minResolution:n,maxResolution:r},this.vendorOptions_,!0));const a=this.zIndex_;this.map.getMapImpl().addLayer(this.ol3Layer),null!==a&&this.setZIndex(a),this.setVisible(this.visibility),this.ol3Layer.set("animated",!0),this.fire(kc,this)}setMaxExtent(t){this.getOLLayer().setExtent(t)}getCapabilitiesOptions_(){return qB(this.capabilitiesOptionsPromise)&&(this.capabilitiesOptionsPromise=this.getCapabilities(),this.capabilitiesOptionsPromise instanceof Promise&&(this.capabilitiesOptionsPromise=this.capabilitiesOptionsPromise.then((t=>{const e=this.name;let i=this.matrixSet;qB(i)&&(i=this.map.getProjection().code);const n=this.facadeLayer_.getMaxExtent(),r=ob(t,{layer:e,matrixSet:i,extent:n});return r.tileGrid.extent=n,r})))),this.capabilitiesOptionsPromise}getCapabilities(){return qB(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=new Promise(((t,e)=>{const i=$B(this.url),n=new Qb;DB(i).then((e=>{const i=e.xml,r=n.read(i);t.call(this,r)}))}))),this.getCapabilitiesPromise_}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}setFacadeObj(t){this.facadeLayer_=t}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}equals(t){let e=!1;return t instanceof kb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet),e}setOptionsGetFeatureInfoUrl(t){const e=t.version,i=t.style,n=t.format;QB(e)||(this.optionsFromGetFeatureInfoUrl_.version=e),QB(i)||(this.optionsFromGetFeatureInfoUrl_.style=i),QB(n)||(this.optionsFromGetFeatureInfoUrl_.format=n)}getOptionsGetFeatureInfoUrl(){return this.optionsFromGetFeatureInfoUrl_}getGetFeatureInfoUrl(t,e,i){const n=this.getTileColTileRow(t,e),r=this.getRelativeTileCoordInPixel_(t,e),s=this.optionsFromGetFeatureInfoUrl_.version,o=this.name,a=this.optionsFromGetFeatureInfoUrl_.style,l=this.optionsFromGetFeatureInfoUrl_.format,h=this.ol3Layer.getSource().getMatrixSet(),c=e,u=i,g=n[0],d=n[1],A=r[0],p=r[1];return KB(this.url,{service:"WMTS",request:"GetFeatureInfo",version:s,layer:o,style:a,format:l,tilematrixset:h,tilematrix:c,tilerow:d,tilecol:g,J:p,I:A,infoFormat:u})}getTileColTileRow(t,e){let i=null;if(!qB(this.ol3Layer)){const n=this.ol3Layer.getSource();if(!qB(n)){const{tileGrid:r}=n;i=r.getTileCoordForCoordAndZ(t,e)}}return i.slice(1)}getRelativeTileCoordInPixel_(t,e){let i;if(!qB(this.ol3Layer)){const n=this.ol3Layer.getSource();if(!qB(n)){const{tileGrid:r}=n,s=r.getTileCoordForCoordAndZ(t,e),o=r.getTileCoordExtent(s,[]),a=r.getResolution(s[0]);i=[Math.floor((t[0]-o[0])/a),Math.floor((o[3]-t[1])/a)]}}return i}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}const Gb=kb;class Ub extends _g{constructor(t,e={},i){const n=new Gb(e,i),r=fg(t,Fu);super(r,n),QB(Gb)&&Oc(Cu("exception").wmts_method),qB(t)&&Oc(Cu("exception").no_param),this.matrixSet=r.matrixSet,this.legend=r.legend,this.transparent=r.transparent,this.options=e}get type(){return Fu}set type(t){QB(t)||qB(t)||t===Fu||Oc("El tipo de capa debe ser '".concat(Fu).concat("' pero se ha especificado '").concat(t).concat("'"))}get matrixSet(){return this.getImpl().matrixSet}set matrixSet(t){this.getImpl().matrixSet=t}get legend(){return this.getImpl().legend}set legend(t){qB(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}getCapabilities(){return qB(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}equals(t){let e=!1;return t instanceof Ub&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet,e=e&&this.id===t.id),e}getGetFeatureInfoUrl(t,e,i){return this.getImpl().getGetFeatureInfoUrl(t,e,i)}setOptionsGetFeatureInfoUrl(t){this.getImpl().setOptionsGetFeatureInfoUrl(t)}getOptionsGetFeatureInfoUrl(){return this.getImpl().getOptionsGetFeatureInfoUrl()}getTileColTileRow(t,e){return this.getImpl().getTileColTileRow(t,e)}}const qb=Ub;const Vb=class extends Tp{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:_p({extent:Ip(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}};class zb extends Vd{constructor(t,e,i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.zIndex_=uf.Z_INDEX[Ou]}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach((t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)})),qB(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),qB(e)||this.map.setBbox(e)}else qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t,this.fire(kc);const e=this.facadeLayer_.getMaxExtent();if(this.ol3Layer=new Kg(hL({source:new Vb({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`}),extent:e},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&(this.hasAttributtion=!0)})),!this.hasAttributtion){let t;qB(this.vendorOptions_)&&(t={className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution"}),this.map.getMapImpl().addControl(new Mh(t)),this.hasAttributtion=!1}this.map.getMapImpl().updateSize();const i=this.map.getMapImpl().getSize(),n=this.map.getProjection().units;this.resolutions_=iL(this.getExtent(),i,16,n),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const r=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",r)}setResolutions(t){if(this.resolutions_=t,!qB(this.ol3Layer)&&qB(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=new Vb({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`,extent:e,resolutions:t,attributionControl:!0});this.ol3Layer.setSource(i)}}getExtent(){let t=null;return qB(this.ol3Layer)||(t=ee(this.map.getProjection().code).getExtent()),{x:{min:t[0],max:t[2]},y:{min:t[1],max:t[3]}}}setMaxExtent(t){this.ol3Layer.setExtent(t)}setFacadeObj(t){this.facadeLayer_=t}getMinResolution(){return this.resolutions_[0]}getMaxResolution(){return this.resolutions_[this.resolutions_.length-1]}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach((t=>{(t instanceof Hb||t instanceof $b)&&(this.haveOSMorMapboxLayer=!0)})),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&this.map.getImpl().getMapImpl().removeControl(t)})),this.map=null}equals(t){let e=!1;return t instanceof zb&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}zb.ATTRIBUTION='© Mapbox';const Yb=zb;class jb extends _g{constructor(t,e={},i={}){const n=new Yb(t,e,i),r=fg(t,Ou);super(r,n),QB(Yb)&&Oc(Cu("exception").mapbox_method),qB(t)&&Oc(Cu("exception").no_param),qB(r.name)&&Oc(Cu("exception").no_name),this.name=r.name,this.legend=r.legend,qB(r.legend)&&(this.legend=r.name),this.transparent=r.transparent,this.accessToken=r.accessToken,this.options=e}get url(){return this.getImpl().url}set url(t){qB(t)?this.getImpl().url=M.config.MAPBOX_URL:this.getImpl().url=t}get transparent(){return this.getImpl().transparent}set transparent(t){qB(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get accessToken(){return this.getImpl().accessToken}set accessToken(t){qB(t)?this.getImpl().accessToken=M.config.MAPBOX_TOKEN_VALUE:this.getImpl().accessToken=t}get type(){return Ou}set type(t){QB(t)||qB(t)||t===Ou||Oc("El tipo de capa debe ser '".concat(Ou).concat("' pero se ha especificado '").concat(t).concat("'"))}equals(t){let e=!1;return t instanceof jb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options,e=e&&this.id===t.id),e}}const Hb=jb,Xb='© OpenStreetMap contributors.';const Wb=class extends Vb{constructor(t){let e;e=void 0!==(t=t||{}).attributions?t.attributions:[Xb];const i=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",n=void 0!==t.url?t.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:e,attributionsCollapsible:!1,cacheSize:t.cacheSize,crossOrigin:i,interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:19,opaque:void 0===t.opaque||t.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:n,wrapX:t.wrapX,zDirection:t.zDirection})}};class Kb extends Vd{constructor(t,e={},i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.zIndex_=uf.Z_INDEX[Du],this.url_=t.url}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach((t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)})),qB(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),qB(e)||this.map.setBbox(e)}else qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t,this.fire(kc),this.ol3Layer=new Kg(hL({},this.vendorOptions_,!0)),this.updateSource_(),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&(this.hasAttributtion=!0)}),this),this.hasAttributtion||(this.map.getMapImpl().addControl(new Mh({className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution",collapsible:!0})),this.hasAttributtion=!1),this.map.getMapImpl().updateSize();const e=this.map.getMapImpl().getSize(),i=this.map.getProjection().units;this.resolutions_=iL(this.facadeLayer_.getMaxExtent(),e,16,i),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const n=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",n),this.map.on(hu,(()=>this.updateSource_()))}setResolutions(t){this.resolutions_=t,this.updateSource_(t)}updateSource_(t){if(qB(t)&&!qB(this.map)){this.map.getMapImpl().updateSize();const t=this.map.getMapImpl().getSize(),e=this.map.getProjection().units,i=M.config.ZOOM_LEVELS;this.resolutions_=iL(this.facadeLayer_.getMaxExtent(),t,i,e)}if(!qB(this.ol3Layer)&&qB(this.vendorOptions_.source)){const t=this.facadeLayer_.getMaxExtent();let e="";e=QB(this.url_)?new Wb({}):new Vb({url:this.url_}),this.ol3Layer.setSource(e),this.ol3Layer.setExtent(t)}}setFacadeObj(t){this.facadeLayer_=t}setMaxExtent(t){this.ol3Layer.setExtent(t)}getMinResolution(){}getMaxResolution(){}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach((t=>{(t instanceof $b||t instanceof Hb)&&(this.haveOSMorMapboxLayer=!0)})),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&this.map.getImpl().getMapImpl().removeControl(t)})),this.map=null}equals(t){let e=!1;return t instanceof Kb&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}const Jb=Kb;class Zb extends _g{constructor(t,e={},i={}){let n=t;QB(Jb)&&Oc(Cu("exception").osm_method),qB(n)&&(n="OSM");const r=new Jb(n,e,i),s=fg(n,Du);qB(s.name)&&(s.name="osm"),super(s,r),this.name=s.name,this.legend=s.legend,qB(s.legend)&&(this.legend="OpenStreetMap"),this.transparent=s.transparent,this.options=e}get transparent(){return this.getImpl().transparent}set transparent(t){qB(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get type(){return Du}set type(t){QB(t)||qB(t)||t===Du||Oc("El tipo de capa debe ser '".concat(Du).concat("' pero se ha especificado '").concat(t).concat("'"))}equals(t){let e=!1;return t instanceof Zb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options),e}}const $b=Zb;const tB=class extends Tg{constructor(t,e,i,n,r,s){super(t,e,s),this.extent=null,this.format_=n,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=r,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==vh&&(this.setState(xh),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(Sh)}setFeatures(t){this.features_=t,this.setState(wh)}setLoader(t){this.loader_=t}},eB=[];const iB=class extends Tg{constructor(t,e,i,n){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=n.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=Xs(t);return e in this.context_||(this.context_[e]=bl(1,1,eB)),this.context_[e]}hasContext(t){return Xs(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=Xs(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];Bl(e),eB.push(e.canvas),delete this.context_[t]}super.release()}};const nB=class extends Lp{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||Ip(e),n=t.tileGrid||_p({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:n,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:rB,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new up(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:tB,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const n=nd(i.peekFirstKey())[0],r=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==n||i.getState()!==wh)return;const s=i.getSourceTiles();for(let i=0,n=s.length;i{const n=function(t){const[e,i,n]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return ed(e,i,n)}(e),r=i.peek(n);if(r){const e=r.sourceTiles;for(let i=0,n=e.length;i{const r=this.tileUrlFunction(n,t,e),s=this.sourceTileCache.containsKey(r)?this.sourceTileCache.get(r):new this.tileClass(n,r?vh:bh,r,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o{this.handleTileChange(e);const n=s.getState();if(n===wh||n===Sh){const e=s.getKey();e in i.errorTileKeys?s.getState()===wh&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,n===Sh?i.errorTileKeys[e]=!0:s.removeEventListener(bs,t),0===i.loadingSourceTiles&&i.setState(ws(i.errorTileKeys)?wh:Sh)}};s.addEventListener(bs,t),i.loadingSourceTiles++}o===vh&&(s.extent=l.getTileCoordExtent(n),s.projection=e,s.resolution=l.getResolution(n[0]),this.sourceTileCache.set(r,s),s.load())})),i.loadingSourceTiles||i.setState(i.sourceTiles.some((t=>t.getState()===Sh))?Sh:wh)}return i.sourceTiles}getTile(t,e,i,n,r){const s=ed(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,r);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(r);if(h&&c){const e=u.getTileCoordExtent(h);R(e,-u.getResolution(t),e),lt(c,e)||(h=null)}let g=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);R(o,-i,o),e.forEachTileCoord(o,s,(t=>{g=g&&!this.tileUrlFunction(t,n,r)}))}const d=new iB(l,g?bh:vh,h,this.getSourceTiles.bind(this,n,r));return d.key=o,a?(d.interimTile=a,d.refreshInterimChain(),this.tileCache.replace(s,d)):this.tileCache.set(s,d),d}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,n=t.getResolutions().slice(),r=n.map((function(e,i){return t.getOrigin(i)})),s=n.map((function(e,i){return t.getTileSize(i)})),o=ea+1;for(let t=n.length;t{const r=n===p?e.declutterTree.all().map((t=>t.value)):null;for(let e=0,a=n.length;e{const n=this.getLayer(),r=Xs(n),s=n.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=_o(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let g;for(let t=0,e=this.renderedTiles.length;t0)return void e([]);const d=st(h.getTileCoordExtent(g.wrappedTileCoord)),A=[(c[0]-d[0])/l,(d[1]-c[1])/l],p=g.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let f=g.hitDetectionImageData[r];if(!f){const t=xc(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;f=vy(t,[this.getRenderTransform(h.getTileCoordCenter(g.wrappedTileCoord),l,0,Cy,t[0]*Cy,t[1]*Cy,0)],p,n.getStyleFunction(),h.getTileCoordExtent(g.wrappedTileCoord),g.getReplayState(n).renderedResolution,e),g.hitDetectionImageData[r]=f}e(xy(A,p,f))}))}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const n=t.viewHints,r=!(n[Zo]||n[$o]),s=this.renderedTiles;for(let e=0,i=s.length;e=0;--e)n[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,r,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,n=e.viewState,r=n.center,s=n.resolution,o=n.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,g=c.getTileCoordExtent(t.wrappedTileCoord),d=c.getTileCoordExtent(u,this.tmpExtent)[0]-g[0];return fo(yo(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(r,s,o,i,l,h,d))}postRender(t,e){const i=e.viewHints,n=!(i[Zo]||i[$o]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const r=this.getLayer(),s=r.getRenderMode(),o=t.globalAlpha;t.globalAlpha=r.getOpacity();const a=oB[s],l=e.viewState,h=l.rotation,c=r.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),g=this.renderedTiles,d=[],A=[];let p=!0;for(let i=g.length-1;i>=0;--i){const s=g[i];p=p&&!s.getReplayState(r).dirty;const o=s.executorGroups[Xs(r)].filter((t=>t.hasExecutors(a)));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let f=!1;const m=o[0].getClipCoords(l);if(m){for(let e=0,i=d.length;e>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(n)}}function gB(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(n.push(h),c=h),i.push(a,l),h+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");h>c&&(i.push(i[c],i[c+1]),h+=2)}}h>c&&(n.push(h),c=h)}createFeature_(t,e,i){const n=e.type;if(0===n)return null;let r;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(n,l.length);if(this.featureClass_===Pd)r=new this.featureClass_(h,a,l,s,o),r.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=nl(a,l);t=e.length>1?new Md(a,"XY",e):new sl(a,"XY",l)}else t="Point"===h?new qa(a,"XY"):"LineString"===h?new wd(a,"XY"):"MultiPoint"===h?new Id(a,"XY"):"MultiLineString"===h?new bd(a,"XY",l):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);const e=KE(t,!1,i);r.setGeometry(e),void 0!==o&&r.setId(o),r.setProperties(s,!0)}return r}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_,n=ee((e=this.adaptOptions(e)).dataProjection);n.setWorldExtent(e.extent),e.dataProjection=n;const r=new hB(t),s=r.readFields(cB,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;n.setExtent(l);for(let t=0,i=a.length;t{if(this.map){const t=this.map.getZoom();this.lastZoom_!==t&&(this.features_.length=0,this.lastZoom_=t)}}))}getFeatures(t,e){let i=[];if(this.ol3Layer){const t=this.ol3Layer.getSource().tileCache;if(0===t.getCount())return i;const e=nd(t.peekFirstKey())[0];t.forEach((t=>{if(t.tileCoord[0]!==e||t.getState()!==wh)return;const n=t.getSourceTiles();for(let t=0,e=n.length;t!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),qB(e)||this.map.setZoom(e);const i=this.map.getBbox();qB(i)||this.map.setBbox(i,{nearest:!0})}else qB(this.ol3Layer)||this.ol3Layer.setVisible(t)}equals(t){let e=!1;return t instanceof pB&&(e=this.name===t.name),e}}const fB=pB,mB={RENDER:"render",FEATURE:"feature"};class _B extends _I{constructor(t={},e={},i={},n){super(t,e,i,n||new fB(t,e,i)),QB(fB)&&Oc("La implementación usada no puede crear capas Vector")}get type(){return Gu}set type(t){QB(t)||qB(t)||t===Gu||Oc("El tipo de capa debe ser '".concat(Gu).concat("' pero se ha especificado '").concat(t).concat("'"))}getMaxExtent(){let t=this.userMaxExtent;return qB(t)&&(t=this.map_.userMaxExtent,qB(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise((t=>t(this.getMaxExtent())))}setStyle(t,e=!1,i=_B.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}getProjection(){return this.getImpl().getProjection()}getGeometryType(){let t=null;const e=this.getFeatures();if(!qB(e)){const i=e[0];qB(i)||(t=i.getType())}return t}getFeatures(){return this.getImpl().getFeatures().map((t=>lx.olFeature2Facade(t)))}clearStyle(){this.setStyle(null)}setFilter(){}addFeatures(){}removeFeatures(){}refresh(){}redraw(){}toGeoJSON(){}}_B.DEFAULT_PARAMS_STYLE={fill:{color:"#fff",opacity:.6},stroke:{color:"#827ec5",width:2}},_B.DEFAULT_OPTIONS_STYLE={point:{..._B.DEFAULT_PARAMS_STYLE,radius:5},line:{..._B.DEFAULT_PARAMS_STYLE},polygon:{..._B.DEFAULT_PARAMS_STYLE}};const yB=_B;const IB=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{this.loadInternal_(n).then((e=>{t.apply(this,e)}))}}loadInternal_(t){let e=this.url_;return new Promise((i=>{YB(M.config.ticket)&&(e=KB(e,{ticket:M.config.ticket})),DB(e).then((e=>{if(qB(e.text))Oc(Cu("exception").no_service_response);else{const n=this.format_.read(e.text,{featureProjection:t});i.call(this,[n])}}))}))}};class EB extends hI{constructor(t,e,i){super(e,i),this.popup_=null,this.formater_=null,this.loader_=null,this.loadFeaturesPromise_=null,this.loaded_=!1,this.hiddenAttributes_=[],qB(e.hide)||(this.hiddenAttributes_=e.hide),this.showAttributes_=[],qB(e.show)||(this.showAttributes_=e.show)}addTo(t){this.formater_=new LS({defaultDataProjection:ee(t.getProjection().code)}),qB(this.url)||(this.loader_=new IB(t,this.url,this.formater_)),super.addTo(t)}refresh(t=null){let e={type:"FeatureCollection",features:this.formater_.write(this.facadeVector_.getFeatures()),crs:{properties:{code:this.map.getProjection().code.split(":")[1]},type:"EPSG"}};zB(t)&&(e=t),this.source=e,this.updateSource_()}setSource(t){this.source=t,qB(this.map)||this.updateSource_()}requestFeatures_(){return this.source?this.loadFeaturesPromise_=new Promise((t=>{t(this.formater_.read(this.source,this.map.getProjection()))})):qB(this.loadFeaturesPromise_)&&(this.loadFeaturesPromise_=new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))),this.loadFeaturesPromise_}updateSource_(){qB(this.vendorOptions_.source)&&this.requestFeatures_().then((t=>{this.ol3Layer&&this.ol3Layer.setSource(new kf({loader:(e,i,n)=>{this.loaded_=!0,this.facadeVector_.clear(),this.facadeVector_.addFeatures(t,!1,!1),this.redraw(),this.fire(su,[t])}}))}))}isLoaded(){return this.loaded_}equals(t){let e=!1;return t instanceof EB&&(e=e&&this.name===t.name,e=e&&this.extract===t.extract),e}}const CB=EB;class vB extends _I{constructor(t,e={},i){super(t,e,void 0,new CB(t,e,i)),QB(CB)&&Oc(Cu("exception").geojsonlayer_method),qB(t)&&Oc(Cu("exception").no_param),YB(t)?this.url=t:UB(t)?this.source=t:(this.url=t.url,this.name=t.name,this.source=t.source,qB(t.crs)||(qB(this.source)&&(this.source={type:"FeatureCollection",features:[]}),this.source.crs={type:"EPSG",properties:{code:t.crs}})),this.options=e}get type(){return Qu}set type(t){QB(t)||qB(t)||t===Qu||Oc("El tipo de capa debe ser '".concat(Qu).concat("' pero se ha especificado '").concat(t).concat("'"))}get source(){return this.getImpl().source}set source(t){this.getImpl().source=t}equals(t){let e=!1;return t instanceof vB&&(e=this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.id===t.id),e}setSource(t){this.source=t,this.getImpl().refresh(t)}setStyle(t,e=!1,i=vB.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}}vB.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},vB.DEFAULT_OPTIONS_STYLE={point:{...vB.DEFAULT_PARAMS,radius:5},line:{...vB.DEFAULT_PARAMS},polygon:{...vB.DEFAULT_PARAMS}};const xB=vB;class wB extends Qc{constructor(t,e={}){const i=new sx(t);super();const n=new uf(i.container,this,e);if(this.setImpl(n),qB(t)&&Oc(Cu("exception").no_param),QB(uf)&&Oc(Cu("exception").constructor_impl),this._panels=[],this._plugins=[],this._areasContainer=null,this.popup_=[],this._defaultProj=!0,this.panel={LEFT:null,RIGHT:"null"},this._userZoom=null,this.userCenter_=null,this._finishedInitCenter=!0,this._finishedMaxExtent=!0,this._finishedMapImpl=!1,this._finishedMap=!1,this.centerFeature_=null,this.drawLayer_=null,this.userMaxExtent=null,this.ticket_=null,i.container.classList.add("m-mapea-container"),qB(i.bgColorContainer)||this.setBGColorContainer(i.bgColorContainer),n.on(ou,(()=>{this._finishedMapImpl=!0,this._checkCompleted()})),this.createMainPanels_(),this.featuresHandler_=new ux,this.featuresHandler_.addTo(this),this.featuresHandler_.activate(),this.drawLayer_=new _I({name:"__draw__"},{displayInLayerSwitcher:!1}),this.drawLayer_.setStyle(new CI(wB.DRAWLAYER_STYLE)),this.drawLayer_.setZIndex(uf.Z_INDEX[Pu]+999),this.addLayers(this.drawLayer_),qB(i.projection)?this.setProjection(M.config.DEFAULT_PROJ,!0):this.setProjection(i.projection),qB(i.bbox)||this.setBbox(i.bbox),qB(i.resolutions)||this.setResolutions(i.resolutions),!qB(i.maxExtent)){const t=qB(i.zoom)&&qB(i.bbox);this.setMaxExtent(i.maxExtent,t)}if(qB(i.wmc)||this.addWMC(i.wmc),qB(i.layers)||this.addLayers(i.layers),qB(i.wms)||this.addWMS(i.wms),qB(i.wmts)||this.addWMTS(i.wmts),qB(i.kml)||this.addKML(i.kml),qB(i.controls)?this.addControls("panzoom"):this.addControls(i.controls),!qB(i.getfeatureinfo))if("plain"!==i.getfeatureinfo&&"html"!==i.getfeatureinfo&&"gml"!==i.getfeatureinfo)AI(Cu("dialog").getfeatureinfo_type);else{const t=new kv(i.getfeatureinfo);this.addControls(t)}if(!QB(i.layerswitcher))if("emptylayer"!==i.layerswitcher&&""!==i.layerswitcher)AI(Cu("layerswitcher").unsupported_param);else{const t=new xI(i.layerswitcher);this.addControls(t)}qB(i.wmc)&&qB(i.layers)&&this.addWMC(M.config.predefinedWMC.predefinedNames[0]),qB(i.center)||this.setCenter(i.center),qB(i.zoom)?qB(i.bbox)&&this.setZoom(0):this.setZoom(i.zoom),qB(i.rotation)||this.once(ou,(()=>{this.setRotation(i.rotation)})),qB(i.label)||this.addLabel(i.label),qB(i.ticket)||this.setTicket(i.ticket),qB(i.bbox)&&qB(i.zoom)&&qB(i.center)&&this.zoomToMaxExtent(!0),qB(i.center)&&qB(i.bbox)&&(this._finishedInitCenter=!1,this.getInitCenter_().then((t=>{qB(this.userCenter_)&&this.setCenter(t),this._finishedInitCenter=!0,this._checkCompleted()})))}getLayers(t){let e=t;QB(uf.prototype.getLayers)&&Oc(Cu("exception").getlayers_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(fg));return this.getImpl().getLayers(i).sort(wB.LAYER_SORT)}getRootLayers(t){return this.getLayers(t).filter((t=>qB(t.getLayerGroup())))}getBaseLayers(){return QB(uf.prototype.getBaseLayers)&&Oc(Cu("exception").getbaselayers_method),this.getImpl().getBaseLayers().sort(wB.LAYER_SORT)}getFeatureHandler(){return this.featuresHandler_}addLayers(t){let e=t;if(!qB(e)){QB(uf.prototype.addLayers)&&Oc(Cu("exception").addlayers_method),UB(e)||(e=[e]);const t=e.map((t=>{let e;if(t instanceof _g)e=t;else{const i=fg(t);if(qB(i.type))AI(Cu("dialog").invalid_type_layer);else switch(i.type){case"WFS":e=new XS(t,{style:i.style});break;case"WMC":e=new eb(t);break;case"WMS":e=new rf(t);break;case"GeoJSON":e=new xB(i,{style:i.style});break;case"OSM":e=new $b(t);break;case"Mapbox":e=new Hb(t);break;case"KML":e=new ES(t);break;case"Vector":e=new _I(t);break;case"WMTS":e=new qb(t);break;case"MVT":e=new yB(i);break;default:AI(Cu("dialog").invalid_type_layer)}}return e instanceof _I&&!(e instanceof XS)&&this.featuresHandler_.addLayer(e),e.setMap(this),e}));this.getImpl().addLayers(t),this.fire(Uc,[t])}return this}removeLayers(t){if(!qB(t)){QB(uf.prototype.removeLayers)&&Oc(Cu("exception").removelayers_method);const e=this.getLayers(t);e.forEach((t=>{t instanceof _I&&this.featuresHandler_.removeLayer(t)})),this.getImpl().removeLayers(e)}return this}getLayerGroup(){return QB(uf.prototype.getLayerGroups)&&Oc("La implementación usada no posee el método getLayerGroups"),this.getImpl().getLayerGroups().sort(wB.LAYER_SORT)}addLayerGroup(t){let e=t;return GB(e)&&Oc("No ha especificado ningun grupo"),QB(uf.prototype.addLayerGroups)&&Oc("La implementación usada no posee el método addLayerGroups"),UB(e)||(e=[e]),this.getImpl().addLayerGroups(e),this}removeLayerGroup(t){return GB(t)&&Oc("No ha especificado ningun grupo a eliminar"),QB(this.getImpl().removeLayerGroups)&&Oc("La implementación usada no posee el método removeGroups"),this.getImpl().removeLayerGroups(t),this}getWMC(t){let e=t;QB(uf.prototype.getWMC)&&Oc(Cu("exception").getwmc_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Tu))));return this.getImpl().getWMC(i).sort(wB.LAYER_SORT)}addWMC(t){let e=t;if(!qB(e)){QB(uf.prototype.addWMC)&&Oc(Cu("exception").addwmc_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{if(zB(e)&&e instanceof eb)e.setMap(this),t.push(e);else if(!(e instanceof _g))try{const i=new eb(e,e.options);i.setMap(this),t.push(i)}catch(t){throw AI(t.toString()),t}})),this.getImpl().addWMC(t),this.fire(Uc,[t]),this.fire(qc,[t]);const i=this.getWMC(),n=i.filter((t=>!0===t.selected))[0];null==n&&i[0].select(),i.length>1&&(this.removeControls("wmcselector"),this.addControls(new mf))}return this}refreshWMCSelectorControl(){if(this.removeControls("wmcselector"),1===this.getWMC().length)this.getWMC()[0].select();else if(this.getWMC().length>1){this.addControls(new mf);const t=this.getWMC().filter((t=>!0===t.selected))[0];null==t&&this.getWMC()[0].select()}}removeWMC(t){if(!qB(t)){QB(uf.prototype.removeWMC)&&Oc(Cu("exception").removewmc_method);const e=this.getWMC(t);e.length>0&&this.getImpl().removeWMC(e)}return this}getKML(t){let e=t;QB(uf.prototype.getKML)&&Oc(Cu("exception").getkml_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Ru))));return this.getImpl().getKML(i).sort(wB.LAYER_SORT)}addKML(t){let e=t;if(!qB(e)){QB(uf.prototype.addKML)&&Oc(Cu("exception").addkml_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{let i;zB(e)&&e instanceof ES?i=e:e instanceof _g||(i=new ES(e,e.options)),!0===i.extract&&this.featuresHandler_.addLayer(i),t.push(i)})),this.getImpl().addKML(t),this.fire(Uc,[t]),this.fire(Vc,[t])}return this}removeKML(t){if(!qB(t)){QB(uf.prototype.removeKML)&&Oc(Cu("exception").removekml_method);const e=this.getKML(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeKML(e))}return this}getWMS(t){let e=t;QB(uf.prototype.getWMS)&&Oc(Cu("exception").getwms_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Nu))));return this.getImpl().getWMS(i).sort(wB.LAYER_SORT)}addWMS(t){let e=t;if(!qB(e)){QB(uf.prototype.addWMS)&&Oc(Cu("exception").addwms_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{let i=e;e instanceof rf||(i=new rf(e,e.options)),i.setMap(this),t.push(i)})),this.getImpl().addWMS(t),this.fire(Uc,[t]),this.fire(zc,[t])}return this}removeWMS(t){if(!qB(t)){QB(uf.prototype.removeWMS)&&Oc(Cu("exception").removewms_method);const e=this.getWMS(t);e.length>0&&this.getImpl().removeWMS(e)}return this}getWFS(t){let e=t;QB(uf.prototype.getWFS)&&Oc(Cu("exception").getwfs_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Pu))));return this.getImpl().getWFS(i).sort(wB.LAYER_SORT)}getGeoJSON(t){let e=t;QB(uf.prototype.getGeoJSON)&&Oc(Cu("exception").getgeojson_method),GB(e)?e=[]:UB(e)||(e=[e]);return this.getImpl().getGeoJSON(e).sort(wB.LAYER_SORT)}addWFS(t){let e=t;if(!qB(e)){QB(uf.prototype.addWFS)&&Oc(Cu("exception").addwfs_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{let i;if(zB(e)&&e instanceof XS)i=e;else if(!(e instanceof _g))try{i=new XS(e,e.options)}catch(t){throw AI(t.toString()),t}this.featuresHandler_.addLayer(i),t.push(i)})),this.getImpl().addWFS(t),this.fire(Uc,[t]),this.fire(Yc,[t])}return this}removeWFS(t){if(!qB(t)){QB(uf.prototype.removeWFS)&&Oc(Cu("exception").removewfs_method);const e=this.getWFS(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeWFS(e))}return this}getWMTS(t){let e=t;QB(uf.prototype.getWMTS)&&Oc(Cu("exception").getwmts_method),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Fu))));return this.getImpl().getWMTS(i).sort(wB.LAYER_SORT)}addWMTS(t){let e=t;if(!qB(e)){QB(uf.prototype.addWMTS)&&Oc(Cu("exception").addwmts_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{if(zB(e)&&e instanceof qb)e.setMap(this),t.push(e);else if(!(e instanceof _g)){const i=new qb(e,e.options);i.setMap(this),t.push(i)}})),this.getImpl().addWMTS(t),this.fire(Uc,[t]),this.fire(Wc,[t])}return this}removeWMTS(t){if(!qB(t)){QB(uf.prototype.removeWMTS)&&Oc(Cu("exception").removewmts_method);const e=this.getWMTS(t);e.length>0&&this.getImpl().removeWMTS(e)}return this}getMVT(t){let e=t;QB(uf.prototype.getMVT)&&Oc("La implementación usada no posee el método getWFS"),GB(e)?e=[]:UB(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Gu))));return this.getImpl().getMVT(i).sort(wB.LAYER_SORT)}removeMVT(t){if(!qB(t)){QB(uf.prototype.removeMVT)&&Oc("La implementación usada no posee el método removeWFS");const e=this.getMVT(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeMVT(e))}return this}addMVT(t){let e=t;if(!qB(e)){QB(uf.prototype.addMVT)&&Oc("La implementación usada no posee el método addWFS"),UB(e)||(e=[e]);const t=[];e.forEach((e=>{let i;if(zB(e)&&e instanceof yB)i=e;else if(!(e instanceof _g))try{i=new yB(e,e.options)}catch(t){throw AI(t.toString()),t}t.push(i)})),this.getImpl().addMVT(t),this.fire(Uc,[t]),this.fire(jc,[t])}return this}getControls(t){let e=t;QB(uf.prototype.getControls)&&Oc(Cu("exception").getcontrols_method),GB(e)?e=[]:UB(e)||(e=[e]);return this.getImpl().getControls(e)}addControls(t){let e=t;if(!qB(e)){QB(uf.prototype.addControls)&&Oc(Cu("exception").addcontrols_method),UB(e)||(e=[e]);const t=[];e.forEach((e=>{const i=(t=>{let e=null;if(YB(t)){const i=XB(t),n={[kv.NAME]:new kv("html"),[xI.NAME]:new xI,[VI.NAME]:new VI,[ME.NAME]:new ME,[VE.NAME]:new VE,[QE.NAME]:new QE({toggleDelay:400}),[XE.NAME]:new XE,[Mu.NAME]:new Mu,[sE.NAME]:new sE,[XI.NAME]:new XI,[`${XI.Name}*true`]:new XI({exactScale:!0}),[EE.NAME]:new EE,[mf.NAME]:new mf};if(!(i in n)){const t=aL([M.config.MAPEA_URL,"/api/actions/controls"]);AI(`El control ${i} no está definido. Consulte los controles disponibles aquí`)}e=n[i]}else t instanceof vu?e=t:Oc("El control añadido no es válido.");return e})(e),n=Zv(i,this);this.hasControl(i)||(qB(n)?i.addTo(this):(n.addControls(i),this.addPanels(n)),t.push(i))})),this.getImpl().addControls(t)}}hasControl(t){let e=t;t instanceof vu&&(e=t.name);const i=this.getControls().find((t=>t.name===e));return!qB(i)}removeControls(t){qB(t)&&Oc(Cu("exception").remove_control),QB(uf.prototype.removeControls)&&Oc(Cu("exception").removecontrol_method);let e=this.getControls(t);return e=[].concat(e),e.length>0&&(e.forEach((t=>{qB(t.getPanel())||t.getPanel().removeControls(t)})),this.getImpl().removeControls(e)),this}getMaxExtent(){let t=this.userMaxExtent;if(qB(t)){const e=this.getWMC().find((t=>t.selected));t=qB(e)?ML(this.getLayers().filter((t=>"__draw__"!==t.name)).map((t=>t.getMaxExtent()))):e.getMaxExtent(),qB(t)&&(t=this.getProjection().getExtent())}return t}calculateMaxExtent(){return new Promise((t=>{let e=this.userMaxExtent;if(qB(e)){const i=this.getWMC().find((t=>t.selected));if(qB(i)){const i=this.getLayers().filter((t=>"__draw__"!==t.name&&t.isVisible())).map((t=>t.calculateMaxExtent()));Promise.all(i).then((i=>{e=ML(i),qB(e)&&(e=this.getProjection().getExtent()),qB(this.userMaxExtent)||(e=this.userMaxExtent),t(e)}))}else i.calculateMaxExtent().then(t)}else t(e)}))}setMaxExtent(t,e=!0){qB(t)&&this.resetMaxExtent(),QB(uf.prototype.setMaxExtent)&&Oc(Cu("exception").setmaxextent_method);try{let i=lg(t);!UB(i)&&zB(i)&&(i=[i.x.min,i.y.min,i.x.max,i.y.max]),this.userMaxExtent=i,this.getImpl().setMaxExtent(i,e)}catch(t){throw AI(t.toString()),t}return this}resetMaxExtent(){return this.userMaxExtent=null,this.calculateMaxExtent().then((t=>{const e=lg(t);this.getImpl().setMaxExtent(e,!0)})),this}getBbox(){QB(uf.prototype.getBbox)&&Oc(Cu("exception").getbbox_method);return this.getImpl().getBbox()}setBbox(t,e){qB(t)&&Oc(Cu("exception").no_bbox),QB(uf.prototype.setBbox)&&Oc(Cu("exception").setbbox_method);try{const i=lg(t);this.getImpl().setBbox(i,e)}catch(t){throw AI(Cu("exception").incorrect_format_bbox),t}return this}getZoom(){QB(uf.prototype.getZoom)&&Oc(Cu("exception").getzoom_method);return this.getImpl().getZoom()}setZoom(t){qB(t)&&Oc(Cu("exception").no_zoom),QB(uf.prototype.setZoom)&&Oc(Cu("exception").setzoom_method);try{const e=ug(t);this._userZoom=e,this.getImpl().setZoom(e)}catch(t){throw AI(t.toString()),t}return this}getCenter(){QB(uf.prototype.getCenter)&&Oc(Cu("exception").getcenter_method);return this.getImpl().getCenter()}setCenter(t){qB(t)&&Oc(Cu("exception").no_center),QB(uf.prototype.setCenter)&&Oc(Cu("exception").setcenter_method);const e=ag(t);return this.getImpl().setCenter(e),this.userCenter_=e,!0===e.draw&&(this.drawLayer_.clear(),this.centerFeature_=new DL("__mapeacenter__",{type:"Feature",geometry:{type:"Point",coordinates:[e.x,e.y]},properties:{vendor:{mapea:{click:t=>{const e=this.getLabel();qB(e)||e.show(this)}}}}}),this.drawFeatures([this.centerFeature_])),this}getFeatureCenter(){return this.centerFeature_}removeCenter(){this.removeFeatures(this.centerFeature_),this.centerFeature_=null,this.zoomToMaxExtent()}getResolutions(){QB(uf.prototype.getResolutions)&&Oc(Cu("exception").getresolutions_method);return this.getImpl().getResolutions()}setResolutions(t){qB(t)&&Oc(Cu("exception").no_resolutions),QB(uf.prototype.setResolutions)&&Oc(Cu("exception").setresolutions_method);const e=cg(t);return this.getImpl().setResolutions(e),this}getScale(){QB(uf.prototype.getScale)&&Oc(Cu("exception").getscale_method);return this.getImpl().getScale()}getExactScale(){QB(uf.prototype.getExactScale)&&Oc("La implementación usada no posee el método getScale");return this.getImpl().getExactScale()}getProjection(){QB(uf.prototype.getProjection)&&Oc(Cu("exception").getprojection_method);return this.getImpl().getProjection()}setProjection(t,e){let i=t;qB(i)&&Oc(Cu("exception").no_projection),QB(uf.prototype.setProjection)&&Oc(Cu("exception").setprojection_method);try{const t=this.getProjection();i=hg(i),t.code!==i.code&&(this.getImpl().setProjection(i),this._defaultProj=this._defaultProj&&!0===e,this.fire(hu,[t,i]))}catch(t){AI(t.toString()),String(t).indexOf("El formato del parámetro projection no es correcto")>=0&&this.setProjection(M.config.DEFAULT_PROJ,!0)}return this}getPlugins(t){let e=t;GB(e)?e=[]:UB(e)||(e=[e]);let i=[];return 0===e.length?i=this._plugins:e.forEach((t=>{i=i.concat(this._plugins.filter((e=>t===e.name)))})),i}addPlugin(t){return qB(t)&&Oc(Cu("exception").no_plugins),QB(t.addTo)&&Oc(Cu("exception").no_add_plugin_to_map),this._plugins.push(t),t.addTo(this),this}addPlugins(t){qB(t)&&Oc(Cu("exception").no_plugins);let e=t;return UB(t)||(e=[t]),e.forEach((t=>{this.addPlugin(t)})),this}removePlugins(t){let e=t;return qB(e)&&Oc(Cu("exception").no_plugin_to_remove),UB(e)||(e=[e]),e=[].concat(e),e.length>0&&e.forEach((t=>{t.destroy(),this._plugins=this._plugins.filter((e=>t.name!==e.name))})),this}getEnvolvedExtent(){return new Promise((t=>{const e=this.getWMC().find((t=>t.selected));if(qB(e)){const e=this.getBaseLayers().find((t=>t.isVisible()));if(qB(e)){const e=this.getLayers().filter((t=>"__draw__"!==t.name));Promise.all(e.map((t=>t.calculateMaxExtent()))).then((e=>{const i=qB(e)?[this.getProjection().getExtent()]:e,n=ML(i);t(n)}))}else e.getMaxExtent(t)}else e.getMaxExtent(t)}))}zoomToMaxExtent(t){return this.calculateMaxExtent().then((e=>{(!0!==t||qB(this._userZoom))&&this.setBbox(e),this._finishedMaxExtent=!0,this._checkCompleted()})),this}setTicket(t){return this.ticket_=t,M.config.ticket=t,this}getTicket(){return this.ticket_}getInitCenter_(){return new Promise(((t,e)=>{this.calculateMaxExtent().then((e=>{let i;i=UB(e)?{x:(e[0]+e[2])/2,y:(e[1]+e[3])/2}:{x:(e.x.max+e.x.min)/2,y:(e.y.max+e.y.min)/2},t(i)}))}))}destroy(){return QB(uf.prototype.destroy)&&Oc(Cu("exception").destroy_method),this.getImpl().destroy(),this}addLabel(t,e,i=!0){qB(t)&&Oc(Cu("exception").no_projection),QB(uf.prototype.addLabel)&&Oc(Cu("exception").addlabel_method);let n=null,r=null,s=t,o=e;return UB(t)||(s=[t]),QB(e)||UB(e[0])?QB(e)&&(o=[]):o=[e],s.forEach(((e,s)=>{const a=void 0===e.panMapIfOutOfView||t.panMapIfOutOfView;if(zB(e)?(n=cL(e.text),r=e.coord):(n=cL(e),r=o[s]),r=qB(r)?this.getCenter():ag(r),qB(r))this.getInitCenter_().then((t=>{const e=new nx(n,t,a);this.getImpl().addLabel(e,i)}));else{const t=new nx(n,r,a);this.getImpl().addLabel(t,i)}})),this}getLabel(){return this.getImpl().getLabel()}getLabels(){return this.getImpl().getLabels()}removeLabel(t){return this.getImpl().removeLabel(t)}drawPoints(t){let e=t;qB(e)&&Oc(Cu("exception").no_point),UB(e)||(e=[e]);const i=e.map((t=>{const e={type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:{}};return VB(t.click)&&(e.properties.vendor={mapea:{click:t.click}}),new DL(null,e)}));this.drawLayer_.addFeatures(i)}drawFeatures(t){return this.drawLayer_.addFeatures(t),this}removeFeatures(t){return this.drawLayer_.removeFeatures(t),this}addPanels(t){let e=t;return qB(e)||(UB(e)||(e=[e]),e.forEach((t=>{const e=this._panels.some((e=>e.equals(t)));if(t instanceof Hv&&!e){this._panels.push(t);const e="div.m-area".concat(t.position),i=this._areasContainer.querySelector(e);t.addTo(this,i)}}))),this}removePanel(t){return t.getControls().length>0&&Oc(Cu("exception").remove_control_from_panel),t instanceof Hv&&(t.destroy(),this._panels=this._panels.filter((e=>!e.equals(t)))),this}getPanels(t){let e=t,i=[];return qB(e)?i=this._panels:(UB(e)||(e=[e]),e.forEach((t=>{const e=this._panels.filter((e=>e.name===t));e.forEach((t=>{qB(t)||i.push(t)}))}))),i}createMainPanels_(){this._areasContainer=document.createElement("div"),this._areasContainer.classList.add("m-areas");const t=document.createElement("div");t.classList.add("m-area"),t.classList.add("m-top"),t.classList.add("m-left");const e=document.createElement("div");e.classList.add("m-area"),e.classList.add("m-top"),e.classList.add("m-right");const i=document.createElement("div");i.classList.add("m-area"),i.classList.add("m-bottom"),i.classList.add("m-left");const n=document.createElement("div");n.classList.add("m-area"),n.classList.add("m-bottom"),n.classList.add("m-right"),this._areasContainer.appendChild(t),this._areasContainer.appendChild(e),this._areasContainer.appendChild(i),this._areasContainer.appendChild(n),this.getContainer().appendChild(this._areasContainer)}getContainer(){return QB(uf.prototype.getContainer)&&Oc(Cu("exception").getcontainer_method),this.getImpl().getContainer()}getMapImpl(){return QB(uf.prototype.getMapImpl)&&Oc(Cu("exception").getmapimpl_method),this.getImpl().getMapImpl()}getPopup(){let t=null;return t=0===this.popup_.length?null:this.popup_[0],t}getPopups(){let t=null;return 0===this.popup_.length?t=null:this.popup_.length>=1&&(t=this.popup_),t}removePopup(t){return QB(uf.prototype.removePopup)&&Oc(Cu("exception").removepopup_method),qB(t)?(this.popup_.forEach((t=>{this.getImpl().removePopup(t),t.destroy()})),this.popup_=[]):UB(t)?t.forEach(((t,e)=>{const i=this.popup_.findIndex((e=>e.getId()===t.getId()));this.getImpl().removePopup(this.popup_[i]),this.popup_[i].destroy(),this.popup_.splice(i,1)})):(this.getImpl().removePopup(t),t.destroy(),this.popup_.forEach(((e,i)=>{e.getId()===t.getId()&&this.popup_.splice(i,1)}))),this}addPopup(t,e,i=!0){qB(t)&&Oc(Cu("exception").no_popup);let n=t,r=e;return UB(t)||(n=[t]),UB(e[0])||(r=[e]),n.forEach(((t,e)=>{i&&(this.removePopup(this.popup_),this.popup_=[]),this.popup_.push(t),t.addTo(this,r[e])})),this}addUpClass_(t){t.on(kc,(t=>{3===this.getControls(["wmcselector","scale","scaleline"]).length&&this.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")}))}_checkCompleted(){this._finishedInitCenter&&this._finishedMaxExtent&&this._finishedMapImpl&&(this._finishedMap=!0,this.fire(ou))}on(t,e,i){const n=super.on(t,e,i);return t===ou&&!0===this._finishedMap&&this.fire(ou),n}refresh(){return!QB(this.getImpl().refresh)&&VB(this.getImpl().refresh)&&this.getImpl().refresh(),this.getLayers().forEach((t=>t.refresh())),this}get defaultProj(){return this._defaultProj}static LAYER_SORT(t,e){if(!qB(t)&&!qB(e)){return t.getZIndex()-e.getZIndex()}return 0}isFinished(){return this._finishedMap}get areasContainer(){return this._areasContainer}getRotation(){return QB(uf.prototype.getRotation)&&Oc(Cu("exception").no_get_rotation_method),this.getImpl().getRotation()*(180/Math.PI)}setRotation(t){QB(uf.prototype.setRotation)&&Oc(Cu("exception").no_set_rotation_method),this.getImpl().setRotation(t*(Math.PI/180)),this.fire(gu,[t])}setBGColorContainer(t){qB(t)||(document.querySelector(".m-mapea-container").style.backgroundColor=t,document.querySelector(".m-mapea-container").style.backgroundImage="unset")}enableMouseWheel(t){this.getImpl().enableMouseWheel(t)}enableDrag(t){this.getImpl().enableDrag(t)}setZoomLevels(t){QB(t)||qB(t)||this.calculateMaxExtent().then((e=>{const i=this.getZoom(),n=this.getMapImpl().getSize(),r=this.getProjection().units,s=iL(e,n,t,r);this.setResolutions(s,!0),M.config.ZOOM_LEVELS=t,i{throw t}))}getImageMap(){return this.getImpl().getImageMap()}setToClosestScale(t){const e=eL(t,this.getProjection().units);this.getImpl().setToClosestScale(e)}getOverlayLayers(){return this.getLayers().filter((t=>"__draw__"!==t.name&&!0===t.transparent))}removeOverlayLayers(){const t=this.getOverlayLayers();return this.removeLayers(t),this}}wB.DRAWLAYER_STYLE={fill:{color:"#009e00"},stroke:{color:"#fcfcfc",width:2},radius:7};const SB=wB;i(421);const bB=(t,e)=>{bB[t]=e};let BB=!0;const LB=[];const MB=class{constructor(t){this.text=null,this.xml=null,this.headers={},this.error=!1,this.code=0}parseXmlHttp(t){this.text=t.responseText,this.xml=t.responseXML,this.code=t.status,this.error=""!==t.statusText&&"OK"!==t.statusText;let e=t.getAllResponseHeaders();e=e.split("\n"),e.forEach((t=>{let e=t;e=e.trim();const i=e.replace(/^([^:]+):(.+)$/,"$1").trim(),n=e.replace(/^([^:]+):(.+)$/,"$2").trim();""!==i&&(this.headers[i]=n)}))}parseProxy(t){if(this.code=t.code,this.error=t.error,200===this.code&&!0!==this.error){this.text=t.content.trim();try{const e=t.headers["Content-Type"];"undefined"!=typeof DOMParser&&/text\/html/i.test(e)?this.xml=(new DOMParser).parseFromString(this.text,"text/html"):/xml/i.test(e)&&(this.xml=(new DOMParser).parseFromString(this.text,"text/xml"))}catch(t){this.xml=null,this.error=!0}}Object.keys(t.headers).forEach((e=>{this.headers[e]=t.headers[e]}))}},TB="GET",RB="POST",NB=(t,e)=>{let i=M.config.PROXY_URL;return e===RB&&(i=M.config.PROXY_POST_URL),i=KB(i,{url:t}),i},PB=(t,e,i)=>{let n=t;qB(e)||(n=KB(n,e)),BB&&(n=NB(n,TB));const r=JB("mapea_jsonphandler_");if(n=KB(n,{callback:r}),!qB(i)&&"ticket"in i&&!1===i.ticket){const t=n.indexOf("ticket="),e=n.indexOf("&",t);n=n.substring(n,t)+n.substring(e,n.length)}const s=new Promise(((t,e)=>{const i=t;new Promise((t=>{window[r]=t})).then((t=>{delete window[r],(t=>{const e=document.getElementById(t);e.parentNode.removeChild(e)})(r);const e=new MB;e.parseProxy(t),i(e)}))}));return((t,e)=>{const i=document.createElement("script");i.type="text/javascript",i.id=e,i.src=t,i.setAttribute("async",""),window.document.body.appendChild(i)})(n,r),s},FB=(t,e,i,n)=>{let r=t,s=e;return!1!==n&&!0===BB&&(r=NB(r,i)),zB(s)&&(s=JSON.stringify(s)),new Promise(((t,e)=>{let n;window.XMLHttpRequest?n=new XMLHttpRequest:window.ActiveXObject&&(n=new ActiveXObject("Microsoft.XMLHTTP")),n.onreadystatechange=()=>{if(4===n.readyState){const e=new MB;e.parseXmlHttp(n),t(e)}},n.open(i,r,!0),n.send(s)}))},DB=(t,e,i)=>{let n,r=(qB(i)||!1!==i.jsonp)&&!1!==BB;const s=new URL(t).origin;return r=r&&-1===LB.indexOf(s),n=!0===r?PB(t,e,i):FB(t,e,TB,!1),n},OB={inches:1,in:1,Inch:1,ft:12,mi:63360,m:39.3701,dd:4374754,yd:36,d:4374754,degrees:4374754,nmi:72913.4252,Meter:39.37,Foot:12,IFoot:11.999976,ClarkeFoot:11.999868327581488,SearsFoot:11.999955194477684,GoldCoastFoot:11.999964589846002,IInch:.9999979999999999,MicroInch:999998e-9,Mil:9.99998e-7,Centimeter:.3937,Kilometer:39370,Yard:36,SearsYard:35.99986558343306,IndianYard:35.99987015540864,IndianYd37:35.999740205100004,IndianYd62:35.999880755999996,IndianYd75:35.999868945,IndianFoot:11.9999567087,IndianFt37:11.9999134017,IndianFt62:11.999960252000001,IndianFt75:11.999956315,Mile:63360,IYard:35.999928,IMile:63359.87328,NautM:72913.24,"Lat-66":4367838.370169282,"Lat-83":4367954.152606599,Decimeter:3.9370000000000003,Millimeter:.03937,Dekameter:393.7,Decameter:393.7,Hectometer:3937,GermanMeter:39.370535294205006,CaGrid:39.359685060000004,ClarkeChain:791.991309620512,GunterChain:792.0000000000001,BenoitChain:791.9977268035781,SearsChain:791.9970428354235,ClarkeLink:7.91991309620512,GunterLink:7.920000000000001,BenoitLink:7.919977268035781,SearsLink:7.919970428354236,Rod:198.00000000000014,IntnlChain:791.998416,IntnlLink:7.91998416,Perch:198.00000000000014,Pole:198.00000000000014,Furlong:7919.999999999997,Rood:148.75036777426,CapeFoot:11.999868185255002,Brealey:14763.75,ModAmFt:12.000458400000001,Fathom:71.999856,"NautM-UK":72959.85408,"50kilometers":1968500,"150kilometers":5905500,mm:39.37/1e3,cm:.3937,dm:39.37*100,km:39370,kmi:72913.4252,fath:71.999856,ch:791.998416,link:7.91998416,"us-in":1,"us-ft":12,"us-yd":36,"us-ch":792.0000000000001,"us-mi":63360,"ind-yd":35.999740205100004,"ind-ft":11.9999134017,"ind-ch":791.9942845122},QB=t=>void 0===t,kB=t=>{let e=!1;return null===t||QB(t)||(e="boolean"==typeof t),e},GB=t=>{let e=!1;return kB(t)||"number"==typeof t||(QB(t)?e=!0:t?null===t&&(e=!0):e=!0),e},UB=t=>{let e=!1;return GB(t)||(e=Object.prototype.toString.call(t)===Object.prototype.toString.call([])),e},qB=t=>{let e=!1;return GB(t)?e=!0:UB(t)?(e=!0,t.length>0&&(e=!t.some((t=>!qB(t))))):"string"==typeof t&&0===t.trim().length&&(e=!0),e},VB=t=>{let e=!1;return GB(t)||(e="function"==typeof t&&!QB(t.call)),e},zB=t=>{let e=!1;return GB(t)||(e="object"==typeof t&&!QB(t.toString)),e},YB=t=>{let e=!1;return GB(t)||(e="string"==typeof t),e},jB=t=>{let e=!1;return!GB(t)&&YB(t)&&(e=/(https?:\/\/[^*]+)/.test(t)),e},HB=t=>"number"==typeof t,XB=(t,e)=>{let i=t;return!qB(i)&&YB(i)&&(i=i.trim(),i=e?i.toUpperCase():i.toLowerCase()),i},WB=(t,e)=>{let i=null;const n=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");let r=e;const s=r.indexOf("?");if(-1!==s){r=r.substring(s);i=new RegExp(`[\\?&]${n}=([^&#]*)`).exec(r),null!==i&&(i=decodeURIComponent(i[1].replace(/\+/g," ")))}return i},KB=(t,e)=>{let i=t;-1===i.indexOf("?")?i+="?":"?"!==i.charAt(i.length-1)&&(i+="&");let n="";if(zB(e)){Object.keys(e).forEach((t=>{const i=e[t];n+=t,n+="=",n+=encodeURIComponent(i),n+="&"})),n=n.substring(0,n.length-1)}else YB(e)&&(n=e);return i+=n,i},JB=(t,e)=>{let i="";return qB(t)||(i=t),i=i.concat(Math.random()).replace(/0\./,""),qB(e)||(i=i.concat(e)),i},ZB=(t,e,i)=>{let n=t;return n=KB(n,"request=GetCapabilities"),n=KB(n,"service=WMS"),YB(e)&&(n=KB(n,{version:e})),YB(i)&&(n=KB(n,{ticket:i})),n},$B=(t,e)=>{let i=t;return i=KB(i,"request=GetCapabilities"),i=KB(i,"service=WMTS"),qB(e)||(i=KB(i,{version:e})),i},tL=(t,e,i)=>{let n=t,r=e;const s=new Array(i);n=Number.parseFloat(n),r=Number.parseFloat(r);let o=2;Number.isNaN(n)||(o=(r/n)**(1/(i-1)));for(let t=0;te-t)),s},eL=(t,e)=>{let i,n=e;if(!qB(t)){GB(n)&&(n="degrees");i=1/((t>1?1/t:t)*OB[n]*72)}return i},iL=(t,e,i,n)=>{let r=t,[s,o]=[null,null];UB(r)?(s=r[2]-r[0],o=r[3]-r[1]):zB(r)?(s=r.x.max-r.x.min,o=r.y.max-r.y.min):YB(r)&&(r=r.split(","),s=r[2]-r[0],o=r[3]-r[1]);const a=s/e[0],l=o/e[1],h=Math.max(a,l);return tL(null,h,i)},nL=(t,e)=>{let i=e;qB(i)&&(i="degrees");return t*OB[i]*72},rL=t=>{let e;if(!qB(t)){const i=document.createElement("div");i.innerHTML=t,e=i.children[0]}return e},sL=t=>{let e=t;if(e&&(e=e.trim(),e.length>0)){let t=e.indexOf(":");-1!==t&&(t+=1,e=e.substring(t,e.length))}return e},oL=t=>{let e=XB(t);return e=e.replace(/_(\w)/g,((t,e)=>" ".concat(e.toUpperCase()))),e=e.replace(/^\w/,(t=>t.toUpperCase())),e},aL=t=>{let e=null;if(!qB(t)){e=t[0],e=e.replace(/\/+\s*$/,"");for(let i=1,n=t.length;i{const n=Object(t),r=parseInt(n.length,10)||0;if(0===r)return!1;const s=parseInt(i,10)||0;let o,a;for(s>=0?o=s:(o=r+s,o<0&&(o=0));o{const n=t;return Object.keys(e).forEach((t=>{QB(n[t])?n[t]=e[t]:Object.getPrototypeOf(n[t])===Object.prototype?hL(n[t],e[t],i):!0===i&&(n[t]=e[t])})),n},cL=t=>{let e;return e=t.replace(/(<\s*script[^>]*>)+[^<]*(<\s*\/\s*script[^>]*>)+/gi,""),e=e.replace(/(('|')\s*\+\s*)?\s*eval\s*\(.*\)\s*(\+\s*('|'))?/gi,""),e},uL=t=>{const e=t;if("ontouchstart"in document){let t=0;e.addEventListener("touchstart",(i=>{t=e.scrollTop+i.touches[0].pageY})),e.addEventListener("touchmove",(i=>{e.scrollTop=t-i.touches[0].pageY}))}},gL=(t,e)=>{const i=t.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1"),n=e.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1");return i.toLowerCase()===n.toLowerCase()},dL=t=>{const e=[ad.toLowerCase(),"GeometryPropertyType".toLowerCase(),Ad.toLowerCase(),ld.toLowerCase(),dd.toLowerCase(),hd.toLowerCase(),cd.toLowerCase(),ud.toLowerCase(),gd.toLowerCase(),pd.toLowerCase(),fd.toLowerCase(),"pointpropertytype","polygonpropertytype","linestringpropertytype","geometrypropertytype","multisurfacepropertytype","multilinestringpropertytype","surfacepropertytype","geometrypropertytype","geometryarraypropertytype","multigeometrypropertytype","multipolygonpropertytype","multipointpropertytype","abstractgeometricaggregatetype","pointarraypropertytype","curvearraypropertytype","solidpropertytype","solidarraypropertytype"],i=t.toLowerCase();return-1!==e.indexOf(i)},AL=t=>{const e=document.createElement("textarea");return e.innerHTML=t,e.value},pL=t=>{let e=t;!YB(t)&&t.outerHTML&&(e=t.outerHTML);const i=document.createElement("DIV");return i.innerHTML=e,i.textContent||i.innerText||""},fL=(t,e,i)=>a().scale([t,e]).colors(i),mL=t=>{let e;if(YB(t)){let i=a()(t).hex();i=i.replace(/^#/,"0x"),e=a()(16777215-i).hex()}return e},_L=(t={},e={})=>{const i=t;return qB(e)||Object.keys(e).forEach((t=>{let n=e[t];UB(n)?n=[...n]:zB(n)&&(n=_L({},n)),qB(i[t])?i[t]=n:zB(i[t])&&_L(i[t],n)})),i},yL=(t,e)=>{let i=[...t];if(t.lengtht.ORDER-e.ORDER,EL=t=>{const e=new Image;return new Promise(((i,n)=>{e.onload=()=>i(e),e.src=t}))},CL=t=>{let e;return UB(t)?(e=[...t],e=e.map(CL)):zB(t)?(e=_L({},t),Object.keys(e).forEach((t=>{const i=e[t];VB(i)?e[t]=`{{f}}${i.toString()}`:zB(i)&&(e[t]=CL(i))}))):e=VB(t)?`{{f}}${t.toString()}`:t,e},vL=t=>{let e=t;if(/^\{\{f\}\}/.test(t)){const i=t.replace(/^\{\{f\}\}(.+)/,"$1");e=new Function("f",`return ${i}`)()}else Object.keys(e).forEach((t=>{const i=e[t];if(/^\{\{f\}\}/.test(i)){const n=i.replace(/^\{\{f\}\}(.+)/,"$1");e[t]=new Function("f",`return ${n}`)()}else zB(i)&&vL(i)}));return e},xL=(t,e)=>{const i=t.classList;i.contains(e)?i.remove(e):i.add(e)},wL=(t,e)=>{const i=e.parentNode;i&&i.replaceChild(t,e)},SL=t=>{if(t){const e=t.parentElement;e&&e.removeChild(t)}},bL=t=>{let e=!1;return Array.isArray(t)||"object"!=typeof t||qB(t)?("function"==typeof t||"string"==typeof t&&/\{\{.*\}\}/.test(t))&&(e=!0):e=Object.values(t).some((t=>bL(t))),e};let BL="data:image/jpeg;base64,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";const LL=t=>BL,ML=t=>{let e=null;return qB(t)||(e=[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER],t.forEach((t=>{qB(t)||(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}))),e},TL=()=>{const t=window.navigator.userAgent||window.navigator.vendor||window.opera;let e="unknown";return/android/i.test(t)&&(e="android"),/iPad|iPhone|iPod/.test(t)&&!window.MSStream&&(e="ios"),e},RL=(t,e,i)=>xe(t,e,i);class NL{constructor(t,e,i){const n=e;this.facadeFeature_=null,this.formatter_=new BS,qB(e)?this.olFeature_=new _d:(qB(e.type)&&(n.type="Feature"),this.olFeature_=this.formatter_.readFeature(n)),qB(t)?qB(this.olFeature_.getId())&&this.olFeature_.setId(JB("mapea_feature_")):this.olFeature_.setId(t)}getOLFeature(){return this.olFeature_}setOLFeature(t,e){qB(t)||(this.olFeature_=t,!1!==e&&qB(this.olFeature_.getId())&&this.olFeature_.setId(JB("mapea_feature_")))}getAttributes(){const t=this.olFeature_.getProperties(),e=t.geometry;return!qB(e)&&e instanceof _a&&delete t.geometry,t}getId(){return this.olFeature_.getId()}setId(t){this.olFeature_.setId(t)}setAttributes(t){this.olFeature_.setProperties(t)}static olFeature2Facade(t,e){let i=null;return qB(t)||(i=new DL,i.getImpl().setOLFeature(t,e)),i}static olRenderFeature2Facade(t,e,i){const n=qd.olRenderFeature2olFeature(t,e,i);return NL.olFeature2Facade(n)}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setAttribute(t,e){return this.olFeature_.set(t,e)}static getGeometry(t){let e;const i=t.geometry.type;return"circle"===i?e=new kd(t.geometry.coordinates):"geometry"===i?e=new _a(t.geometry.coordinates):"linestring"===i?e=new wd(t.geometry.coordinates):"multilinestring"===i?e=new bd(t.geometry.coordinates):"multipoint"===i?e=new Id(t.geometry.coordinates):"multipolygon"===i?e=new Md(t.geometry.coordinates):"point"===i?e=new qa(t.geometry.coordinates):"polygon"===i&&(e=new sl(t.geometry.coordinates)),e}setGeometry(t){const e=t.type.toLowerCase();"circle"===e?this.olFeature_.setGeometry(new kd(t.coordinates)):"geometry"===e?this.olFeature_.setGeometry(new _a(t.coordinates)):"linestring"===e?this.olFeature_.setGeometry(new wd(t.coordinates)):"multilinestring"===e?this.olFeature_.setGeometry(new bd(t.coordinates)):"multipoint"===e?this.olFeature_.setGeometry(new Id(t.coordinates)):"multipolygon"===e?this.olFeature_.setGeometry(new Md(t.coordinates)):"point"===e?this.olFeature_.setGeometry(new qa(t.coordinates)):"polygon"===e&&this.olFeature_.setGeometry(new sl(t.coordinates))}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){let t;const e=this.getOLFeature().getGeometry(),i=qd.getCentroid(e);if(!qB(i)){const e=new qa(i);t=new _d({geometry:e,name:"centroid"})}return t=NL.olFeature2Facade(t),t}clearStyle(){this.olFeature_.setStyle(null)}}const PL=NL;class FL extends Qc{constructor(t,e,i){super(new PL(t,e,i)),this.style_=null,this.formatGeoJSON_=new LS,this.setStyle(i)}setId(t){this.getImpl().setId(t)}getId(){return this.getImpl().getId()}getGeometry(){return this.getGeoJSON().geometry}setGeometry(t){this.getImpl().setGeometry(t)}getGeoJSON(){return this.formatGeoJSON_.write(this)[0]}getAttributes(){return this.getImpl().getAttributes()}setAttributes(t){"object"==typeof t?this.getImpl().setAttributes(t):dI(Cu("feature").incorrect_attributes)}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),qB(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qB(t)||(i=t instanceof FL?t.getAttribute(e):t[e]),i}),this))}return e}setAttribute(t,e){return this.getImpl().setAttribute(t,e)}setStyle(t){!qB(t)&&t instanceof Zm?(this.style_=t,this.style_.applyToFeature(this)):qB(t)&&(this.style_=null,this.getImpl().clearStyle()),this.fire(cu,[t,this])}equals(t){return this.getId()===t.getId()}getStyle(){return this.style_}clearStyle(){this.setStyle(null)}getCentroid(){const t=this.getId(),e=this.getAttributes(),i=new CI({stroke:{color:"#67af13",width:2},radius:8,fill:{color:"#67af13",opacity:.2}}),n=this.getImpl().getCentroid();return qB(n)||(n.setId(`${t} centroid}`),n.setAttributes(e),n.setStyle(i)),n}}const DL=FL;const OL=class extends DL{constructor(t,e){super(JB("_mapea_cluster_")),this.setAttributes(e),this.setAttribute("features",t)}};const QL=class extends Qc{addTo(t){qB(t)&&Oc(Cu("exception").no_map);const e=this.getImpl();QB(e.addTo)&&Oc(Cu("exception").addto_method);const i=this.createView(t);i instanceof Promise?i.then((i=>{e.addTo(t,i),this.fire(kc)})):(e.addTo(t,i),this.fire(kc))}createView(t){}getControls(){}};const kL=class extends fI{constructor(t,e={}){super(),this.filterFunction_=t,this.cqlFilter_="",qB(e.cqlFilter)||(this.cqlFilter_=e.cqlFilter)}setFunction(t){this.filterFunction_=t}getFunctionFilter(){return this.filterFunction_}execute(t){return t.filter(this.filterFunction_)}toCQL(){return this.cqlFilter_}};const GL=class extends kL{constructor(t,e){super(((e,i)=>{let n=null;return qB(e)||(n=e.getGeometry()),t(n,i)}),e)}};function UL(t){return"string"==typeof t?t:""}const qL=class extends WE{constructor(){super()}getType(){return"text"}readFeature(t,e){return this.readFeatureFromText(UL(t),this.adaptOptions(e))}readFeatureFromText(t,e){return js()}readFeatures(t,e){return this.readFeaturesFromText(UL(t),this.adaptOptions(e))}readFeaturesFromText(t,e){return js()}readGeometry(t,e){return this.readGeometryFromText(UL(t),this.adaptOptions(e))}readGeometryFromText(t,e){return js()}readProjection(t){return this.readProjectionFromText(UL(t))}readProjectionFromText(t){return this.dataProjection}writeFeature(t,e){return this.writeFeatureText(t,this.adaptOptions(e))}writeFeatureText(t,e){return js()}writeFeatures(t,e){return this.writeFeaturesText(t,this.adaptOptions(e))}writeFeaturesText(t,e){return js()}writeGeometry(t,e){return this.writeGeometryText(t,this.adaptOptions(e))}writeGeometryText(t,e){return js()}},VL={POINT:qa,LINESTRING:wd,POLYGON:sl,MULTIPOINT:Id,MULTILINESTRING:bd,MULTIPOLYGON:Md},zL="EMPTY",YL="Z",jL="M",HL=0,XL=1,WL=2,KL=3,JL=4,ZL=5,$L=6,tM={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class eM{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,n=t;if("("==t)i=WL;else if(","==t)i=ZL;else if(")"==t)i=KL;else if(this.isNumeric_(t)||"-"==t)i=JL,n=this.readNumber_();else if(this.isAlpha_(t))i=XL,n=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=$L}return{position:e,value:n,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,n=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class iM{constructor(t){this.lexer_=t,this.token_={position:0,type:HL},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(XL)){const i=e.value;i===YL?t="XYZ":i===jL?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(WL)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(ZL));if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(WL)){const t=this.parsePoint_();if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(WL)){const t=this.parsePointList_();if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(WL)){const t=this.parseLineStringTextList_();if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(WL)){let t;if(t=this.token_.type==WL?this.parsePointTextList_():this.parsePointList_(),this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(WL)){const t=this.parseLineStringTextList_();if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(WL)){const t=this.parsePolygonTextList_();if(this.match(KL))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i0&&(n+=" "+e)}return 0===i.length?n+" "+zL:n+"("+i+")"}const lM=class extends qL{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new eM(t);return new iM(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),n=new _d;return n.setGeometry(i),n}readFeaturesFromText(t,e){let i=[];const n=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==n.getType()?n.getGeometriesArray():[n];const r=[];for(let t=0,e=i.length;tt.contains(e)))[0]),void 0===i&&(i=r.TileMatrixSetLink[0].TileMatrixSet))}return i}getMatrixIds(t,e){let i=[];const n=this.getMatrixSet(t,e),r=this.capabilities.Contents.TileMatrixSet.filter((t=>t.Identifier===n))[0];return null!=r&&r.length>0&&(i=r.TileMatrix.map((t=>t.Identifier))),i}getFormat(t){let e;const i=this.capabilities.Contents.Layer.filter((e=>e.Identifier===t))[0];return null!=i&&(e=i.Format[0]),e}getOptionsFromCapabilities(t,e){return ob(this.capabilities,{layer:t,matrixSet:e})}};class gM extends Vd{constructor(){super(),this.geojsonFormatter_=new BS,this.name="drawLayer",this.selectedFeatures_=[]}addTo(t){this.map=t,this.fire(kc),this.ol3Layer=new Sy({source:new kf({}),style:new Nm({fill:new wm({color:"rgba(0, 158, 0, 0.1)"}),stroke:new bm({color:"#fcfcfc",width:2}),image:new vm({radius:7,fill:new wm({color:"#009E00"}),stroke:new bm({color:"#fcfcfc",width:2})})}),zIndex:uf.Z_INDEX.WFS+999}),!1!==this.options.visibility&&this.setVisible(this.inRange());this.map.getMapImpl().addLayer(this.ol3Layer)}selectFeatures(t){this.selectedFeatures_=t,VB(this.selectedFeatures_[0].click)&&this.selectedFeatures_[0].click()}unselectFeatures(){this.selectedFeatures_.length>0&&(this.selectedFeatures_.length=0,this.map.removePopup())}drawPoints(t){let e=t;qB(e)&&Oc(Cu("exception").no_point),UB(e)||(e=[e]);const i=this.pointsToGeoJSON_(e);this.drawGeoJSON(i)}drawGeoJSON(t){let e=t;qB(e)&&Oc(Cu("exception").no_geojson),UB(e)||(e=[e]);const i=ee(this.map.getProjection().code);let n=[];e.forEach((t=>{const e=this.geojsonFormatter_.readFeatures(t,{dataProjection:i});n=n.concat(e)})),this.ol3Layer.getSource().addFeatures(n)}drawFeatures(t){let e=t;qB(e)||(UB(e)||(e=[e]),this.ol3Layer.getSource().addFeatures(e))}removeFeatures(t){let e=t;if(!qB(e)){UB(e)||(e=[e]);const t=this.ol3Layer.getSource();e.forEach((e=>{try{t.removeFeature(e)}catch(t){throw t}}))}}getPoints(t){let e=[];const i=this.ol3Layer.getSource();return e=qB(t)?i.getFeatures():i.getFeaturesAtCoordinate(t),this.featuresToPoints_(e)}destroy(){const t=this.map.getMapImpl();qB(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.options=null,this.map=null}equals(t){let e=!1;return t instanceof gM&&(e=e&&this.name===t.name),e}pointsToGeoJSON_(t){let e=[];const i=ee(this.map.getProjection().code);return e=t.map((t=>{const e=t.data,n=new qa([t.x,t.y]);return{type:"Feature",geometry:this.geojsonFormatter_.writeGeometryObject(n,{dataProjection:i}),properties:e,click:t.click,showPopup:t.showPopup}})),e}featuresToPoints_(t){return[]}}const dM=gM,AM=34962,pM=34963,fM=35044,mM=35048,_M=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function yM(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!ro},e);const i=_M.length;for(let n=0;n{this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})}))}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.bindRenderbuffer(e.RENDERBUFFER,this.getDepthBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,n=e.RGBA,r=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,n,i[0],i[1],r,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,i[0],i[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthBuffer_)}}apply(t,e,i,n){const r=this.getGL(),s=t.size;if(r.bindFramebuffer(r.FRAMEBUFFER,e?e.getFrameBuffer():null),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.renderTargetTexture_),!e){const e=Xs(r.canvas);if(!t.renderTargets[e]){const i=r.getContextAttributes();i&&i.preserveDrawingBuffer&&(r.clearColor(0,0,0,0),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT)),t.renderTargets[e]=!0}}r.disable(r.DEPTH_TEST),r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.bindBuffer(r.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),r.useProgram(this.renderTargetProgram_),r.enableVertexAttribArray(this.renderTargetAttribLocation_),r.vertexAttribPointer(this.renderTargetAttribLocation_,2,r.FLOAT,!1,0,0),r.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),r.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;r.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(r,t),r.drawArrays(r.TRIANGLES,0,6),n&&n(r,t)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(t){const e=this.getGL();let i,n=1;this.uniforms_.forEach((function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof ImageData)r.texture||(r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(r.location,n++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(r.location,i[0],i[1]);case 3:return void e.uniform3f(r.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(r.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(r.location,i)}))}};function SM(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const bM="u_projectionMatrix",BM="u_time",LM="u_zoom",MM="u_resolution",TM="u_rotation",RM="u_viewportSizePx",NM="u_pixelRatio",PM="u_hitDetection",FM={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126},DM={};function OM(t){return"shared/"+t}let QM=0;function kM(t){switch(t){case FM.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case FM.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case FM.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case FM.FLOAT:default:return Float32Array.BYTES_PER_ELEMENT}}const GM=class extends ds{constructor(t){super(),t=t||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=t.canvasCacheKey?OM(t.canvasCacheKey):function(){const t="unique/"+QM;return QM+=1,t}(),this.gl_=function(t){let e=DM[t];if(!e){const i=document.createElement("canvas");i.width=1,i.height=1,i.style.position="absolute",i.style.left="0",e={users:0,context:yM(i)},DM[t]=e}return e.users+=1,e.context}(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;const e=this.gl_.canvas;e.addEventListener(vM,this.boundHandleWebGLContextLost_),e.addEventListener(xM,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],t.uniforms&&this.setUniforms(t.uniforms),this.postProcessPasses_=t.postProcesses?t.postProcesses.map((t=>new wM({webGlContext:this.gl_,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}))):[new wM({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[],this.addUniforms(t)}addUniforms(t){for(const e in t)this.uniforms_.push({name:e,value:t[e]})}canvasCacheKeyMatches(t){return this.canvasCacheKey_===OM(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.gl_,i=Xs(t);let n=this.bufferCache_[i];if(!n){n={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=n}e.bindBuffer(t.getType(),n.webGlBuffer)}flushBufferData(t){const e=this.gl_;this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.gl_,i=Xs(t),n=this.bufferCache_[i];n&&!e.isContextLost()&&e.deleteBuffer(n.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){const t=this.gl_.canvas;t.removeEventListener(vM,this.boundHandleWebGLContextLost_),t.removeEventListener(xM,this.boundHandleWebGLContextRestored_),function(t){const e=DM[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=e.context,n=i.getExtension("WEBGL_lose_context");n&&n.loseContext();const r=i.canvas;r.width=1,r.height=1,delete DM[t]}(this.canvasCacheKey_),delete this.gl_}prepareDraw(t,e,i){const n=this.gl_,r=this.getCanvas(),s=t.size,o=t.pixelRatio;r.width===s[0]*o&&r.height===s[1]*o||(r.width=s[0]*o,r.height=s[1]*o,r.style.width=s[0]+"px",r.style.height=s[1]+"px");for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);n.bindTexture(n.TEXTURE_2D,null),n.clearColor(0,0,0,0),n.depthRange(0,1),n.clearDepth(1),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,e?n.ZERO:n.ONE_MINUS_SRC_ALPHA),i?(n.enable(n.DEPTH_TEST),n.depthFunc(n.LEQUAL)):n.disable(n.DEPTH_TEST)}bindTexture(t,e,i){const n=this.gl_;n.activeTexture(n.TEXTURE0+e),n.bindTexture(n.TEXTURE_2D,t),n.uniform1i(this.getUniformLocation(i),e)}prepareDrawToRenderTarget(t,e,i,n){const r=this.gl_,s=e.getSize();r.bindFramebuffer(r.FRAMEBUFFER,e.getFramebuffer()),r.bindRenderbuffer(r.RENDERBUFFER,e.getDepthbuffer()),r.viewport(0,0,s[0],s[1]),r.bindTexture(r.TEXTURE_2D,e.getTexture()),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,i?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}drawElements(t,e){const i=this.gl_;this.getExtension("OES_element_index_uint");const n=i.UNSIGNED_INT,r=e-t,s=4*t;i.drawElements(i.TRIANGLES,r,n,s)}finalizeDraw(t,e,i){for(let n=0,r=this.postProcessPasses_.length;n{if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){r.texture||(r.prevValue=void 0,r.texture=e.createTexture()),this.bindTexture(r.texture,n,r.name),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&r.prevValue!==i&&(r.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),n++}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(r.name,SM(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(r.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(r.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(r.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(r.name),i)}))}useProgram(t,e){this.gl_.useProgram(t),this.currentProgram_=t,this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.gl_,n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}getProgram(t,e){const i=this.gl_,n=this.compileShader(t,i.FRAGMENT_SHADER),r=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,n),i.attachShader(s,r),i.linkProgram(s),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t=`Fragment shader compilation failed: ${i.getShaderInfoLog(n)}`;throw new Error(t)}if(i.deleteShader(n),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t=`Vertex shader compilation failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}if(i.deleteShader(r),!i.getProgramParameter(s,i.LINK_STATUS)){const t=`GL program linking failed: ${i.getProgramInfoLog(s)}`;throw new Error(t)}return s}getUniformLocation(t){const e=Xs(this.currentProgram_);return void 0===this.uniformLocationsByProgram_[e]&&(this.uniformLocationsByProgram_[e]={}),void 0===this.uniformLocationsByProgram_[e][t]&&(this.uniformLocationsByProgram_[e][t]=this.gl_.getUniformLocation(this.currentProgram_,t)),this.uniformLocationsByProgram_[e][t]}getAttributeLocation(t){const e=Xs(this.currentProgram_);return void 0===this.attribLocationsByProgram_[e]&&(this.attribLocationsByProgram_[e]={}),void 0===this.attribLocationsByProgram_[e][t]&&(this.attribLocationsByProgram_[e][t]=this.gl_.getAttribLocation(this.currentProgram_,t)),this.attribLocationsByProgram_[e][t]}makeProjectionTransform(t,e){const i=t.size,n=t.viewState.rotation,r=t.viewState.resolution,s=t.viewState.center;return Eo(e,0,0,2/(r*i[0]),2/(r*i[1]),-n,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.gl_.uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.gl_.uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.gl_.uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.gl_.uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,n,r){const s=this.getAttributeLocation(t);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,e,i,!1,n,r))}enableAttributes(t){const e=function(t){let e=0;for(let i=0;ithis.size_[0]||e>=this.size_[1])return VM[0]=0,VM[1]=0,VM[2]=0,VM[3]=0,VM;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return VM[0]=this.data_[4*i],VM[1]=this.data_[4*i+1],VM[2]=this.data_[4*i+2],VM[3]=this.data_[4*i+3],VM}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),e.bindRenderbuffer(e.RENDERBUFFER,this.depthbuffer_),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t[0],t[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(t[0]*t[1]*4)}},YM="GENERATE_POINT_BUFFERS";i(187);function jM(t,e){const i=256,n=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/n,e[1]=Math.floor(t/i/i)%i/n,e[2]=Math.floor(t/i)%i/n,e[3]=t%i/n,e}const HM=class extends qM{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[bM]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.sourceRevision_=-1,this.verticesBuffer_=new CM(AM,mM),this.indicesBuffer_=new CM(pM,mM),this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.program_,this.hitDetectionEnabled_=e.hitDetectionEnabled??!0;const r=e.attributes?e.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:FM.FLOAT}})):[];this.attributes=[{name:"a_position",size:2,type:FM.FLOAT},{name:"a_index",size:1,type:FM.FLOAT}],this.hitDetectionEnabled_&&(this.attributes.push({name:"a_hitColor",size:4,type:FM.FLOAT}),this.attributes.push({name:"a_featureUid",size:1,type:FM.FLOAT})),this.attributes.push(...r),this.customAttributes=e.attributes?e.attributes:[],this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n,this.renderTransform_=[1,0,0,1,0,0],this.invertRenderTransform_=[1,0,0,1,0,0],this.renderInstructions_=new Float32Array(0),this.hitRenderTarget_,this.lastSentId=0,this.worker_=function(){const t='const e="GENERATE_POLYGON_BUFFERS",t="GENERATE_POINT_BUFFERS",n="GENERATE_LINE_STRING_BUFFERS";function r(e,t){const n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function x(e,t){const n=(r=t)[0]*r[3]-r[1]*r[2];var r;!function(e,t){if(!e)throw new Error(t)}(0!==n,"Transformation matrix cannot be inverted");const x=t[0],i=t[1],u=t[2],o=t[3],f=t[4],s=t[5];return e[0]=o/n,e[1]=-i/n,e[2]=-u/n,e[3]=x/n,e[4]=(u*s-o*f)/n,e[5]=-(x*s-i*f)/n,e}function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}new Array(6);var u={exports:{}};function o(e,t,n){n=n||2;var r,x,i,u,o,s,l,v=t&&t.length,c=v?t[0]*n:e.length,h=f(e,0,c,n,!0),g=[];if(!h||h.next===h.prev)return g;if(v&&(h=function(e,t,n,r){var x,i,u,o=[];for(x=0,i=t.length;x80*n){r=i=e[0],x=u=e[1];for(var b=n;bi&&(i=o),s>u&&(u=s);l=0!==(l=Math.max(i-r,u-x))?32767/l:0}return a(h,g,n,r,x,l,0),g}function f(e,t,n,r,x){var i,u;if(x===O(e,t,n,r)>0)for(i=t;i=t;i-=r)u=P(i,e[i],e[i+1],u);return u&&m(u,u.next)&&(B(u),u=u.next),u}function s(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!m(r,r.next)&&0!==M(r.prev,r,r.next))r=r.next;else{if(B(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function a(e,t,n,r,x,i,u){if(e){!u&&i&&function(e,t,n,r){var x=e;do{0===x.z&&(x.z=b(x.x,x.y,t,n,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==e);x.prevZ.nextZ=null,x.prevZ=null,function(e){var t,n,r,x,i,u,o,f,s=1;do{for(n=e,e=null,i=null,u=0;n;){for(u++,r=n,o=0,t=0;t0||f>0&&r;)0!==o&&(0===f||!r||n.z<=r.z)?(x=n,n=n.nextZ,o--):(x=r,r=r.nextZ,f--),i?i.nextZ=x:e=x,x.prevZ=i,i=x;n=r}i.nextZ=null,s*=2}while(u>1)}(x)}(e,r,x,i);for(var o,f,p=e;e.prev!==e.next;)if(o=e.prev,f=e.next,i?v(e,r,x,i):l(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(f.i/n|0),B(e),e=f.next,p=f.next;else if((e=f)===p){u?1===u?a(e=c(s(e),t,n),t,n,r,x,i,2):2===u&&h(e,t,n,r,x,i):a(s(e),t,n,r,x,i,1);break}}}function l(e){var t=e.prev,n=e,r=e.next;if(M(t,n,r)>=0)return!1;for(var x=t.x,i=n.x,u=r.x,o=t.y,f=n.y,s=r.y,a=xi?x>u?x:u:i>u?i:u,c=o>f?o>s?o:s:f>s?f:s,h=r.next;h!==t;){if(h.x>=a&&h.x<=v&&h.y>=l&&h.y<=c&&Z(x,o,i,f,u,s,h.x,h.y)&&M(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function v(e,t,n,r){var x=e.prev,i=e,u=e.next;if(M(x,i,u)>=0)return!1;for(var o=x.x,f=i.x,s=u.x,a=x.y,l=i.y,v=u.y,c=of?o>s?o:s:f>s?f:s,y=a>l?a>v?a:v:l>v?l:v,g=b(c,h,t,n,r),d=b(p,y,t,n,r),w=e.prevZ,m=e.nextZ;w&&w.z>=g&&m&&m.z<=d;){if(w.x>=c&&w.x<=p&&w.y>=h&&w.y<=y&&w!==x&&w!==u&&Z(o,a,f,l,s,v,w.x,w.y)&&M(w.prev,w,w.next)>=0)return!1;if(w=w.prevZ,m.x>=c&&m.x<=p&&m.y>=h&&m.y<=y&&m!==x&&m!==u&&Z(o,a,f,l,s,v,m.x,m.y)&&M(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;w&&w.z>=g;){if(w.x>=c&&w.x<=p&&w.y>=h&&w.y<=y&&w!==x&&w!==u&&Z(o,a,f,l,s,v,w.x,w.y)&&M(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;m&&m.z<=d;){if(m.x>=c&&m.x<=p&&m.y>=h&&m.y<=y&&m!==x&&m!==u&&Z(o,a,f,l,s,v,m.x,m.y)&&M(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function c(e,t,n){var r=e;do{var x=r.prev,i=r.next.next;!m(x,i)&&A(x,r,r.next,i)&&F(x,i)&&F(i,x)&&(t.push(x.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),B(r),B(r.next),r=e=i),r=r.next}while(r!==e);return s(r)}function h(e,t,n,r,x,i){var u=e;do{for(var o=u.next.next;o!==u.prev;){if(u.i!==o.i&&w(u,o)){var f=I(u,o);return u=s(u,u.next),f=s(f,f.next),a(u,t,n,r,x,i,0),void a(f,t,n,r,x,i,0)}o=o.next}u=u.next}while(u!==e)}function p(e,t){return e.x-t.x}function y(e,t){var n=function(e,t){var n,r=t,x=e.x,i=e.y,u=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var o=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(o<=x&&o>u&&(u=o,n=r.x=r.x&&r.x>=a&&x!==r.x&&Z(in.x||r.x===n.x&&g(n,r)))&&(n=r,v=f)),r=r.next}while(r!==s);return n}(e,t);if(!n)return t;var r=I(n,e);return s(r,r.next),s(n,n.next)}function g(e,t){return M(e.prev,e,t.prev)<0&&M(t.next,e,e.next)<0}function b(e,t,n,r,x){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*x|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function d(e){var t=e,n=e;do{(t.x=(e-u)*(i-o)&&(e-u)*(r-o)>=(n-u)*(t-o)&&(n-u)*(i-o)>=(x-u)*(r-o)}function w(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&A(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(F(e,t)&&F(t,e)&&function(e,t){var n=e,r=!1,x=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&x<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(M(e.prev,e,t.prev)||M(e,t.prev,t))||m(e,t)&&M(e.prev,e,e.next)>0&&M(t.prev,t,t.next)>0)}function M(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function m(e,t){return e.x===t.x&&e.y===t.y}function A(e,t,n,r){var x=z(M(e,t,n)),i=z(M(e,t,r)),u=z(M(n,r,e)),o=z(M(n,r,t));return x!==i&&u!==o||(!(0!==x||!E(e,n,t))||(!(0!==i||!E(e,r,t))||(!(0!==u||!E(n,e,r))||!(0!==o||!E(n,t,r)))))}function E(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function z(e){return e>0?1:e<0?-1:0}function F(e,t){return M(e.prev,e,e.next)<0?M(e,t,e.next)>=0&&M(e,e.prev,t)>=0:M(e,t,e.prev)<0||M(e,e.next,t)<0}function I(e,t){var n=new _(e.i,e.x,e.y),r=new _(t.i,t.x,t.y),x=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=x,x.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function P(e,t,n,r){var x=new _(e,t,n);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function B(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function _(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function O(e,t,n,r){for(var x=0,i=t,u=n-r;i0&&(r+=e[x-1].length,n.holes.push(r))}return n};var N=i(u.exports);const R=[],S={vertexPosition:0,indexPosition:0};function T(e,t,n,r,x){e[t+0]=n,e[t+1]=r,e[t+2]=x}function U(e,t,n,r,x,i){const u=3+x,o=e[t+0],f=e[t+1],s=R;s.length=x;for(let n=0;n0?f:2*Math.PI-f}let b=-1,d=-1;const Z=null!==i;if(null!==x){b=g(p,y,r(s,[...[e[x],e[x+1]]]))}if(Z){d=g(y,p,r(s,[...[e[i],e[i+1]]]))}return u.push(c[0],c[1],h[0],h[1],b,d,a,0),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,1),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,2),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,3),u.push(...f),o.push(v,v+1,v+2,v+1,v+3,v+2),a+Math.sqrt((y[0]-p[0])*(y[0]-p[0])+(y[1]-p[1])*(y[1]-p[1]))}function G(e,t,n,r,x){const i=2+x;let u=t;const o=e.slice(u,u+x);u+=x;const f=e[u++];let s=0;const a=new Array(f-1);for(let t=0;t{const i=r.data;switch(i.type){case t:{const e=3,t=2,n=i.customAttributesSize,r=t+n,x=new Float32Array(i.renderInstructions),u=x.length/r,o=4*u*(n+e),f=new Uint32Array(6*u),s=new Float32Array(o);let a;for(let e=0;e0?c=o+(n-1)*r:l&&(c=i-r);let h=null;n{const e=t.data;if(e.type===YM){const i=e.projectionTransform;this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Co(this.invertRenderTransform_,this.renderTransform_),this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.id===this.lastSentId&&(this.ready=!0),this.getLayer().changed()}})),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[Gs(s,bf,this.handleSourceFeatureAdded_,this),Gs(s,Bf,this.handleSourceFeatureChanged_,this),Gs(s,Mf,this.handleSourceFeatureDelete_,this),Gs(s,Lf,this.handleSourceFeatureClear_,this)],s.forEachFeature((t=>{this.featureCache_[Xs(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new zM(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[Xs(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[Xs(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[Xs(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const[i,n,r]=this.getWorldParameters_(t);this.renderWorlds(t,!1,i,n,r),this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(t,!0,i,n,r),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t),s}getWorldParameters_(t){const e=t.viewState.projection,i=this.getLayer().getSource().getWrapX()&&e.canWrapX(),n=e.getExtent(),r=t.extent,s=i?at(n):null,o=i?Math.ceil((r[2]-n[2])/s)+1:1;return[i?Math.floor((r[0]-n[0])/s):0,o,s]}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Zo]&&!t.viewHints[$o],s=!z(this.previousExtent_,t.extent),o=this.sourceRevision_Promise.resolve(new Uint8Array(4)),interpolate:t.interpolate,transition:t.transition}),this.pixelRatio_=t.pixelRatio,this.gutter_=t.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=t.sourceTileGrid,this.targetTileGrid_=t.targetTileGrid,this.wrappedTileCoord_=t.wrappedTileCoord||t.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const e=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),i=this.targetTileGrid_.getExtent();let n=this.sourceTileGrid_.getExtent();const r=i?rt(e,i):e;if(0===K(r))return void(this.state=bh);const s=t.sourceProj,o=s.getExtent();o&&(n=n?rt(n,o):o);const a=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),l=t.targetProj,h=Vg(s,l,r,a);if(!isFinite(h)||h<=0)return void(this.state=bh);const c=void 0!==t.errorThreshold?t.errorThreshold:.5;if(this.triangulation_=new Og(s,l,r,n,h*c,a),0===this.triangulation_.getTriangles().length)return void(this.state=bh);this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let u=this.triangulation_.calculateSourceExtent();if(n&&(s.canWrapX()?(u[1]=dt(u[1],n[1],n[3]),u[3]=dt(u[3],n[1],n[3])):u=rt(u,n)),K(u)){const e=this.sourceTileGrid_.getTileRangeForExtentAndZ(u,this.sourceZ_),i=t.getTileFunction;for(let t=e.minX;t<=e.maxX;t++)for(let n=e.minY;n<=e.maxY;n++){const e=i(this.sourceZ_,t,n,this.pixelRatio_);e&&this.sourceTiles_.push(e)}0===this.sourceTiles_.length&&(this.state=bh)}else this.state=bh}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach((e=>{if(!e||e.getState()!==wh)return;const i=e.getSize(),n=this.gutter_;let r;const s=KM(e.getData());r=s||function(t){JM||(JM=bl(t.width,t.height,void 0,{willReadFrequently:!0}));const e=JM.canvas,i=t.width;e.width!==i&&(e.width=i);const n=t.height;return e.height!==n&&(e.height=n),JM.clearRect(0,0,i,n),JM.drawImage(t,0,0),JM.getImageData(0,0,i,n).data}(WM(e.getData()));const o=[i[0]+2*n,i[1]+2*n],a=r instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=new h(r.buffer),u=h.BYTES_PER_ELEMENT,g=u*c.length/l,d=c.byteLength/o[1],A=Math.floor(d/u/o[0]),p=l*A;let f=c;if(c.length!==p){f=new h(p);let t=0,e=0;const i=o[0]*A;for(let n=0;n=0;--e){const i=[];for(let n=0,r=t.length;n{const i=e.getState();if(i!==vh&&i!==xh)return;t++;const n=Gs(e,bs,(function(){const i=e.getState();i!=wh&&i!=Sh&&i!=bh||(qs(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(n)})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t){t.getState()==vh&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(qs),this.sourcesListenerKeys_=null}};const eT=class extends Ss{constructor(t){super(),this.tile,this.handleTileChange_=this.handleTileChange_.bind(this),this.gutter_=t.gutter||0,this.helper_=t.helper,this.loaded=!1,this.ready=!1}setTile(t){if(t!==this.tile)if(this.tile&&this.tile.removeEventListener(bs,this.handleTileChange_),this.tile=t,this.loaded=t.getState()===wh,this.loaded)this.uploadTile();else{if(t instanceof Dg){const e=t.getImage();e instanceof Image&&!e.crossOrigin&&(e.crossOrigin="anonymous")}t.addEventListener(bs,this.handleTileChange_)}}uploadTile(){js()}setReady(){this.ready=!0,this.dispatchEvent(bs)}handleTileChange_(){this.tile.getState()===wh&&(this.loaded=!0,this.uploadTile())}disposeInternal(){this.tile.removeEventListener(bs,this.handleTileChange_)}};function iT(t,e,i){const n=i?t.LINEAR:t.NEAREST;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n)}function nT(t,e,i,n,r,s){const o=t.getGL();let a,l;if(i instanceof Float32Array){a=o.FLOAT,t.getExtension("OES_texture_float");l=null!==t.getExtension("OES_texture_float_linear")}else a=o.UNSIGNED_BYTE,l=!0;iT(o,e,s&&l);const h=i.byteLength/n[1];let c,u=1;switch(h%8==0?u=8:h%4==0?u=4:h%2==0&&(u=2),r){case 1:c=o.LUMINANCE;break;case 2:c=o.LUMINANCE_ALPHA;break;case 3:c=o.RGB;break;case 4:c=o.RGBA;break;default:throw new Error(`Unsupported number of bands: ${r}`)}const g=o.getParameter(o.UNPACK_ALIGNMENT);o.pixelStorei(o.UNPACK_ALIGNMENT,u),o.texImage2D(o.TEXTURE_2D,0,c,n[0],n[1],0,c,a,i),o.pixelStorei(o.UNPACK_ALIGNMENT,g)}let rT=null;const sT=class extends eT{constructor(t){super(t),this.textures=[],this.renderSize_=xc(t.grid.getTileSize(t.tile.tileCoord[0])),this.bandCount=NaN;const e=new CM(AM,fM);e.fromArray([0,1,1,1,1,0,0,0]),this.helper_.flushBufferData(e),this.coords=e,this.setTile(t.tile)}uploadTile(){const t=this.helper_,e=t.getGL(),i=this.tile;let n;this.textures.length=0,n=i instanceof Dg||i instanceof Yg?i.getImage():i.getData();const r=WM(n);if(r){const t=e.createTexture();return this.textures.push(t),this.bandCount=4,function(t,e,i,n){iT(t,e,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)}(e,t,r,i.interpolate),void this.setReady()}n=KM(n);const s=i.getSize(),o=[s[0]+2*this.gutter_,s[1]+2*this.gutter_],a=n instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=h.BYTES_PER_ELEMENT,u=n.byteLength/o[1];this.bandCount=Math.floor(u/c/o[0]);const g=Math.ceil(this.bandCount/4);if(1===g){const r=e.createTexture();return this.textures.push(r),nT(t,r,n,o,this.bandCount,i.interpolate),void this.setReady()}const d=new Array(g);for(let t=0;t=A;--r){const i=l.getTileRangeForExtentAndZ(e,r,this.tempTileRange_),o=l.getResolution(r);for(let e=i.minX;e<=i.maxX;++e)for(let d=i.minY;d<=i.maxY;++d){const i=td(r,e,d,this.tempTileCoord_),A=cT(a,i);let p,f;if(g.containsKey(A)&&(p=g.get(A),f=p.tile),p&&p.tile.key===a.getKey()||(f=a.getTile(r,e,d,t.pixelRatio,s.projection)),aT(n,f))continue;if(p)if(this.isDrawableTile_(f))p.setTile(f);else{const t=f.getInterimTile();p.setTile(t)}else p=this.createTileRepresentation({tile:f,grid:l,helper:this.helper,gutter:h}),g.set(A,p);lT(n,p,r);const m=f.getKey();u[m]=!0,f.getState()===vh&&(t.tileQueue.isKeyQueued(m)||t.tileQueue.enqueue([f,c,l.getTileCoordCenter(i),o]))}}}beforeTilesRender(t,e){this.helper.prepareDraw(this.frameState,!e,!0)}renderTile(t,e,i,n,r,s,o,a,l,h,c){}drawTile_(t,e,i,n,r,s,o){if(!e.loaded)return;const a=e.tile.tileCoord,l=id(a),h=l in s?s[l]:1,c=o.getResolution(i),u=xc(o.getTileSize(i),this.tempSize_),g=o.getOrigin(i),d=o.getTileCoordExtent(a),A=h<1?-1:1/(i+2);h<1&&(t.animate=!0);const p=t.viewState,f=p.center[0],m=p.center[1],_=u[0]+2*n,y=u[1]+2*n,I=_/y,E=(f-g[0])/(u[0]*c),C=(g[1]-m)/(u[1]*c),v=p.resolution/c,x=a[1],w=a[2];po(this.tileTransform_),yo(this.tileTransform_,2/(t.size[0]*v/_),-2/(t.size[1]*v/_)),function(t,e){const i=Math.cos(e),n=Math.sin(e);fo(t,mo(Ao,i,n,-n,i,0,0))}(this.tileTransform_,p.rotation),yo(this.tileTransform_,1,1/I),Io(this.tileTransform_,(u[0]*(x-E)-n)/_,(u[1]*(w-C)-n)/y),this.renderTile(e,this.tileTransform_,t,r,c,u,g,d,A,n,h)}renderFrame(t){this.frameState=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,n=this.getLayer(),r=n.getRenderSource(),s=r.getTileGridForProjection(i.projection),o=r.getGutterForProjection(i.projection),a=hT(t,t.extent),l=s.getZForResolution(i.resolution,r.zDirection),h={tileIds:new Set,representationsByZ:{}},c=n.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,r.zDirection),n=hT(t,t.nextExtent);this.enqueueTiles(t,n,e,h,c)}this.enqueueTiles(t,a,l,h,0),c>0&&setTimeout((()=>{this.enqueueTiles(t,a,l-1,h,c-1)}),0);const u={},g=Xs(this),d=t.time;let A=!1;for(const t of h.representationsByZ[l]){const e=t.tile;if((e instanceof Yg||e instanceof tT)&&e.getState()===bh)continue;const i=e.tileCoord;if(t.loaded){const t=e.getAlpha(g,d);if(1===t){e.endTransition(g);continue}A=!0;u[id(i)]=t}this.renderComplete=!1;if(this.findAltTiles_(s,i,l+1,h))continue;const n=s.getMinZoom();for(let t=l-1;t>=n;--t){if(this.findAltTiles_(s,i,t,h))break}}this.beforeTilesRender(t,A);const p=h.representationsByZ,f=Object.keys(p).map(Number).sort(ps);for(let e=0,i=f.length;et.dispose())),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){super.disposeInternal(),delete this.frameState}},gT={TILE_TRANSFORM:"u_tileTransform",TRANSITION_ALPHA:"u_transitionAlpha",DEPTH:"u_depth",RENDER_EXTENT:"u_renderExtent",RESOLUTION:"u_resolution",ZOOM:"u_zoom",GLOBAL_ALPHA:"u_globalAlpha",PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},dT="a_textureCoord",AT=[{name:dT,size:2,type:FM.FLOAT}];const pT=class extends uT{constructor(t,e){super(t,e),this.program_,this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.indices_=new CM(pM,fM),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=e.paletteTextures||[]}reset(t){super.reset(t),this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.helper&&(this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}createTileRepresentation(t){return new sT(t)}beforeTilesRender(t,e){super.beforeTilesRender(t,e),this.helper.useProgram(this.program_,t)}renderTile(t,e,i,n,r,s,o,a,l,h,c){const u=this.helper.getGL();this.helper.bindBuffer(t.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(AT);let g=0;for(;g0&&(y=a,rt(y,n,y)),this.helper.setUniformFloatVec4(gT.RENDER_EXTENT,y),this.helper.setUniformFloatValue(gT.RESOLUTION,d.resolution),this.helper.setUniformFloatValue(gT.ZOOM,d.zoom),this.helper.setUniformFloatValue(gT.TEXTURE_PIXEL_WIDTH,A),this.helper.setUniformFloatValue(gT.TEXTURE_PIXEL_HEIGHT,p),this.helper.setUniformFloatValue(gT.TEXTURE_RESOLUTION,r),this.helper.setUniformFloatValue(gT.TEXTURE_ORIGIN_X,o[0]+m*s[0]*r-h*r),this.helper.setUniformFloatValue(gT.TEXTURE_ORIGIN_Y,o[1]-_*s[1]*r+h*r),this.helper.drawElements(0,this.indices_.getSize())}getData(t){if(!this.helper.getGL())return null;const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=_o(e.pixelToCoordinateTransform,t.slice()),r=e.viewState,s=i.getExtent();if(s&&!F(_e(s,r.projection),n))return null;const o=i.getSources(T([n]),r.resolution);let a,l,h;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(h=l.getTileGridForProjection(r.projection),l.getWrapX())break;const t=h.getExtent();if(!t||F(t,n))break}if(a<0)return null;const c=this.tileRepresentationCache;for(let t=h.getZForResolution(r.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=cT(l,e);if(!c.containsKey(i))continue;const r=c.get(i),s=r.tile;if((s instanceof Yg||s instanceof tT)&&s.getState()===bh)return null;if(!r.loaded)continue;const o=h.getOrigin(t),a=xc(h.getTileSize(t)),u=h.getResolution(t),g=(n[0]-o[0])/u-e[1]*a[0],d=(o[1]-n[1])/u-e[2]*a[1];return r.getPixelData(g,d)}return null}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},fT={NUMBER:1,STRING:2,COLOR:4,BOOLEAN:8,NUMBER_ARRAY:16,ANY:31,NONE:0};const mT={};function _T(t){if("number"==typeof t)return fT.NUMBER;if("boolean"==typeof t)return fT.BOOLEAN;if("string"==typeof t)return e=t,So.test(e)&&(e=Bo(e)),wo.test(e)||e.startsWith("rgba(")||e.startsWith("rgb(")?fT.COLOR|fT.STRING:fT.STRING;var e;if(!Array.isArray(t))throw new Error(`Unhandled value type: ${JSON.stringify(t)}`);const i=t;if(i.every((function(t){return"number"==typeof t})))return 3===i.length||4===i.length?fT.COLOR|fT.NUMBER_ARRAY:fT.NUMBER_ARRAY;if("string"!=typeof i[0])throw new Error(`Expected an expression operator but received: ${JSON.stringify(i)}`);const n=mT[i[0]];if(void 0===n)throw new Error(`Unrecognized expression operator: ${JSON.stringify(i)}`);return n.getReturnType(i.slice(1))}function yT(t){const e=[];return(t&fT.NUMBER)>0&&e.push("number"),(t&fT.COLOR)>0&&e.push("color"),(t&fT.BOOLEAN)>0&&e.push("boolean"),(t&fT.NUMBER_ARRAY)>0&&e.push("number[]"),(t&fT.STRING)>0&&e.push("string"),e.length>0?e.join(", "):"(no type)"}function IT(t){const e=t.toString();return e.includes(".")?e:e+".0"}function ET(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(IT).join(", ")})`}function CT(t){const e=Mo(t),i=e.length>3?e[3]:1;return ET([e[0]/255*i,e[1]/255*i,e[2]/255*i,i])}const vT={};let xT=0;function wT(t){return t in vT||(vT[t]=xT++),vT[t]}function ST(t){return IT(wT(t))}function bT(t,e,i){const n=void 0!==i?i:fT.NUMBER;if(Array.isArray(e)&&"string"==typeof e[0]){const i=mT[e[0]];if(void 0===i)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return i.toGlsl(t,e.slice(1),n)}const r=_T(e)&n;if(DT(e,r,""),(r&fT.NUMBER)>0)return IT(e);if((r&fT.BOOLEAN)>0)return e.toString();if((r&fT.STRING)>0)return ST(e.toString());if((r&fT.COLOR)>0)return CT(e);if((r&fT.NUMBER_ARRAY)>0)return ET(e);throw new Error(`Unexpected expression ${e} (expected type ${yT(n)})`)}function BT(t){if(0==(_T(t)&fT.NUMBER))throw new Error(`A numeric value was expected, got ${JSON.stringify(t)} instead`)}function LT(t){for(let e=0;ee)throw new Error(`At most ${e} arguments were expected, got ${t.length} instead`)}function FT(t){if(t.length%2!=0)throw new Error(`An even amount of arguments was expected, got ${JSON.stringify(t)} instead`)}function DT(t,e,i){if(e===fT.NONE)throw new Error(`No matching type was found for the following expression ${i}: ${JSON.stringify(t)}`)}function OT(t,e,i){if(DT(t,e,i),n=e,Math.log2(n)%1!=0)throw new Error(`Expected to have a unique type for the following expression ${i}: ${JSON.stringify(t)}\nGot the following types instead: ${yT(e)}`);var n}function QT(t,e,i,n){if((e&i)===fT.NONE)throw new Error(`Expected the ${n} type of the following expression: ${JSON.stringify(t)} to be of the following types: ${yT(i)}\nGot these types instead: ${yT(e)}`)}function kT(t){return"u_var_"+t}mT.get={getReturnType:function(t){if(2===t.length){return function(t){switch(t){case"string":return fT.STRING;case"color":return fT.COLOR;case"number":return fT.NUMBER;case"boolean":return fT.BOOLEAN;case"number[]":return fT.NUMBER_ARRAY;default:throw new Error(`Unrecognized type hint: ${t}`)}}(t[1])}return fT.ANY},toGlsl:function(t,e,i){NT(e,1),PT(e,2),MT(e[0]);const n=i&mT.get.getReturnType(e);OT(["get",...e],n,"");const r=e[0].toString(),s=t.attributes.find((t=>t.name===r));if(s){if(n!==s.type)throw new Error(`The following attribute was used in different places with incompatible types: ${r}\nTypes were: ${yT(s.type)} and ${yT(n)}`)}else t.attributes.push({name:r,type:n});return(t.inFragmentShader?"v_":"a_")+r}},mT.var={getReturnType:function(){return fT.ANY},toGlsl:function(t,e,i){RT(e,1),MT(e[0]);const n=e[0].toString();if(!t.style.variables||void 0===t.style.variables[n])throw new Error(`The following variable is missing from the style: ${n}`);const r=i&_T(t.style.variables[n]);OT(["var",...e],r,"");const s=t.variables.find((t=>t.name===n));if(s){if(r!==s.type)throw new Error(`The following variable was used in different places with incompatible types: ${n}\nTypes were: ${yT(s.type)} and ${yT(r)}`)}else t.variables.push({name:n,type:r});return kT(n)}};const GT="u_paletteTextures";mT.palette={getReturnType:function(){return fT.COLOR},toGlsl:function(t,e){RT(e,2),BT(e[0]);const i=bT(t,e[0]),n=e[1];if(!Array.isArray(n))throw new Error("The second argument of palette must be an array");const r=n.length,s=new Uint8Array(4*r);for(let t=0;tbT(e,t,fT.BOOLEAN))).join(` ${t} `);return n=`(${n})`,n}}}mT.band={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){NT(e,1),PT(e,3);const i=e[0];if(!(UT in t.functions)){let e="";const i=t.bandCount||1;for(let t=0;t{const e=t.getType();switch(e){case"Point":case"LineString":case"Polygon":return e;case"MultiPoint":case"MultiLineString":case"MultiPolygon":return e.substring(5);case"Circle":return"Polygon";case"GeometryCollection":return n(t.getGeometries()[0])}};t.attributes.find((t=>t.name===i))||t.attributes.push({name:i,type:fT.STRING,callback:t=>n(t.getGeometry())});return(t.inFragmentShader?"v_":"a_")+i}},mT["*"]={getReturnType:function(t){let e=fT.NUMBER|fT.COLOR;for(let i=0;ibT(t,e,n))).join(" * ")})`}},mT["/"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} / ${bT(t,e[1])})`}},mT["+"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return NT(e,2),LT(e),`(${e.map((e=>bT(t,e))).join(" + ")})`}},mT["-"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} - ${bT(t,e[1])})`}},mT.clamp={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){RT(e,3),LT(e);const i=bT(t,e[1]),n=bT(t,e[2]);return`clamp(${bT(t,e[0])}, ${i}, ${n})`}},mT["%"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),LT(e),`mod(${bT(t,e[0])}, ${bT(t,e[1])})`}},mT["^"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),LT(e),`pow(${bT(t,e[0])}, ${bT(t,e[1])})`}},mT.abs={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`abs(${bT(t,e[0])})`}},mT.floor={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`floor(${bT(t,e[0])})`}},mT.round={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`floor(${bT(t,e[0])} + 0.5)`}},mT.ceil={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`ceil(${bT(t,e[0])})`}},mT.sin={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`sin(${bT(t,e[0])})`}},mT.cos={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`cos(${bT(t,e[0])})`}},mT.atan={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return NT(e,1),PT(e,2),LT(e),2===e.length?`atan(${bT(t,e[0])}, ${bT(t,e[1])})`:`atan(${bT(t,e[0])})`}},mT.sqrt={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),LT(e),`sqrt(${bT(t,e[0])})`}},mT[">"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} > ${bT(t,e[1])})`}},mT[">="]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} >= ${bT(t,e[1])})`}},mT["<"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} < ${bT(t,e[1])})`}},mT["<="]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),LT(e),`(${bT(t,e[0])} <= ${bT(t,e[1])})`}},mT["=="]=qT("=="),mT["!="]=qT("!="),mT["!"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,1),TT(e[0]),`(!${bT(t,e[0],fT.BOOLEAN)})`}},mT.all=VT("&&"),mT.any=VT("||"),mT.between={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){RT(e,3),LT(e);const i=bT(t,e[1]),n=bT(t,e[2]),r=bT(t,e[0]);return`(${r} >= ${i} && ${r} <= ${n})`}},mT.array={getReturnType:function(){return fT.NUMBER_ARRAY},toGlsl:function(t,e){NT(e,2),PT(e,4),LT(e);const i=e.map((function(e){return bT(t,e)}));return`vec${e.length}(${i.join(", ")})`}},mT.color={getReturnType:function(){return fT.COLOR},toGlsl:function(t,e){NT(e,3),PT(e,4),LT(e);const i=e.slice(0,3).map((e=>`${bT(t,e)} / 255.0`));if(3===e.length)return`vec4(${i.join(", ")}, 1.0)`;return`(${bT(t,e[3])} * vec4(${i.join(", ")}, 1.0))`}},mT.interpolate={getReturnType:function(t){let e=fT.COLOR|fT.NUMBER;for(let i=3;i=1;i-=2){a=`(${s} == ${bT(t,e[i],n)} ? ${bT(t,e[i+1],r)} : ${a||o})`}return a}},mT.case={getReturnType:function(t){let e=fT.ANY;for(let i=1;i=0;i-=2){s=`(${bT(t,e[i],fT.BOOLEAN)} ? ${bT(t,e[i+1],n)} : ${s||r})`}return s}},mT.in={getReturnType:function(t){return fT.BOOLEAN},toGlsl:function(t,e){RT(e,2);const i=e[0];let n=e[1];if(!Array.isArray(n))throw new Error('The "in" operator expects an array literal as its second argument.');if("string"==typeof n[0]){if("literal"!==n[0])throw new Error('For the "in" operator, a string array should be wrapped in a "literal" operator to disambiguate from expressions.');if(!Array.isArray(n[1]))throw new Error('The "in" operator was provided a literal value which was not an array as second argument.');n=n[1]}let r=_T(i);for(let t=0;t 0) {\n if (gl_FragColor.a < 0.05) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getStrokeVertexShader(){return this.hasStroke_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\nattribute vec2 a_segmentStart;\nattribute vec2 a_segmentEnd;\nattribute float a_parameters;\nattribute float a_distance;\nattribute vec2 a_joinAngles;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\n}\n\nvec4 pxToScreen(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return vec4(screenPos, 0.0, 1.0);\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nvec2 getJoinOffsetDirection(vec2 normalPx, float joinAngle) {\n float halfAngle = joinAngle / 2.0;\n float c = cos(halfAngle);\n float s = sin(halfAngle);\n vec2 angleBisectorNormal = vec2(s * normalPx.x + c * normalPx.y, -c * normalPx.x + s * normalPx.y);\n float length = 1.0 / s;\n return angleBisectorNormal * length;\n}\n\nvec2 getOffsetPoint(vec2 point, vec2 normal, float joinAngle, float offsetPx) {\n // if on a cap or the join angle is too high, offset the line along the segment normal\n if (cos(joinAngle) > 0.998 || isCap(joinAngle)) {\n return point - normal * offsetPx;\n }\n // offset is applied along the inverted normal (positive offset goes "right" relative to line direction)\n return point - getJoinOffsetDirection(normal, joinAngle) * offsetPx;\n}\n\nvoid main(void) {\n v_angleStart = a_joinAngles.x;\n v_angleEnd = a_joinAngles.y;\n float vertexNumber = a_parameters;\n\n float lineWidth = ${this.strokeWidthExpression_};\n float lineOffsetPx = ${this.strokeOffsetExpression_};\n\n // compute segment start/end in px with offset\n vec2 segmentStartPx = worldToPx(a_segmentStart);\n vec2 segmentEndPx = worldToPx(a_segmentEnd);\n vec2 tangentPx = normalize(segmentEndPx - segmentStartPx);\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\n segmentStartPx = getOffsetPoint(segmentStartPx, normalPx, v_angleStart, lineOffsetPx),\n segmentEndPx = getOffsetPoint(segmentEndPx, normalPx, v_angleEnd, lineOffsetPx);\n \n // compute current vertex position\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\n vec2 joinDirection;\n vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx;\n // if angle is too high, do not make a proper join\n if (cos(angle) > 0.985 || isCap(angle)) {\n joinDirection = normalPx * normalDir - tangentPx * tangentDir;\n } else {\n joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle);\n }\n positionPx = positionPx + joinDirection * lineWidth * 0.5;\n gl_Position = pxToScreen(positionPx);\n\n v_segmentStart = segmentStartPx;\n v_segmentEnd = segmentEndPx;\n v_width = lineWidth;\n v_hitColor = a_hitColor;\n v_distanceOffsetPx = a_distance / u_resolution;\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\n\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nfloat segmentDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n vec2 tangent = normalize(end - start);\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 startToPoint = point - start;\n return abs(dot(startToPoint, normal)) - width * 0.5;\n}\n\nfloat buttCapDistanceField(vec2 point, vec2 start, vec2 end) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n return dot(startToPoint, -tangent);\n}\n\nfloat squareCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return buttCapDistanceField(point, start, end) - width * 0.5;\n}\n\nfloat roundCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n float onSegment = max(0., 1000. * dot(point - start, end - start)); // this is very high when inside the segment\n return length(point - start) - width * 0.5 - onSegment;\n}\n\nfloat roundJoinDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n float c = cos(joinAngle * 0.5);\n float s = sin(joinAngle * 0.5);\n float direction = -sign(sin(joinAngle));\n vec2 bisector = vec2(c * tangent.x - s * tangent.y, s * tangent.x + c * tangent.y);\n float radius = width * 0.5 * s;\n return dot(startToPoint, bisector * direction) - radius;\n}\n\nfloat miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n if (cos(joinAngle) > 0.985) { // avoid risking a division by zero\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n float miterLength = 1. / sin(joinAngle * 0.5);\n float miterLimit = ${this.strokeMiterLimitExpression_};\n if (miterLength > miterLimit) {\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n return -1000.;\n}\n\nfloat capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) {\n if (capType == ${ST("butt")}) {\n return buttCapDistanceField(point, start, end);\n } else if (capType == ${ST("square")}) {\n return squareCapDistanceField(point, start, end, width);\n }\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) {\n if (joinType == ${ST("bevel")}) {\n return bevelJoinField(point, start, end, width, joinAngle);\n } else if (joinType == ${ST("miter")}) {\n return miterJoinDistanceField(point, start, end, width, joinAngle);\n }\n return roundJoinDistanceField(point, start, end, width);\n}\n\nfloat computeSegmentPointDistance(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float capType, float joinType) {\n if (isCap(joinAngle)) {\n return capDistanceField(point, start, end, width, capType);\n }\n return joinDistanceField(point, start, end, width, joinAngle, joinType);\n}\n\nvoid main(void) {\n vec2 currentPoint = gl_FragCoord.xy / u_pixelRatio;\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 v_worldPos = pxToWorld(currentPoint);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n v_worldPos[0] < u_renderExtent[0] ||\n v_worldPos[1] < u_renderExtent[1] ||\n v_worldPos[0] > u_renderExtent[2] ||\n v_worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n\n float segmentLength = length(v_segmentEnd - v_segmentStart);\n vec2 segmentTangent = (v_segmentEnd - v_segmentStart) / segmentLength;\n vec2 segmentNormal = vec2(-segmentTangent.y, segmentTangent.x);\n vec2 startToPoint = currentPoint - v_segmentStart;\n float currentLengthPx = max(0., min(dot(segmentTangent, startToPoint), segmentLength)) + v_distanceOffsetPx; \n float currentRadiusPx = abs(dot(segmentNormal, startToPoint));\n vec4 color = ${this.strokeColorExpression_} * u_globalAlpha;\n float capType = ${this.strokeCapExpression_};\n float joinType = ${this.strokeJoinExpression_};\n float segmentStartDistance = computeSegmentPointDistance(currentPoint, v_segmentStart, v_segmentEnd, v_width, v_angleStart, capType, joinType);\n float segmentEndDistance = computeSegmentPointDistance(currentPoint, v_segmentEnd, v_segmentStart, v_width, v_angleEnd, capType, joinType);\n float distance = max(\n segmentDistanceField(currentPoint, v_segmentStart, v_segmentEnd, v_width),\n max(segmentStartDistance, segmentEndDistance)\n );\n distance = max(distance, ${this.strokeDistanceFieldExpression_});\n gl_FragColor = color * smoothstep(0., -1., distance);\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getFillVertexShader(){return this.hasFill_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getFillFragmentShader(){return this.hasFill_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nvoid main(void) {\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 v_worldPos = pxToWorld(gl_FragCoord.xy / u_pixelRatio);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n v_worldPos[0] < u_renderExtent[0] ||\n v_worldPos[1] < u_renderExtent[1] ||\n v_worldPos[0] > u_renderExtent[2] ||\n v_worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n gl_FragColor = ${this.fillColorExpression_} * u_globalAlpha;\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}}const HT="blur",XT="gradient",WT="radius",KT=["#00f","#0ff","#0f0","#ff0","#f00"];const JT=class extends Y_{constructor(t){t=t||{};const e=Object.assign({},t);delete e.gradient,delete e.radius,delete e.blur,delete e.weight,super(e),this.gradient_=null,this.addChangeListener(XT,this.handleGradientChanged_),this.setGradient(t.gradient?t.gradient:KT),this.setBlur(void 0!==t.blur?t.blur:15),this.setRadius(void 0!==t.radius?t.radius:8);const i=t.weight?t.weight:"weight";this.weightFunction_="string"==typeof i?function(t){return t.get(i)}:i,this.setRenderOrder(null)}getBlur(){return this.get(HT)}getGradient(){return this.get(XT)}getRadius(){return this.get(WT)}handleGradientChanged_(){this.gradient_=function(t){const e=1,i=256,n=bl(e,i),r=n.createLinearGradient(0,0,e,i),s=1/(t.length-1);for(let e=0,i=t.length;e{const e=this.weightFunction_(t);return void 0!==e?dt(e,0,1):1}}],uniforms:{u_size:()=>2*(this.get(WT)+this.get(HT)),u_blurSlope:()=>this.get(WT)/Math.max(1,this.get(HT))},hitDetectionEnabled:!0,vertexShader:t.getSymbolVertexShader(),fragmentShader:t.getSymbolFragmentShader(),postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}renderDeclutter(){}};const ZT=class extends JT{constructor(t={}){super(t);const e=t.weight?t.weight:"weight";let i;if("string"==typeof e){let n=1;const r=this.getWeights(t);r.length>0?(n=r.reduce(((t,e)=>Math.max(t,e))),this.maxWeight_=n,this.minWeight_=r.reduce(((t,e)=>Math.min(t,e))),i=t=>{let i;return t instanceof _d?i=t.get(e):t instanceof DL&&(i=t.getAttribute(e)),parseFloat(i/n)}):dI(`La capa de nombre ${t.name} no tiene ninguna feature
    \n con el atributo especificado en simbología establecida.\n
    Se setea una ponderación por defecto`,"Mapa de calor")}else i=e;this.setStyle(((t,e)=>{const n=um.getValue(i,t),r=void 0!==n?dt(n,0,1):1,s=255*r||0;let o=this.styleCache_[s];return o||(o=[new Nm({image:new Hf({opacity:r,src:this.circleImage_})})],this.styleCache_[s]=o),o}))}getMinWeight(){return this.minWeight_}getMaxWeight(){return this.maxWeight_}getWeights(t){let e=[];const i=this.getSource();if(null!==i){const n=i.getFeatures();n.length>0&&(e=n.map((e=>e.get(t.weight))).filter((t=>null!=t)))}return e}};const $T=class{constructor(t={}){this.attributeName_=t.attribute||null,this.label_=t.label||null,this.fillColor_=t.fill||null,this.legend_=t.legend||null}get attribute(){return this.attributeName_}set attribute(t){this.attributeName_=t}get label(){return this.label_}set label(t){this.label_=t}get fillColor(){return this.fillColor_}set fillColor(t){this.fillColor_=t}get legend(){return this.legend_}set legend(t){this.legend_=t}},tR={DONUT:"donut",PIE_3D:"pie3D",PIE:"pie",BAR:"bar"},eR={Custom:"m.style.chart.types.custom_scheme",Classic:["#ffa500","blue","red","green","cyan","magenta","yellow","#0f0"],Dark:["#960","#003","#900","#060","#099","#909","#990","#090"],Pale:["#fd0","#369","#f64","#3b7","#880","#b5d","#666"],Pastel:["#fb4","#79c","#f66","#7d7","#acc","#fdd","#ff9","#b9b"],Neon:["#ff0","#0ff","#0f0","#f0f","#f00","#00f"]};class iR extends Zm{constructor(t={}){const e=t,i=e.variables||null;if(Object.values(tR).includes(e.type)||(e.type=iR.DEFAULT.type),qB(i)||(e.variables=i instanceof Array?i.filter((t=>null!=t)).map((t=>iR.formatVariable(t))):"string"==typeof i||"object"==typeof i?[iR.formatVariable(i)]:[]),qB(e.scheme))e.scheme=iR.DEFAULT.scheme;else if("string"==typeof e.scheme){const t=e.variables.some((t=>null!=t.fillColor));e.scheme===eR.Custom&&t?e.scheme=e.variables.map((t=>t.fillColor?t.fillColor:"")):e.scheme=eR[e.scheme]||iR.DEFAULT.scheme}else e.scheme instanceof Array&&e.scheme.every((t=>"string"==typeof t))||(e.scheme=iR.DEFAULT.scheme);super(e,new lR(e))}static formatVariable(t){if(null==t)return null;let e={};return t instanceof $T?t:(e="string"==typeof t?{attribute:t}:t,new $T(e))}updateCanvas(){qB(this.getImpl())&&qB(this.canvas_)||this.getImpl().updateCanvas(this.canvas_)}apply(t){this.layer_=t,t.getFeatures().forEach((t=>t.setStyle(this.clone()))),this.updateCanvas()}get ORDER(){return 1}toJSON(){const t=this.getOptions();return{parameters:[{type:t.type,radius:t.radius,donutRadio:t.donutRadio,offsetX:t.offsetX,offsetY:t.offsetY,stroke:qB(t.stroke)?void 0:_L({},t.stroke),fill3DColor:t.fill3DColor,scheme:UB(t.scheme)?[...t.scheme]:t.scheme,label:qB(t.label)?void 0:_L({},t.label),rotateWithView:t.rotateWithView,variables:t.variables.map((t=>{let e;return qB(t.label)||(e=_L({},t.label),e=CL(e)),{attribute:t.attribute,legend:t.legend,fill:t.fillColor,label:e}}))}],deserializedMethod:"M.style.Chart.deserialize"}}static deserialize([t]){const e=t;e.variables=t.variables.map((t=>new $T(vL(t))));return new Function(["options"],"return new M.style.Chart(options)")(e)}}iR.DEFAULT={shadow3dColor:"#369",type:tR.PIE,scheme:eR.Classic,radius:20,donutRatio:.5,offsetX:0,offsetY:0,animationStep:1};const nR=iR;class rR extends am{constructor(t={}){const e=qB(t.stroke)?0:t.stroke.getWidth();super({radius:("number"==typeof t.radius?t.radius:0)+e,fill:new wm({color:[0,0,0]}),rotation:"number"==typeof t.rotation?t.rotation:0,snapToPixel:"boolean"==typeof t.snapToPixel&&t.snapToPixel}),t.scale&&this.setScale(t.scale),this.variables_=t.variables||[],this.stroke_=t.stroke||null,this.radius_=t.radius||0,this.donutRatio_=t.donutRatio||0,this.type_=t.type||null,this.offset_=[t.offsetX?t.offsetX:0,t.offsetY?t.offsetY:0],this.animation_={animate:"number"==typeof t.animation,step:"number"==typeof t.animation?t.animation:nR.DEFAULT.animationStep},this.data_=t.data||null,this.colors_=t.scheme instanceof Array?t.scheme:[],this.fill3DColor_=t.fill3DColor||"#000",this.rotateWithView_=t.rotateWithView||!1,this.renderChart_()}clone(){const t=new rR({type:this.type_,radius:this.radius_,colors:this.colors_,rotation:this.getRotation(),scale:this.getScale(),donutRatio:this.donutRatio_,data:this.data_,stroke:this.stroke_,scheme:this.colors_,offsetX:this.offset_[0],offsetY:this.offset_[1],animation:this.animation_,fill3DColor:this.fill3DColor_,rotateWithView:this.rotateWithView_});return t.setScale(this.getScale()),t.setOpacity(this.getOpacity()),t}get data(){return this.data_}set data(t){this.data_=t,this.renderChart_()}get radius(){return this.radius_}set radius(t){this.radius_=t,this.renderChart_()}setRadius(t,e){this.donutRatio_=e||this.donutRatio_,this.radius=t}setAnimation(t){if(!1===t){if(!1===this.animation_.animate)return;this.animation_.animate=!1}else{if(this.animation_.step===t)return;this.animation_.animate=!0,this.animation_.step=t}this.renderChart_()}getChecksum(){let t;const e=null!==this.stroke_?this.stroke_.getChecksum():"-";if(null===this.checksums_||e!==this.checksums_[1]||t!==this.checksums_[2]||this.radius_!==this.checksums_[3]||this.data_.join("|")!==this.checksums_[4]){const i=`c${e}undefined${this.radius_?this.radius_.toString():"-"}${this.data_.join("|")}`;this.checksums_=[i,e,t,this.radius_,this.data_.join("|")]}return this.checksums_[0]}renderChart_(t){switch(this.type_){case tR.DONUT:case tR.PIE_3D:case tR.PIE:this.renderCircleChart();break;default:this.renderBarChart()}}renderBarChart(){const t=this.getImage(1),e=t.getContext("2d");let i,n=0;const r=this.animation_.animate?this.animation_.step:1;this.stroke_&&(i=bo(this.stroke_.getColor()),n=this.stroke_.getWidth());const s=Math.max.apply(null,this.data_)||0,o=Math.min(5,2*this.radius_/this.data_.length),a=t.width-(n||0);let l;const h=t.width/2;let c=h-this.data_.length*o/2;i&&(e.strokeStyle=i,e.lineWidth=n),this.data_.sort(((t,e)=>t-e)).forEach(((t,n)=>{e.beginPath(),e.fillStyle=this.colors_[n%this.colors_.length],l=c+o;const h=t/s*2*this.radius_*r;e.rect(c,a-h,o,h),e.closePath(),e.fill(),i&&e.stroke(),c=l}));const u=this.getAnchor();u[0]=h-this.offset_[0],u[1]=h-this.offset_[1]}renderCircleChart(){let t,e=0;this.stroke_&&(t=bo(this.stroke_.getColor()),e=this.stroke_.getWidth());const i=this.getImage(1),n=i.getContext("2d");n.clearRect(0,0,i.width,i.height),n.lineJoin="round";let r=0;!qB(this.data_)&&this.data_.length>0&&(r=this.data_.reduce(((t,e)=>t+e))),n.setTransform(1,0,0,1,0,0),n.translate(0,0);const s=this.animation_.animate?this.animation_.step:1,o=Math.PI*(s-1.5),a=i.width/2;t&&(n.strokeStyle=t,n.lineWidth=e),n.save(),this.type_===tR.PIE_3D?this.drawPie3D(n,o,a,s,t,r):this.type_===tR.DONUT?this.drawDonut(n,o,a,s,t,e,r):this.drawPie(n,o,a,s,t,r),n.restore();const l=this.getAnchor();l[0]=a-this.offset_[0],l[1]=a-this.offset_[1]}drawDonut(t,e,i,n,r,s,o){const a=t;a.save(),a.beginPath(),a.rect(0,0,2*i,2*i),a.arc(i,i,this.radius_*n*this.donutRatio_,0,2*Math.PI),a.clip("evenodd");const l=this.drawPie(a,e,i,n,r,o);a.restore(),a.beginPath(),a.strokeStyle=r,a.lineWidth=s;const h=this.radius_;a.arc(i,i,h*n*this.donutRatio_,Math.PI*(n-1.5),l),r&&a.stroke()}drawPie3D(t,e,i,n,r,s){const o=t;o.translate(0,.3*i),o.scale(1,.7),o.beginPath(),o.fillStyle=this.fill3DColor_,o.arc(i,1.4*i,this.radius_*n,0,2*Math.PI),o.fill(),r&&o.stroke(),this.drawPie(t,e,i,n,r,s)}drawPie(t,e,i,n,r,s){let o,a=e;const l=t;return this.data_.forEach(((t,e)=>{l.beginPath(),l.moveTo(i,i),l.fillStyle=this.colors_[e%this.colors_.length],o=a+2*Math.PI*t/(s*n),l.arc(i,i,this.radius_*n,a,o),l.closePath(),l.fill(),r&&l.stroke(),a=o})),a}}const sR=class extends cm{},oR=(t,e,i,n)=>{let r;return r="function"==typeof t.text?t.text(n,i.data,e):`${um.getValue(t.text,e)}`||"",r="0"===r?"":r,r};class aR extends sR{constructor(t={}){((t,...e)=>{const i=t;if(null==i)throw new TypeError("Cannot convert undefined or null to object");const n=Object(i);e.filter((t=>null!=t)).forEach((t=>Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(t,e)&&!Object.prototype.hasOwnProperty.call(i,e)&&(i[e]=t[e])}))))})(t,nR.DEFAULT),super(t),this.variables_=t.variables||[],this.colorsScheme_=t.scheme||[]}updateCanvas(t){if(!qB(t)){const e=t.getContext("2d");this.drawGeometryToCanvas(e)}}drawGeometryToCanvas(t){const e=t;if(!qB(e)&&!qB(e.canvas)){const t=aR.CANVAS_PROPS.fixedProps,i=aR.CANVAS_PROPS.width;e.canvas.setAttribute("width",i),e.width=i;const n=[],r={};Object.keys(aR.CANVAS_PROPS.percentages).forEach((t=>{r[t]=i*(aR.CANVAS_PROPS.percentages[t]/100)}));let[s,o]=[r.left_right_content,t.top_content];const a=(i,r,s,o,a)=>{const l=s.split(" ");let h="";const c=r[0];let u=r[1];return n.push((t=>{const e=t.context;e.font=`${t.fontSize}px ${t.fontFamily}`,e.strokeStyle=t.strokeColor,e.strokeWidth=t.strokeWidth,e.fillStyle=t.textColor}).bind(this,{context:e,fontSize:t.font_size,fontFamily:t.font_family,strokeColor:t.text_stroke_color,strokeWidth:t.text_stroke_width,textColor:t.text_color})),l.forEach(((t,i)=>{e.measureText(`${h+t}`).width>o&&i>0?(n.push(((t,e,i,n)=>{t.strokeText(e,i,n),t.fillText(e,i,n)}).bind(this,e,h,c,u)),h=`${t} `,u+=a):h=`${h+t} `})),n.push(((t,e,i,n)=>{t.strokeText(e,i,n),t.fillText(e,i,n)}).bind(this,e,h,c,u)),[c,u]},l=(i,s,o)=>{let[l,h]=i;h+=t.item_top_margin,n.push((t=>{const e=t.context;e.beginPath(),e.strokeStyle=t.strokeColor,e.lineWidth=t.width,e.fillStyle=t.color,e.rect(t.x,t.y,t.rectSize,t.rectSize),e.closePath(),e.stroke(),e.fill()}).bind(this,{context:e,strokeColor:"#000",width:t.rect_border_width,color:o,x:l,y:h,rectSize:t.rect_size})),l+=r.item_side_margin+t.rect_size,h+=t.rect_size/1.5;const c=h+t.item_top_margin,u=r.max_text_width,g=r.max_text_line_height,d=a(e,[l,h],s,u,g);return[d[0],d[1]>c?d[1]:c]};this.variables_.forEach(((t,e)=>{const i=qB(t.legend)?t.attribute:t.legend,n=qB(t.fillColor)?this.colorsScheme_[e%this.colorsScheme_.length]||this.colorsScheme_[0]:t.fillColor;[s,o]=l([s,o],i,n),s=r.left_right_content})),o+=t.top_content,e.canvas.setAttribute("height",o),e.save(),n.forEach((t=>t())),e.restore()}}updateFacadeOptions(t){const i=t;i.rotateWithView=!1,this.olStyleFn_=(t,r)=>{let s=t;s instanceof _d||(s=this);const o=this.formatDataRecursively_(i,s);let a=[];if(this.variables_.forEach((t=>{let e=s.get(t.attribute);e=parseFloat(e),a=a.concat(e instanceof Array?e:[e]).filter((t=>null!=t))})),0===a.length)throw new Error("cannot draw an empty data chart");o.data=a,qB(i.stroke)||(o.stroke=new bm(i.stroke));let l=[new Dy({geometry:t=>{const e=qd.getCentroid(t.getGeometry());return new qa(e)},image:new rR(o)})];return"bar"!==o.type?1!==i.variables.length&&i.variables.length!==a.length||(l=l.concat(((t,e,i)=>{let n=0;const r=e.data.reduce(((t,e)=>t+e)),s=e.variables,o=e.data,a=t.concat(e.data.map(((t,a)=>{const l=s.length===o.length?s[a]:s[0],h=l.label||{},c=h.radius?h.radius:e.radius,u=(2*n+t)/r*Math.PI-Math.PI/2;if(n+=t,!l.label)return null;const g="number"==typeof h.radiusIncrement?h.radiusIncrement:3;let d="function"==typeof h.textAlign?h.textAlign(u):null;qB(d)&&(d=h.textAlign||(unull!=t))})(l,o,s))):"bar"===o.type&&(l=l.concat(((t,e,i)=>{let n=0,r=null;const s=e.variables,o=e.data,a=t.concat(e.data.map(((a,l)=>{const h=s.length===o.length?s[l]:s[0],c=h.label||{};if(!h.label)return null;const u=oR(c,i,e,a),g=um.getValue(c.font,i);qB(r)?r=t[0].getImage().getImage().height/2-6:r-=15,n=n+9+6;const d=-t[0].getImage().getImage().width/2-(1+e.offsetX)||0;return new Dy({text:new Fm({text:"string"==typeof u?`${u}`:"",offsetY:r+e.offsetY||0,offsetX:d,textBaseline:"middle",rotateWithView:!1,textAlign:"center",stroke:c.stroke?new bm({}):void 0,font:`9px ${g}`,scale:"number"==typeof c.scale?um.getValue(c.scale,i):void 0,fill:new wm({color:e.scheme[l%e.scheme.length]})})})}))),l=a.filter((t=>null!=t));n=Math.max(n,1);const h=-t[0].getImage().getImage().width/2+10+e.offsetX,c=t[0].getImage().getImage().height/2+e.offsetY,u=new Hf({anchor:[h,c],anchorOrigin:"bottom-right",offsetOrigin:"bottom-left",anchorXUnits:"pixels",anchorYUnits:"pixels",rotateWithView:!1,src:`data:image/svg+xml;base64,${window.btoa(``)}`,size:[a[0].getImage().getImage().width/2,n]});return l.push(new Nm({image:u})),l})(l,o,s))),((t,i,r)=>{if(!qB(t.label)){const s=new Nm,o=um.getValue(t.label.text,r),a=um.getValue(t.label.align,r),l=um.getValue(t.label.baseline,r),h=t.label.offset?t.label.offset[0]:void 0,c=t.label.offset?t.label.offset[1]:void 0,u=new wm({color:um.getValue(t.label.color||"#000000",r)}),g=new Fm({font:um.getValue(t.label.font,r),rotateWithView:um.getValue(t.label.rotate,r),scale:um.getValue(t.label.scale,r),offsetX:um.getValue(h,r),offsetY:um.getValue(c,r),fill:u,textAlign:Object.values(e).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:um.getValue(t.label.rotation,r)});qB(t.label.stroke)||g.setStroke(new bm({color:um.getValue(t.label.stroke.color,r),width:um.getValue(t.label.stroke.width,r),lineCap:um.getValue(t.label.stroke.linecap,r),lineJoin:um.getValue(t.label.stroke.linejoin,r),lineDash:um.getValue(t.label.stroke.linedash,r),lineDashOffset:um.getValue(t.label.stroke.linedashoffset,r),miterLimit:um.getValue(t.label.stroke.miterlimit,r)})),s.setText(g),i.push(s)}})(o,l,s),l}}applyToLayer(t){t.getFeatures().forEach(this.applyToFeature,this)}applyToFeature(t){t.getImpl().getOLFeature().setStyle(this.olStyleFn_)}formatDataRecursively_(t,e){return Object.keys(t).reduce(((i,n,r)=>{let s=i;return"object"!=typeof i&&(s={},"object"!=typeof t[i]&&this.setVal(s,t,i,e)),this.setVal(s,t,n),s}))}setVal(t,e,i,n){const r=t;r[i]=um.getValue(e[i],n),!zB(e[i])||e[i]instanceof Array||(r[i]=this.formatDataRecursively_(e[i],n))}}aR.CANVAS_PROPS={width:200,percentages:{left_right_content:5,item_side_margin:5,max_text_width:70},fixedProps:{rect_border_width:2,font_size:10,font_family:"sans-serif",text_stroke_color:"#fff",text_stroke_width:1,text_color:"#000",top_content:10,item_top_margin:10,text_line_height:15,rect_size:15}};const lR=aR;const hR=class extends cm{constructor(t,e,i){super({}),this.heatmapLayer_=null,this.attribute_=t,this.opt_options_=_L(e,i),this.opt_options_.zIndex=999999,this.oldOLLayer_=null}applyToLayer(t){if(this.layer_=t,!qB(t)){const t=this.layer_.getImpl().getOLLayer();t instanceof JT||(this.oldOLLayer_=t);const e=this.layer_.getFeatures().map((t=>t.getImpl().getOLFeature()));e.forEach((t=>t.setStyle(null))),this.createHeatmapLayer_(e),this.layer_.getImpl().setOLLayer(this.heatmapLayer_)}}unapply(t){qB(this.oldOLLayer_)||(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.layer_.redraw(),this.layer_=null,this.oldOLLayer_=null,this.heatmapLayer_=null)}createHeatmapLayer_(t){this.opt_options_.source=new kf({features:t}),this.opt_options_.name=this.layer_.name,this.heatmapLayer_=new ZT(this.opt_options_)}setOptions(t,e){this.opt_options_=_L(t,e)}getMinWeight(){return this.heatmapLayer_.getMinWeight()}getMaxWeight(){return this.heatmapLayer_.getMaxWeight()}};const cR=class extends Hf{getImageSize(){return this.iconImage_.getSize()}};class uR extends $m{constructor(t){let e=t;qB(e)&&(e=uR.DEFAULT_NULL),e=_L({},e);super(e,new mR(e))}unapply(t){this.getImpl().unapply(t)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Line'))"}}uR.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};const gR=uR;class dR{static render(t,e){let i=t;const n=this;let r=0,s=0,o=2;const a=(t,e,i,n)=>{const[r,s]=[i-t,n-e];return Math.sqrt(r*r+s*s)},l=(t,e)=>{if(!r||s+re))&&(o+=2,!(o>=t.length));)s+=r;const i=e-s;o>=t.length&&(o=t.length-2);return[i?t[o-2]+(t[o]-t[o-2])*i/r:t[o-2],i?t[o-1]+(t[o+1]-t[o-1])*i/r:t[o-1],Math.atan2(t[o+1]-t[o-1],t[o]-t[o-2])]};let h=.25*n.measureText(" ").width,c=0,u=0;for(let t=2;t{n.push(t[0]*e[0]+t[1]*e[1]+t[4]),n.push(t[2]*e[0]+t[3]*e[1]+t[5])})),i&&n[0]>n[n.length-2]){const t=[];for(let e=n.length-2;e>=0;e-=2)t.push(n[e]),t.push(n[e+1]);return t}return n}static formatStyle(t){let e=t;if(null==e)return null;let i=null;return void 0===e&&(e=[new Nm({text:new Fm})]),i="function"==typeof e?e:()=>[e],i}static draw(t,e,i,n){const r=this.getPath_(e,n,i.getRotateWithView());t.font=i.getFont(),t.textBaseline=i.getTextBaseline(),t.textAlign=i.getTextAlign(),t.lineWidth=i.getStroke()&&i.getStroke().getWidth()||dR.DEFAULT.lineWidth,t.strokeStyle=i.getStroke()&&i.getStroke().getColor()||dR.DEFAULT.lineColor,t.fillStyle=i.getFill()&&i.getFill().getColor()||dR.DEFAULT.fillColor,t.textJustify="justify"===i.getTextAlign(),t.textOverflow=i.getTextOverflow?i.getTextOverflow():dR.DEFAULT.textOverflow,t.minWidth=i.getMinWidth?i.getMinWidth():dR.DEFAULT.minWidth,"function"==typeof t.textPath&&t.textPath(i.getText(),r),t.restore()}}dR.DEFAULT={lineWidth:0,lineColor:"#fff",fillColor:"#000",textOverflow:"",minWidth:0};const AR=function(t=null){if(QB(window.CanvasRenderingContext2D.prototype.textPath)&&(window.CanvasRenderingContext2D.prototype.textPath=dR.render),t.frameState.viewState.resolution>this.textPathMaxResolution_)return;const e=t.frameState.extent,i=t.context;i.save(),i.scale(t.frameState.pixelRatio,t.frameState.pixelRatio);null!=this.getSource()&&0===this.getSource().getFeatures().length||(this.getSource().getFeaturesInExtent(e).forEach((e=>{const n=null!=e.getStyle()?e.getStyle():this.getStyle();let r="function"==typeof n?n(e,t.frameState.viewState.resolution):n;r instanceof Array||(r=[r]),r.forEach((n=>{let r,s=(n instanceof gR?n.getOptions().geometry:n.getGeometry())||e.getGeometry();if("function"==typeof s&&(s=s(e)),"MultiLineString"===s.getType())r=s.getLineString(0).getCoordinates();else r=s.getCoordinates();const o=n instanceof gR?n.getOptions().text:n.textPath;null!=o&&o instanceof Dm&&dR.draw(i,t.frameState.coordinateToPixelTransform,o,r)}))})),i.restore())};_a.prototype.cspline=function(t){let e;return this.calcCSpline?this.csplineGeometryRevision===this.getRevision()&&this.csplineOption===JSON.stringify(t)||(this.csplineGeometry_=this.calcCSpline(t),this.csplineGeometryRevision=this.getRevision(),this.csplineOption=JSON.stringify(t),e=this.csplineGeometry_):e=this,e},Od.prototype.calcCSpline=function(t){const e=[];this.getGeometries().forEach((t=>e.push(t.cspline())));return new Od(e)},bd.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new bd(e)},sl.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new sl(e)},Md.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new Md(e)};const pR=(t,e,i,n)=>{const r=i-t,s=n-e;return Math.sqrt(r*r+s*s)};wd.prototype.calcCSpline=function(t={}){const e=this.getCoordinates(),i="number"==typeof t.tension?t.tension:.5,n=t.resolution||this.getLength()/e.length/(t.pointsPerSeg||10),r=[];let s,o,a,l,h,c,u,g,d,A,p,f,m;const _=e.slice(0);for(e.length>2&&e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.length-1][1]?(_.unshift(e[e.length-2]),_.push(e[1])):(_.unshift(e[0]),_.push(e[e.length-1])),m=1;m<_.length-2;m+=1){const e=pR(_[m][0],_[m][1],_[m+1][0],_[m+1][1]),y=Math.round(e/n);let I=1;if(t.normalize){const t=pR(_[m+1][0],_[m+1][1],_[m-1][0],_[m-1][1]),e=pR(_[m+2][0],_[m+2][1],_[m][0],_[m][1]);I=t{let i=e;i instanceof _d||i instanceof Pd||(i=this);const n=t.stroke,r=t.label,s=new Dy,o=new Dy,l=um.getValue;if(qB(n)||s.setStroke(new bm({color:l(n.color,i),width:l(n.width,i),lineDash:l(n.linedash,i),lineDashOffset:l(n.linedashoffset,i),lineCap:l(n.linecap,i),lineJoin:l(n.linejoin,i),miterLimit:l(n.miterlimit,i)})),!qB(r)){const e={text:void 0===l(r.text,i)?void 0:String(l(r.text,i)),font:l(r.font,i),fill:new wm({color:l(r.color||"#000000",i)}),textBaseline:(l(r.baseline,i)||"").toLowerCase(),textAlign:l(r.align,i),scale:l(r.scale,i),rotateWithView:l(r.rotate,i)||!1,textOverflow:l(r.textoverflow,i)||"",minWidth:l(r.minwidth,i)||0,geometry:l(r.geometry,i),offsetX:l(t.label.offset?t.label.offset[0]:void 0,i),offsetY:l(t.label.offset?t.label.offset[1]:void 0,i)},n=new Dm(e);qB(r.stroke)||n.setStroke(new bm({color:l(r.stroke.color,i),width:l(r.stroke.width,i),lineCap:l(r.stroke.linecap,i),lineJoin:l(r.stroke.linejoin,i),lineDash:l(r.stroke.linedash,i),lineDashOffset:l(r.stroke.linedashoffset,i),miterLimit:l(r.stroke.miterlimit,i)}));const o=l(r.path,i);"boolean"==typeof o&&o?(s.textPath=n,!qB(r.smooth)&&!0===r.smooth&&VB(i.getGeometry)&&s.setGeometry(i.getGeometry().cspline())):s.setText(n)}let h;if(!qB(t.fill)){const e=um.getValue(t.fill.color,i,this.layer_);let n=um.getValue(t.fill.opacity,i,this.layer_);n||0===n||(n=1);const r=um.getValue(t.fill.width,i,this.layer_);qB(e)||(h=new bm({color:a()(e).alpha(n).css(),width:r}))}return o.setStroke(h),[s,o]}}applyToLayer(t){super.applyToLayer(t);const e=t.getImpl().getOLLayer();qB(e)||(this.postComposeEvtKey_=e.on("postcompose",AR,e))}unapply(){zs(this.postComposeEvtKey_)}drawGeometryToCanvas(t,e,i,n){let r=fR.getCanvasSize()[0],s=fR.getCanvasSize()[1];if(t.drawGeometry(new wd([[0+n/2,0+n/2],[r/3,s/2-n/2],[2*r/3,0+n/2],[r-n/2,s/2-n/2]])),!qB(i)){const t=i.width,n=e.getContext("2d");n.lineWidth=i.width,r=e.width,s=e.height,n.strokeStyle=i.color,n.beginPath(),n.lineTo(0+t,0+t),n.lineTo(r/3,s/2-t),n.lineTo(2*r/3,0+t),n.lineTo(r-t,s/2-t),n.stroke()}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=fR.getCanvasSize(),i=rm(t.getContext("2d"),{size:e});let n;const r=this.olStyleFn_()[1];qB(r)||qB(r.getStroke())||(n={color:r.getStroke().getColor(),width:1});const s=this.olStyleFn_()[0];qB(s.getText())||s.setText(null);const o=s.getStroke();let a;qB(o)||(qB(o.getWidth())?a=1:(a=o.getWidth(),o.getWidth()>fR.DEFAULT_WIDTH_LINE&&(a=fR.DEFAULT_WIDTH_LINE)),n={color:s.getStroke().getColor(),width:a},s.getStroke().setWidth(a),i.setStyle(s)),this.drawGeometryToCanvas(i,t,n,a)}static getCanvasSize(){return[25,15]}}fR.DEFAULT_WIDTH_LINE=3;const mR=fR;class _R extends um{constructor(t){super(t),this.olStyleFn_=this.updateFacadeOptions(t)}updateFacadeOptions(t){return i=>{let r=i;r instanceof _d||i instanceof Pd||(r=this);const s=new Dy;if(qB(t.stroke)||s.setStroke(new bm({color:um.getValue(t.stroke.color,r,this.layer_),width:um.getValue(t.stroke.width,r,this.layer_),lineDash:um.getValue(t.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(t.stroke.linedashoffset,r,this.layer_),lineCap:um.getValue(t.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.stroke.linejoin,r,this.layer_),miterLimit:um.getValue(t.stroke.miterlimit,r,this.layer_)})),!qB(t.label)){const i=um.getValue(t.label.text,r,this.layer_),o=um.getValue(t.label.align,r,this.layer_),a=um.getValue(t.label.baseline,r,this.layer_),l=!!qB(t.label.overflow,this.layer_)||t.label.overflow;s.setText(new Fm({font:um.getValue(t.label.font,r,this.layer_),rotateWithView:um.getValue(t.label.rotate,r,this.layer_),scale:um.getValue(t.label.scale,r,this.layer_),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.label.ofsset?t.label.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(t.label.color||"#000000",r,this.layer_)}),textAlign:Object.values(e).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===i?void 0:String(i),rotation:um.getValue(t.label.rotation,r,this.layer_),overflow:um.getValue(l,r,this.layer_)})),qB(t.label.stroke)||s.getText().setStroke(new bm({color:um.getValue(t.label.stroke.color,r,this.layer_),width:um.getValue(t.label.stroke.width,r,this.layer_),lineCap:um.getValue(t.label.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.label.stroke.linejoin,r,this.layer_),lineDash:um.getValue(t.label.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(t.label.stroke.linedashoffset,r,this.layer_),miterLimit:um.getValue(t.label.stroke.miterlimit,r,this.layer_)}))}if(!qB(t.fill)){const e=um.getValue(t.fill.color,r,this.layer_);let i,n=um.getValue(t.fill.opacity,r,this.layer_);if(n||0===n||(n=1),qB(e)||(i=new wm({color:a()(e).alpha(n).css()})),qB(t.fill.pattern))s.setFill(i);else{let e="rgba(0,0,0,1)";if(!qB(t.fill.pattern.color)){let i=um.getValue(t.fill.pattern.opacity,r,this.layer_)||1;i||0===i||(i=1),e=a()(t.fill.pattern.color).alpha(i).css()}s.setFill(new km({pattern:(um.getValue(t.fill.pattern.name,r,this.layer_)||"").toLowerCase(),color:e,size:um.getValue(t.fill.pattern.size,r,this.layer_),spacing:um.getValue(t.fill.pattern.spacing,r,this.layer_),image:"IMAGE"===um.getValue(t.fill.pattern.name,r,this.layer_)?new Hf({src:um.getValue(t.fill.pattern.src,r,this.layer_)}):void 0,angle:um.getValue(t.fill.pattern.rotation,r,this.layer_),scale:um.getValue(t.fill.pattern.scale,r,this.layer_),offset:um.getValue(t.fill.pattern.offset,r,this.layer_),fill:i}))}}return[s]}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=_R.getCanvasSize(),i=rm(t.getContext("2d"),{size:e}),n=this.olStyleFn_()[0];qB(n.getText())||n.setText(null);const r=n.getStroke();qB(r)||qB(r.getWidth())||r.getWidth()>_R.DEFAULT_WIDTH_POLYGON&&n.getStroke().setWidth(_R.DEFAULT_WIDTH_POLYGON),i.setStyle(n),this.drawGeometryToCanvas(i)}drawGeometryToCanvas(t){const e=_R.getCanvasSize(),i=Math.floor(e[0]),n=Math.floor(e[1]),r=e[0]-i,s=e[1]-n;t.drawGeometry(new sl([[[r+3,s+3],[i-3,s+3],[i-3,n-3],[r+3,n-3],[r+3,s+3]]]))}static getCanvasSize(){return[25,15]}}_R.DEFAULT_WIDTH_POLYGON=3;const yR=_R,IR=(t,e)=>{let[i,n]=[void 0,void 0];const r=t.filter((t=>![NaN,void 0,null].includes(t.getAttribute(e)))).map((t=>parseInt(t.getAttribute(e),10)));let s=1;if(!qB(r))for(i=r[0],n=r[0];s(t-e)*(r-n)/(i-e)+n;class CR extends Uy{constructor(t,e,i,n,r,s={}){super(s,{}),qB(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.minRadius_=parseInt(e,10)||5,this.maxRadius_=parseInt(i,10)||15,this.style_=n,this.proportionalFunction_=r||ER,this.maxRadius_this.applyToFeature(t,1)));const e=this.oldStyle_.clone();e instanceof $m&&(e.set("zindex",(t=>this.maxValue_-parseFloat(t.getAttribute(this.attributeName_)))),e.set(CR.getSizeAttribute(e),(t=>{const e=CR.SCALE_PROPORTION,i=t.getAttribute(this.attributeName_),n=[i,this.minValue_,this.maxValue_,this.minRadius_,this.maxRadius_];let r=this.proportionalFunction_(...n);if("icon.scale"===CR.getSizeAttribute(this.oldStyle_)){const t=this.minRadius_/e,n=this.maxRadius_/e,s=[i,this.minValue_,this.maxValue_,t,n];r=this.proportionalFunction_(...s)}return r})),this.updateCanvas())}}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this}getStyle(){return console.warn("Deprecated function: Use getStyles instead."),this.style_}setStyle(t){return this.style_=t,this.update_(),this}getMinRadius(){return this.minRadius_}setProportionalFunction(t){this.proportionalFunction_=t,this.update_()}getProportionalFunction(){return this.proportionalFunction_}setMinRadius(t){return this.minRadius_=parseInt(t,10),t>=this.maxRadius_&&Oc(Cu("exception").min_gt_max),this.update_(),this}getMaxRadius(){return this.maxRadius_}setMaxRadius(t){return this.maxRadius_=parseInt(t,10),t<=this.minRadius_&&Oc(Cu("exception").max_lt_min),this.update_(),this}updateCanvas(){this.updateCanvasPromise_=new Promise(((t,e)=>{if(!qB(this.layer_)){const e=this.styles_.filter((t=>t instanceof $m))[0];let i=qB(e)?this.layer_.getStyle():e;if(i=qB(i)?this.style_:i,i instanceof $m){let e=i.clone();e instanceof e_?e=new CI(e.getOptions().point):e instanceof CI||(e=new CI(e.getOptions()));const n=CR.getSizeAttribute(e),r=e.clone(),s=e.clone(),o=this.getMaxRadius(),a=this.getMinRadius();r.set(n,o),s.set(n,a),this.loadCanvasImage(o,r.toImage(),(e=>{this.loadCanvasImage(a,s.toImage(),(i=>{this.drawGeometryToCanvas(e,i,t)}))}))}else qB(i)||(this.canvas_=i.canvas,t())}}))}loadCanvasImage(t,e,i){const n=new Image;n.crossOrigin="Anonymous",n.onload=()=>{i({image:n,value:t})},n.onerror=()=>{i({value:t})},n.src=e}drawGeometryToCanvas(t,e,i){const n=t.image,r=e.image;this.canvas_.height=n.height+5+r.height+5;const s=this.canvas_.getContext("2d");s.textBaseline="middle";let o=0,a=0;if(qB(n)||(o=n.width+5,a=n.height/2,/^https?:\/\//i.test(n.src)?(this.canvas_.height=130,s.fillText(` max: ${this.maxValue_}`,85,40),s.drawImage(n,0,0,80,80)):(s.fillText(` max: ${this.maxValue_}`,o,a),s.drawImage(n,0,0))),!qB(r)){let t=0;qB(n)||(t=n.width/2-r.width/2);const e=n.height+5;a=e+r.height/2,/^https?:\/\//i.test(r.src)?(s.fillText(` min: ${this.minValue_}`,85,105),s.drawImage(r,20,85,40,40)):(s.fillText(` min: ${this.minValue_}`,o,a),s.drawImage(r,t,e))}i()}static getSizeAttribute(t){let e="radius";return qB(t.get("icon"))||(e=qB(t.get("icon.src"))?"icon.radius":"icon.scale"),e}calculateStyle_(t,e,i){const n=this.proportionalFunction_;let r=i;if(!qB(r)){r=r.clone();let[i,s]=[e.minRadius,e.maxRadius];qB(r.get("icon.src"))||(i=e.minRadius/CR.SCALE_PROPORTION,s=e.maxRadius/CR.SCALE_PROPORTION);const o=t.getAttribute(this.attributeName_);null==o&&console.warn(`Warning: ${this.attributeName_} value is null or empty.`);const a=n(o,e.minValue,e.maxValue,i,s),l=e.maxValue-parseFloat(t.getAttribute(this.attributeName_));r.set(`${CR.getSizeAttribute(r)}`,a),r.set("zindex",l)}return r}get ORDER(){return 3}toJSON(){const t=this.getAttributeName(),e=this.getMinRadius(),i=this.getMaxRadius(),n=this.getStyles().map((t=>t.serialize())),r=CL(this.getProportionalFunction());let s=_L({},this.getOptions());s=CL(s);return{parameters:[t,e,i,n,r,s],deserializedMethod:"M.style.Proportional.deserialize"}}static deserialize([t,e,i,n,r,s]){const o=t,a=e,l=i,h=vL(r),c=vL(s),u=new Function(["attributeName","minRadius","maxRadius","style","proportionalFunction","options"],"return new M.style.Proportional(attributeName,\n minRadius, maxRadius, style, proportionalFunction, options)")(o,a,l,void 0,h,c),g=n.map((t=>Jm.deserialize(t)));return u.add(g),u}}CR.SCALE_PROPORTION=20;const vR=CR;class xR extends $m{constructor(t={}){let e=t;super(e,new yR(e)),qB(e)&&(e=xR.DEFAULT_NULL),e=_L({},e)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Polygon'))"}}xR.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};const wR=xR,SR=t=>{const e=t.radius,i=a().random().hex(),n=t.strokeColor,r=t.strokeWidth;return new e_({point:{radius:e,fill:{color:i},stroke:{color:n,width:r}},line:{fill:{color:i},stroke:{color:n,width:r}},polygon:{fill:{color:i},stroke:{color:n,width:r}}})};class bR extends Uy{constructor(t,e,i={}){super(i,{}),qB(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.categoryStyles_=e}get ORDER(){return 2}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getCategories(){return this.categoryStyles_}setCategories(t){return this.categoryStyles_=t,this.update_(),this.refresh(),this}getStyleForCategory(t){return this.categoryStyles_[t]}setStyleForCategory(t,e){return this.categoryStyles_[t]=e,this.update_(),this.refresh(),this}updateCanvas(){const t=[];this.updateCanvasPromise_=new Promise(((e,i)=>this.loadCanvasImages_(0,t,e)))}loadCanvasImages_(t,e,i){const n=this.getCategories(),r=Object.keys(n);if(t===r.length)this.drawGeometryToCanvas(e,i);else{const n=r[t],s=this.getStyleForCategory(n),o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{e.push({image:o,categoryName:n}),this.loadCanvasImages_(t+1,e,i)},o.onerror=()=>{e.push({categoryName:n}),this.loadCanvasImages_(t+1,e,i)},s.updateCanvas(),s.get("icon.src")&&EL(s.get("icon.src")).then((t=>{o.width=s.get("icon.scale")?t.width*s.get("icon.scale"):t.width,o.height=s.get("icon.scale")?t.height*s.get("icon.scale"):t.height}));const a=s.toImage();a instanceof Promise?a.then((t=>{o.src=t})):o.src=a}}drawGeometryToCanvas(t,e){const i=t.map((t=>t.image.height)),n=t.map((t=>t.image.width)),r=this.canvas_.getContext("2d");r.canvas.height=i.reduce(((t,e)=>t+e+5)),r.textBaseline="middle";const s=Math.max.apply(n,n);t.forEach(((t,e)=>{const n=t.image,o=t.categoryName;let a=0;const l=i.slice(0,e);qB(l)||(a=l.reduce(((t,e)=>t+e+5)),a+=5);let h=0;if(!qB(n)){h=n.height;const t=(s-n.width)/2;r.drawImage(n,t,a,n.width,n.height)}r.fillText(o,s+5,a+h/2)})),e()}update_(){if(!qB(this.layer_)){(qB(this.categoryStyles_)||0===Object.keys(this.categoryStyles_).length)&&(this.categoryStyles_=this.generateRandomCategories_());const t=this.categoryStyles_.other;this.layer_.getFeatures().forEach((e=>{const i=e.getAttribute(this.attributeName_),n=this.categoryStyles_[i];qB(n)?qB(t)||e.setStyle(t):e.setStyle(n)})),this.updateCanvas()}}add(t){let e=t;return UB(e)||(e=[e]),e=e.filter((t=>t instanceof Vy||t instanceof vR)),super.add(e)}generateRandomCategories_(){const t={};return qB(this.layer_)||this.layer_.getFeatures().forEach((e=>{const i=e.getAttribute(this.attributeName_);Object.prototype.hasOwnProperty.call(t,i)||(t[i]=SR({radius:bR.RANDOM_RADIUS_OPTION,strokeColor:bR.RANDOM_STROKE_COLOR_OPTION,strokeWidth:bR.RANDOM_STROKE_WIDTH_OPTION}))})),t}toJSON(){const t=this.getAttributeName(),e=this.getCategories(),i={};Object.keys(e).forEach((t=>{i[t]=e[t].serialize()}));let n=_L({},this.getOptions());n=CL(n);const r=this.getStyles().map((t=>t.serialize()));return{parameters:[t,i,n,r],deserializedMethod:"M.style.Category.deserialize"}}static deserialize([t,e,i,n]){const r=t,s=e;Object.keys(e).forEach((t=>{s[t]=Jm.deserialize(e[t])}));const o=vL(i),a=new Function(["attributeName","categoryStyles","options"],"return new M.style.Category(attributeName, categoryStyles, options)")(r,s,o),l=n.map((t=>Jm.deserialize(t)));return a.add(l),a}}bR.RANDOM_RADIUS_OPTION=10,bR.RANDOM_STROKE_WIDTH_OPTION=1,bR.RANDOM_STROKE_COLOR_OPTION="black";const BR=bR,LR=t=>{const e=[];return t.forEach((t=>{-1===e.indexOf(t)&&e.push(t)})),e},MR=t=>{let e=t;e=e||5;const i=(t,i=e)=>{const n=LR(t),r=n.length<=i?n.length-1:i;t.sort(((t,e)=>t-e));const s=((t,e)=>{const i=[],n=[];let r=0;for(let r=0;r=r+n[h][t-1]&&(i[s][t]=u,n[s][t]=r+n[h][t-1])}i[s][1]=1,n[s][1]=r}return{lowerClassLimits:i,varianceCombinations:n}})(t,r),o=((t,e,i)=>{let n=t.length-1;const r=[];let s=i;for(r[i]=t[t.length-1],r[0]=t[0];s>1;)r[s-1]=t[e[n][s]-2],n=e[n][s]-1,s-=1;return r})(t,s.lowerClassLimits,r);return o.slice(1,o.length)};return Object.defineProperty(i,"name",{value:"jenks"}),i},TR=t=>{const e=t||5,i=(t,i=e)=>{const n=LR(t),r=n.length<=i?n.length-1:i,s=t.length;t.sort(((t,e)=>t-e));const o=Math.trunc(s/r),a=[];for(let e=0;enew kL((i=>null!=i.getAttribute(t)&&i.getAttribute(t)<=e),{cqlFilter:`${t} <= '${e}'`}),NR=t=>Math.round(100*t)/100;class PR extends Uy{constructor(t,e,i=MR(),n={}){super(n,{}),qB(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.choroplethStyles_=e,this.quantification_=i,this.dataValues_=[],this.breakPoints_=[]}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getQuantification(){return this.quantification_}setQuantification(t){if(this.quantification_=t,!this.choroplethStyles_.some((t=>YB(t)))){if(this.choroplethStyles_.length0){const t=[];this.updateCanvasPromise_=new Promise(((e,i)=>this.loadCanvasImages_(0,t,e)))}}loadCanvasImages_(t,e,i){if(t===this.choroplethStyles_.length)this.drawGeometryToCanvas(e,i);else{let n=-1;t>0&&(n=this.breakPoints_[t-1]);const r=this.breakPoints_[t],s=new Image;s.crossOrigin="Anonymous",s.onload=()=>{e.push({image:s,startLimit:NR(n),endLimit:NR(r)}),this.loadCanvasImages_(t+1,e,i)},s.onerror=()=>{e.push({startLimit:NR(n),endLimit:NR(r)}),this.loadCanvasImages_(t+1,e,i)},this.choroplethStyles_[t].updateCanvas();const o=this.choroplethStyles_[t].toImage();YB(o)?s.src=o:o.then((t=>{s.src=t}))}}drawGeometryToCanvas(t,e){const i=t.map((t=>t.image.height)),n=t.map((t=>t.image.width)),r=this.canvas_.getContext("2d");r.canvas.height=i.reduce(((t,e)=>t+e+5)),r.textBaseline="middle";const s=Math.max.apply(n,n);t.forEach(((t,e)=>{const n=t.image,o=t.startLimit,a=t.endLimit;let l=0;const h=i.slice(0,e);qB(h)||(l=h.reduce(((t,e)=>t+e+5)),l+=5);let c=0;qB(n)||(c=n.height,r.drawImage(n,0,l)),o<0?r.fillText(` x <= ${a}`,s+5,l+c/2):r.fillText(`${o} < x <= ${a}`,s+5,l+c/2)}),this),e()}getValues(){const t=[];return qB(this.layer_)||this.layer_.getFeatures().forEach((e=>{try{const i=parseFloat(e.getAttribute(this.attributeName_));Number.isNaN(i)||t.push(i)}catch(t){}}),this),t}update_(){if(!qB(this.layer_)){const t=this.layer_.getFeatures();if(!qB(t))if(this.dataValues_=this.getValues(),qB(this.choroplethStyles_)||!qB(this.choroplethStyles_)&&(YB(this.choroplethStyles_[0])||YB(this.choroplethStyles_[1]))){this.breakPoints_=this.quantification_(this.dataValues_);const t=this.choroplethStyles_&&this.choroplethStyles_[0]?this.choroplethStyles_[0]:PR.START_COLOR_DEFAULT,e=this.choroplethStyles_&&this.choroplethStyles_[1]?this.choroplethStyles_[1]:PR.END_COLOR_DEFAULT,i=this.breakPoints_.length;let n=fL(t,e,i);UB(n)||(n=[n]);const r=(t,e)=>t.map((t=>e(t)));this.choroplethStyles_=r(n,PR.DEFAULT_STYLE)}else this.breakPoints_=this.quantification_(this.dataValues_,this.choroplethStyles_.length);for(let e=this.breakPoints_.length-1;e>-1;e-=1){RR(this.attributeName_,this.breakPoints_[e]).execute(t).forEach((t=>t.setStyle(this.choroplethStyles_[e])))}this.updateCanvas()}}static DEFAULT_STYLE(t){return new e_({point:{fill:{color:t,opacity:1},stroke:{color:"black",width:1},radius:5},line:{stroke:{color:t,width:1}},polygon:{fill:{color:t,opacity:1},stroke:{color:"black",width:1}}})}add(t){let e=t;return UB(e)||(e=[e]),e=e.filter((t=>t instanceof Vy||t instanceof vR)),super.add(e)}get ORDER(){return 2}toJSON(){const t=this.getAttributeName(),e=this.getChoroplethStyles().map((t=>t.serialize()));let i=this.getQuantification();i=qB(i.name)?CL(i):i.name;let n=_L({},this.getOptions());n=CL(n);return{parameters:[t,e,i,n,this.getStyles().map((t=>t.serialize()))],deserializedMethod:"M.style.Choropleth.deserialize"}}static deserialize([t,e,i,n,r]){const s=t,o=e.map((t=>Jm.deserialize(t)));let a;a="jenks"===i?MR():"quantile"===i?TR():vL(i);const l=vL(n),h=new Function(["attributeName","styles","quantification","options"],"return new M.style.Choropleth(attributeName, styles, quantification, options)")(s,o,a,l),c=r.map((t=>Jm.deserialize(t)));return h.add(c),h}}PR.START_COLOR_DEFAULT="red",PR.END_COLOR_DEFAULT="brown";const FR=PR;const DR=class{static addSymbol(t,e){return lm.addDefs(t,e)}};class OR extends Jm{constructor(t,e={},i={}){const n=e,r=i;if(YB(t)||VB(t)||Oc(Cu("exception").no_empty),_L(n,OR.DEFAULT_OPTIONS),qB(n.gradient)||UB(n.gradient)||(n.gradient=[n.gradient]),n.gradient=n.gradient||OR.DEFAULT_OPTIONS.gradient,n.gradient.length<2){const t=mL(n.gradient[0]);n.gradient.push(t)}n.blur=qB(n.blur)?OR.DEFAULT_OPTIONS.blur:parseFloat(n.blur),n.radius=qB(n.radius)?OR.DEFAULT_OPTIONS.radius:parseFloat(n.radius),n.weight=t,r.opacity=Number.isNaN(parseFloat(r.opacity))?1:parseFloat(r.opacity);super(n,new hR(t,n,r)),this.attribute_=t,this.options_=n,this.vendorOptions_=r}unapply(t){this.layer_=null,this.getImpl().unapply(t)}getAttributeName(){return this.attribute_}setAttributeName(t){this.attribute_=t,this.options_.weight=this.attribute_,this.update_()}getGradient(){return this.options_.gradient}setGradient(t){let e=t;if(UB(e)||(e=[e]),e.length<2){const t=mL(e[0]);e.push(t)}this.options_.gradient=e,this.update_()}getRadius(){return this.options_.radius}setRadius(t){this.options_.radius=t,this.update_()}getBlurSize(){return this.options_.blur}setBlurSize(t){this.options_.blur=t,this.update_()}update_(){const t=this.getImpl();t.unapply(this.layer_),t.setOptions(this.options_,this.vendorOptions_),t.applyToLayer(this.layer_)}drawGeometryToCanvas(){const[t,e]=[this.getImpl().getMinWeight(),this.getImpl().getMaxWeight()],i=this.canvas_.getContext("2d"),n=i.createLinearGradient(0,150,200,150),r=yL([0,1],this.options_.gradient.length);this.options_.gradient.forEach(((t,e)=>n.addColorStop(r[e],t))),i.fillStyle=n,i.fillRect(0,20,200,30),i.fillStyle="#000",i.font="10px sans-serif",i.fillText(t,0,60),i.fillText(e,199,60)}updateCanvas(){this.drawGeometryToCanvas()}toJSON(){const t=this.getAttributeName(),e=this.getOptions();return{parameters:[t,{gradient:[...e.gradient],blur:e.blur,radius:e.radius,weight:e.weight},this.vendorOptions_],deserializedMethod:"M.style.Heatmap.deserialize"}}static deserialize([t,e,i]){const n=t,r=vL(e),s=vL(i);return new Function(["attribute","options","vendorOptions"],"return new M.style.Heatmap(attribute, options, vendorOptions)")(n,r,s)}}OR.DEFAULT_OPTIONS={gradient:["#00f","#0ff","#0f0","#ff0","#f00"],blur:15,radius:10};const QR=OR;function kR(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}function GR(){}class UR{constructor(){UR.constructor_.apply(this,arguments)}setOrdinate(t,e,i){}size(){}getOrdinate(t,e){}getCoordinate(){if(1===arguments.length){}else if(2===arguments.length){}}getCoordinateCopy(t){}getDimension(){}getX(t){}expandEnvelope(t){}copy(){}getY(t){}toCoordinateArray(){}getClass(){return UR}get interfaces_(){return[GR]}}UR.constructor_=function(){},UR.X=0,UR.Y=1,UR.Z=2,UR.M=3;class qR{constructor(){qR.constructor_.apply(this,arguments)}create(){if(1===arguments.length){if(arguments[0]instanceof Array){}else if(kR(arguments[0],UR)){}}else if(2===arguments.length){}}getClass(){return qR}get interfaces_(){return[]}}function VR(t){this.message=t}qR.constructor_=function(){};class zR{constructor(){zR.constructor_.apply(this,arguments)}filter(t){}getClass(){return zR}get interfaces_(){return[]}}function YR(){}function jR(){}zR.constructor_=function(){};class HR{constructor(){HR.constructor_.apply(this,arguments)}static equalsWithTolerance(t,e,i){return Math.abs(t-e)<=i}getClass(){return HR}get interfaces_(){return[]}}function XR(t,e){this.low=0|e,this.high=0|t}function WR(){}var KR,JR,ZR;function $R(){}function tN(t){this.name="RuntimeException",this.message=t,this.stack=(new Error).stack,Error.call(this,t)}HR.constructor_=function(){},XR.toBinaryString=function(t){for(var e="",i=2147483648;i>0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},WR.isNaN=t=>Number.isNaN(t),WR.isInfinite=t=>!Number.isFinite(t),WR.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(KR=2146435072,JR=new Float64Array(1),ZR=new Int32Array(JR.buffer),WR.doubleToLongBits=function(t){JR[0]=t;var e=0|ZR[0],i=0|ZR[1];return(i&KR)===KR&&0!=(1048575&i)&&0!==e&&(e=0,i=2146959360),new XR(i,e)},WR.longBitsToDouble=function(t){return ZR[0]=t.low,ZR[1]=t.high,JR[0]}):function(){var t=1023,e=Math.log2,i=Math.floor,n=Math.pow,r=function(){for(var t=53;t>0;t--){var r=n(2,t)-1;if(i(e(r))+1===t)return r}return 0}();WR.doubleToLongBits=function(s){var o,a,l,h,c,u,g,d,A;if(s<0||1/s===Number.NEGATIVE_INFINITY?(u=1<<31,s=-s):u=0,0===s)return new XR(d=u,A=0);if(s===1/0)return new XR(d=2146435072|u,A=0);if(s!=s)return new XR(d=2146959360,A=0);if(h=0,A=0,(o=i(s))>1)if(o<=r)(h=i(e(o)))<=20?(A=0,d=o<<20-h&1048575):(A=o%(a=n(2,l=h-20))<<32-l,d=o/a&1048575);else for(l=o,A=0;0!==(l=i(a=l/2));)h++,A>>>=1,A|=(1&d)<<31,d>>>=1,a!==l&&(d|=524288);if(g=h+t,c=0===o,o=s-o,h<52&&0!==o)for(l=0;;){if((a=2*o)>=1?(o=a-1,c?(g--,c=!1):(l<<=1,l|=1,h++)):(o=a,c?0==--g&&(h++,c=!1):(l<<=1,h++)),20===h)d|=l,l=0;else if(52===h){A|=l;break}if(1===a){h<20?d|=l<<20-h:h<52&&(A|=l<<52-h);break}}return d|=g<<20,new XR(d|=u,A)},WR.longBitsToDouble=function(e){var i,r,s,o,a=e.high,l=e.low;r=a&1<<31?-1:1,s=((2146435072&a)>>20)-t,o=0,i=1<<19;for(var h=1;h<=20;h++)a&i&&(o+=n(2,-h)),i>>>=1;i=1<<31;for(h=21;h<=52;h++)l&i&&(o+=n(2,-h)),i>>>=1;if(-1023===s){if(0===o)return 0*r;s=-1022}else{if(1024===s)return 0===o?r/0:NaN;o+=1}return r*o*n(2,s)}}(),tN.prototype=Object.create(Error.prototype),tN.prototype.constructor=Error;class eN extends tN{constructor(){super(),eN.constructor_.apply(this,arguments)}getClass(){return eN}get interfaces_(){return[]}}eN.constructor_=function(){if(0===arguments.length)tN.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];tN.constructor_.call(this,t)}};class iN{constructor(){iN.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)iN.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new eN("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];iN.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new eN:new eN(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];iN.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new eN("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return iN}get interfaces_(){return[]}}iN.constructor_=function(){};class nN{constructor(){nN.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=WR.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case nN.X:this.x=e;break;case nN.Y:this.y=e;break;case nN.Z:this.z=e;break;default:throw new VR("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],e=arguments[1];return!!HR.equalsWithTolerance(this.x,t.x,e)&&!!HR.equalsWithTolerance(this.y,t.y,e)}}getOrdinate(t){switch(t){case nN.X:return this.x;case nN.Y:return this.y;case nN.Z:return this.z}throw new VR("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||WR.isNaN(this.z)&&WR.isNaN(t.z))}equals(t){return t instanceof nN&&this.equals2D(t)}equalInZ(t,e){return HR.equalsWithTolerance(this.z,t.z,e)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return iN.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new nN(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return Math.sqrt(e*e+i*i+n*n)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*t+nN.hashCode(this.x))+nN.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return nN}get interfaces_(){return[YR,GR,jR]}}class rN{constructor(){rN.constructor_.apply(this,arguments)}static compare(t,e){return te?1:WR.isNaN(t)?WR.isNaN(e)?0:-1:WR.isNaN(e)?1:0}compare(t,e){var i=t,n=e,r=rN.compare(i.x,n.x);if(0!==r)return r;var s=rN.compare(i.y,n.y);return 0!==s?s:this._dimensionsToTest<=2?0:rN.compare(i.z,n.z)}getClass(){return rN}get interfaces_(){return[$R]}}rN.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)rN.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new VR("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},nN.DimensionalComparator=rN,nN.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)nN.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];nN.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];nN.constructor_.call(this,t,e,nN.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},nN.serialVersionUID=0x5cbf2c235c7e5800,nN.NULL_ORDINATE=WR.NaN,nN.X=0,nN.Y=1,nN.Z=2;class sN{constructor(){sN.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(r.x,s.x),n=Math.max(r.x,s.x);return!(i>e)&&(!(ne)&&!(nt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,n=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&(t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy)}}intersects(){if(1===arguments.length){if(arguments[0]instanceof sN){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx)&&(!((t.x>e.x?t.x:e.x)this._maxy)&&!((t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof sN){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof nN){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new nN((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof sN){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*(t=37*(t=37*t+nN.hashCode(this._minx))+nN.hashCode(this._maxx))+nN.hashCode(this._miny))+nN.hashCode(this._maxy)}getClass(){return sN}get interfaces_(){return[YR,jR]}}sN.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof sN){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this.init(t,e,i,n)}},sN.serialVersionUID=0x51845cd552189800;class oN{constructor(){oN.constructor_.apply(this,arguments)}isGeometryCollection(){return this.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION}getFactory(){return this._factory}getGeometryN(t){return this}getArea(){return 0}isRectangle(){return!1}equals(){if(arguments[0]instanceof oN){let t=arguments[0];return null!==t&&this.equalsTopo(t)}if(arguments[0]instanceof Object){let e=arguments[0];if(!(e instanceof oN))return!1;var t=e;return this.equalsExact(t)}}equalsExact(t){return this===t||this.equalsExact(t,0)}geometryChanged(){this.apply(oN.geometryChangedFilter)}geometryChangedAction(){this._envelope=null}equalsNorm(t){return null!==t&&this.norm().equalsExact(t.norm())}getLength(){return 0}getNumGeometries(){return 1}compareTo(){if(1===arguments.length){let e=arguments[0];var t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){let e=arguments[0],i=arguments[1];t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e,i)}}getUserData(){return this._userData}getSRID(){return this._SRID}getEnvelope(){return this.getFactory().toGeometry(this.getEnvelopeInternal())}checkNotGeometryCollection(t){if(t.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION)throw new VR("This method does not support GeometryCollection arguments")}equal(t,e,i){return 0===i?t.equals(e):t.distance(e)<=i}norm(){var t=this.copy();return t.normalize(),t}getPrecisionModel(){return this._factory.getPrecisionModel()}getEnvelopeInternal(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new sN(this._envelope)}setSRID(t){this._SRID=t}setUserData(t){this._userData=t}compare(t,e){for(var i=t.iterator(),n=e.iterator();i.hasNext()&&n.hasNext();){var r=i.next(),s=n.next(),o=r.compareTo(s);if(0!==o)return o}return i.hasNext()?1:n.hasNext()?-1:0}hashCode(){return this.getEnvelopeInternal().hashCode()}isGeometryCollectionOrDerived(){return this.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===oN.TYPECODE_MULTIPOINT||this.getTypeCode()===oN.TYPECODE_MULTILINESTRING||this.getTypeCode()===oN.TYPECODE_MULTIPOLYGON}get interfaces_(){return[GR,YR,jR]}getClass(){return oN}static hasNonEmptyElements(t){for(var e=0;e0}getClass(){return cN}get interfaces_(){return[lN]}}cN.constructor_=function(){};class uN{constructor(){uN.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return uN}get interfaces_(){return[lN]}}uN.constructor_=function(){};class gN{constructor(){gN.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return gN}get interfaces_(){return[lN]}}function dN(){}function AN(){}function pN(t){this.message=t||""}function fN(){}function mN(t){this.message=t||""}function _N(t){this.message=t||""}function yN(){this.array_=[],arguments[0]instanceof AN&&this.addAll(arguments[0])}gN.constructor_=function(){},lN.Mod2BoundaryNodeRule=hN,lN.EndPointBoundaryNodeRule=cN,lN.MultiValentEndPointBoundaryNodeRule=uN,lN.MonoValentEndPointBoundaryNodeRule=gN,lN.constructor_=function(){},lN.MOD2_BOUNDARY_RULE=new hN,lN.ENDPOINT_BOUNDARY_RULE=new cN,lN.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new uN,lN.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new gN,lN.OGC_SFS_BOUNDARY_RULE=lN.MOD2_BOUNDARY_RULE,dN.prototype.hasNext=function(){},dN.prototype.next=function(){},dN.prototype.remove=function(){},AN.prototype.add=function(){},AN.prototype.addAll=function(){},AN.prototype.isEmpty=function(){},AN.prototype.iterator=function(){},AN.prototype.size=function(){},AN.prototype.toArray=function(){},AN.prototype.remove=function(){},pN.prototype=new Error,pN.prototype.name="IndexOutOfBoundsException",fN.prototype=Object.create(AN.prototype),fN.prototype.constructor=fN,fN.prototype.get=function(){},fN.prototype.set=function(){},fN.prototype.isEmpty=function(){},mN.prototype=new Error,mN.prototype.name="NoSuchElementException",_N.prototype=new Error,_N.prototype.name="OperationNotSupported",yN.prototype=Object.create(fN.prototype),yN.prototype.constructor=yN,yN.prototype.ensureCapacity=function(){},yN.prototype.interfaces_=[fN,AN],yN.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},yN.prototype.clear=function(){this.array_=[]},yN.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},yN.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},yN.prototype.iterator=function(){return new IN(this)},yN.prototype.get=function(t){if(t<0||t>=this.size())throw new pN;return this.array_[t]},yN.prototype.isEmpty=function(){return 0===this.array_.length},yN.prototype.size=function(){return this.array_.length},yN.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1)if(this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof nN){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0)if(this.get(t-1).equals2D(i))return null;if(ts&&(i=-1);for(t=r;t!==s;t+=i)this.add(e[t],n);return!0}}closeRing(){this.size()>0&&this.add(new nN(this.get(0)),!1)}getClass(){return EN}get interfaces_(){return[]}}EN.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},EN.coordArrayType=new Array(0).fill(null);class CN{constructor(){CN.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return WR.isInfinite(e)||WR.isNaN(e)?e:e/CN.LOG_10}static min(t,e,i,n){var r=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],n=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),n>t&&(t=n),t}}static average(t,e){return(t+e)/2}getClass(){return CN}get interfaces_(){return[]}}function vN(){}CN.constructor_=function(){},CN.LOG_10=Math.log(10),vN.arraycopy=(t,e,i,n,r)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class xN{constructor(){xN.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=CN.clamp(e,0,t.length);var n=(i=CN.clamp(i,-1,t.length))-e+1;i<0&&(n=0),e>=t.length&&(n=0),in.length)return 1;if(0===i.length)return 0;var r=xN.compare(i,n);return xN.isEqualReversed(i,n)?0:r}OLDcompare(t,e){var i=t,n=e;if(i.lengthn.length)return 1;if(0===i.length)return 0;for(var r=xN.increasingDirection(i),s=xN.increasingDirection(n),o=r>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},ON.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,n,r=this.root_;do{if(i=r,(n=t.compareTo(r.key))<0)r=r.left;else{if(!(n>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var o={key:t,left:null,right:null,value:e,parent:i,color:0,getValue(){return this.value},getKey(){return this.key}};return n<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},ON.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;if(NN(t)==FN(NN(NN(t))))1==RN(e=DN(NN(NN(t))))?(PN(NN(t),0),PN(e,0),PN(NN(NN(t)),1),t=NN(NN(t))):(t==DN(NN(t))&&(t=NN(t),this.rotateLeft(t)),PN(NN(t),0),PN(NN(NN(t)),1),this.rotateRight(NN(NN(t))));else 1==RN(e=FN(NN(NN(t))))?(PN(NN(t),0),PN(e,0),PN(NN(NN(t)),1),t=NN(NN(t))):(t==FN(NN(t))&&(t=NN(t),this.rotateRight(t)),PN(NN(t),0),PN(NN(NN(t)),1),this.rotateLeft(NN(NN(t))))}this.root_.color=0},ON.prototype.values=function(){var t=new yN,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=ON.successor(e));)t.add(e.value);return t},ON.prototype.entrySet=function(){var t=new MN,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=ON.successor(e));)t.add(e);return t},ON.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},ON.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},ON.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},ON.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},ON.prototype.size=function(){return this.size_},ON.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class QN{constructor(){QN.constructor_.apply(this,arguments)}getClass(){return QN}get interfaces_(){return[]}}function kN(){}function GN(){this.array_=[],arguments[0]instanceof AN&&this.addAll(arguments[0])}QN.constructor_=function(){},kN.prototype=new LN,GN.prototype=new kN,GN.prototype.contains=function(t){for(var e=0,i=this.array_.length;et<=32&&t>=0||127==t,zN.toUpperCase=t=>t.toUpperCase();class YN{constructor(){YN.constructor_.apply(this,arguments)}static toDimensionSymbol(t){switch(t){case YN.FALSE:return YN.SYM_FALSE;case YN.TRUE:return YN.SYM_TRUE;case YN.DONTCARE:return YN.SYM_DONTCARE;case YN.P:return YN.SYM_P;case YN.L:return YN.SYM_L;case YN.A:return YN.SYM_A}throw new VR("Unknown dimension value: "+t)}static toDimensionValue(t){switch(zN.toUpperCase(t)){case YN.SYM_FALSE:return YN.FALSE;case YN.SYM_TRUE:return YN.TRUE;case YN.SYM_DONTCARE:return YN.DONTCARE;case YN.SYM_P:return YN.P;case YN.SYM_L:return YN.L;case YN.SYM_A:return YN.A}throw new VR("Unknown dimension symbol: "+t)}getClass(){return YN}get interfaces_(){return[]}}YN.constructor_=function(){},YN.P=0,YN.L=1,YN.A=2,YN.FALSE=-1,YN.TRUE=-2,YN.DONTCARE=-3,YN.SYM_FALSE="F",YN.SYM_TRUE="T",YN.SYM_DONTCARE="*",YN.SYM_P="0",YN.SYM_L="1",YN.SYM_A="2";class jN{constructor(){jN.constructor_.apply(this,arguments)}filter(t){}getClass(){return jN}get interfaces_(){return[]}}jN.constructor_=function(){};class HN{constructor(){HN.constructor_.apply(this,arguments)}filter(t,e){}isDone(){}isGeometryChanged(){}getClass(){return HN}get interfaces_(){return[]}}HN.constructor_=function(){};class XN extends oN{constructor(){super(),XN.constructor_.apply(this,arguments)}computeEnvelopeInternal(){for(var t=new sN,e=0;e=0;){var o=r.substring(0,s);n.add(o),s=(r=r.substring(s+i)).indexOf(e)}r.length>0&&n.add(r);for(var a=new Array(n.size()).fill(null),l=0;l0)for(var s=r;s0&&i.append(" ");for(var r=0;r0&&i.append(","),i.append(rP.toString(s.getOrdinate(n,r)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?oP.createClosedRing(t,e,4):e.getOrdinate(0,UR.X)===e.getOrdinate(i-1,UR.X)&&e.getOrdinate(0,UR.Y)===e.getOrdinate(i-1,UR.Y)?e:oP.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var n=t.create(i,e.getDimension()),r=e.size();oP.copy(e,0,n,0,r);for(var s=r;s0){var i=this._points.copy();oP.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?YN.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return oN.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return ZN.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return oP.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;et?1:0},gP.isNaN=t=>Number.isNaN(t);class dP{constructor(){dP.constructor_.apply(this,arguments)}static sqr(t){return dP.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return dP.parse(t)}if("number"==typeof arguments[0]){return new dP(arguments[0])}}static sqrt(t){return dP.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;zN.isWhitespace(t.charAt(e));)e++;var n=!1;if(e=i);){var h=t.charAt(e);if(e++,zN.isDigit(h)){var c=h-"0";s.selfMultiply(dP.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=gP.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var g=s,d=o-a-l;if(0===d)g=s;else if(d>0){var A=dP.TEN.pow(d);g=s.divide(A)}else if(d<0){A=dP.TEN.pow(-d);g=s.multiply(A)}return n?g.negate():g}static createNaN(){return new dP(WR.NaN,WR.NaN)}static copy(t){return new dP(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),n=Math.trunc(Math.floor(i));return 10*Math.pow(10,n)<=e&&(n+=1),n}static stringOfChar(t,e){for(var i=new uP,n=0;n9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(dP.valueOf(h)).multiply(dP.TEN),c&&i.selfAdd(dP.TEN);var g=!0,d=dP.magnitude(i._hi);if(d<0&&Math.abs(d)>=a-l&&(g=!1),!g)break}return e[0]=n,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof dP){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof dP){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof dP){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,n,r=null,s=null,o=null,a=null;return i=this._hi/l,a=(r=(o=dP.SPLIT*i)-(r=o-i))*(s=(a=dP.SPLIT*l)-(s=a-l))-(n=i*l)+r*(e=l-s)+(t=i-r)*s+t*e,a=i+(o=(this._hi-n-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof dP){let l=arguments[0];var t,e,i,n,r=null,s=null,o=null,a=null;return t=(i=this._hi/l._hi)-(r=(o=dP.SPLIT*i)-(r=o-i)),a=r*(s=(a=dP.SPLIT*l._hi)-(s=a-l._hi))-(n=i*l._hi)+r*(e=l._hi-s)+t*s+t*e,o=(this._hi-n-a+this._lo-i*l._lo)/l._hi,new dP(a=i+o,i-a+o)}if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)?dP.createNaN():dP.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return dP.valueOf(1);var e=new dP(this),i=dP.valueOf(1),n=Math.abs(t);if(n>1)for(;n>0;)n%2==1&&i.selfMultiply(e),(n/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return dP.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new dP(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof dP){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return dP.valueOf(0);if(this.isNegative())return dP.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=dP.valueOf(e),n=this.subtract(i.sqr())._hi*(.5*t);return i.add(n)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,n=null,r=null,s=null;return n=(i=this._hi+o)-(r=i-this._hi),e=(s=(n=o-r+(this._hi-n))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,n=null,r=null,s=null;i=this._hi+c,o=this._lo+u,n=i-(r=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(r=(n=c-r+(this._hi-n))+o))+(r=(a=u-s+(this._lo-a))+(e=r+(i-t))),h=r+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,n=null,r=null,s=null;i=(r=dP.SPLIT*this._hi)-this._hi,s=dP.SPLIT*l,i=r-i,t=this._hi-i,n=s-l;var o=(r=this._hi*l)+(s=i*(n=s-n)-r+i*(e=l-n)+t*n+t*e+(this._hi*h+this._lo*l)),a=s+(i=r-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return dP.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new dP(t,e)}negate(){return this.isNaN()?this:new dP(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof dP){let t=arguments[0];return t.isNaN()?dP.createNaN():dP.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)?dP.createNaN():dP.copy(this).selfMultiply(t,0)}}isNaN(){return WR.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=dP.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),n=e[0]+1,r=i;if("."===i.charAt(0))r="0"+i;else if(n<0)r="0."+dP.stringOfChar("0",-n)+i;else if(-1===i.indexOf(".")){var s=n-i.length;r=i+dP.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+r:r}reciprocal(){var t,e,i,n,r=null,s=null,o=null,a=null;t=(i=1/this._hi)-(r=(o=dP.SPLIT*i)-(r=o-i)),s=(a=dP.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(n=i*this._hi)-(a=r*(s=a-s)-n+r*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new dP(l,i-l+o)}toSciNotation(){if(this.isZero())return dP.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),n=dP.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var r="";i.length>1&&(r=i.substring(1));var s=i.charAt(0)+"."+r;return this.isNegative()?"-"+s+n:s+n}abs(){return this.isNaN()?dP.NaN:this.isNegative()?this.negate():new dP(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?dP.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return dP}get interfaces_(){return[jR,YR,GR]}}dP.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof dP){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];dP.constructor_.call(this,dP.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},dP.PI=new dP(3.141592653589793,12246467991473532e-32),dP.TWO_PI=new dP(6.283185307179586,24492935982947064e-32),dP.PI_2=new dP(1.5707963267948966,6123233995736766e-32),dP.E=new dP(2.718281828459045,14456468917292502e-32),dP.NaN=new dP(WR.NaN,WR.NaN),dP.EPS=123259516440783e-46,dP.SPLIT=134217729,dP.MAX_PRINT_DIGITS=32,dP.TEN=dP.valueOf(10),dP.ONE=dP.valueOf(1),dP.SCI_NOT_EXPONENT_CHAR="E",dP.SCI_NOT_ZERO="0.0E0";class AP{constructor(){AP.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var n=AP.orientationIndexFilter(t,e,i);if(n<=1)return n;var r=dP.valueOf(e.x).selfAdd(-t.x),s=dP.valueOf(e.y).selfAdd(-t.y),o=dP.valueOf(i.x).selfAdd(-e.x),a=dP.valueOf(i.y).selfAdd(-e.y);return r.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof dP){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=dP.valueOf(r),e=dP.valueOf(s),i=dP.valueOf(o),n=dP.valueOf(a);return t.multiply(n).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,n){var r=dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(dP.valueOf(e.x).selfSubtract(t.x)),s=dP.valueOf(n.x).selfSubtract(i.x).selfMultiply(dP.valueOf(e.y).selfSubtract(t.y)),o=r.subtract(s),a=dP.valueOf(n.x).selfSubtract(i.x).selfMultiply(dP.valueOf(t.y).selfSubtract(i.y)),l=dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(dP.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=dP.valueOf(t.x).selfAdd(dP.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=dP.valueOf(e.x).selfSubtract(t.x).selfMultiply(dP.valueOf(t.y).selfSubtract(i.y)),g=dP.valueOf(e.y).selfSubtract(t.y).selfMultiply(dP.valueOf(t.x).selfSubtract(i.x)),d=u.subtract(g).selfDivide(o).doubleValue(),A=dP.valueOf(i.y).selfAdd(dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(d)).doubleValue();return new nN(c,A)}static orientationIndexFilter(t,e,i){var n=null,r=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=r-s;if(r>0){if(s<=0)return AP.signum(o);n=r+s}else{if(!(r<0))return AP.signum(o);if(s>=0)return AP.signum(o);n=-r-s}var a=AP.DP_SAFE_EPSILON*n;return o>=a||-o>=a?AP.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return AP}get interfaces_(){return[]}}AP.constructor_=function(){},AP.DP_SAFE_EPSILON=1e-15;class pP{constructor(){pP.constructor_.apply(this,arguments)}static index(t,e,i){return AP.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new VR("Ring has fewer than 4 points, so orientation cannot be determined");for(var i=t[0],n=0,r=1;r<=e;r++){var s=t[r];s.y>i.y&&(i=s,n=r)}var o=n;do{(o-=1)<0&&(o=e)}while(t[o].equals2D(i)&&o!==n);var a=n;do{a=(a+1)%e}while(t[a].equals2D(i)&&a!==n);var l=t[o],h=t[a];if(l.equals2D(i)||h.equals2D(i)||l.equals2D(h))return!1;var c=pP.index(l,i,h);return 0===c?l.x>h.x:c>0}getClass(){return pP}get interfaces_(){return[]}}pP.constructor_=function(){},pP.CLOCKWISE=-1,pP.RIGHT=pP.CLOCKWISE,pP.COUNTERCLOCKWISE=1,pP.LEFT=pP.COUNTERCLOCKWISE,pP.COLLINEAR=0,pP.STRAIGHT=pP.COLLINEAR;class fP{constructor(){fP.constructor_.apply(this,arguments)}getClass(){return fP}get interfaces_(){return[]}}fP.constructor_=function(){};class mP extends oN{constructor(){super(),mP.constructor_.apply(this,arguments)}computeEnvelopeInternal(){return this._shell.getEnvelopeInternal()}getCoordinates(){if(this.isEmpty())return[];for(var t=new Array(this.getNumPoints()).fill(null),e=-1,i=this._shell.getCoordinates(),n=0;n=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return oN.TYPENAME_LINEARRING}copy(){return new yP(this._points.copy(),this._factory)}getClass(){return yP}get interfaces_(){return[]}}yP.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof QP){let t=arguments[0],e=arguments[1];yP.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(kR(arguments[0],UR)&&arguments[1]instanceof QP){let t=arguments[0],e=arguments[1];aP.constructor_.call(this,t,e),this.validateConstruction()}},yP.MINIMUM_VALID_SIZE=4,yP.serialVersionUID=-0x3b229e262367a600;class IP extends XN{constructor(){super(),IP.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof oN){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return oN.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new sP(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new SP(t):new SP(t,e)}}getClass(){return bP}get interfaces_(){return[qR,jR]}}bP.constructor_=function(){},bP.serialVersionUID=-0x38e49fa6cf6f2e00,bP.instanceObject=new bP;var BP=Object.defineProperty;const LP=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&MP.call(this,t)}e||BP(t,"size",{get:NP});return t.constructor=i,i.prototype=t,i}({delete:function(t){this.has(t)&&(this._keys.splice(UN,1),this._values.splice(UN,1),this._itp.forEach((function(t){UN-1},has:function(t){return TP.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[UN]:void 0},set:function(t,e){return this.has(t)?this._values[UN]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return RP(this._itp,this._keys)},values:function(){return RP(this._itp,this._values)},entries:function(){return RP(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var n=i.next();if(n.done)break;t.call(e,n.value[1],n.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function MP(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}function TP(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(UN=t.length;UN--&&((i=t[UN])!==(n=e)&&(i==i||n==n)););else UN=t.indexOf(e);var i,n;return UN>-1}function RP(t,e,i){var n=[0],r=!1;return t.push(n),{next:function(){var s,o=n[0];return!r&&ot.add(e))),t},FP.prototype.size=function(){return this.map_.size()};class DP{constructor(){DP.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof DP))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),n=e.getMaximumSignificantDigits();return new gP(i).compareTo(new gP(n))}getScale(){return this._scale}isFloating(){return this._modelType===DP.FLOATING||this._modelType===DP.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===DP.FLOATING?t="Floating":this._modelType===DP.FLOATING_SINGLE?t="Floating-Single":this._modelType===DP.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)||this._modelType===DP.FLOATING_SINGLE?t:this._modelType===DP.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof nN){let t=arguments[0];if(this._modelType===DP.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===DP.FLOATING?t=16:this._modelType===DP.FLOATING_SINGLE?t=6:this._modelType===DP.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return DP}get interfaces_(){return[jR,YR]}}class OP{constructor(){OP.constructor_.apply(this,arguments)}readResolve(){return OP.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return OP}get interfaces_(){return[jR]}}OP.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,OP.nameToTypeMap.put(t,this)},OP.serialVersionUID=-552860263173159e4,OP.nameToTypeMap=new FP,DP.Type=OP,DP.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=DP.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof OP){let t=arguments[0];this._modelType=t,t===DP.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=DP.FIXED,this.setScale(t)}else if(arguments[0]instanceof DP){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},DP.serialVersionUID=0x6bee6404e9a25c00,DP.FIXED=new OP("FIXED"),DP.FLOATING=new OP("FLOATING"),DP.FLOATING_SINGLE=new OP("FLOATING SINGLE"),DP.maximumPreciseValue=9007199254740992;class QP{constructor(){QP.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return bP.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new nN(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new nN(t.getMinX(),t.getMinY()),new nN(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new nN(t.getMinX(),t.getMinY()),new nN(t.getMinX(),t.getMaxY()),new nN(t.getMaxX(),t.getMaxY()),new nN(t.getMaxX(),t.getMinY()),new nN(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(kR(arguments[0],UR)){return new aP(arguments[0],this)}}}createMultiLineString(){if(0===arguments.length)return new WN(null,this);if(1===arguments.length){return new WN(arguments[0],this)}}buildGeometry(t){for(var e=null,i=!1,n=!1,r=t.iterator();r.hasNext();){var s=r.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof XN&&(n=!0)}if(null===e)return this.createGeometryCollection();if(i||n)return this.createGeometryCollection(QP.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof mP)return this.createMultiPolygon(QP.toPolygonArray(t));if(a instanceof aP)return this.createMultiLineString(QP.toLineStringArray(t));if(a instanceof hP)return this.createMultiPoint(QP.toPointArray(t));iN.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(kR(arguments[0],UR)){return new hP(arguments[0],this)}}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(kR(arguments[0],UR)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof yP){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length){return new mP(arguments[0],arguments[1],this)}}getSRID(){return this._SRID}createGeometryCollection(){if(0===arguments.length)return new XN(null,this);if(1===arguments.length){return new XN(arguments[0],this)}}createGeometry(t){return new EP(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof oN&&kR(arguments[0],UR)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(kR(arguments[0],UR)){return new yP(arguments[0],this)}}}createMultiPolygon(){if(0===arguments.length)return new IP(null,this);if(1===arguments.length){return new IP(arguments[0],this)}}createMultiPoint(){if(0===arguments.length)return new _P(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){return new _P(arguments[0],this)}if(kR(arguments[0],UR)){let n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(n.size()).fill(null),e=0;et.x+" "+t.y,point(t){return jP.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,n=t._geometries.length;i1||a<0||a>1)&&(r=!0)}}else r=!0;return r?CN.min($P.pointToSegment(t,i,n),$P.pointToSegment(e,i,n),$P.pointToSegment(i,t,e),$P.pointToSegment(n,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;if(r<=0)return t.distance(e);if(r>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(s)*Math.sqrt(n)}static pointToLinePerpendicular(t,e,i){var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(r)*Math.sqrt(n)}static pointToSegmentString(t,e){if(0===e.length)throw new VR("Line array must contain at least one vertex");for(var i=t.distance(e[0]),n=0;nr?n:r;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=n>r?o:a)||t.equals(e)||(s=Math.max(o,a))}return iN.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var n=t.x-e.x,r=t.y-e.y,s=Math.sqrt(n*n+r*r);return iN.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new sP;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,n){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=n,this._result=this.computeIntersect(t,e,i,n)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((()=>Array(2))),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2))),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new nN,this._intPt[1]=new nN,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},tF.DONT_INTERSECT=0,tF.DO_INTERSECT=1,tF.COLLINEAR=2,tF.NO_INTERSECTION=0,tF.POINT_INTERSECTION=1,tF.COLLINEAR_INTERSECTION=2;class eF extends tF{constructor(){super(),eF.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,n){var r=t,s=$P.pointToSegment(t,i,n),o=$P.pointToSegment(e,i,n);return o1e-4&&vN.out.println("Distance = "+r.distance(s))}intersectionWithNormalization(t,e,i,n){var r=new nN(t),s=new nN(e),o=new nN(i),a=new nN(n),l=new nN;this.normalizeToEnvCentre(r,s,o,a,l);var h=this.safeHCoordinateIntersection(r,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,n){var r=sN.intersects(t,e,i),s=sN.intersects(t,e,n),o=sN.intersects(i,n,t),a=sN.intersects(i,n,e);return r&&s?(this._intPt[0]=i,this._intPt[1]=n,tF.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,tF.COLLINEAR_INTERSECTION):r&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):r&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):s&&o?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||r||a?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):s&&a?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||r||o?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):tF.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,n,r){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xn.x?i.x:n.x,g=i.y>n.y?i.y:n.y,d=((s>h?s:h)+(ac?o:c)+(l0&&s>0||r<0&&s<0)return tF.NO_INTERSECTION;var o=pP.index(i,n,t),a=pP.index(i,n,e);return o>0&&a>0||o<0&&a<0?tF.NO_INTERSECTION:0===r&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,n):(0===r||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(n)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(n)?this._intPt[0]=e:0===r?this._intPt[0]=new nN(i):0===s?this._intPt[0]=new nN(n):0===o?this._intPt[0]=new nN(t):0===a&&(this._intPt[0]=new nN(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,n)),tF.POINT_INTERSECTION)}getClass(){return eF}get interfaces_(){return[]}}eF.constructor_=function(){};class iF{constructor(){iF.constructor_.apply(this,arguments)}static locatePointInRing(){if(arguments[0]instanceof nN&&kR(arguments[1],UR)){let r=arguments[1];for(var t=new iF(arguments[0]),e=new nN,i=new nN,n=1;nn&&(i=e.x,n=t.x),this._p.x>=i&&this._p.x<=n&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=pP.index(t,e,this._p);if(r===pP.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new mN;var t=this._parent.getGeometryN(this._index++);return t instanceof XN?(this._subcollectionIterator=new rF(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return rF}get interfaces_(){return[dN]}}rF.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class sF{constructor(){sF.constructor_.apply(this,arguments)}locateInPolygonRing(t,e){return e.getEnvelopeInternal().intersects(t)?nF.locateInRing(t,e.getCoordinates()):WP.EXTERIOR}intersects(t,e){return this.locate(t,e)!==WP.EXTERIOR}updateLocationInfo(t){t===WP.INTERIOR&&(this._isIn=!0),t===WP.BOUNDARY&&this._numBoundaries++}computeLocation(t,e){if(e instanceof hP&&this.updateLocationInfo(this.locateOnPoint(t,e)),e instanceof aP)this.updateLocationInfo(this.locateOnLineString(t,e));else if(e instanceof mP)this.updateLocationInfo(this.locateInPolygon(t,e));else if(e instanceof WN)for(var i=e,n=0;n0||this._isIn?WP.INTERIOR:WP.EXTERIOR)}getClass(){return sF}get interfaces_(){return[]}}sF.constructor_=function(){if(this._boundaryRule=lN.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new VR("Rule must be non-null");this._boundaryRule=t}};class oF{constructor(){oF.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===YN.SYM_DONTCARE||(e===YN.SYM_TRUE&&(t>=0||t===YN.TRUE)||(e===YN.SYM_FALSE&&t===YN.FALSE||(e===YN.SYM_P&&t===YN.P||(e===YN.SYM_L&&t===YN.L||e===YN.SYM_A&&t===YN.A))))}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new oF(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===YN.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])||oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY]))&&this._matrix[WP.EXTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.BOUNDARY]===YN.FALSE}isCoveredBy(){return(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])||oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY]))&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE}set(){if(1===arguments.length){let n=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===YN.A&&e===YN.A||t===YN.L&&e===YN.L||t===YN.L&&e===YN.A||t===YN.P&&e===YN.A||t===YN.P&&e===YN.L)&&(this._matrix[WP.INTERIOR][WP.INTERIOR]===YN.FALSE&&(oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY])))}isOverlaps(t,e){return t===YN.P&&e===YN.P||t===YN.A&&e===YN.A?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]):t===YN.L&&e===YN.L&&(1===this._matrix[WP.INTERIOR][WP.INTERIOR]&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]))}isEquals(t,e){return t===e&&(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.BOUNDARY]===YN.FALSE)}toString(){for(var t=new sP("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,YN.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new VR("Should be length 9: "+t);for(var e=0;e<3;e++)for(var i=0;i<3;i++)if(!oF.matches(this._matrix[e][i],t.charAt(3*e+i)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[WP.INTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.INTERIOR][WP.BOUNDARY]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.BOUNDARY]===YN.FALSE}isCrosses(t,e){return t===YN.P&&e===YN.L||t===YN.P&&e===YN.A||t===YN.L&&e===YN.A?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR]):t===YN.L&&e===YN.P||t===YN.A&&e===YN.P||t===YN.A&&e===YN.L?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]):t===YN.L&&e===YN.L&&0===this._matrix[WP.INTERIOR][WP.INTERIOR]}getClass(){return oF}get interfaces_(){return[GR]}}oF.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((()=>Array(3))),this.setAll(YN.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];oF.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof oF){let t=arguments[0];oF.constructor_.call(this),this._matrix[WP.INTERIOR][WP.INTERIOR]=t._matrix[WP.INTERIOR][WP.INTERIOR],this._matrix[WP.INTERIOR][WP.BOUNDARY]=t._matrix[WP.INTERIOR][WP.BOUNDARY],this._matrix[WP.INTERIOR][WP.EXTERIOR]=t._matrix[WP.INTERIOR][WP.EXTERIOR],this._matrix[WP.BOUNDARY][WP.INTERIOR]=t._matrix[WP.BOUNDARY][WP.INTERIOR],this._matrix[WP.BOUNDARY][WP.BOUNDARY]=t._matrix[WP.BOUNDARY][WP.BOUNDARY],this._matrix[WP.BOUNDARY][WP.EXTERIOR]=t._matrix[WP.BOUNDARY][WP.EXTERIOR],this._matrix[WP.EXTERIOR][WP.INTERIOR]=t._matrix[WP.EXTERIOR][WP.INTERIOR],this._matrix[WP.EXTERIOR][WP.BOUNDARY]=t._matrix[WP.EXTERIOR][WP.BOUNDARY],this._matrix[WP.EXTERIOR][WP.EXTERIOR]=t._matrix[WP.EXTERIOR][WP.EXTERIOR]}};class aF{constructor(){aF.constructor_.apply(this,arguments)}static isNorthern(t){return t===aF.NE||t===aF.NW}static isOpposite(t,e){return t!==e&&2===(t-e+4)%4}static commonHalfPlane(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var i=te?t:e)?3:i}static isInHalfPlane(t,e){return e===aF.SE?t===aF.SE||t===aF.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new VR("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?aF.NE:aF.SE:e>=0?aF.NW:aF.SW}if(arguments[0]instanceof nN&&arguments[1]instanceof nN){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new VR("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?aF.NE:aF.SE:e.y>=t.y?aF.NW:aF.SW}}getClass(){return aF}get interfaces_(){return[]}}aF.constructor_=function(){},aF.NE=0,aF.NW=1,aF.SW=2,aF.SE=3;class lF{constructor(){lF.constructor_.apply(this,arguments)}compareDirection(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrantthis.location.length){var e=new Array(3).fill(null);e[hF.ON]=this.location[hF.ON],e[hF.LEFT]=WP.NONE,e[hF.RIGHT]=WP.NONE,this.location=e}for(var i=0;i1&&t.append(WP.toLocationSymbol(this.location[hF.LEFT])),t.append(WP.toLocationSymbol(this.location[hF.ON])),this.location.length>1&&t.append(WP.toLocationSymbol(this.location[hF.RIGHT])),t.toString()}setLocations(t,e,i){this.location[hF.ON]=t,this.location[hF.LEFT]=e,this.location[hF.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t=t.getNumPoints()&&null===n)return null;var s=t.getCoordinate(r);null!==n&&n.segmentIndex===i.segmentIndex&&(s=n.coord);var o=new lF(t,i.coord,s,new uF(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,n){var r=i.segmentIndex;if(0===i.dist){if(0===r)return null;r--}var s=t.getCoordinate(r);null!==n&&n.segmentIndex>=r&&(s=n.coord);var o=new uF(t.getLabel());o.flip();var a=new lF(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let n=arguments[0];for(var t=new yN,e=n;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var n=t.getEdgeIntersectionList();n.addEndpoints();var r=n.iterator(),s=null,o=null;if(!r.hasNext())return null;var a=r.next();do{s=o,o=a,a=null,r.hasNext()&&(a=r.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return gF}get interfaces_(){return[]}}gF.constructor_=function(){};class dF{constructor(){dF.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){iN.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return dF}get interfaces_(){return[]}}dF.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class AF extends dF{constructor(){super(),AF.constructor_.apply(this,arguments)}isIncidentEdgeInResult(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1}isIsolated(){return 1===this._label.getGeometryCount()}getCoordinate(){return this._coord}print(t){t.println("node "+this._coord+" lbl: "+this._label)}computeIM(t){}computeMergedLocation(t,e){var i=WP.NONE;if(i=this._label.getLocation(e),!t.isNull(e)){var n=t.getLocation(e);i!==WP.BOUNDARY&&(i=n)}return i}setLabel(){if(2!==arguments.length||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return super.setLabel.apply(this,arguments);{let t=arguments[0],e=arguments[1];null===this._label?this._label=new uF(t,e):this._label.setLocation(t,e)}}getEdges(){return this._edges}mergeLabel(){if(arguments[0]instanceof AF){let t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof uF){let i=arguments[0];for(var t=0;t<2;t++){var e=this.computeMergedLocation(i,t);this._label.getLocation(t)===WP.NONE&&this._label.setLocation(t,e)}}}add(t){this._edges.insert(t),t.setNode(this)}setLabelBoundary(t){if(null===this._label)return null;var e=WP.NONE;null!==this._label&&(e=this._label.getLocation(t));var i=null;switch(e){case WP.BOUNDARY:i=WP.INTERIOR;break;case WP.INTERIOR:default:i=WP.BOUNDARY}this._label.setLocation(t,i)}getClass(){return AF}get interfaces_(){return[]}}AF.constructor_=function(){this._coord=null,this._edges=null;let t=arguments[0],e=arguments[1];this._coord=t,this._edges=e,this._label=new uF(0,WP.NONE)};class pF{constructor(){pF.constructor_.apply(this,arguments)}find(t){return this.nodeMap.get(t)}addNode(){if(arguments[0]instanceof nN){let e=arguments[0];return null===(t=this.nodeMap.get(e))&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}if(arguments[0]instanceof AF){let e=arguments[0];var t;return null===(t=this.nodeMap.get(e.getCoordinate()))?(this.nodeMap.put(e.getCoordinate(),e),e):(t.mergeLabel(e),t)}}print(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}}iterator(){return this.nodeMap.values().iterator()}values(){return this.nodeMap.values()}getBoundaryNodes(t){for(var e=new yN,i=this.iterator();i.hasNext();){var n=i.next();n.getLabel().getLocation(t)===WP.BOUNDARY&&e.add(n)}return e}add(t){var e=t.getCoordinate();this.addNode(e).add(t)}getClass(){return pF}get interfaces_(){return[]}}pF.constructor_=function(){this.nodeMap=new ON,this.nodeFact=null;let t=arguments[0];this.nodeFact=t};class fF extends tN{constructor(){if(1===arguments.length){let t=arguments[0];super(t),tN.call(this,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];super(fF.msgWithCoord(t,e)),this.name="TopologyException",this.pt=new nN(e)}}getCoordinate(){return this.pt}get interfaces_(){return[]}getClass(){return fF}static msgWithCoord(t,e){return null!==e?t+" [ "+e+" ]":t}}class mF{constructor(){mF.constructor_.apply(this,arguments)}locate(t){}getClass(){return mF}get interfaces_(){return[]}}mF.constructor_=function(){};class _F{constructor(){_F.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return WP.EXTERIOR;var i=e.getExteriorRing(),n=_F.locatePointInRing(t,i);if(n!==WP.INTERIOR)return n;for(var r=0;re._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===EF.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return EF}get interfaces_(){return[YR]}}EF.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=EF.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=EF.INSERT,this._label=t,this._xValue=e,this._obj=i}},EF.INSERT=1,EF.DELETE=2;class CF{constructor(){CF.constructor_.apply(this,arguments)}getClass(){return CF}get interfaces_(){return[]}}CF.constructor_=function(){};const vF={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return vF.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?VN.sort(i,e):VN.sort(i);const n=t.iterator();for(let t=0,e=i.length;te||this._maxs?1:0}getClass(){return LF}get interfaces_(){return[$R]}}LF.constructor_=function(){},BF.NodeComparator=LF,BF.constructor_=function(){this._min=WR.POSITIVE_INFINITY,this._max=WR.NEGATIVE_INFINITY};class MF extends BF{constructor(){super(),MF.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return MF}get interfaces_(){return[]}}MF.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};class TF extends BF{constructor(){super(),TF.constructor_.apply(this,arguments)}buildExtent(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max)}query(t,e,i){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,i),null!==this._node2&&this._node2.query(t,e,i)}getClass(){return TF}get interfaces_(){return[]}}TF.constructor_=function(){this._node1=null,this._node2=null;let t=arguments[0],e=arguments[1];this._node1=t,this._node2=e,this.buildExtent(this._node1,this._node2)};class RF{constructor(){RF.constructor_.apply(this,arguments)}buildTree(){xF.sort(this._leaves,new BF.NodeComparator);for(var t=this._leaves,e=null,i=new yN;;){if(this.buildLevel(t,i),1===i.size())return i.get(0);e=t,t=i,i=e}}insert(t,e,i){if(null!==this._root)throw new IllegalStateException("Index cannot be added to once it has been queried");this._leaves.add(new MF(t,e,i))}query(t,e,i){this.init(),this._root.query(t,e,i)}buildRoot(){if(null!==this._root)return null;this._root=this.buildTree()}printNode(t){vN.out.println(XP.toLineString(new nN(t._min,this._level),new nN(t._max,this._level)))}init(){if(null!==this._root)return null;this.buildRoot()}buildLevel(t,e){this._level++,e.clear();for(var i=0;i=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof nN){let t=arguments[0];return pP.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof NF))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new eF;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof nN){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new nN(i);var t=this.projectionFactor(i),e=new nN;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof NF){let t=arguments[0];var i=this.projectionFactor(t.p0),n=this.projectionFactor(t.p1);if(i>=1&&n>=1)return null;if(i<=0&&n<=0)return null;var r=this.project(t.p0);i<0&&(r=this.p0),i>1&&(r=this.p1);var s=this.project(t.p1);return n<0&&(s=this.p0),n>1&&(s=this.p1),new NF(r,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return $P.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return NF.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,n=e*e+i*i;return n<=0?WR.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/n}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),n=WR.MAX_VALUE,r=null,s=this.closestPoint(t.p0);n=s.distance(t.p0),i[0]=s,i[1]=t.p0;var o=this.closestPoint(t.p1);(r=o.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||WR.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof NF){let t=arguments[0];return $P.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof nN){let t=arguments[0];return $P.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new nN;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^(Math.trunc(i)^Math.trunc(i>>32))}getClass(){return NF}get interfaces_(){return[YR,jR]}}NF.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)NF.constructor_.call(this,new nN,new nN);else if(1===arguments.length){let t=arguments[0];NF.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];NF.constructor_.call(this,new nN(t,e),new nN(i,n))}},NF.serialVersionUID=0x2d2172135f411c00;class PF{constructor(){PF.constructor_.apply(this,arguments)}static getGeometry(){if(1===arguments.length){let t=arguments[0];return t.getFactory().buildGeometry(PF.getLines(t))}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t.getFactory().buildGeometry(PF.getLines(t,e))}}static getLines(){if(1===arguments.length){let t=arguments[0];return PF.getLines(t,!1)}if(2===arguments.length){if(kR(arguments[0],AN)&&kR(arguments[1],AN)){let i=arguments[1];for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();PF.getLines(e,i)}return i}if(arguments[0]instanceof oN&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];var i=new yN;return t.apply(new PF(i,e)),i}if(arguments[0]instanceof oN&&kR(arguments[1],AN)){let t=arguments[0],e=arguments[1];return t instanceof aP?e.add(t):t.apply(new PF(e)),e}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&kR(arguments[0],AN)&&kR(arguments[1],AN)){let i=arguments[1],n=arguments[2];for(t=arguments[0].iterator();t.hasNext();){e=t.next();PF.getLines(e,i,n)}return i}if("boolean"==typeof arguments[2]&&arguments[0]instanceof oN&&kR(arguments[1],AN)){let t=arguments[1],e=arguments[2];return arguments[0].apply(new PF(t,e)),t}}}filter(t){if(this._isForcedToLineString&&t instanceof yP){var e=t.getFactory().createLineString(t.getCoordinateSequence());return this._lines.add(e),null}t instanceof aP&&this._lines.add(t)}setForceToLineString(t){this._isForcedToLineString=t}getClass(){return PF}get interfaces_(){return[zR]}}PF.constructor_=function(){if(this._lines=null,this._isForcedToLineString=!1,1===arguments.length){let t=arguments[0];this._lines=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._lines=t,this._isForcedToLineString=e}};class FF{constructor(){FF.constructor_.apply(this,arguments)}visitItem(t){this._items.add(t)}getItems(){return this._items}getClass(){return FF}get interfaces_(){return[bF]}}FF.constructor_=function(){this._items=new yN};class DF{constructor(){DF.constructor_.apply(this,arguments)}locate(t){var e=new iF(t),i=new OF(e);return this._index.query(t.y,t.y,i),e.getLocation()}getClass(){return DF}get interfaces_(){return[mF]}}class OF{constructor(){OF.constructor_.apply(this,arguments)}visitItem(t){var e=t;this._counter.countSegment(e.getCoordinate(0),e.getCoordinate(1))}getClass(){return OF}get interfaces_(){return[bF]}}OF.constructor_=function(){this._counter=null;let t=arguments[0];this._counter=t};class QF{constructor(){QF.constructor_.apply(this,arguments)}init(t){for(var e=PF.getLines(t).iterator();e.hasNext();){var i=e.next().getCoordinates();this.addLine(i)}}addLine(t){for(var e=1;e0||!e.coord.equals2D(n);r||i--;var s=new Array(i).fill(null),o=0;s[o++]=new nN(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return r&&(s[o]=e.coord),new zF(s,new uF(this.edge._label))}add(t,e,i){var n=new kF(t,e,i),r=this._nodeMap.get(n);return null!==r?r:(this._nodeMap.put(n,n),n)}isIntersection(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1}getClass(){return GF}get interfaces_(){return[]}}GF.constructor_=function(){this._nodeMap=new ON,this.edge=null;let t=arguments[0];this.edge=t};class UF{constructor(){UF.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(n=1),this._depth[t][i]=n}}}getDelta(t){return this._depth[t][hF.RIGHT]-this._depth[t][hF.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?WP.EXTERIOR:WP.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let n=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=n.getLocation(t,e);i!==WP.EXTERIOR&&i!==WP.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=VF.depthAtLocation(i):this._depth[t][e]+=VF.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===WP.INTERIOR&&this._depth[t][e]++}}getClass(){return VF}get interfaces_(){return[]}}VF.constructor_=function(){this._depth=Array(2).fill().map((()=>Array(3)));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=VF.NULL_VALUE},VF.NULL_VALUE=-1;class zF extends dF{constructor(){super(),zF.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof oF&&arguments[0]instanceof uF))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,hF.ON),t.getLocation(1,hF.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,hF.LEFT),t.getLocation(1,hF.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,hF.RIGHT),t.getLocation(1,hF.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new zF(t,uF.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof zF))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,n=!0,r=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){zF.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new qF(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new sN;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;e=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=r.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===WP.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var n=xN.removeRepeatedPoints(t.getCoordinates());if(n.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=n[0],null;var r=e,s=i;pP.isCCW(n)&&(r=i,s=e);var o=new zF(n,new uF(this._argIndex,WP.BOUNDARY,r,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,n[0],WP.BOUNDARY)}insertPoint(t,e,i){var n=this._nodes.addNode(e),r=n.getLabel();null===r?n._label=new uF(t,i):r.setLocation(t,i)}createEdgeSetIntersector(){return new SF}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.eiList.iterator();r.hasNext();){var s=r.next();this.addSelfIntersectionNode(t,s.coord,n)}}add(){if(!(1===arguments.length&&arguments[0]instanceof oN))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof IP&&(this._useBoundaryDeterminationRule=!1),t instanceof mP)this.addPolygon(t);else if(t instanceof aP)this.addLineString(t);else if(t instanceof hP)this.addPoint(t);else if(t instanceof _P)this.addCollection(t);else if(t instanceof WN)this.addCollection(t);else if(t instanceof IP)this.addCollection(t);else{if(!(t instanceof XN))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new DF(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof aP){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return XF}get interfaces_(){return[]}}XF.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new FP,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new sF,2===arguments.length){let t=arguments[0],e=arguments[1];XF.constructor_.call(this,t,e,lN.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};class WF extends lF{constructor(){super(),WF.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();){e.next().print(t),t.println()}}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,n=!1,r=this.iterator();r.hasNext();){(s=r.next().getLabel().getLocation(t))===WP.BOUNDARY&&i++,s===WP.INTERIOR&&(n=!0)}var s=WP.NONE;n&&(s=WP.INTERIOR),i>0&&(s=XF.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var n=i.next();if(n.getLabel().isArea()){var r=n.getLabel().getLocation(t,e);if(r===WP.INTERIOR)return this._label.setLocation(t,e,WP.INTERIOR),null;r===WP.EXTERIOR&&this._label.setLocation(t,e,WP.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,hF.LEFT),this.computeLabelSide(t,hF.RIGHT)}updateIM(t){zF.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();){i.next().getLabel().isArea()&&(e=!0)}this._label=e?new uF(WP.NONE,WP.NONE,WP.NONE):new uF(WP.NONE);for(var n=0;n<2;n++)this.computeLabelOn(n,t),e&&this.computeLabelSides(n)}getClass(){return WF}get interfaces_(){return[]}}WF.constructor_=function(){if(this._edgeEnds=new yN,1===arguments.length){let t=arguments[0];WF.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];lF.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new uF(t.getLabel())),this.insert(t)}};class KF extends yF{constructor(){super(),KF.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();){e.next().updateIM(t)}}insert(t){var e=this._edgeMap.get(t);null===e?(e=new WF(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return KF}get interfaces_(){return[]}}KF.constructor_=function(){};class JF extends AF{constructor(){super(),JF.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return JF}get interfaces_(){return[]}}JF.constructor_=function(){let t=arguments[0],e=arguments[1];AF.constructor_.call(this,t,e)};class ZF extends jF{constructor(){super(),ZF.constructor_.apply(this,arguments)}createNode(t){return new JF(t,new KF)}getClass(){return ZF}get interfaces_(){return[]}}ZF.constructor_=function(){};class $F{constructor(){$F.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),n=this._arg[1].getGeometry().getDimension(),r=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===n?r&&e.setAtLeast("212101212"):2===i&&1===n?(r&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===n?(r&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===n&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var n=i.next();n.isIsolated()&&(this.labelIsolatedEdge(n,e,this._arg[e].getGeometry()),this._isolatedEdges.add(n))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var n=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,n)}else t.getLabel().setAllLocations(e,WP.EXTERIOR)}computeIM(){var t=new oF;if(t.set(WP.EXTERIOR,WP.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new gF,n=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(n);var r=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(r),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().computeLabelling(this._arg)}}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(n===WP.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,WP.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.addNode(s.coord);n===WP.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,WP.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();iN.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();){e.next().updateIM(t)}for(var i=this._nodes.iterator();i.hasNext();){var n=i.next();n.updateIM(t),n.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(WP.INTERIOR,WP.EXTERIOR,e.getDimension()),t.set(WP.BOUNDARY,WP.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(WP.EXTERIOR,WP.INTERIOR,i.getDimension()),t.set(WP.EXTERIOR,WP.BOUNDARY,i.getBoundaryDimension()))}getClass(){return $F}get interfaces_(){return[]}}$F.constructor_=function(){this._li=new eF,this._ptLocator=new sF,this._arg=null,this._nodes=new pF(new ZF),this._im=null,this._isolatedEdges=new yN,this._invalidPoint=null;let t=arguments[0];this._arg=t};class tD{constructor(){tD.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return tD}get interfaces_(){return[]}}tD.constructor_=function(){if(this._li=new eF,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new XF(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];tD.constructor_.call(this,t,e,lN.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new XF(0,t,i),this._arg[1]=new XF(1,e,i)}};class eD{constructor(){eD.constructor_.apply(this,arguments)}static contains(t,e){return new eD(t).contains(e)}isContainedInBoundary(t){if(t instanceof mP)return!1;if(t instanceof hP)return this.isPointContainedInBoundary(t);if(t instanceof aP)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var n=t;t=e,e=n}var r=!1;return e.y>t.y&&(r=!0),r?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return iD}get interfaces_(){return[]}}iD.constructor_=function(){this._li=new eF,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new nN(t.getMinX(),t.getMinY()),this._diagUp1=new nN(t.getMaxX(),t.getMaxY()),this._diagDown0=new nN(t.getMinX(),t.getMaxY()),this._diagDown1=new nN(t.getMaxX(),t.getMinY())};class nD{constructor(){nD.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return sD}get interfaces_(){return[]}}sD.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class oD extends nD{constructor(){super(),oD.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof mP))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new nN,n=0;n<4;n++)if(this._rectSeq.getCoordinate(n,i),e.contains(i)&&_F.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return oD}get interfaces_(){return[]}}oD.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class aD extends nD{constructor(){super(),aD.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=PF.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&(!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new lD(t,e).getIntersectionMatrix().isCovers())))}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return rD.intersects(t,e);if(e.isRectangle())return rD.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&(!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?eD.contains(t,e):new lD(t,e).getIntersectionMatrix().isContains())))}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return lD}get interfaces_(){return[]}}lD.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];tD.constructor_.call(this,t,e),this._relate=new $F(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];tD.constructor_.call(this,t,e,i),this._relate=new $F(this._arg)}};const hD=t=>{let e=t,i=[];return e instanceof _I?i=[...e.getFeatures().map((t=>t.getGeometry()))]:(UB(e)||(e=[e]),i=e.map((t=>{let e;return t instanceof DL?e=t.getGeometry():zB(t)&&(e=t),e}))),i},cD=(t,e)=>{let i="";const n=new cM;return e.forEach(((e,r)=>{0!==r&&(i+=" OR ");const s=e;"point"===s.type.toLowerCase()&&(s.coordinates.length=2);const o=n.write(s);i+=`${t}({{geometryName}}, ${o})`})),i},uD=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"],gD="enterfullscreen",dD="leavefullscreen";function AD(t){const e=t.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&t.fullscreenEnabled)}function pD(t){return!(!t.webkitIsFullScreen&&!t.fullscreenElement)}function fD(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()}const mD=class extends Lh{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.on,this.once,this.un,this.keys_=void 0!==t.keys&&t.keys,this.source_=t.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==t.className?t.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==t.activeClassName?t.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==t.inactiveClassName?t.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const e=void 0!==t.label?t.label:"⤢";this.labelNode_="string"==typeof e?document.createTextNode(e):e;const i=void 0!==t.labelActive?t.labelActive:"×";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const n=t.tipLabel?t.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=n,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(Ms,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${Il} ${Cl}`,this.element.appendChild(this.button_)}handleClick_(t){t.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const t=this.getMap();if(!t)return;const e=t.getOwnerDocument();if(AD(e))if(pD(e))!function(t){t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()}(e);else{let i;i=this.source_?"string"==typeof this.source_?e.getElementById(this.source_):this.source_:t.getTargetElement(),this.keys_?function(t){t.webkitRequestFullscreen?t.webkitRequestFullscreen():fD(t)}(i):fD(i)}}handleFullScreenChange_(){const t=this.getMap();if(!t)return;const e=this.isInFullscreen_;this.isInFullscreen_=pD(t.getOwnerDocument()),e!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Tl(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(gD)):(Tl(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(dD)),t.updateSize())}setClassName_(t,e){e?(t.classList.remove(...this.inactiveClassName_),t.classList.add(...this.activeClassName_)):(t.classList.remove(...this.activeClassName_),t.classList.add(...this.inactiveClassName_))}setMap(t){const e=this.getMap();e&&e.removeChangeListener(yh,this.boundHandleMapTargetChange_),super.setMap(t),this.handleMapTargetChange_(),t&&t.addChangeListener(yh,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const t=this.documentListeners_;for(let e=0,i=t.length;e=0;e--)r.push(n[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:r}}};function ED(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,n=CD(e),r=function(t,e){const i=[],n=[],r=[];let s,o;for(s=0,o=t.length;s=0;s--){const i=n[s][0];if(D(new Ga(i).getExtent(),new Ga(t).getExtent())){n[s].push(t),e=!0;break}}e||n.push([t.reverse()])}return n}(e.rings,n);1===r.length?(i="Polygon",t=Object.assign({},t,{rings:r[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:r}))}return KE((0,yD[i])(t),!1,e)}function CD(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function vD(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function xD(t,e){return(0,ID[t.getType()])(KE(t,!0,e),e)}const wD=class extends vS{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const n=t,r=ED(n.geometry,e),s=new _d;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(r),n.attributes){s.setProperties(n.attributes,!0);const t=n.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],n=t.features;for(let r=0,s=n.length;r1,n=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],r=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...n],formats:[...e.formats,...r],qualities:[...e.qualities,...s]}},_O[dO]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:n}};const yO=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e0&&"string"==typeof this.imageInfo.profile[0]&&fO.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?AO.none.none:AO[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const n=void 0===i?void 0:_O[i](this);return void 0!==n?{url:n.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}:void 0}},IO=[null],EO=aA(IO,{nd:function(t,e){const i=e[e.length-1];i.ndrefs.push(t.getAttribute("ref")),t.hasAttribute("lon")&&t.hasAttribute("lat")&&(i.flatCoordinates.push(parseFloat(t.getAttribute("lon"))),i.flatCoordinates.push(parseFloat(t.getAttribute("lat"))))},tag:xO}),CO=aA(IO,{node:function(t,e){const i=e[0],n=e[e.length-1],r=t.getAttribute("id"),s=[parseFloat(t.getAttribute("lon")),parseFloat(t.getAttribute("lat"))];n.nodes[r]=s;const o=hA({tags:{}},vO,t,e);if(!ws(o.tags)){const t=new qa(s);KE(t,!1,i);const e=new _d(t);void 0!==r&&e.setId(r),e.setProperties(o.tags,!0),n.features.push(e)}},way:function(t,e){const i=t.getAttribute("id"),n=hA({id:i,ndrefs:[],flatCoordinates:[],tags:{}},EO,t,e);e[e.length-1].ways.push(n)}});const vO=aA(IO,{tag:xO});function xO(t,e){e[e.length-1].tags[t.getAttribute("k")]=t.getAttribute("v")}const wO=class extends ZE{constructor(){super(),this.dataProjection=ee("EPSG:4326")}readFeaturesFromNode(t,e){if(e=this.getReadOptions(t,e),"osm"==t.localName){const i=hA({nodes:{},ways:[],features:[]},CO,t,[e]);for(let t=0;t>1):i>>1}return e}(t);for(let t=0,n=i.length;t=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}const RO=class extends qL{constructor(t){super(),t=t||{},this.dataProjection=ee("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new _d(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=ya(this.geometryLayout_),n=BO(t,i,this.factor_);SO(n,0,n.length,i,n);const r=Pa(n,0,n.length,i);return KE(new wd(r,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();if(i)return this.writeGeometryText(i,e);throw new Error("Expected `feature` to have a geometry")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=KE(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return SO(i,0,i.length,n,i),bO(i,n,this.factor_)}};const NO={Point:function(t,e,i){const n=t.coordinates;e&&i&&QO(n,e,i);return new qa(n)},LineString:function(t,e){const i=PO(t.arcs,e);return new wd(i)},Polygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n0&&i.pop(),n>=0){const t=e[n];for(let e=0,n=t.length;e=0;--e)i.push(t[e].slice(0))}return i}function FO(t,e,i,n,r,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t0,i=this.readUint32(e),n=Math.floor((268435455&i)/1e3),r=Boolean(2147483648&i)||1===n||3===n,s=Boolean(1073741824&i)||2===n||3===n,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",r?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=r,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case GO:return this.readPoint();case UO:return this.readLineString();case qO:case WO:return this.readPolygon();case VO:return this.readMultiPoint();case zO:return this.readMultiLineString();case YO:case HO:case XO:return this.readMultiPolygon();case jO:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),n=[];for(let r=0;r({[e]:t[i]}))));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;it+e[0]),0),e=new ArrayBuffer(t),i=new DataView(e);let n=0;return this.writeQueue_.forEach((t=>{switch(t[0]){case 1:i.setUint8(n,t[1]);break;case 4:i.setUint32(n,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(n,t[1],this.isLittleEndian_)}n+=t[0]})),e}}function ZO(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;inew _d({geometry:t})))}readGeometry(t,e){const i=ZO(t);if(!i)return null;const n=new KO(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,KE(n,!1,e)}readProjection(t){const e=this.viewCache_||ZO(t);if(!e)return;const i=new KO(e);return i.readWkbHeader(),i.getSrid()&&ee("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new Od(t.map((t=>t.getGeometry()))),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new JO({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let n=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&ee(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(n=Number(e.substring(5)))}}i.writeGeometry(KE(t,!0,e),n);const r=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map((t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase())).join("")}(r):r}};const tQ=class extends ZE{constructor(t){super(),t=t||{},this.featureNS_="http://mapserver.gis.umn.edu/mapserver",this.gmlFormat_=new oC,this.layers_=t.layers?t.layers:null}getLayers(){return this.layers_}setLayers(t){this.layers_=t}readFeatures_(t,e){t.setAttribute("namespaceURI",this.featureNS_);const i=t.localName;let n=[];if(0===t.childNodes.length)return n;if("msGMLOutput"==i)for(let i=0,r=t.childNodes.length;i1?1:-1;return e.endInteraction(this.duration_,i),this.handlingDownUpSequence_=!1,this.handlingDoubleDownSequence_=!1,!1}return!0}stopDown(t){return t}updateTrackedPointers_(t){if(function(t){const e=t.type;return e===oh.POINTERDOWN||e===oh.POINTERDRAG||e===oh.POINTERUP}(t)){const e=t.originalEvent,i=e.pointerId.toString();t.type==oh.POINTERUP?delete this.trackedPointers_[i]:(t.type==oh.POINTERDOWN||i in this.trackedPointers_)&&(this.trackedPointers_[i]=e),this.targetPointers=Object.values(this.trackedPointers_)}}waitForDblTap_(){void 0!==this.doubleTapTimeoutId_?(clearTimeout(this.doubleTapTimeoutId_),this.doubleTapTimeoutId_=void 0):(this.handlingDoubleDownSequence_=!0,this.doubleTapTimeoutId_=setTimeout(this.endInteraction_.bind(this),250))}endInteraction_(){this.handlingDoubleDownSequence_=!1,this.doubleTapTimeoutId_=void 0}},iQ="addfeatures";class nQ extends us{constructor(t,e,i,n){super(t),this.features=i,this.file=e,this.projection=n}}const rQ=class extends Dh{constructor(t){t=t||{},super({handleEvent:Is}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];const e=t.formatConstructors?t.formatConstructors:[];for(let t=0,i=e.length;t0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new nQ(iQ,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[Gs(e,Ps,this.handleDrop,this),Gs(e,Rs,this.handleStop,this),Gs(e,Ns,this.handleStop,this),Gs(e,Ps,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(qs),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!$h(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}},oQ="drawstart",aQ="drawend",lQ="drawabort";class hQ extends us{constructor(t,e){super(t),this.feature=e}}function cQ(t,e){return pt(t[0],t[1],e[0],e[1])}function uQ(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function gQ(t,e,i){let n,r;eo){return cQ(_Q(t,n),_Q(t,r))}let a=0;if(n=i?n-=i:n<0&&(n+=i);let s=n+1;s>=i&&(s-=i);const o=t[n],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*r,l+(h[1]-l)*r]}function yQ(){const t=Tm();return function(e,i){return t[e.getGeometry().getType()]}}const IQ=class extends kh{constructor(t){const e=t;e.stopDown||(e.stopDown=Es),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:Is,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const n=e||new kd([NaN,NaN]),r=fe(t[0],i),s=Ft(r,fe(t[t.length-1],i));n.setCenterAndRadius(r,Math.sqrt(s),this.geometryLayout_);const o=Ae();return o&&n.transform(i,o),n};else{let e;"Point"===t?e=qa:"LineString"===t?e=wd:"Polygon"===t&&(e=sl),i=function(i,n,r){return n?"Polygon"===t?i[0].length?n.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):n.setCoordinates([],this.geometryLayout_):n.setCoordinates(i,this.geometryLayout_):n=new e(i,this.geometryLayout_),n}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new Sy({source:new kf({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:yQ(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:Wh,this.freehandCondition_,t.freehand?this.freehandCondition_=Yh:this.freehandCondition_=t.freehandCondition?t.freehandCondition:Jh,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(Ph,this.updateState_)}setTrace(t){let e;e=t?!0===t?Yh:t:Hh,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===Ls&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===oh.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===oh.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===oh.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===oh.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===oh.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===oh.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===oh.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout((()=>{this.handlePointerMove_(new sh(oh.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=T([e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_])]),n=this.traceSource_.getFeaturesInExtent(i);if(0===n.length)return;const r=function(t,e){const i=[];for(let n=0;nt.endIndex||!i&&et.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const n=[];if(e=s;--e)n.push(uQ(t.coordinates,e))}n.length&&this.appendCoordinates(n)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Dt(e.startPx,t.pixel)i.startIndex?hi.startIndex&&(h-=n.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=_Q(h.coordinates,l);Dt(i.getPixelFromCoordinate(t),e.startPx)>n&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,n=l;if(ithis.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let n=!1,r=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)n=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;n=t[0].length>this.minPoints_,r=[t[0][0],t[0][t[0].length-2]],r=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(n){const e=this.getMap();for(let n=0,s=r.length;n=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),this.geometryFunction_(r,e,i)):"Polygon"===s&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),n&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),n&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),n=this.mode_;for(let r=0;r=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===n){t=this.sketchCoords_[0],t.splice(-2,1);const n=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}n.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),n=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,n)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,n),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new Id([e])):"MultiLineString"===this.type_?t.setGeometry(new bd([e])):"MultiPolygon"===this.type_&&t.setGeometry(new Md([e])),this.dispatchEvent(new hQ(aQ,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new hQ(lQ,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let n;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)n=this.sketchCoords_;else{if("Polygon"!==e)return;n=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&n.shift(),n.pop();for(let e=0;er?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let n=this.snapToVertex_(e,i);n||(n=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(al(t)):e.setGeometry(void 0):(e=new _d(t?al(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new _d(new qa(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=oh.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,n=this.getExtentInternal();let r=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?i=n[3]:t[1]==n[3]&&(i=n[1]),null!==e&&null!==i?[e,i]:null};if(r&&n){const t=r[0]==n[0]||r[0]==n[2]?r[0]:null,e=r[1]==n[1]||r[1]==n[3]?r[1]:null;null!==t&&null!==e?this.pointerHandler_=wQ(s(r)):null!==t?this.pointerHandler_=SQ(s([t,n[1]]),s([t,n[3]])):null!==e&&(this.pointerHandler_=SQ(s([n[0],e]),s([n[2],e])))}else r=i.getCoordinateFromPixelInternal(e),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=wQ(r);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==K(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return me(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new CQ(this.extent_))}};function BQ(t){return parseFloat(t)}function LQ(t){return function(t){return It(t,5)}(t).toString()}function MQ(t,e){return!isNaN(t)&&t!==BQ(LQ(e))}const TQ=class extends Dh{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,params:["x","y","z","r","l"],replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.params_=t.params.reduce(((t,e)=>(t[e]=!0,t)),{}),this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this)}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){e in this.params_&&t.set(this.getParamName_(e),i)}delete_(t,e){e in this.params_&&t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(Gs(t,Ah,this.updateUrl_,this),Gs(t.getLayerGroup(),bs,this.updateUrl_,this),Gs(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t=0;--t){const n=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===n&&this.dragSegments_.splice(t,1);e.remove(n)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),n={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),n)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n=0;--t)this.insertVertex_(r[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],n=i.geometry;if("Circle"===n.getType()){const e=n.getCenter(),r=i.featureSegments[0],s=i.featureSegments[1];r.segment[0]=e,r.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(q(e),r);let o=n;const a=Ae();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=ll(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(T(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new DQ(FQ,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const n=i||e.getCoordinateFromPixel(t),r=e.getView().getProjection(),s=function(t,e){return QQ(n,t,r)-QQ(n,e,r)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,((t,e,i)=>{i&&(i=new qa(pe(i.getCoordinates(),r)));const n=i||t.getGeometry();if("Point"===n.getType()&&t instanceof _d&&this.features_.getArray().includes(t)){a=n;const e=t.getGeometry().getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:a,segment:[e,e]}]}return!0}),{layerFilter:i})}if(!o){const t=me(R(_e(q(n,RQ),r),e.getView().getResolution()*this.pixelTolerance_,RQ),r);o=this.rBush_.getInExtent(t)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=kQ(n,i,r);const c=e.getPixelFromCoordinate(h);let u=Dt(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[Xs(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-n[0],this.delta_[1]=h[1]-n[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const n=e.getPixelFromCoordinate(l[0]),r=e.getPixelFromCoordinate(l[1]),s=Ft(c,n),a=Ft(c,r);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const g={};g[Xs(i.geometry)]=!0;for(let e=1,i=o.length;e=0;--o)r=t[o],u=r[0],g=Xs(u.feature),u.depth&&(g+="-"+u.depth.join("-")),g in e||(e[g]={}),0===r[1]?(e[g].right=u,e[g].index=u.index):1==r[1]&&(e[g].left=u,e[g].index=u.index+1);for(g in e){switch(c=e[g].right,l=e[g].left,a=e[g].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,n=s.getCoordinates(),i=n,d=!1,s.getType()){case"MultiLineString":n[u.depth[0]].length>2&&(n[u.depth[0]].splice(a,1),d=!0);break;case"LineString":n.length>2&&(n.splice(a,1),d=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),d=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(d){this.setGeometryCoordinates_(s,n);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(T(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return d}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,n){this.rBush_.forEachInExtent(t.getExtent(),(function(r){r.geometry===t&&(void 0===i||void 0===r.depth||ys(r.depth,i))&&r.index>e&&(r.index+=n)}))}},qQ="snap";class VQ extends us{constructor(t,e){super(t),this.vertex=e.vertex,this.vertexPixel=e.vertexPixel,this.feature=e.feature}}function zQ(t){return t.feature?t.feature:t.element?t.element:null}const YQ=[];const jQ=class extends kh{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=Is),e.stopDown||(e.stopDown=Es),super(e),this.on,this.once,this.un,this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new Sf,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=Xs(t),n=t.getGeometry();if(n){const e=this.GEOMETRY_SEGMENTERS_[n.getType()];if(e){this.indexedFeaturesExtents_[i]=n.getExtent([1/0,1/0,-1/0,-1/0]);const r=[];if(e(r,n),1===r.length)this.rBush_.insert(T(r[0]),{feature:t,segment:r[0]});else if(r.length>1){const e=r.map((t=>T(t))),i=r.map((e=>({feature:t,segment:e})));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=Gs(t,bs,this.handleFeatureChange_,this))}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel,this.dispatchEvent(new VQ(qQ,{vertex:t.coordinate,vertexPixel:t.pixel,feature:e.feature}))),super.handleEvent(t)}handleFeatureAdd_(t){const e=zQ(t);e&&this.addFeature(e)}handleFeatureRemove_(t){const e=zQ(t);e&&this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=Xs(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,n=Xs(t),r=this.indexedFeaturesExtents_[n];if(r){const e=this.rBush_,i=[];e.forEachInExtent(r,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(qs(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,n=this.getFeatures_();e&&(i.forEach(qs),i.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(qs),this.featureChangeListenerKeys_={}),super.setMap(t),t&&(this.features_?i.push(Gs(this.features_,Js,this.handleFeatureAdd_,this),Gs(this.features_,Zs,this.handleFeatureRemove_,this)):this.source_&&i.push(Gs(this.source_,bf,this.handleFeatureAdd_,this),Gs(this.source_,Mf,this.handleFeatureRemove_,this)),n.forEach((t=>this.addFeature(t))))}snapTo(t,e,i){const n=i.getView().getProjection(),r=fe(e,n),s=me(R(T([r]),i.getView().getResolution()*this.pixelTolerance_),n),o=this.rBush_.getInExtent(s),a=o.length;if(0===a)return null;let l,h,c=1/0;const u=this.pixelTolerance_*this.pixelTolerance_,g=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Ft(t,e)<=u)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])],feature:h}}return null};if(this.vertex_){for(let t=0;t{const i=fe(t,n),s=Ft(r,i);s{t.push([e])}))}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e{if(t instanceof _d&&this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}};function ZQ(t,e,i){const n=[];let r=t(0),s=t(1),o=e(r),a=e(s);const l=[s,r],h=[a,o],c=[1,0],u={};let g,d,A,p,f,m,_=1e5;for(;--_>0&&c.length>0;)A=c.pop(),r=l.pop(),o=h.pop(),m=A.toString(),m in u||(n.push(o[0],o[1]),u[m]=!0),p=c.pop(),s=l.pop(),a=h.pop(),f=(A+p)/2,g=t(f),d=e(g),At(d[0],d[1],o[0],o[1],a[0],a[1]){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_},this.latLabelStyleBase_=new Nm({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new Fm({font:"12px Calibri,sans-serif",textAlign:"right",fill:new wm({color:"rgba(0,0,0,1)"}),stroke:new bm({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=t=>{const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_},this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(Xo,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:tk,this.setSource(new kf({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new eo,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new Nm({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();var n,r,s;return this.projection_&&this.getSource().getWrapX()&>(i,this.projection_),this.loadedExtent_&&(n=this.loadedExtent_,r=i,s=e,Math.abs(n[0]-r[0])this.featurePool_.length;)a=new _d,this.featurePool_.push(a);const h=n.getFeaturesCollection();h.clear();let c,u,g=0;for(c=0,u=this.meridians_.length;cMath.PI/2}const g=sm(t);for(let t=a;t<=l;++t){let i,n,c,d,A=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(n=0,c=this.meridiansLabels_.length;n=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[dt(e[0],this.minX_,this.maxX_),dt(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=dt(h[0],this.minLon_,this.maxLon_),u=dt(h[1],this.minLat_,this.maxLat_);const g=this.maxLines_;let d,A,p,f,m=t;s||(m=[dt(t[0],this.minX_,this.maxX_),dt(t[1],this.minY_,this.maxY_),dt(t[2],this.minX_,this.maxX_),dt(t[3],this.minY_,this.maxY_)]);const _=ut(m,this.toLonLatTransform_,void 0,8);let y=_[3],I=_[2],E=_[1],C=_[0];if(s||(F(m,this.bottomLeft_)&&(C=this.minLon_,E=this.minLat_),F(m,this.bottomRight_)&&(I=this.maxLon_,E=this.minLat_),F(m,this.topLeft_)&&(C=this.minLon_,y=this.maxLat_),F(m,this.topRight_)&&(I=this.maxLon_,y=this.maxLat_),y=dt(y,u,this.maxLat_),I=dt(I,c,this.maxLon_),E=dt(E,this.minLat_,u),C=dt(C,this.minLon_,c)),c=Math.floor(c/r)*r,f=dt(c,this.minLon_,this.maxLon_),A=this.addMeridian_(f,E,y,n,t,0),d=0,s)for(;(f-=r)>=C&&d++n[s]&&(r=s,s=1);const o=Math.max(e[1],n[r]),a=Math.min(e[3],n[s]),l=dt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[n[r-1]+(n[s-1]-n[r-1])*(l-n[r])/(n[s]-n[r]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,n,r){const s=function(t,e,i,n,r){return ZQ((function(n){return[e+(i-e)*n,t]}),he(ee("EPSG:4326"),n),r)}(t,e,i,this.projection_,n);let o=this.parallels_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new wd(s,"XY"),o}getParallelPoint_(t,e,i){const n=t.getFlatCoordinates();let r=0,s=n.length-2;n[r]>n[s]&&(r=s,s=0);const o=Math.max(e[0],n[r]),a=Math.min(e[2],n[s]),l=dt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,n[r+1]+(n[s+1]-n[r+1])*(l-n[r])/(n[s]-n[r])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=ee("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const n=he(t,e);if(this.minLon_=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}};const ik=class extends Fg{constructor(t,e,i,n,r){super(t,e,i,void 0!==r?Cg:xg),this.loader_=void 0!==r?r:null,this.canvas_=n,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=wg):this.state=xg,this.changed()}load(){this.state==Cg&&(this.state=vg,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};const nk=class extends Zg{constructor(t){super(t),this.vectorRenderer_=new wy(t),this.layerImageRatio_=t.getImageRatio(),this.coordinateToVectorPixelTransform_=[1,0,0,1,0,0],this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(t){if(!this.vectorRenderer_)return Promise.resolve([]);const e=_o(this.coordinateToVectorPixelTransform_,_o(this.renderedPixelToCoordinateTransform_,t.slice()));return this.vectorRenderer_.getFeatures(e)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(t){const e=t.pixelRatio,i=t.viewState,n=i.resolution,r=t.viewHints,s=this.vectorRenderer_;let o=t.extent;1!==this.layerImageRatio_&&(o=o.slice(0),ct(o,this.layerImageRatio_));const a=at(o)/n,l=nt(o)/n;if(!r[Zo]&&!r[$o]&&!ht(o)){s.useContainer(null,null);const r=s.context,h=t.layerStatesArray[t.layerIndex],c=Object.assign({},h,{opacity:1}),u=Object.assign({},t,{declutterTree:new wf(9),extent:o,size:[a,l],viewState:Object.assign({},t.viewState,{rotation:0}),layerStatesArray:[c],layerIndex:0});let g=!0;const d=new ik(o,n,e,r.canvas,(function(t){s.prepareFrame(u)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(u,null)&&(s.renderDeclutter(u),g=!1),t())}));d.addEventListener(bs,(()=>{if(d.getState()!==xg)return;this.image_=g?null:d;const t=d.getPixelRatio(),n=Pp(d.getResolution())*e/t;this.renderedResolution=n,this.coordinateToVectorPixelTransform_=Eo(this.coordinateToVectorPixelTransform_,a/2,l/2,1/n,-1/n,0,-i.center[0],-i.center[1])})),d.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,n,r){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,n,r):super.forEachFeatureAtCoordinate(t,e,i,n,r)}};const rk=class extends Y_{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new nk(this)}};function sk(t,e){const i=`\n attribute vec2 ${dT};\n uniform mat4 ${gT.TILE_TRANSFORM};\n uniform float ${gT.TEXTURE_PIXEL_WIDTH};\n uniform float ${gT.TEXTURE_PIXEL_HEIGHT};\n uniform float ${gT.TEXTURE_RESOLUTION};\n uniform float ${gT.TEXTURE_ORIGIN_X};\n uniform float ${gT.TEXTURE_ORIGIN_Y};\n uniform float ${gT.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${dT};\n v_mapCoord = vec2(\n ${gT.TEXTURE_ORIGIN_X} + ${gT.TEXTURE_RESOLUTION} * ${gT.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${gT.TEXTURE_ORIGIN_Y} - ${gT.TEXTURE_RESOLUTION} * ${gT.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${gT.TILE_TRANSFORM} * vec4(${dT}, ${gT.DEPTH}, 1.0);\n }\n `,n={inFragmentShader:!0,variables:[],attributes:[],functions:{},bandCount:e,style:t},r=[];if(void 0!==t.color){const e=bT(n,t.color,fT.COLOR);r.push(`color = ${e};`)}if(void 0!==t.contrast){const e=bT(n,t.contrast,fT.NUMBER);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=bT(n,t.exposure,fT.NUMBER);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=bT(n,t.saturation,fT.NUMBER);r.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=bT(n,t.gamma,fT.NUMBER);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=bT(n,t.brightness,fT.NUMBER);r.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=n.variables.length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let e=0;e ${gT.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${gT.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${gT.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${r.join("\n")}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${gT.TRANSITION_ALPHA};\n }`,uniforms:s,paletteTextures:n.paletteTextures}}class ok extends Eg{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(zo,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=sk(this.style_,this.getSourceBandCount_());return new pT(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let n;for(let r=0,s=e.length;r{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}r=r&&"ready"==i}const s=this.renderSources(t,n);if(this.getRenderer().renderComplete&&r)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter((t=>!n.includes(t)));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=sk(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}ok.prototype.dispose;const ak=ok;const lk=class extends Tp{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:ee("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet,this.placeholderTiles_=t.placeholderTiles;const i="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_;fetch(i).then((t=>t.json())).then((t=>this.handleImageryMetadataResponse(t)))}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=Ip(this.getProjection()),r=this.hidpi_?2:1,s=e.imageWidth==e.imageHeight?e.imageWidth/r:[e.imageWidth/r,e.imageHeight/r],o=_p({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:s});this.tileGrid=o;const a=this.culture_,l=this.hidpi_,h=this.placeholderTiles_;if(this.tileUrlFunction=wp(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,r){if(!t)return;td(t[0],t[1],t[2],i);const s=new URL(n.replace("{quadkey}",function(t){const e=t[0],i=new Array(e);let n,r,s=1<>=1;return i.join("")}(i))),o=s.searchParams;return l&&(o.set("dpi","d1"),o.set("device","mobile")),!0===h?o.delete("n"):!1===h&&o.set("n","z"),s.toString()}}))),e.imageryProviders){const t=le(ee("EPSG:4326"),this.getProjection());this.setAttributions((i=>{const n=[],r=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(r.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(r.center,o)[0];return e.imageryProviders.map((function(e){let r=!1;const s=e.coverageAreas;for(let e=0,n=s.length;e=n.zoomMin&&a<=n.zoomMax){const e=n.bbox;if(lt(ut([e[1],e[0],e[3],e[2]],t),i.extent)){r=!0;break}}}r&&n.push(e.attribution)})),n.push('Terms of Use'),n}))}this.setState("ready")}};const hk=class extends Vb{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}};const ck=class extends Cp{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=_p({extent:Ip(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?xc(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?xc(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||ae(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,n,r){const s=this.getTileCacheForProjection(n),o=ed(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((t,e)=>{const i=xc(a.getTileSize(e)),n=this.getTileSize(e);return Math.max(n[0]/i[0],n[1]/i[1])}))),h=this.getTileGridForProjection(r),c=this.getTileGridForProjection(n),u=[t,e,i],g=this.getTileCoordForTileUrlFunction(u,n),d=Object.assign({sourceProj:r,sourceTileGrid:h,targetProj:n,targetTileGrid:c,tileCoord:u,wrappedTileCoord:g,pixelRatio:l,gutter:this.getGutterForProjection(r),getTileFunction:(t,e,i,n)=>this.getTile(t,e,i,n,r)},this.tileOptions),A=new tT(d);return A.key=this.getKey(),A}getTile(t,e,i,n,r){const s=this.getProjection();if(s&&r&&!ae(s,r))return this.getReprojTile_(t,e,i,r,s);const o=this.getTileSize(t),a=ed(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const h=Object.assign({tileCoord:[t,e,i],loader:function(){return vs((function(){return l(t,e,i)}))},size:o},this.tileOptions),c=new $M(h);return c.key=this.getKey(),c.addEventListener(bs,this.handleTileChange_),this.tileCache.set(a,c),c}handleTileChange_(t){const e=t.target,i=Xs(e),n=e.getState();let r;n==xh?(this.tileLoadingKeys_[i]=!0,r=gp):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==Sh?Ap:n==wh?dp:void 0),r&&this.dispatchEvent(new Ep(r,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||ae(e,t)))return this.tileGrid;const i=Xs(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=mp(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=ee(t);if(i){const t=Xs(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||ae(e,t))return this.tileCache;const i=Xs(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new up(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const n=this.tileCacheForProjection_[t];n.expireCache(n==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}};var uk=i(499);const gk=new Map;function dk(t,e){Array.isArray(t)||(t=[t]),t.forEach((t=>gk.set(t,e)))}async function Ak(t){const e=gk.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);return new(await e())(t)}dk([void 0,1],(()=>Promise.resolve().then(i.bind(i,321)).then((t=>t.default)))),dk(5,(()=>Promise.resolve().then(i.bind(i,672)).then((t=>t.default)))),dk(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),dk(7,(()=>Promise.resolve().then(i.bind(i,347)).then((t=>t.default)))),dk([8,32946],(()=>Promise.resolve().then(i.bind(i,522)).then((t=>t.default)))),dk(32773,(()=>Promise.resolve().then(i.bind(i,411)).then((t=>t.default)))),dk(34887,(()=>Promise.resolve().then(i.bind(i,293)).then((async t=>(await t.zstd.init(),t))).then((t=>t.default)))),dk(50001,(()=>Promise.resolve().then(i.bind(i,588)).then((t=>t.default))));const pk="undefined"!=typeof navigator&&navigator.hardwareConcurrency||2;const fk=class{constructor(t=pk,e){this.workers=null,this._awaitingDecoder=null,this.size=t,this.messageId=0,t&&(this._awaitingDecoder=e?Promise.resolve(e):new Promise((t=>{Promise.resolve().then(i.bind(i,294)).then((e=>{t(e.create)}))})),this._awaitingDecoder.then((e=>{this._awaitingDecoder=null,this.workers=[];for(let i=0;ii.decode(t,e))):new Promise((i=>{const n=this.workers.find((t=>t.idle))||this.workers[Math.floor(Math.random()*this.size)];n.idle=!1;const r=this.messageId++,s=t=>{t.data.id===r&&(n.idle=!0,i(t.data.decoded),n.worker.removeEventListener("message",s))};n.worker.addEventListener("message",s),n.worker.postMessage({fileDirectory:t,buffer:e,id:r},[e])}))}destroy(){this.workers&&(this.workers.forEach((t=>{t.worker.terminate()})),this.workers=null)}};function mk(t){return(e,...i)=>yk(t,e,i)}function _k(t,e){return mk(vk(t,e).get)}const{apply:yk,construct:Ik,defineProperty:Ek,get:Ck,getOwnPropertyDescriptor:vk,getPrototypeOf:xk,has:wk,ownKeys:Sk,set:bk,setPrototypeOf:Bk}=Reflect,{EPSILON:Lk,MAX_SAFE_INTEGER:Mk,isFinite:Tk,isNaN:Rk}=Number,{iterator:Nk,species:Pk,toStringTag:Fk,for:Dk}=Symbol,Ok=Object,{create:Qk,defineProperty:kk,freeze:Gk,is:Uk}=Ok,qk=Ok.prototype,Vk=(qk.__lookupGetter__&&mk(qk.__lookupGetter__),Ok.hasOwn||mk(qk.hasOwnProperty)),zk=Array,Yk=(zk.isArray,zk.prototype),jk=(mk(Yk.join),mk(Yk.push),mk(Yk.toLocaleString),Yk[Nk]),Hk=mk(jk),{abs:Xk,trunc:Wk}=Math,Kk=ArrayBuffer,Jk=(Kk.isView,Kk.prototype),Zk=(mk(Jk.slice),_k(Jk,"byteLength"),"undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null),$k=(Zk&&_k(Zk.prototype,"byteLength"),xk(Uint8Array)),tG=($k.from,$k.prototype),eG=(tG[Nk],mk(tG.keys),mk(tG.values),mk(tG.entries),mk(tG.set),mk(tG.reverse),mk(tG.fill),mk(tG.copyWithin),mk(tG.sort),mk(tG.slice),mk(tG.subarray),_k(tG,"buffer"),_k(tG,"byteOffset"),_k(tG,"length"),_k(tG,Fk),Uint8Array),iG=Uint16Array,nG=Uint32Array,rG=Float32Array,sG=xk([][Nk]()),oG=mk(sG.next),aG=mk(function*(){}().next),lG=xk(sG),hG=DataView.prototype,cG=mk(hG.getUint16),uG=(mk(hG.setUint16),TypeError),gG=WeakSet.prototype,dG=(mk(gG.add),mk(gG.has),WeakMap),AG=dG.prototype,pG=mk(AG.get),fG=(mk(AG.has),mk(AG.set)),mG=new dG,_G=Qk(null,{next:{value:function(){const t=pG(mG,this);return oG(t)}},[Nk]:{value:function(){return this}}});const yG=new dG,IG=Qk(lG,{next:{value:function(){const t=pG(yG,this);return aG(t)},writable:!0,configurable:!0}});for(const t of Sk(sG))"next"!==t&&kk(IG,t,vk(sG,t));const EG=new Kk(4),CG=new rG(EG),vG=new nG(EG),xG=new iG(512),wG=new eG(512);for(let t=0;t<256;++t){const e=t-127;e<-27?(xG[t]=0,xG[256|t]=32768,wG[t]=24,wG[256|t]=24):e<-14?(xG[t]=1024>>-e-14,xG[256|t]=1024>>-e-14|32768,wG[t]=-e-1,wG[256|t]=-e-1):e<=15?(xG[t]=e+15<<10,xG[256|t]=e+15<<10|32768,wG[t]=13,wG[256|t]=13):e<128?(xG[t]=31744,xG[256|t]=64512,wG[t]=24,wG[256|t]=24):(xG[t]=31744,xG[256|t]=64512,wG[t]=13,wG[256|t]=13)}const SG=new nG(2048);for(let t=1;t<1024;++t){let e=t<<13,i=0;for(;0==(8388608&e);)e<<=1,i-=8388608;e&=-8388609,i+=947912704,SG[t]=e|i}for(let t=1024;t<2048;++t)SG[t]=939524096+(t-1024<<13);const bG=new nG(64);for(let t=1;t<31;++t)bG[t]=t<<23;bG[31]=1199570944,bG[32]=2147483648;for(let t=33;t<63;++t)bG[t]=2147483648+(t-32<<23);bG[63]=3347054592;const BG=new iG(64);for(let t=1;t<64;++t)32!==t&&(BG[t]=1024);function LG(t,e,...i){return function(t){const e=t>>10;return vG[0]=SG[BG[e]+(1023&t)]+bG[e],CG[0]}(cG(t,e,...function(t){if(t[Nk]===jk&&sG.next===oG)return t;const e=Qk(_G);return fG(mG,e,Hk(t)),e}(i)))}var MG=i(330),TG=i(602);function RG(t,e,i,n=1){return new(Object.getPrototypeOf(t).constructor)(e*i*n)}function NG(t,e,i){return(1-i)*t+i*e}function PG(t,e,i,n,r,s="nearest"){switch(s.toLowerCase()){case"nearest":return function(t,e,i,n,r){const s=e/n,o=i/r;return t.map((t=>{const a=RG(t,n,r);for(let l=0;l{const a=RG(t,n,r);for(let l=0;l=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[t]/8)}getReaderForSample(t){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,i=this.fileDirectory.BitsPerSample[t];switch(e){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(t,e){return LG(this,t,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(t=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1}getBitsPerSample(t=0){return this.fileDirectory.BitsPerSample[t]}getArrayForSample(t,e){return OG(this.getSampleFormat(t),this.getBitsPerSample(t),e)}async getTileOrStrip(t,e,i,n,r){const s=Math.ceil(this.getWidth()/this.getTileWidth()),o=Math.ceil(this.getHeight()/this.getTileHeight());let a;const{tiles:l}=this;let h,c;1===this.planarConfiguration?a=e*s+t:2===this.planarConfiguration&&(a=i*s*o+e*s+t),this.isTiled?(h=this.fileDirectory.TileOffsets[a],c=this.fileDirectory.TileByteCounts[a]):(h=this.fileDirectory.StripOffsets[a],c=this.fileDirectory.StripByteCounts[a]);const u=(await this.source.fetch([{offset:h,length:c}],r))[0];let g;return null!==l&&l[a]?g=l[a]:(g=(async()=>{let t=await n.decode(this.fileDirectory,u);const i=this.getSampleFormat(),r=this.getBitsPerSample();return function(t,e){return(1!==t&&2!==t||!(e<=32)||e%8!=0)&&(3!==t||16!==e&&32!==e&&64!==e)}(i,r)&&(t=function(t,e,i,n,r,s,o){const a=new DataView(t),l=2===i?1:n,h=OG(e,r,2===i?o*s:o*s*n),c=parseInt("1".repeat(r),2);if(1===e){let t;t=1===i?n*r:r;let e=s*t;0!=(7&e)&&(e=e+7&-8);for(let t=0;t>8-r-d&c;else if(d+r<=16)h[u]=a.getUint16(g)>>16-r-d&c;else if(d+r<=24){const t=a.getUint16(g)<<8|a.getUint8(g+2);h[u]=t>>24-r-d&c}else h[u]=a.getUint32(g)>>32-r-d&c}}}}return h.buffer}(t,i,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),t})(),null!==l&&(l[a]=g)),{x:t,y:e,sample:i,data:await g}}async _readRaster(t,e,i,n,r,s,o,a,l){const h=this.getTileWidth(),c=this.getTileHeight(),u=this.getWidth(),g=this.getHeight(),d=Math.max(Math.floor(t[0]/h),0),A=Math.min(Math.ceil(t[2]/h),Math.ceil(u/h)),p=Math.max(Math.floor(t[1]/c),0),f=Math.min(Math.ceil(t[3]/c),Math.ceil(g/c)),m=t[2]-t[0];let _=this.getBytesPerPixel();const y=[],I=[];for(let t=0;t{const s=r.data,o=new DataView(s),a=this.getBlockHeight(r.y),l=r.y*c,d=r.x*h,p=l+a,f=(r.x+1)*h,E=I[A],v=Math.min(a,a-(p-t[3]),g-l),x=Math.min(h,h-(f-t[2]),u-d);for(let r=Math.max(0,t[1]-l);rh[2]||h[1]>h[3])throw new Error("Invalid subsets");const c=(h[2]-h[0])*(h[3]-h[1]),u=this.getSamplesPerPixel();if(e&&e.length){for(let t=0;t=u)return Promise.reject(new RangeError(`Invalid sample index '${e[t]}'.`))}else for(let t=0;tl[2]||l[1]>l[3])throw new Error("Invalid subsets");const h=this.fileDirectory.PhotometricInterpretation;if(h===uk.Ie.RGB){let l=[0,1,2];if(this.fileDirectory.ExtraSamples!==uk.pd.Unspecified&&o){l=[];for(let t=0;t>24)/500+a,h=a-(t[e+2]<<24>>24)/200;l=.95047*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),a=1*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),h=1.08883*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),r=3.2406*l+-1.5372*a+-.4986*h,s=-.9689*l+1.8758*a+.0415*h,o=.0557*l+-.204*a+1.057*h,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,n[i]=255*Math.max(0,Math.min(1,r)),n[i+1]=255*Math.max(0,Math.min(1,s)),n[i+2]=255*Math.max(0,Math.min(1,o))}return n}(d);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const t=new Uint8Array(p.length/3),e=new Uint8Array(p.length/3),i=new Uint8Array(p.length/3);for(let n=0,r=0;nvoid 0===MG(t,"sample"))):n.filter((e=>Number(MG(e,"sample"))===t));for(let t=0;t[s+t*e+n*i,h+o*e+a*i])),u=c.map((t=>t[0])),g=c.map((t=>t[1]));return[Math.min(...u),Math.min(...g),Math.max(...u),Math.max(...g)]}{const t=this.getOrigin(),n=this.getResolution(),r=t[0],s=t[1],o=r+n[0]*i,a=s+n[1]*e;return[Math.min(r,o),Math.min(s,a),Math.max(r,o),Math.max(s,a)]}}};class kG{constructor(t){this._dataView=new DataView(t)}get buffer(){return this._dataView.buffer}getUint64(t,e){const i=this.getUint32(t,e),n=this.getUint32(t+4,e);let r;if(e){if(r=i+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*i+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}getInt64(t,e){let i=0;const n=(128&this._dataView.getUint8(t+(e?7:0)))>0;let r=!0;for(let s=0;s<8;s++){let o=this._dataView.getUint8(t+(e?s:7-s));n&&(r?0!==o&&(o=255&~(o-1),r=!1):o=255&~o),i+=o*256**s}return n&&(i=-i),i}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat16(t,e){return LG(this._dataView,t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}}class GG{constructor(t,e,i,n){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=i,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){const e=this.readUint32(t),i=this.readUint32(t+4);let n;if(this._littleEndian){if(n=e+2**32*i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}if(n=2**32*e+i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}readInt64(t){let e=0;const i=(128&this._dataView.getUint8(t+(this._littleEndian?7:0)))>0;let n=!0;for(let r=0;r<8;r++){let s=this._dataView.getUint8(t+(this._littleEndian?r:7-r));i&&(n?0!==s&&(s=255&~(s-1),n=!1):s=255&~s),e+=s*256**r}return i&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}}const UG="\r\n\r\n";function qG(t){if(void 0!==Object.fromEntries)return Object.fromEntries(t);const e={};for(const[i,n]of t)e[i.toLowerCase()]=n;return e}function VG(t){const e=t.split("\r\n").map((t=>{const e=t.split(":").map((t=>t.trim()));return e[0]=e[0].toLowerCase(),e}));return qG(e)}function zG(t){let e,i,n;return t&&([,e,i,n]=t.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),i=parseInt(i,10),n=parseInt(n,10)),{start:e,end:i,total:n}}class YG{async fetch(t,e=void 0){return Promise.all(t.map((t=>this.fetchSlice(t,e))))}async fetchSlice(t){throw new Error(`fetching of slice ${t} not possible, not implemented`)}get fileSize(){return null}async close(){}}class jG extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof t.maxAge&&0===t.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if("function"==typeof this.onEviction)for(const[e,i]of t)this.onEviction(e,i.value)}_deleteIfExpired(t,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(t,e.value),this.delete(t))}_getOrDeleteIfExpired(t,e){if(!1===this._deleteIfExpired(t,e))return e.value}_getItemValue(t,e){return e.expiry?this._getOrDeleteIfExpired(t,e):e.value}_peek(t,e){const i=e.get(t);return this._getItemValue(t,i)}_set(t,e){this.cache.set(t,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,e){this.oldCache.delete(t),this._set(t,e)}*_entriesAscending(){for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield t)}}for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield t)}}get(t){if(this.cache.has(t)){const e=this.cache.get(t);return this._getItemValue(t,e)}if(this.oldCache.has(t)){const e=this.oldCache.get(t);if(!1===this._deleteIfExpired(t,e))return this._moveToRecent(t,e),e.value}}set(t,e,{maxAge:i=this.maxAge}={}){const n="number"==typeof i&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return this.cache.has(t)?this.cache.set(t,{value:e,expiry:n}):this._set(t,{value:e,expiry:n}),this}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):!!this.oldCache.has(t)&&!this._deleteIfExpired(t,this.oldCache.get(t))}peek(t){return this.cache.has(t)?this._peek(t,this.cache):this.oldCache.has(t)?this._peek(t,this.oldCache):void 0}delete(t){const e=this.cache.delete(t);return e&&this._size--,this.oldCache.delete(t)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],i=e.length-t;i<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(i>0&&this._emitEvictions(e.slice(0,i)),this.oldCache=new Map(e.slice(i)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}}}*entriesDescending(){let t=[...this.cache];for(let e=t.length-1;e>=0;--e){const i=t[e],[n,r]=i;!1===this._deleteIfExpired(n,r)&&(yield[n,r.value])}t=[...this.oldCache];for(let e=t.length-1;e>=0;--e){const i=t[e],[n,r]=i;if(!this.cache.has(n)){!1===this._deleteIfExpired(n,r)&&(yield[n,r.value])}}}*entriesAscending(){for(const[t,e]of this._entriesAscending())yield[t,e.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(const e of this.oldCache.keys())this.cache.has(e)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,e=this){for(const[i,n]of this.entriesAscending())t.call(e,n,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class HG extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,HG),this.name="AbortError"}}class XG extends Error{constructor(t,e){super(e),this.errors=t,this.message=e,this.name="AggregateError"}}const WG=XG;class KG{constructor(t,e,i=null){this.offset=t,this.length=e,this.data=i}get top(){return this.offset+this.length}}class JG{constructor(t,e,i){this.offset=t,this.length=e,this.blockIds=i}}class ZG extends YG{constructor(t,{blockSize:e=65536,cacheSize:i=100}={}){super(),this.source=t,this.blockSize=e,this.blockCache=new jG({maxSize:i,onEviction:(t,e)=>{this.evictedBlocks.set(t,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(t,e){const i=[],n=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:s}of t){let t=e+s;const{fileSize:o}=this;null!==o&&(t=Math.min(t,o));for(let s=Math.floor(e/this.blockSize)*this.blockSize;ssetTimeout(e,t)))}(),this.fetchBlocks(e);const s=[];for(const t of n)this.blockRequests.has(t)&&s.push(this.blockRequests.get(t));await Promise.allSettled(i),await Promise.allSettled(s);const o=[],a=r.filter((t=>this.abortedBlockIds.has(t)||!this.blockCache.has(t)));if(a.forEach((t=>this.blockIdsToFetch.add(t))),a.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const t of a){const e=this.blockRequests.get(t);if(!e)throw new Error(`Block ${t} is not in the block requests`);o.push(e)}await Promise.allSettled(o)}if(e&&e.aborted)throw new HG("Request was aborted");const l=r.map((t=>this.blockCache.get(t)||this.evictedBlocks.get(t))),h=l.filter((t=>!t));if(h.length)throw new WG(h,"Request failed");const c=new Map(function(t,e){const i=Array.isArray(t)?t:Array.from(t),n=Array.isArray(e)?e:Array.from(e);return i.map(((t,e)=>[t,n[e]]))}(r,l));return this.readSliceData(t,c)}fetchBlocks(t){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(e,t);for(let n=0;n{try{const t=(await i)[n],r=e*this.blockSize,s=r-t.offset,o=Math.min(s+this.blockSize,t.data.byteLength),a=t.data.slice(s,o),l=new KG(r,a.byteLength,a,e);this.blockCache.set(e,l),this.abortedBlockIds.delete(e)}catch(i){if("AbortError"!==i.name)throw i;i.signal=t,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(t){const e=Array.from(t).sort(((t,e)=>t-e));if(0===e.length)return[];let i=[],n=null;const r=[];for(const t of e)null===n||n+1===t?(i.push(t),n=t):(r.push(new JG(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[t],n=t);return r.push(new JG(i[0]*this.blockSize,i.length*this.blockSize,i)),r}readSliceData(t,e){return t.map((t=>{let i=t.offset+t.length;null!==this.fileSize&&(i=Math.min(this.fileSize,i));const n=Math.floor(t.offset/this.blockSize),r=Math.floor(i/this.blockSize),s=new ArrayBuffer(t.length),o=new Uint8Array(s);for(let s=n;s<=r;++s){const n=e.get(s),r=n.offset-t.offset;let a,l=0,h=0;r<0?l=-r:r>0&&(h=r),a=n.top-i<0?n.length-l:i-n.offset-l;const c=new Uint8Array(n.data,l,a);o.set(c,h)}return s}))}}class $G{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(t){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class tU{constructor(t){this.url=t}async request({headers:t,signal:e}={}){throw new Error("request is not implemented")}}class eU extends $G{constructor(t){super(),this.response=t}get status(){return this.response.status}getHeader(t){return this.response.headers.get(t)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class iU extends tU{constructor(t,e){super(t),this.credentials=e}async request({headers:t,signal:e}={}){const i=await fetch(this.url,{headers:t,credentials:this.credentials,signal:e});return new eU(i)}}class nU extends $G{constructor(t,e){super(),this.xhr=t,this.data=e}get status(){return this.xhr.status}getHeader(t){return this.xhr.getResponseHeader(t)}async getData(){return this.data}}class rU extends tU{constructRequest(t,e){return new Promise(((i,n)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,i]of Object.entries(t))r.setRequestHeader(e,i);r.onload=()=>{const t=r.response;i(new nU(r,t))},r.onerror=n,r.onabort=()=>n(new HG("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}var sU=i(752),oU=i(640),aU=i(630);class lU extends $G{constructor(t,e){super(),this.response=t,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(t){return this.response.headers[t]}async getData(){return await this.dataPromise}}class hU extends tU{constructor(t){super(t),this.parsedUrl=aU.parse(this.url),this.httpApi="http:"===this.parsedUrl.protocol?sU:oU}constructRequest(t,e){return new Promise(((i,n)=>{const r=this.httpApi.get({...this.parsedUrl,headers:t},(t=>{const e=new Promise((e=>{const i=[];t.on("data",(t=>{i.push(t)})),t.on("end",(()=>{const t=Buffer.concat(i).buffer;e(t)})),t.on("error",n)}));i(new lU(t,e))}));r.on("error",n),e&&(e.aborted&&r.destroy(new HG("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new HG("Request aborted")))))}))}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}class cU extends YG{constructor(t,e,i,n){super(),this.client=t,this.headers=e,this.maxRanges=i,this.allowFullFile=n,this._fileSize=null}async fetch(t,e){return this.maxRanges>=t.length?this.fetchSlices(t,e):(this.maxRanges>0&&t.length,Promise.all(t.map((t=>this.fetchSlice(t,e)))))}async fetchSlices(t,e){const i=await this.client.request({headers:{...this.headers,Range:`bytes=${t.map((({offset:t,length:e})=>`${t}-${t+e}`)).join(",")}`},signal:e});if(i.ok){if(206===i.status){const{type:n,params:r}=function(t){const[e,...i]=t.split(";").map((t=>t.trim()));return{type:e,params:qG(i.map((t=>t.split("="))))}}(i.getHeader("content-type"));if("multipart/byteranges"===n){const t=function(t,e){let i=null;const n=new TextDecoder("ascii"),r=[],s=`--${e}`,o=`${s}--`;for(let e=0;e<10;++e)n.decode(new Uint8Array(t,e,s.length))===s&&(i=e);if(null===i)throw new Error("Could not find initial boundary");for(;i1){const i=await Promise.all(t.slice(1).map((t=>this.fetchSlice(t,e))));return h.concat(i)}return h}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await i.getData();return this._fileSize=t.byteLength,[{data:t,offset:0,length:t.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(t,e){const{offset:i,length:n}=t,r=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+n}`},signal:e});if(r.ok){if(206===r.status){const t=await r.getData(),{total:e}=zG(r.getHeader("content-range"));return this._fileSize=e||null,{data:t,offset:i,length:n}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await r.getData();return this._fileSize=t.byteLength,{data:t,offset:0,length:t.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function uU(t,{blockSize:e,cacheSize:i}){return null===e?t:new ZG(t,{blockSize:e,cacheSize:i})}function gU(t,{forceXHR:e=!1,...i}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(t,{headers:e={},maxRanges:i=0,allowFullFile:n=!1,...r}={}){const s=new rU(t);return uU(new cU(s,e,i,n),r)}(t,i):function(t,{headers:e={},maxRanges:i=0,allowFullFile:n=!1,...r}={}){const s=new hU(t);return uU(new cU(s,e,i,n),r)}(t,i):function(t,{headers:e={},credentials:i,maxRanges:n=0,allowFullFile:r=!1,...s}={}){const o=new iU(t,i);return uU(new cU(o,e,n,r),s)}(t,i)}class dU extends YG{constructor(t){super(),this.file=t}async fetchSlice(t,e){return new Promise(((i,n)=>{const r=this.file.slice(t.offset,t.offset+t.length),s=new FileReader;s.onload=t=>i(t.target.result),s.onerror=n,s.onabort=n,s.readAsArrayBuffer(r),e&&e.addEventListener("abort",(()=>s.abort()))}))}}function AU(t){switch(t){case uk.sf.BYTE:case uk.sf.ASCII:case uk.sf.SBYTE:case uk.sf.UNDEFINED:return 1;case uk.sf.SHORT:case uk.sf.SSHORT:return 2;case uk.sf.LONG:case uk.sf.SLONG:case uk.sf.FLOAT:case uk.sf.IFD:return 4;case uk.sf.RATIONAL:case uk.sf.SRATIONAL:case uk.sf.DOUBLE:case uk.sf.LONG8:case uk.sf.SLONG8:case uk.sf.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function pU(t,e,i,n){let r=null,s=null;const o=AU(e);switch(e){case uk.sf.BYTE:case uk.sf.ASCII:case uk.sf.UNDEFINED:r=new Uint8Array(i),s=t.readUint8;break;case uk.sf.SBYTE:r=new Int8Array(i),s=t.readInt8;break;case uk.sf.SHORT:r=new Uint16Array(i),s=t.readUint16;break;case uk.sf.SSHORT:r=new Int16Array(i),s=t.readInt16;break;case uk.sf.LONG:case uk.sf.IFD:r=new Uint32Array(i),s=t.readUint32;break;case uk.sf.SLONG:r=new Int32Array(i),s=t.readInt32;break;case uk.sf.LONG8:case uk.sf.IFD8:r=new Array(i),s=t.readUint64;break;case uk.sf.SLONG8:r=new Array(i),s=t.readInt64;break;case uk.sf.RATIONAL:r=new Uint32Array(2*i),s=t.readUint32;break;case uk.sf.SRATIONAL:r=new Int32Array(2*i),s=t.readInt32;break;case uk.sf.FLOAT:r=new Float32Array(i),s=t.readFloat32;break;case uk.sf.DOUBLE:r=new Float64Array(i),s=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==uk.sf.RATIONAL&&e!==uk.sf.SRATIONAL)for(let e=0;et.getWidth()-e.getWidth()));for(let e=0;en||s&&s>o)break}}let u=e;if(o){const[t,e]=a.getOrigin(),[i,n]=l.getResolution(a);u=[Math.round((o[0]-t)/i),Math.round((o[1]-e)/n),Math.round((o[2]-t)/i),Math.round((o[3]-e)/n)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...t,window:u})}}class yU extends _U{constructor(t,e,i,n,r={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=i,this.firstIFDOffset=n,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){const i=this.bigTiff?4048:1024;return new GG((await this.source.fetch([{offset:t,length:void 0!==e?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){const e=this.bigTiff?20:12,i=this.bigTiff?8:2;let n=await this.getSlice(t);const r=this.bigTiff?n.readUint64(t):n.readUint16(t),s=r*e+(this.bigTiff?16:6);n.covers(t,s)||(n=await this.getSlice(t,s));const o={};let a=t+(this.bigTiff?8:2);for(let t=0;t{const e=await this.ifdRequests[t-1];if(0===e.nextIFDByteOffset)throw new mU(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){const e=await this.requestIFD(t);return new QG(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(t){if(!(t instanceof mU))throw t;e=!1}return t}async getGhostValues(){const t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let i=await this.getSlice(t,130);if(e===pU(i,uk.sf.ASCII,30,t)){const e=pU(i,uk.sf.ASCII,130,t).split("\n")[0],n=Number(e.split("=")[1].split(" ")[0])+e.length;n>130&&(i=await this.getSlice(t,n));const r=pU(i,uk.sf.ASCII,n,t);this.ghostValues={},r.split("\n").filter((t=>t.length>0)).map((t=>t.split("="))).forEach((([t,e])=>{this.ghostValues[t]=e}))}return this.ghostValues}static async fromSource(t,e,i){const n=(await t.fetch([{offset:0,length:1024}],i))[0],r=new kG(n),s=r.getUint16(0,0);let o;if(18761===s)o=!0;else{if(19789!==s)throw new TypeError("Invalid byte order value.");o=!1}const a=r.getUint16(2,o);let l;if(42===a)l=!1;else{if(43!==a)throw new TypeError("Invalid magic number.");l=!0;if(8!==r.getUint16(4,o))throw new Error("Unsupported offset byte-size.")}const h=l?r.getUint64(8,o):r.getUint32(4,o);return new yU(t,o,l,h,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}class IU extends _U{constructor(t,e){super(),this.mainFile=t,this.overviewFiles=e,this.imageFiles=[t].concat(e),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){const t=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map((t=>t.parseFileDirectoryAt(t.firstIFDOffset))));return this.fileDirectoriesPerFile=await Promise.all(t),this.fileDirectoriesPerFile}async getImage(t=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let e=0,i=0;for(let n=0;nt.getImageCount())));return this.imageCounts=await Promise.all(t),this.imageCount=this.imageCounts.reduce(((t,e)=>t+e),0),this.imageCount}}async function EU(t,e){return yU.fromSource(new dU(t),e)}function CU(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,n=uk.Ie;return i===n.CMYK||i===n.YCbCr||i===n.CIELab||i===n.ICCLab}const vU="STATISTICS_MAXIMUM",xU="STATISTICS_MINIMUM";let wU;function SU(){return wU||(wU=new fk),wU}function bU(t){try{return t.getBoundingBox()}catch(e){return[0,0,t.getWidth(),t.getHeight()]}}function BU(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.getHeight()]}}function LU(t,e){try{return t.getResolution(e)}catch(i){return[e.getWidth()/t.getWidth(),e.getHeight()/t.getHeight()]}}function MU(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&32767!==e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=ee(t);if(!i){const n=h(e.ProjLinearUnitsGeoKey);n&&(i=new u({code:t,units:n}))}return i}if(e.GeographicTypeGeoKey&&32767!==e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=ee(t);if(!i){const n=h(e.GeogAngularUnitsGeoKey);n&&(i=new u({code:t,units:n}))}return i}return null}function TU(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let n=0;nyU.fromSource(gU(t,i)))));return new IU(r,s)}(t.url,t.overviews,e):async function(t,e={},i){return yU.fromSource(gU(t,e),i)}(t.url,e),i.then(TU)}function NU(t,e,i,n,r){if(Array.isArray(t)){const s=t.length;if(!Array.isArray(e)||s!=e.length){const t=new Error(n);throw r(t),t}for(let o=0;oi*t)throw new Error(n)}function PU(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class FU extends ck{constructor(t){super({state:"loading",tileGrid:null,projection:t.projection||null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map((t=>t.url)).join(","));const i=this,n=new Array(e);for(let t=0;t=0;--t){const i=MU(e[t]);if(i){this.projection=i;break}}}configure_(t){let e,i,n,r,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let h=0;const c=t.length;for(let u=0;u{4==(4&(t.fileDirectory.NewSubfileType||0))?g.push(t):c.push(t)}));const d=c.length;if(g.length>0&&g.length!==d)throw new Error(`Expected one mask per image found ${g.length} masks and ${d} images`);let A,p;const f=new Array(d),m=new Array(d),_=new Array(d);a[u]=new Array(d),l[u]=new Array(d);for(let t=0;t_.length&&(h=s.length-_.length);const t=s[s.length-1]/_[_.length-1];this.resolutionFactors_[u]=t;const e=_.map((e=>e*t)),i=`Resolution mismatch for source ${u}, got [${e}] but expected [${s}]`;NU(s.slice(h,s.length),e,.02,i,this.viewRejector)}else s=_,this.resolutionFactors_[u]=1;n?NU(n.slice(h,n.length),m,.01,`Tile size mismatch for source ${u}`,this.viewRejector):n=m,r?NU(r.slice(h,r.length),f,0,`Tile size mismatch for source ${u}`,this.viewRejector):r=f,this.sourceImagery_[u]=c.reverse(),this.sourceMasks_[u]=g.reverse()}for(let t=0,e=this.sourceImagery_.length;tl||s>l;)o.push([Math.ceil(r/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=r,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:throw new Error("Unknown `tierSizeCalculation` configured")}o.push([1,1]),o.reverse();const h=[n],c=[0];for(let t=1,e=o.length;t{A=a,this.changed()})),_.src=m}};function kU(t){return t.toLocaleString("en",{maximumFractionDigits:10})}const GU=class extends Tp{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const n=e.version||gO,r=e.sizes||[],s=e.size;go(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,"Missing or invalid `size`");const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==uO?"native":"default");let g=e.resolutions||[];const d=e.supports||[],A=e.extent||[0,-a,o,0],p=null!=r&&Array.isArray(r)&&r.length>0,f=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),m=null!=d&&Array.isArray(d)&&(d.includes("regionByPx")||d.includes("regionByPct"))&&(d.includes("sizeByWh")||d.includes("sizeByH")||d.includes("sizeByW")||d.includes("sizeByPct"));let _,y,I;if(g.sort((function(t,e){return e-t})),f||m)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(_=l,y=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(_=l[0],y=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(_=l[0],y=l[1]):null==l[0]&&Number.isInteger(l[1])&&(_=l[1],y=l[1])))),void 0!==_&&void 0!==y||(_=ia,y=ia),0==g.length){I=Math.max(Math.ceil(Math.log(o/_)/Math.LN2),Math.ceil(Math.log(a/y)/Math.LN2));for(let t=I;t>=0;t--)g.push(Math.pow(2,t))}else{const t=Math.max(...g);I=Math.round(Math.log(t)/Math.LN2)}else if(_=o,y=a,g=[],p){r.sort((function(t,e){return t[0]-e[0]})),I=-1;const t=[];for(let e=0;e0&&g[g.length-1]==i?t.push(e):(g.push(i),I++)}if(t.length>0)for(let e=0;eI)return;const E=t[1],C=t[2],v=g[A];if(!(void 0===E||void 0===C||void 0===v||E<0||Math.ceil(o/v/_)<=E||C<0||Math.ceil(a/v/y)<=C)){if(m||f){const t=E*_*v,e=C*y*v;let i=_*v,r=y*v,s=_,c=y;if(t+i>o&&(i=o-t),e+r>a&&(r=a-e),t+_*v>o&&(s=Math.floor((o-t+v-1)/v)),e+y*v>a&&(c=Math.floor((a-e+v-1)/v)),0==t&&i==o&&0==e&&r==a)l="full";else if(!m||d.includes("regionByPx"))l=t+","+e+","+i+","+r;else if(d.includes("regionByPct")){l="pct:"+kU(t/o*100)+","+kU(e/a*100)+","+kU(i/o*100)+","+kU(r/a*100)}n!=dO||m&&!d.includes("sizeByWh")?!m||d.includes("sizeByW")?h=s+",":d.includes("sizeByH")?h=","+c:d.includes("sizeByWh")?h=s+","+c:d.includes("sizeByPct")&&(h="pct:"+kU(100/v)):h=s+","+c}else if(l="full",p){const t=r[A][0],e=r[A][1];h=n==dO?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=n==dO?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}};function UU(t,e,i,n,r,s){const o=r.getCode().split(/:(?=\d+$)/).pop(),a=i/n,l=[Et(at(e)/a,Rp),Et(nt(e)/a,Rp)];s.SIZE=l[0]+","+l[1],s.BBOX=e.join(","),s.BBOXSR=o,s.IMAGESR=o,s.DPI=Math.round(s.DPI?s.DPI*n:90*n);const h=t.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");if(h==t)throw new Error("`options.featureTypes` should be an Array");return Np(h,s)}function qU(t){const e=t.load?t.load:Pg,i=ee(t.projection||"EPSG:3857");return function(n,r,s){s=t.hidpi?s:1;const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(o,t.params),n=Up(n,r,s,t.ratio);const a=UU(t.url,n,r,s,i,o),l=new Image;return null!==t.crossOrigin&&(l.crossOrigin=t.crossOrigin),e(l,a).then((t=>{const e=at(n)/t.width*s;return{image:t,extent:n,resolution:e,pixelRatio:s}}))}}const VU=class extends qp{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Gp,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=qU({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}};const zU=class extends qp{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,n){e=this.findNearestResolution(e);let r=this.canvas_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&D(r.getExtent(),t))return r;ct(t=t.slice(),this.ratio_);const s=[at(t)/e*i,nt(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,n);return o&&(r=new ik(t,e,i,o)),this.canvas_=r,this.renderedRevision_=this.getRevision(),r}};function YU(t,e,i,n,r,s,o){const a=function(t,e,i,n){const r=at(t),s=nt(t),o=e[0],a=e[1],l=.0254/n;return a*r>o*s?r*i/(o*l):s*i/(a*l)}(i,n,s,o),l=$(i),h={OPERATION:r?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:o,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:a,SETVIEWCENTERX:l[0],SETVIEWCENTERY:l[1]};return Object.assign(h,e),Np(t,h)}function jU(t){const e=t.load||Pg;return function(i,n,r){const s=new Image;null!==t.crossOrigin&&(s.crossOrigin=t.crossOrigin);const o=at(i=Up(i,n,r,t.ratio))/n,a=nt(i)/n,l=[o*r,a*r],h=YU(t.url,t.params,i,l,t.useOverlay,t.metersPerUnit||1,t.displayDpi||96);return e(s,h).then((t=>({image:t,extent:i,pixelRatio:r})))}}const HU=class extends qp{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:Gp,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=jU({crossOrigin:this.crossOrigin_,params:this.params_,hidpi:this.hidpi_,metersPerUnit:this.metersPerUnit_,url:this.url_,useOverlay:this.useOverlay_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}};function XU(t){const e=t.load||Pg,i=t.imageExtent,n=new Image;return null!==t.crossOrigin&&(n.crossOrigin=t.crossOrigin),()=>e(n,t.url).then((t=>{const e=at(i)/t.width,n=nt(i)/t.height;return{image:t,extent:i,resolution:e!==n?[e,n]:n,pixelRatio:1}}))}const WU=class extends qp{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:Gp;super({attributions:t.attributions,interpolate:t.interpolate,projection:ee(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image=null,this.image=new Fg(this.imageExtent_,void 0,1,XU({url:t.url,imageExtent:t.imageExtent,crossOrigin:e,load:(t,e)=>(this.image.setImage(t),i(this.image,e),Pg(t))})),this.image.addEventListener(bs,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,n){return lt(t,this.image.getExtent())?this.image:null}getUrl(){return this.url_}};function KU(t,e,i,n){const r=document.createElement("script"),s="olc_"+Xs(e);function o(){delete window[s],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+(n||"callback")+"="+s;const a=setTimeout((function(){o(),i&&i()}),1e4);window[s]=function(t){clearTimeout(a),o(),e(t)},document.head.appendChild(r)}class JU extends Error{constructor(t){super("Unexpected response status: "+t.status),this.name="ResponseError",this.response=t}}class ZU extends Error{constructor(t){super("Failed to issue request"),this.name="ClientError",this.client=t}}function $U(t){return new Promise((function(e,i){const n=new XMLHttpRequest;n.addEventListener("load",(function(t){const n=t.target;if(!n.status||n.status>=200&&n.status<300){let t;try{t=JSON.parse(n.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new JU(n))})),n.addEventListener("error",(function(t){i(new ZU(t.target))})),n.open("GET",t),n.setRequestHeader("Accept","application/json"),n.send()}))}function tq(t,e){return e.includes("://")?e:new URL(e,t).href}const eq={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},iq={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function nq(t,e,i,n){let r=t.projection;if(!r&&(r=ee(e.crs),!r))throw new Error(`Unsupported CRS: ${e.crs}`);const s="en"!==r.getAxisOrientation().substr(0,2),o=e.tileMatrices,a={};for(let t=0;tt.maxTileCol||u.tileRowt.maxTileRow)return}Object.assign(u,m);const g=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return tq(_,g)}}}function rq(t,e){const i=e.tileMatrixSetLimits;let n;if("map"===e.dataType)n=function(t,e){let i,n;for(let r=0;r"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel));if(!r)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=r.href;return $U(tq(t.url,s)).then((function(e){return nq(t,e,n,i)}))}function sq(t){return $U(t.url).then((function(e){return rq(t,e)}))}const oq=class extends Tp{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});sq({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Wt(t),this.setState("error")}};const aq=class extends nB{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,format:t.format,overlaps:t.overlaps,projection:t.projection,tileClass:t.tileClass,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection,state:"loading"});sq({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,supportedMediaTypes:t.format.supportedMediaTypes,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Wt(t),this.setState("error")}};let lq,hq=!0;try{new ImageData(10,10)}catch(t){hq=!1}function cq(t){let e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,n){return e?new ImageData(t,i,n):{data:t,width:i,height:n}}return function(e){const n=e.buffers,r=e.meta,s=e.imageOps,o=e.width,a=e.height,l=n.length,h=n[0].byteLength;if(s){const e=new Array(l);for(let t=0;tthis._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),r=this._workers.length;if(this._running=r,1===r)return void this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:i},n);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/r);for(let s=0;sStadia Maps','© OpenMapTiles',Xb];t.layer.startsWith("stamen_")&&l.splice(1,0,'© Stamen Design'),super({attributions:l,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:n.maxZoom,minZoom:void 0!==t.minZoom?t.minZoom:n.minZoom,opaque:r.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:a,tilePixelRatio:o?2:1,wrapX:t.wrapX,zDirection:t.zDirection})}};const xq=class extends Tp{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;let a;if(1==o.length)a=o[0];else{a=o[_t(rd(t),o.length)]}return UU(a,i,(this.tileGrid||this.getTileGridForProjection(r)).getResolution(t[0]),n,r,s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const r=n.getTileCoordExtent(t,this.tmpExtent_);let s=xc(n.getTileSize(t[0]),this.tmpSize);1!=e&&(s=vc(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,r,e,i,o)}};const wq=class extends Vb{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],n=xc(this.tileGrid.getTileSize(i)),r=bl(n[0],n[1]);r.strokeStyle="grey",r.strokeRect(.5,.5,n[0]+.5,n[1]+.5),r.fillStyle="grey",r.strokeStyle="white",r.textAlign="center",r.textBaseline="middle",r.font="24px sans-serif",r.lineWidth=4,r.strokeText(e,n[0]/2,n[1]/2,n[0]),r.fillText(e,n[0]/2,n[1]/2,n[0]),t.setImage(r.canvas)}})}};const Sq=class extends Tp{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:ee("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)KU(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=ee("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=le(e,i);n=ut(t.bounds,r)}const r=Ip(i),s=t.minzoom||0,o=_p({extent:r,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=xp(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==n?n:r;this.setAttributions((function(i){return lt(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}};class bq extends Tg{constructor(t,e,i,n,r,s){super(t,e),this.src_=i,this.extent_=n,this.preemptive_=r,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof n)return null;let r=n.charCodeAt(Math.floor(e*n.length));r>=93&&r--,r>=35&&r--,r-=32;let s=null;if(r in this.keys_){const t=this.keys_[r];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==bh&&!0===i?(this.state=vh,Us(this,bs,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout((()=>{e(this.getData(t))}),0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=Sh,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=wh,this.changed()}loadInternal_(){if(this.state==vh)if(this.state=xh,this.jsonp_)KU(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(bh)}}const Bq=class extends Cp{constructor(t){if(super({projection:ee("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=Sp,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)KU(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,n){if(this.tileGrid){const r=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,r);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,n)}else!0===n?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=ee("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=le(e,i);n=ut(t.bounds,r)}const r=Ip(i),s=t.minzoom||0,o=_p({extent:r,maxZoom:t.maxzoom||22,minZoom:s});this.tileGrid=o,this.template_=t.template;const a=t.grids;if(a){if(this.tileUrlFunction_=xp(a,o),void 0!==t.attribution){const e=void 0!==n?n:r;this.setAttributions((function(i){return lt(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,n,r){const s=ed(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=this.tileUrlFunction_(a,n,r),h=new bq(o,void 0!==l?vh:bh,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const n=ed(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}};const Lq=window.M={},Mq=window.ol={};Lq.ClusteredFeature=OL,Lq.Control=vu,Lq.Feature=DL,Lq.Filter=fI,Lq.Label=nx,Lq.Layer=_g,Lq.Map=SB,Lq.Object=Mc,Lq.Parameters=sx,Lq.Plugin=QL,Lq.Popup=sI,Lq.RenderFeature=ax,Lq.Style=Jm,Lq.addProxyException=t=>{const e=new URL(t).origin;-1===LB.indexOf(e)&&LB.push(e)},Lq.config=bB,Lq.control={},Lq.control.GetFeatureInfo=kv,Lq.control.LayerSwitcher=xI,Lq.control.Location=VI,Lq.control.Mouse=ME,Lq.control.Navtoolbar=VE,Lq.control.OverviewMap=QE,Lq.control.Panzoom=XE,Lq.control.Panzoombar=Mu,Lq.control.Rotate=sE,Lq.control.Rotate.onClick=iE,Lq.control.Rotate.onMouseDown=tE,Lq.control.Rotate.onMouseMove=nE,Lq.control.Rotate.onMouseUp=eE,Lq.control.Scale=XI,Lq.control.ScaleLine=EE,Lq.control.WMCSelector=mf,Lq.dialog={},Lq.dialog.error=AI,Lq.dialog.info=dI,Lq.dialog.show=gI,Lq.dialog.success=pI,Lq.evt={},Lq.evt.ACTIVATED=Kc,Lq.evt.ADDED_GEOPACKAGE="added:geopackage",Lq.evt.ADDED_GEOPACKAGE_TILE="added:geopackagetile",Lq.evt.ADDED_GEOPACKAGE_VECTOR="added:geopackagevector",Lq.evt.ADDED_KML=Vc,Lq.evt.ADDED_LAYER=Uc,Lq.evt.ADDED_MBTILES="added:mbtiles",Lq.evt.ADDED_MBTILES_VECTOR="added:mbtilesvector",Lq.evt.ADDED_TO_MAP=kc,Lq.evt.ADDED_TO_PANEL=Gc,Lq.evt.ADDED_VECTOR_TILE=jc,Lq.evt.ADDED_WFS=Yc,Lq.evt.ADDED_WMC=qc,Lq.evt.ADDED_WMS=zc,Lq.evt.ADDED_WMTS=Wc,Lq.evt.CHANGE=au,Lq.evt.CHANGE_PROJ=hu,Lq.evt.CHANGE_ROTATION=gu,Lq.evt.CHANGE_STYLE=cu,Lq.evt.CHANGE_WMC=lu,Lq.evt.CHANGE_ZOOM=uu,Lq.evt.CLICK=Au,Lq.evt.COMPLETED=ou,Lq.evt.DEACTIVATED=Jc,Lq.evt.DESTROY=tu,Lq.evt.DOUBLE_CLICK="doubleclick",Lq.evt.EventsManager=Lc,Lq.evt.HIDE=$c,Lq.evt.HOVER_FEATURES=nu,Lq.evt.LAYER_VISIBILITY_CHANGE=du,Lq.evt.LEAVE_FEATURES=ru,Lq.evt.LOAD=su,Lq.evt.LOAD_LAYERS="load:layers",Lq.evt.Listener=Bc,Lq.evt.MOVE=pu,Lq.evt.POPUP_ADDED=fu,Lq.evt.POPUP_ADDED_TAB=_u,Lq.evt.POPUP_REMOVED=mu,Lq.evt.POPUP_REMOVED_TAB=yu,Lq.evt.REMOVED_FROM_MAP=Xc,Lq.evt.REMOVED_LAYER=Hc,Lq.evt.SELECT_FEATURES=eu,Lq.evt.SHOW=Zc,Lq.evt.UNSELECT_FEATURES=iu,Lq.exception=Oc,Lq.facade={},Lq.facade.Base=Qc,Lq.filter=GL,Lq.filter.AND=t=>{let e="";const i=t.length;return t.forEach(((t,n)=>{e+=`(${t.toCQL()})`,nt.every((t=>t.getFunctionFilter()(e)))),{cqlFilter:e})},Lq.filter.EQUAL=(t,e)=>new kL((i=>Object.is(i.getAttribute(t),e)),{cqlFilter:`${t}='${e}'`}),Lq.filter.Function=kL,Lq.filter.GT=(t,e)=>new kL((i=>null!=i.getAttribute(t)&&i.getAttribute(t)>e),{cqlFilter:`${t} > '${e}'`}),Lq.filter.GTE=(t,e)=>new kL((i=>null!=i.getAttribute(t)&&i.getAttribute(t)>=e),{cqlFilter:`${t} >= '${e}'`}),Lq.filter.LIKE=(t,e)=>new kL((i=>i.getAttribute(t).toString().match(new RegExp(e))),{cqlFilter:`${t} LIKE '%${e}%'`}),Lq.filter.LT=(t,e)=>new kL((i=>null!=i.getAttribute(t)&&i.getAttribute(t)new kL((e=>!t.getFunctionFilter()(e)),{cqlFilter:`NOT ${t.toCQL()}`}),Lq.filter.OR=t=>{const e=t.length;let i="";return t.forEach(((t,n)=>{i+=`(${t.toCQL()})`,nt.some((t=>t.getFunctionFilter()(e)))),{cqlFilter:i})},Lq.filter.spatial={},Lq.filter.spatial.CONTAIN=t=>{const e=hD(t);return new GL(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.contains(e,r)}))}),{cqlFilter:cD("CONTAINS",e)})},Lq.filter.spatial.DISJOINT=t=>{const e=hD(t);return new GL(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return!lD.intersects(r,e)}))}),{cqlFilter:cD("DISJOINT",e)})},Lq.filter.spatial.INTERSECT=t=>{const e=hD(t);return new GL(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.intersects(r,e)}))}),{cqlFilter:cD("INTERSECTS",e)})},Lq.filter.spatial.WITHIN=t=>{const e=hD(t);return new GL(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.contains(e,r)}))}),{cqlFilter:cD("WITHIN",e)})},Lq.filter.spatial.parseParamToGeometries=hD,Lq.format={},Lq.format.GeoJSON=LS,Lq.format.WKT=cM,Lq.geom={},Lq.geom.geojson={},Lq.geom.geojson.type={},Lq.geom.geojson.type.GEOMETRY_COLLECTION="GeometryCollection",Lq.geom.geojson.type.LINE_STRING="LineString",Lq.geom.geojson.type.MULTI_LINE_STRING="MultiLineString",Lq.geom.geojson.type.MULTI_POINT="MultiPoint",Lq.geom.geojson.type.MULTI_POLYGON="MultiPolygon",Lq.geom.geojson.type.POINT="Point",Lq.geom.geojson.type.POLYGON="Polygon",Lq.geom.parse=jS,Lq.geom.parseWFS=t=>{let e;return t===GS?e=Ad:t===US?e=ld:t===qS?e=hd:t===VS?e=cd:t===zS?e=ud:t===YS&&(e=gd),e},Lq.geom.wfs={},Lq.geom.wfs.type={},Lq.geom.wfs.type.LINE=US,Lq.geom.wfs.type.MLINE=zS,Lq.geom.wfs.type.MPOINT=VS,Lq.geom.wfs.type.MPOLYGON=YS,Lq.geom.wfs.type.POINT=GS,Lq.geom.wfs.type.POLYGON=qS,Lq.geom.wkt={},Lq.geom.wkt.type={},Lq.geom.wkt.type.CIRCLE=fd,Lq.geom.wkt.type.GEOMETRY=ad,Lq.geom.wkt.type.GEOMETRY_COLLECTION=pd,Lq.geom.wkt.type.LINEAR_RING=dd,Lq.geom.wkt.type.LINE_STRING=ld,Lq.geom.wkt.type.MULTI_LINE_STRING=ud,Lq.geom.wkt.type.MULTI_POINT=cd,Lq.geom.wkt.type.MULTI_POLYGON=gd,Lq.geom.wkt.type.POINT=Ad,Lq.geom.wkt.type.POLYGON=hd,Lq.handler={},Lq.handler.Feature=ux,Lq.impl={},Lq.impl.Control=Af,Lq.impl.Feature=PL,Lq.impl.GetCapabilities=zd,Lq.impl.Label=ex,Lq.impl.Layer=Vd,Lq.impl.Map=uf,Lq.impl.Popup=Zy,Lq.impl.RenderFeature=lx,Lq.impl.Style=cm,Lq.impl.View=sf,Lq.impl.control={},Lq.impl.control.GetFeatureInfo=Fv,Lq.impl.control.LayerSwitcher=xf,Lq.impl.control.Location=kI,Lq.impl.control.Mouse=BE,Lq.impl.control.Navtoolbar=kE,Lq.impl.control.OverviewMap=PE,Lq.impl.control.Panzoom=jE,Lq.impl.control.Panzoombar=Dc,Lq.impl.control.Rotate=KI,Lq.impl.control.Scale=jI,Lq.impl.control.ScaleLine=mE,Lq.impl.control.WMCSelector=pf,Lq.impl.format={},Lq.impl.format.DescribeFeatureType=RS,Lq.impl.format.DescribeFeatureTypeXML=TS,Lq.impl.format.GML=DS,Lq.impl.format.GeoJSON=BS,Lq.impl.format.KML=mS,Lq.impl.format.WKT=hM,Lq.impl.format.WMC=JS,Lq.impl.format.WMSCapabilities=hp,Lq.impl.format.WMTSCapabilities=uM,Lq.impl.format.XML=MS,Lq.impl.handler={},Lq.impl.handler.Feature=cx,Lq.impl.interaction={},Lq.impl.interaction.SelectCluster=Py,Lq.impl.layer={},Lq.impl.layer.AnimatedCluster=By,Lq.impl.layer.Draw=dM,Lq.impl.layer.GeoJSON=CB,Lq.impl.layer.Heatmap=ZT,Lq.impl.layer.KML=yS,Lq.impl.layer.MVT=fB,Lq.impl.layer.Mapbox=Yb,Lq.impl.layer.OSM=Jb,Lq.impl.layer.Vector=hI,Lq.impl.layer.WFS=kS,Lq.impl.layer.WMC=$S,Lq.impl.layer.WMS=ef,Lq.impl.layer.WMTS=Gb,Lq.impl.loader={},Lq.impl.loader.JSONP=IB,Lq.impl.loader.KML=Ax,Lq.impl.loader.WFS=OS,Lq.impl.service={},Lq.impl.service.WFS=NS,Lq.impl.source={},Lq.impl.source.ImageWMS=$p,Lq.impl.source.TileWMS=Kp,Lq.impl.style={},Lq.impl.style.Centroid=Dy,Lq.impl.style.Chart=lR,Lq.impl.style.Cluster=ky,Lq.impl.style.Generic=Wm,Lq.impl.style.Heatmap=hR,Lq.impl.style.Icon=cR,Lq.impl.style.Line=mR,Lq.impl.style.Path=Dm,Lq.impl.style.Point=II,Lq.impl.style.Polygon=yR,Lq.impl.style.Simple=um,Lq.impl.utils=qd,Lq.language={},Lq.language.addTranslation=(t,e)=>{Iu.translations[t]=e},Lq.language.getLang=()=>Iu.lang,Lq.language.getTranslation=Eu,Lq.language.getValue=Cu,Lq.language.setLang=t=>{Object.keys(Iu.translations).includes(t)||Oc(Cu("exception").unsupported_lang),Iu.lang=t},Lq.layer={},Lq.layer.GeoJSON=xB,Lq.layer.KML=ES,Lq.layer.LayerGroup=Cf,Lq.layer.MVT=yB,Lq.layer.MVT.mode=mB,Lq.layer.Mapbox=Hb,Lq.layer.OSM=$b,Lq.layer.Vector=_I,Lq.layer.WFS=XS,Lq.layer.WMC=eb,Lq.layer.WMS=rf,Lq.layer.WMTS=qb,Lq.layer.type={},Lq.layer.type.GeoJSON=Qu,Lq.layer.type.KML=Ru,Lq.layer.type.MVT=Gu,Lq.layer.type.Mapbox=Ou,Lq.layer.type.OSM=Du,Lq.layer.type.Vector=ku,Lq.layer.type.WFS=Pu,Lq.layer.type.WMC=Tu,Lq.layer.type.WMS=Nu,Lq.layer.type.WMTS=Fu,Lq.layer.type.registerLayerType=t=>{t in Uu||(Uu[t]=t)},Lq.map=(t,e)=>(qB(uf)&&Oc(Cu("exception").no_impl),new SB(t,e)),Lq.parameter={},Lq.parameter.center=ag,Lq.parameter.geojson=sg,Lq.parameter.kml=Ku,Lq.parameter.layer=fg,Lq.parameter.mapbox=$u,Lq.parameter.maxExtent=lg,Lq.parameter.mvt=dg,Lq.parameter.osm=ig,Lq.parameter.projection=hg,Lq.parameter.resolutions=cg,Lq.parameter.wfs=gg,Lq.parameter.wmc=og,Lq.parameter.wms=Hu,Lq.parameter.wmts=Ag,Lq.parameter.zoom=ug,Lq.projection=hs,Lq.proxy=t=>{"boolean"==typeof t&&(BB=t)},Lq.remote={},Lq.remote.Response=MB,Lq.remote.get=DB,Lq.remote.post=(t,e,i)=>FB(t,e,RB),Lq.removeProxyException=t=>{const e=new URL(t).origin,i=LB.indexOf(e);-1!==i&&LB.splice(i,1)},Lq.style={},Lq.style.Category=BR,Lq.style.Chart=nR,Lq.style.Choropleth=FR,Lq.style.Cluster=Vy,Lq.style.Composite=Uy,Lq.style.Feature=Zm,Lq.style.Font=DR,Lq.style.Generic=e_,Lq.style.Heatmap=QR,Lq.style.Line=gR,Lq.style.Point=CI,Lq.style.Polygon=wR,Lq.style.Proportional=vR,Lq.style.Proportional.getMinMaxValues=IR,Lq.style.Simple=$m,Lq.style.align={},Lq.style.align.CENTER=dm,Lq.style.align.JUSTIFY=pm,Lq.style.align.LEFT=gm,Lq.style.align.RIGHT=Am,Lq.style.baseline={},Lq.style.baseline.ALPHABETIC=ym,Lq.style.baseline.BOTTOM=_m,Lq.style.baseline.HANGING=Im,Lq.style.baseline.IDEOGRAPHIC=Em,Lq.style.baseline.MIDDLE=mm,Lq.style.baseline.TOP=fm,Lq.style.chart={},Lq.style.chart.Variable=$T,Lq.style.chart.schemes=eR,Lq.style.chart.types=tR,Lq.style.form={},Lq.style.form.BAN="BAN",Lq.style.form.BLAZON="BLAZON",Lq.style.form.BOOKMARK="BOOKMARK",Lq.style.form.BUBBLE="BUBBLE",Lq.style.form.CIRCLE="CIRCLE",Lq.style.form.COMA="COMA",Lq.style.form.DIAMOND="DIAMOND",Lq.style.form.HEXAGON="HEXAGON",Lq.style.form.LOZENGE="LOZENGE",Lq.style.form.MARKER="MARKER",Lq.style.form.NONE="none",Lq.style.form.POI="POI",Lq.style.form.SHIELD="SHIELD",Lq.style.form.SIGN="SIGN",Lq.style.form.SQUARE="SQUARE",Lq.style.form.TRIANGLE="TRIANGLE",Lq.style.pattern={},Lq.style.pattern.BRECCIA="BRECCIA",Lq.style.pattern.BRICK="BRICK",Lq.style.pattern.CAPS="CAPS",Lq.style.pattern.CEMETRY="CEMETRY",Lq.style.pattern.CHAOS="CHAOS",Lq.style.pattern.CHARACTER="CHARACTER",Lq.style.pattern.CIRCLE="CIRCLE",Lq.style.pattern.CLAY="CLAY",Lq.style.pattern.COAL="COAL",Lq.style.pattern.CONGLOMERATE="CONGLOMERATE",Lq.style.pattern.CROSS="CROSS",Lq.style.pattern.CROSSES="CROSSES",Lq.style.pattern.DOLOMITE="DOLOMITE",Lq.style.pattern.DOT="DOT",Lq.style.pattern.FLOODED="FLOODED",Lq.style.pattern.FOREST="FOREST",Lq.style.pattern.GRASS="GRASS",Lq.style.pattern.GRAVEL="GRAVEL",Lq.style.pattern.HATCH="HATCH",Lq.style.pattern.HEXAGON="HEXAGON",Lq.style.pattern.ICON="ICON",Lq.style.pattern.IMAGE="IMAGE",Lq.style.pattern.NYLON="NYLON",Lq.style.pattern.PINE="PINE",Lq.style.pattern.PINES="PINES",Lq.style.pattern.ROCK="ROCK",Lq.style.pattern.ROCKS="ROCKS",Lq.style.pattern.SAND="SAND",Lq.style.pattern.SCRUB="SCRUB",Lq.style.pattern.SQUARE="SQUARE",Lq.style.pattern.SWAMP="SWAMP",Lq.style.pattern.TILE="TILE",Lq.style.pattern.TREE="TREE",Lq.style.pattern.VINE="VINE",Lq.style.pattern.WAVE="WAVE",Lq.style.pattern.WOVEN="WOVEN",Lq.style.quantification={},Lq.style.quantification.JENKS=MR,Lq.style.quantification.QUANTILE=TR,Lq.style.state={},Lq.style.state.DEFAULT="default",Lq.style.state.NEW="new",Lq.style.state.SELECTED="selected",Lq.style.textoverflow={},Lq.style.textoverflow.ELLIPSIS="ellipsis",Lq.style.textoverflow.HIDDEN="",Lq.style.textoverflow.VISIBLE="visible",Lq.template={},Lq.template.add=(t,e)=>{QB(Su[t])&&(Su[t]=e)},Lq.template.compile=(t,e)=>{let i,n,r={};return QB(e)||(r=_L(r,e.vars),i=e.parseToHtml,n=e.scope),new Promise(((s,o)=>{Bu(t,e).then((t=>{const e=t.call(null,r);!1!==i?s.call(n,rL(e)):s.call(n,e)}))}))},Lq.template.compileSync=bu,Lq.template.get=Bu,Lq.ui={},Lq.ui.Panel=Hv,Lq.ui.position={},Lq.ui.position.BL=zv,Lq.ui.position.BR=Yv,Lq.ui.position.TL=qv,Lq.ui.position.TR=Vv,Lq.units={},Lq.units.DOTS_PER_INCH=72,Lq.units.INCHES_PER_UNIT=OB,Lq.utils={},Lq.utils.addParameters=KB,Lq.utils.beautifyAttribute=sL,Lq.utils.beautifyAttributeName=oL,Lq.utils.beautifyString=t=>{let e;return e=t.toLowerCase(),e=e.trim(e),e=e.charAt(0).toUpperCase()+e.slice(1),e=e.replace(/_/g," "),e=e.replace(/\s+/," "),e=e.replace(/(\s\w)+/g,(t=>t.toUpperCase())),e=e.replace(/\s+(de|del|las?|el|los?|un|unas?|unos?|y|a|al|en)\s+/gi,(t=>t.toLowerCase())),e},Lq.utils.concatUrlPaths=aL,Lq.utils.decodeHtml=AL,Lq.utils.defineFunctionFromString=vL,Lq.utils.drawDynamicStyle=LL,Lq.utils.enableTouchScroll=uL,Lq.utils.escapeJSCode=cL,Lq.utils.escapeXSS=t=>{let e;return e=t.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/'/g,"""),e=e.replace(/'/g,"'"),e=e.replace(/\//g,"/"),e},Lq.utils.extend=hL,Lq.utils.extendsObj=_L,Lq.utils.fillResolutions=tL,Lq.utils.generateColorScale=fL,Lq.utils.generateIntervals=yL,Lq.utils.generateRandom=JB,Lq.utils.generateResolutionsFromExtent=iL,Lq.utils.generateResolutionsFromScales=(t,e,i,n)=>{const r=eL(t,n),s=eL(e,n);return tL(r,s,i)},Lq.utils.getEnvolvedExtent=ML,Lq.utils.getImageSize=EL,Lq.utils.getOpacityFromRgba=t=>{let e;const i=/^rgba\s*\((\s*\d+\s*,){3}\s*([\d.]+)\s*\)$/;if(i.test(t)){e=t.replace(i,"$2");try{e=parseFloat(e)}catch(t){throw t}}return e},Lq.utils.getParameterValue=WB,Lq.utils.getResolutionFromScale=eL,Lq.utils.getRgba=(t,e)=>a()(t).alpha(e).css(),Lq.utils.getScaleFromResolution=nL,Lq.utils.getSystem=TL,Lq.utils.getTextFromHtml=pL,Lq.utils.getWMSGetCapabilitiesUrl=ZB,Lq.utils.getWMTSGetCapabilitiesUrl=$B,Lq.utils.htmlToString=t=>{let e;if(!qB(t)){const i=document.createElement("div");i.appendChild(t),e=i.innerHTML}return e},Lq.utils.includes=lL,Lq.utils.inverseColor=mL,Lq.utils.isArray=UB,Lq.utils.isBoolean=kB,Lq.utils.isDynamic=bL,Lq.utils.isFunction=VB,Lq.utils.isGeometryType=dL,Lq.utils.isNull=GB,Lq.utils.isNullOrEmpty=qB,Lq.utils.isNumber=HB,Lq.utils.isObject=zB,Lq.utils.isPositiveNumber=t=>HB(t)&&t>0,Lq.utils.isString=YB,Lq.utils.isUndefined=QB,Lq.utils.isUrl=jB,Lq.utils.normalize=XB,Lq.utils.rgbToHex=t=>{let e;try{e=a()(t).hex()}catch(t){throw t}return e},Lq.utils.rgbaToHex=t=>{let e;try{e=a()(t).hex()}catch(t){throw t}return e},Lq.utils.sameUrl=gL,Lq.utils.setDynamicLegend=t=>{BL=t},Lq.utils.setEquals=(t,e)=>{let i=!1;return t.length===e.length&&(i=t.every((t=>e.some((e=>e.equals(t)))))),i},Lq.utils.stringToHtml=rL,Lq.utils.stringifyFunctions=CL,Lq.utils.styleComparator=IL,Lq.version="6.5.0",Lq.window=Jy,Mq.Collection=eo,Mq.Feature=_d,Mq.Geolocation=OI,Mq.Image={},Mq.Image.decode=Pg,Mq.Image.load=Rg,Mq.Kinetic=mc,Mq.Map=bc,Mq.Object=Ks,Mq.Observable=Ys,Mq.Observable.unByKey=zs,Mq.Overlay=Wy,Mq.View=dl,Mq.array={},Mq.array.stableSort=function(t,e){const i=t.length,n=Array(t.length);let r;for(r=0;r{const i=t.results;if(i?.length>0){const t=i.filter((t=>"EPSG"===t.id?.authority&&t.id?.code===e))[0];if(t){const e=t.transformations;if(e?.length>0){const i=t.default_transformation;if(e.filter((t=>t.id?.authority===i?.authority&&t.id?.code===i?.code&&0===t.grids?.length)).length>0)return t.exports?.proj4;const n=e.filter((t=>0===t.grids?.length&&"EPSG"===t.target_crs?.authority&&4326===t.target_crs?.code&&!1===t.deprecated&&!0===t.usable)).sort(((t,e)=>t.accuracy-e.accuracy))[0]?.exports?.proj4;if(n)return n}return t.exports?.proj4}}}))}},Mq.proj.proj4.fromEPSGCode=async function(t){"string"==typeof t&&(t=parseInt(t.split(":").pop(),10));const e=ns;if(!e)throw new Error("Proj4 must be registered first with register(proj4)");const i="EPSG:"+t;return e.defs(i)||(e.defs(i,await ss(t)),rs(e)),ee(i)},Mq.proj.proj4.register=rs,Mq.proj.proj4.setEPSGLookup=function(t){ss=t},Mq.proj.setUserProjection=de,Mq.proj.toLonLat=function(t,e){const i=ce(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=_t(n+180,360)-180),i},Mq.proj.transform=ce,Mq.proj.transformExtent=ue,Mq.proj.useGeographic=function(){de("EPSG:4326")},Mq.render={},Mq.render.Feature={},Mq.render.Feature.toFeature=function(t,e){const i=t.getId(),n=Nd(t),r=t.getProperties(),s=new _d;return void 0!==e&&s.setGeometryName(e),s.setGeometry(n),void 0!==i&&s.setId(i),s.setProperties(r,!0),s},Mq.render.Feature.toGeometry=Nd,Mq.render.VectorContext=Xf,Mq.render.canvas={},Mq.render.canvas.checkedFonts=Vl,Mq.render.canvas.registerFont=Hl,Mq.render.getRenderPixel=function(t,e){return _o(t.inversePixelTransform,e.slice(0))},Mq.render.getVectorContext=sm,Mq.render.toContext=rm,Mq.renderer={},Mq.renderer.Composite=$l,Mq.renderer.canvas={},Mq.renderer.canvas.ImageLayer=Zg,Mq.renderer.canvas.TileLayer=Wg,Mq.renderer.canvas.VectorImageLayer=nk,Mq.renderer.canvas.VectorLayer=wy,Mq.renderer.canvas.VectorTileLayer=aB,Mq.renderer.webgl={},Mq.renderer.webgl.PointsLayer=HM,Mq.renderer.webgl.TileLayer=pT,Mq.size={},Mq.size.toSize=xc,Mq.source={},Mq.source.BingMaps=lk,Mq.source.CartoDB=hk,Mq.source.Cluster=Gf,Mq.source.DataTile=ck,Mq.source.GeoTIFF=DU,Mq.source.IIIF=GU,Mq.source.Image=qp,Mq.source.ImageArcGISRest=VU,Mq.source.ImageCanvas=zU,Mq.source.ImageMapGuide=HU,Mq.source.ImageStatic=WU,Mq.source.ImageWMS=Zp,Mq.source.OGCMapTile=oq,Mq.source.OGCVectorTile=aq,Mq.source.OSM=Wb,Mq.source.OSM.ATTRIBUTION=Xb,Mq.source.Raster=Iq,Mq.source.Source=fp,Mq.source.StadiaMaps=vq,Mq.source.Tile=Cp,Mq.source.TileArcGISRest=xq,Mq.source.TileDebug=wq,Mq.source.TileImage=Tp,Mq.source.TileJSON=Sq,Mq.source.TileWMS=Xp,Mq.source.UTFGrid=Bq,Mq.source.Vector=kf,Mq.source.VectorTile=nB,Mq.source.WMTS=sb,Mq.source.WMTS.optionsFromCapabilities=ob,Mq.source.XYZ=Vb,Mq.source.Zoomify=QU,Mq.source.arcgisRest={},Mq.source.arcgisRest.createLoader=qU,Mq.source.mapguide={},Mq.source.mapguide.createLoader=jU,Mq.source.sourcesFromTileGrid=function(t,e){const i=new cp(32),n=t.getExtent();return function(r,s){i.expireCache(),n&&(r=rt(n,r));const o=t.getZForResolution(s),a=[];return t.forEachTileCoord(r,o,(t=>{const n=t.toString();if(!i.containsKey(n)){const r=e(t);i.set(n,r)}a.push(i.get(n))})),a}},Mq.source.static={},Mq.source.static.createLoader=XU,Mq.source.wms={},Mq.source.wms.createLoader=Hp,Mq.sphere={},Mq.sphere.getArea=function t(e,i){const n=(i=i||{}).radius||Ut,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,g=0;switch(s){case"Point":case"MultiPoint":case"LineString":case"MultiLineString":case"LinearRing":break;case"Polygon":for(o=e.getCoordinates(),g=Math.abs(zt(o[0],n)),l=1,h=o.length;lbutton{color:#404040}div.m-control button[class*=" g-cartografia-"],div.m-control button[class^=g-cartografia-]{background:none;border:none;color:#404040;cursor:pointer;font-size:28px;font-size:24px;margin:0;opacity:.75;padding:8px;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s}.ol-overviewmap>button{opacity:.75;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:hover,.ol-overviewmap>button:hover,div.m-control button[class*=" g-cartografia-"]:hover,div.m-control button[class^=g-cartografia-]:hover,div.m-control.activated button[class^=g-cartografia-]{opacity:1!important}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus,div.m-control button[class*=" g-cartografia-"]:focus,div.m-control button[class^=g-cartografia-]:focus{outline:none}.m-clear-btn,.m-help-btn{font-size:18px!important;opacity:.4!important}.m-search-btn{order:3;padding-right:14px}.m-help-btn{order:2}.m-clear-btn{order:1}.m-results-btn{display:none}.m-label-content{white-space:nowrap}.m-mapea-container input[type=text],.m-mapea-container textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:1px solid rgba(0,0,0,.5);border-radius:4px;color:#6c6c6c;cursor:auto;font-family:Muli,"sans-serif"!important;font-size:13px;margin:5px;padding:5px}.m-mapea-container input[type=text]:focus{outline:none}@media only screen and (max-width:768px){.m-wordbreak{white-space:none;word-break:break-all}}button::-moz-focus-inner{border:0}@-moz-keyframes mloading{to{-moz-transform:rotate(1turn)}}@-webkit-keyframes mloading{to{-webkit-transform:rotate(1turn)}}@keyframes mloading{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.m-area.m-top.m-right,.m-areas,.ol-overlaycontainer-stopevent,.ol-viewport{height:inherit!important}.m-panel.m-layerswitcher.opened{height:calc(100% - 30px)}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{height:100%!important;max-height:100%}.m-attribution{left:3px!important;right:inherit!important;z-index:999999}@media print{.ol-control{display:none}}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{opacity:1;-webkit-transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s;transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{max-height:0;max-width:0;opacity:0;-webkit-transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s;transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s}.m-location-container.m-locating>button#m-location-button:before{-webkit-animation:mloading 1s linear infinite;-moz-animation:mloading 1s linear infinite}.ol-box{border:2px solid blue;border-radius:2px;box-sizing:border-box}.ol-mouse-position{position:absolute;right:8px;top:8px}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;margin:1px;text-align:center;transition:all .25s;will-change:contents,width}.ol-scale-bar{bottom:8px;left:8px;position:absolute}.ol-scale-step-marker{background-color:#000;float:right;height:15px;width:1px;z-Index:10}.ol-scale-step-text{bottom:-5px;font-size:12px;z-Index:11}.ol-scale-step-text,.ol-scale-text{color:#000;position:absolute;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-text{bottom:25px;font-size:14px;text-align:center}.ol-scale-singlebar{height:10px;position:relative;z-Index:9;border:1px solid #000}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-overlaycontainer,.ol-overlaycontainer-stopevent{pointer-events:none}.ol-overlaycontainer-stopevent>*,.ol-overlaycontainer>*{pointer-events:auto}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:hsla(0,0%,100%,.4);border-radius:4px;padding:2px;position:absolute}.ol-control:hover{background-color:hsla(0,0%,100%,.6)}.ol-zoom{left:.5em;top:.5em}.ol-rotate{right:.5em;top:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;transition:opacity .25s linear,visibility 0s linear .25s;visibility:hidden}.ol-zoom-extent{left:.5em;top:4.643em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{background-color:rgba(0,60,136,.5);border:none;border-radius:2px;color:#fff;display:block;font-size:1.14em;font-weight:700;height:1.375em;line-height:.4em;margin:1px;padding:0;text-align:center;text-decoration:none;width:1.375em}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-control button span{pointer-events:none}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-size:1.2em;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{background-color:rgba(0,60,136,.7);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{bottom:.5em;max-width:calc(100% - 1.3em);right:.5em;text-align:right}.ol-attribution ul{color:#000;margin:0;padding:0 .5em;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;left:.5em;top:4.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-viewport>div.ol-unselectable>div img{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ol-box{background-color:rgba(51,124,235,.33)!important;border:1px solid #337ceb!important}.ol-zoom>button{background-color:#fff!important;box-shadow:0 1px 3px 0 #cacaca;color:#404040!important;cursor:pointer;font-size:18px!important;height:30px!important;margin:0!important;opacity:.75;padding:0;text-align:center;width:30px!important}.ol-zoom>button:focus,.ol-zoom>button:hover{background-color:transparent;outline:none!important}.ol-zoom>button:hover{opacity:1}.ol-zoomslider{height:198px!important;overflow:auto!important}.ol-zoomslider>button.ol-zoomslider-thumb{background-color:#f0f0f0;border:1px solid rgba(64,64,64,.4);border-radius:20px;height:20px!important;margin:-5px;padding:0;width:20px!important}@-moz-document url-prefix(){.ol-zoomslider>button.ol-zoomslider-thumb{position:relative!important}}.ol-scale-line .ol-scale-line-inner{border-color:#404040;color:#404040}@media only screen and (max-width:768px){.ol-scale-line-up{margin-bottom:30px;margin-left:-15px}}.ol-overviewmap{background-color:#fff!important;border-radius:4px!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;display:block;display:relative!important;margin-left:10px!important;order:1!important;transition:border-radius .33s ease 0s}.ol-overviewmap:not(.ol-collapsed) button{background-color:#fff!important;border-radius:15px;font-size:6px;left:auto!important;padding:0 2px 2px;position:static!important;position:absolute!important;right:0!important;right:4px}.ol-overviewmap:not(.ol-collapsed) .ol-overviewmap-map{margin:4px!important}.ol-overviewmap:not(.ol-collapsed)>button:before{font-size:11px!important}.ol-overviewmap.ol-collapsed{border-radius:20px!important}.ol-overviewmap .ol-overviewmap-map{border:0!important;transition:width .33s ease 0s,height .33s ease 0s}.ol-overviewmap.ol-collapsed .ol-overviewmap-map{display:inline-block!important;height:0;margin:0;padding:0;width:0}.ol-overviewmap>button{bottom:4px!important}.ol-overviewmap.ol-collapsed>button,.ol-overviewmap>button{background-color:transparent!important;background:none;border:none;border-radius:20px;color:#404040!important;cursor:pointer;font-family:g-cartografia!important;font-size:15px!important;height:20px!important;margin:0!important;opacity:.75!important;padding:0;width:20px!important;speak:none;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.ol-overviewmap.ol-collapsed>button:hover{opacity:1}.ol-overviewmap.ol-collapsed>button{height:40px!important;width:40px!important}.ol-overviewmap>button:active,.ol-overviewmap>button:focus,.ol-overviewmap>button:hover{background-color:transparent;outline:none}.ol-overviewmap>button>span{display:none}@media only screen and (max-width:768px){.ol-overviewmap{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container,.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{border-radius:20px!important}.m-panel.m-map-info>div.m-panel-controls>div.ol-overviewmap{order:1}.m-wmcselector-container{bottom:8px;display:block;margin:0;padding:0;right:60px}.m-wmcselector-container:before{font-family:g-cartografia!important}.m-wmcselector-select{-webkit-appearance:none;background-color:#fefefe;border:none;color:#6c6c6c;font-weight:400;margin:0;outline:none;text-decoration:none}.m-layerswitcher-container{overflow-y:auto!important;position:absolute;right:.5em;text-align:left;top:.5em;width:100%}@media only screen and (min-width:769px){.m-layerswitcher-container{min-width:440px!important}}.m-layerswitcher-container .m-layersiwtcher-panel{background-color:#f4f4f4;margin:0;max-height:100%;right:0;text-align:left;top:0}.m-layerswitcher-container li.group{padding-bottom:8px;padding-top:5px;text-align:center}.m-layerswitcher-container li.group>div{border-bottom:1px solid rgba(0,0,0,.08);color:#404040;font-family:Muli,"sans-serif"!important;font-size:15px;line-height:normal;line-height:40px;margin:0;text-align:center}.m-layerswitcher-container li div{font-family:sans-serif;font-size:.8em;font-size:15px;line-height:1.4em;line-height:40px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.m-layerswitcher-container ul>li{overflow:hidden}.m-layerswitcher-container ul>li.group>ul>li{background-color:#fff;margin:10px}.m-layerswitcher-container li span.m-check{color:#6abe47;margin:0 1% 0 0}.m-layerswitcher-container li input.m-layerswitcher-transparency{margin-right:3%;width:74%}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{margin-top:16px;width:81%}.m-layerswitcher-container .tools span{display:block;margin-left:143px;margin-top:-12px}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-layerswitcher-container li input.m-layerswitcher-transparency{display:block;margin-top:1px}.m-layerswitcher-container .tools span{display:block;float:right;margin-right:13%;margin-top:-52px}}.m-layerswitcher-container li span.m-layerswitcher-remove{color:rgba(0,0,0,.53);cursor:pointer;font-size:11px}@media only screen and (max-width:768px){.m-layerswitcher-container li span.m-check{font-size:2em;margin-right:5%}.m-layerswitcher-container li input.m-layerswitcher-transparency{display:none;width:77%}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{width:66%}}.m-layerswitcher-container li span.m-layerswitcher-remove{font-size:13px}.m-layerswitcher-container li.visible input.m-layerswitcher-transparency{display:initial}.m-layerswitcher-container li.visible span.m-layerswitcher-remove{font-size:11px}}.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{border-bottom:none;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0 5px;text-align:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-layersiwtcher-panel li.visible>div.tools{height:auto;width:40%}.m-layersiwtcher-panel div.tools{float:right;text-align:left}.m-layersiwtcher-panel li.visible>div.layer{margin-bottom:4px}.m-layersiwtcher-panel div.layer{float:left;margin-bottom:4px;width:55%}@media only screen and (max-width:768px){.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{padding-right:0;width:90%}}.m-layersiwtcher-panel li.visible>div.layer-base{border:0;margin:0}.m-layersiwtcher-panel li>div.legend{height:0;text-align:left;width:100%}.m-layersiwtcher-panel li.visible>div.legend{height:auto;margin:0 auto;width:90%}@media only screen and (max-width:768px){.m-layersiwtcher-panel li.visible>div.tools{float:none;width:90%}.m-layersiwtcher-panel div.tools{float:right;margin:0 auto;text-align:left;width:calc(10% - 5px)}}.m-layerswitcher-container li.disabled span{color:#666}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{color:#fda823;height:40px}.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{background-color:#fda823;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);color:#fff;left:-40px;position:absolute;z-index:999999}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{background-color:transparent;box-shadow:none;color:#fda823;left:auto;position:absolute;right:0;z-index:999999}}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>button.m-panel-btn{box-shadow:none;color:#fda823;left:0;position:inherit}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{padding:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{border-top-left-radius:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-width:61vw}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{height:100vh;left:0;margin:0;position:fixed;top:0;width:100vw;z-index:10000}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-height:100vh;max-width:100vw;width:100%}}input[type=range].m-layerswitcher-transparency{-webkit-appearance:none;height:8px;width:30%}@media (-ms-high-contrast:active),(-ms-high-contrast:none){input[type=range].m-layerswitcher-transparency{height:auto}}input[type=range].m-layerswitcher-transparency:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{background:rgba(0,0,0,.31);border-radius:12px;cursor:pointer;height:2px;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;background-color:#fda823;border-radius:15px;cursor:pointer;height:10px;margin-top:-4px;width:10px}@media only screen and (max-width:768px){input[type=range]::-webkit-slider-thumb{height:12px;width:12px}}input[type=range]::-moz-range-track{background:rgba(0,0,0,.31);border-radius:12px;cursor:pointer;height:2px;width:100%}input[type=range]::-moz-range-thumb{-webkit-appearance:none;background:#fff;background-color:#fda823;border:none;cursor:pointer;height:10px;margin-top:20px;width:10px}input[type=range]::-ms-track{background:transparent;border-color:transparent;border-width:12px;color:transparent;cursor:pointer;height:2px;margin-top:-8px;width:100%}input[type=range]::-ms-thumb{-webkit-appearance:none;background-color:#fda823;border:none;border-radius:15px;cursor:pointer;height:10px;width:10px}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd;border-radius:10px}input[type=range]:disabled::-moz-range-thumb,input[type=range]:disabled::-ms-thumb,input[type=range]:disabled::-webkit-slider-thumb{background-color:#848484}input[type=range]:disabled{opacity:.5}.m-areas>div.m-area>div.m-panel.m-layerswitcher{background-color:#f4f4f4}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{overflow:hidden;overflow-y:auto;padding-right:0}.m-layersiwtcher-panel>ul{margin:0;padding:0}.m-layerswitcher-container ul.m-base-layers,.m-layerswitcher-container ul.m-groups,.m-layerswitcher-container ul.m-layers,ul.m-groups>li.m-group>ul.m-layers{list-style:none;padding:10px}ul.m-groups>li.m-group{background:#eaeaea}ul.m-base-layers>li.m-layer,ul.m-groups>li.m-group,ul.m-layers>li.m-layer{box-shadow:0 1px 2px rgba(0,0,0,.3)}ul.m-groups>li.m-group>.m-title{cursor:pointer}ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{float:left;width:24px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{display:inline-block;text-align:left;width:59%}@-moz-document url-prefix(){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{display:inline-block;text-align:left;width:59%}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:57%}}}ul.m-groups>li.m-group>.m-title{float:left;width:calc(96% - 48px)}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{width:38px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:53%}ul.m-groups>li.m-group>.m-title{width:calc(94% - 48px)}}ul.m-groups>li.m-group>.m-collapsed-icon{cursor:pointer;width:24px}ul.m-base-layers,ul.m-layers{background-color:#f9f9f9}ul.m-base-layers>li,ul.m-layers>li{background-color:#fff;border:1px solid rgba(0,0,0,.1);margin-bottom:5px}ul.m-base-layers>li>div.m-legend,ul.m-layers>li>div.m-legend{padding-bottom:12.5px;padding-top:12.5px}ul.m-base-layers>li>div.m-legend{max-width:50vw}ul.m-base-layers>li>div.m-legend>img,ul.m-layers>li>div.m-legend>img{margin:auto!important;max-width:45vw}.m-popup{background-color:#fff;border:1px solid #ccc;border-radius:5px;bottom:12px;box-shadow:2px 2px 8px -4px rgba(0,0,0,.53);left:-50px;position:absolute}.m-popup:after,.m-popup:before{border:solid transparent;content:" ";height:0;pointer-events:none;position:absolute;top:100%;width:0}.m-popup:after{border-top-color:#fff;border-width:10px;left:48px;margin-left:-10px}.m-popup:before{border-top-color:#ccc;border-width:11px;left:48px;margin-left:-11px}.m-popup-content{max-height:70vh;max-width:50vw;min-width:170px;overflow-x:auto;width:auto}.m-popup>div.m-content>div.m-header{cursor:pointer}.m-popup>div.m-content>div.m-header>div.m-subtitle,.m-popup>div.m-content>div.m-header>div.m-title{display:none}.m-popup-closer{color:gray;font-size:100%;padding:0 4px;position:absolute;right:2px;text-decoration:none;top:2px}.m-popup-closer:after{content:"\2716"}.m-popup div.infoResult{min-width:130px}.m-popup div.infoResult p{margin:0;padding:.1em}.m-popup-content h3{margin:.25em 0}.m-popup.marker{margin-bottom:30px}.m-popup .m-content{margin:0;padding:15px 27px 15px 15px}.m-popup .m-footer{display:flex;margin:0;padding:5px 0}.m-popup .m-footer>a>button{background-color:transparent;border:none;color:#337ceb;cursor:pointer;font-size:18px;transition:color .3s}.m-popup .m-footer>a>button:hover{color:#d9534f}.m-popup>div.m-content>div.m-body{max-height:50vh;overflow-x:hidden;overflow-y:auto;width:calc(100% + 15px)}@media only screen and (max-width:768px){.m-popup>div.m-content>div.m-body{margin-left:15px;margin-top:15px;width:calc(100% - 30px)}}.m-popup>div.m-popup-content>div.m-content+div.m-content{margin-top:10px}.m-popup>div.m-popup-content>div.m-content>p.m-title{background-color:#dedede;color:#404040;font-size:15px;font-weight:700;line-height:30px;margin-top:0;text-align:center}.m-popup>div.m-popup-content>div.m-content:last-child{border-bottom:0}.m-popup div.m-editattribute-content button.save{background-color:#fff;border:1px solid rgba(0,0,0,.4);border-radius:4px;color:#404040;cursor:pointer;display:table;font-family:Muli,"sans-serif"!important;font-size:15px;line-height:25px;margin:10px 0;opacity:.75;padding:5px;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s;width:97%}.m-popup div.m-editattribute-content button.save:hover{opacity:1}.m-popup.m-has-tabs{border-top-left-radius:0;min-width:150px}.m-popup>div.m-tabs{display:inline-flex;left:-1px;margin:0;position:absolute;top:-29px}.m-popup>div.m-tabs>div.m-tab{background-color:#f2f2f2;border:1px solid #ccc;border-right:0;cursor:pointer;font-size:18px;height:17px;margin:0;padding:5px;text-align:center;width:30px}.m-popup>div.m-tabs>div.m-tab:first-child{border-top-left-radius:4px}.m-popup>div.m-tabs>div.m-tab:last-child{border-right:1px solid #ccc;border-top-right-radius:4px}.m-popup>div.m-tabs>div.m-tab.m-activated{background-color:#fff;border-bottom:0;height:18px}@media only screen and (max-width:768px){.m-popup{border-bottom-left-radius:0;border-bottom-right-radius:0;height:100vh;left:0;margin:0;padding:0;position:fixed;width:100vw;z-index:1500}.m-popup .m-footer{display:flex;padding:15px 5px;position:relative}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{align-items:center;display:flex;flex-flow:column;flex-wrap:nowrap;justify-content:center;padding-top:5px;text-align:center}.m-popup:not(.m-has-tabs)>div.m-content>div.m-header{box-shadow:0 0 7px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);flex-flow:row;height:10vh;justify-content:flex-end;padding-top:0;position:relative}.m-popup.m-has-tabs>div.m-content>div.m-header{height:0;margin:0;padding:0}.m-popup>div.m-tabs{align-items:stretch;flex-flow:row;height:10vh;left:0;margin:0;padding:0;position:relative;top:0;width:100%}.m-popup>div.m-tabs>div.m-tab,.m-popup>div.m-tabs>div.m-tab.m-activated{align-items:center;border-radius:0;border-top:0;display:flex;font-size:24px;height:100%;justify-content:center;margin:0;padding:0;width:100%}.m-popup>div.m-tabs>div.m-tab:first-child{border-left:0}.m-popup>div.m-content{padding:0}.m-popup>div.m-content>div.m-header>div.m-title{display:initial;font-size:1.2em;font-weight:700;width:100%}.m-popup>div.m-content>div.m-header>div.m-subtitle{display:initial;font-size:1em;font-style:italic}.m-popup.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{height:40px;position:absolute;right:0}.m-popup>div.m-content>div.m-body{max-height:100vh;overflow-y:auto}.m-popup.m-collapsed>div.m-tabs,.m-popup:not(.m-has-tabs).m-collapsed>div.m-content>div.m-header{height:7vh}.m-popup.m-collapsed>div.m-content>div.m-body{height:0}.m-popup.m-collapsed{top:92%}.m-popup.m-collapsed.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{display:none}.m-popup.m-default>div.m-tabs,.m-popup:not(.m-has-tabs).m-default>div.m-content>div.m-header{height:7vh}.m-popup.m-default>div.m-content>div.m-body{height:48vh}.m-popup.m-default{top:45vh}.m-popup.m-default.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup.m-full>div.m-tabs,.m-popup:not(.m-has-tabs).m-full>div.m-content>div.m-header{height:7vh}.m-popup.m-full>div.m-content>div.m-body{height:93vh}.m-popup.m-full{top:0}.m-popup>div.m-content>div.m-header>a.m-popup-closer{align-items:center;display:flex;font-family:g-cartografia;font-size:22px;height:100%;justify-content:flex-end;margin:0;padding:0;position:inherit;width:40px}.m-popup>div.m-content>div.m-header>a.m-popup-closer:after{content:"\e919"}.m-popup.m-full.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup:not(.m-no-animation){-webkit-transition:top .5s ease 0s;transition:top .5s ease 0s}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{-webkit-transition:height .5s ease 0s,background-color .5s ease 0s;transition:height .5s ease 0s,background-color .5s ease 0s}.m-popup>div.m-content>div.m-header>div.m-title,.m-popup>div.m-tabs>div.m-tab{-webkit-transition:font-size .5s ease 0s;transition:font-size .5s ease 0s}}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result{border-top:1px solid rgba(0,0,0,.13)}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table{border-top:1px dashed rgba(0,0,0,.09);width:100%}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{text-align:right}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key{font-weight:700}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key,.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{white-space:nowrap}@supports (overflow:-webkit-marquee) and (justify-content:inherit){@media only screen and (max-width:768px){.m-popup.m-collapsed{top:87vh}}}.unsetTransform{transform:unset!important}.m-dialog{height:100%;left:0;position:absolute;top:0;width:100%;z-index:99999}.m-dialog>div.m-modal{align-items:center;background-color:hsla(0,0%,100%,.5);display:flex;height:100%;width:100%}.m-dialog>div.m-modal>div.m-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);margin:0 auto;max-height:70vh;max-width:70vw;min-width:30vw;padding:10px;position:relative}.m-dialog div.m-title{font-weight:700;line-height:40px;text-align:center}.m-dialog div.m-message{border-bottom:1px solid rgba(0,0,0,.2);font-size:15px;padding:10px 5px}.m-dialog div.m-button>button{background-color:transparent;border:none;box-shadow:none;cursor:pointer;font-weight:700;margin-top:10px;padding:5px;width:50px}.m-dialog div.m-button{text-align:right}.m-dialog.info div.m-button>button,.m-dialog.info div.m-title{background-color:#337ceb;color:#fff}.m-dialog.error div.m-button>button,.m-dialog.error div.m-title{background-color:#d9534f;color:#fff}.m-dialog.success div.m-button>button,.m-dialog.success div.m-title{background-color:#67af13;color:#fff}.m-location-container{left:600px;top:20px}.m-location-container.m-locating>button#m-location-button:before{animation:mloading 1s linear infinite;left:11px;position:absolute;top:11px}.m-location-container.m-locating>button#m-location-button{padding:8px}@supports (-ms-ime-align:auto){.m-location-container.m-locating>button#m-location-button{height:36px}}.m-scale-container{background-color:rgba(0,60,136,.5);border-bottom-left-radius:2px;border-top-left-radius:2px;bottom:2em;box-shadow:0 1px 2px rgba(0,0,0,.3);display:block;font-size:smaller;font-weight:700;font-weight:400;margin:0;padding:5px;right:0}.m-scale-container>.m-unit{font-family:Muli!important;line-height:normal}.m-scale-container>.m-scale{line-height:normal}.m-scale-container>.m-unit:before{color:#a35d38;font-family:g-cartografia!important;font-size:12px!important;margin-right:5px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div.m-control.m-rotate-container button[class^=g-cartografia-]#m-rotate-button{background-color:#fff;border-radius:50%;color:#337ceb;cursor:pointer;font-size:1.5rem;left:19%;padding:0;position:absolute;top:23%;z-index:200}.m-rotate-slider{border-radius:50%;cursor:pointer;height:30px;position:absolute;width:30px}#m-rotate-slider-container{height:40px;width:40px}#m-rotate-marker{height:45px;position:absolute;width:45px}#m-rotate-marker-circle{stroke:#337ceb;fill:#fff;cursor:pointer}.m-mouse-position{white-space:pre}.m-mouse-position:before{color:#a35d38;font-family:g-cartografia!important;margin-right:5px}@media only screen and (max-width:768px){.m-mouse-position{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>.m-mouse-position{border-radius:20px!important;order:4}.m-panel.m-map-info.m-with-scale>div.m-panel-controls>.m-mouse-position,.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>.m-mouse-position{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.m-getfeatureinfo-container{left:300px;top:20px}.m-popup table.mapea-table td.header{border-bottom:1px ridge #6c6c6c;padding-top:10px;text-align:center}.m-getfeatureinfo-content-info{margin-bottom:.7rem;min-width:250px}.m-getfeatureinfo-content-info-body.m-content-collapsed,span.m-content-collapsed{display:none}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header{align-items:center;background-color:#eee;color:#000;display:flex;font-size:12px;margin-bottom:5px;padding:5px}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-right{border:7px solid transparent;border-left-color:#000;cursor:pointer}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-down{border:7px solid transparent;border-top-color:#000;cursor:pointer;margin-right:5px}.m-areas{height:0;left:0;max-height:0;top:0;width:0}.m-areas>div.m-area{-webkit-display:flex;display:flex;-webkit-flex-flow:column nowrap;flex-flow:column nowrap;position:absolute}.m-areas>div.m-area.m-top{top:0}.m-areas>div.m-area.m-bottom{bottom:0;max-width:0;width:0}.m-areas>div.m-area.m-bottom.m-right{z-index:10}.m-areas>div.m-area.m-left{-webkit-align-items:flex-start;align-items:flex-start;left:0}.m-areas>div.m-area.m-right{-webkit-align-items:flex-end;align-items:flex-end;right:0}@media only screen and (max-width:768px){.m-areas>div.m-area.m-top.top-extra{top:65px}.m-areas>div.m-area.m-top.top-extra.top-extra-search{top:75px}.m-areas>div.m-area.m-top.top-extra.top-extra-searchs{top:135px}}.m-areas>div.m-area>div.m-panel{background:#fff;border-radius:4px;box-sizing:border-box;position:relative;z-index:999}.m-areas>div.m-area>div.m-panel,div.m-panel>button{box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}.m-areas>div.m-area.m-top>div.m-panel{margin-top:10px}.m-areas>div.m-area.m-bottom>div.m-panel{margin-bottom:10px}.m-areas>div.m-area.m-left>div.m-panel{margin-left:10px}.m-areas>div.m-area.m-right>div.m-panel{margin-right:10px}.m-areas>div.m-area>div.m-panel.no-collapsible{border-radius:20px}.m-areas>div.m-area>div.m-panel>button.m-panel-btn{box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);color:#fff}.m-areas>div.m-area>div.m-panel.no-collapsible>div.m-panel-controls>div.m-control>button,.m-areas>div.m-area>div.m-panel>button.m-panel-btn{background:none;border:0;box-sizing:border-box;cursor:pointer;font-family:g-cartografia!important;font-size:19px;height:40px;padding:0;-webkit-transition:opacity .25s ease 0s,color .25s ease 0s;transition:opacity .25s ease 0s,color .25s ease 0s;width:40px;speak:none;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.m-areas>div.m-area>div.m-panel.opened>button.m-panel-btn{font-size:15px}.m-areas>div.m-area.m-left>div.m-panel>button.m-panel-btn{border-bottom-right-radius:4px;border-top-right-radius:4px;float:right}.m-areas>div.m-area.m-left>div.m-panel.collapsed>button.m-panel-btn{box-shadow:none;position:inherit;right:0}.m-areas>div.m-area.m-right>div.m-panel>button.m-panel-btn{border-bottom-left-radius:4px;border-top-left-radius:4px;float:left}.m-areas>div.m-area>div.m-panel.m-tools>button.m-panel-btn{background-color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>button.m-panel-btn{background-color:#67af13}.m-areas>div.m-area>div.m-panel.m-tools.collapsed>button.m-panel-btn{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition.collapsed>button.m-panel-btn{color:#67af13}.m-areas>div.m-area>div.m-panel.collapsed>button.m-panel-btn{background-color:#fff!important;border-radius:20px}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus{outline:none}.m-areas>div.m-area>div.m-panel.no-collapsible>button.m-panel-btn{display:none}.m-areas>div.m-area.m-left>div.m-panel,.m-areas>div.m-area.m-left>div.m-panel>div.m-panel-controls{align-items:flex-end;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.m-areas>div.m-area>div.m-panel.m-tools{order:-90}.m-areas>div.m-area>div.m-panel.m-edition{order:-80}.m-areas>div.m-area>div.m-panel.m-panzoombar{border-radius:20px;margin-left:25px;margin-top:8px;order:-69;width:10px}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-panzoombar{display:none}}.m-areas>div.m-area>div.m-panel.m-panzoom{border-radius:4px;height:60px;margin-left:15px;order:-70;width:30px}.m-areas>div.m-area>div.m-panel.m-scaleline{background-color:transparent;box-shadow:none;left:20px}.m-areas>div.m-area>div.m-panel.m-location>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-mouse{border-radius:4px;padding:5px}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls{width:auto}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls:before{background:none;font-size:15px}.m-areas>div.m-area>div.m-panel.m-overviewmap{box-shadow:none}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:flex}@-moz-document url-prefix(){.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:inline-flex}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-areas>div.m-area>div.m-panel.collapsed{height:auto!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{width:40px!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{width:100%!important}.m-areas>div.m-area>div.m-panel.m-panzoom{height:auto!important}.m-printer.opened .m-printer-container .form{min-height:176px}.m-printer-container>div.button>button.print{width:57%!important}}@supports (overflow:-webkit-marquee) and (justify-content:inherit){.m-areas>div.m-area.m-top{top:0}}.m-areas>div.m-area.m-bottom,.m-areas>div.m-area.m-top,.m-areas>div.m-area>div.m-panel.m-map-info,.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls{visibility:hidden}.m-areas>div.m-area>div.m-panel{visibility:visible}.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls>div{visibility:visible!important}.m-areas>div.m-area>div.m-panel{-webkit-transition:border-radius .5s ease 0s;transition:border-radius .5s ease 0s}.m-areas>div.m-area>div.m-panel.collapsed{border-radius:20px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{border-radius:10px;opacity:1;-webkit-transition:max-width 1s ease 0s,opacity .75s ease .1s;transition:max-width 1s ease 0s,opacity .75s ease .1s}.m-areas>div.m-area>div.m-panel.collapsed>div.m-panel-controls{max-width:0;opacity:0;-webkit-transition:max-width .4s ease 0s,opacity .3s ease 0s;transition:max-width .4s ease 0s,opacity .3s ease 0s}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div{background-color:transparent;border-radius:0;box-shadow:none;display:table;overflow:hidden;padding:0;position:inherit!important}.m-areas>div.m-area>div.m-panel.m-tools>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>div.m-panel-controls>div.m-control.activated>button{color:#67af13}@media only screen and (min-width:769px){.m-geosearch.collapsed .m-panel-controls,.m-searchstreet.collapsed .m-panel-controls,.m-searchstreetgeosearch.collapsed .m-panel-controls{display:none!important}}.m-edition.collapsed .m-panel-controls,.m-tools.collapsed .m-panel-controls{display:none!important}.m-map-info>div.m-panel-controls{align-items:flex-end;flex-direction:row-reverse}.m-map-info{background:transparent!important;border-radius:0!important;box-shadow:none!important;order:4;right:0}.m-location{order:1;z-index:97}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container{order:3}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important}}.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{order:2}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-wmcselector-container,.m-panel.m-map-info.m-with-scale>div.m-panel-controls>div.m-control.m-wmcselector-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse:not(.m-with-scale)>div.m-panel-controls>div.m-control.m-wmcselector-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important}}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position{display:inline;height:15px!important}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position,.m-scale-container{background-color:#fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;padding:6px 12px 3px!important}.m-scale-container{display:flex!important;height:15px;white-space:pre}.m-scale-container:before{color:#a35d38;margin-right:5px}.m-wmcselector-container{background-color:#fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;display:flex!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;height:17px;padding:4px 10px 3px 12px!important}.m-wmcselector-container:before{color:#a35d38;margin-right:5px;margin-top:3px}@media only screen and (max-width:768px){.m-scale-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important;padding:6px 12px 3px!important}}@media only screen and (min-width:769px){.m-geosearch.collapsed div.results-panel,.m-geosearch.collapsed div.search-panel{display:none!important}}.m-kml-desc>table{width:100%} -/*# sourceMappingURL=mapea-6.5.0.ol.min.css.map*/ \ No newline at end of file +@font-face{font-display:block;font-family:g-cartografia;font-style:normal;font-weight:400;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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#iefix) format("embedded-opentype"),url(data:font/ttf;base64,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) format("truetype"),url(data:font/woff;base64,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) format("woff"),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxmb250IGlkPSJnLWNhcnRvZ3JhZmlhIiBob3Jpei1hZHYteD0iMTAyNCI+PGZvbnQtZmFjZSBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTY0IiB1bml0cy1wZXItZW09IjEwMjQiLz48Z2x5cGggaG9yaXotYWR2LXg9IjUxMiIvPjxnbHlwaCBkPSJNMTAxMi42NTEgMTIwLjc3NSA1ODUuOTg0IDg2MC4zMzFjLTE0Ljc2MyAyNS41NDMtNDIuMzgyIDQyLjc4LTczLjk4NCA0Mi43OHMtNTkuMjIxLTE3LjIzNy03My45ODQtNDIuNzhMMTEuMzQ5IDEyMC43NzVBODUuMTQgODUuMTQgMCAwIDEgMCA3OC4yMjJDMCAzMS4xMTggMzguMjI5LTcuMTExIDg1LjMzMy03LjExMWg4NTMuMzMzYzQ3LjEwNCAwIDg1LjMzMyAzOC4yMjkgODUuMzMzIDg1LjMzMyAwIDE1LjUwMi00LjEyNCAzMC4wMzctMTEuMzQ5IDQyLjU1M3pNODUuMjc2IDc4LjEzN2w0MjYuNzggNzM5LjU1NiA0MjYuNjEtNzM5LjQ3ek01MTIgMjc3LjMzM2MtMzEuNDAzIDAtNTYuODg5LTI1LjQ4Ni01Ni44ODktNTYuODg5IDAtMzEuNDMxIDI1LjQ1OC01Ni44ODkgNTYuODg5LTU2Ljg4OXM1Ni44ODkgMjUuNDg2IDU2Ljg4OSA1Ni44ODktMjUuNDU4IDU2Ljg4OS01Ni44ODkgNTYuODg5bS01Ni44ODkgMjU2YzAtMy4yNDMuMjg0LTYuNDU3Ljc5Ni05LjU1N2wyOC4wMTgtMTY1Ljg4OGMyLjMwNC0xMy40NTQgMTMuOTk1LTIzLjY2NiAyOC4wNzUtMjMuNjY2czI1Ljc3MSAxMC4yMTIgMjguMDQ2IDIzLjY2NmwyOC4wMTggMTY1Ljg4OGMuNTQgMy4xLjgyNSA2LjMxNS44MjUgOS41NTcgMCAzMS40MDMtMjUuNDU4IDU2Ljg4OS01Ni44ODkgNTYuODg5LTMxLjQwMyAwLTU2Ljg4OS0yNS40ODYtNTYuODg5LTU2Ljg4OSIgZ2x5cGgtbmFtZT0iYWxlcnRhIiB1bmljb2RlPSLupIAiLz48Z2x5cGggZD0iTTkyMi45OTQgNjk4LjcxOEM5MjIuOTcgNzg3LjE1MiA4NTEuMTI4IDg1OC45NyA3NjIuNzA0IDg1OUgyNjEuMjk2Yy04OC40My0uMDMyLTE2MC4yNjYtNzEuODU4LTE2MC4yOTgtMTYwLjI5NFYxOTcuMzA0Yy4wMy04OC40MyA3MS44NzItMTYwLjI2MiAxNjAuMjk4LTE2MC4yOTJ2LjAwMmg1MDEuNDA2Yzg4LjQzLjAyNiAxNjAuMjY4IDcxLjg1OCAxNjAuMjk2IDE2MC4yOTJ2NTAxLjR6bS04MS45OTgtNTAyLjUzNGMtLjMwMi0yMS4xNjgtOC45ODYtNDAuMjI2LTIyLjk1Ni01NC4yMTgtMTQuMjQtMTQuMjEyLTMzLjcyNC0yMi45NTgtNTUuMzM4LTIyLjk2MkwyNjEuMjk0IDExOWMtMjEuNjE2LjAwOC00MS4wOTYgOC43NTQtNTUuMzM0IDIyLjk2Ni0xNC4yMTIgMTQuMjM2LTIyLjk1OCAzMy43MTgtMjIuOTYyIDU1LjMzNmwtLjAwNCA1MDEuNDAyYy4wMDggMjEuNjE0IDguNzU0IDQxLjA5NCAyMi45NjYgNTUuMzMyIDE0LjIzOCAxNC4yMSAzMy43MiAyMi45NTggNTUuMzM2IDIyLjk2SDc2Mi43YzIxLjYyLS4wMDIgNDEuMS04Ljc1IDU1LjMzNi0yMi45NTggMTQuMjA4LTE0LjIzNCAyMi45NTQtMzMuNzE4IDIyLjk1OC01NS4zMzJWMTk2LjE4NHpNNTEyLjAwOCA2OTkuMTkydi0xNi4wMDRoLS4wMDZ2MTYuMDA2Yy03Ni40MTYtLjAzNC0xMzguNDctNjIuMDk4LTEzOC41MDgtMTM4LjUxOC4wMS0yMi42NCAxOC4zNDYtNDAuOTg0IDQxLjAwMi00MSAyMi42NTIuMDE2IDQwLjk4OCAxOC4zNiA0MSA0MSAuMDA2IDE1LjYxIDYuMzA4IDI5LjY0OCAxNi41NzQgMzkuOTQyIDEwLjI5NCAxMC4yNjggMjQuMzI4IDE2LjU3IDM5LjkzNCAxNi41NzggMTUuNjA2LS4wMDggMjkuNjM2LTYuMzEyIDM5LjkyOC0xNi41NzggMTAuMjcyLTEwLjI5NCAxNi41NjQtMjQuMzMyIDE2LjU3NC0zOS45NDItLjEyNi03LjQ4NC0yLjE3OC0xMi43OTQtOC4yNjQtMjAuNjc0LTYuMDY2LTcuNzA0LTE2LjM2OC0xNi43ODYtMjkuOTM0LTI3LjkyNi0xMi41My0xMC4zNjYtMjYuODMtMjEuOTg2LTM4LjU3NC0zNi45NDQtMTEuNzE0LTE0Ljg1Mi0yMC44MDItMzMuOTE4LTIwLjczNi01Ni43NDJ2LTQ4LjIwOGMuMDE2LTIyLjY1IDE4LjM1Mi00MC45ODYgNDEuMDA4LTQxLjAwNCAyMi42NTIuMDIgNDAuOTg0IDE4LjM2IDQxIDQxLjAwMnY0OC4yMDhjMCAuMTc0LjAzLjk0Mi45NjYgMi43MjIgMS4zNDggMi42MjIgNC44MTYgNi44OTYgOS44NjggMTEuNjY0IDUuMDM2IDQuOCAxMS41NCAxMC4xODQgMTguNjM0IDE2LjAzIDEzLjg1NCAxMS40NTggMzAuNDggMjQuOTg2IDQ0LjA4OCA0Mi45NDQgMTMuNjE0IDE3Ljg3MiAyNC4wMjggNDAuOSAyMy45NTQgNjguOTI2LS4wMDQgMC0uMDA0LjAwOC0uMDA0LjAwOC0uMDMyIDc2LjQyMi02Mi4wOTQgMTM4LjQ3OC0xMzguNTA0IDEzOC41MW0tLjAwNi00MDYuMjM0Yy0yNi41NTItLjAzNi00OC4wNC0yMS41My00OC4wNzItNDguMDcyLjAzLTI2LjU0NiAyMS41MTgtNDguMDM4IDQ4LjA3Mi00OC4wNyAyNi41NDYuMDMgNDguMDM4IDIxLjUyIDQ4LjA2NiA0OC4wNy0uMDI4IDI2LjU1Mi0yMS41MiA0OC4wMzQtNDguMDY2IDQ4LjA3MiIgZ2x5cGgtbmFtZT0iYXl1ZGEiIHVuaWNvZGU9Iu6kgSIvPjxnbHlwaCBkPSJNOTA0LjkyOCA4OTguMjcyYy0xNC4yNCA4LjczNi0zMi4xMjggOS4zNDQtNDcuMDA4IDEuNjMyQzgxOS45NjggODgwLjI1NiA3ODIuNjI0IDg2NCA3MTAuNTI4IDg2NGMtNzkuMzI4IDAtMTE2LjY3MiAxOS42OC0xNTkuOTY4IDQyLjQ2NEM1MDIuODggOTMxLjU1MiA0NDguODY0IDk2MCAzNDUuODg4IDk2MGMtNzEuMjY0IDAtMTE4Ljg4LTEzLjYzMi0xNTcuMzQ0LTMwLjI3MkMxODEuNDcyIDk0Ny40MjQgMTY0LjI1NiA5NjAgMTQ0IDk2MGMtMjYuNDk2IDAtNDgtMjEuNDcyLTQ4LTQ4Vi0xNmMwLTI2LjUyOCAyMS41MDQtNDggNDgtNDhzNDggMjEuNDcyIDQ4IDQ4djM5Mi43NjhDMjMyLjc2OCAzOTguMTQ0IDI3MC4zNjggNDE2IDM0NS44ODggNDE2Yzc5LjI5NiAwIDExNi42NzItMTkuNjggMTU5LjkzNi00Mi40NjRDNTUzLjUwNCAzNDguNDQ4IDYwNy40ODggMzIwIDcxMC41MjggMzIwYzkzLjUzNiAwIDE0NS45MiAyMy4wNCAxOTEuNTIgNDYuNjI0QTQ3Ljk5IDQ3Ljk5IDAgMCAxIDkyOCA0MDkuMjh2NDQ4YTQ3Ljk2IDQ3Ljk2IDAgMCAxLTIzLjA3MiA0MC45OTJNODMyIDQzOS4yOTZDODAxLjQwOCA0MjUuNzYgNzY2LjQzMiA0MTYgNzEwLjUyOCA0MTZjLTc5LjMyOCAwLTExNi42NzIgMTkuNjgtMTU5Ljk2OCA0Mi40NjRDNTAyLjg4IDQ4My41NTIgNDQ4Ljg2NCA1MTIgMzQ1Ljg4OCA1MTJjLTY5LjA4OCAwLTExNi0xMi43NjgtMTUzLjg4OC0yOC43MzZ2MzQxLjUwNEMyMzIuNzY4IDg0Ni4xNDQgMjcwLjM2OCA4NjQgMzQ1Ljg4OCA4NjRjNzkuMjk2IDAgMTE2LjY3Mi0xOS42OCAxNTkuOTM2LTQyLjQ2NEM1NTMuNTA0IDc5Ni40NDggNjA3LjQ4OCA3NjggNzEwLjUyOCA3NjhjNTAuNzg0IDAgODkuNDQgNi43ODQgMTIxLjQ3MiAxNi43Njh6IiBnbHlwaC1uYW1lPSJiYW5kZXJhIiB1bmljb2RlPSLupIIiLz48Z2x5cGggZD0iTTUxMiA5NjBDMjI5LjIyOSA5NjAgMCA3MzAuNzY5IDAgNDQ4UzIyOS4yMzEtNjQgNTEyLTY0YzI4Mi43NzEgMCA1MTIgMjI5LjIzMSA1MTIgNTEyUzc5NC43NzEgOTYwIDUxMiA5NjBtMC05MjcuNzQyQzI4Mi40MDcgMzIuMjU4IDk2LjI1OCAyMTguNDA3IDk2LjI1OCA0NDhjMCAyMjkuNTk1IDE4Ni4xNDkgNDE1Ljc0NCA0MTUuNzQyIDQxNS43NDQgMjI5LjU5NSAwIDQxNS43NDQtMTg2LjE0OSA0MTUuNzQ0LTQxNS43NDRTNzQxLjU5NSAzMi4yNTggNTEyIDMyLjI1OG0tMjM4LjYxIDE3Ny4xN3MyNzEuMTI0IDk3LjY0NyAzMjUuMzYyIDE1MS44MmM1NC4yMzcgNTQuMjM3IDE1MS44MjIgMzI1LjM2NCAxNTEuODIyIDMyNS4zNjRTNDc5LjQ1IDU4OC45NjUgNDI1LjI0MSA1MzQuNzU5IDI3My4zOSAyMDkuNDI4IDI3My4zOSAyMDkuNDI4bTE5My4zNTUgMjYzLjk1NyA3MC42MzMtNzAuNjMzYzE3LjY1OC0xNy42Ni0xNTguOTI3LTg4LjI5MS0xNTguOTI3LTg4LjI5MXM3MC42MzYgMTc2LjU4NSA4OC4yOTMgMTU4LjkyNXoiIGdseXBoLW5hbWU9ImJydWp1bGEiIHVuaWNvZGU9Iu6kgyIvPjxnbHlwaCBkPSJNNjE1LjUzNiA0NDkuNDkgODc3LjA4IDE4Ny45NDRjMjkuODI2LTI5LjgyNCAyOS44MjYtNzUuNzA4IDAtMTA1LjUzNC0xMy43NjYtMTMuNzY2LTM0LjQxMi0yMi45NDQtNTIuNzY4LTIyLjk0NC0xOC4zNTQgMC0zOS4wMDIgOS4xNzgtNTIuNzY4IDIyLjk0NEw1MTAgMzQzLjk1NiAyNDguNDU0IDgyLjQxMmMtMTMuNzY2LTEzLjc2Ni0zNC40MTQtMjIuOTQ0LTUyLjc2OC0yMi45NDRzLTM5LjAwMiA5LjE3OC01Mi43NjggMjIuOTQ0Yy0yOS44MjYgMjkuODI0LTI5LjgyNiA3NS43MDggMCAxMDUuNTM0bDI2MS41NDYgMjYxLjU0Ni0yNjEuNTQ2IDI2MS41NDRjLTI5LjgyNiAyOS44MjYtMjkuODI2IDc1LjcxIDAgMTA1LjUzNnM3NS43MSAyOS44MjYgMTA1LjUzNiAwTDUxMCA1NTUuMDI4bDI2MS41NDQgMjYxLjU0NGMyOS44MjYgMjkuODI2IDc1LjcxIDI5LjgyNiAxMDUuNTM2IDBzMjkuODI2LTc1LjcxIDAtMTA1LjUzNnoiIGdseXBoLW5hbWU9ImNhbmNlbGFyIiB1bmljb2RlPSLupIQiLz48Z2x5cGggZD0iTTcwMy41ODQgNTkzLjkyYy0uNDggMTEuNjE2LTQuOCAyMy4xMzYtMTMuNjk2IDMyLTguODY0IDguODY0LTIwLjM4NCAxMy4yMTYtMzIgMTMuNjk2LTEyLjkyOC41NDQtMjYuMDE2LTMuODA4LTM1Ljg3Mi0xMy42OTZMNTEyIDUxNS44NzIgNDAxLjk4NCA2MjUuOTJjLTkuODg4IDkuODg4LTIyLjk0NCAxNC4yMDgtMzUuODcyIDEzLjY5Ni0xMS42MTYtLjQ4LTIzLjEzNi00LjgtMzItMTMuNjk2LTguODY0LTguODY0LTEzLjIxNi0yMC4zODQtMTMuNjk2LTMyLS41NDQtMTIuOTI4IDMuODA4LTI1Ljk4NCAxMy42OTYtMzUuODcyTDQ0NC4xMjggNDQ4IDMzNC4xMTIgMzM3Ljk4NGMtOS44ODgtOS44ODgtMTQuMjA4LTIyLjk0NC0xMy42OTYtMzUuODcyLjQ4LTExLjYxNiA0LjgtMjMuMTM2IDEzLjY5Ni0zMiA4Ljg2NC04Ljg2NCAyMC4zODQtMTMuMjE2IDMyLTEzLjY5NiAxMi45MjgtLjU0NCAyNS45ODQgMy44MDggMzUuODcyIDEzLjY5Nkw1MTIgMzgwLjEyOCA2MjIuMDQ4IDI3MC4wOGM5Ljg4OC05Ljg4OCAyMi45NDQtMTQuMjA4IDM1Ljg3Mi0xMy42OTYgMTEuNjE2LjQ4IDIzLjEzNiA0LjggMzIgMTMuNjk2IDguODY0IDguODY0IDEzLjIxNiAyMC4zODQgMTMuNjk2IDMyIC41NDQgMTIuOTI4LTMuODA4IDI1Ljk4NC0xMy42OTYgMzUuODcyTDU3OS44NzIgNDQ4bDExMC4wMTYgMTEwLjAxNmM5Ljg4OCA5Ljg4OCAxNC4yNCAyMi45NDQgMTMuNjk2IDM1LjkwNE01MTIgOTYwQzIyOS4yNDggOTYwIDAgNzMwLjc1MiAwIDQ0OFMyMjkuMjQ4LTY0IDUxMi02NHM1MTIgMjI5LjI0OCA1MTIgNTEyLTIyOS4yNDggNTEyLTUxMiA1MTJtMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzIiIGdseXBoLW5hbWU9ImNhbmNlbGFyMiIgdW5pY29kZT0i7qSFIi8+PGdseXBoIGQ9Ik05NjAgOTYwSDMyMGMtMzUuMzI4IDAtNjQtMjguNjQtNjQtNjRWNzA0SDY0Yy0zNS4zMjggMC02NC0yOC42NC02NC02NFYwYzAtMzUuMzI4IDI4LjY3Mi02NCA2NC02NGg2NDBjMzUuMzYgMCA2NCAyOC42NzIgNjQgNjR2MTkyaDE5MmMzNS4zMjggMCA2NCAyOC42NzIgNjQgNjR2NjQwYzAgMzUuMzYtMjguNjcyIDY0LTY0IDY0TTY3MiAzMkg5NnY1NzZoMTYwVjI1NmMwLTM1LjM2IDI4LjY3Mi02NCA2NC02NGgzNTJ6bTI1NiAyNTZIMzUydjU3Nmg1NzZ6IiBnbHlwaC1uYW1lPSJjYXBhcyIgdW5pY29kZT0i7qSGIi8+PGdseXBoIGQ9Ik03OC4yNDYgNjQ4LjAzOCA0OTguNzA4IDQyMy4yMWM0LjE1LTIuMjIgOC43Mi0zLjMyOCAxMy4yOS0zLjMyOHM5LjE0IDEuMTA4IDEzLjI5MiAzLjMyOGw0MjAuNDYyIDIyNC44MjhhMjguMTkxIDI4LjE5MSAwIDAgMSAwIDQ5LjcxOEw1MjUuMjg4IDkyMi41ODRhMjguMTcgMjguMTcgMCAwIDEtMjYuNTgyIDBMNzguMjQ2IDY5Ny43NTZhMjguMiAyOC4yIDAgMCAxLTE0Ljg5OC0yNC44NiAyOC4xOSAyOC4xOSAwIDAgMSAxNC44OTgtMjQuODU4TTUxMS45OTggODQ5Ljc2bDM0MC42ODYtMTc2Ljg2NC0zNDAuNjg2LTE3MC44NjItMzQwLjY4NiAxNzAuODYyem00MzMuNzU0LTM3Ni45NzItMTIyLjU3MiA2NS41NGMtMTMuNzI4IDcuMzQ0LTQxLjUwNCAzLjA2NC00OC44NDYtMTAuNjYyLTcuMzQtMTMuNzMtNS40NjItMzcuNzEgOC4yNjgtNDUuMDVsNjIuMDgyLTM0LjY4NEw1MTEuOTk4IDI4My4wNyAxNzkuMzEyIDQ0Ny45M2w2Mi45NjYgMzUuMTU2YzEzLjczIDcuMzQyIDEzLjM5NCAzMC4xODggNi4wNTQgNDMuOTE2LTcuMzQgMTMuNzI0LTMyLjkwOCAxOS4xMzgtNDYuNjM0IDExLjc5OEw3OC4yNDQgNDcyLjc5Yy05LjE3LTQuOTA0LTE0Ljg5OC0xNC40NTgtMTQuODk4LTI0Ljg1OHM1LjcyMi0xOS45NTQgMTQuODk4LTI0Ljg1OGw0MjAuNDYyLTIyNC44MjZjNC4xNS0yLjIyMiA4LjcyLTMuMzMyIDEzLjI5LTMuMzMyczkuMTQgMS4xMSAxMy4yOTIgMy4zMzJMOTQ1Ljc1IDQyMy4wNzRhMjguMTkgMjguMTkgMCAwIDEgMTQuODk4IDI0Ljg1OCAyOC4xOCAyOC4xOCAwIDAgMS0xNC44OTYgMjQuODU2bTAtMjI0LjgyOC0xMTguNjg2IDYzLjQ2MmMtMTMuNzMyIDcuMzQtNDEuMzkyIDEuMzAyLTQ4LjczMi0xMi40MjQtNy4zNC0xMy43My01LjU3Ni0zNS45NSA4LjE1NC00My4yOWw1OC4xOTYtMzIuNjA0TDUxMS45OTggNTguMjQyIDE3OS4zMTIgMjIzLjEwNGw1Ny40MTQgMzIuMTg2YzEzLjczIDcuMzQgMTUuNjEyIDI5Ljk4NCA4LjI3MiA0My43MXMtMzUuMTI2IDE5LjM0OC00OC44NSAxMi4wMDJMNzguMjQ0IDI0Ny45NThjLTkuMTctNC45MDQtMTQuODk4LTE0LjQ1OC0xNC44OTgtMjQuODU4czUuNzIyLTE5Ljk1NCAxNC44OTgtMjQuODU4TDQ5OC43MDYtMjYuNTg2YzQuMTUtMi4yMiA4LjcyLTMuMzMgMTMuMjktMy4zM3M5LjE0IDEuMTEgMTMuMjkyIDMuMzNMOTQ1Ljc1IDE5OC4yNDJhMjguMTkxIDI4LjE5MSAwIDAgMSAuMDAyIDQ5LjcxOCIgZ2x5cGgtbmFtZT0iY2FwYXMyIiB1bmljb2RlPSLupIciLz48Z2x5cGggZD0iTTUxMiA5NjBDMjI5LjI0NyA5NjAgMCA3MzAuNzUxIDAgNDQ4UzIyOS4yNDktNjQgNTEyLTY0czUxMiAyMjkuMjQ5IDUxMiA1MTItMjI5LjI0OSA1MTItNTEyIDUxMm0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMm0yMDkuOTIgNTc1LjYxNWMtMTIuODk2LjU0NS0yNS45ODUtMy44MDctMzUuODQtMTMuNjk3TDQ2My45OTkgMzcxLjg3MiAzMzcuOTIgNDk3LjkyYy05Ljg1NyA5Ljg4OC0yMi45NDQgMTQuMjA5LTM1Ljg0IDEzLjY5Ny0xMS42MTYtLjQ3OS0yMy4xNjktNC44MDEtMzIuMDMzLTEzLjY5Ny04Ljg2NC04Ljg2NC0xMy4yMTYtMjAuNDE3LTEzLjY5Ny0zMi4wMzMtLjU0NS0xMi44OTYgMy44MDctMjUuOTg1IDEzLjY5Ny0zNS44NGwxNjAtMTYwYzkuMzc2LTkuMzc2IDIxLjY2NC0xNC4wNDcgMzMuOTUyLTE0LjA0N3MyNC41NzYgNC42NzEgMzMuOTUyIDE0LjA0N2wyNTYgMjU2YzkuODg4IDkuODg4IDE0LjIwOSAyMi45NDQgMTMuNjk3IDM1Ljg0LS40NzkgMTEuNjE2LTQuODAxIDIzLjE2OS0xMy42OTcgMzIuMDMzLTguODk0IDguODk3LTIwLjQxNCAxMy4yNDktMzIuMDMxIDEzLjY5NSIgZ2x5cGgtbmFtZT0iY2hlY2siIHVuaWNvZGU9Iu6kiCIvPjxnbHlwaCBkPSJNNzQ5LjcxNCA4MTMuNzE0SDI3NC4yODVxLTM3LjcxNCAwLTY0LjU3MS0yNi44NTd0LTI2Ljg1Ny02NC41NzFWMjQ2Ljg1N3EwLTM3LjcxNCAyNi44NTctNjQuNTcxdDY0LjU3MS0yNi44NTdoNDc1LjQyOXEzNy43MTQgMCA2NC41NzEgMjYuODU3dDI2Ljg1NyA2NC41NzF2NDc1LjQyOXEwIDM3LjcxNC0yNi44NTcgNjQuNTcxdC02NC41NzEgMjYuODU3bTE2NC41NzItOTEuNDI4VjI0Ni44NTdxMC02OC00OC4yODYtMTE2LjI4NlQ3NDkuNzE0IDgyLjI4NUgyNzQuMjg1cS02OCAwLTExNi4yODYgNDguMjg2dC00OC4yODYgMTE2LjI4NnY0NzUuNDI5cTAgNjggNDguMjg2IDExNi4yODZ0MTE2LjI4NiA0OC4yODZoNDc1LjQyOXE2OCAwIDExNi4yODYtNDguMjg2dDQ4LjI4Ni0xMTYuMjg2IiBnbHlwaC1uYW1lPSJjaGVjazIiIHVuaWNvZGU9Iu6kiSIvPjxnbHlwaCBkPSJNNzQ5LjcxNCA4MTMuNzE0SDI3NC4yODVxLTM3LjcxNCAwLTY0LjU3MS0yNi44NTdjLTI2Ljg1Ny0yNi44NTctMjYuODU3LTM5LjQyOS0yNi44NTctNjQuNTcxVjI0Ni44NTdxMC0zNy43MTQgMjYuODU3LTY0LjU3MWMyNi44NTctMjYuODU3IDM5LjQyOS0yNi44NTcgNjQuNTcxLTI2Ljg1N2g0NzUuNDI5cTM3LjcxNSAwIDY0LjU3MSAyNi44NTdjMjYuODU2IDI2Ljg1NyAyNi44NTcgMzkuNDI5IDI2Ljg1NyA2NC41NzF2NDc1LjQyOXEwIDM3LjcxNS0yNi44NTcgNjQuNTcxYy0yNi44NTcgMjYuODU2LTM5LjQyOSAyNi44NTctNjQuNTcxIDI2Ljg1N20xNjQuNTcyLTkxLjQyOFYyNDYuODU3cTAtNjgtNDguMjg2LTExNi4yODZjLTQ4LjI4Ni00OC4yODYtNzAuOTUyLTQ4LjI4Ni0xMTYuMjg2LTQ4LjI4NkgyNzQuMjg1cS02OCAwLTExNi4yODYgNDguMjg2Yy00OC4yODYgNDguMjg2LTQ4LjI4NiA3MC45NTMtNDguMjg2IDExNi4yODZ2NDc1LjQyOXEwIDY4IDQ4LjI4NiAxMTYuMjg2YzQ4LjI4NiA0OC4yODYgNzAuOTUzIDQ4LjI4NiAxMTYuMjg2IDQ4LjI4Nmg0NzUuNDI5cTY4IDAgMTE2LjI4Ni00OC4yODZjNDguMjg2LTQ4LjI4NiA0OC4yODYtNzAuOTUyIDQ4LjI4Ni0xMTYuMjg2bS0xODkuMTE3LTY4LjIxNWMtMTIuODUuNTQyLTI1Ljg5MS0zLjc5NC0zNS43MTEtMTMuNjQ3TDQ2OC4xNzUgNDE5LjE3MyAzNDIuNTQ4IDU0NC43NjljLTkuODIxIDkuODUzLTIyLjg2MiAxNC4xNTctMzUuNzExIDEzLjY0Ny0xMS41NzQtLjQ3OC0yMy4wODUtNC43ODMtMzEuOTE3LTEzLjY0Ny04LjgzMy04LjgzMy0xMy4xNjktMjAuMzQzLTEzLjY0Ny0zMS45MTctLjU0Mi0xMi44NSAzLjc5NC0yNS44OTEgMTMuNjQ3LTM1LjcxMWwxNTkuNDI2LTE1OS40MjZjOS4zNDItOS4zNDMgMjEuNTg2LTEzLjk5OCAzMy44My0xMy45OThzMjQuNDg4IDQuNjU1IDMzLjgzIDEzLjk5OGwyNTUuMDgyIDI1NS4wODJjOS44NTMgOS44NTMgMTQuMTU5IDIyLjg2MiAxMy42NDcgMzUuNzExLS40NzggMTEuNTc0LTQuNzgyIDIzLjA4NS0xMy42NDcgMzEuOTE3LTguODY1IDguODY0LTIwLjM0MyAxMy4yMDEtMzEuOTE4IDEzLjY0N3oiIGdseXBoLW5hbWU9ImNoZWNrMyIgdW5pY29kZT0i7qSKIi8+PGdseXBoIGQ9Ik01MTIgOTYwQzIyOS4yNDcgOTYwIDAgNzMwLjc1MSAwIDQ0OFMyMjkuMjQ5LTY0IDUxMi02NGMyODIuNzUzIDAgNTEyIDIyOS4yNDkgNTEyIDUxMlM3OTQuNzUxIDk2MCA1MTIgOTYwbTAtOTI4QzI4Mi42MjQgMzIgOTYgMjE4LjYyNCA5NiA0NDhzMTg2LjYyNCA0MTYgNDE2IDQxNiA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyIiBnbHlwaC1uYW1lPSJjaGVjazQiIHVuaWNvZGU9Iu6kiyIvPjxnbHlwaCBkPSJNNTEyIDk2MEMyMjkuMjQ3IDk2MCAwIDczMC43NTEgMCA0NDhTMjI5LjI0OS02NCA1MTItNjRjMjgyLjc1MyAwIDUxMiAyMjkuMjQ5IDUxMiA1MTJTNzk0Ljc1MSA5NjAgNTEyIDk2MG0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMm0yNTIuOTEyIDQxNS45OThjMC0xMzkuNjc0LTExMy4yNDItMjUyLjk0Mi0yNTIuOTE0LTI1Mi45NDItMTM5LjYzOSAwLTI1Mi45MTQgMTEzLjIwOS0yNTIuOTE0IDI1Mi45NDIgMCAxMzkuNjcyIDExMy4yNzUgMjUyLjk0NCAyNTIuOTE0IDI1Mi45NDQgMTM5LjY3Mi4wMDIgMjUyLjkxNC0xMTMuMjczIDI1Mi45MTQtMjUyLjk0NCIgZ2x5cGgtbmFtZT0iY2hlY2s1IiB1bmljb2RlPSLupIwiLz48Z2x5cGggZD0iTTgyNS44MzYgOTExLjdIMTk4LjE2NGMtOTMuNDQ2IDAtMTY5LjQ2OC03Ni4wMjYtMTY5LjQ2OC0xNjkuNDdWMzU1LjA4MmMwLTkzLjQ0OCA3Ni4wMjItMTY5LjQ3IDE2OS40NjgtMTY5LjQ3bDM5OS43OTItLjAwMkw3ODkuMzMyLTUuNzdhMzMuOSAzMy45IDAgMCAxIDIzLjk3Ni05LjkyOGM0LjM2OCAwIDguNzcyLjg0OCAxMi45NTggMi41ODZhMzMuODkgMzMuODkgMCAwIDEgMjAuOTI2IDMxLjMwOHYxNjguNzZjODMuNDEgMTAuNTM0IDE0OC4xMDYgODEuOTEyIDE0OC4xMDYgMTY4LjEyOHYzODcuMTQ4Yy4wMDYgOTMuNDQ0LTc2LjAxNiAxNjkuNDY4LTE2OS40NjIgMTY5LjQ2OG05MS44LTU1My44NDJjMC01NC43MzQtNDQuNTI4LTk5LjI2Mi05OS4yNjQtOTkuMjYyaC04LjE2OGMtMTguMjY4IDAtMzMuMDg2LTE0LjgxOC0zMy4wODYtMzMuMDl2LTExNi42NEw2MzcuMDg0IDI0OC45MDRhMzMuMDYgMzMuMDYgMCAwIDEtMjMuMzk0IDkuNjk0SDIwNS42MjZjLTU0LjczNiAwLTk5LjI2NCA0NC41MjgtOTkuMjY0IDk5LjI2MnYzNzcuOTQyYzAgNTQuNzMyIDQ0LjUyOCA5OS4yNjQgOTkuMjY0IDk5LjI2NGg2MTIuNzQ2YzU0LjczNiAwIDk5LjI2NC00NC41MzIgOTkuMjY0LTk5LjI2NHptLTE1Ni4xOCAzMjQuMDFjMjQuMzM4LS4wMDggNDQuMDU2LTE5LjcyNCA0NC4wNjQtNDQuMDY0LS4wMDgtMjQuMzM4LTE5LjcyNi00NC4wNTYtNDQuMDY0LTQ0LjA2NGgtNDk4LjkyYy0yNC4zMzQuMDA4LTQ0LjA1NiAxOS43MjYtNDQuMDY0IDQ0LjA2NC4wMDggMjQuMzQ2IDE5LjcyOCA0NC4wNTYgNDQuMDY0IDQ0LjA2NHptLjAwNC0xODkuODA2YzI0LjMzMi0uMDA4IDQ0LjA1LTE5LjcxNiA0NC4wNTgtNDQuMDY0LS4wMDgtMjQuMzM0LTE5LjcyMi00NC4wNS00NC4wNTgtNDQuMDU4SDI2Mi41NGMtMjQuMzM0LjAwOC00NC4wNTYgMTkuNzIyLTQ0LjA2NCA0NC4wNTguMDA0IDI0LjM0NiAxOS43MjggNDQuMDU2IDQ0LjA2NCA0NC4wNjR6IiBnbHlwaC1uYW1lPSJjb21lbnRhcmlvcyIgdW5pY29kZT0i7qSNIi8+PGdseXBoIGQ9Ik05MjggMzcwYzMwIDAgNTQtMjQgNTQtNTRWMjJjMC0zMC0yNC01NC01NC01NEg5MkM2Mi0zMiAzNi04IDM2IDIydjI5NGMwIDMwIDI2IDU0IDU2IDU0czU0LTI0IDU0LTU0Vjc4aDcyOHYyMzhjMCAzMCAyNCA1NCA1NCA1NE00NzIgMjQ4IDI1MiA0NjhjLTIyIDIyLTIyIDU0IDAgNzZzNTQgMjIgNzYgMGwxMjgtMTI2djQ2OGMwIDMwIDI0IDU0IDU0IDU0czU0LTI0IDU0LTU0VjQxOGwxMjYgMTI2YzIyIDIyIDU2IDIyIDc4IDBzMjItNTQgMC03Nkw1NDggMjQ4Yy0xMC0xMC0yNC0xNi0zOC0xNnMtMjggNi0zOCAxNiIgZ2x5cGgtbmFtZT0iZGVzY2FyZ2FyIiB1bmljb2RlPSLupI4iLz48Z2x5cGggZD0iTTEwMTIuODMyIDY4My4xNjggNzQ3LjEzNiA5NDguODY0QzczOS42NDggOTU2LjM1MiA3MjkuODI0IDk2MCA3MjAgOTYwcy0xOS42NDgtMy42NDgtMjcuMTM2LTExLjE2OEwwIDI1NlYtNjRoMzIwbDY5Mi44MzIgNjkyLjgzMmM3LjUyIDcuNTIgMTEuMTY4IDE3LjM0NCAxMS4xNjggMjcuMTY4IDAgOS44NTYtMy42NDggMTkuNjQ4LTExLjE2OCAyNy4xNjhNOTYgMzJ2MTU2LjEyOEwyNTIuMTI4IDMyem0yNDEuOTUyIDQ5LjkyLTE5MiAxOTJMNTkwLjA4IDcxOC4wOGwxOTItMTkyem01MTIgNTEyLTE5MiAxOTJMNzIwIDg0OGwxOTItMTkyeiIgZ2x5cGgtbmFtZT0iZWRpdGFyIiB1bmljb2RlPSLupI8iLz48Z2x5cGggZD0iTTkxMiA0ODBjLTI2LjUyOCAwLTQ4LTIxLjUwNC00OC00OFYzMkg5NnY3NjhoNDAwYzI2LjUyOCAwIDQ4IDIxLjUwNCA0OCA0OHMtMjEuNDcyIDQ4LTQ4IDQ4SDY0Yy0zNS4zMjggMC02NC0yOC42NC02NC02NFYwYzAtMzUuMzYgMjguNjcyLTY0IDY0LTY0aDgzMmMzNS4zMjggMCA2NCAyOC42NCA2NCA2NHY0MzJjMCAyNi40OTYtMjEuNDcyIDQ4LTQ4IDQ4bTEwMC44MzIgMzMxLjE2OEw4NzUuMTM2IDk0OC44NjRDODY3LjY0OCA5NTYuMzUyIDg1Ny44MjQgOTYwIDg0OCA5NjBzLTE5LjY0OC0zLjY0OC0yNy4xMzYtMTEuMTY4TDI4OCA0MTZWMjI0aDE5Mmw1MzIuODMyIDUzMi44MzJjNy41MiA3LjUyIDExLjE2OCAxNy4zNDQgMTEuMTY4IDI3LjE2OCAwIDkuODU2LTMuNjQ4IDE5LjY0OC0xMS4xNjggMjcuMTY4TTQ0OCAzMjBoLTY0djY0bDQ2NCA0NjQgNjQtNjR6IiBnbHlwaC1uYW1lPSJlZGl0YXIyIiB1bmljb2RlPSLupJAiLz48Z2x5cGggZD0iTTY0NS42OTIgNzc4LjU3OGMwIDU2LjgxNy00Ni4xNzYgMTAzLjAwNi0xMDMuMDA2IDEwMy4wMDYtNTYuNzI0IDAtMTAyLjk2Ni00Ni4xMzYtMTAyLjk2Ni0xMDMuMDA2IDAtNDUuMTkzIDI5LjQ2NC04My4xOTkgNzAuMDA4LTk3LjEyMWgtNjIuNjIydi04OC4yNmg2Mi40NzZ2LTM5LjQwMWgtNjIuNDc2di00NC4xMTdoNjIuNDc2di0zOC4zNzhoLTYyLjQ3NnYtNDQuMTk3aDYyLjQ3NnYtMzguMzEyaC02Mi40NzZ2LTQ0LjE0M2g2Mi40NzZ2LTM4LjM5MWgtNjIuNDc2di00NC4xMTdoNjIuNDc2di0zOC40NDVoLTYyLjQ3NnYtNDQuMTE3aDYyLjQ3NlYxNjQuOThjLTI3LjAzMy0xMi40ODctNDUuOTktMzkuODM5LTQ1Ljk5LTcxLjUzNSAwLTQzLjY2NSAzNS40OTUtNzkuMTIxIDc5LjA1NC03OS4xMjFzNzkuMTIxIDM1LjQwMiA3OS4xMjEgNzkuMTIxYzAgMzEuNjctMTguOTMgNTkuMDM1LTQ2LjAwMyA3MS41MzV2MTQuNTk5aDcwLjcyNXY0NC4yMWgtNzAuNzUydjM4LjQwNWg3MC43MjV2NDQuMTNoLTcwLjcyNXYzOC40MThoNzAuNzI1djQ0LjEzaC03MC43MjV2MzguMzUyaDcwLjcyNXY0NC4xNTdoLTcwLjcyNXYzOC4zNzhoNzAuNzI1djQ0LjExN2gtNzAuNzI1djM5LjQwMWg3MC43MjV2ODguMjg3aC03MC44OThjNDAuNjYzIDEzLjgyOSA3MC4xMjcgNTEuODIyIDcwLjEyNyA5Ny4wMTV6bS0xNjEuODI4IDBjMCAzMi41MDYgMjYuNDM2IDU4Ljg4OSA1OC44ODkgNTguODg5IDMyLjQ2NyAwIDU4Ljg0OS0yNi4zODIgNTguODQ5LTU4Ljg4OSAwLTMyLjQxMy0yNi4zNjktNTguODM2LTU4Ljg0OS01OC44MzYtMzIuNDQgMC01OC44ODkgMjYuNDIyLTU4Ljg4OSA1OC44MzZtOTMuOC02ODQuOTQ4YzAtMTkuMzE1LTE1LjYzNi0zNC45MzctMzQuOTExLTM0LjkzN3MtMzQuOTM3IDE1LjYyMi0zNC45MzcgMzQuOTM3YzAgMTkuMjc1IDE1LjY0OSAzNC45NTEgMzQuOTM3IDM0Ljk1MSAxOS4yODkuMDI3IDM0LjkxMS0xNS42NzUgMzQuOTExLTM0Ljk1MSIgZ2x5cGgtbmFtZT0iZXNjYWxhIiB1bmljb2RlPSLupJEiLz48Z2x5cGggZD0iTTEwMDkuMjAyIDIyLjIxNiA2MDUuMzMzIDQyNi4wODNjOTYuNTk1IDEzMS4yMDkgODUuOTI0IDMxNy4xNTYtMzIuNzExIDQzNS44MDItMTMwLjgyNiAxMzAuODE4LTM0My42ODkgMTMwLjgxOC00NzQuNTA3IDBzLTEzMC44MTgtMzQzLjY4MSAwLTQ3NC40OTljMTE4LjY2LTExOC42NiAzMDQuNjA1LTEyOS4zMTkgNDM1LjgwOC0zMi43MzhMOTM3Ljc4Mi00OS4yMDZjMTkuNzEzLTE5LjcyNSA1MS42OTMtMTkuNzI1IDcxLjQyMSAwIDE5LjcyNyAxOS43MjkgMTkuNzI3IDUxLjcyIDAgNzEuNDIzek01MDEuMjAxIDQ1OC44MDNjLTkxLjQzOC05MS40MjMtMjQwLjIxOS05MS40MjMtMzMxLjY3IDAtOTEuNDQyIDkxLjQzNi05MS40NDIgMjQwLjIyNiAwIDMzMS42NTcgOTEuNDQ4IDkxLjQ0MiAyNDAuMjMyIDkxLjQ0MiAzMzEuNjcgMCA5MS40My05MS40MzIgOTEuNDMtMjQwLjIyMiAwLTMzMS42NTdNMjUwLjI5IDU1Ni45MDFoMTMuNDgxdi0zMy41MTloLTY4Ljk5OHYzMy41MTloMTYuMDI1djE0My43OTJsLTIyLjU1Ni0xNy43OTYtOC44MjIgMzQuNzM4IDM4LjgyMyAyNy43NDJoMzIuMDQ3em0xMTUuMTQzLTcuNDI5YzAtMTUuMTkzLTEwLjY0LTI2LjA5Mi0yNS4yODktMjYuMDkyLTE0LjIyOCAwLTI0Ljk1MyAxMS4xMzUtMjQuOTUzIDI1LjkxNCAwIDE1LjE4NyAxMC42NCAyNi4yMjcgMjUuMzAxIDI2LjIyNyAxNC4yNjEuMDAyIDI0LjUxMi0xMC43MTUgMjQuOTQxLTI2LjA0OW0wIDExMS44NDVjMC0xNS4xODctMTAuNjQtMjYuMDkyLTI1LjI4OS0yNi4wOTItMTQuMjI4IDAtMjQuOTUzIDExLjE0My0yNC45NTMgMjUuOTE2IDAgMTUuMjA1IDEwLjY0IDI2LjIzMSAyNS4zMDEgMjYuMjMxIDE0LjI2MS4wMTIgMjQuNTEyLTEwLjcwMiAyNC45NDEtMjYuMDU1bTEyNy45ODQtMTA0LjQxNnYtMzMuNTE5aC02OC45OTh2MzMuNTE5aDE0LjY4NnYxNDMuNzkybC0yMi41NzQtMTcuNzk2LTguODE2IDM0LjczOCAzOC44MTkgMjcuNzQyaDMyLjA0N1Y1NTYuODk4aDE0LjgzN3oiIGdseXBoLW5hbWU9ImVzY2FsYTIiIHVuaWNvZGU9Iu6kkiIvPjxnbHlwaCBkPSJNOTYxLjUwNCA2NTYuOTgySDY4LjQ3OWMtMjIuODg0IDAtNDEuNDIzLTE4LjU1MS00MS40MjMtNDEuNDEzVjI4NC4zYzAtMjIuODg0IDE4LjU0LTQxLjQxMyA0MS40MjMtNDEuNDEzaDg5My4wMTRjMjIuODYyIDAgNDEuNDIzIDE4LjUyOSA0MS40MjMgNDEuNDEzaC4wMTF2MzMxLjI2OWMwIDIyLjg2Mi0xOC41NTEgNDEuNDEzLTQxLjQyMyA0MS40MTNtLTMwLjgzOS0zMTYuODI1YzAtMTUuMTAxLTEyLjI1Ni0yNy4zNTctMjcuMzU3LTI3LjM1N0gxMjIuMzA5Yy0xNS4xMDEgMC0yNy4zNTcgMTIuMjU2LTI3LjM1NyAyNy4zNTd2MjE4Ljg2N2MwIDE1LjEwMSAxMi4yNTYgMjcuMzU3IDI3LjM1NyAyNy4zNTdoNzgwLjk5OWMxNS4xMDEgMCAyNy4zNTctMTIuMjU2IDI3LjM1Ny0yNy4zNTd6TTMyNi45OSA1MjUuODk5SDE5Ni4xMjNjLTYuODg4IDAtMTIuNDYtNS41ODMtMTIuNDYtMTIuNDZWMzgyLjU4M2MwLTYuODg4IDUuNTgzLTEyLjQ3MSAxMi40Ni0xMi40NzFIMzI2Ljk5YzYuODc3IDAgMTIuNDcxIDUuNTk0IDEyLjQ3MSAxMi40NzF2MTMwLjg1NmMtLjAxMSA2Ljg2Ni01LjU5NCAxMi40Ni0xMi40NzEgMTIuNDZtMjUwLjQzOCAwSDQ0Ni41NzJjLTYuODc3IDAtMTIuNDYtNS41ODMtMTIuNDYtMTIuNDZWMzgyLjU4M2MwLTYuODg4IDUuNTgzLTEyLjQ3MSAxMi40Ni0xMi40NzFoMTMwLjg1NmM2Ljg3NyAwIDEyLjQ2IDUuNTk0IDEyLjQ2IDEyLjQ3MXYxMzAuODU2Yy4wMTEgNi44NjYtNS41NjIgMTIuNDYtMTIuNDYgMTIuNDZtMjUwLjQ2IDBINjk3LjAxYy02Ljg3NyAwLTEyLjQ2LTUuNTgzLTEyLjQ2LTEyLjQ2VjM4Mi41ODNjMC02Ljg4OCA1LjU5NC0xMi40NzEgMTIuNDYtMTIuNDcxaDEzMC44NzhjNi44NjYgMCAxMi40NzEgNS41OTQgMTIuNDcxIDEyLjQ3MXYxMzAuODU2YzAgNi44NjYtNS41OTQgMTIuNDYtMTIuNDcxIDEyLjQ2IiBnbHlwaC1uYW1lPSJlc2NhbGEzIiB1bmljb2RlPSLupJMiLz48Z2x5cGggZD0iTTEwMDYuNzE5IDIxNC44NTYgODIwLjUwNyA0MDEuMDcyIDk4Mi4wOCA1NjIuNjQ3YTU4Ljk4IDU4Ljk4IDAgMCAxIDE1LjcwNCA1NS4yNDcgNTguOTcgNTguOTcgMCAwIDEtMzguNzI0IDQyLjQyTDc3LjY5MSA5NTQuODIzYTU4Ljk2IDU4Ljk2IDAgMCAxLTYwLjQxLTE0LjIzNiA1OC45OSA1OC45OSAwIDAgMS0xNC4yMzgtNjAuNDFMMjk3LjU2Mi0xLjE5NGE1OC45OSA1OC45OSAwIDAgMSA0Mi40Mi0zOC43MjRjMTkuODc0LTQuNjkyIDQwLjc4OCAxLjI0NyA1NS4yNDcgMTUuNzA0bDE2NS44MzMgMTY1LjgzM0w3NDcuMjc4LTQ0LjU5M2MxMS41Mi0xMS41MiAyNi42MTgtMTcuMjgxIDQxLjcxNC0xNy4yODEgMTUuMDk0IDAgMzAuMTk2IDUuNzYxIDQxLjcxMiAxNy4yODFsMTc2LjAxNyAxNzYuMDE3YzIzLjAzNiAyMy4wMzggMjMuMDM2IDYwLjM5My0uMDAyIDgzLjQzMXpNNzk5Ljg1NSA2My4zNTMgNjEwLjcxOCAyNTAuNDM0Yy0xMi41ODcgMTIuNTg3LTI5LjA4NCAxOC44ODMtNDUuNTc4IDE4Ljg4M3MtMzIuOTk1LTYuMjk2LTQ1LjU3Ni0xOC44ODNsLTE1My4wOS0xNTMuMDktMjQ3Ljg0MyA3NDEuNyA3NDEuNjk1LTI0Ny44NDUtMTQ4LjQzNS0xNDguNDMzYy0yNS4xNzQtMjUuMTctMjUuMTc0LTY1Ljk4NyAwLTkxLjE2MWwxODkuMTMxLTE4Ny4wODd6IiBnbHlwaC1uYW1lPSJmbGVjaGEiIHVuaWNvZGU9Iu6klCIvPjxnbHlwaCBkPSJNNTE2Ljk2NCAzNDkuOTU4IDE2Mi41MSA3MDQuNDE0Yy0zMC41NTYgMzAuNTU2LTczLjMzNiAzMC41NTYtMTAzLjg5MiAwLTMwLjU1NC0zMC41NTYtMzAuNTU0LTc2LjM5IDAtMTA2Ljk0OGw0MDYuNC00MDYuNDAyYzE1LjI4LTE1LjI4IDMwLjU1Ni0yMS4zOSA1MS45NDgtMjEuMzlzMzYuNjY4IDYuMTEyIDUxLjk0NiAyMS4zOWw0MDYuNCA0MDYuNDAyYzE1LjI4IDE1LjI4IDIxLjM5IDMzLjYxIDIxLjM5IDUxLjk0NiAwIDE4LjMzNC02LjExMiAzOS43MjQtMjEuMzkgNTUuMDAyLTMwLjU1NiAzMC41NTYtNzMuMzM0IDMwLjU1Ni0xMDMuODkgMHoiIGdseXBoLW5hbWU9ImZsZWNoYS1hYmFqbyIgdW5pY29kZT0i7qSVIi8+PGdseXBoIGQ9Ik01MTIgOTYwQzIyOS4yNDggOTYwIDAgNzMwLjc1MiAwIDQ0OFMyMjkuMjQ4LTY0IDUxMi02NHM1MTIgMjI5LjI0OCA1MTIgNTEyLTIyOS4yNDggNTEyLTUxMiA1MTJtMC05MjhDMjgyLjYyNCAzMiA5NiAyMTguNjI0IDk2IDQ0OHMxODYuNjI0IDQxNiA0MTYgNDE2IDQxNi0xODYuNjI0IDQxNi00MTZTNzQxLjM3NiAzMiA1MTIgMzJtMTc2IDU0NGMtMTQuMDE2IDAtMjYuNDk2LTYuMDgtMzUuMjY0LTE1LjY0OGwtLjEyOC4wOTZMNTEyIDQwNy4wNCAzNzEuMzYgNTYwLjQ0OGwtLjEyOC0uMDk2QzM2Mi40OTYgNTY5LjkyIDM1MC4wMTYgNTc2IDMzNiA1NzZjLTI2LjQ5NiAwLTQ4LTIxLjUwNC00OC00OCAwLTEyLjUxMiA0Ljg5Ni0yMy43NzYgMTIuNzM2LTMyLjM1MmwtLjEyOC0uMDk2IDE3Ni0xOTJDNDg1LjcyOCAyOTMuNjY0IDQ5OC41MjggMjg4IDUxMiAyODhzMjYuMjcyIDUuNjY0IDM1LjM2IDE1LjU1MmwxNzYgMTkyLS4xMjguMDk2QzczMS4xMDQgNTA0LjIyNCA3MzYgNTE1LjQ4OCA3MzYgNTI4YzAgMjYuNDk2LTIxLjUwNCA0OC00OCA0OCIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFiYWpvMiIgdW5pY29kZT0i7qSWIi8+PGdseXBoIGQ9Im01MTUuNDM4IDU0Ny4wNSAzNTQuNDU2LTM1NC40NTZjMzAuNTU2LTMwLjU1NiA3My4zMzYtMzAuNTU2IDEwMy44OTIgMCAzMC41NTQgMzAuNTU2IDMwLjU1NCA3Ni4zOSAwIDEwNi45NDhsLTQwNi40IDQwNi40MDJjLTE1LjI4IDE1LjI4LTMwLjU1NiAyMS4zOS01MS45NDggMjEuMzlzLTM2LjY2OC02LjExMi01MS45NDYtMjEuMzlMNTcuMDkyIDI5OS41NGMtMTUuMjgtMTUuMjgtMjEuMzktMzMuNjEtMjEuMzktNTEuOTQ2IDAtMTguMzM0IDYuMTEyLTM5LjcyNCAyMS4zOS01NS4wMDIgMzAuNTU2LTMwLjU1NiA3My4zMzQtMzAuNTU2IDEwMy44OSAweiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFycmliYSIgdW5pY29kZT0i7qSXIi8+PGdseXBoIGQ9Im03MjMuMzYgNDAwLjQ0OC0xNzYgMTkyQzUzOC4yNzIgNjAyLjMzNiA1MjUuNDcyIDYwOCA1MTIgNjA4cy0yNi4yNzItNS42NjQtMzUuMzkyLTE1LjU1MmwtMTc2LTE5MiAuMTI4LS4wOTZDMjkyLjg5NiAzOTEuNzc2IDI4OCAzODAuNTEyIDI4OCAzNjhjMC0yNi40OTYgMjEuNTA0LTQ4IDQ4LTQ4IDE0LjAxNiAwIDI2LjQ5NiA2LjA4IDM1LjI2NCAxNS42NDhsLjEyOC0uMDk2TDUxMiA0ODguOTZsMTQwLjYwOC0xNTMuNDA4LjEyOC4wOTZDNjYxLjUwNCAzMjYuMDggNjc0LjAxNiAzMjAgNjg4IDMyMGMyNi40OTYgMCA0OCAyMS41MDQgNDggNDggMCAxMi41MTItNC44OTYgMjMuNzc2LTEyLjczNiAzMi4zNTJ6TTUxMiA5NjBDMjI5LjI0OCA5NjAgMCA3MzAuNzUyIDAgNDQ4UzIyOS4yNDgtNjQgNTEyLTY0czUxMiAyMjkuMjQ4IDUxMiA1MTItMjI5LjI0OCA1MTItNTEyIDUxMm0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWFycmliYTIiIHVuaWNvZGU9Iu6kmCIvPjxnbHlwaCBkPSJNNjE0Ljc0NiA0NDkuMjY0IDI2MC4yOSA5NC44MDhjLTMwLjU1Ni0zMC41NTYtMzAuNTU4LTczLjMzNiAwLTEwMy44OTIgMzAuNTU2LTMwLjU1NCA3Ni4zOS0zMC41NTQgMTA2Ljk0OCAwbDQwNi40MDIgNDA2LjRjMTUuMjggMTUuMjggMjEuMzkgMzAuNTU2IDIxLjM5IDUxLjk0OHMtNi4xMTIgMzYuNjY4LTIxLjM5IDUxLjk0NmwtNDA2LjQgNDA2LjRDMzUxLjk2IDkyMi44OSAzMzMuNjMgOTI5IDMxNS4yOTQgOTI5Yy0xOC4zMzQgMC0zOS43MjQtNi4xMTItNTUuMDAyLTIxLjM5LTMwLjU1Ni0zMC41NTYtMzAuNTU2LTczLjMzNCAwLTEwMy44OXoiIGdseXBoLW5hbWU9ImZsZWNoYS1kZXJlY2hhIiB1bmljb2RlPSLupJkiLz48Z2x5cGggZD0ibTQ2NC40NDggNjU5LjM2LS4wOTYtLjEyOEM0NTUuNzc2IDY2Ny4xMDQgNDQ0LjUxMiA2NzIgNDMyIDY3MmMtMjYuNDk2IDAtNDgtMjEuNTA0LTQ4LTQ4IDAtMTQuMDE2IDYuMDgtMjYuNDk2IDE1LjY0OC0zNS4yNjRsLS4wOTYtLjEyOEw1NTIuOTYgNDQ4IDM5OS41NTIgMzA3LjM2bC4wOTYtLjEyOEMzOTAuMDggMjk4LjQ5NiAzODQgMjg2LjAxNiAzODQgMjcyYzAtMjYuNDk2IDIxLjUwNC00OCA0OC00OCAxMi41MTIgMCAyMy43NzYgNC44OTYgMzIuMzUyIDEyLjczNmwuMDk2LS4xMjggMTkyIDE3NkM2NjYuMzM2IDQyMS43MjggNjcyIDQzNC41MjggNjcyIDQ0OHMtNS42NjQgMjYuMjcyLTE1LjU1MiAzNS4zOTJ6TTUxMiA5NjBDMjI5LjI0OCA5NjAgMCA3MzAuNzUyIDAgNDQ4UzIyOS4yNDgtNjQgNTEyLTY0czUxMiAyMjkuMjQ4IDUxMiA1MTItMjI5LjI0OCA1MTItNTEyIDUxMm0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWRlcmVjaGEyIiB1bmljb2RlPSLupJoiLz48Z2x5cGggZD0iTTI1Ni4wNTkgNC42NjJjMjQ0LjgzLTE0MS4zNTMgNTU3LjkxLTU3LjQ0OSA2OTkuMjU0IDE4Ny4zNjggMTQxLjM4MiAyNDQuODU5IDU3LjQ4OCA1NTcuOTYyLTE4Ny4zNTUgNjk5LjMwMy0yNDQuODI2IDE0MS4zNi01NTcuODkxIDU3LjQ2NS02OTkuMjc2LTE4Ny4zNThDLTcyLjY5NCA0NTkuMTI5IDExLjIxNyAxNDYuMDM5IDI1Ni4wNiA0LjY2M3ptLTk4LjcxMyA2NDguMWMxMTMuMDg1IDE5NS44ODEgMzYzLjU2MiAyNjIuOTk0IDU1OS40MiAxNDkuOTEyQzkxMi42NDMgNjg5LjU5MiA5NzkuNzYgNDM5LjEwNiA4NjYuNjU1IDI0My4yNDggNzUzLjU3NiA0Ny4zNTEgNTAzLjExMy0xOS43MTYgMzA3LjI0MiA5My4zNjkgMTExLjM3OCAyMDYuNDU0IDQ0LjI1OCA0NTYuODg5IDE1Ny4zNDcgNjUyLjc2M3pNMjgxLjY1MyA0NDguMDF2LS4wMjljMC0yOC4yMzUgMjIuOTE0LTUxLjE5MiA1MS4xNzktNTEuMTkyaDIxMy41NTZsLTU3LjQwMy01Ny4zODdjLTE5Ljk2Ny0xOS45NjctMTkuOTY3LTUyLjM5NSAwLTcyLjM4NSAxOS45ODMtMTkuOTggNTIuNDIxLTE5Ljk4IDcyLjQwNSAwbDE0NC43NyAxNDQuNzdjMTkuOTgzIDIwLjAwMyAxOS45ODMgNTIuNDM0IDAgNzIuNDI0TDU2MS4zOSA2MjguOTc1Yy0xOS45ODMgMTkuOTk2LTUyLjQyMSAxOS45OTYtNzIuNDA1IDAtMTkuOTY3LTE5Ljk1Ny0xOS45NjctNTIuMzg5IDAtNzIuMzcybDU3LjM4LTU3LjM5N0gzMzIuODM5Yy0yOC4yNjguMDAzLTUxLjE4Mi0yMi45MDEtNTEuMTg2LTUxLjE5NXoiIGdseXBoLW5hbWU9ImZsZWNoYS1kZXJlY2hhMyIgdW5pY29kZT0i7qSbIi8+PGdseXBoIGQ9Ik0wIDg3OS45OTl2LTI1NkMwIDU5Ny41MDQgMjEuNTA0IDU3NiA0Ny45OTkgNTc2aDI1NkMzMzAuNDk2IDU3NiAzNTIgNTk3LjUwNCAzNTIgNjI0LjAwMXMtMjEuNTA0IDQ4LjAwMS00OC4wMDEgNDguMDAxSDE2MS42M0MyMzcuNzYgNzkxLjI2MyAzNjguNDQ3IDg2NCA1MTIgODY0YzIyOS4zNzYgMCA0MTYtMTg2LjYyNCA0MTYtNDE2Uzc0MS4zNzYgMzIgNTEyIDMyYy0xNjkuMDg5IDAtMzIwLjA5NiAxMDAuOTkzLTM4NC42NzIgMjU3LjMxMy01LjA4NyAxMi4yMjUtMTQuNjU1IDIxLjMxMS0yNS45ODUgMjYuMDE2cy0yNC40NDkgNS4wODctMzYuNjcxLjAzM2E0Ny45MyA0Ny45MyAwIDAgMS0yNi4wNDktMjYuMDE2Yy00LjcwNC0xMS4yOTctNS4wODctMjQuNDE2LS4wMzMtMzYuNjcxQzExOC4wNzcgNjAuMzIxIDMwMy45MDItNjMuOTk5IDUxMi02My45OTljMjgyLjMwNSAwIDUxMiAyMjkuNjk1IDUxMiA1MTJzLTIyOS42OTUgNTEyLTUxMiA1MTJjLTE2Ny40MjQgMC0zMjAuNzA1LTgwLjMyMS00MTYtMjEzLjZWODgwYzAgMjYuNDk3LTIxLjUwNCA0OC4wMDEtNDguMDAxIDQ4LjAwMVMwIDkwNi40OTcgMCA4ODB6IiBnbHlwaC1uYW1lPSJmbGVjaGEtZGVzaGFjZXIiIHVuaWNvZGU9Iu6knCIvPjxnbHlwaCBkPSJNNDE3LjY1NCA0NDcuNzQgNzcyLjExIDgwMi4xOTRjMzAuNTU2IDMwLjU1NiAzMC41NTYgNzMuMzM2IDAgMTAzLjg5Mi0zMC41NTYgMzAuNTU0LTc2LjM5IDMwLjU1NC0xMDYuOTQ4IDBsLTQwNi40MDItNDA2LjRjLTE1LjI4LTE1LjI4LTIxLjM5LTMwLjU1Ni0yMS4zOS01MS45NDhzNi4xMTItMzYuNjY4IDIxLjM5LTUxLjk0Nmw0MDYuNDAyLTQwNi40YzE1LjI4LTE1LjI4IDMzLjYxLTIxLjM5IDUxLjk0Ni0yMS4zOSAxOC4zMzQgMCAzOS43MjQgNi4xMTIgNTUuMDAyIDIxLjM5IDMwLjU1NiAzMC41NTYgMzAuNTU2IDczLjMzNCAwIDEwMy44OXoiIGdseXBoLW5hbWU9ImZsZWNoYS1penF1aWVyZGEiIHVuaWNvZGU9Iu6knSIvPjxnbHlwaCBkPSJNNTkyIDY3MmMtMTIuNTEyIDAtMjMuNzc2LTQuODk2LTMyLjM1Mi0xMi43MzZsLS4wOTYuMTI4LTE5Mi0xNzZDMzU3LjY2NCA0NzQuMjcyIDM1MiA0NjEuNDcyIDM1MiA0NDhzNS42NjQtMjYuMjcyIDE1LjU1Mi0zNS4zOTJsMTkyLTE3NiAuMDk2LjEyOEM1NjguMjI0IDIyOC44OTYgNTc5LjQ4OCAyMjQgNTkyIDIyNGMyNi40OTYgMCA0OCAyMS41MDQgNDggNDggMCAxMy45ODQtNi4wOCAyNi40OTYtMTUuNjQ4IDM1LjI2NGwuMDk2LjEyOEw0NzEuMDQgNDQ4bDE1My40MDggMTQwLjY0LS4wOTYuMTI4QzYzMy45MiA1OTcuNTA0IDY0MCA2MDkuOTg0IDY0MCA2MjRjMCAyNi40OTYtMjEuNTA0IDQ4LTQ4IDQ4bS04MCAyODhDMjI5LjI0OCA5NjAgMCA3MzAuNzUyIDAgNDQ4UzIyOS4yNDgtNjQgNTEyLTY0czUxMiAyMjkuMjQ4IDUxMiA1MTItMjI5LjI0OCA1MTItNTEyIDUxMm0wLTkyOEMyODIuNjI0IDMyIDk2IDIxOC42MjQgOTYgNDQ4czE4Ni42MjQgNDE2IDQxNiA0MTYgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWl6cXVpZXJkYTIiIHVuaWNvZGU9Iu6kniIvPjxnbHlwaCBkPSJNOTU1LjMxOSA3MDMuOTc1Yy0xNDEuMzg1IDI0NC44MjItNDU0LjQ1MiAzMjguNzE3LTY5OS4yNzQgMTg3LjM1Ny0yNDQuODQyLTE0MS4zNC0zMjguNzM5LTQ1NC40NDUtMTg3LjM1NC02OTkuM0MyMTAuMDMxLTUyLjc4NCA1MjMuMTEzLTEzNi42OTEgNzY3LjkzOSA0LjY2NWMyNDQuODQ1IDE0MS4zNzYgMzI4Ljc1NiA0NTQuNDY1IDE4Ny4zOCA2OTkuMzFNNzE2Ljc2IDkzLjM3MUM1MjAuODktMTkuNzE3IDI3MC40MjcgNDcuMzUzIDE1Ny4zNDggMjQzLjI1IDQ0LjI0NCA0MzkuMTA3IDExMS4zNiA2ODkuNTkzIDMwNy4yMzYgODAyLjY3NWMxOTUuODU3IDExMy4wODEgNDQ2LjMzMyA0NS45NjkgNTU5LjQxOC0xNDkuOTExQzk3OS43NDIgNDU2Ljg5IDkxMi42MiAyMDYuNDU3IDcxNi43NTkgOTMuMzcyek02OTEuMTY2IDQ5OS4yMUg0NzcuNjM3bDU3LjM4IDU3LjM5M2MxOS45NjcgMTkuOTgzIDE5Ljk2NyA1Mi40MTUgMCA3Mi4zNzItMTkuOTgzIDE5Ljk5Ni01Mi40MjEgMTkuOTk2LTcyLjQwNCAwbC0xNDQuNzctMTQ0Ljc2M2MtMTkuOTgzLTE5Ljk5LTE5Ljk4My01Mi40MjEgMC03Mi40MjRsMTQ0Ljc3LTE0NC43N2MxOS45ODMtMTkuOTggNTIuNDIxLTE5Ljk4IDcyLjQwNCAwIDE5Ljk2NyAxOS45OSAxOS45NjcgNTIuNDE4IDAgNzIuMzg1bC01Ny40MDMgNTcuMzg3aDIxMy41NTVjMjguMjY1IDAgNTEuMTc5IDIyLjk1NyA1MS4xNzkgNTEuMTkydi4wMjZjLS4wMDMgMjguMjk3LTIyLjkxOCA1MS4yMDItNTEuMTgyIDUxLjIwMiIgZ2x5cGgtbmFtZT0iZmxlY2hhLWl6cXVpZXJkYTMiIHVuaWNvZGU9Iu6knyIvPjxnbHlwaCBkPSJNNzQ5LjcxNCA4MTMuNzE0SDI3NC4yODVxLTM3LjcxNCAwLTY0LjU3MS0yNi44NTctMjYuODU2LTI2Ljg1OC0yNi44NTctNjQuNTcxVjI0Ni44NTdxMC0zNy43MTQgMjYuODU3LTY0LjU3MSAyNi44NTgtMjYuODU2IDY0LjU3MS0yNi44NTdoNDc1LjQyOXEzNy43MTUgMCA2NC41NzEgMjYuODU3YzI2Ljg1NiAyNi44NTcgMjYuODU3IDM5LjQyOSAyNi44NTcgNjQuNTcxdjQ3NS40MjlxMCAzNy43MTUtMjYuODU3IDY0LjU3MWMtMjYuODU3IDI2Ljg1Ni0zOS40MjkgMjYuODU3LTY0LjU3MSAyNi44NTdtMTY0LjU3Mi05MS40MjhWMjQ2Ljg1N3EwLTY4LTQ4LjI4Ni0xMTYuMjg2Yy00OC4yODYtNDguMjg2LTcwLjk1Mi00OC4yODYtMTE2LjI4Ni00OC4yODZIMjc0LjI4NXEtNjggMC0xMTYuMjg2IDQ4LjI4Ni00OC4yODUgNDguMjg2LTQ4LjI4NiAxMTYuMjg2djQ3NS40MjlxMCA2OCA0OC4yODYgMTE2LjI4NmM0OC4yODYgNDguMjg2IDcwLjk1MyA0OC4yODYgMTE2LjI4NiA0OC4yODZoNDc1LjQyOXE2OC4wMDEgMCAxMTYuMjg2LTQ4LjI4NiA0OC4yODYtNDguMjg1IDQ4LjI4Ni0xMTYuMjg2bS0xNTYuNzMyLTMxLjA4N1Y0ODIuMDMzYzAtMjAuOTE3LTE1LjIxMi0zNi4xMzEtMzYuMTI3LTM2LjEzMS0yMC45MTcgMC0zNi4xMjkgMTUuMjE0LTM2LjEyOSAzNi4xMzFsLS45NSAxMjAuNzQ1LTIyMi40NzctMjIyLjQ3OWMtMTQuMjYxLTE0LjI2MS0zNy4wNzktMTQuMjYxLTUxLjM0MSAwLTE0LjI2MyAxNC4yNjMtMTQuMjYzIDM3LjA4LS4wMDIgNTEuMzQxbDIyMi40NzcgMjIyLjQ4MUg1MTMuMjExYy0yMC45MTcgMC0zNy4wNzkgMTYuMTYyLTM3LjA3OSAzNy4wNzkgMCAyMC45MTUgMTUuMjExIDM2LjEyOSAzNi4xMjggMzYuMTI5aDIwOS4xNjdjOS41MDcgMCAxOS4wMTQtMy44MDQgMjUuNjctMTAuNDU4IDYuNjU1LTYuNjU2IDEwLjQ1Ny0xNi4xNjQgMTAuNDU3LTI1LjY3MXoiIGdseXBoLW5hbWU9ImZsZWNoYS1saW5rIiB1bmljb2RlPSLupKAiLz48Z2x5cGggZD0iTTk3MiA0ODIgODI2IDYyOGMtMTggMTgtNDQgMTgtNjAgMC0xOC0xOC0xOC00NCAwLTYybDcwLTcySDU1NHYyODhsNzAtNzBjOC04IDIwLTEyIDMyLTEyczIyIDQgMzAgMTJjMTggMTggMTggNDQgMCA2Mkw1NDIgOTE4Yy04IDgtMjAgMTQtMzIgMTRzLTIyLTYtMzAtMTRMMzM0IDc3NGMtMTgtMTgtMTgtNDQgMC02MnM0Ni0xOCA2MiAwbDcwIDcwVjQ5NEgxODRsNzAgNzJjMTggMTggMTggNDQgMCA2MnMtNDQgMTgtNjIgMEw0OCA0ODJjLTgtOC0xNC0xOC0xNC0zMHM2LTI0IDE0LTMybDE0NC0xNDZjOC04IDIwLTEyIDMyLTEyczIyIDYgMzAgMTRjMTggMTggMTggNDIgMCA2MGwtNzAgNzJoMjgyVjEyNmwtNzAgNzBjLTE4IDE4LTQ0IDE2LTYyIDAtMTgtMTgtMTgtNDYgMC02Mkw0ODAtMTBjOC04IDE4LTE0IDMwLTE0czI0IDYgMzIgMTRsMTQ0IDE0NGMxOCAxOCAxOCA0NiAwIDYyLTE4IDE4LTQ2IDE4LTYyIDBsLTcwLTcwdjI4MmgyODJsLTcwLTcyYy0xOC0xOC0xOC00MiAwLTYwIDgtOCAxOC0xNCAzMC0xNHMyMiA0IDMwIDEybDE0NiAxNDZjOCA4IDEyIDIwIDEyIDMycy00IDIyLTEyIDMwIiBnbHlwaC1uYW1lPSJmbGVjaGFzLW1vdmVyIiB1bmljb2RlPSLupKEiLz48Z2x5cGggZD0iTTUxMS45NjggOTYwQzIyOS42NTggOTYwIC4wMDggNzMwLjMxNy4wMDggNDQ4LjAwOS4wMDggMTY1LjY4NiAyMjkuNjU4LTY0IDUxMS45NjgtNjRjMjgyLjM0NCAwIDUxMi4wMjUgMjI5LjY4NiA1MTIuMDI1IDUxMi4wMDlDMTAyMy45OTMgNzMwLjMxNyA3OTQuMzEgOTYwIDUxMS45NjggOTYwbTAtOTMzLjY5MWMtMjMyLjQ4OSAwLTQyMS42NTQgMTg5LjE4LTQyMS42NTQgNDIxLjcgMCAyMzIuNTIzIDE4OS4xNjUgNDIxLjY4NyA0MjEuNjU0IDQyMS42ODcgMjMyLjU1NCAwIDQyMS43MTYtMTg5LjE2MiA0MjEuNzE2LTQyMS42ODcgMC0yMzIuNTIzLTE4OS4xNjItNDIxLjctNDIxLjcxNi00MjEuN002OTUuNDU2IDY2OS4xNCAyNTAuNTE4IDQzMS44MzNjLTEzLjExOC03LjAwMi0yMC4wNjYtMjEuODA0LTE3LjA4Ny0zNi4zODEgMy4wMi0xNC41NjcgMTUuMjQ4LTI1LjQ0MSAzMC4wNjgtMjYuNzA0bDE2My4xNTctMTMuODM3IDEzLjgzNy0xNjMuMTcyYzEuMjQzLTE0LjgyIDEyLjEzLTI3LjA1IDI2LjY5Mi0zMC4wNTJhMzQgMzQgMCAwIDEgNi43ODYtLjY4NmMxMi4xOTcgMCAyMy42NzcgNi42OSAyOS42MDYgMTcuNzczTDc0MC44NjkgNjIzLjcxYzYuOTUxIDEzLjA1MyA0LjU4OCAyOS4xLTUuODY1IDM5LjU0My0xMC40NjYgMTAuNDYxLTI2LjUwMSAxMi44NTQtMzkuNTQ2IDUuODg4eiIgZ2x5cGgtbmFtZT0iZ3BzIiB1bmljb2RlPSLupKIiLz48Z2x5cGggZD0iTTk3My44NTUgNDk4LjE1M2gtNTguODljLTIwLjE4OSAxODYuNDI1LTE2Ny4yNiAzMzUuMDYzLTM1Mi43OTUgMzU4LjA5NXY1My41OGMwIDI3LjcyOC0yMi40MzIgNTAuMTctNTAuMTcgNTAuMTctMjcuNjczIDAtNTAuMTM1LTIyLjQ0Mi01MC4xMzUtNTAuMTd2LTUzLjU4Yy0xODUuNTQxLTIzLjAzMi0zMzIuNjEyLTE3MS42NjctMzUyLjc2Ni0zNTguMDk1aC01OC44OUMyMi40NjUgNDk4LjE1MyAwIDQ3NS43MTEgMCA0NDguMDE4YzAtMjcuNzIyIDIyLjQ2NS01MC4xNjYgNTAuMjExLTUwLjE2Nmg2MC43NkMxMzYuMzE1IDIxNy4zNzggMjgwLjQ5OCA3NC44MDcgNDYxLjg2NyA1Mi4yOTV2LTY2LjExNGMwLTI3LjcyNCAyMi40NjUtNTAuMTcyIDUwLjEzNS01MC4xNzIgMjcuNzM4IDAgNTAuMTcgMjIuNDQ4IDUwLjE3IDUwLjE3MnY2Ni4xMTRjMTgxLjMzIDIyLjUxMiAzMjUuNTU2IDE2NS4wODMgMzUwLjg1MSAzNDUuNTU3aDYwLjgzNGMyNy43MDkgMCA1MC4xNDUgMjIuNDQ0IDUwLjE0NSA1MC4xNjYtLjAwMiAyNy42OTMtMjIuNDM2IDUwLjEzNS01MC4xNDcgNTAuMTM1TTUxMiAxNDguMTYxYy0xNjguNzQ5IDAtMzA2LjA4OCAxMzcuMzI5LTMwNi4wODggMzA2LjEwNiAwIDE2OC43ODQgMTM3LjMzOSAzMDYuMTAyIDMwNi4wODggMzA2LjEwMiAxNjguODA4IDAgMzA2LjEyMy0xMzcuMzIgMzA2LjEyMy0zMDYuMTAyIDAtMTY4Ljc3Ni0xMzcuMzEyLTMwNi4xMDYtMzA2LjEyMy0zMDYuMTA2bTAgNDc0Ljc1NWMtOTMuMTAyIDAtMTY4LjYyNC03NS41MDItMTY4LjYyNC0xNjguNjQ3IDAtOTMuMTIxIDc1LjUxOC0xNjguNjQ5IDE2OC42MjQtMTY4LjY0OSA5My4xOCAwIDE2OC42MjQgNzUuNTI2IDE2OC42MjQgMTY4LjY0OSAwIDkzLjE0My03NS40NCAxNjguNjQ3LTE2OC42MjQgMTY4LjY0NyIgZ2x5cGgtbmFtZT0iZ3BzMiIgdW5pY29kZT0i7qSjIi8+PGdseXBoIGQ9Ik01MTEuOTY1IDk2MEMyMjkuNjI3IDk2MCAwIDczMC4zMDMgMCA0NDhTMjI5LjYyNy02NCA1MTEuOTY1LTY0IDEwMjQgMTY1LjY5NyAxMDI0IDQ0OCA3OTQuMzAzIDk2MCA1MTEuOTY1IDk2MG0wLTkzNS4yNjNDMjc4LjUzMyAyNC43MzcgODguNzAyIDIxNC42MDMgODguNzAyIDQ0OHMxODkuODMxIDQyMy4yNjMgNDIzLjI2MyA0MjMuMjYzUzkzNS4yNjMgNjgxLjM5NyA5MzUuMjYzIDQ0OCA3NDUuMzI3IDI0LjczNyA1MTEuOTY1IDI0LjczN003OTEuMjMxIDQ0OGMwLTE1NC4yMjUtMTI1LjA0Mi0yNzkuMzAxLTI3OS4yNjYtMjc5LjMwMS0xNTQuMTkgMC0yNzkuMjY2IDEyNS4wMDctMjc5LjI2NiAyNzkuMzAxIDAgMTU0LjIyNSAxMjUuMDc2IDI3OS4zMDEgMjc5LjI2NiAyNzkuMzAxIDE1NC4yMjUgMCAyNzkuMjY2LTEyNS4wNzYgMjc5LjI2Ni0yNzkuMzAxIiBnbHlwaC1uYW1lPSJncHMzIiB1bmljb2RlPSLupKQiLz48Z2x5cGggZD0iTTUxMiA5NjBDMjI5LjI0NCA5NjAgMCA3MzAuNzU2IDAgNDQ4UzIyOS4yNDQtNjQgNTEyLTY0czUxMiAyMjkuMjQ0IDUxMiA1MTItMjI5LjI0NCA1MTItNTEyIDUxMm00OS41NDgtOTIxLjYzM1YxNTAuNzFjMCAyNy4zNTEtMjIuMTY1IDQ5LjU0OC00OS41NDggNDkuNTQ4cy00OS41NDgtMjIuMTk4LTQ5LjU0OC00OS41NDhWMzguMzY3QzI3NC4zNjYgNjAuOTk0IDEyNC45OTQgMjEwLjM5OSAxMDIuMzY3IDM5OC40NTJIMjE0LjcxYzI3LjM4NCAwIDQ5LjU0OCAyMi4xOTggNDkuNTQ4IDQ5LjU0OHMtMjIuMTY1IDQ5LjU0OC00OS41NDggNDkuNTQ4SDEwMi4zNjdjMjIuNjI3IDE4OC4wNTMgMTcxLjk5OSAzMzcuNDU4IDM2MC4wODUgMzYwLjA4NVY3NDUuMjljMC0yNy4zNTEgMjIuMTY1LTQ5LjU0OCA0OS41NDgtNDkuNTQ4czQ5LjU0OCAyMi4xOTggNDkuNTQ4IDQ5LjU0OHYxMTIuMzQzYzE4OC4wODYtMjIuNjI3IDMzNy40NTgtMTcyLjAzMiAzNjAuMDg1LTM2MC4wODVIODA5LjI5Yy0yNy4zODQgMC00OS41NDgtMjIuMTk4LTQ5LjU0OC00OS41NDhzMjIuMTY1LTQ5LjU0OCA0OS41NDgtNDkuNTQ4aDExMi4zNDNDODk5LjAwNiAyMTAuMzk5IDc0OS42MzQgNjAuOTk0IDU2MS41NDggMzguMzY3IiBnbHlwaC1uYW1lPSJncHM0IiB1bmljb2RlPSLupKUiLz48Z2x5cGggZD0iTTEwMTAuNjY3IDY3Ny4zNDRjLTguODg3IDIxLjMyNC0xOS41NjEgMzguMjE4LTMyLjAxMSA1MC42NTlMNzkxLjk4OSA5MTQuNjcyYy0xMi40MzQgMTIuNDM0LTI5LjMyOCAyMy4xMDUtNTAuNjYxIDMyLTIxLjMyMSA4Ljg4NS00MC44ODIgMTMuMzI5LTU4LjY1NyAxMy4zMjlINjQuMDAyYy0xNy43NzIgMC0zMi44ODctNi4yMTgtNDUuMzMzLTE4LjY2NEM2LjIyMyA5MjguODk4LjAwNyA5MTMuNzg2LjAwNyA4OTYuMDA0Vi0uMDAyYzAtMTcuNzg2IDYuMjE2LTMyLjg5OSAxOC42NjItNDUuMzRDMzEuMTE1LTU3Ljc3NiA0Ni4yMy02NC4wMDEgNjQuMDAyLTY0LjAwMWg4OTYuMDA0YzE3Ljc4OCAwIDMyLjg5OSA2LjIyNSA0NS4zNCAxOC42NTlxMTguNjUgMTguNjYxIDE4LjY1IDQ1LjM0djYxOC42NjljMCAxNy43ODQtNC40NDEgMzcuMzM4LTEzLjMyOSA1OC42Nzh6TTQyNi42NzMgODUzLjM0MmMwIDUuNzc3IDIuMTEzIDEwLjc2NyA2LjMzNyAxNC45OTggNC4yMTkgNC4yMTIgOS4yMjEgNi4zMjMgMTQuOTk4IDYuMzIzaDEyOC4wMDZjNS43NjMgMCAxMC43NjItMi4xMDYgMTQuOTg0LTYuMzIzIDQuMjMzLTQuMjMxIDYuMzQ0LTkuMjIxIDYuMzQ0LTE0Ljk5OFY2NDAuMDA2YzAtNS43ODYtMi4xMjUtMTAuNzgzLTYuMzQ0LTE1LjAwNy00LjIyMi00LjIxLTkuMjIxLTYuMzIzLTE0Ljk4NC02LjMyM0g0NDguMDA4Yy01Ljc3NyAwLTEwLjc4MSAyLjEwNi0xNC45OTggNi4zMjMtNC4yMjQgNC4yMzEtNi4zMzcgOS4yMjEtNi4zMzcgMTUuMDA3ek03NjguMDE1IDIxLjMyOEgyNTZ2MjU2LjAwNmg1MTIuMDE1em0xNzAuNjc4IDBoLTg1LjM2N1YyOTguNjdjMCAxNy43ODYtNi4yMTggMzIuODg5LTE4LjY1OSA0NS4zNC0xMi40NDEgMTIuNDQxLTI3LjU1NCAxOC42NjYtNDUuMzIzIDE4LjY2NkgyMzQuNjdjLTE3Ljc3OSAwLTMyLjg5NC02LjIyNS00NS4zNC0xOC42NjZxLTE4LjY2LTE4LjY2MS0xOC42NjItNDUuMzRWMjEuMzI4SDg1LjMzM3Y4NTMuMzQ1aDg1LjMzMlY1OTcuMzM2YzAtMTcuNzgxIDYuMjE2LTMyLjg4NyAxOC42NjItNDUuMzMzIDEyLjQ0Ni0xMi40MzkgMjcuNTYxLTE4LjY2NCA0NS4zNC0xOC42NjRoMzg0LjAxNGMxNy43NyAwIDMyLjg5OSA2LjIyNSA0NS4zMjMgMTguNjY0IDEyLjQzNCAxMi40MzkgMTguNjY2IDI3LjU1MSAxOC42NjYgNDUuMzMzdjI3Ny4zMzdjNi42NjQgMCAxNS4zMjUtMi4yMTggMjYuMDAzLTYuNjYyIDEwLjY3Ni00LjQ0MSAxOC4yMjctOC44ODUgMjIuNjcxLTEzLjMyOUw5MTguNjkgNjY3LjM0YzQuNDQxLTQuNDQ0IDguODg3LTEyLjExOSAxMy4zMjktMjMuMDAzIDQuNDU4LTEwLjg5MyA2LjY3MS0xOS40NTEgNi42NzEtMjUuNjcyVjIxLjMyN3oiIGdseXBoLW5hbWU9Imd1YXJkYXIiIHVuaWNvZGU9Iu6kpiIvPjxnbHlwaCBkPSJNOTkxLjk5NyA3MDIuMTUyYTU1LjM1IDU1LjM1IDAgMCAxLTQwLjI5MiAzMi41NDcgNTUgNTUgMCAwIDEtMTAuNDY1Ljk5MiA1NS4yIDU1LjIgMCAwIDEtMzkuMDQ0LTE2LjE2MmwtMTcwLjgtMTcwLjhhMTUuOTQgMTUuOTQgMCAwIDAtMTEuMjk3LTQuNjcyYy00LjQ0OCAwLTguNDQ5IDEuODI0LTExLjMyOSA0LjY3MmwtOTYuMDA5IDk2LjAwOWExNS45NCAxNS45NCAwIDAgMC00LjY3MiAxMS4zMjljMCA0LjQ0OCAxLjc5MiA4LjQ0OSA0LjY3MiAxMS4zMjlsMTcwLjggMTcwLjhhNTUuMjIgNTUuMjIgMCAwIDEgMTUuMTY5IDQ5LjU0MWMtMy40NTYgMTcuOTg2LTE1LjY0OSAzMy4wMjctMzIuNDgzIDQwLjI2QzcxNi40NSA5NDkuMjQ3IDY2NC4xODkgOTYwIDYxMy4wMTcgOTYwYy04Ni4zNzYgMC0xNjkuNDg4LTMwLjYyNy0yMzEuODYyLTkyLjk2OS02MS4xMjYtNjEuMTU4LTkxLjk0NS0xNDIuMzE3LTkzLjA2NS0yMjYuOTY1LS41NzYtNDEuNDQ0IDYuMTc3LTgzLjY4OCAxOS42NS0xMjQuODEyTDE4Ljc4NSAyMjYuMjk5QzQuOTkyIDIxMi41MzgtMS4xODUgMTk0LjA3Mi4yMjMgMTc2LjA4NmMxLjE1Mi0xNC42NTcgNy4zMjktMjkuMDI3IDE4LjU2Mi00MC4yOTJMMTk5Ljc5NC00NS4yMTVjMTIuNTEzLTEyLjUxMyAyOC44NjctMTguNzU0IDQ1LjI1Mi0xOC43NTRzMzIuNzM5IDYuMjQxIDQ1LjI1MiAxOC43NTRMNTc5LjI4NSAyNDMuNzRjMzkuNTU2LTEyLjkyOSA4MC4xMzYtMTkuNDU4IDEyMC4wNDMtMTkuNDU4IDg2LjMxMiAwIDE2OS4zOTIgMzAuNTYzIDIzMS43MzQgOTIuOTA1IDk5LjI0MSA5OS4yNDEgMTE4LjA5MSAyNTEuMTYgNjAuOTM0IDM4NC45NjR6TTg2My4xODUgMzg1LjAzNGMtNDEuNzk2LTQxLjc5Ni05OS45NzctNjQuNzc0LTE2My44NTUtNjQuNzc0LTMwLjAxOSAwLTYwLjM1OCA0Ljk2LTkwLjE4NCAxNC43MjFhOTYgOTYgMCAwIDEtMjkuODU5IDQuNzM2Yy0yNS4wNTggMC00OS42MDUtOS44MjUtNjcuODc4LTI4LjEzMUwyNDUuMDQ4IDQ1LjI1NyAxMDkuMjkxIDE4MS4wMTQgMzc1LjYyIDQ0Ny4zNDNjMjUuNTcgMjUuNTcgMzQuNTk1IDYzLjMwMiAyMy4zNjIgOTcuNzA1LTEwLjQwMSAzMS44NDMtMTUuNTIxIDY0LjAwNi0xNC45MTMgOTUuMDE3IDEuMjQ4IDYxLjI1NCAyMy44NzQgMTE3LjkzMSA2NC45MzQgMTU5LjA1NSA0MS44NiA0MS44MjggMTAwLjA3MyA2NC44NyAxNjQuMDE1IDY0Ljg3IDE4LjE0NiAwIDM2LjY3NS0xLjg4OCA1NS4wNzctNS41MzdMNTQ1LjI5OSA3MzUuNjI1Yy0yMS40MS0yMS4xNTQtMzMuMTg3LTQ5LjQxMy0zMy4xODctNzkuNTU5IDAtMjkuOTIzIDExLjY0OS01OC4wMjEgMzIuODAzLTc5LjIwN2w5Ni4wMDktOTYuMDA5YzIxLjE1NC0yMS4xNTQgNDkuMjg1LTMyLjgwMyA3OS4yMDctMzIuODAzczU4LjAyMSAxMS42NDkgNzkuMjA3IDMyLjgwM2wxMjMuMTggMTIzLjE4YzE2LjM1NC04Mi42OTYtNC42NC0xNjQuMjcxLTU5LjMzNC0yMTguOTk3eiIgZ2x5cGgtbmFtZT0iaGVycmFtaWVudGEiIHVuaWNvZGU9Iu6kpyIvPjxnbHlwaCBkPSJNOTc2IDc3OEg3NTR2MTMyYzAgMTQtMTQgMjgtMjggMjhIMjk0Yy0xNCAwLTI4LTE0LTI4LTI4Vjc3OEg0NGMtMjQgMC00NC0yMC00NC00NFYyMjZjMC0yNCAyMC00MiA0NC00MmgxNjhMMTg2IDhjLTQtMjAgMTQtMzggMzItMzhoNTg0YzE4IDAgMzIgMTYgMzIgMzR2OGwtMjggMTcyaDE3MGMyNCAwIDQ0IDE4IDQ0IDQydjUwOGMwIDI0LTIwIDQ0LTQ0IDQ0bS02MzggODZoMzQ0di04NkgzMzh6TTI3MiA1Mmw0NCAyNTZoMzg4bDQ0LTI1NnptNjYyIDIxOEg3OTRsLTE0IDkyYy0yIDE2LTE2IDI4LTMyIDI4SDI3MmMtMTYgMC0zMC0xMi0zMi0yOGwtMTQtOTJIODZ2NDIyaDg0OHpNMjE3LjY0NiA1MzYuNzA0aDE0MC43MDhjMjQuMzU0IDAgNDMuMjk0IDE4Ljk0IDQzLjI5NCA0My4yOTQgMCAyNC4zNTItMTguOTQyIDQzLjI5NC00My4yOTQgNDMuMjk0SDIxNy42NDZjLTI0LjM1NCAwLTQzLjI5NC0xOC45NDItNDMuMjk0LTQzLjI5NC0uMDAyLTI0LjM1MiAxOC45NC00My4yOTQgNDMuMjk0LTQzLjI5NCIgZ2x5cGgtbmFtZT0iaW1wcmVzb3JhIiB1bmljb2RlPSLupKgiLz48Z2x5cGggZD0iTTUxMiA3MDRjLTM1LjMyOCAwLTY0LTI4LjY3Mi02NC02NHMyOC42NzItNjQgNjQtNjQgNjQgMjguNjQgNjQgNjQtMjguNjQgNjQtNjQgNjRtMC0xOTJjLTM1LjMyOCAwLTY0LTI4LjY0LTY0LTY0VjI1NmMwLTM1LjMyOCAyOC42NzItNjQgNjQtNjRzNjQgMjguNjcyIDY0IDY0djE5MmMwIDM1LjMyOC0yOC42NCA2NC02NCA2NG0wIDQ0OEMyMjkuNjk2IDk2MCAwIDczMC4zMDQgMCA0NDhTMjI5LjY5Ni02NCA1MTItNjRzNTEyIDIyOS42OTYgNTEyIDUxMi0yMjkuNjk2IDUxMi01MTIgNTEybTAtOTI4QzI4Mi41OTIgMzIgOTYgMjE4LjYyNCA5NiA0NDhzMTg2LjU5MiA0MTYgNDE2IDQxNmMyMjkuMzc2IDAgNDE2LTE4Ni42MjQgNDE2LTQxNlM3NDEuMzc2IDMyIDUxMiAzMiIgZ2x5cGgtbmFtZT0iaW5mbyIgdW5pY29kZT0i7qSpIi8+PGdseXBoIGQ9Ik05MzkuODUzIDg4MS4zMDVjLTQ3LjU1IDQ3LjcxNi0xMjQuODE1IDQ3Ljc3My0xNzIuNDg5LjE2Mi0zNS4wNTMtMzQuOTQyLTQ0LjE0MS04NS44MjctMjcuNzY1LTEyOS4zMzNsLTUxOC40NDUtNTE4LjFjLTQzLjQ0NyAxNi40NDgtOTQuMzcxIDcuNDUtMTI5LjQwMy0yNy41LTQ3LjY5Mi00Ny41OTgtNDcuNzc2LTEyNC44MjEtLjE5NS0xNzIuNTAxIDQ3LjYxMy00Ny43MDQgMTI0LjgzNi00Ny43OTcgMTcyLjUxLS4xNzcgMzUuMDY1IDM0Ljk0OCA0NC4xNjggODUuODQ4IDI3Ljc5MiAxMjkuMzMzbDUxOC40MzMgNTE4LjEwOWM0My40NS0xNi40NjYgOTQuMzYyLTcuNDcxIDEyOS4zOTEgMjcuNTA2IDQ3LjcyNSA0Ny41OCA0Ny43ODggMTI0LjgyNy4xNzEgMTcyLjUwMSIgZ2x5cGgtbmFtZT0ibGluZWEiIHVuaWNvZGU9Iu6kqiIvPjxnbHlwaCBkPSJNNjY5LjE2OCAyNTAuNjMyYy01My4zMTIgMTkuNjY4LTExMC43MjkgNC42MDYtMTQ4LjE0Ni0zMy40M2wtMjQxLjUxMyA4OC45OTdjLTMuNzgyIDUzLjE5OC0zNy42OTkgMTAxLjkwOC05MS4wMTUgMTIxLjU1Ny03Mi41OTMgMjYuNzU2LTE1My4wODYtMTAuMzg5LTE3OS44MTEtODIuOTY1LTI2Ljc1OC03Mi41OTMgMTAuMzg3LTE1My4xMDIgODIuOTgxLTE3OS44MTMgNTMuMzMxLTE5LjY2NiAxMTAuNzE0LTQuNjIxIDE0OC4xMyAzMy40MTVsMjQxLjUxMy04OS4wMTRjMy43OTgtNTMuMjE0IDM3LjczMi0xMDEuOTA2IDkxLjA0Ni0xMjEuNTM4IDcyLjU2MS0yNi43NzUgMTUzLjA2OSAxMC40MDUgMTc5Ljc5NiA4Mi45ODEgMjYuNzczIDcyLjU3Ni0xMC40MDUgMTUzLjA2OS04Mi45ODEgMTc5LjgwOXptMzMwLjA1NCA2MDUuNjRjLTQzLjg1IDYzLjcwMS0xMzEuMDgyIDc5LjcxOC0xOTQuNzUxIDM1LjgtNDYuNzk0LTMyLjIyMi02Ny41NjgtODcuODA0LTU4LjA1Ni0xNDAuMzE1TDUzNC40ODggNjA1LjY4MmMtNDUuNjY4IDI3LjU0Ny0xMDUuMDM0IDI3Ljg5OS0xNTEuODA3LTQuMzM4LTYzLjY4Ni00My45MDItNzkuNzIzLTEzMS4wODYtMzUuODM3LTE5NC43NTQgNDMuOTE5LTYzLjcwMyAxMzEuMTAyLTc5Ljc1NCAxOTQuNzcyLTM1LjgxOCA0Ni44MDkgMzIuMjIyIDY3LjU5NyA4Ny44MjMgNTguMDg1IDE0MC4zMTNsMjExLjkxNiAxNDYuMDc5YzQ1LjY2OC0yNy41NjYgMTA1LjAxNy0yNy45MiAxNTEuNzkzIDQuMzUyIDYzLjcxNiA0My44NzEgNzkuNzM1IDEzMS4wODggMzUuODEyIDE5NC43NTYiIGdseXBoLW5hbWU9ImxpbmVhcyIgdW5pY29kZT0i7qSrIi8+PGdseXBoIGQ9Ik05OS4wOTcgODExLjM1NEM0NC4zNjIgODExLjM1NCAwIDc2Ni45OTIgMCA3MTIuMjU5czQ0LjM2Mi05OS4wOTcgOTkuMDk3LTk5LjA5NyA5OS4wOTcgNDQuMzYzIDk5LjA5NyA5OS4wOTctNDQuMzYzIDk5LjA5NS05OS4wOTcgOTkuMDk1bTAtMjY0LjI1N0M0NC4zNjIgNTQ3LjA5NyAwIDUwMi43MzQgMCA0NDhjMC01NC43MzUgNDQuMzYyLTk5LjA5NyA5OS4wOTctOTkuMDk3czk5LjA5NyA0NC4zNjIgOTkuMDk3IDk5LjA5Ny00NC4zNjMgOTkuMDk3LTk5LjA5NyA5OS4wOTdtMC0yNjQuMjU5QzQ0LjM2MiAyODIuODM4IDAgMjM4LjQ3NiAwIDE4My43NDFzNDQuMzYyLTk5LjA5NyA5OS4wOTctOTkuMDk3IDk5LjA5NyA0NC4zNjMgOTkuMDk3IDk5LjA5N2MwIDU0LjczNS00NC4zNjMgOTkuMDk3LTk5LjA5NyA5OS4wOTdtMjMxLjIyNSAzNjMuMzU2aDYyNy42MTJjMzYuNTAxIDAgNjYuMDY1IDI5LjU2NCA2Ni4wNjUgNjYuMDY1cy0yOS41NjQgNjYuMDY1LTY2LjA2NSA2Ni4wNjVIMzMwLjMyMmMtMzYuNTAxIDAtNjYuMDY1LTI5LjU2NC02Ni4wNjUtNjYuMDY1czI5LjU2NC02Ni4wNjUgNjYuMDY1LTY2LjA2NW02MjcuNjEzLTEzMi4xMjlIMzMwLjMyMmMtMzYuNTAxIDAtNjYuMDY1LTI5LjU2NC02Ni4wNjUtNjYuMDY1IDAtMzYuNDk5IDI5LjU2NC02Ni4wNjUgNjYuMDY1LTY2LjA2NWg2MjcuNjEyYzM2LjUwMSAwIDY2LjA2NSAyOS41NjUgNjYuMDY1IDY2LjA2NS4wMDIgMzYuNTAxLTI5LjU2MiA2Ni4wNjUtNjYuMDYzIDY2LjA2NXptMC0yNjQuMjU4SDMzMC4zMjJjLTM2LjUwMSAwLTY2LjA2NS0yOS41NjUtNjYuMDY1LTY2LjA2NXMyOS41NjQtNjYuMDYzIDY2LjA2NS02Ni4wNjNoNjI3LjYxMmMzNi41MDEgMCA2Ni4wNjUgMjkuNTY0IDY2LjA2NSA2Ni4wNjNzLTI5LjU2MiA2Ni4wNjUtNjYuMDYzIDY2LjA2NXoiIGdseXBoLW5hbWU9Imxpc3RhIiB1bmljb2RlPSLupKwiLz48Z2x5cGggZD0ibTQxNy44ODEgMjk3LjgxOCAyMy43NDctNTkuMzgzYy0yMi45OTctOS4xODktNDUuOTMzLTE2LjE5MS02OC4zMS0yMC44NzJsLTEzLjA2NiA2Mi42MTRjMTguNzUzIDMuOTUzIDM4LjEyNyA5Ljg4MSA1Ny42MjkgMTcuNjQxbS0xOTAuNDQtNzYuNjk3YzIzLjQzNi02Ljc0NyA0OC4xMy0xMC4zNzMgNzMuMzc1LTEwLjc0NmwxLjAwNSA2My45OTJjLTE5LjYyOS4zMjMtMzguNjkgMy4wNjItNTYuNjg4IDguMjQzem01MDMuOTMyIDExMS42OTRjMTguNDQ3LTMuNjM2IDM2LjQ0My05Ljk0OSA1My41MDQtMTguNzU1bDI5LjM5MiA1Ni44NzJjLTIyLjUwOCAxMS41NjMtNDYuMTk1IDE5Ljg3Ni03MC41MTQgMjQuNjMzem0tMTMzLjUwMiA1Mi40OTcgMTkuMTM3LTYwLjk5OGMxOS41NTEgNi4xMjcgMzguODc2IDkuOTk3IDU3LjQ5IDExLjQ5NWwtNS4xMTEgNjMuNzU0Yy0yMy4zODEtMS44OC00Ny40NDQtNi42OTYtNzEuNTE2LTE0LjI1MnptLTEwMi43NDItNDguMTI2Yy03LjE4NC00LjUwMi0xNC4yNTItOC42MTctMjEuMTkxLTEyLjQ5OGwzMS4xMjktNTUuODg2YzcuODExIDQuMzk0IDE1LjgwOSA5LjAwMyAyMy44MDYgMTQuMDA3IDExLjAwNCA2LjgxNSAyMS43NTggMTIuODgyIDMyLjMxNyAxOC4yNjJsLTI5LjA2NyA1Ni45OWE1MTkgNTE5IDAgMCAxLTM2Ljk5NC0yMC44NzR6bTE3Ni44NzkgMzk4LjgxM2MwLTI2LjEyNS02LjI2NC01MC44NzYtMTcuMzg0LTcyLjYzTDUxMi4wMDMgMzg0LjAwM1MzNjguMjUzIDY2NS42OSAzNjcuNjkyIDY2Ni44N2MtMTAuMDY3IDIwLjg3Ni0xNS42ODUgNDQuMzc4LTE1LjY4NSA2OS4xMjkgMCA4OC4zNzQgNzEuNjIyIDE2MCAxNTkuOTk2IDE2MCA4OC4zNjggMCAxNjAuMDA0LTcxLjYyNiAxNjAuMDA0LTE2MHptLTY0IDBjMCA1My4wMDEtNDMuMDA0IDk2LjAwMy05Ni4wMDMgOTYuMDAzLTUzLjAwMSAwLTk2LjAwMy00My4wMDItOTYuMDAzLTk2LjAwMyAwLTUyLjk5NSA0My4wMDItOTUuOTk3IDk2LjAwMy05NS45OTcgNTIuOTk5IDAgOTYuMDAzIDQzLjAwMiA5Ni4wMDMgOTUuOTk3bTIyMy45OTYtMTYwSDY4MS44ODdsLTMyLjcwMS02NC4wMDNoMTM2LjY5Mmw2OS4wNjYtMjA3LjI1NC0yMi4wNjItMjQuMzc4YzIzLjUwMi0yMS4yMzUgMzUuNjg1LTQwLjgwNyAzNS43NTMtNDAuODc1bDYuNzQ3IDQuMDU4TDkzNS4xOTggNjRIODguNzVsNjQuMTMgMTkyLjE4MmMyLjI1LTEuNTY0IDMuOTk1LTMuMDYyIDYuNDk2LTQuNjE4bDM0LjAwNSA1NC4xMjRjLTcuNjI3IDQuODE2LTEzLjg3OCA5LjU2NC0xOS4zOCAxMy45OTZsNjQuMTMyIDE5Mi4zMTNoMTM2Ljc0NUEzNTQ5OCAzNTQ5OCAwIDAgMCAzNDIuMTkyIDU3NkgxOTIuMDA0TC4wMDItLjAwM2gxMDI0LjAwMkw4MzIuMDA2IDU3NS45OTh6IiBnbHlwaC1uYW1lPSJsb2NhbGl6YWNpb24iIHVuaWNvZGU9Iu6krSIvPjxnbHlwaCBkPSJNODMyIDg2NGMtODguMzc2IDAtMTYwLTcxLjYyNi0xNjAtMTYwIDAtMjMuODc2IDUuMjUtNDYuNTYyIDE0LjYyNC02Ni44NzZMODMyIDM1MmwxNDUuMzc2IDI4NS4xMjZDOTg2Ljc1IDY1Ny40MzggOTkyIDY4MC4xMjQgOTkyIDcwNGMwIDg4LjM3NC03MS42MjQgMTYwLTE2MCAxNjBtMC0yNTZjLTUzIDAtOTYgNDMtOTYgOTZzNDMgOTYgOTYgOTYgOTYtNDMgOTYtOTYtNDMtOTYtOTYtOTZtNDcuODc2LTMwMi45MzggNTguMjUtMTE2LjQzOC0xNDcuNjg4LTczLjgxMi00OS41IDI0Ny42MjQgOS4xODggOS4xODgtMzAuNSA2MEw3MDQgNDE2IDUxMiA1NDQgMzIwIDQxNiAxOTIgNTQ0IDAgMTYwIDI1NiAzMmwyNTYgMTI4TDc2OCAzMmwyNTYgMTI4LTEwOCAyMTUuOTM4ek0yMzMuNSAxMTQuODEyIDg1Ljg3NCAxODguNjI0IDIwOS41IDQzNmw3My41NjItNzMuNTYyek00ODAgMjE1LjU2MmwtMTc5LTg5LjUgNDYuMjUgMjMxLjE4OEw0ODAgNDQ1Ljc1em02NCAwVjQ0NS43NWwxMzIuNjg4LTg4LjUgNDYuMjUtMjMxLjE4OHoiIGdseXBoLW5hbWU9ImxvY2FsaXphY2lvbjIiIHVuaWNvZGU9Iu6kriIvPjxnbHlwaCBkPSJNOTQxLjkwNSA2NDguMjM5Yy0xMS43ODYtMjIuNzY3LTI1LjQxMS00NS44NDMtMzkuNzczLTY4LjMwNWwtNS43MDMtOC44MzRjLTEyLjA5Mi0xOC41MzktMjQuNTgzLTM2LjU2MS0zNi44NC01My41NCA0Ny4xMjYtMjkuMDY1IDczLjM4OC02Mi43NyA3My4zODgtOTUuNjI5IDAtNDEuMzIyLTQxLjQ5MS04My45OTItMTEzLjgzOS0xMTcuMDcxLTIzLjc1NS0xMC44NjEtNDkuOTA5LTIwLjI1My03Ny44NS0yOC4xNzggNS40NSAzNi42NjggOC44MjQgNzQuODc1IDEwLjAxNiAxMTMuOTU2LTIuNzU3LS43NS01LjYwOS0xLjE4NS04LjUyNi0xLjE4NWEzMi40OCAzMi40OCAwIDAgMC0yNC41MTEgMTEuMTcyYy00LjQ2OSA1LjE0MS0xNi4wMjUgMTguNTgxLTMxLjU4MiAzNy43NDkuMDkxLTUuNDY5LjE3NS0xMC45NDIuMTc1LTE2LjQ0NCAwLTU2LjE0OC00LjgwNy0xMTAuNTItMTMuOTEtMTYwLjk0OS01MC40MjYtOS4xLTEwNC43OTctMTMuOTEtMTYwLjk0Mi0xMy45MS01Ni4xNTUgMC0xMTAuNTMgNC44MDctMTYwLjk2NSAxMy45MS05LjEgNTAuNDI5LTEzLjkwNyAxMDQuOC0xMy45MDcgMTYwLjk0OXM0LjgwNyAxMTAuNTIgMTMuOTA3IDE2MC45NDljNTAuNDMyIDkuMSAxMDQuODEgMTMuOTEgMTYwLjk2NSAxMy45MSAyMC45ODEgMCA0MS43MTItLjY3MiA2Mi4wODItMS45ODgtMTMuNjI1IDIyLjA5OC0yNi4zMTcgNDQuNTgzLTM3LjA2NCA2Ni42MDMtOC4zMDguMjA1LTE2LjYzOS4zNDEtMjUuMDE4LjM0MS01MC4wMDMgMC05OC44NTctMy42MzgtMTQ1LjI2NS0xMC41MzMgNy45MjEgMjcuOTQ0IDE3LjMxNyA1NC4wOTkgMjguMTc4IDc3Ljg1M0M0MjggODAxLjQwNyA0NzAuNjcgODQyLjkwMSA1MTEuOTkyIDg0Mi45MDRoLjAxYy43OTYgMCAxLjU5NS0uMDQ1IDIuMzk0LS4wNzVhMjM4IDIzOCAwIDAgMCAzMC41MzMgNjMuODkxYy0xMC44ODMuNzMxLTIxLjg1NSAxLjE0LTMyLjkyMyAxLjE0aC0uMDE5Yy0yNjcuOTM1LS4wMS00ODUuOTE4LTIxNy45OTMtNDg1LjkxOC00ODUuOTMxUzI0NC4wNDktNjMuOTkzIDUxMS45OTEtNjQuMDAyaC4wMTljMjY3LjkzOCAwIDQ4NS45MjIgMjE3Ljk4NyA0ODUuOTIyIDQ4NS45MzEuMDAzIDgxLjY3LTIwLjI4MyAxNTguNjgyLTU2LjAyNSAyMjYuMzA4ek0zNzAuODE5IDgxOC41MjJjLTEyLjU2Ni0xOC4yMjctMjQuMjgxLTM5LjA2NS0zNC45NzItNjIuNDQ2LTE2LjE4MS0zNS4zOTUtMjkuNDQ4LTc1LjMyMy0zOS42NDYtMTE4LjM1NC00My4wMjQtMTAuMTk4LTgyLjk1Mi0yMy40NjItMTE4LjM0Ny0zOS42NDMtMjMuMzgxLTEwLjY5Mi00NC4yMjUtMjIuNDA3LTYyLjQ1Mi0zNC45NzYgNDIuMzk3IDExOC43NCAxMzYuNjc4IDIxMy4wMjEgMjU1LjQxOCAyNTUuNDE4ek0yMDQuODY2IDUzOS4wMDVjMjMuNzU1IDEwLjg2MSA0OS45MDYgMjAuMjUgNzcuODQ3IDI4LjE3NS02Ljg5NS00Ni40MDItMTAuNTI5LTk1LjI0OS0xMC41MjktMTQ1LjI0OXMzLjYzNC05OC44NDQgMTAuNTI5LTE0NS4yNDVjLTI3Ljk0MSA3LjkyMS01NC4wOTIgMTcuMzE0LTc3Ljg0NCAyOC4xNzUtNzIuMzQ4IDMzLjA4Mi0xMTMuODQyIDc1Ljc1Mi0xMTMuODQyIDExNy4wNzEtLjAwMyA0MS4zMjIgNDEuNDkxIDgzLjk5NSAxMTMuODM5IDExNy4wNzR6bS04OS40NjUtMjU4LjI0M2MxOC4yMjctMTIuNTY2IDM5LjA3MS0yNC4yODQgNjIuNDUyLTM0Ljk3NiAzNS4zOTEtMTYuMTgxIDc1LjMyLTI5LjQ0OCAxMTguMzQ3LTM5LjY0NiAxMC4xOTgtNDMuMDI3IDIzLjQ2NS04Mi45NTkgMzkuNjQ2LTExOC4zNTQgMTAuNjkyLTIzLjM4MSAyMi40MDctNDQuMjE5IDM0Ljk3Mi02Mi40NDZDMjUyLjA3OCA2Ny43MzcgMTU3Ljc5NCAxNjIuMDIxIDExNS40IDI4MC43NjF6TTUxMi4wMDIuOTU2aC0uMDFDNDcwLjY3Ljk1OSA0MjggNDIuNDUzIDM5NC45MjEgMTE0Ljc5NWMtMTAuODYxIDIzLjc1NS0yMC4yNTMgNDkuOTA5LTI4LjE3OCA3Ny44NTMgNDYuNDA4LTYuODk1IDk1LjI1OC0xMC41MzMgMTQ1LjI2NS0xMC41MzMgNDkuOTk3IDAgOTguODQxIDMuNjM0IDE0NS4yMzkgMTAuNTI5LTcuOTIxLTI3Ljk0NC0xNy4zMTctNTQuMDk2LTI4LjE3OC03Ny44NUM1OTUuOTkzIDQyLjQ0OSA1NTMuMzIuOTU1IDUxMi4wMDIuOTU1em0xNDEuMTY2IDI0LjM3NWMxMi41NjYgMTguMjI3IDI0LjI4NyAzOS4wNzEgMzQuOTc5IDYyLjQ1NSAxNi4xODQgMzUuMzk1IDI5LjQ1MSA3NS4zMjMgMzkuNjQ5IDExOC4zNTQgNDMuMDI3IDEwLjE5NSA4Mi45NTkgMjMuNDY1IDExOC4zNTQgMzkuNjQ2IDIzLjM4MSAxMC42OTIgNDQuMjIyIDIyLjQwNyA2Mi40NDkgMzQuOTc2LTQyLjM5Ny0xMTguNzUtMTM2LjY4NC0yMTMuMDM3LTI1NS40MzEtMjU1LjQzMW05MC42OTIgNDMyLjIyNmE5Ljc0IDkuNzQgMCAwIDEgNy41MzIgMy41NjNjMjkuOTM4IDM2LjQ3MyAxNzkuMjc5IDIyMi45MyAxNzkuMjc5IDMxMi4wNzYgMCAxMDMuMDA0LTgzLjgwMyAxODYuODA1LTE4Ni44MDggMTg2LjgwNXMtMTg2LjgwNS04My44LTE4Ni44MDUtMTg2LjgwNWMwLTg5LjE4MiAxNDkuMzM0LTI3NS42MTMgMTc5LjI3LTMxMi4wNzZhOS43NCA5Ljc0IDAgMCAxIDcuNTMyLTMuNTYzTTY0My4xODEgNzg0LjA2OWMwIDU1LjUxNSA0NS4xNjcgMTAwLjY4MiAxMDAuNjgyIDEwMC42ODJzMTAwLjY4Mi00NS4xNjcgMTAwLjY4Mi0xMDAuNjgyLTQ1LjE2Ny0xMDAuNjgyLTEwMC42ODItMTAwLjY4Mi0xMDAuNjgyIDQ1LjE2NC0xMDAuNjgyIDEwMC42ODIiIGdseXBoLW5hbWU9ImxvY2FsaXphY2lvbjMiIHVuaWNvZGU9Iu6kryIvPjxnbHlwaCBkPSJNODk2LjAwMyAzMjAuMDAxSDc2OFY0NDhoMTI4LjAwM3pNNjcyLjAwOCA3OTkuOTk3YzAtMjMuODc1LTUuMjU5LTQ2LjU2NC0xNC42MjctNjYuODc3TDUxMi4wMDMgNDQ4LjAwMyAzNjYuNjI1IDczMy4xMjljLTkuMzcyIDIwLjMwNC0xNC42MTcgNDIuOTkzLTE0LjYxNyA2Ni44NjkgMCA4OC4zNzggNzEuNjIxIDE2MC4wMDMgMTU5Ljk5NSAxNjAuMDAzIDg4LjM3IDAgMTYwLjAwNi03MS42MyAxNjAuMDA2LTE2MC4wMDN6bS02NC4wMDEgMGMwIDUyLjk5OS00My4wMDQgOTYuMDAzLTk2LjAwMyA5Ni4wMDMtNTMuMDAxIDAtOTYuMDAzLTQzLjAwMi05Ni4wMDMtOTYuMDAzczQzLjAwMi05NS45OTkgOTYuMDAzLTk1Ljk5OWM1Mi45OTkgMCA5Ni4wMDMgNDIuOTk4IDk2LjAwMyA5NS45OTlNMTAyNCA3MDMuOTk4VjY0LjAwM0MxMDI0LTYuNjk2IDk2Ni42ODUtNjQgODk2LjAwNS02NEgxMjguMDAxQzU3LjMxNy02NCAuMDAyLTYuNjk2LjAwMiA2NC4wMDN2NjM5Ljk5NWMwIDcwLjY4NCA1Ny4zMTUgMTI4LjAwMyAxMjcuOTk5IDEyOC4wMDNIMjkxLjI1Yy0xLjQ5Ni0xMC40OTktMy4yNS0yMS4wMDUtMy4yNS0zMi4wMDcgMC0xMC44MSAxLjk5OS0yMS4zNzIgMy41MDgtMzEuOTk2aC0zNS41MDRWNTc1Ljk5NmgxMTguODc0bDMyLjYyNS02NC4wMDNIMjU2LjAwMnYtMjU2aDM4My45OTN2MjU2LjAwMmgtMjMuNTVsODcuNTYxIDE3MS43NTRWNTc1Ljk5NWgyNTYuMDAydjEyNy45OTljMCAzNS4zMDktMjguNjkzIDY0LjAwMy02NC4wMDMgNjQuMDAzSDczMi41NjRjMS41NjYgMTAuNjI0IDMuNDM4IDIxLjEyMyAzLjQzOCAzMS45OTYgMCAxMS4wMDItMS42ODQgMjEuNTA1LTMuMjUgMzIuMDA3aDE2My4yNTNDOTY2LjY4NSA4MzIgMTAyNCA3NzQuNjgxIDEwMjQgNzAzLjk5N3pNMTkyLjAwNCAxOTIuMDA2SDY0LjAwNVY2NC4wMDNDNjQuMDA1IDI4LjY4MyA5Mi43NTUgMCAxMjguMDAxIDBoNjQuMDAzem0wIDMxOS45OUg2NC4wMDV2LTI1NmgxMjcuOTk5em0wIDI1Ni4wMDJoLTY0LjAwM2MtMzUuMjQ2IDAtNjMuOTk2LTI4LjY5MS02My45OTYtNjQuMDAzVjU3NS45OTZoMTI3Ljk5OXptNDQ3Ljk5My01NzUuOTkySDI1Ni4wMDRWMGgzODMuOTkzem0zMjAuMDExIDBoLTI1NlYwaDE5MS45OTdjMzUuMzA5IDAgNjQuMDAzIDI4LjY4MyA2NC4wMDMgNjQuMDAzem0wIDMxOS45OWgtMjU2di0yNTZoMjU2eiIgZ2x5cGgtbmFtZT0ibG9jYWxpemFjaW9uNCIgdW5pY29kZT0i7qSwIi8+PGdseXBoIGQ9Ik0xMzEuNDE3IDM2Ni45ODZjLjAwMyAyNC41MjIgMTAuMDk4IDQ4Ljk0NiAyOS44NzUgNjYuNTE2IDM2LjcxMyAzMi41OTcgOTIuOTE1IDI5LjI4MiAxMjUuNDk2LTcuNDM0bDMxLjQ4Ny0zNS40MzJ2NDAxLjE3MWMwIDQ5LjEwNyAzOS43ODkgODguOTEzIDg4LjkwNiA4OC45MTMgNDkuMDg4IDAgODguOTA2LTM5LjgwNSA4OC45MDYtODguOTEzVjU4My44MzRjMTMuMjgyIDcuODc1IDI4LjcwOCAxMi40OCA0NS4yNiAxMi40OCAzNy43MTggMCA2OS44OS0yMy41MiA4Mi44MDQtNTYuNzEzIDEzLjgyMSA4Ljg1MiAzMC4xOTYgMTQuMDQ3IDQ3LjgyMyAxNC4wNDcgNDMuNDUzIDAgNzkuNTY5LTMxLjE1NyA4Ny4zMjEtNzIuMzQyIDEzLjA1NCA3LjUxMyAyOC4xNTMgMTEuODg3IDQ0LjI4MyAxMS44ODcgNDkuMDg4IDAgODguOTA2LTM5LjgyMSA4OC45MDYtODguOTE2bC4wODItMjE3Ljk0MWMwLTk0LjQ2OS04NS41NTEtMTcxLjAzOC0xOTEuMDU3LTE3MS4wMzhINTEwLjUxM2MtNTcuMTgyIDAtMTIzLjcxMyAzNi4xMzMtMTYyLjcxIDc0LjMwMkwxNTMuODUxIDMwNy45NzNjLTE1LjAzNiAxNi45MzktMjIuNDM1IDM4LjAxLTIyLjQzNSA1OS4wMTV6bS03OS4yODcuMDA2Yy0uMDAzLTQxLjE5OCAxNS4wNzQtODAuODYgNDIuNDU3LTExMS42NzhMMjg4LjUzIDM2Ljk0NGE4MCA4MCAwIDAgMSAzLjgyMi00LjAxNWMyNi4xOS0yNS42MzUgNjAuMTM1LTQ5LjE1NSA5NS41ODUtNjYuMjMzIDQxLjY4My0yMC4wODIgODQuMDc2LTMwLjY5NCAxMjIuNTg0LTMwLjY5NGgxOTAuOTk2YzcwLjU3MiAwIDEzNy4zMzggMjQuOTY5IDE4Ny45NzcgNzAuMzA2IDUzLjExIDQ3LjU1MyA4Mi4zNjcgMTExLjQ4MSA4Mi4zNjcgMTgwLjAyM2wtLjA3OSAyMTcuOTczYzAgOTIuNzEyLTc1LjQ1IDE2OC4xNjUtMTY4LjE5IDE2OC4xNjUtLjgxOCAwLTEuNjQtLjAwNi0yLjQ0OC0uMDE5LTMxLjEyMiAzNy4yNDktNzcuODYzIDYwLjQ2MS0xMjkuMTYyIDYwLjQ2MS01LjkzMSAwLTExLjgzMy0uMzE0LTE3LjY5NC0uOTM5YTE2NiAxNjYgMCAwIDEtMTYuODYgMTMuNDI4Yy0xOC44MzUgMTMuMTQ5LTM5Ljg3MiAyMi4xNjktNjIuMDQ0IDI2LjcyOXYxMTkuNjZjMCA5Mi43NDQtNzUuNDUzIDE2OC4xOTctMTY4LjE5IDE2OC4xOTctOTIuNzQxIDAtMTY4LjE5Ny03NS40NTMtMTY4LjE5Ny0xNjguMTk3VjUzNC4xNjZjLTIuODgzLjMyNy01Ljc5MS41NzEtOC43MTUuNzM2LTQ0LjgzOCAyLjY1OC04OC4wMzEtMTIuMzEyLTEyMS42MTctNDIuMTI3LTM1LjkzMy0zMS44OTYtNTYuNTI5LTc3LjczOS01Ni41MzUtMTI1Ljc4NHoiIGdseXBoLW5hbWU9Im1hbm8iIHVuaWNvZGU9Iu6ksSIvPjxnbHlwaCBkPSJNNTExLjg1NyA4MzQuMjg0YzcxLjMwNCAwIDUxLjAyNS0xMDkuOTU4IDU0LjQyMi0xODcuMTUyIDIuNTI0LTU3LjM2NS02LjAzMy0xNDYuNDkzIDIyLjEwMi0xNTEuNTA5YTE1IDE1IDAgMCAxIDIuNjg5LS4yNDNjMzIuNjM5IDAgMzcuMzI2IDExMS4zNjIgNDEuNTExIDEzOS4xMjQgNi42NTYgNDQuNDIyIDEyLjQ2MyAxMzMuNjA3IDM0LjcyMyAxNDguMzgzIDguMzM1IDUuNTMyIDE5LjgyOCA4LjIxNyAzMS43NDggOC4yMTcgMjIuMzAyIDAgNDYuMDk4LTkuNDAyIDUzLjQ2My0yNy4xNTcgMTEuOTY2LTI4Ljg1OC0xNi4xMDEtMTIyLjI0My0yMi4wOTgtMTU3Ljg1Ny04LjMwMy00OS41NjctMzMuODQ5LTE0MS40MDUgOS40NzQtMTQyLjAzOS4xMjIgMCAuMjQzLS4wMDQuMzY5LS4wMDQgMjMuOTA2IDAgMzQuOTYzIDM1LjY4NiA0OC43NjIgNzEuMzc5IDEzLjc5OSAzNS42ODYgMzAuMzQ0IDcxLjM3OSA2NS4yMDMgNzEuMzc5IDIuODExIDAgNS43MzYtLjIyOSA4Ljc5LS43MTMgNTcuNjItOS4wOTEgMjAuMDUtOTIuMjgyIDYuMzE5LTEyOS40MTEtNDguOTczLTEzMi4zNzUtNzMuNDctMjAzLjc2Mi0xMjMuMTMxLTMzNy43NzctNi4yOC0xNi45MjEtMjEuNTk0LTY0LjE1LTI1LjI1Ni02Ni4yOTktMTcuNjE5LTEwLjMzLTE0NC4xNTgtMTIuNjI4LTE2NC4xMzctMTIuNjI4LTM2LjgxNyAwLTEyNC4yNjYuNjk1LTE2NC4xMzcgMTIuNjI4LTE3LjUyMyA1LjIzOC01MS43NzMgNTUuODgtNjYuMzAyIDc1Ljc2OS01MC42NDEgNjkuMzI4LTY2LjczOSA5OS40MTQtMTE5Ljk2OSAxNjQuMTM3LTIxLjgxNSAyNi41NDktNTkuMDM4IDU4LjU2NS01OS45NTQgNzguOTI3LTEuMzI4IDI5LjE0MSAzMi44NjUgNDkuODUgNTAuNDggNTAuNTA5cS43ODQuMDI4IDEuNTY4LjAyOWMzMC4wMjkgMCA1Ny44Ny0zMS4wNTMgNzcuMzU5LTUwLjUzOCA5LjIyMy05LjIyMyA0NC40OTctNTcuOTM4IDY3LjE0NC01Ny45MzggMS45MjMgMCAzLjc1Mi4zNTQgNS40NzEgMS4xMSAyMi40MTMgOS44ODktMy45MjEgNjYuNzE4LTEyLjYyOCA4OC40MDEtMjYuMDc2IDY0Ljk0Mi00Ni42OTYgMTEwLjQzOC02OS40NTcgMTY3LjI5NS0xMC41NzcgMjYuNDU2LTMwLjU1OSA2NS42MDQtMjguNDE0IDg4LjM5NyAyLjg2NCAzMC4zMDUgMjguODgzIDQ3LjU5NSA1NC43MzcgNDcuNTk1YTU3IDU3IDAgMCAwIDUuMjQ5LS4yNGM0Ni43MjQtNC4zMjUgNjAuMjA1LTc5LjU2MSA3NS43NjktMTE2LjgxMSAxMS41NTgtMjcuNzIgMjMuNTUyLTY0Ljg0OSA0NC4yLTEwMC45OTYtLjAzMiAwIDEzLjgxLTI1LjMwNiAyMS40OTMtMjUuMzA2cS4yOTQuMDAxLjU3Ni4wNWMyMS43MTkgMy44NTMgMTMuMDA4IDEyMS45NiAxMi42MjggMTU3LjgyNS0uODIgNzkuNjg2LTI3Ljg0OSAxODEuNjMxIDQ3LjM1NSAxOTIuNTUxIDQuMjE0LjYxMiA4LjE3OC45MTMgMTEuODguOTEzem0wIDc1LjE4OWMtNy4zNDcgMC0xNC45OTEtLjU3My0yMi43MjEtMS43MDEtNTguMTE0LTguNDM5LTk4LjkyNy00Ny42NDEtMTExLjkzNS0xMDcuNTQ5LTIuMDQ4LTkuNDQyLTMuMzgtMTkuMDczLTQuMTc1LTI4LjgxNS0yMy42ODggMjAuNjU1LTQ4LjY4NyAyNy43Mi02OC4xNDMgMjkuNTIxLTQuMDU3LjM3Mi04LjEzOC41NTktMTIuMTc3LjU1OS02Ny42NDUtLjAwNC0xMjMuMzU2LTQ5Ljc1LTEyOS41OS0xMTUuNzA4LTMuNTA1LTM3LjIzMyAxMi41NDItNzQuNTA5IDI2LjcwNi0xMDcuMzk4IDIuNTMxLTUuODc1IDQuOTIzLTExLjQyNSA2Ljc0Ni0xNS45ODcgNi41MTYtMTYuMjg0IDEyLjc4Mi0zMS40NjEgMTkuMDUxLTQ2LjQzOGExMjIgMTIyIDAgMCAxLTIxLjQyMiAxLjEzMmMtMzEuOTQ4LTEuMTk5LTY2LjcwNy0xOC4yMDYtOTAuNzk5LTQ0LjM5LTIyLjA3LTIzLjk4Mi0zMy40NTUtNTQuMDU0LTMyLjA2My04NC42ODEgMS44OS00Mi4xMjcgMzAuNzM0LTczLjAyMyA1OC42MjktMTAyLjkwMSA2Ljk3NS03LjQ2OSAxMy41NTktMTQuNTI2IDE4LjM0Mi0yMC4zNDQgMzIuMTQ1LTM5LjA4NyA0OS42MDMtNjQuMzA4IDcxLjcwNS05Ni4yMzggMTIuNTk5LTE4LjIwMyAyNi44NzgtMzguODMzIDQ1LjYzNi02NC41MTIgMS43MTktMi4zNTIgMy43MzEtNS4xNjcgNS45NzYtOC4yOTkgMzUuOTgzLTUwLjI2OSA2Mi4zNDktODQuMDUgOTkuNTA3LTk1LjE1NyAzNS45NjItMTAuNzYzIDk0Ljk3MS0xNS43NzkgMTg1LjY3My0xNS43NzkgMTEuNzA0IDAgNDkuODA0LjY0MSA4Ni44MTEgMi41NDIgNzQuNjEyIDMuODMxIDk3LjM4NCA5Ljg4MiAxMTUuMzUgMjAuNDEyIDI0LjczIDE0LjUwMSAzMy4xOSAzNi45NjggMzkuOTg2IDU1LjAyNyAzLjc2NyAxMC4wMTEgNy45MTYgMjEuOTU5IDExLjU3NSAzMi40OTkgMi40MzUgNy4wMDcgNC43MyAxMy42MjcgNi4xNTggMTcuNDY5IDI1LjQzNSA2OC42MzMgNDQuNTkxIDEyMS43MzQgNjMuMTE5IDE3My4wODUgMTcuNzU5IDQ5LjIyNyAzNi4xMjYgMTAwLjEzNCA2MC4wNCAxNjQuNzcxIDEuMDY3IDIuODgyIDIuMjg4IDYuMDU0IDMuNTk1IDkuNDY3IDE3LjA2MSA0NC40NCA0Mi44MzYgMTExLjU5OCAxMC40MDEgMTY3LjczNi0xNi40MzQgMjguNDQzLTQ0LjUzIDQ3LjExMS03OS4xMTcgNTIuNTY4YTEzMiAxMzIgMCAwIDEtMjAuNTA5IDEuNjMzYy0xMC43NDggMC0yMS4yMzktMS4zOTMtMzEuMzIyLTQuMTAzIDkuMjQ4IDQ3LjcyNyAxMS43MDEgODQuNDA1LS45MzEgMTE0Ljg2LTE4LjUzNiA0NC42OC02Ni43NzggNzMuNTQ5LTEyMi45MTYgNzMuNTQ5LTI3LjUwOCAwLTUyLjg2MS03LjE3OS03My4zMjMtMjAuNzU2YTk2IDk2IDAgMCAxLTQuMjc5LTMuMDA4Yy01Ljc4MiAxMS40NzUtMTMuMTY5IDIyLjE2My0yMi41OTIgMzEuNzUxLTIyLjYyOCAyMy4wMTUtNTIuNzE1IDM1LjE4NS04Ni45OTcgMzUuMTg1eiIgZ2x5cGgtbmFtZT0ibWFubzIiIHVuaWNvZGU9Iu6ksiIvPjxnbHlwaCBkPSJNOTc2IDgzOCA3NTIgOTQyYy00IDItMTAgMi0xNiAycy0xMiAwLTE2LTJsLTIxMC05OC0yMTAgOThjLTQgMi0xMCAyLTE2IDJzLTEyIDAtMTYtMkw0MiA4MzhjLTE0LTYtMjItMjItMjItMzZWMTIyYzAtMjAgMTYtMzggMzgtMzggNiAwIDEwIDIgMTYgNGwyMTAgOTYgMjEwLTk2YzQtMiAxMC00IDE2LTRzMTIgMiAxNiA0bDIxMCA5NiAyMDgtOTZjNi0yIDEwLTQgMTYtNCAyMiAwIDM4IDE4IDM4IDM4djY4MGMwIDE0LTggMzAtMjIgMzZNMjQ2IDI1MCA5NiAxODJ2NTk2bDE1MCA3MHptMjI2LTY4LTE1MCA2OHY1OThsMTUwLTcwem0yMjYgNjgtMTUwLTY4djU5NmwxNTAgNzB6bTIyNC02OC0xNDggNjh2NTk4bDE0OC03MHoiIGdseXBoLW5hbWU9Im1hcGEiIHVuaWNvZGU9Iu6ksyIvPjxnbHlwaCBkPSJNODI0IDU4MGMzNiAwIDY0LTMwIDY0LTY2cy0yOC02Ni02NC02Nkg1NzZWMjAwYzAtMzYtMzAtNjQtNjYtNjRzLTY2IDI4LTY2IDY0djI0OEgxOTZjLTM2IDAtNjYgMzAtNjYgNjZzMzAgNjYgNjYgNjZoMjQ4djI0OGMwIDM2IDMwIDY2IDY2IDY2czY2LTMwIDY2LTY2VjU4MHoiIGdseXBoLW5hbWU9Im1hcyIgdW5pY29kZT0i7qS0Ii8+PGdseXBoIGQ9Ik01NDQuMjg5IDY4Ni42NTFjLTguNTU0IDcuODc1LTE5Ljc1NSAxMi45NjYtMzIuMzEzIDEyLjk0My0xMi41MzYgMC0yMy43NTktNS4wNjktMzIuMzExLTEyLjk0My05LjUyNS04Ljc1Ny0xNS43MDItMjEuMDg4LTE1LjY3OS0zNS4wNDlsLjAyMy0xNTUuNjA3LTE1NS42MDkuMDIzYy0xMy45ODQgMC0yNi4yNy02LjE3Ny0zNS4wNDktMTUuNjgyLTcuODc1LTguNTUyLTEyLjk2Ni0xOS43NTMtMTIuOTQzLTMyLjMxMSAwLTEyLjUzOCA1LjA2OS0yMy43NTkgMTIuOTQzLTMyLjMxMyA4Ljc1NS05LjUyNSAyMS4wNjYtMTUuNjc5IDM1LjA0OS0xNS42NzlsMTU1LjYwNy0uMDIzVjI0NC40MjNjMC0xMy45ODQgNi4xNzktMjYuMjcyIDE1LjY4Mi0zNS4wNDkgOC41NTItNy44NzcgMTkuNzU1LTEyLjk2NiAzMi4zMTEtMTIuOTQzIDEyLjUzNiAwIDIzLjc1OSA1LjA2OSAzMi4zMTEgMTIuOTQzIDkuNTI1IDguNzU1IDE1LjY3OSAyMS4wNjYgMTUuNjc5IDM1LjA0OVY0MDAuMDFoMTU1LjYzMmMxMy45ODQgMCAyNi4yNyA2LjE3NyAzNS4wNDkgMTUuNjc5IDcuODc1IDguNTU0IDEyLjk2NiAxOS43NTUgMTIuOTQxIDMyLjMxMSAwIDEyLjUzNi01LjA2OSAyMy43NTktMTIuOTQxIDMyLjMxMS04Ljc1NSA5LjUyNS0yMS4wNjYgMTUuNjgyLTM1LjA0OSAxNS42ODJINTU5Ljk5VjY1MS41OGMuMDAyIDEzLjk4NC02LjE1MiAyNi4yOTItMTUuNyAzNS4wNzJ6TTE0OS45NjEgODEwLjAzOWMtMTk5LjkzNi0xOTkuOTM2LTE5OS45MzYtNTI0LjE0MSAwLTcyNC4wNzdzNTI0LjE0MS0xOTkuOTM2IDcyNC4wNzcgMCAxOTkuOTM2IDUyNC4xNDEgMCA3MjQuMDc3Yy0xOTkuOTM2IDE5OS45MzQtNTI0LjE0MSAxOTkuOTM0LTcyNC4wNzcgMG02NTYuMTk1LTY1Ni4xOTVjLTE2Mi4xOTEtMTYyLjE5My00MjYuMTE5LTE2Mi4xOTMtNTg4LjMxMyAwLTE2Mi4xOTMgMTYyLjE5MS0xNjIuMTkzIDQyNi4xMTkgMCA1ODguMzEzczQyNi4xMTkgMTYyLjE5MyA1ODguMzEzIDAgMTYyLjE5My00MjYuMTIxIDAtNTg4LjMxMyIgZ2x5cGgtbmFtZT0ibWFzMiIgdW5pY29kZT0i7qS1Ii8+PGdseXBoIGQ9Ik05ODUuMTU5IDMxOC44NjZINDMuNzJWLTM0LjE3OGg5NDEuNDM5ek0xMDIuNTYgMjQuNjY2djIzNS4zNmg4OC4yNnYtMTE3LjY4aDU4Ljg0djExNy42OGg1OC44NHYtNTguODRoNTguODR2NTguODRoNTguODR2LTExNy42OGg1OC44NHYxMTcuNjhoNTguODR2LTU4Ljg0aDU4Ljg0djU4Ljg0aDU4Ljg0di0xMTcuNjhoNTguODR2MTE3LjY4aDU4Ljg0di01OC44NGg1OC44NHY1OC44NGg4OC4yNjNWMjQuNjY2SDEwMi41NTh6bTI5My4zMiAzOTguMjM1aC0yNC4yODZMMjMzLjA5MiA2NjIuNzk4IDM3MS42IDkwMi42OTVoMjc2Ljk5OWwxMzguNTE0LTIzOS44OTctMTM4LjUwOC0yMzkuODk3em0yMDQuMTU2IDg0LjEyMSA4OS45NCAxNTUuNzc2LTg5Ljk0IDE1NS43ODJINDIwLjE2bC04OS45NC0xNTUuNzgyIDg5Ljk0LTE1NS43NzZ6IiBnbHlwaC1uYW1lPSJtZWRpci1hcmVhIiB1bmljb2RlPSLupLYiLz48Z2x5cGggZD0iTTk4My45MDMgNjc5LjgzOGMuMDk5IDUzLjY4OC00My40MiA5Ny4yNy05Ny4xMTQgOTcuMzA2LTM5LjQ1NC4wNi03My4yNjMtMjMuNDk2LTg4LjU0OS01Ny4yNDJsLTU4NC4xOTIuMTg5Yy0xNS4yMTMgMzMuNzYxLTQ4Ljk4MyA1Ny4zOTItODguNDI1IDU3LjQzNC01My43MDYuMDU3LTk3LjI3Ni00My40Mi05Ny4zMy05Ny4xMDgtLjA1MS01My43MjEgNDMuNDItOTcuMjk3IDk3LjEyOS05Ny4zMjQgMzkuNDU3LS4wNjYgNzMuMjgxIDIzLjQ4NCA4OC41NjEgNTcuMjNsNTg0LjE5Mi0uMTg5YzE1LjIwNC0zMy43NjEgNDguOTY1LTU3LjM5MiA4OC40MjUtNTcuNDEzIDUzLjcwMy0uMDg3IDk3LjI2NyA0My40MTQgOTcuMzAzIDk3LjExN20xLjI1Ni0zNjAuOTcySDQzLjcyVi0zNC4xNzVoOTQxLjQzOXpNMTAyLjU2IDI0LjY2NnYyMzUuMzZoODguMjZ2LTExNy42OGg1OC44NHYxMTcuNjhoNTguODR2LTU4Ljg0aDU4Ljg0djU4Ljg0aDU4Ljg0di0xMTcuNjhoNTguODR2MTE3LjY4aDU4Ljg0di01OC44NGg1OC44NHY1OC44NGg1OC44NHYtMTE3LjY4aDU4Ljg0djExNy42OGg1OC44NHYtNTguODRoNTguODR2NTguODRoODguMjZWMjQuNjY2SDEwMi41NTh6IiBnbHlwaC1uYW1lPSJtZWRpci1saW5lYSIgdW5pY29kZT0i7qS3Ii8+PGdseXBoIGQ9Ik04MjQgNDQ0SDE5NmMtNDAgMC03MCAzMC03MCA3MHMzMCA3MCA3MCA3MGg2MjhjNDAgMCA3MC0zMCA3MC03MHMtMzAtNzAtNzAtNzAiIGdseXBoLW5hbWU9Im1lbm9zIiB1bmljb2RlPSLupLgiLz48Z2x5cGggZD0iTTU1OS45OTEgNDAwLjAwN2gxNTUuNjMyYzEzLjk4NCAwIDI2LjI3IDYuMTc3IDM1LjA0OSAxNS42NzkgNy44NzUgOC41NTQgMTIuOTY2IDE5Ljc1NSAxMi45NDEgMzIuMzExIDAgMTIuNTM2LTUuMDY5IDIzLjc1OS0xMi45NDEgMzIuMzExLTguNzU1IDkuNTI1LTIxLjA2NiAxNS42ODItMzUuMDQ5IDE1LjY4Mkg1NTkuOTkxem04LjQ2NCA5NS45ODYtMjYwLjA1Ny4wMjNjLTEzLjk4NCAwLTI2LjI3LTYuMTc3LTM1LjA0OS0xNS42ODItNy44NzUtOC41NTItMTIuOTY2LTE5Ljc1My0xMi45NDMtMzIuMzExIDAtMTIuNTM4IDUuMDY5LTIzLjc1OSAxMi45NDMtMzIuMzEzIDguNzU1LTkuNTI1IDIxLjA2Ni0xNS42NzkgMzUuMDQ5LTE1LjY3OWwyNjAuMDU3LS4wMjN6TTE0OS45NjEgODEwLjAzOWMtMTk5LjkzNi0xOTkuOTM2LTE5OS45MzYtNTI0LjE0MSAwLTcyNC4wNzdzNTI0LjE0MS0xOTkuOTM2IDcyNC4wNzcgMCAxOTkuOTM2IDUyNC4xNDEgMCA3MjQuMDc3Yy0xOTkuOTM2IDE5OS45MzQtNTI0LjE0MSAxOTkuOTM0LTcyNC4wNzcgMG02NTYuMTk1LTY1Ni4xOTVjLTE2Mi4xOTEtMTYyLjE5My00MjYuMTE5LTE2Mi4xOTMtNTg4LjMxMyAwLTE2Mi4xOTMgMTYyLjE5MS0xNjIuMTkzIDQyNi4xMTkgMCA1ODguMzEzczQyNi4xMTkgMTYyLjE5MyA1ODguMzEzIDAgMTYyLjE5My00MjYuMTIxIDAtNTg4LjMxMyIgZ2x5cGgtbmFtZT0ibWVub3MyIiB1bmljb2RlPSLupLkiLz48Z2x5cGggZD0iTTE1NiA3NjBjLTQwIDAtNzAgMzAtNzAgNzBzMzAgNzIgNzAgNzJoNzA2YzQwIDAgNzItMzIgNzItNzJzLTMyLTcwLTcyLTcwem03MDYtMTc0YzQwIDAgNzItMzIgNzItNzJzLTMyLTcwLTcyLTcwSDE1NmMtNDAgMC03MCAzMC03MCA3MHMzMCA3MiA3MCA3MnptMC0zMThjNDAgMCA3Mi0zMCA3Mi03MHMtMzItNzItNzItNzJIMTU2Yy00MCAwLTcwIDMyLTcwIDcyczMwIDcwIDcwIDcweiIgZ2x5cGgtbmFtZT0ibWVudSIgdW5pY29kZT0i7qS6Ii8+PGdseXBoIGQ9Ik01MTIgOTI1Ljk5OGMtMjYzLjYxMi0uMDIyLTQ3Ny45NzgtMjE0LjM4NC00NzgtNDc4IC4wMjItMjYzLjYwMiAyMTQuMzk0LTQ3Ny45NjggNDc4LTQ3OCAyNjMuNjE0LjAzMiA0NzcuOTcyIDIxNC4zOTggNDc4LjAwMiA0NzgtLjAzIDI2My42MTItMjE0LjM5NCA0NzcuOTc2LTQ3OC4wMDIgNDc4bS0xNS45NS04MzguOTZjLTkuMTM4IDUuMzA4LTE5LjczNiAxNS41OC0zMC4xMDQgMzAuNDUtMTAuNDAyIDE0Ljg1Mi0yMC42MzggMzQuMTgtMjkuODggNTcuMjE0LTI0LjczOCA2MS41MTYtNDAuMjYgMTQyLjIwOC00NC4wODQgMjI5Ljg0MmgyNDAuMDQ0Yy0zLjgyNi04Ny42MzItMTkuMzQ2LTE2OC4zMjYtNDQuMDktMjI5Ljg0Mi0xMi4zMS0zMC43MDgtMjYuNDYtNTQuODQtNDAuMjY4LTcwLjUzOC02Ljg4Mi03Ljg1OC0xMy42NDYtMTMuNTY4LTE5LjcyOC0xNy4xMjYtNi4xMTgtMy41NzItMTEuMzc4LTQuOTg0LTE1Ljk0Mi00Ljk4NC00LjU2NiAwLTkuODI2IDEuNDEyLTE1Ljk0OCA0Ljk4NE0zMDUuMDEyIDQwNC41NWMzLjk5NC05OC4yMyAyMS4zNC0xODkuNzgyIDUwLjQwMi0yNjIuMjI4IDkuOTI2LTI0LjY4NCAyMS4wMTgtNDYuNTU2IDMzLjIzNi02NS40NDgtMTQyLjEzIDQ3LjM1NC0yNDguMzI4IDE3NC4zMi0yNjUuMzMyIDMyNy42NzZ6bS0xODEuNjk2IDg2LjkxMmMxNy4wMDQgMTUzLjM1NCAxMjMuMTk4IDI4MC4zMjIgMjY1LjMzIDMyNy42NzgtMTIuMjE4LTE4Ljg5OC0yMy4zMTYtNDAuNzY2LTMzLjIzOC02NS40NDgtMjkuMDYyLTcyLjQ0NC00Ni40MDQtMTY0LTUwLjQwMi0yNjIuMjMydi4wMDJ6bTU5NS42NjYtLjAwOGMtMy45ODQgOTguMjM2LTIxLjMzNiAxODkuNzkyLTUwLjM5OCAyNjIuMjM4LTkuOTIgMjQuNjgtMjEuMDE0IDQ2LjU0Ni0zMy4yMyA2NS40NDIgMTQyLjEzOC00Ny4zNTYgMjQ4LjMyMi0xNzQuMzI0IDI2NS4zMzItMzI3LjY3OEg3MTguOTgyem0tODYuOTYyLS4wMDJIMzkxLjk3MmMzLjgyNCA4Ny42MzggMTkuMzQgMTY4LjMyNCA0NC4wODQgMjI5Ljg0OCAxMi4zMDQgMzAuNzA4IDI2LjQ2MiA1NC44NDIgNDAuMjY4IDcwLjUzMiA2Ljg3OCA3Ljg2NCAxMy42MzggMTMuNTc2IDE5LjcyMiAxNy4xMjggNi4xMjYgMy41NzQgMTEuMzg2IDQuOTg0IDE1Ljk0OCA0Ljk5IDQuNTYyLS4wMDQgOS44My0xLjQxNiAxNS45NDQtNC45OSA5LjE0OC01LjMwOCAxOS43NC0xNS41NzggMzAuMTEtMzAuNDQ4IDEwLjM5OC0xNC44NDIgMjAuNjM2LTM0LjE3NiAyOS44OC01Ny4yMDggMjQuNzUtNjEuNTI4IDQwLjI2NC0xNDIuMjE2IDQ0LjA5Mi0yMjkuODUybTMuMzQyLTQxNC41ODJjMTIuMjE4IDE4Ljg5NCAyMy4zMSA0MC43NjYgMzMuMjI2IDY1LjQ0NiAyOS4wNjYgNzIuNDQ4IDQ2LjQwOCAxNjMuOTkyIDUwLjQwMiAyNjIuMjIyaDE4MS42OThDODgzLjY4MiAyNTEuMjA0IDc3Ny40NzggMTI0LjI0IDYzNS4zNjIgNzYuODciIGdseXBoLW5hbWU9Im11bmRvIiB1bmljb2RlPSLupLsiLz48Z2x5cGggZD0iTTEwMjQgNDUyLjlDMTAyMS41NDkgNzMyLjc4NCA3OTMuMTA5IDk2MCA1MTEuOTk5IDk2MCAyMzEuNTAzIDk2MCAyLjQ1MSA3MzIuNzg1IDAgNDUyLjI4N3YtOC41NzFDMi40NTEgMTYzLjIxOCAyMzAuODg5LTYzLjk5NyA1MTEuOTk5LTYzLjk5N2MyODAuNDk4IDAgNTA5LjU1IDIyNy4yMTUgNTExLjk5OSA1MDcuMXY0LjI4OGMuMDAyIDEuMjIzLjAwMiA0LjI4Ni4wMDIgNS41MTF6TTMzMS4zMyA4NDcuOTI0Yy00MC40MjItNTguNzk0LTcxLjY1NS0xMzcuMTg3LTg4LjgwMy0yMjcuODI3LTI3LjU1OS02LjEyNS01My44OTQtMTMuNDc1LTc4LjM5My0yMi4wNDgtMjkuMzk4LTEwLjQxMi01NC41MDgtMjAuODIzLTc0LjcxNy0zMS44NDcgMzUuNTIgMTI1LjU0OSAxMjQuOTM3IDIyOC40MzkgMjQxLjkxMyAyODEuNzIxek03My40OTQgNDQ4LjYxM2MwIDIwLjIxMSAzNS41MiA1Mi42NjkgMTE0LjUyNyA3OS42MTYgMTMuNDc1IDQuODk5IDI4LjE3MyA5LjE4NyA0Mi44NyAxMi44NjEtMy4wNjItMzAuMDEtNC4yODgtNjEuMjQ0LTQuMjg4LTkzLjA5MXMxLjgzNy02My4wODEgNC4yODgtOTMuMDkxYy0xNS4zMTIgNC4yODgtMjkuMzk4IDguNTczLTQyLjg3IDEyLjg2MS03OS4wMDcgMjguMTc1LTExNC41MjcgNjAuNjMzLTExNC41MjcgODAuODQ0bTE2LjUzNS0xMTcuNTg4YzIwLjIxMS0xMS4wMjQgNDQuNzA3LTIyLjA0OCA3NC43MTctMzEuODQ3IDIzLjg4NS03Ljk2MiA1MC4yMi0xNS4zMTIgNzguMzkzLTIyLjA0OCAxNy43Ni05MC42NCA0OC4zODMtMTY5LjY0NSA4OS40MTctMjI3LjgyNy0xMTguMjAxIDUzLjI4MS0yMDcuNjE4IDE1Ni4xNy0yNDIuNTI3IDI4MS43MjF6bTM4NS4yMjQtMzEzLjU3QzQzNi42NyAzMi43NjcgMzk4LjY5OSA3MS45NjMgMzY4LjY5IDEyOS41MzFjLTIwLjIxMSAzOS4xOTctMzYuNzQ2IDgzLjkwNC00Ny43NyAxMzMuNTEzIDQ4Ljk5NS03LjM1IDEwMS4wNTMtMTEuNjM2IDE1NC45NDctMTIuODYxVjE3LjQ1N2gtLjYxNHptMCAzMDYuMjJjLTU5LjQwNyAxLjgzNy0xMTYuMzY0IDYuNzM2LTE2OC40MjIgMTUuOTIzLTQuMjg4IDM1LjUyMy02LjczNiA3MS42NTUtNi43MzYgMTA5LjAxNHMyLjQ1MSA3NC4xMDUgNi43MzYgMTA5LjAxNGM1Mi4wNTcgOC41NzMgMTA5LjAxNCAxNC4wODYgMTY4LjQyMiAxNS45MjNWMzIzLjY3NHptMCAzMjMuMzY5Yy01My44OTQtMS4yMjUtMTA1Ljk1Mi01LjUxMS0xNTQuOTQ3LTEyLjg2MSAxMS42MzYgNDguOTk1IDI3LjU1OSA5NC4zMTYgNDcuNzcgMTMzLjUxMyAzMC4wMSA1Ny41NjggNjcuOTgxIDk2Ljc2NSAxMDYuNTYzIDExMi4wNzZWNjQ3LjA0NmguNjE0em00NTguNzE2LTgwLjg0MmMtMjAuMjExIDExLjAyNC00NC43MDcgMjIuMDQ4LTc0LjcxNyAzMS44NDctMjMuODg1IDcuOTYyLTUwLjIyIDE1LjMxMi03OC4zOTMgMjIuMDQ4LTE3Ljc2IDkwLjY0LTQ4LjM4MyAxNjkuNjQ1LTg5LjQxNyAyMjcuODI3IDExOC4yMDMtNTMuMjgzIDIwNy42MTgtMTU2LjE3MiAyNDIuNTI3LTI4MS43MjF6TTU0OC43NDcgODc5Ljc3YzM4LjU4My0xNS4zMTIgNzYuNTU0LTU0LjUwOCAxMDYuNTYzLTExMi4wNzYgMjAuMjExLTM5LjE5NyAzNi43NDYtODMuOTA0IDQ3Ljc3LTEzMy41MTMtNDguOTk1IDcuMzUtMTAxLjA1MyAxMS42MzYtMTU0Ljk0NyAxMi44NjFWODc5Ljc3em0wLTMwNi4yMmM1OS40MDctMS44MzcgMTE2LjM2NC02LjczNiAxNjguNDIyLTE1LjkyMyA0LjI4OC0zNS41MjMgNi43MzYtNzEuNjU1IDYuNzM2LTEwOS4wMTRzLTIuNDUxLTc0LjEwNS02LjczNi0xMDkuMDE0Yy01Mi4wNTctOC41NzMtMTA5LjAxNC0xNC4wODYtMTY4LjQyMi0xNS45MjN6bTAtNTU2LjA5NXYyMzIuNzI2YzUzLjg5NCAxLjIyNSAxMDUuOTUyIDUuNTExIDE1NC45NDcgMTIuODYxLTExLjYzNi00OC45OTUtMjcuNTU5LTk0LjMxNi00Ny43Ny0xMzMuNTEzLTMwLjYyMy01Ny41NjYtNjguNTk0LTk2Ljc2My0xMDcuMTc3LTExMi4wNzRNNjkyLjY3IDQ5LjMwMmM0MC40MjIgNTguNzk0IDcxLjY1NSAxMzcuMTg3IDg5LjQxNyAyMjcuODI3IDI3LjU1OSA2LjEyNSA1My44OTQgMTMuNDc1IDc4LjM5MyAyMi4wNDggMjkuMzk4IDEwLjQxMiA1NC41MDggMjAuODIzIDc0LjcxNyAzMS44NDdDODk5LjA2MSAyMDUuNDc1IDgwOS42NDYgMTAyLjU4NSA2OTIuNjcgNDkuMzAzem0xNDMuMzA5IDMxOS42OTRjLTEzLjQ3NS00Ljg5OS0yOC4xNzMtOS4xODctNDIuODctMTIuODYxIDMuMDYyIDMwLjAxIDQuMjg4IDYxLjI0NCA0LjI4OCA5My4wOTFzLTEuODM3IDYzLjA4MS00LjI4OCA5My4wOTFjMTUuMzEyLTQuMjg4IDI5LjM5OC04LjU3MyA0Mi44Ny0xMi44NjEgNzkuMDA1LTI2Ljk0NyAxMTQuNTI3LTU5LjQwNyAxMTQuNTI3LTc5LjYxNiAwLTIwLjIxMy0zNS41MjMtNTMuODk3LTExNC41MjctODAuODQ0IiBnbHlwaC1uYW1lPSJtdW5kbzIiIHVuaWNvZGU9Iu6kvCIvPjxnbHlwaCBkPSJNMjE3LjIxMiA3NTEuNjk0djg0LjE4NWMwIDI1LjcyNC0yMC44MjEgNDYuNTQ1LTQ2LjU0NSA0Ni41NDVzLTQ2LjU0NS0yMC44MjEtNDYuNTQ1LTQ2LjU0NXYtODQuMTg1QzUyLjU5NyA3MzEuMzY5LjAwMSA2NjUuNTg1LjAwMSA1ODcuNjM3UzUyLjU5NyA0NDMuOTA1IDEyNC4xMjIgNDIzLjU4VjYwLjEyMmMwLTI1LjY5MyAyMC44MjEtNDYuNTQ1IDQ2LjU0NS00Ni41NDVzNDYuNTQ1IDIwLjg1MiA0Ni41NDUgNDYuNTQ1VjQyMy41OGM3MS41MjUgMjAuMzI1IDEyNC4xMjEgODYuMDc4IDEyNC4xMjEgMTY0LjA1NyAwIDc3Ljk0OC01Mi41OTYgMTQzLjczMi0xMjQuMTIxIDE2NC4wNTdtLTQ2LjU0NS0yNDEuNjMzYy00Mi43NiAwLTc3LjU3NiAzNC44MTYtNzcuNTc2IDc3LjU3NnMzNC44MTYgNzcuNTc2IDc3LjU3NiA3Ny41NzYgNzcuNTc2LTM0LjgxNiA3Ny41NzYtNzcuNTc2LTM0LjgxNi03Ny41NzYtNzcuNTc2LTc3LjU3Nm0zODcuODc4LTM3LjY0djM2My40NThjMCAyNS43MjQtMjAuODIxIDQ2LjU0NS00Ni41NDUgNDYuNTQ1cy00Ni41NDUtMjAuODIxLTQ2LjU0NS00Ni41NDVWNDcyLjQyMWMtNzEuNTI1LTIwLjMyNS0xMjQuMTIxLTg2LjEwOS0xMjQuMTIxLTE2NC4wNTdzNTIuNTk2LTE0My43MzIgMTI0LjEyMS0xNjQuMDU3VjYwLjEyMmMwLTI1LjY5MyAyMC44MjEtNDYuNTQ1IDQ2LjU0NS00Ni41NDVzNDYuNTQ1IDIwLjg1MiA0Ni41NDUgNDYuNTQ1djg0LjE4NWM3MS41MjUgMjAuMzI1IDEyNC4xMjEgODYuMTA5IDEyNC4xMjEgMTY0LjA1N1M2MzAuMDcgNDUyLjA5NiA1NTguNTQ1IDQ3Mi40MjFNNTEyIDIzMC43ODhjLTQyLjc2IDAtNzcuNTc2IDM0Ljc4NS03Ny41NzYgNzcuNTc2UzQ2OS4yNCAzODUuOTQgNTEyIDM4NS45NHM3Ny41NzYtMzQuNzg1IDc3LjU3Ni03Ny41NzZTNTU0Ljc2IDIzMC43ODggNTEyIDIzMC43ODhtMzg3Ljg3OSA1MjAuOTA2djg0LjE4NWMwIDI1LjcyNC0yMC44MjEgNDYuNTQ1LTQ2LjU0NSA0Ni41NDVzLTQ2LjU0NS0yMC44MjEtNDYuNTQ1LTQ2LjU0NXYtODQuMTg1Yy03MS41MjUtMjAuMzI1LTEyNC4xMjEtODYuMDc4LTEyNC4xMjEtMTY0LjA1NyAwLTc3Ljk0OCA1Mi41OTYtMTQzLjczMiAxMjQuMTIxLTE2NC4wNTdWNjAuMTIyYzAtMjUuNjkzIDIwLjgyMS00Ni41NDUgNDYuNTQ1LTQ2LjU0NXM0Ni41NDUgMjAuODUyIDQ2LjU0NSA0Ni41NDVWNDIzLjU4Qzk3MS40MDQgNDQzLjkwNSAxMDI0IDUwOS42NTggMTAyNCA1ODcuNjM3YzAgNzcuOTQ4LTUyLjU5NiAxNDMuNzMyLTEyNC4xMjEgMTY0LjA1N20tNDYuNTQ2LTI0MS42MzNjLTQyLjc2IDAtNzcuNTc2IDM0LjgxNi03Ny41NzYgNzcuNTc2czM0LjgxNiA3Ny41NzYgNzcuNTc2IDc3LjU3NiA3Ny41NzYtMzQuODE2IDc3LjU3Ni03Ny41NzYtMzQuODE2LTc3LjU3Ni03Ny41NzYtNzcuNTc2IiBnbHlwaC1uYW1lPSJvcGNpb25lcyIgdW5pY29kZT0i7qS9Ii8+PGdseXBoIGQ9Ik05MTEuMjg4IDgwMEg3MDQuNTY3djk2YzAgMzUuMzI4LTI4LjY3MiA2NC02NCA2NEgzODQuNTY5Yy0zNS4zMjggMC02NC0yOC42NzItNjQtNjR2LTk2SDExMy44NWMtMjYuNDk3IDAtNDguMDAxLTIxLjQ3MS00OC4wMDEtNDguMDAxUzg3LjM1MyA3MDQgMTEzLjg1IDcwNGg0Ni43MjFWMGMwLTM1LjM2MSAyOC42NzItNjQgNjQtNjRoNTc1Ljk5OGMzNS4zMjggMCA2NCAyOC42NzIgNjQgNjR2NzA0aDQ2LjcyMWMyNi40OTcgMCA0OC4wMDEgMjEuNDcxIDQ4LjAwMSA0OC4wMDFTOTM3Ljc4MyA4MDAgOTExLjI4OCA4MDBtLTQ5NC43MTkgNjRoMTkxLjk5OHYtNjRINDE2LjU2OXpNNzY4LjU2NyAzMkgyNTYuNTY5djY3Mmg1MTEuOTk4em0tMjk2LjA1IDE0Ni4xMTl2MzU5LjMwN2MwIDIyLjg4NiAxNy4xNjQgNDAuMDUxIDQwLjA1MSA0MC4wNTEgMjIuODg4IDAgNDAuMDUzLTE3LjE2NCA0MC4wNTMtNDAuMDUxVjE3OC4xMTljMC0yMi44ODYtMTcuMTY0LTQwLjA1MS00MC4wNTMtNDAuMDUxLTIyLjg4Ni4wMDItNDAuMDUxIDE3LjE2Ni00MC4wNTEgNDAuMDUxbTE1Ny42OTYgMHYzNTkuMzA3YzAgMjIuODg2IDE3LjE2NCA0MC4wNTEgNDAuMDUxIDQwLjA1MXM0MC4wNTMtMTcuMTY0IDQwLjA1My00MC4wNTFWMTc4LjExOWMwLTIyLjg4Ni0xNy4xNjQtNDAuMDUxLTQwLjA1My00MC4wNTEtMjIuODg2LjAwMi00MC4wNTEgMTcuMTY2LTQwLjA1MSA0MC4wNTFtLTMxNS4zOTIgMHYzNTkuMzA3YzAgMjIuODg2IDE3LjE2NCA0MC4wNTEgNDAuMDUxIDQwLjA1MXM0MC4wNTMtMTcuMTY0IDQwLjA1My00MC4wNTFWMTc4LjExOWMwLTIyLjg4Ni0xNy4xNjQtNDAuMDUxLTQwLjA1My00MC4wNTEtMjIuODg2LjAwMi00MC4wNTEgMTcuMTY2LTQwLjA1MSA0MC4wNTEiIGdseXBoLW5hbWU9InBhcGVsZXJhIiB1bmljb2RlPSLupL4iLz48Z2x5cGggZD0iTTQ4OC41NDQtNDIuNjc0Yy02Ljc2MiAyLjIzMi0xMi44MiA1LjAyOC0xOC43MjUgOC4xOTYtMTEuNzQ5IDYuMzU5LTIyLjk5NyAxNC4zMDctMzQuODI2IDIzLjc4OC0yMy41MDUgMTguOTMyLTQ5LjA5MSA0NC4xNDMtNzYuMDQyIDc0LjIxNy01My43MzcgNjAuMTA3LTExMi4zMzEgMTM5LjM4Ny0xNTkuMjYzIDIyMi4wNTYtMzEuMjQyIDU1LjE3MS01Ny4zMjggMTExLjY4NC03Mi43MzcgMTY2LjE4NS04Ljc2MyAzMS4xODMtMTQuMDk2IDYxLjc5Mi0xNC4xMjUgOTEuNzAzLS4wMTYgMTA5Ljk4MiA0NC44NDcgMjEwLjAzMyAxMTcuMDMzIDI4Mi4xNDUgNzIuMTEgNzIuMTg2IDE3Mi4xNjEgMTE3LjA0OSAyODIuMTQzIDExNy4wMzMgMTA5Ljk3Ni4wMTYgMjEwLjAyNC00NC44NDcgMjgyLjEzOS0xMTcuMDMzIDcyLjE4LTcyLjExMiAxMTcuMDQ5LTE3Mi4xNjMgMTE3LjAzMy0yODIuMTQ1LS4wNTktMzYuODAzLTguMDUzLTc0LjY3Ni0yMC43NTItMTEzLjM0LTEyLjc1Ny0zOC42MzYtMzAuNDE3LTc4LjA2Ni01MS4wNzMtMTE3LjEyMS00MS4zNDEtNzguMDUzLTk0LjY2Ny0xNTQuNjA0LTE0Ni4xMTctMjE2LjcyMy0zNC4zODYtNDEuNDM3LTY3LjY3OC03Ni4yOS05Ny40NDYtMTAxLjM5NkM1NzguNTY0LTE5LjQ3IDU2My0zMC43NzIgNTQ1LjU3OS0zOC43MzFjLTkuNDM1LTQuMS0xOS42MzYtNy43NTQtMzMuNTc5LTcuOTIyLTkuMTU3LjA0My0xNi42OTEgMS43OS0yMy40NTYgMy45NzlNMjkzLjU3NyA3NjEuOTAxYy01Ni4wNjYtNTYuMTMyLTkwLjYyNC0xMzMuMTQtOTAuNjQyLTIxOC40MjktLjA1MS0yMi4xNzQgNC45ODEtNTAuMDQxIDE0Ljc2Mi04MC42MzQgOS43MzYtMzAuNjE0IDI0LjA0OC02My45NDUgNDEuNDM3LTk3Ljc4OCAzNC43NDgtNjcuNzI5IDgxLjc3My0xMzcuNDY2IDEyNy42NjYtMTk0Ljg2MSAzMC41NTItMzguMjY3IDYwLjcyMS03MS4xNjQgODUuNjI3LTk0LjE0IDE0LjE0OC0xMy4xMTEgMjYuNzIyLTIyLjk3MiAzNS4zMTgtMjguMzYxYTc1IDc1IDAgMCAxIDQuMjU4LTIuNTMxYzQuNzI1IDIuNTk1IDEyLjA1OSA3LjUzNSAyMC41NDMgMTQuMzg1IDE3LjgwNSAxNC4yNzUgNDAuODMzIDM2LjY0OSA2NS4zNTQgNjQuMDggNDkuMTkzIDU0LjkwOSAxMDQuOTE5IDEzMC4zMzMgMTQ4LjAyNSAyMDYuNDE4IDI4Ljc4NSA1MC42NyA1MS45MjkgMTAxLjc5OCA2NC4zOTEgMTQ2LjE3NCA3LjE2IDI1LjMyMSAxMC43NzUgNDguMzU5IDEwLjc0NCA2Ny4yNTYtLjAxOCA4NS4yODktMzQuNTc2IDE2Mi4yOTgtOTAuNjQyIDIxOC40MjMtNTYuMTI1IDU2LjA2Ni0xMzMuMTM0IDkwLjYyNC0yMTguNDE3IDkwLjY0Mi04NS4yODctLjAxNi0xNjIuMjk2LTM0LjU3NC0yMTguNDIzLTkwLjYzNHptMjE4LjQyNS00NTQuNTE5Yy02NS4wMTgtLjAxOC0xMjQuMjk3IDI2LjU2My0xNjYuODgzIDY5LjIxNi00Mi42NSA0Mi41ODItNjkuMjMzIDEwMS44NjMtNjkuMjEyIDE2Ni44NzktLjAyIDY1LjAxNiAyNi41NjMgMTI0LjI5NyA2OS4yMTIgMTY2Ljg4MyA0Mi41ODYgNDIuNjUyIDEwMS44NjggNjkuMjMxIDE2Ni44ODMgNjkuMjEyVjY4OS40NmMtNDAuMzIzLS4wMTgtNzYuNTYyLTE2LjI5LTEwMy4xNjQtNDIuODItMjYuNTMyLTI2LjU5OS00Mi44MDEtNjIuODQxLTQyLjgyLTEwMy4xNjQuMDE2LTQwLjMyMyAxNi4yODgtNzYuNTYyIDQyLjgyLTEwMy4xNiAyNi42MDEtMjYuNTM2IDYyLjg0MS00Mi44MDEgMTAzLjE2NC00Mi44MiA0MC4zMTkuMDE4IDc2LjU1OCAxNi4yODQgMTAzLjE1OCA0Mi44MiAyNi41MzIgMjYuNTk1IDQyLjgwMSA2Mi44MzcgNDIuODIgMTAzLjE2LS4wMTggNDAuMzIzLTE2LjI4OCA3Ni41NjItNDIuODIgMTAzLjE2NC0yNi41OTkgMjYuNTMyLTYyLjg0MSA0Mi44MDEtMTAzLjE1OCA0Mi44MnY5MC4xMTJjNjUuMDEyLjAxOCAxMjQuMjkxLTI2LjU2MSAxNjYuODc3LTY5LjIxMiA0Mi42NS00Mi41ODQgNjkuMjMxLTEwMS44NjggNjkuMjEyLTE2Ni44ODMuMDE4LTY1LjAxNi0yNi41NjMtMTI0LjI5My02OS4yMTItMTY2Ljg3OS00Mi41NzItNDIuNjQxLTEwMS44MjctNjkuMjE4LTE2Ni44MTYtNjkuMjE2eiIgZ2x5cGgtbmFtZT0icGluIiB1bmljb2RlPSLupL8iLz48Z2x5cGggZD0iTTY3OC44NzkgNzEwLjM2MWMtNDIuNTg2IDQyLjY1Mi0xMDEuODY1IDY5LjIzMS0xNjYuODc3IDY5LjIxMi02NS4wMTYuMDE4LTEyNC4yOTUtMjYuNTYxLTE2Ni44ODEtNjkuMjEyLTQyLjY1LTQyLjU4Ni02OS4yMzEtMTAxLjg2OC02OS4yMTItMTY2Ljg4My0uMDE4LTY1LjAxNiAyNi41NjMtMTI0LjI5NSA2OS4yMTYtMTY2Ljg3NyA0Mi41ODItNDIuNjU0IDEwMS44NTktNjkuMjM3IDE2Ni44NzctNjkuMjE4aC4wNjFjNjQuOTg5LS4wMDIgMTI0LjI0OCAyNi41NzcgMTY2LjgxNiA2OS4yMTggNDIuNjUgNDIuNTg2IDY5LjIzMSAxMDEuODYxIDY5LjIxMiAxNjYuODc3LjAxOCA2NS4wMTYtMjYuNTYzIDEyNC4yOTktNjkuMjEyIDE2Ni44ODNNNjE1LjE2IDQ0MC4zMThjLTI2LjU5OS0yNi41MzYtNjIuODM3LTQyLjc5OS0xMDMuMTU4LTQyLjgyLTQwLjMyMS4wMi03Ni41NjIgMTYuMjg0LTEwMy4xNjQgNDIuODItMjYuNTMyIDI2LjYwMS00Mi44MDEgNjIuODM5LTQyLjgxOCAxMDMuMTYuMDE4IDQwLjMyMyAxNi4yODYgNzYuNTY0IDQyLjgxOCAxMDMuMTY0IDI2LjYwMSAyNi41MyA2Mi44NDMgNDIuODAxIDEwMy4xNjQgNDIuODIgNDAuMzE5LS4wMTggNzYuNTU4LTE2LjI4OCAxMDMuMTU4LTQyLjgyIDI2LjUzMi0yNi42MDEgNDIuODAxLTYyLjg0MSA0Mi44Mi0xMDMuMTY0LS4wMTgtNDAuMzIzLTE2LjI4OC03Ni41Ni00Mi44Mi0xMDMuMTZNODM2IDMwNi43OTdjMS4xMTYgMi4wNzMgMi4yNTcgNC4xMzkgMy4zNTUgNi4yMTIgMjAuNjU2IDM5LjA1NSAzOC4zMTYgNzguNDgxIDUxLjA3MyAxMTcuMTIxIDEyLjcgMzguNjY0IDIwLjY5MyA3Ni41MzggMjAuNzUyIDExMy4zNC4wMTggMTA5Ljk3OC00NC44NDcgMjEwLjAyOS0xMTcuMDMzIDI4Mi4xNDUtNzIuMTE0IDcyLjE4NC0xNzIuMTY3IDExNy4wNTEtMjgyLjE0MyAxMTcuMDM1LTEwOS45ODIuMDE2LTIxMC4wMzMtNDQuODUxLTI4Mi4xNDUtMTE3LjAzNS03Mi4xODYtNzIuMTE2LTExNy4wNDktMTcyLjE2MS0xMTcuMDM1LTI4Mi4xNDUuMDMxLTI5LjkxNyA1LjM2Mi02MC41MiAxNC4xMjUtOTEuNzAzIDE1LjQwOS01NC41MDMgNDEuNDk1LTExMS4wMTQgNzIuNzM3LTE2Ni4xODUgNDYuOTMyLTgyLjY3IDEwNS41MjUtMTYxLjk1IDE1OS4yNjUtMjIyLjA1NiAyNi45NTItMzAuMDc3IDUyLjUzNS01NS4yODYgNzYuMDQyLTc0LjIxNyAxMS44MjctOS40OCAyMy4wNzctMTcuNDI4IDM0LjgyNi0yMy43ODggNS45MDQtMy4xNzIgMTEuOTYyLTUuOTYyIDE4LjcyNS04LjE5NiA2Ljc2Ny0yLjE4NyAxNC4yOTktMy45MzYgMjMuNDYtMy45NzcgMTMuOTQ1LjE2OCAyNC4xNDQgMy44MjIgMzMuNTc5IDcuOTIyIDE3LjQyIDcuOTU5IDMyLjk4MyAxOS4yNTkgNTAuMjA3IDMzLjYyMiAyMS4wMDQgMTcuNzEzIDQzLjc2NiA0MC4yOTggNjcuNDI0IDY2LjYwNUM2ODkuMTE1LTYuOTE2IDc1NS4yMzUtNTUuNTcxIDgzMi43MjctNTUuNTcxYzEwMC4wNjUgMCAxODEuMjAzIDgxLjEzNiAxODEuMjAzIDE4MS4yMDUtLjAwMiA5OC45NzgtNzkuMzYyIDE3OS40MTctMTc3LjkzIDE4MS4xNjR6TTU5Ny44OTkgMTIzLjYyMWMtMjQuNTIxLTI3LjQzMS00Ny41NDgtNDkuODAzLTY1LjM1NC02NC4wOC04LjQ4NS02Ljg1MS0xNS44MTktMTEuNzktMjAuNTQzLTE0LjM4M2E3NyA3NyAwIDAgMC00LjI1OCAyLjUyOWMtOC41OTMgNS4zODgtMjEuMTcgMTUuMjQ5LTM1LjMxNiAyOC4zNjMtMjQuOTA2IDIyLjk3Ny01NS4wNzcgNTUuODcxLTg1LjYyOSA5NC4xMzQtNDUuODk0IDU3LjM5OS05Mi45MTggMTI3LjEzOC0xMjcuNjY2IDE5NC44NjUtMTcuMzkgMzMuODM5LTMxLjcwMSA2Ny4xNzQtNDEuNDM3IDk3Ljc4OC05Ljc3OSAzMC41OTMtMTQuODExIDU4LjQ1NC0xNC43NjIgODAuNjM0LjAyIDg1LjI5MSAzNC41NzggMTYyLjI5NCA5MC42NDQgMjE4LjQyMyA1Ni4xMjUgNTYuMDYyIDEzMy4xMzQgOTAuNjI0IDIxOC40MjEgOTAuNjQgODUuMjg1LS4wMTggMTYyLjI5Mi0zNC41OCAyMTguNDE3LTkwLjY0MiA1Ni4wNjYtNTYuMTMgOTAuNjI0LTEzMy4xMzggOTAuNjQyLTIxOC40MjMuMDMzLTE4Ljg5Ny0zLjU4NC00MS45MzUtMTAuNzQ0LTY3LjI1Ni0xMi40NjItNDQuMzgtMzUuNjA3LTk1LjUwOC02NC4zODktMTQ2LjE3NC00My4xMDYtNzYuMDg1LTk4LjgzMi0xNTEuNTA5LTE0OC4wMjctMjA2LjQxOHptMzA3Ljk1NC0yOS41MTNoLTQxLjgwMlY1Mi40MDNjMC0xNy40MDQtMTMuOTE0LTMxLjUxNy0zMS4zMTgtMzEuNTE3LTE3LjM5OCAwLTMxLjMxNiAxNC4xMTMtMzEuMzE2IDMxLjUxN3Y0MS43MjJoLTQxLjc4NWMtMTcuNDA0IDAtMzEuNTg4IDE0LjExMS0zMS41ODggMzEuNTIzIDAgMTcuNDA0IDE0LjE2IDMxLjUxMyAzMS41NjYgMzEuNTEzaDQxLjgwOHY0MS43MDFjMCAxNy40MTIgMTMuOTE4IDMxLjUyMSAzMS4zMTYgMzEuNTIxIDE3LjQxIDAgMzEuMzE4LTE0LjEwOSAzMS4zMTgtMzEuNTIxdi00MS43MTZoNDEuODAyYzE3LjQwNCAwIDMxLjUyNy0xNC4xMjEgMzEuNTI3LTMxLjUyNXMtMTQuMTIzLTMxLjUxMy0zMS41MjctMzEuNTEzeiIgZ2x5cGgtbmFtZT0icGluLW51ZXZvIiB1bmljb2RlPSLupYAiLz48Z2x5cGggZD0iTTUxMS45OTcgOTMzLjJjLTE0NS4wMjEgMC0yNjIuNjMzLTExNy42MTUtMjYyLjYzMy0yNjIuNjM5IDAtMTMyLjE5NCA5OC4wMTItMjQwLjUwNSAyMjUuMTExLTI1OC44MjNWLTQyLjMxM2g3NS4wNDJ2NDU0LjA0OWMxMjcuMDY2IDE4LjMxOCAyMjUuMTI0IDEyNi42MjkgMjI1LjEyNCAyNTguODIzIDAgMTQ1LjAyNS0xMTcuNjIyIDI2Mi42NDEtMjYyLjY0NSAyNjIuNjQxem0tNzUuMDQyLTIyNS4xMmMtNDEuNDc2IDAtNzUuMDM0IDMzLjU2Ni03NS4wMzQgNzUuMDQyczMzLjU1OCA3NS4wMzYgNzUuMDM0IDc1LjAzNmM0MS40ODIgMCA3NS4wNDItMzMuNTYgNzUuMDQyLTc1LjAzNnMtMzMuNTYtNzUuMDQyLTc1LjA0Mi03NS4wNDIiIGdseXBoLW5hbWU9InBpbjIiIHVuaWNvZGU9Iu6lgSIvPjxnbHlwaCBkPSJNNTEyLjAwNCA5NjBjLTIyNS42NDIgMC00MDguNTQ5LTE4Mi45MTUtNDA4LjU0OS00MDguNTQ5UzQ2OS44NzEtNjQgNTEyLjAwNC02NGM0My43MTUgMCA0MDguNTM5IDM4OS44MTggNDA4LjUzOSA2MTUuNDUzQzkyMC41NDUgNzc3LjA4NSA3MzcuNjMyIDk2MCA1MTIuMDA0IDk2ME0yMTkuMzUxIDU2My4zMzVjMCAxNjIuNDMzIDEzMS42OCAyOTQuMTEzIDI5NC4xMTEgMjk0LjExMyAxNjIuNDM5IDAgMjk0LjExNS0xMzEuNjggMjk0LjExNS0yOTQuMTEzIDAtODQuNzg3LTM1Ljg4My0xNjEuMTg4LTkzLjI4Mi0yMTQuODYtLjQ2OS0uNDQtNy4wNjItMy43MjktOC41NzEgMS4wMjJsLTQ5LjUyMyAxNTIuODE2Yy03LjE4MiAxOS4zNDEtMjYuNTgxIDMwLjI1OS00Ni4zMjYgMzAuMjU5LTkuODU5IDAtMTAuNzc3LS4yNjItMTYuNjQyLS4yNjJINDE3LjAxN2MtMjIuNTMgMC0zOS4xMTEtMTAuNjU2LTQ2LjI5NS0yOS45OTdsLTQ5Ljk2Ny0xNTEuOTM3Yy0yLjI0Ny02LjIxMi03LjQ2Ny0yLjQ3Ni03LjYzMS0yLjMyMi01Ny45NDYgNTMuNzE1LTkzLjc3NCAxMzAuMDM2LTkzLjc3NCAyMTUuMjgyek01MTQuNTggODAwLjY2NGM2Ni44NTEgMCAxMjEuMDQ1LTUzLjYzNSAxMjEuMDQ1LTExOS44cy01NC4xOTQtMTE5LjgtMTIxLjA0NS0xMTkuOGMtNjYuODUzIDAtMTIxLjA0NSA1My42MzUtMTIxLjA0NSAxMTkuOHM1NC4xOTQgMTE5LjggMTIxLjA0NSAxMTkuOCIgZ2x5cGgtbmFtZT0icGluMyIgdW5pY29kZT0i7qWCIi8+PGdseXBoIGQ9Im0xMDA5LjQwOCA2NTEuMzI4LTI5NC4wMTYgMjk0LjA4Yy05LjE1MiA5LjE4NC0yMi4yNCAxNC4wMTYtMzQuNTI4IDE0LjU5Mi0xMi45MjgtLjE2LTI1LjI0OC02LjAxNi0zNC4xNDQtMTUuMzkyLTUyLjA2NC01NC41Ni03Ni45OTItMTI4LjkyOC02OS4yMTYtMjAzLjIzMmwtOTYuNzM2LTk2Ljc2OGMtNDYuMDggMTcuODU2LTk1LjY0OCAyNy4xNjgtMTQ1LjE4NCAyNy4xNjgtMTA2LjY4OCAwLTIwNy4wMDgtNDEuNTM2LTI4Mi4zMzYtMTE2Ljg2NGwtNy4xNjgtNy4wNzJhNDcuOTggNDcuOTggMCAwIDEtMTQuMTEyLTMzLjk4NGMwLTEyLjczNiA1LjAyNC0yNC45NiAxNC4wOC0zMy45ODRsMTk2LjU3Ni0xOTYuNTc2TDYuOTc2LTEyLjA2NEMyLjU5Mi0xNy41MzYgMC0yNC40NDggMC0zMmMwLTE3LjY5NiAxNC4zMDQtMzIgMzItMzIgNy41NTIgMCAxNC40OTYgMi41OTIgMTkuOTM2IDYuOTc2bDI5NS4zMjggMjM1LjY0OEw1NDMuODQtMTcuOTUyYTQ4LjA2IDQ4LjA2IDAgMCAxIDMzLjk1Mi0xNC4wOCA0Ny45IDQ3LjkgMCAwIDEgMzMuOTIgMTQuMDhsNy4xMzYgNy4xMzZjMTEyLjggMTEyLjggMTQ2Ljk0NCAyODAuOCA4OS44MjQgNDI3LjYxNmw5Ni43MzYgOTYuNzM2Yzc0LjcyLTcuNjggMTQ4Ljk5MiAxNy41MDQgMjAzLjIgNjkuMTUyIDkuMzQ0IDguOTI4IDE1LjI2NCAyMS4yNDggMTUuMzkyIDM0LjE0NC4xNiAxMi45MjgtNS40NCAyNS4zNzYtMTQuNTkyIDM0LjQ5Nk04MzIgNjA4LjE5MmMtMTEuMTY4IDAtMjIuMzM2IDEuMTItMzMuMzQ0IDMuNDU2LTE1Ljg3MiAzLjM5Mi0zMi40MTYtMS41MzYtNDMuOTA0LTEzLjAyNEw2MTcuNiA0NjEuNDcyYy0xNC41MjgtMTQuNTI4LTE4LjIwOC0zNi43MzYtOS4xMi01NS4xNjggNTEuOTM2LTEwNS40MDggMzguMjcyLTIyOS44ODgtMzIuMzg0LTMyMC43NjhsLTQyNi41NiA0MjYuNTkyYzUyLjk2IDQxLjI4IDExNy43OTIgNjMuNjQ4IDE4Ni4wMTYgNjMuNjQ4IDQ2LjU5MiAwIDkzLjE4NC0xMC44MTYgMTM0Ljc1Mi0zMS4zMjggMTguMzY4LTkuMDU2IDQwLjU3Ni01LjQ0IDU1LjE2OCA5LjEyTDY2Mi42MjQgNjkwLjcyYzExLjQ4OCAxMS40ODggMTYuNDE2IDI4LjAzMiAxMi45OTIgNDMuOTA0LTIuMzM2IDExLjEzNi0zLjQ4OCAyMi4yNzItMy40ODggMzMuMzc2IDAgMjQuMDY0IDUuMzc2IDQ3Ljc0NCAxNS42NDggNjkuMjQ4bDIxMy40NzItMjEzLjUwNGMtMjEuMzEyLTEwLjIwOC00NS4xODQtMTUuNTUyLTY5LjI0OC0xNS41NTIiIGdseXBoLW5hbWU9InBpbjQiIHVuaWNvZGU9Iu6lgyIvPjxnbHlwaCBkPSJNMjk1Ljc2IDU0LjIxOGgtMjQuMjgzTDMyLjg1MSA0NjcuNTIzIDI3MS40OCA4ODAuODM3aDQ3Ny4yMzRsMjM4LjYzNS00MTMuMzE0TDc0OC43MTQgNTQuMjIxek0xNDYuNDE4IDQ2Ny41MjNsMTgxLjg0Ny0zMTQuOTUxIDM2My42Ny4wMDYgMTgxLjg0MSAzMTQuOTQ1LTE4MS44NDEgMzE0Ljk2SDMyOC4yNjJ6IiBnbHlwaC1uYW1lPSJwb2xpZ29ubyIgdW5pY29kZT0i7qWEIi8+PGdseXBoIGQ9Ik02NjMuNjQ2IDI1Ni4yMDdjLTIxLjg2MS0zMS42NDYtNDIuMzczLTU5LjEzOC01OS40NTktODEuMjEzIDE2OS40OTMtMTAuMjM1IDI4MC41NzUtNDYuODI3IDMyMS44NzgtNzQuMDE5LTQ4LjM5LTMxLjkwMy0xOTIuMjUzLTc2Ljc4MS00MTQuMDExLTc2Ljc4MXMtMzY1LjY2NCA0NC45LTQxNC4wNzUgNzYuNzgxYzQxLjMyNCAyNy4yMTQgMTUyLjMyMSA2My43ODUgMzIxLjY0MiA3My45NzYtMTcuMTI5IDIyLjExOC0zNy42NjMgNDkuNTY3LTU5LjU0NSA4MS4yMTNDMTUxLjQ4NiAyMzUuNjMuMDAxIDE3My45MjMuMDAxIDEwMS4wMTdjMC04OS43MTQgMjI5LjI1Mi0xNjIuNDcgNTEyLjAxMS0xNjIuNDcgMjgyLjc4IDAgNTExLjk4OSA3Mi43MTMgNTExLjk4OSAxNjIuNDcuMDQzIDcyLjk0OS0xNTEuNTkzIDEzNC42NTYtMzYwLjM1NCAxNTUuMTl6bS0yMDUuNDQyLTU4Ljk4OGMtMTMuNjYgOS41MjgtMjcuNDcxIDIxLjYyNi00Mi4yNDUgMzYuMTIxLTI5LjI2OSAyOC45MDUtNjEuNzcyIDY3LjQyNC05Mi44NjEgMTEwLjgyNS02MS40NTEgODcuNjE1LTExOS4wOSAxODkuNjg0LTEyMC42NzUgMjgxLjgxNy4wODYgMTY4Ljg5MyAxMzcuMTgzIDMwNS45MjYgMzA2LjAxMiAzMDYuMDEyIDE2OC43ODYtLjA4NiAzMDUuOTI2LTEzNy4xMTkgMzA2LjAxMi0zMDYuMDEyLTEuMTk5LTgwLjk1Ni00Ni4wNzctMTY4LjQ0My05Ny44MjktMjQ4LjU0My01My4wMTUtNzkuNzM2LTExMS44NzUtMTQ3LjUwMy0xNTcuOTk1LTE4MC4yMi0xNC4yMzktOC45OTMtMjUuOTI5LTE3Ljk0My01MC4xNjctMTkuMDk5djQyLjgwMS00Mi44MjNjLTI0LjI4MSAxLjE5OS0zNS45NSAxMC4xMDYtNTAuMjUzIDE5LjEyek0yODguMTEyIDYyNS45ODJjLS43MDctMzYuNjM1IDIyLjEzOS05OC41MTQgNTYuODktMTU3Ljk3MyAzNC4zNDQtNTkuODIzIDc5LjI4Ni0xMTkuMDA1IDExNi42NzEtMTU4LjgzIDE4LjU4NS0yMC4yNzcgMzYuOTU2LTM1Ljc3OCA0Ni43NDEtNDIuNTQ0LjQ1LjMuODk5LjYgMS4zNy45NDIgNy42MjIgNS4yNDYgMTguNjQ5IDE0LjYwMyAzMC45MzkgMjYuNzY0IDI0Ljc3MyAyNC4zNDUgNTQuOTIgNTkuODg4IDgzLjMzMyA5OS42NDkgNTcuNTk3IDc4LjY0NCAxMDYuMzI5IDE3OS4wODUgMTA0Ljc0NSAyMzEuOTkyLS4yNTcgMTIxLjQwMy05OS4wMDYgMjIwLjEzMS0yMjAuMzY2IDIyMC4zNDUtMTIxLjM4MS0uMjE0LTIyMC4xMDktOTguOTQyLTIyMC4zMjMtMjIwLjM0NW0zNS41MjEgMGMuMDg2IDEwMi4wMDQgODIuNzc2IDE4NC43MTYgMTg0LjgwMiAxODQuODAydi04NS42NDZjLTU0LjUzNS0uMTI4LTk5LjAyOC00NC42MjEtOTkuMTEzLTk5LjE3OC4wODYtNTQuNDkyIDQ0LjU3OS05OS4wMjggOTkuMTEzLTk5LjExMyA1NC41MzUuMDg2IDk4Ljk4NSA0NC41NzkgOTkuMTEzIDk5LjExMy0uMTUgNTQuNTk5LTQ0LjU3OSA5OS4wMjgtOTkuMTEzIDk5LjExM3Y4NS43MzFjMTAxLjk4Mi0uMDg2IDE4NC42NzMtODIuNzU1IDE4NC43MzgtMTg0LjgwMi0uMDg2LTEwMS45ODItODIuNzU1LTE4NC42NzMtMTg0LjczOC0xODQuNzM4LTEwMi4wMjUuMDY0LTE4NC42OTUgODIuNzM0LTE4NC44MDIgMTg0LjcxNnoiIGdseXBoLW5hbWU9InBvc2ljaW9uIiB1bmljb2RlPSLupYUiLz48Z2x5cGggZD0iTTg3Ny43MTQgODIuMjg2cTAtMzYtMzUuMTQzLTY0Ljg1N3QtOTMuNzE0LTQ2LjI4Ni0xMjguNTcxLTI2LjI4NlQ0NzUuNDI5LTY0dC0xNDQuODU3IDguODU3LTEyOC41NzEgMjYuMjg2LTkzLjcxNCA0Ni4yODYtMzUuMTQzIDY0Ljg1N3EwIDI4IDE4Ljg1NyA1MC41NzF0NTIgMzggNjcuNDI5IDI1LjQyOSA3NC44NTcgMTYuODU3cTE0Ljg1NyAyLjg1NyAyNy40MjktNnQxNC44NTctMjMuNzE0cTIuODU3LTE0Ljg1Ny02LTI3LjQyOXQtMjMuNzE0LTE0Ljg1N3EtMzMuMTQzLTUuNzE0LTYwLjU3MS0xMy40Mjl0LTQzLjcxNC0xNC41NzEtMjcuNzE0LTEzLjQyOS0xNS43MTQtMTEuMTQzLTQuODU3LTYuODU3cTEuNzE0LTYuMjg2IDE1LjQyOS0xNS4xNDN0NDEuNzE0LTE4Ljg1NyA2NS4xNDMtMTguNTcxIDkxLjcxNC0xNC4yODYgMTE1LjE0My01LjcxNCAxMTUuMTQzIDUuNzE0IDkxLjcxNCAxNC4yODZUNzQ3LjQzMiA0OHQ0MS43MTQgMTkuMTQzIDE1LjQyOSAxNS43MTRxLS41NzEgMi4yODYtNC44NTcgNi4yODZUNzg0LjAwNCAxMDB0LTI3LjcxNCAxMy40MjktNDMuNzE0IDE0LjI4Ni02MC41NzEgMTMuNDI5cS0xNC44NTcgMi4yODYtMjMuNzE0IDE0Ljg1N3QtNiAyNy40MjlxMi4yODYgMTQuODU3IDE0Ljg1NyAyMy43MTR0MjcuNDI5IDZxNDAuNTcxLTYuODU3IDc0Ljg1Ny0xNi44NTd0NjcuNDI5LTI1LjQyOSA1Mi0zOCAxOC44NTctNTAuNTcxem0tMjE5LjQyOCA1MTJWMzc0Ljg1N3EwLTE0Ljg1Ny0xMC44NTctMjUuNzE0dC0yNS43MTQtMTAuODU3aC0zNi41NzFWMTE4Ljg1N3EwLTE0Ljg1Ny0xMC44NTctMjUuNzE0dC0yNS43MTQtMTAuODU3SDQwMi4yODdxLTE0Ljg1NyAwLTI1LjcxNCAxMC44NTd0LTEwLjg1NyAyNS43MTR2MjE5LjQyOWgtMzYuNTcxcS0xNC44NTcgMC0yNS43MTQgMTAuODU3dC0xMC44NTcgMjUuNzE0djIxOS40MjlxMCAzMC4yODYgMjEuNDI5IDUxLjcxNHQ1MS43MTQgMjEuNDI5aDIxOS40MjlxMzAuMjg2IDAgNTEuNzE0LTIxLjQyOXQyMS40MjktNTEuNzE0em0tNTQuODU3IDIxOS40MjhxMC01My4xNDMtMzcuNDI5LTkwLjU3MXQtOTAuNTcxLTM3LjQyOS05MC41NzEgMzcuNDI5LTM3LjQyOSA5MC41NzEgMzcuNDI5IDkwLjU3MSA5MC41NzEgMzcuNDI5VDU2NiA5MDQuMjg1dDM3LjQyOS05MC41NzEiIGdseXBoLW5hbWU9InBvc2ljaW9uMiIgdW5pY29kZT0i7qWGIi8+PGdseXBoIGQ9Ik04OTYuMDAzIDEyNy45OTVjMC0xMzEuOTM1LTE5OS4wNTctMTkxLjk5Ny0zODQuMDAxLTE5MS45OTctMTg0LjkzNCAwLTM4NC4wMDMgNjAuMDYyLTM4NC4wMDMgMTkxLjk5NyAwIDEwOS4xMzIgMTM2LjI1MyAxNjguOTM3IDI4Ny45OTggMTg2LjQ0MXYtNjQuOTRjLTEyOS41MjctMTYuMzY4LTIyMy45OTgtNjQuMjQ3LTIyMy45OTgtMTIxLjUwMUMxOTEuOTk5IDU3LjMxNSAzMzUuMjIgMCA1MTIgMGMxNzYuNzUgMCAzMTkuOTk4IDU3LjMxNSAzMTkuOTk4IDEyNy45OTUgMCA1Ny4yNTQtOTQuNDk0IDEwNS4xMzMtMjIzLjk5OCAxMjEuNTAxdjY0Ljk0YzE1MS43NDMtMTcuNTA0IDI4OC4wMDItNzcuMzA5IDI4OC4wMDItMTg2LjQ0MXpNNTEyIDk2MGMtMTIzLjY4OSAwLTIyMy45OTgtMTAwLjMxMi0yMjMuOTk4LTIyNC4wMDIgMC0xMTIuNzQ3IDgzLjU5NC0yMDUuMTI0IDE5MS45OTctMjIwLjc0NVYxMjcuOTk2aDY0LjAwM3YzODcuMjU3YzEwOC4zNzQgMTUuNjIxIDE5Mi4wMDYgMTA3Ljk5OSAxOTIuMDA2IDIyMC43NDVDNzM2LjAwOCA4NTkuNjg3IDYzNS42ODkgOTYwIDUxMiA5NjBtLTY0LjAwMy0xOTIuMDAyYy0zNS4zNzUgMC02My45OTYgMjguNjI4LTYzLjk5NiA2NC4wMDNzMjguNjIxIDYzLjk5NiA2My45OTYgNjMuOTk2YzM1LjM3OSAwIDY0LjAwMy0yOC42MjEgNjQuMDAzLTYzLjk5NnMtMjguNjI0LTY0LjAwMy02NC4wMDMtNjQuMDAzIiBnbHlwaC1uYW1lPSJwb3NpY2lvbjMiIHVuaWNvZGU9Iu6lhyIvPjxnbHlwaCBkPSJNOTkyLjAwNiA2NzEuOTk4Yy0xMzEuNTctNDguNDQtMjMxLjgwOC04Mi45MzctMzIwLjAwMS0xOTIuMDAyLTc4LjU2OS05Ny4xODUtMTkyLjAwNi0xMzAuODY5LTMxOS45OTgtNjYuODA5VjY0LjAwNEgyODh2ODYzLjk5N2MtLjAwMiAxNy42OSAxNC4zMTEgMzIgMzEuOTk4IDMyIDE3LjY4NSAwIDMyLjAwNy0xNC4zMTEgMzIuMDA3LTMyIDcxLjA1OC0xMDMuMzExIDE5NC41NTctMTI2LjE5MiAzMTkuOTk4LTEyOC4wMDNDODY0IDc5Ny4xOTEgOTkyLjAwNiA2NzEuOTk5IDk5Mi4wMDYgNjcxLjk5OXptLTU3Ni4wMDktNDI0LjV2LTY1LjExNUM0OTEuNDk3IDE2Ni45MzkgNTQ0IDEzNC4xNzkgNTQ0IDk1Ljk5MSA1NDQgNDIuOTkyIDQ0My42ODMtLjAxMiAzMTkuOTk4LS4wMTIgMTk2LjMwOS0uMDEyIDk2IDQyLjk5MiA5NiA5Ni4wMDFjMCAzOC4xNzcgNTIuNDk3IDcwLjkzNSAxMjcuOTk1IDg2LjM4MnY2NS4xMTVDMTA3Ljc1MSAyMjcuMzc1IDMxLjk5MyAxNzAuOTk3IDMxLjk5MyA5Ni4wMDRjMC05NC4xOSAxMTguNDM5LTE2MC4wMDMgMjg4LjAwMi0xNjAuMDAzIDE2OS41NTkgMCAyODguMDA0IDY1LjgxNSAyODguMDA0IDE2MC4wMDMuMDA0IDc0Ljk5NC03NS43NiAxMzEuMzcxLTE5Mi4wMDQgMTUxLjQ5NHoiIGdseXBoLW5hbWU9InBvc2ljaW9uNCIgdW5pY29kZT0i7qWIIi8+PGdseXBoIGQ9Im02NDcuNTk2IDU4Ny4wNDkgNTguODMzLTIxMS4zOTRxMy45ODMtMTQuMzEzLTMuNTY1LTI3LjY4NGMtNy41NDgtMTMuMzcxLTEyLjMxOS0xNC42OTgtMjEuODYyLTE3LjM1NGwtMzUuMjMzLTkuODA1IDc5Ljg3Ny0xNDUuMTYyIDQ1Ljk2OS0zOS45ODVxMy45ODItMTQuMzEzLTMuNTY2LTI3LjY4M2MtNy41NDgtMTMuMzctMTIuMzE5LTE0LjY5OC0yMS44NjItMTcuMzU0bC0xOS4zMzItNC45NDZzLTEyLjY2Ni0zLjExLTIxLjA0Ny0yLjM0OS0xOS45NTkgNi41NTUtMTkuOTU5IDYuNTU1bC00MS41NTEgMjEuMTc0LTU2LjU4NCA4Ni4zNjZMNjQ3Ljk1NiA4MC4zMXM1LjI4MS04LjQwNyAxLjQ3MS0yMC41OThjLTMuMDQ3LTExLjA0OC0xMi4xOS0xMi45NTMtMTIuMTktMTIuOTUzbC00Ni4xOTktMTMuMDdxLTE0LjMxMy0zLjk4My0yNy42ODMgMy41NjUtMTMuMzcgNy41NS0xNy4zNTQgMjEuODYyTDQzNC4zNzUgMjYxLjk3OGwtMzUuMjMzLTkuODA1cS0xNC4zMTMtMy45ODMtMjcuNjgzIDMuNTY1Yy0xMy4zNyA3LjU0OC0xNC42OTkgMTIuMzIxLTE3LjM1NCAyMS44NjJsLTU4LjgzMyAyMTEuMzk0cS04LjEyIDI5LjE3NiA2Ljc3OCA1NS41NjZjMTQuODk4IDI2LjM5IDI0LjYyNSAyOS4wOTYgNDQuMDc1IDM0LjUxbDIxMS4zOTQgNTguODMzcTI5LjE3NyA4LjEyIDU1LjU2Ni02Ljc3OWMyNi4zODktMTQuODk5IDI5LjA5NS0yNC42MjQgMzQuNTA5LTQ0LjA3NXpNNTM1LjkxNSA3ODMuNzM1cTE0LjI0Ny01MS4xOTctMTEuNzc0LTk3LjI5LTI2LjAyMy00Ni4wOTQtNzcuMjIxLTYwLjM0MmMtNTEuMTk4LTE0LjI0OC02Ni41NjItNS41NzQtOTcuMjkgMTEuNzc0cS00Ni4wOTQgMjYuMDI0LTYwLjM0MiA3Ny4yMmMtMTQuMjQ4IDUxLjE5Ni01LjU3NCA2Ni41NjIgMTEuNzc0IDk3LjI5cTI2LjAyNCA0Ni4wOTQgNzcuMjIgNjAuMzQyYzUxLjE5NiAxNC4yNDggNjYuNTYyIDUuNTc0IDk3LjI5MS0xMS43NzRxNDYuMDk0LTI2LjAyMyA2MC4zNDItNzcuMjIiIGdseXBoLW5hbWU9InBvc2ljaW9uNSIgdW5pY29kZT0i7qWJIi8+PGdseXBoIGQ9Ik00NDYuMDMyIDY2Ny43NzFjNjEuNzIxIDIzLjAwNyA5My4yMjMgOTEuOTQ3IDcwLjIxIDE1My42NzQtMjMuMDA3IDYxLjcyNS05MS45NDkgOTMuMjIzLTE1My42NzIgNzAuMjEyLTYxLjcwNi0yMy4wMDMtOTMuMTg2LTkxLjkzMy03MC4xNzctMTUzLjY1OSAyMy4wMTEtNjEuNzI3IDkxLjkzMy05My4yMjkgMTUzLjYzOS03MC4yMjZ6TTcxMi43NyA0NzIuNjVjMTMuNDA4LTguODA2IDMwLjQwMS0xMC43MTUgNDUuNDQ5LTUuMTA2IDEwLjExOSAzLjc3MiAxOC42MTIgMTAuNTUxIDI0LjU2IDE5LjYwMyA3LjQxMiAxMS4yODQgOS45ODYgMjQuNzgzIDcuMjQ4IDM4LjAwNy0yLjczNiAxMy4yMjQtMTAuNDU5IDI0LjU5Mi0yMS43NDggMzIuMDA2bC01Ny45ODkgMzguMDg5Yy0xMy4yMDggOC42NzMtMzQuOTA4IDIyLjI4Mi00OC4zNzIgMzAuMzMzbC04My4xNTcgNDkuNzIzYy0xMy4yNTMgNy45MjQtMjUuNzY2IDEwLjYzNS00My42MzcgMy45NzMtLjQ0Ni0uMTY4LTE0MC42ODctNTIuNDQ1LTE0MC42ODctNTIuNDQ1bC0xMDkuMTM2IDI2LjcyYy0xMy4wNDYgMy4xODktMzAuNjM0IDguODc0LTM3LjYzOCAxMS44MjdsLTE4LjUyMiA3Ljc5NWMtMTEuOTEzIDUuMDE0LTI1LjE0NyA1LjI4OC0zNy4yNTcuNzc0LTEzLjAxNS00Ljg1Mi0yMy41NjYtMTQuOTcxLTI4Ljk1MS0yNy43NjUtNS4yMzctMTIuNDQ4LTUuMzEzLTI2LjE4OC0uMjE1LTM4LjY5MyA1LjEtMTIuNTA1IDE0Ljc2LTIyLjI3NCAyNy4yMDgtMjcuNTEzbDE4LjUxNi03Ljc4OWMxMi42NDItNS4zMjUgMzUuMzQ2LTEyLjU2NyA1Mi44MS0xNi44NDdsMTQzLjQ3My0zNS4xMjEgNzQuNjQ4LTE1Ni4wOGMuMTA0LS40MjIuMTY2LS44NDQuMjg1LTEuMjYybDQyLjMxMi0xNTQuMTFjNi4xOTktMjIuNTk2IDIyLjIyOS01MS41MDEgMzguMTIxLTY4LjczMWw3NS45MTUtODIuMzRjMTQuNzQ0LTE1Ljk5MyAzNy40NDQtMjEuNDIgNTcuODI3LTEzLjgyMmE1MyA1MyAwIDAgMSAxNy40ODggMTAuNzY4YzEwLjQ2NyA5LjY0NiAxNi41NTIgMjIuNzk2IDE3LjEyNyAzNy4wMjQuNTggMTQuMjIzLTQuNDE4IDI3LjgyNi0xNC4wNyAzOC4yODlsLTc1LjkyMyA4Mi4zNDhjLTQuNDExIDQuNzg4LTExLjk2NCAxOC4zOTctMTMuNjg5IDI0LjY4N2wtMjguMjk1IDEwMy4wNjQgMTYuMjAyIDYuMDQyIDY1LjYxMi0xMDMuNjM5YzEyLjEzNC0xOS4xNjUgMzEuNjg3LTMyLjA0NSA1My42MzEtMzUuMzQ0IDEyLjY1NS0xLjkwNSAyNS43NjQtLjUxNCAzNy45MTMgNC4wMTQgOC42NjUgMy4yMyAxNi42NTIgNy45NDIgMjMuNzQgMTQuMDEybDQ1LjE0NiAzOC42NThjMjIuMzIzIDE5LjExNiAyNC45NDEgNTIuODMgNS44MjUgNzUuMTUzLTE0LjQ5IDE2LjkyNS0zOC4yNDYgMjMuMDczLTU5LjExMyAxNS4yOTJhNTMuMSA1My4xIDAgMCAxLTE2LjA0NC05LjQ2OGwtMTkuMjU1LTE2LjQ5LTU5LjE5MSA5My40ODctNDUuNDEgOTQuOTZhOTUxIDk1MSAwIDAgMCA5LjI1Ny01Ljk5bDU3Ljk4OS0zOC4wOTV6IiBnbHlwaC1uYW1lPSJwb3NpY2lvbjYiIHVuaWNvZGU9Iu6liiIvPjxnbHlwaCBkPSJNODc3LjcxNCA4Mi4yODZxMC0zNi0zNS4xNDMtNjQuODU3Yy0zNS4xNDMtMjguODU3LTU0LjY2Ni0zNC42NjYtOTMuNzE0LTQ2LjI4NnEtNTguNTcxLTE3LjQyOC0xMjguNTcxLTI2LjI4NmMtNzAtOC44NTgtOTQuOTUyLTguODU3LTE0NC44NTctOC44NTdxLTc0Ljg1NyAwLTE0NC44NTcgOC44NTdjLTcwIDguODU3LTg5LjUyMyAxNC42NjctMTI4LjU3MSAyNi4yODZxLTU4LjU3MSAxNy40MjktOTMuNzE0IDQ2LjI4NkM3My4xNDQgNDYuMjg2IDczLjE0NCA1OC4yODYgNzMuMTQ0IDgyLjI4NnEwIDI4IDE4Ljg1NyA1MC41NzFjMTguODU3IDIyLjU3MSAyOS45MDUgMjcuNzE0IDUyIDM4cTMzLjE0MiAxNS40MjkgNjcuNDI5IDI1LjQyOWMzNC4yODcgMTAgNDcuODEgMTIuMjg2IDc0Ljg1NyAxNi44NTdxMTQuODU3IDIuODU3IDI3LjQyOS02YzEyLjU3Mi04Ljg1NyAxMy4zMzQtMTMuODA5IDE0Ljg1Ny0yMy43MTRxMi44NTctMTQuODU3LTYtMjcuNDI5Yy04Ljg1Ny0xMi41NzItMTMuODA5LTEzLjMzMy0yMy43MTQtMTQuODU3cS0zMy4xNDMtNS43MTQtNjAuNTcxLTEzLjQyOWMtMjcuNDI4LTcuNzE1LTMyLjg1Ny0xMC00My43MTQtMTQuNTcxcy0yMC4wOTUtOS4wNDctMjcuNzE0LTEzLjQyOXEtMTEuNDI5LTYuNTcxLTE1LjcxNC0xMS4xNDNjLTQuMjg1LTQuNTcyLTQuNDc2LTUuMzMzLTQuODU3LTYuODU3cTEuNzE0LTYuMjg1IDE1LjQyOS0xNS4xNDNjMTMuNzE1LTguODU4IDIzLjA0OC0xMi4xOSA0MS43MTQtMTguODU3cTI4LTEwIDY1LjE0My0xOC41NzFjMzcuMTQzLTguNTcxIDU1LjMzNC0xMC40NzYgOTEuNzE0LTE0LjI4NnE1NC41NzEtNS43MTQgMTE1LjE0My01LjcxNGM2MC41NzIgMCA3OC43NjIgMS45MDUgMTE1LjE0MyA1LjcxNHE1NC41NzIgNS43MTQgOTEuNzE0IDE0LjI4NmMzNy4xNDIgOC41NzIgNDYuNDc3IDEyIDY1LjE0MyAxOC44NTdxMjggMTAuMjg1IDQxLjcxNCAxOS4xNDNjMTMuNzE0IDguODU4IDE0LjI4NiAxMS4xNDMgMTUuNDI5IDE1LjcxNHEtLjU3MSAyLjI4Ni00Ljg1NyA2LjI4NmMtNC4yODYgNC04LjA5NSA2LjI4Ni0xNS43MTQgMTAuODU3cS0xMS40MjggNi44NTctMjcuNzE0IDEzLjQyOWMtMTYuMjg2IDYuNTcyLTI1LjQyOSA5LjE0My00My43MTQgMTQuMjg2cy0zOC40NzYgOS42MTktNjAuNTcxIDEzLjQyOXEtMTQuODU3IDIuMjg3LTIzLjcxNCAxNC44NTdjLTguODU3IDEyLjU3LTcuOTA1IDE3LjUyNC02IDI3LjQyOXEyLjI4NiAxNC44NTggMTQuODU3IDIzLjcxNGMxMi41NzEgOC44NTYgMTcuNTI0IDcuOTA1IDI3LjQyOSA2cTQwLjU3Mi02Ljg1NiA3NC44NTctMTYuODU3YzM0LjI4NS0xMC4wMDEgNDUuMzM0LTE1LjE0MyA2Ny40MjktMjUuNDI5cTMzLjE0My0xNS40MjggNTItMzhjMTguODU3LTIyLjU3MiAxOC44NTctMzEuOTA1IDE4Ljg1Ny01MC41NzF6bS0yMTkuNDI4IDUxMlYzNzQuODU3cTAtMTQuODU3LTEwLjg1Ny0yNS43MTRjLTEwLjg1Ny0xMC44NTctMTUuODA5LTEwLjg1Ny0yNS43MTQtMTAuODU3aC0zNi41NzFWMTE4Ljg1N3EwLTE0Ljg1Ny0xMC44NTctMjUuNzE0Yy0xMC44NTctMTAuODU3LTE1LjgwOS0xMC44NTctMjUuNzE0LTEwLjg1N0g0MDIuMjg3cS0xNC44NTcgMC0yNS43MTQgMTAuODU3Yy0xMC44NTcgMTAuODU3LTEwLjg1NyAxNS44MS0xMC44NTcgMjUuNzE0djIxOS40MjloLTM2LjU3MXEtMTQuODU3IDAtMjUuNzE0IDEwLjg1N2MtMTAuODU3IDEwLjg1Ny0xMC44NTcgMTUuODEtMTAuODU3IDI1LjcxNHYyMTkuNDI5cTAgMzAuMjg3IDIxLjQyOSA1MS43MTRjMjEuNDI5IDIxLjQyNyAzMS41MjQgMjEuNDI5IDUxLjcxNCAyMS40MjloMjE5LjQyOXEzMC4yODcgMCA1MS43MTQtMjEuNDI5YzIxLjQyNy0yMS40MjkgMjEuNDI5LTMxLjUyMyAyMS40MjktNTEuNzE0em0tNTQuODU3IDIxOS40MjhxMC01My4xNDMtMzcuNDI5LTkwLjU3MWMtMzcuNDI5LTM3LjQyOC01NS4xNDMtMzcuNDI5LTkwLjU3MS0zNy40MjlzLTY1LjYxOSAxMi40NzctOTAuNTcxIDM3LjQyOXEtMzcuNDI4IDM3LjQzLTM3LjQyOSA5MC41NzFjLS4wMDEgNTMuMTQxIDEyLjQ3NyA2NS42MTkgMzcuNDI5IDkwLjU3MXEzNy40MyAzNy40MyA5MC41NzEgMzcuNDI5YzUzLjE0MS0uMDAxIDY1LjYxOS0xMi40NzYgOTAuNTcxLTM3LjQyOXEzNy40My0zNy40MjggMzcuNDI5LTkwLjU3MW0yODgtMzUxLjQyOHEwIDIyLjk1MS0xNi4yMzkgMzkuMTljLTE2LjIzOSAxNi4yMzktMjMuODg5IDE2LjIzOS0zOS4xOSAxNi4yMzlxLTIyLjk1IDAtMzkuMTktMTYuMjM5Yy0xNi4yNC0xNi4yMzktMTYuMjM5LTIzLjg4OS0xNi4yMzktMzkuMTlxMC0yMi45NSAxNi4yMzktMzkuMTljMTYuMjM5LTE2LjI0IDIzLjg4OS0xNi4yMzkgMzkuMTktMTYuMjM5cTIyLjk1MSAwIDM5LjE5IDE2LjIzOWMxNi4yMzkgMTYuMjM5IDE2LjIzOSAyMy44ODkgMTYuMjM5IDM5LjE5bTU1LjQyOCAwcTAtMjMuNi03LjE0NS0zOC43NTdsLTc4LjgxMy0xNjcuNTg1cS0zLjQ2NC03LjE0NS0xMC4yODUtMTEuMjU5Yy02LjgyMS00LjExNC05LjQxOC00LjExNC0xNC42MTUtNC4xMTRzLTEwLjA2OCAxLjM3MS0xNC42MTUgNC4xMTRxLTYuODIgNC4xMTQtMTAuMDY4IDExLjI1OWwtNzkuMDI5IDE2Ny41ODVxLTcuMTQ1IDE1LjE1Ni03LjE0NSAzOC43NTcgMCA0NS45MDIgMzIuNDc4IDc4LjM3OWMzMi40NzggMzIuNDc3IDQ3Ljc3OCAzMi40NzggNzguMzc5IDMyLjQ3OHE0NS45MDIgMCA3OC4zNzktMzIuNDc4YzMyLjQ3Ny0zMi40NzggMzIuNDc4LTQ3Ljc3OCAzMi40NzgtNzguMzc5ek0yMDUuNzE0IDczMnEwIDIyLjk1MS0xNi4yMzkgMzkuMTljLTE2LjIzOSAxNi4yMzktMjMuODg5IDE2LjIzOS0zOS4xOSAxNi4yMzlxLTIyLjk1IDAtMzkuMTktMTYuMjM5Yy0xNi4yNC0xNi4yMzktMTYuMjM5LTIzLjg4OS0xNi4yMzktMzkuMTlxMC0yMi45NSAxNi4yMzktMzkuMTljMTYuMjM5LTE2LjI0IDIzLjg4OS0xNi4yMzkgMzkuMTktMTYuMjM5cTIyLjk1MSAwIDM5LjE5IDE2LjIzOWMxNi4yMzkgMTYuMjM5IDE2LjIzOSAyMy44ODkgMTYuMjM5IDM5LjE5bTU1LjQyOSAwcTAtMjMuNi03LjE0NS0zOC43NTdsLTc4LjgxMy0xNjcuNTg1cS0zLjQ2NC03LjE0NC0xMC4yODUtMTEuMjU5Yy02LjgyMS00LjExNS05LjQxOC00LjExNC0xNC42MTUtNC4xMTRzLTEwLjA2OCAxLjM3MS0xNC42MTUgNC4xMTRxLTYuODIgNC4xMTQtMTAuMDY4IDExLjI1OUw0Ni41NzMgNjkzLjI0M1EzOS40MjggNzA4LjM5OSAzOS40MjggNzMycTAgNDUuOTAyIDMyLjQ3OCA3OC4zNzljMzIuNDc4IDMyLjQ3NyA0Ny43NzggMzIuNDc4IDc4LjM3OSAzMi40NzhxNDUuOTAyIDAgNzguMzc5LTMyLjQ3OGMzMi40NzctMzIuNDc4IDMyLjQ3OC00Ny43NzggMzIuNDc4LTc4LjM3OXoiIGdseXBoLW5hbWU9InBvc2ljaW9uNyIgdW5pY29kZT0i7qWLIi8+PGdseXBoIGQ9Ik0xODIuMjM3IDg4NS42ODJoMTM2LjM5N2M3LjY4NCAwIDEzLjkxMi02LjIzIDEzLjkxMi0xMy45MTJ2LTUzLjk4OWgzNS41MzVjNy42ODQgMCAxMy45MTItNi4yMjggMTMuOTEyLTEzLjkxNFY2ODQuOTY4aDU3LjM3M2M3Ljk4MSAxMy41NzYgMjIuNTc3IDIyLjE2NiAzOC45MzkgMjIuMTY2aDY3LjY4NGMxNi4zNTcgMCAzMC45NTMtOC41ODMgMzguOTM5LTIyLjE2Nmg1Ny4wODh2MTE4Ljg5N2MwIDcuNjg2IDYuMjMgMTMuOTE0IDEzLjkxNCAxMy45MTRoMzUuODE1djUzLjk5MWMwIDcuNjg0IDYuMjI2IDEzLjkxMiAxMy45MTIgMTMuOTEyaDEzNi4zOTljNy42ODQgMCAxMy45MTItNi4yMjggMTMuOTEyLTEzLjkxMnYtNTMuOTg5aDM1LjI0OGM3LjM5NSAwIDEzLjUwMi01Ljc4OCAxMy44OTYtMTMuMTc1bDMzLjM5OS01NTMuMjE4aDI3LjE1NmM3LjY4NiAwIDEzLjkxNC02LjIyNiAxMy45MTQtMTMuOTEyVjQ0LjcxMmMwLTcuNjg0LTYuMjI4LTEzLjkxMi0xMy45MTQtMTMuOTEySDYxNS41ODJjLTcuNjg4IDAtMTMuOTE2IDYuMjI4LTEzLjkxNiAxMy45MTJ2MTkyLjc2NGMwIDcuNjg2IDYuMjI4IDEzLjkxMiAxMy45MTYgMTMuOTEyaDI2LjQzNnY5MC4zNDVINTg0LjkzYy03Ljk4MS0xMy41NzYtMjIuNTc3LTIyLjE2My0zOC45MzktMjIuMTYzaC02Ny42ODRjLTE2LjM1NyAwLTMwLjk1NiA4LjU3OS0zOC45MzkgMjIuMTYzaC01Ny4zODF2LTkwLjM0NWgyNi40MzhjNy42ODQgMCAxMy45MTItNi4yMjYgMTMuOTEyLTEzLjkxMlY0NC43MTJjMC03LjY4NC02LjIyOC0xMy45MTItMTMuOTEyLTEzLjkxMkg1OC4zNGMtNy42ODQgMC0xMy45MSA2LjIyOC0xMy45MSAxMy45MTJ2MTkyLjc2NGMwIDcuNjg2IDYuMjI4IDEzLjkxMiAxMy45MSAxMy45MTJoMjcuMTU2bDMzLjM5NSA1NTMuMjE4Yy4zOTUgNy4zODUgNi40OTYgMTMuMTc3IDEzLjg5NiAxMy4xNzdoMzUuNTMzdjUzLjk4N2MuMDA2IDcuNjg0IDYuMjMyIDEzLjkxMiAxMy45MTggMTMuOTEyem0xMjIuNDc5LTI3LjgyNEgxOTYuMTQzdi00MC4wNzdoMTA4LjU3M3ptNTIzLjQyNCAwSDcxOS41NjV2LTQwLjA3N0g4MjguMTR6bS02NDUuOTAzLTY3LjkwM2gtMzYuMjVsLTMyLjYyMy01MzguNTczaDI0MC44MDJ2NTM4LjU3M2gtMTcxLjkzem01MjMuNDE2IDBoLTM1LjgxNVYyNTEuMzg2SDkxMC42NGwtMzIuNjIzIDUzOC41NzN6TTU1OS44MTcgNjcyLjQ0MmMtMy4yNCA0LjIyMS04LjMzOSA2Ljg2OS0xMy44MzIgNi44NjloLTY3LjY4NGMtNS40OTEgMC0xMC41OTQtMi42NTQtMTMuODMyLTYuODY5YTEzLjkgMTMuOSAwIDAgMC0xLjI0MS03LjI3MmMtMS41MzYtMy4yODUtMi4zMTItNi43NTYtMi4zMTItMTAuMzA4VjM3MS44NDFjMC0zLjU0Ny43NzYtNy4wMTQgMi4zMTgtMTAuMzAzYTEzLjk0IDEzLjk0IDAgMCAwIDEuMjM5LTcuMjc0YzMuMjQtNC4yMTkgOC4zNDItNi44NjkgMTMuODM0LTYuODY5aDY3LjY3OGM1LjQ5MyAwIDEwLjU5NCAyLjY1NCAxMy44MzIgNi44NjlhMTMuOSAxMy45IDAgMCAwIDEuMjQxIDcuMjc0YzEuNTM0IDMuMjg5IDIuMzE4IDYuNzU2IDIuMzE4IDEwLjMwM3YyODMuMDIxYzAgMy41NDktLjc4IDcuMDIxLTIuMzE0IDEwLjMwOGExMy45IDEzLjkgMCAwIDAtMS4yNDUgNy4yNzJtLTEyNi43MjgtMTUuMjk4aC01MS4xMDR2LTI4Ny41OWg1MS4xMDR6bTIwOC45MjIgMGgtNTAuODE1di0yODcuNTloNTAuODE1ek05OC42ODkgMjIzLjU2Nkg3Mi4yNTFWNTguNjI0SDM5NC41MXYxNjQuOTQyem01NTcuMjM2IDBoLTI2LjQzOFY1OC42MjRoMzIyLjI1OXYxNjQuOTQyek02MTUuNTc0IDE2LjQ2OGMtMTUuNjA2LjAwNC0yOC4yNDQgMTIuNjM4LTI4LjI1NCAyOC4yNDR2MTkyLjc2NGMuMDEgMTUuNjEgMTIuNjUzIDI4LjI0NCAyOC4yNTQgMjguMjQ4bDEyLjA5NS4wMDR2NjEuNjcxaC0zNS4yNThjLTExLjA1MS0xMy43NjMtMjcuOTgtMjIuMTgyLTQ2LjQyOC0yMi4xNjZoLTY3LjY4NGMtMTguNDQyLS4wMTYtMzUuMzc3IDguMzkzLTQ2LjQyOCAyMi4xNjZoLTM1LjU1M3YtNjEuNjcxaDEyLjEwMmMxNS42MDYtLjAwOCAyOC4yNC0xMi42NDIgMjguMjQ4LTI4LjI1MlY0NC43MTJjLS4wMDgtMTUuNjA2LTEyLjY0Mi0yOC4yMzYtMjguMjQ4LTI4LjI1SDU4LjM0M2MtMTUuNjEuMDE0LTI4LjI0IDEyLjY0OC0yOC4yNDggMjguMjV2MTkyLjc2NGMuMDA4IDE1LjYxIDEyLjY0MiAyOC4yNDQgMjguMjQ4IDI4LjI0OGwxMy42NTYuMDA0IDMyLjU3NSA1MzkuNjQ4Yy44MTEgMTQuOTg5IDEzLjE4NSAyNi43MzcgMjguMjEzIDI2Ljc0NWgyMS4xOTd2MzkuNjY2Yy4wMjMgMTUuNTkzIDEyLjY0MiAyOC4yMjMgMjguMjUyIDI4LjIzNmgxMzYuMzk5YzE1LjYwNi0uMDEyIDI4LjIzNi0xMi42NDggMjguMjQ4LTI4LjI1MmwtLjAwNC0zOS42NTFoMjEuMjAxYzE1LjYwNi0uMDA4IDI4LjI0LTEyLjY0MiAyOC4yNDgtMjguMjQ4VjY5OS4zMDdoMzUuNTQ5YzExLjA0NyAxMy43NjUgMjcuOTc0IDIyLjE4MiA0Ni40MjIgMjIuMTY4aDY3LjY4NGMxOC40NDQuMDE4IDM1LjM3My04LjM5NyA0Ni40MjYtMjIuMTY4aDM1LjI2NVY4MDMuODdjLjAxIDE1LjYxIDEyLjY0NCAyOC4yNCAyOC4yNTQgMjguMjQ4aDIxLjQ3M3YzOS42NTFjLjAwOCAxNS42MDYgMTIuNjQyIDI4LjI0NCAyOC4yNTIgMjguMjUyaDEzNi4zOTljMTUuNjA2LS4wMTIgMjguMjM2LTEyLjY0MiAyOC4yNDQtMjguMjUydi0zOS42NTFoMjAuOTE2YzE1LjAyLS4wMDggMjcuMzk4LTExLjc0MSAyOC4yMDMtMjYuNjQ3bDMyLjU4Mi01MzkuNzQyaDEzLjY2NGMxNS42MDItLjAwOCAyOC4yNDQtMTIuNjQyIDI4LjI1LTI4LjI1MlY0NC43MTNjLS4wMDYtMTUuNjA2LTEyLjY0NC0yOC4yNC0yOC4yNS0yOC4yNWwtMzUwLjA4Ny4wMDZ6bTI4LjI0OCA1Ni40OTZoMjkzLjU4N3YxMzYuMjY4SDY0My44MjJ6bS01NTcuMjM3IDBoMjkzLjU4N3YxMzYuMjY4SDg2LjU4NXptNDIuMDEzIDE5Mi43NmgyMTEuMjMzdjUwOS44OTVIMTU5LjQ3OHptNTU1LjU3MS4wMDRoMjExLjIzOWwtMzAuODg2IDUwOS44OTctMTgwLjM1MS0uMDA0VjI2NS43Mjh6bS0yMzYuNjAzIDkwLjM0NSAyLjMwNi0zLjkyNC4zMjggMy40MTZhMzguOCAzOC44IDAgMCAwLTIuNzczIDguMjU1di03Ljc0OHptMTI2Ljg2NS0zLjg5MSAyLjI4NiAzLjg4N2guMTQxdjcuNzY4YTM5LjIgMzkuMiAwIDAgMC0yLjc2OS04LjI2NnptLTI4LjQ0NiA5LjU1MmguMDg0YTI3LjYgMjcuNiAwIDAgMCAxLjk5OSA1Ljg2M2MuNjg2IDEuNDk1Ljk2NyAyLjgxMi45NzMgNC4yNDF2MjgzLjAyM2MtLjAwNiAxLjQ0Ni0uMjg3IDIuNzY3LS45NSA0LjIwNWEyOCAyOCAwIDAgMC0yLjAxMyA1LjkwOEg0NzguMjFhMjguNCAyOC40IDAgMCAwLTEuOTkzLTUuODc0Yy0uNjcyLTEuNDY0LS45NTItMi43NzUtLjk2My00LjIzOVYzNzEuODRjLjAwOC0xLjQ1Mi4yODctMi43NTMuOTc5LTQuMjU0YTI4LjMgMjguMyAwIDAgMCAxLjk4Mi01Ljg1MWguMDk2bDY3LjY3NC0uMDAyem01OS41NDUgMjIuMTU3aDIyLjE0NXYyNTguOTE2SDYwNS41M3ptLTIwOS4yMTEgMGgyMi40MzZ2MjU4LjkxOGwtMjIuNDM2LjAwMnptNTEuMTA4IDI3OC45OTdhMzguNiAzOC42IDAgMCAwIDIuNzY3IDguMjUxbC0uMzM4IDMuMzk4LTIuMjk2LTMuOTA2aC0uMTM1di03Ljc0M3ptMTI5LjQzMy4wMDJ2Ny43NDFoLS4xNDNsLTIuMjY5IDMuODY3LS4zNTQtMy4zNDhhMzkgMzkgMCAwIDAgMi43NjctOC4yNnptMTU3LjAzNyAxNjkuMjI3SDgxMy44djExLjQwNWwtNzkuOTAzLjAwMnptLTUyMy40MTggMGg3OS44OTl2MTEuNDA3aC03OS44OTl6bTk0LjIzNSAyNS43MzkiIGdseXBoLW5hbWU9InByaXNtYXRpY29zIiB1bmljb2RlPSLupYwiLz48Z2x5cGggZD0iTTc0NC44NjIgOTM5LjYzMiAzNi4zMjYgMjMxLjA4NyAzMDIuMDI5LTM0LjYxNmw3MDguNTM2IDcwOC41NDV6TTMwMi4wMjYgNTMuOTU0IDEyNC44OTMgMjMxLjA4N2w2Ni40MjMgNjYuNDI2IDg4LjU2Ny04OC41NyA0NC4yODUgNDQuMjg1LTg4LjU2NCA4OC41NyA0NC4yODIgNDQuMjgyIDQ0LjI4NS00NC4yODIgNDQuMjgyIDQ0LjI4Mi00NC4yODIgNDQuMjgyIDQ0LjI4NSA0NC4yOTQgODguNTY3LTg4LjU3NiA0NC4yODUgNDQuMjgyLTg4LjU2NyA4OC41NzYgNDQuMjgyIDQ0LjI4NSA0NC4yODUtNDQuMjg1IDQ0LjI4NSA0NC4yODUtNDQuMjg1IDQ0LjI4NSA0NC4yODUgNDQuMjg1IDg4LjU2NC04OC41NyA0NC4yODUgNDQuMjg1LTg4LjU2NyA4OC41NjcgNDQuMjgyIDQ0LjI4NSA0NC4yODUtNDQuMjg1IDQ0LjI4MiA0NC4yODUtNDQuMjgyIDQ0LjI4NSA2Ni40MjYgNjYuNDI2IDE3Ny4xMzMtMTc3LjEzM0wzMDIuMDI5IDUzLjk1N3oiIGdseXBoLW5hbWU9InJlZ2xhIiB1bmljb2RlPSLupY0iLz48Z2x5cGggZD0iTTAgOTMxLjk3MVYtMzUuOTc0aDM2Ni42NTV2NjAxLjIwM2g2NTcuMzQ3djM2Ni43NDJ6bTMwNS43ODYtOTA3LjA2SDYwLjg2M1Y4MC40NWg4MC44NTF2NjAuODY0SDYwLjg2M3Y2MC44NTNoMTQxLjcwNHY2MC44NThINjAuODYzdjYwLjg3N2g4MC44NTF2NjAuODkzSDYwLjg2M3Y2MC44NjFoODAuODUxdjYwLjg1M0g2MC44NjN2NTguNzJoMjQ0LjkyM3pNOTYzLjE1IDYyNi4xMjZoLTU1LjQ2djgwLjg2MWgtNjAuODU4di04MC44NjFoLTYwLjg4M3YxNDEuNzM2aC02MC45NDdWNjI2LjEyM2gtNjAuODUzdjgwLjg2NGgtNjAuODc1di04MC44NjFoLTYwLjg1M3Y4MC44NjFoLTYwLjg1M3YtODAuODYxaC02MC44NTN2MTQxLjczNmgtNjAuODU4VjYyNi4xMjNoLTYwLjg2NHY4MC44NjRoLTYwLjg1OHYtODAuODYxaC02MC45Mzd2ODAuODYxaC02MC44OTF2LTgwLjg2MUg2MC44NjN2MjQ0Ljk1aDkwMi4yODZ6IiBnbHlwaC1uYW1lPSJyZWdsYXMiIHVuaWNvZGU9Iu6ljiIvPjxnbHlwaCBkPSJNODIwLjc5OSA1NTQuMzkyYy4wMzMgMCAuMDYuMDIxLjA5My4wMjEtLjAzMyAwLS4wOTMtLjAyMS0uMTY1LS4wMjF6bS00Ny4xMDIgMjUuOTY5Yy04LjUwNiAxMy40NC0xNy4yMDUgMjcuNzY4LTI1Ljk0OCA0Mi4zNGgtNjExLjg5Yy0zMy4zMjEgMC02MC40MjktMjcuMTExLTYwLjQyOS02MC40MzN2LTcyLjU3NWMwLTMzLjMxOSAyNy4xMDktNjAuNDIxIDYwLjQyOS02MC40MjFoMzU3LjcwN2MzLjQ3NSAwIDYuMzA1LTIuODM0IDYuMzA1LTYuMzAxVjMyMi44NDZjMC0zNC43MDggMjguMjUzLTYyLjk0MiA2Mi45NC02Mi45NDJoMTYxLjc5MWM3LjQwNyAwIDEzLjQ0Mi02LjAxNCAxMy40NDItMTMuNDIxVjE3LjczNGMwLTcuNDA3LTYuMDM3LTEzLjQzLTEzLjQ0Mi0xMy40M2gtMzQ3LjRjLTExLjQzNy0xOS41NTktMjMuMDc3LTM4Ljc1OC0zNC4zMTgtNTYuNTM0LTIuODQtNC40ODEtNi4zMzYtOC4zNTMtMTAuMTcxLTExLjc3MWgzOTEuODljNDUuMDY2IDAgODEuNzUxIDM2LjY3MiA4MS43NTEgODEuNzMydjIyOC43NTFjMCA0NS4wNi0zNi42ODQgODEuNzI4LTgxLjc1MSA4MS43MjhINTY4LjE4MXY5NC43NmMwIDQxLjE0LTMzLjQ4NSA3NC42MDctNzQuNjExIDc0LjYwN0gxNDMuNzM4djU2LjgxNGg2NzYuOTkxYy0xOS4yNDIuMDU0LTM2LjgxNiA5Ljc3OC00Ny4wMzEgMjUuOTY5ek0yOTUuNzkgMzI3LjM5M2MtNzAuNTQxIDAtMTI3Ljc3MS01Ny4yMDItMTI3Ljc3MS0xMjcuNzcxIDAtNTMuNzk5IDc0LjI3My0xNzcuNzcyIDEwOS41NTYtMjMzLjYzNiAzLjk0MS02LjIzNSAxMC44NDEtMTAuMDIzIDE4LjIxNS0xMC4wMjNhMjEuNTQgMjEuNTQgMCAwIDEgMTguMjEzIDEwLjAzOWMzNS4zMTggNTUuODg1IDEwOS41NTggMTc5LjgyIDEwOS41NTggMjMzLjYyMSAwIDcwLjU3LTU3LjIwMiAxMjcuNzY5LTEyNy43NzEgMTI3Ljc2OXptMC0xOTAuODQxYy0zMS42NTUgMC01Ny4zMDUgMjUuNjYyLTU3LjMwNSA1Ny4zMTkgMCAzMS42NjQgMjUuNjQ3IDU3LjMxNSA1Ny4zMDUgNTcuMzE1IDMxLjY1MyAwIDU3LjMwMy0yNS42NDkgNTcuMzAzLTU3LjMxNS0uMDAyLTMxLjY1Ny0yNS42NDktNTcuMzE5LTU3LjMwMy01Ny4zMTlNODIwLjc5OSA5NjBjLTcwLjU0OSAwLTEyNy43ODItNTcuMjAyLTEyNy43ODItMTI3Ljc3MSAwLTUzLjgwNSA3NC4yNDItMTc3LjczOSAxMDkuNTY4LTIzMy42MjYgMy45MzktNi4yNTEgMTAuODA4LTEwLjAzNSAxOC4yMTMtMTAuMDU2IDcuMzYyIDAgMTQuMjc1IDMuODA1IDE4LjIwMyAxMC4wNDMgMzUuMjk1IDU1Ljg2MiAxMDkuNTY4IDE3OS44MzMgMTA5LjU2OCAyMzMuNjM2IDAgNzAuNTcyLTU3LjIwMiAxMjcuNzczLTEyNy43NzEgMTI3Ljc3M3ptMC0xOTAuODQ3Yy0zMS42NTUgMC01Ny4zMDUgMjUuNjY2LTU3LjMwNSA1Ny4zMTkgMCAzMS42NjggMjUuNjQ3IDU3LjMxNSA1Ny4zMDUgNTcuMzE1IDMxLjY0NSAwIDU3LjI5NC0yNS42NDUgNTcuMjk0LTU3LjMxNSAwLTMxLjY1My0yNS42NDktNTcuMzE5LTU3LjI5NC01Ny4zMTkiIGdseXBoLW5hbWU9InJ1dGEiIHVuaWNvZGU9Iu6ljyIvPjxnbHlwaCBkPSJNMzAwLjU3MSAxNjMuNDI5cTAtMzAuMjg2LTIxLjQyOS01MS43MTR0LTUxLjcxNC0yMS40MjlxLTI5LjcxNCAwLTUxLjQyOSAyMS43MTR0LTIxLjcxNCA1MS40MjlxMCAzMC4yODYgMjEuNDI5IDUxLjcxNHQ1MS43MTQgMjEuNDI5IDUxLjcxNC0yMS40MjkgMjEuNDI5LTUxLjcxNE01ODUuMTQzIDQ1LjcxNHEwLTMwLjI4Ni0yMS40MjktNTEuNzE0VDUxMi0yNy40MjkgNDYwLjI4Ni02dC0yMS40MjkgNTEuNzE0IDIxLjQyOSA1MS43MTRUNTEyIDExOC44NTd0NTEuNzE0LTIxLjQyOSAyMS40MjktNTEuNzE0TTE4Mi44NTcgNDQ4cTAtMzAuMjg2LTIxLjQyOS01MS43MTR0LTUxLjcxNC0yMS40MjlUNTggMzk2LjI4NiAzNi41NzEgNDQ4IDU4IDQ5OS43MTR0NTEuNzE0IDIxLjQyOSA1MS43MTQtMjEuNDI5VDE4Mi44NTcgNDQ4bTY4Ni44NTctMjg0LjU3MXEwLTI5LjcxNC0yMS43MTQtNTEuNDI5dC01MS40MjktMjEuNzE0cS0zMC4yODYgMC01MS43MTQgMjEuNDI5dC0yMS40MjkgNTEuNzE0IDIxLjQyOSA1MS43MTQgNTEuNzE0IDIxLjQyOSA1MS43MTQtMjEuNDI5IDIxLjQyOS01MS43MTRNMzE4Ljg1NyA3MzIuNTcxcTAtMzcuNzE0LTI2Ljg1Ny02NC41NzF0LTY0LjU3MS0yNi44NTdUMTYyLjg1OCA2Njh0LTI2Ljg1NyA2NC41NzEgMjYuODU3IDY0LjU3MSA2NC41NzEgMjYuODU3VDI5MiA3OTcuMTQydDI2Ljg1Ny02NC41NzFNOTg3LjQyOSA0NDhxMC0zMC4yODYtMjEuNDI5LTUxLjcxNHQtNTEuNzE0LTIxLjQyOS01MS43MTQgMjEuNDI5VDg0MS4xNDMgNDQ4dDIxLjQyOSA1MS43MTQgNTEuNzE0IDIxLjQyOVQ5NjYgNDk5LjcxNCA5ODcuNDI5IDQ0OE02MjEuNzE0IDg1MC4yODZxMC00NS43MTQtMzItNzcuNzE0dC03Ny43MTQtMzItNzcuNzE0IDMyLTMyIDc3LjcxNCAzMiA3Ny43MTRUNTEyIDk2MHQ3Ny43MTQtMzIgMzItNzcuNzE0bTMwMi44NTctMTE3LjcxNXEwLTUzLjE0My0zNy43MTQtOTAuNTcxdC05MC4yODYtMzcuNDI5cS01My4xNDMgMC05MC41NzEgMzcuNDI5dC0zNy40MjkgOTAuNTcxcTAgNTIuNTcxIDM3LjQyOSA5MC4yODZ0OTAuNTcxIDM3LjcxNHE1Mi41NzEgMCA5MC4yODYtMzcuNzE0dDM3LjcxNC05MC4yODYiIGdseXBoLW5hbWU9InNwaW5uZXIiIHVuaWNvZGU9Iu6lkCIvPjxnbHlwaCBkPSJNNTEyIDg1Ny42YzE5LjgwNCAwIDM1Ljg0LTIyLjkyNyAzNS44NC01MS4yVjcwNGMwLTI4LjI3My0xNi4wMzYtNTEuMi0zNS44NC01MS4yLTE5Ljc5NCAwLTM1Ljg0IDIyLjkyNy0zNS44NCA1MS4ydjEwMi40YzAgMjguMjczIDE2LjA0NiA1MS4yIDM1Ljg0IDUxLjIiIHVuaWNvZGU9Iu6lkSIvPjxnbHlwaCBkPSJNOTIxLjYgNDQ4YzAtMTkuODA0LTIyLjkxNy0zNS44NC01MS4yLTM1Ljg0SDc2OGMtMjguMjgzIDAtNTEuMiAxNi4wMzYtNTEuMiAzNS44NCAwIDE5Ljc5NCAyMi45MTcgMzUuODQgNTEuMiAzNS44NGgxMDIuNGMyOC4yODMgMCA1MS4yLTE2LjA0NiA1MS4yLTM1Ljg0IiB1bmljb2RlPSLupZIiLz48Z2x5cGggZD0iTTg2Ni43MjQgMjQzLjJjLTkuOTAyLTE3LjE0Mi0zNy43NjUtMTkuNTc5LTYyLjI1OS01LjQzN2wtODguNjc4IDUxLjJjLTI0LjQ4NCAxNC4xNDEtMzYuMzIxIDM5LjQ5Ni0yNi40MjkgNTYuNjM3IDkuOTAyIDE3LjE0MiAzNy43NzUgMTkuNTc5IDYyLjI1OSA1LjQzN2w4OC42NzgtNTEuMmMyNC40OTQtMTQuMTQxIDM2LjMyMS0zOS40OTYgMjYuNDI5LTU2LjYzNyIgdW5pY29kZT0i7qWTIi8+PGdseXBoIGQ9Ik03MTYuOCA5My4yNzZjLTE3LjE0Mi05LjkwMi00Mi40OTYgMS45MjUtNTYuNjM3IDI2LjQxOWwtNTEuMiA4OC42NzhjLTE0LjE0MSAyNC40ODQtMTEuNzA0IDUyLjM1NyA1LjQzNyA2Mi4yNTlzNDIuNDk2LTEuOTM1IDU2LjYzNy0yNi40MTlsNTEuMi04OC42NzhjMTQuMTQxLTI0LjQ5NCAxMS43MDQtNTIuMzU3LTUuNDM3LTYyLjI1OSIgdW5pY29kZT0i7qWUIi8+PGdseXBoIGQ9Ik01MTIgMzguNGMtMTkuNzk0IDAtMzUuODQgMjIuOTE3LTM1Ljg0IDUxLjJWMTkyYzAgMjguMjgzIDE2LjA0NiA1MS4yIDM1Ljg0IDUxLjIgMTkuODA0IDAgMzUuODQtMjIuOTE3IDM1Ljg0LTUxLjJWODkuNmMwLTI4LjI4My0xNi4wMzYtNTEuMi0zNS44NC01MS4yIiB1bmljb2RlPSLupZUiLz48Z2x5cGggZD0iTTMwNy4yIDkzLjI3NmMtMTcuMTQyIDkuOTAyLTE5LjU3OSAzNy43NjUtNS40MzcgNjIuMjU5bDUxLjIgODguNjc4YzE0LjE0MSAyNC40ODQgMzkuNDk2IDM2LjMyMSA1Ni42MzcgMjYuNDE5IDE3LjE0Mi05LjkwMiAxOS41NzktMzcuNzc1IDUuNDM3LTYyLjI1OWwtNTEuMi04OC42NzhjLTE0LjE0MS0yNC40OTQtMzkuNDk2LTM2LjMxMS01Ni42MzctMjYuNDE5IiB1bmljb2RlPSLupZYiLz48Z2x5cGggZD0iTTE1Ny4yNzYgMjQzLjJjLTkuODkyIDE3LjE0MiAxLjkzNSA0Mi40OTYgMjYuNDE5IDU2LjYzN2w4OC42NzggNTEuMmMyNC40OTQgMTQuMTQxIDUyLjM2NyAxMS43MDQgNjIuMjY5LTUuNDM3IDkuODkyLTE3LjE0Mi0xLjkzNS00Mi40OTYtMjYuNDI5LTU2LjYzN2wtODguNjc4LTUxLjJjLTI0LjQ4NC0xNC4xNDEtNTIuMzU3LTExLjcwNC02Mi4yNTkgNS40MzciIHVuaWNvZGU9Iu6llyIvPjxnbHlwaCBkPSJNMTAyLjQgNDQ4YzAgMTkuNzk0IDIyLjkyNyAzNS44NCA1MS4yIDM1Ljg0SDI1NmMyOC4yNzMgMCA1MS4yLTE2LjA0NiA1MS4yLTM1Ljg0IDAtMTkuODA0LTIyLjkyNy0zNS44NC01MS4yLTM1Ljg0SDE1My42Yy0yOC4yNzMgMC01MS4yIDE2LjAzNi01MS4yIDM1Ljg0IiB1bmljb2RlPSLupZgiLz48Z2x5cGggZD0iTTE1Ny4yNzYgNjUyLjhjOS45MDIgMTcuMTQyIDM3Ljc3NSAxOS41NzkgNjIuMjU5IDUuNDM3bDg4LjY4OS01MS4yYzI0LjQ4NC0xNC4xNDEgMzYuMzExLTM5LjQ5NiAyNi40MTktNTYuNjM3LTkuOTAyLTE3LjE0Mi0zNy43NzUtMTkuNTc5LTYyLjI1OS01LjQzN2wtODguNjg5IDUxLjJjLTI0LjQ4NCAxNC4xNDEtMzYuMzExIDM5LjQ5Ni0yNi40MTkgNTYuNjM3IiB1bmljb2RlPSLupZkiLz48Z2x5cGggZD0iTTMwNy4yIDgwMi43MjRjMTcuMTQyIDkuODkyIDQyLjQ5Ni0xLjkyNSA1Ni42MzctMjYuNDE5bDUxLjItODguNjc4YzE0LjEzMS0yNC40OTQgMTEuNzA0LTUyLjM2Ny01LjQzNy02Mi4yNjktMTcuMTQyLTkuODkyLTQyLjQ5NiAxLjkzNS01Ni42MzcgMjYuNDI5bC01MS4yIDg4LjY3OGMtMTQuMTQxIDI0LjQ5NC0xMS43MDQgNTIuMzU3IDUuNDM3IDYyLjI1OSIgdW5pY29kZT0i7qWaIi8+PGdseXBoIGQ9Ik05MjggMzcwYzMwIDAgNTQtMjQgNTQtNTRWMjJjMC0zMC0yNC01NC01NC01NEg5MkM2Mi0zMiAzNi04IDM2IDIydjI5NGMwIDMwIDI2IDU0IDU2IDU0czU0LTI0IDU0LTU0Vjc4aDcyOHYyMzhjMCAzMCAyNCA1NCA1NCA1NE0zMjggNjI4Yy0yMi0yMi01NC0yMi03NiAwcy0yMiA1NCAwIDc2bDIyMCAyMjBjMTAgMTAgMjQgMTYgMzggMTZzMjgtNiAzOC0xNmwyMjAtMjIwYzIyLTIyIDIyLTU0IDAtNzYtMTAtMTAtMjQtMTYtMzgtMTZzLTMwIDYtNDAgMTZMNTY0IDc1NFYyODZjMC0zMC0yNC01NC01NC01NHMtNTQgMjQtNTQgNTR2NDY4eiIgZ2x5cGgtbmFtZT0ic3ViaXIiIHVuaWNvZGU9Iu6lmyIvPjxnbHlwaCBkPSJNNzI5LjkxMyA3MTguMjQ0SDUwLjkyNUMyMi43OTUgNzE4LjI0NCAwIDY5NS40NTMgMCA2NjcuMzIxVi0xMS42NjdjMC0yOC4xMyAyMi43OTUtNTAuOTI1IDUwLjkyNS01MC45MjVoNjc4Ljk4OGMyOC4xMyAwIDUwLjkyMyAyMi43OTUgNTAuOTIzIDUwLjkyNXY2NzguOTg4YzAgMjguMTMyLTIyLjc5MyA1MC45MjMtNTAuOTIzIDUwLjkyM002NzguOTg4IDM5LjI1OGgtNTc3LjE0djU3Ny4xNGg1NzcuMTR6bTMzNC45MTcgNjIuNjI3aC01NS4yMzN2NTk0LjMxNGg1NS4yMzNjNC4wNzkgMCA3Ljc1OCAyLjQ1NCA5LjMxNiA2LjIzMWExMC4wNiAxMC4wNiAwIDAgMS0yLjE4NyAxMS4wMDZsLTg5LjE2NyA4OS4xNjdjLTMuOTQ2IDMuOTQ2LTEwLjM0MyAzLjk0Ni0xNC4yODcgMGwtODkuMTY5LTg5LjE2N2ExMC4wNiAxMC4wNiAwIDAgMS0yLjE4Ny0xMS4wMDYgMTAuMDggMTAuMDggMCAwIDEgOS4zMTgtNi4yMzFoNTUuMjMzVjEwMS44ODVoLTU1LjIzM2ExMC4wNyAxMC4wNyAwIDAgMS05LjMxOC02LjIzMSAxMC4wNyAxMC4wNyAwIDAgMSAyLjE4Ny0xMS4wMUw5MTcuNTgtNC41MjNjMy45NDQtMy45NDYgMTAuMzQzLTMuOTQ2IDE0LjI4NyAwbDg5LjE2NyA4OS4xNjdhMTAuMDYgMTAuMDYgMCAwIDEgMi4xODcgMTEuMDEgMTAuMDcgMTAuMDcgMCAwIDEtOS4zMTYgNi4yMzFtLTg2Ni42NyA2NjEuMTE3YTEwLjA2IDEwLjA2IDAgMCAxIDExLjAwOC0yLjE4NyAxMC4wNyAxMC4wNyAwIDAgMSA2LjIzMyA5LjMxNnY1NS4yMzNINzU4Ljc5di01NS4yMzNjMC00LjA3OSAyLjQ1Mi03Ljc2IDYuMjMxLTkuMzE2YTEwLjA2IDEwLjA2IDAgMCAxIDExLjAwOCAyLjE4N2w4OS4xNjcgODkuMTY3YzMuOTQ2IDMuOTQ4IDMuOTQ2IDEwLjM0NyAwIDE0LjI5MWwtODkuMTY3IDg5LjE2NWExMC4wNiAxMC4wNiAwIDAgMS0xMS4wMDggMi4xODkgMTAuMDcgMTAuMDcgMCAwIDEtNi4yMzEtOS4zMTZ2LTU1LjIzN0gxNjQuNDc2djU1LjIzN2ExMC4wNyAxMC4wNyAwIDAgMS02LjIzMyA5LjMxNiAxMC4wNiAxMC4wNiAwIDAgMS0xMS4wMDgtMi4xODlMNTguMDcgODY2LjQ2Yy0zLjk0Ni0zLjk0NC0zLjk0Ni0xMC4zNDMgMC0xNC4yOTF6IiBnbHlwaC1uYW1lPSJ0YW1hbm8iIHVuaWNvZGU9Iu6lnCIvPjxnbHlwaCBkPSJNNTM5LjM4NCAyODYuOTQ1djMwNS4xMDNjMCAxNS4wNjEtMTIuMzI1IDI3LjM4NC0yNy4zODQgMjcuMzg0LTE1LjA2MSAwLTI3LjM4NC0xMi4zMjMtMjcuMzg0LTI3LjM4NFYyODYuOTQ1Yy00Ny4xLTEyLjI2OC04Mi4xNDktNTQuNzY2LTgyLjE0OS0xMDUuNjQ2IDAtNjAuNDA2IDQ5LjA3Mi0xMDkuNTMxIDEwOS41MzMtMTA5LjUzMSA2MC40NjMgMCAxMDkuNTMxIDQ5LjEyNSAxMDkuNTMxIDEwOS41MzEgMCA1MC44ODEtMzUuMDQ5IDkzLjM3OS04Mi4xNDcgMTA1LjY0Nk02OTEuMiAzNzMuMjk5Vjc4MC44YzAgOTguODE2LTgwLjM4NCAxNzkuMi0xNzkuMiAxNzkuMnMtMTc5LjItODAuMzg0LTE3OS4yLTE3OS4yVjM3My4yOTlDMjg1LjU5NCAzMjcuMTE3IDI1NiAyNjMuMTY4IDI1NiAxOTIgMjU2IDUwLjg0MiAzNzAuODQyLTY0IDUxMi02NGMxNDEuMTYgMCAyNTYgMTE0Ljg0MiAyNTYgMjU2IDAgNzEuMTY4LTI5LjU5MiAxMzUuMTE3LTc2LjggMTgxLjI5OU01MTIgMjAuMTA3Yy04OC40NjUgMC0xNjAuNDU5IDcxLjk5My0xNjAuNDU5IDE2MC40NjEgMCA1OS4xMDEgMzIuNDY1IDExMC4yODkgODAuMjI4IDEzOC4xNTZ2NDc2LjkzOGMwIDQ0LjIzMyAzNS45OTggODAuMjMgODAuMjMgODAuMjNzODAuMjMtMzUuOTk4IDgwLjIzLTgwLjIzVjMxOC43MjRjNDcuNzYzLTI3Ljg2NyA4MC4yMy03OS4wNTUgODAuMjMtMTM4LjE1Ni0uMDAyLTg4LjQ2Ny03MS45OTMtMTYwLjQ2MS0xNjAuNDYxLTE2MC40NjF6IiBnbHlwaC1uYW1lPSJ0ZW1wZXJhdHVyYSIgdW5pY29kZT0i7qWdIi8+PGdseXBoIGQ9Ik05MTIgNzQyLjg1N3ExNi0xNiAyNy40MjktNDMuNDI5YzExLjQyOS0yNy40MjkgMTEuNDI5LTM1LjA0NyAxMS40MjktNTAuMjg2Vi05LjE0NHEwLTIyLjg1Ny0xNi0zOC44NTdjLTE2LTE2LTIzLjYxOS0xNi0zOC44NTctMTZoLTc2OHEtMjIuODU3IDAtMzguODU3IDE2Yy0xNiAxNi0xNiAyMy42MTktMTYgMzguODU3djkxNC4yODZxMCAyMi44NTggMTYgMzguODU3YzE2IDE1Ljk5OSAyMy42MTkgMTYgMzguODU3IDE2aDUxMnEyMi44NTcgMCA1MC4yODYtMTEuNDI5YzI3LjQyOS0xMS40MjkgMzIuNzYyLTE2Ljc2MiA0My40MjktMjcuNDI5bDE3OC4yODYtMTc4LjI4NnpNNjYxLjM5IDg1Ni44OTVWNjcxLjEwNGgxODUuNzkxcS00Ljk0IDE0LjMzLTEwLjg3IDIwLjI1OUw2ODEuNjQ5IDg0Ni4wMjVxLTUuOTMgNS45My0yMC4yNTkgMTAuODdNODYzLjQyOSAyMy40Mjl2NTcwLjg1N0g2NDBxLTIyLjg1NyAwLTM4Ljg1NyAxNmMtMTYgMTYtMTYgMjMuNjE5LTE2IDM4Ljg1N1Y4NzJIMTYwLjU3MlYyMy40Mjl6TTI2NC44MjUgNDk1LjA5NnEwIDkuMDExIDUuNzkzIDE0LjgwNWM1Ljc5MyA1Ljc5NCA4Ljc5OCA1Ljc5MyAxNC44MDUgNS43OTNoNDUzLjE1NXE5LjAxMiAwIDE0LjgwNS01Ljc5M2M1Ljc5My01Ljc5MyA1Ljc5NC04Ljc5NyA1Ljc5NC0xNC44MDVWNDUzLjlxMC05LjAxLTUuNzk0LTE0LjgwNWMtNS43OTQtNS43OTUtOC43OTctNS43OTMtMTQuODA1LTUuNzkzSDI4NS40MjNxLTkuMDExIDAtMTQuODA1IDUuNzkzLTUuNzkzIDUuNzk0LTUuNzkzIDE0LjgwNXpNNzM4LjU3NyAzNTAuOTFxOS4wMTIgMCAxNC44MDUtNS43OTNjNS43OTMtNS43OTMgNS43OTQtOC43OTcgNS43OTQtMTQuODA1di00MS4xOTdxMC05LjAxLTUuNzk0LTE0LjgwNWMtNS43OTQtNS43OTUtOC43OTctNS43OTMtMTQuODA1LTUuNzkzSDI4NS40MjJxLTkuMDExIDAtMTQuODA1IDUuNzkzYy01Ljc5NCA1Ljc5My01Ljc5MyA4Ljc5OC01Ljc5MyAxNC44MDV2NDEuMTk3cTAgOS4wMTEgNS43OTMgMTQuODA1YzUuNzkzIDUuNzk0IDguNzk4IDUuNzkzIDE0LjgwNSA1Ljc5M3ptMC0xNjQuNzg0cTkuMDEyIDAgMTQuODA1LTUuNzk0YzUuNzkzLTUuNzk0IDUuNzk0LTguNzk3IDUuNzk0LTE0LjgwNXYtNDEuMTk2cTAtOS4wMTEtNS43OTQtMTQuODA1Yy01Ljc5NC01Ljc5NC04Ljc5Ny01Ljc5NC0xNC44MDUtNS43OTRIMjg1LjQyMnEtOS4wMTEgMC0xNC44MDUgNS43OTRjLTUuNzk0IDUuNzk0LTUuNzkzIDguNzk3LTUuNzkzIDE0LjgwNXY0MS4xOTZxMCA5LjAxMiA1Ljc5MyAxNC44MDVjNS43OTMgNS43OTMgOC43OTggNS43OTQgMTQuODA1IDUuNzk0eiIgZ2x5cGgtbmFtZT0idGV4dG8iIHVuaWNvZGU9Iu6lniIvPjxnbHlwaCBkPSJNNTEyIDk1OS45NzhDMjI5LjI2IDk1OS45NzggMCA3MzAuNzYzIDAgNDQ4UzIyOS4yMzctNjMuOTc4IDUxMi02My45NzhjMjgyLjc4NSAwIDUxMiAyMjkuMjE1IDUxMiA1MTEuOTc4Uzc5NC43ODUgOTU5Ljk3OCA1MTIgOTU5Ljk3OG0wLTE1My4wODhjOTMuNTU3IDAgMTY5LjM3LTc1LjgzNSAxNjkuMzctMTY5LjM0NyAwLTkzLjUzNS03NS44MTMtMTY5LjM0Ny0xNjkuMzctMTY5LjM0Ny05My41MTIgMC0xNjkuMzI1IDc1LjgxMy0xNjkuMzI1IDE2OS4zNDcgMCA5My41MTIgNzUuODEzIDE2OS4zNDcgMTY5LjMyNSAxNjkuMzQ3bS0uMTEyLTczNy4wMDljLTkzLjMxIDAtMTc4Ljc3IDMzLjk4Mi0yNDQuNjg4IDkwLjIyOS0xNi4wNTggMTMuNjk2LTI1LjMyMyAzMy43NzktMjUuMzIzIDU0Ljg1MiAwIDk0LjgzOSA3Ni43NTcgMTcwLjc0MiAxNzEuNjE5IDE3MC43NDJoMTk3LjA1NWM5NC44ODQgMCAxNzEuMzQ5LTc1LjkwMyAxNzEuMzQ5LTE3MC43NDJhNzEuOTkgNzEuOTkgMCAwIDAtMjUuMzAxLTU0LjgzYy02NS44OTUtNTYuMjY5LTE1MS4zNzgtOTAuMjUxLTI0NC43MS05MC4yNTF6IiBnbHlwaC1uYW1lPSJ1c3VhcmlvIiB1bmljb2RlPSLupZ8iLz48Z2x5cGggZD0iTTcwOS43MzIgNDI4LjMwOUg2NjguNTJjNzkuNjEyIDUxLjUxIDEzMi40MTUgMTQxLjA4IDEzMi40MTUgMjQyLjc1NiAwIDE1OS4zMjEtMTI5LjYxNCAyODguOTM0LTI4OC45MzQgMjg4LjkzNFMyMjMuMDY3IDgzMC4zODUgMjIzLjA2NyA2NzEuMDY1YzAtMTAxLjY3NiA1Mi43OTgtMTkxLjI0NiAxMzIuNDE1LTI0Mi43NTZIMzE0LjI3Yy0xMDUuOTA5IDAtMTkyLjA3Mi04Ni4xNTgtMTkyLjA3Mi0xOTIuMDY3Vi0zMi4wNTJjMC0xNy42NDcgMTQuMzA2LTMxLjk1MSAzMS45NTEtMzEuOTUxaDcxNS43MDNjMTcuNjQ1IDAgMzEuOTUxIDE0LjMwNCAzMS45NTEgMzEuOTUxdjI2OC4yOTdjMCAxMDUuOTA2LTg2LjE2MyAxOTIuMDY0LTE5Mi4wNzIgMTkyLjA2NHpNMjg2Ljk2OSA2NzEuMDY2YzAgMTI0LjA4MiAxMDAuOTQ3IDIyNS4wMzIgMjI1LjAzMiAyMjUuMDMyIDEyNC4wODIgMCAyMjUuMDMyLTEwMC45NSAyMjUuMDMyLTIyNS4wMzIgMC0xMjQuMDgtMTAwLjk1LTIyNS4wMjctMjI1LjAzMi0yMjUuMDI3LTEyNC4wODUgMC0yMjUuMDMyIDEwMC45NDctMjI1LjAzMiAyMjUuMDI3bTMxOC41MTYtMjczLjM5OS05My40ODQtOTMuNDg2LTkzLjQ4NCA5My40ODRjMjkuMzM2LTEwLjA1OCA2MC43ODEtMTUuNTI4IDkzLjQ4NC0xNS41MjhzNjQuMTUgNS40NyA5My40ODQgMTUuNTMxek04MzcuOTAyLS4wOThoLTg2LjkwN3YxNTMuNTE2YzAgMTcuNjQ3LTE0LjMwNiAzMS45NTEtMzEuOTUxIDMxLjk1MXMtMzEuOTUxLTE0LjMwNC0zMS45NTEtMzEuOTUxVi0uMDk4SDMzNi45MXYxNTMuNTE2YzAgMTcuNjQ3LTE0LjMwNiAzMS45NTEtMzEuOTUxIDMxLjk1MXMtMzEuOTUxLTE0LjMwNC0zMS45NTEtMzEuOTUxVi0uMDk4aC04Ni45MDd2MjM2LjM0M2MwIDcwLjY2OCA1Ny40OTcgMTI4LjE2NSAxMjguMTcgMTI4LjE2NWg0Ny4xMzJsMTI4LjAwNi0xMjguMDA0YzYuMjM5LTYuMjM5IDE0LjQxNi05LjM1OCAyMi41OTMtOS4zNThzMTYuMzQ5IDMuMTE4IDIyLjU5MyA5LjM1OEw2NjIuNjAxIDM2NC40MWg0Ny4xMzJjNzAuNjcxIDAgMTI4LjE3LTU3LjQ5MSAxMjguMTctMTI4LjE2NXoiIGdseXBoLW5hbWU9InVzdWFyaW8yIiB1bmljb2RlPSLupaAiLz48Z2x5cGggZD0iTTg2OS4yNjIgMjY3LjY2YzE0OC4yMSAxNDguMjE2IDE0OC4yMDggMzg5LjM4NCAwIDUzNy41OTgtMTQ4LjIxNiAxNDguMjE2LTM4OS4zOCAxNDguMjE2LTUzNy41OTggMC0xMjUuNzM4LTEyNS43NDItMTQ0Ljc4LTMxMi43NS01Ny4xNzgtNDU4Ljc4IDAgMCA2LjI5NC0xMC41NTYtMi4yMDYtMTkuMDU0QzIyMy43OTQgMjc4Ljk0MiA3OC4zMzYgMTMzLjQ4IDc4LjMzNiAxMzMuNDggMzkuNzM0IDk0Ljg4IDMwLjU0NCA0MC45MDQgNjQuNzc2IDYuNjdMNzAuNjcuNzhjMzQuMjMyLTM0LjIzNiA4OC4yMS0yNS4wNDggMTI2LjgxMiAxMy41NTJMMzkxLjAyIDIwNy44N2M4LjkwNiA4LjkwNCAxOS40NiAyLjYxMiAxOS40NiAyLjYxMiAxNDYuMDI4LTg3LjYwNCAzMzMuMDQtNjguNTYyIDQ1OC43ODIgNTcuMTc4bS00NjcuNDE2IDcwLjE4NGMtMTA5LjUxNiAxMDkuNTE2LTEwOS41MTQgMjg3LjcwOC4wMDIgMzk3LjIyNiAxMDkuNTE2IDEwOS41MTQgMjg3LjcxMiAxMDkuNTE2IDM5Ny4yMjIgMCAxMDkuNTE4LTEwOS41MTQgMTA5LjUxOC0yODcuNzEgMC0zOTcuMjI2LTEwOS41MTItMTA5LjUxMi0yODcuNzA4LTEwOS41MTItMzk3LjIyNCAwbTI0LjI1OCAyMjEuMTc0YTM5LjIgMzkuMiAwIDAgMC0xNS4yNzQgMy4xMTJjLTE5Ljk1MiA4LjQ0NC0yOS4yODYgMzEuNDY0LTIwLjg0MiA1MS40MiA1My4wNzQgMTI1LjQyMiAxOTguMjkgMTg0LjI4MiAzMjMuNzE0IDEzMS4yMDggMTkuOTUtOC40NDQgMjkuMjg0LTMxLjQ2NCAyMC44NC01MS40Mi04LjQ0OC0xOS45NTQtMzEuNDYtMjkuMjg0LTUxLjQyNC0yMC44NC04NS41NzIgMzYuMjA4LTE4NC42NTYtMy45NTQtMjIwLjg2NC04OS41MjQtNi4zMzItMTQuOTY0LTIwLjg1OC0yMy45NTYtMzYuMTUtMjMuOTU2IiBnbHlwaC1uYW1lPSJ6b29tIiB1bmljb2RlPSLupaEiLz48Z2x5cGggZD0iTTEwMDIuNDM0IDc1NS4zMzlWMTM2LjQ2OHEwLTMzLjU5LTIzLjkyLTU3LjUxMS0yMy45MTktMjMuOTE5LTU3LjUxLTIzLjkxOUgxMDYuNjk4cS0zMy41OSAwLTU3LjUxMSAyMy45MTktMjMuOTE5IDIzLjkyLTIzLjkxOSA1Ny41MTF2NjE4Ljg3MXEwIDMzLjU5IDIzLjkxOSA1Ny41MTFjMjMuOTE5IDIzLjkyMSAzNS4xMTcgMjMuOTIgNTcuNTExIDIzLjkyaDgxNC4zMDZxMzMuNTkgMCA1Ny41MS0yMy45MmMyMy45Mi0yMy45MiAyMy45Mi0zNS4xMTggMjMuOTItNTcuNTExbS05MS40NzYuNjQ5SDExNi43NDJxLTYuNDUzIDAtMTEuMTY5LTQuNjAzYy00LjcxNi00LjYwMy00LjcxNi02LjcwMi00LjcxNi0xMC45MDFWMTUxLjMyMXEwLTYuMjk3IDQuNzE2LTEwLjkwMWM0LjcxNi00LjYwNCA2Ljg2Ni00LjYwMyAxMS4xNjktNC42MDNoNzk0LjIxN3E2LjQ1MiAwIDExLjE2OSA0LjYwM2M0LjcxNyA0LjYwMyA0LjcxNyA2LjcwMiA0LjcxNyAxMC45MDF2NTg5LjE2NXEwIDYuMjk4LTQuNzE3IDEwLjkwMi00LjcxNyA0LjYtMTEuMTY5IDQuNjAxek02NTUuOTEyIDM4MS41MjVjMTQuMzM3IDE0LjMzOCAyNS4wOTIgMzAuNTMgMzIuMjYxIDQ4LjU2N3ExMC43NDggMjcuMDU1IDEwLjc0OSA1NS4xNTMgMCAyOC4xLTEwLjc0OSA1NS41MDJjLTcuMTY5IDE4LjI2Ny0xNy45MjYgMzQuNTcxLTMyLjI2MSA0OC45MTEtMTQuMzM3IDE0LjMzNy0zMC41MjkgMjQuOTc3LTQ4LjU2NCAzMS45MTNxLTI3LjA1NiAxMC40MDgtNTUuNTAyIDEwLjQwOGMtMjguNDQ2IDAtMzcuNDctMy40Ny01NS41MDMtMTAuNDA4LTE4LjAzOC02LjkzNy0zNC4yMjQtMTcuNTc4LTQ4LjU2My0zMS45MTNxLTIxLjUwOS0yMS41MDgtMzIuMjYtNDguOTExYy0xMC43NTEtMjcuNDAzLTEwLjc1NS0zNi43NzMtMTAuNzU1LTU1LjUwMnEwLTI4LjA5OCAxMC43NTUtNTUuMTUzIDEwLjc1MS0yNy4wNTYgMzIuMjYtNDguNTY3IDIxLjUwOC0yMS41MDggNDguNTYzLTMyLjI2MiAyNy4wNi0xMC43NDggNTUuNTAzLTEwLjc0OSAyOC40NDYgMCA1NS41MDIgMTAuNzQ5IDI3LjA1OCAxMC43NTUgNDguNTY0IDMyLjI2Mm00Ni43OTYgMjU0Ljg2MmMyMC44NjQtMjAuODU5IDM2LjUwNi00NC40MjIgNDYuOTM3LTcwLjY4MnExNS42NDYtMzkuMzkyIDE1LjY0Ni04MC4xODFjMC00MC43ODktNS4yMTUtNTMuOTE4LTE1LjY0Ni04MC4xNzlRNzM0IDM2NS45NTMgNzAyLjcwOCAzMzQuNjYzYy0xNi43NTktMTYuNzYzLTM1LjM4Ny0zMC4xNzMtNTUuODc1LTQwLjIzMXEtMzAuNzI3LTE1LjA4My02My42OTktMjAuMTExYy0yMS45NzUtMy4zNTUtNDQuMDQ4LTMuMTctNjYuMjEuNTU1LTIyLjE2NCAzLjcyNS00My4zMDggMTAuODAzLTYzLjQxOSAyMS4yMzNsLTk2LjEwNi05Ni4xMDZjLTUuNTg5LTUuNTg2LTExLjczMy05LjY4MS0xOC40NDEtMTIuMjkycS0xMC4wNTYtMy45MS0yMC45NTEtMy45MTFjLTEwLjg5NS0uMDAxLTE0LjI0OSAxLjMwNS0yMC45NTIgMy45MTFxLTEwLjA2IDMuOTEyLTE4LjQ0IDEyLjI5Mi04LjM4IDguMzgzLTEyLjI5NCAxOC40MzktMy45MSAxMC4wNTktMy45MTEgMjAuOTUzYy0uMDAxIDEwLjg5NCAxLjMwNSAxNC4yNDYgMy45MTEgMjAuOTQ5cTMuOTEgMTAuMDU5IDEyLjI5NCAxOC40MzlsOTIuNzUyIDkyLjc1NHEtMTkuNTU3IDMwLjczMS0yNy4zNzggNjUuOTM1LTcuODI0IDM1LjItNC4xOTIgNzAuMzk5IDMuNjMzIDM1LjIwMiAxOC45OTggNjguNDQ3dDQyLjE4NiA2MC4wNjZxMzEuMjkgMzAuNzMyIDcwLjY4MyA0Ni4zNzggMzkuMzkyIDE1LjY0NyA4MC4xODIgMTUuNjQ2YzI3LjE5IDAgNTMuOTItNS4yMTQgODAuMTc5LTE1LjY0NHEzOS4zOTYtMTUuNjQ1IDcwLjY4My00Ni4zNzciIGdseXBoLW5hbWU9Inpvb20tZXh0ZW5zaW9uIiB1bmljb2RlPSLupaIiLz48Z2x5cGggZD0iTTg2OS4yNjIgMjY3LjY2YzE0OC4yMSAxNDguMjE2IDE0OC4yMSAzODkuMzg0IDAgNTM3LjU5OC0xNDguMjE0IDE0OC4yMTYtMzg5LjM4MiAxNDguMjE2LTUzNy41OTggMC0xMjUuNzM4LTEyNS43NDItMTQ0Ljc4LTMxMi43NS01Ny4xNzgtNDU4Ljc4IDAgMCA2LjI5NC0xMC41NTQtMi4yMDYtMTkuMDU0QzIyMy43OTQgMjc4Ljk0MiA3OC4zMzYgMTMzLjQ4IDc4LjMzNiAxMzMuNDggMzkuNzM0IDk0Ljg4IDMwLjU0NCA0MC45MDQgNjQuNzc2IDYuNjdMNzAuNjcuNzhjMzQuMjMyLTM0LjIzNiA4OC4yMS0yNS4wNDggMTI2LjgxMiAxMy41NTIgMCAwIDE0NS4xNTIgMTQ1LjE1MiAxOTMuNTM2IDE5My41MzggOC45MDggOC45MDQgMTkuNDYgMi42MTIgMTkuNDYgMi42MTIgMTQ2LjAyOC04Ny42MDQgMzMzLjA0Mi02OC41NjIgNDU4Ljc4NCA1Ny4xNzhtLTQ2Ny40MTYgNzAuMTg0Yy0xMDkuNTE2IDEwOS41MTYtMTA5LjUxNCAyODcuNzA4LjAwMiAzOTcuMjI2IDEwOS41MTYgMTA5LjUxNCAyODcuNzE2IDEwOS41MTYgMzk3LjIyNCAwIDEwOS41MTgtMTA5LjUxNCAxMDkuNTE4LTI4Ny43MSAwLTM5Ny4yMjYtMTA5LjUxNC0xMDkuNTE0LTI4Ny43MS0xMDkuNTE0LTM5Ny4yMjYgME03NTAuODg4IDU5MS4yaC04NS4wNTRzLTguMTM2LjY0LTguMTM2IDguOTQydjg0LjI1YzAgMTYuNTk4LTEzLjU4MiAzMC4xOC0zMC4xODIgMzAuMThoLTUwLjAyNGMtMTYuNTk4IDAtMzAuMTgtMTMuNTgyLTMwLjE4LTMwLjE4di04My42ODRjMC04Ljg2Ni04LjYwOC05LjUwNC04LjYwOC05LjUwNGgtODQuNTgyYy0xNi41OTggMC0zMC4xOC0xMy41ODItMzAuMTgtMzAuMThWNTExYzAtMTYuNTk4IDEzLjU4Mi0zMC4xOCAzMC4xOC0zMC4xOGg4My45NTJzOS4yMzYtLjI2MiA5LjIzNi05LjA2NnYtODQuMTI2YzAtMTYuNTk4IDEzLjU4Mi0zMC4xOCAzMC4xOC0zMC4xOGg1MC4wMjRjMTYuNiAwIDMwLjE4MiAxMy41ODIgMzAuMTgyIDMwLjE4djg0LjYzYzAgOC4xMTQgOS4yNzIgOC41NjIgOS4yNzIgOC41NjJoODMuOTIyYzE2LjYgMCAzMC4xOCAxMy41ODIgMzAuMTggMzAuMTh2NTAuMDI0Yy0uMDAyIDE2LjU5NC0xMy41ODQgMzAuMTc2LTMwLjE4MiAzMC4xNzYiIGdseXBoLW5hbWU9Inpvb20tbWFzIiB1bmljb2RlPSLupaMiLz48Z2x5cGggZD0iTTg2OS4yNjIgMjY3LjY2YzE0OC4yMSAxNDguMjE2IDE0OC4yMSAzODkuMzg0IDAgNTM3LjU5OC0xNDguMjE0IDE0OC4yMTYtMzg5LjM4IDE0OC4yMTYtNTM3LjU5OCAwLTEyNS43MzgtMTI1Ljc0Mi0xNDQuNzgyLTMxMi43NS01Ny4xOC00NTguNzggMCAwIDYuMjk0LTEwLjU1NC0yLjIwNi0xOS4wNTRDMjIzLjc5NCAyNzguOTQyIDc4LjMzNCAxMzMuNDggNzguMzM0IDEzMy40OCAzOS43MzIgOTQuODggMzAuNTQgNDAuOTA0IDY0Ljc3NCA2LjY3TDcwLjY2OC43OEMxMDQuOS0zMy40NTYgMTU4Ljg4LTI0LjI2OCAxOTcuNDggMTQuMzMyTDM5MS4wMTggMjA3Ljg3YzguOTA2IDguOTA0IDE5LjQ2IDIuNjEyIDE5LjQ2IDIuNjEyIDE0Ni4wMjgtODcuNjA0IDMzMy4wNDItNjguNTYyIDQ1OC43ODQgNTcuMTc4bS00NjcuNDE2IDcwLjE4NGMtMTA5LjUxNiAxMDkuNTE2LTEwOS41MTQgMjg3LjcwOCAwIDM5Ny4yMjYgMTA5LjUxNiAxMDkuNTE0IDI4Ny43MTYgMTA5LjUxNiAzOTcuMjI0IDAgMTA5LjUxNi0xMDkuNTE0IDEwOS41MTYtMjg3LjcxIDAtMzk3LjIyNi0xMDkuNTEyLTEwOS41MTQtMjg3LjcwOC0xMDkuNTE0LTM5Ny4yMjQgMG0zNzkuMjIyIDE3My4xNTJjMC0xNi41OTgtMTMuNTgtMzAuMTgtMzAuMTgtMzAuMThINDU0LjEyYy0xNi41OTggMC0zMC4xOCAxMy41ODItMzAuMTggMzAuMTh2NTAuMDI0YzAgMTYuNTk4IDEzLjU4MiAzMC4xOCAzMC4xOCAzMC4xOGgyOTYuNzY4YzE2LjYgMCAzMC4xOC0xMy41ODIgMzAuMTgtMzAuMTh6IiBnbHlwaC1uYW1lPSJ6b29tLW1lbm9zIiB1bmljb2RlPSLupaQiLz48Z2x5cGggZD0iTTcyNy4wNTUgODM2LjgxNGMtNjYuMDc5IDY2LjE1Mi0xNTcuNzU4IDEwNy4yNzMtMjU4LjUzMiAxMDcuMjczaC0uMTQzYy0xMDAuNzc0IDAtMTkyLjQ1Mi00MS4xMjEtMjU4LjUzMi0xMDcuMjczLTY2LjE1Mi02Ni4wNzctMTA3LjI3My0xNTcuNzU4LTEwNy4yNzMtMjU4LjUzdi0uMDY5Yy4wMTktMTMuNzExIDEuMjQxLTI3LjU3NiAzLjQ3My00MS41OTggMi4yMzgtMTQuMDA0IDUuNDYzLTI4LjE1OCA5LjQ4LTQyLjQ2MiA3LjA1NC0yNC45NjYgMTYuNTU3LTUwLjQxOSAyNy44OTUtNzUuOTMyIDExLjMxOS0yNS41MTEgMjQuNDM3LTUxLjExIDM4Ljc1Ni03Ni4zOTkgMjEuNTItMzcuODgzIDQ1LjY5OC03NC45OTMgNzAuNjY0LTEwOS41MTYgMjQuOTY2LTM0LjUyMSA1MC43MDMtNjYuNDY5IDc1LjMzMS05NC4wMDkgMTIuMzUyLTEzLjc5MiAyNC4zODUtMjYuNDQ5IDM2LjA0Mi0zNy44NDIgMTEuNjQtMTEuMzk0IDIyLjg3OS0yMS41MTIgMzMuNjU4LTMwLjE4NSAxMC44MzMtOC42OTEgMjEuMTU4LTE1Ljk3NyAzMS45MTItMjEuODEzIDUuNDIxLTIuODkxIDEwLjk3OC01LjQ1NyAxNy4xNzYtNy41MDkgNi4xOTUtMi4wMDEgMTMuMDk5LTMuNTk5IDIxLjQ4Ni0zLjYzOGE2OS42IDY5LjYgMCAwIDEgMTYuOTUzIDIuMjY2YzUuMDEyIDEuMzMzIDkuNSAzLjExNiAxMy44MzUgNC45OTMgNy45NzggMy42MzggMTUuNTI2IDguMDUzIDIzLjA3MSAxMy4xODkgNy41MjcgNS4xNDMgMTUuMDU3IDExLjAxOSAyMi45MzkgMTcuNjA4IDEzLjY0OSAxMS41MTEgMjguMTA3IDI1LjI1MiA0My4wODEgNDAuODY4IDE0Ljk2OSAxNS41OTYgMzAuNDcgMzMuMDc2IDQ2LjIzOSA1Mi4wNzMgMjMuNTc5IDI4LjQ3NyA0Ny41ODggNjAuMjU5IDcwLjQzNCA5My44NTkgMjIuODY2IDMzLjU5NiA0NC41NjQgNjkuMDIgNjMuNTA1IDEwNC44MDMgOS40NjEgMTcuODg0IDE4LjI0NiAzNS44NjUgMjYuMTEyIDUzLjgxOSA3Ljg4MiAxNy45MjcgMTQuODY3IDM1LjgxNyAyMC42OTggNTMuNTE4IDUuODI3IDE3LjcyMiAxMC41NzYgMzUuMjc0IDEzLjg2MSA1Mi42IDMuMjg1IDE3LjMyMyA1LjEyMyAzNC40NDYgNS4xNjIgNTEuMzAzdi4wNjljLjAwNCAxMDAuNzc2LTQxLjEyOSAxOTIuNDU4LTEwNy4yODEgMjU4LjUzNHpNNDY4LjQ0OCAzNTAuNDI4Yy0xMzguMTE5IDAtMjUwLjA5MyAxMTEuOTctMjUwLjA5MyAyNTAuMDk0IDAgMTM4LjEyMSAxMTEuOTcgMjUwLjA5MyAyNTAuMDkzIDI1MC4wOTMgMTM4LjEyNSAwIDI1MC4wOTQtMTExLjk2OCAyNTAuMDk0LTI1MC4wOTMtLjAwMi0xMzguMTI1LTExMS45Ny0yNTAuMDk0LTI1MC4wOTQtMjUwLjA5NCIgZ2x5cGgtbmFtZT0icGluNSIgaG9yaXotYWR2LXg9IjkzOSIgdW5pY29kZT0i7qWlIi8+PGdseXBoIGQ9Ik03MjcuMDUzIDgzNi44MTZjLTY2LjA3NyA2Ni4xNTItMTU3Ljc1OCAxMDcuMjc3LTI1OC41MjkgMTA3LjI3N2gtLjE0NmMtMTAwLjc3MSAwLTE5Mi40NS00MS4xMjUtMjU4LjUyOS0xMDcuMjc3LTY2LjE1Mi02Ni4wNzctMTA3LjI3Ny0xNTcuNzU4LTEwNy4yNzctMjU4LjUyN3YtLjA3M2MuMDE5LTEzLjcwNyAxLjIzOS0yNy41NzYgMy40NzMtNDEuNTk4IDIuMjM2LTE0LjAwNCA1LjQ2My0yOC4xNTggOS40OC00Mi40NjIgNy4wNTYtMjQuOTY2IDE2LjU1Ny01MC40MTkgMjcuODk1LTc1LjkzMiAxMS4zMTktMjUuNTExIDI0LjQzOS01MS4xMTIgMzguNzYtNzYuMzk5IDIxLjUxNi0zNy44ODMgNDUuNjk0LTc0Ljk5MyA3MC42NjEtMTA5LjUxNiAyNC45NjYtMzQuNTIxIDUwLjcwMy02Ni40NjkgNzUuMzMxLTk0LjAwOSAxMi4zNTItMTMuNzkzIDI0LjM4NS0yNi40NDkgMzYuMDQyLTM3Ljg0MiAxMS42NC0xMS4zOTQgMjIuODgxLTIxLjUxMiAzMy42NTgtMzAuMTg1IDEwLjgzMy04LjY5MSAyMS4xNTgtMTUuOTc3IDMxLjkxMi0yMS44MTMgNS40MjMtMi44OTEgMTAuOTgtNS40NTkgMTcuMTc2LTcuNTA5IDYuMTk1LTIuMDA1IDEzLjEwMS0zLjYgMjEuNDktMy42MzggNi40MDEuMDc1IDExLjkyLjk1OSAxNi45NTEgMi4yNjYgNS4wMTIgMS4zMzMgOS40OTkgMy4xMTYgMTMuODM1IDQuOTkzIDcuOTc4IDMuNjM4IDE1LjUyMiA4LjA1MyAyMy4wNzEgMTMuMTkzIDcuNTI3IDUuMTQzIDE1LjA1NSAxMS4wMTkgMjIuOTM5IDE3LjYwOCAxMy42NDcgMTEuNTExIDI4LjEwNSAyNS4yNTIgNDMuMDgxIDQwLjg2OCAxNC45NjUgMTUuNTk3IDMwLjQ2OCAzMy4wNzYgNDYuMjM1IDUyLjA3MyAyMy41ODEgMjguNDc3IDQ3LjU5IDYwLjI1OSA3MC40MzQgOTMuODU5IDIyLjg2NiAzMy42IDQ0LjU2NCA2OS4wMjIgNjMuNTA1IDEwNC44MDMgOS40NjEgMTcuODg4IDE4LjI0NiAzNS44NjkgMjYuMTEyIDUzLjgxOSA3Ljg4MiAxNy45MjcgMTQuODY3IDM1LjgxNyAyMC43MDIgNTMuNTE4IDUuODIzIDE3LjcyMiAxMC41NzIgMzUuMjc0IDEzLjg1NyA1Mi42IDMuMjg1IDE3LjMyNCA1LjEyMyAzNC40NDYgNS4xNjIgNTEuMzAzdi4wNzNjLjAwNCAxMDAuNzY5LTQxLjEyNyAxOTIuNDUtMTA3LjI3OSAyNTguNTI3em0tMjU4LjYwNS00ODYuMzljLTEzOC4xMjMgMC0yNTAuMDk0IDExMS45Ny0yNTAuMDk0IDI1MC4wOTRzMTExLjk3IDI1MC4wOTQgMjUwLjA5NCAyNTAuMDk0IDI1MC4wOTQtMTExLjk3IDI1MC4wOTQtMjUwLjA5NGMwLTEzOC4xMjUtMTExLjk3LTI1MC4wOTQtMjUwLjA5NC0yNTAuMDk0TTQ4OC4wNTMgNzUzLjRjLTUuNDY4IDUuMDM2LTEyLjYyNiA4LjI4Ni0yMC42NDkgOC4yNzEtOC4wMTIgMC0xNS4xODMtMy4yMzgtMjAuNjQ5LTguMjcxLTYuMDg2LTUuNTkyLTEwLjAzNC0xMy40NzYtMTAuMDE4LTIyLjM5N2wuMDEzLTk5LjQzNi05OS40MzYuMDEzYy04LjkzNSAwLTE2Ljc4OC0zLjk1LTIyLjM5Ny0xMC4wMi01LjAzNi01LjQ2Ni04LjI4NC0xMi42MjYtOC4yNzEtMjAuNjQ3IDAtOC4wMTYgMy4yMzgtMTUuMTgzIDguMjcxLTIwLjY0OSA1LjU5Mi02LjA4OCAxMy40NjEtMTAuMDE4IDIyLjM5Ny0xMC4wMThsOTkuNDM2LS4wMTl2LTk5LjQxOWMwLTguOTM3IDMuOTUtMTYuNzg0IDEwLjAyLTIyLjM5NyA1LjQ2NC01LjAzNSAxMi42MjgtOC4yODggMjAuNjQ3LTguMjcxIDguMDE0IDAgMTUuMTgzIDMuMjQ0IDIwLjY0OSA4LjI3MSA2LjA4OCA1LjU5MiAxMC4wMiAxMy40NTkgMTAuMDIgMjIuMzk3djk5LjQxOWg5OS40NTFjOC45MzcgMCAxNi43ODYgMy45NSAyMi4zOTcgMTAuMDI0IDUuMDM2IDUuNDYzIDguMjg0IDEyLjYyNCA4LjI3MSAyMC42NDkgMCA4LjAxLTMuMjQgMTUuMTgxLTguMjcxIDIwLjY0Ny01LjU5MiA2LjA4NC0xMy40NTkgMTAuMDItMjIuMzk3IDEwLjAyaC05OS40NTF2OTkuNDIxYy4wMDIgOC45MzUtMy45MzMgMTYuODAzLTEwLjAzNCAyMi40MTJ6IiBnbHlwaC1uYW1lPSJwaW4tbnVldm8yIiBob3Jpei1hZHYteD0iOTM5IiB1bmljb2RlPSLupaYiLz48Z2x5cGggZD0iTTcyNy4wNTUgODM2LjgxNGMtNjYuMDc5IDY2LjE1Mi0xNTcuNzU4IDEwNy4yNzUtMjU4LjUzIDEwNy4yNzVoLS4xNDRjLTEwMC43NzIgMC0xOTIuNDUyLTQxLjEyMy0yNTguNTMtMTA3LjI3NS02Ni4xNTItNjYuMDc3LTEwNy4yNzUtMTU3Ljc1OC0xMDcuMjc1LTI1OC41Mjl2LS4wNzFjLjAxOS0xMy43MDkgMS4yNDEtMjcuNTc2IDMuNDczLTQxLjU5OCAyLjIzOC0xNC4wMDQgNS40NjMtMjguMTU4IDkuNDgtNDIuNDYyIDcuMDU0LTI0Ljk2NiAxNi41NTctNTAuNDE5IDI3Ljg5NS03NS45MzIgMTEuMzE5LTI1LjUxMSAyNC40MzctNTEuMTEgMzguNzU4LTc2LjM5OSAyMS41MTgtMzcuODgzIDQ1LjY5Ni03NC45OTMgNzAuNjYzLTEwOS41MTYgMjQuOTY2LTM0LjUyMSA1MC43MDMtNjYuNDY5IDc1LjMzMS05NC4wMDkgMTIuMzUyLTEzLjc5MiAyNC4zODUtMjYuNDQ5IDM2LjA0Mi0zNy44NDIgMTEuNjQtMTEuMzk0IDIyLjg4MS0yMS41MTIgMzMuNjU4LTMwLjE4NSAxMC44MzMtOC42OTEgMjEuMTU4LTE1Ljk3NyAzMS45MTItMjEuODEzIDUuNDIxLTIuODkxIDEwLjk3OC01LjQ1NyAxNy4xNzYtNy41MDkgNi4xOTUtMi4wMDMgMTMuMDk5LTMuNTk5IDIxLjQ4OC0zLjYzOCA2LjQwMS4wNzUgMTEuOTIuOTU5IDE2Ljk1MyAyLjI2NiA1LjAxMiAxLjMzMyA5LjQ5OSAzLjExNiAxMy44MzUgNC45OTMgNy45NzggMy42MzggMTUuNTI0IDguMDUzIDIzLjA3MSAxMy4xOTEgNy41MjcgNS4xNDMgMTUuMDU3IDExLjAxOSAyMi45MzkgMTcuNjA4IDEzLjY0NyAxMS41MDkgMjguMTA1IDI1LjI1MiA0My4wODEgNDAuODY4IDE0Ljk2NyAxNS41OTYgMzAuNDcgMzMuMDc2IDQ2LjIzNyA1Mi4wNzMgMjMuNTc5IDI4LjQ3NyA0Ny41ODggNjAuMjU5IDcwLjQzNCA5My44NTkgMjIuODY2IDMzLjU5OCA0NC41NjQgNjkuMDIgNjMuNTA1IDEwNC44MDMgOS40NjEgMTcuODg2IDE4LjI0NiAzNS44NjcgMjYuMTEyIDUzLjgxOSA3Ljg4MiAxNy45MjcgMTQuODY3IDM1LjgxNyAyMC43IDUzLjUxOCA1LjgyNSAxNy43MjIgMTAuNTc0IDM1LjI3NCAxMy44NTkgNTIuNiAzLjI4NSAxNy4zMjMgNS4xMjMgMzQuNDQ2IDUuMTYyIDUxLjMwM3YuMDcxYy4wMDIgMTAwLjc3Mi00MS4xMjkgMTkyLjQ1NC0xMDcuMjgxIDI1OC41M3pNNDY4LjQ0OCAzNTAuNDI4Yy0xMzguMTIxIDAtMjUwLjA5MyAxMTEuOTctMjUwLjA5MyAyNTAuMDk0IDAgMTM4LjEyMSAxMTEuOTcgMjUwLjA5MyAyNTAuMDkzIDI1MC4wOTNzMjUwLjA5NC0xMTEuOTcgMjUwLjA5NC0yNTAuMDkzYy0uMDAyLTEzOC4xMjUtMTExLjk3Mi0yNTAuMDk0LTI1MC4wOTQtMjUwLjA5NG0xNTQuMzU2IDI1MC4wOTNjMC04NS4yNDktNjkuMTA4LTE1NC4zNTctMTU0LjM1Ny0xNTQuMzU3UzMxNC4wOSA1MTUuMjcyIDMxNC4wOSA2MDAuNTIxczY5LjEwOCAxNTQuMzU3IDE1NC4zNTcgMTU0LjM1NyAxNTQuMzU3LTY5LjEwOCAxNTQuMzU3LTE1NC4zNTciIGdseXBoLW5hbWU9InBpbi1zZWxlY2Npb25hZG8iIGhvcml6LWFkdi14PSI5MzkiIHVuaWNvZGU9Iu6lpyIvPjxnbHlwaCBkPSJNMTU2LjMzNSA4MTYuMzAyQy00Ny4wNzQgNjE5Ljg3Mi01Mi43MyAyOTUuNzQyIDE0My42OTggOTIuMzM1czUyMC41Ni0yMDkuMDY1IDcyMy45NjctMTIuNjM3YzIwMy40MDkgMTk2LjQzIDIwOS4wNjUgNTIwLjU2IDEyLjYzNyA3MjMuOTY3cy01MjAuNTU4IDIwOS4wNjYtNzIzLjk2NyAxMi42MzdNODAwLjc5OSAxNDguOTRDNjM1LjY0NC0xMC41NDkgMzcyLjQyOS01Ljk1NCAyMTIuOTQxIDE1OS4yMDFjLTE1OS40OSAxNjUuMTU3LTE1NC44OTYgNDI4LjM3MSAxMC4yNiA1ODcuODYgMTY1LjE1NyAxNTkuNDkgNDI4LjM3MSAxNTQuODk2IDU4Ny44NjEtMTAuMjYxczE1NC44OTQtNDI4LjM3LTEwLjI2My01ODcuODZtLTI5NC43MTUtMzguMzA3czEyNy4yIDI1OC41OCAxMjguNTgyIDMzNS4yMjZjMS4zMzkgNzYuNjkxLTExNi44MDUgMzM5LjUxMi0xMTYuODA1IDMzOS41MTJzLTEyNy4yLTI1OC41OC0xMjguNTM5LTMzNS4yMjkgMTE2Ljc2MS0zMzkuNTA4IDExNi43NjEtMzM5LjUwOHptLTQ0LjI3MSAzMjQuMTkxIDk5Ljg3Ni0xLjc0M2MyNC45Ny0uNDM3LTUyLjk5LTE3My45MTEtNTIuOTktMTczLjkxMXMtNzEuODU1IDE3Ni4wOTItNDYuODg2IDE3NS42NTV6IiBnbHlwaC1uYW1lPSJicnVqdWxhLW5vcnRlIiB1bmljb2RlPSLupagiLz48L2ZvbnQ+PC9kZWZzPjwvc3ZnPg==#g-cartografia) format("svg")}[class*=" g-cartografia-"],[class^=g-cartografia-]{font-family:g-cartografia!important;speak:none;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.g-cartografia-alerta:before{content:"\e900"}.g-cartografia-ayuda:before{content:"\e901"}.g-cartografia-bandera:before{content:"\e902"}.g-cartografia-brujula:before{content:"\e903"}.g-cartografia-cancelar:before{content:"\e904"}.g-cartografia-cancelar2:before{content:"\e905"}.g-cartografia-capas:before{content:"\e906"}.g-cartografia-capas2:before{content:"\e907"}.g-cartografia-check:before{content:"\e908"}.g-cartografia-check2:before{content:"\e909"}.g-cartografia-check3:before{content:"\e90a"}.g-cartografia-check4:before{content:"\e90b"}.g-cartografia-check5:before{content:"\e90c"}.g-cartografia-comentarios:before{content:"\e90d"}.g-cartografia-descargar:before{content:"\e90e"}.g-cartografia-editar:before{content:"\e90f"}.g-cartografia-editar2:before{content:"\e910"}.g-cartografia-escala:before{content:"\e911"}.g-cartografia-escala2:before{content:"\e912"}.g-cartografia-escala3:before{content:"\e913"}.g-cartografia-flecha:before{content:"\e914"}.g-cartografia-flecha-abajo:before{content:"\e915"}.g-cartografia-flecha-abajo2:before{content:"\e916"}.g-cartografia-flecha-arriba:before{content:"\e917"}.g-cartografia-flecha-arriba2:before{content:"\e918"}.g-cartografia-flecha-derecha:before{content:"\e919"}.g-cartografia-flecha-derecha2:before{content:"\e91a"}.g-cartografia-flecha-derecha3:before{content:"\e91b"}.g-cartografia-flecha-deshacer:before{content:"\e91c"}.g-cartografia-flecha-izquierda:before{content:"\e91d"}.g-cartografia-flecha-izquierda2:before{content:"\e91e"}.g-cartografia-flecha-izquierda3:before{content:"\e91f"}.g-cartografia-flecha-link:before{content:"\e920"}.g-cartografia-flechas-mover:before{content:"\e921"}.g-cartografia-gps:before{content:"\e922"}.g-cartografia-gps2:before{content:"\e923"}.g-cartografia-gps3:before{content:"\e924"}.g-cartografia-gps4:before{content:"\e925"}.g-cartografia-guardar:before{content:"\e926"}.g-cartografia-herramienta:before{content:"\e927"}.g-cartografia-impresora:before{content:"\e928"}.g-cartografia-info:before{content:"\e929"}.g-cartografia-linea:before{content:"\e92a"}.g-cartografia-lineas:before{content:"\e92b"}.g-cartografia-lista:before{content:"\e92c"}.g-cartografia-localizacion:before{content:"\e92d"}.g-cartografia-localizacion2:before{content:"\e92e"}.g-cartografia-localizacion3:before{content:"\e92f"}.g-cartografia-localizacion4:before{content:"\e930"}.g-cartografia-mano:before{content:"\e931"}.g-cartografia-mano2:before{content:"\e932"}.g-cartografia-mapa:before{content:"\e933"}.g-cartografia-mas:before{content:"\e934"}.g-cartografia-mas2:before{content:"\e935"}.g-cartografia-medir-area:before{content:"\e936"}.g-cartografia-medir-linea:before{content:"\e937"}.g-cartografia-menos:before{content:"\e938"}.g-cartografia-menos2:before{content:"\e939"}.g-cartografia-menu:before{content:"\e93a"}.g-cartografia-mundo:before{content:"\e93b"}.g-cartografia-mundo2:before{content:"\e93c"}.g-cartografia-opciones:before{content:"\e93d"}.g-cartografia-papelera:before{content:"\e93e"}.g-cartografia-pin:before{content:"\e93f"}.g-cartografia-pin-nuevo:before{content:"\e940"}.g-cartografia-pin2:before{content:"\e941"}.g-cartografia-pin3:before{content:"\e942"}.g-cartografia-pin4:before{content:"\e943"}.g-cartografia-poligono:before{content:"\e944"}.g-cartografia-posicion:before{content:"\e945"}.g-cartografia-posicion2:before{content:"\e946"}.g-cartografia-posicion3:before{content:"\e947"}.g-cartografia-posicion4:before{content:"\e948"}.g-cartografia-posicion5:before{content:"\e949"}.g-cartografia-posicion6:before{content:"\e94a"}.g-cartografia-posicion7:before{content:"\e94b"}.g-cartografia-prismaticos:before{content:"\e94c"}.g-cartografia-regla:before{content:"\e94d"}.g-cartografia-reglas:before{content:"\e94e"}.g-cartografia-ruta:before{content:"\e94f"}.g-cartografia-spinner:before{content:"\e950"}.g-cartografia-spinner2 .path1:before{color:#6b6b6b;content:"\e951"}.g-cartografia-spinner2 .path2:before{color:#6b6b6b;content:"\e952";margin-left:-1em;opacity:.1}.g-cartografia-spinner2 .path3:before{color:#6b6b6b;content:"\e953";margin-left:-1em;opacity:.2}.g-cartografia-spinner2 .path4:before{color:#6b6b6b;content:"\e954";margin-left:-1em;opacity:.3}.g-cartografia-spinner2 .path5:before{color:#6b6b6b;content:"\e955";margin-left:-1em;opacity:.4}.g-cartografia-spinner2 .path6:before{color:#6b6b6b;content:"\e956";margin-left:-1em;opacity:.5}.g-cartografia-spinner2 .path7:before{color:#6b6b6b;content:"\e957";margin-left:-1em;opacity:.6}.g-cartografia-spinner2 .path8:before{color:#6b6b6b;content:"\e958";margin-left:-1em;opacity:.7}.g-cartografia-spinner2 .path9:before{color:#6b6b6b;content:"\e959";margin-left:-1em;opacity:.8}.g-cartografia-spinner2 .path10:before{color:#6b6b6b;content:"\e95a";margin-left:-1em;opacity:.9}.g-cartografia-subir:before{content:"\e95b"}.g-cartografia-tamano:before{content:"\e95c"}.g-cartografia-temperatura:before{content:"\e95d"}.g-cartografia-texto:before{content:"\e95e"}.g-cartografia-usuario:before{content:"\e95f"}.g-cartografia-usuario2:before{content:"\e960"}.g-cartografia-zoom:before{content:"\e961"}.g-cartografia-zoom-extension:before{content:"\e962"}.g-cartografia-zoom-mas:before{content:"\e963"}.g-cartografia-zoom-menos:before{content:"\e964"}.g-cartografia-pin5:before{content:"\e965"}.g-cartografia-pin-nuevo2:before{content:"\e966"}.g-cartografia-pin-seleccionado:before{content:"\e967"}.g-cartografia-brujula-norte:before{content:"\e968"}.m-position-top{top:0}.m-position-bottom{bottom:0}.m-position-right{right:0}.m-position-left{left:0}.m-mapea-container{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAABlBMVEUAAAD///+l2Z/dAAAAAnRSTlMICLCRzwIAAAAVSURBVBjTY2CEAwYEGNKCw8QbCEEApbQAyTWv+7EAAAAASUVORK5CYII=);color:#6c6c6c;font-family:Muli,"sans-serif"!important;font-size:13px;height:100%;letter-spacing:normal;text-indent:0;text-shadow:none;text-transform:none;width:100%;word-spacing:normal;-webkit-rtl-ordering:logical;-webkit-user-select:text;-moz-user-select:text;user-select:text;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;font-smoothing:antialiased}.m-control{background-color:hsla(0,0%,100%,.4);border-radius:4px;margin:0;overflow-y:hidden;padding:2px;position:absolute;z-index:990}.m-control>button{color:#404040}div.m-control button[class*=" g-cartografia-"],div.m-control button[class^=g-cartografia-]{background:none;border:none;color:#404040;cursor:pointer;font-size:28px;font-size:24px;margin:0;opacity:.75;padding:8px;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s}.ol-overviewmap>button{opacity:.75;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:hover,.ol-overviewmap>button:hover,div.m-control button[class*=" g-cartografia-"]:hover,div.m-control button[class^=g-cartografia-]:hover,div.m-control.activated button[class^=g-cartografia-]{opacity:1!important}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus,div.m-control button[class*=" g-cartografia-"]:focus,div.m-control button[class^=g-cartografia-]:focus{outline:none}.m-clear-btn,.m-help-btn{font-size:18px!important;opacity:.4!important}.m-search-btn{order:3;padding-right:14px}.m-help-btn{order:2}.m-clear-btn{order:1}.m-results-btn{display:none}.m-label-content{white-space:nowrap}.m-mapea-container input[type=text],.m-mapea-container textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:1px solid rgba(0,0,0,.5);border-radius:4px;color:#6c6c6c;cursor:auto;font-family:Muli,"sans-serif"!important;font-size:13px;margin:5px;padding:5px}.m-mapea-container input[type=text]:focus{outline:none}@media only screen and (max-width:768px){.m-wordbreak{white-space:none;word-break:break-all}}button::-moz-focus-inner{border:0}@-moz-keyframes mloading{to{-moz-transform:rotate(1turn)}}@-webkit-keyframes mloading{to{-webkit-transform:rotate(1turn)}}@keyframes mloading{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.m-area.m-top.m-right,.m-areas,.ol-overlaycontainer-stopevent,.ol-viewport{height:inherit!important}.m-panel.m-layerswitcher.opened{height:calc(100% - 30px)}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{height:100%!important;max-height:100%}.m-attribution{left:3px!important;right:inherit!important;z-index:999999}@media print{.ol-control{display:none}}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{opacity:1;-webkit-transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s;transition:max-width .75s ease 0s,max-height .5s ease 0s,opacity 1s ease .2s}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{max-height:0;max-width:0;opacity:0;-webkit-transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s;transition:max-width .5s ease 0s,max-height 2s ease 0s,opacity .3s ease 0s}.m-location-container.m-locating>button#m-location-button:before{-webkit-animation:mloading 1s linear infinite;-moz-animation:mloading 1s linear infinite}.ol-box{border:2px solid blue;border-radius:2px;box-sizing:border-box}.ol-mouse-position{position:absolute;right:8px;top:8px}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;margin:1px;text-align:center;transition:all .25s;will-change:contents,width}.ol-scale-bar{bottom:8px;left:8px;position:absolute}.ol-scale-step-marker{background-color:#000;float:right;height:15px;width:1px;z-Index:10}.ol-scale-step-text{bottom:-5px;font-size:12px;z-Index:11}.ol-scale-step-text,.ol-scale-text{color:#000;position:absolute;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-text{bottom:25px;font-size:14px;text-align:center}.ol-scale-singlebar{height:10px;position:relative;z-Index:9;border:1px solid #000}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ol-overlaycontainer,.ol-overlaycontainer-stopevent{pointer-events:none}.ol-overlaycontainer-stopevent>*,.ol-overlaycontainer>*{pointer-events:auto}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:hsla(0,0%,100%,.4);border-radius:4px;padding:2px;position:absolute}.ol-control:hover{background-color:hsla(0,0%,100%,.6)}.ol-zoom{left:.5em;top:.5em}.ol-rotate{right:.5em;top:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;transition:opacity .25s linear,visibility 0s linear .25s;visibility:hidden}.ol-zoom-extent{left:.5em;top:4.643em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{background-color:rgba(0,60,136,.5);border:none;border-radius:2px;color:#fff;display:block;font-size:1.14em;font-weight:700;height:1.375em;line-height:.4em;margin:1px;padding:0;text-align:center;text-decoration:none;width:1.375em}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-control button span{pointer-events:none}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-size:1.2em;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{background-color:rgba(0,60,136,.7);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{bottom:.5em;max-width:calc(100% - 1.3em);right:.5em;text-align:right}.ol-attribution ul{color:#000;margin:0;padding:0 .5em;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;left:.5em;top:4.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:hsla(0,0%,100%,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-viewport>div.ol-unselectable>div img{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ol-box{background-color:rgba(51,124,235,.33)!important;border:1px solid #337ceb!important}.ol-zoom>button{background-color:#fff!important;box-shadow:0 1px 3px 0 #cacaca;color:#404040!important;cursor:pointer;font-size:18px!important;height:30px!important;margin:0!important;opacity:.75;padding:0;text-align:center;width:30px!important}.ol-zoom>button:focus,.ol-zoom>button:hover{background-color:transparent;outline:none!important}.ol-zoom>button:hover{opacity:1}.ol-zoomslider{height:198px!important;overflow:auto!important}.ol-zoomslider>button.ol-zoomslider-thumb{background-color:#f0f0f0;border:1px solid rgba(64,64,64,.4);border-radius:20px;height:20px!important;margin:-5px;padding:0;width:20px!important}@-moz-document url-prefix(){.ol-zoomslider>button.ol-zoomslider-thumb{position:relative!important}}.ol-scale-line .ol-scale-line-inner{border-color:#404040;color:#404040}@media only screen and (max-width:768px){.ol-scale-line-up{margin-bottom:30px;margin-left:-15px}}.ol-overviewmap{background-color:#fff!important;border-radius:4px!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;display:block;display:relative!important;margin-left:10px!important;order:1!important;transition:border-radius .33s ease 0s}.ol-overviewmap:not(.ol-collapsed) button{background-color:#fff!important;border-radius:15px;font-size:6px;left:auto!important;padding:0 2px 2px;position:static!important;position:absolute!important;right:0!important;right:4px}.ol-overviewmap:not(.ol-collapsed) .ol-overviewmap-map{margin:4px!important}.ol-overviewmap:not(.ol-collapsed)>button:before{font-size:11px!important}.ol-overviewmap.ol-collapsed{border-radius:20px!important}.ol-overviewmap .ol-overviewmap-map{border:0!important;transition:width .33s ease 0s,height .33s ease 0s}.ol-overviewmap.ol-collapsed .ol-overviewmap-map{display:inline-block!important;height:0;margin:0;padding:0;width:0}.ol-overviewmap>button{bottom:4px!important}.ol-overviewmap.ol-collapsed>button,.ol-overviewmap>button{background-color:transparent!important;background:none;border:none;border-radius:20px;color:#404040!important;cursor:pointer;font-family:g-cartografia!important;font-size:15px!important;height:20px!important;margin:0!important;opacity:.75!important;padding:0;width:20px!important;speak:none;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.ol-overviewmap.ol-collapsed>button:hover{opacity:1}.ol-overviewmap.ol-collapsed>button{height:40px!important;width:40px!important}.ol-overviewmap>button:active,.ol-overviewmap>button:focus,.ol-overviewmap>button:hover{background-color:transparent;outline:none}.ol-overviewmap>button>span{display:none}@media only screen and (max-width:768px){.ol-overviewmap{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container,.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{border-radius:20px!important}.m-panel.m-map-info>div.m-panel-controls>div.ol-overviewmap{order:1}.m-wmcselector-container{bottom:8px;display:block;margin:0;padding:0;right:60px}.m-wmcselector-container:before{font-family:g-cartografia!important}.m-wmcselector-select{-webkit-appearance:none;background-color:#fefefe;border:none;color:#6c6c6c;font-weight:400;margin:0;outline:none;text-decoration:none}.m-layerswitcher-container{overflow-y:auto!important;position:absolute;right:.5em;text-align:left;top:.5em;width:100%}@media only screen and (min-width:769px){.m-layerswitcher-container{min-width:440px!important}}.m-layerswitcher-container .m-layersiwtcher-panel{background-color:#f4f4f4;margin:0;max-height:100%;right:0;text-align:left;top:0}.m-layerswitcher-container li.group{padding-bottom:8px;padding-top:5px;text-align:center}.m-layerswitcher-container li.group>div{border-bottom:1px solid rgba(0,0,0,.08);color:#404040;font-family:Muli,"sans-serif"!important;font-size:15px;line-height:normal;line-height:40px;margin:0;text-align:center}.m-layerswitcher-container li div{font-family:sans-serif;font-size:.8em;font-size:15px;line-height:1.4em;line-height:40px;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.m-layerswitcher-container ul>li{overflow:hidden}.m-layerswitcher-container ul>li.group>ul>li{background-color:#fff;margin:10px}.m-layerswitcher-container li span.m-check{color:#6abe47;margin:0 1% 0 0}.m-layerswitcher-container li input.m-layerswitcher-transparency{margin-right:3%;width:74%}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{margin-top:16px;width:81%}.m-layerswitcher-container .tools span{display:block;margin-left:143px;margin-top:-12px}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-layerswitcher-container li input.m-layerswitcher-transparency{display:block;margin-top:1px}.m-layerswitcher-container .tools span{display:block;float:right;margin-right:13%;margin-top:-52px}}.m-layerswitcher-container li span.m-layerswitcher-remove{color:rgba(0,0,0,.53);cursor:pointer;font-size:11px}@media only screen and (max-width:768px){.m-layerswitcher-container li span.m-check{font-size:2em;margin-right:5%}.m-layerswitcher-container li input.m-layerswitcher-transparency{display:none;width:77%}@-moz-document url-prefix(){.m-layerswitcher-container li input.m-layerswitcher-transparency{width:66%}}.m-layerswitcher-container li span.m-layerswitcher-remove{font-size:13px}.m-layerswitcher-container li.visible input.m-layerswitcher-transparency{display:initial}.m-layerswitcher-container li.visible span.m-layerswitcher-remove{font-size:11px}}.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{border-bottom:none;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:0 5px;text-align:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.m-layersiwtcher-panel li.visible>div.tools{height:auto;width:40%}.m-layersiwtcher-panel div.tools{float:right;text-align:left}.m-layersiwtcher-panel li.visible>div.layer{margin-bottom:4px}.m-layersiwtcher-panel div.layer{float:left;margin-bottom:4px;width:55%}@media only screen and (max-width:768px){.m-layersiwtcher-panel li>div.layer,.m-layersiwtcher-panel li>div.layer-base{padding-right:0;width:90%}}.m-layersiwtcher-panel li.visible>div.layer-base{border:0;margin:0}.m-layersiwtcher-panel li>div.legend{height:0;text-align:left;width:100%}.m-layersiwtcher-panel li.visible>div.legend{height:auto;margin:0 auto;width:90%}@media only screen and (max-width:768px){.m-layersiwtcher-panel li.visible>div.tools{float:none;width:90%}.m-layersiwtcher-panel div.tools{float:right;margin:0 auto;text-align:left;width:calc(10% - 5px)}}.m-layerswitcher-container li.disabled span{color:#666}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{color:#fda823;height:40px}.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{background-color:#fda823;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);color:#fff;left:-40px;position:absolute;z-index:999999}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher>button.m-panel-btn{background-color:transparent;box-shadow:none;color:#fda823;left:auto;position:absolute;right:0;z-index:999999}}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>button.m-panel-btn{box-shadow:none;color:#fda823;left:0;position:inherit}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed>div.m-panel-controls{padding:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{border-top-left-radius:0}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-width:61vw}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-layerswitcher.opened{height:100vh;left:0;margin:0;position:fixed;top:0;width:100vw;z-index:10000}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{max-height:100vh;max-width:100vw;width:100%}}input[type=range].m-layerswitcher-transparency{-webkit-appearance:none;height:8px;width:30%}@media (-ms-high-contrast:active),(-ms-high-contrast:none){input[type=range].m-layerswitcher-transparency{height:auto}}input[type=range].m-layerswitcher-transparency:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{background:rgba(0,0,0,.31);border-radius:12px;cursor:pointer;height:2px;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;background-color:#fda823;border-radius:15px;cursor:pointer;height:10px;margin-top:-4px;width:10px}@media only screen and (max-width:768px){input[type=range]::-webkit-slider-thumb{height:12px;width:12px}}input[type=range]::-moz-range-track{background:rgba(0,0,0,.31);border-radius:12px;cursor:pointer;height:2px;width:100%}input[type=range]::-moz-range-thumb{-webkit-appearance:none;background:#fff;background-color:#fda823;border:none;cursor:pointer;height:10px;margin-top:20px;width:10px}input[type=range]::-ms-track{background:transparent;border-color:transparent;border-width:12px;color:transparent;cursor:pointer;height:2px;margin-top:-8px;width:100%}input[type=range]::-ms-thumb{-webkit-appearance:none;background-color:#fda823;border:none;border-radius:15px;cursor:pointer;height:10px;width:10px}input[type=range]::-ms-fill-lower,input[type=range]::-ms-fill-upper{background:#ddd;border-radius:10px}input[type=range]:disabled::-moz-range-thumb,input[type=range]:disabled::-ms-thumb,input[type=range]:disabled::-webkit-slider-thumb{background-color:#848484}input[type=range]:disabled{opacity:.5}.m-areas>div.m-area>div.m-panel.m-layerswitcher{background-color:#f4f4f4}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{overflow:hidden;overflow-y:auto;padding-right:0}.m-layersiwtcher-panel>ul{margin:0;padding:0}.m-layerswitcher-container ul.m-base-layers,.m-layerswitcher-container ul.m-groups,.m-layerswitcher-container ul.m-layers,ul.m-groups>li.m-group>ul.m-layers{list-style:none;padding:10px}ul.m-groups>li.m-group{background:#eaeaea}ul.m-base-layers>li.m-layer,ul.m-groups>li.m-group,ul.m-layers>li.m-layer{box-shadow:0 1px 2px rgba(0,0,0,.3)}ul.m-groups>li.m-group>.m-title{cursor:pointer}ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{float:left;width:24px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{display:inline-block;text-align:left;width:59%}@-moz-document url-prefix(){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{display:inline-block;text-align:left;width:59%}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:57%}}}ul.m-groups>li.m-group>.m-title{float:left;width:calc(96% - 48px)}@media only screen and (max-width:768px){ul.m-base-layers>li.m-layer>.m-visible-control,ul.m-groups>li.m-group>.m-visible-control,ul.m-groups>li.m-group>ul.m-layers>li>.m-visible-control,ul.m-layers>li.m-layer>.m-visible-control{width:38px}ul.m-base-layers>li.m-layer>.m-title,ul.m-groups>li.m-group>.m-title,ul.m-groups>li.m-group>ul.m-layers>li>.m-title,ul.m-layers>li.m-layer>.m-title{width:53%}ul.m-groups>li.m-group>.m-title{width:calc(94% - 48px)}}ul.m-groups>li.m-group>.m-collapsed-icon{cursor:pointer;width:24px}ul.m-base-layers,ul.m-layers{background-color:#f9f9f9}ul.m-base-layers>li,ul.m-layers>li{background-color:#fff;border:1px solid rgba(0,0,0,.1);margin-bottom:5px}ul.m-base-layers>li>div.m-legend,ul.m-layers>li>div.m-legend{padding-bottom:12.5px;padding-top:12.5px}ul.m-base-layers>li>div.m-legend{max-width:50vw}ul.m-base-layers>li>div.m-legend>img,ul.m-layers>li>div.m-legend>img{margin:auto!important;max-width:45vw}.m-popup{background-color:#fff;border:1px solid #ccc;border-radius:5px;bottom:12px;box-shadow:2px 2px 8px -4px rgba(0,0,0,.53);left:-50px;position:absolute}.m-popup:after,.m-popup:before{border:solid transparent;content:" ";height:0;pointer-events:none;position:absolute;top:100%;width:0}.m-popup:after{border-top-color:#fff;border-width:10px;left:48px;margin-left:-10px}.m-popup:before{border-top-color:#ccc;border-width:11px;left:48px;margin-left:-11px}.m-popup-content{max-height:70vh;max-width:50vw;min-width:170px;overflow-x:auto;width:auto}.m-popup>div.m-content>div.m-header{cursor:pointer}.m-popup>div.m-content>div.m-header>div.m-subtitle,.m-popup>div.m-content>div.m-header>div.m-title{display:none}.m-popup-closer{color:gray;font-size:100%;padding:0 4px;position:absolute;right:2px;text-decoration:none;top:2px}.m-popup-closer:after{content:"\2716"}.m-popup div.infoResult{min-width:130px}.m-popup div.infoResult p{margin:0;padding:.1em}.m-popup-content h3{margin:.25em 0}.m-popup.marker{margin-bottom:30px}.m-popup .m-content{margin:0;padding:15px 27px 15px 15px}.m-popup .m-footer{display:flex;margin:0;padding:5px 0}.m-popup .m-footer>a>button{background-color:transparent;border:none;color:#337ceb;cursor:pointer;font-size:18px;transition:color .3s}.m-popup .m-footer>a>button:hover{color:#d9534f}.m-popup>div.m-content>div.m-body{max-height:50vh;overflow-x:hidden;overflow-y:auto;width:calc(100% + 15px)}@media only screen and (max-width:768px){.m-popup>div.m-content>div.m-body{margin-left:15px;margin-top:15px;width:calc(100% - 30px)}}.m-popup>div.m-popup-content>div.m-content+div.m-content{margin-top:10px}.m-popup>div.m-popup-content>div.m-content>p.m-title{background-color:#dedede;color:#404040;font-size:15px;font-weight:700;line-height:30px;margin-top:0;text-align:center}.m-popup>div.m-popup-content>div.m-content:last-child{border-bottom:0}.m-popup div.m-editattribute-content button.save{background-color:#fff;border:1px solid rgba(0,0,0,.4);border-radius:4px;color:#404040;cursor:pointer;display:table;font-family:Muli,"sans-serif"!important;font-size:15px;line-height:25px;margin:10px 0;opacity:.75;padding:5px;-webkit-transition:opacity .25s ease 0s;transition:opacity .25s ease 0s;width:97%}.m-popup div.m-editattribute-content button.save:hover{opacity:1}.m-popup.m-has-tabs{border-top-left-radius:0;min-width:150px}.m-popup>div.m-tabs{display:inline-flex;left:-1px;margin:0;position:absolute;top:-29px}.m-popup>div.m-tabs>div.m-tab{background-color:#f2f2f2;border:1px solid #ccc;border-right:0;cursor:pointer;font-size:18px;height:17px;margin:0;padding:5px;text-align:center;width:30px}.m-popup>div.m-tabs>div.m-tab:first-child{border-top-left-radius:4px}.m-popup>div.m-tabs>div.m-tab:last-child{border-right:1px solid #ccc;border-top-right-radius:4px}.m-popup>div.m-tabs>div.m-tab.m-activated{background-color:#fff;border-bottom:0;height:18px}@media only screen and (max-width:768px){.m-popup{border-bottom-left-radius:0;border-bottom-right-radius:0;height:100vh;left:0;margin:0;padding:0;position:fixed;width:100vw;z-index:1500}.m-popup .m-footer{display:flex;padding:15px 5px;position:relative}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{align-items:center;display:flex;flex-flow:column;flex-wrap:nowrap;justify-content:center;padding-top:5px;text-align:center}.m-popup:not(.m-has-tabs)>div.m-content>div.m-header{box-shadow:0 0 7px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);flex-flow:row;height:10vh;justify-content:flex-end;padding-top:0;position:relative}.m-popup.m-has-tabs>div.m-content>div.m-header{height:0;margin:0;padding:0}.m-popup>div.m-tabs{align-items:stretch;flex-flow:row;height:10vh;left:0;margin:0;padding:0;position:relative;top:0;width:100%}.m-popup>div.m-tabs>div.m-tab,.m-popup>div.m-tabs>div.m-tab.m-activated{align-items:center;border-radius:0;border-top:0;display:flex;font-size:24px;height:100%;justify-content:center;margin:0;padding:0;width:100%}.m-popup>div.m-tabs>div.m-tab:first-child{border-left:0}.m-popup>div.m-content{padding:0}.m-popup>div.m-content>div.m-header>div.m-title{display:initial;font-size:1.2em;font-weight:700;width:100%}.m-popup>div.m-content>div.m-header>div.m-subtitle{display:initial;font-size:1em;font-style:italic}.m-popup.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{height:40px;position:absolute;right:0}.m-popup>div.m-content>div.m-body{max-height:100vh;overflow-y:auto}.m-popup.m-collapsed>div.m-tabs,.m-popup:not(.m-has-tabs).m-collapsed>div.m-content>div.m-header{height:7vh}.m-popup.m-collapsed>div.m-content>div.m-body{height:0}.m-popup.m-collapsed{top:92%}.m-popup.m-collapsed.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{display:none}.m-popup.m-default>div.m-tabs,.m-popup:not(.m-has-tabs).m-default>div.m-content>div.m-header{height:7vh}.m-popup.m-default>div.m-content>div.m-body{height:48vh}.m-popup.m-default{top:45vh}.m-popup.m-default.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup.m-full>div.m-tabs,.m-popup:not(.m-has-tabs).m-full>div.m-content>div.m-header{height:7vh}.m-popup.m-full>div.m-content>div.m-body{height:93vh}.m-popup.m-full{top:0}.m-popup>div.m-content>div.m-header>a.m-popup-closer{align-items:center;display:flex;font-family:g-cartografia;font-size:22px;height:100%;justify-content:flex-end;margin:0;padding:0;position:inherit;width:40px}.m-popup>div.m-content>div.m-header>a.m-popup-closer:after{content:"\2716"}.m-popup.m-full.m-has-tabs>div.m-content>div.m-header>a.m-popup-closer{top:7vh}.m-popup:not(.m-no-animation){-webkit-transition:top .5s ease 0s;transition:top .5s ease 0s}.m-popup>div.m-content>div.m-header,.m-popup>div.m-tabs{-webkit-transition:height .5s ease 0s,background-color .5s ease 0s;transition:height .5s ease 0s,background-color .5s ease 0s}.m-popup>div.m-content>div.m-header>div.m-title,.m-popup>div.m-tabs>div.m-tab{-webkit-transition:font-size .5s ease 0s;transition:font-size .5s ease 0s}}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result{border-top:1px solid rgba(0,0,0,.13)}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table{border-top:1px dashed rgba(0,0,0,.09);width:100%}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table:first-child{border:0}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{text-align:right}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key{font-weight:700}.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.key,.m-popup>div.m-content>div.m-body>div.m-geojson-content>div.result>table td.value{white-space:nowrap}@supports (overflow:-webkit-marquee) and (justify-content:inherit){@media only screen and (max-width:768px){.m-popup.m-collapsed{top:87vh}}}.unsetTransform{transform:unset!important}.m-dialog{height:100%;left:0;position:absolute;top:0;width:100%;z-index:99999}.m-dialog>div.m-modal{align-items:center;background-color:hsla(0,0%,100%,.5);display:flex;height:100%;width:100%}.m-dialog>div.m-modal>div.m-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);margin:0 auto;max-height:70vh;max-width:70vw;min-width:30vw;padding:10px;position:relative}.m-dialog div.m-title{font-weight:700;line-height:40px;text-align:center}.m-dialog div.m-message{border-bottom:1px solid rgba(0,0,0,.2);font-size:15px;padding:10px 5px}.m-dialog div.m-button>button{background-color:transparent;border:none;box-shadow:none;cursor:pointer;font-weight:700;margin-top:10px;padding:5px;width:50px}.m-dialog div.m-button{text-align:right}.m-dialog.info div.m-button>button,.m-dialog.info div.m-title{background-color:#337ceb;color:#fff}.m-dialog.error div.m-button>button,.m-dialog.error div.m-title{background-color:#d9534f;color:#fff}.m-dialog.success div.m-button>button,.m-dialog.success div.m-title{background-color:#67af13;color:#fff}.m-location-container{left:600px;top:20px}.m-location-container.m-locating>button#m-location-button:before{animation:mloading 1s linear infinite;left:11px;position:absolute;top:11px}.m-location-container.m-locating>button#m-location-button{padding:8px}@supports (-ms-ime-align:auto){.m-location-container.m-locating>button#m-location-button{height:36px}}.m-scale-container{background-color:rgba(0,60,136,.5);border-bottom-left-radius:2px;border-top-left-radius:2px;bottom:2em;box-shadow:0 1px 2px rgba(0,0,0,.3);display:block;font-size:smaller;font-weight:700;font-weight:400;margin:0;padding:5px;right:0}.m-scale-container>.m-unit{font-family:Muli!important;line-height:normal}.m-scale-container>.m-scale{line-height:normal}.m-scale-container>.m-unit:before{color:#a35d38;font-family:g-cartografia!important;font-size:12px!important;margin-right:5px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div.m-control.m-rotate-container button[class^=g-cartografia-]#m-rotate-button{background-color:#fff;border-radius:50%;color:#337ceb;cursor:pointer;font-size:1.5rem;left:19%;padding:0;position:absolute;top:23%;z-index:200}.m-rotate-slider{border-radius:50%;cursor:pointer;height:30px;position:absolute;width:30px}#m-rotate-slider-container{height:40px;width:40px}#m-rotate-marker{height:45px;position:absolute;width:45px}#m-rotate-marker-circle{stroke:#337ceb;fill:#fff;cursor:pointer}.m-mouse-position{white-space:pre}.m-mouse-position:before{color:#a35d38;font-family:g-cartografia!important;margin-right:5px}@media only screen and (max-width:768px){.m-mouse-position{display:none!important}}.m-panel.m-map-info>div.m-panel-controls>.m-mouse-position{border-radius:20px!important;order:4}.m-panel.m-map-info.m-with-scale>div.m-panel-controls>.m-mouse-position,.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>.m-mouse-position{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.m-getfeatureinfo-container{left:300px;top:20px}.m-popup table.mapea-table td.header{border-bottom:1px ridge #6c6c6c;padding-top:10px;text-align:center}.m-getfeatureinfo-content-info{margin-bottom:.7rem;min-width:250px}.m-getfeatureinfo-content-info-body.m-content-collapsed,span.m-content-collapsed{display:none}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header{align-items:center;background-color:#eee;color:#000;display:flex;font-size:12px;margin-bottom:5px;padding:5px}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-right{border:7px solid transparent;border-left-color:#000;cursor:pointer}.m-getfeatureinfo-content-info .m-getfeatureinfo-content-info-header .m-arrow-down{border:7px solid transparent;border-top-color:#000;cursor:pointer;margin-right:5px}.m-areas{height:0;left:0;max-height:0;top:0;width:0}.m-areas>div.m-area{-webkit-display:flex;display:flex;-webkit-flex-flow:column nowrap;flex-flow:column nowrap;position:absolute}.m-areas>div.m-area.m-top{top:0}.m-areas>div.m-area.m-bottom{bottom:0;max-width:0;width:0}.m-areas>div.m-area.m-bottom.m-right{z-index:10}.m-areas>div.m-area.m-left{-webkit-align-items:flex-start;align-items:flex-start;left:0}.m-areas>div.m-area.m-right{-webkit-align-items:flex-end;align-items:flex-end;right:0}@media only screen and (max-width:768px){.m-areas>div.m-area.m-top.top-extra{top:65px}.m-areas>div.m-area.m-top.top-extra.top-extra-search{top:75px}.m-areas>div.m-area.m-top.top-extra.top-extra-searchs{top:135px}}.m-areas>div.m-area>div.m-panel{background:#fff;border-radius:4px;box-sizing:border-box;position:relative;z-index:999}.m-areas>div.m-area>div.m-panel,div.m-panel>button{box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)}.m-areas>div.m-area.m-top>div.m-panel{margin-top:10px}.m-areas>div.m-area.m-bottom>div.m-panel{margin-bottom:10px}.m-areas>div.m-area.m-left>div.m-panel{margin-left:10px}.m-areas>div.m-area.m-right>div.m-panel{margin-right:10px}.m-areas>div.m-area>div.m-panel.no-collapsible{border-radius:20px}.m-areas>div.m-area>div.m-panel>button.m-panel-btn{box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02);color:#fff}.m-areas>div.m-area>div.m-panel.no-collapsible>div.m-panel-controls>div.m-control>button,.m-areas>div.m-area>div.m-panel>button.m-panel-btn{background:none;border:0;box-sizing:border-box;cursor:pointer;font-family:g-cartografia!important;font-size:19px;height:40px;padding:0;-webkit-transition:opacity .25s ease 0s,color .25s ease 0s;transition:opacity .25s ease 0s,color .25s ease 0s;width:40px;speak:none;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}.m-areas>div.m-area>div.m-panel.opened>button.m-panel-btn{font-size:15px}.m-areas>div.m-area.m-left>div.m-panel>button.m-panel-btn{border-bottom-right-radius:4px;border-top-right-radius:4px;float:right}.m-areas>div.m-area.m-left>div.m-panel.collapsed>button.m-panel-btn{box-shadow:none;position:inherit;right:0}.m-areas>div.m-area.m-right>div.m-panel>button.m-panel-btn{border-bottom-left-radius:4px;border-top-left-radius:4px;float:left}.m-areas>div.m-area>div.m-panel.m-tools>button.m-panel-btn{background-color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>button.m-panel-btn{background-color:#67af13}.m-areas>div.m-area>div.m-panel.m-tools.collapsed>button.m-panel-btn{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition.collapsed>button.m-panel-btn{color:#67af13}.m-areas>div.m-area>div.m-panel.collapsed>button.m-panel-btn{background-color:#fff!important;border-radius:20px}.m-areas>div.m-area>div.m-panel>button.m-panel-btn:focus{outline:none}.m-areas>div.m-area>div.m-panel.no-collapsible>button.m-panel-btn{display:none}.m-areas>div.m-area.m-left>div.m-panel,.m-areas>div.m-area.m-left>div.m-panel>div.m-panel-controls{align-items:flex-end;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.m-areas>div.m-area>div.m-panel.m-tools{order:-90}.m-areas>div.m-area>div.m-panel.m-edition{order:-80}.m-areas>div.m-area>div.m-panel.m-panzoombar{border-radius:20px;margin-left:25px;margin-top:8px;order:-69;width:10px}@media only screen and (max-width:768px){.m-areas>div.m-area>div.m-panel.m-panzoombar{display:none}}.m-areas>div.m-area>div.m-panel.m-panzoom{border-radius:4px;height:60px;margin-left:15px;order:-70;width:30px}.m-areas>div.m-area>div.m-panel.m-scaleline{background-color:transparent;box-shadow:none;left:20px}.m-areas>div.m-area>div.m-panel.m-location>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-mouse{border-radius:4px;padding:5px}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls{width:auto}.m-areas>div.m-area>div.m-panel.m-mouse>div.m-panel-controls:before{background:none;font-size:15px}.m-areas>div.m-area>div.m-panel.m-overviewmap{box-shadow:none}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:flex}@-moz-document url-prefix(){.m-areas>div.m-area>div.m-panel>div.m-panel-controls{display:inline-flex}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.m-areas>div.m-area>div.m-panel.collapsed{height:auto!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher.collapsed{width:40px!important}.m-areas>div.m-area>div.m-panel.m-layerswitcher>div.m-panel-controls{width:100%!important}.m-areas>div.m-area>div.m-panel.m-panzoom{height:auto!important}.m-printer.opened .m-printer-container .form{min-height:176px}.m-printer-container>div.button>button.print{width:57%!important}}@supports (overflow:-webkit-marquee) and (justify-content:inherit){.m-areas>div.m-area.m-top{top:0}}.m-areas>div.m-area.m-bottom,.m-areas>div.m-area.m-top,.m-areas>div.m-area>div.m-panel.m-map-info,.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls{visibility:hidden}.m-areas>div.m-area>div.m-panel{visibility:visible}.m-areas>div.m-area>div.m-panel.m-map-info>div.m-panel-controls>div{visibility:visible!important}.m-areas>div.m-area>div.m-panel{-webkit-transition:border-radius .5s ease 0s;transition:border-radius .5s ease 0s}.m-areas>div.m-area>div.m-panel.collapsed{border-radius:20px}.m-areas>div.m-area>div.m-panel>div.m-panel-controls{border-radius:10px;opacity:1;-webkit-transition:max-width 1s ease 0s,opacity .75s ease .1s;transition:max-width 1s ease 0s,opacity .75s ease .1s}.m-areas>div.m-area>div.m-panel.collapsed>div.m-panel-controls{max-width:0;opacity:0;-webkit-transition:max-width .4s ease 0s,opacity .3s ease 0s;transition:max-width .4s ease 0s,opacity .3s ease 0s}.m-areas>div.m-area>div.m-panel>div.m-panel-controls>div{background-color:transparent;border-radius:0;box-shadow:none;display:table;overflow:hidden;padding:0;position:inherit!important}.m-areas>div.m-area>div.m-panel.m-tools>div.m-panel-controls>div.m-control.activated>button{color:#337ceb}.m-areas>div.m-area>div.m-panel.m-edition>div.m-panel-controls>div.m-control.activated>button{color:#67af13}@media only screen and (min-width:769px){.m-geosearch.collapsed .m-panel-controls,.m-searchstreet.collapsed .m-panel-controls,.m-searchstreetgeosearch.collapsed .m-panel-controls{display:none!important}}.m-edition.collapsed .m-panel-controls,.m-tools.collapsed .m-panel-controls{display:none!important}.m-map-info>div.m-panel-controls{align-items:flex-end;flex-direction:row-reverse}.m-map-info{background:transparent!important;border-radius:0!important;box-shadow:none!important;order:4;right:0}.m-location{order:1;z-index:97}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-scale-container{order:3}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important}}.m-panel.m-map-info.m-with-wmcselector>div.m-panel-controls>div.m-control.m-scale-container{border-bottom-right-radius:0!important;border-top-right-radius:0!important}.m-panel.m-map-info>div.m-panel-controls>div.m-control.m-wmcselector-container{order:2}.m-panel.m-map-info.m-with-mouse>div.m-panel-controls>div.m-control.m-wmcselector-container,.m-panel.m-map-info.m-with-scale>div.m-panel-controls>div.m-control.m-wmcselector-container{border-bottom-left-radius:0!important;border-top-left-radius:0!important}@media only screen and (max-width:768px){.m-panel.m-map-info.m-with-mouse:not(.m-with-scale)>div.m-panel-controls>div.m-control.m-wmcselector-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important}}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position{display:inline;height:15px!important}.m-areas>div.m-area>div.m-panel>div.m-panel-controls .m-mouse-position,.m-scale-container{background-color:#fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;padding:6px 12px 3px!important}.m-scale-container{display:flex!important;height:15px;white-space:pre}.m-scale-container:before{color:#a35d38;margin-right:5px}.m-wmcselector-container{background-color:#fff!important;box-shadow:0 2px 4px rgba(0,0,0,.2),0 -1px 0 rgba(0,0,0,.02)!important;display:flex!important;font-family:Muli,"sans-serif"!important;font-size:12px!important;height:17px;padding:4px 10px 3px 12px!important}.m-wmcselector-container:before{color:#a35d38;margin-right:5px;margin-top:3px}@media only screen and (max-width:768px){.m-scale-container{border-bottom-left-radius:20px!important;border-top-left-radius:20px!important;padding:6px 12px 3px!important}}@media only screen and (min-width:769px){.m-geosearch.collapsed div.results-panel,.m-geosearch.collapsed div.search-panel{display:none!important}}.m-kml-desc>table{width:100%} +/*# sourceMappingURL=mapea-6.6.0.ol.min.css.map*/ \ No newline at end of file diff --git a/lib/mapea-6.6.0.ol.min.js b/lib/mapea-6.6.0.ol.min.js new file mode 100644 index 0000000..229590b --- /dev/null +++ b/lib/mapea-6.6.0.ol.min.js @@ -0,0 +1,92 @@ +(()=>{var t={792:function(t,e,i){var n; +/** + * @license + * + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2017, Gregor Aisch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name Gregor Aisch may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */t=i.nmd(t),function(){var i,r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y,I,E,C,v,x,w,S,b,L,B,M,T,R,N,P,F,D,O,Q,k,G,U,q,V,z,Y,j,H,X,W,K,J,Z,$,tt,et,it,nt,rt,st,ot,at,lt,ht,ct,ut,gt,dt,pt,At,ft,mt,_t,yt,It,Et,Ct,vt,xt,wt,St,bt,Lt,Bt=[].slice;xt=function(){var t,e,i,n,r;for(t={},n=0,e=(r="Boolean Number String Function Array Date RegExp Undefined Null".split(" ")).length;ni&&(t=i),t},wt=function(t){return t.length>=3?Array.prototype.slice.call(t):t[0]},v=function(t){var e,i;for(t._clipped=!1,t._unclipped=t.slice(0),e=i=0;i<3;e=++i)e<3?((t[e]<0||t[e]>255)&&(t._clipped=!0),t[e]<0&&(t[e]=0),t[e]>255&&(t[e]=255)):3===e&&(t[e]<0&&(t[e]=0),t[e]>1&&(t[e]=1));return t._clipped||delete t._unclipped,t},o=Math.PI,yt=Math.round,w=Math.cos,M=Math.floor,nt=Math.pow,K=Math.log,Et=Math.sin,Ct=Math.sqrt,f=Math.atan2,$=Math.max,A=Math.abs,h=2*o,a=o/3,r=o/180,l=180/o,C=function(){return arguments[0]instanceof i?arguments[0]:function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,arguments,(function(){}))},C.default=C,p=[],null!==t&&null!=t.exports&&(t.exports=C),void 0===(n=function(){return C}.apply(e,[]))||(t.exports=n),C.version="1.4.0",d={},u=[],g=!1,i=function(){function t(){var t,e,i,n,r,s,o,a,l;for(s=this,e=[],a=0,n=arguments.length;a1&&(o=e[e.length-1]),null!=d[o])s._rgb=v(d[o](wt(e.slice(0,-1))));else{for(g||(u=u.sort((function(t,e){return e.p-t.p})),g=!0),l=0,r=u.length;l3?e[3]:1]},Lt=function(t){return 255*(t<=.00304?12.92*t:1.055*nt(t,1/2.4)-.055)},Y=function(t){return t>s.t1?t*t*t:s.t2*(t-s.t0)},s={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ut=function(){var t,e,i,n,r,s,o;return i=(n=wt(arguments))[0],e=n[1],t=n[2],s=(r=ft(i,e,t))[0],[116*(o=r[1])-16,500*(s-o),200*(o-r[2])]},mt=function(t){return(t/=255)<=.04045?t/12.92:nt((t+.055)/1.055,2.4)},bt=function(t){return t>s.t3?nt(t,1/3):t/s.t2+s.t0},ft=function(){var t,e,i,n;return i=(n=wt(arguments))[0],e=n[1],t=n[2],i=mt(i),e=mt(e),t=mt(t),[bt((.4124564*i+.3575761*e+.1804375*t)/s.Xn),bt((.2126729*i+.7151522*e+.072175*t)/s.Yn),bt((.0193339*i+.119192*e+.9503041*t)/s.Zn)]},C.lab=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["lab"]),(function(){}))},d.lab=z,i.prototype.lab=function(){return ut(this._rgb)},m=function(t){var e,i,n,r,s,o,a,l,h,c,u;return 2===(t=function(){var e,i,n;for(n=[],i=0,e=t.length;i=0&&e[3]<=1?"rgb":void 0}}),d.lrgb=d.rgb,G=function(t,e,n,r){var s,o;return s=t._rgb,o=e._rgb,new i(Ct(nt(s[0],2)*(1-n)+nt(o[0],2)*n),Ct(nt(s[1],2)*(1-n)+nt(o[1],2)*n),Ct(nt(s[2],2)*(1-n)+nt(o[2],2)*n),r)},c=function(t){var e,n,r,s,o;for(e=1/t.length,o=[0,0,0,0],r=0,n=t.length;r1&&(o[3]=1),new i(v(o))},p.push(["lrgb",G]),C.average=function(t,e){var i,n,r,s,a,l,h,u,g,d,p,A,m;if(null==e&&(e="rgb"),g=t.length,t=t.map((function(t){return C(t)})),h=t.splice(0,1)[0],"lrgb"===e)return c(t);for(u in s=[],a=0,l=0,A=h.get(e))A[u]=A[u]||0,s.push(isNaN(A[u])?0:1),"h"!==e.charAt(u)||isNaN(A[u])||(i=A[u]/180*o,a+=w(i),l+=Et(i));for(n=h.alpha(),p=0,d=t.length;p=360;)i-=360;A[u]=i}else A[u]=A[u]/s[u];return C(A,e).alpha(n/g)},R=function(t){var e,i;if(t.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))return 4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]),[(i=parseInt(t,16))>>16,i>>8&255,255&i,1];if(t.match(/^#?([A-Fa-f0-9]{8})$/))return 9===t.length&&(t=t.substr(1)),[(i=parseInt(t,16))>>24&255,i>>16&255,i>>8&255,yt((255&i)/255*100)/100];if(null!=d.css&&(e=d.css(t)))return e;throw"unknown color: "+t},at=function(t,e){var i,n,r,s,o,a;return null==e&&(e="auto"),o=t[0],r=t[1],n=t[2],i=t[3],"auto"===e&&(e=i<1?"rgba":"rgb"),o=Math.round(o),r=Math.round(r),n=Math.round(n),a=(a="000000"+(o<<16|r<<8|n).toString(16)).substr(a.length-6),s=(s="0"+yt(255*i).toString(16)).substr(s.length-2),"#"+function(){switch(e.toLowerCase()){case"rgba":return a+s;case"argb":return s+a;default:return a}}()},d.hex=function(t){return R(t)},C.hex=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["hex"]),(function(){}))},i.prototype.hex=function(t){return null==t&&(t="auto"),at(this._rgb,t)},u.push({p:4,test:function(t){if(1===arguments.length&&"string"===xt(t))return"hex"}}),F=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d;if(r=(t=wt(arguments))[0],c=t[1],o=t[2],0===c)l=n=e=255*o;else{for(i=[0,0,0],u=2*o-(g=o<.5?o*(1+c):o+c-o*c),(d=[0,0,0])[0]=(r/=360)+1/3,d[1]=r,d[2]=r-1/3,s=a=0;a<=2;s=++a)d[s]<0&&(d[s]+=1),d[s]>1&&(d[s]-=1),6*d[s]<1?i[s]=u+6*(g-u)*d[s]:2*d[s]<1?i[s]=g:3*d[s]<2?i[s]=u+(g-u)*(2/3-d[s])*6:i[s]=u;l=(h=[yt(255*i[0]),yt(255*i[1]),yt(255*i[2])])[0],n=h[1],e=h[2]}return t.length>3?[l,n,e,t[3]]:[l,n,e]},ht=function(t,e,i){var n,r,s,o,a;return void 0!==t&&t.length>=3&&(t=(o=t)[0],e=o[1],i=o[2]),t/=255,e/=255,i/=255,s=Math.min(t,e,i),r=(($=Math.max(t,e,i))+s)/2,$===s?(a=0,n=Number.NaN):a=r<.5?($-s)/($+s):($-s)/(2-$-s),t===$?n=(e-i)/($-s):e===$?n=2+(i-t)/($-s):i===$&&(n=4+(t-e)/($-s)),(n*=60)<0&&(n+=360),[n,a,r]},C.hsl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["hsl"]),(function(){}))},d.hsl=F,i.prototype.hsl=function(){return ht(this._rgb)},D=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d,p,A,f,m;if(r=(t=wt(arguments))[0],A=t[1],m=t[2],m*=255,0===A)l=n=e=m;else switch(360===r&&(r=0),r>360&&(r-=360),r<0&&(r+=360),o=m*(1-A),a=m*(1-A*(i=(r/=60)-(s=M(r)))),f=m*(1-A*(1-i)),s){case 0:l=(h=[m,f,o])[0],n=h[1],e=h[2];break;case 1:l=(c=[a,m,o])[0],n=c[1],e=c[2];break;case 2:l=(u=[o,m,f])[0],n=u[1],e=u[2];break;case 3:l=(g=[o,a,m])[0],n=g[1],e=g[2];break;case 4:l=(d=[f,o,m])[0],n=d[1],e=d[2];break;case 5:l=(p=[m,o,a])[0],n=p[1],e=p[2]}return[l,n,e,t.length>3?t[3]:1]},ct=function(){var t,e,i,n,r,s,o,a,l;return s=(o=wt(arguments))[0],i=o[1],t=o[2],r=Math.min(s,i,t),e=($=Math.max(s,i,t))-r,l=$/255,0===$?(n=Number.NaN,a=0):(a=e/$,s===$&&(n=(i-t)/e),i===$&&(n=2+(t-s)/e),t===$&&(n=4+(s-i)/e),(n*=60)<0&&(n+=360)),[n,a,l]},C.hsv=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["hsv"]),(function(){}))},d.hsv=D,i.prototype.hsv=function(){return ct(this._rgb)},et=function(t){return"number"===xt(t)&&t>=0&&t<=16777215?[t>>16,t>>8&255,255&t,1]:(console.warn("unknown num color: "+t),[0,0,0,1])},pt=function(){var t;return((t=wt(arguments))[0]<<16)+(t[1]<<8)+t[2]},C.num=function(t){return new i(t,"num")},i.prototype.num=function(t){return null==t&&(t="rgb"),pt(this._rgb,t)},d.num=et,u.push({p:1,test:function(t){if(1===arguments.length&&"number"===xt(t)&&t>=0&&t<=16777215)return"num"}}),T=function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y;if(a=(i=wt(arguments))[0],r=i[1],e=i[2],o=o/100*255,t=255*(r/=100),0===r)u=o=n=e;else switch(360===a&&(a=0),a>360&&(a-=360),a<0&&(a+=360),c=(h=e*(1-r))+t*(1-(s=(a/=60)-(l=M(a)))),_=h+t*s,y=h+t,l){case 0:u=(g=[y,_,h])[0],o=g[1],n=g[2];break;case 1:u=(d=[c,y,h])[0],o=d[1],n=d[2];break;case 2:u=(p=[h,y,_])[0],o=p[1],n=p[2];break;case 3:u=(A=[h,c,y])[0],o=A[1],n=A[2];break;case 4:u=(f=[_,h,y])[0],o=f[1],n=f[2];break;case 5:u=(m=[y,h,c])[0],o=m[1],n=m[2]}return[u,o,n,i.length>3?i[3]:1]},ot=function(){var t,e,i,n,r,s,o,a,l;return a=(l=wt(arguments))[0],r=l[1],e=l[2],o=Math.min(a,r,e),i=100*(n=($=Math.max(a,r,e))-o)/255,t=o/(255-n)*100,0===n?s=Number.NaN:(a===$&&(s=(r-e)/n),r===$&&(s=2+(e-a)/n),e===$&&(s=4+(a-r)/n),(s*=60)<0&&(s+=360)),[s,i,t]},C.hcg=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["hcg"]),(function(){}))},d.hcg=T,i.prototype.hcg=function(){return ot(this._rgb)},S=function(t){var e,i,n,r,s,o,a,l;if(t=t.toLowerCase(),null!=C.colors&&C.colors[t])return R(C.colors[t]);if(s=t.match(/rgb\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*\)/)){for(a=s.slice(1,4),r=o=0;o<=2;r=++o)a[r]=+a[r];a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+),\s*(\-?\d+)\s*,\s*(\-?\d+)\s*,\s*([01]|[01]?\.\d+)\)/))for(a=s.slice(1,5),r=l=0;l<=3;r=++l)a[r]=+a[r];else if(s=t.match(/rgb\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/)){for(a=s.slice(1,4),r=e=0;e<=2;r=++e)a[r]=yt(2.55*a[r]);a[3]=1}else if(s=t.match(/rgba\(\s*(\-?\d+(?:\.\d+)?)%,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/)){for(a=s.slice(1,5),r=i=0;i<=2;r=++i)a[r]=yt(2.55*a[r]);a[3]=+a[3]}else(s=t.match(/hsl\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*\)/))?((n=s.slice(1,4))[1]*=.01,n[2]*=.01,(a=F(n))[3]=1):(s=t.match(/hsla\(\s*(\-?\d+(?:\.\d+)?),\s*(\-?\d+(?:\.\d+)?)%\s*,\s*(\-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)/))&&((n=s.slice(1,4))[1]*=.01,n[2]*=.01,(a=F(n))[3]=+s[4]);return a},st=function(t){var e;return"rgb"===(e=t[3]<1?"rgba":"rgb")?e+"("+t.slice(0,3).map(yt).join(",")+")":"rgba"===e?e+"("+t.slice(0,3).map(yt).join(",")+","+t[3]+")":void 0},_t=function(t){return yt(100*t)/100},P=function(t,e){var i;return i=e<1?"hsla":"hsl",t[0]=_t(t[0]||0),t[1]=_t(100*t[1])+"%",t[2]=_t(100*t[2])+"%","hsla"===i&&(t[3]=e),i+"("+t.join(",")+")"},d.css=function(t){return S(t)},C.css=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["css"]),(function(){}))},i.prototype.css=function(t){return null==t&&(t="rgb"),"rgb"===t.slice(0,3)?st(this._rgb):"hsl"===t.slice(0,3)?P(this.hsl(),this.alpha()):void 0},d.named=function(t){return R(St[t])},u.push({p:5,test:function(t){if(1===arguments.length&&null!=St[t])return"named"}}),i.prototype.name=function(t){var e,i;for(i in arguments.length&&(St[t]&&(this._rgb=R(St[t])),this._rgb[3]=1),e=this.hex("rgb"),St)if(e===St[i])return i;return e},j=function(){var t,e,i,n;return i=(n=wt(arguments))[0],t=n[1],e=n[2],[i,w(e*=r)*t,Et(e)*t]},H=function(){var t,e,i,n,r,s,o,a,l;return o=(i=wt(arguments))[0],r=i[1],s=i[2],t=(a=j(o,r,s))[0],e=a[1],n=a[2],[(l=z(t,e,n))[0],l[1],n=l[2],i.length>3?i[3]:1]},V=function(){var t,e,i,n,r,s;return r=(s=wt(arguments))[0],t=s[1],e=s[2],i=Ct(t*t+e*e),n=(f(e,t)*l+360)%360,0===yt(1e4*i)&&(n=Number.NaN),[r,i,n]},gt=function(){var t,e,i,n,r,s,o;return r=(s=wt(arguments))[0],i=s[1],e=s[2],n=(o=ut(r,i,e))[0],t=o[1],e=o[2],V(n,t,e)},C.lch=function(){var t;return t=wt(arguments),new i(t,"lch")},C.hcl=function(){var t;return t=wt(arguments),new i(t,"hcl")},d.lch=H,d.hcl=function(){var t,e,i,n;return e=(n=wt(arguments))[0],t=n[1],i=n[2],H([i,t,e])},i.prototype.lch=function(){return gt(this._rgb)},i.prototype.hcl=function(){return gt(this._rgb).reverse()},rt=function(t){var e,i,n,r,s,o;return null==t&&(t="rgb"),s=(o=wt(arguments))[0],n=o[1],e=o[2],n/=255,e/=255,[(1-(s/=255)-(r=1-Math.max(s,Math.max(n,e))))*(i=r<1?1/(1-r):0),(1-n-r)*i,(1-e-r)*i,r]},x=function(){var t,e,i,n,r,s;return i=(e=wt(arguments))[0],r=e[1],s=e[2],n=e[3],t=e.length>4?e[4]:1,1===n?[0,0,0,t]:[i>=1?0:255*(1-i)*(1-n),r>=1?0:255*(1-r)*(1-n),s>=1?0:255*(1-s)*(1-n),t]},d.cmyk=function(){return x(wt(arguments))},C.cmyk=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["cmyk"]),(function(){}))},i.prototype.cmyk=function(){return rt(this._rgb)},d.gl=function(){var t,e,i,n,r;for(n=function(){var t,i;for(e in i=[],t=wt(arguments))r=t[e],i.push(r);return i}.apply(this,arguments),t=i=0;i<=2;t=++i)n[t]*=255;return n},C.gl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["gl"]),(function(){}))},i.prototype.gl=function(){var t;return[(t=this._rgb)[0]/255,t[1]/255,t[2]/255,t[3]]},dt=function(t,e,i){var n;return t=(n=wt(arguments))[0],e=n[1],i=n[2],.2126*(t=J(t))+.7152*(e=J(e))+.0722*(i=J(i))},J=function(t){return(t/=255)<=.03928?t/12.92:nt((t+.055)/1.055,2.4)},q=function(t,e,n,r){var s,o;return s=t._rgb,o=e._rgb,new i(s[0]+n*(o[0]-s[0]),s[1]+n*(o[1]-s[1]),s[2]+n*(o[2]-s[2]),r)},p.push(["rgb",q]),i.prototype.luminance=function(t,e){var i,n,r,s;return null==e&&(e="rgb"),arguments.length?(r=this._rgb,0===t?r=[0,0,0,this._rgb[3]]:1===t?r=[255,255,255,this[3]]:(i=dt(this._rgb),1e-7,n=20,s=function(i,r){var o,a;return o=(a=i.interpolate(r,.5,e)).luminance(),Math.abs(t-o)<1e-7||!n--?a:o>t?s(i,a):s(a,r)},r=i>t?s(C("black"),this).rgba():s(this,C("white")).rgba()),C(r).alpha(this.alpha())):dt(this._rgb)},vt=function(t){var e,i,n,r;return(r=t/100)<66?(n=255,i=-155.25485562709179-.44596950469579133*(i=r-2)+104.49216199393888*K(i),e=r<20?0:.8274096064007395*(e=r-10)-254.76935184120902+115.67994401066147*K(e)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*K(n),i=325.4494125711974+.07943456536662342*(i=r-50)-28.0852963507957*K(i),e=255),[n,i,e]},At=function(){var t,e,i,n,r,s,o;for(n=(r=wt(arguments))[0],r[1],t=r[2],i=1e3,e=4e4,.4;e-i>.4;)(s=vt(o=.5*(e+i)))[2]/s[0]>=t/n?e=o:i=o;return yt(o)},C.temperature=C.kelvin=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["temperature"]),(function(){}))},d.temperature=d.kelvin=d.K=vt,i.prototype.temperature=function(){return At(this._rgb)},i.prototype.kelvin=i.prototype.temperature,C.contrast=function(t,e){var n,r,s,o;return"string"!==(s=xt(t))&&"number"!==s||(t=new i(t)),"string"!==(o=xt(e))&&"number"!==o||(e=new i(e)),(n=t.luminance())>(r=e.luminance())?(n+.05)/(r+.05):(r+.05)/(n+.05)},C.distance=function(t,e,n){var r,s,o,a,l,h,c;for(s in null==n&&(n="lab"),"string"!==(l=xt(t))&&"number"!==l||(t=new i(t)),"string"!==(h=xt(e))&&"number"!==h||(e=new i(e)),o=t.get(n),a=e.get(n),c=0,o)c+=(r=(o[s]||0)-(a[s]||0))*r;return Math.sqrt(c)},C.deltaE=function(t,e,n,r){var s,a,l,h,c,u,g,d,p,m,_,y,I,E,C,v,x,S,b,L,B,M,T,R;for(null==n&&(n=1),null==r&&(r=1),"string"!==(C=xt(t))&&"number"!==C||(t=new i(t)),"string"!==(v=xt(e))&&"number"!==v||(e=new i(e)),s=(x=t.lab())[0],l=x[1],c=x[2],a=(S=e.lab())[0],h=S[1],u=S[2],g=Ct(l*l+c*c),d=Ct(h*h+u*u),L=s<16?.511:.040975*s/(1+.01765*s),b=.0638*g/(1+.0131*g)+.638,E=g<1e-6?0:180*f(c,l)/o;E<0;)E+=360;for(;E>=360;)E-=360;return B=E>=164&&E<=345?.56+A(.2*w(o*(E+168)/180)):.36+A(.4*w(o*(E+35)/180)),I=Ct((p=g*g*g*g)/(p+1900)),Ct((M=(s-a)/(n*L))*M+(T=(y=g-d)/(r*b))*T+((m=l-h)*m+(_=c-u)*_-y*y)/((R=b*(I*B+1-I))*R))},i.prototype.get=function(t){var e,i,n,r,s;return this,n=(r=t.split("."))[0],e=r[1],s=this[n](),e?(i=n.indexOf(e))>-1?s[i]:console.warn("unknown channel "+e+" in mode "+n):s},i.prototype.set=function(t,e){var i,n,r,s,o;if(this,r=(s=t.split("."))[0],i=s[1])if(o=this[r](),(n=r.indexOf(i))>-1)if("string"===xt(e))switch(e.charAt(0)){case"+":case"-":o[n]+=+e;break;case"*":o[n]*=+e.substr(1);break;case"/":o[n]/=+e.substr(1);break;default:o[n]=+e}else o[n]=e;else console.warn("unknown channel "+i+" in mode "+r);else o=e;return C(o,r).alpha(this.alpha())},i.prototype.clipped=function(){return this._rgb._clipped||!1},i.prototype.alpha=function(t){return arguments.length?C.rgb([this._rgb[0],this._rgb[1],this._rgb[2],t]):this._rgb[3]},i.prototype.darken=function(t){var e;return null==t&&(t=1),this,(e=this.lab())[0]-=s.Kn*t,C.lab(e).alpha(this.alpha())},i.prototype.brighten=function(t){return null==t&&(t=1),this.darken(-t)},i.prototype.darker=i.prototype.darken,i.prototype.brighter=i.prototype.brighten,i.prototype.saturate=function(t){var e;return null==t&&(t=1),this,(e=this.lch())[1]+=t*s.Kn,e[1]<0&&(e[1]=0),C.lch(e).alpha(this.alpha())},i.prototype.desaturate=function(t){return null==t&&(t=1),this.saturate(-t)},i.prototype.premultiply=function(){var t,e;return e=this.rgb(),t=this.alpha(),C(e[0]*t,e[1]*t,e[2]*t,t)},tt=function(t,e){return t*e/255},b=function(t,e){return t>e?e:t},X=function(t,e){return t>e?t:e},It=function(t,e){return 255*(1-(1-t/255)*(1-e/255))},it=function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))},E=function(t,e){return 255*(1-(1-e/255)/(t/255))},L=function(t,e){return 255===t||(t=e/255*255/(1-t/255))>255?255:t},(_=function(t,e,i){if(!_[i])throw"unknown blend mode "+i;return _[i](t,e)}).normal=(y=function(t){return function(e,i){var n,r;return n=C(i).rgb(),r=C(e).rgb(),C(t(n,r),"rgb")}})((B=function(t){return function(e,i){var n,r,s;for(s=[],n=r=0;r<=3;n=++r)s[n]=t(e[n],i[n]);return s}})((function(t,e){return t}))),_.multiply=y(B(tt)),_.screen=y(B(It)),_.overlay=y(B(it)),_.darken=y(B(b)),_.lighten=y(B(X)),_.dodge=y(B(L)),_.burn=y(B(E)),C.blend=_,C.analyze=function(t){var e,i,n,r;for(n={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},i=0,e=t.length;in.max&&(n.max=r),n.count+=1);return n.domain=[n.min,n.max],n.limits=function(t,e){return C.limits(n,t,e)},n},C.scale=function(t,e){var i,n,r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y,I,E,v;return c="rgb",u=C("#ccc"),A=0,!1,o=[0,1],p=[],d=[0,0],i=!1,r=[],g=!1,h=0,l=1,s=!1,n={},f=!0,a=1,E=function(t){var e,i,n,s,o,a;if(null==t&&(t=["#fff","#000"]),null!=t&&"string"===xt(t)&&null!=C.brewer&&(t=C.brewer[t]||C.brewer[t.toLowerCase()]||t),"array"===xt(t)){for(1===t.length&&(t=[t[0],t[0]]),e=n=0,s=(t=t.slice(0)).length-1;0<=s?n<=s:n>=s;e=0<=s?++n:--n)i=t[e],"string"===xt(i)&&(t[e]=C(i));for(p.length=0,e=a=0,o=t.length-1;0<=o?a<=o:a>=o;e=0<=o?++a:--a)p.push(e/(t.length-1))}return I(),r=t},_=function(t){var e,n;if(null!=i){for(n=i.length-1,e=0;e=i[e];)e++;return e-1}return 0},v=function(t){return t},function(t){var e,n,r,s,o;return o=t,i.length>2&&(s=i.length-1,e=_(t),r=i[0]+(i[1]-i[0])*(0+.5*A),n=i[s-1]+(i[s]-i[s-1])*(1-.5*A),o=h+(i[e]+.5*(i[e+1]-i[e])-r)/(n-r)*(l-h)),o},y=function(t,e){var s,o,g,A,m,y,I;if(null==e&&(e=!1),isNaN(t))return u;if(I=e?t:i&&i.length>2?_(t)/(i.length-2):l!==h?(t-h)/(l-h):1,e||(I=v(I)),1!==a&&(I=nt(I,a)),I=d[0]+I*(1-d[0]-d[1]),I=Math.min(1,Math.max(0,I)),g=Math.floor(1e4*I),f&&n[g])s=n[g];else{if("array"===xt(r))for(o=A=0,y=p.length-1;0<=y?A<=y:A>=y;o=0<=y?++A:--A){if(I<=(m=p[o])){s=r[o];break}if(I>=m&&o===p.length-1){s=r[o];break}if(I>m&&I=c;e=0<=c?++u:--u)p.push(e/(n-1));return o=[h,l],m},m.mode=function(t){return arguments.length?(c=t,I(),m):c},m.range=function(t,e){return E(t),m},m.out=function(t){return g=t,m},m.spread=function(t){return arguments.length?(A=t,m):A},m.correctLightness=function(t){return null==t&&(t=!0),s=t,I(),v=s?function(t){var e,i,n,r,s,o,a,l,h;for(e=y(0,!0).lab()[0],i=y(1,!0).lab()[0],a=e>i,n=y(t,!0).lab()[0],r=n-(s=e+(i-e)*t),l=0,h=1,o=20;Math.abs(r)>.01&&o-- >0;)a&&(r*=-1),r<0?(l=t,t+=.5*(h-t)):(h=t,t+=.5*(l-t)),n=y(t,!0).lab()[0],r=n-s;return t}:function(t){return t},m},m.padding=function(t){return null!=t?("number"===xt(t)&&(t=[t,t]),d=t,m):d},m.colors=function(e,n){var s,a,l,h,c,u,g,d;if(arguments.length<2&&(n="hex"),c=[],0===arguments.length)c=r.slice(0);else if(1===e)c=[m(.5)];else if(e>1)a=o[0],s=o[1]-a,c=function(){u=[];for(var t=0;0<=e?te;0<=e?t++:t--)u.push(t);return u}.apply(this).map((function(t){return m(a+t/(e-1)*s)}));else{if(t=[],g=[],i&&i.length>2)for(l=d=1,h=i.length;1<=h?dh;l=1<=h?++d:--d)g.push(.5*(i[l-1]+i[l]));else g=o;c=g.map((function(t){return m(t)}))}return C[n]&&(c=c.map((function(t){return t[n]()}))),c},m.cache=function(t){return null!=t?(f=t,m):f},m.gamma=function(t){return null!=t?(a=t,m):a},m},null==C.scales&&(C.scales={}),C.scales.cool=function(){return C.scale([C.hsl(180,1,.9),C.hsl(250,.7,.4)])},C.scales.hot=function(){return C.scale(["#000","#f00","#ff0","#fff"],[0,.25,.75,1]).mode("rgb")},C.analyze=function(t,e,i){var n,r,s,o,a,l;if(a={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0},null==i&&(i=function(){return!0}),n=function(t){null==t||isNaN(t)||(a.values.push(t),a.sum+=t,ta.max&&(a.max=t),a.count+=1)},l=function(t,r){if(i(t,r))return null!=e&&"function"===xt(e)?n(e(t)):null!=e&&"string"===xt(e)||"number"===xt(e)?n(t[e]):n(t)},"array"===xt(t))for(o=0,s=t.length;o=G;x=1<=G?++D:--D)b.push(B+x/i*($-B));b.push($)}else if("l"===e.substr(0,1)){if(B<=0)throw"Logarithmic scales are only possible for values > 0";for(T=Math.LOG10E*K(B),L=Math.LOG10E*K($),b.push(B),x=ht=1,U=i-1;1<=U?ht<=U:ht>=U;x=1<=U?++ht:--ht)b.push(nt(10,T+x/i*(L-T)));b.push($)}else if("q"===e.substr(0,1)){for(b.push(B),x=n=1,H=i-1;1<=H?n<=H:n>=H;x=1<=H?++n:--n)O=(lt.length-1)*x/i,(Q=M(O))===O?b.push(lt[Q]):(k=O-Q,b.push(lt[Q]*(1-k)+lt[Q+1]*k));b.push($)}else if("k"===e.substr(0,1)){for(N=lt.length,m=new Array(N),E=new Array(i),rt=!0,P=0,y=null,(y=[]).push(B),x=r=1,X=i-1;1<=X?r<=X:r>=X;x=1<=X?++r:--r)y.push(B+x/i*($-B));for(y.push($);rt;){for(w=s=0,W=i-1;0<=W?s<=W:s>=W;w=0<=W?++s:--s)E[w]=0;for(x=o=0,J=N-1;0<=J?o<=J:o>=J;x=0<=J?++o:--o){for(at=lt[x],R=Number.MAX_VALUE,w=a=0,Z=i-1;0<=Z?a<=Z:a>=Z;w=0<=Z?++a:--a)(v=A(y[w]-at))=tt;w=0<=tt?++l:--l)F[w]=null;for(x=h=0,et=N-1;0<=et?h<=et:h>=et;x=0<=et?++h:--h)null===F[I=m[x]]?F[I]=lt[x]:F[I]+=lt[x];for(w=c=0,it=i-1;0<=it?c<=it:c>=it;w=0<=it?++c:--c)F[w]*=1/E[w];for(rt=!1,w=u=0,q=i-1;0<=q?u<=q:u>=q;w=0<=q?++u:--u)if(F[w]!==y[x]){rt=!0;break}y=F,++P>200&&(rt=!1)}for(S={},w=g=0,V=i-1;0<=V?g<=V:g>=V;w=0<=V?++g:--g)S[w]=[];for(x=d=0,z=N-1;0<=z?d<=z:d>=z;x=0<=z?++d:--d)S[I=m[x]].push(lt[x]);for(st=[],w=p=0,Y=i-1;0<=Y?p<=Y:p>=Y;w=0<=Y?++p:--p)st.push(S[w][0]),st.push(S[w][S[w].length-1]);for(st=st.sort((function(t,e){return t-e})),b.push(st[0]),x=f=1,j=st.length-1;f<=j;x=f+=2)ot=st[x],isNaN(ot)||-1!==b.indexOf(ot)||b.push(ot)}return b},N=function(t,e,i){var n,r,s,o;return t=(n=wt(arguments))[0],e=n[1],i=n[2],isNaN(t)&&(t=0),(t/=360)<1/3?s=1-((r=(1-e)/3)+(o=(1+e*w(h*t)/w(a-h*t))/3)):t<2/3?r=1-((o=(1-e)/3)+(s=(1+e*w(h*(t-=1/3))/w(a-h*t))/3)):o=1-((s=(1-e)/3)+(r=(1+e*w(h*(t-=2/3))/w(a-h*t))/3)),[255*(o=W(i*o*3)),255*(s=W(i*s*3)),255*(r=W(i*r*3)),n.length>3?n[3]:1]},lt=function(){var t,e,i,n,r,s,o;return r=(s=wt(arguments))[0],e=s[1],t=s[2],h=2*Math.PI,r/=255,e/=255,t/=255,0===(o=1-Math.min(r,e,t)/(n=(r+e+t)/3))?i=0:(i=(r-e+(r-t))/2,i/=Math.sqrt((r-e)*(r-e)+(r-t)*(e-t)),i=Math.acos(i),t>e&&(i=h-i),i/=h),[360*i,o,n]},C.hsi=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(i,Bt.call(arguments).concat(["hsi"]),(function(){}))},d.hsi=N,i.prototype.hsi=function(){return lt(this._rgb)},Q=function(t,e,i,n){var r,s,o,a,l,h,c,u,g,d;return"hsl"===n?(g=t.hsl(),d=e.hsl()):"hsv"===n?(g=t.hsv(),d=e.hsv()):"hcg"===n?(g=t.hcg(),d=e.hcg()):"hsi"===n?(g=t.hsi(),d=e.hsi()):"lch"!==n&&"hcl"!==n||(n="hcl",g=t.hcl(),d=e.hcl()),"h"===n.substr(0,1)&&(s=g[0],c=g[1],a=g[2],o=d[0],u=d[1],l=d[2]),isNaN(s)||isNaN(o)?isNaN(s)?isNaN(o)?r=Number.NaN:(r=o,1!==a&&0!==a||"hsv"===n||(h=u)):(r=s,1!==l&&0!==l||"hsv"===n||(h=c)):r=s+i*(o>s&&o-s>180?o-(s+360):o180?o+360-s:o-s),null==h&&(h=c+i*(u-c)),C[n](r,h,a+i*(l-a))},U=function(t,e,i,n){var r,s;return r=t.num(),s=e.num(),C.num(r+(s-r)*i,"num")},(p=p.concat(function(){var t,e,i,n;for(n=[],e=0,t=(i=["hsv","hsl","hsi","hcl","lch","hcg"]).length;e{"use strict";function e(t,e,n){n=n||2;var s,o,a,l,u,g,p,A=e&&e.length,f=A?e[0]*n:t.length,m=i(t,0,f,n,!0),_=[];if(!m||m.next===m.prev)return _;if(A&&(m=function(t,e,n,r){var s,o,a,l=[];for(s=0,o=e.length;s80*n){s=a=t[0],o=l=t[1];for(var y=n;ya&&(a=u),g>l&&(l=g);p=0!==(p=Math.max(a-s,l-o))?32767/p:0}return r(m,_,n,s,o,p,0),_}function i(t,e,i,n,r){var s,o;if(r===S(t,e,i,n)>0)for(s=e;s=e;s-=n)o=v(s,t[s],t[s+1],o);return o&&m(o,o.next)&&(x(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!m(n,n.next)&&0!==f(n.prev,n,n.next))n=n.next;else{if(x(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function r(t,e,i,h,c,u,d){if(t){!d&&u&&function(t,e,i,n){var r=t;do{0===r.z&&(r.z=g(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,l,h=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e0||l>0&&n;)0!==a&&(0===l||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,h*=2}while(o>1)}(r)}(t,h,c,u);for(var p,A,f=t;t.prev!==t.next;)if(p=t.prev,A=t.next,u?o(t,h,c,u):s(t))e.push(p.i/i|0),e.push(t.i/i|0),e.push(A.i/i|0),x(t),t=A.next,f=A.next;else if((t=A)===f){d?1===d?r(t=a(n(t),e,i),e,i,h,c,u,2):2===d&&l(t,e,i,h,c,u):r(n(t),e,i,h,c,u,1);break}}}function s(t){var e=t.prev,i=t,n=t.next;if(f(e,i,n)>=0)return!1;for(var r=e.x,s=i.x,o=n.x,a=e.y,l=i.y,h=n.y,c=rs?r>o?r:o:s>o?s:o,d=a>l?a>h?a:h:l>h?l:h,A=n.next;A!==e;){if(A.x>=c&&A.x<=g&&A.y>=u&&A.y<=d&&p(r,a,s,l,o,h,A.x,A.y)&&f(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function o(t,e,i,n){var r=t.prev,s=t,o=t.next;if(f(r,s,o)>=0)return!1;for(var a=r.x,l=s.x,h=o.x,c=r.y,u=s.y,d=o.y,A=al?a>h?a:h:l>h?l:h,y=c>u?c>d?c:d:u>d?u:d,I=g(A,m,e,i,n),E=g(_,y,e,i,n),C=t.prevZ,v=t.nextZ;C&&C.z>=I&&v&&v.z<=E;){if(C.x>=A&&C.x<=_&&C.y>=m&&C.y<=y&&C!==r&&C!==o&&p(a,c,l,u,h,d,C.x,C.y)&&f(C.prev,C,C.next)>=0)return!1;if(C=C.prevZ,v.x>=A&&v.x<=_&&v.y>=m&&v.y<=y&&v!==r&&v!==o&&p(a,c,l,u,h,d,v.x,v.y)&&f(v.prev,v,v.next)>=0)return!1;v=v.nextZ}for(;C&&C.z>=I;){if(C.x>=A&&C.x<=_&&C.y>=m&&C.y<=y&&C!==r&&C!==o&&p(a,c,l,u,h,d,C.x,C.y)&&f(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;v&&v.z<=E;){if(v.x>=A&&v.x<=_&&v.y>=m&&v.y<=y&&v!==r&&v!==o&&p(a,c,l,u,h,d,v.x,v.y)&&f(v.prev,v,v.next)>=0)return!1;v=v.nextZ}return!0}function a(t,e,i){var r=t;do{var s=r.prev,o=r.next.next;!m(s,o)&&_(s,r,r.next,o)&&E(s,o)&&E(o,s)&&(e.push(s.i/i|0),e.push(r.i/i|0),e.push(o.i/i|0),x(r),x(r.next),r=t=o),r=r.next}while(r!==t);return n(r)}function l(t,e,i,s,o,a){var l=t;do{for(var h=l.next.next;h!==l.prev;){if(l.i!==h.i&&A(l,h)){var c=C(l,h);return l=n(l,l.next),c=n(c,c.next),r(l,e,i,s,o,a,0),void r(c,e,i,s,o,a,0)}h=h.next}l=l.next}while(l!==t)}function h(t,e){return t.x-e.x}function c(t,e){var i=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o&&(o=a,i=n.x=n.x&&n.x>=c&&r!==n.x&&p(si.x||n.x===i.x&&u(i,n)))&&(i=n,d=l)),n=n.next}while(n!==h);return i}(t,e);if(!i)return e;var r=C(i,t);return n(r,r.next),n(i,i.next)}function u(t,e){return f(t.prev,t,e.prev)<0&&f(e.next,t,t.next)<0}function g(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-i)*r|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*r|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,i=t;do{(e.x=(t-o)*(s-a)&&(t-o)*(n-a)>=(i-o)*(e-a)&&(i-o)*(s-a)>=(r-o)*(n-a)}function A(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&_(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(E(t,e)&&E(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&(f(t.prev,t,e.prev)||f(t,e.prev,e))||m(t,e)&&f(t.prev,t,t.next)>0&&f(e.prev,e,e.next)>0)}function f(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function m(t,e){return t.x===e.x&&t.y===e.y}function _(t,e,i,n){var r=I(f(t,e,i)),s=I(f(t,e,n)),o=I(f(i,n,t)),a=I(f(i,n,e));return r!==s&&o!==a||(!(0!==r||!y(t,i,e))||(!(0!==s||!y(t,n,e))||(!(0!==o||!y(i,t,n))||!(0!==a||!y(i,e,n)))))}function y(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function I(t){return t>0?1:t<0?-1:0}function E(t,e){return f(t.prev,t,t.next)<0?f(t,e,t.next)>=0&&f(t,t.prev,e)>=0:f(t,e,t.prev)<0||f(t,t.next,e)<0}function C(t,e){var i=new w(t.i,t.x,t.y),n=new w(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function v(t,e,i,n){var r=new w(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function x(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function w(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function S(t,e,i,n){for(var r=0,s=e,o=i-n;s0&&(n+=t[r-1].length,i.holes.push(n))}return i}},177:function(t){ +/**! + + @license + handlebars v4.5.2 + +Copyright (C) 2011-2017 by Yehuda Katz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ +t.exports=function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={exports:{},id:n,loaded:!1};return t[n].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){"use strict";function n(){var t=g();return t.compile=function(e,i){return l.compile(e,i,t)},t.precompile=function(e,i){return l.precompile(e,i,t)},t.AST=o.default,t.Compiler=l.Compiler,t.JavaScriptCompiler=h.default,t.Parser=a.parser,t.parse=a.parse,t.parseWithoutProcessing=a.parseWithoutProcessing,t}var r=i(1).default;e.__esModule=!0;var s=r(i(2)),o=r(i(35)),a=i(36),l=i(41),h=r(i(42)),c=r(i(39)),u=r(i(34)),g=s.default.create,d=n();d.create=n,u.default(d),d.Visitor=c.default,d.default=d,e.default=d,t.exports=e.default},function(t,e){"use strict";e.default=function(t){return t&&t.__esModule?t:{default:t}},e.__esModule=!0},function(t,e,i){"use strict";function n(){var t=new o.HandlebarsEnvironment;return h.extend(t,o),t.SafeString=a.default,t.Exception=l.default,t.Utils=h,t.escapeExpression=h.escapeExpression,t.VM=c,t.template=function(e){return c.template(e,t)},t}var r=i(3).default,s=i(1).default;e.__esModule=!0;var o=r(i(4)),a=s(i(21)),l=s(i(6)),h=r(i(5)),c=r(i(22)),u=s(i(34)),g=n();g.create=n,u.default(g),g.default=g,e.default=g,t.exports=e.default},function(t,e){"use strict";e.default=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e},e.__esModule=!0},function(t,e,i){"use strict";function n(t,e,i){this.helpers=t||{},this.partials=e||{},this.decorators=i||{},a.registerDefaultHelpers(this),l.registerDefaultDecorators(this)}var r=i(1).default;e.__esModule=!0,e.HandlebarsEnvironment=n;var s=i(5),o=r(i(6)),a=i(10),l=i(18),h=r(i(20)),c="4.5.2";e.VERSION=c;var u=8;e.COMPILER_REVISION=u;var g=7;e.LAST_COMPATIBLE_COMPILER_REVISION=g;var d={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0 <4.3.0",8:">= 4.3.0"};e.REVISION_CHANGES=d;var p="[object Object]";n.prototype={constructor:n,logger:h.default,log:h.default.log,registerHelper:function(t,e){if(s.toString.call(t)===p){if(e)throw new o.default("Arg not supported with multiple helpers");s.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if(s.toString.call(t)===p)s.extend(this.partials,t);else{if(void 0===e)throw new o.default('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if(s.toString.call(t)===p){if(e)throw new o.default("Arg not supported with multiple decorators");s.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]}};var A=h.default.log;e.log=A,e.createFrame=s.createFrame,e.logger=h.default},function(t,e){"use strict";function i(t){return c[t]}function n(t){for(var e=1;e":">",'"':""","'":"'","`":"`","=":"="},u=/[&<>"'`=]/g,g=/[&<>"'`=]/,d=Object.prototype.toString;e.toString=d;var p=function(t){return"function"==typeof t};p(/x/)&&(e.isFunction=p=function(t){return"function"==typeof t&&"[object Function]"===d.call(t)}),e.isFunction=p;var A=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===d.call(t)};e.isArray=A},function(t,e,i){"use strict";function n(t,e){var i=e&&e.loc,o=void 0,a=void 0,l=void 0,h=void 0;i&&(o=i.start.line,a=i.end.line,l=i.start.column,h=i.end.column,t+=" - "+o+":"+l);for(var c=Error.prototype.constructor.call(this,t),u=0;u0?(i.ids&&(i.ids=[i.name]),t.helpers.each(e,i)):r(this);if(i.data&&i.ids){var o=n.createFrame(i.data);o.contextPath=n.appendContextPath(i.data.contextPath,i.name),i={data:o}}return s(e,i)}))},t.exports=e.default},function(t,e,i){(function(n){"use strict";var r=i(1).default;e.__esModule=!0;var s=i(5),o=r(i(6));e.default=function(t){t.registerHelper("each",(function(t,e){function i(e,i,n){c&&(c.key=e,c.index=i,c.first=0===i,c.last=!!n,u&&(c.contextPath=u+e)),h+=r(t[e],{data:c,blockParams:s.blockParams([t[e],e],[u+e,null])})}if(!e)throw new o.default("Must pass iterator to #each");var r=e.fn,a=e.inverse,l=0,h="",c=void 0,u=void 0;if(e.data&&e.ids&&(u=s.appendContextPath(e.data.contextPath,e.ids[0])+"."),s.isFunction(t)&&(t=t.call(this)),e.data&&(c=s.createFrame(e.data)),t&&"object"==typeof t)if(s.isArray(t))for(var g=t.length;l=0?e:parseInt(t,10)}return t},log:function(t){if(t=r.lookupLevel(t),"undefined"!=typeof console&&r.lookupLevel(r.level)<=t){var e=r.methodMap[t];console[e]||(e="log");for(var i=arguments.length,n=Array(i>1?i-1:0),s=1;s=f.LAST_COMPATIBLE_COMPILER_REVISION&&e<=f.COMPILER_REVISION)){if(e2&&E.push("'"+this.terminals_[_]+"'");v=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[d]||d)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(v,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:E})}}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+d);switch(f[0]){case 1:n.push(d),r.push(this.lexer.yytext),s.push(this.lexer.yylloc),n.push(f[1]),d=null,p?(d=p,p=null):(h=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,c>0&&c--);break;case 2:if(y=this.productions_[f[1]][1],C.$=r[r.length-y],C._$={first_line:s[s.length-(y||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(y||1)].first_column,last_column:s[s.length-1].last_column},g&&(C._$.range=[s[s.length-(y||1)].range[0],s[s.length-1].range[1]]),void 0!==(m=this.performAction.call(C,a,h,l,this.yy,f[1],r,s)))return m;y&&(n=n.slice(0,-1*y*2),r=r.slice(0,-1*y),s=s.slice(0,-1*y)),n.push(this.productions_[f[1]][0]),r.push(C.$),s.push(C._$),I=o[n[n.length-2]][n[n.length-1]],n.push(I);break;case 3:return!0}}return!0}},i=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var n=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===n.length?this.yylloc.first_column:0)+n[n.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;var t,e,i,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),o=0;oe[0].length)||(e=i,n=o,this.options.flex));o++);return e?((r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,s[n],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)},options:{},performAction:function(t,e,i,n){function r(t,i){return e.yytext=e.yytext.substring(t,e.yyleng-i+t)}switch(i){case 0:if("\\\\"===e.yytext.slice(-2)?(r(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(r(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:case 5:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(r(5,9),"END_RAW_BLOCK");case 6:case 22:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:case 23:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 24:return 73;case 25:case 26:case 41:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=r(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=r(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},rules:[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]+?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],conditions:{mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}}};return t}();return e.lexer=i,t.prototype=e,e.Parser=t,new t}();e.default=i,t.exports=e.default},function(t,e,i){"use strict";function n(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}function r(t,e,i){void 0===e&&(e=t.length);var n=t[e-1],r=t[e-2];return n?"ContentStatement"===n.type?(r||!i?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(n.original):void 0:i}function s(t,e,i){void 0===e&&(e=-1);var n=t[e+1],r=t[e+2];return n?"ContentStatement"===n.type?(r||!i?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(n.original):void 0:i}function o(t,e,i){var n=t[null==e?0:e+1];if(n&&"ContentStatement"===n.type&&(i||!n.rightStripped)){var r=n.value;n.value=n.value.replace(i?/^\s+/:/^[ \t]*\r?\n?/,""),n.rightStripped=n.value!==r}}function a(t,e,i){var n=t[null==e?t.length-1:e-1];if(n&&"ContentStatement"===n.type&&(i||!n.leftStripped)){var r=n.value;return n.value=n.value.replace(i?/\s+$/:/[ \t]+$/,""),n.leftStripped=n.value!==r,n.leftStripped}}var l=i(1).default;e.__esModule=!0;var h=l(i(39));n.prototype=new h.default,n.prototype.Program=function(t){var e=!this.options.ignoreStandalone,i=!this.isRootSeen;this.isRootSeen=!0;for(var n=t.body,l=0,h=n.length;l0)throw new A.default("Invalid path: "+n,{loc:i});".."===l&&s++}}return{type:"PathExpression",data:t,depth:s,parts:r,original:n,loc:i}}function h(t,e,i,n,r,s){var o=n.charAt(3)||n.charAt(2),a="{"!==o&&"&"!==o;return{type:/\*/.test(n)?"Decorator":"MustacheStatement",path:t,params:e,hash:i,escaped:a,strip:r,loc:this.locInfo(s)}}function c(t,e,i,r){n(t,i);var s={type:"Program",body:e,strip:{},loc:r=this.locInfo(r)};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:s,openStrip:{},inverseStrip:{},closeStrip:{},loc:r}}function u(t,e,i,r,s,o){r&&r.path&&n(t,r);var a=/\*/.test(t.open);e.blockParams=t.blockParams;var l=void 0,h=void 0;if(i){if(a)throw new A.default("Unexpected inverse block on decorator",i);i.chain&&(i.program.body[0].closeStrip=r.strip),h=i.strip,l=i.program}return s&&(s=l,l=e,e=s),{type:a?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:l,openStrip:t.strip,inverseStrip:h,closeStrip:r&&r.strip,loc:this.locInfo(o)}}function g(t,e){if(!e&&t.length){var i=t[0].loc,n=t[t.length-1].loc;i&&n&&(e={source:i.source,start:{line:i.start.line,column:i.start.column},end:{line:n.end.line,column:n.end.column}})}return{type:"Program",body:t,strip:{},loc:e}}function d(t,e,i,r){return n(t,i),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:i&&i.strip,loc:this.locInfo(r)}}var p=i(1).default;e.__esModule=!0,e.SourceLocation=r,e.id=s,e.stripFlags=o,e.stripComment=a,e.preparePath=l,e.prepareMustache=h,e.prepareRawBlock=c,e.prepareBlock=u,e.prepareProgram=g,e.preparePartialBlock=d;var A=p(i(6))},function(t,e,i){"use strict";function n(){}function r(t,e,i){if(null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+t);"data"in(e=e||{})||(e.data=!0),e.compat&&(e.useDepths=!0);var n=i.parse(t,e),r=(new i.Compiler).compile(n,e);return(new i.JavaScriptCompiler).compile(r,e)}function s(t,e,i){function n(){var n=i.parse(t,e),r=(new i.Compiler).compile(n,e),s=(new i.JavaScriptCompiler).compile(r,e,void 0,!0);return i.template(s)}function r(t,e){return s||(s=n()),s.call(this,t,e)}if(void 0===e&&(e={}),null==t||"string"!=typeof t&&"Program"!==t.type)throw new h.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+t);"data"in(e=c.extend({},e))||(e.data=!0),e.compat&&(e.useDepths=!0);var s=void 0;return r._setup=function(t){return s||(s=n()),s._setup(t)},r._child=function(t,e,i,r){return s||(s=n()),s._child(t,e,i,r)},r}function o(t,e){if(t===e)return!0;if(c.isArray(t)&&c.isArray(e)&&t.length===e.length){for(var i=0;i1)throw new h.default("Unsupported number of partial arguments: "+i.length,t);i.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):i.push({type:"PathExpression",parts:[],depth:0}));var n=t.name.original,r="SubExpression"===t.name.type;r&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var s=t.indent||"";this.options.preventIndent&&s&&(this.opcode("appendContent",s),s=""),this.opcode("invokePartial",r,n,s),this.opcode("append")},PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){a(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,i){var n=t.path,r=n.parts[0],s=null!=e||null!=i;this.opcode("getContext",n.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",i),n.strict=!0,this.accept(n),this.opcode("invokeAmbiguous",r,s)},simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,i){var n=this.setupFullMustacheParams(t,e,i),r=t.path,s=r.parts[0];if(this.options.knownHelpers[s])this.opcode("invokeKnownHelper",n.length,s);else{if(this.options.knownHelpersOnly)throw new h.default("You specified knownHelpersOnly, but used the unknown helper "+s,t);r.strict=!0,r.falsy=!0,this.accept(r),this.opcode("invokeHelper",n.length,r.original,u.default.helpers.simpleId(r))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],i=u.default.helpers.scopedId(t),n=!t.depth&&!i&&this.blockParamIndex(e);n?this.opcode("lookupBlockParam",n,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,i):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,i=0,n=e.length;for(this.opcode("pushHash");i=0)return[e,r]}}}},function(t,e,i){"use strict";function n(t){this.value=t}function r(){}function s(t,e,i,n){var r=e.popStack(),s=0,o=i.length;for(t&&o--;s0&&(e+=", "+i.join(", "));var n=0;for(var r in this.aliases){var s=this.aliases[r];this.aliases.hasOwnProperty(r)&&s.children&&s.referenceCount>1&&(e+=", alias"+ ++n+"="+r,s.children[0]="alias"+n)}var o=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&o.push("blockParams"),this.useDepths&&o.push("depths");var a=this.mergeSource(e);return t?(o.push(a),Function.apply(this,o)):this.source.wrap(["function(",o.join(","),") {\n ",a,"}"])},mergeSource:function(t){var e=this.environment.isSimple,i=!this.forceBuffer,n=void 0,r=void 0,s=void 0,o=void 0;return this.source.each((function(t){t.appendToBuffer?(s?t.prepend(" + "):s=t,o=t):(s&&(r?s.prepend("buffer += "):n=!0,o.add(";"),s=o=void 0),r=!0,e||(i=!1))})),i?s?(s.prepend("return "),o.add(";")):r||this.source.push('return "";'):(t+=", buffer = "+(n?"":this.initializeBuffer()),s?(s.prepend("return buffer + "),o.add(";")):this.source.push("return buffer;")),t&&this.source.prepend("var "+t.substring(2)+(n?"":";\n")),this.source.merge()},blockValue:function(t){var e=this.aliasable("container.hooks.blockHelperMissing"),i=[this.contextName(0)];this.setupHelperArgs(t,0,i);var n=this.popStack();i.splice(1,0,n),this.push(this.source.functionCall(e,"call",i))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var i=this.topStack();e.splice(1,0,i),this.pushSource(["if (!",this.lastHelper,") { ",i," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack((function(t){return[" != null ? ",t,' : ""']})),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,i,n){var r=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[r++])),this.resolvePath("context",t,r,e,i)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,i){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,i)},resolvePath:function(t,e,i,n,r){var o=this;if(this.options.strict||this.options.assumeObjects)this.push(s(this.options.strict&&r,this,e,t));else for(var a=e.length;ithis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,i=t.length;e{t.exports='
    \n
    \n
    \n
    \n \n {{{title}}}\n
    \n
    {{{message}}}
    \n
    \n \n
    \n
    \n
    \n
    '},130:t=>{t.exports='
    \n {{#each features}}\n
    \n {{#each attributes}}\n \n \n \n \n \n
    {{key}}{{{value}}}
    \n {{/each}}\n
    \n
    \n {{/each}}\n
    '},649:t=>{t.exports='
    \n \n
    '},512:t=>{t.exports=" {{#each layers}}\n \n {{/each}}"},690:t=>{t.exports='
    \n {{{info}}}\n
    '},279:t=>{t.exports='
    \n

    {{{name}}}

    \n
    {{{desc}}}
    \n
    '},340:t=>{t.exports='
    \n {{{info}}}\n
    '},582:t=>{t.exports='{{#*inline "layerswitcherLayer"}}\n {{#each layers}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n {{#if visible}}\n {{#unless base}}\n
    \n \n \n
    \n {{/unless}}\n
    \n \n
    \n {{/if}}\n
  • \n {{/each}}\n {{/inline}}\n {{#*inline "layerswitcherGroup"}}\n {{#each layerGroups}}\n
  • \n
    \n \n
    \n
    \n {{title}}\n
    \n
    \n \n
    \n {{#unless collapsed}}\n {{#gt layerGroups.length 0}}\n
      \n {{> layerswitcherGroup}}\n
    \n {{/gt}}\n {{#gt layers.length 0}}\n
      \n {{> layerswitcherLayer group=id}}\n
    \n {{/gt}}\n {{/unless}}\n
  • \n {{/each}}\n {{/inline}}\n
    \n
    \n
      \n {{#gt baseLayers.length 0}}\n
    • \n
      Capas base
      \n
        \n {{> layerswitcherLayer layers=baseLayers}}\n
      \n
    • \n {{/gt}}\n {{#gt layerGroups.length 0}}\n
    • \n
      Grupos de capas
      \n
        \n {{> layerswitcherGroup }}\n
      \n
    • \n {{/gt}}\n {{#gt overlayLayers.length 0}}\n
    • \n
      Otras capas
      \n
        \n {{> layerswitcherLayer layers=overlayLayers}}\n
      \n
    • \n {{/gt}}\n
    \n
    \n
    '},326:t=>{t.exports='
    \n \n
    '},389:t=>{t.exports='
    '},637:t=>{t.exports='
    '},922:t=>{t.exports='
    '},83:t=>{t.exports='
    \n \n
    \n
    '},72:t=>{t.exports='
    '},107:t=>{t.exports='
    '},810:t=>{t.exports='
    \n {{#gt tabs.length 1}}\n
    \n {{#each tabs}}\n
    \n \n
    \n {{/each}}\n
    \n {{/gt}}\n
    \n \n {{#if options.takeMeThere}}\n {{#if options.textMode}}\n \n {{else}}\n \n {{/if}}\n {{/if}}\n
    {{{tabs.0.content}}}
    \n
    \n
    '},29:t=>{t.exports='
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    '},797:t=>{t.exports='
    \n
    {{scale}} = 1 :
    \n
    \n
    '},959:t=>{t.exports='
    '},93:t=>{t.exports='
    \n \n
    '},645:(t,e)=>{ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +e.read=function(t,e,i,n,r){var s,o,a=8*r-n-1,l=(1<>1,c=-7,u=i?r-1:0,g=i?-1:1,d=t[e+u];for(u+=g,s=d&(1<<-c)-1,d>>=-c,c+=a;c>0;s=256*s+t[e+u],u+=g,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=n;c>0;o=256*o+t[e+u],u+=g,c-=8);if(0===s)s=1-h;else{if(s===l)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,n),s-=h}return(d?-1:1)*o*Math.pow(2,s-n)},e.write=function(t,e,i,n,r,s){var o,a,l,h=8*s-r-1,c=(1<>1,g=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,p=n?1:-1,A=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=c):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+u>=1?g/l:g*Math.pow(2,1-u))*l>=2&&(o++,l/=2),o+u>=c?(a=0,o=c):o+u>=1?(a=(e*l-1)*Math.pow(2,r),o+=u):(a=e*Math.pow(2,u-1)*Math.pow(2,r),o=0));r>=8;t[i+d]=255&a,d+=p,a/=256,r-=8);for(o=o<0;t[i+d]=255&o,d+=p,o/=256,h-=8);t[i+d-p]|=128*A}},98:function(t,e){ +/** + * JSTS. See https://github.com/bjornharrtell/jsts + * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EDLv1.txt + * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_EPLv1.txt + * https://github.com/bjornharrtell/jsts/blob/master/LICENSE_LICENSE_ES6_COLLECTIONS.txt + * @license + */ +!function(t){"use strict";"fill"in Array.prototype||Object.defineProperty(Array.prototype,"fill",{configurable:!0,value:function(t){if(null==this)throw new TypeError(this+" is not an object");var e=Object(this),i=Math.max(Math.min(e.length,9007199254740991),0)||0,n=1 in arguments&&parseInt(Number(arguments[1]),10)||0;n=n<0?Math.max(i+n,0):Math.min(n,i);var r=2 in arguments&&void 0!==arguments[2]?parseInt(Number(arguments[2]),10)||0:i;for(r=r<0?Math.max(i+arguments[2],0):Math.min(r,i);n0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},r.isNaN=t=>Number.isNaN(t),r.isInfinite=t=>!Number.isFinite(t),r.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(h=new Float64Array(1),c=new Int32Array(h.buffer),r.doubleToLongBits=function(t){h[0]=t;var e=0|c[0],i=0|c[1];return!(2146435072&~i)&&!!(1048575&i)&&0!==e&&(e=0,i=2146959360),new n(i,e)},r.longBitsToDouble=function(t){return c[0]=t.low,c[1]=t.high,h[0]}):(s=Math.log2,o=Math.floor,a=Math.pow,l=function(){for(var t=53;t>0;t--){var e=a(2,t)-1;if(o(s(e))+1===t)return e}return 0}(),r.doubleToLongBits=function(t){var e,i,r,h,c,u,g,d,p;if(t<0||1/t===Number.NEGATIVE_INFINITY?(u=1<<31,t=-t):u=0,0===t)return new n(d=u,p=0);if(t===1/0)return new n(d=2146435072|u,p=0);if(t!=t)return new n(d=2146959360,p=0);if(h=0,p=0,(e=o(t))>1)if(e<=l)(h=o(s(e)))<=20?(p=0,d=e<<20-h&1048575):(p=e%(i=a(2,r=h-20))<<32-r,d=e/i&1048575);else for(r=e,p=0;0!==(r=o(i=r/2));)h++,p>>>=1,p|=(1&d)<<31,d>>>=1,i!==r&&(d|=524288);if(g=h+1023,c=0===e,e=t-e,h<52&&0!==e)for(r=0;;){if((i=2*e)>=1?(e=i-1,c?(g--,c=!1):(r<<=1,r|=1,h++)):(e=i,c?0==--g&&(h++,c=!1):(r<<=1,h++)),20===h)d|=r,r=0;else if(52===h){p|=r;break}if(1===i){h<20?d|=r<<20-h:h<52&&(p|=r<<52-h);break}}return d|=g<<20,new n(d|=u,p)},r.longBitsToDouble=function(t){var e,i,n,r,s=t.high,o=t.low;i=s&1<<31?-1:1,n=((2146435072&s)>>20)-1023,r=0,e=1<<19;for(var l=1;l<=20;l++)s&e&&(r+=a(2,-l)),e>>>=1;for(e=1<<31,l=21;l<=52;l++)o&e&&(r+=a(2,-l)),e>>>=1;if(-1023===n){if(0===r)return 0*i;n=-1022}else{if(1024===n)return 0===r?i/0:NaN;r+=1}return i*r*a(2,n)}),A.prototype=Object.create(Error.prototype),A.prototype.constructor=Error;class f extends A{constructor(){super(),f.constructor_.apply(this,arguments)}getClass(){return f}get interfaces_(){return[]}}f.constructor_=function(){if(0===arguments.length)A.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];A.constructor_.call(this,t)}};class m{constructor(){m.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)m.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new f("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];m.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new f:new f(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];m.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new f("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return m}get interfaces_(){return[]}}m.constructor_=function(){};class _{constructor(){_.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=r.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case _.X:this.x=e;break;case _.Y:this.y=e;break;case _.Z:this.z=e;break;default:throw new i("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],i=arguments[1];return!!e.equalsWithTolerance(this.x,t.x,i)&&!!e.equalsWithTolerance(this.y,t.y,i)}}getOrdinate(t){switch(t){case _.X:return this.x;case _.Y:return this.y;case _.Z:return this.z}throw new i("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||r.isNaN(this.z)&&r.isNaN(t.z))}equals(t){return t instanceof _&&this.equals2D(t)}equalInZ(t,i){return e.equalsWithTolerance(this.z,t.z,i)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return m.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new _(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return Math.sqrt(e*e+i*i+n*n)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*t+_.hashCode(this.x))+_.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return _}get interfaces_(){return[u,g,p]}}class y{constructor(){y.constructor_.apply(this,arguments)}static compare(t,e){return te?1:r.isNaN(t)?r.isNaN(e)?0:-1:r.isNaN(e)?1:0}compare(t,e){var i=t,n=e,r=y.compare(i.x,n.x);if(0!==r)return r;var s=y.compare(i.y,n.y);return 0!==s?s:this._dimensionsToTest<=2?0:y.compare(i.z,n.z)}getClass(){return y}get interfaces_(){return[d]}}function I(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}function E(){}function C(){}function v(t){this.message=t||""}function x(){}function w(t){this.message=t||""}function S(t){this.message=t||""}function b(){this.array_=[],arguments[0]instanceof C&&this.addAll(arguments[0])}y.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)y.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new i("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},_.DimensionalComparator=y,_.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)_.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];_.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];_.constructor_.call(this,t,e,_.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},_.serialVersionUID=0x5cbf2c235c7e5800,_.NULL_ORDINATE=r.NaN,_.X=0,_.Y=1,_.Z=2,E.prototype.hasNext=function(){},E.prototype.next=function(){},E.prototype.remove=function(){},C.prototype.add=function(){},C.prototype.addAll=function(){},C.prototype.isEmpty=function(){},C.prototype.iterator=function(){},C.prototype.size=function(){},C.prototype.toArray=function(){},C.prototype.remove=function(){},v.prototype=new Error,v.prototype.name="IndexOutOfBoundsException",x.prototype=Object.create(C.prototype),x.prototype.constructor=x,x.prototype.get=function(){},x.prototype.set=function(){},x.prototype.isEmpty=function(){},w.prototype=new Error,w.prototype.name="NoSuchElementException",S.prototype=new Error,S.prototype.name="OperationNotSupported",b.prototype=Object.create(x.prototype),b.prototype.constructor=b,b.prototype.ensureCapacity=function(){},b.prototype.interfaces_=[x,C],b.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},b.prototype.clear=function(){this.array_=[]},b.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},b.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},b.prototype.iterator=function(){return new L(this)},b.prototype.get=function(t){if(t<0||t>=this.size())throw new v;return this.array_[t]},b.prototype.isEmpty=function(){return 0===this.array_.length},b.prototype.size=function(){return this.array_.length},b.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1&&this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof _){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0&&this.get(t-1).equals2D(i))return null;if(ts&&(i=-1),t=r;t!==s;t+=i)this.add(e[t],n);return!0}}closeRing(){this.size()>0&&this.add(new _(this.get(0)),!1)}getClass(){return B}get interfaces_(){return[]}}B.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},B.coordArrayType=new Array(0).fill(null);class M{constructor(){M.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(r.x,s.x),n=Math.max(r.x,s.x);return!(i>e||ne||nt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,n=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy}}intersects(){if(1===arguments.length){if(arguments[0]instanceof M){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||(t.x>e.x?t.x:e.x)this._maxy||(t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof M){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof _){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new _((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof M){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return 37*(t=37*(t=37*(t=37*t+_.hashCode(this._minx))+_.hashCode(this._maxx))+_.hashCode(this._miny))+_.hashCode(this._maxy)}getClass(){return M}get interfaces_(){return[u,p]}}function T(){}M.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof M){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this.init(t,e,i,n)}},M.serialVersionUID=0x51845cd552189800;class R extends T{constructor(){super(),R.constructor_.apply(this,arguments)}getClass(){return R}get interfaces_(){return[]}}function N(t){this.str=t}function P(t){this.value=t}function F(){}R.constructor_=function(){T.constructor_.call(this,"Projective point not representable on the Cartesian plane.")},N.prototype.append=function(t){this.str+=t},N.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)},N.prototype.toString=function(t){return this.str},P.prototype.intValue=function(){return this.value},P.prototype.compareTo=function(t){return this.valuet?1:0},P.isNaN=t=>Number.isNaN(t),F.isWhitespace=t=>t<=32&&t>=0||127==t,F.toUpperCase=t=>t.toUpperCase();class D{constructor(){D.constructor_.apply(this,arguments)}static sqr(t){return D.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return D.parse(t)}if("number"==typeof arguments[0])return new D(arguments[0])}static sqrt(t){return D.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;F.isWhitespace(t.charAt(e));)e++;var n=!1;if(e=i);){var h=t.charAt(e);if(e++,F.isDigit(h)){var c=h-"0";s.selfMultiply(D.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=P.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var g=s,d=o-a-l;if(0===d)g=s;else if(d>0){var p=D.TEN.pow(d);g=s.divide(p)}else d<0&&(p=D.TEN.pow(-d),g=s.multiply(p));return n?g.negate():g}static createNaN(){return new D(r.NaN,r.NaN)}static copy(t){return new D(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),n=Math.trunc(Math.floor(i));return 10*Math.pow(10,n)<=e&&(n+=1),n}static stringOfChar(t,e){for(var i=new N,n=0;n9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(D.valueOf(h)).multiply(D.TEN),c&&i.selfAdd(D.TEN);var g=!0,d=D.magnitude(i._hi);if(d<0&&Math.abs(d)>=a-l&&(g=!1),!g)break}return e[0]=n,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof D){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof D){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof D){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,n,r=null,s=null,o=null,a=null;return i=this._hi/l,a=(r=(o=D.SPLIT*i)-(r=o-i))*(s=(a=D.SPLIT*l)-(s=a-l))-(n=i*l)+r*(e=l-s)+(t=i-r)*s+t*e,a=i+(o=(this._hi-n-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof D){let r=arguments[0];var t,e,i,n,s=null,o=null,a=null,l=null;return t=(i=this._hi/r._hi)-(s=(a=D.SPLIT*i)-(s=a-i)),l=s*(o=(l=D.SPLIT*r._hi)-(o=l-r._hi))-(n=i*r._hi)+s*(e=r._hi-o)+t*o+t*e,a=(this._hi-n-l+this._lo-i*r._lo)/r._hi,new D(l=i+a,i-l+a)}if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)?D.createNaN():D.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return D.valueOf(1);var e=new D(this),i=D.valueOf(1),n=Math.abs(t);if(n>1)for(;n>0;)n%2==1&&i.selfMultiply(e),(n/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return D.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new D(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof D){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return D.valueOf(0);if(this.isNegative())return D.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=D.valueOf(e),n=this.subtract(i.sqr())._hi*(.5*t);return i.add(n)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,n=null,r=null,s=null;return n=(i=this._hi+o)-(r=i-this._hi),e=(s=(n=o-r+(this._hi-n))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,n=null,r=null,s=null,i=this._hi+c,o=this._lo+u,n=i-(r=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(r=(n=c-r+(this._hi-n))+o))+(r=(a=u-s+(this._lo-a))+(e=r+(i-t))),h=r+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof D){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,n=null,r=null,s=null;i=(r=D.SPLIT*this._hi)-this._hi,s=D.SPLIT*l,i=r-i,t=this._hi-i,n=s-l;var o=(r=this._hi*l)+(s=i*(n=s-n)-r+i*(e=l-n)+t*n+t*e+(this._hi*h+this._lo*l)),a=s+(i=r-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return D.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new D(t,e)}negate(){return this.isNaN()?this:new D(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof D){let t=arguments[0];return t.isNaN()?D.createNaN():D.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)?D.createNaN():D.copy(this).selfMultiply(t,0)}}isNaN(){return r.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=D.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),n=e[0]+1,r=i;if("."===i.charAt(0))r="0"+i;else if(n<0)r="0."+D.stringOfChar("0",-n)+i;else if(-1===i.indexOf(".")){var s=n-i.length;r=i+D.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+r:r}reciprocal(){var t,e,i,n,r=null,s=null,o=null,a=null;t=(i=1/this._hi)-(r=(o=D.SPLIT*i)-(r=o-i)),s=(a=D.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(n=i*this._hi)-(a=r*(s=a-s)-n+r*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new D(l,i-l+o)}toSciNotation(){if(this.isZero())return D.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),n=D.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var r="";i.length>1&&(r=i.substring(1));var s=i.charAt(0)+"."+r;return this.isNegative()?"-"+s+n:s+n}abs(){return this.isNaN()?D.NaN:this.isNegative()?this.negate():new D(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?D.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return D}get interfaces_(){return[p,u,g]}}D.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof D){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];D.constructor_.call(this,D.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},D.PI=new D(3.141592653589793,12246467991473532e-32),D.TWO_PI=new D(6.283185307179586,24492935982947064e-32),D.PI_2=new D(1.5707963267948966,6123233995736766e-32),D.E=new D(2.718281828459045,14456468917292502e-32),D.NaN=new D(r.NaN,r.NaN),D.EPS=123259516440783e-46,D.SPLIT=134217729,D.MAX_PRINT_DIGITS=32,D.TEN=D.valueOf(10),D.ONE=D.valueOf(1),D.SCI_NOT_EXPONENT_CHAR="E",D.SCI_NOT_ZERO="0.0E0";class O{constructor(){O.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var n=O.orientationIndexFilter(t,e,i);if(n<=1)return n;var r=D.valueOf(e.x).selfAdd(-t.x),s=D.valueOf(e.y).selfAdd(-t.y),o=D.valueOf(i.x).selfAdd(-e.x),a=D.valueOf(i.y).selfAdd(-e.y);return r.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof D){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=D.valueOf(r),e=D.valueOf(s),i=D.valueOf(o),n=D.valueOf(a);return t.multiply(n).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,n){var r=D.valueOf(n.y).selfSubtract(i.y).selfMultiply(D.valueOf(e.x).selfSubtract(t.x)),s=D.valueOf(n.x).selfSubtract(i.x).selfMultiply(D.valueOf(e.y).selfSubtract(t.y)),o=r.subtract(s),a=D.valueOf(n.x).selfSubtract(i.x).selfMultiply(D.valueOf(t.y).selfSubtract(i.y)),l=D.valueOf(n.y).selfSubtract(i.y).selfMultiply(D.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=D.valueOf(t.x).selfAdd(D.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=D.valueOf(e.x).selfSubtract(t.x).selfMultiply(D.valueOf(t.y).selfSubtract(i.y)),g=D.valueOf(e.y).selfSubtract(t.y).selfMultiply(D.valueOf(t.x).selfSubtract(i.x)),d=u.subtract(g).selfDivide(o).doubleValue(),p=D.valueOf(i.y).selfAdd(D.valueOf(n.y).selfSubtract(i.y).selfMultiply(d)).doubleValue();return new _(c,p)}static orientationIndexFilter(t,e,i){var n=null,r=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=r-s;if(r>0){if(s<=0)return O.signum(o);n=r+s}else{if(!(r<0))return O.signum(o);if(s>=0)return O.signum(o);n=-r-s}var a=O.DP_SAFE_EPSILON*n;return o>=a||-o>=a?O.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return O}get interfaces_(){return[]}}O.constructor_=function(){},O.DP_SAFE_EPSILON=1e-15;class Q{constructor(){Q.constructor_.apply(this,arguments)}static index(t,e,i){return O.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new i("Ring has fewer than 4 points, so orientation cannot be determined");for(var n=t[0],r=0,s=1;s<=e;s++){var o=t[s];o.y>n.y&&(n=o,r=s)}var a=r;do{(a-=1)<0&&(a=e)}while(t[a].equals2D(n)&&a!==r);var l=r;do{l=(l+1)%e}while(t[l].equals2D(n)&&l!==r);var h=t[a],c=t[l];if(h.equals2D(n)||c.equals2D(n)||h.equals2D(c))return!1;var u=Q.index(h,n,c);return 0===u?h.x>c.x:u>0}getClass(){return Q}get interfaces_(){return[]}}function k(){}Q.constructor_=function(){},Q.CLOCKWISE=-1,Q.RIGHT=Q.CLOCKWISE,Q.COUNTERCLOCKWISE=1,Q.LEFT=Q.COUNTERCLOCKWISE,Q.COLLINEAR=0,Q.STRAIGHT=Q.COLLINEAR,k.arraycopy=(t,e,i,n,r)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class G{constructor(){G.constructor_.apply(this,arguments)}static intersection(t,e,i,n){var s=t.y-e.y,o=e.x-t.x,a=t.x*e.y-e.x*t.y,l=i.y-n.y,h=n.x-i.x,c=i.x*n.y-n.x*i.y,u=s*h-l*o,g=(o*c-h*a)/u,d=(l*a-s*c)/u;if(r.isNaN(g)||r.isInfinite(g)||r.isNaN(d)||r.isInfinite(d))throw new R;return new _(g,d)}getY(){var t=this.y/this.w;if(r.isNaN(t)||r.isInfinite(t))throw new R;return t}getX(){var t=this.x/this.w;if(r.isNaN(t)||r.isInfinite(t))throw new R;return t}getCoordinate(){var t=new _;return t.x=this.getX(),t.y=this.getY(),t}getClass(){return G}get interfaces_(){return[]}}G.constructor_=function(){if(this.x=null,this.y=null,this.w=null,0===arguments.length)this.x=0,this.y=0,this.w=1;else if(1===arguments.length){let t=arguments[0];this.x=t.x,this.y=t.y,this.w=1}else if(2===arguments.length){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];this.x=t,this.y=e,this.w=1}else if(arguments[0]instanceof G&&arguments[1]instanceof G){let t=arguments[0],e=arguments[1];this.x=t.y*e.w-e.y*t.w,this.y=e.x*t.w-t.x*e.w,this.w=t.x*e.y-e.x*t.y}else if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];this.x=t.y-e.y,this.y=e.x-t.x,this.w=t.x*e.y-e.x*t.y}}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.w=i}else if(4===arguments.length){let o=arguments[0],a=arguments[1],l=arguments[2],h=arguments[3];var t=o.y-a.y,e=a.x-o.x,i=o.x*a.y-a.x*o.y,n=l.y-h.y,r=h.x-l.x,s=l.x*h.y-h.x*l.y;this.x=e*s-r*i,this.y=n*i-t*s,this.w=t*r-n*e}};class U{constructor(){U.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return r.isInfinite(e)||r.isNaN(e)?e:e/U.LOG_10}static min(t,e,i,n){var r=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],n=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),n>t&&(t=n),t}}static average(t,e){return(t+e)/2}getClass(){return U}get interfaces_(){return[]}}U.constructor_=function(){},U.LOG_10=Math.log(10);class q{constructor(){q.constructor_.apply(this,arguments)}static segmentToSegment(t,e,i,n){if(t.equals(e))return q.pointToSegment(t,i,n);if(i.equals(n))return q.pointToSegment(n,t,e);var r=!1;if(M.intersects(t,e,i,n)){var s=(e.x-t.x)*(n.y-i.y)-(e.y-t.y)*(n.x-i.x);if(0===s)r=!0;else{var o=(t.y-i.y)*(n.x-i.x)-(t.x-i.x)*(n.y-i.y),a=((t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y))/s,l=o/s;(l<0||l>1||a<0||a>1)&&(r=!0)}}else r=!0;return r?U.min(q.pointToSegment(t,i,n),q.pointToSegment(e,i,n),q.pointToSegment(i,t,e),q.pointToSegment(n,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;if(r<=0)return t.distance(e);if(r>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(s)*Math.sqrt(n)}static pointToLinePerpendicular(t,e,i){var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(r)*Math.sqrt(n)}static pointToSegmentString(t,e){if(0===e.length)throw new i("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r0}getClass(){return K}get interfaces_(){return[X]}}K.constructor_=function(){};class J{constructor(){J.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return J}get interfaces_(){return[X]}}J.constructor_=function(){};class Z{constructor(){Z.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return Z}get interfaces_(){return[X]}}Z.constructor_=function(){},X.Mod2BoundaryNodeRule=W,X.EndPointBoundaryNodeRule=K,X.MultiValentEndPointBoundaryNodeRule=J,X.MonoValentEndPointBoundaryNodeRule=Z,X.constructor_=function(){},X.MOD2_BOUNDARY_RULE=new W,X.ENDPOINT_BOUNDARY_RULE=new K,X.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new J,X.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new Z,X.OGC_SFS_BOUNDARY_RULE=X.MOD2_BOUNDARY_RULE;class ${constructor(){$.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4||!t[0].equals2D(t[t.length-1]))}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=U.clamp(e,0,t.length);var n=(i=U.clamp(i,-1,t.length))-e+1;i<0&&(n=0),e>=t.length&&(n=0),in.length)return 1;if(0===i.length)return 0;var r=$.compare(i,n);return $.isEqualReversed(i,n)?0:r}OLDcompare(t,e){var i=t,n=e;if(i.lengthn.length)return 1;if(0===i.length)return 0;for(var r=$.increasingDirection(i),s=$.increasingDirection(n),o=r>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},dt.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:at,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,n,r=this.root_;do{if(i=r,(n=t.compareTo(r.key))<0)r=r.left;else{if(!(n>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var o={key:t,left:null,right:null,value:e,parent:i,color:at,getValue(){return this.value},getKey(){return this.key}};return n<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},dt.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;ht(t)==ut(ht(ht(t)))?1==lt(e=gt(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==gt(ht(t))&&(t=ht(t),this.rotateLeft(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateRight(ht(ht(t)))):1==lt(e=ut(ht(ht(t))))?(ct(ht(t),at),ct(e,at),ct(ht(ht(t)),1),t=ht(ht(t))):(t==ut(ht(t))&&(t=ht(t),this.rotateRight(t)),ct(ht(t),at),ct(ht(ht(t)),1),this.rotateLeft(ht(ht(t))))}this.root_.color=at},dt.prototype.values=function(){var t=new b,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=dt.successor(e));)t.add(e.value);return t},dt.prototype.entrySet=function(){var t=new st,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=dt.successor(e));)t.add(e);return t},dt.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},dt.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},dt.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},dt.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},dt.prototype.size=function(){return this.size_},dt.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class pt{constructor(){pt.constructor_.apply(this,arguments)}getClass(){return pt}get interfaces_(){return[]}}function At(){}function ft(){this.array_=[],arguments[0]instanceof C&&this.addAll(arguments[0])}pt.constructor_=function(){},At.prototype=new rt,ft.prototype=new At,ft.prototype.contains=function(t){for(var e=0,i=this.array_.length;e=0;){var o=r.substring(0,s);n.add(o),s=(r=r.substring(s+i)).indexOf(e)}r.length>0&&n.add(r);for(var a=new Array(n.size()).fill(null),l=0;l0)for(var s=r;s0&&i.append(" ");for(var r=0;r0&&i.append(","),i.append(Nt.toString(s.getOrdinate(n,r)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?Ft.createClosedRing(t,e,4):e.getOrdinate(0,V.X)===e.getOrdinate(i-1,V.X)&&e.getOrdinate(0,V.Y)===e.getOrdinate(i-1,V.Y)?e:Ft.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var n=t.create(i,e.getDimension()),r=e.size();Ft.copy(e,0,n,0,r);for(var s=r;s0){var i=this._points.copy();Ft.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?It.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return j.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return bt.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return Ft.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return j.TYPENAME_LINEARRING}copy(){return new Vt(this._points.copy(),this._factory)}getClass(){return Vt}get interfaces_(){return[]}}Vt.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];Vt.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(I(arguments[0],V)&&arguments[1]instanceof oe){let t=arguments[0],e=arguments[1];Dt.constructor_.call(this,t,e),this.validateConstruction()}},Vt.MINIMUM_VALID_SIZE=4,Vt.serialVersionUID=-0x3b229e262367a600;class zt extends vt{constructor(){super(),zt.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof j){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return j.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new Pt(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new Kt(t):new Kt(t,e)}}getClass(){return Jt}get interfaces_(){return[z,p]}}Jt.constructor_=function(){},Jt.serialVersionUID=-0x38e49fa6cf6f2e00,Jt.instanceObject=new Jt;var Zt=Object.defineProperty,$t=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&function(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}.call(this,t)}return e||Zt(t,"size",{get:ee}),t.constructor=i,i.prototype=t,i}({delete:function(t){return this.has(t)&&(this._keys.splice(mt,1),this._values.splice(mt,1),this._itp.forEach((function(t){mt-1},has:function(t){return function(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(mt=t.length;mt--&&(i=t[mt])!==(n=e)&&(i==i||n==n););else mt=t.indexOf(e);var i,n;return mt>-1}.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[mt]:void 0},set:function(t,e){return this.has(t)?this._values[mt]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return te(this._itp,this._keys)},values:function(){return te(this._itp,this._values)},entries:function(){return te(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var n=i.next();if(n.done)break;t.call(e,n.value[1],n.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function te(t,e,i){var n=[0],r=!1;return t.push(n),{next:function(){var s,o=n[0];return!r&&ot.add(e))),t},ne.prototype.size=function(){return this.map_.size()};class re{constructor(){re.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof re))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),n=e.getMaximumSignificantDigits();return new P(i).compareTo(new P(n))}getScale(){return this._scale}isFloating(){return this._modelType===re.FLOATING||this._modelType===re.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===re.FLOATING?t="Floating":this._modelType===re.FLOATING_SINGLE?t="Floating-Single":this._modelType===re.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return r.isNaN(t)||this._modelType===re.FLOATING_SINGLE?t:this._modelType===re.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof _){let t=arguments[0];if(this._modelType===re.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===re.FLOATING?t=16:this._modelType===re.FLOATING_SINGLE?t=6:this._modelType===re.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return re}get interfaces_(){return[p,u]}}class se{constructor(){se.constructor_.apply(this,arguments)}readResolve(){return se.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return se}get interfaces_(){return[p]}}se.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,se.nameToTypeMap.put(t,this)},se.serialVersionUID=-552860263173159e4,se.nameToTypeMap=new ne,re.Type=se,re.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=re.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof se){let t=arguments[0];this._modelType=t,t===re.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=re.FIXED,this.setScale(t)}else if(arguments[0]instanceof re){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},re.serialVersionUID=0x6bee6404e9a25c00,re.FIXED=new se("FIXED"),re.FLOATING=new se("FLOATING"),re.FLOATING_SINGLE=new se("FLOATING SINGLE"),re.maximumPreciseValue=9007199254740992;class oe{constructor(){oe.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return Jt.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new _(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new _(t.getMinX(),t.getMinY()),new _(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new _(t.getMinX(),t.getMinY()),new _(t.getMinX(),t.getMaxY()),new _(t.getMaxX(),t.getMaxY()),new _(t.getMaxX(),t.getMinY()),new _(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(I(arguments[0],V))return new Dt(arguments[0],this)}}createMultiLineString(){return 0===arguments.length?new xt(null,this):1===arguments.length?new xt(arguments[0],this):void 0}buildGeometry(t){for(var e=null,i=!1,n=!1,r=t.iterator();r.hasNext();){var s=r.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof vt&&(n=!0)}if(null===e)return this.createGeometryCollection();if(i||n)return this.createGeometryCollection(oe.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof Ut)return this.createMultiPolygon(oe.toPolygonArray(t));if(a instanceof Dt)return this.createMultiLineString(oe.toLineStringArray(t));if(a instanceof Qt)return this.createMultiPoint(oe.toPointArray(t));m.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof _){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(I(arguments[0],V))return new Qt(arguments[0],this)}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(I(arguments[0],V)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Vt){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length)return new Ut(arguments[0],arguments[1],this)}getSRID(){return this._SRID}createGeometryCollection(){return 0===arguments.length?new vt(null,this):1===arguments.length?new vt(arguments[0],this):void 0}createGeometry(t){return new Yt(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof j&&I(arguments[0],V)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(I(arguments[0],V))return new Vt(arguments[0],this)}}createMultiPolygon(){return 0===arguments.length?new zt(null,this):1===arguments.length?new zt(arguments[0],this):void 0}createMultiPoint(){if(0===arguments.length)return new qt(null,this);if(1===arguments.length){if(arguments[0]instanceof Array)return new qt(arguments[0],this);if(I(arguments[0],V)){let n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(n.size()).fill(null),e=0;et.x+" "+t.y,point(t){return he.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,n=t._geometries.length;ir?n:r;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=n>r?o:a)||t.equals(e)||(s=Math.max(o,a))}return m.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var n=t.x-e.x,r=t.y-e.y,s=Math.sqrt(n*n+r*r);return m.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new Pt;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,n){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=n,this._result=this.computeIntersect(t,e,i,n)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((()=>Array(2))),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2))),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new _,this._intPt[1]=new _,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},ge.DONT_INTERSECT=0,ge.DO_INTERSECT=1,ge.COLLINEAR=2,ge.NO_INTERSECTION=0,ge.POINT_INTERSECTION=1,ge.COLLINEAR_INTERSECTION=2;class de extends ge{constructor(){super(),de.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,n){var r=t,s=q.pointToSegment(t,i,n),o=q.pointToSegment(e,i,n);return o1e-4&&k.out.println("Distance = "+r.distance(s))}intersectionWithNormalization(t,e,i,n){var r=new _(t),s=new _(e),o=new _(i),a=new _(n),l=new _;this.normalizeToEnvCentre(r,s,o,a,l);var h=this.safeHCoordinateIntersection(r,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,n){var r=M.intersects(t,e,i),s=M.intersects(t,e,n),o=M.intersects(i,n,t),a=M.intersects(i,n,e);return r&&s?(this._intPt[0]=i,this._intPt[1]=n,ge.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,ge.COLLINEAR_INTERSECTION):r&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):r&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):s&&o?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||r||a?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):s&&a?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||r||o?ge.COLLINEAR_INTERSECTION:ge.POINT_INTERSECTION):ge.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,n,r){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xn.x?i.x:n.x,g=i.y>n.y?i.y:n.y,d=((s>h?s:h)+(ac?o:c)+(l0&&s>0||r<0&&s<0)return ge.NO_INTERSECTION;var o=Q.index(i,n,t),a=Q.index(i,n,e);return o>0&&a>0||o<0&&a<0?ge.NO_INTERSECTION:0===r&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,n):(0===r||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(n)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(n)?this._intPt[0]=e:0===r?this._intPt[0]=new _(i):0===s?this._intPt[0]=new _(n):0===o?this._intPt[0]=new _(t):0===a&&(this._intPt[0]=new _(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,n)),ge.POINT_INTERSECTION)}getClass(){return de}get interfaces_(){return[]}}de.constructor_=function(){};class pe{constructor(){pe.constructor_.apply(this,arguments)}static midPoint(t,e){return new _((t.x+e.x)/2,(t.y+e.y)/2)}minX(){return Math.min(this.p0.x,this.p1.x)}orientationIndex(){if(arguments[0]instanceof pe){let i=arguments[0];var t=Q.index(this.p0,this.p1,i.p0),e=Q.index(this.p0,this.p1,i.p1);return t>=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof _){let t=arguments[0];return Q.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof pe))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new de;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof _){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new _(i);var t=this.projectionFactor(i),e=new _;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof pe){let t=arguments[0];var i=this.projectionFactor(t.p0),n=this.projectionFactor(t.p1);if(i>=1&&n>=1)return null;if(i<=0&&n<=0)return null;var r=this.project(t.p0);i<0&&(r=this.p0),i>1&&(r=this.p1);var s=this.project(t.p1);return n<0&&(s=this.p0),n>1&&(s=this.p1),new pe(r,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return q.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return pe.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,n=e*e+i*i;return n<=0?r.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/n}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),n=r.MAX_VALUE,s=null,o=this.closestPoint(t.p0);n=o.distance(t.p0),i[0]=o,i[1]=t.p0;var a=this.closestPoint(t.p1);(s=a.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||r.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof pe){let t=arguments[0];return q.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof _){let t=arguments[0];return q.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new _;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^Math.trunc(i)^Math.trunc(i>>32)}getClass(){return pe}get interfaces_(){return[u,p]}}pe.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)pe.constructor_.call(this,new _,new _);else if(1===arguments.length){let t=arguments[0];pe.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];pe.constructor_.call(this,new _(t,e),new _(i,n))}},pe.serialVersionUID=0x2d2172135f411c00;class Ae{constructor(){Ae.constructor_.apply(this,arguments)}static toLocationSymbol(t){switch(t){case Ae.EXTERIOR:return"e";case Ae.BOUNDARY:return"b";case Ae.INTERIOR:return"i";case Ae.NONE:return"-"}throw new i("Unknown location value: "+t)}getClass(){return Ae}get interfaces_(){return[]}}Ae.constructor_=function(){},Ae.INTERIOR=0,Ae.BOUNDARY=1,Ae.EXTERIOR=2,Ae.NONE=-1;class fe{constructor(){fe.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===It.SYM_DONTCARE||e===It.SYM_TRUE&&(t>=0||t===It.TRUE)||e===It.SYM_FALSE&&t===It.FALSE||e===It.SYM_P&&t===It.P||e===It.SYM_L&&t===It.L||e===It.SYM_A&&t===It.A}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new fe(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===It.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])||fe.isTrue(this._matrix[Ae.INTERIOR][Ae.BOUNDARY])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.INTERIOR])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.BOUNDARY]))&&this._matrix[Ae.EXTERIOR][Ae.INTERIOR]===It.FALSE&&this._matrix[Ae.EXTERIOR][Ae.BOUNDARY]===It.FALSE}isCoveredBy(){return(fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])||fe.isTrue(this._matrix[Ae.INTERIOR][Ae.BOUNDARY])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.INTERIOR])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.BOUNDARY]))&&this._matrix[Ae.INTERIOR][Ae.EXTERIOR]===It.FALSE&&this._matrix[Ae.BOUNDARY][Ae.EXTERIOR]===It.FALSE}set(){if(1===arguments.length){let n=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])&&this._matrix[Ae.INTERIOR][Ae.EXTERIOR]===It.FALSE&&this._matrix[Ae.BOUNDARY][Ae.EXTERIOR]===It.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===It.A&&e===It.A||t===It.L&&e===It.L||t===It.L&&e===It.A||t===It.P&&e===It.A||t===It.P&&e===It.L)&&this._matrix[Ae.INTERIOR][Ae.INTERIOR]===It.FALSE&&(fe.isTrue(this._matrix[Ae.INTERIOR][Ae.BOUNDARY])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.INTERIOR])||fe.isTrue(this._matrix[Ae.BOUNDARY][Ae.BOUNDARY]))}isOverlaps(t,e){return t===It.P&&e===It.P||t===It.A&&e===It.A?fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])&&fe.isTrue(this._matrix[Ae.INTERIOR][Ae.EXTERIOR])&&fe.isTrue(this._matrix[Ae.EXTERIOR][Ae.INTERIOR]):t===It.L&&e===It.L&&1===this._matrix[Ae.INTERIOR][Ae.INTERIOR]&&fe.isTrue(this._matrix[Ae.INTERIOR][Ae.EXTERIOR])&&fe.isTrue(this._matrix[Ae.EXTERIOR][Ae.INTERIOR])}isEquals(t,e){return t===e&&fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])&&this._matrix[Ae.INTERIOR][Ae.EXTERIOR]===It.FALSE&&this._matrix[Ae.BOUNDARY][Ae.EXTERIOR]===It.FALSE&&this._matrix[Ae.EXTERIOR][Ae.INTERIOR]===It.FALSE&&this._matrix[Ae.EXTERIOR][Ae.BOUNDARY]===It.FALSE}toString(){for(var t=new Pt("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,It.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new i("Should be length 9: "+t);for(var e=0;e<3;e++)for(var n=0;n<3;n++)if(!fe.matches(this._matrix[e][n],t.charAt(3*e+n)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[Ae.INTERIOR][Ae.INTERIOR]===It.FALSE&&this._matrix[Ae.INTERIOR][Ae.BOUNDARY]===It.FALSE&&this._matrix[Ae.BOUNDARY][Ae.INTERIOR]===It.FALSE&&this._matrix[Ae.BOUNDARY][Ae.BOUNDARY]===It.FALSE}isCrosses(t,e){return t===It.P&&e===It.L||t===It.P&&e===It.A||t===It.L&&e===It.A?fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])&&fe.isTrue(this._matrix[Ae.INTERIOR][Ae.EXTERIOR]):t===It.L&&e===It.P||t===It.A&&e===It.P||t===It.A&&e===It.L?fe.isTrue(this._matrix[Ae.INTERIOR][Ae.INTERIOR])&&fe.isTrue(this._matrix[Ae.EXTERIOR][Ae.INTERIOR]):t===It.L&&e===It.L&&0===this._matrix[Ae.INTERIOR][Ae.INTERIOR]}getClass(){return fe}get interfaces_(){return[g]}}fe.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((()=>Array(3))),this.setAll(It.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];fe.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof fe){let t=arguments[0];fe.constructor_.call(this),this._matrix[Ae.INTERIOR][Ae.INTERIOR]=t._matrix[Ae.INTERIOR][Ae.INTERIOR],this._matrix[Ae.INTERIOR][Ae.BOUNDARY]=t._matrix[Ae.INTERIOR][Ae.BOUNDARY],this._matrix[Ae.INTERIOR][Ae.EXTERIOR]=t._matrix[Ae.INTERIOR][Ae.EXTERIOR],this._matrix[Ae.BOUNDARY][Ae.INTERIOR]=t._matrix[Ae.BOUNDARY][Ae.INTERIOR],this._matrix[Ae.BOUNDARY][Ae.BOUNDARY]=t._matrix[Ae.BOUNDARY][Ae.BOUNDARY],this._matrix[Ae.BOUNDARY][Ae.EXTERIOR]=t._matrix[Ae.BOUNDARY][Ae.EXTERIOR],this._matrix[Ae.EXTERIOR][Ae.INTERIOR]=t._matrix[Ae.EXTERIOR][Ae.INTERIOR],this._matrix[Ae.EXTERIOR][Ae.BOUNDARY]=t._matrix[Ae.EXTERIOR][Ae.BOUNDARY],this._matrix[Ae.EXTERIOR][Ae.EXTERIOR]=t._matrix[Ae.EXTERIOR][Ae.EXTERIOR]}};class me{constructor(){me.constructor_.apply(this,arguments)}static toDegrees(t){return 180*t/Math.PI}static normalize(t){for(;t>Math.PI;)t-=me.PI_TIMES_2;for(;t<=-Math.PI;)t+=me.PI_TIMES_2;return t}static angle(){if(1===arguments.length){let t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){let i=arguments[0],n=arguments[1];var t=n.x-i.x,e=n.y-i.y;return Math.atan2(e,t)}}static isAcute(t,e,i){var n=t.x-e.x,r=t.y-e.y;return n*(i.x-e.x)+r*(i.y-e.y)>0}static isObtuse(t,e,i){var n=t.x-e.x,r=t.y-e.y;return n*(i.x-e.x)+r*(i.y-e.y)<0}static interiorAngle(t,e,i){var n=me.angle(e,t),r=me.angle(e,i);return Math.abs(r-n)}static normalizePositive(t){if(t<0){for(;t<0;)t+=me.PI_TIMES_2;t>=me.PI_TIMES_2&&(t=0)}else{for(;t>=me.PI_TIMES_2;)t-=me.PI_TIMES_2;t<0&&(t=0)}return t}static angleBetween(t,e,i){var n=me.angle(e,t),r=me.angle(e,i);return me.diff(n,r)}static diff(t,e){var i=null;return(i=tMath.PI&&(i=2*Math.PI-i),i}static toRadians(t){return t*Math.PI/180}static getTurn(t,e){var i=Math.sin(e-t);return i>0?me.COUNTERCLOCKWISE:i<0?me.CLOCKWISE:me.NONE}static angleBetweenOriented(t,e,i){var n=me.angle(e,t),r=me.angle(e,i)-n;return r<=-Math.PI?r+me.PI_TIMES_2:r>Math.PI?r-me.PI_TIMES_2:r}getClass(){return me}get interfaces_(){return[]}}me.constructor_=function(){},me.PI_TIMES_2=2*Math.PI,me.PI_OVER_2=Math.PI/2,me.PI_OVER_4=Math.PI/4,me.COUNTERCLOCKWISE=Q.COUNTERCLOCKWISE,me.CLOCKWISE=Q.CLOCKWISE,me.NONE=Q.COLLINEAR;class _e{constructor(){_e.constructor_.apply(this,arguments)}static area(t,e,i){return Math.abs(((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2)}static signedArea(t,e,i){return((i.x-t.x)*(e.y-t.y)-(e.x-t.x)*(i.y-t.y))/2}static det(t,e,i,n){return t*n-e*i}static interpolateZ(t,e,i,n){var r=e.x,s=e.y,o=i.x-r,a=n.x-r,l=i.y-s,h=n.y-s,c=o*h-a*l,u=t.x-r,g=t.y-s,d=(h*u-a*g)/c,p=(-l*u+o*g)/c;return e.z+d*(i.z-e.z)+p*(n.z-e.z)}static longestSideLength(t,e,i){var n=t.distance(e),r=e.distance(i),s=i.distance(t),o=n;return r>o&&(o=r),s>o&&(o=s),o}static isAcute(t,e,i){return!!me.isAcute(t,e,i)&&!!me.isAcute(e,i,t)&&!!me.isAcute(i,t,e)}static circumcentre(t,e,i){var n=i.x,r=i.y,s=t.x-n,o=t.y-r,a=e.x-n,l=e.y-r,h=2*_e.det(s,o,a,l),c=_e.det(o,s*s+o*o,l,a*a+l*l),u=_e.det(s,s*s+o*o,a,a*a+l*l);return new _(n-c/h,r+u/h)}static perpendicularBisector(t,e){var i=e.x-t.x,n=e.y-t.y,r=new G(t.x+i/2,t.y+n/2,1),s=new G(t.x-n+i/2,t.y+i+n/2,1);return new G(r,s)}static angleBisector(t,e,i){var n=e.distance(t),r=n/(n+e.distance(i)),s=i.x-t.x,o=i.y-t.y;return new _(t.x+r*s,t.y+r*o)}static area3D(t,e,i){var n=e.x-t.x,r=e.y-t.y,s=e.z-t.z,o=i.x-t.x,a=i.y-t.y,l=i.z-t.z,h=r*l-s*a,c=s*o-n*l,u=n*a-r*o,g=h*h+c*c+u*u;return Math.sqrt(g)/2}static centroid(t,e,i){var n=(t.x+e.x+i.x)/3,r=(t.y+e.y+i.y)/3;return new _(n,r)}static inCentre(t,e,i){var n=e.distance(i),r=t.distance(i),s=t.distance(e),o=n+r+s,a=(n*t.x+r*e.x+s*i.x)/o,l=(n*t.y+r*e.y+s*i.y)/o;return new _(a,l)}area(){return _e.area(this.p0,this.p1,this.p2)}signedArea(){return _e.signedArea(this.p0,this.p1,this.p2)}interpolateZ(t){if(null===t)throw new i("Supplied point is null.");return _e.interpolateZ(t,this.p0,this.p1,this.p2)}longestSideLength(){return _e.longestSideLength(this.p0,this.p1,this.p2)}isAcute(){return _e.isAcute(this.p0,this.p1,this.p2)}circumcentre(){return _e.circumcentre(this.p0,this.p1,this.p2)}area3D(){return _e.area3D(this.p0,this.p1,this.p2)}centroid(){return _e.centroid(this.p0,this.p1,this.p2)}inCentre(){return _e.inCentre(this.p0,this.p1,this.p2)}getClass(){return _e}get interfaces_(){return[]}}_e.constructor_=function(){this.p0=null,this.p1=null,this.p2=null;let t=arguments[0],e=arguments[1],i=arguments[2];this.p0=t,this.p1=e,this.p2=i};var ye=Object.freeze({Coordinate:_,CoordinateList:B,Envelope:M,LineSegment:pe,GeometryFactory:oe,Geometry:j,Point:Qt,LineString:Dt,LinearRing:Vt,Polygon:Ut,GeometryCollection:vt,MultiPoint:qt,MultiLineString:xt,MultiPolygon:zt,Dimension:It,IntersectionMatrix:fe,PrecisionModel:re,Location:Ae,Triangle:_e});class Ie{constructor(){Ie.constructor_.apply(this,arguments)}getCoordinates(){return this._pt}getCoordinate(t){return this._pt[t]}setMinimum(){if(1===arguments.length){let t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(2===arguments.length){let e=arguments[0],i=arguments[1];if(this._isNull)return this.initialize(e,i),null;var t=e.distance(i);tthis._distance&&this.initialize(e,i,t)}}getClass(){return Ie}get interfaces_(){return[]}}Ie.constructor_=function(){this._pt=[new _,new _],this._distance=r.NaN,this._isNull=!0};class Ee{constructor(){Ee.constructor_.apply(this,arguments)}static computeDistance(){if(arguments[2]instanceof Ie&&arguments[0]instanceof Dt&&arguments[1]instanceof _){let r=arguments[0],s=arguments[1],o=arguments[2];for(var t=new pe,e=r.getCoordinates(),i=0;i1||t<=0)throw new i("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t}compute(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)}distance(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()}computeOrientedDistance(t,e,i){var n=new ve(e);if(t.apply(n),i.setMaximum(n.getMaxPointDistance()),this._densifyFrac>0){var r=new xe(e,this._densifyFrac);t.apply(r),i.setMaximum(r.getMaxPointDistance())}}orientedDistance(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()}getClass(){return Ce}get interfaces_(){return[]}}class ve{constructor(){ve.constructor_.apply(this,arguments)}filter(t){this._minPtDist.initialize(),Ee.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)}getMaxPointDistance(){return this._maxPtDist}getClass(){return ve}get interfaces_(){return[H]}}ve.constructor_=function(){this._maxPtDist=new Ie,this._minPtDist=new Ie,this._euclideanDist=new Ee,this._geom=null;let t=arguments[0];this._geom=t};class xe{constructor(){xe.constructor_.apply(this,arguments)}filter(t,e){if(0===e)return null;for(var i=t.getCoordinate(e-1),n=t.getCoordinate(e),r=(n.x-i.x)/this._numSubSegs,s=(n.y-i.y)/this._numSubSegs,o=0;oe||this._maxs?1:0}getClass(){return Be}get interfaces_(){return[d]}}Be.constructor_=function(){},Le.NodeComparator=Be,Le.constructor_=function(){this._min=r.POSITIVE_INFINITY,this._max=r.NEGATIVE_INFINITY};class Me extends Le{constructor(){super(),Me.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return Me}get interfaces_(){return[]}}Me.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};const Te={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return Te.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?yt.sort(i,e):yt.sort(i);const n=t.iterator();for(let t=0,e=i.length;tn&&(i=e.x,n=t.x),this._p.x>=i&&this._p.x<=n&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=Q.index(t,e,this._p);if(r===Q.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new w;var t=this._parent.getGeometryN(this._index++);return t instanceof vt?(this._subcollectionIterator=new Ue(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return Ue}get interfaces_(){return[E]}}Ue.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class qe{constructor(){qe.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return Ae.EXTERIOR;var i=e.getExteriorRing(),n=qe.locatePointInRing(t,i);if(n!==Ae.INTERIOR)return n;for(var r=0;r0&&this.addPoint(t[0])}addHole(t){for(var e=Q.isCCW(t),i=0;i0)t.x=this._cg3.x/3/this._areasum2,t.y=this._cg3.y/3/this._areasum2;else if(this._totalLength>0)t.x=this._lineCentSum.x/this._totalLength,t.y=this._lineCentSum.y/this._totalLength;else{if(!(this._ptCount>0))return null;t.x=this._ptCentSum.x/this._ptCount,t.y=this._ptCentSum.y/this._ptCount}return t}addShell(t){t.length>0&&this.setAreaBasePoint(t[0]);for(var e=!Q.isCCW(t),i=0;i=this.size())throw new IndexOutOfBoundsException;return this.array_[t]},Je.prototype.push=function(t){return this.array_.push(t),t},Je.prototype.pop=function(t){if(0===this.array_.length)throw new Ke;return this.array_.pop()},Je.prototype.peek=function(){if(0===this.array_.length)throw new Ke;return this.array_[this.array_.length-1]},Je.prototype.empty=function(){return 0===this.array_.length},Je.prototype.isEmpty=function(){return this.empty()},Je.prototype.search=function(t){return this.array_.indexOf(t)},Je.prototype.size=function(){return this.array_.length},Je.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e50&&(t=this.reduce(this._inputPts));var e=this.preSort(t),i=this.grahamScan(e),n=this.toCoordinateArray(i);return this.lineOrPolygon(n)}padArray3(t){for(var e=new Array(3).fill(null),i=0;ie[2].y&&(e[2]=t[n]),t[n].x+t[n].y>e[3].x+e[3].y&&(e[3]=t[n]),t[n].x>e[4].x&&(e[4]=t[n]),t[n].x-t[n].y>e[5].x-e[5].y&&(e[5]=t[n]),t[n].y0;)e=i.pop();i.push(e),i.push(t[n])}return i.push(t[0]),i}getClass(){return $e}get interfaces_(){return[]}}class ti{constructor(){ti.constructor_.apply(this,arguments)}static polarCompare(t,e,i){var n=e.x-t.x,r=e.y-t.y,s=i.x-t.x,o=i.y-t.y,a=Q.index(t,e,i);if(a===Q.COUNTERCLOCKWISE)return 1;if(a===Q.CLOCKWISE)return-1;var l=n*n+r*r,h=s*s+o*o;return lh?1:0}compare(t,e){var i=t,n=e;return ti.polarCompare(this._origin,i,n)}getClass(){return ti}get interfaces_(){return[d]}}ti.constructor_=function(){this._origin=null;let t=arguments[0];this._origin=t},$e.RadialComparator=ti,$e.constructor_=function(){if(this._geomFactory=null,this._inputPts=null,1===arguments.length){let t=arguments[0];$e.constructor_.call(this,$e.extractCoordinates(t),t.getFactory())}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._inputPts=Ze.filterCoordinates(t),this._geomFactory=e}};class ei{constructor(){ei.constructor_.apply(this,arguments)}static centre(t){return new _(ei.avg(t.getMinX(),t.getMaxX()),ei.avg(t.getMinY(),t.getMaxY()))}static avg(t,e){return(t+e)/2}addPolygon(t){if(t.isEmpty())return null;var e=null,i=null,n=this.horizontalBisector(t);if(0===n.getLength())i=0,e=n.getCoordinate();else{var r=n.intersection(t),s=this.widestGeometry(r);i=s.getEnvelopeInternal().getWidth(),e=ei.centre(s.getEnvelopeInternal())}(null===this._interiorPoint||i>this._maxWidth)&&(this._interiorPoint=e,this._maxWidth=i)}getInteriorPoint(){return this._interiorPoint}widestGeometry(){if(arguments[0]instanceof vt){let i=arguments[0];if(i.isEmpty())return i;for(var t=i.getGeometryN(0),e=1;et.getEnvelopeInternal().getWidth()&&(t=i.getGeometryN(e));return t}if(arguments[0]instanceof j){let t=arguments[0];return t instanceof vt?this.widestGeometry(t):t}}horizontalBisector(t){var e=t.getEnvelopeInternal(),i=ii.getBisectorY(t);return this._factory.createLineString([new _(e.getMinX(),i),new _(e.getMaxX(),i)])}add(t){if(t instanceof Ut)this.addPolygon(t);else if(t instanceof vt)for(var e=t,i=0;ithis._loY&&(this._loY=t):t>this._centreY&&t=t.length&&(e=0),e}static computeC(t,e,i){return t*i.y-e*i.x}static getMinimumDiameter(t){return new oi(t).getDiameter()}static getMinimumRectangle(t){return new oi(t).getMinimumRectangle()}static computeSegmentForLine(t,e,i){var n=null,r=null;return Math.abs(e)>Math.abs(t)?(n=new _(0,i/e),r=new _(1,i/e-t/e)):(n=new _(i/t,0),r=new _(i/t-e/t,1)),new pe(n,r)}getWidthCoordinate(){return this.computeMinimumDiameter(),this._minWidthPt}getSupportingSegment(){return this.computeMinimumDiameter(),this._inputGeom.getFactory().createLineString([this._minBaseSeg.p0,this._minBaseSeg.p1])}getDiameter(){if(this.computeMinimumDiameter(),null===this._minWidthPt)return this._inputGeom.getFactory().createLineString();var t=this._minBaseSeg.project(this._minWidthPt);return this._inputGeom.getFactory().createLineString([t,this._minWidthPt])}computeWidthConvex(t){this._convexHullPts=t instanceof Ut?t.getExteriorRing().getCoordinates():t.getCoordinates(),0===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=null,this._minBaseSeg=null):1===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[0]):2===this._convexHullPts.length||3===this._convexHullPts.length?(this._minWidth=0,this._minWidthPt=this._convexHullPts[0],this._minBaseSeg.p0=this._convexHullPts[0],this._minBaseSeg.p1=this._convexHullPts[1]):this.computeConvexRingMinDiameter(this._convexHullPts)}computeConvexRingMinDiameter(t){this._minWidth=r.MAX_VALUE;for(var e=1,i=new pe,n=0;n=n;)n=r,s=o,o=oi.nextIndex(t,s),r=e.distancePerpendicular(t[o]);return nn&&(n=l),lo&&(o=h),h0&&n<4&&!this._preserveType?this._factory.createLineString(i):this._factory.createLinearRing(i)}getClass(){return li}get interfaces_(){return[]}}li.constructor_=function(){this._inputGeom=null,this._factory=null,this._pruneEmptyGeometry=!0,this._preserveGeometryCollectionType=!0,this._preserveCollections=!1,this._preserveType=!1};class hi{constructor(){hi.constructor_.apply(this,arguments)}static densifyPoints(t,e,i){for(var n=new pe,r=new B,s=0;s1)for(var l=o/a,h=1;he?t:e)?3:i}static isInHalfPlane(t,e){return e===gi.SE?t===gi.SE||t===gi.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new i("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?gi.NE:gi.SE:e>=0?gi.NW:gi.SW}if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new i("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?gi.NE:gi.SE:e.y>=t.y?gi.NW:gi.SW}}getClass(){return gi}get interfaces_(){return[]}}gi.constructor_=function(){},gi.NE=0,gi.NW=1,gi.SW=2,gi.SE=3;class di{constructor(){di.constructor_.apply(this,arguments)}static init(t,e){if(null!==t._sym||null!==e._sym||null!==t._next||null!==e._next)throw new IllegalStateException("Edges are already initialized");return t.init(e),t}static create(t,e){var i=new di(t),n=new di(e);return i.init(n),i}find(t){var e=this;do{if(null===e)return null;if(e.dest().equals2D(t))return e;e=e.oNext()}while(e!==this);return null}dest(){return this._sym._orig}oNext(){return this._sym._next}insert(t){if(this.oNext()===this)return this.insertAfter(t),null;var e=this.compareTo(t),i=this;do{var n=i.oNext();if(n.compareTo(t)!==e||n===this)return i.insertAfter(t),null;i=n}while(i!==this);m.shouldNeverReachHere()}insertAfter(t){m.equals(this._orig,t.orig());var e=this.oNext();this._sym.setNext(t),t.sym().setNext(e)}degree(){var t=0,e=this;do{t++,e=e.oNext()}while(e!==this);return t}equals(){if(2===arguments.length&&arguments[1]instanceof _&&arguments[0]instanceof _){let t=arguments[0],e=arguments[1];return this._orig.equals2D(t)&&this._sym._orig.equals(e)}}deltaY(){return this._sym._orig.y-this._orig.y}sym(){return this._sym}prev(){return this._sym.next()._sym}compareAngularDirection(t){var e=this.deltaX(),i=this.deltaY(),n=t.deltaX(),r=t.deltaY();if(e===n&&i===r)return 0;var s=gi.quadrant(e,i),o=gi.quadrant(n,r);return s>o?1:s0||this._isIn?Ae.INTERIOR:Ae.EXTERIOR)}getClass(){return Ii}get interfaces_(){return[]}}Ii.constructor_=function(){if(this._boundaryRule=X.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new i("Rule must be non-null");this._boundaryRule=t}};class Ei{constructor(){Ei.constructor_.apply(this,arguments)}static opposite(t){return t===Ei.LEFT?Ei.RIGHT:t===Ei.RIGHT?Ei.LEFT:t}getClass(){return Ei}get interfaces_(){return[]}}Ei.constructor_=function(){},Ei.ON=0,Ei.LEFT=1,Ei.RIGHT=2;class Ci{constructor(){Ci.constructor_.apply(this,arguments)}computeIntersections(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)}getClass(){return Ci}get interfaces_(){return[]}}Ci.constructor_=function(){this.mce=null,this.chainIndex=null;let t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};class vi{constructor(){vi.constructor_.apply(this,arguments)}isDelete(){return this._eventType===vi.DELETE}setDeleteEventIndex(t){this._deleteEventIndex=t}getObject(){return this._obj}compareTo(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===vi.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return vi}get interfaces_(){return[u]}}vi.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=vi.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=vi.INSERT,this._label=t,this._xValue=e,this._obj=i}},vi.INSERT=1,vi.DELETE=2;class xi{constructor(){xi.constructor_.apply(this,arguments)}getClass(){return xi}get interfaces_(){return[]}}xi.constructor_=function(){};class wi{constructor(){wi.constructor_.apply(this,arguments)}static isAdjacentSegments(t,e){return 1===Math.abs(t-e)}isTrivialIntersection(t,e,i,n){if(t===i&&1===this._li.getIntersectionNum()){if(wi.isAdjacentSegments(e,n))return!0;if(t.isClosed()){var r=t.getNumPoints()-1;if(0===e&&n===r||0===n&&e===r)return!0}}return!1}getProperIntersectionPoint(){return this._properIntersectionPoint}setIsDoneIfProperInt(t){this._isDoneWhenProperInt=t}hasProperInteriorIntersection(){return this._hasProperInterior}isBoundaryPointInternal(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next().getCoordinate();if(t.isIntersection(n))return!0}return!1}hasProperIntersection(){return this._hasProper}hasIntersection(){return this._hasIntersection}isDone(){return this._isDone}isBoundaryPoint(t,e){return!(null===e||!this.isBoundaryPointInternal(t,e[0])&&!this.isBoundaryPointInternal(t,e[1]))}setBoundaryNodes(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e}addIntersections(t,e,i,n){if(t===i&&e===n)return null;this.numTests++;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[n],a=i.getCoordinates()[n+1];this._li.computeIntersection(r,s,o,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),i.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,i,n)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),i.addIntersections(this._li,n,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))}getClass(){return wi}get interfaces_(){return[]}}wi.constructor_=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=i};class Si extends xi{constructor(){super(),Si.constructor_.apply(this,arguments)}prepareEvents(){Te.sort(this.events);for(var t=0;tthis.location.length){var e=new Array(3).fill(null);e[Ei.ON]=this.location[Ei.ON],e[Ei.LEFT]=Ae.NONE,e[Ei.RIGHT]=Ae.NONE,this.location=e}for(var i=0;i1&&t.append(Ae.toLocationSymbol(this.location[Ei.LEFT])),t.append(Ae.toLocationSymbol(this.location[Ei.ON])),this.location.length>1&&t.append(Ae.toLocationSymbol(this.location[Ei.RIGHT])),t.toString()}setLocations(t,e,i){this.location[Ei.ON]=t,this.location[Ei.LEFT]=e,this.location[Ei.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t0||!e.coord.equals2D(n);r||i--;var s=new Array(i).fill(null),o=0;s[o++]=new _(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return r&&(s[o]=e.coord),new Fi(s,new Li(this.edge._label))}add(t,e,i){var n=new Bi(t,e,i),r=this._nodeMap.get(n);return null!==r?r:(this._nodeMap.put(n,n),n)}isIntersection(t){for(var e=this.iterator();e.hasNext();)if(e.next().coord.equals(t))return!0;return!1}getClass(){return Mi}get interfaces_(){return[]}}Mi.constructor_=function(){this._nodeMap=new dt,this.edge=null;let t=arguments[0];this.edge=t};class Ti{constructor(){Ti.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(n=1),this._depth[t][i]=n}}}getDelta(t){return this._depth[t][Ei.RIGHT]-this._depth[t][Ei.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?Ae.EXTERIOR:Ae.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let n=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=n.getLocation(t,e);i!==Ae.EXTERIOR&&i!==Ae.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=Ni.depthAtLocation(i):this._depth[t][e]+=Ni.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===Ae.INTERIOR&&this._depth[t][e]++}}getClass(){return Ni}get interfaces_(){return[]}}Ni.constructor_=function(){this._depth=Array(2).fill().map((()=>Array(3)));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=Ni.NULL_VALUE},Ni.NULL_VALUE=-1;class Pi{constructor(){Pi.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){m.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return Pi}get interfaces_(){return[]}}Pi.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class Fi extends Pi{constructor(){super(),Fi.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof fe&&arguments[0]instanceof Li))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,Ei.ON),t.getLocation(1,Ei.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,Ei.LEFT),t.getLocation(1,Ei.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,Ei.RIGHT),t.getLocation(1,Ei.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new Fi(t,Li.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof Fi))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,n=!0,r=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){Fi.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&3===this.pts.length&&!!this.pts[0].equals(this.pts[2])}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new Ri(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new M;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;et._quadrant?1:this._quadrant=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=r.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===Ae.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var n=$.removeRepeatedPoints(t.getCoordinates());if(n.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=n[0],null;var r=e,s=i;Q.isCCW(n)&&(r=i,s=e);var o=new Fi(n,new Li(this._argIndex,Ae.BOUNDARY,r,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,n[0],Ae.BOUNDARY)}insertPoint(t,e,i){var n=this._nodes.addNode(e),r=n.getLabel();null===r?n._label=new Li(t,i):r.setLocation(t,i)}createEdgeSetIntersector(){return new Si}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.eiList.iterator();r.hasNext();){var s=r.next();this.addSelfIntersectionNode(t,s.coord,n)}}add(){if(!(1===arguments.length&&arguments[0]instanceof j))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof zt&&(this._useBoundaryDeterminationRule=!1),t instanceof Ut)this.addPolygon(t);else if(t instanceof Dt)this.addLineString(t);else if(t instanceof Qt)this.addPoint(t);else if(t instanceof qt)this.addCollection(t);else if(t instanceof xt)this.addCollection(t);else if(t instanceof zt)this.addCollection(t);else{if(!(t instanceof vt))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new Oe(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof Dt){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return Vi}get interfaces_(){return[]}}Vi.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new ne,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new Ii,2===arguments.length){let t=arguments[0],e=arguments[1];Vi.constructor_.call(this,t,e,X.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};var zi=Object.freeze({GeometryGraph:Vi});class Yi{constructor(){Yi.constructor_.apply(this,arguments)}visit(t){}getClass(){return Yi}get interfaces_(){return[]}}Yi.constructor_=function(){};class ji{constructor(){ji.constructor_.apply(this,arguments)}isRepeated(){return this._count>1}getRight(){return this._right}getCoordinate(){return this._p}setLeft(t){this._left=t}getX(){return this._p.x}getData(){return this._data}getCount(){return this._count}getLeft(){return this._left}getY(){return this._p.y}increment(){this._count=this._count+1}setRight(t){this._right=t}getClass(){return ji}get interfaces_(){return[]}}ji.constructor_=function(){if(this._p=null,this._data=null,this._left=null,this._right=null,this._count=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._p=new _(t),this._left=null,this._right=null,this._count=1,this._data=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._p=new _(t,e),this._left=null,this._right=null,this._count=1,this._data=i}};class Hi{constructor(){Hi.constructor_.apply(this,arguments)}static toCoordinates(){if(1===arguments.length){let t=arguments[0];return Hi.toCoordinates(t,!1)}if(2===arguments.length){let s=arguments[0],o=arguments[1];for(var t=new B,e=s.iterator();e.hasNext();)for(var i=e.next(),n=o?i.getCount():1,r=0;r0){var t=this.findBestMatchNode(e);if(null!==t)return t.increment(),t}return this.insertExact(e,i)}}query(){if(1===arguments.length){let e=arguments[0];var t=new b;return this.query(e,t),t}if(2===arguments.length)if(arguments[0]instanceof M&&I(arguments[1],x)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,new class{get interfaces_(){return[Yi]}visit(t){e.add(t)}})}else if(arguments[0]instanceof M&&I(arguments[1],Yi)){let t=arguments[0],e=arguments[1];this.queryNode(this._root,t,!0,e)}}queryNode(t,e,i,n){if(null===t)return null;var r=null,s=null,o=null;i?(r=e.getMinX(),s=e.getMaxX(),o=t.getX()):(r=e.getMinY(),s=e.getMaxY(),o=t.getY());var a=o<=s;r=e&&(t.getMinY()>=i&&(n=3),t.getMaxY()<=i&&(n=1)),t.getMaxX()<=e&&(t.getMinY()>=i&&(n=2),t.getMaxY()<=i&&(n=0)),n}hasChildren(){for(var t=0;t<4;t++)if(null!==this._subnode[t])return!0;return!1}isPrunable(){return!(this.hasChildren()||this.hasItems())}addAllItems(t){t.addAll(this._items);for(var e=0;e<4;e++)null!==this._subnode[e]&&this._subnode[e].addAllItems(t);return t}getNodeCount(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+1}size(){for(var t=0,e=0;e<4;e++)null!==this._subnode[e]&&(t+=this._subnode[e].size());return t+this._items.size()}addAllItemsFromOverlapping(t,e){if(!this.isSearchMatch(t))return null;e.addAll(this._items);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].addAllItemsFromOverlapping(t,e)}visitItems(t,e){for(var i=this._items.iterator();i.hasNext();)e.visitItem(i.next())}hasItems(){return!this._items.isEmpty()}remove(t,e){if(!this.isSearchMatch(t))return!1;for(var i=!1,n=0;n<4;n++)if(null!==this._subnode[n]&&(i=this._subnode[n].remove(t,e))){this._subnode[n].isPrunable()&&(this._subnode[n]=null);break}return i||this._items.remove(e)}visit(t,e){if(!this.isSearchMatch(t))return null;this.visitItems(t,e);for(var i=0;i<4;i++)null!==this._subnode[i]&&this._subnode[i].visit(t,e)}getItems(){return this._items}depth(){for(var t=0,e=0;e<4;e++)if(null!==this._subnode[e]){var i=this._subnode[e].depth();i>t&&(t=i)}return t+1}isEmpty(){var t=!0;if(this._items.isEmpty()){for(var e=0;e<4;e++)if(null!==this._subnode[e]&&!this._subnode[e].isEmpty()){t=!1;break}}else t=!1;return t}add(t){this._items.add(t)}getClass(){return Ki}get interfaces_(){return[p]}}function Ji(){}Ki.constructor_=function(){this._items=new b,this._subnode=new Array(4).fill(null)},Ji.exponent=function(t){return function(t,e){var i,n,r,s,o={32:8,64:11}[t];if(s||(i=e<0||1/e<0,isFinite(e)||(s={32:{d:127,c:128,b:0,a:0},64:{d:32752,c:0,b:0,a:0}}[t],i&&(s.d+=1<=2;)n++,r/=2;for(;r<1&&n>0;)n--,r*=2;n<=0&&(r/=2),32===t&&n>254&&(s={d:i?255:127,c:128,b:0,a:0},n=Math.pow(2,o)-1,r=0)}return n}(64,t)-1023},Ji.powerOf2=function(t){return Math.pow(2,t)};class Zi{constructor(){Zi.constructor_.apply(this,arguments)}static computeQuadLevel(t){var e=t.getWidth(),i=t.getHeight(),n=e>i?e:i;return Ji.exponent(n)+1}getLevel(){return this._level}computeKey(){if(1===arguments.length){let t=arguments[0];for(this._level=Zi.computeQuadLevel(t),this._env=new M,this.computeKey(this._level,t);!this._env.contains(t);)this._level+=1,this.computeKey(this._level,t)}else if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=Ji.powerOf2(e);this._pt.x=Math.floor(i.getMinX()/t)*t,this._pt.y=Math.floor(i.getMinY()/t)*t,this._env.init(this._pt.x,this._pt.x+t,this._pt.y,this._pt.y+t)}}getEnvelope(){return this._env}getCentre(){return new _((this._env.getMinX()+this._env.getMaxX())/2,(this._env.getMinY()+this._env.getMaxY())/2)}getPoint(){return this._pt}getClass(){return Zi}get interfaces_(){return[]}}Zi.constructor_=function(){this._pt=new _,this._level=0,this._env=null;let t=arguments[0];this.computeKey(t)};class $i extends Ki{constructor(){super(),$i.constructor_.apply(this,arguments)}static createNode(t){var e=new Zi(t);return new $i(e.getEnvelope(),e.getLevel())}static createExpanded(t,e){var i=new M(e);null!==t&&i.expandToInclude(t._env);var n=$i.createNode(i);return null!==t&&n.insertNode(t),n}find(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1===e?this:null!==this._subnode[e]?this._subnode[e].find(t):this}isSearchMatch(t){return null!==t&&this._env.intersects(t)}getSubnode(t){return null===this._subnode[t]&&(this._subnode[t]=this.createSubnode(t)),this._subnode[t]}getEnvelope(){return this._env}getNode(t){var e=Ki.getSubnodeIndex(t,this._centrex,this._centrey);return-1!==e?this.getSubnode(e).getNode(t):this}createSubnode(t){var e=0,i=0,n=0,r=0;switch(t){case 0:e=this._env.getMinX(),i=this._centrex,n=this._env.getMinY(),r=this._centrey;break;case 1:e=this._centrex,i=this._env.getMaxX(),n=this._env.getMinY(),r=this._centrey;break;case 2:e=this._env.getMinX(),i=this._centrex,n=this._centrey,r=this._env.getMaxY();break;case 3:e=this._centrex,i=this._env.getMaxX(),n=this._centrey,r=this._env.getMaxY()}var s=new M(e,i,n,r);return new $i(s,this._level-1)}insertNode(t){m.isTrue(null===this._env||this._env.contains(t._env));var e=Ki.getSubnodeIndex(t._env,this._centrex,this._centrey);if(t._level===this._level-1)this._subnode[e]=t;else{var i=this.createSubnode(e);i.insertNode(t),this._subnode[e]=i}}getClass(){return $i}get interfaces_(){return[]}}$i.constructor_=function(){this._env=null,this._centrex=null,this._centrey=null,this._level=null;let t=arguments[0],e=arguments[1];this._env=t,this._level=e,this._centrex=(t.getMinX()+t.getMaxX())/2,this._centrey=(t.getMinY()+t.getMaxY())/2};class tn{constructor(){tn.constructor_.apply(this,arguments)}static isZeroWidth(t,e){var i=e-t;if(0===i)return!0;var n=i/Math.max(Math.abs(t),Math.abs(e));return Ji.exponent(n)<=tn.MIN_BINARY_EXPONENT}getClass(){return tn}get interfaces_(){return[]}}tn.constructor_=function(){},tn.MIN_BINARY_EXPONENT=-50;class en extends Ki{constructor(){super(),en.constructor_.apply(this,arguments)}insert(t,e){var i=Ki.getSubnodeIndex(t,en.origin.x,en.origin.y);if(-1===i)return this.add(e),null;var n=this._subnode[i];if(null===n||!n.getEnvelope().contains(t)){var r=$i.createExpanded(n,t);this._subnode[i]=r}this.insertContained(this._subnode[i],t,e)}isSearchMatch(t){return!0}insertContained(t,e,i){m.isTrue(t.getEnvelope().contains(e));var n=tn.isZeroWidth(e.getMinX(),e.getMaxX()),r=tn.isZeroWidth(e.getMinY(),e.getMaxY());(n||r?t.find(e):t.getNode(e)).add(i)}getClass(){return en}get interfaces_(){return[]}}en.constructor_=function(){},en.origin=new _(0,0);class nn{constructor(){nn.constructor_.apply(this,arguments)}insert(t,e){}remove(t,e){}query(){}getClass(){return nn}get interfaces_(){return[]}}nn.constructor_=function(){};class rn{constructor(){rn.constructor_.apply(this,arguments)}static ensureExtent(t,e){var i=t.getMinX(),n=t.getMaxX(),r=t.getMinY(),s=t.getMaxY();return i!==n&&r!==s?t:(i===n&&(n=(i-=e/2)+e/2),r===s&&(s=(r-=e/2)+e/2),new M(i,n,r,s))}size(){return null!==this._root?this._root.size():0}insert(t,e){this.collectStats(t);var i=rn.ensureExtent(t,this._minExtent);this._root.insert(i,e)}query(){if(1===arguments.length){let e=arguments[0];var t=new Fe;return this.query(e,t),t.getItems()}if(2===arguments.length){let t=arguments[0],e=arguments[1];this._root.visit(t,e)}}queryAll(){var t=new b;return this._root.addAllItems(t),t}remove(t,e){var i=rn.ensureExtent(t,this._minExtent);return this._root.remove(i,e)}collectStats(t){var e=t.getWidth();e0&&(this._minExtent=e);var i=t.getHeight();i0&&(this._minExtent=i)}depth(){return null!==this._root?this._root.depth():0}isEmpty(){return null===this._root||this._root.isEmpty()}getClass(){return rn}get interfaces_(){return[nn,p]}}rn.constructor_=function(){this._root=null,this._minExtent=1,this._root=new en},rn.serialVersionUID=-0x678b60c967a25400;var sn=Object.freeze({Quadtree:rn});class on{constructor(){on.constructor_.apply(this,arguments)}getBounds(){}getClass(){return on}get interfaces_(){return[]}}on.constructor_=function(){};class an{constructor(){an.constructor_.apply(this,arguments)}getItem(){return this._item}getBounds(){return this._bounds}getClass(){return an}get interfaces_(){return[on,p]}}an.constructor_=function(){this._bounds=null,this._item=null;let t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};class ln{constructor(){ln.constructor_.apply(this,arguments)}poll(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t}size(){return this._size}reorder(t){for(var e=null,i=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(i)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,i)}clear(){this._size=0,this._items.clear()}peek(){return this.isEmpty()?null:this._items.get(1)}isEmpty(){return 0===this._size}add(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)}getClass(){return ln}get interfaces_(){return[]}}ln.constructor_=function(){this._size=null,this._items=null,this._size=0,this._items=new b,this._items.add(null)};class hn{constructor(){hn.constructor_.apply(this,arguments)}getLevel(){return this._level}size(){return this._childBoundables.size()}getChildBoundables(){return this._childBoundables}addChildBoundable(t){m.isTrue(null===this._bounds),this._childBoundables.add(t)}isEmpty(){return this._childBoundables.isEmpty()}getBounds(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds}getClass(){return hn}get interfaces_(){return[on,p]}}hn.constructor_=function(){if(this._childBoundables=new b,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._level=t}},hn.serialVersionUID=0x5a1e55ec41369800;class cn{constructor(){cn.constructor_.apply(this,arguments)}static area(t){return t.getBounds().getArea()}static isComposite(t){return t instanceof hn}expandToQueue(t,e){var n=cn.isComposite(this._boundable1),r=cn.isComposite(this._boundable2);if(n&&r)return cn.area(this._boundable1)>cn.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new i("neither boundable is composite")}isLeaves(){return!(cn.isComposite(this._boundable1)||cn.isComposite(this._boundable2))}compareTo(t){var e=t;return this._distancee._distance?1:0}expand(t,e,i,n){for(var r=t.getChildBoundables().iterator();r.hasNext();){var s=r.next(),o=new cn(s,e,this._itemDistance);o.getDistance()e?1:t-2),n.getLevel()===t)return r.add(n),null;for(var e=n.getChildBoundables().iterator();e.hasNext();){var i=e.next();i instanceof hn?this.boundablesAtLevel(t,i,r):(m.isTrue(i instanceof an),-1===t&&r.add(i))}return null}}query(){if(1===arguments.length){let e=arguments[0];this.build();var t=new b;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.queryInternal(e,this._root,t),t}if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.queryInternal(t,this._root,e)}}build(){if(this._built)return null;this._root=this._itemBoundables.isEmpty()?this.createNode(0):this.createHigherLevels(this._itemBoundables,-1),this._itemBoundables=null,this._built=!0}getRoot(){return this.build(),this._root}remove(){if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.build(),!!this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.remove(t,this._root,e)}if(3===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2];var t=this.removeItem(s,o);if(t)return!0;for(var e=null,i=s.getChildBoundables().iterator();i.hasNext();){var n=i.next();if(this.getIntersectsOp().intersects(n.getBounds(),r)&&n instanceof hn&&(t=this.remove(r,n,o))){e=n;break}}return null!==e&&e.getChildBoundables().isEmpty()&&s.getChildBoundables().remove(e),t}}createHigherLevels(t,e){m.isTrue(!t.isEmpty());var i=this.createParentBoundables(t,e+1);return 1===i.size()?i.get(0):this.createHigherLevels(i,e+1)}depth(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.depth(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var i=e.next();if(i instanceof hn){var n=this.depth(i);n>t&&(t=n)}}return t+1}}createParentBoundables(t,e){m.isTrue(!t.isEmpty());var i=new b;i.add(this.createNode(e));var n=new b(t);Te.sort(n,this.getComparator());for(var r=n.iterator();r.hasNext();){var s=r.next();this.lastNode(i).getChildBoundables().size()===this.getNodeCapacity()&&i.add(this.createNode(e)),this.lastNode(i).addChildBoundable(s)}return i}isEmpty(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()}getClass(){return un}get interfaces_(){return[p]}}un.IntersectsOp=function(){},un.constructor_=function(){if(this._root=null,this._built=!1,this._itemBoundables=new b,this._nodeCapacity=null,0===arguments.length)un.constructor_.call(this,un.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];m.isTrue(t>1,"Node capacity must be greater than 1"),this._nodeCapacity=t}},un.serialVersionUID=-0x35ef64c82d4c5400,un.DEFAULT_NODE_CAPACITY=10;class gn{constructor(){gn.constructor_.apply(this,arguments)}distance(t,e){}getClass(){return gn}get interfaces_(){return[]}}gn.constructor_=function(){};class dn extends un{constructor(){super(),dn.constructor_.apply(this,arguments)}static centreX(t){return dn.avg(t.getMinX(),t.getMaxX())}static avg(t,e){return(t+e)/2}static getItems(t){for(var e=new Array(t.size()).fill(null),i=0;!t.isEmpty();){var n=t.poll();e[i]=n.getBoundable(0).getItem(),i++}return e}static centreY(t){return dn.avg(t.getMinY(),t.getMaxY())}createParentBoundablesFromVerticalSlices(t,e){m.isTrue(t.length>0);for(var i=new b,n=0;n0&&!((l=(a=s.poll()).getDistance())>=e);)a.isLeaves()?(e=l,i=a):a.expandToQueue(s,e);return[i.getBoundable(0).getItem(),i.getBoundable(1).getItem()]}if(arguments[0]instanceof cn&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1];return this.nearestNeighbour(t,r.POSITIVE_INFINITY,e)}}else if(3===arguments.length){if(I(arguments[2],gn)&&arguments[0]instanceof M&&arguments[1]instanceof Object){let e=arguments[2];var n=new an(arguments[0],arguments[1]);return t=new cn(this.getRoot(),n,e),this.nearestNeighbour(t)[0]}if(Number.isInteger(arguments[2])&&arguments[0]instanceof cn&&"number"==typeof arguments[1]){let t=arguments[0],i=arguments[2];var s;e=arguments[1],(s=new ln).add(t);for(var o=new ln;!s.isEmpty()&&e>=0;){var a,l;if((l=(a=s.poll()).getDistance())>=e)break;a.isLeaves()?o.size()l&&(o.poll(),o.add(a)),e=o.peek().getDistance()):a.expandToQueue(s,e)}return dn.getItems(o)}}else if(4===arguments.length){let e=arguments[2],i=arguments[3];return n=new an(arguments[0],arguments[1]),t=new cn(this.getRoot(),n,e),this.nearestNeighbour(t,i)}}getClass(){return dn}get interfaces_(){return[nn,p]}}class pn extends hn{constructor(){super(),pn.constructor_.apply(this,arguments)}computeBounds(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var i=e.next();null===t?t=new M(i.getBounds()):t.expandToInclude(i.getBounds())}return t}getClass(){return pn}get interfaces_(){return[]}}pn.constructor_=function(){let t=arguments[0];hn.constructor_.call(this,t)},dn.STRtreeNode=pn,dn.constructor_=function(){if(0===arguments.length)dn.constructor_.call(this,dn.DEFAULT_NODE_CAPACITY);else if(1===arguments.length){let t=arguments[0];un.constructor_.call(this,t)}},dn.serialVersionUID=0x39920f7d5f261e0,dn.xComparator=new class{get interfaces_(){return[d]}compare(t,e){return un.compareDoubles(dn.centreX(t.getBounds()),dn.centreX(e.getBounds()))}},dn.yComparator=new class{get interfaces_(){return[d]}compare(t,e){return un.compareDoubles(dn.centreY(t.getBounds()),dn.centreY(e.getBounds()))}},dn.intersectsOp=new class{get interfaces_(){return[IntersectsOp]}intersects(t,e){return t.intersects(e)}},dn.DEFAULT_NODE_CAPACITY=10;var An=Object.freeze({STRtree:dn}),fn=Object.freeze({kdtree:Wi,quadtree:sn,strtree:An});const mn=["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"];class _n{constructor(t){this.geometryFactory=t||new oe}read(t){let e;const i=(e="string"==typeof t?JSON.parse(t):t).type;if(!yn[i])throw new Error("Unknown GeoJSON type: "+e.type);return-1!==mn.indexOf(i)?yn[i].call(this,e.coordinates):"GeometryCollection"===i?yn[i].call(this,e.geometries):yn[i].call(this,e)}write(t){const e=t.getGeometryType();if(!In[e])throw new Error("Geometry is not supported");return In[e].call(this,t)}}const yn={Feature:function(t){const e={};for(let i in t)e[i]=t[i];if(t.geometry){const i=t.geometry.type;if(!yn[i])throw new Error("Unknown GeoJSON type: "+t.type);e.geometry=this.read(t.geometry)}return t.bbox&&(e.bbox=yn.bbox.call(this,t.bbox)),e},FeatureCollection:function(t){const e={};if(t.features){e.features=[];for(let i=0;ie?1:0}static compare(t,e,i){if(e.equals2D(i))return 0;var n=vn.relativeSign(e.x,i.x),r=vn.relativeSign(e.y,i.y);switch(t){case 0:return vn.compareValue(n,r);case 1:return vn.compareValue(r,n);case 2:return vn.compareValue(r,-n);case 3:return vn.compareValue(-n,r);case 4:return vn.compareValue(-n,-r);case 5:return vn.compareValue(-r,-n);case 6:return vn.compareValue(-r,n);case 7:return vn.compareValue(n,-r)}return m.shouldNeverReachHere("invalid octant value"),0}static compareValue(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0}getClass(){return vn}get interfaces_(){return[]}}vn.constructor_=function(){};class xn{constructor(){xn.constructor_.apply(this,arguments)}getCoordinate(){return this.coord}print(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)}compareTo(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:vn.compare(this._segmentOctant,this.coord,e.coord)}isEndPoint(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t}isInterior(){return this._isInterior}getClass(){return xn}get interfaces_(){return[u]}}xn.constructor_=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this._segString=t,this.coord=new _(e),this.segmentIndex=i,this._segmentOctant=n,this._isInterior=!e.equals2D(t.getCoordinate(i))};class wn{constructor(){wn.constructor_.apply(this,arguments)}getSplitCoordinates(){var t=new B;this.addEndpoints();for(var e=this.iterator(),i=e.next();e.hasNext();){var n=e.next();this.addEdgeCoordinates(i,n,t),i=n}return t.toCoordinateArray()}addCollapsedNodes(){var t=new b;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var i=e.next().intValue();this.add(this._edge.getCoordinate(i),i)}}print(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();)e.next().print(t)}findCollapsesFromExistingVertices(t){for(var e=0;e=0?r>=0?t>=e?0:1:t>=e?7:6:r>=0?t>=e?3:2:t>=e?4:5}if(arguments[0]instanceof _&&arguments[1]instanceof _){let t=arguments[0],e=arguments[1];var n=e.x-t.x,r=e.y-t.y;if(0===n&&0===r)throw new i("Cannot compute the octant for two identical points "+t);return Sn.octant(n,r)}}getClass(){return Sn}get interfaces_(){return[]}}Sn.constructor_=function(){};class bn{constructor(){bn.constructor_.apply(this,arguments)}getCoordinates(){}size(){}getCoordinate(t){}isClosed(){}setData(t){}getData(){}getClass(){return bn}get interfaces_(){return[]}}bn.constructor_=function(){};class Ln{constructor(){Ln.constructor_.apply(this,arguments)}addIntersection(t,e){}getClass(){return Ln}get interfaces_(){return[bn]}}Ln.constructor_=function(){};class Bn{constructor(){Bn.constructor_.apply(this,arguments)}static getNodedSubstrings(){if(1===arguments.length){let e=arguments[0];var t=new b;return Bn.getNodedSubstrings(e,t),t}if(2===arguments.length){let t=arguments[1];for(var e=arguments[0].iterator();e.hasNext();)e.next().getNodeList().addSplitEdges(t)}}getCoordinates(){return this._pts}size(){return this._pts.length}getCoordinate(t){return this._pts[t]}isClosed(){return this._pts[0].equals(this._pts[this._pts.length-1])}getSegmentOctant(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))}setData(t){this._data=t}safeOctant(t,e){return t.equals2D(e)?0:Sn.octant(t,e)}getData(){return this._data}addIntersection(){if(2===arguments.length){let t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){let e=arguments[1],i=arguments[3];var t=new _(arguments[0].getIntersection(i));this.addIntersection(t,e)}}toString(){return ue.toLineString(new Kt(this._pts))}getNodeList(){return this._nodeList}addIntersectionNode(t,e){var i=e,n=i+1;if(n=t.length-1)return t.length-1;for(var n=gi.quadrant(t[i],t[i+1]),r=e+1;ri.getId()&&(i.computeOverlaps(r,t),this._nOverlaps++),this._segInt.isDone())return null}}getClass(){return Fn}get interfaces_(){return[]}}class Dn extends Mn{constructor(){super(),Dn.constructor_.apply(this,arguments)}overlap(){if(4!==arguments.length)return super.overlap.apply(this,arguments);{let i=arguments[1],n=arguments[2],r=arguments[3];var t=arguments[0].getContext(),e=n.getContext();this._si.processIntersections(t,i,e,r)}}getClass(){return Dn}get interfaces_(){return[]}}Dn.constructor_=function(){this._si=null;let t=arguments[0];this._si=t},Fn.SegmentOverlapAction=Dn,Fn.constructor_=function(){if(this._monoChains=new b,this._index=new dn,this._idCounter=0,this._nodedSegStrings=null,this._nOverlaps=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];Pn.constructor_.call(this,t)}};class On{constructor(){On.constructor_.apply(this,arguments)}rescale(){if(I(arguments[0],C))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.rescale(e.getCoordinates())}else if(arguments[0]instanceof Array){let e=arguments[0];for(2===e.length&&(new _(e[0]),new _(e[1])),t=0;t0&&this._minIndexthis._minCoord.y&&i.y>this._minCoord.y&&n===Q.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)}getRightmostSideOfSegment(t,e){var i=t.getEdge().getCoordinates();if(e<0||e+1>=i.length)return-1;if(i[e].y===i[e+1].y)return-1;var n=Ei.LEFT;return i[e].ythis._minCoord.x)&&(this._minDe=t,this._minIndex=i,this._minCoord=e[i])}findRightmostEdgeAtNode(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)}findEdge(t){for(var e=t.iterator();e.hasNext();){var i=e.next();i.isForward()&&this.checkForRightmostCoordinate(i)}m.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe,this.getRightmostSide(this._minDe,this._minIndex)===Ei.LEFT&&(this._orientedDe=this._minDe.getSym())}getClass(){return qn}get interfaces_(){return[]}}function Vn(){this.array_=[]}qn.constructor_=function(){this._minIndex=-1,this._minCoord=null,this._minDe=null,this._orientedDe=null},Vn.prototype.addLast=function(t){this.array_.push(t)},Vn.prototype.removeFirst=function(){return this.array_.shift()},Vn.prototype.isEmpty=function(){return 0===this.array_.length};class zn{constructor(){zn.constructor_.apply(this,arguments)}clearVisitedEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();)t.next().setVisited(!1)}getRightmostCoordinate(){return this._rightMostCoord}computeNodeDepth(t){for(var e=null,i=t.getEdges().iterator();i.hasNext();)if((n=i.next()).isVisited()||n.getSym().isVisited()){e=n;break}if(null===e)throw new ki("unable to find edge to compute depths at "+t.getCoordinate());for(t.getEdges().computeDepths(e),i=t.getEdges().iterator();i.hasNext();){var n;(n=i.next()).setVisited(!0),this.copySymDepths(n)}}computeDepth(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.getNode(),e.getLabel(),e.setEdgeDepths(Ei.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)}create(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()}findResultEdges(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(Ei.RIGHT)>=1&&e.getDepth(Ei.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}}computeDepths(t){var e=new st,i=new Vn,n=t.getNode();for(i.addLast(n),e.add(n),t.setVisited(!0);!i.isEmpty();){var r=i.removeFirst();e.add(r),this.computeNodeDepth(r);for(var s=r.getEdges().iterator();s.hasNext();){var o=s.next().getSym();if(!o.isVisited()){var a=o.getNode();e.contains(a)||(i.addLast(a),e.add(a))}}}}compareTo(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0}getEnvelope(){if(null===this._env){for(var t=new M,e=this._dirEdgeList.iterator();e.hasNext();)for(var i=e.next().getEdge().getCoordinates(),n=0;nthis._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2}addPoints(t,e,i){var n=t.getCoordinates();if(e){var r=1;i&&(r=0);for(var s=r;s=0;s--)this._pts.add(n[s])}isHole(){return this._isHole}setInResult(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)}containsPoint(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!Ge.isInRing(t,e.getCoordinates()))return!1;for(var i=this._holes.iterator();i.hasNext();)if(i.next().containsPoint(t))return!1;return!0}addHole(t){this._holes.add(t)}isShell(){return null===this._shell}getLabel(){return this._label}getEdges(){return this._edges}getMaxNodeDegree(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree}getShell(){return this._shell}mergeLabel(){if(1===arguments.length){let t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){let e=arguments[1];var t=arguments[0].getLocation(e,Ei.RIGHT);if(t===Ae.NONE)return null;if(this._label.getLocation(e)===Ae.NONE)return this._label.setLocation(e,t),null}}setShell(t){this._shell=t,null!==t&&t.addHole(this)}toPolygon(t){for(var e=new Array(this._holes.size()).fill(null),i=0;i2){s.linkDirectedEdgesForMinimalEdgeRings();var o=s.buildMinimalRings(),a=this.findShell(o);null!==a?(this.placePolygonHoles(a,o),e.add(a)):i.addAll(o)}else n.add(s)}return n}containsPoint(t){for(var e=this._shellList.iterator();e.hasNext();)if(e.next().containsPoint(t))return!0;return!1}buildMaximalEdgeRings(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next();if(n.isInResult()&&n.getLabel().isArea()&&null===n.getEdgeRing()){var r=new Hn(n,this._geometryFactory);e.add(r),r.setInResult()}}return e}placePolygonHoles(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next();n.isHole()&&n.setShell(t)}}getPolygons(){return this.computePolygons(this._shellList)}findEdgeRingContaining(t,e){for(var i=t.getLinearRing(),n=i.getEnvelopeInternal(),r=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getLinearRing(),c=h.getEnvelopeInternal();null!==s&&(o=s.getLinearRing().getEnvelopeInternal());var u=!1;c.contains(n)&&Ge.isInRing(r,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(s=l)}return s}findShell(t){for(var e=0,i=null,n=t.iterator();n.hasNext();){var r=n.next();r.isHole()||(i=r,e++)}return m.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),i}add(){if(1===arguments.length){let t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){let n=arguments[0],r=arguments[1];qi.linkResultDirectedEdges(r);var t=this.buildMaximalEdgeRings(n),e=new b,i=this.buildMinimalEdgeRings(t,this._shellList,e);this.sortShellsAndHoles(i,this._shellList,e),this.placeFreeHoles(this._shellList,e)}}getClass(){return Xn}get interfaces_(){return[]}}Xn.constructor_=function(){this._geometryFactory=null,this._shellList=new b;let t=arguments[0];this._geometryFactory=t};class Wn{constructor(){Wn.constructor_.apply(this,arguments)}static simplify(t,e){return new Wn(t).simplify(e)}isDeletable(t,e,i,n){var r=this._inputLine[t],s=this._inputLine[e],o=this._inputLine[i];return!!this.isConcave(r,s,o)&&!!this.isShallow(r,s,o,n)&&this.isShallowSampled(r,s,t,i,n)}deleteShallowConcavities(){for(var t=1,e=(this._inputLine.length,this.findNextNonDeletedIndex(t)),i=this.findNextNonDeletedIndex(e),n=!1;i=0;i--)this.addPt(t[i])}isRedundant(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)=2&&this._ptList.get(this._ptList.size()-2),t.equals(e))return null;this._ptList.add(t)}setMinimumVertexDistance(t){this._minimimVertexDistance=t}getClass(){return Kn}get interfaces_(){return[]}}Kn.constructor_=function(){this._ptList=null,this._precisionModel=null,this._minimimVertexDistance=0,this._ptList=new b},Kn.COORDINATE_ARRAY_TYPE=new Array(0).fill(null);class Jn{constructor(){Jn.constructor_.apply(this,arguments)}addNextSegment(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var i=Q.index(this._s0,this._s1,this._s2),n=i===Q.CLOCKWISE&&this._side===Ei.LEFT||i===Q.COUNTERCLOCKWISE&&this._side===Ei.RIGHT;0===i?this.addCollinear(e):n?this.addOutsideTurn(i,e):this.addInsideTurn(i,e)}addLineEndCap(t,e){var i=new pe(t,e),n=new pe;this.computeOffsetSegment(i,Ei.LEFT,this._distance,n);var r=new pe;this.computeOffsetSegment(i,Ei.RIGHT,this._distance,r);var s=e.x-t.x,o=e.y-t.y,a=Math.atan2(o,s);switch(this._bufParams.getEndCapStyle()){case Un.CAP_ROUND:this._segList.addPt(n.p1),this.addDirectedFillet(e,a+Math.PI/2,a-Math.PI/2,Q.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case Un.CAP_FLAT:this._segList.addPt(n.p1),this._segList.addPt(r.p1);break;case Un.CAP_SQUARE:var l=new _;l.x=Math.abs(this._distance)*Math.cos(a),l.y=Math.abs(this._distance)*Math.sin(a);var h=new _(n.p1.x+l.x,n.p1.y+l.y),c=new _(r.p1.x+l.x,r.p1.y+l.y);this._segList.addPt(h),this._segList.addPt(c)}}getCoordinates(){return this._segList.getCoordinates()}addMitreJoin(t,e,i,n){var r=!0,s=null;try{s=G.intersection(e.p0,e.p1,i.p0,i.p1),(n<=0?1:s.distance(t)/Math.abs(n))>this._bufParams.getMitreLimit()&&(r=!1)}catch(t){if(!(t instanceof R))throw t;s=new _(0,0),r=!1}r?this._segList.addPt(s):this.addLimitedMitreJoin(e,i,n,this._bufParams.getMitreLimit())}addOutsideTurn(t,e){if(this._offset0.p1.distance(this._offset1.p0)=c&&(a-=2*Math.PI),this._segList.addPt(e),this.addDirectedFillet(t,a,c,n,r),this._segList.addPt(i)}addLastSegment(){this._segList.addPt(this._offset1.p1)}initSideSegments(t,e,i){this._s1=t,this._s2=e,this._side=i,this._seg1.setCoordinates(t,e),this.computeOffsetSegment(this._seg1,i,this._distance,this._offset1)}addLimitedMitreJoin(t,e,i,n){var r=this._seg0.p1,s=me.angle(r,this._seg0.p0),o=(me.angle(r,this._seg1.p1),me.angleBetweenOriented(this._seg0.p0,r,this._seg1.p1)/2),a=me.normalize(s+o),l=me.normalize(a+Math.PI),h=n*i,c=i-h*Math.abs(Math.sin(o)),u=r.x+h*Math.cos(l),g=r.y+h*Math.sin(l),d=new _(u,g),p=new pe(r,d),A=p.pointAlongOffset(1,c),f=p.pointAlongOffset(1,-c);this._side===Ei.LEFT?(this._segList.addPt(A),this._segList.addPt(f)):(this._segList.addPt(f),this._segList.addPt(A))}addDirectedFillet(t,e,i,n,r){var s,o=n===Q.CLOCKWISE?-1:1,a=Math.abs(e-i),l=Math.trunc(a/this._filletAngleQuantum+.5);if(l<1)return null;s=a/l;for(var h=0,c=new _;h0){var i=new _((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i);var n=new _((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}}createCircle(t){var e=new _(t.x+this._distance,t.y);this._segList.addPt(e),this.addDirectedFillet(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()}addBevelJoin(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)}init(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Kn,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Jn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)}addCollinear(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2),this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===Un.JOIN_BEVEL||this._bufParams.getJoinStyle()===Un.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addCornerFillet(this._s1,this._offset0.p1,this._offset1.p0,Q.CLOCKWISE,this._distance))}closeRing(){this._segList.closeRing()}hasNarrowConcaveAngle(){return this._hasNarrowConcaveAngle}getClass(){return Jn}get interfaces_(){return[]}}Jn.constructor_=function(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new pe,this._seg1=new pe,this._offset0=new pe,this._offset1=new pe,this._side=0,this._hasNarrowConcaveAngle=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._precisionModel=t,this._bufParams=e,this._li=new de,this._filletAngleQuantum=Math.PI/2/e.getQuadrantSegments(),e.getQuadrantSegments()>=8&&e.getJoinStyle()===Un.JOIN_ROUND&&(this._closingSegLengthFactor=Jn.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)},Jn.OFFSET_SEGMENT_SEPARATION_FACTOR=.001,Jn.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR=.001,Jn.CURVE_VERTEX_SNAP_DISTANCE_FACTOR=1e-6,Jn.MAX_CLOSING_SEG_LEN_FACTOR=80;class Zn{constructor(){Zn.constructor_.apply(this,arguments)}static copyCoordinates(t){for(var e=new Array(t.length).fill(null),i=0;i=0;o--)i.addNextSegment(r[o],!0)}else{i.addSegments(t,!1);var a=Wn.simplify(t,n),l=a.length-1;for(i.initSideSegments(a[0],a[1],Ei.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment(),i.closeRing()}computeRingBufferCurve(t,e,i){var n=this.simplifyTolerance(this._distance);e===Ei.RIGHT&&(n=-n);var r=Wn.simplify(t,n),s=r.length-1;i.initSideSegments(r[s-1],r[0],e);for(var o=1;o<=s;o++){var a=1!==o;i.addNextSegment(r[o],a)}i.closeRing()}computeLineBufferCurve(t,e){var i=this.simplifyTolerance(this._distance),n=Wn.simplify(t,i),r=n.length-1;e.initSideSegments(n[0],n[1],Ei.LEFT);for(var s=2;s<=r;s++)e.addNextSegment(n[s],!0);e.addLastSegment(),e.addLineEndCap(n[r-1],n[r]);var o=Wn.simplify(t,-i),a=o.length-1;for(e.initSideSegments(o[a],o[a-1],Ei.LEFT),s=a-2;s>=0;s--)e.addNextSegment(o[s],!0);e.addLastSegment(),e.addLineEndCap(o[1],o[0]),e.closeRing()}computePointCurve(t,e){switch(this._bufParams.getEndCapStyle()){case Un.CAP_ROUND:e.createCircle(t);break;case Un.CAP_SQUARE:e.createSquare(t)}}getLineCurve(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var i=Math.abs(e),n=this.getSegGen(i);if(t.length<=1)this.computePointCurve(t[0],n);else if(this._bufParams.isSingleSided()){var r=e<0;this.computeSingleSidedBufferCurve(t,r,n)}else this.computeLineBufferCurve(t,n);return n.getCoordinates()}getBufferParameters(){return this._bufParams}simplifyTolerance(t){return t*this._bufParams.getSimplifyFactor()}getRingCurve(t,e,i){if(this._distance=i,t.length<=2)return this.getLineCurve(t,i);if(0===i)return Zn.copyCoordinates(t);var n=this.getSegGen(i);return this.computeRingBufferCurve(t,e,n),n.getCoordinates()}computeOffsetCurve(t,e,i){var n=this.simplifyTolerance(this._distance);if(e){var r=Wn.simplify(t,-n),s=r.length-1;i.initSideSegments(r[s],r[s-1],Ei.LEFT),i.addFirstSegment();for(var o=s-2;o>=0;o--)i.addNextSegment(r[o],!0)}else{var a=Wn.simplify(t,n),l=a.length-1;for(i.initSideSegments(a[0],a[1],Ei.LEFT),i.addFirstSegment(),o=2;o<=l;o++)i.addNextSegment(a[o],!0)}i.addLastSegment()}getSegGen(t){return new Jn(this._precisionModel,this._bufParams,t)}getClass(){return Zn}get interfaces_(){return[]}}Zn.constructor_=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;let t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};class $n{constructor(){$n.constructor_.apply(this,arguments)}findStabbedSegments(){if(1===arguments.length){let r=arguments[0];for(var t=new b,e=this._subgraphs.iterator();e.hasNext();){var i=e.next(),n=i.getEnvelope();r.yn.getMaxY()||this.findStabbedSegments(r,i.getDirectedEdges(),t)}return t}if(3===arguments.length)if(I(arguments[2],x)&&arguments[0]instanceof _&&arguments[1]instanceof Gi){let t=arguments[0],i=arguments[1],n=arguments[2];var r=i.getEdge().getCoordinates();for(e=0;ethis._seg.p1.y&&this._seg.reverse(),!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||Q.index(this._seg.p0,this._seg.p1,t)===Q.RIGHT)){var s=i.getDepth(Ei.LEFT);this._seg.p0.equals(r[e])||(s=i.getDepth(Ei.RIGHT));var o=new tr(this._seg,s);n.add(o)}}else if(I(arguments[2],x)&&arguments[0]instanceof _&&I(arguments[1],x)){let t=arguments[0],i=arguments[2];for(e=arguments[1].iterator();e.hasNext();){var a=e.next();a.isForward()&&this.findStabbedSegments(t,a,i)}}}getDepth(t){var e=this.findStabbedSegments(t);return 0===e.size()?0:Te.min(e)._leftDepth}getClass(){return $n}get interfaces_(){return[]}}class tr{constructor(){tr.constructor_.apply(this,arguments)}compareTo(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var i=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==i||0!=(i=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?i:this._upwardSeg.compareTo(e._upwardSeg)}compareX(t,e){var i=t.p0.compareTo(e.p0);return 0!==i?i:t.p1.compareTo(e.p1)}toString(){return this._upwardSeg.toString()}getClass(){return tr}get interfaces_(){return[u]}}tr.constructor_=function(){this._upwardSeg=null,this._leftDepth=null;let t=arguments[0],e=arguments[1];this._upwardSeg=new pe(t),this._leftDepth=e},$n.DepthSegment=tr,$n.constructor_=function(){this._subgraphs=null,this._seg=new pe;let t=arguments[0];this._subgraphs=t};class er{constructor(){er.constructor_.apply(this,arguments)}addPoint(t){if(this._distance<=0)return null;var e=t.getCoordinates(),i=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(i,Ae.EXTERIOR,Ae.INTERIOR)}addPolygon(t){var e=this._distance,i=Ei.LEFT;this._distance<0&&(e=-this._distance,i=Ei.RIGHT);var n=t.getExteriorRing(),r=$.removeRepeatedPoints(n.getCoordinates());if(this._distance<0&&this.isErodedCompletely(n,this._distance))return null;if(this._distance<=0&&r.length<3)return null;this.addPolygonRing(r,e,i,Ae.EXTERIOR,Ae.INTERIOR);for(var s=0;s0&&this.isErodedCompletely(o,-this._distance)||this.addPolygonRing(a,e,Ei.opposite(i),Ae.INTERIOR,Ae.EXTERIOR)}}isTriangleErodedCompletely(t,e){var i=new _e(t[0],t[1],t[2]),n=i.inCentre();return q.pointToSegment(n,i.p0,i.p1)=Vt.MINIMUM_VALID_SIZE&&Q.isCCW(t)&&(s=r,o=n,i=Ei.opposite(i));var a=this._curveBuilder.getRingCurve(t,i,e);this.addCurve(a,s,o)}add(t){if(t.isEmpty())return null;if(t instanceof Ut)this.addPolygon(t);else if(t instanceof Dt)this.addLineString(t);else if(t instanceof Qt)this.addPoint(t);else if(t instanceof qt)this.addCollection(t);else if(t instanceof xt)this.addCollection(t);else if(t instanceof zt)this.addCollection(t);else{if(!(t instanceof vt))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}isErodedCompletely(t,e){var i=t.getCoordinates();if(i.length<4)return e<0;if(4===i.length)return this.isTriangleErodedCompletely(i,e);var n=t.getEnvelopeInternal(),r=Math.min(n.getHeight(),n.getWidth());return e<0&&2*Math.abs(e)>r}addCollection(t){for(var e=0;e=0;i--){var n=this._edgeList.get(i),r=n.getSym();null===e&&(e=r),null!==t&&r.setNext(t),t=n}e.setNext(t)}computeDepths(){if(1===arguments.length){let r=arguments[0];var t=this.findIndex(r),e=(r.getLabel(),r.getDepth(Ei.LEFT)),i=r.getDepth(Ei.RIGHT),n=this.computeDepths(t+1,this._edgeList.size(),e);if(this.computeDepths(0,t,n)!==i)throw new ki("depth mismatch at "+r.getCoordinate())}else if(3===arguments.length){let t=arguments[1];for(var r=arguments[2],s=arguments[0];s=0;r--){var s=this._resultAreaEdgeList.get(r),o=s.getSym();switch(null===e&&s.getEdgeRing()===t&&(e=s),n){case this._SCANNING_FOR_INCOMING:if(o.getEdgeRing()!==t)continue;i=o,n=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(s.getEdgeRing()!==t)continue;i.setNextMin(s),n=this._SCANNING_FOR_INCOMING}}n===this._LINKING_TO_OUTGOING&&(m.isTrue(null!==e,"found null for first outgoing dirEdge"),m.isTrue(e.getEdgeRing()===t,"unable to link last incoming dirEdge"),i.setNextMin(e))}getOutgoingDegree(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();)e.next().isInResult()&&t++;return t}if(1===arguments.length){let i=arguments[0];for(t=0,e=this.iterator();e.hasNext();)e.next().getEdgeRing()===i&&t++;return t}}getLabel(){return this._label}findCoveredLineEdges(){for(var t=Ae.NONE,e=this.iterator();e.hasNext();){var i=(r=e.next()).getSym();if(!r.isLineEdge()){if(r.isInResult()){t=Ae.INTERIOR;break}if(i.isInResult()){t=Ae.EXTERIOR;break}}}if(t===Ae.NONE)return null;var n=t;for(e=this.iterator();e.hasNext();){var r;i=(r=e.next()).getSym(),r.isLineEdge()?r.getEdge().setCovered(n===Ae.INTERIOR):(r.isInResult()&&(n=Ae.EXTERIOR),i.isInResult()&&(n=Ae.INTERIOR))}}computeLabelling(t){super.computeLabelling.call(this,t),this._label=new Li(Ae.NONE);for(var e=this.iterator();e.hasNext();)for(var i=e.next().getEdge().getLabel(),n=0;n<2;n++){var r=i.getLocation(n);r!==Ae.INTERIOR&&r!==Ae.BOUNDARY||this._label.setLocation(n,Ae.INTERIOR)}}getClass(){return nr}get interfaces_(){return[]}}nr.constructor_=function(){this._resultAreaEdgeList=null,this._label=null,this._SCANNING_FOR_INCOMING=1,this._LINKING_TO_OUTGOING=2};class rr extends Ui{constructor(){super(),rr.constructor_.apply(this,arguments)}createNode(t){return new Di(t,new nr)}getClass(){return rr}get interfaces_(){return[]}}rr.constructor_=function(){};class sr{constructor(){sr.constructor_.apply(this,arguments)}static orientation(t){return 1===$.increasingDirection(t)}static compareOriented(t,e,i,n){for(var r=e?1:-1,s=n?1:-1,o=e?t.length:-1,a=n?i.length:-1,l=e?0:t.length-1,h=n?0:i.length-1;;){var c=t[l].compareTo(i[h]);if(0!==c)return c;var u=(l+=r)===o,g=(h+=s)===a;if(u&&!g)return-1;if(!u&&g)return 1;if(u&&g)return 0}}compareTo(t){var e=t;return sr.compareOriented(this._pts,this._orientation,e._pts,e._orientation)}getClass(){return sr}get interfaces_(){return[u]}}sr.constructor_=function(){this._pts=null,this._orientation=null;let t=arguments[0];this._pts=t,this._orientation=sr.orientation(t)};class or{constructor(){or.constructor_.apply(this,arguments)}print(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var n=i.getCoordinates(),r=0;r0&&t.print(","),t.print(n[r].x+" "+n[r].y);t.println(")")}t.print(") ")}addAll(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())}findEdgeIndex(t){for(var e=0;en||this._maxys;if(o)return!1;var a=this.intersectsToleranceSquare(t,e);return m.isTrue(!(o&&a),"Found bad envelope test"),a}initCorners(t){this._minx=t.x-.5,this._maxx=t.x+.5,this._miny=t.y-.5,this._maxy=t.y+.5,this._corner[0]=new _(this._maxx,this._maxy),this._corner[1]=new _(this._minx,this._maxy),this._corner[2]=new _(this._minx,this._miny),this._corner[3]=new _(this._maxx,this._miny)}intersects(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))}scale(t){return Math.round(t*this._scaleFactor)}getCoordinate(){return this._originalPt}copyScaled(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)}getSafeEnvelope(){if(null===this._safeEnv){var t=ur.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new M(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv}intersectsPixelClosure(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.hasIntersection()))))}intersectsToleranceSquare(t,e){var i=!1,n=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.isProper()||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.isProper()||i&&n||t.equals(this._pt)||e.equals(this._pt)))))}addSnappedNode(t,e){var i=t.getCoordinate(e),n=t.getCoordinate(e+1);return!!this.intersects(i,n)&&(t.addIntersection(this.getCoordinate(),e),!0)}getClass(){return ur}get interfaces_(){return[]}}ur.constructor_=function(){this._li=null,this._pt=null,this._originalPt=null,this._ptScaled=null,this._p0Scaled=null,this._p1Scaled=null,this._scaleFactor=null,this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,this._corner=new Array(4).fill(null),this._safeEnv=null;let t=arguments[0],e=arguments[1],n=arguments[2];if(this._originalPt=t,this._pt=t,this._scaleFactor=e,this._li=n,e<=0)throw new i("Scale factor must be non-zero");1!==e&&(this._pt=new _(this.scale(t.x),this.scale(t.y)),this._p0Scaled=new _,this._p1Scaled=new _),this.initCorners(this._pt)},ur.SAFE_ENV_EXPANSION_FACTOR=.75;class gr{constructor(){gr.constructor_.apply(this,arguments)}select(){if(1===arguments.length);else if(2===arguments.length){let t=arguments[1];arguments[0].getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}}getClass(){return gr}get interfaces_(){return[]}}gr.constructor_=function(){this.selectedSegment=new pe};class dr{constructor(){dr.constructor_.apply(this,arguments)}snap(){if(1===arguments.length){let t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){let i=arguments[0],n=arguments[1],r=arguments[2];var t=i.getSafeEnvelope(),e=new pr(i,n,r);return this._index.query(t,new class{get interfaces_(){return[Se]}visitItem(i){i.select(t,e)}}),e.isNodeAdded()}}getClass(){return dr}get interfaces_(){return[]}}class pr extends gr{constructor(){super(),pr.constructor_.apply(this,arguments)}isNodeAdded(){return this._isNodeAdded}select(){if(!(2===arguments.length&&Number.isInteger(arguments[1])&&arguments[0]instanceof Tn))return super.select.apply(this,arguments);{let e=arguments[1];var t=arguments[0].getContext();if(null!==this._parentEdge&&t===this._parentEdge&&e===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(t,e)}}getClass(){return pr}get interfaces_(){return[]}}pr.constructor_=function(){this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;let t=arguments[0],e=arguments[1],i=arguments[2];this._hotPixel=t,this._parentEdge=e,this._hotPixelVertexIndex=i},dr.HotPixelSnapAction=pr,dr.constructor_=function(){this._index=null;let t=arguments[0];this._index=t};class Ar{constructor(){Ar.constructor_.apply(this,arguments)}processIntersections(t,e,i,n){if(t===i&&e===n)return null;var r=t.getCoordinates()[e],s=t.getCoordinates()[e+1],o=i.getCoordinates()[n],a=i.getCoordinates()[n+1];if(this._li.computeIntersection(r,s,o,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var l=0;l0?e:0),s=i-Math.trunc(Math.log(r)/Math.log(10)+1);return Math.pow(10,s)}bufferFixedPrecision(t){var e=new On(new fr(new re(1)),t.getScale()),i=new hr(this._bufParams);i.setWorkingPrecisionModel(t),i.setNoder(e),this._resultGeometry=i.buffer(this._argGeom,this._distance)}bufferReducedPrecision(){if(0===arguments.length){for(var t=mr.MAX_PRECISION_DIGITS;t>=0;t--){try{this.bufferReducedPrecision(t)}catch(t){if(!(t instanceof ki))throw t;this._saveException=t}if(null!==this._resultGeometry)return null}throw this._saveException}if(1===arguments.length){let t=arguments[0];var e=mr.precisionScaleFactor(this._argGeom,this._distance,t),i=new re(e);this.bufferFixedPrecision(i)}}computeGeometry(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===re.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()}setQuadrantSegments(t){this._bufParams.setQuadrantSegments(t)}bufferOriginalPrecision(){try{var t=new hr(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof A))throw t;this._saveException=t}}getResultGeometry(t){return this._distance=t,this.computeGeometry(),this._resultGeometry}setEndCapStyle(t){this._bufParams.setEndCapStyle(t)}getClass(){return mr}get interfaces_(){return[]}}mr.constructor_=function(){if(this._argGeom=null,this._distance=null,this._bufParams=new Un,this._resultGeometry=null,this._saveException=null,1===arguments.length){let t=arguments[0];this._argGeom=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._argGeom=t,this._bufParams=e}},mr.CAP_ROUND=Un.CAP_ROUND,mr.CAP_BUTT=Un.CAP_FLAT,mr.CAP_FLAT=Un.CAP_FLAT,mr.CAP_SQUARE=Un.CAP_SQUARE,mr.MAX_PRECISION_DIGITS=12;var _r=Object.freeze({BufferOp:mr,BufferParameters:Un});class yr{constructor(){yr.constructor_.apply(this,arguments)}static getPolygons(){if(1===arguments.length){let t=arguments[0];return yr.getPolygons(t,new b)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof Ut?e.add(t):t instanceof vt&&t.apply(new yr(e)),e}}filter(t){t instanceof Ut&&this._comps.add(t)}getClass(){return yr}get interfaces_(){return[Et]}}yr.constructor_=function(){this._comps=null;let t=arguments[0];this._comps=t};class Ir{constructor(){Ir.constructor_.apply(this,arguments)}isInsideArea(){return this._segIndex===Ir.INSIDE_AREA}getCoordinate(){return this._pt}getGeometryComponent(){return this._component}getSegmentIndex(){return this._segIndex}getClass(){return Ir}get interfaces_(){return[]}}Ir.constructor_=function(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){let t=arguments[0],e=arguments[1];Ir.constructor_.call(this,t,Ir.INSIDE_AREA,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._component=t,this._segIndex=e,this._pt=i}},Ir.INSIDE_AREA=-1;class Er{constructor(){Er.constructor_.apply(this,arguments)}static getPoints(){if(1===arguments.length){let t=arguments[0];return t instanceof Qt?Te.singletonList(t):Er.getPoints(t,new b)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t instanceof Qt?e.add(t):t instanceof vt&&t.apply(new Er(e)),e}}filter(t){t instanceof Qt&&this._pts.add(t)}getClass(){return Er}get interfaces_(){return[Et]}}Er.constructor_=function(){this._pts=null;let t=arguments[0];this._pts=t};class Cr{constructor(){Cr.constructor_.apply(this,arguments)}static getLocations(t){var e=new b;return t.apply(new Cr(e)),e}filter(t){(t instanceof Qt||t instanceof Dt||t instanceof Ut)&&this._locations.add(new Ir(t,0,t.getCoordinate()))}getClass(){return Cr}get interfaces_(){return[Et]}}Cr.constructor_=function(){this._locations=null;let t=arguments[0];this._locations=t};class vr{constructor(){vr.constructor_.apply(this,arguments)}static distance(t,e){return new vr(t,e).distance()}static isWithinDistance(t,e,i){return!(t.getEnvelopeInternal().distance(e.getEnvelopeInternal())>i)&&new vr(t,e,i).distance()<=i}static nearestPoints(t,e){return new vr(t,e).nearestPoints()}computeContainmentDistance(){if(0===arguments.length){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(2===arguments.length){let t=arguments[0],s=arguments[1];var e=this._geom[t];if(e.getDimension()<2)return null;var i=1-t,n=yr.getPolygons(e);if(n.size()>0){var r=Cr.getLocations(this._geom[i]);if(this.computeContainmentDistance(r,n,s),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[i]=s[0],this._minDistanceLocation[t]=s[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&I(arguments[0],x)&&I(arguments[1],x)){let t=arguments[0],e=arguments[1],i=arguments[2];for(var s=0;sthis._minDistance)return null;for(var t=r.getCoordinates(),e=s.getCoordinate(),i=0;ithis._minDistance)return null;t=e.getCoordinates();var r=n.getCoordinates();for(i=0;it&&$.reverse(this._coordinates)}return this._coordinates}toLineString(){return this._factory.createLineString(this.getCoordinates())}add(t){this._directedEdges.add(t)}getClass(){return wr}get interfaces_(){return[]}}wr.constructor_=function(){this._factory=null,this._directedEdges=new b,this._coordinates=null;let t=arguments[0];this._factory=t};class Sr{constructor(){Sr.constructor_.apply(this,arguments)}static getComponentWithVisitedState(t,e){for(;t.hasNext();){var i=t.next();if(i.isVisited()===e)return i}return null}static setVisited(t,e){for(;t.hasNext();)t.next().setVisited(e)}static setMarked(t,e){for(;t.hasNext();)t.next().setMarked(e)}setVisited(t){this._isVisited=t}isMarked(){return this._isMarked}setData(t){this._data=t}getData(){return this._data}setMarked(t){this._isMarked=t}getContext(){return this._data}isVisited(){return this._isVisited}setContext(t){this._data=t}getClass(){return Sr}get interfaces_(){return[]}}Sr.constructor_=function(){this._isMarked=!1,this._isVisited=!1,this._data=null};class br extends Sr{constructor(){super(),br.constructor_.apply(this,arguments)}static toEdges(t){for(var e=new b,i=t.iterator();i.hasNext();)e.add(i.next()._parentEdge);return e}isRemoved(){return null===this._parentEdge}compareDirection(t){return this._quadrant>t._quadrant?1:this._quadrant=t.size()-2}hasIntersection(){return null!==this._interiorIntersection}isDone(){return!this._findAllIntersections&&null!==this._interiorIntersection}getClass(){return kr}get interfaces_(){return[ar]}}kr.constructor_=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new b,this._intersectionCount=0,this._keepIntersections=!0;let t=arguments[0];this._li=t,this._interiorIntersection=null};class Gr{constructor(){Gr.constructor_.apply(this,arguments)}static computeIntersections(t){var e=new Gr(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()}execute(){if(null!==this._segInt)return null;this.checkInteriorIntersections()}getIntersections(){return this._segInt.getIntersections()}isValid(){return this.execute(),this._isValid}setFindAllIntersections(t){this._findAllIntersections=t}checkInteriorIntersections(){this._isValid=!0,this._segInt=new kr(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new Fn;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null}checkValid(){if(this.execute(),!this._isValid)throw new ki(this.getErrorMessage(),this._segInt.getInteriorIntersection())}getErrorMessage(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+ue.toLineString(t[0],t[1])+" and "+ue.toLineString(t[2],t[3])}getClass(){return Gr}get interfaces_(){return[]}}Gr.constructor_=function(){this._li=new de,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;let t=arguments[0];this._segStrings=t};class Ur{constructor(){Ur.constructor_.apply(this,arguments)}static toSegmentStrings(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next();e.add(new Qr(n.getCoordinates(),n))}return e}static checkValid(t){new Ur(t).checkValid()}checkValid(){this._nv.checkValid()}getClass(){return Ur}get interfaces_(){return[]}}Ur.constructor_=function(){this._nv=null;let t=arguments[0];this._nv=new Gr(Ur.toSegmentStrings(t))};class qr{constructor(){qr.constructor_.apply(this,arguments)}static map(t,e){return new qr(e).map(t)}map(t){for(var e=new b,i=0;i=0&&t.add(s+1,new _(r),!1)}}findSegmentIndexToSnap(t,e){for(var i=r.MAX_VALUE,n=-1,s=0;st&&(t=i)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Math.min(jr.computeOverlaySnapTolerance(t),jr.computeOverlaySnapTolerance(e))}}static computeSizeBasedSnapTolerance(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*jr.SNAP_PRECISION_FACTOR}static snapToSelf(t,e,i){return new jr(t).snapToSelf(e,i)}snapTo(t,e){var i=this.extractTargetCoordinates(t);return new Hr(e,i).transform(this._srcGeom)}snapToSelf(t,e){var i=this.extractTargetCoordinates(this._srcGeom),n=new Hr(t,i,!0).transform(this._srcGeom),r=n;return e&&I(r,Gt)&&(r=n.buffer(0)),r}computeSnapTolerance(t){return this.computeMinimumSegmentLength(t)/10}extractTargetCoordinates(t){for(var e=new ft,i=t.getCoordinates(),n=0;n>>20}static zeroLowerBits(t,e){var i="low";if(e>32&&(t.low=0,e%=32,i="high"),e>0){var n=e<32?~((1<=0;n--){if(Xr.getBit(t,n)!==Xr.getBit(e,n))return i;i++}return 52}}class Wr{constructor(){Wr.constructor_.apply(this,arguments)}addCommonBits(t){var e=new Jr(this._commonCoord);t.apply(e),t.geometryChanged()}removeCommonBits(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new _(this._commonCoord);e.x=-e.x,e.y=-e.y;var i=new Jr(e);return t.apply(i),t.geometryChanged(),t}getCommonCoordinate(){return this._commonCoord}add(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()}getClass(){return Wr}get interfaces_(){return[]}}class Kr{constructor(){Kr.constructor_.apply(this,arguments)}filter(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)}getCommonCoordinate(){return new _(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())}getClass(){return Kr}get interfaces_(){return[H]}}Kr.constructor_=function(){this._commonBitsX=new Xr,this._commonBitsY=new Xr};class Jr{constructor(){Jr.constructor_.apply(this,arguments)}filter(t,e){var i=t.getOrdinate(e,0)+this.trans.x,n=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,i),t.setOrdinate(e,1,n)}isDone(){return!1}isGeometryChanged(){return!0}getClass(){return Jr}get interfaces_(){return[Ct]}}Jr.constructor_=function(){this.trans=null;let t=arguments[0];this.trans=t},Wr.CommonCoordinateFilter=Kr,Wr.Translater=Jr,Wr.constructor_=function(){this._commonCoord=null,this._ccFilter=new Kr};class Zr{constructor(){Zr.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new Zr(t,e).getResultGeometry(i)}static union(t,e){return Zr.overlayOp(t,e,es.UNION)}static intersection(t,e){return Zr.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return Zr.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return Zr.overlayOp(t,e,es.DIFFERENCE)}selfSnap(t){return new jr(t).snapTo(t,this._snapTolerance)}removeCommonBits(t){this._cbr=new Wr,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e}prepareResult(t){return this._cbr.addCommonBits(t),t}getResultGeometry(t){var e=this.snap(this._geom),i=es.overlayOp(e[0],e[1],t);return this.prepareResult(i)}checkValid(t){t.isValid()||k.out.println("Snapped geometry is invalid")}computeSnapTolerance(){this._snapTolerance=jr.computeOverlaySnapTolerance(this._geom[0],this._geom[1])}snap(t){var e=this.removeCommonBits(t);return jr.snap(e[0],e[1],this._snapTolerance)}getClass(){return Zr}get interfaces_(){return[]}}Zr.constructor_=function(){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null;let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};class $r{constructor(){$r.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new $r(t,e).getResultGeometry(i)}static union(t,e){return $r.overlayOp(t,e,es.UNION)}static intersection(t,e){return $r.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){return $r.overlayOp(t,e,es.SYMDIFFERENCE)}static difference(t,e){return $r.overlayOp(t,e,es.DIFFERENCE)}getResultGeometry(t){var e=null,i=!1,n=null;try{e=es.overlayOp(this._geom[0],this._geom[1],t),i=!0}catch(t){if(!(t instanceof A))throw t;n=t}if(!i)try{e=Zr.overlayOp(this._geom[0],this._geom[1],t)}catch(t){throw t instanceof A?n:t}return e}getClass(){return $r}get interfaces_(){return[]}}$r.constructor_=function(){this._geom=new Array(2).fill(null);let t=arguments[0],e=arguments[1];this._geom[0]=t,this._geom[1]=e};class ts{constructor(){ts.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return ts}get interfaces_(){return[]}}ts.constructor_=function(){if(this._li=new de,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Vi(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e,X.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Vi(0,t,i),this._arg[1]=new Vi(1,e,i)}};class es extends ts{constructor(){super(),es.constructor_.apply(this,arguments)}static overlayOp(t,e,i){return new es(t,e).getResultGeometry(i)}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.UNION)}static intersection(t,e){if(t.isEmpty()||e.isEmpty())return es.createEmptyResult(es.INTERSECTION,t,e,t.getFactory());if(t.isGeometryCollection()){var n=e;return qr.map(t,new class{get interfaces_(){return[MapOp]}map(t){return t.intersection(n)}})}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.INTERSECTION)}static symDifference(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.SYMDIFFERENCE)}static resultDimension(t,e,i){var n=e.getDimension(),r=i.getDimension(),s=-1;switch(t){case es.INTERSECTION:s=Math.min(n,r);break;case es.UNION:s=Math.max(n,r);break;case es.DIFFERENCE:s=n;break;case es.SYMDIFFERENCE:s=Math.max(n,r)}return s}static createEmptyResult(t,e,i,n){var r=null;switch(es.resultDimension(t,e,i)){case-1:r=n.createGeometryCollection();break;case 0:r=n.createPoint();break;case 1:r=n.createLineString();break;case 2:r=n.createPolygon()}return r}static difference(t,e){if(t.isEmpty())return es.createEmptyResult(es.DIFFERENCE,t,e,t.getFactory());if(e.isEmpty())return t.copy();if(t.isGeometryCollection()||e.isGeometryCollection())throw new i("This method does not support GeometryCollection arguments");return $r.overlayOp(t,e,es.DIFFERENCE)}static isResultOfOp(){if(2===arguments.length){let i=arguments[0],n=arguments[1];var t=i.getLocation(0),e=i.getLocation(1);return es.isResultOfOp(t,e,n)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];switch(t===Ae.BOUNDARY&&(t=Ae.INTERIOR),e===Ae.BOUNDARY&&(e=Ae.INTERIOR),i){case es.INTERSECTION:return t===Ae.INTERIOR&&e===Ae.INTERIOR;case es.UNION:return t===Ae.INTERIOR||e===Ae.INTERIOR;case es.DIFFERENCE:return t===Ae.INTERIOR&&e!==Ae.INTERIOR;case es.SYMDIFFERENCE:return t===Ae.INTERIOR&&e!==Ae.INTERIOR||t!==Ae.INTERIOR&&e===Ae.INTERIOR}return!1}}insertUniqueEdge(t){var e=this._edgeList.findEqualEdge(t);if(null!==e){var i=e.getLabel(),n=t.getLabel();e.isPointwiseEqual(t)||(n=new Li(t.getLabel())).flip();var r=e.getDepth();r.isNull()&&r.add(i),r.add(n),i.merge(n)}else this._edgeList.add(t)}getGraph(){return this._graph}cancelDuplicateResultEdges(){for(var t=this._graph.getEdgeEnds().iterator();t.hasNext();){var e=t.next(),i=e.getSym();e.isInResult()&&i.isInResult()&&(e.setInResult(!1),i.setInResult(!1))}}isCoveredByLA(t){return!!this.isCovered(t,this._resultLineList)||!!this.isCovered(t,this._resultPolyList)}computeGeometry(t,e,i,n){var r=new b;return r.addAll(t),r.addAll(e),r.addAll(i),r.isEmpty()?es.createEmptyResult(n,this._arg[0].getGeometry(),this._arg[1].getGeometry(),this._geomFact):this._geomFact.buildGeometry(r)}mergeSymLabels(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().mergeSymLabels()}isCovered(t,e){for(var i=e.iterator();i.hasNext();){var n=i.next();if(this._ptLocator.locate(t,n)!==Ae.EXTERIOR)return!0}return!1}replaceCollapsedEdges(){for(var t=new b,e=this._edgeList.iterator();e.hasNext();){var i=e.next();i.isCollapsed()&&(e.remove(),t.add(i.getCollapsedEdge()))}this._edgeList.addAll(t)}updateNodeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getEdges().getLabel();e.getLabel().merge(i)}}getResultGeometry(t){return this.computeOverlay(t),this._resultGeom}insertUniqueEdges(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this.insertUniqueEdge(i)}}computeOverlay(t){this.copyPoints(0),this.copyPoints(1),this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1),this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!0);var e=new b;this._arg[0].computeSplitEdges(e),this._arg[1].computeSplitEdges(e),this.insertUniqueEdges(e),this.computeLabelsFromDepths(),this.replaceCollapsedEdges(),Ur.checkValid(this._edgeList.getEdges()),this._graph.addEdges(this._edgeList.getEdges()),this.computeLabelling(),this.labelIncompleteNodes(),this.findResultAreaEdges(t),this.cancelDuplicateResultEdges();var i=new Xn(this._geomFact);i.add(this._graph),this._resultPolyList=i.getPolygons();var n=new Vr(this,this._geomFact,this._ptLocator);this._resultLineList=n.build(t);var r=new zr(this,this._geomFact,this._ptLocator);this._resultPointList=r.build(t),this._resultGeom=this.computeGeometry(this._resultPointList,this._resultLineList,this._resultPolyList,t)}labelIncompleteNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setLocation(e,i)}copyPoints(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._graph.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}findResultAreaEdges(t){for(var e=this._graph.getEdgeEnds().iterator();e.hasNext();){var i=e.next(),n=i.getLabel();n.isArea()&&!i.isInteriorAreaEdge()&&es.isResultOfOp(n.getLocation(0,Ei.RIGHT),n.getLocation(1,Ei.RIGHT),t)&&i.setInResult(!0)}}computeLabelsFromDepths(){for(var t=this._edgeList.iterator();t.hasNext();){var e=t.next(),i=e.getLabel(),n=e.getDepth();if(!n.isNull()){n.normalize();for(var r=0;r<2;r++)i.isNull(r)||!i.isArea()||n.isNull(r)||(0===n.getDelta(r)?i.toLine(r):(m.isTrue(!n.isNull(r,Ei.LEFT),"depth of LEFT side has not been initialized"),i.setLocation(r,Ei.LEFT,n.getLocation(r,Ei.LEFT)),m.isTrue(!n.isNull(r,Ei.RIGHT),"depth of RIGHT side has not been initialized"),i.setLocation(r,Ei.RIGHT,n.getLocation(r,Ei.RIGHT))))}}}computeLabelling(){for(var t=this._graph.getNodes().iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg);this.mergeSymLabels(),this.updateNodeLabelling()}labelIncompleteNodes(){for(var t=this._graph.getNodes().iterator();t.hasNext();){var e=t.next(),i=e.getLabel();e.isIsolated()&&(i.isNull(0)?this.labelIncompleteNode(e,0):this.labelIncompleteNode(e,1)),e.getEdges().updateLabelling(i)}}isCoveredByA(t){return!!this.isCovered(t,this._resultPolyList)}getClass(){return es}get interfaces_(){return[]}}es.constructor_=function(){this._ptLocator=new Ii,this._geomFact=null,this._resultGeom=null,this._graph=null,this._edgeList=new or,this._resultPolyList=new b,this._resultLineList=new b,this._resultPointList=new b;let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._graph=new qi(new rr),this._geomFact=t.getFactory()},es.INTERSECTION=1,es.UNION=2,es.DIFFERENCE=3,es.SYMDIFFERENCE=4;var is=Object.freeze({OverlayOp:es});class ns extends br{constructor(){super(),ns.constructor_.apply(this,arguments)}getNext(){return this._next}isInRing(){return null!==this._edgeRing}setRing(t){this._edgeRing=t}setLabel(t){this._label=t}getLabel(){return this._label}setNext(t){this._next=t}getRing(){return this._edgeRing}getClass(){return ns}get interfaces_(){return[]}}ns.constructor_=function(){this._edgeRing=null,this._next=null,this._label=-1;let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];br.constructor_.call(this,t,e,i,n)};class rs extends Br{constructor(){super(),rs.constructor_.apply(this,arguments)}getLine(){return this._line}getClass(){return rs}get interfaces_(){return[]}}rs.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class ss{constructor(){ss.constructor_.apply(this,arguments)}static findDirEdgesInRing(t){var e=t,i=new b;do{i.add(e),e=e.getNext(),m.isTrue(null!==e,"found null DE in ring"),m.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t);return i}static addEdge(t,e,i){if(e)for(var n=0;n=0;n--)i.add(t[n],!1)}static findEdgeRingContaining(t,e){for(var i=t.getRing(),n=i.getEnvelopeInternal(),r=i.getCoordinateN(0),s=null,o=null,a=e.iterator();a.hasNext();){var l=a.next(),h=l.getRing(),c=h.getEnvelopeInternal();if(!c.equals(n)&&c.contains(n)){r=$.ptNotInList(i.getCoordinates(),h.getCoordinates());var u=!1;Ge.isInRing(r,h.getCoordinates())&&(u=!0),u&&(null===s||o.contains(c))&&(o=(s=l).getRing().getEnvelopeInternal())}}return s}isIncluded(){return this._isIncluded}getCoordinates(){if(null===this._ringPts){for(var t=new B,e=this._deList.iterator();e.hasNext();){var i=e.next(),n=i.getEdge();ss.addEdge(n.getLine().getCoordinates(),i.getEdgeDirection(),t)}this._ringPts=t.toCoordinateArray()}return this._ringPts}isIncludedSet(){return this._isIncludedSet}isValid(){return this.getCoordinates(),!(this._ringPts.length<=3)&&(this.getRing(),this._ring.isValid())}build(t){var e=t;do{this.add(e),e.setRing(this),e=e.getNext(),m.isTrue(null!==e,"found null DE in ring"),m.isTrue(e===t||!e.isInRing(),"found DE already in ring")}while(e!==t)}isOuterHole(){return!!this._isHole&&!this.hasShell()}getPolygon(){var t=null;if(null!==this._holes){t=new Array(this._holes.size()).fill(null);for(var e=0;e=0)){e.add(r);var s=ss.findDirEdgesInRing(r);as.label(s,i),i++}}return e}static getDegreeNonDeleted(t){for(var e=0,i=t.getOutEdges().getEdges().iterator();i.hasNext();)i.next().isMarked()||e++;return e}static deleteAllEdges(t){for(var e=t.getOutEdges().getEdges().iterator();e.hasNext();){var i=e.next();i.setMarked(!0);var n=i.getSym();null!==n&&n.setMarked(!0)}}static label(t,e){for(var i=t.iterator();i.hasNext();)i.next().setLabel(e)}static computeNextCWEdges(t){for(var e=null,i=null,n=t.getOutEdges().getEdges().iterator();n.hasNext();){var r=n.next();r.isMarked()||(null===e&&(e=r),null!==i&&i.getSym().setNext(r),i=r)}null!==i&&i.getSym().setNext(e)}static computeNextCCWEdges(t,e){for(var i=null,n=null,r=t.getOutEdges().getEdges(),s=r.size()-1;s>=0;s--){var o=r.get(s),a=o.getSym(),l=null;o.getLabel()===e&&(l=o);var h=null;a.getLabel()===e&&(h=a),null===l&&null===h||(null!==h&&(n=h),null!==l&&(null!==n&&(n.setNext(l),n=null),null===i&&(i=l)))}null!==n&&(m.isTrue(null!==i),n.setNext(i))}static getDegree(t,e){for(var i=0,n=t.getOutEdges().getEdges().iterator();n.hasNext();)n.next().getLabel()===e&&i++;return i}static findIntersectionNodes(t,e){var i=t,n=null;do{var r=i.getFromNode();as.getDegree(r,e)>1&&(null===n&&(n=new b),n.add(r)),i=i.getNext(),m.isTrue(null!==i,"found null DE in ring"),m.isTrue(i===t||!i.isInRing(),"found DE already in ring")}while(i!==t);return n}findEdgeRing(t){var e=new ss(this._factory);return e.build(t),e}computeDepthParity(){if(0===arguments.length)for(;;)return null}computeNextCWEdges(){for(var t=this.nodeIterator();t.hasNext();){var e=t.next();as.computeNextCWEdges(e)}}addEdge(t){if(t.isEmpty())return null;var e=$.removeRepeatedPoints(t.getCoordinates());if(e.length<2)return null;var i=e[0],n=e[e.length-1],r=this.getNode(i),s=this.getNode(n),o=new ns(r,s,e[1],!0),a=new ns(s,r,e[e.length-2],!1),l=new rs(t);l.setDirectedEdges(o,a),this.add(l)}deleteCutEdges(){this.computeNextCWEdges(),as.findLabeledEdgeRings(this._dirEdges);for(var t=new b,e=this._dirEdges.iterator();e.hasNext();){var i=e.next();if(!i.isMarked()){var n=i.getSym();if(i.getLabel()===n.getLabel()){i.setMarked(!0),n.setMarked(!0);var r=i.getEdge();t.add(r.getLine())}}}return t}getEdgeRings(){this.computeNextCWEdges(),as.label(this._dirEdges,-1);var t=as.findLabeledEdgeRings(this._dirEdges);this.convertMaximalToMinimalEdgeRings(t);for(var e=new b,i=this._dirEdges.iterator();i.hasNext();){var n=i.next();if(!n.isMarked()&&!n.isInRing()){var r=this.findEdgeRing(n);e.add(r)}}return e}getNode(t){var e=this.findNode(t);return null===e&&(e=new Tr(t),this.add(e)),e}convertMaximalToMinimalEdgeRings(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),n=i.getLabel(),r=as.findIntersectionNodes(i,n);if(null!==r)for(var s=r.iterator();s.hasNext();){var o=s.next();as.computeNextCCWEdges(o,n)}}}deleteDangles(){for(var t=this.findNodesOfDegree(1),e=new st,i=new Je,n=t.iterator();n.hasNext();)i.push(n.next());for(;!i.isEmpty();){var r=i.pop();for(as.deleteAllEdges(r),n=r.getOutEdges().getEdges().iterator();n.hasNext();){var s=n.next();s.setMarked(!0);var o=s.getSym();null!==o&&o.setMarked(!0);var a=s.getEdge();e.add(a.getLine());var l=s.getToNode();1===as.getDegreeNonDeleted(l)&&i.push(l)}}return e}getClass(){return as}get interfaces_(){return[]}}as.constructor_=function(){this._factory=null;let t=arguments[0];this._factory=t};class ls{constructor(){ls.constructor_.apply(this,arguments)}static findOuterShells(t){for(var e=t.iterator();e.hasNext();){var i=e.next(),n=i.getOuterHole();null===n||n.isProcessed()||(i.setIncluded(!0),n.setProcessed(!0))}}static extractPolygons(t,e){for(var i=new b,n=t.iterator();n.hasNext();){var r=n.next();(e||r.isIncluded())&&i.add(r.getPolygon())}return i}static assignHolesToShells(t,e){for(var i=t.iterator();i.hasNext();){var n=i.next();ls.assignHoleToShell(n,e)}}static assignHoleToShell(t,e){var i=ss.findEdgeRingContaining(t,e);null!==i&&i.addHole(t)}static findDisjointShells(t){ls.findOuterShells(t);var e=null;do{e=!1;for(var i=t.iterator();i.hasNext();){var n=i.next();n.isIncludedSet()||(n.updateIncluded(),n.isIncludedSet()||(e=!0))}}while(e)}getGeometry(){return null===this._geomFactory&&(this._geomFactory=new oe),this.polygonize(),this._extractOnlyPolygonal?this._geomFactory.buildGeometry(this._polyList):this._geomFactory.createGeometryCollection(oe.toGeometryArray(this._polyList))}getInvalidRingLines(){return this.polygonize(),this._invalidRingLines}findValidRings(t,e,i){for(var n=t.iterator();n.hasNext();){var r=n.next();r.isValid()?e.add(r):i.add(r.getLineString())}}polygonize(){if(null!==this._polyList)return null;if(this._polyList=new b,null===this._graph)return null;this._dangles=this._graph.deleteDangles(),this._cutEdges=this._graph.deleteCutEdges();var t=this._graph.getEdgeRings(),e=new b;this._invalidRingLines=new b,this._isCheckingRingsValid?this.findValidRings(t,e,this._invalidRingLines):e=t,this.findShellsAndHoles(e),ls.assignHolesToShells(this._holeList,this._shellList),Te.sort(this._shellList,new ss.EnvelopeComparator);var i=!0;this._extractOnlyPolygonal&&(ls.findDisjointShells(this._shellList),i=!1),this._polyList=ls.extractPolygons(this._shellList,i)}getDangles(){return this.polygonize(),this._dangles}getCutEdges(){return this.polygonize(),this._cutEdges}getPolygons(){return this.polygonize(),this._polyList}add(){if(I(arguments[0],C))for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();this.add(e)}else if(arguments[0]instanceof Dt){let t=arguments[0];this._geomFactory=t.getFactory(),null===this._graph&&(this._graph=new as(this._geomFactory)),this._graph.addEdge(t)}else arguments[0]instanceof j&&arguments[0].apply(this._lineStringAdder)}setCheckRingsValid(t){this._isCheckingRingsValid=t}findShellsAndHoles(t){this._holeList=new b,this._shellList=new b;for(var e=t.iterator();e.hasNext();){var i=e.next();i.computeHole(),i.isHole()?this._holeList.add(i):this._shellList.add(i)}}getClass(){return ls}get interfaces_(){return[]}}class hs{constructor(){hs.constructor_.apply(this,arguments)}filter(t){t instanceof Dt&&this.p.add(t)}getClass(){return hs}get interfaces_(){return[Y]}}hs.constructor_=function(){this.p=null;let t=arguments[0];this.p=t},ls.LineStringAdder=hs,ls.constructor_=function(){if(this._lineStringAdder=new hs(this),this._graph=null,this._dangles=new b,this._cutEdges=new b,this._invalidRingLines=new b,this._holeList=null,this._shellList=null,this._polyList=null,this._isCheckingRingsValid=!0,this._extractOnlyPolygonal=null,this._geomFactory=null,0===arguments.length)ls.constructor_.call(this,!1);else if(1===arguments.length){let t=arguments[0];this._extractOnlyPolygonal=t}};var cs=Object.freeze({Polygonizer:ls});class us{constructor(){us.constructor_.apply(this,arguments)}createEdgeEndForNext(t,e,i,n){var r=i.segmentIndex+1;if(r>=t.getNumPoints()&&null===n)return null;var s=t.getCoordinate(r);null!==n&&n.segmentIndex===i.segmentIndex&&(s=n.coord);var o=new Qi(t,i.coord,s,new Li(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,n){var r=i.segmentIndex;if(0===i.dist){if(0===r)return null;r--}var s=t.getCoordinate(r);null!==n&&n.segmentIndex>=r&&(s=n.coord);var o=new Li(t.getLabel());o.flip();var a=new Qi(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let n=arguments[0];for(var t=new b,e=n;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var n=t.getEdgeIntersectionList();n.addEndpoints();var r=n.iterator(),s=null,o=null;if(!r.hasNext())return null;var a=r.next();do{s=o,o=a,a=null,r.hasNext()&&(a=r.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return us}get interfaces_(){return[]}}us.constructor_=function(){};class gs extends Qi{constructor(){super(),gs.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();)e.next().print(t),t.println()}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,n=!1,r=this.iterator();r.hasNext();)(s=r.next().getLabel().getLocation(t))===Ae.BOUNDARY&&i++,s===Ae.INTERIOR&&(n=!0);var s=Ae.NONE;n&&(s=Ae.INTERIOR),i>0&&(s=Vi.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var n=i.next();if(n.getLabel().isArea()){var r=n.getLabel().getLocation(t,e);if(r===Ae.INTERIOR)return this._label.setLocation(t,e,Ae.INTERIOR),null;r===Ae.EXTERIOR&&this._label.setLocation(t,e,Ae.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,Ei.LEFT),this.computeLabelSide(t,Ei.RIGHT)}updateIM(t){Fi.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();)i.next().getLabel().isArea()&&(e=!0);this._label=e?new Li(Ae.NONE,Ae.NONE,Ae.NONE):new Li(Ae.NONE);for(var n=0;n<2;n++)this.computeLabelOn(n,t),e&&this.computeLabelSides(n)}getClass(){return gs}get interfaces_(){return[]}}gs.constructor_=function(){if(this._edgeEnds=new b,1===arguments.length){let t=arguments[0];gs.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];Qi.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new Li(t.getLabel())),this.insert(t)}};class ds extends ir{constructor(){super(),ds.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();)e.next().updateIM(t)}insert(t){var e=this._edgeMap.get(t);null===e?(e=new gs(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return ds}get interfaces_(){return[]}}ds.constructor_=function(){};class ps extends Di{constructor(){super(),ps.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return ps}get interfaces_(){return[]}}ps.constructor_=function(){let t=arguments[0],e=arguments[1];Di.constructor_.call(this,t,e)};class As extends Ui{constructor(){super(),As.constructor_.apply(this,arguments)}createNode(t){return new ps(t,new ds)}getClass(){return As}get interfaces_(){return[]}}As.constructor_=function(){};class fs{constructor(){fs.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),n=this._arg[1].getGeometry().getDimension(),r=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===n?r&&e.setAtLeast("212101212"):2===i&&1===n?(r&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===n?(r&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===n&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var n=i.next();n.isIsolated()&&(this.labelIsolatedEdge(n,e,this._arg[e].getGeometry()),this._isolatedEdges.add(n))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var n=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,n)}else t.getLabel().setAllLocations(e,Ae.EXTERIOR)}computeIM(){var t=new fe;if(t.set(Ae.EXTERIOR,Ae.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new us,n=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(n);var r=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(r),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();)t.next().getEdges().computeLabelling(this._arg)}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(n===Ae.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,Ae.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.addNode(s.coord);n===Ae.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,Ae.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();m.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();)e.next().updateIM(t);for(var i=this._nodes.iterator();i.hasNext();){var n=i.next();n.updateIM(t),n.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(Ae.INTERIOR,Ae.EXTERIOR,e.getDimension()),t.set(Ae.BOUNDARY,Ae.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(Ae.EXTERIOR,Ae.INTERIOR,i.getDimension()),t.set(Ae.EXTERIOR,Ae.BOUNDARY,i.getBoundaryDimension()))}getClass(){return fs}get interfaces_(){return[]}}fs.constructor_=function(){this._li=new de,this._ptLocator=new Ii,this._arg=null,this._nodes=new Oi(new As),this._im=null,this._isolatedEdges=new b,this._invalidPoint=null;let t=arguments[0];this._arg=t};class ms{constructor(){ms.constructor_.apply(this,arguments)}static contains(t,e){return new ms(t).contains(e)}isContainedInBoundary(t){if(t instanceof Ut)return!1;if(t instanceof Qt)return this.isPointContainedInBoundary(t);if(t instanceof Dt)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var n=t;t=e,e=n}var r=!1;return e.y>t.y&&(r=!0),r?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return _s}get interfaces_(){return[]}}_s.constructor_=function(){this._li=new de,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new _(t.getMinX(),t.getMinY()),this._diagUp1=new _(t.getMaxX(),t.getMaxY()),this._diagDown0=new _(t.getMinX(),t.getMaxY()),this._diagDown1=new _(t.getMaxX(),t.getMinY())};class ys{constructor(){ys.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return Es}get interfaces_(){return[]}}Es.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class Cs extends ys{constructor(){super(),Cs.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof Ut))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new _,n=0;n<4;n++)if(this._rectSeq.getCoordinate(n,i),e.contains(i)&&qe.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return Cs}get interfaces_(){return[]}}Cs.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class vs extends ys{constructor(){super(),vs.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=Pe.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new xs(t,e).getIntersectionMatrix().isCovers())}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return Is.intersects(t,e);if(e.isRectangle())return Is.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?ms.contains(t,e):new xs(t,e).getIntersectionMatrix().isContains())}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return xs}get interfaces_(){return[]}}xs.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];ts.constructor_.call(this,t,e),this._relate=new fs(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];ts.constructor_.call(this,t,e,i),this._relate=new fs(this._arg)}};var ws=Object.freeze({RelateOp:xs});class Ss{constructor(){Ss.constructor_.apply(this,arguments)}static combine(){if(1===arguments.length)return new Ss(arguments[0]).combine();if(2===arguments.length){let t=arguments[0],e=arguments[1];return new Ss(Ss.createList(t,e)).combine()}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return new Ss(Ss.createList(t,e,i)).combine()}}static extractFactory(t){return t.isEmpty()?null:t.iterator().next().getFactory()}static createList(){if(2===arguments.length){let e=arguments[0],i=arguments[1];return(t=new b).add(e),t.add(i),t}if(3===arguments.length){let e=arguments[0],i=arguments[1],n=arguments[2];var t;return(t=new b).add(e),t.add(i),t.add(n),t}}extractElements(t,e){if(null===t)return null;for(var i=0;i=t.size()?null:t.get(e)}static union(t){return new Bs(t).union()}reduceToGeometries(t){for(var e=new b,i=t.iterator();i.hasNext();){var n=i.next(),r=null;I(n,x)?r=this.unionTree(n):n instanceof j&&(r=n),e.add(r)}return e}extractByEnvelope(t,e,i){for(var n=new b,r=0;r0){var e=this._geomFact.buildGeometry(this._points);t=this.unionNoOpt(e)}var i=null;if(this._lines.size()>0){var n=this._geomFact.buildGeometry(this._lines);i=this.unionNoOpt(n)}var r=null;this._polygons.size()>0&&(r=Bs.union(this._polygons));var s=this.unionWithNull(i,r),o=null;return null===(o=null===t?s:null===s?t:bs.union(t,s))?this._geomFact.createGeometryCollection():o}getClass(){return Ms}get interfaces_(){return[]}}Ms.constructor_=function(){if(this._polygons=new b,this._lines=new b,this._points=new b,this._geomFact=null,1===arguments.length){if(I(arguments[0],C)){let t=arguments[0];this.extract(t)}else if(arguments[0]instanceof j){let t=arguments[0];this.extract(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._geomFact=e,this.extract(t)}};var Ts=Object.freeze({UnaryUnionOp:Ms});class Rs{constructor(){Rs.constructor_.apply(this,arguments)}static findDifferentPoint(t,e){for(var i=0;i1)return this._invalidPoint=i.getEdge().getCoordinate(0),!0}return!1}isNodeConsistentArea(){var t=this._geomGraph.computeSelfNodes(this._li,!0,!0);return t.hasProperIntersection()?(this._invalidPoint=t.getProperIntersectionPoint(),!1):(this._nodeGraph.build(this._geomGraph),this.isNodeEdgeAreaLabelsConsistent())}getClass(){return Ps}get interfaces_(){return[]}}Ps.constructor_=function(){this._li=new de,this._geomGraph=null,this._nodeGraph=new Ns,this._invalidPoint=null;let t=arguments[0];this._geomGraph=t};class Fs{constructor(){Fs.constructor_.apply(this,arguments)}buildIndex(){this._index=new dn;for(var t=0;t=1&&(e=t.getCoordinateN(0)),this._validErr=new Ds(Ds.RING_NOT_CLOSED,e)}}checkShellsNotNested(t,e){for(var i=0;i=2&&(n=!0),e.edit(t,new Gs(this._targetPM,n))}changePM(t,e){return this.createEditor(t.getFactory(),e).edit(t,new Yt.NoOpGeometryOperation)}setRemoveCollapsedComponents(t){this._removeCollapsed=t}createFactory(t,e){return new oe(e,t.getSRID(),t.getCoordinateSequenceFactory())}setChangePrecisionModel(t){this._changePrecisionModel=t}reduce(t){var e=this.reducePointwise(t);return this._isPointwise?e:I(e,Gt)?Os.isValid(e)?e:this.fixPolygonalTopology(e):e}setPointwise(t){this._isPointwise=t}createEditor(t,e){if(t.getPrecisionModel()===e)return new Yt;var i=this.createFactory(t,e);return new Yt(i)}getClass(){return Us}get interfaces_(){return[]}}Us.constructor_=function(){this._targetPM=null,this._removeCollapsed=!0,this._changePrecisionModel=!1,this._isPointwise=!1;let t=arguments[0];this._targetPM=t};var qs=Object.freeze({GeometryPrecisionReducer:Us});class Vs{constructor(){Vs.constructor_.apply(this,arguments)}static simplify(t,e){var i=new Vs(t);return i.setDistanceTolerance(e),i.simplify()}simplifySection(t,e){if(t+1===e)return null;this._seg.p0=this._pts[t],this._seg.p1=this._pts[e];for(var i=-1,n=t,r=t+1;ri&&(i=s,n=r)}if(i<=this._distanceTolerance)for(r=t+1;r=e[0]&&nthis._distanceTolerance&&(s=!1);var l=new pe;if(l.p0=this._linePts[t],l.p1=this._linePts[e],n[0]=t,n[1]=e,this.hasBadIntersection(this._line,n,l)&&(s=!1),s)return r=this.flatten(t,e),this._line.addToResult(r),null;this.simplifySection(t,a,i),this.simplifySection(a,e,i)}hasBadOutputIntersection(t){for(var e=this._outputIndex.query(t).iterator();e.hasNext();){var i=e.next();if(this.hasInteriorIntersection(i,t))return!0}return!1}findFurthestPoint(t,e,i,n){var r=new pe;r.p0=t[e],r.p1=t[i];for(var s=-1,o=e,a=e+1;as&&(s=h,o=a)}return n[0]=s,o}simplify(t){this._line=t,this._linePts=t.getParentCoordinates(),this.simplifySection(0,this._linePts.length-1,0)}remove(t,e,i){for(var n=e;nn&&(o=n),r.setMinimumLength(o),r.splitAt(s),r.getSplitPoint()}getClass(){return ro}get interfaces_(){return[no]}}ro.constructor_=function(){};class so{constructor(){so.constructor_.apply(this,arguments)}static triArea(t,e,i){return(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x)}static isInCircleDDNormalized(t,e,i,n){var r=D.valueOf(t.x).selfSubtract(n.x),s=D.valueOf(t.y).selfSubtract(n.y),o=D.valueOf(e.x).selfSubtract(n.x),a=D.valueOf(e.y).selfSubtract(n.y),l=D.valueOf(i.x).selfSubtract(n.x),h=D.valueOf(i.y).selfSubtract(n.y),c=r.multiply(a).selfSubtract(o.multiply(s)),u=o.multiply(h).selfSubtract(l.multiply(a)),g=l.multiply(s).selfSubtract(r.multiply(h)),d=r.multiply(r).selfAdd(s.multiply(s)),p=o.multiply(o).selfAdd(a.multiply(a)),A=l.multiply(l).selfAdd(h.multiply(h));return d.selfMultiply(u).selfAdd(p.selfMultiply(g)).selfAdd(A.selfMultiply(c)).doubleValue()>0}static checkRobustInCircle(t,e,i,n){var r=so.isInCircleNonRobust(t,e,i,n),s=so.isInCircleDDSlow(t,e,i,n),o=so.isInCircleCC(t,e,i,n),a=_e.circumcentre(t,e,i);k.out.println("p radius diff a = "+Math.abs(n.distance(a)-t.distance(a))/t.distance(a)),r===s&&r===o||(k.out.println("inCircle robustness failure (double result = "+r+", DD result = "+s+", CC result = "+o+")"),k.out.println(ue.toLineString(new Kt([t,e,i,n]))),k.out.println("Circumcentre = "+ue.toPoint(a)+" radius = "+t.distance(a)),k.out.println("p radius diff a = "+Math.abs(n.distance(a)/t.distance(a)-1)),k.out.println("p radius diff b = "+Math.abs(n.distance(a)/e.distance(a)-1)),k.out.println("p radius diff c = "+Math.abs(n.distance(a)/i.distance(a)-1)),k.out.println())}static isInCircleDDFast(t,e,i,n){var r=D.sqr(t.x).selfAdd(D.sqr(t.y)).selfMultiply(so.triAreaDDFast(e,i,n)),s=D.sqr(e.x).selfAdd(D.sqr(e.y)).selfMultiply(so.triAreaDDFast(t,i,n)),o=D.sqr(i.x).selfAdd(D.sqr(i.y)).selfMultiply(so.triAreaDDFast(t,e,n)),a=D.sqr(n.x).selfAdd(D.sqr(n.y)).selfMultiply(so.triAreaDDFast(t,e,i));return r.selfSubtract(s).selfAdd(o).selfSubtract(a).doubleValue()>0}static isInCircleCC(t,e,i,n){var r=_e.circumcentre(t,e,i),s=t.distance(r);return n.distance(r)-s<=0}static isInCircleNormalized(t,e,i,n){var r=t.x-n.x,s=t.y-n.y,o=e.x-n.x,a=e.y-n.y,l=i.x-n.x,h=i.y-n.y;return(r*r+s*s)*(o*h-l*a)+(o*o+a*a)*(l*s-r*h)+(l*l+h*h)*(r*a-o*s)>0}static isInCircleDDSlow(t,e,i,n){var r=D.valueOf(n.x),s=D.valueOf(n.y),o=D.valueOf(t.x),a=D.valueOf(t.y),l=D.valueOf(e.x),h=D.valueOf(e.y),c=D.valueOf(i.x),u=D.valueOf(i.y),g=o.multiply(o).add(a.multiply(a)).multiply(so.triAreaDDSlow(l,h,c,u,r,s)),d=l.multiply(l).add(h.multiply(h)).multiply(so.triAreaDDSlow(o,a,c,u,r,s)),p=c.multiply(c).add(u.multiply(u)).multiply(so.triAreaDDSlow(o,a,l,h,r,s)),A=r.multiply(r).add(s.multiply(s)).multiply(so.triAreaDDSlow(o,a,l,h,c,u));return g.subtract(d).add(p).subtract(A).doubleValue()>0}static isInCircleNonRobust(t,e,i,n){return(t.x*t.x+t.y*t.y)*so.triArea(e,i,n)-(e.x*e.x+e.y*e.y)*so.triArea(t,i,n)+(i.x*i.x+i.y*i.y)*so.triArea(t,e,n)-(n.x*n.x+n.y*n.y)*so.triArea(t,e,i)>0}static isInCircleRobust(t,e,i,n){return so.isInCircleNormalized(t,e,i,n)}static triAreaDDSlow(t,e,i,n,r,s){return i.subtract(t).multiply(s.subtract(e)).subtract(n.subtract(e).multiply(r.subtract(t)))}static triAreaDDFast(t,e,i){var n=D.valueOf(e.x).selfSubtract(t.x).selfMultiply(D.valueOf(i.y).selfSubtract(t.y)),r=D.valueOf(e.y).selfSubtract(t.y).selfMultiply(D.valueOf(i.x).selfSubtract(t.x));return n.selfSubtract(r)}getClass(){return so}get interfaces_(){return[]}}so.constructor_=function(){};class oo{constructor(){oo.constructor_.apply(this,arguments)}static interpolateZ(){if(3===arguments.length){let n=arguments[0],r=arguments[1],s=arguments[2];var t=r.distance(s),e=n.distance(r),i=s.z-r.z;return r.z+i*(e/t)}if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],p=arguments[3];var n=e.x,r=e.y,s=i.x-n,o=p.x-n,a=i.y-r,l=p.y-r,h=s*l-o*a,c=t.x-n,u=t.y-r,g=(l*c-o*u)/h,d=(-a*c+s*u)/h;return e.z+g*(i.z-e.z)+d*(p.z-e.z)}}circleCenter(t,e){var i=new oo(this.getX(),this.getY()),n=this.bisector(i,t),r=this.bisector(t,e),s=new G(n,r),o=null;try{o=new oo(s.getX(),s.getY())}catch(n){if(!(n instanceof R))throw n;k.err.println("a: "+i+" b: "+t+" c: "+e),k.err.println(n)}return o}dot(t){return this._p.x*t.getX()+this._p.y*t.getY()}magn(){return Math.sqrt(this._p.x*this._p.x+this._p.y*this._p.y)}getZ(){return this._p.z}bisector(t,e){var i=e.getX()-t.getX(),n=e.getY()-t.getY(),r=new G(t.getX()+i/2,t.getY()+n/2,1),s=new G(t.getX()-n+i/2,t.getY()+i+n/2,1);return new G(r,s)}equals(){if(1===arguments.length){let t=arguments[0];return this._p.x===t.getX()&&this._p.y===t.getY()}if(2===arguments.length){let t=arguments[0],e=arguments[1];return this._p.distance(t.getCoordinate())0}getX(){return this._p.x}crossProduct(t){return this._p.x*t.getY()-this._p.y*t.getX()}setZ(t){this._p.z=t}times(t){return new oo(t*this._p.x,t*this._p.y)}cross(){return new oo(this._p.y,-this._p.x)}leftOf(t){return this.isCCW(t.orig(),t.dest())}toString(){return"POINT ("+this._p.x+" "+this._p.y+")"}sub(t){return new oo(this._p.x-t.getX(),this._p.y-t.getY())}getY(){return this._p.y}classify(t,e){var i=e.sub(t),n=this.sub(t),r=i.crossProduct(n);return r>0?oo.LEFT:r<0?oo.RIGHT:i.getX()*n.getX()<0||i.getY()*n.getY()<0?oo.BEHIND:i.magn()0};class co{constructor(){co.constructor_.apply(this,arguments)}locate(t){}getClass(){return co}get interfaces_(){return[]}}co.constructor_=function(){};class uo{constructor(){uo.constructor_.apply(this,arguments)}init(){this._lastEdge=this.findEdge()}locate(t){this._lastEdge.isLive()||this.init();var e=this._subdiv.locateFromEdge(t,this._lastEdge);return this._lastEdge=e,e}findEdge(){return this._subdiv.getEdges().iterator().next()}getClass(){return uo}get interfaces_(){return[co]}}uo.constructor_=function(){this._subdiv=null,this._lastEdge=null;let t=arguments[0];this._subdiv=t,this.init()};class go extends A{constructor(){super(),go.constructor_.apply(this,arguments)}static msgWithSpatial(t,e){return null!==e?t+" [ "+e+" ]":t}getSegment(){return this._seg}getClass(){return go}get interfaces_(){return[]}}go.constructor_=function(){if(this._seg=null,1===arguments.length){if("string"==typeof arguments[0]){let t=arguments[0];A.constructor_.call(this,t)}else if(arguments[0]instanceof pe){let t=arguments[0];A.constructor_.call(this,"Locate failed to converge (at edge: "+t+"). Possible causes include invalid Subdivision topology or very close sites"),this._seg=new pe(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];A.constructor_.call(this,go.msgWithSpatial(t,e)),this._seg=new pe(e)}};class po{constructor(){po.constructor_.apply(this,arguments)}visit(t){}getClass(){return po}get interfaces_(){return[]}}po.constructor_=function(){};class Ao{constructor(){Ao.constructor_.apply(this,arguments)}static getTriangleEdges(t,e){if(e[0]=t,e[1]=e[0].lNext(),e[2]=e[1].lNext(),e[2].lNext()!==e[0])throw new i("Edges do not form a triangle")}getTriangleVertices(t){var e=new _o;return this.visitTriangles(e,t),e.getTriangleVertices()}isFrameVertex(t){return!!t.equals(this._frameVertex[0])||!!t.equals(this._frameVertex[1])||!!t.equals(this._frameVertex[2])}isVertexOfEdge(t,e){return!(!e.equals(t.orig(),this._tolerance)&&!e.equals(t.dest(),this._tolerance))}connect(t,e){var i=lo.connect(t,e);return this._quadEdges.add(i),i}getVoronoiCellPolygon(t,e){var i=new b,n=t;do{var r=t.rot().orig().getCoordinate();i.add(r),t=t.oPrev()}while(t!==n);var s=new B;s.addAll(i,!1),s.closeRing(),s.size()<4&&(k.out.println(s),s.add(s.get(s.size()-1),!0));var o=s.toCoordinateArray(),a=e.createPolygon(e.createLinearRing(o)),l=n.orig();return a.setUserData(l.getCoordinate()),a}setLocator(t){this._locator=t}initSubdiv(){var t=this.makeEdge(this._frameVertex[0],this._frameVertex[1]),e=this.makeEdge(this._frameVertex[1],this._frameVertex[2]);lo.splice(t.sym(),e);var i=this.makeEdge(this._frameVertex[2],this._frameVertex[0]);return lo.splice(e.sym(),i),lo.splice(i.sym(),t),t}isFrameBorderEdge(t){var e=new Array(3).fill(null);Ao.getTriangleEdges(t,e);var i=new Array(3).fill(null);Ao.getTriangleEdges(t.sym(),i);var n=t.lNext().dest();if(this.isFrameVertex(n))return!0;var r=t.sym().lNext().dest();return!!this.isFrameVertex(r)}makeEdge(t,e){var i=lo.makeEdge(t,e);return this._quadEdges.add(i),i}visitTriangles(t,e){this._visitedKey++;var i=new Je;i.push(this._startingEdge);for(var n=new st;!i.empty();){var r=i.pop();if(!n.contains(r)){var s=this.fetchTriangleToVisit(r,i,e,n);null!==s&&t.visit(s)}}}isFrameEdge(t){return!(!this.isFrameVertex(t.orig())&&!this.isFrameVertex(t.dest()))}isOnEdge(t,e){return this._seg.setCoordinates(t.orig().getCoordinate(),t.dest().getCoordinate()),this._seg.distance(e)i?10*e:10*i,this._frameVertex[0]=new oo((t.getMaxX()+t.getMinX())/2,t.getMaxY()+n),this._frameVertex[1]=new oo(t.getMinX()-n,t.getMinY()-n),this._frameVertex[2]=new oo(t.getMaxX()+n,t.getMinY()-n),this._frameEnv=new M(this._frameVertex[0].getCoordinate(),this._frameVertex[1].getCoordinate()),this._frameEnv.expandToInclude(this._frameVertex[2].getCoordinate())}getTriangleCoordinates(t){var e=new yo;return this.visitTriangles(e,t),e.getTriangles()}getVertices(t){for(var e=new st,i=this._quadEdges.iterator();i.hasNext();){var n=i.next(),r=n.orig();!t&&this.isFrameVertex(r)||e.add(r);var s=n.dest();!t&&this.isFrameVertex(s)||e.add(s)}return e}fetchTriangleToVisit(t,e,i,n){var r=t,s=0,o=!1;do{this._triEdges[s]=r,this.isFrameEdge(r)&&(o=!0);var a=r.sym();n.contains(a)||e.push(a),n.add(r),s++,r=r.lNext()}while(r!==t);return o&&!i?null:this._triEdges}getEdges(){if(0===arguments.length)return this._quadEdges;if(1===arguments.length){let s=arguments[0];for(var t=this.getPrimaryEdges(!1),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=s.createLineString([r.orig().getCoordinate(),r.dest().getCoordinate()])}return s.createMultiLineString(e)}}getVertexUniqueEdges(t){for(var e=new b,i=new st,n=this._quadEdges.iterator();n.hasNext();){var r=n.next(),s=r.orig();i.contains(s)||(i.add(s),!t&&this.isFrameVertex(s)||e.add(r));var o=r.sym(),a=o.orig();i.contains(a)||(i.add(a),!t&&this.isFrameVertex(a)||e.add(o))}return e}getTriangleEdges(t){var e=new mo;return this.visitTriangles(e,t),e.getTriangleEdges()}getPrimaryEdges(t){this._visitedKey++;var e=new b,i=new Je;i.push(this._startingEdge);for(var n=new st;!i.empty();){var r=i.pop();if(!n.contains(r)){var s=r.getPrimary();!t&&this.isFrameEdge(s)||e.add(s),i.push(r.oNext()),i.push(r.sym().oNext()),n.add(r),n.add(r.sym())}}return e}delete(t){lo.splice(t,t.oPrev()),lo.splice(t.sym(),t.sym().oPrev());var e=t.sym(),i=t.rot(),n=t.rot().sym();this._quadEdges.remove(t),this._quadEdges.remove(e),this._quadEdges.remove(i),this._quadEdges.remove(n),t.delete(),e.delete(),i.delete(),n.delete()}locateFromEdge(t,e){for(var i=0,n=this._quadEdges.size(),r=e;;){if(++i>n)throw new go(r.toLineSegment());if(t.equals(r.orig())||t.equals(r.dest()))break;if(t.rightOf(r))r=r.sym();else if(t.rightOf(r.oNext())){if(t.rightOf(r.dPrev()))break;r=r.dPrev()}else r=r.oNext()}return r}getTolerance(){return this._tolerance}getVoronoiCellPolygons(t){this.visitTriangles(new fo,!0);for(var e=new b,i=this.getVertexUniqueEdges(!1).iterator();i.hasNext();){var n=i.next();e.add(this.getVoronoiCellPolygon(n,t))}return e}getVoronoiDiagram(t){var e=this.getVoronoiCellPolygons(t);return t.createGeometryCollection(oe.toGeometryArray(e))}getTriangles(t){for(var e=this.getTriangleCoordinates(!1),i=new Array(e.size()).fill(null),n=0,r=e.iterator();r.hasNext();){var s=r.next();i[n++]=t.createPolygon(t.createLinearRing(s))}return t.createGeometryCollection(i)}insertSite(t){var e=this.locate(t);if(t.equals(e.orig(),this._tolerance)||t.equals(e.dest(),this._tolerance))return e;var i=this.makeEdge(e.orig(),t);lo.splice(i,e);var n=i;do{e=(i=this.connect(e,i.sym())).oPrev()}while(e.lNext()!==n);return n}locate(){if(1===arguments.length){if(arguments[0]instanceof oo){let t=arguments[0];return this._locator.locate(t)}if(arguments[0]instanceof _){let t=arguments[0];return this._locator.locate(new oo(t))}}else if(2===arguments.length){let n=arguments[0],r=arguments[1];var t=this._locator.locate(new oo(n));if(null===t)return null;var e=t;t.dest().getCoordinate().equals2D(n)&&(e=t.sym());var i=e;do{if(i.dest().getCoordinate().equals2D(r))return i;i=i.oNext()}while(i!==e);return null}}getClass(){return Ao}get interfaces_(){return[]}}class fo{constructor(){fo.constructor_.apply(this,arguments)}visit(t){for(var e=t[0].orig().getCoordinate(),i=t[1].orig().getCoordinate(),n=t[2].orig().getCoordinate(),r=_e.circumcentre(e,i,n),s=new oo(r),o=0;o<3;o++)t[o].rot().setOrig(s)}getClass(){return fo}get interfaces_(){return[po]}}fo.constructor_=function(){};class mo{constructor(){mo.constructor_.apply(this,arguments)}getTriangleEdges(){return this._triList}visit(t){this._triList.add(t)}getClass(){return mo}get interfaces_(){return[po]}}mo.constructor_=function(){this._triList=new b};class _o{constructor(){_o.constructor_.apply(this,arguments)}visit(t){this._triList.add([t[0].orig(),t[1].orig(),t[2].orig()])}getTriangleVertices(){return this._triList}getClass(){return _o}get interfaces_(){return[po]}}_o.constructor_=function(){this._triList=new b};class yo{constructor(){yo.constructor_.apply(this,arguments)}checkTriangleSize(t){t.length>=2?ue.toLineString(t[0],t[1]):t.length>=1&&ue.toPoint(t[0])}visit(t){this._coordList.clear();for(var e=0;e<3;e++){var i=t[e].orig();this._coordList.add(i.getCoordinate())}if(this._coordList.size()>0){this._coordList.closeRing();var n=this._coordList.toCoordinateArray();if(4!==n.length)return null;this._triCoords.add(n)}}getTriangles(){return this._triCoords}getClass(){return yo}get interfaces_(){return[po]}}yo.constructor_=function(){this._coordList=new B,this._triCoords=new b},Ao.TriangleCircumcentreVisitor=fo,Ao.TriangleEdgesListVisitor=mo,Ao.TriangleVertexListVisitor=_o,Ao.TriangleCoordinatesVisitor=yo,Ao.constructor_=function(){this._visitedKey=0,this._quadEdges=new b,this._startingEdge=null,this._tolerance=null,this._edgeCoincidenceTolerance=null,this._frameVertex=new Array(3).fill(null),this._frameEnv=null,this._locator=null,this._seg=new pe,this._triEdges=new Array(3).fill(null);let t=arguments[0],e=arguments[1];this._tolerance=e,this._edgeCoincidenceTolerance=e/Ao.EDGE_COINCIDENCE_TOL_FACTOR,this.createFrame(t),this._startingEdge=this.initSubdiv(),this._locator=new uo(this)},Ao.EDGE_COINCIDENCE_TOL_FACTOR=1e3;class Io{constructor(){Io.constructor_.apply(this,arguments)}getLineSegment(){return this._ls}getEndZ(){return this._ls.getCoordinate(1).z}getStartZ(){return this._ls.getCoordinate(0).z}intersection(t){return this._ls.intersection(t.getLineSegment())}getStart(){return this._ls.getCoordinate(0)}getEnd(){return this._ls.getCoordinate(1)}getEndY(){return this._ls.getCoordinate(1).y}getStartX(){return this._ls.getCoordinate(0).x}equalsTopo(t){return this._ls.equalsTopo(t.getLineSegment())}getStartY(){return this._ls.getCoordinate(0).y}setData(t){this._data=t}getData(){return this._data}getEndX(){return this._ls.getCoordinate(1).x}toString(){return this._ls.toString()}getClass(){return Io}get interfaces_(){return[]}}Io.constructor_=function(){if(this._ls=null,this._data=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._ls=new pe(t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._ls=new pe(t,e),this._data=i}else if(6===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],r=arguments[4],s=arguments[5];Io.constructor_.call(this,new _(t,e,i),new _(n,r,s))}else if(7===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],r=arguments[4],s=arguments[5],o=arguments[6];Io.constructor_.call(this,new _(t,e,i),new _(n,r,s),o)}};class Eo{constructor(){Eo.constructor_.apply(this,arguments)}static computeVertexEnvelope(t){for(var e=new M,i=t.iterator();i.hasNext();){var n=i.next();e.expandToInclude(n.getCoordinate())}return e}getInitialVertices(){return this._initialVertices}getKDT(){return this._kdt}enforceConstraints(){this.addConstraintVertices();var t=0,e=0;do{e=this.enforceGabriel(this._segments),t++}while(e>0&&t=1)return e;var n=(e.x-t.x)*i+t.x,r=(e.y-t.y)*i+t.y,s=(e.z-t.z)*i+t.z;return new _(n,r,s)}static compareLocationValues(t,e,i,n,r,s){return tn?1:er?1:is?1:0}getSegmentIndex(){return this._segmentIndex}getComponentIndex(){return this._componentIndex}isEndpoint(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex>=e||this._segmentIndex===e&&this._segmentFraction>=1}isValid(t){if(this._componentIndex<0||this._componentIndex>=t.getNumGeometries())return!1;var e=t.getGeometryN(this._componentIndex);return!(this._segmentIndex<0||this._segmentIndex>e.getNumPoints()||this._segmentIndex===e.getNumPoints()&&0!==this._segmentFraction||this._segmentFraction<0||this._segmentFraction>1)}normalize(){this._segmentFraction<0&&(this._segmentFraction=0),this._segmentFraction>1&&(this._segmentFraction=1),this._componentIndex<0&&(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0),this._segmentIndex<0&&(this._segmentIndex=0,this._segmentFraction=0),1===this._segmentFraction&&(this._segmentFraction=0,this._segmentIndex+=1)}toLowest(t){var e=t.getGeometryN(this._componentIndex).getNumPoints()-1;return this._segmentIndex=e.getNumPoints()-1)return i;var n=e.getCoordinateN(this._segmentIndex+1);return bo.pointAlongSegmentByFraction(i,n,this._segmentFraction)}getSegmentFraction(){return this._segmentFraction}getSegment(t){var e=t.getGeometryN(this._componentIndex),i=e.getCoordinateN(this._segmentIndex);if(this._segmentIndex>=e.getNumPoints()-1){var n=e.getCoordinateN(e.getNumPoints()-2);return new pe(n,i)}var r=e.getCoordinateN(this._segmentIndex+1);return new pe(i,r)}clamp(t){if(this._componentIndex>=t.getNumGeometries())return this.setToEnd(t),null;if(this._segmentIndex>=t.getNumPoints()){var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}}setToEnd(t){this._componentIndex=t.getNumGeometries()-1;var e=t.getGeometryN(this._componentIndex);this._segmentIndex=e.getNumPoints()-1,this._segmentFraction=1}compareTo(t){var e=t;return this._componentIndexe._componentIndex?1:this._segmentIndexe._segmentIndex?1:this._segmentFractione._segmentFraction?1:0}copy(){return new bo(this._componentIndex,this._segmentIndex,this._segmentFraction)}toString(){return"LinearLoc["+this._componentIndex+", "+this._segmentIndex+", "+this._segmentFraction+"]"}isOnSameSegment(t){return this._componentIndex===t._componentIndex&&(this._segmentIndex===t._segmentIndex||t._segmentIndex-this._segmentIndex==1&&0===t._segmentFraction||this._segmentIndex-t._segmentIndex==1&&0===this._segmentFraction)}snapToVertex(t,e){if(this._segmentFraction<=0||this._segmentFraction>=1)return null;var i=this.getSegmentLength(t),n=this._segmentFraction*i,r=i-n;n<=r&&nt?1:this._segmentIndexe?1:this._segmentFractioni?1:0}getSegmentLength(t){var e=t.getGeometryN(this._componentIndex),i=this._segmentIndex;this._segmentIndex>=e.getNumPoints()-1&&(i=e.getNumPoints()-2);var n=e.getCoordinateN(i),r=e.getCoordinateN(i+1);return n.distance(r)}isVertex(){return this._segmentFraction<=0||this._segmentFraction>=1}getClass(){return bo}get interfaces_(){return[u]}}bo.constructor_=function(){if(this._componentIndex=0,this._segmentIndex=0,this._segmentFraction=0,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._componentIndex=t._componentIndex,this._segmentIndex=t._segmentIndex,this._segmentFraction=t._segmentFraction}else if(2===arguments.length){let t=arguments[0],e=arguments[1];bo.constructor_.call(this,0,t,e)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,this.normalize()}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this._componentIndex=t,this._segmentIndex=e,this._segmentFraction=i,n&&this.normalize()}};class Lo{constructor(){Lo.constructor_.apply(this,arguments)}static segmentEndVertexIndex(t){return t.getSegmentFraction()>0?t.getSegmentIndex()+1:t.getSegmentIndex()}getComponentIndex(){return this._componentIndex}getLine(){return this._currentLine}getVertexIndex(){return this._vertexIndex}getSegmentEnd(){return this._vertexIndex=this._currentLine.getNumPoints()&&(this._componentIndex++,this.loadCurrentLine(),this._vertexIndex=0)}loadCurrentLine(){if(this._componentIndex>=this._numLines)return this._currentLine=null,null;this._currentLine=this._linearGeom.getGeometryN(this._componentIndex)}getSegmentStart(){return this._currentLine.getCoordinateN(this._vertexIndex)}isEndOfLine(){return!(this._componentIndex>=this._numLines||this._vertexIndex=this._numLines||this._componentIndex===this._numLines-1&&this._vertexIndex>=this._currentLine.getNumPoints())}getClass(){return Lo}get interfaces_(){return[]}}Lo.constructor_=function(){if(this._linearGeom=null,this._numLines=null,this._currentLine=null,this._componentIndex=0,this._vertexIndex=0,1===arguments.length){let t=arguments[0];Lo.constructor_.call(this,t,0,0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];Lo.constructor_.call(this,t,e.getComponentIndex(),Lo.segmentEndVertexIndex(e))}else if(3===arguments.length){let t=arguments[0],e=arguments[1],n=arguments[2];if(!I(t,pt))throw new i("Lineal geometry is required");this._linearGeom=t,this._numLines=t.getNumGeometries(),this._componentIndex=e,this._vertexIndex=n,this.loadCurrentLine()}};class Bo{constructor(){Bo.constructor_.apply(this,arguments)}static indexOf(t,e){return new Bo(t).indexOf(e)}static indexOfAfter(t,e,i){return new Bo(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,null)}indexOfFromStart(t,e){for(var i=r.MAX_VALUE,n=0,s=0,o=-1,a=new pe,l=new Lo(this._linearGeom);l.hasNext();l.next())if(!l.isEndOfLine()){a.p0=l.getSegmentStart(),a.p1=l.getSegmentEnd();var h=a.distance(t),c=a.segmentFraction(t),u=l.getComponentIndex(),g=l.getVertexIndex();h=0,"computed location is before specified minimum location"),n}getClass(){return Bo}get interfaces_(){return[]}}Bo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Mo{constructor(){Mo.constructor_.apply(this,arguments)}static indicesOf(t,e){return new Mo(t).indicesOf(e)}indicesOf(t){var e=t.getGeometryN(0).getCoordinateN(0),i=t.getGeometryN(t.getNumGeometries()-1),n=i.getCoordinateN(i.getNumPoints()-1),r=new Bo(this._linearGeom),s=new Array(2).fill(null);return s[0]=r.indexOf(e),0===t.getLength()?s[1]=s[0].copy():s[1]=r.indexOfAfter(n,s[0]),s}getClass(){return Mo}get interfaces_(){return[]}}Mo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class To{constructor(){To.constructor_.apply(this,arguments)}getGeometry(){return this.endLine(),this._geomFact.buildGeometry(this._lines)}getLastCoordinate(){return this._lastPt}endLine(){if(null===this._coordList)return null;if(this._ignoreInvalidLines&&this._coordList.size()<2)return this._coordList=null,null;var t=this._coordList.toCoordinateArray(),e=t;this._fixInvalidLines&&(e=this.validCoordinateSequence(t)),this._coordList=null;var n=null;try{n=this._geomFact.createLineString(e)}catch(t){if(!(t instanceof i))throw t;if(!this._ignoreInvalidLines)throw t}null!==n&&this._lines.add(n)}setFixInvalidLines(t){this._fixInvalidLines=t}add(){if(1===arguments.length){let t=arguments[0];this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];null===this._coordList&&(this._coordList=new B),this._coordList.add(t,e),this._lastPt=t}}setIgnoreInvalidLines(t){this._ignoreInvalidLines=t}validCoordinateSequence(t){return t.length>=2?t:[t[0],t[0]]}getClass(){return To}get interfaces_(){return[]}}To.constructor_=function(){this._geomFact=null,this._lines=new b,this._coordList=null,this._ignoreInvalidLines=!1,this._fixInvalidLines=!1,this._lastPt=null;let t=arguments[0];this._geomFact=t};class Ro{constructor(){Ro.constructor_.apply(this,arguments)}static extract(t,e,i){return new Ro(t).extract(e,i)}computeLinear(t,e){var i=new To(this._line.getFactory());i.setFixInvalidLines(!0),t.isVertex()||i.add(t.getCoordinate(this._line));for(var n=new Lo(this._line,t);n.hasNext()&&!(e.compareLocationValues(n.getComponentIndex(),n.getVertexIndex(),0)<0);n.next()){var r=n.getSegmentStart();i.add(r),n.isEndOfLine()&&i.endLine()}return e.isVertex()||i.add(e.getCoordinate(this._line)),i.getGeometry()}computeLine(t,e){var i=this._line.getCoordinates(),n=new B,r=t.getSegmentIndex();t.getSegmentFraction()>0&&(r+=1);var s=e.getSegmentIndex();1===e.getSegmentFraction()&&(s+=1),s>=i.length&&(s=i.length-1),t.isVertex()||n.add(t.getCoordinate(this._line));for(var o=r;o<=s;o++)n.add(i[o]);e.isVertex()||n.add(e.getCoordinate(this._line)),n.size()<=0&&n.add(t.getCoordinate(this._line));var a=n.toCoordinateArray();return a.length<=1&&(a=[a[0],a[0]]),this._line.getFactory().createLineString(a)}extract(t,e){return e.compareTo(t)<0?this.reverse(this.computeLinear(e,t)):this.computeLinear(t,e)}reverse(t){return t instanceof Dt||t instanceof xt?t.reverse():(m.shouldNeverReachHere("non-linear geometry encountered"),null)}getClass(){return Ro}get interfaces_(){return[]}}Ro.constructor_=function(){this._line=null;let t=arguments[0];this._line=t};class No{constructor(){No.constructor_.apply(this,arguments)}clampIndex(t){var e=t.copy();return e.clamp(this._linearGeom),e}project(t){return Bo.indexOf(this._linearGeom,t)}checkGeometryType(){if(!(this._linearGeom instanceof Dt||this._linearGeom instanceof xt))throw new i("Input geometry must be linear")}extractPoint(){if(1===arguments.length)return arguments[0].getCoordinate(this._linearGeom);if(2===arguments.length){let e=arguments[1];var t=arguments[0].toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),e)}}isValidIndex(t){return t.isValid(this._linearGeom)}getEndIndex(){return bo.getEndLocation(this._linearGeom)}getStartIndex(){return new bo}indexOfAfter(t,e){return Bo.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){return Ro.extract(this._linearGeom,t,e)}indexOf(t){return Bo.indexOf(this._linearGeom,t)}indicesOf(t){return Mo.indicesOf(this._linearGeom,t)}getClass(){return No}get interfaces_(){return[]}}No.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t,this.checkGeometryType()};class Po{constructor(){Po.constructor_.apply(this,arguments)}static indexOf(t,e){return new Po(t).indexOf(e)}static indexOfAfter(t,e,i){return new Po(t).indexOfAfter(e,i)}indexOf(t){return this.indexOfFromStart(t,-1)}indexOfFromStart(t,e){for(var i=r.MAX_VALUE,n=e,s=0,o=new pe,a=new Lo(this._linearGeom);a.hasNext();){if(!a.isEndOfLine()){o.p0=a.getSegmentStart(),o.p1=a.getSegmentEnd();var l=o.distance(t),h=this.segmentNearestMeasure(o,t,s);le&&(n=h,i=l),s+=o.getLength()}a.next()}return n}indexOfAfter(t,e){if(e<0)return this.indexOf(t);var i=this._linearGeom.getLength();if(i=e,"computed index is before specified minimum index"),n}segmentNearestMeasure(t,e,i){var n=t.projectionFactor(e);return n<=0?i:n<=1?i+n*t.getLength():i+t.getLength()}getClass(){return Po}get interfaces_(){return[]}}Po.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Fo{constructor(){Fo.constructor_.apply(this,arguments)}static getLength(t,e){return new Fo(t).getLength(e)}static getLocation(){if(2===arguments.length){let t=arguments[1];return new Fo(arguments[0]).getLocation(t)}if(3===arguments.length){let t=arguments[1],e=arguments[2];return new Fo(arguments[0]).getLocation(t,e)}}getLength(t){for(var e=0,i=new Lo(this._linearGeom);i.hasNext();){if(!i.isEndOfLine()){var n=i.getSegmentStart(),r=i.getSegmentEnd().distance(n);if(t.getComponentIndex()===i.getComponentIndex()&&t.getSegmentIndex()===i.getVertexIndex())return e+r*t.getSegmentFraction();e+=r}i.next()}return e}resolveHigher(t){if(!t.isEndpoint(this._linearGeom))return t;var e=t.getComponentIndex();if(e>=this._linearGeom.getNumGeometries()-1)return t;do{e++}while(et){var a=(t-e)/o;return n=i.getComponentIndex(),r=i.getVertexIndex(),new bo(n,r,a)}e+=o}i.next()}return bo.getEndLocation(this._linearGeom)}getClass(){return Fo}get interfaces_(){return[]}}Fo.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};class Do{constructor(){Do.constructor_.apply(this,arguments)}clampIndex(t){var e=this.positiveIndex(t),i=this.getStartIndex();if(en?n:e}locationOf(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return Fo.getLocation(this._linearGeom,t,e)}}project(t){return Po.indexOf(this._linearGeom,t)}positiveIndex(t){return t>=0?t:this._linearGeom.getLength()+t}extractPoint(){if(1===arguments.length){let t=arguments[0];return Fo.getLocation(this._linearGeom,t).getCoordinate(this._linearGeom)}if(2===arguments.length){let e=arguments[0],i=arguments[1];var t=Fo.getLocation(this._linearGeom,e).toLowest(this._linearGeom);return t.getSegment(this._linearGeom).pointAlongOffset(t.getSegmentFraction(),i)}}isValidIndex(t){return t>=this.getStartIndex()&&t<=this.getEndIndex()}getEndIndex(){return this._linearGeom.getLength()}getStartIndex(){return 0}indexOfAfter(t,e){return Po.indexOfAfter(this._linearGeom,t,e)}extractLine(t,e){new No(this._linearGeom);var i=this.clampIndex(t),n=this.clampIndex(e),r=i===n,s=this.locationOf(i,r),o=this.locationOf(n);return Ro.extract(this._linearGeom,s,o)}indexOf(t){return Po.indexOf(this._linearGeom,t)}indicesOf(t){var e=Mo.indicesOf(this._linearGeom,t);return[Fo.getLength(this._linearGeom,e[0]),Fo.getLength(this._linearGeom,e[1])]}getClass(){return Do}get interfaces_(){return[]}}Do.constructor_=function(){this._linearGeom=null;let t=arguments[0];this._linearGeom=t};var Oo=Object.freeze({LengthIndexedLine:Do,LengthLocationMap:Fo,LinearGeometryBuilder:To,LinearIterator:Lo,LinearLocation:bo,LocationIndexedLine:No});class Qo{get interfaces_(){return[]}getClass(){return Qo}static union(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return es.createEmptyResult(es.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),$r.overlayOp(t,e,es.UNION)}}j.prototype.equalsTopo=function(t){return!!this.getEnvelopeInternal().equals(t.getEnvelopeInternal())&&xs.relate(this,t).isEquals(this.getDimension(),t.getDimension())},j.prototype.union=function(){if(0===arguments.length)return Ms.union(this);if(1===arguments.length){let t=arguments[0];return Qo.union(this,t)}},j.prototype.isValid=function(){return Os.isValid(this)},j.prototype.intersection=function(t){if(this.isEmpty()||t.isEmpty())return es.createEmptyResult(es.INTERSECTION,this,t,this._factory);if(this.isGeometryCollection()){var e=t;return qr.map(this,{interfaces_:[MapOp],map:function(t){return t.intersection(e)}})}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.INTERSECTION)},j.prototype.covers=function(t){return xs.covers(this,t)},j.prototype.coveredBy=function(t){return xs.covers(t,this)},j.prototype.touches=function(t){return xs.touches(this,t)},j.prototype.intersects=function(t){return xs.intersects(this,t)},j.prototype.within=function(t){return xs.contains(t,this)},j.prototype.overlaps=function(t){return xs.overlaps(this,t)},j.prototype.disjoint=function(t){return xs.disjoint(this,t)},j.prototype.crosses=function(t){return xs.crosses(this,t)},j.prototype.buffer=function(){if(1===arguments.length){let t=arguments[0];return mr.bufferOp(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return mr.bufferOp(this,t,e)}if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return mr.bufferOp(this,t,e,i)}},j.prototype.convexHull=function(){return new $e(this).getConvexHull()},j.prototype.relate=function(...t){if(1===arguments.length){let t=arguments[0];return xs.relate(this,t)}if(2===arguments.length){let t=arguments[0],e=arguments[1];return xs.relate(this,t).matches(e)}},j.prototype.getCentroid=function(){if(this.isEmpty())return this._factory.createPoint();var t=We.getCentroid(this);return this.createPointFromInternalCoord(t,this)},j.prototype.getInteriorPoint=function(){if(this.isEmpty())return this._factory.createPoint();var t=null,e=this.getDimension();return t=0===e?new ri(this).getInteriorPoint():1===e?new ni(this).getInteriorPoint():new ei(this).getInteriorPoint(),this.createPointFromInternalCoord(t,this)},j.prototype.symDifference=function(t){if(this.isEmpty()||t.isEmpty()){if(this.isEmpty()&&t.isEmpty())return es.createEmptyResult(es.SYMDIFFERENCE,this,t,this._factory);if(this.isEmpty())return t.copy();if(t.isEmpty())return this.copy()}return this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.SYMDIFFERENCE)},j.prototype.createPointFromInternalCoord=function(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)},j.prototype.toText=function(){return(new ue).write(this)},j.prototype.toString=function(){this.toText()},j.prototype.contains=function(t){return xs.contains(this,t)},j.prototype.difference=function(t){return this.isEmpty()?es.createEmptyResult(es.DIFFERENCE,this,t,this._factory):t.isEmpty()?this.copy():(this.checkNotGeometryCollection(this),this.checkNotGeometryCollection(t),$r.overlayOp(this,t,es.DIFFERENCE))},j.prototype.isSimple=function(){return new kn(this).isSimple()},j.prototype.isWithinDistance=function(t,e){return!(this.getEnvelopeInternal().distance(t.getEnvelopeInternal())>e)&&vr.isWithinDistance(this,t,e)},j.prototype.distance=function(t){return vr.distance(this,t)},j.prototype.isEquivalentClass=function(t){return this.getClass()===t.getClass()},t.version="2.0.2 (f363091)",t.algorithm=ai,t.densify=ui,t.dissolve=yi,t.geom=ye,t.geomgraph=zi,t.index=fn,t.io=Cn,t.noding=Qn,t.operation=ks,t.precision=qs,t.simplify=eo,t.triangulate=So,t.linearref=Oo,Object.defineProperty(t,"__esModule",{value:!0})}(e)},197:(t,e)=>{var i,n,r,s,o,a,l,h,c,u,g,d,p; +/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */n={defaultNoDataValue:-34027999387901484e22,decode:function(t,e){var i=(e=e||{}).encodedMaskData||null===e.encodedMaskData,l=a(t,e.inputOffset||0,i),h=null!==e.noDataValue?e.noDataValue:n.defaultNoDataValue,c=r(l,e.pixelType||Float32Array,e.encodedMaskData,h,e.returnMask),u={width:l.width,height:l.height,pixelData:c.resultPixels,minValue:c.minValue,maxValue:l.pixels.maxValue,noDataValue:h};return c.resultMask&&(u.maskData=c.resultMask),e.returnEncodedMask&&l.mask&&(u.encodedMaskData=l.mask.bitset?l.mask.bitset:null),e.returnFileInfo&&(u.fileInfo=s(l),e.computeUsedBitDepths&&(u.fileInfo.bitDepths=o(l))),u}},r=function(t,e,i,n,r){var s,o,a,h=0,c=t.pixels.numBlocksX,u=t.pixels.numBlocksY,g=Math.floor(t.width/c),d=Math.floor(t.height/u),p=2*t.maxZError,A=Number.MAX_VALUE;i=i||(t.mask?t.mask.bitset:null),o=new e(t.width*t.height),r&&i&&(a=new Uint8Array(t.width*t.height));for(var f,m,_=new Float32Array(g*d),y=0;y<=u;y++){var I=y!==u?d:t.height%u;if(0!==I)for(var E=0;E<=c;E++){var C=E!==c?g:t.width%c;if(0!==C){var v,x,w,S,b=y*t.width*d+E*g,L=t.width-C,B=t.pixels.blocks[h];if(B.encoding<2?(0===B.encoding?v=B.rawData:(l(B.stuffedData,B.bitsPerPixel,B.numValidPixels,B.offset,p,_,t.pixels.maxValue),v=_),x=0):w=2===B.encoding?0:B.offset,i)for(m=0;m>3],S<<=7&b),f=0;f>3]),128&S?(a&&(a[b]=1),A=A>(s=B.encoding<2?v[x++]:w)?s:A,o[b++]=s):(a&&(a[b]=0),o[b++]=n),S<<=1;b+=L}else if(B.encoding<2)for(m=0;m(s=v[x++])?s:A,o[b++]=s;b+=L}else for(A=A>w?w:A,m=0;m0){var o=new Uint8Array(Math.ceil(n.width*n.height/8)),a=(s=new DataView(t,e,n.mask.numBytes)).getInt16(0,!0),l=2,h=0;do{if(a>0)for(;a--;)o[h++]=s.getUint8(l++);else{var c=s.getUint8(l++);for(a=-a;a--;)o[h++]=c}a=s.getInt16(l,!0),l+=2}while(l0?1:0),p=g+(n.height%g>0?1:0);n.pixels.blocks=new Array(d*p);for(var A=0,f=0;f3)throw"Invalid block encoding ("+I.encoding+")";if(2!==I.encoding){if(0!==E&&2!==E){if(E>>=6,I.offsetType=E,2===E)I.offset=s.getInt8(1),_++;else if(1===E)I.offset=s.getInt16(1,!0),_+=2;else{if(0!==E)throw"Invalid block offset type";I.offset=s.getFloat32(1,!0),_+=4}if(1===I.encoding)if(E=s.getUint8(_),_++,I.bitsPerPixel=63&E,E>>=6,I.numValidPixelsType=E,2===E)I.numValidPixels=s.getUint8(_),_++;else if(1===E)I.numValidPixels=s.getUint16(_,!0),_+=2;else{if(0!==E)throw"Invalid valid pixel count type";I.numValidPixels=s.getUint32(_,!0),_+=4}}var C;if(e+=_,3!==I.encoding)if(0===I.encoding){var v=(n.pixels.numBytes-1)/4;if(v!==Math.floor(v))throw"uncompressed block has invalid length";C=new ArrayBuffer(4*v),new Uint8Array(C).set(new Uint8Array(t,e,4*v));var x=new Float32Array(C);I.rawData=x,e+=4*v}else if(1===I.encoding){var w=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),S=Math.ceil(w/4);C=new ArrayBuffer(4*S),new Uint8Array(C).set(new Uint8Array(t,e,w)),I.stuffedData=new Uint32Array(C),e+=w}}else e++}return n.eofOffset=e,n},l=function(t,e,i,n,r,s,o){var a,l,h,c=(1<=e)l=h>>>g-e&c,g-=e;else{var A=e-g;l=(h&c)<>>(g=32-A)}s[a]=l=i?(h=c>>>A-i&d,A-=i):(h=(c&d)<<(u=i-A)&d,h+=(c=t[p++])>>>(A=32-u)),e[l]=r[h];else for(g=Math.ceil((a-s)/o),l=0;l=i?(h=c>>>A-i&d,A-=i):(h=(c&d)<<(u=i-A)&d,h+=(c=t[p++])>>>(A=32-u)),e[l]=h=e?(g=o>>>u-e&a,u-=e):(g=(o&a)<<(c=e-u)&a,g+=(o=t[l++])>>>(u=32-c)),d[h]=g=i?(h=c>>>A&g,p-=i,A+=i):(h=c>>>A&g,p=32-(u=i-p),h|=((c=t[d++])&(1<=i?(h=c>>>A&g,p-=i,A+=i):(h=c>>>A&g,p=32-(u=i-p),h|=((c=t[d++])&(1<=e?(g=o>>>d&a,u-=e,d+=e):(g=o>>>d&a,u=32-(c=e-u),g|=((o=t[l++])&(1<=i?(s=o>>>c-i&l,c-=i):(s=(o&l)<<(a=i-c)&l,s+=(o=t[h++])>>>(c=32-a)),e[r]=s;return e},s=function(t,e,i,n){var r,s,o,a,l=(1<=i?(s=o>>>u&l,c-=i,u+=i):(s=o>>>u&l,c=32-(a=i-c),s|=((o=t[h++])&(1<=359?359:r;r-=o;do{e+=t[s++]<<8,i+=e+=t[s++]}while(--o);e=(65535&e)+(e>>>16),i=(65535&i)+(i>>>16)}return 1&n&&(i+=e+=t[s]<<8),((i=(65535&i)+(i>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(t,e){var i=e.ptr,n=new Uint8Array(t,i,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,n),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;i+=6;var s,o=new DataView(t,i,8),a=o.getInt32(0,!0);if(r.fileVersion=a,i+=4,a>=3&&(r.checksum=o.getUint32(4,!0),i+=4),o=new DataView(t,i,12),r.height=o.getUint32(0,!0),r.width=o.getUint32(4,!0),i+=8,a>=4?(r.numDims=o.getUint32(8,!0),i+=4):r.numDims=1,o=new DataView(t,i,40),r.numValidPixel=o.getUint32(0,!0),r.microBlockSize=o.getInt32(4,!0),r.blobSize=o.getInt32(8,!0),r.imageType=o.getInt32(12,!0),r.maxZError=o.getFloat64(16,!0),r.zMin=o.getFloat64(24,!0),r.zMax=o.getFloat64(32,!0),i+=40,e.headerInfo=r,e.ptr=i,a>=3&&(s=a>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(t,i-s,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(t,e){var i=e.headerInfo,n=this.getDataTypeArray(i.imageType),r=i.numDims*this.getDataTypeSize(i.imageType),s=this.readSubArray(t,e.ptr,n,r),o=this.readSubArray(t,e.ptr+r,n,r);e.ptr+=2*r;var a,l=!0;for(a=0;a0){i=new Uint8Array(Math.ceil(o/8));var c=(l=new DataView(t,r,h.numBytes)).getInt16(0,!0),u=2,g=0,d=0;do{if(c>0)for(;c--;)i[g++]=l.getUint8(u++);else for(d=l.getUint8(u++),c=-c;c--;)i[g++]=d;c=l.getInt16(u,!0),u+=2}while(u>3],p<<=7&A):p=i[A>>3],128&p&&(n[A]=1);e.pixels.resultMask=n,h.bitset=i,r+=h.numBytes}return e.ptr=r,e.mask=h,!0},readDataOneSweep:function(t,e,i,n){var r,s=e.ptr,a=e.headerInfo,l=a.numDims,h=a.width*a.height,c=a.imageType,u=a.numValidPixel*o.getDataTypeSize(c)*l,g=e.pixels.resultMask;if(i===Uint8Array)r=new Uint8Array(t,s,u);else{var d=new ArrayBuffer(u);new Uint8Array(d).set(new Uint8Array(t,s,u)),r=new i(d)}if(r.length===h*l)e.pixels.resultPixels=n?o.swapDimensionOrder(r,h,l,i,!0):r;else{e.pixels.resultPixels=new i(h*l);var p=0,A=0,f=0,m=0;if(l>1){if(n){for(A=0;A=l)return!1;var h=new Uint32Array(l-s);o.decodeBits(t,e,h);var c,u,g,d,p=[];for(c=s;c0&&(p[u].second=_<>>32-d,32-I>=d?32===(I+=d)&&(I=0,_=y[++E]):(I+=d-32,_=y[++E],p[u].second|=_>>>32-I));var C=0,v=0,x=new a;for(c=0;c=i?i:C;var w,S,b,L,B,M=[];for(c=s;c0)if(w=[d,u],d<=v)for(S=p[u].second<=0;L--)S>>>L&1?(B.right||(B.right=new a),B=B.right):(B.left||(B.left=new a),B=B.left),0!==L||B.val||(B.val=w[1]);return{decodeLut:M,numBitsLUTQick:v,numBitsLUT:C,tree:x,stuffedData:y,srcPtr:E,bitPos:I}},readHuffman:function(t,e,i,n){var r,s,a,l,h,c,u,g,d,p=e.headerInfo.numDims,A=e.headerInfo.height,f=e.headerInfo.width,m=f*A,_=this.readHuffmanTree(t,e),y=_.decodeLut,I=_.tree,E=_.stuffedData,C=_.srcPtr,v=_.bitPos,x=_.numBitsLUTQick,w=_.numBitsLUT,S=0===e.headerInfo.imageType?128:0,b=e.pixels.resultMask,L=0;v>0&&(C++,v=0);var B,M=E[C],T=1===e.encodeMode,R=new i(m*p),N=R;if(p<2||T){for(B=0;B1&&(N=new i(R.buffer,m*B,m),L=0),e.headerInfo.numValidPixel===f*A)for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,T?(a+=u>0?L:c>0?N[g-f]:L,a&=255,N[g]=a,L=a):N[g]=a}else for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,T?(u>0&&b[g-1]?a+=L:c>0&&b[g-f]?a+=N[g-f]:a+=L,a&=255,N[g]=a,L=a):N[g]=a}}else for(g=0,c=0;c>>32-x,32-v>>64-v-x),y[h])s=y[h][1],v+=y[h][0];else for(h=l=M<>>32-w,32-v>>64-v-w),r=I,d=0;d>>w-d-1&1?r.right:r.left).left&&!r.right){s=r.val,v=v+d+1;break}v>=32&&(v-=32,M=E[++C]),a=s-S,N[g]=a}e.ptr=e.ptr+4*(C+1)+(v>0?4:0),e.pixels.resultPixels=R,p>1&&!n&&(e.pixels.resultPixels=o.swapDimensionOrder(R,m,p,i))},decodeBits:function(o,a,l,h,c){var u=a.headerInfo,g=u.fileVersion,d=0,p=o.byteLength-a.ptr>=5?5:o.byteLength-a.ptr,A=new DataView(o,a.ptr,p),f=A.getUint8(0);d++;var m=f>>6,_=0===m?4:3-m,y=(32&f)>0,I=31&f,E=0;if(1===_)E=A.getUint8(d),d++;else if(2===_)E=A.getUint16(d,!0),d+=2;else{if(4!==_)throw"Invalid valid pixel count type";E=A.getUint32(d,!0),d+=4}var C,v,x,w,S,b,L,B,M,T=2*u.maxZError,R=u.numDims>1?u.maxValues[c]:u.zMax;if(y){for(a.counter.lut++,B=A.getUint8(d),d++,w=Math.ceil((B-1)*I/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),x=new Uint8Array(v),a.ptr+=d,x.set(new Uint8Array(o,a.ptr,w)),L=new Uint32Array(v),a.ptr+=w,M=0;B-1>>>M;)M++;w=Math.ceil(E*M/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),(x=new Uint8Array(v)).set(new Uint8Array(o,a.ptr,w)),C=new Uint32Array(v),a.ptr+=w,b=g>=3?n(L,I,B-1,h,T,R):e(L,I,B-1,h,T,R),g>=3?i(C,l,M,E,b):t(C,l,M,E,b)}else a.counter.bitstuffer++,M=I,a.ptr+=d,M>0&&(w=Math.ceil(E*M/8),S=Math.ceil(w/4),v=new ArrayBuffer(4*S),(x=new Uint8Array(v)).set(new Uint8Array(o,a.ptr,w)),C=new Uint32Array(v),a.ptr+=w,g>=3?null==h?s(C,l,M,E):i(C,l,M,E,!1,h,T,R):null==h?r(C,l,M,E):t(C,l,M,E,!1,h,T,R))},readTiles:function(t,e,i,n){var r=e.headerInfo,s=r.width,a=r.height,l=s*a,h=r.microBlockSize,c=r.imageType,u=o.getDataTypeSize(c),g=Math.ceil(s/h),d=Math.ceil(a/h);e.pixels.numBlocksY=d,e.pixels.numBlocksX=g,e.pixels.ptr=0;var p,A,f,m,_,y,I,E,C,v,x=0,w=0,S=0,b=0,L=0,B=0,M=0,T=0,R=0,N=0,P=0,F=0,D=0,O=0,Q=0,k=new i(h*h),G=a%h||h,U=s%h||h,q=r.numDims,V=e.pixels.resultMask,z=e.pixels.resultPixels,Y=r.fileVersion>=5?14:15,j=r.zMax;for(S=0;S1?(v=z,N=S*s*h+b*h,z=new i(e.pixels.resultPixels.buffer,l*E*u,l),j=r.maxValues[E]):v=null,M=t.byteLength-e.ptr,A={},Q=0,T=(p=new DataView(t,e.ptr,Math.min(10,M))).getUint8(0),Q++,C=r.fileVersion>=5?4&T:0,R=T>>6&255,(T>>2&Y)!=(b*h>>3&Y))throw"integrity issue";if(C&&0===E)throw"integrity issue";if((_=3&T)>3)throw e.ptr+=Q,"Invalid block encoding ("+_+")";if(2!==_)if(0===_){if(C)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=Q,F=(F=L*B*u)<(D=t.byteLength-e.ptr)?F:D,f=new ArrayBuffer(F%u==0?F:F+u-F%u),new Uint8Array(f).set(new Uint8Array(t,e.ptr,F)),m=new i(f),O=0,V)for(x=0;x1&&!n&&(e.pixels.resultPixels=o.swapDimensionOrder(e.pixels.resultPixels,l,q,i))},formatFileInfo:function(t){return{fileIdentifierString:t.headerInfo.fileIdentifierString,fileVersion:t.headerInfo.fileVersion,imageType:t.headerInfo.imageType,height:t.headerInfo.height,width:t.headerInfo.width,numValidPixel:t.headerInfo.numValidPixel,microBlockSize:t.headerInfo.microBlockSize,blobSize:t.headerInfo.blobSize,maxZError:t.headerInfo.maxZError,pixelType:o.getPixelType(t.headerInfo.imageType),eofOffset:t.eofOffset,mask:t.mask?{numBytes:t.mask.numBytes}:null,pixels:{numBlocksX:t.pixels.numBlocksX,numBlocksY:t.pixels.numBlocksY,maxValue:t.headerInfo.zMax,minValue:t.headerInfo.zMin,noDataValue:t.noDataValue}}},constructConstantSurface:function(t,e){var i=t.headerInfo.zMax,n=t.headerInfo.zMin,r=t.headerInfo.maxValues,s=t.headerInfo.numDims,o=t.headerInfo.height*t.headerInfo.width,a=0,l=0,h=0,c=t.pixels.resultMask,u=t.pixels.resultPixels;if(c)if(s>1){if(e)for(a=0;a1&&n!==i)if(e)for(a=0;a=-128&&e<=127;break;case 1:i=e>=0&&e<=255;break;case 2:i=e>=-32768&&e<=32767;break;case 3:i=e>=0&&e<=65536;break;case 4:i=e>=-2147483648&&e<=2147483647;break;case 5:i=e>=0&&e<=4294967296;break;case 6:i=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:i=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:i=!1}return i},getDataTypeSize:function(t){var e=0;switch(t){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=t}return e},getDataTypeUsed:function(t,e){var i=t;switch(t){case 2:case 4:i=t-e;break;case 3:case 5:i=t-2*e;break;case 6:i=0===e?t:1===e?2:1;break;case 7:i=0===e?t:t-2*e+1;break;default:i=t}return i},getOnePixel:function(t,e,i,n){var r=0;switch(i){case 0:r=n.getInt8(e);break;case 1:r=n.getUint8(e);break;case 2:r=n.getInt16(e,!0);break;case 3:r=n.getUint16(e,!0);break;case 4:r=n.getInt32(e,!0);break;case 5:r=n.getUInt32(e,!0);break;case 6:r=n.getFloat32(e,!0);break;case 7:r=n.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(t,e,i,n,r){var s=0,o=0,a=0,l=0,h=t;if(i>1)if(h=new n(e*i),r)for(s=0;s5)throw"unsupported lerc version 2."+a;o.readMask(t,r),s.numValidPixel===s.width*s.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var h=s.width*s.height;r.pixels.resultPixels=new l(h*s.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var c,u=!e.returnPixelInterleavedDims;if(0!==s.numValidPixel)if(s.zMax===s.zMin)o.constructConstantSurface(r,u);else if(a>=4&&o.checkMinMaxRanges(t,r))o.constructConstantSurface(r,u);else{var g=new DataView(t,r.ptr,2),d=g.getUint8(0);if(r.ptr++,d)o.readDataOneSweep(t,r,l,u);else if(a>1&&s.imageType<=1&&Math.abs(s.maxZError-.5)<1e-5){var p=g.getUint8(1);if(r.ptr++,r.encodeMode=p,p>2||a<4&&p>1)throw"Invalid Huffman flag "+p;p?o.readHuffman(t,r,l,u):o.readTiles(t,r,l,u)}else o.readTiles(t,r,l,u)}r.eofOffset=r.ptr,e.inputOffset?(c=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(c)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(c=r.headerInfo.blobSize-r.ptr,Math.abs(c)>=1&&(r.eofOffset=r.headerInfo.blobSize));var A={width:s.width,height:s.height,pixelData:r.pixels.resultPixels,minValue:s.zMin,maxValue:s.zMax,validPixelCount:s.numValidPixel,dimCount:s.numDims,dimStats:{minValues:s.minValues,maxValues:s.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&o.isValidPixelValue(s.imageType,i)){var f=r.pixels.resultMask;for(n=0;n1&&(h&&_.push(h),E.fileInfo.mask&&E.fileInfo.mask.numBytes>0&&I++),f++,y.pixels.push(E.pixelData),y.statistics.push({minValue:E.minValue,maxValue:E.maxValue,noDataValue:E.noDataValue,dimStats:E.dimStats})}if(n>1&&I>1){for(A=y.width*y.height,y.bandMasks=_,(h=new Uint8Array(A)).set(_[0]),c=1;c<_.length;c++)for(l=_[c],p=0;p{"use strict";t.exports=r;var n=i(645);function r(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}r.Varint=0,r.Fixed64=1,r.Bytes=2,r.Fixed32=5;var s=4294967296,o=1/s,a="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function l(t){return t.type===r.Bytes?t.readVarint()+t.pos:t.pos+1}function h(t,e,i){return i?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function c(t,e,i){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));i.realloc(n);for(var r=i.pos-1;r>=t;r--)i.buf[r+n]=i.buf[r]}function u(t,e){for(var i=0;i>>8,t[i+2]=e>>>16,t[i+3]=e>>>24}function C(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}r.prototype={destroy:function(){this.buf=null},readFields:function(t,e,i){for(i=i||this.length;this.pos>3,s=this.pos;this.type=7&n,t(r,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=I(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=C(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=I(this.buf,this.pos)+I(this.buf,this.pos+4)*s;return this.pos+=8,t},readSFixed64:function(){var t=I(this.buf,this.pos)+C(this.buf,this.pos+4)*s;return this.pos+=8,t},readFloat:function(){var t=n.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=n.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,i,n=this.buf;return e=127&(i=n[this.pos++]),i<128?e:(e|=(127&(i=n[this.pos++]))<<7,i<128?e:(e|=(127&(i=n[this.pos++]))<<14,i<128?e:(e|=(127&(i=n[this.pos++]))<<21,i<128?e:function(t,e,i){var n,r,s=i.buf;if(r=s[i.pos++],n=(112&r)>>4,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<3,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<10,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<17,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(127&r)<<24,r<128)return h(t,n,e);if(r=s[i.pos++],n|=(1&r)<<31,r<128)return h(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(i=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&a?function(t,e,i){return a.decode(t.subarray(e,i))}(this.buf,e,t):function(t,e,i){var n="",r=e;for(;r239?4:l>223?3:l>191?2:1;if(r+c>i)break;1===c?l<128&&(h=l):2===c?128==(192&(s=t[r+1]))&&(h=(31&l)<<6|63&s)<=127&&(h=null):3===c?(s=t[r+1],o=t[r+2],128==(192&s)&&128==(192&o)&&((h=(15&l)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===c&&(s=t[r+1],o=t[r+2],a=t[r+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&l)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,c=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),n+=String.fromCharCode(h),r+=c}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==r.Bytes)return t.push(this.readVarint(e));var i=l(this);for(t=t||[];this.pos127;);else if(e===r.Bytes)this.pos=this.readVarint()+this.pos;else if(e===r.Fixed32)this.pos+=4;else{if(e!==r.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var i,n;t>=0?(i=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(i=~(-t%4294967296))?i=i+1|0:(i=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,i){i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos++]=127&t|128,t>>>=7,i.buf[i.pos]=127&t}(i,0,e),function(t,e){var i=(7&t)<<4;if(e.buf[e.pos++]|=i|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,i){for(var n,r,s=0;s55295&&n<57344){if(!r){n>56319||s+1===e.length?(t[i++]=239,t[i++]=191,t[i++]=189):r=n;continue}if(n<56320){t[i++]=239,t[i++]=191,t[i++]=189,r=n;continue}n=r-55296<<10|n-56320|65536,r=null}else r&&(t[i++]=239,t[i++]=191,t[i++]=189,r=null);n<128?t[i++]=n:(n<2048?t[i++]=n>>6|192:(n<65536?t[i++]=n>>12|224:(t[i++]=n>>18|240,t[i++]=n>>12&63|128),t[i++]=n>>6&63|128),t[i++]=63&n|128)}return i}(this.buf,t,this.pos);var i=this.pos-e;i>=128&&c(e,i,this),this.pos=e-1,this.writeVarint(i),this.pos+=i},writeFloat:function(t){this.realloc(4),n.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),n.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var i=0;i=128&&c(i,n,this),this.pos=i-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,i){this.writeTag(t,r.Bytes),this.writeRawMessage(e,i)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,u,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,g,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,A,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,d,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,p,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,f,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,m,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,_,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,y,e)},writeBytesField:function(t,e){this.writeTag(t,r.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,r.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,r.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,r.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,r.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,r.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,r.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,r.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,r.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,r.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}}},402:function(t){t.exports=function(){"use strict";function t(t,n,r,s,o){!function t(i,n,r,s,o){for(;s>r;){if(s-r>600){var a=s-r+1,l=n-r+1,h=Math.log(a),c=.5*Math.exp(2*h/3),u=.5*Math.sqrt(h*c*(a-c)/a)*(l-a/2<0?-1:1);t(i,n,Math.max(r,Math.floor(n-l*c/a+u)),Math.min(s,Math.floor(n+(a-l)*c/a+u)),o)}var g=i[n],d=r,p=s;for(e(i,r,n),o(i[s],g)>0&&e(i,r,s);d0;)p--}0===o(i[r],g)?e(i,r,p):e(i,++p,s),p<=n&&(r=p+1),n<=p&&(s=p-1)}}(t,n,r||0,s||t.length-1,o||i)}function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function r(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function A(e,i,n,r,s){for(var o=[i,n];o.length;)if(!((n=o.pop())-(i=o.pop())<=r)){var a=i+Math.ceil((n-i)/r/2)*r;t(e,a,i,n,s),o.push(i,a,a,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,i=[];if(!d(t,e))return i;for(var n=this.toBBox,r=[];e;){for(var s=0;s=0&&r[e].children.length>this._maxEntries;)this._split(r,e),e--;this._adjustParentBBoxes(n,r,e)},n.prototype._split=function(t,e){var i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var o=this._chooseSplitIndex(i,r,n),a=p(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,s(i,this.toBBox),s(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},n.prototype._splitRoot=function(t,e){this.data=p([t,e]),this.data.height=t.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,i){for(var n,r,s,a,l,h,u,g=1/0,d=1/0,p=e;p<=i-e;p++){var A=o(t,0,p,this.toBBox),f=o(t,p,i,this.toBBox),m=(r=A,s=f,a=void 0,l=void 0,h=void 0,u=void 0,a=Math.max(r.minX,s.minX),l=Math.max(r.minY,s.minY),h=Math.min(r.maxX,s.maxX),u=Math.min(r.maxY,s.maxY),Math.max(0,h-a)*Math.max(0,u-l)),_=c(A)+c(f);m=e;d--){var p=t.children[d];a(l,t.leaf?r(p):p),h+=u(l)}return h},n.prototype._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)a(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():s(t[e],this.toBBox)},n}()},840:t=>{function e(t,e){const i=new RegExp(e,"g"),n=t.match(i);return n?n.length:0}t.exports=e,t.exports.default=e},635:(t,e,i)=>{const n=i(622),r=i(566),s=i(840);function o(t,e,i){const o=i&&i.debug||!1,a=!(i&&!1===typeof i.nested),l=i&&i.startIndex||0;o&&console.log("[xml-utils] starting findTagByName with",e," and ",i);const h=n(t,`<${e}[ \n>/]`,l);if(o&&console.log("[xml-utils] start:",h),-1===h)return;const c=t.slice(h+e.length);let u=r(c,"^[^<]*[ /]>",0);const g=-1!==u&&"/"===c[u-1];if(o&&console.log("[xml-utils] selfClosing:",g),!1===g)if(a){let t=0,i=1,n=0;for(;-1!==(u=r(c,"[ /]"+e+">",t));){const r=c.substring(t,u+1);if(i+=s(r,"<"+e+"[ \n\t>]"),n+=s(r,""),n>=i)break;t=u}}else u=r(c,"[ /]"+e+">",0);const d=h+e.length+u+1;if(o&&console.log("[xml-utils] end:",d),-1===d)return;const p=t.slice(h,d);let A;return A=g?null:p.slice(p.indexOf(">")+1,p.lastIndexOf("<")),{inner:A,outer:p,start:h,end:d}}t.exports=o,t.exports.default=o},602:(t,e,i)=>{const n=i(635);function r(t,e,i){const r=[],s=i&&i.debug||!1,o=!i||"boolean"!=typeof i.nested||i.nested;let a,l=i&&i.startIndex||0;for(;a=n(t,e,{debug:s,startIndex:l});)l=o?a.start+1+e.length:a.end,r.push(a);return s&&console.log("findTagsByName found",r.length,"tags"),r}t.exports=r,t.exports.default=r},330:t=>{function e(t,e,i){const n=i&&i.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+t);const r="object"==typeof t?t.outer:t,s=r.slice(0,r.indexOf(">")+1),o=['"',"'"];for(let t=0;t{function e(t,e,i){const n=new RegExp(e).exec(t.slice(i));return n?i+n.index+n[0].length-1:-1}t.exports=e,t.exports.default=e},622:t=>{function e(t,e,i){const n=new RegExp(e).exec(t.slice(i));return n?i+n.index:-1}t.exports=e,t.exports.default=e},421:()=>{[].includes||(Array.prototype.includes=function(t){let e=Object(this),i=parseInt(e.length)||0;if(0===i)return!1;let n,r,s=parseInt(arguments[1])||0;for(s>=0?n=s:(n=i+s,n<0&&(n=0));n=0?n=r:(n=i+r,n<0&&(n=0));let s,o=[];for(;n{if(null!==t.equals&&"function"==typeof t.equals&&t.equals.call)return t.equals(e);if(null!==e.equals&&"function"==typeof e.equals&&e.equals.call)return e.equals(t);{let i,n=[],r=[];if(isNaN(t)&&isNaN(e)&&"number"==typeof t&&"number"==typeof e)return!0;if(t===e)return!0;if("function"==typeof t&&"function"==typeof e||t instanceof Date&&e instanceof Date||t instanceof RegExp&&e instanceof RegExp||t instanceof String&&e instanceof String||t instanceof Number&&e instanceof Number)return t.toString()===e.toString();if(!(t instanceof Object&&e instanceof Object))return!1;if(t.isPrototypeOf(e)||e.isPrototypeOf(t))return!1;if(t.constructor!==e.constructor)return!1;if(t.prototype!==e.prototype)return!1;if(n.indexOf(t)>-1||r.indexOf(e)>-1)return!1;for(i in e){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1}for(i in t){if(e.hasOwnProperty(i)!==t.hasOwnProperty(i))return!1;if(typeof e[i]!=typeof t[i])return!1;switch(typeof t[i]){case"object":case"function":if(n.push(t),r.push(e),!Object.equals(t[i],e[i]))return!1;n.pop(),r.pop();break;default:if(t[i]!==e[i])return!1}}return!0}})},752:()=>{},640:()=>{},630:()=>{},737:(t,e,i)=>{"use strict";function n(t,e){let i=t.length-e,n=0;do{for(let i=e;i>0;i--)t[n+e]+=t[n],n++;i-=e}while(i>0)}function r(t,e,i){let n=0,r=t.length;const s=r/i;for(;r>e;){for(let i=e;i>0;--i)t[n+e]+=t[n],++n;r-=e}const o=t.slice();for(let e=0;es});class s{async decode(t,e){const i=await this.decodeBlock(e),s=t.Predictor||1;if(1!==s){const e=!t.StripOffsets;return function(t,e,i,s,o,a){if(!e||1===e)return t;for(let t=0;t=t.byteLength);++a){let s;if(2===e){switch(o[0]){case 8:s=new Uint8Array(t,a*h*i*l,h*i*l);break;case 16:s=new Uint16Array(t,a*h*i*l,h*i*l/2);break;case 32:s=new Uint32Array(t,a*h*i*l,h*i*l/4);break;default:throw new Error(`Predictor 2 not allowed with ${o[0]} bits per sample.`)}n(s,h)}else 3===e&&(s=new Uint8Array(t,a*h*i*l,h*i*l),r(s,h,l))}return t}(i,s,e?t.TileWidth:t.ImageWidth,e?t.TileLength:t.RowsPerStrip||t.ImageLength,t.BitsPerSample,t.PlanarConfiguration)}return i}}},522:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>s});var n=i(885),r=i(737);class s extends r.Z{decodeBlock(t){return(0,n.rr)(new Uint8Array(t)).buffer}}},347:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>m});var n=i(737);const r=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,a=3406,l=2276,h=1567,c=3784,u=5793,g=2896;function d(t,e){let i=0;const n=[];let r=16;for(;r>0&&!t[r-1];)--r;n.push({children:[],index:0});let s,o=n[0];for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;i++}a+10)return A--,p>>A&1;if(p=t[d++],255===p){const e=t[d++];if(e)throw new Error(`unexpected marker: ${(p<<8|e).toString(16)}`)}return A=7,p>>>7}function m(t){let e,i=t;for(;null!==(e=f());){if(i=i[e],"number"==typeof i)return i;if("object"!=typeof i)throw new Error("invalid huffman sequence")}return null}function _(t){let e=t,i=0;for(;e>0;){const t=f();if(null===t)return;i=i<<1|t,--e}return i}function y(t){const e=_(t);return e>=1<0)return void I--;let i=o;const n=a;for(;i<=n;){const n=m(t.huffmanTableAC),s=15&n,o=n>>4;if(0===s){if(o<15){I=_(o)+(1<>4,0===i)s<15?(I=_(s)+(1<>4;if(0===n){if(o<15)break;s+=16}else s+=o,e[r[s]]=y(n),s++}};let R,N,P=0;N=1===w?n[0].blocksPerLine*n[0].blocksPerColumn:c*i.mcusPerColumn;const F=s||N;for(;P=65488&&R<=65495))break;d+=2}return d-g}function A(t,e){const i=[],{blocksPerLine:n,blocksPerColumn:r}=e,d=n<<3,p=new Int32Array(64),A=new Uint8Array(64);function f(t,i,n){const r=e.quantizationTable;let d,p,A,f,m,_,y,I,E;const C=n;let v;for(v=0;v<64;v++)C[v]=t[v]*r[v];for(v=0;v<8;++v){const t=8*v;0!==C[1+t]||0!==C[2+t]||0!==C[3+t]||0!==C[4+t]||0!==C[5+t]||0!==C[6+t]||0!==C[7+t]?(d=u*C[0+t]+128>>8,p=u*C[4+t]+128>>8,A=C[2+t],f=C[6+t],m=g*(C[1+t]-C[7+t])+128>>8,I=g*(C[1+t]+C[7+t])+128>>8,_=C[3+t]<<4,y=C[5+t]<<4,E=d-p+1>>1,d=d+p+1>>1,p=E,E=A*c+f*h+128>>8,A=A*h-f*c+128>>8,f=E,E=m-y+1>>1,m=m+y+1>>1,y=E,E=I+_+1>>1,_=I-_+1>>1,I=E,E=d-f+1>>1,d=d+f+1>>1,f=E,E=p-A+1>>1,p=p+A+1>>1,A=E,E=m*l+I*a+2048>>12,m=m*a-I*l+2048>>12,I=E,E=_*o+y*s+2048>>12,_=_*s-y*o+2048>>12,y=E,C[0+t]=d+I,C[7+t]=d-I,C[1+t]=p+y,C[6+t]=p-y,C[2+t]=A+_,C[5+t]=A-_,C[3+t]=f+m,C[4+t]=f-m):(E=u*C[0+t]+512>>10,C[0+t]=E,C[1+t]=E,C[2+t]=E,C[3+t]=E,C[4+t]=E,C[5+t]=E,C[6+t]=E,C[7+t]=E)}for(v=0;v<8;++v){const t=v;0!==C[8+t]||0!==C[16+t]||0!==C[24+t]||0!==C[32+t]||0!==C[40+t]||0!==C[48+t]||0!==C[56+t]?(d=u*C[0+t]+2048>>12,p=u*C[32+t]+2048>>12,A=C[16+t],f=C[48+t],m=g*(C[8+t]-C[56+t])+2048>>12,I=g*(C[8+t]+C[56+t])+2048>>12,_=C[24+t],y=C[40+t],E=d-p+1>>1,d=d+p+1>>1,p=E,E=A*c+f*h+2048>>12,A=A*h-f*c+2048>>12,f=E,E=m-y+1>>1,m=m+y+1>>1,y=E,E=I+_+1>>1,_=I-_+1>>1,I=E,E=d-f+1>>1,d=d+f+1>>1,f=E,E=p-A+1>>1,p=p+A+1>>1,A=E,E=m*l+I*a+2048>>12,m=m*a-I*l+2048>>12,I=E,E=_*o+y*s+2048>>12,_=_*s-y*o+2048>>12,y=E,C[0+t]=d+I,C[56+t]=d-I,C[8+t]=p+y,C[48+t]=p-y,C[16+t]=A+_,C[40+t]=A-_,C[24+t]=f+m,C[32+t]=f-m):(E=u*n[v+0]+8192>>14,C[0+t]=E,C[8+t]=E,C[16+t]=E,C[24+t]=E,C[32+t]=E,C[40+t]=E,C[48+t]=E,C[56+t]=E)}for(v=0;v<64;++v){const t=128+(C[v]+8>>4);i[v]=t<0?0:t>255?255:t}}for(let t=0;t>4){if(n>>4!=1)throw new Error("DQT: invalid table spec");for(let t=0;t<64;t++){s[r[t]]=i()}}else for(let i=0;i<64;i++){s[r[i]]=t[e++]}this.quantizationTables[15&n]=s}break}case 65472:case 65473:case 65474:{i();const n={extended:65473===o,progressive:65474===o,precision:t[e++],scanLines:i(),samplesPerLine:i(),components:{},componentsOrder:[]},r=t[e++];let a;for(let i=0;i>4,r=15&t[e+1],s=t[e+2];n.componentsOrder.push(a),n.components[a]={h:i,v:r,quantizationIdx:s},e+=3}s(n),this.frames.push(n);break}case 65476:{const n=i();for(let i=2;i>4?this.huffmanTablesAC[15&n]=d(r,o):this.huffmanTablesDC[15&n]=d(r,o)}break}case 65501:i(),this.resetInterval=i();break;case 65498:{i();const n=t[e++],r=[],s=this.frames[0];for(let i=0;i>4],i.huffmanTableAC=this.huffmanTablesAC[15&n],r.push(i)}const o=t[e++],a=t[e++],l=t[e++],h=p(t,e,s,r,this.resetInterval,o,a,l>>4,15&l);e+=h;break}case 65535:255!==t[e]&&e--;break;default:if(255===t[e-3]&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(`unknown JPEG marker ${o.toString(16)}`)}o=i()}}getResult(){const{frames:t}=this;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let t=0;t{"use strict";i.r(e),i.d(e,{default:()=>d,zstd:()=>g});var n=i(885),r=i(197);let s,o,a;const l={env:{emscripten_notify_memory_growth:function(t){a=new Uint8Array(o.exports.memory.buffer)}}};const h="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var c=i(737),u=i(499);const g=new class{init(){return s||(s="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+h).then((t=>t.arrayBuffer())).then((t=>WebAssembly.instantiate(t,l))).then(this._init):WebAssembly.instantiate(Buffer.from(h,"base64"),l).then(this._init),s)}_init(t){o=t.instance,l.env.emscripten_notify_memory_growth(0)}decode(t,e=0){if(!o)throw new Error("ZSTDDecoder: Await .init() before decoding.");const i=t.byteLength,n=o.exports.malloc(i);a.set(t,n),e=e||Number(o.exports.ZSTD_findDecompressedSize(n,i));const r=o.exports.malloc(e),s=o.exports.ZSTD_decompress(r,e,n,i),l=a.slice(r,r+s);return o.exports.free(n),o.exports.free(r),l}};class d extends c.Z{constructor(t){super(),this.planarConfiguration=void 0!==t.PlanarConfiguration?t.PlanarConfiguration:1,this.samplesPerPixel=void 0!==t.SamplesPerPixel?t.SamplesPerPixel:1,this.addCompression=t.LercParameters[u.L5.AddCompression]}decodeBlock(t){switch(this.addCompression){case u.Qb.None:break;case u.Qb.Deflate:t=(0,n.rr)(new Uint8Array(t)).buffer;break;case u.Qb.Zstandard:t=g.decode(new Uint8Array(t)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return r.decode(t,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}},672:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>a});var n=i(737);const r=257;function s(t,e){for(let i=e.length-1;i>=0;i--)t.push(e[i]);return t}function o(t){const e=new Uint16Array(4093),i=new Uint8Array(4093);for(let t=0;t<=257;t++)e[t]=4096,i[t]=t;let n=258,o=9,a=0;function l(){n=258,o=9}function h(t){const e=function(t,e,i){const n=e%8,s=Math.floor(e/8),o=8-n,a=e+i-8*(s+1);let l=8*(s+2)-(e+i);const h=8*(s+2)-e;if(l=Math.max(0,l),s>=t.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),r;let c=t[s]&2**(8-n)-1;c<<=i-o;let u=c;if(s+1>>l;e<<=Math.max(0,i-h),u+=e}if(a>8&&s+2>>n}return u}(t,a,o);return a+=o,e}function c(t,r){return i[n]=r,e[n]=t,n++,n-1}function u(t){const n=[];for(let r=t;4096!==r;r=e[r])n.push(i[r]);return n}const g=[];l();const d=new Uint8Array(t);let p,A=h(d);for(;A!==r;){if(256===A){for(l(),A=h(d);256===A;)A=h(d);if(A===r)break;if(A>256)throw new Error(`corrupted code at scanline ${A}`);s(g,u(A)),p=A}else if(A=2**o&&(12===o?p=void 0:o++),A=h(d)}return new Uint8Array(g)}class a extends n.Z{decodeBlock(t){return o(t).buffer}}},411:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{decodeBlock(t){const e=new DataView(t),i=[];for(let n=0;n{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{decodeBlock(t){return t}}},588:(t,e,i)=>{"use strict";i.r(e),i.d(e,{default:()=>r});var n=i(737);class r extends n.Z{constructor(){if(super(),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(t,e){const i=new Blob([e]),n=await createImageBitmap(i);let r;"undefined"!=typeof document?(r=document.createElement("canvas"),r.width=n.width,r.height=n.height):r=new OffscreenCanvas(n.width,n.height);const s=r.getContext("2d");return s.drawImage(n,0,0),s.getImageData(0,0,n.width,n.height).data.buffer}}},499:(t,e,i)=>{"use strict";i.d(e,{Ie:()=>l,It:()=>s,L:()=>n,L5:()=>c,P1:()=>g,Qb:()=>u,pd:()=>h,sf:()=>a});const n={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},r={};for(const t in n)n.hasOwnProperty(t)&&(r[n[t]]=parseInt(t,10));const s=[r.BitsPerSample,r.ExtraSamples,r.SampleFormat,r.StripByteCounts,r.StripOffsets,r.StripRowCounts,r.TileByteCounts,r.TileOffsets,r.SubIFDs],o={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},a={};for(const t in o)o.hasOwnProperty(t)&&(a[o[t]]=parseInt(t,10));const l={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},h={Unspecified:0,Assocalpha:1,Unassalpha:2},c={Version:0,AddCompression:1},u={None:0,Deflate:1,Zstandard:2},g={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},d={};for(const t in g)g.hasOwnProperty(t)&&(d[g[t]]=parseInt(t,10))},294:(t,e,i)=>{"use strict";i.r(e),i.d(e,{create:()=>r});const n=Worker;function r(){const t='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new n("undefined"!=typeof Buffer?"data:application/javascript;base64,"+Buffer.from(t,"binary").toString("base64"):URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}},885:(t,e,i)=>{"use strict";i.d(e,{rr:()=>fi});function n(t){let e=t.length;for(;--e>=0;)t[e]=0}const r=256,s=286,o=30,a=15,l=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),h=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),c=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),g=new Array(576);n(g);const d=new Array(60);n(d);const p=new Array(512);n(p);const A=new Array(256);n(A);const f=new Array(29);n(f);const m=new Array(o);function _(t,e,i,n,r){this.static_tree=t,this.extra_bits=e,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=t&&t.length}let y,I,E;function C(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}n(m);const v=t=>t<256?p[t]:p[256+(t>>>7)],x=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},w=(t,e,i)=>{t.bi_valid>16-i?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=i-16):(t.bi_buf|=e<{w(t,i[2*e],i[2*e+1])},b=(t,e)=>{let i=0;do{i|=1&t,t>>>=1,i<<=1}while(--e>0);return i>>>1},L=(t,e,i)=>{const n=new Array(16);let r,s,o=0;for(r=1;r<=a;r++)o=o+i[r-1]<<1,n[r]=o;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=b(n[e]++,e))}},B=t=>{let e;for(e=0;e{t.bi_valid>8?x(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},T=(t,e,i,n)=>{const r=2*e,s=2*i;return t[r]{const n=t.heap[i];let r=i<<1;for(;r<=t.heap_len&&(r{let n,s,o,a,c=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+c++],n+=(255&t.pending_buf[t.sym_buf+c++])<<8,s=t.pending_buf[t.sym_buf+c++],0===n?S(t,s,e):(o=A[s],S(t,o+r+1,e),a=l[o],0!==a&&(s-=f[o],w(t,s,a)),n--,o=v(n),S(t,o,i),a=h[o],0!==a&&(n-=m[o],w(t,n,a)))}while(c{const i=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,s=e.stat_desc.elems;let o,l,h,c=-1;for(t.heap_len=0,t.heap_max=573,o=0;o>1;o>=1;o--)R(t,i,o);h=s;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],R(t,i,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,i[2*h]=i[2*o]+i[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,i[2*o+1]=i[2*l+1]=h,t.heap[1]=h++,R(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const i=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let c,u,g,d,p,A,f=0;for(d=0;d<=a;d++)t.bl_count[d]=0;for(i[2*t.heap[t.heap_max]+1]=0,c=t.heap_max+1;c<573;c++)u=t.heap[c],d=i[2*i[2*u+1]+1]+1,d>h&&(d=h,f++),i[2*u+1]=d,u>n||(t.bl_count[d]++,p=0,u>=l&&(p=o[u-l]),A=i[2*u],t.opt_len+=A*(d+p),s&&(t.static_len+=A*(r[2*u+1]+p)));if(0!==f){do{for(d=h-1;0===t.bl_count[d];)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[h]--,f-=2}while(f>0);for(d=h;0!==d;d--)for(u=t.bl_count[d];0!==u;)g=t.heap[--c],g>n||(i[2*g+1]!==d&&(t.opt_len+=(d-i[2*g+1])*i[2*g],i[2*g+1]=d),u--)}})(t,e),L(i,c,t.bl_count)},F=(t,e,i)=>{let n,r,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),e[2*(i+1)+1]=65535,n=0;n<=i;n++)r=o,o=e[2*(n+1)+1],++a{let n,r,s=-1,o=e[1],a=0,l=7,h=4;for(0===o&&(l=138,h=3),n=0;n<=i;n++)if(r=o,o=e[2*(n+1)+1],!(++a{w(t,0+(n?1:0),3),M(t),x(t,i),x(t,~i),i&&t.pending_buf.set(t.window.subarray(e,e+i),t.pending),t.pending+=i};var k=(t,e,i,n)=>{let s,o,a=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(F(t,t.dyn_ltree,t.l_desc.max_code),F(t,t.dyn_dtree,t.d_desc.max_code),P(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*u[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,o=t.static_len+3+7>>>3,o<=s&&(s=o)):s=o=i+5,i+4<=s&&-1!==e?Q(t,e,i,n):4===t.strategy||o===s?(w(t,2+(n?1:0),3),N(t,g,d)):(w(t,4+(n?1:0),3),((t,e,i,n)=>{let r;for(w(t,e-257,5),w(t,i-1,5),w(t,n-4,4),r=0;r{O||((()=>{let t,e,i,n,r;const u=new Array(16);for(i=0,n=0;n<28;n++)for(f[n]=i,t=0;t<1<>=7;n(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(A[i]+r+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{w(t,2,3),S(t,256,g),(t=>{16===t.bi_valid?(x(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var U=(t,e,i,n)=>{let r=65535&t,s=t>>>16&65535,o=0;for(;0!==i;){o=i>2e3?2e3:i,i-=o;do{r=r+e[n++]|0,s=s+r|0}while(--o);r%=65521,s%=65521}return r|s<<16};const q=new Uint32Array((()=>{let t,e=[];for(var i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e})());var V=(t,e,i,n)=>{const r=q,s=n+i;t^=-1;for(let i=n;i>>8^r[255&(t^e[i])];return~t},z={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Y={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:j,_tr_stored_block:H,_tr_flush_block:X,_tr_tally:W,_tr_align:K}=G,{Z_NO_FLUSH:J,Z_PARTIAL_FLUSH:Z,Z_FULL_FLUSH:$,Z_FINISH:tt,Z_BLOCK:et,Z_OK:it,Z_STREAM_END:nt,Z_STREAM_ERROR:rt,Z_DATA_ERROR:st,Z_BUF_ERROR:ot,Z_DEFAULT_COMPRESSION:at,Z_FILTERED:lt,Z_HUFFMAN_ONLY:ht,Z_RLE:ct,Z_FIXED:ut,Z_DEFAULT_STRATEGY:gt,Z_UNKNOWN:dt,Z_DEFLATED:pt}=Y,At=258,ft=262,mt=42,_t=113,yt=666,It=(t,e)=>(t.msg=z[e],e),Et=t=>2*t-(t>4?9:0),Ct=t=>{let e=t.length;for(;--e>=0;)t[e]=0},vt=t=>{let e,i,n,r=t.w_size;e=t.hash_size,n=e;do{i=t.head[--n],t.head[n]=i>=r?i-r:0}while(--e);e=r,n=e;do{i=t.prev[--n],t.prev[n]=i>=r?i-r:0}while(--e)};let xt=(t,e,i)=>(e<{const e=t.state;let i=e.pending;i>t.avail_out&&(i=t.avail_out),0!==i&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+i),t.next_out),t.next_out+=i,e.pending_out+=i,t.total_out+=i,t.avail_out-=i,e.pending-=i,0===e.pending&&(e.pending_out=0))},St=(t,e)=>{X(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,wt(t.strm)},bt=(t,e)=>{t.pending_buf[t.pending++]=e},Lt=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Bt=(t,e,i,n)=>{let r=t.avail_in;return r>n&&(r=n),0===r?0:(t.avail_in-=r,e.set(t.input.subarray(t.next_in,t.next_in+r),i),1===t.state.wrap?t.adler=U(t.adler,e,r,i):2===t.state.wrap&&(t.adler=V(t.adler,e,r,i)),t.next_in+=r,t.total_in+=r,r)},Mt=(t,e)=>{let i,n,r=t.max_chain_length,s=t.strstart,o=t.prev_length,a=t.nice_match;const l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,c=t.w_mask,u=t.prev,g=t.strstart+At;let d=h[s+o-1],p=h[s+o];t.prev_length>=t.good_match&&(r>>=2),a>t.lookahead&&(a=t.lookahead);do{if(i=e,h[i+o]===p&&h[i+o-1]===d&&h[i]===h[s]&&h[++i]===h[s+1]){s+=2,i++;do{}while(h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&h[++s]===h[++i]&&so){if(t.match_start=e,o=n,n>=a)break;d=h[s+o-1],p=h[s+o]}}}while((e=u[e&c])>l&&0!=--r);return o<=t.lookahead?o:t.lookahead},Tt=t=>{const e=t.w_size;let i,n,r;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ft)&&(t.window.set(t.window.subarray(e,e+e-n),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),n+=e),0===t.strm.avail_in)break;if(i=Bt(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=i,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=xt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=xt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let i,n,r,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,o=0,a=t.strm.avail_in;do{if(i=65535,r=t.bi_valid+42>>3,t.strm.avail_outn+t.strm.avail_in&&(i=n+t.strm.avail_in),i>r&&(i=r),i>8,t.pending_buf[t.pending-2]=~i,t.pending_buf[t.pending-1]=~i>>8,wt(t.strm),n&&(n>i&&(n=i),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+n),t.strm.next_out),t.strm.next_out+=n,t.strm.avail_out-=n,t.strm.total_out+=n,t.block_start+=n,i-=n),i&&(Bt(t.strm,t.strm.output,t.strm.next_out,i),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i)}while(0===o);return a-=t.strm.avail_in,a&&(a>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=a&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-a,t.strm.next_in),t.strstart),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.block_start=t.strstart),t.high_waterr&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,r+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),r>t.strm.avail_in&&(r=t.strm.avail_in),r&&(Bt(t.strm,t.window,t.strstart,r),t.strstart+=r,t.insert+=r>t.w_size-t.insert?t.w_size-t.insert:r),t.high_water>3,r=t.pending_buf_size-r>65535?65535:t.pending_buf_size-r,s=r>t.w_size?t.w_size:r,n=t.strstart-t.block_start,(n>=s||(n||e===tt)&&e!==J&&0===t.strm.avail_in&&n<=r)&&(i=n>r?r:n,o=e===tt&&0===t.strm.avail_in&&i===n?1:0,H(t,t.block_start,i,o),t.block_start+=i,wt(t.strm)),o?3:1)},Nt=(t,e)=>{let i,n;for(;;){if(t.lookahead=3&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==i&&t.strstart-i<=t.w_size-ft&&(t.match_length=Mt(t,i)),t.match_length>=3)if(n=W(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=xt(t,t.ins_h,t.window[t.strstart+1]);else n=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2},Pt=(t,e)=>{let i,n,r;for(;;){if(t.lookahead=3&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==i&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,n=W(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=xt(t,t.ins_h,t.window[t.strstart+3-1]),i=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(St(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(n=W(t,0,t.window[t.strstart-1]),n&&St(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=W(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2};function Ft(t,e,i,n,r){this.good_length=t,this.max_lazy=e,this.nice_length=i,this.max_chain=n,this.func=r}const Dt=[new Ft(0,0,0,0,Rt),new Ft(4,4,8,4,Nt),new Ft(4,5,16,8,Nt),new Ft(4,6,32,32,Nt),new Ft(4,4,16,16,Pt),new Ft(8,16,32,32,Pt),new Ft(8,16,128,128,Pt),new Ft(8,32,128,256,Pt),new Ft(32,128,258,1024,Pt),new Ft(32,258,258,4096,Pt)];function Ot(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=pt,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),Ct(this.dyn_ltree),Ct(this.dyn_dtree),Ct(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),Ct(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),Ct(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Qt=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==mt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==_t&&e.status!==yt?1:0},kt=t=>{if(Qt(t))return It(t,rt);t.total_in=t.total_out=0,t.data_type=dt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?mt:_t,t.adler=2===e.wrap?0:1,e.last_flush=-2,j(e),it},Gt=t=>{const e=kt(t);var i;return e===it&&((i=t.state).window_size=2*i.w_size,Ct(i.head),i.max_lazy_match=Dt[i.level].max_lazy,i.good_match=Dt[i.level].good_length,i.nice_match=Dt[i.level].nice_length,i.max_chain_length=Dt[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),e},Ut=(t,e,i,n,r,s)=>{if(!t)return rt;let o=1;if(e===at&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||i!==pt||n<8||n>15||e<0||e>9||s<0||s>ut||8===n&&1!==o)return It(t,rt);8===n&&(n=9);const a=new Ot;return t.state=a,a.strm=t,a.status=mt,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<Ut(t,e,pt,15,8,gt),deflateInit2:Ut,deflateReset:Gt,deflateResetKeep:kt,deflateSetHeader:(t,e)=>Qt(t)||2!==t.state.wrap?rt:(t.state.gzhead=e,it),deflate:(t,e)=>{if(Qt(t)||e>et||e<0)return t?It(t,rt):rt;const i=t.state;if(!t.output||0!==t.avail_in&&!t.input||i.status===yt&&e!==tt)return It(t,0===t.avail_out?ot:rt);const n=i.last_flush;if(i.last_flush=e,0!==i.pending){if(wt(t),0===t.avail_out)return i.last_flush=-1,it}else if(0===t.avail_in&&Et(e)<=Et(n)&&e!==tt)return It(t,ot);if(i.status===yt&&0!==t.avail_in)return It(t,ot);if(i.status===mt&&0===i.wrap&&(i.status=_t),i.status===mt){let e=pt+(i.w_bits-8<<4)<<8,n=-1;if(n=i.strategy>=ht||i.level<2?0:i.level<6?1:6===i.level?2:3,e|=n<<6,0!==i.strstart&&(e|=32),e+=31-e%31,Lt(i,e),0!==i.strstart&&(Lt(i,t.adler>>>16),Lt(i,65535&t.adler)),t.adler=1,i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it}if(57===i.status)if(t.adler=0,bt(i,31),bt(i,139),bt(i,8),i.gzhead)bt(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),bt(i,255&i.gzhead.time),bt(i,i.gzhead.time>>8&255),bt(i,i.gzhead.time>>16&255),bt(i,i.gzhead.time>>24&255),bt(i,9===i.level?2:i.strategy>=ht||i.level<2?4:0),bt(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(bt(i,255&i.gzhead.extra.length),bt(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=V(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(bt(i,0),bt(i,0),bt(i,0),bt(i,0),bt(i,0),bt(i,9===i.level?2:i.strategy>=ht||i.level<2?4:0),bt(i,3),i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it;if(69===i.status){if(i.gzhead.extra){let e=i.pending,n=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+n>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>e&&(t.adler=V(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex+=r,wt(t),0!==i.pending)return i.last_flush=-1,it;e=0,n-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+n),i.pending),i.pending+=n,i.gzhead.hcrc&&i.pending>e&&(t.adler=V(t.adler,i.pending_buf,i.pending-e,e)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let e,n=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>n&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),wt(t),0!==i.pending)return i.last_flush=-1,it;n=0}e=i.gzindexn&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let e,n=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>n&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n)),wt(t),0!==i.pending)return i.last_flush=-1,it;n=0}e=i.gzindexn&&(t.adler=V(t.adler,i.pending_buf,i.pending-n,n))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(wt(t),0!==i.pending))return i.last_flush=-1,it;bt(i,255&t.adler),bt(i,t.adler>>8&255),t.adler=0}if(i.status=_t,wt(t),0!==i.pending)return i.last_flush=-1,it}if(0!==t.avail_in||0!==i.lookahead||e!==J&&i.status!==yt){let n=0===i.level?Rt(i,e):i.strategy===ht?((t,e)=>{let i;for(;;){if(0===t.lookahead&&(Tt(t),0===t.lookahead)){if(e===J)return 1;break}if(t.match_length=0,i=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,i&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2})(i,e):i.strategy===ct?((t,e)=>{let i,n,r,s;const o=t.window;for(;;){if(t.lookahead<=At){if(Tt(t),t.lookahead<=At&&e===J)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=t.strstart-1,n=o[r],n===o[++r]&&n===o[++r]&&n===o[++r])){s=t.strstart+At;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&rt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(i=W(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(i=W(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),i&&(St(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===tt?(St(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(St(t,!1),0===t.strm.avail_out)?1:2})(i,e):Dt[i.level].func(i,e);if(3!==n&&4!==n||(i.status=yt),1===n||3===n)return 0===t.avail_out&&(i.last_flush=-1),it;if(2===n&&(e===Z?K(i):e!==et&&(H(i,0,0,!1),e===$&&(Ct(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),wt(t),0===t.avail_out))return i.last_flush=-1,it}return e!==tt?it:i.wrap<=0?nt:(2===i.wrap?(bt(i,255&t.adler),bt(i,t.adler>>8&255),bt(i,t.adler>>16&255),bt(i,t.adler>>24&255),bt(i,255&t.total_in),bt(i,t.total_in>>8&255),bt(i,t.total_in>>16&255),bt(i,t.total_in>>24&255)):(Lt(i,t.adler>>>16),Lt(i,65535&t.adler)),wt(t),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?it:nt)},deflateEnd:t=>{if(Qt(t))return rt;const e=t.state.status;return t.state=null,e===_t?It(t,st):it},deflateSetDictionary:(t,e)=>{let i=e.length;if(Qt(t))return rt;const n=t.state,r=n.wrap;if(2===r||1===r&&n.status!==mt||n.lookahead)return rt;if(1===r&&(t.adler=U(t.adler,e,i,0)),n.wrap=0,i>=n.w_size){0===r&&(Ct(n.head),n.strstart=0,n.block_start=0,n.insert=0);let t=new Uint8Array(n.w_size);t.set(e.subarray(i-n.w_size,i),0),e=t,i=n.w_size}const s=t.avail_in,o=t.next_in,a=t.input;for(t.avail_in=i,t.next_in=0,t.input=e,Tt(n);n.lookahead>=3;){let t=n.strstart,e=n.lookahead-2;do{n.ins_h=xt(n,n.ins_h,n.window[t+3-1]),n.prev[t&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=t,t++}while(--e);n.strstart=t,n.lookahead=2,Tt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,t.next_in=o,t.input=a,t.avail_in=s,n.wrap=r,it},deflateInfo:"pako deflate (from Nodeca project)"};const Vt=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var zt={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const i=e.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const e in i)Vt(i,e)&&(t[e]=i[e])}}return t},flattenChunks:t=>{let e=0;for(let i=0,n=t.length;i=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;jt[254]=jt[254]=1;var Ht={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,i,n,r,s,o=t.length,a=0;for(r=0;r>>6,e[s++]=128|63&i):i<65536?(e[s++]=224|i>>>12,e[s++]=128|i>>>6&63,e[s++]=128|63&i):(e[s++]=240|i>>>18,e[s++]=128|i>>>12&63,e[s++]=128|i>>>6&63,e[s++]=128|63&i);return e},buf2string:(t,e)=>{const i=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let n,r;const s=new Array(2*i);for(r=0,n=0;n4)s[r++]=65533,n+=o-1;else{for(e&=2===o?31:3===o?15:7;o>1&&n1?s[r++]=65533:e<65536?s[r++]=e:(e-=65536,s[r++]=55296|e>>10&1023,s[r++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Yt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let i="";for(let n=0;n{(e=e||t.length)>t.length&&(e=t.length);let i=e-1;for(;i>=0&&128==(192&t[i]);)i--;return i<0||0===i?e:i+jt[t[i]]>e?i:e}};var Xt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Wt=Object.prototype.toString,{Z_NO_FLUSH:Kt,Z_SYNC_FLUSH:Jt,Z_FULL_FLUSH:Zt,Z_FINISH:$t,Z_OK:te,Z_STREAM_END:ee,Z_DEFAULT_COMPRESSION:ie,Z_DEFAULT_STRATEGY:ne,Z_DEFLATED:re}=Y;function se(t){this.options=zt.assign({level:ie,method:re,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xt,this.strm.avail_out=0;let i=qt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(i!==te)throw new Error(z[i]);if(e.header&&qt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Ht.string2buf(e.dictionary):"[object ArrayBuffer]"===Wt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,i=qt.deflateSetDictionary(this.strm,t),i!==te)throw new Error(z[i]);this._dict_set=!0}}function oe(t,e){const i=new se(e);if(i.push(t,!0),i.err)throw i.msg||z[i.err];return i.result}se.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize;let r,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?$t:Kt,"string"==typeof t?i.input=Ht.string2buf(t):"[object ArrayBuffer]"===Wt.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),(s===Jt||s===Zt)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=qt.deflate(i,s),r===ee)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=qt.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===te;if(0!==i.avail_out){if(s>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},se.prototype.onData=function(t){this.chunks.push(t)},se.prototype.onEnd=function(t){t===te&&(this.result=zt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ae={Deflate:se,deflate:oe,deflateRaw:function(t,e){return(e=e||{}).raw=!0,oe(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,oe(t,e)},constants:Y};const le=16209;var he=function(t,e){let i,n,r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y,I,E,C,v,x,w;const S=t.state;i=t.next_in,x=t.input,n=i+(t.avail_in-5),r=t.next_out,w=t.output,s=r-(e-t.avail_out),o=r+(t.avail_out-257),a=S.dmax,l=S.wsize,h=S.whave,c=S.wnext,u=S.window,g=S.hold,d=S.bits,p=S.lencode,A=S.distcode,f=(1<>>24,g>>>=y,d-=y,y=_>>>16&255,0===y)w[r++]=65535&_;else{if(!(16&y)){if(64&y){if(32&y){S.mode=16191;break t}t.msg="invalid literal/length code",S.mode=le;break t}_=p[(65535&_)+(g&(1<>>=y,d-=y),d<15&&(g+=x[i++]<>>24,g>>>=y,d-=y,y=_>>>16&255,16&y){if(E=65535&_,y&=15,da){t.msg="invalid distance too far back",S.mode=le;break t}if(g>>>=y,d-=y,y=r-s,E>y){if(y=E-y,y>h&&S.sane){t.msg="invalid distance too far back",S.mode=le;break t}if(C=0,v=u,0===c){if(C+=l-y,y2;)w[r++]=v[C++],w[r++]=v[C++],w[r++]=v[C++],I-=3;I&&(w[r++]=v[C++],I>1&&(w[r++]=v[C++]))}else{C=r-E;do{w[r++]=w[C++],w[r++]=w[C++],w[r++]=w[C++],I-=3}while(I>2);I&&(w[r++]=w[C++],I>1&&(w[r++]=w[C++]))}break}if(64&y){t.msg="invalid distance code",S.mode=le;break t}_=A[(65535&_)+(g&(1<>3,i-=I,d-=I<<3,g&=(1<{const l=a.bits;let h,c,u,g,d,p,A=0,f=0,m=0,_=0,y=0,I=0,E=0,C=0,v=0,x=0,w=null;const S=new Uint16Array(16),b=new Uint16Array(16);let L,B,M,T=null;for(A=0;A<=ce;A++)S[A]=0;for(f=0;f=1&&0===S[_];_--);if(y>_&&(y=_),0===_)return r[s++]=20971520,r[s++]=20971520,a.bits=1,0;for(m=1;m<_&&0===S[m];m++);for(y0&&(0===t||1!==_))return-1;for(b[1]=0,A=1;A852||2===t&&v>592)return 1;for(;;){L=A-E,o[f]+1=p?(B=T[o[f]-p],M=w[o[f]-p]):(B=96,M=0),h=1<>E)+c]=L<<24|B<<16|M}while(0!==c);for(h=1<>=1;if(0!==h?(x&=h-1,x+=h):x=0,f++,0==--S[A]){if(A===_)break;A=e[i+o[f]]}if(A>y&&(x&g)!==u){for(0===E&&(E=y),d+=m,I=A-E,C=1<852||2===t&&v>592)return 1;u=x&g,r[u]=y<<24|I<<16|d-s}}return 0!==x&&(r[d+x]=A-E<<24|64<<16),a.bits=y,0};const{Z_FINISH:fe,Z_BLOCK:me,Z_TREES:_e,Z_OK:ye,Z_STREAM_END:Ie,Z_NEED_DICT:Ee,Z_STREAM_ERROR:Ce,Z_DATA_ERROR:ve,Z_MEM_ERROR:xe,Z_BUF_ERROR:we,Z_DEFLATED:Se}=Y,be=16180,Le=16190,Be=16191,Me=16192,Te=16194,Re=16199,Ne=16200,Pe=16206,Fe=16209,De=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Oe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Qe=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},ke=t=>{if(Qe(t))return Ce;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=be,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ye},Ge=t=>{if(Qe(t))return Ce;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,ke(t)},Ue=(t,e)=>{let i;if(Qe(t))return Ce;const n=t.state;return e<0?(i=0,e=-e):(i=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?Ce:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,Ge(t))},qe=(t,e)=>{if(!t)return Ce;const i=new Oe;t.state=i,i.strm=t,i.window=null,i.mode=be;const n=Ue(t,e);return n!==ye&&(t.state=null),n};let Ve,ze,Ye=!0;const je=t=>{if(Ye){Ve=new Int32Array(512),ze=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Ae(1,t.lens,0,288,Ve,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Ae(2,t.lens,0,32,ze,0,t.work,{bits:5}),Ye=!1}t.lencode=Ve,t.lenbits=9,t.distcode=ze,t.distbits=5},He=(t,e,i,n)=>{let r;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(i-s.wsize,i),0),s.wnext=0,s.whave=s.wsize):(r=s.wsize-s.wnext,r>n&&(r=n),s.window.set(e.subarray(i-n,i-n+r),s.wnext),(n-=r)?(s.window.set(e.subarray(i-n,i),0),s.wnext=n,s.whave=s.wsize):(s.wnext+=r,s.wnext===s.wsize&&(s.wnext=0),s.whaveqe(t,15),inflateInit2:qe,inflate:(t,e)=>{let i,n,r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y,I,E,C,v,x=0;const w=new Uint8Array(4);let S,b;const L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Qe(t)||!t.output||!t.input&&0!==t.avail_in)return Ce;i=t.state,i.mode===Be&&(i.mode=Me),o=t.next_out,r=t.output,l=t.avail_out,s=t.next_in,n=t.input,a=t.avail_in,h=i.hold,c=i.bits,u=a,g=l,v=ye;t:for(;;)switch(i.mode){case be:if(0===i.wrap){i.mode=Me;break}for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>>8&255,i.check=V(i.check,w,2,0),h=0,c=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",i.mode=Fe;break}if((15&h)!==Se){t.msg="unknown compression method",i.mode=Fe;break}if(h>>>=4,c-=4,C=8+(15&h),0===i.wbits&&(i.wbits=C),C>15||C>i.wbits){t.msg="invalid window size",i.mode=Fe;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(w[0]=255&h,w[1]=h>>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0,i.mode=16182;case 16182:for(;c<32;){if(0===a)break t;a--,h+=n[s++]<>>8&255,w[2]=h>>>16&255,w[3]=h>>>24&255,i.check=V(i.check,w,4,0)),h=0,c=0,i.mode=16183;case 16183:for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>8),512&i.flags&&4&i.wrap&&(w[0]=255&h,w[1]=h>>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0,i.mode=16184;case 16184:if(1024&i.flags){for(;c<16;){if(0===a)break t;a--,h+=n[s++]<>>8&255,i.check=V(i.check,w,2,0)),h=0,c=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(C=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(n.subarray(s,s+d),C)),512&i.flags&&4&i.wrap&&(i.check=V(i.check,n,d,s)),a-=d,s+=d,i.length-=d),i.length))break t;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break t;d=0;do{C=n[s+d++],i.head&&C&&i.length<65536&&(i.head.name+=String.fromCharCode(C))}while(C&&d>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=Be;break;case 16189:for(;c<32;){if(0===a)break t;a--,h+=n[s++]<>>=7&c,c-=7&c,i.mode=Pe;break}for(;c<3;){if(0===a)break t;a--,h+=n[s++]<>>=1,c-=1,3&h){case 0:i.mode=16193;break;case 1:if(je(i),i.mode=Re,e===_e){h>>>=2,c-=2;break t}break;case 2:i.mode=16196;break;case 3:t.msg="invalid block type",i.mode=Fe}h>>>=2,c-=2;break;case 16193:for(h>>>=7&c,c-=7&c;c<32;){if(0===a)break t;a--,h+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",i.mode=Fe;break}if(i.length=65535&h,h=0,c=0,i.mode=Te,e===_e)break t;case Te:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break t;r.set(n.subarray(s,s+d),o),a-=d,s+=d,l-=d,o+=d,i.length-=d;break}i.mode=Be;break;case 16196:for(;c<14;){if(0===a)break t;a--,h+=n[s++]<>>=5,c-=5,i.ndist=1+(31&h),h>>>=5,c-=5,i.ncode=4+(15&h),h>>>=4,c-=4,i.nlen>286||i.ndist>30){t.msg="too many length or distance symbols",i.mode=Fe;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,c-=3}for(;i.have<19;)i.lens[L[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,S={bits:i.lenbits},v=Ae(0,i.lens,0,19,i.lencode,0,i.work,S),i.lenbits=S.bits,v){t.msg="invalid code lengths set",i.mode=Fe;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=f,c-=f,i.lens[i.have++]=_;else{if(16===_){for(b=f+2;c>>=f,c-=f,0===i.have){t.msg="invalid bit length repeat",i.mode=Fe;break}C=i.lens[i.have-1],d=3+(3&h),h>>>=2,c-=2}else if(17===_){for(b=f+3;c>>=f,c-=f,C=0,d=3+(7&h),h>>>=3,c-=3}else{for(b=f+7;c>>=f,c-=f,C=0,d=11+(127&h),h>>>=7,c-=7}if(i.have+d>i.nlen+i.ndist){t.msg="invalid bit length repeat",i.mode=Fe;break}for(;d--;)i.lens[i.have++]=C}}if(i.mode===Fe)break;if(0===i.lens[256]){t.msg="invalid code -- missing end-of-block",i.mode=Fe;break}if(i.lenbits=9,S={bits:i.lenbits},v=Ae(1,i.lens,0,i.nlen,i.lencode,0,i.work,S),i.lenbits=S.bits,v){t.msg="invalid literal/lengths set",i.mode=Fe;break}if(i.distbits=6,i.distcode=i.distdyn,S={bits:i.distbits},v=Ae(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,S),i.distbits=S.bits,v){t.msg="invalid distances set",i.mode=Fe;break}if(i.mode=Re,e===_e)break t;case Re:i.mode=Ne;case Ne:if(a>=6&&l>=258){t.next_out=o,t.avail_out=l,t.next_in=s,t.avail_in=a,i.hold=h,i.bits=c,he(t,g),o=t.next_out,r=t.output,l=t.avail_out,s=t.next_in,n=t.input,a=t.avail_in,h=i.hold,c=i.bits,i.mode===Be&&(i.back=-1);break}for(i.back=0;x=i.lencode[h&(1<>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>y)],f=x>>>24,m=x>>>16&255,_=65535&x,!(y+f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=y,c-=y,i.back+=y}if(h>>>=f,c-=f,i.back+=f,i.length=_,0===m){i.mode=16205;break}if(32&m){i.back=-1,i.mode=Be;break}if(64&m){t.msg="invalid literal/length code",i.mode=Fe;break}i.extra=15&m,i.mode=16201;case 16201:if(i.extra){for(b=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;x=i.distcode[h&(1<>>24,m=x>>>16&255,_=65535&x,!(f<=c);){if(0===a)break t;a--,h+=n[s++]<>y)],f=x>>>24,m=x>>>16&255,_=65535&x,!(y+f<=c);){if(0===a)break t;a--,h+=n[s++]<>>=y,c-=y,i.back+=y}if(h>>>=f,c-=f,i.back+=f,64&m){t.msg="invalid distance code",i.mode=Fe;break}i.offset=_,i.extra=15&m,i.mode=16203;case 16203:if(i.extra){for(b=i.extra;c>>=i.extra,c-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg="invalid distance too far back",i.mode=Fe;break}i.mode=16204;case 16204:if(0===l)break t;if(d=g-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){t.msg="invalid distance too far back",i.mode=Fe;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),A=i.window}else A=r,p=o-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[o++]=A[p++]}while(--d);0===i.length&&(i.mode=Ne);break;case 16205:if(0===l)break t;r[o++]=i.length,l--,i.mode=Ne;break;case Pe:if(i.wrap){for(;c<32;){if(0===a)break t;a--,h|=n[s++]<{if(Qe(t))return Ce;let e=t.state;return e.window&&(e.window=null),t.state=null,ye},inflateGetHeader:(t,e)=>{if(Qe(t))return Ce;const i=t.state;return 2&i.wrap?(i.head=e,e.done=!1,ye):Ce},inflateSetDictionary:(t,e)=>{const i=e.length;let n,r,s;return Qe(t)?Ce:(n=t.state,0!==n.wrap&&n.mode!==Le?Ce:n.mode===Le&&(r=1,r=U(r,e,i,0),r!==n.check)?ve:(s=He(t,e,i,i),s?(n.mode=16210,xe):(n.havedict=1,ye)))},inflateInfo:"pako inflate (from Nodeca project)"};var We=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Ke=Object.prototype.toString,{Z_NO_FLUSH:Je,Z_FINISH:Ze,Z_OK:$e,Z_STREAM_END:ti,Z_NEED_DICT:ei,Z_STREAM_ERROR:ii,Z_DATA_ERROR:ni,Z_MEM_ERROR:ri}=Y;function si(t){this.options=zt.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(15&e.windowBits||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xt,this.strm.avail_out=0;let i=Xe.inflateInit2(this.strm,e.windowBits);if(i!==$e)throw new Error(z[i]);if(this.header=new We,Xe.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Ht.string2buf(e.dictionary):"[object ArrayBuffer]"===Ke.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(i=Xe.inflateSetDictionary(this.strm,e.dictionary),i!==$e)))throw new Error(z[i])}function oi(t,e){const i=new si(e);if(i.push(t),i.err)throw i.msg||z[i.err];return i.result}si.prototype.push=function(t,e){const i=this.strm,n=this.options.chunkSize,r=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(o=e===~~e?e:!0===e?Ze:Je,"[object ArrayBuffer]"===Ke.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(n),i.next_out=0,i.avail_out=n),s=Xe.inflate(i,o),s===ei&&r&&(s=Xe.inflateSetDictionary(i,r),s===$e?s=Xe.inflate(i,o):s===ni&&(s=ei));i.avail_in>0&&s===ti&&i.state.wrap>0&&0!==t[i.next_in];)Xe.inflateReset(i),s=Xe.inflate(i,o);switch(s){case ii:case ni:case ei:case ri:return this.onEnd(s),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||s===ti))if("string"===this.options.to){let t=Ht.utf8border(i.output,i.next_out),e=i.next_out-t,r=Ht.buf2string(i.output,t);i.next_out=e,i.avail_out=n-e,e&&i.output.set(i.output.subarray(t,t+e),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(s!==$e||0!==a){if(s===ti)return s=Xe.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},si.prototype.onData=function(t){this.chunks.push(t)},si.prototype.onEnd=function(t){t===$e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=zt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ai={Inflate:si,inflate:oi,inflateRaw:function(t,e){return(e=e||{}).raw=!0,oi(t,e)},ungzip:oi,constants:Y};const{Deflate:li,deflate:hi,deflateRaw:ci,gzip:ui}=ae,{Inflate:gi,inflate:di,inflateRaw:pi,ungzip:Ai}=ai;var fi=di}},e={};function i(n){var r=e[n];if(void 0!==r)return r.exports;var s=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.loaded=!0,s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";var t={};i.r(t),i.d(t,{easeIn:()=>ca,easeOut:()=>ua,inAndOut:()=>ga,linear:()=>da,upAndDown:()=>pa});var e={};i.r(e),i.d(e,{CENTER:()=>dm,JUSTIFY:()=>Am,LEFT:()=>gm,RIGHT:()=>pm});var n={};i.r(n),i.d(n,{ALPHABETIC:()=>ym,BOTTOM:()=>_m,HANGING:()=>Im,IDEOGRAPHIC:()=>Em,MIDDLE:()=>mm,TOP:()=>fm});var r={};i.r(r),i.d(r,{error:()=>pI,info:()=>dI,show:()=>gI,success:()=>AI});var s={};i.r(s),i.d(s,{LINE:()=>US,MLINE:()=>zS,MPOINT:()=>VS,MPOLYGON:()=>YS,POINT:()=>GS,POLYGON:()=>qS});var o=i(792),a=i.n(o);const l={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function h(t){return l[t]}const c={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};const u=class{constructor(t){this.code_=t.code,this.units_=t.units,this.extent_=void 0!==t.extent?t.extent:null,this.worldExtent_=void 0!==t.worldExtent?t.worldExtent:null,this.axisOrientation_=void 0!==t.axisOrientation?t.axisOrientation:"enu",this.global_=void 0!==t.global&&t.global,this.canWrapX_=!(!this.global_||!this.extent_),this.getPointResolutionFunc_=t.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=t.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||c[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(t){this.global_=t,this.canWrapX_=!(!t||!this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(t){this.defaultTileGrid_=t}setExtent(t){this.extent_=t,this.canWrapX_=!(!this.global_||!t)}setWorldExtent(t){this.worldExtent_=t}setGetPointResolution(t){this.getPointResolutionFunc_=t}getPointResolutionFunc(){return this.getPointResolutionFunc_}},g=6378137,d=Math.PI*g,p=[-d,-d,d,d],A=[-180,-85,180,85],f=g*Math.log(Math.tan(Math.PI/2));class m extends u{constructor(t){super({code:t,units:"m",extent:p,global:!0,worldExtent:A,getPointResolution:function(t,e){return t/Math.cosh(e[1]/g)}})}}const _=[new m("EPSG:3857"),new m("EPSG:102100"),new m("EPSG:102113"),new m("EPSG:900913"),new m("http://www.opengis.net/def/crs/EPSG/0/3857"),new m("http://www.opengis.net/gml/srs/epsg.xml#3857")];function y(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;rf?i=f:i<-f&&(i=-f),e[r+1]=i}return e}function I(t,e,i){const n=t.length;i=i>1?i:2,void 0===e&&(e=i>2?t.slice():new Array(n));for(let r=0;rr&&(l|=B.RIGHT),as&&(l|=B.ABOVE),l===B.UNKNOWN&&(l=B.INTERSECTING),l}function k(){return[1/0,1/0,-1/0,-1/0]}function G(t,e,i,n,r){return r?(r[0]=t,r[1]=e,r[2]=i,r[3]=n,r):[t,e,i,n]}function U(t){return G(1/0,1/0,-1/0,-1/0,t)}function q(t,e){const i=t[0],n=t[1];return G(i,n,i,n,e)}function V(t,e,i,n,r){return H(U(r),t,e,i,n)}function z(t,e){return t[0]==e[0]&&t[2]==e[2]&&t[1]==e[1]&&t[3]==e[3]}function Y(t,e){return e[0]t[2]&&(t[2]=e[2]),e[1]t[3]&&(t[3]=e[3]),t}function j(t,e){e[0]t[2]&&(t[2]=e[0]),e[1]t[3]&&(t[3]=e[1])}function H(t,e,i,n,r){for(;ie[0]?n[0]=t[0]:n[0]=e[0],t[1]>e[1]?n[1]=t[1]:n[1]=e[1],t[2]=e[0]&&t[1]<=e[3]&&t[3]>=e[1]}function ht(t){return t[2]1){const e=t[2]-t[0],i=t[3]-t[1];for(let s=0;s=i[2])){const e=at(i),r=Math.floor((n[0]-i[0])/e)*e;t[0]-=r,t[2]-=r}return t}function dt(t,e,i){return Math.min(Math.max(t,e),i)}function pt(t,e,i,n,r,s){const o=r-i,a=s-n;if(0!==o||0!==a){const l=((t-i)*o+(e-n)*a)/(o*o+a*a);l>1?(i=r,n=s):l>0&&(i+=o*l,n+=a*l)}return At(t,e,i,n)}function At(t,e,i,n){const r=i-t,s=n-e;return r*r+s*s}function ft(t){return 180*t/Math.PI}function mt(t){return t*Math.PI/180}function _t(t,e){const i=t%e;return i*e<0?i+e:i}function yt(t,e,i){return t+i*(e-t)}function It(t,e){const i=Math.pow(10,e);return Math.round(t*i)/i}function Et(t,e){return Math.round(It(t,e))}function Ct(t,e){return Math.floor(It(t,e))}function vt(t,e){return Math.ceil(It(t,e))}function xt(t,e,i){const n=void 0!==i?t.toFixed(i):""+t;let r=n.indexOf(".");return r=-1===r?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function wt(t,e){const i=(""+t).split("."),n=(""+e).split(".");for(let t=0;tr)return 1;if(r>e)return-1}return 0}function St(t,e){return t[0]+=+e[0],t[1]+=+e[1],t}function bt(t,e){const i=e.getRadius(),n=e.getCenter(),r=n[0],s=n[1];let o=t[0]-r;const a=t[1]-s;0===o&&0===a&&(o=1);const l=Math.sqrt(o*o+a*a);return[r+i*o/l,s+i*a/l]}function Lt(t,e){const i=t[0],n=t[1],r=e[0],s=e[1],o=r[0],a=r[1],l=s[0],h=s[1],c=l-o,u=h-a,g=0===c&&0===u?0:(c*(i-o)+u*(n-a))/(c*c+u*u||0);let d,p;return g<=0?(d=o,p=a):g>=1?(d=l,p=h):(d=o+g*c,p=a+g*u),[d,p]}function Bt(t){return function(e){return Qt(e,t)}}function Mt(t,e,i){const n=_t(e+180,360)-180,r=Math.abs(3600*n),s=i||0;let o=Math.floor(r/3600),a=Math.floor((r-3600*o)/60),l=It(r-3600*o-60*a,s);l>=60&&(l=0,a+=1),a>=60&&(a=0,o+=1);let h=o+"°";return 0===a&&0===l||(h+=" "+xt(a,2)+"′"),0!==l&&(h+=" "+xt(l,2,s)+"″"),0!==n&&(h+=" "+t.charAt(n<0?1:0)),h}function Tt(t,e,i){return t?e.replace("{x}",t[0].toFixed(i)).replace("{y}",t[1].toFixed(i)):""}function Rt(t,e){let i=!0;for(let n=t.length-1;n>=0;--n)if(t[n]!=e[n]){i=!1;break}return i}function Nt(t,e){const i=Math.cos(e),n=Math.sin(e),r=t[0]*i-t[1]*n,s=t[1]*i+t[0]*n;return t[0]=r,t[1]=s,t}function Pt(t,e){return t[0]*=e,t[1]*=e,t}function Ft(t,e){const i=t[0]-e[0],n=t[1]-e[1];return i*i+n*n}function Dt(t,e){return Math.sqrt(Ft(t,e))}function Ot(t,e){return Ft(t,Lt(t,e))}function Qt(t,e){return Tt(t,"{x}, {y}",e)}function kt(t,e){if(e.canWrapX()){const i=at(e.getExtent()),n=Gt(t,e,i);n&&(t[0]-=n*i)}return t}function Gt(t,e,i){const n=e.getExtent();let r=0;return e.canWrapX()&&(t[0]n[2])&&(i=i||at(n),r=Math.floor((t[0]-n[0])/i)),r}const Ut=6371008.8;function qt(t,e,i){i=i||Ut;const n=mt(t[1]),r=mt(e[1]),s=(r-n)/2,o=mt(e[0]-t[0])/2,a=Math.sin(s)*Math.sin(s)+Math.sin(o)*Math.sin(o)*Math.cos(n)*Math.cos(r);return 2*i*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))}function Vt(t,e){let i=0;for(let n=0,r=t.length;njt.warn||console.warn(...t)}function Wt(...t){Ht>jt.error||console.error(...t)}let Kt=!0;function Jt(t){Kt=!(void 0===t||t)}function Zt(t,e){if(void 0!==e)for(let i=0,n=t.length;i=o?e[s+t]:r[t]}return i}}function oe(t,e,i,n){const r=ee(t),s=ee(e);b(r,s,se(i)),b(s,r,se(n))}function ae(t,e){if(t===e)return!0;const i=t.getUnits()===e.getUnits();if(t.getCode()===e.getCode())return i;return le(t,e)===Zt&&i}function le(t,e){let i=L(t.getCode(),e.getCode());return i||(i=$t),i}function he(t,e){return le(ee(t),ee(e))}function ce(t,e,i){return he(e,i)(t,void 0,t.length)}function ue(t,e,i,n){return ut(t,he(e,i),void 0,n)}let ge=null;function de(t){ge=ee(t)}function pe(){return ge}function Ae(t,e){return ge?ce(t,e,ge):t}function fe(t,e){return ge?ce(t,ge,e):(Kt&&!Rt(t,[0,0])&&t[0]>=-180&&t[0]<=180&&t[1]>=-90&&t[1]<=90&&(Kt=!1,Xt("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),t)}function me(t,e){return ge?ue(t,e,ge):t}function _e(t,e){return ge?ue(t,ge,e):t}function ye(t,e){if(!ge)return t;const i=ee(e).getUnits(),n=ge.getUnits();return i&&n?t*c[i]/c[n]:t}function Ie(t,e,i){return function(n){let r,s;if(t.canWrapX()){const e=t.getExtent(),o=at(e);s=Gt(n=n.slice(0),t,o),s&&(n[0]=n[0]-s*o),n[0]=dt(n[0],e[0],e[2]),n[1]=dt(n[1],e[1],e[3]),r=i(n)}else r=i(n);return s&&e.canWrapX()&&(r[0]+=s*at(e.getExtent())),r}}var Ee,Ce,ve;ne(_),ne(x),Ee=_,Ce=y,ve=I,x.forEach((function(t){Ee.forEach((function(e){b(t,e,Ce),b(e,t,ve)}))}));const xe=(t,e,i)=>ce(t,ee(e),ee(i));var we=1,Se=2,be=3,Le=5,Be=6378137,Me=6356752.314,Te=.0066943799901413165,Re=484813681109536e-20,Ne=Math.PI/2,Pe=.16666666666666666,Fe=.04722222222222222,De=.022156084656084655,Oe=1e-10,Qe=.017453292519943295,ke=57.29577951308232,Ge=Math.PI/4,Ue=2*Math.PI,qe=3.14159265359,Ve={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667};const ze={ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937}};var Ye=/[\s_\-\/\(\)]/g;function je(t,e){if(t[e])return t[e];for(var i,n=Object.keys(t),r=e.toLowerCase().replace(Ye,""),s=-1;++s=this.text.length)return;t=this.text[this.place++]}switch(this.state){case We:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},ei.prototype.afterquote=function(t){if('"'===t)return this.word+='"',void(this.state=4);if($e.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in afterquote yet, index '+this.place)},ei.prototype.afterItem=function(t){return","===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=We)):"]"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=We,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},ei.prototype.number=function(t){if(!ti.test(t)){if($e.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in number yet, index '+this.place)}this.word+=t},ei.prototype.quoted=function(t){'"'!==t?this.word+=t:this.state=5},ei.prototype.keyword=function(t){if(Ze.test(t))this.word+=t;else{if("["===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=We)}if(!$e.test(t))throw new Error("havn't handled \""+t+'" in keyword yet, index '+this.place);this.afterItem(t)}},ei.prototype.neutral=function(t){if(Je.test(t))return this.word=t,void(this.state=2);if('"'===t)return this.word="",void(this.state=4);if(ti.test(t))return this.word=t,void(this.state=3);if(!$e.test(t))throw new Error("havn't handled \""+t+'" in neutral yet, index '+this.place);this.afterItem(t)},ei.prototype.output=function(){for(;this.place0?90:-90)):(t.lat0=si(t.lat1>0?90:-90),t.lat_ts=t.lat1)}(r),r}function ai(t){var e=this;if(2===arguments.length){var i=arguments[1];"string"==typeof i?"+"===i.charAt(0)?ai[t]=He(arguments[1]):ai[t]=oi(arguments[1]):ai[t]=i}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?ai.apply(e,t):ai(t)}));if("string"==typeof t){if(t in ai)return ai[t]}else"EPSG"in t?ai["EPSG:"+t.EPSG]=t:"ESRI"in t?ai["ESRI:"+t.ESRI]=t:"IAU2000"in t?ai["IAU2000:"+t.IAU2000]=t:console.log(t);return}}!function(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}(ai);const li=ai;var hi=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];var ci=["3857","900913","3785","102113"];const ui=function(t){if(!function(t){return"string"==typeof t}(t))return t;if(function(t){return t in li}(t))return li[t];if(function(t){return hi.some((function(e){return t.indexOf(e)>-1}))}(t)){var e=oi(t);if(function(t){var e=je(t,"authority");if(e){var i=je(e,"epsg");return i&&ci.indexOf(i)>-1}}(e))return li["EPSG:3857"];var i=function(t){var e=je(t,"extension");if(e)return je(e,"proj4")}(e);return i?He(i):e}return function(t){return"+"===t[0]}(t)?He(t):void 0};function gi(t,e){var i,n;if(t=t||{},!e)return t;for(n in e)void 0!==(i=e[n])&&(t[n]=i);return t}function di(t,e,i){var n=t*e;return i/Math.sqrt(1-n*n)}function pi(t){return t<0?-1:1}function Ai(t){return Math.abs(t)<=qe?t:t-pi(t)*Ue}function fi(t,e,i){var n=t*i,r=.5*t;return n=Math.pow((1-n)/(1+n),r),Math.tan(.5*(Ne-e))/n}function mi(t,e){for(var i,n,r=.5*t,s=Ne-2*Math.atan(e),o=0;o<=15;o++)if(i=t*Math.sin(s),s+=n=Ne-2*Math.atan(e*Math.pow((1-i)/(1+i),r))-s,Math.abs(n)<=1e-10)return s;return-9999}function _i(t){return t}var yi=[{init:function(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},forward:function(t){var e,i,n=t.x,r=t.y;if(r*ke>90&&r*ke<-90&&n*ke>180&&n*ke<-180)return null;if(Math.abs(Math.abs(r)-Ne)<=Oe)return null;if(this.sphere)e=this.x0+this.a*this.k0*Ai(n-this.long0),i=this.y0+this.a*this.k0*Math.log(Math.tan(Ge+.5*r));else{var s=Math.sin(r),o=fi(this.e,r,s);e=this.x0+this.a*this.k0*Ai(n-this.long0),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=e,t.y=i,t},inverse:function(t){var e,i,n=t.x-this.x0,r=t.y-this.y0;if(this.sphere)i=Ne-2*Math.atan(Math.exp(-r/(this.a*this.k0)));else{var s=Math.exp(-r/(this.a*this.k0));if(-9999===(i=mi(this.e,s)))return null}return e=Ai(this.long0+n/(this.a*this.k0)),t.x=e,t.y=i,t},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{init:function(){},forward:_i,inverse:_i,names:["longlat","identity"]}],Ii={},Ei=[];function Ci(t,e){var i=Ei.length;return t.names?(Ei[i]=t,t.names.forEach((function(t){Ii[t.toLowerCase()]=i})),this):(console.log(e),!0)}const vi={start:function(){yi.forEach(Ci)},add:Ci,get:function(t){if(!t)return!1;var e=t.toLowerCase();return void 0!==Ii[e]&&Ei[Ii[e]]?Ei[Ii[e]]:void 0}};var xi={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"}},wi=xi.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};xi.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"};var Si={};Si.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},Si.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},Si.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},Si.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},Si.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},Si.potsdam={towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},Si.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},Si.hermannskogel={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},Si.osni52={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},Si.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},Si.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},Si.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},Si.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"},Si.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},Si.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},Si.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},Si.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"};const bi=function(t,e,i,n,r,s,o){var a={};return a.datum_type=void 0===t||"none"===t?Le:4,e&&(a.datum_params=e.map(parseFloat),0===a.datum_params[0]&&0===a.datum_params[1]&&0===a.datum_params[2]||(a.datum_type=we),a.datum_params.length>3&&(0===a.datum_params[3]&&0===a.datum_params[4]&&0===a.datum_params[5]&&0===a.datum_params[6]||(a.datum_type=Se,a.datum_params[3]*=Re,a.datum_params[4]*=Re,a.datum_params[5]*=Re,a.datum_params[6]=a.datum_params[6]/1e6+1))),o&&(a.datum_type=be,a.grids=o),a.a=i,a.b=n,a.es=r,a.ep2=s,a};var Li={};function Bi(t){if(0===t.length)return null;var e="@"===t[0];return e&&(t=t.slice(1)),"null"===t?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Li[t]||null,isNull:!1}}function Mi(t){return t/3600*Math.PI/180}function Ti(t,e,i){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,i)))}function Ri(t){return t.map((function(t){return[Mi(t.longitudeShift),Mi(t.latitudeShift)]}))}function Ni(t,e,i){return{name:Ti(t,e+8,e+16).trim(),parent:Ti(t,e+24,e+24+8).trim(),lowerLatitude:t.getFloat64(e+72,i),upperLatitude:t.getFloat64(e+88,i),lowerLongitude:t.getFloat64(e+104,i),upperLongitude:t.getFloat64(e+120,i),latitudeInterval:t.getFloat64(e+136,i),longitudeInterval:t.getFloat64(e+152,i),gridNodeCount:t.getInt32(e+168,i)}}function Pi(t,e,i,n){for(var r=e+176,s=[],o=0;o-1.001*Ne)l=-Ne;else if(l>Ne&&l<1.001*Ne)l=Ne;else{if(l<-Ne)return{x:-1/0,y:-1/0,z:t.z};if(l>Ne)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),r=Math.sin(l),o=Math.cos(l),s=r*r,{x:((n=i/Math.sqrt(1-e*s))+h)*o*Math.cos(a),y:(n+h)*o*Math.sin(a),z:(n*(1-e)+h)*r}}function Qi(t,e,i,n){var r,s,o,a,l,h,c,u,g,d,p,A,f,m,_,y=1e-12,I=t.x,E=t.y,C=t.z?t.z:0;if(r=Math.sqrt(I*I+E*E),s=Math.sqrt(I*I+E*E+C*C),r/i1e-24&&f<30);return{x:m,y:Math.atan(p/Math.abs(d)),z:_}}function ki(t){return t===we||t===Se}function Gi(t,e,i){if(function(t,e){return t.datum_type===e.datum_type&&!(t.a!==e.a||Math.abs(t.es-e.es)>5e-11)&&(t.datum_type===we?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type!==Se||t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6])}(t,e))return i;if(t.datum_type===Le||e.datum_type===Le)return i;var n=t.a,r=t.es;if(t.datum_type===be){if(0!==Ui(t,!1,i))return;n=Be,r=Te}var s=e.a,o=e.b,a=e.es;if(e.datum_type===be&&(s=Be,o=Me,a=Te),r===a&&n===s&&!ki(t.datum_type)&&!ki(e.datum_type))return i;if((i=Oi(i,r,n),ki(t.datum_type)&&(i=function(t,e,i){if(e===we)return{x:t.x+i[0],y:t.y+i[1],z:t.z+i[2]};if(e===Se){var n=i[0],r=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6];return{x:h*(t.x-l*t.y+a*t.z)+n,y:h*(l*t.x+t.y-o*t.z)+r,z:h*(-a*t.x+o*t.y+t.z)+s}}}(i,t.datum_type,t.datum_params)),ki(e.datum_type)&&(i=function(t,e,i){if(e===we)return{x:t.x-i[0],y:t.y-i[1],z:t.z-i[2]};if(e===Se){var n=i[0],r=i[1],s=i[2],o=i[3],a=i[4],l=i[5],h=i[6],c=(t.x-n)/h,u=(t.y-r)/h,g=(t.z-s)/h;return{x:c+l*u-a*g,y:-l*c+u+o*g,z:a*c-o*u+g}}}(i,e.datum_type,e.datum_params)),i=Qi(i,a,s,o),e.datum_type===be)&&0!==Ui(e,!0,i))return;return i}function Ui(t,e,i){if(null===t.grids||0===t.grids.length)return console.log("Grid shift grids not found"),-1;for(var n={x:-i.x,y:i.y},r={x:Number.NaN,y:Number.NaN},s=[],o=0;on.y||c>n.x||d1e-12&&Math.abs(o.y)>1e-12);if(l<0)return console.log("Inverse grid shift iterator failed to converge."),n;n.x=Ai(s.x+i.ll[0]),n.y=s.y+i.ll[1]}else isNaN(s.x)||(n.x=t.x+s.x,n.y=t.y+s.y);return n}function Vi(t,e){var i,n={x:t.x/e.del[0],y:t.y/e.del[1]},r=Math.floor(n.x),s=Math.floor(n.y),o=n.x-1*r,a=n.y-1*s,l={x:Number.NaN,y:Number.NaN};if(r<0||r>=e.lim[0])return l;if(s<0||s>=e.lim[1])return l;i=s*e.lim[0]+r;var h=e.cvs[i][0],c=e.cvs[i][1];i++;var u=e.cvs[i][0],g=e.cvs[i][1];i+=e.lim[0];var d=e.cvs[i][0],p=e.cvs[i][1];i--;var A=e.cvs[i][0],f=e.cvs[i][1],m=o*a,_=o*(1-a),y=(1-o)*(1-a),I=(1-o)*a;return l.x=y*h+_*u+I*A+m*d,l.y=y*c+_*g+I*f+m*p,l}function zi(t,e,i){var n,r,s,o=i.x,a=i.y,l=i.z||0,h={};for(s=0;s<3;s++)if(!e||2!==s||void 0!==i.z)switch(0===s?(n=o,r=-1!=="ew".indexOf(t.axis[s])?"x":"y"):1===s?(n=a,r=-1!=="ns".indexOf(t.axis[s])?"y":"x"):(n=l,r="z"),t.axis[s]){case"e":case"n":h[r]=n;break;case"w":case"s":h[r]=-n;break;case"u":void 0!==i[r]&&(h.z=n);break;case"d":void 0!==i[r]&&(h.z=-n);break;default:return null}return h}function Yi(t){var e={x:t[0],y:t[1]};return t.length>2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function ji(t){if("function"==typeof Number.isFinite){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof t||t!=t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function Hi(t,e,i,n){var r,s=void 0!==(i=Array.isArray(i)?Yi(i):{x:i.x,y:i.y,z:i.z,m:i.m}).z;if(function(t){ji(t.x),ji(t.y)}(i),t.datum&&e.datum&&function(t,e){return(t.datum.datum_type===we||t.datum.datum_type===Se||t.datum.datum_type===be)&&"WGS84"!==e.datumCode||(e.datum.datum_type===we||e.datum.datum_type===Se||e.datum.datum_type===be)&&"WGS84"!==t.datumCode}(t,e)&&(i=Hi(t,r=new Di("WGS84"),i,n),t=r),n&&"enu"!==t.axis&&(i=zi(t,!1,i)),"longlat"===t.projName)i={x:i.x*Qe,y:i.y*Qe,z:i.z||0};else if(t.to_meter&&(i={x:i.x*t.to_meter,y:i.y*t.to_meter,z:i.z||0}),!(i=t.inverse(i)))return;if(t.from_greenwich&&(i.x+=t.from_greenwich),i=Gi(t.datum,e.datum,i))return e.from_greenwich&&(i={x:i.x-e.from_greenwich,y:i.y,z:i.z||0}),"longlat"===e.projName?i={x:i.x*ke,y:i.y*ke,z:i.z||0}:(i=e.forward(i),e.to_meter&&(i={x:i.x/e.to_meter,y:i.y/e.to_meter,z:i.z||0})),n&&"enu"!==e.axis?zi(e,!0,i):(s||delete i.z,i)}var Xi=Di("WGS84");function Wi(t,e,i,n){var r,s,o;return Array.isArray(i)?(r=Hi(t,e,i,n)||{x:NaN,y:NaN},i.length>2?void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name?"number"==typeof r.z?[r.x,r.y,r.z].concat(i.splice(3)):[r.x,r.y,i[2]].concat(i.splice(3)):[r.x,r.y].concat(i.splice(2)):[r.x,r.y]):(s=Hi(t,e,i,n),2===(o=Object.keys(i)).length||o.forEach((function(n){if(void 0!==t.name&&"geocent"===t.name||void 0!==e.name&&"geocent"===e.name){if("x"===n||"y"===n||"z"===n)return}else if("x"===n||"y"===n)return;s[n]=i[n]})),s)}function Ki(t){return t instanceof Di?t:t.oProj?t.oProj:Di(t)}const Ji=function(t,e,i){t=Ki(t);var n,r=!1;return void 0===e?(e=t,t=Xi,r=!0):(void 0!==e.x||Array.isArray(e))&&(i=e,e=t,t=Xi,r=!0),e=Ki(e),i?Wi(t,e,i):(n={forward:function(i,n){return Wi(t,e,i,n)},inverse:function(i,n){return Wi(e,t,i,n)}},r&&(n.oProj=e),n)};var Zi=6,$i="AJSAJS",tn="AFAFAF",en=65,nn=73,rn=79,sn=86,on=90;const an={forward:ln,inverse:function(t){var e=gn(An(t.toUpperCase()));if(e.lat&&e.lon)return[e.lon,e.lat,e.lon,e.lat];return[e.left,e.bottom,e.right,e.top]},toPoint:hn};function ln(t,e){return e=e||5,function(t,e){var i="00000"+t.easting,n="00000"+t.northing;return t.zoneNumber+t.zoneLetter+(d=t.easting,p=t.northing,A=t.zoneNumber,f=pn(A),m=Math.floor(d/1e5),_=Math.floor(p/1e5)%20,r=m,s=_,o=f,a=o-1,l=$i.charCodeAt(a),h=tn.charCodeAt(a),c=l+r-1,u=h+s,g=!1,c>on&&(c=c-on+en-1,g=!0),(c===nn||lnn||(c>nn||lrn||(c>rn||lon&&(c=c-on+en-1),u>sn?(u=u-sn+en-1,g=!0):g=!1,(u===nn||hnn||(u>nn||hrn||(u>rn||hsn&&(u=u-sn+en-1),String.fromCharCode(c)+String.fromCharCode(u))+i.substr(i.length-5,e)+n.substr(n.length-5,e);var r,s,o,a,l,h,c,u,g;var d,p,A,f,m,_}(function(t){var e,i,n,r,s,o,a,l,h=t.lat,c=t.lon,u=6378137,g=.00669438,d=.9996,p=cn(h),A=cn(c);l=Math.floor((c+180)/6)+1,180===c&&(l=60);h>=56&&h<64&&c>=3&&c<12&&(l=32);h>=72&&h<84&&(c>=0&&c<9?l=31:c>=9&&c<21?l=33:c>=21&&c<33?l=35:c>=33&&c<42&&(l=37));a=cn(6*(l-1)-180+3),e=g/(1-g),i=u/Math.sqrt(1-g*Math.sin(p)*Math.sin(p)),n=Math.tan(p)*Math.tan(p),r=e*Math.cos(p)*Math.cos(p),s=Math.cos(p)*(A-a),o=u*((1-g/4-3*g*g/64-5*g*g*g/256)*p-(3*g/8+3*g*g/32+45*g*g*g/1024)*Math.sin(2*p)+(15*g*g/256+45*g*g*g/1024)*Math.sin(4*p)-35*g*g*g/3072*Math.sin(6*p));var f=d*i*(s+(1-n+r)*s*s*s/6+(5-18*n+n*n+72*r-58*e)*s*s*s*s*s/120)+5e5,m=d*(o+i*Math.tan(p)*(s*s/2+(5-n+9*r+4*r*r)*s*s*s*s/24+(61-58*n+n*n+600*r-330*e)*s*s*s*s*s*s/720));h<0&&(m+=1e7);return{northing:Math.round(m),easting:Math.round(f),zoneNumber:l,zoneLetter:dn(h)}}({lat:t[1],lon:t[0]}),e)}function hn(t){var e=gn(An(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function cn(t){return t*(Math.PI/180)}function un(t){return t/Math.PI*180}function gn(t){var e=t.northing,i=t.easting,n=t.zoneLetter,r=t.zoneNumber;if(r<0||r>60)return null;var s,o,a,l,h,c,u,g,d,p=.9996,A=6378137,f=.00669438,m=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),_=i-5e5,y=e;n<"N"&&(y-=1e7),u=6*(r-1)-180+3,s=.006739496752268451,d=(g=y/p/6367449.145945056)+(3*m/2-27*m*m*m/32)*Math.sin(2*g)+(21*m*m/16-55*m*m*m*m/32)*Math.sin(4*g)+151*m*m*m/96*Math.sin(6*g),o=A/Math.sqrt(1-f*Math.sin(d)*Math.sin(d)),a=Math.tan(d)*Math.tan(d),l=s*Math.cos(d)*Math.cos(d),h=.99330562*A/Math.pow(1-f*Math.sin(d)*Math.sin(d),1.5),c=_/(o*p);var I=d-o*Math.tan(d)/h*(c*c/2-(5+3*a+10*l-4*l*l-9*s)*c*c*c*c/24+(61+90*a+298*l+45*a*a-1.6983531815716497-3*l*l)*c*c*c*c*c*c/720);I=un(I);var E,C=(c-(1+2*a+l)*c*c*c/6+(5-2*l+28*a-3*l*l+8*s+24*a*a)*c*c*c*c*c/120)/Math.cos(d);if(C=u+un(C),t.accuracy){var v=gn({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});E={top:v.lat,right:v.lon,bottom:I,left:C}}else E={lat:I,lon:C};return E}function dn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function pn(t){var e=t%Zi;return 0===e&&(e=Zi),e}function An(t){if(t&&0===t.length)throw"MGRSPoint coverting from nothing";for(var e,i=t.length,n=null,r="",s=0;!/[A-Z]/.test(e=t.charAt(s));){if(s>=2)throw"MGRSPoint bad conversion from: "+t;r+=e,s++}var o=parseInt(r,10);if(0===s||s+3>i)throw"MGRSPoint bad conversion from: "+t;var a=t.charAt(s++);if(a<="A"||"B"===a||"Y"===a||a>="Z"||"I"===a||"O"===a)throw"MGRSPoint zone letter "+a+" not handled: "+t;n=t.substring(s,s+=2);for(var l=pn(o),h=function(t,e){var i=$i.charCodeAt(e-1),n=1e5,r=!1;for(;i!==t.charCodeAt(0);){if(++i===nn&&i++,i===rn&&i++,i>on){if(r)throw"Bad character: "+t;i=en,r=!0}n+=1e5}return n}(n.charAt(0),l),c=function(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;var i=tn.charCodeAt(e-1),n=0,r=!1;for(;i!==t.charCodeAt(0);){if(++i===nn&&i++,i===rn&&i++,i>sn){if(r)throw"Bad character: "+t;i=en,r=!0}n+=1e5}return n}(n.charAt(1),l);c0&&(g=1e5/Math.pow(10,A),d=t.substring(s,s+A),f=parseFloat(d)*g,p=t.substring(s+A),m=parseFloat(p)*g),{easting:f+h,northing:m+c,zoneLetter:a,zoneNumber:o,accuracy:g}}function fn(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function mn(t,e,i){if(!(this instanceof mn))return new mn(t,e,i);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if("object"==typeof t)this.x=t.x,this.y=t.y,this.z=t.z||0;else if("string"==typeof t&&void 0===e){var n=t.split(",");this.x=parseFloat(n[0],10),this.y=parseFloat(n[1],10),this.z=parseFloat(n[2],10)||0}else this.x=t,this.y=e,this.z=i||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}mn.fromMGRS=function(t){return new mn(hn(t))},mn.prototype.toMGRS=function(t){return ln([this.x,this.y],t)};const _n=mn;var yn=1,In=.25,En=.046875,Cn=.01953125,vn=.01068115234375,xn=.75,wn=.46875,Sn=.013020833333333334,bn=.007120768229166667,Ln=.3645833333333333,Bn=.005696614583333333,Mn=.3076171875;function Tn(t){var e=[];e[0]=yn-t*(In+t*(En+t*(Cn+t*vn))),e[1]=t*(xn-t*(En+t*(Cn+t*vn)));var i=t*t;return e[2]=i*(wn-t*(Sn+t*bn)),i*=t,e[3]=i*(Ln-t*Bn),e[4]=i*t*Mn,e}function Rn(t,e,i,n){return i*=e,e*=e,n[0]*t-i*(n[1]+e*(n[2]+e*(n[3]+e*n[4])))}var Nn=20;function Pn(t,e,i){for(var n=1/(1-e),r=t,s=Nn;s;--s){var o=Math.sin(r),a=1-e*o*o;if(r-=a=(Rn(r,o,Math.cos(r),i)-t)*(a*Math.sqrt(a))*n,Math.abs(a)Oe?Math.tan(s):0,p=Math.pow(d,2),A=Math.pow(p,2);e=1-this.es*Math.pow(a,2),h/=Math.sqrt(e);var f=Rn(s,a,l,this.en);i=this.a*(this.k0*h*(1+c/6*(1-p+u+c/20*(5-18*p+A+14*u-58*p*u+c/42*(61+179*A-A*p-479*p)))))+this.x0,n=this.a*(this.k0*(f-this.ml0+a*o*h/2*(1+c/12*(5-p+9*u+4*g+c/30*(61+A-58*p+270*u-330*p*u+c/56*(1385+543*A-A*p-3111*p))))))+this.y0}else{var m=l*Math.sin(o);if(Math.abs(Math.abs(m)-1)=1){if(m-1>Oe)return 93;n=0}else n=Math.acos(n);s<0&&(n=-n),n=this.a*this.k0*(n-this.lat0)+this.y0}return t.x=i,t.y=n,t},inverse:function(t){var e,i,n,r,s=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(i=Pn(e=this.ml0+o/this.k0,this.es,this.en),Math.abs(i)Oe?Math.tan(i):0,c=this.ep2*Math.pow(l,2),u=Math.pow(c,2),g=Math.pow(h,2),d=Math.pow(g,2);e=1-this.es*Math.pow(a,2);var p=s*Math.sqrt(e)/this.k0,A=Math.pow(p,2);n=i-(e*=h)*A/(1-this.es)*.5*(1-A/12*(5+3*g-9*c*g+c-4*u-A/30*(61+90*g-252*c*g+45*d+46*c-A/56*(1385+3633*g+4095*d+1574*d*g)))),r=Ai(this.long0+p*(1-A/6*(1+2*g+c-A/20*(5+28*g+24*d+8*c*g+6*c-A/42*(61+662*g+1320*d+720*d*g))))/l)}else n=Ne*pi(o),r=0;else{var f=Math.exp(s/this.k0),m=.5*(f-1/f),_=this.lat0+o/this.k0,y=Math.cos(_);e=Math.sqrt((1-Math.pow(y,2))/(1+Math.pow(m,2))),n=Math.asin(e),o<0&&(n=-n),r=0===m&&0===y?0:Ai(Math.atan2(m,y)+this.long0)}return t.x=r,t.y=n,t},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]};function Dn(t){var e=Math.exp(t);return e=(e-1/e)/2}function On(t,e){t=Math.abs(t),e=Math.abs(e);var i=Math.max(t,e),n=Math.min(t,e)/(i||1);return i*Math.sqrt(1+Math.pow(n,2))}function Qn(t){var e=Math.abs(t);return e=function(t){var e=1+t,i=e-1;return 0===i?t:t*Math.log(e)/i}(e*(1+e/(On(1,e)+1))),t<0?-e:e}function kn(t,e){for(var i,n=2*Math.cos(2*e),r=t.length-1,s=t[r],o=0;--r>=0;)i=n*s-o+t[r],o=s,s=i;return e+i*Math.sin(2*e)}function Gn(t,e,i){for(var n,r,s=Math.sin(e),o=Math.cos(e),a=Dn(i),l=function(t){var e=Math.exp(t);return(e+1/e)/2}(i),h=2*o*l,c=-2*s*a,u=t.length-1,g=t[u],d=0,p=0,A=0;--u>=0;)n=p,r=d,g=h*(p=g)-n-c*(d=A)+t[u],A=c*p-r+h*d;return[(h=s*l)*g-(c=o*a)*A,h*A+c*g]}const Un={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(Fn.init.apply(this),this.forward=Fn.forward,this.inverse=Fn.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),i=e;this.cgb[0]=e*(2+e*(-2/3+e*(e*(116/45+e*(26/45+e*(-2854/675)))-2))),this.cbg[0]=e*(e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))-2),i*=e,this.cgb[1]=i*(7/3+e*(e*(-227/45+e*(2704/315+e*(2323/945)))-1.6)),this.cbg[1]=i*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),i*=e,this.cgb[2]=i*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=i*(-26/15+e*(34/21+e*(1.6+e*(-12686/2835)))),i*=e,this.cgb[3]=i*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=i*(1237/630+e*(e*(-24832/14175)-2.4)),i*=e,this.cgb[4]=i*(4174/315+e*(-144838/6237)),this.cbg[4]=i*(-734/315+e*(109598/31185)),i*=e,this.cgb[5]=i*(601676/22275),this.cbg[5]=i*(444337/155925),i=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+i*(1/4+i*(1/64+i/256))),this.utg[0]=e*(e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))-.5),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=i*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=i*(13/48+e*(e*(557/1440+e*(281/630+e*(-1983433/1935360)))-.6)),i*=e,this.utg[2]=i*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=i*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),i*=e,this.utg[3]=i*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=i*(49561/161280+e*(-179/168+e*(6601661/7257600))),i*=e,this.utg[4]=i*(-4583/161280+e*(108847/3991680)),this.gtu[4]=i*(34729/80640+e*(-3418889/1995840)),i*=e,this.utg[5]=i*(-20648693/638668800),this.gtu[5]=.6650675310896665*i;var n=kn(this.cbg,this.lat0);this.Zb=-this.Qn*(n+function(t,e){for(var i,n=2*Math.cos(e),r=t.length-1,s=t[r],o=0;--r>=0;)i=n*s-o+t[r],o=s,s=i;return Math.sin(e)*i}(this.gtu,2*n))},forward:function(t){var e=Ai(t.x-this.long0),i=t.y;i=kn(this.cbg,i);var n=Math.sin(i),r=Math.cos(i),s=Math.sin(e),o=Math.cos(e);i=Math.atan2(n,o*r),e=Math.atan2(s*r,On(n,r*o)),e=Qn(Math.tan(e));var a,l,h=Gn(this.gtu,2*i,2*e);return i+=h[0],e+=h[1],Math.abs(e)<=2.623395162778?(a=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*i+this.Zb)+this.y0):(a=1/0,l=1/0),t.x=a,t.y=l,t},inverse:function(t){var e,i,n=(t.x-this.x0)*(1/this.a),r=(t.y-this.y0)*(1/this.a);if(r=(r-this.Zb)/this.Qn,n/=this.Qn,Math.abs(n)<=2.623395162778){var s=Gn(this.utg,2*r,2*n);r+=s[0],n+=s[1],n=Math.atan(Dn(n));var o=Math.sin(r),a=Math.cos(r),l=Math.sin(n),h=Math.cos(n);r=Math.atan2(o*h,On(l,h*a)),e=Ai((n=Math.atan2(l,h*a))+this.long0),i=kn(this.cgb,r)}else e=1/0,i=1/0;return t.x=e,t.y=i,t},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","tmerc"]};const qn={init:function(){var t=function(t,e){if(void 0===t){if((t=Math.floor(30*(Ai(e)+Math.PI)/Math.PI)+1)<0)return 0;if(t>60)return 60}return t}(this.zone,this.long0);if(void 0===t)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Qe,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Un.init.apply(this),this.forward=Un.forward,this.inverse=Un.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"};function Vn(t,e){return Math.pow((1-t)/(1+t),e)}const zn={init:function(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Ge)/(Math.pow(Math.tan(.5*this.lat0+Ge),this.C)*Vn(this.e*t,this.ratexp))},forward:function(t){var e=t.x,i=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*i+Ge),this.C)*Vn(this.e*Math.sin(i),this.ratexp))-Ne,t.x=this.C*e,t},inverse:function(t){for(var e=t.x/this.C,i=t.y,n=Math.pow(Math.tan(.5*i+Ge)/this.K,1/this.C),r=20;r>0&&(i=2*Math.atan(n*Vn(this.e*Math.sin(t.y),-.5*this.e))-Ne,!(Math.abs(i-t.y)<1e-14));--r)t.y=i;return r?(t.x=e,t.y=i,t):null},names:["gauss"]};const Yn={init:function(){zn.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(t){var e,i,n,r;return t.x=Ai(t.x-this.long0),zn.forward.apply(this,[t]),e=Math.sin(t.y),i=Math.cos(t.y),n=Math.cos(t.x),r=this.k0*this.R2/(1+this.sinc0*e+this.cosc0*i*n),t.x=r*i*Math.sin(t.x),t.y=r*(this.cosc0*e-this.sinc0*i*n),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t},inverse:function(t){var e,i,n,r,s;if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,s=Math.sqrt(t.x*t.x+t.y*t.y)){var o=2*Math.atan2(s,this.R2);e=Math.sin(o),i=Math.cos(o),r=Math.asin(i*this.sinc0+t.y*e*this.cosc0/s),n=Math.atan2(t.x*e,s*this.cosc0*i-t.y*this.sinc0*e)}else r=this.phic0,n=0;return t.x=n,t.y=r,zn.inverse.apply(this,[t]),t.x=Ai(t.x+this.long0),t},names:["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]};const jn={init:function(){this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Oe&&(this.k0=.5*(1+pi(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=Oe&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Oe&&(this.k0=.5*this.cons*di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/fi(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=di(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-Ne,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(t){var e,i,n,r,s,o,a=t.x,l=t.y,h=Math.sin(l),c=Math.cos(l),u=Ai(a-this.long0);return Math.abs(Math.abs(a-this.long0)-Math.PI)<=Oe&&Math.abs(l+this.lat0)<=Oe?(t.x=NaN,t.y=NaN,t):this.sphere?(e=2*this.k0/(1+this.sinlat0*h+this.coslat0*c*Math.cos(u)),t.x=this.a*e*c*Math.sin(u)+this.x0,t.y=this.a*e*(this.coslat0*h-this.sinlat0*c*Math.cos(u))+this.y0,t):(i=2*Math.atan(this.ssfn_(l,h,this.e))-Ne,r=Math.cos(i),n=Math.sin(i),Math.abs(this.coslat0)<=Oe?(s=fi(this.e,l*this.con,this.con*h),o=2*this.a*this.k0*s/this.cons,t.x=this.x0+o*Math.sin(a-this.long0),t.y=this.y0-this.con*o*Math.cos(a-this.long0),t):(Math.abs(this.sinlat0)0?Ai(this.long0+Math.atan2(t.x,-1*t.y)):Ai(this.long0+Math.atan2(t.x,t.y)):Ai(this.long0+Math.atan2(t.x*Math.sin(a),o*this.coslat0*Math.cos(a)-t.y*this.sinlat0*Math.sin(a))),t.x=e,t.y=i,t)}if(Math.abs(this.coslat0)<=Oe){if(o<=Oe)return i=this.lat0,e=this.long0,t.x=e,t.y=i,t;t.x*=this.con,t.y*=this.con,n=o*this.cons/(2*this.a*this.k0),i=this.con*mi(this.e,n),e=this.con*Ai(this.con*this.long0+Math.atan2(t.x,-1*t.y))}else r=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=Oe?s=this.X0:(s=Math.asin(Math.cos(r)*this.sinX0+t.y*Math.sin(r)*this.cosX0/o),e=Ai(this.long0+Math.atan2(t.x*Math.sin(r),o*this.cosX0*Math.cos(r)-t.y*this.sinX0*Math.sin(r)))),i=-1*mi(this.e,Math.tan(.5*(Ne+s)));return t.x=e,t.y=i,t},names:["stere","Stereographic_South_Pole","Polar Stereographic (variant B)"],ssfn_:function(t,e,i){return e*=i,Math.tan(.5*(Ne+t))*Math.pow((1-e)/(1+e),.5*i)}};const Hn={init:function(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),i=this.a,n=1/this.rf,r=2*n-Math.pow(n,2),s=this.e=Math.sqrt(r);this.R=this.k0*i*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var o=Math.log(Math.tan(Math.PI/4+this.b0/2)),a=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+s*e)/(1-s*e));this.K=o-this.alpha*a+this.alpha*s/2*l},forward:function(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),i=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),n=-this.alpha*(e+i)+this.K,r=2*(Math.atan(Math.exp(n))-Math.PI/4),s=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(s)/(Math.sin(this.b0)*Math.tan(r)+Math.cos(this.b0)*Math.cos(s))),a=Math.asin(Math.cos(this.b0)*Math.sin(r)-Math.sin(this.b0)*Math.cos(r)*Math.cos(s));return t.y=this.R/2*Math.log((1+Math.sin(a))/(1-Math.sin(a)))+this.y0,t.x=this.R*o+this.x0,t},inverse:function(t){for(var e=t.x-this.x0,i=t.y-this.y0,n=e/this.R,r=2*(Math.atan(Math.exp(i/this.R))-Math.PI/4),s=Math.asin(Math.cos(this.b0)*Math.sin(r)+Math.sin(this.b0)*Math.cos(r)*Math.cos(n)),o=Math.atan(Math.sin(n)/(Math.cos(this.b0)*Math.cos(n)-Math.sin(this.b0)*Math.tan(r))),a=this.lambda0+o/this.alpha,l=0,h=s,c=-1e3,u=0;Math.abs(h-c)>1e-7;){if(++u>20)return;l=1/this.alpha*(Math.log(Math.tan(Math.PI/4+s/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(h))/2)),c=h,h=2*Math.atan(Math.exp(l))-Math.PI/2}return t.x=a,t.y=h,t},names:["somerc"]};var Xn=1e-7;const Wn={init:function(){var t,e,i,n,r,s,o,a,l,h,c,u,g,d=0,p=0,A=0,f=0,m=0,_=0,y=0;this.no_off=(g="object"==typeof(u=this).PROJECTION?Object.keys(u.PROJECTION)[0]:u.PROJECTION,"no_uoff"in u||"no_off"in u||-1!==["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"].indexOf(g)),this.no_rot="no_rot"in this;var I=!1;"alpha"in this&&(I=!0);var E=!1;if("rectified_grid_angle"in this&&(E=!0),I&&(y=this.alpha),E&&(d=this.rectified_grid_angle*Qe),I||E)p=this.longc;else if(A=this.long1,m=this.lat1,f=this.long2,_=this.lat2,Math.abs(m-_)<=Xn||(t=Math.abs(m))<=Xn||Math.abs(t-Ne)<=Xn||Math.abs(Math.abs(this.lat0)-Ne)<=Xn||Math.abs(Math.abs(_)-Ne)<=Xn)throw new Error;var C=1-this.es;e=Math.sqrt(C),Math.abs(this.lat0)>Oe?(a=Math.sin(this.lat0),i=Math.cos(this.lat0),t=1-this.es*a*a,this.B=i*i,this.B=Math.sqrt(1+this.es*this.B*this.B/C),this.A=this.B*this.k0*e/t,(r=(n=this.B*e/(i*Math.sqrt(t)))*n-1)<=0?r=0:(r=Math.sqrt(r),this.lat0<0&&(r=-r)),this.E=r+=n,this.E*=Math.pow(fi(this.e,this.lat0,a),this.B)):(this.B=1/e,this.A=this.k0,this.E=n=r=1),I||E?(I?(c=Math.asin(Math.sin(y)/n),E||(d=y)):(c=d,y=Math.asin(n*Math.sin(c))),this.lam0=p-Math.asin(.5*(r-1/r)*Math.tan(c))/this.B):(s=Math.pow(fi(this.e,m,Math.sin(m)),this.B),o=Math.pow(fi(this.e,_,Math.sin(_)),this.B),r=this.E/s,l=(o-s)/(o+s),h=((h=this.E*this.E)-o*s)/(h+o*s),(t=A-f)<-Math.pi?f-=Ue:t>Math.pi&&(f+=Ue),this.lam0=Ai(.5*(A+f)-Math.atan(h*Math.tan(.5*this.B*(A-f))/l)/this.B),c=Math.atan(2*Math.sin(this.B*Ai(A-this.lam0))/(r-1/r)),d=y=Math.asin(n*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(d),this.cosrot=Math.cos(d),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.A,this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(n*n-1)/Math.cos(y))),this.lat0<0&&(this.u_0=-this.u_0)),r=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(Ge-r)),this.v_pole_s=this.ArB*Math.log(Math.tan(Ge+r))},forward:function(t){var e,i,n,r,s,o,a,l,h={};if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-Ne)>Oe){if(e=.5*((s=this.E/Math.pow(fi(this.e,t.y,Math.sin(t.y)),this.B))-(o=1/s)),i=.5*(s+o),r=Math.sin(this.B*t.x),n=(e*this.singam-r*this.cosgam)/i,Math.abs(Math.abs(n)-1)0?this.v_pole_n:this.v_pole_s,a=this.ArB*t.y;return this.no_rot?(h.x=a,h.y=l):(a-=this.u_0,h.x=l*this.cosrot+a*this.sinrot,h.y=a*this.cosrot-l*this.sinrot),h.x=this.a*h.x+this.x0,h.y=this.a*h.y+this.y0,h},inverse:function(t){var e,i,n,r,s,o,a,l={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(i=t.y,e=t.x):(i=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),r=.5*((n=Math.exp(-this.BrA*i))-1/n),s=.5*(n+1/n),a=((o=Math.sin(this.BrA*e))*this.cosgam+r*this.singam)/s,Math.abs(Math.abs(a)-1)Oe?this.ns=Math.log(n/a)/Math.log(r/l):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=n/(this.ns*Math.pow(r,this.ns)),this.rh=this.a*this.f0*Math.pow(h,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(t){var e=t.x,i=t.y;Math.abs(2*Math.abs(i)-Math.PI)<=Oe&&(i=pi(i)*(Ne-2*Oe));var n,r,s=Math.abs(Math.abs(i)-Ne);if(s>Oe)n=fi(this.e,i,Math.sin(i)),r=this.a*this.f0*Math.pow(n,this.ns);else{if((s=i*this.ns)<=0)return null;r=0}var o=this.ns*Ai(e-this.long0);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t},inverse:function(t){var e,i,n,r,s,o=(t.x-this.x0)/this.k0,a=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+a*a),i=1):(e=-Math.sqrt(o*o+a*a),i=-1);var l=0;if(0!==e&&(l=Math.atan2(i*o,i*a)),0!==e||this.ns>0){if(i=1/this.ns,n=Math.pow(e/(this.a*this.f0),i),-9999===(r=mi(this.e,n)))return null}else r=-Ne;return s=Ai(l/this.ns+this.long0),t.x=s,t.y=r,t},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]};const Jn={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(t){var e,i,n,r,s,o,a,l=t.x,h=t.y,c=Ai(l-this.long0);return e=Math.pow((1+this.e*Math.sin(h))/(1-this.e*Math.sin(h)),this.alfa*this.e/2),i=2*(Math.atan(this.k*Math.pow(Math.tan(h/2+this.s45),this.alfa)/e)-this.s45),n=-c*this.alfa,r=Math.asin(Math.cos(this.ad)*Math.sin(i)+Math.sin(this.ad)*Math.cos(i)*Math.cos(n)),s=Math.asin(Math.cos(i)*Math.sin(n)/Math.cos(r)),o=this.n*s,a=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(r/2+this.s45),this.n),t.y=a*Math.cos(o)/1,t.x=a*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t},inverse:function(t){var e,i,n,r,s,o,a,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),s=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x)/Math.sin(this.s0),n=2*(Math.atan(Math.pow(this.ro0/s,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(n)-Math.sin(this.ad)*Math.cos(n)*Math.cos(r)),i=Math.asin(Math.cos(n)*Math.sin(r)/Math.cos(e)),t.x=this.long0-i/this.alfa,o=e,a=0;var h=0;do{t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(o))/(1-this.e*Math.sin(o)),this.e/2))-this.s45),Math.abs(o-t.y)<1e-10&&(a=1),o=t.y,h+=1}while(0===a&&h<15);return h>=15?null:t},names:["Krovak","krovak"]};function Zn(t,e,i,n,r){return t*r-e*Math.sin(2*r)+i*Math.sin(4*r)-n*Math.sin(6*r)}function $n(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function tr(t){return.375*t*(1+.25*t*(1+.46875*t))}function er(t){return.05859375*t*t*(1+.75*t)}function ir(t){return t*t*t*(35/3072)}function nr(t,e,i){var n=e*i;return t/Math.sqrt(1-n*n)}function rr(t){return Math.abs(t)1e-7?(1-t*t)*(e/(1-(i=t*e)*i)-.5/t*Math.log((1-i)/(1+i))):2*e}var lr=.3333333333333333,hr=.17222222222222222,cr=.10257936507936508,ur=.06388888888888888,gr=.0664021164021164,dr=.016415012942191543;const pr={init:function(){var t,e=Math.abs(this.lat0);if(Math.abs(e-Ne)0)switch(this.qp=ar(this.e,1),this.mmf=.5/(1-this.es),this.apa=function(t){var e,i=[];return i[0]=t*lr,e=t*t,i[0]+=e*hr,i[1]=e*ur,e*=t,i[0]+=e*cr,i[1]+=e*gr,i[2]=e*dr,i}(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=ar(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(t){var e,i,n,r,s,o,a,l,h,c,u=t.x,g=t.y;if(u=Ai(u-this.long0),this.sphere){if(s=Math.sin(g),c=Math.cos(g),n=Math.cos(u),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((i=this.mode===this.EQUIT?1+c*n:1+this.sinph0*s+this.cosph0*c*n)<=Oe)return null;e=(i=Math.sqrt(2/i))*c*Math.sin(u),i*=this.mode===this.EQUIT?s:this.cosph0*s-this.sinph0*c*n}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(n=-n),Math.abs(g+this.lat0)=0?(e=(h=Math.sqrt(o))*r,i=n*(this.mode===this.S_POLE?h:-h)):e=i=0}}return t.x=this.a*e+this.x0,t.y=this.a*i+this.y0,t},inverse:function(t){t.x-=this.x0,t.y-=this.y0;var e,i,n,r,s,o,a,l,h,c,u=t.x/this.a,g=t.y/this.a;if(this.sphere){var d,p=0,A=0;if((i=.5*(d=Math.sqrt(u*u+g*g)))>1)return null;switch(i=2*Math.asin(i),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(A=Math.sin(i),p=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(d)<=Oe?0:Math.asin(g*A/d),u*=A,g=p*d;break;case this.OBLIQ:i=Math.abs(d)<=Oe?this.lat0:Math.asin(p*this.sinph0+g*A*this.cosph0/d),u*=A*this.cosph0,g=(p-Math.sin(i)*this.sinph0)*d;break;case this.N_POLE:g=-g,i=Ne-i;break;case this.S_POLE:i-=Ne}e=0!==g||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(u,g):0}else{if(a=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(u/=this.dd,g*=this.dd,(o=Math.sqrt(u*u+g*g))1&&(t=t>1?1:-1),Math.asin(t)}const fr={init:function(){Math.abs(this.lat1+this.lat2)Oe?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(t){var e=t.x,i=t.y;this.sin_phi=Math.sin(i),this.cos_phi=Math.cos(i);var n=ar(this.e3,this.sin_phi),r=this.a*Math.sqrt(this.c-this.ns0*n)/this.ns0,s=this.ns0*Ai(e-this.long0),o=r*Math.sin(s)+this.x0,a=this.rh-r*Math.cos(s)+this.y0;return t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),n=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),n=-1),r=0,0!==e&&(r=Math.atan2(n*t.x,n*t.y)),n=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-n*n)/(2*this.ns0)):(i=(this.c-n*n)/this.ns0,o=this.phi1z(this.e3,i)),s=Ai(r/this.ns0+this.long0),t.x=s,t.y=o,t},names:["Albers_Conic_Equal_Area","Albers","aea"],phi1z:function(t,e){var i,n,r,s,o=Ar(.5*e);if(t0||Math.abs(s)<=Oe?(o=this.x0+1*this.a*i*Math.sin(n)/s,a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*r)/s):(o=this.x0+this.infinity_dist*i*Math.sin(n),a=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*i*r)),t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(r=Math.atan2(e,this.rc),i=Math.sin(r),o=Ar((n=Math.cos(r))*this.sin_p14+t.y*i*this.cos_p14/e),s=Math.atan2(t.x*i,e*this.cos_p14*n-t.y*this.sin_p14*i),s=Ai(this.long0+s)):(o=this.phic0,s=0),t.x=s,t.y=o,t},names:["gnom"]};const _r={init:function(){this.sphere||(this.k0=di(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(t){var e,i,n=t.x,r=t.y,s=Ai(n-this.long0);if(this.sphere)e=this.x0+this.a*s*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(r)/Math.cos(this.lat_ts);else{var o=ar(this.e,Math.sin(r));e=this.x0+this.a*this.k0*s,i=this.y0+this.a*o*.5/this.k0}return t.x=e,t.y=i,t},inverse:function(t){var e,i;return t.x-=this.x0,t.y-=this.y0,this.sphere?(e=Ai(this.long0+t.x/this.a/Math.cos(this.lat_ts)),i=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(i=function(t,e){var i=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-i)<1e-6)return e<0?-1*Ne:Ne;for(var n,r,s,o,a=Math.asin(.5*e),l=0;l<30;l++)if(r=Math.sin(a),s=Math.cos(a),o=t*r,a+=n=Math.pow(1-o*o,2)/(2*s)*(e/(1-t*t)-r/(1-o*o)+.5/t*Math.log((1-o)/(1+o))),Math.abs(n)<=1e-10)return a;return NaN}(this.e,2*t.y*this.k0/this.a),e=Ai(this.long0+t.x/(this.a*this.k0))),t.x=e,t.y=i,t},names:["cea"]};const yr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(t){var e=t.x,i=t.y,n=Ai(e-this.long0),r=rr(i-this.lat0);return t.x=this.x0+this.a*n*this.rc,t.y=this.y0+this.a*r,t},inverse:function(t){var e=t.x,i=t.y;return t.x=Ai(this.long0+(e-this.x0)/(this.a*this.rc)),t.y=rr(this.lat0+(i-this.y0)/this.a),t},names:["Equirectangular","Equidistant_Cylindrical","eqc"]};const Ir={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=$n(this.es),this.e1=tr(this.es),this.e2=er(this.es),this.e3=ir(this.es),this.ml0=this.a*Zn(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(t){var e,i,n,r=t.x,s=t.y,o=Ai(r-this.long0);if(n=o*Math.sin(s),this.sphere)Math.abs(s)<=Oe?(e=this.a*o,i=-1*this.a*this.lat0):(e=this.a*Math.sin(n)/Math.tan(s),i=this.a*(rr(s-this.lat0)+(1-Math.cos(n))/Math.tan(s)));else if(Math.abs(s)<=Oe)e=this.a*o,i=-1*this.ml0;else{var a=nr(this.a,this.e,Math.sin(s))/Math.tan(s);e=a*Math.sin(n),i=this.a*Zn(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+a*(1-Math.cos(n))}return t.x=e+this.x0,t.y=i+this.y0,t},inverse:function(t){var e,i,n,r,s,o,a,l,h;if(n=t.x-this.x0,r=t.y-this.y0,this.sphere)if(Math.abs(r+this.a*this.lat0)<=Oe)e=Ai(n/this.a+this.long0),i=0;else{var c;for(o=this.lat0+r/this.a,a=n*n/this.a/this.a+o*o,l=o,s=20;s;--s)if(l+=h=-1*(o*(l*(c=Math.tan(l))+1)-l-.5*(l*l+a)*c)/((l-o)/c-1),Math.abs(h)<=Oe){i=l;break}e=Ai(this.long0+Math.asin(n*Math.tan(l)/this.a)/Math.sin(i))}else if(Math.abs(r+this.ml0)<=Oe)i=0,e=Ai(this.long0+n/this.a);else{var u,g,d,p,A;for(o=(this.ml0+r)/this.a,a=n*n/this.a/this.a+o*o,l=o,s=20;s;--s)if(A=this.e*Math.sin(l),u=Math.sqrt(1-A*A)*Math.tan(l),g=this.a*Zn(this.e0,this.e1,this.e2,this.e3,l),d=this.e0-2*this.e1*Math.cos(2*l)+4*this.e2*Math.cos(4*l)-6*this.e3*Math.cos(6*l),l-=h=(o*(u*(p=g/this.a)+1)-p-.5*u*(p*p+a))/(this.es*Math.sin(2*l)*(p*p+a-2*o*p)/(4*u)+(o-p)*(u*d-2/Math.sin(2*l))-d),Math.abs(h)<=Oe){i=l;break}u=Math.sqrt(1-this.es*Math.pow(Math.sin(i),2))*Math.tan(i),e=Ai(this.long0+Math.asin(n*u/this.a)/Math.sin(i))}return t.x=e,t.y=i,t},names:["Polyconic","poly"]};const Er={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(t){var e,i=t.x,n=t.y-this.lat0,r=i-this.long0,s=n/Re*1e-5,o=r,a=1,l=0;for(e=1;e<=10;e++)a*=s,l+=this.A[e]*a;var h,c=l,u=o,g=1,d=0,p=0,A=0;for(e=1;e<=6;e++)h=d*c+g*u,g=g*c-d*u,d=h,p=p+this.B_re[e]*g-this.B_im[e]*d,A=A+this.B_im[e]*g+this.B_re[e]*d;return t.x=A*this.a+this.x0,t.y=p*this.a+this.y0,t},inverse:function(t){var e,i,n=t.x,r=t.y,s=n-this.x0,o=(r-this.y0)/this.a,a=s/this.a,l=1,h=0,c=0,u=0;for(e=1;e<=6;e++)i=h*o+l*a,l=l*o-h*a,h=i,c=c+this.C_re[e]*l-this.C_im[e]*h,u=u+this.C_im[e]*l+this.C_re[e]*h;for(var g=0;g.999999999999&&(i=.999999999999),e=Math.asin(i);var n=Ai(this.long0+t.x/(.900316316158*this.a*Math.cos(e)));n<-Math.PI&&(n=-Math.PI),n>Math.PI&&(n=Math.PI),i=(2*e+Math.sin(2*e))/Math.PI,Math.abs(i)>1&&(i=1);var r=Math.asin(i);return t.x=n,t.y=r,t},names:["Mollweide","moll"]};const wr={init:function(){Math.abs(this.lat1+this.lat2)=0?(i=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(i=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var s=0;return 0!==i&&(s=Math.atan2(e*t.x,e*t.y)),this.sphere?(r=Ai(this.long0+s/this.ns),n=rr(this.g-i/this.a),t.x=r,t.y=n,t):(n=sr(this.g-i/this.a,this.e0,this.e1,this.e2,this.e3),r=Ai(this.long0+s/this.ns),t.x=r,t.y=n,t)},names:["Equidistant_Conic","eqdc"]};const Sr={init:function(){this.R=this.a},forward:function(t){var e,i,n=t.x,r=t.y,s=Ai(n-this.long0);Math.abs(r)<=Oe&&(e=this.x0+this.R*s,i=this.y0);var o=Ar(2*Math.abs(r/Math.PI));(Math.abs(s)<=Oe||Math.abs(Math.abs(r)-Ne)<=Oe)&&(e=this.x0,i=r>=0?this.y0+Math.PI*this.R*Math.tan(.5*o):this.y0+Math.PI*this.R*-Math.tan(.5*o));var a=.5*Math.abs(Math.PI/s-s/Math.PI),l=a*a,h=Math.sin(o),c=Math.cos(o),u=c/(h+c-1),g=u*u,d=u*(2/h-1),p=d*d,A=Math.PI*this.R*(a*(u-p)+Math.sqrt(l*(u-p)*(u-p)-(p+l)*(g-p)))/(p+l);s<0&&(A=-A),e=this.x0+A;var f=l+u;return A=Math.PI*this.R*(d*f-a*Math.sqrt((p+l)*(l+1)-f*f))/(p+l),i=r>=0?this.y0+A:this.y0-A,t.x=e,t.y=i,t},inverse:function(t){var e,i,n,r,s,o,a,l,h,c,u,g;return t.x-=this.x0,t.y-=this.y0,u=Math.PI*this.R,s=(n=t.x/u)*n+(r=t.y/u)*r,u=3*(r*r/(l=-2*(o=-Math.abs(r)*(1+s))+1+2*r*r+s*s)+(2*(a=o-2*r*r+n*n)*a*a/l/l/l-9*o*a/l/l)/27)/(h=(o-a*a/3/l)/l)/(c=2*Math.sqrt(-h/3)),Math.abs(u)>1&&(u=u>=0?1:-1),g=Math.acos(u)/3,i=t.y>=0?(-c*Math.cos(g+Math.PI/3)-a/3/l)*Math.PI:-(-c*Math.cos(g+Math.PI/3)-a/3/l)*Math.PI,e=Math.abs(n)2*Ne*this.a)return;return i=e/this.a,n=Math.sin(i),r=Math.cos(i),s=this.long0,Math.abs(e)<=Oe?o=this.lat0:(o=Ar(r*this.sin_p12+t.y*n*this.cos_p12/e),a=Math.abs(this.lat0)-Ne,s=Math.abs(a)<=Oe?this.lat0>=0?Ai(this.long0+Math.atan2(t.x,-t.y)):Ai(this.long0-Math.atan2(-t.x,t.y)):Ai(this.long0+Math.atan2(t.x*n,e*this.cos_p12*r-t.y*this.sin_p12*n))),t.x=s,t.y=o,t}return l=$n(this.es),h=tr(this.es),c=er(this.es),u=ir(this.es),Math.abs(this.sin_p12-1)<=Oe?(o=sr(((g=this.a*Zn(l,h,c,u,Ne))-(e=Math.sqrt(t.x*t.x+t.y*t.y)))/this.a,l,h,c,u),s=Ai(this.long0+Math.atan2(t.x,-1*t.y)),t.x=s,t.y=o,t):Math.abs(this.sin_p12+1)<=Oe?(g=this.a*Zn(l,h,c,u,Ne),o=sr(((e=Math.sqrt(t.x*t.x+t.y*t.y))-g)/this.a,l,h,c,u),s=Ai(this.long0+Math.atan2(t.x,t.y)),t.x=s,t.y=o,t):(e=Math.sqrt(t.x*t.x+t.y*t.y),A=Math.atan2(t.x,t.y),d=nr(this.a,this.e,this.sin_p12),f=Math.cos(A),_=-(m=this.e*this.cos_p12*f)*m/(1-this.es),y=3*this.es*(1-_)*this.sin_p12*this.cos_p12*f/(1-this.es),C=1-_*(E=(I=e/d)-_*(1+_)*Math.pow(I,3)/6-y*(1+3*_)*Math.pow(I,4)/24)*E/2-I*E*E*E/6,p=Math.asin(this.sin_p12*Math.cos(E)+this.cos_p12*Math.sin(E)*f),s=Ai(this.long0+Math.asin(Math.sin(A)*Math.sin(E)/Math.cos(p))),v=Math.sin(p),o=Math.atan2((v-this.es*C*this.sin_p12)*Math.tan(p),v*(1-this.es)),t.x=s,t.y=o,t)},names:["Azimuthal_Equidistant","aeqd"]};const Lr={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(t){var e,i,n,r,s,o,a,l=t.x,h=t.y;return n=Ai(l-this.long0),e=Math.sin(h),i=Math.cos(h),r=Math.cos(n),1,((s=this.sin_p14*e+this.cos_p14*i*r)>0||Math.abs(s)<=Oe)&&(o=1*this.a*i*Math.sin(n),a=this.y0+1*this.a*(this.cos_p14*e-this.sin_p14*i*r)),t.x=o,t.y=a,t},inverse:function(t){var e,i,n,r,s,o,a;return t.x-=this.x0,t.y-=this.y0,i=Ar((e=Math.sqrt(t.x*t.x+t.y*t.y))/this.a),n=Math.sin(i),r=Math.cos(i),o=this.long0,Math.abs(e)<=Oe?(a=this.lat0,t.x=o,t.y=a,t):(a=Ar(r*this.sin_p14+t.y*n*this.cos_p14/e),s=Math.abs(this.lat0)-Ne,Math.abs(s)<=Oe?(o=this.lat0>=0?Ai(this.long0+Math.atan2(t.x,-t.y)):Ai(this.long0-Math.atan2(-t.x,t.y)),t.x=o,t.y=a,t):(o=Ai(this.long0+Math.atan2(t.x*n,e*this.cos_p14*r-t.y*this.sin_p14*n)),t.x=o,t.y=a,t))},names:["ortho"]};var Br=1,Mr=2,Tr=3,Rr=4,Nr=5,Pr=6,Fr={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function Dr(t,e,i,n){var r;return tGe&&r<=Ne+Ge?(n.value=Fr.AREA_1,r-=Ne):r>Ne+Ge||r<=-(Ne+Ge)?(n.value=Fr.AREA_2,r=r>=0?r-qe:r+qe):(n.value=Fr.AREA_3,r+=Ne)),r}function Or(t,e){var i=t+e;return i<-qe?i+=Ue:i>+qe&&(i-=Ue),i}const Qr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=Ne-Ge/2?this.face=Nr:this.lat0<=-(Ne-Ge/2)?this.face=Pr:Math.abs(this.long0)<=Ge?this.face=Br:Math.abs(this.long0)<=Ne+Ge?this.face=this.long0>0?Mr:Rr:this.face=Tr,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(t){var e,i,n,r,s,o,a={x:0,y:0},l={value:0};if(t.x-=this.long0,e=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(t.y)):t.y,i=t.x,this.face===Nr)r=Ne-e,i>=Ge&&i<=Ne+Ge?(l.value=Fr.AREA_0,n=i-Ne):i>Ne+Ge||i<=-(Ne+Ge)?(l.value=Fr.AREA_1,n=i>0?i-qe:i+qe):i>-(Ne+Ge)&&i<=-Ge?(l.value=Fr.AREA_2,n=i+Ne):(l.value=Fr.AREA_3,n=i);else if(this.face===Pr)r=Ne+e,i>=Ge&&i<=Ne+Ge?(l.value=Fr.AREA_0,n=-i+Ne):i=-Ge?(l.value=Fr.AREA_1,n=-i):i<-Ge&&i>=-(Ne+Ge)?(l.value=Fr.AREA_2,n=-i-Ne):(l.value=Fr.AREA_3,n=i>0?-i+qe:-i-qe);else{var h,c,u,g,d,p;this.face===Mr?i=Or(i,+Ne):this.face===Tr?i=Or(i,+qe):this.face===Rr&&(i=Or(i,-Ne)),g=Math.sin(e),d=Math.cos(e),p=Math.sin(i),h=d*Math.cos(i),c=d*p,u=g,this.face===Br?n=Dr(r=Math.acos(h),u,c,l):this.face===Mr?n=Dr(r=Math.acos(c),u,-h,l):this.face===Tr?n=Dr(r=Math.acos(-h),u,-c,l):this.face===Rr?n=Dr(r=Math.acos(-c),u,h,l):(r=n=0,l.value=Fr.AREA_0)}return o=Math.atan(12/qe*(n+Math.acos(Math.sin(n)*Math.cos(Ge))-Ne)),s=Math.sqrt((1-Math.cos(r))/(Math.cos(o)*Math.cos(o))/(1-Math.cos(Math.atan(1/Math.cos(n))))),l.value===Fr.AREA_1?o+=Ne:l.value===Fr.AREA_2?o+=qe:l.value===Fr.AREA_3&&(o+=1.5*qe),a.x=s*Math.cos(o),a.y=s*Math.sin(o),a.x=a.x*this.a+this.x0,a.y=a.y*this.a+this.y0,t.x=a.x,t.y=a.y,t},inverse:function(t){var e,i,n,r,s,o,a,l,h,c,u,g,d={lam:0,phi:0},p={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,i=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),e=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?p.value=Fr.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(p.value=Fr.AREA_1,e-=Ne):t.x<0&&-t.x>=Math.abs(t.y)?(p.value=Fr.AREA_2,e=e<0?e+qe:e-qe):(p.value=Fr.AREA_3,e+=Ne),h=qe/12*Math.tan(e),s=Math.sin(h)/(Math.cos(h)-1/Math.sqrt(2)),o=Math.atan(s),(a=1-(n=Math.cos(e))*n*(r=Math.tan(i))*r*(1-Math.cos(Math.atan(1/Math.cos(o)))))<-1?a=-1:a>1&&(a=1),this.face===Nr)l=Math.acos(a),d.phi=Ne-l,p.value===Fr.AREA_0?d.lam=o+Ne:p.value===Fr.AREA_1?d.lam=o<0?o+qe:o-qe:p.value===Fr.AREA_2?d.lam=o-Ne:d.lam=o;else if(this.face===Pr)l=Math.acos(a),d.phi=l-Ne,p.value===Fr.AREA_0?d.lam=-o+Ne:p.value===Fr.AREA_1?d.lam=-o:p.value===Fr.AREA_2?d.lam=-o-Ne:d.lam=o<0?-o-qe:-o+qe;else{var A,f,m;h=(A=a)*A,f=(h+=(m=h>=1?0:Math.sqrt(1-h)*Math.sin(o))*m)>=1?0:Math.sqrt(1-h),p.value===Fr.AREA_1?(h=f,f=-m,m=h):p.value===Fr.AREA_2?(f=-f,m=-m):p.value===Fr.AREA_3&&(h=f,f=m,m=-h),this.face===Mr?(h=A,A=-f,f=h):this.face===Tr?(A=-A,f=-f):this.face===Rr&&(h=A,A=f,f=-h),d.phi=Math.acos(-m)-Ne,d.lam=Math.atan2(f,A),this.face===Mr?d.lam=Or(d.lam,-Ne):this.face===Tr?d.lam=Or(d.lam,-qe):this.face===Rr&&(d.lam=Or(d.lam,+Ne))}return 0!==this.es&&(c=d.phi<0?1:0,u=Math.tan(d.phi),g=this.b/Math.sqrt(u*u+this.one_minus_f_squared),d.phi=Math.atan(Math.sqrt(this.a*this.a-g*g)/(this.one_minus_f*g)),c&&(d.phi=-d.phi)),d.lam+=this.long0,t.x=d.lam,t.y=d.phi,t},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]};var kr=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Gr=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],Ur=.8487,qr=1.3523,Vr=ke/5,zr=1/Vr,Yr=18,jr=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))};const Hr={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(t){var e=Ai(t.x-this.long0),i=Math.abs(t.y),n=Math.floor(i*Vr);n<0?n=0:n>=Yr&&(n=17);var r={x:jr(kr[n],i=ke*(i-zr*n))*e,y:jr(Gr[n],i)};return t.y<0&&(r.y=-r.y),r.x=r.x*this.a*Ur+this.x0,r.y=r.y*this.a*qr+this.y0,r},inverse:function(t){var e={x:(t.x-this.x0)/(this.a*Ur),y:Math.abs(t.y-this.y0)/(this.a*qr)};if(e.y>=1)e.x/=kr[18][0],e.y=t.y<0?-Ne:Ne;else{var i=Math.floor(e.y*Yr);for(i<0?i=0:i>=Yr&&(i=17);;)if(Gr[i][0]>e.y)--i;else{if(!(Gr[i+1][0]<=e.y))break;++i}var n=Gr[i],r=5*(e.y-n[0])/(Gr[i+1][0]-n[0]);r=function(t,e,i,n){for(var r=e;n;--n){var s=t(r);if(r-=s,Math.abs(s)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(t){var e,i,n,r,s=t.x,o=t.y;if(s-=this.long0,"ellipse"===this.shape){o=Math.atan(this.radius_p2*Math.tan(o));var a=this.radius_p/On(this.radius_p*Math.cos(o),Math.sin(o));if(i=a*Math.cos(s)*Math.cos(o),n=a*Math.sin(s)*Math.cos(o),r=a*Math.sin(o),(this.radius_g-i)*i-n*n-r*r*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/On(r,e)),t.y=this.radius_g_1*Math.atan(r/e)):(t.x=this.radius_g_1*Math.atan(n/e),t.y=this.radius_g_1*Math.atan(r/On(n,e)))}else"sphere"===this.shape&&(e=Math.cos(o),i=Math.cos(s)*e,n=Math.sin(s)*e,r=Math.sin(o),e=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(n/On(r,e)),t.y=this.radius_g_1*Math.atan(r/e)):(t.x=this.radius_g_1*Math.atan(n/e),t.y=this.radius_g_1*Math.atan(r/On(n,e))));return t.x=t.x*this.a,t.y=t.y*this.a,t},inverse:function(t){var e,i,n,r,s=-1,o=0,a=0;if(t.x=t.x/this.a,t.y=t.y/this.a,"ellipse"===this.shape){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*On(1,a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*On(1,o));var l=a/this.radius_p;if(e=o*o+l*l+s*s,(n=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-i-Math.sqrt(n))/(2*e),s=this.radius_g+r*s,o*=r,a*=r,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if("sphere"===this.shape){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),o=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(o=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+o*o)),e=o*o+a*a+s*s,(n=(i=2*this.radius_g*s)*i-4*e*this.C)<0)return t.x=Number.NaN,t.y=Number.NaN,t;r=(-i-Math.sqrt(n))/(2*e),s=this.radius_g+r*s,o*=r,a*=r,t.x=Math.atan2(o,s),t.y=Math.atan(a*Math.cos(t.x)/s)}return t.x=t.x+this.long0,t},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]};Ji.defaultDatum="WGS84",Ji.Proj=Di,Ji.WGS84=new Ji.Proj("WGS84"),Ji.Point=_n,Ji.toPoint=Yi,Ji.defs=li,Ji.nadgrid=function(t,e){var i=new DataView(e),n=function(t){var e=t.getInt32(8,!1);if(11===e)return!1;e=t.getInt32(8,!0),11!==e&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian");return!0}(i),r=function(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ti(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}(i,n);r.nSubgrids>1&&console.log("Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored");var s=function(t,e,i){for(var n=176,r=[],s=0;s{let e=t;Array.isArray(e)||(e=[e]),e.forEach((t=>{t.codes.forEach((e=>{is.defs(e,t.def)}));ne(t.codes.map((e=>new u({code:e,extent:t.extent,worldExtent:t.worldExtent,units:t.units,metersPerUnit:t.metersPerUnit,axisOrientation:t.axisOrientation,global:t.global})))),-1===os.indexOf(t)&&os.push(t)}))},ls=()=>os;as(os),ls(),rs(is);const hs={addProjections:as,getSupportedProjs:ls};function cs(t){t.stopPropagation()}const us=class{constructor(t){this.propagationStopped,this.defaultPrevented,this.type=t,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},gs="propertychange";const ds=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}};function ps(t,e){return t>e?1:te?-1:0}function fs(t,e,i){if(t[0]<=e)return 0;const n=t.length;if(e<=t[n-1])return n-1;if("function"==typeof i){for(let r=1;r0?r-1:r}return n-1}if(i>0){for(let i=1;i0)}removeEventListener(t,e){const i=this.listeners_&&this.listeners_[t];if(i){const n=i.indexOf(e);-1!==n&&(this.pendingRemovals_&&t in this.pendingRemovals_?(i[n]=Cs,++this.pendingRemovals_[t]):(i.splice(n,1),0===i.length&&delete this.listeners_[t]))}}},bs="change",Ls="error",Bs="contextmenu",Ms="click",Ts="dblclick",Rs="dragenter",Ns="dragover",Ps="drop",Fs="keydown",Ds="keypress",Os="load",Qs="touchmove",ks="wheel";function Gs(t,e,i,n,r){if(n&&n!==t&&(i=i.bind(n)),r){const n=i;i=function(){t.removeEventListener(e,i),n.apply(this,arguments)}}const s={target:t,type:e,listener:i};return t.addEventListener(e,i),s}function Us(t,e,i,n){return Gs(t,e,i,n,!0)}function qs(t){t&&t.target&&(t.target.removeEventListener(t.type,t.listener),xs(t))}class Vs extends Ss{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(bs)}getRevision(){return this.revision_}onInternal(t,e){if(Array.isArray(t)){const i=t.length,n=new Array(i);for(let r=0;r0;)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new to(Js,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new to(Zs,e,t)),e}setAt(t,e){if(t>=this.getLength())return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const i=this.array_[t];this.array_[t]=e,this.dispatchEvent(new to(Zs,i,t)),this.dispatchEvent(new to(Js,e,t))}updateLength_(){this.set($s,this.array_.length)}assertUnique_(t,e){for(let i=0,n=this.array_.length;i=1024){let i=0;for(const n in t)3&i++||(delete t[n],--e)}n=function(t){let e,i,n,r,s;So.exec(t)&&(t=Lo(t));if(wo.exec(t)){const o=t.length-1;let a;a=o<=4?1:2;const l=4===o||8===o;e=parseInt(t.substr(1+0*a,a),16),i=parseInt(t.substr(1+1*a,a),16),n=parseInt(t.substr(1+2*a,a),16),r=l?parseInt(t.substr(1+3*a,a),16):255,1==a&&(e=(e<<4)+e,i=(i<<4)+i,n=(n<<4)+n,l&&(r=(r<<4)+r)),s=[e,i,n,r/255]}else if(t.startsWith("rgba("))s=t.slice(5,-1).split(",").map(Number),To(s);else{if(!t.startsWith("rgb("))throw new Error("Invalid color");s=t.slice(4,-1).split(",").map(Number),s.push(1),To(s)}return s}(i),t[i]=n,++e}return n}}();function Mo(t){return Array.isArray(t)?t:Bo(t)}function To(t){return t[0]=dt(t[0]+.5|0,0,255),t[1]=dt(t[1]+.5|0,0,255),t[2]=dt(t[2]+.5|0,0,255),t[3]=dt(t[3],0,1),t}function Ro(t){let e=t[0];e!=(0|e)&&(e=e+.5|0);let i=t[1];i!=(0|i)&&(i=i+.5|0);let n=t[2];n!=(0|n)&&(n=n+.5|0);return"rgba("+e+","+i+","+n+","+(void 0===t[3]?1:Math.round(100*t[3])/100)+")"}class No{constructor(){this.cache_={},this.cacheSize_=0,this.maxCacheSize_=32}clear(){this.cache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let t=0;for(const e in this.cache_){const i=this.cache_[e];3&t++||i.hasListener()||(delete this.cache_[e],--this.cacheSize_)}}}get(t,e,i){const n=Po(t,e,i);return n in this.cache_?this.cache_[n]:null}set(t,e,i,n){const r=Po(t,e,i);this.cache_[r]=n,++this.cacheSize_}setSize(t){this.maxCacheSize_=t,this.expire()}}function Po(t,e,i){return e+":"+t+":"+(i?bo(i):"null")}const Fo=new No,Do="opacity",Oo="visible",Qo="extent",ko="zIndex",Go="maxResolution",Uo="minResolution",qo="maxZoom",Vo="minZoom",zo="source",Yo="map";const jo=class extends Ks{constructor(t){super(),this.on,this.once,this.un,this.background_=t.background;const e=Object.assign({},t);"object"==typeof t.properties&&(delete e.properties,Object.assign(e,t.properties)),e[Do]=void 0!==t.opacity?t.opacity:1,go("number"==typeof e[Do],"Layer opacity must be a number"),e[Oo]=void 0===t.visible||t.visible,e[ko]=t.zIndex,e[Go]=void 0!==t.maxResolution?t.maxResolution:1/0,e[Uo]=void 0!==t.minResolution?t.minResolution:0,e[Vo]=void 0!==t.minZoom?t.minZoom:-1/0,e[qo]=void 0!==t.maxZoom?t.maxZoom:1/0,this.className_=void 0!==e.className?e.className:"ol-layer",delete e.className,this.setProperties(e),this.state_=null}getBackground(){return this.background_}getClassName(){return this.className_}getLayerState(t){const e=this.state_||{layer:this,managed:void 0===t||t},i=this.getZIndex();return e.opacity=dt(Math.round(100*this.getOpacity())/100,0,1),e.visible=this.getVisible(),e.extent=this.getExtent(),e.zIndex=void 0!==i||e.managed?i:1/0,e.maxResolution=this.getMaxResolution(),e.minResolution=Math.max(this.getMinResolution(),0),e.minZoom=this.getMinZoom(),e.maxZoom=this.getMaxZoom(),this.state_=e,e}getLayersArray(t){return js()}getLayerStatesArray(t){return js()}getExtent(){return this.get(Qo)}getMaxResolution(){return this.get(Go)}getMinResolution(){return this.get(Uo)}getMinZoom(){return this.get(Vo)}getMaxZoom(){return this.get(qo)}getOpacity(){return this.get(Do)}getSourceState(){return js()}getVisible(){return this.get(Oo)}getZIndex(){return this.get(ko)}setBackground(t){this.background_=t,this.changed()}setExtent(t){this.set(Qo,t)}setMaxResolution(t){this.set(Go,t)}setMinResolution(t){this.set(Uo,t)}setMaxZoom(t){this.set(qo,t)}setMinZoom(t){this.set(Vo,t)}setOpacity(t){go("number"==typeof t,"Layer opacity must be a number"),this.set(Do,t)}setVisible(t){this.set(Oo,t)}setZIndex(t){this.set(ko,t)}disposeInternal(){this.state_&&(this.state_.layer=null,this.state_=null),super.disposeInternal()}},Ho="prerender",Xo="postrender",Wo="precompose",Ko="postcompose",Jo="rendercomplete",Zo=0,$o=1,ta={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"},ea=42,ia=256;function na(t,e,i){return function(n,r,s,o,a){if(!n)return;if(!r&&!e)return n;const l=e?0:s[0]*r,h=e?0:s[1]*r,c=a?a[0]:0,u=a?a[1]:0;let g=t[0]+l/2+c,d=t[2]-l/2+c,p=t[1]+h/2+u,A=t[3]-h/2+u;g>d&&(g=(d+g)/2,d=g),p>A&&(p=(A+p)/2,A=p);let f=dt(n[0],g,d),m=dt(n[1],p,A);if(o&&i&&r){const t=30*r;f+=-t*Math.log(1+Math.max(0,g-n[0])/t)+t*Math.log(1+Math.max(0,n[0]-d)/t),m+=-t*Math.log(1+Math.max(0,p-n[1])/t)+t*Math.log(1+Math.max(0,n[1]-A)/t)}return[f,m]}}function ra(t){return t}function sa(t,e,i,n){const r=at(e)/i[0],s=nt(e)/i[1];return n?Math.min(t,Math.max(r,s)):Math.min(t,Math.min(r,s))}function oa(t,e,i){let n=Math.min(t,e);return n*=Math.log(1+50*Math.max(0,t/e-1))/50+1,i&&(n=Math.max(n,i),n/=Math.log(1+50*Math.max(0,i/t-1))/50+1),dt(n,i/2,2*e)}function aa(t,e,i,n,r){return i=void 0===i||i,function(s,o,a,l){if(void 0!==s){const o=n?sa(t,n,a,r):t;return i&&l?oa(s,o,e):dt(s,e,o)}}}function la(t){if(void 0!==t)return 0}function ha(t){if(void 0!==t)return t}function ca(t){return Math.pow(t,3)}function ua(t){return 1-ca(1-t)}function ga(t){return 3*t*t-2*t*t*t}function da(t){return t}function pa(t){return t<.5?ga(2*t):1-ga(2*(t-.5))}function Aa(t,e,i,n,r,s){s=s||[];let o=0;for(let a=e;a1)u=i;else{if(g>0){for(let r=0;rr&&(r=a),s=i,o=n}return r}function va(t,e,i,n,r){for(let s=0,o=i.length;s0;){const i=h.pop(),s=h.pop();let o=0;const a=t[s],u=t[s+1],g=t[i],d=t[i+1];for(let e=s+n;eo&&(c=e,o=i)}o>r&&(l[(c-e)/n]=1,s+n0&&p>g)&&(d<0&&A0&&A>d)?(a=i,l=u):(s[o++]=a,s[o++]=l,h=a,c=l,a=i,l=u)}return s[o++]=a,s[o++]=l,o}function Na(t,e,i,n,r,s,o,a){for(let l=0,h=i.length;ls&&(i-a)*(s-l)-(r-a)*(n-l)>0&&o++:n<=s&&(i-a)*(s-l)-(r-a)*(n-l)<0&&o--,a=i,l=n}return 0!==o}function Ya(t,e,i,n,r,s){if(0===i.length)return!1;if(!za(t,e,i[0],n,r,s))return!1;for(let e=1,o=i.length;em&&(h=(c+u)/2,Ya(t,e,i,n,h,p)&&(f=h,m=r)),c=u}return isNaN(f)&&(f=r[s]),o?(o.push(f,p,m),o):[f,p,m]}function Ha(t,e,i,n,r){let s=[];for(let o=0,a=i.length;o=r[0]&&s[2]<=r[2]||(s[1]>=r[1]&&s[3]<=r[3]||Xa(t,e,i,n,(function(t,e){return function(t,e,i){let n=!1;const r=Q(t,e),s=Q(t,i);if(r===B.INTERSECTING||s===B.INTERSECTING)n=!0;else{const o=t[0],a=t[1],l=t[2],h=t[3],c=e[0],u=e[1],g=i[0],d=i[1],p=(d-u)/(g-c);let A,f;s&B.ABOVE&&!(r&B.ABOVE)&&(A=g-(d-h)/p,n=A>=o&&A<=l),n||!(s&B.RIGHT)||r&B.RIGHT||(f=d-(g-l)*p,n=f>=a&&f<=h),n||!(s&B.BELOW)||r&B.BELOW||(A=g-(d-a)/p,n=A>=o&&A<=l),n||!(s&B.LEFT)||r&B.LEFT||(f=d-(g-o)*p,n=f>=a&&f<=h)}return n}(r,t,e)})))))}function Ka(t,e,i,n,r){return!!Wa(t,e,i,n,r)||(!!za(t,e,i,n,r[0],r[1])||(!!za(t,e,i,n,r[0],r[3])||(!!za(t,e,i,n,r[2],r[1])||!!za(t,e,i,n,r[2],r[3]))))}function Ja(t,e,i,n,r){if(!Ka(t,e,i[0],n,r))return!1;if(1===i.length)return!0;for(let e=1,s=i.length;e0}function tl(t,e,i,n,r){r=void 0!==r&&r;for(let s=0,o=i.length;sc&&g1&&"function"==typeof arguments[i-1]&&(e=arguments[i-1],--i);let n=0;for(;n0}getInteracting(){return this.hints_[$o]>0}cancelAnimations(){let t;this.setHint(Zo,-this.hints_[Zo]);for(let e=0,i=this.animations_.length;e=0;--i){const n=this.animations_[i];let r=!0;for(let i=0,s=n.length;i0?o/s.duration:1;a>=1?(s.complete=!0,a=1):r=!1;const l=s.easing(a);if(s.sourceCenter){const t=s.sourceCenter[0],e=s.sourceCenter[1],i=s.targetCenter[0],n=s.targetCenter[1];this.nextCenter_=s.targetCenter;const r=t+l*(i-t),o=e+l*(n-e);this.targetCenter_=[r,o]}if(s.sourceResolution&&s.targetResolution){const t=1===l?s.targetResolution:s.sourceResolution+l*(s.targetResolution-s.sourceResolution);if(s.anchor){const e=this.getViewportSize_(this.getRotation()),i=this.constraints_.resolution(t,0,e,!0);this.targetCenter_=this.calculateCenterZoom(i,s.anchor)}this.nextResolution_=s.targetResolution,this.targetResolution_=t,this.applyTargetState_(!0)}if(void 0!==s.sourceRotation&&void 0!==s.targetRotation){const t=1===l?_t(s.targetRotation+Math.PI,2*Math.PI)-Math.PI:s.sourceRotation+l*(s.targetRotation-s.sourceRotation);if(s.anchor){const e=this.constraints_.rotation(t,!0);this.targetCenter_=this.calculateCenterRotate(e,s.anchor)}this.nextRotation_=s.targetRotation,this.targetRotation_=t}if(this.applyTargetState_(!0),e=!0,!s.complete)break}if(r){this.animations_[i]=null,this.setHint(Zo,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;const t=n[0].callback;t&&cl(t,!0)}}this.animations_=this.animations_.filter(Boolean),e&&void 0===this.updateAnimationKey_&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(t,e){let i;const n=this.getCenterInternal();return void 0!==n&&(i=[n[0]-e[0],n[1]-e[1]],Nt(i,t-this.getRotation()),St(i,e)),i}calculateCenterZoom(t,e){let i;const n=this.getCenterInternal(),r=this.getResolution();if(void 0!==n&&void 0!==r){i=[e[0]-t*(e[0]-n[0])/r,e[1]-t*(e[1]-n[1])/r]}return i}getViewportSize_(t){const e=this.viewportSize_;if(t){const i=e[0],n=e[1];return[Math.abs(i*Math.cos(t))+Math.abs(n*Math.sin(t)),Math.abs(i*Math.sin(t))+Math.abs(n*Math.cos(t))]}return e}setViewportSize(t){this.viewportSize_=Array.isArray(t)?t.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){const t=this.getCenterInternal();return t?Ae(t,this.getProjection()):t}getCenterInternal(){return this.get(ta.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(t){return void 0!==t?(t[0]=this.hints_[0],t[1]=this.hints_[1],t):this.hints_.slice()}calculateExtent(t){return me(this.calculateExtentInternal(t),this.getProjection())}calculateExtentInternal(t){t=t||this.getViewportSizeMinusPadding_();const e=this.getCenterInternal();go(e,"The view center is not defined");const i=this.getResolution();go(void 0!==i,"The view resolution is not defined");const n=this.getRotation();return go(void 0!==n,"The view rotation is not defined"),et(e,i,n,t)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(t){this.applyOptions_(this.getUpdatedOptions_({maxZoom:t}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(t){this.applyOptions_(this.getUpdatedOptions_({minZoom:t}))}setConstrainResolution(t){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:t}))}getProjection(){return this.projection_}getResolution(){return this.get(ta.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(t,e){return this.getResolutionForExtentInternal(_e(t,this.getProjection()),e)}getResolutionForExtentInternal(t,e){e=e||this.getViewportSizeMinusPadding_();const i=at(t)/e[0],n=nt(t)/e[1];return Math.max(i,n)}getResolutionForValueFunction(t){t=t||2;const e=this.getConstrainedResolution(this.maxResolution_),i=this.minResolution_,n=Math.log(e/i)/Math.log(t);return function(i){return e/Math.pow(t,i*n)}}getRotation(){return this.get(ta.ROTATION)}getValueForResolutionFunction(t){const e=Math.log(t||2),i=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(i/n)/e;return function(t){return Math.log(i/t)/e/r}}getViewportSizeMinusPadding_(t){let e=this.getViewportSize_(t);const i=this.padding_;return i&&(e=[e[0]-i[1]-i[3],e[1]-i[0]-i[2]]),e}getState(){const t=this.getProjection(),e=this.getResolution(),i=this.getRotation();let n=this.getCenterInternal();const r=this.padding_;if(r){const t=this.getViewportSizeMinusPadding_();n=gl(n,this.getViewportSize_(),[t[0]/2+r[3],t[1]/2+r[0]],e,i)}return{center:n.slice(0),projection:void 0!==t?t:null,resolution:e,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:i,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let t;const e=this.getResolution();return void 0!==e&&(t=this.getZoomForResolution(e)),t}getZoomForResolution(t){let e,i,n=this.minZoom_||0;if(this.resolutions_){const r=fs(this.resolutions_,t,1);n=r,e=this.resolutions_[r],i=r==this.resolutions_.length-1?2:e/this.resolutions_[r+1]}else e=this.maxResolution_,i=this.zoomFactor_;return n+Math.log(e/t)/Math.log(i)}getResolutionForZoom(t){if(this.resolutions_){if(this.resolutions_.length<=1)return 0;const e=dt(Math.floor(t),0,this.resolutions_.length-2),i=this.resolutions_[e]/this.resolutions_[e+1];return this.resolutions_[e]/Math.pow(i,dt(t-e,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,t-this.minZoom_)}fit(t,e){let i;if(go(Array.isArray(t)||"function"==typeof t.getSimplifiedGeometry,"Invalid extent or geometry provided as `geometry`"),Array.isArray(t)){go(!ht(t),"Cannot fit empty extent provided as `geometry`");i=al(_e(t,this.getProjection()))}else if("Circle"===t.getType()){const e=_e(t.getExtent(),this.getProjection());i=al(e),i.rotate(this.getRotation(),$(e))}else{const e=pe();i=e?t.clone().transform(e,this.getProjection()):t}this.fitInternal(i,e)}rotatedExtentForGeometry(t){const e=this.getRotation(),i=Math.cos(e),n=Math.sin(-e),r=t.getFlatCoordinates(),s=t.getStride();let o=1/0,a=1/0,l=-1/0,h=-1/0;for(let t=0,e=r.length;tt.maxResolution)return!1;var n=e.zoom;return n>t.minZoom&&n<=t.maxZoom}const Al=class extends jo{constructor(t){const e=Object.assign({},t);delete e.source,super(e),this.on,this.once,this.un,this.mapPrecomposeKey_=null,this.mapRenderKey_=null,this.sourceChangeKey_=null,this.renderer_=null,this.sourceReady_=!1,this.rendered=!1,t.render&&(this.render=t.render),t.map&&this.setMap(t.map),this.addChangeListener(zo,this.handleSourcePropertyChange_);const i=t.source?t.source:null;this.setSource(i)}getLayersArray(t){return(t=t||[]).push(this),t}getLayerStatesArray(t){return(t=t||[]).push(this.getLayerState()),t}getSource(){return this.get(zo)||null}getRenderSource(){return this.getSource()}getSourceState(){const t=this.getSource();return t?t.getState():"undefined"}handleSourceChange_(){this.changed(),this.sourceReady_||"ready"!==this.getSource().getState()||(this.sourceReady_=!0,this.dispatchEvent("sourceready"))}handleSourcePropertyChange_(){this.sourceChangeKey_&&(qs(this.sourceChangeKey_),this.sourceChangeKey_=null),this.sourceReady_=!1;const t=this.getSource();t&&(this.sourceChangeKey_=Gs(t,bs,this.handleSourceChange_,this),"ready"===t.getState()&&(this.sourceReady_=!0,setTimeout((()=>{this.dispatchEvent("sourceready")}),0))),this.changed()}getFeatures(t){return this.renderer_?this.renderer_.getFeatures(t):Promise.resolve([])}getData(t){return this.renderer_&&this.rendered?this.renderer_.getData(t):null}isVisible(t){let e;const i=this.getMapInternal();let n;!t&&i&&(t=i.getView()),e=t instanceof dl?{viewState:t.getState(),extent:t.calculateExtent()}:t,!e.layerStatesArray&&i&&(e.layerStatesArray=i.getLayerGroup().getLayerStatesArray()),n=e.layerStatesArray?e.layerStatesArray.find((t=>t.layer===this)):this.getLayerState();const r=this.getExtent();return pl(n,e.viewState)&&(!r||lt(r,e.extent))}getAttributions(t){if(!this.isVisible(t))return[];let e;const i=this.getSource();if(i&&(e=i.getAttributions()),!e)return[];let n=e(t instanceof dl?t.getViewStateAndExtent():t);return Array.isArray(n)||(n=[n]),n}render(t,e){const i=this.getRenderer();return i.prepareFrame(t)?(this.rendered=!0,i.renderFrame(t,e)):null}unrender(){this.rendered=!1}setMapInternal(t){t||this.unrender(),this.set(Yo,t)}getMapInternal(){return this.get(Yo)}setMap(t){this.mapPrecomposeKey_&&(qs(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),t||this.changed(),this.mapRenderKey_&&(qs(this.mapRenderKey_),this.mapRenderKey_=null),t&&(this.mapPrecomposeKey_=Gs(t,Wo,(function(t){const e=t.frameState.layerStatesArray,i=this.getLayerState(!1);go(!e.some((function(t){return t.layer===i.layer})),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),e.push(i)}),this),this.mapRenderKey_=Gs(this,bs,t.render,t),this.changed())}setSource(t){this.set(zo,t)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}disposeInternal(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_),this.setSource(null),super.disposeInternal()}};function fl(t,e){Fo.expire()}const ml=class extends ds{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){js()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Eo(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),Co(n,i)}forEachFeatureAtCoordinate(t,e,i,n,r,s,o,a){let l;const h=e.viewState;function c(t,e,i,n){return r.call(s,e,t?i:null,n)}const u=h.projection,g=kt(t.slice(),u),d=[[0,0]];if(u.canWrapX()&&n){const t=at(u.getExtent());d.push([-t,0],[t,0])}const p=e.layerStatesArray,A=p.length,f=[],m=[];for(let n=0;n=0;--r){const s=p[r],u=s.layer;if(u.hasRenderer()&&pl(s,h)&&o.call(a,u)){const r=u.getRenderer(),o=u.getSource();if(r&&o){const a=o.getWrapX()?g:t,h=c.bind(null,s.managed);m[0]=a[0]+d[n][0],m[1]=a[1]+d[n][1],l=r.forEachFeatureAtCoordinate(m,e,i,h,f)}if(l)return l}}if(0===f.length)return;const _=1/f.length;return f.forEach(((t,e)=>t.distanceSq+=e*_)),f.sort(((t,e)=>t.distanceSq-e.distanceSq)),f.some((t=>l=t.callback(t.feature,t.layer,t.geometry))),l}hasFeatureAtCoordinate(t,e,i,n,r,s){return void 0!==this.forEachFeatureAtCoordinate(t,e,i,n,Is,this,r,s)}getMap(){return this.map_}renderFrame(t){js()}flushDeclutterItems(t){}scheduleExpireIconCache(t){Fo.canExpireCache()&&t.postRenderFunctions.push(fl)}};const _l=class extends us{constructor(t,e,i,n){super(t),this.inversePixelTransform=e,this.frameState=i,this.context=n}},yl="ol-hidden",Il="ol-unselectable",El="ol-unsupported",Cl="ol-control",vl="ol-collapsed",xl=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))","?\\s*([-,\\\"\\'\\sa-z]+?)\\s*$"].join(""),"i"),wl=["style","variant","weight","size","lineHeight","family"],Sl=function(t){const e=t.match(xl);if(!e)return null;const i={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let t=0,n=wl.length;tMath.max(e,Kl(t,i))),0);return i[e]=n,n}function Zl(t,e,i,n,r,s,o,a,l,h,c){t.save(),1!==i&&(t.globalAlpha*=i),e&&t.transform.apply(t,e),n.contextInstructions?(t.translate(l,h),t.scale(c[0],c[1]),function(t,e){const i=t.contextInstructions;for(let t=0,n=i.length;t=0;--i)e[i].renderDeclutter(t);e.length=0}};class th extends us{constructor(t,e){super(t),this.layer=e}}const eh="layers";class ih extends jo{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(eh,this.handleLayersChanged_),i?Array.isArray(i)?i=new eo(i.slice(),{unique:!0}):go("function"==typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new eo(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(qs),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(Gs(t,Js,this.handleLayersAdd_,this),Gs(t,Zs,this.handleLayersRemove_,this));for(const t in this.listenerKeys_)this.listenerKeys_[t].forEach(qs);xs(this.listenerKeys_);const e=t.getArray();for(let t=0,i=e.length;t{this.clickTimeoutId_=void 0;const e=new sh(oh.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==oh.POINTERUP||e.type==oh.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=oh.POINTERDOWN&&e.type!=oh.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new sh(oh.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new sh(oh.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(Gs(t,oh.POINTERMOVE,this.handlePointerMove_,this),Gs(t,oh.POINTERUP,this.handlePointerUp_,this),Gs(this.element_,oh.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(Gs(this.element_.getRootNode(),oh.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new sh(oh.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new sh(oh.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"==typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(qs(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(Qs,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(qs(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},gh="postrender",dh="movestart",ph="moveend",Ah="loadstart",fh="loadend",mh="layergroup",_h="size",yh="target",Ih="view",Eh=1/0;const Ch=class{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,xs(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){go(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=Eh&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,r=e[t],s=i[t],o=t;for(;t>1;){const r=this.getLeftChildIndex_(t),s=this.getRightChildIndex_(t),o=st;){const t=this.getParentIndex_(e);if(!(n[t]>s))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=r,n[e]=s}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const r=e.length;let s,o,a;for(o=0;o0;)n=this.dequeue()[0],r=n.getKey(),i=n.getState(),i!==vh||r in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[r]=!0,++this.tilesLoading_,++s,n.load())}};const Bh=class extends Ks{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){Rl(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&Rl(this.element);for(let t=0,e=this.listenerKeys.length;te.getAttributions(t))))),i=!this.getMap().getAllLayers().some((t=>t.getSource()&&!1===t.getSource().getAttributionsCollapsible()));return this.overrideCollapsible_||this.setCollapsible(i),e}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!ys(e,this.renderedAttributions_)){Nl(this.ulElement_);for(let t=0,i=e.length;t0&&e%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:ua}):t.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(yl);t||0!==i?t&&0!==i&&this.element.classList.remove(yl):this.element.classList.add(yl)}this.label_.style.transform=t}this.rotation_=i}};const Rh=class extends Bh{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",r=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",s=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",l=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",h=document.createElement("button");h.className=n,h.setAttribute("type","button"),h.title=a,h.appendChild("string"==typeof s?document.createTextNode(s):s),h.addEventListener(Ms,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild("string"==typeof o?document.createTextNode(o):o),c.addEventListener(Ms,this.handleClick_.bind(this,-i),!1);const u=e+" "+Il+" "+Cl,g=this.element;g.className=u,g.appendChild(h),g.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap().getView();if(!e)return;const i=e.getZoom();if(void 0!==i){const n=e.getConstrainedZoom(i+t);this.duration_>0?(e.getAnimating()&&e.cancelAnimations(),e.animate({zoom:n,duration:this.duration_,easing:ua})):e.setZoom(n)}}};function Nh(t){t=t||{};const e=new eo;(void 0===t.zoom||t.zoom)&&e.push(new Rh(t.zoomOptions));(void 0===t.rotate||t.rotate)&&e.push(new Th(t.rotateOptions));return(void 0===t.attribution||t.attribution)&&e.push(new Mh(t.attributionOptions)),e}const Ph="active";function Fh(t,e,i,n){const r=t.getZoom();if(void 0===r)return;const s=t.getConstrainedZoom(r+e),o=t.getResolutionForZoom(s);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:ua})}const Dh=class extends Ks{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(Ph)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(Ph,t)}setMap(t){this.map_=t}};const Oh=class extends Dh{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==oh.DBLCLICK){const i=t.originalEvent,n=t.map,r=t.coordinate,s=i.shiftKey?-this.delta_:this.delta_;Fh(n.getView(),s,r,this.duration_),i.preventDefault(),e=!0}return!e}};function Qh(t){const e=t.length;let i=0,n=0;for(let r=0;r0}}else if(t.type==oh.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==oh.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}};function Gh(t){const e=arguments;return function(t){let i=!0;for(let n=0,r=e.length;n0&&this.condition_(t)){const e=t.map.getView();return this.lastCentroid=null,e.getAnimating()&&e.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}};const ic=class extends kh{constructor(t){t=t||{},super({stopDown:Es}),this.condition_=t.condition?t.condition:qh,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!$h(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===la)return;const n=e.getSize(),r=t.pixel,s=Math.atan2(n[1]/2-r[1],r[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=s}handleUpEvent(t){if(!$h(t))return!0;return t.map.getView().endInteraction(this.duration_),!1}handleDownEvent(t){if(!$h(t))return!1;if(jh(t)&&this.condition_(t)){return t.map.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}};const nc=class extends ds{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);i[4]=i[0].slice(),this.geometry_?this.geometry_.setCoordinates([i]):this.geometry_=new sl([i])}getGeometry(){return this.geometry_}},rc="boxstart",sc="boxdrag",oc="boxend",ac="boxcancel";class lc extends us{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}const hc=class extends kh{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new nc(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:jh,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],r=i[1]-e[1];return n*n+r*r>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new lc(sc,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new lc(e?oc:ac,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new lc(rc,t.coordinate,t)),!0)}onBoxEnd(t){}};const cc=class extends hc{constructor(t){super({condition:(t=t||{}).condition?t.condition:Jh,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap().getView();let i=this.getGeometry();if(this.out_){const t=e.rotatedExtentForGeometry(i),n=e.getResolutionForExtentInternal(t),r=e.getResolution()/n;i=i.clone(),i.scale(r*r)}e.fitInternal(i,{duration:this.duration_,easing:ua})}},uc="ArrowLeft",gc="ArrowUp",dc="ArrowRight",pc="ArrowDown";const Ac=class extends Dh{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Wh(t)&&Zh(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==Fs){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&(n==pc||n==uc||n==dc||n==gc)){const r=t.map.getView(),s=r.getResolution()*this.pixelDelta_;let o=0,a=0;n==pc?a=-s:n==uc?o=-s:n==dc?o=s:a=s;const l=[o,a];Nt(l,r.getRotation()),function(t,e,i){const n=t.getCenterInternal();if(n){const r=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:da,center:t.getConstrainedCenter(r)})}}(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}};const fc=class extends Dh{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!Kh(t)&&Zh(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==Fs||t.type==Ds){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&("+"===n||"-"===n)){const r=t.map,s="+"===n?this.delta_:-this.delta_;Fh(r.getView(),s,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}};const mc=class{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t;)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const r=this.points_[e]-this.points_[i],s=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(s,r),this.initialVelocity_=Math.sqrt(r*r+s*s)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}};const _c=class extends Dh{constructor(t){super(t=t||{}),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Yh;this.condition_=t.onFocusOnly?Gh(zh,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;t.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;if(t.type!==ks)return!0;const e=t.map,i=t.originalEvent;let n;if(i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==ks&&(n=i.deltaY,no&&i.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(n/=ao),i.deltaMode===WheelEvent.DOM_DELTA_LINE&&(n*=40)),0===n)return!1;this.lastDelta_=n;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(n)<4?"trackpad":"wheel");const s=e.getView();if("trackpad"===this.mode_&&!s.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-n/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=n;const o=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,e),o),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-dt(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),Fh(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}};const yc=class extends kh{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=Es),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],r=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=r;const s=t.map,o=s.getView();o.getConstraints().rotation!==la&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(Qh(this.targetPointers))),this.rotating_&&(s.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){return t.map.getView().endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};const Ic=class extends kh{constructor(t){const e=t=t||{};e.stopDown||(e.stopDown=Es),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],r=i.clientX-n.clientX,s=i.clientY-n.clientY,o=Math.sqrt(r*r+s*s);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,l=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(Qh(this.targetPointers))),a.render(),l.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map.getView(),i=this.lastScaleDelta_>1?1:-1;return e.endInteraction(this.duration_,i),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}};function Ec(t){t=t||{};const e=new eo,i=new mc(-.005,.05,100);(void 0===t.altShiftDragRotate||t.altShiftDragRotate)&&e.push(new ic);(void 0===t.doubleClickZoom||t.doubleClickZoom)&&e.push(new Oh({delta:t.zoomDelta,duration:t.zoomDuration}));(void 0===t.dragPan||t.dragPan)&&e.push(new ec({onFocusOnly:t.onFocusOnly,kinetic:i}));(void 0===t.pinchRotate||t.pinchRotate)&&e.push(new yc);(void 0===t.pinchZoom||t.pinchZoom)&&e.push(new Ic({duration:t.zoomDuration}));(void 0===t.keyboard||t.keyboard)&&(e.push(new Ac),e.push(new fc({delta:t.zoomDelta,duration:t.zoomDuration})));(void 0===t.mouseWheelZoom||t.mouseWheelZoom)&&e.push(new _c({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));return(void 0===t.shiftDragZoom||t.shiftDragZoom)&&e.push(new cc({duration:t.zoomDuration})),e}function Cc(t){return t[0]>0&&t[1]>0}function vc(t,e,i){return void 0===i&&(i=[0,0]),i[0]=t[0]*e+.5|0,i[1]=t[1]*e+.5|0,i}function xc(t,e){return Array.isArray(t)?t:(void 0===e?e=[t,t]:(e[0]=t,e[1]=t),e)}function wc(t){t instanceof Al?t.setMapInternal(null):t instanceof nh&&t.getLayers().forEach(wc)}function Sc(t,e){if(t instanceof Al)t.setMapInternal(e);else if(t instanceof nh){const i=t.getLayers().getArray();for(let t=0,n=i.length;tthis.updateSize())),this.controls=e.controls||Nh(),this.interactions=e.interactions||Ec({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Lh(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(mh,this.handleLayerGroupChanged_),this.addChangeListener(Ih,this.handleViewChanged_),this.addChangeListener(_h,this.handleSizeChanged_),this.addChangeListener(yh,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof dl||t.view.then((function(t){i.setView(new dl(t))})),this.controls.addEventListener(Js,(t=>{t.element.setMap(this)})),this.controls.addEventListener(Zs,(t=>{t.element.setMap(null)})),this.interactions.addEventListener(Js,(t=>{t.element.setMap(this)})),this.interactions.addEventListener(Zs,(t=>{t.element.setMap(null)})),this.overlays_.addEventListener(Js,(t=>{this.addOverlayInternal_(t.element)})),this.overlays_.addEventListener(Zs,(t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)})),this.controls.forEach((t=>{t.setMap(this)})),this.interactions.forEach((t=>{t.setMap(this)})),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){this.getLayerGroup().getLayers().push(t)}handleLayerAdd_(t){Sc(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t),r=void 0!==(i=void 0!==i?i:{}).hitTolerance?i.hitTolerance:0,s=void 0!==i.layerFilter?i.layerFilter:Is,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,r,o,e,null,s,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];return function e(i){i.forEach((function(i){i instanceof nh?e(i.getLayers()):t.push(i)}))}(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t),n=void 0!==(e=void 0!==e?e:{}).layerFilter?e.layerFilter:Is,r=void 0!==e.hitTolerance?e.hitTolerance:0,s=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,r,s,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_.getBoundingClientRect(),i=this.getSize(),n=e.width/i[0],r=e.height/i[1],s="changedTouches"in t?t.changedTouches[0]:t;return[(s.clientX-e.left)/n,(s.clientY-e.top)/r]}getTarget(){return this.get(yh)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return Ae(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?_o(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(mh)}setLayers(t){const e=this.getLayerGroup();if(t instanceof eo)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;if(!n.handleEvent(t)||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Zo]||e[$o]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new th("removelayer",e)),this.set(mh,t)}setSize(t){this.set(_h,t)}setTarget(t){this.set(yh,t)}setView(t){if(!t||t instanceof dl)return void this.set(Ih,t);this.set(Ih,new dl);const e=this;t.then((function(t){e.setView(new dl(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i.borderLeftWidth)-parseFloat(i.paddingLeft)-parseFloat(i.paddingRight)-parseFloat(i.borderRightWidth),r=t.offsetHeight-parseFloat(i.borderTopWidth)-parseFloat(i.paddingTop)-parseFloat(i.paddingBottom)-parseFloat(i.borderBottomWidth);isNaN(n)||isNaN(r)||(e=[n,r],!Cc(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Xt("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&ys(e,i)||(this.setSize(e),this.updateViewportSize_())}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}};const Lc=class{constructor(t,e,i=!1){this._listener=t,this._scope=e,this.eventKey_=JL(),this.once_=i}fire(t){let e=t;UL(e)||(e=[e]),this._listener.apply(this._scope,e)}getEventKey(){return this.eventKey_}isOnce(){return this.once_}has(t,e){let i=!1;return i=VL(t)?this._listener===t&&this._scope===e:this.eventKey_===t,i}};const Bc=class{constructor(){this.events_={}}add(t,e,i,n=!1){let r;if(!qL(t)&&VL(e)&&(qL(this.events_[t])&&(this.events_[t]=[]),-1===this.indexOf(t,e,i))){const s=new Lc(e,i,n);this.events_[t].push(s),r=s.getEventKey()}return r}remove(t,e,i){const n=this.events_[t];if(!qL(n)){const r=this.indexOf(t,e,i);-1!==r&&n.splice(r,1)}}removeByKey(t,e){const i=this.events_[t];if(!qL(i)){const t=i.map(((t,i)=>{let n=-1;return t.getEventKey()===e&&(n=i),n}));-1!==t&&i.splice(t,1)}}fire(t,e){const i=[].concat(this.events_[t]);qL(i)||i.forEach((i=>{i.fire(e),!0===i.isOnce()&&this.remove(t,i.getEventKey())}))}indexOf(t,e,i){let n=-1;const r=this.events_[t];if(!qL(r))for(let t=0,s=r.length;ti?(this.direction_=Pc,this.widthLimit_=e-o):(this.direction_=Nc,this.heightLimit_=i-a),this.sliderInitialized_=!0}handleContainerClick_(t){const e=this.getMap().getView(),i=this.getRelativePosition_(t.offsetX-this.thumbSize_[0]/2,t.offsetY-this.thumbSize_[1]/2),n=this.getResolutionForPosition_(i),r=e.getConstrainedZoom(e.getZoomForResolution(n));e.animateInternal({zoom:r,duration:this.duration_,easing:ua})}handleDraggerStart_(t){if(!this.dragging_&&t.target===this.element.firstElementChild){const e=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=t.clientX-parseFloat(e.style.left),this.startY_=t.clientY-parseFloat(e.style.top),this.dragging_=!0,0===this.dragListenerKeys_.length){const t=this.handleDraggerDrag_,e=this.handleDraggerEnd_,i=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(Gs(i,ah,t,this),Gs(i,hh,e,this))}}}handleDraggerDrag_(t){if(this.dragging_){const e=t.clientX-this.startX_,i=t.clientY-this.startY_,n=this.getRelativePosition_(e,i);this.currentResolution_=this.getResolutionForPosition_(n),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(t){if(this.dragging_){this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(qs),this.dragListenerKeys_.length=0}}setThumbPosition_(t){const e=this.getPositionForResolution_(t),i=this.element.firstElementChild;this.direction_==Pc?i.style.left=this.widthLimit_*e+"px":i.style.top=this.heightLimit_*e+"px"}getRelativePosition_(t,e){let i;return i=this.direction_===Pc?t/this.widthLimit_:e/this.heightLimit_,dt(i,0,1)}getResolutionForPosition_(t){return this.getMap().getView().getResolutionForValueFunction()(1-t)}getPositionForResolution_(t){return dt(1-this.getMap().getView().getValueForResolutionFunction()(t),0,1)}render(t){if(!t.frameState)return;if(!this.sliderInitialized_&&!this.initSlider_())return;const e=t.frameState.viewState.resolution;this.currentResolution_=e,this.setThumbPosition_(e)}};const Dc=class extends Fc{constructor(t){super(hB({},t,!0)),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}},Oc=t=>{throw new Error(t)};const Qc=class extends Mc{constructor(t){super(),this.impl_=t,!qL(this.impl_)&&VL(this.impl_.setFacadeObj)&&this.impl_.setFacadeObj(this)}getImpl(){return this.impl_}setImpl(t){this.impl_=t}destroy(){!qL(this.impl_)&&VL(this.impl_.destroy)&&this.impl_.destroy()}},kc="added:map",Gc="added:panel",Uc="added:layer",qc="added:wmc",Vc="added:kml",zc="added:wms",Yc="added:wfs",jc="added:vectortile",Hc="removed:layer",Xc="removed:map",Wc="added:wmts",Kc="activated",Jc="deactivated",Zc="show",$c="hide",tu="destroy",eu="select:features",iu="unselect:features",nu="hover:features",ru="leave:features",su="load",ou="completed",au="change",lu="change:wmc",hu="change:proj",cu="change:style",uu="change:zoom",gu="change:rotation",du="changed:layer-visibility",pu="click",Au="move",fu="popup:added",mu="popup:removed",_u="popup:addtabed",yu="popup:removedtab",Iu={translations:{en:JSON.parse('{"location":{"title":"Get current location"},"layerswitcher":{"title":"Layer selector","unsupported_param":"Unsupported parameter","no_base_layer":"Without base layer"},"scale":{"title":"Scale","scale":"Scale"},"getfeatureinfo":{"info":"Information","title":"Consult layer","no_info":"No associated info","info_of":"Information about","unsupported_format":"Unsupported format"},"wmcselector":{"title":"Context selector"},"dialog":{"info":"INFORMATION","error":"ERROR","success":"SUCCESS","id_feature":"An ID has not been indicated to obtain the feature","invalid_type_layer":"A valid type was not specified for the layer","vector_filter":"The indicated filter is not correct","unauthorized_user":"An error occurred while loading the layer: Unauthorized user.","only_one_filter":"FeatureID and CQL are mutually exclusive, indicate only one type of filtering.","getfeatureinfo_type":"The requested format for the information is not available. Try it using gml, plain or html."},"feature":{"incorrect_attributes":"The attributes were not specified correctly."},"exception":{"addto_method":"The used implementation does not have the addTo method","no_get_rotation_method":"The used implementation does not have the getRotation method","no_set_rotation_method":"The used implementation does not have the setRotation method","getelement_method":"The used implementation does not have the getElement method","getfeatureinfo_method":"The used implementation can not create GetFeatureInfo controls","mouse_method":"The used implementation can not create Mouse controls","navtoolbar_method":"The used implementation can not create navtoolbar controls","overviewmap_method":"The used implementation can not create OverviewMap controls","panzoom_method":"The used implementation can not create Panzoom controls","panzoombar_method":"The used implementation can not create Panzoombar controls","scale_method":"The used implementation can not create Scale controls","scaleline_method":"The used implementation can not create ScaleLine controls","wmcselector_method":"The used implementation can not create WMCSelector controls","geojson_method":"The used implementation can not create objects M.impl.format.GeoJSON","wkt_method":"The used implementation can not creat objects M.impl.format.WKT","getfeaturesbylayer_method":"The used implementation does not have the getFeaturesByLayer method","geojsonlayer_method":"The used implementation can not create GeoJSON layers","no_param":"No parameters specified","no_name":"You have not specified any name","kmllayer_method":"The used implementation can not create KML layers","isvisible_method":"The used implementation does not have the isVisible method","isqueryable_methd":"The used implementation does not have the isQueryable method","visibility_param":"You have not specified any visibility parameters","setvisible_method":"The used implementation does not have the setVisible method","inrange_method":"The used implementation does not have the inRange method","mapbox_method":"The used implementation can not create Mapbox layers","osm_method":"The used implementation can not create OSM layers","vectorlayer_method":"The used implementation can not create Vector layers","wfslayer_method":"The used implementation can not create WFS layers","wmclayer_method":"The used implementation can not create WMC layers","select_method":"The used implementation does not have the select method","unselect_method":"The used implementation does not have the unselect method","constructor_impl":"The used implementation does not have a constructor.","getlayers_method":"The used implementation does not have the getLayers method.","getbaselayers_method":"The used implementation does not have the getBaseLayers method.","addlayers_method":"The used implementation does not have the addLayers method.","removelayers_method":"The used implementation does not have the removeLayers method.","getwmc_method":"The implementation used does not have the getWMC method.","addwmc_method":"The used implementation does not have the addWMC method.","removewmc_method":"The used implementation does not have the removeWMC method.","getkml_method":"The used implementation does not have the getKML method.","addkml_method":"The implementation used does not have the addKML method.","removekml_method":"The implementation used does not have the removeKML method.","getwms_method":"The used implementation does not have the getWMS method.","addwms_method":"The used implementation does not have the addWMS method.","removewms_method":"The used implementation does not have the removeWMS method.","getwfs_method":"The implementation used does not have the getWFS method.","getgeojson_method":"The used implementation does not have the getGeoJSON method.","addwfs_method":"The used implementation does not have the addWFS method.","removewfs_method":"The used implementation does not have the removeWFS method.","getwmts_method":"The implementation used does not have the getWMTS method.","addwmts_method":"The used implementation does not have the addWMTS method.","removewmts_method":"The used implementation does not have the removeWMTS method.","getmbtiles_method":"The used implementation does not have the getMBtiles method.","getcontrols_method":"The used implementation does not have the getControls method.","addcontrols_method":"The used implementation does not have the addControls method.","remove_control":"You have not specified any control to delete.","removecontrol_method":"The used implementation does not have the removeControls method.","setmaxextent_method":"The used implementation does not have the setMaxExtent method.","getbbox_method":"The used implementation does not have the getBbox method.","no_bbox":"You have not specified any bbox.","setbbox_method":"The used implementation does not have the setBbox method.","incorrect_bbox_format":"The format of the bbox parameter is not correct.","getzoom_method":"The used implementation does not have the getZoom method.","no_zoom":"You have not specified any zoom.","setzoom_method":"The implementation used does not have the setZoom method.","getcenter_method":"The used implementation does not have the getCenter method.","setcenter_method":"The used implementation does not have the setCenter method.","getresolutions_method":"The used implementation does not have the getResolutions method.","no_resolutions":"You have not specified any resolution.","setresolutions_method":"The used implementation does not have the setResolutions method.","getscale_method":"The used implementation does not have the getScale method.","getprojection_method":"The implementation used does not have the getProjection method.","no_projection":"You have not specified any projection.","setprojection_method":"The used implementation does not have the setProjection method.","no_plugins":"You have not specified any plugins.","no_add_plugin_to_map":"The plugin can not be added to the map.","no_plugin_to_remove":"You have not specified any plugins to delete.","destroy_method":"The used implementation does not have the destroy method.","addlabel_method":"The used implementation does not have the addLabel method.","no_point":"You have not specified any points.","remove_control_from_panel":"You must remove the controls from the panel previously.","getcontainer_method":"The used implementation does not have the getContainer method.","getmapimpl_method":"The used implementation does not have the getMapImpl method.","removepopup_method":"The used implementation does not have the removePopup method.","no_popup":"You have not specified any popup.","invalid_popup":"The specified popup is not valid.","no_maxextent":"You have not specified any maxExtent","must_be_document":"doc.nodeType must be DOCUMENT type","no_service_response":"There was no reply from the service","no_kml_response":"There was no response from the KML","no_getfeature_response":"There was no response in the GetFeature operation","no_map":"You have not specified any map","layerswitcher_method":"The used implementation can not create LayerSwitcher controls","location_method":"The used implementation can not create Location controls","wms_method":"The used implementation can not create WMS layers","wmts_method":"The used implementation can not create WMTS layers","no_impl":"No implementation specified","no_container":"You have not specified any container parameters","no_id_container":"There is no container with the specified id","no_center":"You have not specified any center parameters","no_attr_name":"The name of the attribute was not specified","no_empty":"The attribute name can not be null. Specify string or function","invalid_center_param":"The format of the center parameter is not correct","invalid_maxextent_param":"The format of the maxExtent parameter is not correct","invalid_resolutions_param":"The format of the resolutions parameter is not correct","invalid_zoom_param":"The format of the zoom parameter is not correct","min_gt_max":"A minimum radius greater than the maximum can not be established.","max_lt_min":"A maximum radius of less than the minimum can not be established.","no_geojson":"No GeoJSON has been specified","unsupported_lang":"A language without support has been established","generate_image":"An error occurred while generating the image","id_exists":"ID already exists"}}'),es:JSON.parse('{"location":{"title":"Obtener ubicación actual"},"layerswitcher":{"title":"Selector de capas","unsupported_param":"Parámetro no soportado","no_base_layer":"Sin capa base"},"scale":{"title":"Escala","scale":"Escala"},"getfeatureinfo":{"info":"Información","title":"Consultar capa","no_info":"No existe información asociada","info_of":"Información de","unsupported_format":"Formato no soportado"},"wmcselector":{"title":"Selector de contextos"},"dialog":{"info":"INFORMACIÓN","error":"ERROR","success":"ÉXITO","id_feature":"No se ha indicado un ID para obtener el feature","invalid_type_layer":"No se ha especificado un tipo válido para la capa","vector_filter":"El filtro indicado no es correcto","unauthorized_user":"Ha ocurrido un error al cargar la capa: Usuario no autorizado.","only_one_filter":"FeatureID y CQL son mutuamente excluyentes. Indicar sólo un tipo de filtrado.","getfeatureinfo_type":"El formato solicitado para la información no está disponible. Inténtelo utilizando gml, plain o html."},"feature":{"incorrect_attributes":"No se han especificado correctamente los atributos."},"exception":{"addto_method":"La implementación usada no posee el método addTo","no_get_rotation_method":"La implementación usada no posee el método getRotation","no_set_rotation_method":"La implementación usada no posee el método setRotation","getelement_method":"La implementación usada no posee el método getElement","getfeatureinfo_method":"La implementación usada no puede crear controles GetFeatureInfo","mouse_method":"La implementación usada no puede crear controles Mouse","navtoolbar_method":"La implementación usada no puede crear controles Navtoolbar","overviewmap_method":"La implementación usada no puede crear controles OverviewMap","panzoom_method":"La implementación usada no puede crear controles Panzoom","panzoombar_method":"La implementación usada no puede crear controles Panzoombar","scale_method":"La implementación usada no puede crear controles Scale","scaleline_method":"La implementación usada no puede crear controles ScaleLine","wmcselector_method":"La implementación usada no puede crear controles WMCSelector","geojson_method":"La implementación usada no puede crear objetos M.impl.format.GeoJSON","wkt_method":"La implementación usada no puede creat objetos M.impl.format.WKT","getfeaturesbylayer_method":"La implementación usada no posee el método getFeaturesByLayer","geojsonlayer_method":"La implementación usada no puede crear capas GeoJSON","no_param":"No se ha especificado ningun parámetro","no_name":"No ha especificado ningún nombre","kmllayer_method":"La implementación usada no puede crear capas KML","isvisible_method":"La implementación usada no posee el método isVisible","isqueryable_methd":"La implementación usada no posee el método isQueryable","visibility_param":"No ha especificado ningún parámetro de visibilidad","setvisible_method":"La implementación usada no posee el método setVisible","inrange_method":"La implementación usada no posee el método inRange","mapbox_method":"La implementación usada no puede crear capas Mapbox","osm_method":"La implementación usada no puede crear capas OSM","vectorlayer_method":"La implementación usada no puede crear capas Vector","wfslayer_method":"La implementación usada no puede crear capas WFS","wmclayer_method":"La implementación usada no puede crear capas WMC","select_method":"La implementación usada no posee el método select","unselect_method":"La implementación usada no posee el método unselect","constructor_impl":"La implementación usada no posee un constructor.","getlayers_method":"La implementación usada no posee el método getLayers.","getbaselayers_method":"La implementación usada no posee el método getBaseLayers.","addlayers_method":"La implementación usada no posee el método addLayers.","removelayers_method":"La implementación usada no posee el método removeLayers.","getwmc_method":"La implementación usada no posee el método getWMC.","addwmc_method":"La implementación usada no posee el método addWMC.","removewmc_method":"La implementación usada no posee el método removeWMC.","getkml_method":"La implementación usada no posee el método getKML.","addkml_method":"La implementación usada no posee el método addKML.","removekml_method":"La implementación usada no posee el método removeKML.","getwms_method":"La implementación usada no posee el método getWMS.","addwms_method":"La implementación usada no posee el método addWMS.","removewms_method":"La implementación usada no posee el método removeWMS.","getwfs_method":"La implementación usada no posee el método getWFS.","getgeojson_method":"La implementación usada no posee el método getGeoJSON.","addwfs_method":"La implementación usada no posee el método addWFS.","removewfs_method":"La implementación usada no posee el método removeWFS.","getwmts_method":"La implementación usada no posee el método getWMTS.","addwmts_method":"La implementación usada no posee el método addWMTS.","removewmts_method":"La implementación usada no posee el método removeWMTS.","getmbtiles_method":"La implementación usada no posee el método getMBtiles.","getcontrols_method":"La implementación usada no posee el método getControls.","addcontrols_method":"La implementación usada no posee el método addControls.","remove_control":"No ha especificado ningún control a eliminar.","removecontrol_method":"La implementación usada no posee el método removeControls.","setmaxextent_method":"La implementación usada no posee el método setMaxExtent.","getbbox_method":"La implementación usada no posee el método getBbox.","no_bbox":"No ha especificado ningún bbox.","setbbox_method":"La implementación usada no posee el método setBbox.","incorrect_bbox_format":"El formato del parámetro bbox no es el correcto.","getzoom_method":"La implementación usada no posee el método getZoom.","no_zoom":"No ha especificado ningún zoom.","setzoom_method":"La implementación usada no posee el método setZoom.","getcenter_method":"La implementación usada no posee el método getCenter.","setcenter_method":"La implementación usada no posee el método setCenter.","getresolutions_method":"La implementación usada no posee el método getResolutions.","no_resolutions":"No ha especificado ninguna resolución.","setresolutions_method":"La implementación usada no posee el método setResolutions.","getscale_method":"La implementación usada no posee el método getScale.","getprojection_method":"La implementación usada no posee el método getProjection.","no_projection":"No ha especificado ninguna proyección.","setprojection_method":"La implementación usada no posee el método setProjection.","no_plugins":"No ha especificado ningún plugin.","no_add_plugin_to_map":"El plugin no puede añadirse al mapa.","no_plugin_to_remove":"No ha especificado ningún plugin a eliminar.","destroy_method":"La implementación usada no posee el método destroy.","addlabel_method":"La implementación usada no posee el método addLabel.","no_point":"No ha especificado ningún punto.","remove_control_from_panel":"Debe eliminar los controles del panel previamente.","getcontainer_method":"La implementación usada no posee el método getContainer.","getmapimpl_method":"La implementación usada no posee el método getMapImpl.","removepopup_method":"La implementación usada no posee el método removePopup.","no_popup":"No ha especificado ningún popup.","invalid_popup":"El popup especificado no es válido.","no_maxextent":"No ha especificado ningún maxExtent","must_be_document":"doc.nodeType debe ser de tipo DOCUMENT","no_service_response":"No hubo respuesta del servicio","no_kml_response":"No hubo respuesta del KML","no_getfeature_response":"No hubo respuesta en la operación GetFeature","no_map":"No ha especificado ningun mapa","layerswitcher_method":"La implementación usada no puede crear controles LayerSwitcher","location_method":"La implementación usada no puede crear controles Location","wms_method":"La implementación usada no puede crear capas WMS","wmts_method":"La implementación usada no puede crear capas WMTS","no_impl":"No se ha especificado ninguna implementación","no_container":"No ha especificado ningún parámetro contenedor","no_id_container":"No existe ningún contenedor con el id especificado","no_center":"No ha especificado ningún parámetro center","no_attr_name":"No se ha especificado el nombre del atributo","no_empty":"El nombre de atributo no puede ser nulo. Especifique cadena o función","invalid_center_param":"El formato del parámetro center no es correcto","invalid_maxextent_param":"El formato del parámetro maxExtent no es correcto","invalid_resolutions_param":"El formato del parámetro resolutions no es correcto","invalid_zoom_param":"El formato del parámetro zoom no es correcto","min_gt_max":"No puede establecerse un radio mínimo mayor que el máximo.","max_lt_min":"No puede establecerse un radio máximo menor que el mínimo.","no_geojson":"No se ha especificado ningun GeoJSON","unsupported_lang":"Se ha establecido un idioma sin soporte","generate_image":"Se ha producido un error al generar la imagen","id_exists":"El ID indicado ya existe"}}')},lang:"es"},Eu=t=>Iu.translations[t],Cu=(t,e=Iu.lang)=>Eu(e)[t];const vu=class extends Qc{constructor(t,e){const i=t;super(i),QL(i.addTo)&&Oc(Cu("exception").addto_method),QL(i.getElement)&&Oc(Cu("exception").getelement_method),QL(i.isByDefault)&&(i.isByDefault=!0),this.name=e,this.map_=null,this.element_=null,this.activationBtn_=null,this.activated=!1,this.panel_=null,this.controls_=null}setImpl(t){const e=t;QL(e.addTo)&&Oc(Cu("exception").addto_method),QL(e.getElement)&&Oc(Cu("exception").getelement_method),QL(e.isByDefault)&&(e.isByDefault=!0)}addTo(t){this.map_=t;const e=this.getImpl(),i=this.createView(t);i instanceof Promise?i.then((i=>{this.manageActivation(i),e.addTo(t,i),this.fire(kc)})):(this.manageActivation(i),e.addTo(t,i),this.fire(kc))}createView(t){}manageActivation(t){this.element_=t,this.activationBtn_=this.getActivationButton(this.element_),qL(this.activationBtn_)||this.activationBtn_.addEventListener("click",(t=>{t.preventDefault(),this.activated?(this.deactivate(),this.activated=!1):(this.activate(),this.activated=!0)}),!1)}getActivationButton(t){}activate(){qL(this.element_)||this.element_.classList.add("activated"),QL(this.getImpl().activate)||this.getImpl().activate(),this.activated=!0,this.fire(Kc)}deactivate(){qL(this.element_)||this.element_.classList.remove("activated"),QL(this.getImpl().deactivate)||this.getImpl().deactivate(),this.activated=!1,this.fire(Jc)}getElement(){return this.getImpl().getElement()}setPanel(t){this.panel_=t}getPanel(){return this.panel_}destroy(){SB(this.getElement())}};var xu=i(177),wu=i.n(xu);wu().registerHelper("gt",(function(t,e,i){return t>e?i.fn(this):i.inverse(this)})),wu().registerHelper("lt",(function(t,e,i){return t{let i,n,r={};QL(e)||(r=_B(r,e.vars),n=e.parseToHtml);const s=wu().compile(t)(r);return i=!1!==n?rB(s):s,i},Lu=(t,e)=>{let i;return QL(e)||(i=e.scope),new Promise(((n,r)=>{let s=Su[t];if(QL(s)){let r=t;QL(e)||!0!==e.jsonp||(r=(t=>{let e=null;return qL(t)||(e=M.config.MAPEA_URL.concat(M.config.TEMPLATES_PATH),e=e.concat(t)),e})(t));const o=qL(e)&&!0===e.jsonp;DL(r,null,{jsonp:o}).then((e=>{s=wu().compile(e.text),Su[t]=s,n.call(i,s)}))}else n.call(i,s)}))};class Bu extends vu{constructor(t={}){super(new Dc(t),Bu.NAME),QL(Dc)&&Oc(Cu("exception").panzoombar_method)}createView(t){return bu(Rc())}equals(t){return t instanceof Bu}}Bu.NAME="panzoombar";const Mu=Bu,Tu="WMC",Ru="KML",Nu="WMS",Pu="WFS",Fu="WMTS",Du="OSM",Ou="Mapbox",Qu="GeoJSON",ku="Vector",Gu="MVT",Uu={WMC:Tu,KML:Ru,WMS:Nu,WFS:Pu,WMTS:Fu,OSM:Du,Mapbox:Ou,GeoJSON:Qu,Vector:ku,MVT:Gu},qu=t=>{let e=XL(t,!0);return e="WMS_FULL"===e?Nu:"WFST"===e?Pu:Object.keys(Uu).find((t=>{const i=Uu[t];return YL(i)&&XL(i,!0)===e})),Uu[e]},Vu=t=>-1!==[Tu,Ru,Nu,Pu,Fu,Gu].indexOf(qu(t)),zu=/WMS\*.*/,Yu=/WMS_FULL\*.*/,ju=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t))),array_string:t=>t.split(n).map((t=>t.trim())).map((t=>String(t)))};if(YL(t)&&s.test(t)){const e=t.split("*")[o];qL(e)||(a=l[i](e))}else zL(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YL(a)&&(a=a.trim()),!0===r&&(a=XL(a)),a},Hu=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e=Nu,i=ju({parameter:t,type:"string",attr:"name"}),n=ju({parameter:t,type:"string",attr:"url"}),r=ju({parameter:t,type:"string",attr:"legend"}),s=ju({parameter:t,type:"boolean",attr:"transparent"}),o=ju({parameter:t,type:"boolean",attr:"tiled"}),a=ju({parameter:t,type:"array_number",attr:"maxExtent",separator:"_"}),l=ju({parameter:t,type:"string",attr:"version"}),h=ju({parameter:t,type:"array_string",attr:"styles",separator:"%"});let c;return c=zu.test(t)||zL(t)?{type:e,name:i(zu,3),tiled:o(zu,5),url:n(zu,2),legend:r(zu,1),transparent:s(zu,4),maxExtent:a(zu,6),version:l(zu,7),styles:h(zu,8)}:{type:e,url:n(Yu,1)},c})),UL(t)||(e=e[0]),e},Xu=/KML\*.*/,Wu=({parameter:t,attr:e,type:i,valueCmp:n=/^1|true/i,separator:r,normalized:s=!1})=>(o,a)=>{let l;const h={boolean:t=>n.test(t),boolean_eql:t=>void 0===t||"true"===t,string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(r||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YL(t)&&o.test(t)){const n=t.split("*");let r=n[a];l=h[i](r),"extract"===e&&(r=n.slice(-2,-1)[0],l="false"!==r),"label"===e&&(r=n.slice(-1)[0],l="false"!==r),"url"!==e||"true"!==l&&"false"!==l&&void 0!==l||(l="")}else zL(t)?l=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YL(l)&&(l=l.trim()),!0===s&&(l=XL(l)),l},Ku=t=>{const e=t;let i=[];qL(e)&&Oc(Cu("exception").no_param);let n=e;return UL(n)||(n=[n]),i=n.map((t=>{let e={};const i=Wu({parameter:t,type:"string",attr:"name"}),n=Wu({parameter:t,type:"string",attr:"url"}),r=Wu({parameter:t,type:"boolean",attr:"extract"}),s=Wu({parameter:t,type:"string",attr:"template"}),o=Wu({parameter:t,type:"boolean_eql",attr:"label"});return e=Xu.test(t)?{type:Ru,name:i(Xu,1),url:n(Xu,2)+n(Xu,3),extract:r(Xu,4),label:o(Xu,5),template:s(Xu,6)}:{type:Ru,name:i(Xu),url:n(Xu),extract:r(Xu),label:o(Xu),template:s(Xu)},e})),UL(e)||(i=i[0]),i},Ju=/MAPBOX\*.*/,Zu=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YL(t)&&s.test(t)){const e=t.split("*")[o];qL(e)||(a=l[i](e))}else zL(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YL(a)&&(a=a.trim()),!0===r&&(a=XL(a)),a},$u=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e=Zu({parameter:t,type:"string",attr:"name"})(Ju,1),i=Zu({parameter:t,type:"string",attr:"legend"})(Ju,3),n=Zu({parameter:t,type:"boolean",attr:"transparent"})(Ju,2),r=(t=>{let e;return YL(t)?e=null:zL(t)&&!qL(t.accessToken)?e=t.accessToken.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),e})(t);return{type:Ou,name:e,legend:i,transparent:n,accessToken:r}})),UL(t)||(e=e[0]),e},tg=/OSM\.*/,eg=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YL(t)&&s.test(t)){const e=t.split("*")[o];qL(e)||(a=l[i](e))}else zL(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YL(a)&&(a=a.trim()),!0===r&&(a=XL(a)),a},ig=t=>{let e=t,i=[];qL(e)&&(e={type:Du,name:"osm"});let n=e;return UL(n)||(n=[n]),i=n.map((t=>({type:Du,name:eg({parameter:t,type:"string",attr:"name"})(tg,3),transparent:eg({parameter:t,type:"boolean",attr:"transparent"})(tg,1),legend:eg({parameter:t,type:"string",attr:"legend"})(tg,2)}))),UL(e)||(i=i[0]),i},ng=/^GeoJSON(T)?\*.*/,rg=({parameter:t,attr:e,type:i,separator:n,normalized:r=!1})=>(s,o)=>{let a;const l={boolean:t=>/^1|(true)$/i.test(t),string:t=>t,int:t=>Number.parseInt(t,10),float:t=>Number.parseFloat(t,10),array_number:t=>t.split(n||"").map((t=>t.trim())).map((t=>Number.parseFloat(t)))};if(YL(t)&&s.test(t)){const e=t.split("*")[o];qL(e)||(a=l[i](e))}else zL(t)?a=t[e]:Oc("El parámetro no es de un tipo soportado: "+typeof t);return YL(a)&&(a=a.trim()),!0===r&&(a=XL(a)),a},sg=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e=Qu,i=rg({parameter:t,type:"string",attr:"name"})(ng,1),n=rg({parameter:t,type:"string",attr:"name"})(ng,2),r=rg({parameter:t,type:"boolean",attr:"extract"})(ng,3),s=rg({parameter:t,type:"boolean",attr:"template"})(ng,3);return{type:e,name:i,url:n,extract:r,style:rg({parameter:t,type:"string",attr:"style"})(ng,4),template:s}})),UL(t)||(e=e[0]),e},og=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Tu,e.name=((t,e)=>{let i,n;return YL(t)?/^\w{3,7}\*[^*]+\*[^*]+$/.test(t)?(n=t.split(/\*/),i=n[2].trim()):/^\w{3,7}\*[^*]$/.test(t)||/^[^*]+\*[^*]+$/.test(t)?(n=t.split(/\*/),i=n[1].trim()):/^[^*]+$/.test(t)&&!jL(t)&&(i=t):zL(t)?i=XL(t.name):Oc("El parámetro no es de un tipo soportado: "+typeof t),jL(i)&&(i=null),i})(t),e.url=(t=>{let e;if(YL(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zL(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.options=(t=>{let e;return YL(t)||(zL(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e})),UL(t)||(e=e[0]),e},ag=t=>{let e=t;const i={};if(qL(e)&&Oc(Cu("exception").no_center),YL(e))if(e=XL(e),/^-?\d+(\.\d+)?[,;]-?\d+(\.\d+)?([*](true|false))?$/i.test(e)){const t=e.split(/\*/),n=t[0],r=t[1],s=n.split(/[,;]+/);2===s.length?(i.x=Number.parseFloat(s[0]),i.y=Number.parseFloat(s[1])):Oc(Cu("exception").invalid_center_param),i.draw=/^1|(true)$/i.test(r)}else Oc(Cu("exception").invalid_center_param);else UL(e)?2===e.length||3===e.length?(YL(e[0])&&(e[0]=Number.parseFloat(e[0])),YL(e[1])&&(e[1]=Number.parseFloat(e[1])),i.x=e[0],i.y=e[1]):Oc(Cu("exception").invalid_center_param):zL(e)?(GL(e.x)?Oc(Cu("exception").invalid_center_param):(YL(e.x)&&(e.x=Number.parseFloat(e.x)),i.x=e.x),GL(e.y)?Oc(Cu("exception").invalid_center_param):(YL(e.y)&&(e.y=Number.parseFloat(e.y)),i.y=e.y),GL(e.draw)?i.draw=!1:i.draw=/^true$/.test(e.draw)):Oc("El parámetro no es de un tipo soportado: "+typeof maxExtentParameter);return(Number.isNaN(i.x)||Number.isNaN(i.y))&&Oc(Cu("exception").invalid_center_param),i},lg=t=>{const e=t;let i;if(!qL(e)){if(i={x:{},y:{}},qL(e)&&Oc(Cu("exception").no_maxextent),YL(e))if(/^\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?\s*[,;]\s*-?\d+(\.\d+)?$/.test(e)){const t=e.split(/[,;]+/);4===t.length?(i.x.min=Number.parseFloat(t[0]),i.y.min=Number.parseFloat(t[1]),i.x.max=Number.parseFloat(t[2]),i.y.max=Number.parseFloat(t[3])):Oc(Cu("exception").invalid_maxextent_param)}else Oc(Cu("exception").invalid_maxextent_param);else UL(e)?4===e.length?(YL(e[0])&&(e[0]=Number.parseFloat(e[0])),YL(e[1])&&(e[1]=Number.parseFloat(e[1])),YL(e[2])&&(e[2]=Number.parseFloat(e[2])),YL(e[3])&&(e[3]=Number.parseFloat(e[3])),i.x.min=e[0],i.y.min=e[1],i.x.max=e[2],i.y.max=e[3]):Oc(Cu("exception").invalid_maxextent_param):zL(e)?(GL(e.left)?GL(e.x.min)?Oc(Cu("exception").invalid_maxextent_param):(YL(e.x.min)&&(e.x.min=Number.parseFloat(e.x.min)),i.x.min=e.x.min):(YL(e.left)&&(e.left=Number.parseFloat(e.left)),i.x.min=e.left),GL(e.bottom)?GL(e.y.min)?Oc(Cu("exception").invalid_maxextent_param):(YL(e.y.min)&&(e.y.min=Number.parseFloat(e.y.min)),i.y.min=e.y.min):(YL(e.bottom)&&(e.bottom=Number.parseFloat(e.bottom)),i.y.min=e.bottom),GL(e.right)?GL(e.x.max)?Oc(Cu("exception").invalid_maxextent_param):(YL(e.x.max)&&(e.x.max=Number.parseFloat(e.x.max)),i.x.max=e.x.max):(YL(e.right)&&(e.right=Number.parseFloat(e.right)),i.x.max=e.right),GL(e.top)?GL(e.y.max)?Oc(Cu("exception").invalid_maxextent_param):(YL(e.y.max)&&(e.y.max=Number.parseFloat(e.y.max)),i.y.max=e.y.max):(YL(e.top)&&(e.top=Number.parseFloat(e.top)),i.y.max=e.top)):Oc("El parámetro no es de un tipo soportado: "+typeof e);(Number.isNaN(i.x.min)||Number.isNaN(i.y.min)||Number.isNaN(i.x.max)||Number.isNaN(i.y.max))&&Oc(Cu("exception").invalid_maxextent_param)}return i},hg=t=>{const e={code:null,units:null};if(qL(t)&&Oc(Cu("exception").no_projection),YL(t))if(/^(EPSG:)?\d+\*((d(egrees)?)|(m(eters)?))$/i.test(t)){const i=t.split(/\*/);e.code=i[0],e.units=XL(i[1].substring(0,1))}else Oc(`El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: ${M.config.DEFAULT_PROJ}`);else zL(t)?GL(t.code)||GL(t.units)?Oc(`El formato del parámetro projection no es correcto.
    Se usará la proyección por defecto: ${M.config.DEFAULT_PROJ}`):(e.code=t.code,e.units=XL(t.units.substring(0,1))):Oc("El parámetro no es de un tipo soportado: "+typeof t);return"m"!==e.units&&"d"!==e.units&&Oc(`La unidad "${t.units}" del parámetro projection no es válida. Las disponibles son: "m" o "d"`),e},cg=t=>{let e=t,i=[];qL(e)&&Oc(Cu("exception").no_resolutions),YL(e)&&(/^\d+(\.\d+)?([,;]\d+(\.\d+)?)*$/.test(e)?e=e.split(/[,;]+/):Oc(Cu("exception").invalid_resolutions_param)),UL(e)?i=e.map((t=>YL(t)?Number.parseFloat(t):t)):Oc("El parámetro no es de un tipo soportado: "+typeof e);let n=!0;for(let t=0,e=i.length;t{const e=t;let i;return qL(e)&&Oc(Cu("exception").no_zoom),YL(e)?i=Number.parseInt(e,10):"number"==typeof e?i=e:Oc("El parámetro no es de un tipo soportado: "+typeof e),Number.isNaN(i)&&Oc(Cu("exception").invalid_zoom_param),i},gg=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((e=>{const i={};return i.type=Pu,i.name=(t=>{let e,i,n;return YL(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)||/^[^*]*\*[^*]+:[^*]+/.test(t)?(i=t.split(/\*/),n=i[3].trim(),e=n.split(":")[1]):/^WFS(T)?\*[^*]*\*[^*]+[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),n=i[1].trim(),e=n.split(":")[1]):zL(t)&&!qL(t.name)?e=t.name.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.url=(t=>{let e;if(YL(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zL(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(e),i.namespace=(t=>{let e,i,n;return YL(t)?/^WFS(T)?\*.+/i.test(t)?/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+/i.test(t)&&(i=t.split(/\*/),n=i[3].trim(),e=n.split(":")[0]):/^[^*]*\*[^*]+:[^*]+/.test(t)&&(i=t.split(/\*/),n=i[1].trim(),e=n.split(":")[0]):zL(t)&&!qL(t.namespace)?e=t.namespace.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.legend=(t=>{let e,i;return YL(t)?/^WFS(T)?\*[^*]/i.test(t)?(i=t.split(/\*/),e=i[1].trim()):/^[^*]+\*[^*]+:[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zL(t)&&!qL(t.legend)?e=t.legend.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.cql=(t=>{let e,i;return YL(t)?(/^[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[3].trim()),/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*/i.test(t)&&(i=t.split(/\*/),e=i[6].trim())):zL(t)&&!qL(t.cql)||!qL(t.ecql)?e=t.cql?t.cql.trim():t.ecql.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(/^(true|false)$/i.test(e)||/^\d\.\d\.\d$/.test(e))&&(e=void 0),e})(e),i.geometry=(t=>{let e,i;return YL(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+/i.test(t)||/^WFS(T)?\*[^*]*\*[^*][^*]+\*[^*]+/i.test(t))&&(i=t.split(/\*/),e=i[4].trim()):zL(t)&&!qL(t.geometry)?e=t.geometry.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(e),i.ids=(t=>{let e,i;return YL(t)?/^WFS(T)?\*.+/i.test(t)&&(/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*(.-?)+$/i.test(t)||/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+\*[^*]+\*(.-?)+$/i.test(t))&&(i=t.split(/\*/),e=i[5].trim().split("-")):zL(t)&&!qL(t.ids)?e=t.ids:zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),jL(e)&&(e=null),qL(e)||UL(e)||(e=[e]),e})(e),i.version=(t=>{let e;return YL(t)?/(\d\.\d\.\d)$/.test(t)&&(e=t.match(/\d\.\d\.\d$/)[0]):zL(t)?e=t.version:Oc("El parámetro no es de un tipo soportado: "+typeof t),e})(e),i.style=(t=>{let e,i;return YL(t)?/^WFS(T)?\*.+/i.test(t)&&/^WFS(T)?\*[^*]*\*[^*]+\*[^*]+:[^*]+\*[^*]+\*[^*]*\*[^*]*\*[^*]*/i.test(t)&&(e=t.split(/\*/),i=e[7].trim()):zL(t)&&!qL(t.style)?i=t.style:zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),i})(e),i.options=(t=>{let e;return YL(t)||(zL(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(e),i.outputFormat=t.outputFormat,i})),UL(t)||(e=e[0]),e},dg=t=>{let e=[];qL(t)&&Oc("No ha especificado ningún parámetro");let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Gu,e.name=(t=>{let e;if(YL(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)/i);i&&i.length>2&&(e=i[2])}}else zL(t)&&!qL(t.name)?e=t.name.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.url=(t=>{let e;if(YL(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+).*/i);i&&i.length>1&&(e=i[1])}}else zL(t)&&!qL(t.url)?e=t.url.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.mode=(t=>{let e;if(YL(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>3&&(e=i[3])}}else zL(t)&&!qL(t.mode)?e=t.mode.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.projection=(t=>{let e;if(YL(t)){if(/^MVT\*.+/i.test(t)){const i=t.match(/.*\*(https?:\/\/[^*]+)\*([^*]+)\*([^*]+)\*([^*]+)/i);i&&i.length>4&&(e=i[4])}}else zL(t)&&!qL(t.proj)?e=t.proj.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e})),UL(t)||(e=e[0]),e},pg=t=>{let e=[];qL(t)&&Oc(Cu("exception").no_param);let i=t;return UL(i)||(i=[i]),e=i.map((t=>{const e={};return e.type=Fu,e.name=(t=>{let e,i;return YL(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):/^[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[1].trim()):zL(t)&&!qL(t.name)?e=t.name.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.url=(t=>{let e;if(YL(t)){const i=t.match(/^([^*]*\*)*(https?:\/\/[^*]+)([^*]*\*?)*$/i);i&&i.length>2&&(e=i[2])}else zL(t)?e=t.url:Oc("El parámetro no es de un tipo soportado: "+typeof t);return e})(t),e.matrixSet=(t=>{let e,i;return YL(t)?/^WMTS\*[^*]+\*[^*]+(\*[^*]])*/i.test(t)?(i=t.split(/\*/),e=i[3]?i[3].trim():null):/^[^*]+\*[^*]+\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zL(t)&&!qL(t.matrixSet)?e=t.matrixSet.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.legend=(t=>{let e,i;return YL(t)?/^WMTS\*.+/i.test(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]+/i.test(t)&&(i=t.split(/\*/),e=i[4].trim()):/^[^*]+\*[^*]+\*[^*]*\*[^*]+/.test(t)&&(i=t.split(/\*/),e=i[3].trim()):zL(t)&&!qL(t.legend)?e=t.legend.trim():zL(t)||Oc("El parámetro no es de un tipo soportado: "+typeof t),(jL(e)||/^(true|false)$/i.test(e))&&(e=null),e})(t),e.options=(t=>{let e;return YL(t)||(zL(t)?e=t.options:Oc("El parámetro no es de un tipo soportado: "+typeof t)),e})(t),e.transparent=(t=>{let e,i;return YL(t)?/^WMTS\*[^*]+\*[^*]+\*[^*]*\*[^*]*\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[5].trim()):/^WMS_FULL\*[^*]+(\*(true|false))?/i.test(t)?(i=t.split(/\*/),e=!0):/^[^*]+\*[^*]+\*[^*]+\*(true|false)/i.test(t)?(i=t.split(/\*/),e=i[3].trim()):/^[^*]+\*[^*]+\*(true|false)/i.test(t)&&(i=t.split(/\*/),e=i[2].trim()):zL(t)?e=XL(t.transparent):Oc("El parámetro no es de un tipo soportado: "+typeof t),qL(e)||(e=/^1|(true)$/i.test(e)),e})(t),e})),UL(t)||(e=e[0]),e},Ag={kml:Ku,mapbox:$u,osm:ig,wfs:gg,wmc:og,wms:Hu,wmts:pg,geojson:sg,mvt:dg},fg=(t,e)=>{let i=[];qL(t)&&Oc(Cu("exception").no_param);let n=t;return UL(n)||(n=[n]),i=n.map((t=>{let i=null;if(zL(t)&&t instanceof _g)i=t;else{let n=((t,e)=>{let i;if(YL(t))if(/^\s*osm\s*$/i.test(t))i=Du;else if(/^\s*mapbox\*.+$/i.test(t))i=Ou;else{const n=t.match(/^(\w+)\*.+$/);n&&n.length>1&&(i=qu(n[1]),QL(i)&&Oc(`No se reconoce el tipo de capa ${n[1]}`)),QL(i)&&!qL(e)?i=e:QL(i)&&Oc(`No se reconoce el tipo de capa ${i}`)}else zL(t)?qL(t.type)||(i=qu(t.type),QL(i)&&Oc(`No se reconoce el tipo de capa ${i}`)):Oc("El parámetro no es de un tipo soportado: "+typeof t);return qL(i)||qL(e)||i===e||Oc("El tipo de la capa (".concat(i).concat(") no era el esperado (").concat(e).concat(")")),qL(i)&&!qL(e)&&(i=e),i})(t,e);n=XL(n),i=VL(Ag[n])?Ag[n](t):t}return i})),UL(t)||(i=i[0]),i};class mg extends Qc{constructor(t,e){super(e);const i=fg(t);this.type=i.type,this.url=i.url,this.name=i.name,this.transparent=i.transparent,this.maxExtent_=null,this.zindex_=null,this.minScale_=t.minScale,this.maxScale_=t.maxScale,this.map_=null,this.userMaxExtent=i.maxExtent,this.legend=i.legend,this.layerGroup_=null,this.id=JL(`${i.name}_`)}getLegend(){return this.getImpl().legend}setLegend(t){this.legend=t,this.getImpl().legend=t}getID(){return this.id}setId(t){if(!qL(this.map_)){const e=this.map_.getLayers().find((e=>{let i=null;return i="WMC"===e.constructor.name?e.layers.find((i=>e.id===t)):e.id===t,i}));QL(e)?(this.map_.getFeatureHandler().changeNamePrevs(this.id,t),this.id=t):Oc(Cu("exception").id_exists)}}get url(){return this.getImpl().url}set url(t){this.getImpl().url=t}get name(){return this.getImpl().name}set name(t){this.getImpl().name=t}get transparent(){return this.getImpl().transparent}set transparent(t){qL(t)?this.getImpl().transparent=!0:YL(t)?this.getImpl().transparent="true"===XL(t):this.getImpl().transparent=t}get displayInLayerSwitcher(){return this.getImpl().displayInLayerSwitcher}set displayInLayerSwitcher(t){qL(t)?this.getImpl().displayInLayerSwitcher=!0:YL(t)?this.getImpl().displayInLayerSwitcher="true"===XL(t):this.getImpl().displayInLayerSwitcher=t}getMaxExtent(){let t=this.userMaxExtent;return qL(t)&&(t=this.map_.userMaxExtent,qL(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise((t=>t(this.getMaxExtent())))}setMaxExtent(t){this.userMaxExtent=t,!UL(t)&&zL(t)&&(this.userMaxExtent=[t.x.min,t.y.min,t.x.max,t.y.max]),VL(this.getImpl().setMaxExtent)&&(qL(t)?this.resetMaxExtent():this.getImpl().setMaxExtent(t))}resetMaxExtent(){this.userMaxExtent=null,this.calculateMaxExtent().then((t=>{VL(this.getImpl().setMaxExtent)&&this.getImpl().setMaxExtent(t)}))}setMap(t){this.map_=t}getLayerGroup(){return this.layerGroup_}setLayerGroup(t){this.layerGroup_=t}isVisible(){return QL(this.getImpl().isVisible)&&Oc(Cu("exception").isvisible_method),this.getImpl().isVisible()}isQueryable(){return QL(this.getImpl().isQueryable)&&Oc(Cu("exception").isqueryable_method),this.getImpl().isQueryable()}setVisible(t){let e=t;qL(e)&&Oc(Cu("exception").visibility_param),YL(e)||kL(e)||Oc(Cu("exception").visibility_param),QL(this.getImpl().setVisible)&&Oc(Cu("exception").setvisible_method),e=/^1|(true)$/i.test(e),this.getImpl().setVisible(e),this.fire(du,[{visibility:e,layer:this},this])}inRange(){return QL(this.getImpl().inRange)&&Oc(Cu("exception").inrage_method),this.getImpl().inRange()}getLegendURL(){return this.getImpl().getLegendURL()}setLegendURL(t){let e=t;qL(e)&&(e=aB([M.config.THEME_URL,mg.LEGEND_DEFAULT])),this.getImpl().setLegendURL(e)}getZIndex(){return this.zindex_}setZIndex(t){this.zindex_=t,this.getImpl().setZIndex(t)}getMinScale(){return this.minScale_}setMinScale(t){this.minScale_=t,this.getImpl().setMinScale(t)}getMaxScale(){return this.maxScale_}setMaxScale(t){this.maxScale_=t,this.getImpl().setMaxScale(t)}getOpacity(){return this.getImpl().getOpacity()}setOpacity(t){this.getImpl().setOpacity(t)}refresh(){!QL(this.getImpl().refresh)&&VL(this.getImpl().refresh)&&this.getImpl().refresh()}generateName_(){this.name=JL("layer_","_".concat(this.type))}}mg.LEGEND_DEFAULT="/img/legend-default.png",mg.LEGEND_ERROR="/img/legend-error.png";const _g=mg,yg="preload",Ig="useInterimTilesOnError";const Eg=class extends Al{constructor(t){t=t||{};const e=Object.assign({},t);delete e.preload,delete e.useInterimTilesOnError,super(e),this.on,this.once,this.un,this.setPreload(void 0!==t.preload?t.preload:0),this.setUseInterimTilesOnError(void 0===t.useInterimTilesOnError||t.useInterimTilesOnError)}getPreload(){return this.get(yg)}setPreload(t){this.set(yg,t)}getUseInterimTilesOnError(){return this.get(Ig)}setUseInterimTilesOnError(t){this.set(Ig,t)}getData(t){return super.getData(t)}},Cg=0,vg=1,xg=2,wg=3,Sg=4;const bg=class extends Ys{constructor(t){super(),this.ready=!0,this.boundHandleImageChange_=this.handleImageChange_.bind(this),this.layer_=t,this.declutterExecutorGroup=null}getFeatures(t){return js()}getData(t){return null}prepareFrame(t){return js()}renderFrame(t,e){return js()}loadedTileCallback(t,e,i){t[e]||(t[e]={}),t[e][i.tileCoord.toString()]=i}createLoadedTileFinder(t,e,i){return(n,r)=>{const s=this.loadedTileCallback.bind(this,i,n);return t.forEachLoadedTile(e,n,r,s)}}forEachFeatureAtCoordinate(t,e,i,n,r){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(t){const e=t.target;e.getState()!==xg&&e.getState()!==wg||this.renderIfReadyAndVisible()}loadImage(t){let e=t.getState();return e!=xg&&e!=wg&&t.addEventListener(bs,this.boundHandleImageChange_),e==Cg&&(t.load(),e=t.getState()),e==xg}renderIfReadyAndVisible(){const t=this.getLayer();t&&t.getVisible()&&"ready"===t.getSourceState()&&t.changed()}disposeInternal(){delete this.layer_,super.disposeInternal()}},Lg=[];let Bg=null;const Mg=class extends bg{constructor(t){super(t),this.container=null,this.renderedResolution,this.tempTransform=[1,0,0,1,0,0],this.pixelTransform=[1,0,0,1,0,0],this.inversePixelTransform=[1,0,0,1,0,0],this.context=null,this.containerReused=!1,this.pixelContext_=null,this.frameState=null}getImageData(t,e,i){let n;Bg||(Bg=bl(1,1,void 0,{willReadFrequently:!0})),Bg.clearRect(0,0,1,1);try{Bg.drawImage(t,e,i,1,1,0,0,1,1),n=Bg.getImageData(0,0,1,1).data}catch(t){return Bg=null,null}return n}getBackground(t){let e=this.getLayer().getBackground();return"function"==typeof e&&(e=e(t.viewState.resolution)),e||void 0}useContainer(t,e,i){const n=this.getLayer().getClassName();let r,s;if(t&&t.className===n&&(!i||t&&t.style.backgroundColor&&ys(Mo(t.style.backgroundColor),Mo(i)))){const e=t.firstElementChild;e instanceof HTMLCanvasElement&&(s=e.getContext("2d"))}if(s&&s.canvas.style.transform===e?(this.container=t,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){r=document.createElement("div"),r.className=n;let t=r.style;t.position="absolute",t.width="100%",t.height="100%",s=bl();const e=s.canvas;r.appendChild(e),t=e.style,t.position="absolute",t.left="0",t.transformOrigin="top left",this.container=r,this.context=s}this.containerReused||!i||this.container.style.backgroundColor||(this.container.style.backgroundColor=i)}clipUnrotated(t,e,i){const n=st(i),r=ot(i),s=Z(i),o=J(i);_o(e.coordinateToPixelTransform,n),_o(e.coordinateToPixelTransform,r),_o(e.coordinateToPixelTransform,s),_o(e.coordinateToPixelTransform,o);const a=this.inversePixelTransform;_o(a,n),_o(a,r),_o(a,s),_o(a,o),t.save(),t.beginPath(),t.moveTo(Math.round(n[0]),Math.round(n[1])),t.lineTo(Math.round(r[0]),Math.round(r[1])),t.lineTo(Math.round(s[0]),Math.round(s[1])),t.lineTo(Math.round(o[0]),Math.round(o[1])),t.clip()}dispatchRenderEvent_(t,e,i){const n=this.getLayer();if(n.hasListener(t)){const r=new _l(t,this.inversePixelTransform,i,e);n.dispatchEvent(r)}}preRender(t,e){this.frameState=e,this.dispatchRenderEvent_(Ho,t,e)}postRender(t,e){this.dispatchRenderEvent_(Xo,t,e)}getRenderTransform(t,e,i,n,r,s,o){const a=r/2,l=s/2,h=n/e,c=-h,u=-t[0]+o,g=-t[1];return Eo(this.tempTransform,a,l,h,c,-i,u,g)}disposeInternal(){delete this.frameState,super.disposeInternal()}};const Tg=class extends Ss{constructor(t,e,i){super(),i=i||{},this.tileCoord=t,this.state=e,this.interimTile=null,this.key="",this.transition_=void 0===i.transition?250:i.transition,this.transitionStarts_={},this.interpolate=!!i.interpolate}changed(){this.dispatchEvent(bs)}release(){this.state===Sh&&this.setState(bh)}getKey(){return this.key+"/"+this.tileCoord}getInterimTile(){if(!this.interimTile)return this;let t=this.interimTile;do{if(t.getState()==wh)return this.transition_=0,t;t=t.interimTile}while(t);return this}refreshInterimChain(){if(!this.interimTile)return;let t=this.interimTile,e=this;do{if(t.getState()==wh){t.interimTile=null;break}t.getState()==xh?e=t:t.getState()==vh?e.interimTile=t.interimTile:e=t,t=e.interimTile}while(t)}getTileCoord(){return this.tileCoord}getState(){return this.state}setState(t){if(this.state!==Sh&&this.state>t)throw new Error("Tile load sequence violation");this.state=t,this.changed()}load(){js()}getAlpha(t,e){if(!this.transition_)return 1;let i=this.transitionStarts_[t];if(i){if(-1===i)return 1}else i=e,this.transitionStarts_[t]=i;const n=e-i+1e3/60;return n>=this.transition_?1:ca(n/this.transition_)}inTransition(t){return!!this.transition_&&-1!==this.transitionStarts_[t]}endTransition(t){this.transition_&&(this.transitionStarts_[t]=-1)}};function Rg(t,e){return new Promise(((i,n)=>{function r(){o(),i(t)}function s(){o(),n(new Error("Image load error"))}function o(){t.removeEventListener("load",r),t.removeEventListener("error",s)}t.addEventListener("load",r),t.addEventListener("error",s),e&&(t.src=e)}))}function Ng(t,e){return e&&(t.src=e),ho?new Promise(((e,i)=>t.decode().then((()=>e(t)),i))):Rg(t)}function Pg(t,e){return e&&(t.src=e),ho&&co?t.decode().then((()=>createImageBitmap(t))):Ng(t)}const Fg=class extends Ss{constructor(t,e,i,n){super(),this.extent=t,this.pixelRatio_=i,this.resolution=e,this.state="function"==typeof n?Cg:n,this.image_=null,this.loader="function"==typeof n?n:null}changed(){this.dispatchEvent(bs)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(this.state==Cg&&this.loader){this.state=vg,this.changed();const t=this.getResolution(),e=Array.isArray(t)?t[0]:t;vs((()=>this.loader(this.getExtent(),e,this.getPixelRatio()))).then((t=>{"image"in t&&(this.image_=t.image),"extent"in t&&(this.extent=t.extent),"resolution"in t&&(this.resolution=t.resolution),"pixelRatio"in t&&(this.pixelRatio_=t.pixelRatio),(t instanceof HTMLImageElement||t instanceof ImageBitmap||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement)&&(this.image_=t),this.state=xg})).catch((t=>{this.state=wg,console.error(t)})).finally((()=>this.changed()))}}setImage(t){this.image_=t}setResolution(t){this.resolution=t}};const Dg=class extends Tg{constructor(t,e,i,n,r,s){super(t,e,s),this.crossOrigin_=n,this.src_=i,this.key=i,this.image_=new Image,null!==n&&(this.image_.crossOrigin=n),this.unlisten_=null,this.tileLoadFunction_=r}getImage(){return this.image_}setImage(t){this.image_=t,this.state=wh,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=Sh,this.unlistenImage_(),this.image_=function(){const t=bl(1,1);return t.fillStyle="rgba(0,0,0,0)",t.fillRect(0,0,1,1),t.canvas}(),this.changed()}handleImageLoad_(){const t=this.image_;t.naturalWidth&&t.naturalHeight?this.state=wh:this.state=bh,this.unlistenImage_(),this.changed()}load(){this.state==Sh&&(this.state=vh,this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==vh&&(this.state=xh,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=function(t,e,i){const n=t;let r=!0,s=!1,o=!1;const a=[Us(n,Os,(function(){o=!0,s||e()}))];return n.src&&ho?(s=!0,n.decode().then((function(){r&&e()})).catch((function(t){r&&(o?e():i())}))):a.push(Us(n,Ls,i)),function(){r=!1,a.forEach(qs)}}(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}};const Og=class{constructor(t,e,i,n,r,s){this.sourceProj_=t,this.targetProj_=e;let o={};const a=he(this.targetProj_,this.sourceProj_);this.transformInv_=function(t){const e=t[0]+"/"+t[1];return o[e]||(o[e]=a(t)),o[e]},this.maxSourceExtent_=n,this.errorThresholdSquared_=r*r,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!n&&!!this.sourceProj_.getExtent()&&at(n)>=at(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?at(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?at(this.targetProj_.getExtent()):null;const l=st(i),h=ot(i),c=Z(i),u=J(i),g=this.transformInv_(l),d=this.transformInv_(h),p=this.transformInv_(c),A=this.transformInv_(u),f=10+(s?Math.max(0,Math.ceil(Math.log2(K(i)/(s*s*256*256)))):0);if(this.addQuad_(l,h,c,u,g,d,p,A,f),this.wrapsXInSource_){let t=1/0;this.triangles_.forEach((function(e,i,n){t=Math.min(t,e.source[0][0],e.source[1][0],e.source[2][0])})),this.triangles_.forEach((e=>{if(Math.max(e.source[0][0],e.source[1][0],e.source[2][0])-t>this.sourceWorldWidth_/2){const i=[[e.source[0][0],e.source[0][1]],[e.source[1][0],e.source[1][1]],[e.source[2][0],e.source[2][1]]];i[0][0]-t>this.sourceWorldWidth_/2&&(i[0][0]-=this.sourceWorldWidth_),i[1][0]-t>this.sourceWorldWidth_/2&&(i[1][0]-=this.sourceWorldWidth_),i[2][0]-t>this.sourceWorldWidth_/2&&(i[2][0]-=this.sourceWorldWidth_);const n=Math.min(i[0][0],i[1][0],i[2][0]);Math.max(i[0][0],i[1][0],i[2][0])-n.5&&c<1;let d=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){d=at(T([t,e,i,n]))/this.targetWorldWidth_>.25||d}!g&&this.sourceProj_.isGlobal()&&c&&(d=c>.25||d)}if(!d&&this.maxSourceExtent_&&isFinite(h[0])&&isFinite(h[1])&&isFinite(h[2])&&isFinite(h[3])&&!lt(h,this.maxSourceExtent_))return;let p=0;if(!(d||isFinite(r[0])&&isFinite(r[1])&&isFinite(s[0])&&isFinite(s[1])&&isFinite(o[0])&&isFinite(o[1])&&isFinite(a[0])&&isFinite(a[1])))if(l>0)d=!0;else if(p=(isFinite(r[0])&&isFinite(r[1])?0:8)+(isFinite(s[0])&&isFinite(s[1])?0:4)+(isFinite(o[0])&&isFinite(o[1])?0:2)+(isFinite(a[0])&&isFinite(a[1])?0:1),1!=p&&2!=p&&4!=p&&8!=p)return;if(l>0){if(!d){const e=[(t[0]+i[0])/2,(t[1]+i[1])/2],n=this.transformInv_(e);let s;if(g){s=(_t(r[0],u)+_t(o[0],u))/2-_t(n[0],u)}else s=(r[0]+o[0])/2-n[0];const a=(r[1]+o[1])/2-n[1];d=s*s+a*a>this.errorThresholdSquared_}if(d){if(Math.abs(t[0]-i[0])<=Math.abs(t[1]-i[1])){const h=[(e[0]+i[0])/2,(e[1]+i[1])/2],c=this.transformInv_(h),u=[(n[0]+t[0])/2,(n[1]+t[1])/2],g=this.transformInv_(u);this.addQuad_(t,e,h,u,r,s,c,g,l-1),this.addQuad_(u,h,i,n,g,c,o,a,l-1)}else{const h=[(t[0]+e[0])/2,(t[1]+e[1])/2],c=this.transformInv_(h),u=[(i[0]+n[0])/2,(i[1]+n[1])/2],g=this.transformInv_(u);this.addQuad_(t,h,u,n,r,c,g,a,l-1),this.addQuad_(h,e,i,u,c,s,o,g,l-1)}return}}if(g){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}11&p||this.addTriangle_(t,i,n,r,o,a),14&p||this.addTriangle_(t,i,e,r,o,s),p&&(13&p||this.addTriangle_(e,n,t,s,a,r),7&p||this.addTriangle_(e,n,i,s,a,o))}calculateSourceExtent(){const t=[1/0,1/0,-1/0,-1/0];return this.triangles_.forEach((function(e,i,n){const r=e.source;j(t,r[0]),j(t,r[1]),j(t,r[2])})),t}getTriangles(){return this.triangles_}};let Qg;const kg=[];function Gg(t,e,i,n,r){t.beginPath(),t.moveTo(0,0),t.lineTo(e,i),t.lineTo(n,r),t.closePath(),t.save(),t.clip(),t.fillRect(0,0,Math.max(e,n)+1,Math.max(i,r)),t.restore()}function Ug(t,e){return Math.abs(t[4*e]-210)>2||Math.abs(t[4*e+3]-191.25)>2}function qg(t,e,i,n){const r=ce(i,e,t);let s=ie(e,n,i);const o=e.getMetersPerUnit();void 0!==o&&(s*=o);const a=t.getMetersPerUnit();void 0!==a&&(s/=a);const l=t.getExtent();if(!l||F(l,r)){const e=ie(t,s,r)/s;isFinite(e)&&e>0&&(s/=e)}return s}function Vg(t,e,i,n){const r=$(i);let s=qg(t,e,r,n);return(!isFinite(s)||s<=0)&&W(i,(function(i){return s=qg(t,e,i,n),isFinite(s)&&s>0})),s}function zg(t,e,i,n,r,s,o,a,l,h,c,u){const g=bl(Math.round(i*t),Math.round(i*e),kg);if(u||(g.imageSmoothingEnabled=!1),0===l.length)return g.canvas;function d(t){return Math.round(t*i)/i}g.scale(i,i),g.globalCompositeOperation="lighter";const p=[1/0,1/0,-1/0,-1/0];l.forEach((function(t,e,i){Y(p,t.extent)}));const A=at(p),f=nt(p),m=bl(Math.round(i*A/n),Math.round(i*f/n),kg);u||(m.imageSmoothingEnabled=!1);const _=i/n;l.forEach((function(t,e,i){const n=t.extent[0]-p[0],r=-(t.extent[3]-p[3]),s=at(t.extent),o=nt(t.extent);t.image.width>0&&t.image.height>0&&m.drawImage(t.image,h,h,t.image.width-2*h,t.image.height-2*h,n*_,r*_,s*_,o*_)}));const y=st(o);return a.getTriangles().forEach((function(t,e,r){const o=t.source,a=t.target;let l=o[0][0],h=o[0][1],c=o[1][0],A=o[1][1],f=o[2][0],_=o[2][1];const I=d((a[0][0]-y[0])/s),E=d(-(a[0][1]-y[1])/s),C=d((a[1][0]-y[0])/s),v=d(-(a[1][1]-y[1])/s),x=d((a[2][0]-y[0])/s),w=d(-(a[2][1]-y[1])/s),S=l,b=h;l=0,h=0,c-=S,A-=b,f-=S,_-=b;const L=function(t){const e=t.length;for(let i=0;ir&&(r=e,n=s)}if(0===r)return null;const s=t[n];t[n]=t[i],t[i]=s;for(let n=i+1;n=0;n--){i[n]=t[n][e]/t[n][n];for(let r=n-1;r>=0;r--)t[r][e]-=t[r][n]*i[n]}return i}([[c,A,0,0,C-I],[f,_,0,0,x-I],[0,0,c,A,v-E],[0,0,f,_,w-E]]);if(L){if(g.save(),g.beginPath(),function(){if(void 0===Qg){const t=bl(6,6,kg);t.globalCompositeOperation="lighter",t.fillStyle="rgba(210, 0, 0, 0.75)",Gg(t,4,5,4,0),Gg(t,4,5,0,5);const e=t.getImageData(0,0,3,3).data;Qg=Ug(e,0)||Ug(e,4)||Ug(e,8),Ll(t),kg.push(t.canvas)}return Qg}()||!u){g.moveTo(C,v);const t=4,e=I-C,i=E-v;for(let n=0;n{e&&e.getState()==wh&&t.push({extent:this.sourceTileGrid_.getTileCoordExtent(e.tileCoord),image:e.getImage()})})),this.sourceTiles_.length=0,0===t.length)this.state=Sh;else{const e=this.wrappedTileCoord_[0],i=this.targetTileGrid_.getTileSize(e),n="number"==typeof i?i:i[0],r="number"==typeof i?i:i[1],s=this.targetTileGrid_.getResolution(e),o=this.sourceTileGrid_.getResolution(this.sourceZ_),a=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=zg(n,r,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),s,a,this.triangulation_,t,this.gutter_,this.renderEdges_,this.interpolate),this.state=wh}this.changed()}load(){if(this.state==vh){this.state=xh,this.changed();let t=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach((e=>{const i=e.getState();if(i==vh||i==xh){t++;const i=Gs(e,bs,(function(n){const r=e.getState();r!=wh&&r!=Sh&&r!=bh||(qs(i),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(i)}})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t,e,i){t.getState()==vh&&t.load()}))}}unlistenSources_(){this.sourcesListenerKeys_.forEach(qs),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Ll(this.canvas_.getContext("2d")),kg.push(this.canvas_),this.canvas_=null),super.release()}};class jg{constructor(t,e,i,n){this.minX=t,this.maxX=e,this.minY=i,this.maxY=n}contains(t){return this.containsXY(t[1],t[2])}containsTileRange(t){return this.minX<=t.minX&&t.maxX<=this.maxX&&this.minY<=t.minY&&t.maxY<=this.maxY}containsXY(t,e){return this.minX<=t&&t<=this.maxX&&this.minY<=e&&e<=this.maxY}equals(t){return this.minX==t.minX&&this.minY==t.minY&&this.maxX==t.maxX&&this.maxY==t.maxY}extend(t){t.minXthis.maxX&&(this.maxX=t.maxX),t.minYthis.maxY&&(this.maxY=t.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(t){return this.minX<=t.maxX&&this.maxX>=t.minX&&this.minY<=t.maxY&&this.maxY>=t.minY}}function Hg(t,e,i,n,r){return void 0!==r?(r.minX=t,r.maxX=e,r.minY=i,r.maxY=n,r):new jg(t,e,i,n)}const Xg=jg;const Wg=class extends Mg{constructor(t){super(t),this.extentChanged=!0,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision,this.renderedTiles=[],this.newTiles_=!1,this.tmpExtent=[1/0,1/0,-1/0,-1/0],this.tmpTileRange_=new Xg(0,0,0,0)}isDrawableTile(t){const e=this.getLayer(),i=t.getState(),n=e.getUseInterimTilesOnError();return i==wh||i==bh||i==Sh&&!n}getTile(t,e,i,n){const r=n.pixelRatio,s=n.viewState.projection,o=this.getLayer();let a=o.getSource().getTile(t,e,i,r,s);return a.getState()==Sh&&o.getUseInterimTilesOnError()&&o.getPreload()>0&&(this.newTiles_=!0),this.isDrawableTile(a)||(a=a.getInterimTile()),a}getData(t){const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=_o(e.pixelToCoordinateTransform,t.slice()),r=i.getExtent();if(r&&!F(r,n))return null;const s=e.pixelRatio,o=e.viewState.projection,a=e.viewState,l=i.getRenderSource(),h=l.getTileGridForProjection(a.projection),c=l.getTilePixelRatio(e.pixelRatio);for(let t=h.getZForResolution(a.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=l.getTile(t,e[1],e[2],s,o);if(!(i instanceof Dg||i instanceof Yg)||i instanceof Yg&&i.getState()===bh)return null;if(i.getState()!==wh)continue;const r=h.getOrigin(t),u=xc(h.getTileSize(t)),g=h.getResolution(t),d=Math.floor(c*((n[0]-r[0])/g-e[1]*u[0])),p=Math.floor(c*((r[1]-n[1])/g-e[2]*u[1])),A=Math.round(c*l.getGutterForProjection(a.projection));return this.getImageData(i.getImage(),d+A,p+A)}return null}loadedTileCallback(t,e,i){return!!this.isDrawableTile(i)&&super.loadedTileCallback(t,e,i)}prepareFrame(t){return!!this.getLayer().getSource()}renderFrame(t,e){const i=t.layerStatesArray[t.layerIndex],n=t.viewState,r=n.projection,s=n.resolution,o=n.center,a=n.rotation,l=t.pixelRatio,h=this.getLayer(),c=h.getSource(),u=c.getRevision(),g=c.getTileGridForProjection(r),d=g.getZForResolution(s,c.zDirection),p=g.getResolution(d);let A=t.extent;const f=t.viewState.resolution,m=c.getTilePixelRatio(l),_=Math.round(at(A)/f*l),y=Math.round(nt(A)/f*l),I=i.extent&&_e(i.extent,r);I&&(A=rt(A,_e(i.extent,r)));const E=p*_/2/m,C=p*y/2/m,v=[o[0]-E,o[1]-C,o[0]+E,o[1]+C],x=g.getTileRangeForExtentAndZ(A,d),w={};w[d]={};const S=this.createLoadedTileFinder(c,r,w),b=this.tmpExtent,L=this.tmpTileRange_;this.newTiles_=!1;const B=a?it(n.center,f,a,t.size):void 0;for(let e=x.minX;e<=x.maxX;++e)for(let n=x.minY;n<=x.maxY;++n){if(a&&!g.tileCoordIntersectsViewport([d,e,n],B))continue;const r=this.getTile(d,e,n,t);if(this.isDrawableTile(r)){const e=Xs(this);if(r.getState()==wh){w[d][r.tileCoord.toString()]=r;let t=r.inTransition(e);t&&1!==i.opacity&&(r.endTransition(e),t=!1),this.newTiles_||!t&&this.renderedTiles.includes(r)||(this.newTiles_=!0)}if(1===r.getAlpha(e,t.time))continue}const s=g.getTileCoordChildTileRange(r.tileCoord,L,b);let o=!1;s&&(o=S(d+1,s)),o||g.forEachTileCoordParentTileRange(r.tileCoord,S,L,b)}const M=p/s*l/m;Eo(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/l,1/l,a,-_/2,-y/2);const T=xo(this.pixelTransform);this.useContainer(e,T,this.getBackground(t));const R=this.context,N=R.canvas;Co(this.inversePixelTransform,this.pixelTransform),Eo(this.tempTransform,_/2,y/2,M,M,0,-_/2,-y/2),N.width!=_||N.height!=y?(N.width=_,N.height=y):this.containerReused||R.clearRect(0,0,_,y),I&&this.clipUnrotated(R,t,I),c.getInterpolate()||(R.imageSmoothingEnabled=!1),this.preRender(R,t),this.renderedTiles.length=0;let P,F,D,O=Object.keys(w).map(Number);O.sort(ps),1!==i.opacity||this.containerReused&&!c.getOpaque(t.viewState.projection)?(P=[],F=[]):O=O.reverse();for(let e=O.length-1;e>=0;--e){const i=O[e],n=c.getTilePixelSize(i,l,r),s=g.getResolution(i)/p,o=n[0]*s*M,a=n[1]*s*M,h=g.getTileCoordForCoordAndZ(st(v),i),u=g.getTileCoordExtent(h),A=_o(this.tempTransform,[m*(u[0]-v[0])/p,m*(v[3]-u[3])/p]),f=m*c.getGutterForProjection(r),_=w[i];for(const e in _){const n=_[e],r=n.tileCoord,s=h[1]-r[1],l=Math.round(A[0]-(s-1)*o),u=h[2]-r[2],g=Math.round(A[1]-(u-1)*a),p=Math.round(A[0]-s*o),m=Math.round(A[1]-u*a),y=l-p,I=g-m,E=d===i,C=E&&1!==n.getAlpha(Xs(this),t.time);let v=!1;if(!C)if(P){D=[p,m,p+y,m,p+y,m+I,p,m+I];for(let t=0,e=P.length;t=o.width)return null;const h=nt(s),c=Math.floor(o.height*((s[3]-n[1])/h));return c<0||c>=o.height?null:this.getImageData(o,l,c)}renderFrame(t,e){const i=this.image_,n=i.getExtent(),r=i.getResolution(),[s,o]=Array.isArray(r)?r:[r,r],a=i.getPixelRatio(),l=t.layerStatesArray[t.layerIndex],h=t.pixelRatio,c=t.viewState,u=c.center,g=c.resolution,d=h*s/(g*a),p=h*o/(g*a),A=t.extent,f=c.resolution,m=c.rotation,_=Math.round(at(A)/f*h),y=Math.round(nt(A)/f*h);Eo(this.pixelTransform,t.size[0]/2,t.size[1]/2,1/h,1/h,m,-_/2,-y/2),Co(this.inversePixelTransform,this.pixelTransform);const I=xo(this.pixelTransform);this.useContainer(e,I,this.getBackground(t));const E=this.context,C=E.canvas;C.width!=_||C.height!=y?(C.width=_,C.height=y):this.containerReused||E.clearRect(0,0,_,y);let v=!1,x=!0;if(l.extent){const e=_e(l.extent,c.projection);x=lt(e,t.extent),v=x&&!D(e,t.extent),v&&this.clipUnrotated(E,t,e)}const w=i.getImage(),S=Eo(this.tempTransform,_/2,y/2,d,p,0,a*(n[0]-u[0])/s,a*(u[1]-n[3])/o);this.renderedResolution=o*h/a;const b=w.width*S[0],L=w.height*S[3];if(this.getLayer().getSource().getInterpolate()||(E.imageSmoothingEnabled=!1),this.preRender(E,t),x&&b>=.5&&L>=.5){const t=S[4],e=S[5],i=l.opacity;let n;1!==i&&(n=E.globalAlpha,E.globalAlpha=i),E.drawImage(w,0,0,+w.width,+w.height,t,e,b,L),1!==i&&(E.globalAlpha=n)}return this.postRender(E,t),v&&E.restore(),E.imageSmoothingEnabled=!0,I!==C.style.transform&&(C.style.transform=I),this.container}};const $g=class extends Jg{constructor(t){super(t)}createRenderer(){return new Zg(this)}getData(t){return super.getData(t)}};function td(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function ed(t,e,i){return t+"/"+e+"/"+i}function id(t){return ed(t[0],t[1],t[2])}function nd(t){return t.split("/").map(Number)}function rd(t){return(t[1]<0||i&&0===s)}))}(this.resolutions_,(function(t,e){return e-t}),!0),"`resolutions` must be sorted in descending order"),!t.origins)for(let t=0,i=this.resolutions_.length-1;t=this.minZoom;){if(2===this.zoomFactor_?(s=Math.floor(s/2),o=Math.floor(o/2),r=Hg(s,s,o,o,i)):r=this.getTileRangeForExtentAndZ(a,l,i),e(l,r))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||e>1),r=+i(t[n],e),r<0?s=n+1:(o=n,a=!r);return a?s:~s}(c,u);g<0?(l=(u-c[-g-2])/(c[-g-1]-c[-g-2]),a=e+(-g-2)*n):a=e+g*n}o=o>1?o:2,s=s||new Array(o);for(let e=0;e>1;r1?new Md(i,"XY",r):new sl(i,"XY",n);default:throw new Error("Invalid geometry type:"+e)}}Rd.prototype.getEndss=Rd.prototype.getEnds,Rd.prototype.getFlatCoordinates=Rd.prototype.getOrientedFlatCoordinates;const Pd=Rd;class Fd extends _a{constructor(t){super(),this.geometries_=t||null,this.changeEventsKeys_=[],this.listenGeometriesChange_()}unlistenGeometriesChange_(){this.changeEventsKeys_.forEach(qs),this.changeEventsKeys_.length=0}listenGeometriesChange_(){if(this.geometries_)for(let t=0,e=this.geometries_.length;t=e[0]||(t[1]<=e[1]&&t[3]>=e[1]||W(t,this.intersectsCoordinate.bind(this)))}return!1}setCenter(t){const e=this.stride,i=this.flatCoordinates[e]-this.flatCoordinates[0],n=t.slice();n[e]=n[0]+i;for(let i=1;i{const i=he(e,"EPSG:4326"),n=[];let r={};return t.forEach((e=>{const s=[];if(Array.isArray(e.geometry.coordinates[0])&&t.length>1)e.geometry.coordinates.forEach((t=>{if(!Number.isFinite(t[0])&&Array.isArray(t))s.push(t.map((t=>{const e=[];return Number.isFinite(t[0])?e.push(i(t)):t.forEach((t=>{e.push(i(t))})),e}))),r={...e,geometry:{type:e.geometry.type,coordinates:s}};else{const n=i(t);s.push(n),r={...e,geometry:{type:e.geometry.type,coordinates:s}}}})),n.push(r);else if(3===e.geometry.coordinates.length)e.geometry.coordinates.pop(),r={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates)}},n.push(r);else if(1===t.length)if(e.geometry.coordinates[0].length>2){const t=e.geometry.coordinates[0].map((t=>i(t)));r={...e,geometry:{type:e.geometry.type,coordinates:t}},n.push(r)}else r={...e,geometry:{type:e.geometry.type,coordinates:i(e.geometry.coordinates[0])}},n.push(r);else if(Number.isFinite(e.geometry.coordinates[0])){const t=i(e.geometry.coordinates);r={...e,geometry:{type:e.geometry.type,coordinates:t}},n.push(r)}})),n};class Ud{static generateResolutions(t,e,i,n){let r,s,o;const a=[];qL(e)&&(r=t.getExtent());const l=at(r)/256;qL(i)&&(s=0),qL(n)&&(o=28);const h=o-s;for(let t=0;tt instanceof DB?t.getImpl().getOLFeature():t));let n=i.map((t=>t.getGeometry().getExtent().slice(0)));if(1===n.length){const t=i[0].getGeometry();if("Point"===t.getType()){const i=((t,e)=>e/ee(t).getMetersPerUnit())(e,1e3),r=t.getCoordinates()[0],s=t.getCoordinates()[1];n=[[r-i,s-i,r+i,s+i]]}}return 0===n.length?null:n.reduce(((t,e)=>Y(t,e)))}static getCentroidCoordinate(t){let e,i,n,r,s,o;return t.getType()===pd?e=t.getCoordinates():t.getType()===ld||t.getType()===dd?(i=t.getCoordinates(),n=Math.floor(i.length/2),e=i[n]):t.getType()===hd?e=Ud.getCentroidCoordinate(t.getInteriorPoint()):t.getType()===cd?(r=t.getPoints(),n=Math.floor(r.length/2),e=Ud.getCentroidCoordinate(r[n])):t.getType()===ud?(s=t.getLineStrings(),n=Math.floor(s.length/2),e=Ud.getCentroidCoordinate(s[n])):t.getType()===gd?(r=t.getInteriorPoints(),e=Ud.getCentroidCoordinate(r)):t.getType()===fd?e=t.getCenter():t.getType()===Ad&&(o=t.getGeometries(),n=Math.floor(o.length/2),e=Ud.getCentroidCoordinate(o[n])),e}static transformExtent(t,e,i){let n;const r=YL(e)?ee(e):e,s=YL(i)?ee(i):i,o=r.getExtent(),a=t.every(((t,e)=>{let i=!1;return i=e<2?t<=o[e]:t>=o[e],i}));return n=a?s.getExtent():ue(t,r,s),n}static olRenderFeature2olFeature(t,e,i){let n;if(!qL(t)){const r=t.getId(),s=t.getProperties();let o;if(qL(e)&&qL(e))o=this.getGeometryFromRenderFeature(t.getGeometry());else{const n=e.getExtent(),r=e.getWorldExtent();if(!qL(n)&&!qL(r)){const n=this.cloneOLRenderFeature(t);n.transform(e,i),o=this.getGeometryFromRenderFeature(n.getGeometry())}}n=new _d,qL(r)?n.setId(JL("mapea_feature_")):n.setId(r),n.setProperties(s,!0),n.setGeometry(o)}return n}static cloneOLRenderFeature(t){const e=t.getType(),i=t.getFlatCoordinates(),n=t.getEnds(),r=t.getProperties(),s=t.getId(),o=[...i],a=Object.assign(r),l=[...n];return new Pd(e,o,l,a,s)}static getGeometryFromRenderFeature(t){let e;const i=t.getFlatCoordinates(),n=t.getEnds(),r=t.getEndss();switch(t.getType()){case"Point":e=new qa(i);break;case"LineString":e=new wd(i);break;case"LinearRing":e=new Ga(i);break;case"Polygon":e=new sl(i);break;case"MultiPoint":e=new Id(i);break;case"MultiLineString":e=new bd(i,void 0,n);break;case"MultiPolygon":e=new Md(i,void 0,r);break;case"GeometryCollection":const s=t.getGeometries();e=new Od(s);break;case"Circle":const o=t.getFlatInteriorPoint();e=new kd(o);break;default:e=null}return e}static getWMTSScale(t,e){const i=ee(t.getProjection().code).getMetersPerUnit(),n=t.getMapImpl().getSize(),r=n[0],s=t.getMapImpl().getView().calculateExtent(n);let o=i*(s[2]-s[0])/r*1e3/.28;return!0==!e&&(o=o>=1e3&&o<=95e4?1e3*Math.round(o/1e3):o>=95e4?1e6*Math.round(o/1e6):Math.round(o)),Math.trunc(o)}}const qd=Ud;const Vd=class extends Mc{constructor(t={},e={}){super(t),this.vendorOptions_=e,this.map=null,this.ol3Layer=null,this.options=t,this.visibility=!1!==this.options.visibility,this.displayInLayerSwitcher=!1!==this.options.displayInLayerSwitcher,this.zIndex_=null,this.minScale_=null,this.maxScale_=null,this.opacity_=this.options.opacity||1,this.legendUrl_=aB([M.config.THEME_URL,_g.LEGEND_DEFAULT])}isVisible(){let t=!1;return t=qL(this.ol3Layer)?this.visibility:this.ol3Layer.getVisible(),t}isQueryable(){return!1}inRange(){let t=!1;if(!qL(this.ol3Layer)){const e=this.map.getMapImpl().getView().getResolution(),i=this.ol3Layer.getMaxResolution();t=e>=this.ol3Layer.getMinResolution()&&e<=i}return t}setVisible(t){this.visibility=t,qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}getZIndex(){return qL(this.getOLLayer())||(this.zIndex_=this.getOLLayer().getZIndex()),this.zIndex_}setZIndex(t){this.zIndex_=t,qL(this.getOLLayer())||this.getOLLayer().setZIndex(t)}getMinScale(){const t=this.map.getProjection().units;return qL(this.getOLLayer())||qL(t)||(this.minScale_=nB(this.getOLLayer().getMinResolution(),t)),this.minScale_}setMinScale(t){this.minScale_=t;const e=this.map.getProjection().units,i=eB(t,e);qL(this.getOLLayer())||qL(i)||qL(e)||this.getOLLayer().setMinResolution(i)}getMaxScale(){const t=this.map.getProjection().units;return qL(this.getOLLayer())||qL(t)||(this.maxScale_=nB(this.getOLLayer().getMaxResolution(),t)),this.maxScale_}setMaxScale(t){this.maxScale_=t;const e=this.map.getProjection().units,i=eB(t,e);qL(this.getOLLayer())||qL(i)||qL(e)||this.getOLLayer().setMaxResolution(i)}getOpacity(){return qL(this.getOLLayer())||(this.opacity_=this.getOLLayer().getOpacity()),this.opacity_}setOpacity(t){this.opacity_=t,qL(this.getOLLayer())||this.getOLLayer().setOpacity(t)}getOL3Layer(){return this.ol3Layer}getOLLayer(){return this.ol3Layer}setOL3Layer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}setOLLayer(t){const e=this.map.getMapImpl();return e.removeLayer(this.ol3Layer),this.ol3Layer=t,e.addLayer(t),this}getMap(){return this.map}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}getNumZoomLevels(){return M.config.ZOOM_LEVELS}unselectFeatures(t,e,i){}selectFeatures(t,e,i){}};const zd=class{constructor(t,e,i){this.capabilities_=t,this.projection_=i,this.serviceUrl_=e}get capabilities(){return this.capabilities_}get projection(){return this.projection_}get serviceUrl(){return this.serviceUrl_}getLayerExtent(t,e){const i=this.capabilities_.Capability.Layer,n=this.getExtentRecursive_(i,t,e);return this.transformExtent(n)}getExtentRecursive_(t,e,i){let n,r=null;if(!qL(t))if(UL(t))for(n=0;nt.crs===e));if(qL(i)){const e=t.BoundingBox[0];this.capabilitiesProj=e.crs;const i=ee(e.crs),n=ee(this.projection_.code);r=qd.transformExtent(e.extent,i,n)}else this.capabilitiesProj=i.crs,r=i.extent}}else QL(t.Layer)||(r=this.getExtentRecursive_(t.Layer,e,i));return r}getLayers(){const t=this.capabilities_.Capability.Layer;return this.getLayersRecursive_(t)}getLayersRecursive_(t){let e=[];return qL(t.Layer)?UL(t)?t.forEach((t=>{e=e.concat(this.getLayersRecursive_(t))})):e.push(new rf({url:this.serviceUrl_,name:t.Name})):e=this.getLayersRecursive_(t.Layer),e}transformExtent(t){let e=t;if("1.3.0"===this.capabilities_.version&&YL(this.capabilitiesProj)){const i=ee(this.capabilitiesProj).getAxisOrientation();Array.isArray(e)&&"ne"===i.substr(0,2)&&(e=[t[1],t[0],t[3],t[2]])}return e}},Yd="http://www.w3.org/2001/XMLSchema-instance";function jd(t,e){return pp().createElementNS(t,e)}function Hd(t,e){return Xd(t,e,[]).join("")}function Xd(t,e,i){if(t.nodeType==Node.CDATA_SECTION_NODE||t.nodeType==Node.TEXT_NODE)e?i.push(String(t.nodeValue).replace(/(\r\n|\r|\n)/g,"")):i.push(t.nodeValue);else{let n;for(n=t.firstChild;n;n=n.nextSibling)Xd(n,e,i)}return i}function Wd(t){return"documentElement"in t}function Kd(t){return(new DOMParser).parseFromString(t,"application/xml")}function Jd(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){_s(n[n.length-1],r)}}}function Zd(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);if(void 0!==r){n[n.length-1].push(r)}}}function $d(t,e){return function(i,n){const r=t.call(void 0!==e?e:this,i,n);void 0!==r&&(n[n.length-1]=r)}}function tp(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){const t=r[r.length-1],i=void 0!==e?e:n.localName;let o;i in t?o=t[i]:(o=[],t[i]=o),o.push(s)}}}function ep(t,e,i){return function(n,r){const s=t.call(void 0!==i?i:this,n,r);if(void 0!==s){r[r.length-1][void 0!==e?e:n.localName]=s}}}function ip(t,e){return function(i,n,r){t.call(void 0!==e?e:this,i,n,r);r[r.length-1].node.appendChild(i)}}function np(t,e){let i,n;return function(e,r,s){if(void 0===i){i={};const r={};r[e.localName]=t,i[e.namespaceURI]=r,n=rp(e.localName)}cp(i,n,r,s)}}function rp(t,e){return function(i,n,r){const s=n[n.length-1].node;let o=t;void 0===o&&(o=r);return jd(void 0!==e?e:s.namespaceURI,o)}}const sp=rp();function op(t,e){const i=e.length,n=new Array(i);for(let r=0;r{null!==t&&tA.forEach((i=>{if(n=e,r=i,!(Array.prototype.filter.call(n.children,(t=>t.tagName===r)).length>0)){Array.prototype.filter.call(t.children,(t=>t.tagName===i)).forEach((t=>{const i=t.cloneNode(!0);e.appendChild(i)}))}var n,r}))},iA=(t,e=!0,i={},n=null)=>{let r=i,s=t;if(!0===e&&(s=t.querySelector("Layer")),null!==s){eA(n,s);const t=s.querySelector("Name").innerHTML,e=s.children;Array.prototype.forEach.call(e,(t=>{"Layer"===t.tagName&&(r=iA(t,!1,r,s))})),r[t]=s}return r},nA=(t,e)=>{const i=t,n=e[i.Name];if(qL(n))UL(i.Layer)&&i.Layer.forEach((t=>nA(t,e)));else{const t=n.querySelector("SRS");if(null!==t){const e=t.innerHTML;i.SRS=[e]}}},rA=(t,e)=>{const i=e[t.Name];if(qL(i))UL(t.Layer)&&t.Layer.forEach((t=>rA(t,e)));else if(UL(t.BoundingBox)){const e=Array.prototype.filter.call(i.children,(t=>"Layer"===t.tagName));let n=Array.prototype.map.call(i.children,(t=>t));n=n.filter((t=>["BoundingBox"].includes(t.tagName))),0===n.length&&e.length>0?e.forEach((e=>rA(t,{[t.Name]:e}))):t.BoundingBox.forEach(((t,e)=>{const i=t;if(null===i.crs){const t=n[e];if(!qL(t)){const e=t.getAttribute("SRS");qL(e)||(i.crs=e)}}}))}},sA=(t,e)=>{const i=t,n=e[t.Name];if(qL(n))UL(t.Layer)&&t.Layer.forEach((t=>sA(t,e)));else{i.ScaleHint=[];let t=Array.prototype.map.call(n.children,(t=>t));t=t.filter((t=>"ScaleHint"===t.tagName)),t.forEach((t=>{const e={minScale:parseFloat(t.getAttribute("min")),maxScale:parseFloat(t.getAttribute("max"))};i.ScaleHint.push(e)}))}},oA=(t,e)=>{const i=t,n=e[t.Name];if(qL(n))UL(i.Layer)&&i.Layer.forEach((t=>oA(t,e)));else{i.LatLonBoundingBox=[];let t=Array.prototype.map.call(n.children,(t=>t));t=t.filter((t=>"LatLonBoundingBox"===t.tagName)),t.forEach((t=>{const e={crs:"EPSG:4326",extent:[parseFloat(t.getAttribute("minx")),parseFloat(t.getAttribute("miny")),parseFloat(t.getAttribute("maxx")),parseFloat(t.getAttribute("maxy"))]};i.LatLonBoundingBox.push(e)}))}},aA=[nA,rA,sA,oA,(t,e)=>{const i=t,n="LatLonBoundingBox",r="BoundingBox";qL(i[r])&&!qL(i[n])&&(i[r]=i[n])},(t,e)=>{const i=t,n="MaxScaleDenominator";qL(i[n])&&!qL(i.ScaleHint)&&(i[n]=i.ScaleHint[0].maxScale)},(t,e)=>{const i=t,n="MinScaleDenominator";qL(i[n])&&!qL(i.ScaleHint)&&(i[n]=i.ScaleHint[0].minScale)}],lA=(t,e)=>{UL(t)?t.forEach((t=>{lA(t,e)})):zL(t)&&(((t,e)=>{aA.forEach((i=>{i(t,e)}))})(t,e),lA(t.Layer,e))};const hA=class extends $p{customRead(t){const e=this.read(t),i=iA(t),n=e.Capability;return qL(n)||qL(n.Layer)||lA(n.Layer,i),e}};const cA=class{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){for(;this.canExpireCache();)this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;for(;e;)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return go(void 0!==i,"Tried to get a value for a key that does not exist in the cache"),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return go(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){go(!(t in this.entries_),"Tried to set a value for a key that is used already");const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}};const uA=class extends cA{clear(){for(;this.getCount()>0;)this.pop().release();super.clear()}expireCache(t){for(;this.canExpireCache();){if(this.peekLast().getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=nd(this.peekFirstKey())[0];this.forEach((e=>{e.tileCoord[0]!==t&&(this.remove(id(e.tileCoord)),e.release())}))}},gA="tileloadstart",dA="tileloadend",pA="tileloaderror";function AA(t){return t?Array.isArray(t)?function(e){return t}:"function"==typeof t?t:function(e){return[t]}:null}const fA=class extends Ks{constructor(t){super(),this.projection=ee(t.projection),this.attributions_=AA(t.attributions),this.attributionsCollapsible_=void 0===t.attributionsCollapsible||t.attributionsCollapsible,this.loading=!1,this.state_=void 0!==t.state?t.state:"ready",this.wrapX_=void 0!==t.wrapX&&t.wrapX,this.interpolate_=!!t.interpolate,this.viewResolver=null,this.viewRejector=null;const e=this;this.viewPromise_=new Promise((function(t,i){e.viewResolver=t,e.viewRejector=i}))}getAttributions(){return this.attributions_}getAttributionsCollapsible(){return this.attributionsCollapsible_}getProjection(){return this.projection}getResolutions(t){return null}getView(){return this.viewPromise_}getState(){return this.state_}getWrapX(){return this.wrapX_}getInterpolate(){return this.interpolate_}refresh(){this.changed()}setAttributions(t){this.attributions_=AA(t),this.changed()}setState(t){this.state_=t,this.changed()}};function mA(t){let e=t.getDefaultTileGrid();return e||(e=function(t,e,i,n){const r=IA(t);return function(t,e,i,n){n=void 0!==n?n:"top-left";const r=yA(t,e,i);return new od({extent:t,origin:tt(t,n),resolutions:r,tileSize:i})}(r,e,i,n)}(t),t.setDefaultTileGrid(e)),e}function _A(t){const e=t||{},i=e.extent||ee("EPSG:3857").getExtent(),n={extent:i,minZoom:e.minZoom,tileSize:e.tileSize,resolutions:yA(i,e.maxZoom,e.tileSize,e.maxResolution)};return new od(n)}function yA(t,e,i,n){e=void 0!==e?e:ea,i=xc(void 0!==i?i:ia);const r=nt(t),s=at(t);n=n>0?n:Math.max(s/i[0],r/i[1]);const o=e+1,a=new Array(o);for(let t=0;ti||i>e.getMaxZoom())return!1;const s=e.getFullTileRange(i);return!s||s.containsXY(n,r)}(t,i)?t:null}clear(){this.tileCache.clear()}refresh(){this.clear(),super.refresh()}updateCacheSize(t,e){const i=this.getTileCacheForProjection(e);t>i.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}};function vA(t,e){const i=/\{z\}/g,n=/\{x\}/g,r=/\{y\}/g,s=/\{-y\}/g;return function(o,a,l){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(r,o[2].toString()).replace(s,(function(){const t=o[0],i=e.getFullTileRange(t);go(i,"The {-y} placeholder requires a tile grid with extent");return(i.getHeight()-o[2]-1).toString()}))}}function xA(t,e){const i=t.length,n=new Array(i);for(let r=0;rthis.getTileInternal(t,e,i,n,s)),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return p.key=c,l?(p.interimTile=l,p.refreshInterimChain(),o.replace(h,p)):o.set(h,p),p}getTileInternal(t,e,i,n,r){let s=null;const o=ed(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(s=this.tileCache.get(o),s.key!=a){const l=s;s=this.createTile_(t,e,i,n,r,a),l.getState()==vh?s.interimTile=l.interimTile:s.interimTile=l,s.refreshInterimChain(),this.tileCache.replace(o,s)}}else s=this.createTile_(t,e,i,n,r,a),this.tileCache.set(o,s);return s}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=ee(t);if(i){const t=Xs(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}},RA=4;function NA(t,e){const i=[];Object.keys(e).forEach((function(t){null!==e[t]&&void 0!==e[t]&&i.push(t+"="+encodeURIComponent(e[t]))}));const n=i.join("&");return t=t.replace(/[?&]$/,""),(t+=t.includes("?")?"&":"?")+n}function PA(t){return Array.isArray(t)?Math.min(...t):t}const FA=class extends Fg{constructor(t,e,i,n,r,s,o){let a=t.getExtent();a&&t.canWrapX()&&(a=a.slice(),a[0]=-1/0,a[2]=1/0);let l=e.getExtent();l&&e.canWrapX()&&(l=l.slice(),l[0]=-1/0,l[2]=1/0);const h=l?rt(i,l):i,c=qg(t,e,$(h),n),u=new Og(t,e,h,a,.5*c,n),g=u.calculateSourceExtent(),d=ht(g)?null:s(g,c,r),p=d?Cg:Sg,A=d?d.getPixelRatio():1;super(i,n,A,p),this.targetProj_=e,this.maxSourceExtent_=a,this.triangulation_=u,this.targetResolution_=n,this.targetExtent_=i,this.sourceImage_=d,this.sourcePixelRatio_=A,this.interpolate_=o,this.canvas_=null,this.sourceListenerKey_=null}disposeInternal(){this.state==vg&&this.unlistenSource_(),super.disposeInternal()}getImage(){return this.canvas_}getProjection(){return this.targetProj_}reproject_(){const t=this.sourceImage_.getState();if(t==xg){const t=at(this.targetExtent_)/this.targetResolution_,e=nt(this.targetExtent_)/this.targetResolution_;this.canvas_=zg(t,e,this.sourcePixelRatio_,PA(this.sourceImage_.getResolution()),this.maxSourceExtent_,this.targetResolution_,this.targetExtent_,this.triangulation_,[{extent:this.sourceImage_.getExtent(),image:this.sourceImage_.getImage()}],0,void 0,this.interpolate_)}this.state=t,this.changed()}load(){if(this.state==Cg){this.state=vg,this.changed();const t=this.sourceImage_.getState();t==xg||t==wg?this.reproject_():(this.sourceListenerKey_=Gs(this.sourceImage_,bs,(function(t){const e=this.sourceImage_.getState();e!=xg&&e!=wg||(this.unlistenSource_(),this.reproject_())}),this),this.sourceImage_.load())}}unlistenSource_(){qs(this.sourceListenerKey_),this.sourceListenerKey_=null}},DA="imageloadstart",OA="imageloadend",QA="imageloaderror";class kA extends us{constructor(t,e){super(t),this.image=e}}function GA(t,e){t.getImage().src=e}function UA(t,e,i,n){const r=e/i,s=$(t),o=vt(at(t)/r,RA),a=vt(nt(t)/r,RA);return et(s,r,0,[o+2*vt((n-1)*o/2,RA),a+2*vt((n-1)*a/2,RA)])}const qA=class extends fA{constructor(t){super({attributions:t.attributions,projection:t.projection,state:t.state,interpolate:void 0===t.interpolate||t.interpolate}),this.on,this.once,this.un,this.loader=t.loader||null,this.resolutions_=void 0!==t.resolutions?t.resolutions:null,this.reprojectedImage_=null,this.reprojectedRevision_=0,this.image=null,this.wantedExtent_,this.wantedResolution_,this.static_=!!t.loader&&0===t.loader.length}getResolutions(){return this.resolutions_}setResolutions(t){this.resolutions_=t}findNearestResolution(t){const e=this.getResolutions();if(e){t=e[fs(e,t,0)]}return t}getImage(t,e,i,n){const r=this.getProjection();if(!r||!n||ae(r,n))return r&&(n=r),this.getImageInternal(t,e,i,n);if(this.reprojectedImage_){if(this.reprojectedRevision_==this.getRevision()&&ae(this.reprojectedImage_.getProjection(),n)&&this.reprojectedImage_.getResolution()==e&&z(this.reprojectedImage_.getExtent(),t))return this.reprojectedImage_;this.reprojectedImage_.dispose(),this.reprojectedImage_=null}return this.reprojectedImage_=new FA(r,n,t,e,i,((t,e,i)=>this.getImageInternal(t,e,i,r)),this.getInterpolate()),this.reprojectedRevision_=this.getRevision(),this.reprojectedImage_}getImageInternal(t,e,i,n){if(this.loader){const n=UA(t,e,i,1),r=this.findNearestResolution(e);if(this.image&&(this.static_||(this.wantedExtent_&&D(this.wantedExtent_,n)||D(this.image.getExtent(),n))&&(this.wantedResolution_&&PA(this.wantedResolution_)===r||PA(this.image.getResolution())===r)))return this.image;this.wantedExtent_=n,this.wantedResolution_=r,this.image=new Fg(n,r,i,this.loader),this.image.addEventListener(bs,this.handleImageChange.bind(this))}return this.image}handleImageChange(t){const e=t.target;let i;switch(e.getState()){case vg:this.loading=!0,i=DA;break;case xg:this.loading=!1,i=OA;break;case wg:this.loading=!1,i=QA;break;default:return}this.hasListener(i)&&this.dispatchEvent(new kA(i,e))}},VA="1.3.0";function zA(t,e,i,n,r){r.WIDTH=i[0],r.HEIGHT=i[1];const s=n.getAxisOrientation();let o;const a=wt(r.VERSION,"1.3")>=0;return r[a?"CRS":"SRS"]=n.getCode(),o=a&&"ne"==s.substr(0,2)?[e[1],e[0],e[3],e[2]]:e,r.BBOX=o.join(","),NA(t,r)}function YA(t,e,i,n,r,s,o){s=Object.assign({REQUEST:"GetMap"},s);const a=e/i,l=[Et(at(t)/a,RA),Et(nt(t)/a,RA)];if(1!=i)switch(o){case"geoserver":const t=90*i+.5|0;"FORMAT_OPTIONS"in s?s.FORMAT_OPTIONS+=";dpi:"+t:s.FORMAT_OPTIONS="dpi:"+t;break;case"mapserver":s.MAP_RESOLUTION=90*i;break;case"carmentaserver":case"qgis":s.DPI=90*i;break;default:throw new Error("Unknown `serverType` configured")}return zA(r,t,l,n,s)}function jA(t,e){return Object.assign({REQUEST:e,SERVICE:"WMS",VERSION:VA,FORMAT:"image/png",STYLES:"",TRANSPARENT:!0},t)}function HA(t){const e=void 0===t.hidpi||t.hidpi,i=ee(t.projection||"EPSG:3857"),n=t.ratio||1.5,r=t.load||Pg;return(s,o,a)=>{s=UA(s,o,a,n),1==a||e&&void 0!==t.serverType||(a=1);const l=YA(s,o,a,i,t.url,jA(t.params,"GetMap"),t.serverType),h=new Image;return null!==t.crossOrigin&&(h.crossOrigin=t.crossOrigin),r(h,l).then((t=>({image:t,extent:s,pixelRatio:a})))}}const XA=class extends TA{constructor(t){t=t||{};const e=Object.assign({},t.params),i=!("TRANSPARENT"in e)||e.TRANSPARENT;super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:!i,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.params_=e,this.v13_=!0,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.updateV13_(),this.setKey(this.getKeyForParams_())}getFeatureInfoUrl(t,e,i,n){const r=ee(i),s=this.getProjection()||r;let o=this.getTileGrid();o||(o=this.getTileGridForProjection(s));const a=ce(t,r,s),l=qg(s,r,t,e),h=o.getZForResolution(l,this.zDirection),c=o.getResolution(h),u=o.getTileCoordForCoordAndZ(a,h);if(o.getResolutions().length<=u[0])return;let g=o.getTileCoordExtent(u,this.tmpExtent_);const d=this.gutter_;0!==d&&(g=R(g,c*d,g));const p={QUERY_LAYERS:this.params_.LAYERS};Object.assign(p,jA(this.params_,"GetFeatureInfo"),n);const A=Math.floor((a[0]-g[0])/c),f=Math.floor((g[3]-a[1])/c);return p[this.v13_?"I":"X"]=A,p[this.v13_?"J":"Y"]=f,this.getRequestUrl_(u,g,1,s||r,p)}getLegendUrl(t,e){if(void 0===this.urls[0])return;const i={SERVICE:"WMS",VERSION:VA,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),NA(this.urls[0],i)}getGutter(){return this.gutter_}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r){const s=this.urls;if(!s)return;let o;if(1==s.length)o=s[0];else{o=s[_t(rd(t),s.length)]}return YA(e,(this.tileGrid||this.getTileGridForProjection(n)).getResolution(t[0]),i,n,o,r,this.serverType_)}getTilePixelRatio(t){return this.hidpi_&&void 0!==this.serverType_?t:1}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}updateParams(t){Object.assign(this.params_,t),this.updateV13_(),this.setKey(this.getKeyForParams_())}updateV13_(){const t=this.params_.VERSION||VA;this.v13_=wt(t,"1.3")>=0}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_&&void 0!==this.serverType_||(e=1);const r=n.getResolution(t[0]);let s=n.getTileCoordExtent(t,this.tmpExtent_);const o=this.gutter_;0!==o&&(s=R(s,r*o,s));const a=Object.assign({},jA(this.params_,"GetMap"));return this.getRequestUrl_(t,s,e,i,a)}};class WA extends XA{constructor(t={}){const e=t;qL(t.tileLoadFunction)&&(e.tileLoadFunction=WA.tileLoadFunction),super(e)}changed(){qL(this.tileCache)||this.tileCache.clear(),super.changed()}static tileLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+=`&ticket=${M.config.ticket}`)}}const KA=WA,JA=[101,101];const ZA=class extends qA{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:GA,this.params_=t.params,this.serverType_=t.serverType,this.hidpi_=void 0===t.hidpi||t.hidpi,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getFeatureInfoUrl(t,e,i,n){if(void 0===this.url_)return;const r=ee(i),s=this.getProjection();s&&s!==r&&(e=qg(s,r,t,e),t=ce(t,r,s));const o=et(t,e,0,JA),a={QUERY_LAYERS:this.params_.LAYERS};Object.assign(a,jA(this.params_,"GetFeatureInfo"),n);const l=Ct((t[0]-o[0])/e,RA),h=Ct((o[3]-t[1])/e,RA),c=wt(a.VERSION,"1.3")>=0;return a[c?"I":"X"]=l,a[c?"J":"Y"]=h,zA(this.url_,o,JA,s||r,a)}getLegendUrl(t,e){if(void 0===this.url_)return;const i={SERVICE:"WMS",VERSION:VA,REQUEST:"GetLegendGraphic",FORMAT:"image/png"};if(void 0===e||void 0===e.LAYER){const t=this.params_.LAYERS;if(!(!Array.isArray(t)||1===t.length))return;i.LAYER=t}if(void 0!==t){const e=this.getProjection()?this.getProjection().getMetersPerUnit():1,n=28e-5;i.SCALE=t*e/n}return Object.assign(i,e),NA(this.url_,i)}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=HA({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,serverType:this.serverType_,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.loader=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.changed()}changed(){this.image=null,super.changed()}};const $A=class extends ZA{constructor(t={}){const e=t;super(e),this.imageLoadFunction_=e.imageLoadFunction||this.imageLoadFunction}changed(){super.changed()}imageLoadFunction(t,e){const i=t;i.getImage().src=`${e}&_=${this.revision_}`,null!=M.config.ticket&&(i.getImage().src+=`&ticket=${M.config.ticket}`)}};class tf extends Vd{constructor(t={},e){super(t,e),this.facadeLayer_=null,this.options=t,this.layers=[],this.displayInLayerSwitcher_=!0,this.getCapabilitiesPromise=null,this.tileLoadFunction=e?.tileLoadFunction,this.extentPromise=null,this.extent=null,this.resolutions_=null,this.extentProj_=null,!1===this.options.visibility&&(this.visibility=!1),qL(this.tiled)&&(this.tiled=!0!==this.options.singleTile),qL(this.options.numZoomLevels)&&(this.options.numZoomLevels=M.config.ZOOM_LEVELS),qL(this.options.animated)&&(this.options.animated=!1),this.styles=this.options.styles||"",this.sldBody=t.sldBody,this.zIndex_=uf.Z_INDEX[Nu]}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter((t=>!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),qL(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),qL(e)||this.map.setZoom(e)}else qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}isQueryable(){return!1!==this.options.queryable}addTo(t){if(this.map=t,!GL(this.options)&&!GL(this.options.minScale)&&!GL(this.options.maxScale)){const t=this.map.getProjection().units;this.options.minResolution=eB(this.options.minScale,t),this.options.maxResolution=eB(this.options.maxScale,t)}qL(this.name)?this.addAllLayers_():this.addSingleLayer_(),this.legendUrl_===aB([M.config.THEME_URL,_g.LEGEND_DEFAULT])&&(this.legendUrl_=KL(this.url,{SERVICE:"WMS",VERSION:this.version,REQUEST:"GetLegendGraphic",LAYER:this.name,FORMAT:"image/png",STYLE:this.styles[0]||"",SLD_VERSION:"1.1.0"})),this.fire(kc),this.facadeLayer_?.fire(kc)}setResolutions(t){this.resolutions_=t,this.facadeLayer_.calculateMaxExtent().then((e=>{if(!qL(this.ol3Layer)){const i=this.options.minResolution,n=this.options.maxResolution,r=this.createOLSource_(t,i,n,e);this.ol3Layer.setSource(r),this.ol3Layer.setExtent(e)}}))}addSingleLayer_(){this.facadeLayer_.calculateMaxExtent().then((t=>{const e=this.options.minResolution,i=this.options.maxResolution,n=this.opacity_,r=this.zIndex_,s=this.visibility&&!1!==this.options.visibility;let o=this.map.getResolutions();if(qL(o)&&!qL(this.resolutions_))o=this.resolutions_;else if(qL(o)){const n=this.getNumZoomLevels(),r=this.map.getMapImpl().getSize(),s=this.map.getProjection().units;o=qL(e)||qL(i)?iB(t,r,n,s):tB(e,i,n)}const a=this.createOLSource_(o,e,i,t);!0===this.tiled?this.ol3Layer=new Kg(hB({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:n,zIndex:r},this.vendorOptions_,!0)):this.ol3Layer=new $g(hB({visible:s,source:a,extent:t,minResolution:e,maxResolution:i,opacity:n,zIndex:r},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.facadeLayer_.fire(su),this.isVisible()&&!this.inRange()?this.setVisible(!1):this.setVisible(this.visibility),null!==r&&this.setZIndex(r),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const l=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",l)}))}createOLSource_(t,e,i,n){let r=this.vendorOptions_.source;if(qL(this.vendorOptions_.source)){const s=this.options.crossOrigin,o={LAYERS:this.name,TILED:!0,VERSION:this.version,TRANSPARENT:this.transparent,FORMAT:"image/png",STYLES:this.styles,CQL_FILTER:this.cql};qL(this.sldBody)||(o.SLD_BODY=this.sldBody),qL(this.options.params)||Object.keys(this.options.params).forEach((t=>{o[t.toUpperCase()]=this.options.params[t]}));const a=this.opacity_,l=this.zIndex_;if(!0===this.tiled){const h=J(n),c={url:this.url,tileGrid:new od({resolutions:t,extent:n,origin:h}),extent:n,minResolution:e,maxResolution:i,opacity:a,zIndex:l,myparam:"aa"};QL(s)||(c.crossOrigin=s),c.tileLoadFunction=this.tileLoadFunction,r=new KA(c),r.updateParams(o)}else{const h={url:this.url,resolutions:t,extent:n,minResolution:e,maxResolution:i,opacity:a,zIndex:l,params:{}};QL(s)||(h.crossOrigin=s),r=new $A(h),r.updateParams(o)}}return r}addAllLayers_(){this.getCapabilities().then((t=>{t.getLayers().forEach((t=>{const e=new rf({url:this.url,name:t.name,version:t.version,tiled:this.tiled},this.vendorOptions_);this.layers.push(e)})),this.map.addWMS(this.layers);let e=this.layers.length;this.layers.forEach((t=>{t.setZIndex(uf.Z_INDEX[Nu]+e),e+=1}))}))}setTileLoadFunction(t){this.getOLLayer().getSource().setTileLoadFunction(t)}setURL(t){this.url=t,this.recreateOlLayer()}setName(t){this.name=t,this.recreateOlLayer()}getExtent(){const t=ee(this.map.getProjection().code);return this.extentPromise=new Promise(((e,i)=>{qL(this.extent_)?this.getCapabilities().then((i=>{this.extent_=i.getLayerExtent(this.name),this.extentProj_=t,e(this.extent_)})):(this.extent_=qd.transformExtent(this.extent_,this.extentProj_,t),this.extentProj_=t,e(this.extent_))})),this.extentPromise}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}updateMinMaxResolution(t){qL(this.options.minResolution)||(this.options.minResolution=eB(this.options.minScale,t.units),this.ol3Layer.setMinResolution(this.options.minResolution)),qL(this.options.maxResolution)||(this.options.maxResolution=eB(this.options.maxScale,t.units),this.ol3Layer.setMaxResolution(this.options.maxResolution))}setMaxExtent(t){const e=this.options.minResolution,i=this.options.maxResolution,n=this.getOLLayer();if(!qL(n)&&(n.setExtent(t),!0===this.tiled)){let r=this.map.getResolutions();if(qL(r)&&!qL(this.resolutions_)&&(r=this.resolutions_),!qL(r)){const s=this.createOLSource_(r,e,i,t);n.setSource(s)}}}getNumZoomLevels(){return this.options.numZoomLevels}getLayers(){return this.layers}getCapabilities(){if(qL(this.getCapabilitiesPromise)){const t=this.url,e=this.version,i=this.map.getProjection(),n=this.map.getTicket();this.getCapabilitiesPromise=new Promise(((r,s)=>{const o=ZL(t,e,n);DL(o).then((e=>{if("xml"in e&&!qL(e.xml)){const n=e.xml,s=(new hA).customRead(n),o=new zd(s,t,i);r(o)}else DL(o,"",{ticket:!1}).then((e=>{const n=e.xml,s=(new hA).customRead(n),o=new zd(s,t,i);r(o)}))}))}))}return this.getCapabilitiesPromise}getLegendCapabilities(){return this.getCapabilities().then((t=>{let e="",i=t.capabilities.Capability.Layer.Layer;return i=i.length>1?i.find((t=>t.Name===this.name)):1===i.length&&i[0].Name!==this.name?i[0].Layer.find((t=>t.Name===this.name)):i[0],QL(i.Style)||QL(i.Style[0].LegendURL)||QL(i.Style[0].LegendURL[0].OnlineResource)||(e=i.Style[0].LegendURL[0].OnlineResource),e}))}getLegendURL(){return this.legendUrl_}setLegendURL(t){this.legendUrl_=t}refresh(){const t=this.getOLLayer();qL(t)||t.getSource().updateParams({time:Date.now()})}recreateOlLayer(){const t=this.map.getMapImpl();qL(this.ol3Layer)||t.removeLayer(this.ol3Layer),this.addSingleLayer_()}getExtentFromCapabilities(t){const e=this.facadeLayer_.name,i=this.map.getProjection().code;return t.getLayerExtent(e,i)}setFacadeObj(t){this.facadeLayer_=t}getStyles(){return this.getOLLayer().getSource().getParams().STYLES}setStyles(t){const e=this.getOLLayer();qL(e)||e.getSource().updateParams({STYLES:t})}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),qL(this.layers)||(this.layers.map(this.map.removeLayers,this.map),this.layers.length=0)}equals(t){let e=!1;return t instanceof tf&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=!0===this.tiled?new Kg(e):new $g(e)}return t}}tf.LEGEND_IMAGE=null;const ef=tf;class nf extends _g{constructor(t,e={},i){QL(ef)&&Oc(Cu("exception").wms_method),qL(t)&&Oc(Cu("exception").no_param);const n=fg(t,Nu),r=n.styles||"";qL(r)||Object.defineProperty(e,"styles",{value:r,writable:!0});super(n,new ef(e,i)),this.legend=n.legend,i?.cql&&(this.cql=i.cql),this.version=n.version,qL(n.tiled)||(this.tiled=n.tiled),this.transparent=n.transparent,this.styles=r,this.options=e,this.wmcParent_=null,this.getCapabilitiesPromise_=null,this._updateNoCache()}get type(){return Nu}set type(t){QL(t)||qL(t)||t===Nu||Oc("El tipo de capa debe ser '".concat(Nu).concat("' pero se ha especificado '").concat(t).concat("'"))}get legend(){return this.getImpl().legend}set legend(t){qL(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get tiled(){return this.getImpl().tiled}set tiled(t){qL(t)?this.getImpl().tiled=!0:YL(t)?this.getImpl().tiled="true"===XL(t):this.getImpl().tiled=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get version(){return this.getImpl().version}set version(t){qL(t)?this.getImpl().version="1.3.0":this.getImpl().version=t}getStyles(){return this.getImpl().getStyles()}setStyles(t){this.styles=t,this.getImpl().setStyles(t)}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}setTileLoadFunction(t){this.getImpl().setTileLoadFunction(t)}setURL(t){this.getImpl().setURL(t)}setName(t){this.getImpl().setName(t)}getMaxExtent(t){let e;if(qL(this.userMaxExtent))if(qL(this.options.wmcMaxExtent))if(qL(this.map_.userMaxExtent)){const e=this.map_.getWMC().find((t=>t.selected));qL(e)?this.getCapabilities().then((e=>{const i=this.getImpl().getExtentFromCapabilities(e);if(qL(i)){const t=this.map_.getProjection().getExtent();this.maxExtent_=t}else this.maxExtent_=i;VL(t)&&t(this.maxExtent_)})):e.calculateMaxExtent().then((e=>{this.maxExtent_=e,VL(t)&&t(this.maxExtent_)}))}else this.maxExtent_=this.map_.userMaxExtent,e=this.maxExtent_;else this.maxExtent_=this.options.wmcMaxExtent,e=this.maxExtent_;else e=this.userMaxExtent;return!qL(e)&&VL(t)?t(e):qL(e)&&(e=this.maxExtent_),e}calculateMaxExtent(){return new Promise((t=>this.getMaxExtent(t)))}getCapabilities(){return qL(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}getLegendCapabilities(){return this.getImpl().getLegendCapabilities()}getNoCacheUrl(){return this._noCacheUrl}getNoCacheName(){return this._noCacheName}setWMCParent(t){this.wmcParent_=t}getWMCParent(){return this.wmcParent_}updateMinMaxResolution(t){return this.getImpl().updateMinMaxResolution(t)}_updateNoCache(){const t=M.config.tileMappgins.tiledNames.indexOf(this.name);-1!==t&&gB(M.config.tileMappgins.tiledUrls[t],this.url)&&(this._noCacheUrl=M.config.tileMappgins.urls[t],this._noCacheName=M.config.tileMappgins.names[t])}equals(t){let e=!1;return t instanceof nf&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}const rf=nf;const sf=class extends dl{constructor(t){super(t),this.userZoom_=null}setUserZoom(t){this.userZoom_=t,qL(t)||this.setZoom(t)}getUserZoom(){return this.userZoom_}setProjection(t){this.projection_=t}getResolutions(){return this.get("resolutions")}setResolutions(t){this.set("resolutions",t),this.maxResolution_=t[0],this.minResolution_=t[t.length-1],this.setCenter(this.getCenter()),this.applyOptions_({minZoom:this.minZoom_,resolutions:t,zoomFactor:this.zoomFactor_,minResolution:this.minResolution_,maxResolution:this.maxResolution_,projection:this.projection_,center:this.getCenter(),constrainResolution:!0,multiWorld:!0}),qL(this.userZoom_)||this.setZoom(this.userZoom_)}},of=[],af=[],lf=[],hf=[Nu,Du,Ou,Fu,Gu];class cf extends Mc{constructor(t,e,i={}){super(),this.facadeMap_=e,this.layers_=[],this.layerGroups_=[],this.controls_=[],this.initZoom_=!0,this.userResolutions_=null,this.userBbox_=null,this.maxExtentForResolutions_=null,this.envolvedMaxExtent_=null,this._calculatedResolutions=!1,this._resolutionsEnvolvedExtent=!1,this._resolutionsBaseLayer=!1,this.label=[],this.map_=new bc({controls:[],target:t.id,view:new sf}),this.registerEvents_(),this.map_.addInteraction(new Dh({handleEvent:t=>("pointermove"===t.type&&this.onMapMove_(t),!0)}));const n=this.map_.getInteractions().getArray();this.mouseWheelZoom_=n.find((t=>t instanceof _c)),this.dragPan_=n.find((t=>t instanceof ec))}getLayers(t){const e=this.getWMC(t),i=this.getKML(t),n=this.getWMS(t),r=this.getWFS(t),s=this.getWMTS(t),o=this.getMVT(t),a=this.getUnknowLayers_(t),l=of.map((e=>this[e](t)));return e.concat(i).concat(n).concat(r).concat(s).concat(o).concat(a).concat(l)}getBaseLayers(){return this.getLayers().filter((t=>{let e=!1;return hf.includes(t.type)&&(e=!0!==t.transparent),e}))}addLayers(t){const e=t.filter((t=>!Vu(t.type))),i=t.filter((t=>Vu(t.type)));return this.addUnknowLayers_(e),this.facadeMap_.addWMC(i.filter((t=>t.type===Tu))),this.facadeMap_.addWMS(i.filter((t=>t.type===Nu))),this.facadeMap_.addWMTS(i.filter((t=>t.type===Fu))),this.facadeMap_.addKML(i.filter((t=>t.type===Ru))),this.facadeMap_.addWFS(i.filter((t=>t.type===Pu))),this.facadeMap_.addMVT(i.filter((t=>t.type===Gu))),lf.forEach((t=>t(e))),this}removeLayers(t){const e=t.filter((t=>!Vu(t.type))),i=t.filter((t=>Vu(t.type)));i.length>0&&(this.removeWMC(i),this.removeKML(i),this.removeWMS(i),this.removeWFS(i),this.removeWMTS(i),this.removeMVT(i)),e.length>0&&(this.removeUnknowLayers_(e),af.forEach((t=>t(e)))),t.forEach((t=>{if(t.getLayerGroup&&!qL(t.getLayerGroup())){t.getLayerGroup().deleteChild(t)}}));return Array.isArray(this.getBaseLayers())&&this.getBaseLayers().length>0||(this._resolutionsBaseLayer=!1),this.facadeMap_.fire(Hc,[t]),this}getLayerGroups(){return this.layerGroups_}getGroupedLayers(){let t=[];const e=this.getLayerGroups();return 1===e.length?t=e[0].getAllLayers():e.length>1&&(t=e.reduce(((t,e)=>Array.isArray(t)?t.concat(e.getAllLayers()):t.getAllLayers().concat(e.getAllLayers())))),t}addLayerGroups(t){return t.forEach((t=>{t.addTo(this.facadeMap_),lB(this.layerGroups_,t)||(this.layerGroups_.push(t),t.getAllLayers().forEach((t=>{this.facadeMap_.addLayers(t)})))})),this}removeLayerGroups(t){let e=[];return e=Array.isArray(t)?[...t]:[t],e.forEach((t=>{this.layerGroups_.remove(t),t.destroy(),t.fire(Xc,[t])})),this}getWMC(t){let e=t,i=[];const n=this.layers_.filter((t=>t.type===Tu));return qL(e)&&(e=[]),UL(e)||(e=[e]),0===e.length?i=n:e.forEach((t=>{i=i.concat(n.filter((e=>{let n=!0;return i.includes(e)?n=!1:(qL(t.type)||(n=n&&t.type===e.type),qL(t.url)||(n=n&&t.url===e.url),qL(t.name)||(n=n&&t.name===e.name)),n})))}),this),i}addWMC(t){return t.forEach(((t,e)=>{t.type===Tu&&(lB(this.layers_,t)||(t.setZIndex(cf.Z_INDEX[Tu]),t.getImpl().addTo(this.facadeMap_),this.layers_.push(t)))}),this),this}removeWMC(t){return this.getWMC(t).forEach((t=>{!0===t.selected&&!1===t.isLoaded()?t.on(su,(()=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),this.facadeMap_.removeWMS(t.layers),this.facadeMap_.refreshWMCSelectorControl()})):(this.layers_=this.layers_.filter((e=>!e.equals(t))),this.facadeMap_.removeWMS(t.layers)),this.facadeMap_.refreshWMCSelectorControl(),t.fire(Xc,[t])}),this),this}getKML(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Ru));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name),qL(t.extract)||(n=n&&t.extract===i.extract),qL(t.template)||(n=n&&t.template===i.template)),n}));e=e.concat(i)}),this),e}addKML(t){const e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Ru&&!lB(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Ru];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}}),this),this}removeKML(t){return this.getKML(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!t.equals(e))),t.getImpl().destroy(),t.fire(Xc,[t])}),this),this}getWMS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Nu));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:t instanceof rf?n=t===i:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name),qL(t.legend)||(n=n&&t.legend===i.legend),qL(t.transparent)||(n=n&&t.transparent===i.transparent),qL(t.tiled)||(n=n&&t.tiled===i.tiled),qL(t.cql)||(n=n&&t.cql===i.cql),qL(t.version)||(n=n&&t.version===i.version)),n}));e=e.concat(i)}),this),e}addWMS(t){let e=this.getBaseLayers().length>0;const i=[];t.forEach((t=>{if(t.type===Nu&&!lB(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(cf.Z_INDEX_BASELAYER);else if(null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Nu];t.setZIndex(e)}}));return(i.length>0&&!e||i.some((t=>!0!==t.transparent&&t.isVisible())))&&this.updateResolutionsFromBaseLayer(),this}removeWMS(t){return this.getWMS(t).forEach((t=>{if(this.layers_=this.layers_.filter((e=>!t.equals(e))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}})),this}getGeoJSON(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Qu));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name),qL(t.legend)||(n=n&&t.legend===i.legend)),n}));e=e.concat(i)})),e}getWFS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Pu));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name),qL(t.namespace)||(n=n&&t.namespace===i.namespace),qL(t.legend)||(n=n&&t.legend===i.legend),qL(t.cql)||(n=n&&t.cql===i.cql),qL(t.geometry)||(n=n&&t.geometry===i.geometry),qL(t.ids)||(n=n&&t.ids===i.ids),qL(t.version)||(n=n&&t.version===i.version)),n}));e=e.concat(i)})),e}addWFS(t){const e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Pu&&!lB(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Pu];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}})),this}removeWFS(t){return this.getWFS(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t])})),this}getWMTS(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Fu));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name),qL(t.matrixSet)||(n=n&&t.matrixSet===i.matrixSet),qL(t.legend)||(n=n&&t.legend===i.legend)),n}));e=e.concat(i)})),e}addWMTS(t){let e=this.getBaseLayers().length>0;return t.forEach((t=>{if(t.type===Fu&&!lB(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent){t.getImpl().visibility=!e,e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(cf.Z_INDEX_BASELAYER)}else{if(null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Fu];t.setZIndex(e)}e||this.updateResolutionsFromBaseLayer()}})),this}removeWMTS(t){return this.getWMTS(t).forEach((t=>{if(this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}})),this}getUnknowLayers_(t){let e=[],i=t;const n=this.layers_.filter((t=>!Vu(t.type)));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:t instanceof _g?n=t.equals(i):(qL(t.type)||(n=n&&t.type===i.type),qL(t.name)||(n=n&&t.name===i.name)),n}));e=e.concat(i)})),e}addUnknowLayers_(t){let e=this.getBaseLayers().length>0;return t.forEach((t=>{if(!lB(this.layers_,t))if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.isVisible()&&this.updateResolutionsFromBaseLayer(),t.setZIndex(cf.Z_INDEX_BASELAYER);else{if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[t.type];t.setZIndex(e)}e||-1!==t.name.indexOf("cluster_cover_")||this.updateResolutionsFromBaseLayer()}})),this}removeUnknowLayers_(t){t.forEach((t=>{if(lB(this.layers_,t)&&(this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t]),!0!==t.transparent)){const t=this.facadeMap_.getBaseLayers();t.length>0&&t[0].setVisible(!0)}}))}getMVT(t){let e=[],i=t;const n=this.layers_.filter((t=>t.type===Gu));return qL(i)&&(i=[]),UL(i)||(i=[i]),0===i.length?e=n:i.forEach((t=>{const i=n.filter((i=>{let n=!0;return e.includes(i)?n=!1:(qL(t.type)||(n=n&&t.type===i.type),qL(t.url)||(n=n&&t.url===i.url),qL(t.name)||(n=n&&t.name===i.name)),n}));e=e.concat(i)})),e}removeMVT(t){return this.getMVT(t).forEach((t=>{this.layers_=this.layers_.filter((e=>!e.equals(t))),t.getImpl().destroy(),t.fire(Xc,[t])})),this}addMVT(t){let e=this.getBaseLayers().length>0;const i=[];return t.forEach((t=>{if(t.type===Gu&&!lB(this.layers_,t)){if(t.getImpl().addTo(this.facadeMap_),this.layers_.push(t),i.push(t),!0!==t.transparent)t.setVisible(!e),e=!0,t.setZIndex(cf.Z_INDEX_BASELAYER);else if(t.setZIndex(t.getZIndex()),null==t.getZIndex()){const e=this.layers_.length+cf.Z_INDEX[Gu];t.setZIndex(e)}(i.length>0&&!e||i.some((t=>!0!==t.transparent&&t.isVisible())))&&this.updateResolutionsFromBaseLayer()}})),this}getControls(t){let e=t,i=[],n=this.facadeMap_.getPanels().map((t=>t.getControls()));n.length>0&&(n=n.reduce(((t,e)=>t.concat(e))));const r=this.controls_.concat(n);qL(e)&&(e=[]),UL(e)||(e=[e]),0===e.length?i=r:e.forEach((t=>{i=i.concat(r.filter((e=>{let n=!1;return lB(i,e)||(YL(t)?n=t===e.name:t instanceof vu?n=t===e:zL(t)&&(n=t.name===e.name)),n})))}));const s=[];return i.forEach((t=>{s.map((t=>t.name)).includes(t.name)||s.push(t)})),s}addControls(t){return t.forEach((t=>{t instanceof Mu&&this.facadeMap_.addControls("panzoom"),lB(this.controls_,t)||this.controls_.push(t)})),this}removeControls(t){return this.getControls(t).forEach((t=>{qL(this.map_)||this.map_.removeControl(t.getImpl()),t.destroy(),this.controls_=this.controls_.filter((e=>{let i=e.constructor===t.constructor;return qL(e.equals)||(i=!e.equals(t)),i}))})),this}setMaxExtent(t,e){let i=t;qL(i)||UL(i)||!zL(i)||(i=[t.x.min,t.y.min,t.x.max,t.y.max]);return this.getMapImpl().getView().set("extent",i),this.updateResolutionsFromBaseLayer(),qL(i)||!1===e||this.setBbox(i),this}getMaxExtent(){let t;const e=this.getMapImpl().getView().get("extent");return t=qL(e)?this.envolvedMaxExtent_:{x:{min:e[0],max:e[2]},y:{min:e[1],max:e[3]}},t}setBbox(t,e){let i;qL(t)&&Oc(Cu("exception").no_bbox),this.userBbox_=t,UL(t)?i=t:zL(t)&&(i=[t.x.min,t.y.min,t.x.max,t.y.max]);const n=this.getMapImpl();return n.updateSize(),n.getView().fit(i,e),this}getBbox(){let t=null;const e=this.getMapImpl(),i=e.getView();if(!qL(i.getCenter())){const n=i.calculateExtent(e.getSize());qL(n)||(t={x:{min:n[0],max:n[2]},y:{min:n[1],max:n[3]}})}return t}setZoom(t){return qL(t)&&Oc(Cu("exception").no_zoom),this.getMapImpl().getView().setUserZoom(t),this}getZoom(){let t=null;const e=this.getMapImpl().getView(),i=e.getResolution(),n=this.getResolutions();if(qL(n))qL(i)||(t=e.getZoomForResolution(i));else for(let e=0,r=n.length;eMath.abs(t-i))),r=n.indexOf(Math.min(...n));l=t[r]}}else l=t[s];a.setResolution(l),n.setView(a);return this.getWMS().forEach((e=>{e.getImpl().setResolutions(t)})),this}getScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units;let i=nB(t,e);return qL(i)||(i=i>=1e3&&i<=95e4?1e3*Math.round(i/1e3):i>=95e4?1e6*Math.round(i/1e6):Math.round(i)),i}getExactScale(){const t=this.getMapImpl().getView().getResolution(),e=this.getProjection().units,i=nB(t,e);return Math.trunc(i)}setProjection(t){qL(t)&&Oc(Cu("exception").no_projection);let e=ee(t.code);qL(e)&&(e=new u(t));const i=ee(this.getProjection().code);let n=this.facadeMap_.getBbox();const r=this.getMapImpl(),s=r.getView().getUserZoom(),o=new sf({projection:e});if(o.setUserZoom(s),r.setView(o),this.facadeMap_.getWMS().forEach((e=>{e.updateMinMaxResolution(t)})),this.updateResolutionsFromBaseLayer(),!qL(n)){UL(n)||(n=[n.x.min,n.y.min,n.x.max,n.y.max]);let t=qd.transformExtent(n,i,e);t.includes(NaN)&&(t=e.getExtent()),this.facadeMap_.setBbox(t,{nearest:!0})}return this}getProjection(){const t=this.getMapImpl().getView().getProjection();let e=null;return qL(t)||(e={code:t.getCode(),units:t.getUnits(),getExtent:()=>t.getExtent()}),e}getMapImpl(){return this.map_}removePopup(t){if(!qL(t)){const e=t.getImpl();this.getMapImpl().removeOverlay(e),t.fire(mu,[t]),this.facadeMap_.fire(mu,[t])}return this}destroy(){this.layers_.length=0,this.controls_.length=0,this.popup_=null,this.options_=null,this.map_.setTarget(null),this.map_=null}updateResolutionsFromBaseLayer(){let t=[],e=M.config.ZOOM_LEVELS;const i=this.getProjection().units,n=this.getBaseLayers().filter((t=>t.isVisible()))[0];let r=null,s=null;qL(n)||(s=void 0!==n.getImpl().getMinResolution?n.getImpl().getMinResolution():null,r=void 0!==n.getImpl().getMaxResolution?n.getImpl().getMaxResolution():null,e=n.getImpl().getNumZoomLevels()),null===this.userResolutions_&&(qL(s)||qL(r)?this.facadeMap_.calculateMaxExtent().then((n=>{if(!this._resolutionsBaseLayer&&null===this.userResolutions_){this.getMapImpl().updateSize();const r=this.getMapImpl().getSize();t=iB(n,r,e,i),this.setResolutions(t,!0),this._resolutionsEnvolvedExtent=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(ou))}})).catch((t=>{throw t})):(t=tB(s,r,e),this.setResolutions(t,!0),this._resolutionsBaseLayer=!0,!1===this._calculatedResolutions&&(this._calculatedResolutions=!0,this.fire(ou))))}addLabel(t,e){return this.label.push(t),t.show(this.facadeMap_,e),this}getLabel(){return this.label[0]}getLabels(){return this.label}removeLabel(t){let e=t;qL(this.label)||(qL(t)?(this.label.forEach((t=>this.removePopup(t.getPopup()))),this.label=[]):(UL(t)||(e=[t]),e.forEach((t=>{const e=this.label.findIndex((e=>e.text===t.text&&e.coord===t.coord));-1!==e&&(this.removePopup(this.label[e].getPopup()),this.label.splice(e,1))}))))}refresh(){return this.map_.updateSize(),this}getContainer(){return this.map_.getOverlayContainerStopEvent()}setFacadeMap(t){this.facadeMap_=t}registerEvents_(){this.facadeMap_.on(ou,(()=>{this.map_.updateSize()})),this.map_.on("singleclick",this.onMapClick_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this)),this.map_.on("change:view",(t=>{t.oldValue.un("change:resolution",this.zoomEvent_.bind(this)),this.map_.getView().on("change:resolution",this.zoomEvent_.bind(this))}))}zoomEvent_(t){this.getZoom()<=t.target.getZoom()&&this.facadeMap_.fire(uu,t)}onMapClick_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e),n=this.facadeMap_.getLabel();qL(n)||n.hide(),this.facadeMap_.fire(pu,[{pixel:e,coord:i,vendor:t}])}onMapMove_(t){const e=t.pixel,i=this.map_.getCoordinateFromPixel(e);this.facadeMap_.fire(Au,[{pixel:e,coord:i,vendor:t}])}getRotation(){let t;const e=this.map_.getView();return qL(e)||(t=e.getRotation()),t}setRotation(t){const e=this.map_.getView();qL(e)||e.setRotation(t)}static registerExternalFunction(t,e){const i={getLayers:of,addLayers:lf,removeLayers:af}[e];i.find((e=>e===t))&&i.push(t)}static registerBaseLayerType(t){!hf.find((e=>e===t))&&hf.push(t)}enableMouseWheel(t=!0){qL(this.mouseWheelZoom_)||this.mouseWheelZoom_.setActive(t)}enableDrag(t=!0){qL(this.dragPan_)||this.dragPan_.setActive(t)}getImageMap(){const t=this.map_.getViewport().querySelectorAll(".ol-layer canvas, canvas.ol-layer")[0];let e=null;if(!QL(t))try{e=t.toDataURL()}catch(t){throw t}return e}setToClosestScale(t){this.getMapImpl().getView().setResolution(t)}}cf.Z_INDEX={},cf.Z_INDEX_BASELAYER=0,cf.Z_INDEX[Tu]=1,cf.Z_INDEX[Nu]=1e3,cf.Z_INDEX[Fu]=2e3,cf.Z_INDEX[Du]=2e3,cf.Z_INDEX[Ou]=2e3,cf.Z_INDEX[Ru]=3e3,cf.Z_INDEX[Pu]=9999,cf.Z_INDEX[ku]=9999,cf.Z_INDEX[Gu]=9999,cf.Z_INDEX[Qu]=9999;const uf=cf;var gf=i(93),df=i.n(gf);const pf=class extends Bh{constructor(){super({}),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}getElement(){return this.element}};const Af=class extends pf{addTo(t,e){e.getElementsByTagName("select")[0].addEventListener("change",(e=>{const i=t.getWMC(e.target.options[e.target.selectedIndex].text)[0],n=t.getZoom();i.select(),t.setZoom(n)})),super.addTo(t,e)}};class ff extends vu{constructor(){super(new Af,ff.NAME),QL(Af)&&Oc(Cu("exception").wmcselector_method)}createView(t){return bu(df(),{vars:{layers:t.getWMC(),title:Cu("wmcselector").title}})}equals(t){let e=!1;return t instanceof ff&&(e=this.name===t.name),e}destroy(){super.destroy();const t=this.getPanel();qL(t)||t.removeClassName("m-with-wmcselector")}}ff.NAME="wmcselector";const mf=ff;var _f=i(582),yf=i.n(_f);const If=class extends Mc{constructor(t,e,i){super(),this.id_=t,this.title_=e,this.order_=i,this.zindex_=null}};class Ef extends Mc{constructor(t){const e={...t};qL(e.id)&&(e.id=JL("mapea_layer_group_")),qL(e.title)&&(e.title="Grupo de capas"),qL(e.zIndex)&&(e.zIndex=1e4),qL(e.order)&&(e.order=0);const i=new If(e);super(i),this.id=e.id,this.title=e.title,this.collapsed=!!e.collapsed,this.order=e.order,this.parent=null,this.children_=[],this.impl_=i,this.zIndex_=e.zIndex,Array.isArray(e.children)&&this.addChildren(e.children)}addTo(t){this.map=t,this.children_.forEach((e=>{e instanceof Ef&&e.addTo(t)})),this.fire(kc)}setVisible(t){this.getAllLayers().forEach((e=>!0===e.transparent&&e.setVisible(t)))}setZIndex(t){this.zIndex_=t;const e=[...this.getChildren()].reverse();let i=t;e.forEach((t=>{t.setZIndex(i),i+=1}))}getZIndex(t){return this.zIndex_}addChild(t,e){let i=this.getZIndex()+this.children_.length;const n=t;qL(e)?this.children_.unshift(n):(this.children_.splice(e,0,n),i=this.getZIndex()+e),n instanceof Ef?n.parent=this:n instanceof _g&&(n.setLayerGroup(this),n.setZIndex(i),qL(this.map)||this.map.getRootLayers().some((t=>t.equals(n)))||(this.map.addLayers(n),n instanceof Ef&&this.map.addLayerGroup(n)))}deleteChild(t){const e=t;e instanceof Ef?(e.parent=null,this.map.removeLayerGroup(e)):e instanceof _g&&(this.map.removeLayers(e),this.ungroup(t))}deleteChildren(t){t.forEach(this.deleteChild,this)}ungroup(t){t.setLayerGroup(null),this.children_.remove(t)}addChildren(t=[]){let e=t;Array.isArray(t)||(e=[e]),e.forEach(this.addChild,this)}getChildren(){return this.children_}getAllLayers(){let t=[];return this.getChildren().forEach((e=>{e instanceof _g?t.push(e):e instanceof Ef&&(t=t.concat(e.getAllLayers()))})),t}destroy(){this.map.removeLayers(this.getAllLayers())}static findGroupById(t,e){let i=null;if(UL(e)&&e.length>0&&(i=e.find((e=>e instanceof Ef&&e.id===t)),null==i)){const n=e.map((t=>t.getChildren())).reduce(((t,e)=>t.concat(e)),[]).filter((t=>t instanceof Ef));i=Ef.findGroupById(t,n)}return i}}const Cf=Ef;class vf extends pf{constructor(t){super(),this.mouseoutTimeId=null,this.panel=null,this.statusEmptyLayer=!1,QL(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t,e){this.facadeMap_=t;const i=t.getMapImpl();this.panel=e.getElementsByTagName("div")[vf.PANEL_ID],this.panel.addEventListener("click",this.clickLayer.bind(this),!1),this.panel.addEventListener("input",this.inputLayer.bind(this),!1),this.element=e,this.target_=null,i.addControl(this)}inputLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let n=null;if(!qL(e.target)){const t=e.target.getAttribute("data-layer-name");if(!qL(t)){e.stopPropagation();let r=this.facadeMap_.getLayers().filter((e=>e.id===t))[0];if(qL(r)&&!qL(i)&&(n=Cf.findGroupById(i,this.facadeMap_.getLayerGroup()),r=n.getChildren().find((e=>e instanceof _g&&e.id===t))),e.target.classList.contains("m-check"))if(QL(r)||!0!==r.transparent&&r.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach((t=>{t.setVisible(!1)}));else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");qL(t)||r.setOpacity(parseFloat(t.value)),r.setVisible(!r.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?r.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&this.facadeMap_.removeLayers(r)}}}clickLayer(t){const e=t||window.event,i=e.target.getAttribute("data-group-id");let n=null;if(!qL(e.target)){const t=e.target.getAttribute("data-layer-name");if(qL(t)){if(!qL(i)){const t=e.target.getAttribute("data-group-id");n=Cf.findGroupById(t,this.facadeMap_.getLayerGroup()),e.target.classList.contains("m-check")?e.target.classList.contains("g-cartografia-check3")?n.setVisible(!1):n.setVisible(!0):(n.collapsed=!n.collapsed,this.renderPanel())}}else{e.stopPropagation();let r=this.facadeMap_.getLayers().filter((e=>e.id===t))[0];if(qL(r)&&!qL(i)&&(n=Cf.findGroupById(i,this.facadeMap_.getLayerGroup()),r=n.getChildren().find((e=>e instanceof _g&&e.id===t))),e.target.classList.contains("m-check"))if(QL(r)||!0!==r.transparent&&r.isVisible())this.statusEmptyLayer=!0,this.facadeMap_.getBaseLayers().forEach((t=>{t.setVisible(!1)}));else{const t=e.target.parentElement.parentElement.querySelector("div.tools > input");qL(t)||r.setOpacity(parseFloat(t.value)),r.setVisible(!r.isVisible()),this.statusEmptyLayer=!1}else e.target.classList.contains("m-layerswitcher-transparency")?r.setOpacity(parseFloat(e.target.value)):e.target.classList.contains("m-layerswitcher-remove")&&(qL(n)?this.facadeMap_.removeLayers(r):(r.getImpl().destroy(),n.removeChild(r)))}}this.renderPanel()}renderPanel(){xI.getTemplateVariables(this.facadeMap_).then((t=>{if(this.activeEmptyLayer){const e=Object.assign({},xI.EMPTYLAYER);e.visible=this.statusEmptyLayer,t.baseLayers.unshift(e)}const e=bu(yf(),{vars:t});this.registerImgErrorEvents_(e);const i=e.querySelector("div#".concat(vf.PANEL_ID));this.panel.innerHTML=i.innerHTML}))}registerEvents(){if(!qL(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.registerViewEvents_(t.getView()),this.registerLayersEvents_(t.getLayers()),t.on("change:view",(()=>this.onViewChange_.bind(this)))}}unregisterEvents(){if(!qL(this.facadeMap_)){const t=this.facadeMap_.getMapImpl();this.unregisterViewEvents_(t.getView()),this.unregisterLayersEvents_(t.getLayers()),t.un("change:view",(()=>this.onViewChange_.bind(this)))}}registerViewEvents_(t){t.on("change:resolution",(()=>this.renderPanel.bind(this)))}registerLayersEvents_(t){t.forEach(this.registerLayerEvents_.bind(this)),t.on("remove",(()=>this.renderPanel.bind(this))),t.on("add",(()=>this.onAddLayer_.bind(this)))}registerLayerEvents_(t){t.on("change:visible",(()=>this.renderPanel.bind(this))),t.on("change:extent",(()=>this.renderPanel.bind(this)))}unregisterViewEvents_(t){t.un("change:resolution",(()=>this.renderPanel.bind(this)))}unregisterLayersEvents_(t){t.forEach(this.unregisterLayerEvents_.bind(this)),t.un("remove",(()=>this.renderPanel.bind(this))),t.un("add",(()=>this.onAddLayer_.bind(this)))}unregisterLayerEvents_(t){t.un("change:visible",(()=>this.renderPanel.bind(this))),t.un("change:extent",(()=>this.renderPanel.bind(this)))}onViewChange_(t){this.unregisterViewEvents_(t.oldValue);const e=this.facadeMap_.getMapImpl();this.registerViewEvents_(e.getView())}onAddLayer_(t){this.registerLayerEvents_(t.element),this.renderPanel()}registerImgErrorEvents_(t){const e=t.querySelectorAll("img");Array.prototype.forEach.call(e,(t=>{t.addEventListener("error",(t=>{const e=t.target.getAttribute("data-layer-name"),i=aB([M.config.THEME_URL,_g.LEGEND_ERROR]),n=this.facadeMap_.getLayers().filter((t=>t.id===e))[0];qL(n)||n.setLegendURL(i)}))}))}setMap(t){super.setMap(t),this.renderPanel()}}vf.PANEL_ID="m-layerswitcher-panel";const xf=vf;var wf=i(402);const Sf=class{constructor(t){this.rbush_=new wf(t),this.items_={}}insert(t,e){const i={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3],value:e};this.rbush_.insert(i),this.items_[Xs(e)]=i}load(t,e){const i=new Array(e.length);for(let n=0,r=e.length;n=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?s(e.readFeatures(n,{extent:i,featureProjection:r}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Of(t,e){return function(i,n,r,s,o){const a=this;Df(t,e,i,n,r,(function(t,e){a.addFeatures(t),void 0!==s&&s(t)}),o||Cs)}}class Qf extends us{constructor(t,e,i){super(t),this.feature=e,this.features=i}}const kf=class extends fA{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=Cs,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(go(this.format_,"`format` must be set when `url` is set"),this.loader_=Of(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:Pf;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Sf:null,this.loadedExtentsRtree_=new Sf,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new eo(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=Xs(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Qf(bf,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[Gs(e,bs,this.handleFeatureChange_,this),Gs(e,gs,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(go(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let e=0,n=t.length;e{e||(e=!0,this.addFeature(t.element),e=!1)})),t.addEventListener(Zs,(t=>{e||(e=!0,this.removeFeature(t.element),e=!1)})),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){this.featureChangeKeys_[t].forEach(qs)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const t in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[t])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Qf(Bf);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){if(i.getGeometry().intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){if(i.getGeometry().intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),ws(this.nullGeometryFeatures_)||_s(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){if(!(e&&e.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(t);const i=function(t,e){if(e.canWrapX()){const i=e.getExtent();if(!isFinite(t[0])||!isFinite(t[2]))return[[i[0],t[1],i[2],t[3]]];gt(t,e);const n=at(i);if(at(t)>n)return[[i[0],t[1],i[2],t[3]]];if(t[0]i[2])return[[t[0],t[1],i[2],t[3]],[i[0],t[1],t[2]-n,t[3]]]}return[t]}(t,e);return[].concat(...i.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let r=null;const s=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||Is,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),l=o;if(o=e.closestPointXY(i,n,s,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Qf(Rf,void 0,t))}),(()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Qf(Nf))})),n.insert(s,{extent:s.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(z(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=Xs(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);this.removeFeatureInternal(t)&&this.changed()}removeFeatureInternal(t){const e=Xs(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(qs),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Qf(Mf,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){go(this.format_,"`format` must be set when `url` is set"),this.url_=t,this.setLoader(Of(t,this.format_))}};const Gf=class extends kf{constructor(t){super({attributions:t.attributions,wrapX:t.wrapX}),this.resolution=void 0,this.distance=void 0!==t.distance?t.distance:20,this.minDistance=t.minDistance||0,this.interpolationRatio=0,this.features=[],this.geometryFunction=t.geometryFunction||function(t){const e=t.getGeometry();return go(!e||"Point"===e.getType(),"The default `geometryFunction` can only handle `Point` or null geometries"),e},this.createCustomCluster_=t.createCluster,this.source=null,this.boundRefresh_=this.refresh.bind(this),this.updateDistance(this.distance,this.minDistance),this.setSource(t.source||null)}clear(t){this.features.length=0,super.clear(t)}getDistance(){return this.distance}getSource(){return this.source}loadFeatures(t,e,i){this.source.loadFeatures(t,e,i),e!==this.resolution&&(this.resolution=e,this.refresh())}setDistance(t){this.updateDistance(t,this.minDistance)}setMinDistance(t){this.updateDistance(this.distance,t)}getMinDistance(){return this.minDistance}setSource(t){this.source&&this.source.removeEventListener(bs,this.boundRefresh_),this.source=t,t&&t.addEventListener(bs,this.boundRefresh_),this.refresh()}refresh(){this.clear(),this.cluster(),this.addFeatures(this.features)}updateDistance(t,e){const i=0===t?0:Math.min(e,t)/t,n=t!==this.distance||this.interpolationRatio!==i;this.distance=t,this.minDistance=e,this.interpolationRatio=i,n&&this.refresh()}cluster(){if(void 0===this.resolution||!this.source)return;const t=[1/0,1/0,-1/0,-1/0],e=this.distance*this.resolution,i=this.source.getFeatures(),n={};for(let r=0,s=i.length;r=0;--e){const n=this.geometryFunction(t[e]);n?St(i,n.getCoordinates()):t.splice(e,1)}Pt(i,1/t.length);const n=$(e),r=this.interpolationRatio,s=new qa([i[0]*(1-r)+n[0]*r,i[1]*(1-r)+n[1]*r]);return this.createCustomCluster_?this.createCustomCluster_(s,t):new _d({geometry:s,features:t})}};class Uf{constructor(t){this.opacity_=t.opacity,this.rotateWithView_=t.rotateWithView,this.rotation_=t.rotation,this.scale_=t.scale,this.scaleArray_=xc(t.scale),this.displacement_=t.displacement,this.declutterMode_=t.declutterMode}clone(){const t=this.getScale();return new Uf({opacity:this.getOpacity(),scale:Array.isArray(t)?t.slice():t,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return js()}getImage(t){return js()}getHitDetectionImage(){return js()}getPixelRatio(t){return 1}getImageState(){return js()}getImageSize(){return js()}getOrigin(){return js()}getSize(){return js()}setDisplacement(t){this.displacement_=t}setOpacity(t){this.opacity_=t}setRotateWithView(t){this.rotateWithView_=t}setRotation(t){this.rotation_=t}setScale(t){this.scale_=t,this.scaleArray_=xc(t)}listenImageChange(t){js()}load(){js()}unlistenImageChange(t){js()}}const qf=Uf;let Vf=null;class zf extends Ss{constructor(t,e,i,n,r){super(),this.hitDetectionImage_=null,this.image_=t,this.crossOrigin_=i,this.canvas_={},this.color_=r,this.imageState_=void 0===n?Cg:n,this.size_=t&&t.width&&t.height?[t.width,t.height]:null,this.src_=e,this.tainted_}initializeImage_(){this.image_=new Image,null!==this.crossOrigin_&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(void 0===this.tainted_&&this.imageState_===xg){Vf||(Vf=bl(1,1,void 0,{willReadFrequently:!0})),Vf.drawImage(this.image_,0,0);try{Vf.getImageData(0,0,1,1),this.tainted_=!1}catch(t){Vf=null,this.tainted_=!0}}return!0===this.tainted_}dispatchChangeEvent_(){this.dispatchEvent(bs)}handleImageError_(){this.imageState_=wg,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=xg,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(t){return this.image_||this.initializeImage_(),this.replaceColor_(t),this.canvas_[t]?this.canvas_[t]:this.image_}getPixelRatio(t){return this.replaceColor_(t),this.canvas_[t]?t:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){const t=this.size_[0],e=this.size_[1],i=bl(t,e);i.fillRect(0,0,t,e),this.hitDetectionImage_=i.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===Cg){this.image_||this.initializeImage_(),this.imageState_=vg;try{void 0!==this.src_&&(this.image_.src=this.src_)}catch(t){this.handleImageError_()}this.image_ instanceof HTMLImageElement&&Ng(this.image_,this.src_).then((t=>{this.image_=t,this.handleImageLoad_()})).catch(this.handleImageError_.bind(this))}}replaceColor_(t){if(!this.color_||this.canvas_[t]||this.imageState_!==xg)return;const e=this.image_,i=document.createElement("canvas");i.width=Math.ceil(e.width*t),i.height=Math.ceil(e.height*t);const n=i.getContext("2d");n.scale(t,t),n.drawImage(e,0,0),n.globalCompositeOperation="multiply",n.fillStyle=bo(this.color_),n.fillRect(0,0,i.width/t,i.height/t),n.globalCompositeOperation="destination-in",n.drawImage(e,0,0),this.canvas_[t]=i}}function Yf(t,e,i,n){return void 0!==i&&void 0!==n?[i/t,n/e]:void 0!==i?i/t:void 0!==n?n/e:1}class jf extends qf{constructor(t){const e=void 0!==(t=t||{}).opacity?t.opacity:1,i=void 0!==t.rotation?t.rotation:0,n=void 0!==t.scale?t.scale:1,r=void 0!==t.rotateWithView&&t.rotateWithView;super({opacity:e,rotation:i,scale:n,displacement:void 0!==t.displacement?t.displacement:[0,0],rotateWithView:r,declutterMode:t.declutterMode}),this.anchor_=void 0!==t.anchor?t.anchor:[.5,.5],this.normalizedAnchor_=null,this.anchorOrigin_=void 0!==t.anchorOrigin?t.anchorOrigin:"top-left",this.anchorXUnits_=void 0!==t.anchorXUnits?t.anchorXUnits:"fraction",this.anchorYUnits_=void 0!==t.anchorYUnits?t.anchorYUnits:"fraction",this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null;const s=void 0!==t.img?t.img:null;let o,a=t.src;if(go(!(void 0!==a&&s),"`image` and `src` cannot be provided at the same time"),void 0!==a&&0!==a.length||!s||(a=s.src||Xs(s)),go(void 0!==a&&a.length>0,"A defined and non-empty `src` or `image` must be provided"),go(!((void 0!==t.width||void 0!==t.height)&&void 0!==t.scale),"`width` or `height` cannot be provided together with `scale`"),void 0!==t.src?o=Cg:void 0!==s&&(o=s instanceof HTMLImageElement?s.complete?s.src?xg:Cg:vg:xg),this.color_=void 0!==t.color?Mo(t.color):null,this.iconImage_=function(t,e,i,n,r){let s=void 0===e?void 0:Fo.get(e,i,r);return s||(s=new zf(t,t instanceof HTMLImageElement?t.src||void 0:e,i,n,r),Fo.set(e,i,r,s)),s}(s,a,this.crossOrigin_,o,this.color_),this.offset_=void 0!==t.offset?t.offset:[0,0],this.offsetOrigin_=void 0!==t.offsetOrigin?t.offsetOrigin:"top-left",this.origin_=null,this.size_=void 0!==t.size?t.size:null,void 0!==t.width||void 0!==t.height){let e,i;if(t.size)[e,i]=t.size;else{const n=this.getImage(1);if(n.width&&n.height)e=n.width,i=n.height;else if(n instanceof HTMLImageElement){this.initialOptions_=t;const e=()=>{if(this.unlistenImageChange(e),!this.initialOptions_)return;const i=this.iconImage_.getSize();this.setScale(Yf(i[0],i[1],t.width,t.height))};return void this.listenImageChange(e)}}void 0!==e&&this.setScale(Yf(e,i,t.width,t.height))}}clone(){let t,e,i;return this.initialOptions_?(e=this.initialOptions_.width,i=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new jf({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:e,height:i,size:null!==this.size_?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let t=this.normalizedAnchor_;if(!t){t=this.anchor_;const e=this.getSize();if("fraction"==this.anchorXUnits_||"fraction"==this.anchorYUnits_){if(!e)return null;t=this.anchor_.slice(),"fraction"==this.anchorXUnits_&&(t[0]*=e[0]),"fraction"==this.anchorYUnits_&&(t[1]*=e[1])}if("top-left"!=this.anchorOrigin_){if(!e)return null;t===this.anchor_&&(t=this.anchor_.slice()),"top-right"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[0]=-t[0]+e[0]),"bottom-left"!=this.anchorOrigin_&&"bottom-right"!=this.anchorOrigin_||(t[1]=-t[1]+e[1])}this.normalizedAnchor_=t}const e=this.getDisplacement(),i=this.getScaleArray();return[t[0]-e[0]/i[0],t[1]+e[1]/i[1]]}setAnchor(t){this.anchor_=t,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(t){return this.iconImage_.getImage(t)}getPixelRatio(t){return this.iconImage_.getPixelRatio(t)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let t=this.offset_;if("top-left"!=this.offsetOrigin_){const e=this.getSize(),i=this.iconImage_.getSize();if(!e||!i)return null;t=t.slice(),"top-right"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[0]=i[0]-e[0]-t[0]),"bottom-left"!=this.offsetOrigin_&&"bottom-right"!=this.offsetOrigin_||(t[1]=i[1]-e[1]-t[1])}return this.origin_=t,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){const t=this.getScaleArray();return this.size_?this.size_[0]*t[0]:this.iconImage_.getImageState()==xg?this.iconImage_.getSize()[0]*t[0]:void 0}getHeight(){const t=this.getScaleArray();return this.size_?this.size_[1]*t[1]:this.iconImage_.getImageState()==xg?this.iconImage_.getSize()[1]*t[1]:void 0}setScale(t){delete this.initialOptions_,super.setScale(t)}listenImageChange(t){this.iconImage_.addEventListener(bs,t)}load(){this.iconImage_.load()}unlistenImageChange(t){this.iconImage_.removeEventListener(bs,t)}}const Hf=jf;const Xf=class{drawCustom(t,e,i,n){}drawGeometry(t){}setStyle(t){}drawCircle(t,e){}drawFeature(t,e){}drawGeometryCollection(t,e){}drawLineString(t,e){}drawMultiLineString(t,e){}drawMultiPoint(t,e){}drawMultiPolygon(t,e){}drawPoint(t,e){}drawPolygon(t,e){}drawText(t,e){}setFillStrokeStyle(t,e){}setImageStyle(t,e){}setTextStyle(t,e){}};function Wf(t){return Array.isArray(t)?Ro(t):t}const Kf=class extends Xf{constructor(t,e,i,n,r,s,o){super(),this.context_=t,this.pixelRatio_=e,this.extent_=i,this.transform_=n,this.transformRotation_=n?It(Math.atan2(n[1],n[0]),10):0,this.viewRotation_=r,this.squaredTolerance_=s,this.userTransform_=o,this.contextFillState_=null,this.contextStrokeState_=null,this.contextTextState_=null,this.fillState_=null,this.strokeState_=null,this.image_=null,this.imageAnchorX_=0,this.imageAnchorY_=0,this.imageHeight_=0,this.imageOpacity_=0,this.imageOriginX_=0,this.imageOriginY_=0,this.imageRotateWithView_=!1,this.imageRotation_=0,this.imageScale_=[0,0],this.imageWidth_=0,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=!1,this.textRotation_=0,this.textScale_=[0,0],this.textFillState_=null,this.textStrokeState_=null,this.textState_=null,this.pixelCoordinates_=[],this.tmpLocalTransform_=[1,0,0,1,0,0]}drawImages_(t,e,i,n){if(!this.image_)return;const r=Aa(t,e,i,n,this.transform_,this.pixelCoordinates_),s=this.context_,o=this.tmpLocalTransform_,a=s.globalAlpha;1!=this.imageOpacity_&&(s.globalAlpha=a*this.imageOpacity_);let l=this.imageRotation_;0===this.transformRotation_&&(l-=this.viewRotation_),this.imageRotateWithView_&&(l+=this.viewRotation_);for(let t=0,e=r.length;tt*this.pixelRatio_)),lineDashOffset:(r||0)*this.pixelRatio_,lineJoin:void 0!==s?s:Ql,lineWidth:(void 0!==o?o:1)*this.pixelRatio_,miterLimit:void 0!==a?a:10,strokeStyle:Wf(t||kl)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),r=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=r[0],this.imageOriginY_=r[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const s=t.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/i,s[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Wf(t||Fl)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),r=i.getLineDashOffset(),s=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:Dl,lineDash:n||Ol,lineDashOffset:r||0,lineJoin:void 0!==s?s:Ql,lineWidth:void 0!==o?o:1,miterLimit:void 0!==a?a:10,strokeStyle:Wf(t||kl)}}else this.textStrokeState_=null;const n=t.getFont(),r=t.getOffsetX(),s=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),l=t.getScaleArray(),h=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:Pl,textAlign:void 0!==c?c:Gl,textBaseline:void 0!==u?u:Ul},this.text_=void 0!==h?Array.isArray(h)?h.reduce(((t,e,i)=>t+(i%2?" ":e)),""):h:"",this.textOffsetX_=void 0!==r?this.pixelRatio_*r:0,this.textOffsetY_=void 0!==s?this.pixelRatio_*s:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}else this.text_=""}},Jf=.5,Zf={Point:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=xg)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},LineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},Polygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(s||o){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},MultiPoint:function(t,e,i,n,r){const s=i.getImage(),o=i.getText();let a;if(s){if(s.getImageState()!=xg)return;let l=t;if(r){const h=s.getDeclutterMode();if("none"!==h)if(l=r,"obstacle"===h){const r=t.getBuilder(i.getZIndex(),"Image");r.setImageStyle(s,a),r.drawMultiPoint(e,n)}else o&&o.getText()&&(a={})}const h=l.getBuilder(i.getZIndex(),"Image");h.setImageStyle(s,a),h.drawMultiPoint(e,n)}if(o&&o.getText()){let s=t;r&&(s=r);const l=s.getBuilder(i.getZIndex(),"Text");l.setTextStyle(o,a),l.drawText(e,n)}},MultiLineString:function(t,e,i,n,r){const s=i.getStroke();if(s){const r=t.getBuilder(i.getZIndex(),"LineString");r.setFillStrokeStyle(null,s),r.drawMultiLineString(e,n)}const o=i.getText();if(o&&o.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(o),s.drawText(e,n)}},MultiPolygon:function(t,e,i,n,r){const s=i.getFill(),o=i.getStroke();if(o||s){const r=t.getBuilder(i.getZIndex(),"Polygon");r.setFillStrokeStyle(s,o),r.drawMultiPolygon(e,n)}const a=i.getText();if(a&&a.getText()){const s=(r||t).getBuilder(i.getZIndex(),"Text");s.setTextStyle(a),s.drawText(e,n)}},GeometryCollection:function(t,e,i,n,r){const s=e.getGeometriesArray();let o,a;for(o=0,a=s.length;o{let n=e[t];"string"==typeof n&&1===n.length&&(n={char:n}),lm.defs.glyphs[t]={font:i.font,char:n.char||`${String.fromCharCode(n.code)}`||"",theme:n.theme||i.name,name:n.name||t,search:n.search||""}}))}getFill(){return this.fill_}getStroke(){return this.stroke_}getGlyph(t){let e=this.glyph_;return t&&(e=lm.defs.glyphs[t],e=e||{font:"none",char:t.charAt(0),theme:"none",name:"none",search:""}),e}getGlyphName(){let t="";return Object.keys(lm.defs.glyphs).forEach((e=>{lm.defs.glyph[e]===this.glyph_&&(t=e)})),t}getFontInfo(t){return lm.defs.fonts[t.font]}renderMaker(t){let e,i=0;this.stroke_&&(e=bo(this.stroke_.getColor()),i=this.stroke_.getWidth());const n=this.getImage(1);n.height+=1,n.width+=1;const r={strokeStyle:e,strokeWidth:i,size:n.width},s=n.getContext("2d");s.clearRect(0,0,n.width,n.height),this.drawMarker_(r,s,0,0);const o=this.getAnchor();o[0]=n.width/2-this.offset_[0],o[1]=n.width/2-this.offset_[1]}drawPath_(t,e){const i=e,n=2*this.radius_+t.strokeWidth,r=t.strokeWidth/2,s=t.size/2;let o={fac:1,posX:t.size/2,posY:t.size/2};i.lineJoin="round",i.beginPath();const a=Math.PI;switch(this.form_){case"none":o.fac=1;break;case"circle":case"ban":i.arc(s,s,n/2,0,2*Math.PI,!0);break;case"poi":i.arc(s,s-.4*this.radius_,.6*this.radius_,.15*a,.85*a,!0),i.lineTo(s-.89*.05*n,(.95+.45*.05)*n+r),i.arc(s,.95*n+r,.05*n,.85*Math.PI,.15*Math.PI,!0),o={fac:.45,posX:s,posY:s-.35*this.radius_};break;case"bubble":i.arc(s,s-.2*this.radius_,.8*this.radius_,.4*a,.6*a,!0),i.lineTo(.5*n+r,n+r),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"marker":i.arc(s,s-.2*this.radius_,.8*this.radius_,.25*a,.75*a,!0),i.lineTo(.5*n+r,n+r),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;case"coma":i.moveTo(s+.8*this.radius_,s-.2*this.radius_),i.quadraticCurveTo(.95*n+r,.75*n+r,.5*n+r,n+r),i.arc(s,s-.2*this.radius_,.8*this.radius_,.45*a,0,!1),o={fac:.7,posX:s,posY:s-.2*this.radius_};break;default:let t;switch(this.form_){case"shield":t=[.05,0,.95,0,.95,.8,.5,1,.05,.8,.05,0],o.posY=.45*n+r;break;case"blazon":t=[.1,0,.9,0,.9,.8,.6,.8,.5,1,.4,.8,.1,.8,.1,0],o.fac=.8,o.posY=.4*n+r;break;case"bookmark":t=[.05,0,.95,0,.95,1,.5,.8,.05,1,.05,0],o.fac=.9,o.posY=.4*n+r;break;case"hexagon":t=[.05,.2,.5,0,.95,.2,.95,.8,.5,1,.05,.8,.05,.2],o.fac=.9,o.posY=.5*n+r;break;case"diamond":t=[.25,0,.75,0,1,.2,1,.4,.5,1,0,.4,0,.2,.25,0],o.fac=.75,o.posY=.35*n+r;break;case"triangle":t=[0,0,1,0,.5,1,0,0],o.fac=.6,o.posY=.3*n+r;break;case"sign":t=[.5,.05,1,.95,0,.95,.5,.05],o.fac=.7,o.posY=.65*n+r;break;case"lozenge":t=[.5,0,1,.5,.5,1,0,.5,.5,0],o.fac=.7;break;default:t=[0,0,1,0,1,1,0,1,0,0]}for(let e=0;e0?Number(t.scale):1)*ao||ao,r=i.getContext("2d");if(t.image){t.image.load();const s=t.image.getImage();s.width?(i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.globalAlpha="number"==typeof t.opacity?t.opacity:1,r.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=r.createPattern(i,"repeat")):(e=[0,0,0,0],s.onload=function(){i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.globalAlpha="number"==typeof t.opacity?t.opacity:1,r.drawImage(s,0,0,s.width,s.height,0,0,i.width,i.height),e=r.createPattern(i,"repeat"),this.color_=e,this.checksum_=void 0})}else{const s=km.getPattern(t);if(i.width=Math.round(s.width*n),i.height=Math.round(s.height*n),r.beginPath(),t.fill&&(r.fillStyle=bo(t.fill.getColor()),r.fillRect(0,0,i.width,i.height)),r.scale(n,n),r.lineCap="round",r.lineWidth=s.stroke||1,r.fillStyle=bo(t.color||"#000"),r.strokeStyle=bo(t.color||"#000"),s.circles)for(let t=0;t180&&(r-=360),r*=Math.PI/180;const s=Math.cos(r),o=Math.sin(r);if(Math.abs(o)<1e-4)i.width=n,i.height=n,i.lines=[[0,.5,n,.5]],i.repeat=[[0,0],[0,n]];else if(Math.abs(s)<1e-4)i.height=n,i.width=n,i.lines=[[.5,0,.5,n]],i.repeat=[[0,0],[n,0]],"cross"===e.pattern&&(i.lines.push([0,.5,n,.5]),i.repeat.push([0,n]));else{i.width=Math.round(Math.abs(n/o))||1,i.height=Math.round(Math.abs(n/s))||1;const t=i.width,r=i.height;"cross"===e.pattern?(i.lines=[[-t,-r,2*t,2*r],[2*t,-r,-t,2*r]],i.repeat=[[0,0]]):s*o>0?(i.lines=[[-t,-r,2*t,2*r]],i.repeat=[[0,0],[t,0],[0,r]]):(i.lines=[[2*t,-r,-t,2*r]],i.repeat=[[0,0],[-t,0],[0,r]])}i.stroke=0===e.size?0:e.size||4}return i}static addPattern(t,e={}){km.patterns[t||e.char]={width:e.width||e.size||10,height:e.height||e.size||10,font:e.font,char:e.char,circles:e.circles,lines:e.lines,repeat:e.repeat,stroke:e.stroke,angle:e.angle,fill:e.fill}}}km.patterns={hatch:{width:5,height:5,lines:[[0,2.5,5,2.5]],stroke:1},cross:{width:7,height:7,lines:[[0,3,10,3],[3,0,3,10]],stroke:1},dot:{width:8,height:8,circles:[[5,5,2]],stroke:!1,fill:!0},circle:{width:10,height:10,circles:[[5,5,2]],stroke:1,fill:!1},square:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],stroke:1,fill:!1},tile:{width:10,height:10,lines:[[3,3,3,8,8,8,8,3,3,3]],fill:!0},woven:{width:12,height:12,lines:[[3,3,9,9],[0,12,3,9],[9,3,12,0],[-1,1,1,-1],[13,11,11,13]],stroke:1},crosses:{width:8,height:8,lines:[[2,2,6,6],[2,6,6,2]],stroke:1},caps:{width:8,height:8,lines:[[2,6,4,2,6,6]],stroke:1},nylon:{width:20,height:20,lines:[[1,6,1,1,6,1],[6,11,11,11,11,6],[11,16,11,21,16,21],[16,11,21,11,21,16]],repeat:[[0,0],[-20,0],[0,-20]],stroke:1},hexagon:{width:20,height:12,lines:[[0,10,4,4,10,4,14,10,10,16,4,16,0,10]],stroke:1,repeat:[[0,0],[10,6],[10,-6],[-10,-6]]},cemetry:{width:15,height:19,lines:[[0,3.5,7,3.5],[3.5,0,3.5,10]],stroke:1,repeat:[[0,0],[7,9]]},sand:{width:20,height:20,circles:[[1,2,1],[9,3,1],[2,16,1],[7,8,1],[6,14,1],[4,19,1],[14,2,1],[12,10,1],[14,18,1],[18,8,1],[18,14,1]],fill:1},conglomerate:{width:30,height:20,circles:[[2,4,1],[17,3,1],[26,18,1],[12,17,1],[5,17,2],[28,11,2]],lines:[[7,5,6,7,9,9,11,8,11,6,9,5,7,5],[16,10,15,13,16,14,19,15,21,13,22,9,20,8,19,8,16,10],[24,6,26,7,27,5,26,4,24,4,24,6]],stroke:1},gravel:{width:15,height:10,circles:[[4,2,1],[5,9,1],[1,7,1]],lines:[[7,5,6,6,7,7,8,7,9,7,10,5,9,4,7,5],[11,2,14,4,14,1,12,1,11,2]],stroke:1},brick:{width:18,height:16,lines:[[0,1,18,1],[0,10,18,10],[6,1,6,10],[12,10,12,18],[12,0,12,1]],stroke:1},dolomite:{width:20,height:16,lines:[[0,1,20,1],[0,9,20,9],[1,9,6,1],[11,9,14,16],[14,0,14.4,1]],stroke:1},coal:{width:20,height:16,lines:[[1,5,7,1,7,7],[11,10,12,5,18,9],[5,10,2,15,9,15],[15,16,15,13,20,16],[15,0,15,2,20,0]],fill:1},breccia:{width:20,height:16,lines:[[1,5,7,1,7,7,1,5],[11,10,12,5,18,9,11,10],[5,10,2,15,9,15,5,10],[15,16,15,13,22,18],[15,0,15,2,20,0]],stroke:1},clay:{width:20,height:20,lines:[[0,0,3,11,0,20],[11,0,10,3,13,13,11,20],[0,0,10,3,20,0],[0,12,3,11,13,13,20,12]],stroke:1},flooded:{width:15,height:10,lines:[[0,1,10,1],[0,6,5,6],[10,6,15,6]],stroke:1},chaos:{width:40,height:40,lines:[[40,2,40,0,38,0,40,2],[4,0,3,2,2,5,0,0,0,3,2,7,5,6,7,7,8,10,9,12,9,13,9,14,8,14,6,15,2,15,0,20,0,22,2,20,5,19,8,15,10,14,11,12.25,10,12,10,10,12,9,13,7,12,6,13,4,16,7,17,4,20,0,18,0,15,3,14,2,14,0,12,1,11,0,10,1,11,4,10,7,9,8,8,5,6,4,5,3,5,1,5,0,4,0],[7,1,7,3,8,3,8,2,7,1],[4,3,5,5,4,5,4,3],[34,5,33,7,38,10,38,8,36,5,34,5],[27,0,23,2,21,8,30,0,27,0],[25,8,26,12,26,16,22.71875,15.375,20,13,18,15,17,18,13,22,17,21,19,22,21,20,19,18,22,17,30,25,26,26,24,28,21.75,33.34375,20,36,18,40,20,40,24,37,25,32,27,31,26,38,27,37,30,32,32,35,36,37,38,40,38,39,40,40,37,36,34,32,37,31,36,29,33,27,34,24,39,21,40,21,40,16,37,20,31,22,32,25,27,20,29,15,30,20,32,20,34,18,33,12,31,11,29,14,26,9,25,8],[39,24,37,26,40,28,39,24],[13,15,9,19,14,18,13,15],[18,23,14,27,16,27,17,25,20,26,18,23],[6,24,2,26,1,28,2,30,5,28,12,30,16,32,18,30,15,30,12,28,9,25,7,27,6,24],[29,27,32,28,33,31,30,29,27,28,29,27],[5,35,1,33,3,36,13,38,15,35,10,36,5,35]],fill:1},grass:{width:27,height:22,lines:[[0,10.5,13,10.5],[2.5,10,1.5,7],[4.5,10,4.5,5,3.5,4],[7,10,7.5,6,8.5,3],[10,10,11,6]],repeat:[[0,0],[14,10]],stroke:1},swamp:{width:24,height:23,lines:[[0,10.5,9.5,10.5],[2.5,10,2.5,7],[4.5,10,4.5,4],[6.5,10,6.5,6],[3,12.5,7,12.5]],repeat:[[0,0],[14,10]],stroke:1},wave:{width:10,height:8,lines:[[0,0,5,4,10,0]],stroke:1},vine:{width:13,height:13,lines:[[3,0,3,6],[9,7,9,13]],stroke:1},forest:{width:55,height:30,circles:[[7,7,3.5],[20,20,1.5],[42,22,3.5],[35,5,1.5]],stroke:1},scrub:{width:26,height:20,lines:[[1,4,4,8,6,4]],circles:[[20,13,1.5]],stroke:1},tree:{width:30,height:30,lines:[[7.78,10.61,4.95,10.61,4.95,7.78,3.54,7.78,2.12,6.36,.71,6.36,0,4.24,.71,2.12,4.24,0,7.78,.71,9.19,3.54,7.78,4.95,7.07,7.07,4.95,7.78]],repeat:[[3,1],[18,16]],stroke:1},pine:{width:30,height:30,lines:[[5.66,11.31,2.83,11.31,2.83,8.49,0,8.49,2.83,0,5.66,8.49,2.83,8.49]],repeat:[[3,1],[18,16]],stroke:1},pines:{width:22,height:20,lines:[[1,4,3.5,1,6,4],[1,8,3.5,5,6,8],[3.5,1,3.5,11],[12,14.5,14.5,14,17,14.5],[12,18,17,18],[14.5,12,14.5,18]],repeat:[[2,1]],stroke:1},rock:{width:20,height:20,lines:[[1,0,1,9],[4,0,4,9],[7,0,7,9],[10,1,19,1],[10,4,19,4],[10,7,19,7],[0,11,9,11],[0,14,9,14],[0,17,9,17],[12,10,12,19],[15,10,15,19],[18,10,18,19]],repeat:[[.5,.5]],stroke:1},rocks:{width:20,height:20,lines:[[5,0,3,0,5,4,4,6,0,3,0,5,3,6,5,9,3.75,10,2.5,10,0,9,0,10,4,11,5,14,4,15,0,13,0,13,0,13,0,14,0,14,5,16,5,18,3,19,0,19,-.25,19.9375,5,20,10,19,10,20,11,20,12,19,14,20,15,20,17,19,20,20,20,19,19,16,20,15,20,11,20,10,19,8,20,5,20,0,19,0,20,2,19,4,17,4,16,3,15,0,14,0,15,4,11,5,10,4,11,0,10,0,9,4,6,5,5,0],[18,5,19,6,18,10,16,10,14,9,16,5,18,5],[5,6,9,5,10,6,10,9,6,10,5,6],[14,5,14,8,13,9,12,9,11,7,12,5,14,5],[5,11,8,10,9,11,10,14,6,15,6,15,5,11],[13,10,14,11,15,14,15,14,15,14,11,15,10,11,11,10,13,10],[15,12,16,11,19,11,19,15,16,14,16,14,15,12],[6,16,9,15,10,18,5,19,6,16],[10,16,14,16,14,18,13,19,11,18,10,16],[15,15,18,16,18,18,16,19,15,18,15,15]],stroke:1}};class Gm extends vm{constructor(t={}){super({points:1/0,fill:t.fill,radius:t.radius,snapToPixel:t.snapToPixel,stroke:t.stroke,atlasManager:t.atlasManager})}clone(){const t=new Gm({fill:this.getFill()?this.getFill().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,radius:this.getRadius(),atlasManager:this.atlasManager_});return t.setOpacity(this.getOpacity()),t.setScale(this.getScale()),t}}const Um=(t,e,i)=>{let n;if(!qL(t.fill)){const r=um.getValue(t.fill.color,e,i);let s=um.getValue(t.fill.opacity,e,i);s||0===s||(s=1),qL(r)||(n=new wm({color:a()(r).alpha(s).css()}))}return n},qm=(t,e,i)=>{let n;if(!qL(t.stroke)){const r=um.getValue(t.stroke.color,e,i);if(!qL(r)){const{linedashoffset:s}=t.stroke;n=new bm({color:r,width:um.getValue(t.stroke.width,e,i),lineDash:um.getValue(t.stroke.linedash,e,i),lineDashOffset:um.getValue(s,e,i),lineCap:um.getValue(t.stroke.linecap,e,i),lineJoin:um.getValue(t.stroke.linejoin,e,i),miterLimit:um.getValue(t.stroke.miterlimit,e,i)})}}return n},Vm=(t,i,r)=>{let s;if(t.label){const o=um.getValue(t.label.text,i,r),a=um.getValue(t.label.align,i,r),l=um.getValue(t.label.baseline,i,r);if(s=new Fm({font:um.getValue(t.label.font,i,r),rotateWithView:um.getValue(t.label.rotate,i,r),scale:um.getValue(t.label.scale,i,r),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,i,r),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,i,r),fill:new wm({color:um.getValue(t.label.color||"#000",i,r)}),textAlign:Object.values(e).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:um.getValue(t.label.rotation,i,r),overflow:um.getValue(t.label.overflow,i,r)}),!qL(t.label.stroke)){const{miterlimit:e,linedashoffset:n}=t.label.stroke;s.setStroke(new bm({color:um.getValue(t.label.stroke.color,i,r),width:um.getValue(t.label.stroke.width,i,r),lineCap:um.getValue(t.label.stroke.linecap,i,r),lineJoin:um.getValue(t.label.stroke.linejoin,i,r),lineDash:um.getValue(t.label.stroke.linedash,i,r),lineDashOffset:um.getValue(n,i,r),miterLimit:um.getValue(e,i,r)}))}}return s},zm={},Ym=(t,e,i)=>{const n=t||{},r=Um(n,e,i),s=qm(n,e,i),o=new Gm({fill:r,stroke:s,radius:um.getValue(n.radius,e,i),snapToPixel:um.getValue(n.snapToPixel,e,i)}),a=new Nm({image:o}),l=new Nm;if(!qL(n.icon)){let t;const r=um.getValue(n.icon.src,e,i);qL(r)?qL(n.icon.form)||(t=((t,e,i)=>new Qm({form:qL(um.getValue(t.icon.form,e,i))?"":um.getValue(t.icon.form,e,i).toLowerCase(),gradient:um.getValue(t.icon.gradient,e,i),glyph:um.getValue(t.icon.class,e,i),fontSize:um.getValue(t.icon.fontsize,e,i),radius:um.getValue(t.icon.radius,e,i),rotation:um.getValue(t.icon.rotation,e,i),rotateWithView:um.getValue(t.icon.rotate,e,i),offsetX:um.getValue(t.icon.offset?t.icon.offset[0]:void 0,e,i),offsetY:um.getValue(t.icon.offset?t.icon.offset[1]:void 0,e,i),fill:new wm({color:um.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",e,i)}),stroke:t.icon.color?new bm({color:um.getValue(t.icon.color,e,i),width:1}):void 0,anchor:um.getValue(t.icon.anchor,e,i),anchorXUnits:um.getValue(t.icon.anchorxunits,e,i),anchorYUnits:um.getValue(t.icon.anchoryunits,e,i),src:um.getValue(t.icon.src,e,i),opacity:um.getValue(t.icon.opacity,e,i),scale:um.getValue(t.icon.scale,e,i),snapToPixel:um.getValue(t.icon.snaptopixel,e,i),offsetOrigin:um.getValue(t.icon.offsetorigin,e,i),offset:um.getValue(t.icon.offset,e,i),crossOrigin:um.getValue(t.icon.crossorigin,e,i),anchorOrigin:um.getValue(t.icon.anchororigin,e,i),size:um.getValue(t.icon.size,e,i)}))(n,e,i),l.setImage(t)):(t=((t,e,i)=>{const n=um.getValue(t.icon.anchor,e,i),r=um.getValue(t.icon.anchorxunits,e,i),s=um.getValue(t.icon.anchoryunits,e,i),o=um.getValue(t.icon.src,e,i),a=um.getValue(t.icon.opacity,e,i),l=um.getValue(t.icon.scale,e,i),h=um.getValue(t.icon.rotation,e,i),c=um.getValue(t.icon.rotate,e,i),u=um.getValue(t.icon.snaptopixel,e,i),g=um.getValue(t.icon.offsetorigin,e,i),d=um.getValue(t.icon.offset,e,i),p=um.getValue(t.icon.crossorigin,e,i),A=um.getValue(t.icon.anchororigin,e,i),f=o+n+r+s+a+l+h+c+u+g+d+p+A+A+um.getValue(t.icon.size,e,i);let m=zm[f];return m||(m=new Om({anchor:um.getValue(t.icon.anchor,e,i),anchorXUnits:um.getValue(t.icon.anchorxunits,e,i),anchorYUnits:um.getValue(t.icon.anchoryunits,e,i),src:um.getValue(t.icon.src,e,i),opacity:um.getValue(t.icon.opacity,e,i),scale:um.getValue(t.icon.scale,e,i),rotation:um.getValue(t.icon.rotation,e,i),rotateWithView:um.getValue(t.icon.rotate,e,i),snapToPixel:um.getValue(t.icon.snaptopixel,e,i),offsetOrigin:um.getValue(t.icon.offsetorigin,e,i),offset:um.getValue(t.icon.offset,e,i),crossOrigin:um.getValue(t.icon.crossorigin,e,i),anchorOrigin:um.getValue(t.icon.anchororigin,e,i),size:um.getValue(t.icon.size,e,i)}),zm[f]=m),m})(n,e,i),l.setImage(t))}const h=Vm(n,e,i);return qL(n.label)||QL(h.getText())||a.setText(h),[a,l]},jm=(t,e,i)=>{const n=t||{},r=qm(n,e,i),s=((t,e,i)=>{let n;if(!qL(t.fill)){const r=um.getValue(t.fill.color,e,i);let s=um.getValue(t.fill.opacity,e,i);s||0===s||(s=1);const o=um.getValue(t.fill.width,e,i);qL(r)||(n=new bm({color:a()(r).alpha(s).css(),width:o}))}return n})(n,e,i),o=((t,e,i)=>{const{label:n}=t;let r;if(!qL(n)){const i={text:void 0===um.getValue(n.text,e)?void 0:String(um.getValue(n.text,e)),font:um.getValue(n.font,e),fill:new wm({color:um.getValue(n.color||"#000",e)}),textBaseline:(um.getValue(n.baseline,e)||"").toLowerCase(),textAlign:um.getValue(n.align,e),scale:um.getValue(n.scale,e),rotateWithView:um.getValue(n.rotate,e)||!1,textOverflow:um.getValue(n.textoverflow,e)||"",minWidth:um.getValue(n.minwidth,e)||0,geometry:um.getValue(n.geometry,e),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,e),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,e)};r=new Dm(i),qL(n.stroke)||r.setStroke(new bm({color:um.getValue(n.stroke.color,e),width:um.getValue(n.stroke.width,e),lineCap:um.getValue(n.stroke.linecap,e),lineJoin:um.getValue(n.stroke.linejoin,e),lineDash:um.getValue(n.stroke.linedash,e),lineDashOffset:um.getValue(n.stroke.linedashoffset,e),miterLimit:um.getValue(n.stroke.miterlimit,e)}))}return r})(n,e),l=new Nm,h=new Nm;if(!qL(o)){!0===um.getValue(o.path,e)?(l.textPath=o,!qL(o.smooth)&&!0===o.smooth&&VL(e.getGeometry)&&l.setGeometry(e.getGeometry().cspline())):l.setText(o)}return l.setStroke(r),h.setStroke(s),[l,h]},Hm=(t,e,i)=>{const n=t||{},r=new Nm,s=qm(n,e,i);let o=Um(n,e,i);const l=Vm(n,e,i);return n.fill&&!qL(n.fill.pattern)&&(o=((t,e,i,n)=>{let r="rgba(0,0,0,1)";if(!qL(t.fill.pattern.color)){let n=um.getValue(t.fill.pattern.opacity,e,i)||1;n||0===n||(n=1),r=a()(t.fill.pattern.color).alpha(n).css()}return new km({pattern:(um.getValue(t.fill.pattern.name,e,i)||"").toLowerCase(),color:r,size:um.getValue(t.fill.pattern.size,e,i),spacing:um.getValue(t.fill.pattern.spacing,e,i),image:"IMAGE"===um.getValue(t.fill.pattern.name,e,i)?new Hf({src:um.getValue(t.fill.pattern.src,e,i)}):void 0,angle:um.getValue(t.fill.pattern.rotation,e,i),scale:um.getValue(t.fill.pattern.scale,e,i),offset:um.getValue(t.fill.pattern.offset,e,i),fill:n})})(n,e,i)),r.setFill(o),r.setStroke(s),r.setText(l),[r]},Xm={Point:(...t)=>Ym(t[0].point,t[1],t[2]),LineString:(...t)=>jm(t[0].line,t[1],t[2]),Polygon:(...t)=>Hm(t[0].polygon,t[1],t[2]),MultiPoint:(...t)=>Ym(t[0].point,t[1],t[2]),MultiLineString:(...t)=>jm(t[0].line,t[1],t[2]),MultiPolygon:(...t)=>Hm(t[0].polygon,t[1],t[2])};const Wm=class extends um{constructor(t={}){super(t),this.styles_={}}toImage(){const t=30;let e=null,i=null,n=null;const r=BB(),s=[];QL(this.options_.polygon)||(i=e=>new Promise(((i,n)=>{const r=new Image;if(r.onload=()=>i(r),r.onerror=n,!0===bB(this.options_.polygon))r.src=e,r.width=t,r.height=t;else{const t=(0,Xm.Polygon)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=10;const i=rm(e.getContext("2d"));i.setStyle(t[0],0,0);const n=[20,7],s=Math.floor(n[0]),o=Math.floor(n[1]),a=n[0]-s,l=n[1]-o;i.drawGeometry(new sl([[[a+1,l+1],[s-1,l+1],[s-1,o-1],[a+1,o-1],[a+1,l+1]]])),r.src=e.toDataURL()}})),s.push(i(r))),QL(this.options_.line)||(n=t=>new Promise(((e,i)=>{const n=new Image;if(n.onload=()=>e(n),n.onerror=i,!0===bB(this.options_.line))n.src=t,n.width=30,n.height=30;else{const t=(0,Xm.LineString)(this.options_,this,this.layer_),e=document.createElement("canvas");e.width=30,e.height=15;const i=rm(e.getContext("2d"));i.setStyle(t[0],0,0);const r=20,s=10,o=QL(t[0].getStroke())?1.5:t[0].getStroke().getWidth();i.drawGeometry(new wd([[0+o/2,0+o/2],[r/3,s/2-o/2],[2*r/3,0+o/2],[r-o/2,s/2-o/2]])),n.src=e.toDataURL()}})),s.push(n(r))),QL(this.options_.point)||(e=e=>new Promise(((i,n)=>{const r=new Image;if(this.options_.point.icon){if(this.options_.point.icon.src)this.options_.point.icon.src.startsWith(window.location.origin)?r.src=this.options_.point.icon.src:EB(this.options_.point.icon.src).then((e=>{r.onload=()=>i(r),r.onerror=n;const s=aB([M.config.PROXY_URL,"/image"]);r.crossOrigin="anonymous",r.src=KL(s,{url:this.options_.point.icon.src}),r.width=t,r.height=t;const o=t/(e.width/e.height);r.height=e.width>e.height?o:r.height,r.width=e.height>e.width?t/(e.height/e.width):r.width}));else if(this.options_.point.icon.form){r.onload=()=>i(r),r.width=t,r.height=t;const e=(0,Xm.Point)(this.options_,this,this.layer_)[1].getImage().getImage(1);null!=e&&e&&(r.src=e.toDataURL())}}else if(r.onload=()=>i(r),r.onerror=n,r.width=10,r.height=10,!0===bB(this.options_.point))r.src=e;else{const t=(0,Xm.Point)(this.options_,this,this.layer_);t[0].getImage().setRadius(5);const e=t[0].getImage().getImage(1).toDataURL();r.src=e}})),s.push(e(r)));const o=document.createElement("canvas");o.height=20;const a=o.getContext("2d"),l=[0,35,70];let h=0;return Promise.all(s).then((t=>{const e=t.length;o.width=1===e?35:2===e?70:100;let i=0;return t.forEach((t=>{t.height>i&&(i=t.height)})),o.height=i,t.forEach((t=>{a.drawImage(t,l[h],0,t.width,t.height),h+=1})),o.toDataURL()}))}updateFacadeOptions(t){this.olStyleFn_=e=>{const i=JSON.stringify(e.getProperties());let n=[];this.styles_=[];let r=e;if(r instanceof _d||r instanceof Pd){const e=r.getGeometry().getType(),s=Xm[e];VL(s)&&(n=s(t,r,this.layer_),this.styles_[i]=n)}else r=this;return n}}drawGeometryToCanvas(t){}updateCanvas(t){}getCanvasSize(){return 0}getRadius_(t){let e;return e=t instanceof Hf?25:t instanceof lm?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}};class Km extends Qc{constructor(t,e){super(e),this.options_=t,this.canvas_=document.createElement("canvas"),this.updateCanvasPromise_=null,this.layer_=null}get canvas(){return this.canvas_}apply(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}unapply(t){}get(t){let e;if(e=this.options_[t],qL(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qL(t)||(i=t[e],t instanceof Km&&(i=t.get(e))),i}),this))}return e}set(t,e){const i=this.get(t);return Km.setValue(this.options_,t,e),qL(this.layer_)||this.getImpl().updateFacadeOptions(this.options_),qL(this.feature_)||this.applyToFeature(this.feature_),this.fire(au,[t,i,e]),this.refresh(),this}static setValue(t,e,i){let n=i;const r=t,s=UL(e)?e:e.split("."),o=s.length,a=s[0];1===o?(UL(n)?n=[...n]:zL(n)&&(n=Object.assign({},n)),r[a]=n):o>1&&(qL(r[a])&&(r[a]={}),Km.setValue(r[a],s.slice(1,o),n))}refresh(t=null){if(qL(t)||(this.layer_=t),!qL(this.layer_)&&(this.apply(this.layer_),this.updateCanvas(),!qL(this.layer_.getImpl().getMap()))){const t=this.layer_.getImpl().getMap().getControls("layerswitcher")[0];qL(t)||t.render()}}getOptions(){return this.options_}toImage(){let t;if(qL(this.updateCanvasPromise_))if(qL(this.options_.icon)||qL(this.options_.icon.src))t=this.canvas_.toDataURL("png");else{const e=new Image;e.crossOrigin="Anonymous";const i=this.canvas_;e.onload=()=>{i.getContext("2d").drawImage(this,0,0,50,50)},e.src=this.options_.icon.src,t=this.canvas_.toDataURL("png")}else t=this.updateCanvasPromise_.then((()=>this.canvas_.toDataURL("png")));return t}updateCanvas(){this.updateCanvasPromise_=this.getImpl().updateCanvas(this.canvas_)}equals(t){return this.constructor===t.constructor}clone(){const t={};_B(t,this.options_);const e=new(0,this.getImpl().constructor)(t);return new this.constructor(t,e)}toJSON(){return{parameters:[CB(this.getOptions())],deserializedMethod:this.getDeserializedMethod_()}}serialize(){return window.btoa(unescape(encodeURIComponent(JSON.stringify(this))))}static deserialize(t){const e=decodeURIComponent(escape(window.atob(t))),{parameters:i,deserializedMethod:n}=JSON.parse(e);return new Function("serializedParams",`return ${n}(serializedParams)`)(i)}}const Jm=Km;const Zm=class extends Jm{constructor(t,e){super(t,e),this.feature_=null}applyToFeature(t){this.feature_=t,this.getImpl().applyToFeature(t)}};const $m=class extends Zm{apply(t,e,i){this.layer_=t,this.getImpl().applyToLayer(t),!0===e&&(i?t.getFeatures().forEach((t=>{t.style=null})):t.getFeatures().forEach((t=>{t.setStyle(this.clone())}))),this.updateCanvas()}toImage(){let t=super.toImage();const e={fill:this.options_.fill,stroke:this.options_.stroke};return!0===bB(e)&&(t=BB(this.canvas_)),t}get ORDER(){return 1}static deserialize(t,e){const i=vB(t),n=i.map(((t,e)=>`arg${e}`)),r=n.reduce(((t,e)=>t.concat(", ").concat(e)));return new Function(n,`return new ${e}(${r})`)(...i)}};class t_ extends $m{constructor(t){let e=t;e=qL(e)?t_.DEFAULT_NULL:_B(e,t_.DEFAULT),e=_B({},e);super(e,new Wm(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Generic'))"}}t_.DEFAULT={point:{radius:5}},t_.PARAMS_DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},t_.DEFAULT_NULL={point:{...t_.PARAMS_DEFAULT_NULL,radius:5},line:{...t_.PARAMS_DEFAULT_NULL},polygon:{...t_.PARAMS_DEFAULT_NULL}};const e_=t_;let i_=0;const n_=1<",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match"},__={[m_.Number]:I_(y_(1,1/0,l_),r_),[m_.String]:I_(y_(1,1/0,l_),s_),[m_.Get]:I_((function(t,e){if(2!==t.length)throw new Error("Expected 1 argument for get operation");const i=f_(t[1],e);if(!(i instanceof d_))throw new Error("Expected a literal argument for get operation");if("string"!=typeof i.value)throw new Error("Expected a string argument for get operation");return e.properties.add(i.value),[i]}),l_),[m_.Var]:I_((function(t,e){if(2!==t.length)throw new Error("Expected 1 argument for var operation");const i=f_(t[1],e);if(!(i instanceof d_))throw new Error("Expected a literal argument for var operation");if("string"!=typeof i.value)throw new Error("Expected a string argument for get operation");return e.variables.add(i.value),[i]}),l_),[m_.Resolution]:I_((function(t,e){const i=t[0];if(1!==t.length)throw new Error(`Expected no arguments for ${i} operation`);return[]}),r_),[m_.Any]:I_(y_(2,1/0,n_),n_),[m_.All]:I_(y_(2,1/0,n_),n_),[m_.Not]:I_(y_(1,1,n_),n_),[m_.Equal]:I_(y_(2,2,l_),n_),[m_.NotEqual]:I_(y_(2,2,l_),n_),[m_.GreaterThan]:I_(y_(2,2,l_),n_),[m_.GreaterThanOrEqualTo]:I_(y_(2,2,l_),n_),[m_.LessThan]:I_(y_(2,2,l_),n_),[m_.LessThanOrEqualTo]:I_(y_(2,2,l_),n_),[m_.Multiply]:I_(y_(2,1/0,r_),r_),[m_.Divide]:I_(y_(2,2,r_),r_),[m_.Add]:I_(y_(2,1/0,r_),r_),[m_.Subtract]:I_(y_(2,2,r_),r_),[m_.Clamp]:I_(y_(3,3,r_),r_),[m_.Mod]:I_(y_(2,2,r_),r_),[m_.Pow]:I_(y_(2,2,r_),r_),[m_.Abs]:I_(y_(1,1,r_),r_),[m_.Floor]:I_(y_(1,1,r_),r_),[m_.Ceil]:I_(y_(1,1,r_),r_),[m_.Round]:I_(y_(1,1,r_),r_),[m_.Sin]:I_(y_(1,1,r_),r_),[m_.Cos]:I_(y_(1,1,r_),r_),[m_.Atan]:I_(y_(1,2,r_),r_),[m_.Sqrt]:I_(y_(1,1,r_),r_),[m_.Match]:I_(y_(4,1/0,s_|r_),l_)};function y_(t,e,i){return function(n,r){const s=n[0],o=n.length-1;if(t===e){if(o!==t){throw new Error(`Expected ${t} argument${1===t?"":"s"} for operation ${s}, got ${o}`)}}else if(oe)throw new Error(`Expected ${t} to ${e} arguments for operation ${s}, got ${o}`);const a=new Array(o);for(let t=0;t{for(let e=0;et.properties[n];case m_.Var:return t=>t.variables[n];default:throw new Error(`Unsupported accessor operator ${t.operator}`)}}(t);case m_.Resolution:return t=>t.resolution;case m_.Any:case m_.All:case m_.Not:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let i=0;i{for(let e=0;e{for(let e=0;e!r[0](t);default:throw new Error(`Unsupported logical operator ${i}`)}}(t,e);case m_.Equal:case m_.NotEqual:case m_.LessThan:case m_.LessThanOrEqualTo:case m_.GreaterThan:case m_.GreaterThanOrEqualTo:return function(t,e){const i=t.operator,n=C_(t.args[0],e),r=C_(t.args[1],e);switch(i){case m_.Equal:return t=>n(t)===r(t);case m_.NotEqual:return t=>n(t)!==r(t);case m_.LessThan:return t=>n(t)n(t)<=r(t);case m_.GreaterThan:return t=>n(t)>r(t);case m_.GreaterThanOrEqualTo:return t=>n(t)>=r(t);default:throw new Error(`Unsupported comparison operator ${i}`)}}(t,e);case m_.Multiply:case m_.Divide:case m_.Add:case m_.Subtract:case m_.Clamp:case m_.Mod:case m_.Pow:case m_.Abs:case m_.Floor:case m_.Ceil:case m_.Round:case m_.Sin:case m_.Cos:case m_.Atan:case m_.Sqrt:return function(t,e){const i=t.operator,n=t.args.length,r=new Array(n);for(let i=0;i{let e=1;for(let i=0;ir[0](t)/r[1](t);case m_.Add:return t=>{let e=0;for(let i=0;ir[0](t)-r[1](t);case m_.Clamp:return t=>{const e=r[0](t),i=r[1](t);if(en?n:e};case m_.Mod:return t=>r[0](t)%r[1](t);case m_.Pow:return t=>Math.pow(r[0](t),r[1](t));case m_.Abs:return t=>Math.abs(r[0](t));case m_.Floor:return t=>Math.floor(r[0](t));case m_.Ceil:return t=>Math.ceil(r[0](t));case m_.Round:return t=>Math.round(r[0](t));case m_.Sin:return t=>Math.sin(r[0](t));case m_.Cos:return t=>Math.cos(r[0](t));case m_.Atan:return 2===n?t=>Math.atan2(r[0](t),r[1](t)):t=>Math.atan(r[0](t));case m_.Sqrt:return t=>Math.sqrt(r[0](t));default:throw new Error(`Unsupported numeric operator ${i}`)}}(t,e);case m_.Match:return function(t,e){const i=t.args.length,n=new Array(i);for(let r=0;r{const e=n[0](t);for(let r=1;r4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return i}const z_="renderOrder";const Y_=class extends Al{constructor(t){t=t||{};const e=Object.assign({},t);delete e.style,delete e.renderBuffer,delete e.updateWhileAnimating,delete e.updateWhileInteracting,super(e),this.declutter_=void 0!==t.declutter&&t.declutter,this.renderBuffer_=void 0!==t.renderBuffer?t.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(t.style),this.updateWhileAnimating_=void 0!==t.updateWhileAnimating&&t.updateWhileAnimating,this.updateWhileInteracting_=void 0!==t.updateWhileInteracting&&t.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(t){return super.getFeatures(t)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(z_)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(t){t.declutterTree||(t.declutterTree=new wf(9)),this.getRenderer().renderDeclutter(t)}setRenderOrder(t){this.set(z_,t)}setStyle(t){this.style_=function(t){if(void 0===t)return Mm;if(!t)return null;if("function"==typeof t)return t;if(t instanceof Nm)return t;if(!Array.isArray(t))return w_([t]);if(0===t.length)return[];const e=t.length,i=t[0];if(i instanceof Nm){const i=new Array(e);for(let n=0;no&&(this.instructions.push([J_.CUSTOM,o,l,t,i,Pa]),this.hitDetectionInstructions.push([J_.CUSTOM,o,l,t,n||i,Pa]));break;case"Point":a=t.getFlatCoordinates(),this.coordinates.push(a[0],a[1]),l=this.coordinates.length,this.instructions.push([J_.CUSTOM,o,l,t,i]),this.hitDetectionInstructions.push([J_.CUSTOM,o,l,t,n||i])}this.endGeometry(e)}beginGeometry(t,e){this.beginGeometryInstruction1_=[J_.BEGIN_GEOMETRY,e,0,t],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[J_.BEGIN_GEOMETRY,e,0,t],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){const t=this.hitDetectionInstructions;let e;t.reverse();const i=t.length;let n,r,s=-1;for(e=0;ethis.maxLineWidth&&(this.maxLineWidth=i.lineWidth,this.bufferedMaxExtent_=null)}else i.strokeStyle=void 0,i.lineCap=void 0,i.lineDash=null,i.lineDashOffset=void 0,i.lineJoin=void 0,i.lineWidth=void 0,i.miterLimit=void 0}createFill(t){const e=t.fillStyle,i=[J_.SET_FILL_STYLE,e];return"string"!=typeof e&&i.push(!0),i}applyStroke(t){this.instructions.push(this.createStroke(t))}createStroke(t){return[J_.SET_STROKE_STYLE,t.strokeStyle,t.lineWidth*this.pixelRatio,t.lineCap,t.lineJoin,t.miterLimit,this.applyPixelRatio(t.lineDash),t.lineDashOffset*this.pixelRatio]}updateFillStyle(t,e){const i=t.fillStyle;"string"==typeof i&&t.currentFillStyle==i||(void 0!==i&&this.instructions.push(e.call(this,t)),t.currentFillStyle=i)}updateStrokeStyle(t,e){const i=t.strokeStyle,n=t.lineCap,r=t.lineDash,s=t.lineDashOffset,o=t.lineJoin,a=t.lineWidth,l=t.miterLimit;(t.currentStrokeStyle!=i||t.currentLineCap!=n||r!=t.currentLineDash&&!ys(t.currentLineDash,r)||t.currentLineDashOffset!=s||t.currentLineJoin!=o||t.currentLineWidth!=a||t.currentMiterLimit!=l)&&(void 0!==i&&e.call(this,t),t.currentStrokeStyle=i,t.currentLineCap=n,t.currentLineDash=r,t.currentLineDashOffset=s,t.currentLineJoin=o,t.currentLineWidth=a,t.currentMiterLimit=l)}endGeometry(t){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;const e=[J_.END_GEOMETRY,t];this.instructions.push(e),this.hitDetectionInstructions.push(e)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=N(this.maxExtent),this.maxLineWidth>0)){const t=this.resolution*(this.maxLineWidth+1)/2;R(this.bufferedMaxExtent_,t,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}};const $_=class extends Z_{constructor(t,e,i,n){super(t,e,i,n),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([J_.DRAW_IMAGE,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}drawMultiPoint(t,e){if(!this.image_)return;this.beginGeometry(t,e);const i=t.getFlatCoordinates(),n=t.getStride(),r=this.coordinates.length,s=this.appendFlatPointCoordinates(i,n);this.instructions.push([J_.DRAW_IMAGE,r,s,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,r,s,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(e)}finish(){return this.reverseHitDetectionInstructions(),this.anchorX_=void 0,this.anchorY_=void 0,this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.height_=void 0,this.scale_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.width_=void 0,super.finish()}setImageStyle(t,e){const i=t.getAnchor(),n=t.getSize(),r=t.getOrigin();this.imagePixelRatio_=t.getPixelRatio(this.pixelRatio),this.anchorX_=i[0],this.anchorY_=i[1],this.hitDetectionImage_=t.getHitDetectionImage(),this.image_=t.getImage(this.pixelRatio),this.height_=n[1],this.opacity_=t.getOpacity(),this.originX_=r[0],this.originY_=r[1],this.rotateWithView_=t.getRotateWithView(),this.rotation_=t.getRotation(),this.scale_=t.getScaleArray(),this.width_=n[0],this.declutterMode_=t.getDeclutterMode(),this.declutterImageWithText_=e}};const ty=class extends Z_{constructor(t,e,i,n){super(t,e,i,n)}drawFlatCoordinates_(t,e,i,n){const r=this.coordinates.length,s=this.appendFlatLineCoordinates(t,e,i,n,!1,!1),o=[J_.MOVE_TO_LINE_TO,r,s];return this.instructions.push(o),this.hitDetectionInstructions.push(o),i}drawLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([J_.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Ol,0],W_);const s=t.getFlatCoordinates(),o=t.getStride();this.drawFlatCoordinates_(s,0,s.length,o),this.hitDetectionInstructions.push(X_),this.endGeometry(e)}drawMultiLineString(t,e){const i=this.state,n=i.strokeStyle,r=i.lineWidth;if(void 0===n||void 0===r)return;this.updateStrokeStyle(i,this.applyStroke),this.beginGeometry(t,e),this.hitDetectionInstructions.push([J_.SET_STROKE_STYLE,i.strokeStyle,i.lineWidth,i.lineCap,i.lineJoin,i.miterLimit,Ol,0],W_);const s=t.getEnds(),o=t.getFlatCoordinates(),a=t.getStride();let l=0;for(let t=0,e=s.length;t=t){const e=(t-a+u)/u,g=yt(i,h,e),d=yt(n,c,e);l.push(g,d),s.push(l),l=[g,d],a==t&&(o+=r),a=0}else if(a0&&s.push(l),s}function ny(t,e,i,n,r){let s,o,a,l,h,c,u,g,d,p,A=i,f=i,m=0,_=0,y=i;for(o=i;ot&&(_>m&&(m=_,A=y,f=o),_=0,y=o-r)),a=l,u=d,g=p),h=i,c=n}return _+=l,_>m?[y,o]:[A,f]}const ry={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};const sy=class extends Z_{constructor(t,e,i,n){super(t,e,i,n),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[Fl]={fillStyle:Fl},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterImageWithText_=void 0}finish(){const t=super.finish();return t.textStates=this.textStates,t.fillStates=this.fillStates,t.strokeStates=this.strokeStates,t}drawText(t,e){const i=this.textFillState_,n=this.textStrokeState_,r=this.textState_;if(""===this.text_||!r||!i&&!n)return;const s=this.coordinates;let o=s.length;const a=t.getType();let l=null,h=t.getStride();if("line"!==r.placement||"LineString"!=a&&"MultiLineString"!=a&&"Polygon"!=a&&"MultiPolygon"!=a){let i=r.overflow?null:[];switch(a){case"Point":case"MultiPoint":l=t.getFlatCoordinates();break;case"LineString":l=t.getFlatMidpoint();break;case"Circle":l=t.getCenter();break;case"MultiLineString":l=t.getFlatMidpoints(),h=2;break;case"Polygon":l=t.getFlatInteriorPoint(),r.overflow||i.push(l[2]/this.resolution),h=3;break;case"MultiPolygon":const e=t.getFlatInteriorPoints();l=[];for(let t=0,n=e.length;t{const n=s[2*(t+i)]===l[i*h]&&s[2*(t+i)+1]===l[i*h+1];return n||--t,n}))}this.saveTextStates_(),(r.backgroundFill||r.backgroundStroke)&&(this.setFillStrokeStyle(r.backgroundFill,r.backgroundStroke),r.backgroundFill&&this.updateFillStyle(this.state,this.createFill),r.backgroundStroke&&(this.updateStrokeStyle(this.state,this.applyStroke),this.hitDetectionInstructions.push(this.createStroke(this.state)))),this.beginGeometry(t,e);let c=r.padding;if(c!=ql&&(r.scale[0]<0||r.scale[1]<0)){let t=r.padding[0],e=r.padding[1],i=r.padding[2],n=r.padding[3];r.scale[0]<0&&(e=-e,n=-n),r.scale[1]<0&&(t=-t,i=-i),c=[t,e,i,n]}const u=this.pixelRatio;this.instructions.push([J_.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,void 0,this.declutterImageWithText_,c==ql?ql:c.map((function(t){return t*u})),!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]);const g=1/u,d=this.state.fillStyle;r.backgroundFill&&(this.state.fillStyle=Fl,this.hitDetectionInstructions.push(this.createFill(this.state))),this.hitDetectionInstructions.push([J_.DRAW_IMAGE,o,n,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[g,g],NaN,void 0,this.declutterImageWithText_,c,!!r.backgroundFill,!!r.backgroundStroke,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?Fl:this.fillKey_,this.textOffsetX_,this.textOffsetY_,i]),r.backgroundFill&&(this.state.fillStyle=d,this.hitDetectionInstructions.push(this.createFill(this.state))),this.endGeometry(e)}else{if(!lt(this.getBufferedMaxExtent(),t.getExtent()))return;let i;if(l=t.getFlatCoordinates(),"LineString"==a)i=[l.length];else if("MultiLineString"==a)i=t.getEnds();else if("Polygon"==a)i=t.getEnds().slice(0,1);else if("MultiPolygon"==a){const e=t.getEndss();i=[];for(let t=0,n=e.length;tt[2]}else b=I>w;const L=Math.PI,B=[],M=C+n===e;let T;if(f=0,m=v,g=t[e=C],d=t[e+1],M){_(),T=Math.atan2(d-A,g-p),b&&(T+=T>0?-L:L);const t=(w+I)/2,e=(S+E)/2;return B[0]=[t,e,(x-s)/2,T,r],B}for(let t=0,u=(r=r.replace(/\n/g," ")).length;t0?-L:L),void 0!==T){let t=I-T;if(t+=t>L?-2*L:t<-L?2*L:0,Math.abs(t)>o)return null}T=I;const E=t;let C=0;for(;t0&&t.push("\n",""),t.push(e,""),t}const _y=class{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=[1,0,0,1,0,0],this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const r=t+e+i+n;if(this.labels_[r])return this.labels_[r];const s=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],l=this.pixelRatio,h=[a.scale[0]*l,a.scale[1]*l],c=Array.isArray(t),u=a.justify?ry[a.justify]:fy(Array.isArray(t)?t[0]:t,a.textAlign||Gl),g=n&&s.lineWidth?s.lineWidth:0,d=c?t:t.split("\n").reduce(my,[]),{width:p,height:A,widths:f,heights:m,lineWidths:_}=function(t,e){const i=[],n=[],r=[];let s=0,o=0,a=0,l=0;for(let h=0,c=e.length;h<=c;h+=2){const u=e[h];if("\n"===u||h===c){s=Math.max(s,o),r.push(o),o=0,a+=l;continue}const g=e[h+1]||t.font,d=Kl(g,u);i.push(d),o+=d;const p=Xl(g);n.push(p),l=Math.max(l,p)}return{width:s,height:a,widths:i,heights:n,lineWidths:r}}(a,d),y=p+g,I=[],E=(y+2)*h[0],C=(A+g)*h[1],v={width:E<0?Math.floor(E):Math.ceil(E),height:C<0?Math.floor(C):Math.ceil(C),contextInstructions:I};1==h[0]&&1==h[1]||I.push("scale",h),n&&(I.push("strokeStyle",s.strokeStyle),I.push("lineWidth",g),I.push("lineCap",s.lineCap),I.push("lineJoin",s.lineJoin),I.push("miterLimit",s.miterLimit),I.push("setLineDash",[s.lineDash]),I.push("lineDashOffset",s.lineDashOffset)),i&&I.push("fillStyle",o.fillStyle),I.push("textBaseline","middle"),I.push("textAlign","center");const x=.5-u;let w=u*y+x*g;const S=[],b=[];let L,B=0,M=0,T=0,R=0;for(let t=0,e=d.length;tt?t-l:r,y=s+h>e?e-h:s,I=d[3]+_*u[0]+d[1],E=d[0]+y*u[1]+d[2],C=f-d[3],v=m-d[0];let x;return(p||0!==c)&&(cy[0]=C,dy[0]=C,cy[1]=v,uy[1]=v,uy[0]=C+I,gy[0]=uy[0],gy[1]=v+E,dy[1]=gy[1]),0!==c?(x=Eo([1,0,0,1,0,0],i,n,1,1,c,-i,-n),_o(x,cy),_o(x,uy),_o(x,gy),_o(x,dy),G(Math.min(cy[0],uy[0],gy[0],dy[0]),Math.min(cy[1],uy[1],gy[1],dy[1]),Math.max(cy[0],uy[0],gy[0],dy[0]),Math.max(cy[1],uy[1],gy[1],dy[1]),hy)):G(Math.min(C,C+I),Math.min(v,v+E),Math.max(C,C+I),Math.max(v,v+E),hy),g&&(f=Math.round(f),m=Math.round(m)),{drawImageX:f,drawImageY:m,drawImageW:_,drawImageH:y,originX:l,originY:h,declutterBox:{minX:hy[0],minY:hy[1],maxX:hy[2],maxY:hy[3],value:A},canvasTransform:x,scale:u}}replayImageOrLabel_(t,e,i,n,r,s,o){const a=!(!s&&!o),l=n.declutterBox,h=t.canvas,c=o?o[2]*n.scale[0]/2:0;return l.minX-c<=h.width/e&&l.maxX+c>=0&&l.minY-c<=h.height/e&&l.maxY+c>=0&&(a&&this.replayTextBackground_(t,cy,uy,gy,dy,s,o),Zl(t,n.canvasTransform,r,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=_o(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t.strokeStyle=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const r=this.textStates[e],s=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,l=fy(Array.isArray(t)?t[0]:t,r.textAlign||Gl),h=ry[r.textBaseline||Ul],c=o&&o.lineWidth?o.lineWidth:0;return{label:s,anchorX:l*(s.width/a-2*r.scale[0])+2*(.5-l)*c,anchorY:h*s.height/a+2*(.5-h)*c}}execute_(t,e,i,n,r,s,o,a){let l;var h,c;this.pixelCoordinates_&&ys(i,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),l=Aa(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),h=this.renderedTransform_,c=i,h[0]=c[0],h[1]=c[1],h[2]=c[2],h[3]=c[3],h[4]=c[4],h[5]=c[5]);let u=0;const g=n.length;let d,p,A,f,m,_,y,I,E,C,v,x,w=0,S=0,b=0,L=null,B=null;const M=this.coordinateCache_,T=this.viewRotation_,R=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,N={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:T},P=this.instructions!=n||this.overlaps?0:200;let F,D,O,Q;for(;uP&&(this.fill_(t),S=0),b>P&&(t.stroke(),b=0),S||b||(t.beginPath(),f=NaN,m=NaN),++u;break;case J_.CIRCLE:w=i[1];const n=l[w],h=l[w+1],c=l[w+2]-n,g=l[w+3]-h,k=Math.sqrt(c*c+g*g);t.moveTo(n+k,h),t.arc(n,h,k,0,2*Math.PI,!0),++u;break;case J_.CLOSE_PATH:t.closePath(),++u;break;case J_.CUSTOM:w=i[1],d=i[2];const G=i[3],U=i[4],q=6==i.length?i[5]:void 0;N.geometry=G,N.feature=F,u in M||(M[u]=[]);const V=M[u];q?q(l,w,d,2,V):(V[0]=l[w],V[1]=l[w+1],V.length=2),U(V,N),++u;break;case J_.DRAW_IMAGE:w=i[1],d=i[2],I=i[3],p=i[4],A=i[5];let z=i[6];const Y=i[7],j=i[8],H=i[9],X=i[10];let W=i[11];const K=i[12];let J=i[13];const Z=i[14],$=i[15];if(!I&&i.length>=20){E=i[19],C=i[20],v=i[21],x=i[22];const t=this.drawLabelWithPointPlacement_(E,C,v,x);I=t.label,i[3]=I;const e=i[23];p=(t.anchorX-e)*this.pixelRatio,i[4]=p;const n=i[24];A=(t.anchorY-n)*this.pixelRatio,i[5]=A,z=I.height,i[6]=z,J=I.width,i[13]=J}let tt,et,it,nt;i.length>25&&(tt=i[25]),i.length>17?(et=i[16],it=i[17],nt=i[18]):(et=ql,it=!1,nt=!1),X&&R?W+=T:X||R||(W-=T);let rt=0;for(;wi)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const r=[];for(let t=0,e=n.length;t0){if(!s||"Image"!==g&&"Text"!==g||s.includes(t)){const i=(u[a]-3)/4,s=n-i%o,l=n-(i/o|0),h=r(t,e,s*s+l*l);if(h)return h}h.clearRect(0,0,o,o);break}}const p=Object.keys(this.executorsByZIndex_).map(Number);let A,f,m,_,y;for(p.sort(ps),A=p.length-1;A>=0;--A){const t=p[A].toString();for(m=this.executorsByZIndex_[t],f=yy.length-1;f>=0;--f)if(g=yy[f],_=m[g],void 0!==_&&(y=_.executeHitDetection(h,a,i,d,c),y))return y}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],r=e[2],s=e[3],o=[i,n,i,s,r,s,r,n];return Aa(o,0,8,2,t,o),o}isEmpty(){return ws(this.executorsByZIndex_)}execute(t,e,i,n,r,s,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let l,h,c,u,g,d;for(a.sort(ps),this.maxExtent_&&(t.save(),this.clip(t,i)),s=s||yy,o&&a.reverse(),l=0,h=a.length;l{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];_o(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,r=this.renderedProjection_,s=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],l=t[0]*Cy,h=t[1]*Cy;a.push(this.getRenderTransform(e,i,n,Cy,l,h,0).slice());const c=o.getSource(),u=r.getExtent();if(c.getWrapX()&&r.canWrapX()&&!D(u,s)){let t=s[0];const r=at(u);let o,c=0;for(;tu[2];)++c,o=r*c,a.push(this.getRenderTransform(e,i,n,Cy,l,h,o).slice()),t-=r}this.hitDetectionImageData_=vy(t,a,this.renderedFeatures_,o.getStyleFunction(),s,i,n)}e(xy(t,this.renderedFeatures_,this.hitDetectionImageData_))}))}forEachFeatureAtCoordinate(t,e,i,n,r){if(!this.replayGroup_)return;const s=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),l={},h=function(t,e,i){const s=Xs(t),o=l[s];if(o){if(!0!==o&&ic=n.forEachFeatureAtCoordinate(t,s,o,i,h,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Zo],r=t.viewHints[$o],s=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!s&&n||!o&&r)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,l=t.viewState,h=l.projection,c=l.resolution,u=t.pixelRatio,g=e.getRevision(),d=e.getRenderBuffer();let p=e.getRenderOrder();void 0===p&&(p=$f);const A=l.center.slice(),f=R(a,d*c),m=f.slice(),_=[f.slice()],y=h.getExtent();if(i.getWrapX()&&h.canWrapX()&&!D(y,t.extent)){const t=at(y),e=Math.max(at(f)/2,t);f[0]=y[0]-e,f[2]=y[2]+e,kt(A,h);const i=gt(_[0],h);i[0]y[0]&&i[2]>y[2]&&_.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==g&&this.renderedRenderOrder_==p&&D(this.wrappedRenderedExtent_,f))return ys(this.renderedExtent_,m)||(this.hitDetectionImageData_=null,this.renderedExtent_=m),this.renderedCenter_=A,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const I=new ay(em(c,u),f,c,u);let E;this.getLayer().getDeclutter()&&(E=new ay(em(c,u),f,c,u));const C=pe();let v;if(C){for(let t=0,e=_.length;t{let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,x,i,I,v,E);w=w&&!e}},b=me(f,h),L=i.getFeaturesInExtent(b);p&&L.sort(p);for(let t=0,e=L.length;t{const i=e.get("features");let n;return qL(i)||(n=i.find((e=>e===t))),n}))}animate(t){const e=t,i=this.get("animationDuration");if(!i)return;if(this.animation_.resolution!==e.frameState.viewState.resolution&&this.sourceChanged){const t=e.frameState.viewState.resolution,i=e.frameState.extent;this.animation_.reverse=this.animation_.resolution>=t,this.prepareAnimation_(i,e.frameState.viewState.resolution),e.frameState.time=this.animation_.start}const n=this.animation_.clustersFrom.length;if(n>0&&n<=1e3&&this.animation_.start){const t=sm(e);let n=(e.frameState.time-this.animation_.start)/i;n>1&&(this.animation_.start=!1,n=1),n=this.get("animationMethod")(n),e.context.save(),e.context.globalAlpha=this.getOpacity(),this.animation_.clustersFrom.forEach(((i,r)=>{const s=i.getGeometry().getCoordinates(),o=this.animation_.clustersTo[r].getGeometry().getCoordinates();this.animation_.reverse?(s[0]=o[0]+n*(s[0]-o[0]),s[1]=o[1]+n*(s[1]-o[1])):(s[0]+=n*(o[0]-s[0]),s[1]+=n*(o[1]-s[1]));const a=this.getStyle()(i,e.frameState.viewState.resolution),l=new qa(s);qL(a)||a.forEach((e=>{const i=e.getImage();qL(i)||(null==i.getOrigin()&&(i.origin_=[]),null==i.getAnchor()&&(i.normalizedAnchor_=[]),null==i.getSize()&&(i.size_=[])),t.setStyle(e),t.drawGeometry(l)}))})),e.context.restore(),e.frameState.animate=!0,e.context.save(),e.context.beginPath(),e.context.rect(0,0,0,0),e.context.clip(),this.clip_=!0}else this.animation_.clustersFrom.length=0,this.animation_.clustersTo.length=0,this.animation_.start=!1}prepareAnimation_(t,e){this.animation_.clustersFrom=[],this.animation_.clustersTo=[];const i=R(t,100*e),n=this.oldCluster_.getFeaturesInExtent(i),r=this.getSource().getFeaturesInExtent(i),s=this.animation_.reverse?r:n,o=this.animation_.reverse?n:r;s.forEach((t=>{const e=t.get("features");if(!qL(e)){const i=by.getClusterForFeature(e[0],o);qL(i)||!1===i||(this.animation_.clustersFrom.push(t),this.animation_.clustersTo.push(i))}})),this.animation_.resolution=e,this.sourceChanged=!1,this.animation_.start=(new Date).getTime()}postanimate(t){this.clip_&&(t.context.restore(),this.clip_=!1)}setStyle(t){super.setStyle(this.styleCluster_)}}const Ly=by,By="select";class My extends us{constructor(t,e,i,n){super(t),this.selected=e,this.deselected=i,this.mapBrowserEvent=n}}const Ty={};class Ry extends Dh{constructor(t){let e;if(super(),this.on,this.once,this.un,t=t||{},this.boundAddFeature_=this.addFeature_.bind(this),this.boundRemoveFeature_=this.removeFeature_.bind(this),this.condition_=t.condition?t.condition:Xh,this.addCondition_=t.addCondition?t.addCondition:Hh,this.removeCondition_=t.removeCondition?t.removeCondition:Hh,this.toggleCondition_=t.toggleCondition?t.toggleCondition:Jh,this.multi_=!!t.multi&&t.multi,this.filter_=t.filter?t.filter:Is,this.hitTolerance_=t.hitTolerance?t.hitTolerance:0,this.style_=void 0!==t.style?t.style:function(){const t=Tm();return _s(t.Polygon,t.LineString),_s(t.GeometryCollection,t.LineString),function(e){return e.getGeometry()?t[e.getGeometry().getType()]:null}}(),this.features_=t.features||new eo,t.layers)if("function"==typeof t.layers)e=t.layers;else{const i=t.layers;e=function(t){return i.includes(t)}}else e=Is;this.layerFilter_=e,this.featureLayerAssociation_={}}addFeatureLayerAssociation_(t,e){this.featureLayerAssociation_[Xs(t)]=e}getFeatures(){return this.features_}getHitTolerance(){return this.hitTolerance_}getLayer(t){return this.featureLayerAssociation_[Xs(t)]}setHitTolerance(t){this.hitTolerance_=t}setMap(t){this.getMap()&&this.style_&&this.features_.forEach(this.restorePreviousStyle_.bind(this)),super.setMap(t),t?(this.features_.addEventListener(Js,this.boundAddFeature_),this.features_.addEventListener(Zs,this.boundRemoveFeature_),this.style_&&this.features_.forEach(this.applySelectedStyle_.bind(this))):(this.features_.removeEventListener(Js,this.boundAddFeature_),this.features_.removeEventListener(Zs,this.boundRemoveFeature_))}addFeature_(t){const e=t.element;if(this.style_&&this.applySelectedStyle_(e),!this.getLayer(e)){const t=this.getMap().getAllLayers().find((function(t){if(t instanceof Sy&&t.getSource()&&t.getSource().hasFeature(e))return t}));t&&this.addFeatureLayerAssociation_(e,t)}}removeFeature_(t){this.style_&&this.restorePreviousStyle_(t.element)}getStyle(){return this.style_}applySelectedStyle_(t){const e=Xs(t);e in Ty||(Ty[e]=t.getStyle()),t.setStyle(this.style_)}restorePreviousStyle_(t){const e=this.getMap().getInteractions().getArray();for(let i=e.length-1;i>=0;--i){const n=e[i];if(n!==this&&n instanceof Ry&&n.getStyle()&&-1!==n.getFeatures().getArray().lastIndexOf(t))return void t.setStyle(n.getStyle())}const i=Xs(t);t.setStyle(Ty[i]),delete Ty[i]}removeFeatureLayerAssociation_(t){delete this.featureLayerAssociation_[Xs(t)]}handleEvent(t){if(!this.condition_(t))return!0;const e=this.addCondition_(t),i=this.removeCondition_(t),n=this.toggleCondition_(t),r=!e&&!i&&!n,s=t.map,o=this.getFeatures(),a=[],l=[];if(r){xs(this.featureLayerAssociation_),s.forEachFeatureAtPixel(t.pixel,((t,e)=>{if(t instanceof _d&&this.filter_(t,e))return this.addFeatureLayerAssociation_(t,e),l.push(t),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=o.getLength()-1;t>=0;--t){const e=o.item(t),i=l.indexOf(e);i>-1?l.splice(i,1):(o.remove(e),a.push(e))}0!==l.length&&o.extend(l)}else{s.forEachFeatureAtPixel(t.pixel,((t,r)=>{if(t instanceof _d&&this.filter_(t,r))return!e&&!n||o.getArray().includes(t)?(i||n)&&o.getArray().includes(t)&&(a.push(t),this.removeFeatureLayerAssociation_(t)):(this.addFeatureLayerAssociation_(t,r),l.push(t)),!this.multi_}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_});for(let t=a.length-1;t>=0;--t)o.remove(a[t]);o.extend(l)}return(l.length>0||a.length>0)&&this.dispatchEvent(new My(By,l,a,t)),!0}}const Ny=Ry;const Py=class extends Ny{constructor(t={}){const e=t,i=new Sy({source:new kf({features:new eo,useSpatialIndex:!0}),name:"Cluster overlay",updateWhileAnimating:!0,updateWhileInteracting:!0,displayInLayerSwitcher:!1,style:e.featureStyle});t.layers.push(i),e.filter=(t,e)=>!(!e&&t.get("selectclusterlink")),super(e),this.map=e.map,this.pointRadius=e.pointRadius||12,this.circleMaxObjects=e.circleMaxObjects||10,this.maxObjects=e.maxObjects||60,this.spiral=!1!==e.spiral,this.animate=e.animate,this.animationDuration=e.animationDuration||500,this.selectCluster_=!1!==e.selectCluster,this.maxFeaturesToSelect=e.maxFeaturesToSelect,this.facadeLayer_=e.fLayer,this.style_=e.style,this.filter_=e.filter,this.overlayLayer_=i,this.originalHandleEvent=this.handleEvent,this.on("select",this.selectCluster.bind(this),this)}setMap(t){this.getMap()&&(this.getMap().getView()&&this.getMap().getView().un("change:resolution",this.clear.bind(this)),this.getMap().removeLayer(this.overlayLayer_)),Ny.prototype.setMap.call(this,t),this.overlayLayer_.setMap(t),t&&t.getView()&&t.getView().on("change:resolution",this.clear.bind(this)),this.handleEvent=t=>(this.originalHandleEvent.apply(this,[t]),!0)}clear(){this.getFeatures().clear(),this.overlayLayer_.getSource().clear()}getLayer(){return this.overlayLayer_}refreshViewEvents(){this.getMap()&&this.getMap().getView()&&this.getMap().getView().on("change:resolution",this.clear.bind(this))}selectCluster(t){if(!t.selected.length)return void this.clear();const e=t.selected[0];if(e.get("selectclusterfeature"))return;const i=e.get("features");if(!i||1===i.length)return;if((!i||i.length>this.maxFeaturesToSelect)&&this.facadeLayer_.getImpl().getNumZoomLevels()-this.map.getZoom()!=1){const t=qd.getFeaturesExtent(i,this.map.getProjection().code);return void this.map.setBbox(t)}this.selectCluster_||this.getFeatures().clear();const n=e.getGeometry().getCoordinates(),r=this.getMap().getView().getResolution(),s=r*this.pointRadius*(.5+i.length/4);!this.spiral||i.length<=this.circleMaxObjects?(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInCircle_(i,r,s,n)):(this.overlayLayer_.getSource().refresh(),this.drawFeaturesAndLinsInSpiral_(i,r,n)),this.animate&&this.animateCluster_(n)}drawFeaturesAndLinsInCircle_(t,e,i,n){const r=Math.min(t.length,this.circleMaxObjects);for(let s=0;s{r.set(e,t.get(e))}));let s=t.getStyle();s||(s=this.facadeLayer_.getStyle().getImpl().oldOLLayer.getStyle());const o=s(t,e),a=o.map?o.map((t=>t.clone())):[o.clone()];r.setId(t.getId()),r.setStyle(a),r.set("features",[t]);const l=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new qa(n):t.getGeometry(),h=!0===["Point","MultiPoint"].includes(t.getGeometry().getType())?new wd([i,n]):new wd([i,qd.getCentroid(t.getGeometry())]);r.set("geometry",l),this.overlayLayer_.getSource().addFeature(r);const c=new _d({selectclusterlink:!0,geometry:h});this.overlayLayer_.getSource().addFeature(c)}animateCluster_(t,e){this.listenerKey_&&(this.overlayLayer_.setVisible(!0),zs(this.listenerKey_));const i=this.overlayLayer_.getSource().getFeatures();if(!i.length)return;this.overlayLayer_.setVisible(!1);const n=this.animationDuration||500,r=(new Date).getTime();this.listenerKey_=this.facadeLayer_.getImpl().getOLLayer().on(["postrender","postcompose"],(e=>{const s=sm(e),o=this.getMap().getView().getResolution(),a=ua((e.frameState.time-r)/n);for(let n=0;nt.clone()));for(let e=0;et.clone())):[g.clone()];for(let t=0;t1)return zs(this.listenerKey_),this.overlayLayer_.setVisible(!0),void this.overlayLayer_.changed();e.frameState.animate=!0}}),this)}};class Fy extends Nm{constructor(t={}){super(t)}clone(){let t=this.getGeometry();return t&&t.clone&&(t=t.clone()),new Fy({geometry:t,fill:this.getFill()?this.getFill().clone():void 0,image:this.getImage()?this.getImage().clone():void 0,stroke:this.getStroke()?this.getStroke().clone():void 0,text:this.getText()?this.getText().clone():void 0,zIndex:this.getZIndex()})}}const Dy=Fy,Oy=(t,e,i)=>(t[0]-i[0])*(e[1]-i[1])-(t[1]-i[1])*(e[0]-i[0])<=0,Qy=t=>{t.sort(((t,e)=>t[0]===e[0]?t[1]-e[1]:t[0]-e[0]));const e=[];for(let i=0;i=2&&Oy(e[e.length-2],e[e.length-1],t[i]);)e.pop();e.push(t[i])}const i=[];for(let e=t.length-1;e>=0;e-=1){for(;i.length>=2&&Oy(i[i.length-2],i[i.length-1],t[e]);)i.pop();i.push(t[e])}return i.pop(),e.pop(),e.concat(i)};const ky=class extends cm{constructor(t,e){super({}),this.convexHullLayer_=null,this.oldOLLayer_=null,this.optionsVendor_=e,this.options_=t,this.clusterLayer_=null,this.selectClusterInteraction_=null,this.hoverInteraction_=null}applyToLayer(t,e){this.layer_=t,this.options_=this.updateLastRange_(),qL(this.selectClusterInteraction_)||this.selectClusterInteraction_.clear(),this.updateCanvas();const i=t.getFeatures();i.length>0?this.clusterize_(i):this.layer_.on(su,this.clusterize_.bind(this),this)}get selectClusterInteraction(){return this.selectClusterInteraction_}clusterize_(e){const i=e.map((t=>t.getImpl().getOLFeature()));this.clusterLayer_=new Ly({name:"Cluster",source:new Gf({distance:this.options_.distance,geometryFunction:t=>new qa($(t.getGeometry().getExtent())),source:new kf({features:i})}),animationDuration:this.optionsVendor_.animationDuration,style:this.clusterStyleFn_.bind(this),animationMethod:t[this.optionsVendor_.animationMethod]}),!1===this.options_.animated&&this.clusterLayer_.set("animationDuration",void 0),this.clusterLayer_.setZIndex(99999);const n=this.layer_.getImpl().getOLLayer();n instanceof Ly||(this.oldOLLayer_=n),this.clusterLayer_.setMaxResolution(this.oldOLLayer_.getMaxResolution()),this.clusterLayer_.setMinResolution(this.oldOLLayer_.getMinResolution()),this.layer_.getImpl().setOLLayer(this.clusterLayer_),qL(this.options_.ranges)&&(this.options_.ranges=this.getDefaultRanges_()),!1!==this.options_.hoverInteraction&&this.addCoverInteraction_(),!1!==this.options_.selectInteraction&&this.addSelectInteraction_()}setRanges(t){qL(t)?this.options_.ranges=this.getDefaultRanges_():this.options_.ranges=t}updateLastRange_(){const t=_B({},this.options_);if(!qL(this.options_)&&!qL(this.options_.ranges)){let e=t.ranges;if(e.length>0){e=e.sort(((t,e)=>t.min-e.min));const i=e.pop();if(qL(i.max)){const t=this.layer_.getFeatures().length;i.max=t}t.ranges.push(i)}}return t}static updateRangeImpl(t,e,i,n,r){const s=r.getOptions().ranges.find((i=>i.min===t&&i.max===e))||!1;return s&&(s.style=i),s}setAnimated(t,e,i){return i.getOptions().animated=t,!1===t?this.clusterLayer_.set("animationDuration",void 0):this.clusterLayer_.set("animationDuration",this.optionsVendor_.animationDuration),this}addSelectInteraction(){this.addSelectInteraction_()}addSelectInteraction_(){const t=this.layer_.getImpl().getMap();this.selectClusterInteraction_=new Py({fLayer:this.layer_,map:t,maxFeaturesToSelect:this.options_.maxFeaturesToSelect,pointRadius:this.optionsVendor_.distanceSelectFeatures,animate:!0,layers:[this.clusterLayer_]}),this.selectClusterInteraction_.on("select",this.selectClusterFeature_.bind(this),this),t.getMapImpl().addInteraction(this.selectClusterInteraction_),t.getMapImpl().on("change:view",(t=>this.selectClusterInteraction_.refreshViewEvents(t)))}removeSelectInteraction(){this.removeSelectInteraction_()}removeSelectInteraction_(){this.layer_.getImpl().getMap().getMapImpl().removeInteraction(this.selectClusterInteraction_)}hoverFeatureFn_(t,e){if(!qL(t)){let e=[];t.forEach((t=>{t instanceof OB?e=e.concat(t.getAttribute("features")):e.push(t)}));const i=e.map((t=>t.getImpl().getOLFeature().getGeometry().getCoordinates())),n=Qy(i);if(n.length>2){const t=new _d(new sl([n])),e=PB.olFeature2Facade(t);qL(this.convexHullLayer_)?(this.convexHullLayer_=new _I({name:`cluster_cover_${this.layer_.name}`,extract:!1},{displayInLayerSwitcher:!1,style:new e_({polygon:this.optionsVendor_.convexHullStyle})}),this.convexHullLayer_.addFeatures(e),this.layer_.getImpl().getMap().addLayers(this.convexHullLayer_),this.layer_.getImpl().getMap().getMapImpl().getView().on("change:resolution",this.clearConvexHull.bind(this),this),this.convexHullLayer_.setStyle(new e_({polygon:this.optionsVendor_.convexHullStyle})),this.convexHullLayer_.setZIndex(99990)):(this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures()),this.convexHullLayer_.addFeatures(e))}}}leaveFeatureFn_(t,e){qL(this.convexHullLayer_)||this.convexHullLayer_.removeFeatures(this.convexHullLayer_.getFeatures())}addCoverInteraction_(){this.hoverKey_=this.layer_.on(nu,this.hoverFeatureFn_.bind(this)),this.leaveKey_=this.layer_.on(ru,this.leaveFeatureFn_.bind(this))}removeCoverInteraction_(){this.layer_.unByKey(nu,this.hoverKey_),this.layer_.unByKey(ru,this.leaveKey_)}clusterStyleFn_(t,e,i){let n;const r=t.get("features");if(!r)return new Dy;const s=r.length,o=this.options_.ranges.find((t=>t.min<=s&&t.max>=s));if(qL(o)){if(1===s){let t=r[0].getStyle();t||(t=this.oldOLLayer_.getStyle()),n=t(r[0],e),n[0].setGeometry(r[0].getGeometry())}}else{let r=o.style.clone();if(r instanceof e_||(r=new e_({point:r.getOptions()})),i)r.set("point.fill.opacity",.33);else if(this.options_.displayAmount){r.set("point.label",this.options_.label);let t=r.get("point.label.color");if(qL(t)){const e=r.get("point.fill.color");t=qL(e)?"#000":mB(e),r.set("point.label.color",t)}}n=r.getImpl().olStyleFn(t,e)}return n}getDefaultRanges_(){const t=this.layer_.getFeatures().length;let e=Math.floor(t/3);e=Math.max(e,3);const i=[{min:2,max:e,style:new e_({point:Vy.RANGE_1_DEFAULT})},{min:e,max:2*e,style:new e_({point:Vy.RANGE_2_DEFAULT})},{min:2*e,max:t+1,style:new e_({point:Vy.RANGE_3_DEFAULT})}];return this.options_.ranges=i,i}selectClusterFeature_(t){this.clearConvexHull()}unapply(){qL(this.clusterLayer_)?qL(this.layer_)||this.layer_.un(su,this.clusterize_.bind(this),this):(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.oldOLLayer_.setMaxResolution(this.clusterLayer_.getMaxResolution()),this.oldOLLayer_.setMinResolution(this.clusterLayer_.getMinResolution()),this.removeCoverInteraction_(),this.removeSelectInteraction_(),this.clearConvexHull(),this.deactivateChangeResolutionEvent(),this.layer_.redraw(),this.deactivateChangeEvent())}clearConvexHull(){null!==this.convexHullLayer_&&(this.layer_.getImpl().getMap().removeLayers(this.convexHullLayer_),this.convexHullLayer_=null)}updateCanvas(){}activateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource(),e=Gf.prototype.refresh;t.getSource().on("change",e)}}deactivateChangeEvent(){if(null!==this.clusterLayer_){const t=this.clusterLayer_.getSource();zs({bindTo:void 0,callOnce:!1,listener:Gf.prototype.refresh,target:t.getSource(),type:"change"})}}deactivateChangeResolutionEvent(){if(!qL(this.layer_)&&!qL(this.layer_.getImpl())){const t=this.layer_.getImpl().getMap();if(!qL(t)&&!qL(t.getMapImpl())){const e=t.getMapImpl().getView();zs({type:"change:resolution",bindTo:void 0,listener:this.clearConvexHull,target:e,callOnce:!1})}}}deactivateTemporarilyChangeEvent(t,e){this.deactivateChangeEvent(),VL(t)&&(null==e?t():t(...e))}get oldOLLayer(){return this.oldOLLayer_}};class Gy extends Jm{constructor(t,e){super(t,e),this.styles_=[]}apply(t){this.layer_=t,qL(t)||this.updateInternal_(t)}add(t){let e=t;const i=this.layer_;return this.unapplyInternal(this.layer_),UL(e)||(e=[e]),e=e.filter((t=>t.constructor!==this.constructor)),e.forEach((t=>{this.styles_=this.styles_.filter((e=>e.constructor!==t.constructor))})),this.styles_=this.styles_.concat(e),qL(i)||this.updateInternal_(i),this}remove(t){let e=t;const i=this.layer_;UL(e)||(e=[e]),qL(this.layer_)||this.unapplyInternal(this.layer_),this.styles_=this.styles_.filter((t=>!e.includes(t))),i.setStyle(this.oldStyle_,!0),i.setStyle(this)}getStyles(){return this.styles_}getOldStyle(){return this.oldStyle_}clear(){this.remove(this.styles_)}unapplyInternal(t){this.styles_.concat(this).sort(((t,e)=>IB(e,t))).forEach((e=>{e instanceof Gy&&e.unapplySoft(t)}))}unapplySoft(t){}unapply(t){this.unapplyInternal(t),this.layer_=null}updateInternal_(t){this.styles_.concat(this).sort(((t,e)=>IB(t,e))).forEach((e=>{e instanceof Gy?e.applyInternal(t):e instanceof Jm&&e.apply(t,!0)}))}}const Uy=Gy;class qy extends Uy{constructor(t={},e={}){super(t,new ky(t,e)),_B(t,qy.DEFAULT),_B(e,qy.DEFAULT_VENDOR),this.optsVendor_=e,this.oldStyle_=null}apply(t){super.apply(t);const e=t.getStyle();this.oldStyle_=e instanceof qy?e.getOldStyle():e}unapplySoft(t){this.getImpl().unapply()}add(t){return qL(this.layer_)||this.unapplySoft(this.layer_),super.add(t)}applyInternal(t){this.layer_=t,this.getImpl().applyToLayer(t),this.updateCanvas()}getOldStyle(){return this.oldStyle_}getRanges(){return this.options_.ranges}getOptions(){return this.options_}setRanges(t){return this.getImpl().ranges=t,this.unapply(this.layer_),this.layer_.style=this,this}getRange(t,e){return this.options_.ranges.find((i=>i.min===t&&i.max===e))}updateRange(t,e,i){return ky.updateRangeImpl(t,e,i,this.layer_,this),this.unapply(this.layer_),this.layer_.style=this,this}setAnimated(t){return this.getImpl().setAnimated(t,this.layer_,this)}isAnimated(){return this.options_.animated}toImage(){let t;return t=this.oldStyle_ instanceof Jm?this.oldStyle_.toImage():super.toImage(),t}refresh(){if(!qL(this.layer_)){const t=this.layer_;this.unapply(this.layer_),this.apply(t),this.updateCanvas()}}get ORDER(){return 4}addSelectInteraction(){this.getImpl().addSelectInteraction()}removeSelectInteraction(){this.getImpl().removeSelectInteraction()}toJSON(){let t=_B({},this.getOptions());t.ranges=this.getRanges().map((t=>{const e=_B({},t);return e.style=t.style.serialize(),e})),t=CB(t);let e=_B({},this.optsVendor_);e=CB(e);return{parameters:[t,e,this.getStyles().map((t=>t.serialize()))],deserializedMethod:"M.style.Cluster.deserialize"}}static deserialize([t,e,i]){let n=t;n.ranges.forEach((t=>{t.style=Jm.deserialize(t.style)})),n=vB(t);const r=vB(e),s=new Function(["options","optsVendor"],"return new M.style.Cluster(options, optsVendor)")(n,r),o=i.map((t=>Jm.deserialize(t)));return s.add(o),s}}qy.DEFAULT={ranges:[],hoverInteraction:!0,displayAmount:!0,selectInteraction:!0,distance:60,animated:!0,maxFeaturesToSelect:15,label:{text:t=>{let e;const i=t.getAttribute("features");return i.length&&(e=i.length.toString()),e},color:"#fff",font:"bold 15px Arial",baseline:"middle",align:"center"}},qy.DEFAULT_VENDOR={animationDuration:250,animationMethod:"linear",distanceSelectFeatures:15,convexHullStyle:{fill:{color:"#fff",opacity:.25},stroke:{color:"#7b98bc"}}},qy.RANGE_1_DEFAULT={fill:{color:"#81c89a"},stroke:{color:"#6eb988",width:3},radius:15},qy.RANGE_2_DEFAULT={fill:{color:"#85b9d2"},stroke:{color:"#6da4be",width:3},radius:20},qy.RANGE_3_DEFAULT={fill:{color:"#938fcf"},stroke:{color:"#827ec5",width:3},radius:25};const Vy=qy,zy="element",Yy="map",jy="offset",Hy="position",Xy="positioning";const Wy=class extends Ks{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container ol-selectable",this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(zy,this.handleElementChanged),this.addChangeListener(Yy,this.handleMapChanged),this.addChangeListener(jy,this.handleOffsetChanged),this.addChangeListener(Hy,this.handlePositionChanged),this.addChangeListener(Xy,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(zy)}getId(){return this.id}getMap(){return this.get(Yy)||null}getOffset(){return this.get(jy)}getPosition(){return this.get(Hy)}getPositioning(){return this.get(Xy)}handleElementChanged(){Nl(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(Rl(this.element),qs(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=Gs(t,gh,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(zy,t)}setMap(t){this.set(Yy,t)}setOffset(t){this.set(jy,t)}setPosition(t){this.set(Hy,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(Hy))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),r=this.getRect(n,[Bl(n),Ml(n)]),s=void 0===(t=t||{}).margin?20:t.margin;if(!D(i,r)){const n=r[0]-i[0],o=i[2]-r[2],a=r[1]-i[1],l=i[3]-r[3],h=[0,0];if(n<0?h[0]=n-s:o<0&&(h[0]=Math.abs(o)+s),a<0?h[1]=a-s:l<0&&(h[1]=Math.abs(l)+s),0!==h[0]||0!==h[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const r=[n[0]+h[0],n[1]+h[1]],s=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(r),duration:s.duration,easing:s.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,r=i.top+window.pageYOffset;return[n,r,n+e[0],r+e[1]]}setPositioning(t){this.set(Xy,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),r=this.getPositioning();this.setVisible(!0);let s="0%",o="0%";"bottom-right"==r||"center-right"==r||"top-right"==r?s="-100%":"bottom-center"!=r&&"center-center"!=r&&"top-center"!=r||(s="-50%"),"bottom-left"==r||"bottom-center"==r||"bottom-right"==r?o="-100%":"center-left"!=r&&"center-center"!=r&&"center-right"!=r||(o="-50%");const a=`translate(${s}, ${o}) translate(${Math.round(t[0]+n[0])+"px"}, ${Math.round(t[1]+n[1])+"px"})`;this.rendered.transform_!=a&&(this.rendered.transform_=a,i.transform=a)}getOptions(){return this.options}};class Ky{static listen(){Ky.WIDTH=window.innerWidth,Ky.HEIGHT=window.innerHeight,window.addEventListener("resize",(t=>{Ky.WIDTH=t.target.innerWidth,Ky.HEIGHT=t.target.innerHeight}))}}Ky.WIDTH=window.innerWidth,Ky.HEIGHT=window.innerHeight,Ky.listen();const Jy=Ky;const Zy=class extends Wy{constructor(t={}){super({}),this.panMapIfOutOfView=t.panMapIfOutOfView,void 0===this.panMapIfOutOfView&&(this.panMapIfOutOfView=!0),this.ani_opts=t.ani_opts,void 0===this.ani_opts&&(this.ani_opts={duration:250}),this.facadeMap_=null,this.cachedAniPixel_=null}addTo(t,e){this.facadeMap_=t,this.container=e,this.content=this.getContentFromContainer(e),uB(this.content),this.setElement(this.container),t.getMapImpl().addOverlay(this)}show(t,e){return this.setPosition(t),this.panMapIfOutOfView&&this.panIntoView_(t),this.content.scrollTop=0,VL(e)&&e(),this}centerByStatus(t,e){const i=this.getMap().getView().getResolution(),n=[].concat(e);if(t===sI.status.COLLAPSED)n[1]-=.1*Jy.HEIGHT*i;else{if(t!==sI.status.DEFAULT)return;n[1]-=.275*Jy.HEIGHT*i}const r=this.facadeMap_.getFeatureCenter();this.facadeMap_.setCenter({x:n[0],y:n[1]}),qL(r)||this.facadeMap_.drawFeatures([r])}getContentFromContainer(t){return t.querySelector("div.m-body")}panIntoView_(t){return this.panIntoSynchronizedAnim_().then((()=>{if(this.isAnimating_=!0,Jy.WIDTH>768){const e=30,i=this.element.querySelector(".m-popup"),n=i.clientWidth+20,r=i.clientHeight+20+e,s=this.getMap().getSize(),o=this.getMap().getView().getCenter(),a=20,l=60,h=n-l,c=this.getOffset(),u=this.getMap().getPixelFromCoordinate(t);if(!qL(u)){const t=u[0]-l,e=s[0]-(u[0]+h),i=u[1]-(r+c[1]),n=s[1]-(u[1]+a)-c[1],g=this.getMap().getPixelFromCoordinate(o),d=g.slice();e<0?d[0]-=e:t<0&&(d[0]+=t),i<0?d[1]+=i:n<0&&(d[1]-=n),!qL(this.ani_opts)&&qL(this.ani_opts.source)&&(this.ani_opts.source=o,this.getMap().getView().animate(this.ani_opts)),d[0]===g[0]&&d[1]===g[1]||this.getMap().getView().setCenter(this.getMap().getCoordinateFromPixel(d))}}this.isAnimating_=!1})),this.getMap().getView().getCenter()}panIntoSynchronizedAnim_(){return new Promise(((t,e)=>{if(!0===this.isAnimating_){let e=300;qL(this.ani_opts)||(e=this.ani_opts.duration),setTimeout(t,e)}else t()}))}hide(t){this.facadeMap_.removePopup(t)}setContainer(t){this.setElement(t),this.content=this.getContentFromContainer(t),uB(this.content)}getContent(){return this.content}};var $y=i(810),tI=i.n($y);let eI=0;const iI=(t,e)=>({android:t=>`geo:${t[1]}},${t[0]}?q=${t[1]},${t[0]}`,ios:t=>`maps://?ll=${t[1]},${t[0]}`,unknown:t=>`http://maps.google.com?q=${t[1]},${t[0]}`}[t](e));class nI{constructor(t={}){this.icon=t.icon,this.title=t.title,this.content=t.content,this.listeners=t.listeners||[]}}class rI extends Qc{constructor(t){super(new Zy(t)),this.coord_=null,this.tabs_=[],this.element_=null,this.status_=rI.status.COLLAPSED,eI+=1,this.id_="m-popup-".concat(eI)}getId(){return this.id_}getTabs(){return this.tabs_}removeTab(t){const e=[];let i=null;this.tabs_.forEach((n=>{n.content!==t.content?e.push(n):i=n})),this.tabs_=this.tabs_.filter((e=>e.content!==t.content)),this.fire(yu,[i]),this.update()}addTab(t){let e=t;e instanceof nI||(e=new nI(t),this.fire(_u,[e])),this.tabs_.push(e),this.update()}addTo(t,e){if(this.map_=t,qL(this.element_)){const i=RB(e,this.map_.getProjection().code,"EPSG:4326"),n=TB(),r=bu(tI(),{jsonp:!0,vars:{id:this.id_,tabs:this.tabs_,options:rI.options,url:iI(n,i)}});this.tabs_.length>0&&(this.element_=r,this.addEvents(r),this.getImpl().addTo(t,r),this.show(e))}else this.getImpl().addTo(t,this.element_),this.show(e);this.fire(fu,[this]),t.fire(fu,[this])}update(){if(!qL(this.map_)){const t=RB(this.coord_,this.map_.getProjection().code,"EPSG:4326"),e=TB(),i=bu(tI(),{jsonp:!0,vars:{tabs:this.tabs_,options:rI.options,url:iI(e,t)}});this.tabs_.length>0&&(this.element_=i,this.addEventTabs(this.tabs_[0],i),this.addEvents(i),this.getImpl().setContainer(i),this.show(this.coord_))}}show(t){this.coord_=t,this.getImpl().show(this.coord_,(()=>{this.fire(Zc)}))}hide(t){qL(t)||t.preventDefault(),this.getImpl().hide(this)}switchTab(t){if(this.tabs_.length>t){const e=this.tabs_[t];this.setContent_(e.content),this.addEventTabs(e,this.getContent()),this.show(this.coord_)}}addEventTabs(t,e){const{listeners:i}=t;i.forEach((t=>{!0===t.all?e.querySelectorAll(t.selector).forEach((e=>{e.addEventListener(t.type,(e=>t.callback(e)))})):e.querySelector(t.selector).addEventListener(t.type,(e=>t.callback(e)))}))}setContent_(t){this.getContent().innerHTML=t}getContent(){return this.getImpl().getContent()}addEvents(t){const e=t;let i;const n=e.querySelectorAll("div.m-tab");Array.prototype.forEach.call(n,(t=>{t.addEventListener("click",(e=>{e.preventDefault();const r=e.clientY;if("click"===e.type||Math.abs(i-r)<5){Array.prototype.forEach.call(n,(t=>{t.classList.remove("m-activated")})),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}})),t.addEventListener("touchend",(e=>{e.preventDefault();const r=e.clientY;if("touchend"===e.type||Math.abs(i-r)<5){Array.prototype.forEach.call(n,(t=>{t.classList.remove("m-activated")})),t.classList.add("m-activated");const e=t.getAttribute("data-index");this.switchTab(e)}}))}));const r=e.querySelector("a.m-popup-closer");r.addEventListener("click",this.hide.bind(this),!1),r.addEventListener("touchend",this.hide.bind(this),!1);let s=e.querySelector("div.m-tabs");if(qL(s)&&(s=e.querySelector("div.m-content > div.m-header")),!qL(s)){let t;s.addEventListener("touchstart",(n=>{n.preventDefault(),i=n.touches[0].clientY,this.status_===rI.status.COLLAPSED?t=.9*Jy.HEIGHT:this.status_===rI.status.DEFAULT?t=.45*Jy.HEIGHT:this.status_===rI.status.FULL&&(t=0),e.classList.add("m-no-animation")}),!1),s.addEventListener("touchmove",(n=>{n.preventDefault(),this.touchY=n.touches[0].clientY;const r=this.touchY-i;e.style.top=`${t+r}px`}),!1),s.addEventListener("touchend",(t=>{t.preventDefault(),this.manageCollapsiblePopup_(i,this.touchY)}),!1);const n=window.matchMedia("(max-width: 768px)");setTimeout((()=>this.manageTransform(n,e)),10),n.addEventListener("change",(t=>{this.manageTransform(t,e)})),s.addEventListener("mouseup",(t=>{t.preventDefault(),this.tabs_.length<=1&&(this.status_===rI.status.COLLAPSED?this.setStatus_(rI.status.DEFAULT):this.status_===rI.status.DEFAULT?this.setStatus_(rI.status.FULL):this.setStatus_(rI.status.COLLAPSED))}))}}setStatus_(t){t!==this.status_&&(this.element_.classList.remove(this.status_),this.status_=t,this.element_.classList.add(this.status_),this.element_.style.top="",this.element_.classList.remove("m-no-animation"),Jy.WIDTH<=M.config.MOBILE_WIDTH&&this.getImpl().centerByStatus(t,this.coord_))}manageTransform(t,e){e&&e.parentElement&&(t.matches?e.parentElement.classList.add("unsetTransform"):e.parentElement.classList.remove("unsetTransform"))}manageCollapsiblePopup_(t,e){const i=100*e/Jy.HEIGHT;100*Math.abs(t-e)/Jy.HEIGHT>10?this.status_===rI.status.COLLAPSED?i<45?this.setStatus_(rI.status.FULL):i<85?this.setStatus_(rI.status.DEFAULT):this.setStatus_(rI.status.COLLAPSED):this.status_===rI.status.DEFAULT?i>45?this.setStatus_(rI.status.COLLAPSED):i<45?this.setStatus_(rI.status.FULL):this.setStatus_(rI.status.DEFAULT):this.status_===rI.status.FULL&&(i>45?this.setStatus_(rI.status.COLLAPSED):i>0?this.setStatus_(rI.status.DEFAULT):this.setStatus_(rI.status.FULL)):this.setStatus_(this.status_)}getCoordinate(){return this.coord_}setCoordinate(t){this.coord_=t,qL(this.element_)||this.getImpl().show(t)}destroy(){this.tabs_.length=0,this.coord_=null,this.fire(tu)}}rI.status={},rI.status.COLLAPSED="m-collapsed",rI.status.DEFAULT="m-default",rI.status.FULL="m-full",rI.options={takeMeThere:!1,textMode:!0,msg:"Llévame allí"};const sI=rI;var oI=i(130),aI=i.n(oI);class lI extends Vd{constructor(t,e){super(t,e),this.facadeVector_=null,this.features_=[],this.postComposeEvtKey_=null,this.load_=!1,this.loaded_=!1}addTo(t){this.map=t,t.on(hu,this.setProjection_.bind(this),this),this.ol3Layer=new Sy(this.vendorOptions_),this.updateSource_(),this.opacity_&&this.setOpacity(this.opacity_),this.setVisible(this.visibility);this.map.getMapImpl().addLayer(this.ol3Layer),this.fire(kc),this.facadeVector_?.fire(kc)}updateSource_(){qL(this.vendorOptions_.source)&&(qL(this.ol3Layer.getSource())&&this.ol3Layer.setSource(new kf),this.redraw(),this.loaded_=!0,this.fire(su,[this.features_]))}inRange(){return!0}addFeatures(t,e,i=!0){!0===i?t.forEach((t=>{const e=this.features_.find((e=>e.equals(t)));qL(e)&&this.features_.push(t)})):this.features_.push(...t),e&&this.updateLayer_();const n=this.facadeVector_.getStyle();n instanceof Vy?(n.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),n.refresh()):this.redraw()}updateLayer_(){const t=this.facadeVector_.getStyle();if(!qL(t))if(t instanceof Jm)this.facadeVector_.setStyle(t);else if(t instanceof Vy){const t=this.facadeVector_.getStyle();t.unapply(this.facadeVector_),t.getOldStyle().apply(this.facadeVector_),t.apply(this.facadeVector_)}else t.apply(this.facadeVector_)}getFeatures(t,e){let i=this.features_;return t||(i=e.execute(i)),i}getFeatureById(t){return this.features_.filter((e=>e.getId()===t))[0]}removeFeatures(t){this.features_=this.features_.filter((e=>!t.includes(e)));const e=this.facadeVector_.getStyle();e instanceof Vy?(e.getImpl().deactivateTemporarilyChangeEvent(this.redraw.bind(this)),e.refresh()):this.redraw()}redraw(){const t=this.getOLLayer();if(!qL(t)){const e=this.facadeVector_.getStyle();let i=t.getSource();i instanceof Gf&&(i=i.getSource()),e instanceof Vy&&e.getImpl().deactivateChangeEvent();[...i.getFeatures()].forEach(i.removeFeature,i);const n=this.facadeVector_.getFeatures();i.addFeatures(n.map(PB.facade2OLFeature)),e instanceof Vy&&e.getImpl().activateChangeEvent()}}getFeaturesExtent(t,e){const i=this.getFeatures(t,e);let n=qd.getFeaturesExtent(i,this.map.getProjection().code);return null===n&&(n=this.map.getProjection().getExtent()),n}selectFeatures(t,e,i){const n=t[0];if(!(n instanceof OB||!0!==this.extract||(this.unselectFeatures(),qL(n)))){const r=n.getAttribute("vendor.mapea.click");if(VL(r))r(i,n);else{const i=qL(this.template)?aI():this.template;let n=bu(i,{vars:this.parseFeaturesForTemplate_(t),parseToHtml:!1});if(this.name){n=`
    ${this.name}
    `+n}const r={icon:"g-cartografia-pin",title:this.name,content:n};let s=this.map.getPopup();qL(s)?(s=new sI,s.addTab(r),this.map.addPopup(s,e)):s.addTab(r)}}}unselectFeatures(){}setFacadeObj(t){this.facadeVector_=t}setProjection_(t,e){if(t.code!==e.code){const i=ee(t.code),n=ee(e.code),r=this.facadeVector_.getStyle();r instanceof Vy&&r.getImpl().deactivateChangeEvent(),this.facadeVector_.getFeatures().forEach((t=>t.getImpl().getOLFeature().getGeometry().transform(i,n))),r instanceof Vy&&r.getImpl().activateChangeEvent()}}parseFeaturesForTemplate_(t){const e={features:[]};return t.forEach((t=>{if(!(t instanceof OB)){const i=t.getAttributes(),n=Object.keys(i),r=[];n.forEach((t=>{let e=!0;qL(this.showAttributes_)?qL(this.hiddenAttributes_)||(e=!lB(this.hiddenAttributes_,t)):e=lB(this.showAttributes_,t),e&&r.push({key:oB(t),value:i[t]})}));const s={id:t.getId(),attributes:r};e.features.push(s)}})),e}equals(t){let e=!1;return t instanceof lI&&this.constructor===t.constructor&&(e=!0),e}refresh(){this.getOLLayer().getSource().clear()}isLoaded(){return this.loaded_}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}getFeaturesExtentPromise(t,e){return new Promise((i=>{const n=this.map.getProjection().code;if(!0===this.isLoaded()){const r=this.getFeatures(t,e),s=qd.getFeaturesExtent(r,n);i(s)}else this.requestFeatures_().then((t=>{const e=t.features&&!Array.isArray(t)&&Array.isArray(t.features)?t.features:t,r=qd.getFeaturesExtent(e,n);i(r)}))}))}}const hI=lI;var cI=i(200),uI=i.n(cI);const gI=(t,e,i)=>{const n={message:t,title:e,severity:i},r=bu(uI(),{vars:n});(()=>{const t=document.querySelectorAll("div.m-dialog");Array.prototype.forEach.call(t,(t=>{t.parentElement.removeChild(t)}))})();const s=document.querySelector("div.m-mapea-container");r.querySelector("div.m-button > button").addEventListener("click",(t=>{var e;(e=r).parentElement.removeChild(e)})),s.appendChild(r)},dI=(t,e)=>{let i=e;return qL(i)&&(i=Cu("dialog").info),gI(t,i,"info")},pI=(t,e)=>{let i=e;return qL(i)&&(i=Cu("dialog").error),gI(t,i,"error")},AI=(t,e)=>{let i=e;return qL(i)&&(i=Cu("dialog").success),gI(t,i,"success")};const fI=class{getFunctionFilter(){}execute(t){}toCQL(){}};class mI extends _g{constructor(t={},e={},i={},n){const r=n||new hI(e,i);super(t,r),QL(hI)&&Oc(Cu("exception").vectorlayer_method),this.extract=t.extract,qL(this.extract)&&(this.extract=!0),this.template=t.template,this.style_=null,this.filter_=null,this.setStyle(e.style),r.on(su,(t=>this.fire(su,[t])))}get type(){return ku}set type(t){QL(t)||qL(t)||t===ku||Oc("El tipo de capa debe ser '".concat(ku).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){qL(t)?this.getImpl().extract=!0:YL(t)?this.getImpl().extract="true"===XL(t):this.getImpl().extract=t}get template(){return this.getImpl().template}set template(t){this.getImpl().template=t}addFeatures(t,e=!1,i=!0){let n=t;qL(n)||(UL(n)||(n=[n]),this.getImpl().addFeatures(n,e,i))}getFeatures(t){let e=t;return qL(this.getFilter())&&(e=!0),this.getImpl().getFeatures(e,this.filter_)}getFeatureById(t){let e=null;return qL(t)?pI(Cu("dialog").id_feature):e=this.getImpl().getFeatureById(t),e}removeFeatures(t){let e=t;UL(e)||(e=[e]),this.getImpl().removeFeatures(e)}clear(){this.removeFilter(),this.removeFeatures(this.getFeatures(!0))}refresh(){this.getImpl().refresh(!0),this.redraw()}redraw(){this.getImpl().redraw()}setFilter(t){if(qL(t)||t instanceof fI){this.filter_=t;const e=this.style_;e instanceof Vy&&e.getImpl().deactivateChangeEvent(),this.redraw(),e instanceof Vy&&(e.getImpl().activateChangeEvent(),e.refresh())}else pI(Cu("dialog").vector_filter)}getFilter(){return this.filter_}getFeaturesExtent(t){let e=t;return qL(this.getFilter())&&(e=!0),this.getImpl().getFeaturesExtent(e,this.filter_)}removeFilter(){this.setFilter(null)}equals(t){let e=!1;return t instanceof mI&&(e=this.name===t.name,e=e&&this.id===t.id),e}setStyle(t,e=!1,i=mI.DEFAULT_OPTIONS_STYLE){this.getImpl().isLoaded()?(qL(this.getStyle())&&this.applyStyle_(i,e),qL(t)||this.applyStyle_(t,e)):this.once(su,(()=>{qL(this.getStyle())&&this.applyStyle_(i,e),qL(t)||this.applyStyle_(t,e)}))}applyStyle_(t,e){let i=t;if(YL(i)?i=Jm.deserialize(i):i instanceof Jm||(i=new e_(i)),i instanceof Jm&&(!qL(this.style_)&&this.style_ instanceof Jm&&this.style_.unapply(this),i.apply(this,e),this.style_=i,this.fire(cu,[i,this])),!qL(this.getImpl().getMap())){const t=this.getImpl().getMap().getControls("layerswitcher")[0];qL(t)||t.render()}this.fire(cu,[i,this])}getStyle(){return this.style_}clearStyle(){this.setStyle(null),this.getFeatures().forEach((t=>t.clearStyle()))}getLegendURL(){let t=this.getImpl().getLegendURL();return-1!==t.indexOf(_g.LEGEND_DEFAULT)&&-1===t.indexOf(_g.LEGEND_ERROR)&&this.style_ instanceof Jm&&(t=this.style_ instanceof Vy&&this.style_.getStyles().length>0?this.style_.getStyles()[0].toImage():this.style_.toImage()),t}getGeometryType(){let t=null;if(!qL(this.getFeatures())){const e=this.getFeatures()[0];qL(e)||qL(e.getGeometry())||(t=e.getGeometry().type)}return t}getMaxExtent(){return this.getFeaturesExtent()}calculateMaxExtent(){return this.getImpl().getFeaturesExtentPromise(!0,this.filter_)}toGeoJSON(){const t=this.map_.getProjection().code,e=this.getFeatures().map((t=>t.getGeoJSON()));return{type:"FeatureCollection",features:Gd(e,t)}}}mI.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},mI.DEFAULT_OPTIONS_STYLE={point:{...mI.DEFAULT_PARAMS,radius:5},line:{...mI.DEFAULT_PARAMS},polygon:{...mI.DEFAULT_PARAMS}};const _I=mI;class yI extends um{toImage(t){let e=null;const i={fill:this.options_.fill,stroke:this.options_.stroke,icon:this.options_.icon};if(!0===bB(i))e=BB(t);else{if(qL(this.olStyleFn_))return null;let t=this.olStyleFn_()[1];if(t.getImage&&null!=t.getImage()&&t.getImage()instanceof qf){if(t.getImage()instanceof Qm){const i=t.getImage().getImage(1);null!=i&&i&&(e=i.toDataURL())}else if(t.getImage()instanceof Om){const i=t.getImage();if(!qL(i)&&(e=i.getSrc(),!e.startsWith(window.location.origin))){const t=aB([M.config.PROXY_URL,"/image"]);e=KL(t,{url:e})}}}else{t=this.olStyleFn_()[0],null!=t.getImage()&&null!=t.getImage().getStroke()&&(t.getImage().getStroke().getWidth()>yI.DEFAULT_WIDTH_POINT&&t.getImage().getStroke().setWidth(yI.DEFAULT_WIDTH_POINT),t.getImage().render());const i=t.getImage().getImage(1);null!=i&&(e=i.toDataURL())}}return e}updateFacadeOptions(t){this.olStyleFn_=i=>{let r=i;r instanceof _d||r instanceof Pd||(r=this);const s=new Dy({zIndex:um.getValue(t.zindex,r,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e}}),o=new Dy({zIndex:um.getValue(t.zindex,r,this.layer_),geometry:t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e}});if(r instanceof _d){const t=t=>{let e=null;if("MultiPoint"===t.getGeometry().getType())e=new Id(t.getGeometry().getCoordinates());else{const i=qd.getCentroid(t.getGeometry());e=new qa(i)}return e};s.setGeometry(t),o.setGeometry(t)}let l,h;if(!qL(t.fill)){const e=um.getValue(t.fill.color,r,this.layer_);let i=um.getValue(t.fill.opacity,r,this.layer_);i||0===i||(i=1),qL(e)||(l=new wm({color:a()(e).alpha(i).css()}))}if(!qL(t.stroke)){const e=um.getValue(t.stroke.color,r,this.layer_);if(!qL(e)){const{linedashoffset:i}=t.stroke;h=new bm({color:e,width:um.getValue(t.stroke.width,r,this.layer_),lineDash:um.getValue(t.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(i,r,this.layer_),lineCap:um.getValue(t.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.stroke.linejoin,r,this.layer_),miterLimit:um.getValue(t.stroke.miterlimit,r,this.layer_)})}}if(!qL(t.label)){const i=um.getValue(t.label.text,r,this.layer_),o=um.getValue(t.label.align,r,this.layer_),a=um.getValue(t.label.baseline,r,this.layer_),l=new Fm({font:um.getValue(t.label.font,r,this.layer_),rotateWithView:um.getValue(t.label.rotate,r,this.layer_),scale:um.getValue(t.label.scale,r,this.layer_),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.label.offset?t.label.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(t.label.color||"#000000",r,this.layer_)}),textAlign:Object.values(e).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===i?void 0:String(i),rotation:um.getValue(t.label.rotation,r,this.layer_)});if(!qL(t.label.stroke)){const{miterlimit:e,linedashoffset:i}=t.label.stroke;l.setStroke(new bm({color:um.getValue(t.label.stroke.color,r,this.layer_),width:um.getValue(t.label.stroke.width,r,this.layer_),lineCap:um.getValue(t.label.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.label.stroke.linejoin,r,this.layer_),lineDash:um.getValue(t.label.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(i,r,this.layer_),miterLimit:um.getValue(e,r,this.layer_)}))}s.setText(l)}return s.setImage(new Gm({fill:l,stroke:h,radius:um.getValue(t.radius,r,this.layer_),snapToPixel:um.getValue(t.snapToPixel,r,this.layer_)})),qL(t.icon)||(qL(t.icon.src)?qL(t.icon.form)||o.setImage(new Qm({form:qL(um.getValue(t.icon.form,r,this.layer_))?"":um.getValue(t.icon.form,r,this.layer_).toLowerCase(),gradient:um.getValue(t.icon.gradient,r,this.layer_),glyph:um.getValue(t.icon.class,r,this.layer_),fontSize:um.getValue(t.icon.fontsize,r,this.layer_),radius:um.getValue(t.icon.radius,r,this.layer_),rotation:um.getValue(t.icon.rotation,r,this.layer_),rotateWithView:um.getValue(t.icon.rotate,r,this.layer_),offsetX:um.getValue(t.icon.offset?t.icon.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.icon.offset?t.icon.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(void 0!==t.icon.fill?t.icon.fill:"#FFFFFF",r,this.layer_)}),stroke:t.icon.color?new bm({color:um.getValue(t.icon.color,r,this.layer_),width:1}):void 0,anchor:um.getValue(t.icon.anchor,r,this.layer_),anchorXUnits:um.getValue(t.icon.anchorxunits,r,this.layer_),anchorYUnits:um.getValue(t.icon.anchoryunits,r,this.layer_),src:um.getValue(t.icon.src,r,this.layer_),opacity:um.getValue(t.icon.opacity,r,this.layer_),scale:um.getValue(t.icon.scale,r,this.layer_),snapToPixel:um.getValue(t.icon.snaptopixel,r,this.layer_),offsetOrigin:um.getValue(t.icon.offsetorigin,r,this.layer_),offset:um.getValue(t.icon.offset,r,this.layer_),crossOrigin:um.getValue(t.icon.crossorigin,r,this.layer_),anchorOrigin:um.getValue(t.icon.anchororigin,r,this.layer_),size:um.getValue(t.icon.size,r,this.layer_)})):o.setImage(new Om({anchor:um.getValue(t.icon.anchor,r,this.layer_),anchorXUnits:um.getValue(t.icon.anchorxunits,r,this.layer_),anchorYUnits:um.getValue(t.icon.anchoryunits,r,this.layer_),src:um.getValue(t.icon.src,r,this.layer_),opacity:um.getValue(t.icon.opacity,r,this.layer_),scale:um.getValue(t.icon.scale,r,this.layer_),rotation:um.getValue(t.icon.rotation,r,this.layer_),rotateWithView:um.getValue(t.icon.rotate,r,this.layer_),snapToPixel:um.getValue(t.icon.snaptopixel,r,this.layer_),offsetOrigin:um.getValue(t.icon.offsetorigin,r,this.layer_),offset:um.getValue(t.icon.offset,r,this.layer_),crossOrigin:um.getValue(t.icon.crossorigin,r,this.layer_),anchorOrigin:um.getValue(t.icon.anchororigin,r,this.layer_),size:um.getValue(t.icon.size,r,this.layer_)}))),[s,o]}}drawGeometryToCanvas(t){this.olStyleFn_()[1].getImage()instanceof lm?t.drawGeometry(new qa([10,10])):t.drawCircle(new kd([this.getCanvasSize()[0]/2,this.getCanvasSize()[1]/2],this.getRadius_()))}updateCanvas(t){if(this.updateFacadeOptions(this.options_),!bB(this.options_)){const e=this.getCanvasSize(),i=rm(t.getContext("2d"),{size:e});let n=this.olStyleFn_()[0];qL(n.getText())||n.setText(null),!qL(this.olStyleFn_()[1])&&this.olStyleFn_()[1].getImage()instanceof lm&&(n=this.olStyleFn_()[1]);const r=n.getImage().getStroke();qL(r)||qL(r.getWidth())||r.setWidth(3),i.setStyle(n),this.drawGeometryToCanvas(i)}}getCanvasSize(){const t=this.olStyleFn_()[1].getImage();let e;if(t instanceof lm)e=[90,90];else{const i=this.getRadius_(t);e=[2*i+4,2*i+4]}return e}getRadius_(t){let e;return e=t instanceof Hf?25:t instanceof lm?t.getRadius():this.olStyleFn_()[0].getImage().getRadius(),e}}yI.DEFAULT_WIDTH_POINT=3;const II=yI;class EI extends $m{constructor(t){let e=t;e=qL(e)?EI.DEFAULT_NULL:_B(e,EI.DEFAULT),e=_B({},e);super(e,new II(e))}toImage(){return this.getImpl().toImage(this.canvas_)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Point'))"}}EI.DEFAULT={radius:5},EI.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5},radius:5};const CI=EI;class vI extends vu{constructor(t){super(new xf(t),vI.NAME),QL(xf)&&Oc(Cu("exception").layerswitcher_method),QL(t)||""===t?this.activeEmptyLayer=!1:this.activeEmptyLayer=!0}addTo(t){this.map_=t;const e=this.getImpl();this.createView(t).then((i=>{this.manageActivation(i),e.addTo(t,i),this.fire(kc)}))}createView(t){return new Promise((t=>{vI.getTemplateVariables(this.map_).then((e=>{this.activeEmptyLayer&&e.baseLayers.unshift(vI.EMPTYLAYER);const i=bu(yf(),{vars:e});t(i)}))}))}equals(t){return t instanceof vI}render(){this.getImpl().renderPanel()}registerEvents(){this.getImpl().registerEvents()}unregisterEvents(){this.getImpl().unregisterEvents()}static getTemplateVariables(t){return new Promise(((e,i)=>{if(!qL(t)){const i=t.getBaseLayers().filter((t=>!0===t.displayInLayerSwitcher)),n=t.getLayerGroup(),r=vI.orderLayerGroups(n),s=t.getRootLayers().filter((t=>{const e=!0===t.transparent,i=!0===t.displayInLayerSwitcher,n=t.type!==Tu,r=!(t.type===Nu&&qL(t.name)),s=t.getLayerGroup&&null===t.getLayerGroup();return e&&n&&r&&i&&s})).reverse(),o=Promise.all(i.map(vI.parseLayerForTemplate)),a=Promise.all(s.map(vI.parseLayerForTemplate)),l=Promise.all(r.map((t=>vI.parseGroupForTemplate(t,i))).filter((t=>!qL(t))));o.then((t=>{l.then((i=>{a.then((n=>e({baseLayers:t,overlayLayers:n,layerGroups:i})))}))}))}}))}static parseLayerForTemplate(t){let e=t.legend;qL(e)&&(e=t.name),qL(e)&&(e="Servicio WMS");let i=!1;if(t instanceof _I){const e=t.getStyle();e instanceof CI&&!qL(e.get("icon.src"))&&(i=!0)}return new Promise(((n,r)=>{const s={base:!1===t.transparent,visible:!0===t.isVisible(),id:t.id,title:e,outOfRange:!t.inRange(),opacity:t.getOpacity(),isIcon:i},o=t.getLegendURL();o instanceof Promise?o.then((t=>{s.legend=t,n(s)})):(s.legend="KML"!==t.type?o:null,n(s))}))}static parseGroupForTemplate(t,e){const i=[...t.getChildren()];let n=t.title;qL(n)&&(n=t.id),qL(n)&&(n="Conjunto de Servicios WMS");let r={id:t.id,title:n,order:t.order,collapsed:t.collapsed,layers:[],layerGroups:[]},s=null;if(i.length>0){i.forEach((t=>{t instanceof _g?r.layers.push(vI.parseLayerForTemplate(t)):t instanceof Cf&&r.layerGroups.push(vI.parseGroupForTemplate(t,e))}));let n=0;const o=t.getAllLayers();o.every((t=>t.isVisible()))?n=2:o.some((t=>t.isVisible()))&&(n=1),r.visible=n,qL(r.layers)&&qL(r.layerGroups)&&(r=null),GL(r)||(s=new Promise(((t,e)=>{Promise.all(r.layers).then((e=>{qL(r)||(r.layers=e,r.layerGroups.length>0?Promise.all(r.layerGroups).then((e=>{GL(e[0])?r.layerGroups=[]:r.layerGroups=e,t(r)})):t(r))}))})))}return s}static orderLayerGroups(t){return t.sort(((t,e)=>t.order-e.order))}}vI.NAME="layerswitcher",vI.EMPTYLAYER={base:!0,id:"emptyLayer",isIcon:!1,legend:"",opacity:1,outOfRange:!1,title:Cu("layerswitcher").no_base_layer,visible:!1};const xI=vI,wI="accuracy",SI="accuracyGeometry",bI="altitude",LI="altitudeAccuracy",BI="heading",MI="position",TI="projection",RI="speed",NI="tracking",PI="trackingOptions",FI="error";class DI extends us{constructor(t){super(FI),this.code=t.code,this.message=t.message}}const OI=class extends Ks{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.position_=null,this.transform_=$t,this.watchId_=void 0,this.addChangeListener(TI,this.handleProjectionChanged_),this.addChangeListener(NI,this.handleTrackingChanged_),void 0!==t.projection&&this.setProjection(t.projection),void 0!==t.trackingOptions&&this.setTrackingOptions(t.trackingOptions),this.setTracking(void 0!==t.tracking&&t.tracking)}disposeInternal(){this.setTracking(!1),super.disposeInternal()}handleProjectionChanged_(){const t=this.getProjection();t&&(this.transform_=le(ee("EPSG:4326"),t),this.position_&&this.set(MI,this.transform_(this.position_)))}handleTrackingChanged_(){if("geolocation"in navigator){const t=this.getTracking();t&&void 0===this.watchId_?this.watchId_=navigator.geolocation.watchPosition(this.positionChange_.bind(this),this.positionError_.bind(this),this.getTrackingOptions()):t||void 0===this.watchId_||(navigator.geolocation.clearWatch(this.watchId_),this.watchId_=void 0)}}positionChange_(t){const e=t.coords;this.set(wI,e.accuracy),this.set(bI,null===e.altitude?void 0:e.altitude),this.set(LI,null===e.altitudeAccuracy?void 0:e.altitudeAccuracy),this.set(BI,null===e.heading?void 0:mt(e.heading)),this.position_?(this.position_[0]=e.longitude,this.position_[1]=e.latitude):this.position_=[e.longitude,e.latitude];const i=this.transform_(this.position_);this.set(MI,i.slice()),this.set(RI,null===e.speed?void 0:e.speed);const n=ol(this.position_,e.accuracy);n.applyTransform(this.transform_),this.set(SI,n),this.changed()}positionError_(t){this.dispatchEvent(new DI(t))}getAccuracy(){return this.get(wI)}getAccuracyGeometry(){return this.get(SI)||null}getAltitude(){return this.get(bI)}getAltitudeAccuracy(){return this.get(LI)}getHeading(){return this.get(BI)}getPosition(){return this.get(MI)}getProjection(){return this.get(TI)}getSpeed(){return this.get(RI)}getTracking(){return this.get(NI)}getTrackingOptions(){return this.get(PI)}setProjection(t){this.set(TI,ee(t))}setTracking(t){this.set(NI,t)}setTrackingOptions(t){this.set(PI,t)}};class QI extends pf{constructor(t,e,i,n){super(n),this.vendorOptions_=n,this.geolocation_=null,this.accuracyFeature_=PB.olFeature2Facade(new _d),this.tracking_=t,this.highAccuracy_=e,this.maximumAge_=i,this.activated_=!1,this.positionFeature_=PB.olFeature2Facade(new _d({style:QI.POSITION_STYLE}))}activate(){if(this.element.classList.add("m-locating"),qL(this.geolocation_)){const t=ee(this.facadeMap_.getProjection().code);this.geolocation_=new OI(hB({projection:t,tracking:this.tracking_,trackingOptions:{enableHighAccuracy:this.highAccuracy_,maximumAge:this.maximumAge_}},this.vendorOptions_,!0)),this.geolocation_.on("change:accuracyGeometry",(t=>{const e=t.target.get(t.key);this.accuracyFeature_.getImpl().getOLFeature().setGeometry(e)})),this.geolocation_.on("change:position",(t=>{const e=t.target.get(t.key),i=qL(e)?null:new qa(e);this.positionFeature_.getImpl().getOLFeature().setGeometry(i),this.facadeMap_.setCenter(e),this.element.classList.contains("m-locating")&&this.facadeMap_.setZoom(QI.ZOOM),this.element.classList.remove("m-locating"),this.element.classList.add("m-located"),this.geolocation_.setTracking(this.tracking_)}))}this.geolocation_.setTracking(!0),this.facadeMap_.drawFeatures([this.accuracyFeature_,this.positionFeature_])}removePositions_(){qL(this.accuracyFeature_)||this.facadeMap_.removeFeatures([this.accuracyFeature_]),qL(this.positionFeature_)||this.facadeMap_.removeFeatures([this.positionFeature_]),this.geolocation_.setTracking(!1)}deactivate(){this.removePositions_(),this.element.classList.remove("m-located"),this.element.classList.remove("m-locating"),this.geolocation_=null}setTracking(t){this.tracking_=t,this.geolocation_.setTracking(t)}destroy(){this.removePositions_(),super.destroy()}}QI.POSITION_STYLE=new Nm({image:new vm({radius:6,fill:new wm({color:"#3399CC"}),stroke:new bm({color:"#fff",width:2})})}),QI.ZOOM=12;const kI=QI;var GI=i(326),UI=i.n(GI);class qI extends vu{constructor(t=!0,e=!1,i={}){QL(kI)&&Oc(Cu("exception").location_method);super(new kI(t,e,6e4,i),qI.NAME)}createView(t){return bu(UI(),{vars:{title:Cu("location").title}})}getActivationButton(t){return t.querySelector("button#m-location-button")}equals(t){return t instanceof qI}setTracking(t){this.getImpl().tracking=t}}qI.NAME="location";const VI=qI;var zI=i(797),YI=i.n(zI);const jI=class extends pf{constructor(t={}){super(),this.facadeMap_=null,this.exactScale=t.exactScale||!1}addTo(t,e){this.facadeMap_=t;this.scaleContainer_=e.querySelector("#".concat("m-scale-span")),this.element=e,this.render=this.renderCB,this.target_=null,t.getMapImpl().addControl(this)}renderCB(t){const e=t.frameState;qL(e)||((t,e,i,n)=>{const r=e;i.getWMTS().length>0?r.innerHTML=qd.getWMTSScale(i,n):i.getWMTS().length<=0&&!0===n?r.innerHTML=i.getExactScale():i.getWMTS().length<=0&&1==!n&&(r.innerHTML=i.getScale())})(e.viewState,this.scaleContainer_,this.facadeMap_,this.exactScale)}destroy(){super.destroy(),this.scaleContainer_=null}};class HI extends vu{constructor(t={}){super(new jI(t),HI.NAME),QL(jI)&&Oc(Cu("exception").scale_method)}createView(t){return bu(YI(),{vars:{title:Cu("scale").title,scale:Cu("scale").scale}})}equals(t){return t instanceof HI}destroy(){super.destroy();const t=this.getPanel();qL(t)||t.removeClassName("m-with-scale")}}HI.NAME="scale";const XI=HI;class WI extends pf{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){super.addTo(t,e);const i=t.getMapImpl();this.olMap=i,this.panel=e,this.panel.querySelector("button").addEventListener("click",(()=>{this.resetRotation()})),i.on("change:view",(t=>{t.target.getView().on("change:rotation",(t=>{const e=`rotate(${360*t.target.getRotation()/(2*Math.PI)}deg)`;this.panel.querySelector("button").style.WebkitTransform=e,this.panel.querySelector("button").style.MozTransform=e,this.panel.querySelector("button").style.transform=e}))}))}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}resetRotation(){this.olMap.getView().setRotation(0)}onChangeView(t){const e=t.querySelector("#m-rotate-marker");this.olMap.on("change:view",(t=>{t.target.getView().on("change:rotation",(t=>{const i=t.target.getRotation();e.style.transform=`rotate(${i*(180/Math.PI)+45}deg)`}))}))}}WI.PANEL_ID="m-layerswitcher-panel";const KI=WI;var JI=i(29),ZI=i.n(JI);const $I=(t,e,i)=>{const n=e;let r=t.target.parentElement.parentElement,s=0,o=0;for(;r&&!Number.isNaN(r.offsetLeft)&&!Number.isNaN(r.offsetTop);)s+=r.offsetLeft-r.scrollLeft,o+=r.offsetTop-r.scrollTop,r=r.offsetParent;s=t.clientX-s,o=t.clientY-o;const{clientWidth:a,clientHeight:l}=t.currentTarget,h=[0,-l],c=[s-a/2,o-l/2],u=(h[0]*c[0]+h[1]*c[1])/(Math.sqrt(h[0]**2+h[1]**2)*Math.sqrt(c[0]**2+c[1]**2));let g=180*Math.acos(u)/Math.PI;c[0]<0&&(g=360-g),i.setRotation(g);n.querySelector("#m-rotate-marker").style.WebkitTransform=`rotate(${g+45}deg)`,n.querySelector("#m-rotate-marker").style.MozTransform=`rotate(${g+45}deg)`,n.querySelector("#m-rotate-marker").style.transform=`rotate(${g+45}deg)`},tE=(t,e)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousedown",(e=>{t.setActive(!0),"m-rotate-button"!==e.target.id&&t.setMouseDown(!0)}))},eE=(t,e)=>{document.body.addEventListener("mouseup",(e=>{t.setActive(!1)}))},iE=(t,e,i)=>{const n=e,r=e.querySelector("#m-rotate-slider-container");r.addEventListener("click",(r=>{"m-rotate-button"!==r.target.id||t.getMouseDown()?$I(r,e,i):(t.getImpl().resetRotation(),n.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",n.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",n.querySelector("#m-rotate-marker").style.transform="rotate(40deg)"),t.setMouseDown(!1)}))},nE=(t,e,i)=>{e.querySelector("#m-rotate-slider-container").addEventListener("mousemove",(n=>{t.getActive()&&$I(n,e,i)}))};class rE extends vu{constructor(){QL(KI)&&Oc("La implementación usada no puede crear controles Scale");super(new KI,rE.NAME),this.active_=!1,this.isMouseDown_=!1}createView(t){const e=bu(ZI());return e.querySelector("#m-rotate-marker").style.WebkitTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.MozTransform="rotate(40deg)",e.querySelector("#m-rotate-marker").style.transform="rotate(40deg)",tE(this,e),nE(this,e,t),eE(this),iE(this,e,t),this.on(kc,(()=>{this.getImpl().onChangeView(e)})),e}equals(t){return t instanceof rE}setActive(t){this.active_=!!t}getActive(){return this.active_}setMouseDown(t){this.isMouseDown_=!!t}getMouseDown(){return this.isMouseDown_}}rE.NAME="rotate";const sE=rE,oE="units",aE=[1,2,5],lE=25.4/.28;const hE=class extends Bh{constructor(t){t=t||{};const e=document.createElement("div");e.style.pointerEvents="none",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un;const i=void 0!==t.className?t.className:t.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=i+"-inner",this.element.className=i+" "+Il,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=void 0!==t.minWidth?t.minWidth:64,this.maxWidth_=t.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(oE,this.handleUnitsChanged_),this.setUnits(t.units||"metric"),this.scaleBar_=t.bar||!1,this.scaleBarSteps_=t.steps||4,this.scaleBarText_=t.text||!1,this.dpi_=t.dpi||void 0}getUnits(){return this.get(oE)}handleUnitsChanged_(){this.updateElement_()}setUnits(t){this.set(oE,t)}setDpi(t){this.dpi_=t}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r="degrees"==n?"degrees":"m";let s=ie(i,t.resolution,e,r);const o=this.minWidth_*(this.dpi_||lE)/lE,a=void 0!==this.maxWidth_?this.maxWidth_*(this.dpi_||lE)/lE:void 0;let l=o*s,h="";if("degrees"==n){const t=c.degrees;l*=t,l=a){u=p,g=A,d=f;break}if(g>=o)break;p=u,A=g,f=d,++m}const _=this.scaleBar_?this.createScaleBar(g,u,h):u.toFixed(d<0?-d:0)+" "+h;this.renderedHTML_!=_&&(this.innerElement_.innerHTML=_,this.renderedHTML_=_),this.renderedWidth_!=g&&(this.innerElement_.style.width=g+"px",this.renderedWidth_=g),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(t,e,i){const n=this.getScaleForResolution(),r=n<1?Math.round(1/n).toLocaleString()+" : 1":"1 : "+Math.round(n).toLocaleString(),s=this.scaleBarSteps_,o=t/s,a=[this.createMarker("absolute")];for(let n=0;n
    `+this.createMarker("relative")+(n%2==0||2===s?this.createStepText(n,t,!1,e,i):"")+"")}a.push(this.createStepText(s,t,!0,e,i));return(this.scaleBarText_?`
    `+r+"
    ":"")+a.join("")}createMarker(t){return`
    `}createStepText(t,e,i,n,r){const s=(0===t?0:Math.round(n/this.scaleBarSteps_*t*100)/100)+(0===t?"":" "+r);return`
    `+s+"
    "}getScaleForResolution(){return ie(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m")*(1e3/25.4)*(this.dpi_||lE)}render(t){const e=t.frameState;this.viewState_=e?e.viewState:null,this.updateElement_()}},cE="units",uE="degrees",gE="imperial",dE="nautical",pE="metric",AE="us",fE=[1,2,5];const mE=class extends hE{constructor(t){super(t),this.facadeMap_=null,this.keyEvent_=null}addTo(t,e){this.facadeMap_=t,this.removeChangeListener(cE,this.handleUnitsChanged),this.keyEvent_=this.addChangeListener(cE,this.handleUnitsChanged),t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleUnitsChanged_(){this.updateElement_()}updateElement_(){const t=this.viewState_;if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=t.center,i=t.projection,n=this.getUnits(),r=n===uE?"degrees":"m";let s=ie(i,t.resolution,e,r);"degrees"!==i.getUnits()&&i.getMetersPerUnit()&&"m"===r&&(s*=i.getMetersPerUnit()),"d"===i.getUnits()&&(s/=12e4);let o=this.minWidth_*s,a="";if(n===uE){const t=c.degrees;"degrees"===i.getUnits()?o*=t:s/=t,o=this.minWidth_)break;u+=1}const g=l.toString().concat(" ").concat(a);this.renderedHTML_!==g&&(this.innerElement_.innerHTML=g,this.renderedHTML_=g),this.renderedWidth_!==h&&(this.innerElement_.style.width=h.toString().concat("px"),this.renderedWidth_=h),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}};var _E=i(959),yE=i.n(_E);class IE extends vu{constructor(t={}){super(new mE(t),IE.NAME),QL(mE)&&Oc(Cu("exception").scaleline_method)}createView(t){return bu(yE())}equals(t){return t instanceof IE}}IE.NAME="scaleline";const EE=IE;var CE=i(389),vE=i.n(CE);const xE="projection",wE="coordinateFormat";const SE=class extends Bh{constructor(t){t=t||{};const e=document.createElement("div");e.className=void 0!==t.className?t.className:"ol-mouse-position",super({element:e,render:t.render,target:t.target}),this.on,this.once,this.un,this.addChangeListener(xE,this.handleProjectionChanged_),t.coordinateFormat&&this.setCoordinateFormat(t.coordinateFormat),t.projection&&this.setProjection(t.projection),this.renderOnMouseOut_=void 0!==t.placeholder,this.placeholder_=this.renderOnMouseOut_?t.placeholder:" ",this.renderedHTML_=e.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=!1!==t.wrapX}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(wE)}getProjection(){return this.get(xE)}handleMouseMove(t){const e=this.getMap();this.updateHTML_(e.getEventPixel(t))}handleMouseOut(t){this.updateHTML_(null)}setMap(t){if(super.setMap(t),t){const e=t.getViewport();this.listenerKeys.push(Gs(e,ah,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(Gs(e,ch,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(t){this.set(wE,t)}setProjection(t){this.set(xE,ee(t))}updateHTML_(t){let e=this.placeholder_;if(t&&this.mapProjection_){if(!this.transform_){const t=this.getProjection();this.transform_=t?le(this.mapProjection_,t):$t}const i=this.getMap().getCoordinateFromPixelInternal(t);if(i){const t=pe();if(t&&(this.transform_=le(this.mapProjection_,t)),this.transform_(i,i),this.wrapX_){kt(i,t||this.getProjection()||this.mapProjection_)}const n=this.getCoordinateFormat();e=n?n(i):i.toString()}}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=e,this.renderedHTML_=e)}render(t){const e=t.frameState;e?this.mapProjection_!=e.viewState.projection&&(this.mapProjection_=e.viewState.projection,this.transform_=null):this.mapProjection_=null}};const bE=class extends SE{constructor(t){super(t),this.vendorOptions_=t}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}handleMouseMove(t){const e=this.getMap();this.lastMouseMovePixel_=e.getEventPixel(t),this.updateHTML_(this.lastMouseMovePixel_)}handleMouseOut(t){this.updateHTML_(null),this.lastMouseMovePixel_=null}updateHTML_(t){let e=this.placeholder_;const i=this.getProjection();if(t&&this.mapProjection_){this.transform_||(this.transform_=i?he(this.mapProjection_,i):$t);const n=this.getMap().getCoordinateFromPixel(t);if(n){this.transform_(n,n);const t=this.getCoordinateFormat();e=t?t(n):n.toString()}this.vendorOptions_.label&&(e+=` | ${this.vendorOptions_.label}`)}this.renderedHTML_&&e===this.renderedHTML_||(this.element.innerHTML=void 0!==e?e:"",this.renderedHTML_=void 0!==e?e:"")}};const LE=class extends bE{constructor(t,e){super(hB({coordinateFormat:Bt(t.precision||4),label:t.label,placeholder:"",className:"m-mouse-position g-cartografia-flecha"},e,!0)),this.srs_=t.srs,this.label_=t.label,this.precision_=t.precision,this.vendorOptions_=e}addTo(t,e){this.facadeMap_=t,this.setProjection(this.srs_||t.getProjection().code),this.setTarget(e),t.getMapImpl().addControl(this),qL(this.vendorOptions_.projection)&&qL(this.srs_)&&t.getImpl().on(au,(()=>{this.mousePositionControl.setProjection(ee(t.getProjection().code))}))}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class BE extends vu{constructor(t={},e={}){super(new LE(t,e),BE.NAME),QL(LE)&&Oc(Cu("exception").mouse_method)}createView(t){return bu(vE())}equals(t){return t instanceof BE}destroy(){super.destroy();const t=this.getPanel();qL(t)||t.removeClassName("m-with-mouse")}}BE.NAME="mouse";const ME=BE,TE=.75,RE=.1;const NE=class extends Bh{constructor(t){t=t||{},super({element:document.createElement("div"),render:t.render,target:t.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=void 0===t.collapsed||t.collapsed,this.collapsible_=void 0===t.collapsible||t.collapsible,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=void 0!==t.rotateWithView&&t.rotateWithView,this.viewExtent_=void 0;const e=void 0!==t.className?t.className:"ol-overviewmap",i=void 0!==t.tipLabel?t.tipLabel:"Overview map",n=void 0!==t.collapseLabel?t.collapseLabel:"‹";"string"==typeof n?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=n):this.collapseLabel_=n;const r=void 0!==t.label?t.label:"›";"string"==typeof r?(this.label_=document.createElement("span"),this.label_.textContent=r):this.label_=r;const s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,o=document.createElement("button");o.setAttribute("type","button"),o.title=i,o.appendChild(s),o.addEventListener(Ms,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=t.view;const a=new bc({view:t.view,controls:new eo,interactions:new eo});this.ovmap_=a,t.layers&&t.layers.forEach((function(t){a.addLayer(t)}));const l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new Wy({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);const h=e+" "+Il+" "+Cl+(this.collapsed_&&this.collapsible_?" "+vl:"")+(this.collapsible_?"":" ol-uncollapsible"),c=this.element;c.className=h,c.appendChild(this.ovmapDiv_),c.appendChild(o);const u=this,g=this.boxOverlay_,d=this.boxOverlay_.getElement(),p=function(t){const e={clientX:(i=t).clientX,clientY:i.clientY};var i;const n=a.getEventCoordinateInternal(e);g.setPosition(n)},A=function(t){const e=a.getEventCoordinateInternal(t);u.getMap().getView().setCenterInternal(e),window.removeEventListener("mousemove",p),window.removeEventListener("mouseup",A)};d.addEventListener("mousedown",(function(){window.addEventListener("mousemove",p),window.addEventListener("mouseup",A)}))}setMap(t){const e=this.getMap();if(t!==e){if(e){const t=e.getView();t&&this.unbindView_(t),this.ovmap_.setTarget(null)}if(super.setMap(t),t){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(Gs(t,gs,this.handleMapPropertyChange_,this));const e=t.getView();e&&(this.bindView_(e),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(t){if(t.key===Ih){const e=t.oldValue;e&&this.unbindView_(e);const i=this.getMap().getView();this.bindView_(i)}else this.ovmap_.isRendered()||t.key!==yh&&t.key!==_h||this.ovmap_.updateSize()}bindView_(t){if(!this.view_){const e=new dl({projection:t.getProjection()});this.ovmap_.setView(e)}t.addChangeListener(ta.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_()}unbindView_(t){t.removeChangeListener(ta.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView().calculateExtentInternal(i);if(this.viewExtent_&&z(n,this.viewExtent_))return;this.viewExtent_=n;const r=e.getSize(),s=e.getView().calculateExtentInternal(r),o=e.getPixelFromCoordinateInternal(st(n)),a=e.getPixelFromCoordinateInternal(Z(n)),l=Math.abs(o[0]-a[0]),h=Math.abs(o[1]-a[1]),c=r[0],u=r[1];lc*TE||h>u*TE?this.resetExtent_():D(s,n)||this.recenter_()}resetExtent_(){const t=this.getMap(),e=this.ovmap_,i=t.getSize(),n=t.getView().calculateExtentInternal(i),r=e.getView(),s=Math.log(7.5)/Math.LN2;ct(n,1/(Math.pow(2,s/2)*RE)),r.fitInternal(al(n))}recenter_(){const t=this.getMap(),e=this.ovmap_,i=t.getView();e.getView().setCenterInternal(i.getCenterInternal())}updateBox_(){const t=this.getMap(),e=this.ovmap_;if(!t.isRendered()||!e.isRendered())return;const i=t.getSize(),n=t.getView(),r=e.getView(),s=this.rotateWithView_?0:-n.getRotation(),o=this.boxOverlay_,a=this.boxOverlay_.getElement(),l=n.getCenterInternal(),h=n.getResolution(),c=r.getResolution(),u=i[0]*h/c,g=i[1]*h/c;if(o.setPosition(l),a){a.style.width=u+"px",a.style.height=g+"px";const t="rotate("+s+"rad)";a.style.transform=t}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=Us(this.ovmap_,gh,(function(t){delete this.ovmapPostrenderKey_,this.updateBox_()}),this))}handleClick_(t){t.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(vl),this.collapsed_?Tl(this.collapseLabel_,this.label_):Tl(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;if(!this.collapsed_){if(t.isRendered())return this.viewExtent_=void 0,void t.render();t.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(t){this.collapsible_!==t&&(this.collapsible_=t,this.element.classList.toggle("ol-uncollapsible"),!t&&this.collapsed_&&this.handleToggle_())}setCollapsed(t){this.collapsible_&&this.collapsed_!==t&&this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(t){this.rotateWithView_!==t&&(this.rotateWithView_=t,0!==this.getMap().getView().getRotation()&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(t){this.validateExtent_(),this.updateBox_()}};const PE=class extends NE{constructor(t,e={}){super(hB({layers:[]},e,!0)),this.toggleDelay_=0,qL(t.toggleDelay)||(this.toggleDelay_=t.toggleDelay),this.collapsedButtonClass_="g-cartografia-mundo",qL(t.collapsedButtonClass)||(this.collapsedButtonClass_=t.collapsedButtonClass),this.openedButtonClass_="g-cartografia-flecha-derecha2",qL(t.openedButtonClass)||(this.openedButtonClass_=t.openedButtonClass),this.facadeMap_=null}set facadeControl(t){this.facadeControl_=t}get facadeControl(){return this.facadeControl_}addTo(t,e){this.facadeMap_=t,this.update(t,e),this.getCollapsed()||this.addLayers(this.facadeMap_)}update(t,e){const i=this.element.querySelector("button");!0===this.collapsed_?i.classList.contains(this.collapsedButtonClass_)?i.classList.remove(this.collapsedButtonClass_):i.classList.add(this.collapsedButtonClass_):i.classList.contains(this.openedButtonClass_)?i.classList.remove(this.openedButtonClass_):i.classList.add(this.openedButtonClass_),this.addOpenEventListener(i,t),this.setTarget()}addOpenEventListener(t,e){t.onclick=this.openEventListener.bind(this)}openEventListener(t){const e=t;!0===this.getCollapsed()&&(this.addLayers(this.facadeMap_),e.target.onclick=null)}setTarget(){const t=this.facadeControl_;if(!qL(t)){const e=t.getPanel();qL(e)||(this.target_=e.getControlsContainer())}}getElement(){return this.element}addLayer_(t){t.un(kc,this.addLayer_,this),this.getOverviewMap().addLayer(t.getOLLayer())}addLayers(t){const e=[];t.getLayers().forEach((t=>{[t].forEach((t=>{if((t.type===Nu||!1===t.transparent)&&t.isVisible()){const i=t.getImpl().getOLLayer();let n=null;if(!qL(i)){const e=i.getProperties();delete e.map,n=!0===t.tiled?new Kg(e):new $g(e)}qL(n)?t.getImpl().on(kc,this.addLayer_.bind(this)):e.push(n)}}))}));const i=new sf({projection:ee(t.getProjection().code),resolutions:t.getResolutions()});t.getMapImpl().addControl(this),this.ovmap_.setView(i),e.forEach((t=>this.ovmap_.addLayer(t))),this.wasOpen_=!0}handleToggle_(){xB(this.element,"ol-collapsed");const t=this.element.querySelector("button");xB(t,this.openedButtonClass_),xB(t,this.collapsedButtonClass_),setTimeout((()=>{this.collapsed_?wB(this.collapseLabel_,this.label_):wB(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;const t=this.ovmap_;this.collapsed_||t.isRendered()||(t.updateSize(),this.resetExtent_(),t.addEventListener("postrender",(t=>{this.updateBox_()})))}),this.toggleDelay_)}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};var FE=i(922),DE=i.n(FE);class OE extends vu{constructor(t={},e={}){const i=new PE(t,e);super(i,OE.NAME),QL(PE)&&Oc(Cu("exception").overviewmap_method),i.facadeControl=this}createView(t){return bu(DE())}equals(t){return t instanceof OE}}OE.NAME="overviewmap";const QE=OE;const kE=class{constructor(){this.element_=null}addTo(t,e){this.element_=e}getElement(){return this.element_}destroy(){}};var GE=i(637),UE=i.n(GE);class qE extends vu{constructor(){super(new kE,qE.NAME),QL(kE)&&Oc(Cu("exception").navtoolbar_method)}createView(t){return bu(UE())}equals(t){return t instanceof qE}}qE.NAME="navtoolbar";const VE=qE;var zE=i(72),YE=i.n(zE);const jE=class extends Rh{constructor(t){super(t),this.facadeMap_=null}addTo(t,e){this.facadeMap_=t,t.getMapImpl().addControl(this)}getElement(){return this.element}destroy(){this.facadeMap_.getMapImpl().removeControl(this),this.facadeMap_=null}};class HE extends vu{constructor(t={}){super(new jE(t),HE.NAME),QL(jE)&&Oc(Cu("exception").panzoom_method)}createView(t){return bu(YE())}equals(t){return t instanceof HE}}HE.NAME="panzoom";const XE=HE;const WE=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.supportedMediaTypes=null}getReadOptions(t,e){if(e){let i=e.dataProjection?ee(e.dataProjection):this.readProjection(t);e.extent&&i&&"tile-pixels"===i.getUnits()&&(i=ee(i),i.setWorldExtent(e.extent)),e={dataProjection:i,featureProjection:e.featureProjection}}return this.adaptOptions(e)}adaptOptions(t){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection},t)}getType(){return js()}readFeature(t,e){return js()}readFeatures(t,e){return js()}readGeometry(t,e){return js()}readProjection(t){return js()}writeFeature(t,e){return js()}writeFeatures(t,e){return js()}writeGeometry(t,e){return js()}};function KE(t,e,i){const n=i?ee(i.featureProjection):null,r=i?ee(i.dataProjection):null;let s;if(s=n&&r&&!ae(n,r)?(e?t.clone():t).transform(e?n:r,e?r:n):t,e&&i&&void 0!==i.decimals){const e=Math.pow(10,i.decimals),n=function(t){for(let i=0,n=t.length;i0?i[0]:null}readFeatureFromNode(t,e){return null}readFeatures(t,e){if(!t)return[];if("string"==typeof t){const i=Kd(t);return this.readFeaturesFromDocument(i,e)}return Wd(t)?this.readFeaturesFromDocument(t,e):this.readFeaturesFromNode(t,e)}readFeaturesFromDocument(t,e){const i=[];for(let n=t.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&_s(i,this.readFeaturesFromNode(n,e));return i}readFeaturesFromNode(t,e){return js()}readGeometry(t,e){if(!t)return null;if("string"==typeof t){const i=Kd(t);return this.readGeometryFromDocument(i,e)}return Wd(t)?this.readGeometryFromDocument(t,e):this.readGeometryFromNode(t,e)}readGeometryFromDocument(t,e){return null}readGeometryFromNode(t,e){return null}readProjection(t){if(!t)return null;if("string"==typeof t){const e=Kd(t);return this.readProjectionFromDocument(e)}return Wd(t)?this.readProjectionFromDocument(t):this.readProjectionFromNode(t)}readProjectionFromDocument(t){return this.dataProjection}readProjectionFromNode(t){return this.dataProjection}writeFeature(t,e){const i=this.writeFeatureNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeatureNode(t,e){return null}writeFeatures(t,e){const i=this.writeFeaturesNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeFeaturesNode(t,e){return null}writeGeometry(t,e){const i=this.writeGeometryNode(t,e);return this.xmlSerializer_.serializeToString(i)}writeGeometryNode(t,e){return null}},$E="http://www.opengis.net/gml",tC=/^\s*$/;class eC extends ZE{constructor(t){super(),t=t||{},this.featureType=t.featureType,this.featureNS=t.featureNS,this.srsName=t.srsName,this.schemaLocation="",this.FEATURE_COLLECTION_PARSERS={},this.FEATURE_COLLECTION_PARSERS[this.namespace]={featureMember:Zd(this.readFeaturesInternal),featureMembers:$d(this.readFeaturesInternal)},this.supportedMediaTypes=["application/gml+xml"]}readFeaturesInternal(t,e){const i=t.localName;let n=null;if("FeatureCollection"==i)n=hp([],this.FEATURE_COLLECTION_PARSERS,t,e,this);else if("featureMembers"==i||"featureMember"==i||"member"==i){const r=e[0];let s=r.featureType,o=r.featureNS;const a="p",l="p0";if(!s&&t.childNodes){s=[],o={};for(let e=0,i=t.childNodes.length;e0&&!(t instanceof _a)){t={_content_:t};for(let e=0;e=2,"At least 2 conditions are required")}};const AC=class extends pC{constructor(t){super("And",Array.prototype.slice.call(arguments))}};const fC=class extends dC{constructor(t,e,i){if(super("BBOX"),this.geometryName=t,this.extent=e,4!==e.length)throw new Error("Expected an extent with four values ([minX, minY, maxX, maxY])");this.srsName=i}};const mC=class extends dC{constructor(t,e,i,n){super(t),this.geometryName=e||"the_geom",this.geometry=i,this.srsName=n}};const _C=class extends mC{constructor(t,e,i){super("Contains",t,e,i)}};const yC=class extends mC{constructor(t,e,i,n,r){super("DWithin",t,e,r),this.distance=i,this.unit=n}};const IC=class extends mC{constructor(t,e,i){super("Disjoint",t,e,i)}};const EC=class extends dC{constructor(t,e){super(t),this.propertyName=e}};const CC=class extends EC{constructor(t,e,i){super("During",t),this.begin=e,this.end=i}};const vC=class extends EC{constructor(t,e,i,n){super(t,e),this.expression=i,this.matchCase=n}};const xC=class extends vC{constructor(t,e,i){super("PropertyIsEqualTo",t,e,i)}};const wC=class extends vC{constructor(t,e){super("PropertyIsGreaterThan",t,e)}};const SC=class extends vC{constructor(t,e){super("PropertyIsGreaterThanOrEqualTo",t,e)}};const bC=class extends mC{constructor(t,e,i){super("Intersects",t,e,i)}};const LC=class extends EC{constructor(t,e,i){super("PropertyIsBetween",t),this.lowerBoundary=e,this.upperBoundary=i}};const BC=class extends EC{constructor(t,e,i,n,r,s){super("PropertyIsLike",t),this.pattern=e,this.wildCard=void 0!==i?i:"*",this.singleChar=void 0!==n?n:".",this.escapeChar=void 0!==r?r:"!",this.matchCase=s}};const MC=class extends EC{constructor(t){super("PropertyIsNull",t)}};const TC=class extends vC{constructor(t,e){super("PropertyIsLessThan",t,e)}};const RC=class extends vC{constructor(t,e){super("PropertyIsLessThanOrEqualTo",t,e)}};const NC=class extends dC{constructor(t){super("Not"),this.condition=t}};const PC=class extends vC{constructor(t,e,i){super("PropertyIsNotEqualTo",t,e,i)}};const FC=class extends pC{constructor(t){super("Or",Array.prototype.slice.call(arguments))}};const DC=class extends mC{constructor(t,e,i){super("Within",t,e,i)}};function OC(t){const e=[null].concat(Array.prototype.slice.call(arguments));return new(Function.prototype.bind.apply(AC,e))}function QC(t,e,i){return new fC(t,e,i)}const kC={"http://www.opengis.net/gml":{boundedBy:ep(iC.prototype.readExtentElement,"bounds")},"http://www.opengis.net/wfs/2.0":{member:Zd(iC.prototype.readFeaturesInternal)}},GC={"http://www.opengis.net/wfs":{totalInserted:ep(Ep),totalUpdated:ep(Ep),totalDeleted:ep(Ep)},"http://www.opengis.net/wfs/2.0":{totalInserted:ep(Ep),totalUpdated:ep(Ep),totalDeleted:ep(Ep)}},UC={"http://www.opengis.net/wfs":{TransactionSummary:ep(ZC,"transactionSummary"),InsertResults:ep(iv,"insertIds")},"http://www.opengis.net/wfs/2.0":{TransactionSummary:ep(ZC,"transactionSummary"),InsertResults:ep(iv,"insertIds")}},qC={"http://www.opengis.net/wfs":{PropertyName:ip(bp)},"http://www.opengis.net/wfs/2.0":{PropertyName:ip(bp)}},VC={"http://www.opengis.net/wfs":{Insert:ip(nv),Update:ip(av),Delete:ip(ov),Property:ip(lv),Native:ip(hv)},"http://www.opengis.net/wfs/2.0":{Insert:ip(nv),Update:ip(av),Delete:ip(ov),Property:ip(lv),Native:ip(hv)}},zC="feature",YC="http://www.w3.org/2000/xmlns/",jC={"2.0.0":"http://www.opengis.net/ogc/1.1","1.1.0":"http://www.opengis.net/ogc","1.0.0":"http://www.opengis.net/ogc"},HC={"2.0.0":"http://www.opengis.net/wfs/2.0","1.1.0":"http://www.opengis.net/wfs","1.0.0":"http://www.opengis.net/wfs"},XC={"2.0.0":"http://www.opengis.net/fes/2.0","1.1.0":"http://www.opengis.net/fes","1.0.0":"http://www.opengis.net/fes"},WC={"2.0.0":"http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd","1.1.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd","1.0.0":"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/wfs.xsd"},KC={"2.0.0":gC,"1.1.0":cC,"1.0.0":oC};function JC(t,e,i,n){up(n,VC,rp(t),e,i)}function ZC(t,e){return hp({},GC,t,e)}const $C={"http://www.opengis.net/ogc":{FeatureId:Zd((function(t,e){return t.getAttribute("fid")}))},"http://www.opengis.net/ogc/1.1":{FeatureId:Zd((function(t,e){return t.getAttribute("fid")}))}};function tv(t,e){lp($C,t,e)}const ev={"http://www.opengis.net/wfs":{Feature:tv},"http://www.opengis.net/wfs/2.0":{Feature:tv}};function iv(t,e){return hp([],ev,t,e)}function nv(t,e,i){const n=i[i.length-1],r=n.featureType,s=n.featureNS,o=n.gmlVersion,a=jd(s,r);t.appendChild(a),2===o?oC.prototype.writeFeatureElement(a,e,i):3===o?cC.prototype.writeFeatureElement(a,e,i):gC.prototype.writeFeatureElement(a,e,i)}function rv(t,e,i){const n=i[i.length-1].version,r=jC[n],s=jd(r,"Filter"),o=jd(r,"FeatureId");s.appendChild(o),o.setAttribute("fid",e),t.appendChild(s)}function sv(t,e){const i=(t=t||zC)+":";return e.startsWith(i)?e:i+e}function ov(t,e,i){const n=i[i.length-1];go(void 0!==e.getId(),"Features must have an id set");const r=n.featureType,s=n.featurePrefix,o=n.featureNS,a=sv(s,r);t.setAttribute("typeName",a),t.setAttributeNS(YC,"xmlns:"+s,o);const l=e.getId();void 0!==l&&rv(t,l,i)}function av(t,e,i){const n=i[i.length-1];go(void 0!==e.getId(),"Features must have an id set");const r=n.version,s=n.featureType,o=n.featurePrefix,a=n.featureNS,l=sv(o,s),h=e.getGeometryName();t.setAttribute("typeName",l),t.setAttributeNS(YC,"xmlns:"+o,a);const c=e.getId();if(void 0!==c){const s=e.getKeys(),o=[];for(let t=0,i=s.length;t{const r=this.combineBboxAndFilter(n.geometryName,n.bbox,t.srsName,t.filter);Object.assign(i,{geometryName:n.geometryName,filter:r}),bv(e,[n.name],[i])}));return e}combineBboxAndFilter(t,e,i,n){const r=QC(t,e,i);return n?OC(n,r):r}writeTransaction(t,e,i,n){const r=[],s=n.version?n.version:this.version_,o=jd(HC[s],"Transaction");let a;o.setAttribute("service","WFS"),o.setAttribute("version",s),n&&(a=n.gmlOptions?n.gmlOptions:{},n.handle&&o.setAttribute("handle",n.handle)),o.setAttributeNS(Yd,"xsi:schemaLocation",WC[s]);const l=function(t,e,i,n){const r=n.featurePrefix?n.featurePrefix:zC;let s;"1.0.0"===i?s=2:"1.1.0"===i?s=3:"2.0.0"===i&&(s=3.2);const o=Object.assign({node:t},{version:i,featureNS:n.featureNS,featureType:n.featureType,featurePrefix:r,gmlVersion:s,hasZ:n.hasZ,srsName:n.srsName},e);return o}(o,a,s,n);return t&&JC("Insert",t,r,l),e&&JC("Update",e,r,l),i&&JC("Delete",i,r,l),n.nativeElements&&JC("Native",n.nativeElements,r,l),o}readProjectionFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE)return this.readProjectionFromNode(e);return null}readProjectionFromNode(t){if(t.firstElementChild&&t.firstElementChild.firstElementChild)for(let e=(t=t.firstElementChild.firstElementChild).firstElementChild;e;e=e.nextElementSibling)if(0!==e.childNodes.length&&(1!==e.childNodes.length||3!==e.firstChild.nodeType)){const t=[{}];return this.gmlFormat_.readGeometryElement(e,t),ee(t.pop().srsName)}return null}};var Mv=i(690),Tv=i.n(Mv),Rv=i(512),Nv=i.n(Rv);class Pv extends pf{constructor(t,e){super(),this.userFormat=t,this.featureCount=e.featureCount,qL(this.featureCount)&&(this.featureCount=10),this.buffer=e.buffer}addTo(t,e){!1===t.getMapImpl().getControls().getArray().some((t=>t instanceof Pv))&&(this.facadeMap_=t,this.element=e,t.getMapImpl().addControl(this))}activate(){this.addOnClickEvent_()}deactivate(){this.deleteOnClickEvent_()}addOnClickEvent_(){const t=this.facadeMap_.getMapImpl();"plain"===XL(this.userFormat)||"text/plain"===XL(this.userFormat)?this.userFormat="text/plain":"gml"===XL(this.userFormat)||"application/vnd.ogc.gml"===XL(this.userFormat)?this.userFormat="application/vnd.ogc.gml":this.userFormat="text/html",this.clickEventKey_=t.on("singleclick",(t=>this.buildUrl_(r,t)))}buildUrl_(t,e){this.evt=e;const i=this.facadeMap_.getMapImpl(),n=this.buildWMSInfoURL(this.facadeMap_.getWMS()),r=[...this.buildWMTSInfoURL(this.facadeMap_.getWMTS()),...n].filter((t=>!qL(t)));r.length>0?this.showInfoFromURL_(r,e.coordinate,i):t.info("No existen capas consultables")}buildWMSInfoURL(t){const e=this.facadeMap_.getMapImpl().getView().getResolution(),i=this.facadeMap_.getProjection().code;return t.map((t=>{const n=t.getImpl().getOLLayer();let r;if(t.isVisible()&&t.isQueryable()&&!qL(n)){r={};const s={INFO_FORMAT:this.userFormat,FEATURE_COUNT:this.featureCount},o=/buffer/i,a=n.getSource(),l=this.evt.coordinate;let h=a.getFeatureInfoUrl(l,e,i,s);YL(M.config.ticket)&&(h=KL(h,{ticket:M.config.ticket})),o.test(t.url)||(s.Buffer=this.buffer),r={layer:t.legend||t.name,url:h}}return r}))}buildWMTSInfoURL(t){return t.map((t=>{let e;if(t.isVisible()){e={};const i=this.userFormat,n=this.evt.coordinate;let r=t.getGetFeatureInfoUrl(n,this.facadeMap_.getZoom(),i);YL(M.config.ticket)&&(r=KL(r,{ticket:M.config.ticket})),e={layer:t.legend||t.name,url:r}}return e}))}deleteOnClickEvent_(){zs(this.clickEventKey_)}static insert(t,e){let i=!1;switch(e){case"text/html":const e=document.createElement("div");e.innerHTML=t;let n="";Array.prototype.forEach.call(e.querySelectorAll("body"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("div"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("table"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("b"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("span"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("input"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("a"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("img"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("p"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("ul"),(t=>{n+=t.innerHTML.trim()})),Array.prototype.forEach.call(e.querySelectorAll("li"),(t=>{n+=t.innerHTML.trim()})),n.length>0&&!/WMS\s+server\s+error/i.test(t)&&(i=!0);break;case"application/vnd.ogc.gml":i=(new Bv).readFeatures(t).length>0;break;case"text/plain":/returned\s+no\s+results/i.test(t)||/features\s+were\s+found/i.test(t)||/:$/i.test(t)||(i=!0)}return i}formatInfo(t,e,i){let n=null;switch(e){case"text/html":n=t;break;case"application/vnd.ogc.gml":const e=(new Bv).readFeatures(t);n="",e.forEach((t=>{const e=t.getKeys();n+="
    ",n+=`'`;for(let i=0,r=e.length;i"}n+="
    ' ${sB(i)} '
    ',n+=sB(r),n+='',n+=s,n+="
    "}));break;case"text/plain":n=Pv.regExs.gsResponse.test(t)?this.txtToHtmlGeoserver(t,i):this.txtToHtmlMapserver(t,i)}return n}static unsupportedFormat(t,e){let i=!1;return"text/html"===e&&(i=Pv.regExs.msUnsupportedFormat.test(t)),i}txtToHtmlGeoserver(t,e){let i=t;i=i.replace(/[\w\s\S]*':/i,""),i=i.replace(/---(-*)(n+)---(-*)/g,"#newfeature#");const n=i.split("\n");let r="
    ";r+=``;for(let t=0,i=n.length;t1&&(n=t[1].trim(),0!==n.length&&"null"!==n||(n="-")),!1===Pv.regExs.gsGeometry.test(e)&&(r+='")}else Pv.regExs.gsNewFeature.test(i)&&(r+=``)}return r+="
    ${sB(e)}
    ',r+=sB(e),r+='',r+=n,r+="
    ${sB(e)}
    ",r}txtToHtmlMapserver(t){let e=t;e=e.replace(/[\w\s\S]*(layer)/i,"$1");const i=e.replace(/layer(\s*)'(\w+)'[\w\s\S]*/i,"$2");e=e.replace(/layer(\s*)'(\w+)'([\w\s\S]*)/i,"$3"),e=e.replace(/feature(\s*)(\w*)(\s*)(:)([\w\s\S]*)/i,"$5"),e=e.replace(/'/g,""),e=e.replace(/=/g,";");const n=e.split("\n");let r="";const s=``;for(let t=0,e=n.length;t1&&(l=o[1].trim(),0===l.length&&(l="-")),a.length>0&&(Pv.regExs.msNewFeature.test(a)?s.length>0&&!Pv.regExs.msNewFeature.test(s)&&(r+=``):(r+='"))}return r.length>0&&(r=`${s+r}
    ${sB(i)}
    ${sB(i)}
    ',r+=sB(a),r+='',r+=l,r+="
    `),r}showInfoFromURL_(t,e,i){const n=bu(Tv(),{vars:{info:Pv.LOADING_MESSAGE},parseToHtml:!1}),r=[],s=String(this.userFormat);let o=0;const a={icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:n};let l=this.facadeMap_.getPopup();if(qL(l))l=new sI,l.addTab(a),this.facadeMap_.addPopup(l,e);else{l.getTabs().some((t=>t.title!==Pv.POPUP_TITLE))?l.addTab(a):(this.facadeMap_.removePopup(),l=new sI,l.addTab(a),this.facadeMap_.addPopup(l,e))}t.forEach((e=>{const i=e.url,n=e.layer;DL(i).then((e=>{if(l=this.facadeMap_.getPopup(),200===e.code&&!1===e.error){const t=e.text;if(!0===Pv.insert(t,s)){const e=this.formatInfo(t,s,n);r.push({formatedInfo:e,layerName:n})}else Pv.unsupportedFormat(t,s)&&r.push({formatedInfo:Cu("getfeatureinfo").unsupported_format,layerName:n})}if(o+=1,t.length===o&&!qL(l))if(l.removeTab(a),0===r.length)l.addTab({icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:Cu("getfeatureinfo").no_info});else{const t=bu(Nv(),{vars:{layers:r,info_of:Cu("getfeatureinfo").info_of},parseToHtml:!1});l.addTab({icon:"g-cartografia-info",title:Pv.POPUP_TITLE,content:t,listeners:[{selector:".m-getfeatureinfo-content-info div.m-arrow-right",all:!0,type:"click",callback:t=>this.toogleSection(t)}]})}}))})),this.popup_=l}toogleSection(t){const{target:e}=t,{parentElement:i}=e.parentElement,n=i.querySelector(".m-getfeatureinfo-content-info-body");if(n.classList.contains("m-content-collapsed")){n.classList.remove("m-content-collapsed"),e.classList.remove("m-arrow-right"),e.classList.add("m-arrow-down");const t=this.popup_.getCoordinate();qL(this.popup_.getImpl().panIntoView)||this.popup_.getImpl().panIntoView(t)}else n.classList.add("m-content-collapsed"),e.classList.add("m-arrow-right"),e.classList.remove("m-arrow-down")}}Pv.LOADING_MESSAGE="Obteniendo información...",Pv.regExs={gsResponse:/^results[\w\s\S]*'http:/i,msNewFeature:/feature(\s*)(\w+)(\s*):/i,gsNewFeature:/#newfeature#/,gsGeometry:/geom$/i,msGeometry:/boundedby$/i,msUnsupportedFormat:/error(.*)unsupported(.*)info_format/i};const Fv=Pv;var Dv=i(649),Ov=i.n(Dv);class Qv extends vu{constructor(t,e={}){super(new Fv(t,e),Qv.NAME),QL(Fv)&&Oc(Cu("exception").getfeatureinfo_method),this.format=t}createView(t){return bu(Ov(),{vars:{title:Cu("getfeatureinfo").title}})}getActivationButton(t){return t.querySelector("button#m-getfeatureinfo-button")}equals(t){let e=!1;return t instanceof Qv&&(e=this.name===t.name),e}}Qv.NAME="getfeatureinfo",Qv.POPUP_TITLE=Cu("getfeatureinfo").info;const kv=Qv;var Gv=i(83),Uv=i.n(Gv);const qv=".m-top.m-left",Vv=".m-top.m-right",zv=".m-bottom.m-left",Yv=".m-bottom.m-right";class jv extends Mc{constructor(t,e={}){super(),this.name=t,this._map=null,this._controls=[],this._buttonPanel=null,this._collapsible=!1,qL(e.collapsible)||(this._collapsible=e.collapsible),this.position=qv,qL(e.position)||(this.position=e.position),this._collapsed=this._collapsible,qL(e.collapsed)||(this._collapsed=e.collapsed&&!0===this._collapsible),this._multiActivation=!1,qL(e.multiActivation)||(this._multiActivation=e.multiActivation),this._className=null,qL(e.className)||(this._className=e.className),this._collapsedButtonClass=null,qL(e.collapsedButtonClass)?this.position===qv||this.position===zv?this._collapsedButtonClass="g-cartografia-flecha-derecha":this.position!==Vv&&this.position!==Yv||(this._collapsedButtonClass="g-cartografia-flecha-izquierda"):this._collapsedButtonClass=e.collapsedButtonClass,this._openedButtonClass=null,qL(e.openedButtonClass)?this.position===qv||this.position===zv?this._openedButtonClass="g-cartografia-flecha-izquierda":this.position!==Vv&&this.position!==Yv||(this._openedButtonClass="g-cartografia-flecha-derecha"):this._openedButtonClass=e.openedButtonClass,this._element=null,this._areaContainer=null,this._controlsContainer=null,this._tooltip=null,qL(e.tooltip)||(this._tooltip=e.tooltip)}destroy(){null!=this._element&&this._areaContainer.removeChild(this._element),this._controlsContainer=null}addTo(t,e){this._map=t,this._areaContainer=e;const i=bu(Uv());this._element=i,qL(this._tooltip)||this._element.setAttribute("title",this._tooltip),this._buttonPanel=i.querySelector("button.m-panel-btn"),qL(this._className)||this._className.split(/\s+/).forEach((t=>{i.classList.add(t)})),!0===this._collapsed?this.collapse():this.open(),!0!==this._collapsible&&i.classList.add("no-collapsible"),this._controlsContainer=i.querySelector("div.m-panel-controls"),e.appendChild(i),this._buttonPanel.addEventListener("click",(t=>{t.preventDefault(),!1===this._collapsed?this.collapse():this.open()})),this.addControls(this._controls),this.fire(kc,i)}_collapse(t){t.classList.remove("opened"),this._buttonPanel.classList.remove(this._openedButtonClass),t.classList.add("collapsed"),this._buttonPanel.classList.add(this._collapsedButtonClass),this._collapsed=!0,this.fire($c)}_open(t){t.classList.remove("collapsed"),this._buttonPanel.classList.remove(this._collapsedButtonClass),t.classList.add("opened"),this._buttonPanel.classList.add(this._openedButtonClass),this._collapsed=!1,this.fire(Zc)}open(){this._open(this._element)}collapse(){this._collapse(this._element)}getControls(){return this._controls}addControls(t){let e=t;qL(e)||(UL(e)||(e=[e]),e.forEach((t=>{t instanceof vu&&(this.hasControl(t)||(this._controls.push(t),t.setPanel(this),t.on(tu,this._removeControl.bind(this),this)),qL(this._controlsContainer)||(t.on(kc,this._moveControlView.bind(this),this),t.addTo(this._map)),t.on(Kc,this._manageActivation.bind(this),this))})))}hasControl(t){let e=!1;return qL(t)||(YL(t)?e=null!=this._controls.filter((e=>e.name===t))[0]:t instanceof vu&&(e=lB(this._controls,t))),e}removeControls(t){let e=t;qL(e)||(UL(e)||(e=[e]),e.forEach((t=>{const e=t;e instanceof vu&&this.hasControl(e)&&(this._controls=this._controls.filter((t=>!e.equals(t))),e.destroy&&e.destroy(),e.setPanel(null))}),this),0===this._controls.length&&this._map.removePanel(this))}_removeControl(t){this._map.controls(t).forEach((t=>{const e=this._controls.indexOf(t);-1!==e&&this._controls.splice(e,1)}))}removeClassName(t){qL(this._element)?this._className=this._className.replace(new RegExp(`s* ${t} s*`),""):this._element.classList.remove(t)}addClassName(t){qL(this._element)?this._className=this._className.concat(" ").concat(t):this._element.classList.add(t)}_moveControlView(t){const e=t.getElement();qL(this._controlsContainer)||this._controlsContainer.appendChild(e),t.fire(Gc)}_manageActivation(t){!0!==this._multiActivation&&this._controls.forEach((e=>{!e.equals(t)&&e.activated&&e.deactivate()}))}equals(t){let e=!1;return t instanceof jv&&(e=t.name===this.name),e}getTemplatePanel(){return this._element}getButtonPanel(){return this._buttonPanel}isCollapsed(){return this._collapsed}setCollapsed(t){this._collapsed=t}getControlsContainer(){return this._controlsContainer}}const Hv=jv,Xv="map-info",Wv=(t,e)=>{t.on(kc,(()=>{3===e.getControls(["wmcselector","scale","scaleline"]).length&&e.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")}))};class Kv{constructor(t={},e=(()=>null)){this.panel_=new Hv(t.name,{...t.params}),e(this.panel_)}get panel(){return this.panel_}}const Jv=t=>{let e=t.getPanels("map-info")[0];if(qL(e)){const i=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}},(e=>{Wv(e,t)}));e=i.panel}return e.addClassName("m-with-scale"),e},Zv=(t,e)=>{const i={[kv.NAME]:()=>(t=>{const e=t;if(qL(e.panel.TOOLS)){const t=new Kv({name:"tools",params:{collapsible:!0,className:"m-tools",collapsedButtonClass:"g-cartografia-herramienta",position:qv,tooltip:"Panel de herramientas"}});e.panel.TOOLS=t.panel}return e.panel.TOOLS})(e),[xI.NAME]:()=>(()=>{const t=new Kv({name:xI.NAME,params:{collapsible:!0,className:"m-layerswitcher",collapsedButtonClass:"g-cartografia-capas2",position:Vv,tooltip:Cu("layerswitcher").title}},(t=>{t.on(kc,(t=>{uB(t.querySelector(".m-panel-controls"))})),t.on(Zc,(t=>{const e=t.getControls()[0];e.registerEvents(),e.render()})),t.on($c,(t=>{t.getControls()[0].unregisterEvents()}))}));return t.panel})(),[VI.NAME]:()=>new Kv({name:VI.NAME,params:{collapsible:!1,className:"m-location",position:Yv}}).panel,[ME.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];qL(e)&&(e=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv,tooltip:"Coordenadas del puntero"}}).panel);return e.addClassName("m-with-mouse"),e})(e),[QE.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];qL(e)&&(e=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}}).panel);return e.addClassName("m-with-overview"),e})(e),[XE.NAME]:()=>new Kv({name:XE.NAME,params:{collapsible:!1,className:"m-panzoom",position:qv}}).panel,[Mu.NAME]:()=>new Kv({name:Mu.NAME,params:{collapsible:!1,className:"m-panzoombar",position:qv,tooltip:"Nivel de zoom"}}).panel,[sE.NAME]:()=>new Kv({name:sE.NAME,params:{collapsible:!1,className:"m-rotate",position:Vv}}).panel,[XI.NAME]:()=>Jv(e),[`${XI.NAME}*true`]:()=>Jv(e),[EE.NAME]:()=>(t=>{const e=new Kv({name:EE.NAME,params:{collapsible:!1,className:"m-scaleline",position:zv,tooltip:"Línea de escala"}},(e=>{Wv(e,t)}));return e.panel})(e),[mf.NAME]:()=>(t=>{let e=t.getPanels("map-info")[0];if(qL(e)){const i=new Kv({name:Xv,params:{collapsible:!1,className:"m-map-info",position:Yv}},(e=>{Wv(e,t)}));e=i.panel}return e.addClassName("m-with-wmcselector"),e})(e)},n=i[t.name];return VL(n)?n():null};var $v=i(340),tx=i.n($v);const ex=class{constructor(t,e,i){this.text_=t,this.coord_=[e.x,e.y],this.popup_=null,this.facadeMap_=null,this.panMapIfOutOfView=i}show(t,e){this.facadeMap_=t;const i=bu(tx(),{vars:{info:this.text_},parseToHtml:!1});this.popup_=new sI({panMapIfOutOfView:this.panMapIfOutOfView}),this.popup_.addTab({icon:"g-cartografia-comentarios",title:"Información",content:i}),t.addPopup(this.popup_,this.coord_,e)}hide(){this.facadeMap_.removePopup()}getPopup(){return this.popup_}getCoordinate(){let t=this.coord;return qL(t)&&(t=this.getPopup().getCoordinate()),t}setCoordinate(t){const e=this.getPopup();qL(e)||e.setCoordinate(t)}};class ix extends Qc{constructor(t,e,i){super(new ex(t,e,i))}hide(){this.getImpl().hide()}show(t,e){this.getImpl().show(t,e)}getPopup(){return this.getImpl().getPopup()}getCoordinate(){return this.getImpl().getCoordinate()}setCoordinate(t){this.getImpl().coordinate=t}}ix.POPUP_TEMPLATE="label_popup.html";const nx=ix,rx=t=>{let e;return YL(t)?e=document.getElementById(t):zL(t)?qL(t.id)?qL(t.container)?Oc(Cu("exception").no_container):e=rx(t.container):e=document.getElementById(t.id):Oc("El tipo del parámetro container no es válido: "+typeof t),qL(e)&&Oc(Cu("exception").no_id_container),e};const sx=class{constructor(t){qL(t)&&Oc(Cu("exception").no_param),this.container=rx(t),this.layers=(t=>{let e;return YL(t)?e=WL("layers",t):zL(t)?e=t.layers:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmc=(t=>{let e;return YL(t)?(e=WL("wmc",t),qL(e)&&(e=WL("wmcfile",t)),qL(e)&&(e=WL("wmcfiles",t))):zL(t)?(e=t.wmc,qL(e)&&(e=t.wmcfile),qL(e)&&(e=t.wmcfiles)):Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wms=(t=>{let e;return YL(t)?e=WL("wms",t):zL(t)?e=t.wms:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.wmts=(t=>{let e;return YL(t)?e=WL("wmts",t):zL(t)?e=t.wmts:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.kml=(t=>{let e;return YL(t)?e=WL("kml",t):zL(t)?e=t.kml:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.controls=(t=>{let e;return YL(t)?e=WL("controls",t):zL(t)?e=t.controls:Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.getfeatureinfo=(t=>{let e;return YL(t)?e=WL("getfeatureinfo",t):zL(t)?(e=t.getfeatureinfo,!QL(e)&&qL(e)&&(e="plain")):Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.layerswitcher=(t=>{let e;return YL(t)?e=WL("layerswitcher",t):zL(t)?e=t.layerswitcher:Oc("El tipo del parámetro controls no es válido: "+typeof t),e})(t),this.maxExtent=(t=>{let e;return YL(t)?(e=WL("maxExtent",t),qL(e)&&(e=WL("maxextent",t))):zL(t)?(e=t.maxExtent,qL(e)&&(e=t.maxextent)):Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.bbox=(t=>{let e;return YL(t)?e=WL("bbox",t):zL(t)?e=t.bbox:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.zoom=(t=>{let e;return YL(t)?e=WL("zoom",t):zL(t)?e=t.zoom:Oc("El tipo del parámetro zoom no es válido: "+typeof t),e})(t),this.center=(t=>{let e;return YL(t)?e=WL("center",t):zL(t)?e=t.center:Oc("El tipo del parámetro center no es válido: "+typeof t),e})(t),this.resolutions=(t=>{let e;return YL(t)?e=WL("resolutions",t):zL(t)?e=t.resolutions:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.projection=(t=>{let e;return YL(t)?e=WL("projection",t):zL(t)?e=t.projection:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.label=(t=>{let e;return YL(t)?e=WL("label",t):zL(t)?e=t.label:Oc("El tipo del parámetro container no es válido: "+typeof t),e})(t),this.ticket=(t=>{let e;return YL(t)?e=WL("ticket",t):zL(t)?e=t.ticket:Oc("El tipo del parámetro ticket no es válido: "+typeof t),e})(t),this.rotation=(t=>{let e=t;return YL(t)?e=WL("rotation",t):zL(t)&&(e=t.rotation),e})(t),this.bgColorContainer=(t=>{let e;return YL(t)?e=WL("bgColorContainer",t):zL(t)?e=t.bgColorContainer:Oc("El tipo del parámetro bgColorContainer no es válido: "+typeof t),e})(t)}};class ox extends Qc{constructor(){super(new lx),this.id_=JL("mapea","render_feature")}getId(){return this.id_}getGeometry(){return null}getAttributes(){return this.getImpl().getAttributes()}getType(){return this.getImpl().getType()}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),qL(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qL(t)||(i=t instanceof ox?t.getAttribute(e):t[e]),i}),this))}return e}equals(t){return this.getId()===t.getId()}}const ax=ox;const lx=class{constructor(){this.olFeature_=null}getOLFeature(){return this.olFeature_}getType(){return this.getOLFeature().getType()}setOLFeature(t){qL(t)||(this.olFeature_=t)}getAttributes(){return this.olFeature_.getProperties()}static olFeature2Facade(t,e){let i=null;return qL(t)||(i=new ax,i.getImpl().setOLFeature(t)),i}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){}},hx=(t,e)=>{let i;const n=t.getId();return qL(n)||(i=e.getFeatureById(n)),qL(i)&&t instanceof Pd&&(i=lx.olFeature2Facade(t)),i};const cx=class{constructor(t={}){this.map_=null,this.defaultCursor_=void 0}addTo(t){this.map_=t}getFeaturesByLayer(t,e){const i=[];if(!qL(e)&&e.isVisible()&&!qL(e.getImpl().getOLLayer())){const n=e.getImpl().getOLLayer();this.map_.getMapImpl().forEachFeatureAtPixel(t.pixel,((t,n)=>{if(n instanceof Ly&&!qL(t.get("features"))){const n=t.get("features").map((t=>hx(t,e)));if(1===n.length)i.push(n[0]);else{let t=e.getStyle();t instanceof Vy||(t=t.getStyles().find((t=>t instanceof Vy))),i.push(new OB(n,{ranges:t.getRanges(),hoverInteraction:t.getOptions().hoverInteraction,maxFeaturesToSelect:t.getOptions().maxFeaturesToSelect,distance:t.getOptions().distance}))}}else Object.prototype.hasOwnProperty.call(t.getProperties(),"selectclusterlink")||i.push(hx(t,e))}),{layerFilter:t=>{let i=!1;return e.getStyle()instanceof Vy&&e.getStyle().getOptions().selectInteraction&&(i=t===e.getStyle().getImpl().selectClusterInteraction.getLayer()),i=i||t===n,i}})}return i}addCursorPointer(){const t=this.map_.getMapImpl().getViewport();"pointer"!==t.style.cursor&&(this.defaultCursor_=t.style.cursor),t.style.cursor="pointer"}removeCursorPointer(){this.map_.getMapImpl().getViewport().style.cursor=this.defaultCursor_}destroy(){this.map_.un("click",this.onMapClick_,this),this.map_=null}};const ux=class extends Qc{constructor(t={},e=new cx(t)){super(e),this.map_=null,this.layers_=[],this.activated_=!1,this.prevSelectedFeatures_={},this.prevHoverFeatures_={},VL(e.addTo)||Oc(Cu("exception").addto_method),VL(e.getFeaturesByLayer)||Oc(Cu("exception").getfeaturesbylayer_method)}addTo(t){this.map_=t,this.map_.on(Au,this.moveOverMap_.bind(this)),this.map_.on(pu,this.clickOnMap_.bind(this)),this.getImpl().addTo(this.map_),this.fire(kc)}changeNamePrevs(t,e){const i=this.prevHoverFeatures_[t],n=this.prevSelectedFeatures_[t];this.prevHoverFeatures_[e]=i,this.prevSelectedFeatures_[e]=n,delete this.prevHoverFeatures_[t],delete this.prevSelectedFeatures_[t]}clickOnMap_(t){if(!0===this.activated_){const e=this.getImpl();this.map_.removePopup(),this.layers_.forEach((i=>{const n=e.getFeaturesByLayer(t,i),r=[...this.prevSelectedFeatures_[i.id]];if(0===n.length&&r.length>0)this.unselectFeatures(r,i,t);else if(n.length>0){const e=n.filter((t=>!r.some((e=>e.equals(t))))),s=r.filter((t=>!n.some((e=>e.equals(t)))));s.length>0&&this.unselectFeatures(s,i,t),e.length>0&&this.selectFeatures(e,i,t)}}))}}moveOverMap_(t){if(!0===this.activated_){const e=this.getImpl();this.layers_.forEach((i=>{const n=e.getFeaturesByLayer(t,i),r=[...this.prevHoverFeatures_[i.id]];if(0===n.length&&r.length>0)this.leaveFeatures_(r,i,t);else if(n.length>0){const e=n.filter((t=>(t instanceof DB||t instanceof ax)&&!r.some((e=>e.equals(t))))),s=r.filter((t=>!n.some((e=>e.equals(t)))));s.length>0&&this.leaveFeatures_(s,i,t),e.length>0&&this.hoverFeatures_(e,i,t)}}))}}selectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].concat(t);const n=e.getImpl();VL(n.selectFeatures)&&n.selectFeatures(t,i.coord,i),e.fire(eu,[t,i])}unselectFeatures(t,e,i){this.prevSelectedFeatures_[e.id]=this.prevSelectedFeatures_[e.id].filter((e=>!t.some((t=>t.equals(e)))));const n=e.getImpl();VL(n.unselectFeatures)&&n.unselectFeatures(t,i.coord),e.fire(iu,[t,i.coord])}hoverFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].concat(t),e.fire(nu,[t,i]),this.getImpl().addCursorPointer()}leaveFeatures_(t,e,i){this.prevHoverFeatures_[e.id]=this.prevHoverFeatures_[e.id].filter((e=>!t.some((t=>t.equals(e))))),e.fire(ru,[t,i.coord]),this.getImpl().removeCursorPointer()}activate(){!1===this.activated_&&(this.activated_=!0,this.fire(Kc))}deactivate(){!0===this.activated_&&(this.activated_=!1,this.fire(Jc))}addLayer(t){lB(this.layers_,t)||(this.layers_.push(t),this.prevSelectedFeatures_[t.id]=[],this.prevHoverFeatures_[t.id]=[])}removeLayer(t){this.layers_=this.layers_.filter((e=>!e.equals(t))),this.prevSelectedFeatures_[t.id]=null,this.prevHoverFeatures_[t.id]=null,delete this.prevSelectedFeatures_[t.id],delete this.prevHoverFeatures_[t.id]}destroy(){}clearSelectedFeatures(){Object.keys(this.prevSelectedFeatures_).forEach((t=>{this.prevSelectedFeatures_[t]=[]}))}clearHoverFeatures(){Object.keys(this.prevHoverFeatures_).forEach((t=>{this.prevHoverFeatures_[t]=[]}))}};var gx=i(279),dx=i.n(gx);const px=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{this.loadInternal_(n).then((e=>{t(e)}))}}loadInternal_(t){return new Promise(((t,e)=>{DL(this.url_).then((e=>{const i=this.map_.getProjection().code;if(qL(e.text))Oc(Cu("exception").no_kml_response);else{const n=this.format_.readCustomFeatures(e.text,{featureProjection:i}),r=this.format_.getScreenOverlay(),s=n.map((t=>{const e=new DB(t.getId(),{geometry:{coordinates:t.getGeometry().getCoordinates(),type:t.getGeometry().getType()},properties:t.getProperties()});return e.getImpl().getOLFeature().setStyle(t.getStyle()),e}));t({features:s,screenOverlay:r})}}))}))}},Ax=["http://www.google.com/kml/ext/2.2"],fx=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],mx={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},_x=ap(fx,{ExtendedData:Ew,Region:Cw,MultiGeometry:ep(gw,"geometry"),LineString:ep(hw,"geometry"),LinearRing:ep(cw,"geometry"),Point:ep(dw,"geometry"),Polygon:ep(Aw,"geometry"),Style:ep(mw),StyleMap:function(t,e){const i=Wx.call(this,t,e);if(!i)return;const n=e[e.length-1];if(Array.isArray(i))n.Style=i;else{if("string"!=typeof i)throw new Error("`styleMapValue` has an unknown type");n.styleUrl=i}},address:ep(vp),description:ep(vp),name:ep(vp),open:ep(fp),phoneNumber:ep(vp),styleUrl:ep(jx),visibility:ep(fp)},ap(Ax,{MultiTrack:ep((function(t,e){const i=hp([],iw,t,e);if(!i)return;return new bd(i)}),"geometry"),Track:ep(rw,"geometry")})),yx=ap(fx,{ExtendedData:Ew,Region:Cw,Link:function(t,e){lp(Ix,t,e)},address:ep(vp),description:ep(vp),name:ep(vp),open:ep(fp),phoneNumber:ep(vp),visibility:ep(fp)}),Ix=ap(fx,{href:ep(Yx)}),Ex=ap(fx,{Altitude:ep(yp),Longitude:ep(yp),Latitude:ep(yp),Tilt:ep(yp),AltitudeMode:ep(vp),Heading:ep(yp),Roll:ep(yp)}),Cx=ap(fx,{LatLonAltBox:function(t,e){const i=hp({},ww,t,e);if(!i)return;const n=e[e.length-1],r=[parseFloat(i.west),parseFloat(i.south),parseFloat(i.east),parseFloat(i.north)];n.extent=r,n.altitudeMode=i.altitudeMode,n.minAltitude=parseFloat(i.minAltitude),n.maxAltitude=parseFloat(i.maxAltitude)},Lod:function(t,e){const i=hp({},Sw,t,e);if(!i)return;const n=e[e.length-1];n.minLodPixels=parseFloat(i.minLodPixels),n.maxLodPixels=parseFloat(i.maxLodPixels),n.minFadeExtent=parseFloat(i.minFadeExtent),n.maxFadeExtent=parseFloat(i.maxFadeExtent)}}),vx=ap(fx,["Document","Placemark"]),xx=ap(fx,{Document:ip((function(t,e,i){const n={node:t};up(n,Tw,Rw,e,i,void 0,this)})),Placemark:ip(iS)});let wx,Sx,bx,Lx,Bx,Mx,Tx=null;let Rx,Nx=null;let Px,Fx=null;let Dx=null;let Ox=null;let Qx,kx=null;function Gx(t){return 32/Math.min(t[0],t[1])}function Ux(t){return t}function qx(t,e,i){return Array.isArray(t)?t:"string"==typeof t?qx(i[t],e,i):e}function Vx(t){const e=Hd(t,!1),i=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(i){const t=i[1];return[parseInt(t.substr(6,2),16),parseInt(t.substr(4,2),16),parseInt(t.substr(2,2),16),parseInt(t.substr(0,2),16)/255]}}function zx(t){let e=Hd(t,!1);const i=[];e=e.replace(/\s*,\s*/g,",");const n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i;let r;for(;r=n.exec(e);){const t=parseFloat(r[1]),n=parseFloat(r[2]),s=r[3]?parseFloat(r[3]):0;i.push(t,n,s),e=e.substr(r[0].length)}if(""===e)return i}function Yx(t){const e=Hd(t,!1).trim();let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function jx(t){const e=Hd(t,!1).trim().replace(/^(?!.*#)/,"#");let i=t.baseURI;if(i&&"about:blank"!=i||(i=window.location.href),i){return new URL(e,i).href}return e}function Hx(t){return yp(t)}const Xx=ap(fx,{Pair:function(t,e){const i=hp({},vw,t,e,this);if(!i)return;const n=i.key;if(n&&"normal"==n){const t=i.styleUrl;t&&(e[e.length-1]=t);const n=i.Style;n&&(e[e.length-1]=n)}}});function Wx(t,e){return hp(void 0,Xx,t,e,this)}const Kx=ap(fx,{Icon:ep((function(t,e){const i=hp({},sw,t,e);if(i)return i;return null})),color:ep(Vx),heading:ep(yp),hotSpot:ep((function(t){const e=t.getAttribute("xunits"),i=t.getAttribute("yunits");let n;return n="insetPixels"!==e?"insetPixels"!==i?"bottom-left":"top-left":"insetPixels"!==i?"bottom-right":"top-right",{x:parseFloat(t.getAttribute("x")),xunits:mx[e],y:parseFloat(t.getAttribute("y")),yunits:mx[i],origin:n}})),scale:ep(Hx)});const Jx=ap(fx,{color:ep(Vx),scale:ep(Hx)});const Zx=ap(fx,{color:ep(Vx),width:ep(yp)});const $x=ap(fx,{color:ep(Vx),fill:ep(fp),outline:ep(fp)});const tw=ap(fx,{coordinates:$d(zx)});function ew(t,e){return hp(null,tw,t,e)}const iw=ap(Ax,{Track:Zd(rw)});const nw=ap(fx,{when:function(t,e){const i=e[e.length-1].whens,n=Hd(t,!1),r=Date.parse(n);i.push(isNaN(r)?0:r)}},ap(Ax,{coord:function(t,e){const i=e[e.length-1].coordinates,n=Hd(t,!1),r=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(n);if(r){const t=parseFloat(r[1]),e=parseFloat(r[2]),n=parseFloat(r[3]);i.push([t,e,n])}else i.push([])}}));function rw(t,e){const i=hp({coordinates:[],whens:[]},nw,t,e);if(!i)return;const n=[],r=i.coordinates,s=i.whens;for(let t=0,e=Math.min(r.length,s.length);t0){e[e.length-1].push(...i)}},outerBoundaryIs:function(t,e){const i=hp(void 0,Lw,t,e);if(i){e[e.length-1][0]=i}}});function Aw(t,e){const i=hp({},lw,t,e),n=hp([null],pw,t,e);if(n&&n[0]){const t=n[0],e=[t.length];for(let i=1,r=n.length;i0;let o;const a=r.href;let l,h,c;a?o=a:s&&(o=Mx);let u="bottom-left";const g=i.hotSpot;let d;g?(l=[g.x,g.y],h=g.xunits,c=g.yunits,u=g.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(o)&&(o.includes("pushpin")?(l=Sx,h=bx,c=Lx):o.includes("arrow-reverse")?(l=[54,42],h=bx,c=Lx):o.includes("paddle")&&(l=[32,1],h=bx,c=Lx));const p=r.x,A=r.y;let f;void 0!==p&&void 0!==A&&(d=[p,A]);const m=r.w,_=r.h;let y;void 0!==m&&void 0!==_&&(f=[m,_]);const I=i.heading;void 0!==I&&(y=mt(I));const E=i.scale,C=i.color;if(s){o==Mx&&(f=Bx);const t=new Hf({anchor:l,anchorOrigin:u,anchorXUnits:h,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:d,offsetOrigin:"bottom-left",rotation:y,scale:E,size:f,src:this.iconUrlFunction_(o),color:C}),e=t.getScaleArray()[0],i=t.getSize();if(null===i){const i=t.getImageState();if(i===Cg||i===vg){const n=function(){const i=t.getImageState();if(i!==Cg&&i!==vg){const i=t.getSize();if(i&&2==i.length){const n=Gx(i);t.setScale(e*n)}t.unlistenImageChange(n)}};t.listenImageChange(n),i===Cg&&t.load()}}else if(2==i.length){const n=Gx(i);t.setScale(e*n)}n.imageStyle=t}else n.imageStyle=Rx},LabelStyle:function(t,e){const i=hp({},Jx,t,e);if(!i)return;const n=e[e.length-1],r=new Fm({fill:new wm({color:"color"in i?i.color:wx}),scale:i.scale});n.textStyle=r},LineStyle:function(t,e){const i=hp({},Zx,t,e);if(!i)return;const n=e[e.length-1],r=new bm({color:"color"in i?i.color:wx,width:"width"in i?i.width:1});n.strokeStyle=r},PolyStyle:function(t,e){const i=hp({},$x,t,e);if(!i)return;const n=e[e.length-1],r=new wm({color:"color"in i?i.color:wx});n.fillStyle=r;const s=i.fill;void 0!==s&&(n.fill=s);const o=i.outline;void 0!==o&&(n.outline=o)}});function mw(t,e){const i=hp({},fw,t,e,this);if(!i)return null;let n="fillStyle"in i?i.fillStyle:Tx;const r=i.fill;let s;void 0===r||r||(n=null),"imageStyle"in i?i.imageStyle!=Rx&&(s=i.imageStyle):s=Nx;const o="textStyle"in i?i.textStyle:Dx,a="strokeStyle"in i?i.strokeStyle:Fx,l=i.outline;return void 0===l||l?[new Nm({fill:n,image:s,stroke:a,text:o,zIndex:void 0})]:[new Nm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Od(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"!==e&&"MultiPolygon"!==e})))}if("Polygon"!==i&&"MultiPolygon"!==i)return e},fill:n,image:s,stroke:a,text:o,zIndex:void 0}),new Nm({geometry:function(t){const e=t.getGeometry(),i=e.getType();if("GeometryCollection"===i){return new Od(e.getGeometriesArrayRecursive().filter((function(t){const e=t.getType();return"Polygon"===e||"MultiPolygon"===e})))}if("Polygon"===i||"MultiPolygon"===i)return e},fill:n,stroke:null,zIndex:void 0})]}function _w(t,e){const i=e.length,n=new Array(e.length),r=new Array(e.length),s=new Array(e.length);let o,a,l;o=!1,a=!1,l=!1;for(let t=0;t0){const t=op(r,o);up(n,$w,eS,[{names:o,values:t}],i)}const u=i[0];let g=e.getGeometry();g&&(g=KE(g,!0,u)),up(n,$w,zw,[g],i)}const nS=ap(fx,["extrude","tessellate","altitudeMode","coordinates"]),rS=ap(fx,{extrude:ip(xp),tessellate:ip(xp),altitudeMode:ip(bp),coordinates:ip((function(t,e,i){const n=i[i.length-1],r=n.layout,s=n.stride;let o;if("XY"==r||"XYM"==r)o=2;else{if("XYZ"!=r&&"XYZM"!=r)throw new Error("Invalid geometry layout");o=3}const a=e.length;let l="";if(a>0){l+=e[0];for(let t=1;t0;else{const e=t.getType();a="Point"===e||"MultiPoint"===e}}a&&(l=s.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Qx||(Qx=document.createElement("textarea")),Qx.innerHTML=l,l=Qx.value));let c=i;if(t?c=t:e&&(c=qx(e,i,n)),a){const t=function(t,e){const i=[0,0];let n="start";const r=t.getImage();if(r){const t=r.getSize();if(t&&2==t.length){const e=r.getScaleArray(),s=r.getAnchor();i[0]=e[0]*(t[0]-s[0]),i[1]=e[1]*(t[1]/2-s[1]),n="left"}}let s=t.getText();s?(s=s.clone(),s.setFont(s.getFont()||Dx.getFont()),s.setScale(s.getScale()||Dx.getScale()),s.setFill(s.getFill()||Dx.getFill()),s.setStroke(s.getStroke()||Px)):s=Dx.clone();s.setText(e),s.setOffsetX(i[0]),s.setOffsetY(i[1]),s.setTextAlign(n);const o=new Nm({image:r,text:s});return o}(c[0],l);if(h.length>0){t.setGeometry(new Od(h));return[t,new Nm({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null})].concat(c.slice(1))}return t}return c}}(i.Style,i.styleUrl,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);n.setStyle(t)}return delete i.Style,n.setProperties(i,!0),n}readSharedStyle_(t,e){const i=t.getAttribute("id");if(null!==i){const n=mw.call(this,t,e);if(n){let e,r=t.baseURI;if(r&&"about:blank"!=r||(r=window.location.href),r){e=new URL("#"+i,r).href}else e="#"+i;this.sharedStyles_[e]=n}}}readSharedStyleMap_(t,e){const i=t.getAttribute("id");if(null===i)return;const n=Wx.call(this,t,e);if(!n)return;let r,s=t.baseURI;if(s&&"about:blank"!=s||(s=window.location.href),s){r=new URL("#"+i,s).href}else r="#"+i;this.sharedStyles_[r]=n}readFeatureFromNode(t,e){if(!fx.includes(t.namespaceURI))return null;const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i||null}readFeaturesFromNode(t,e){if(!fx.includes(t.namespaceURI))return[];let i;const n=t.localName;if("Document"==n||"Folder"==n)return i=this.readDocumentOrFolder_(t,[this.getReadOptions(t,e)]),i||[];if("Placemark"==n){const i=this.readPlacemark_(t,[this.getReadOptions(t,e)]);return i?[i]:[]}if("kml"==n){i=[];for(let n=t.firstElementChild;n;n=n.nextElementSibling){const t=this.readFeaturesFromNode(n,e);t&&_s(i,t)}return i}return[]}readName(t){if(t){if("string"==typeof t){const e=Kd(t);return this.readNameFromDocument(e)}return Wd(t)?this.readNameFromDocument(t):this.readNameFromNode(t)}}readNameFromDocument(t){for(let e=t.firstChild;e;e=e.nextSibling)if(e.nodeType==Node.ELEMENT_NODE){const t=this.readNameFromNode(e);if(t)return t}}readNameFromNode(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(fx.includes(e.namespaceURI)&&"name"==e.localName)return vp(e);for(let e=t.firstElementChild;e;e=e.nextElementSibling){const t=e.localName;if(fx.includes(e.namespaceURI)&&("Document"==t||"Folder"==t||"Placemark"==t||"kml"==t)){const t=this.readNameFromNode(e);if(t)return t}}}readNetworkLinks(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readNetworkLinksFromDocument(i))}else Wd(t)?_s(e,this.readNetworkLinksFromDocument(t)):_s(e,this.readNetworkLinksFromNode(t));return e}readNetworkLinksFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&_s(e,this.readNetworkLinksFromNode(i));return e}readNetworkLinksFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"NetworkLink"==i.localName){const t=hp({},yx,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||_s(e,this.readNetworkLinksFromNode(i))}return e}readRegion(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readRegionFromDocument(i))}else Wd(t)?_s(e,this.readRegionFromDocument(t)):_s(e,this.readRegionFromNode(t));return e}readRegionFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType==Node.ELEMENT_NODE&&_s(e,this.readRegionFromNode(i));return e}readRegionFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"Region"==i.localName){const t=hp({},Cx,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!=t&&"Folder"!=t&&"kml"!=t||_s(e,this.readRegionFromNode(i))}return e}readCamera(t){const e=[];if("string"==typeof t){const i=Kd(t);_s(e,this.readCameraFromDocument(i))}else Wd(t)?_s(e,this.readCameraFromDocument(t)):_s(e,this.readCameraFromNode(t));return e}readCameraFromDocument(t){const e=[];for(let i=t.firstChild;i;i=i.nextSibling)i.nodeType===Node.ELEMENT_NODE&&_s(e,this.readCameraFromNode(i));return e}readCameraFromNode(t){const e=[];for(let i=t.firstElementChild;i;i=i.nextElementSibling)if(fx.includes(i.namespaceURI)&&"Camera"===i.localName){const t=hp({},Ex,i,[]);e.push(t)}for(let i=t.firstElementChild;i;i=i.nextElementSibling){const t=i.localName;!fx.includes(i.namespaceURI)||"Document"!==t&&"Folder"!==t&&"Placemark"!==t&&"kml"!==t||_s(e,this.readCameraFromNode(i))}return e}writeFeaturesNode(t,e){e=this.adaptOptions(e);const i=jd(fx[4],"kml"),n="http://www.w3.org/2000/xmlns/";i.setAttributeNS(n,"xmlns:gx",Ax[0]),i.setAttributeNS(n,"xmlns:xsi",Yd),i.setAttributeNS(Yd,"xsi:schemaLocation","http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd");const r={node:i},s={};t.length>1?s.Document=t:1==t.length&&(s.Placemark=t[0]);const o=vx[i.namespaceURI],a=op(s,o);return up(r,xx,sp,a,[e],o,this),i}};class fS extends AS{constructor(t={}){super(),this.screenOverlay_=null,this.label_=void 0===t.label||t.label}readCustomFeatures(t,e){const i=this.readFeatures(t,e).map((t=>{let e=t.getStyle()(t);if(!1===this.label_){const i=[e[0]];t.setStyle(i)}return Array.isArray(e)||(e=[e]),e.forEach((t=>{if(t.getImage()instanceof Hf){const e=t.getImage();t.setImage(e)}})),t.set("name",pB(t.get("name"))),t}));return this.readScreenOverlay(t),i}readScreenOverlay(t){const e="xunits",i="yunits",n=Kd(t).querySelector("ScreenOverlay");if(null!==n){const t=n.querySelector("Icon"),r=null!==t?t.querySelector("href").innerHTML:fS.DEFAULT_NO_IMAGE_STYLE;let s,o,a;const l=n.querySelector("overlayXY");if(null!==l){s=[parseFloat(l.getAttribute("x")),parseFloat(l.getAttribute("y"))],o=l.getAttribute(e),a=l.getAttribute(i)}let h,c,u;const g=n.querySelector("screenXY");if(null!==g){h=[parseFloat(g.getAttribute("x")),parseFloat(g.getAttribute("y"))],c=g.getAttribute(e),u=g.getAttribute(i)}else r===fS.DEFAULT_IMAGE_STYLE_SRC?(h=fS.DEFAULT_IMAGE_STYLE_ANCHOR,c=fS.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS,u=fS.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS):/^http:\/\/maps\.(?:google|gstatic)\.com\//.test(r)&&(h=[.5,0],c=Hf.FRACTION,u=Hf.FRACTION);let d,p,A;const f=n.querySelector("rotationXY");if(null!==f){const t=parseFloat(f.getAttribute("x"));d=Math.PI/180*t,p=f.getAttribute(e),A=f.getAttribute(i)}let m,_,y;const I=n.querySelector("size");if(null!==I){m=[parseFloat(I.getAttribute("x")),parseFloat(I.getAttribute("y"))],_=I.getAttribute(e),y=I.getAttribute(i)}this.screenOverlay_={screenXY:h,screenXUnits:c,screenYUnits:u,overlayXY:s,overlayXUnits:o,overlayYUnits:a,rotationXY:d,rotationXUnits:p,rotationYUnits:A,size:m,sizeXUnits:_,sizeYUnits:y,src:r}}}getScreenOverlay(){return this.screenOverlay_}}fS.DEFAULT_NO_IMAGE_STYLE="NO_IMAGE",fS.DEFAULT_IMAGE_STYLE_SRC="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",fS.DEFAULT_IMAGE_STYLE_ANCHOR=[20,2],fS.DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS="pixels",fS.DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS="pixels";const mS=fS;class _S extends hI{constructor(t,e){super(t,e),this.popup_=null,this.tabPopup_=null,this.loadFeaturesPromise_=null,this.screenOverlayImg_=null,this.label_=t.label}setVisible(t){if(this.visibility=t,qL(this.ol3Layer)||this.ol3Layer.setVisible(t),!qL(this.screenOverlayImg_)){let e="none";!0===t&&(e="inherit"),this.screenOverlayImg_.style[e]=e}}addTo(t){this.map=t,t.on(hu,this.setProjection_.bind(this),this),this.formater_=new mS({label:this.label_}),this.loader_=new px(this.map,this.url,this.formater_),this.ol3Layer=new Sy(hB({},this.vendorOptions_,!0)),this.updateSource_(),!1!==this.options.visibility&&this.setVisible(this.inRange()),null!==this.zIndex_&&this.setZIndex(this.zIndex_);this.map.getMapImpl().addLayer(this.ol3Layer),this.fire(kc),this.facadeVector_?.fire(kc)}selectFeatures(t,e,i){const n=t[0];if(!(n instanceof OB)&&!0===this.extract){const t=n.getAttribute("name"),e=n.getAttribute("description"),i=n.getImpl().getOLFeature().getGeometry().getFirstCoordinate(),r=qL(this.template)?dx():this.template,s=bu(r,{vars:{name:t,desc:e},parseToHtml:!1});this.tabPopup_={icon:"g-cartografia-comentarios",title:t,content:s};const o=this.map.getPopup();qL(o)?(this.popup_=new sI,this.popup_.addTab(this.tabPopup_),this.map.addPopup(this.popup_,i)):o.addTab(this.tabPopup_)}}unselectFeatures(){qL(this.popup_)||(this.popup_.hide(),this.popup_=null)}recreateOlLayer(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.formater_=new mS({label:this.label_}),this.loader_=new px(this.map,this.url,this.formater_),this.ol3Layer=new Sy(hB({},this.vendorOptions_,!0)),this.updateSource_(!0),!1!==this.options.visibility&&this.setVisible(this.inRange()),null!==this.zIndex_&&this.setZIndex(this.zIndex_),t.addLayer(this.ol3Layer)}updateSource_(t){qL(this.vendorOptions_.source)&&this.requestFeatures_(t).then((t=>{this.ol3Layer.setSource(new kf({loader:()=>{const e=t.screenOverlay;if(this.facadeVector_.clear(),this.facadeVector_.addFeatures(t.features),this.fire(su,[t.features]),!qL(e)){const t=qd.addOverlayImage(e,this.map);this.setScreenOverlayImg(t)}}})),this.facadeVector_.addFeatures(t.features)}))}setURL(t){this.url=t,this.recreateOlLayer()}setScreenOverlayImg(t){this.screenOverlayImg_=t}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.removePopup(),this.options=null,this.map=null}removePopup(){qL(this.popup_)||(this.popup_.getTabs().length>1?this.popup_.removeTab(this.tabPopup_):this.map.removePopup())}requestFeatures_(t){return(t||qL(this.loadFeaturesPromise_))&&(this.loadFeaturesPromise_=new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))),this.loadFeaturesPromise_}equals(t){let e=!1;return t instanceof _S&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.template===t.template),e}}const yS=_S;class IS extends _I{constructor(t,e={},i={}){const n=fg(t,Ru),r={...e,label:n.label};super(n,e,void 0,new yS(r,i)),QL(yS)&&Oc(Cu("exception").kmllayer_method),qL(t)&&Oc(Cu("exception").no_param),this.extract=n.extract,this.template=n.template,this.options=e,this.label=n.label}get type(){return Ru}set type(t){QL(t)||qL(t)||t===Ru||Oc("El tipo de capa debe ser '".concat(Ru).concat("' pero se ha especificado '").concat(t).concat("'"))}get extract(){return this.getImpl().extract}set extract(t){qL(t)?this.getImpl().extract=!0:YL(t)?this.getImpl().extract="true"===XL(t):this.getImpl().extract=t}get template(){return this.getImpl().template}set template(t){this.getImpl().template=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}setURL(t){this.getImpl().setURL(t)}equals(t){let e=!1;return t instanceof IS&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.template===t.template,e=e&&this.id===t.id),e}}const ES=IS;function CS(t){if("string"==typeof t){const e=JSON.parse(t);return e||null}return null!==t?t:null}const vS=class extends WE{constructor(){super()}getType(){return"json"}readFeature(t,e){return this.readFeatureFromObject(CS(t),this.getReadOptions(t,e))}readFeatures(t,e){return this.readFeaturesFromObject(CS(t),this.getReadOptions(t,e))}readFeatureFromObject(t,e){return js()}readFeaturesFromObject(t,e){return js()}readGeometry(t,e){return this.readGeometryFromObject(CS(t),this.getReadOptions(t,e))}readGeometryFromObject(t,e){return js()}readProjection(t){return this.readProjectionFromObject(CS(t))}readProjectionFromObject(t){return js()}writeFeature(t,e){return JSON.stringify(this.writeFeatureObject(t,e))}writeFeatureObject(t,e){return js()}writeFeatures(t,e){return JSON.stringify(this.writeFeaturesObject(t,e))}writeFeaturesObject(t,e){return js()}writeGeometry(t,e){return JSON.stringify(this.writeGeometryObject(t,e))}writeGeometryObject(t,e){return js()}};function xS(t,e){if(!t)return null;let i;switch(t.type){case"Point":i=function(t){return new qa(t.coordinates)}(t);break;case"LineString":i=function(t){return new wd(t.coordinates)}(t);break;case"Polygon":i=function(t){return new sl(t.coordinates)}(t);break;case"MultiPoint":i=function(t){return new Id(t.coordinates)}(t);break;case"MultiLineString":i=function(t){return new bd(t.coordinates)}(t);break;case"MultiPolygon":i=function(t){return new Md(t.coordinates)}(t);break;case"GeometryCollection":i=function(t,e){const i=t.geometries.map((function(t){return xS(t,e)}));return new Od(i)}(t);break;default:throw new Error("Unsupported GeoJSON type: "+t.type)}return KE(i,!1,e)}function wS(t,e){const i=(t=KE(t,!0,e)).getType();let n;switch(i){case"Point":n=function(t,e){return{type:"Point",coordinates:t.getCoordinates()}}(t);break;case"LineString":n=function(t,e){return{type:"LineString",coordinates:t.getCoordinates()}}(t);break;case"Polygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"Polygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"MultiPoint":n=function(t,e){return{type:"MultiPoint",coordinates:t.getCoordinates()}}(t);break;case"MultiLineString":n=function(t,e){return{type:"MultiLineString",coordinates:t.getCoordinates()}}(t);break;case"MultiPolygon":n=function(t,e){let i;e&&(i=e.rightHanded);return{type:"MultiPolygon",coordinates:t.getCoordinates(i)}}(t,e);break;case"GeometryCollection":n=function(t,e){e=Object.assign({},e),delete e.featureProjection;const i=t.getGeometriesArray().map((function(t){return wS(t,e)}));return{type:"GeometryCollection",geometries:i}}(t,e);break;case"Circle":n={type:"GeometryCollection",geometries:[]};break;default:throw new Error("Unsupported geometry type: "+i)}return n}const SS=class extends vS{constructor(t){t=t||{},super(),this.dataProjection=ee(t.dataProjection?t.dataProjection:"EPSG:4326"),t.featureProjection&&(this.defaultFeatureProjection=ee(t.featureProjection)),this.geometryName_=t.geometryName,this.extractGeometryName_=t.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(t,e){let i=null;i="Feature"===t.type?t:{type:"Feature",geometry:t,properties:null};const n=xS(i.geometry,e),r=new _d;return this.geometryName_?r.setGeometryName(this.geometryName_):this.extractGeometryName_&&"geometry_name"in i!==void 0&&r.setGeometryName(i.geometry_name),r.setGeometry(n),"id"in i&&r.setId(i.id),i.properties&&r.setProperties(i.properties,!0),r}readFeaturesFromObject(t,e){let i=null;if("FeatureCollection"===t.type){i=[];const n=t.features;for(let t=0,r=n.length;tthis.writeFeatureObject(t.getImpl().getOLFeature())))}read(t,e,i){let n=[],r=i.code;qL(r)&&(r=qL(i.featureProjection)?ee(i.getCode()):ee(i.featureProjection.getCode()));const s=bS.readProjectionFromObject(t);return n=e.map((t=>{const e=t.id,i=new DB(e,t),n=i.getImpl().getOLFeature();let o;return n.getGeometry()&&(o=n.getGeometry().transform(s,r)),n.setGeometry(o),i})),n}}const LS=bS;const BS=class extends Qc{constructor(t={}){super(new LS(t)),QL(LS)&&Oc(Cu("exception").geojson_method)}write(t){let e=t;return UL(e)||(e=[e]),this.getImpl().write(e)}read(t,e){let i=t,n=[];if(!qL(i)){YL(i)&&(i=JSON.parse(i));let t=[];"FeatureCollection"===i.type?t=i.features:"Feature"===i.type&&(t=[i]),n=this.getImpl().read(i,t,e)}return n}};const MS=class{constructor(t={}){this.rootPrefix=null,this.namespaces={ol:"http://openlayers.org/context",wmc:"http://www.opengis.net/context",sld:"http://www.opengis.net/sld",xlink:"http://www.w3.org/1999/xlink",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema",ogc:"http://www.opengis.net/ogc",wmcext:"http://wmcext.org/context"},this.options=t}read(t){let e=t;YL(t)&&(e=Kd(t)),9!==e.nodeType&&Oc(Cu("exception").must_be_document);const i={};return this.readRoot(i,e),i}readRoot(t,e){const i=t,n=e.documentElement;this.rootPrefix=n.prefix,i.version=n.getAttribute("version"),this.runChildNodes(i,n)}runChildNodes(t,e){const i=e.childNodes;let n,r,s,o;for(let e=0,a=i.length;e(t.typeName===this.typeName_&&(e.properties=t.properties,e.properties.some((t=>(dB(t.localType)&&(e.geometryName=t.name),dB(t.localType))))),t.typeName===this.typeName_))),e}};const NS=class{constructor(t,e){this.url_=t.url,this.namespace_=t.namespace,this.name_=t.name,this.typeName_=this.name_,qL(this.namespace_)||(this.typeName_=this.namespace_.concat(":").concat(this.name_)),this.version_=t.version,this.ids_=t.ids,this.cql_=t.cql,this.projection_=t.projection,this.getFeatureOutputFormat_=t.getFeatureOutputFormat,qL(this.getFeatureOutputFormat_)&&(this.getFeatureOutputFormat_="application/json"),this.describeFeatureTypeOutputFormat_=t.describeFeatureTypeOutputFormat,this.getFeatureVendor_={},qL(e)||qL(e.getFeature)||(this.getFeatureVendor_=e.getFeature),this.describeFeatureTypeVendor_={},qL(e)||qL(e.describeFeatureType)||(this.describeFeatureTypeVendor_=e.describeFeatureType)}getDescribeFeatureType(){const t={service:"WFS",version:this.version_,request:"DescribeFeatureType",typename:this.typeName_};qL(this.describeFeatureTypeOutputFormat_)||(t.outputFormat=this.describeFeatureTypeOutputFormat_);const e=M.config.ticket?`${this.url_}ticket=${M.config.ticket}`:this.url_,i=KL(e,t),n=KL(i,this.describeFeatureTypeVendor_),r=this.describeFeatureTypeOutputFormat_,s=new RS(this.name_,r,this.projection_);return new Promise(((t,e)=>{DL(n).then((e=>{t(s.read(e))}))}))}getFeatureUrl(t,e){const i={service:"WFS",version:this.version_,request:"GetFeature",typename:this.typeName_,outputFormat:this.getFeatureOutputFormat_,srsname:e.getCode()};return qL(this.ids_)||(i.featureId=this.ids_.map((t=>this.name_.concat(".").concat(t)))),qL(this.cql_)?qL(t)||(i.bbox=`${t.join(",")},${e.getCode()}`):i.CQL_FILTER=this.cql_,KL(KL(this.url_,i),this.getFeatureVendor_)}},PS=cC;PS.prototype.writeFeatures,PS.prototype.writeFeaturesNode;const FS=PS;const DS=class extends FS{constructor(t={}){super(t)}};const OS=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.service_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{const r=this.getRequestUrl_(e,n);this.loadInternal_(r,n).then(t.bind(this))}}loadInternal_(t,e){let i=t;return new Promise(((t,n)=>{YL(M.config.ticket)&&(i=KL(i,{ticket:M.config.ticket})),DL(i).then((i=>{if(!qL(i.text)&&i.text.indexOf("ServiceExceptionReport")<0){const n=this.format_.read(i.text,e);t(n)}else 401===i.code?pI(Cu("dialog").unauthorized_user):i.text.indexOf("featureId and cql_filter")>=0?pI(Cu("dialog").only_one_filter):Oc(Cu("exception").no_getfeature_response)}))}))}getRequestUrl_(t,e){return this.service_.getFeatureUrl(null,e)}};class QS extends hI{constructor(t={},e){super(t,e),this.describeFeatureType_=null,this.formater_=null,this.loader_=null,this.service_=null,this.loaded_=!1,qL(this.options.getFeatureOutputFormat)&&(this.options.getFeatureOutputFormat="application/json")}addTo(t){super.addTo(t),t.getImpl().on(au,(()=>this.refresh()))}refresh(t){t&&this.facadeVector_.removeFeatures(this.facadeVector_.getFeatures(!0)),this.updateSource_(t)}recreateOlLayer(){this.refresh(!0)}updateSource_(t){qL(this.vendorOptions_.source)&&(this.service_=new NS({url:this.url,namespace:this.namespace,name:this.name,version:this.version,ids:this.ids,cql:this.cql,projection:this.map.getProjection(),getFeatureOutputFormat:this.options.getFeatureOutputFormat,describeFeatureTypeOutputFormat:this.options.describeFeatureTypeOutputFormat},this.options.vendor),/json/gi.test(this.options.getFeatureOutputFormat)?this.formater_=new BS({defaultDataProjection:ee(this.map.getProjection().code)}):this.formater_=new DS(this.name,this.version,this.map.getProjection()),this.loader_=new OS(this.map,this.service_,this.formater_),this.requestFeatures_().then((e=>{const i=this.facadeVector_.getStyle()instanceof Vy;let n=null;if(qL(this.ol3Layer)||(n=this.ol3Layer.getSource()),!0===t||qL(n)){const t=new kf({loader:()=>{this.loaded_=!0,this.facadeVector_.addFeatures(e),this.fire(su,[e]),this.facadeVector_.redraw()}});if(i){const e=this.facadeVector_.getStyle().getOptions().distance,i=new Gf({distance:e,source:t});this.ol3Layer.setStyle(this.facadeVector_.getStyle().getImpl().olStyleFn),this.ol3Layer.setSource(i)}else this.ol3Layer&&this.ol3Layer.setSource(t)}else i&&(n=n.getSource()),n.set("format",this.formater_),n.set("loader",this.loader_.getLoaderFn((t=>{this.loaded_=!0,this.facadeVector_.addFeatures(t),this.fire(su,[t]),this.facadeVector_.redraw()}))),n.set("strategy",Pf),i||n.changed()})))}setCQL(t){this.cql=t,this.refresh(!0)}getDescribeFeatureType(){return qL(this.describeFeatureType_)&&(this.describeFeatureType_=this.service_.getDescribeFeatureType().then((t=>(qL(t)||(this.formater_=new LS({geometryName:t.geometryName,defaultDataProjection:ee(this.map.getProjection().code)})),t)))),this.describeFeatureType_}getDefaultValue(t){let e;return e="dateTime"===t?"0000-00-00T00:00:00":"date"===t?"0000-00-00":"time"===t?"00:00:00":"duration"===t?"P0Y":"int"===t||"number"===t||"float"===t||"double"===t||"decimal"===t||"short"===t||"byte"===t||"integer"===t||"long"===t||"negativeInteger"===t||"nonNegativeInteger"===t||"nonPositiveInteger"===t||"positiveInteger"===t||"unsignedLong"===t||"unsignedInt"===t||"unsignedShort"===t||"unsignedByte"===t?0:"hexBinary"===t?null:"-",e}setURL(t){this.url=t,this.recreateOlLayer()}setName(t){this.name=t,this.recreateOlLayer()}setNamespace(t){this.namespace=t,this.recreateOlLayer()}setGeometry(t){this.geometry=t,this.recreateOlLayer()}isLoaded(){return this.loaded_}requestFeatures_(){return new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))}equals(t){let e=!1;return t instanceof QS&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version),e}}const kS=QS,GS="POINT",US="LINE",qS="POLYGON",VS="MPOINT",zS="MLINE",YS="MPOLYGON",jS=t=>{const e=XL(t,!0);return s[e]};class HS extends _I{constructor(t,e={},i={},n=new kS(e,i)){const r=fg(t,Pu);super(r,e,void 0,n),QL(kS)&&Oc(Cu("exception").wfslayer_method),qL(t)&&Oc(Cu("exception").no_param),this.namespace=r.namespace,this.legend=r.legend,this.cql=r.cql,this.geometry=r.geometry,this.ids=r.ids,this.version=r.version,this.options=e,this.extract=r.extract,this.template=r.template}get type(){return Pu}set type(t){QL(t)||qL(t)||t===Pu||Oc("El tipo de capa debe ser '".concat(Pu).concat("' pero se ha especificado '").concat(t).concat("'"))}get namespace(){return this.getImpl().namespace}set namespace(t){this.getImpl().namespace=t}get legend(){return this.getImpl().legend}set legend(t){qL(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get cql(){return this.getImpl().cql}set cql(t){this.getImpl().cql=t}get geometry(){return this.getImpl().geometry}set geometry(t){if(!qL(t)){const e=jS(t);qL(e)&&Oc(`El tipo de capa WFS ${t} no se reconoce. Los tipos disponibles son: POINT, LINE, POLYGON, MPOINT, MLINE, MPOLYGON`),this.getImpl().geometry=e}}get ids(){return this.getImpl().ids}set ids(t){qL(t)?this.getImpl().ids=this.ids:this.getImpl().ids=t}get version(){return this.getImpl().version}set version(t){qL(t)?this.getImpl().version="1.0.0":this.getImpl().version=t}setURL(t){this.getImpl().setURL(t)}setName(t){this.getImpl().setName(t)}setNamespace(t){this.getImpl().setNamespace(t)}setGeometry(t){this.geometry=t,this.getImpl().setGeometry(t)}setCQL(t){let e=t;this.getImpl().getDescribeFeatureType().then((t=>{if(!qL(e)){const i=t.geometryName;e=e.replace(/{{geometryName}}/g,i)}this.getImpl().cql!==e&&this.getImpl().setCQL(e)}))}setStyle(t,e=!1,i=HS.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}equals(t){let e=!1;return t instanceof HS&&(e=this.url===t.url,e=e&&this.namespace===t.namespace,e=e&&this.name===t.name,e=e&&this.ids===t.ids,e=e&&this.cql===t.cql,e=e&&this.version===t.version,e=e&&this.id===t.id),e}}HS.DEFAULT_PARAMS={fill:{color:"rgba(103, 175, 19, 0.2)",opacity:.4},stroke:{color:"#67af13",width:1}},HS.DEFAULT_OPTIONS_STYLE={point:{...HS.DEFAULT_PARAMS,radius:5},line:{...HS.DEFAULT_PARAMS},polygon:{...HS.DEFAULT_PARAMS}};const XS=HS;const WS=class extends MS{readsldMinScaleDenominator(t,e){t.options.minScale=parseFloat(MS.getChildValue(e))}readolgroup(t,e){const i=t;if(UL(i)){const t=i[0],n=i[1],r=t.layerGroups,s=new Cf({id:e.getAttribute("id"),title:e.getAttribute("title"),order:e.getAttribute("orderInsideGroupDisplay")});qL(n)?r.push(s):n.addChild(s),this.runChildNodes([t,s],e)}else i.layerGroups=[],this.runChildNodes([i],e)}readwmcLayer(t,e){const i=t,n={params:this.layerParams||{},options:{visibility:"1"!==e.getAttribute("hidden"),queryable:"1"===e.getAttribute("queryable")},formats:[],styles:[]};this.runChildNodes(n,e),n.params.isWMC="ok",n.params.layers=n.name,n.options.wmcMaxExtent=n.maxExtent,n.options.wmcGlobalMaxExtent=i.maxExtent;const r=this.getLayerFromInfo(n),s=n.options.groupDisplayLayerSwitcher,o=n.options.orderInsideGroupDisplayLayerSwitcher,a=i.layerGroups,l=Cf.findGroupById(s,a);if(null!=n.styles&&null!=n.styles[0]){const t=n.styles[0];if(null!=t.legend&&t.legend.href){const e=t.legend.href;r.setLegendURL(e)}}qL(l)?(qL(i.layers)&&(i.layers=[]),i.layers.push(r)):l.addChild(r,parseInt(o-1,10))}getLayerFromInfo(t){const e=t.options;e.params=t.params;return new rf({name:t.name,legend:t.title,url:t.href,transparent:!/^1|(true)$/i.test(e.isBaseLayer),version:t.params.version},e)}readolunits(t,e){t.units=MS.getChildValue(e)}readoltileSize(t,e){t.tileSize={width:parseFloat(e.getAttribute("width")),height:parseFloat(e.getAttribute("height"))}}readolgroupDisplayLayerSwitcher(t,e){t.options.groupDisplayLayerSwitcher=MS.getChildValue(e)}readolorderInsideGroupDisplayLayerSwitcher(t,e){t.options.orderInsideGroupDisplayLayerSwitcher=MS.getChildValue(e)}readsldMaxScaleDenominator(t,e){t.options.maxScale=parseFloat(MS.getChildValue(e))}readwmcStyle(t,e){const i=t,n={};this.runChildNodes(n,e),"1"===e.getAttribute("current")&&(n.legend&&(i.params.layerLegend=n.legend),n.href?i.params.sld=n.href:n.body?i.params.sld_body=n.body:i.params.styles=n.name),i.styles.push(n)}readwmcGeneral(t,e){this.runChildNodes(t,e)}readwmcBoundingBox(t,e){const i=t;i.projection=e.getAttribute("SRS"),i.bounds=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLayerList(t,e){const i=t;i.layers=[],this.runChildNodes(i,e)}readwmcExtension(t,e){this.runChildNodes(t,e)}readolmaxExtent(t,e){const i=t;let n=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))],r=this.options.projection,s=i.projection;qL(r)||qL(s)||r===s||(s=ee(s),r=ee(r),n=qd.transformExtent(n,s,r)),i.maxExtent=n}readoltransparent(t,e){t.params.transparent=MS.getChildValue(e)}readolnumZoomLevels(t,e){t.options.numZoomLevels=parseInt(MS.getChildValue(e),10)}readolopacity(t,e){t.options.opacity=parseFloat(MS.getChildValue(e))}readolsingleTile(t,e){t.options.singleTile="true"===MS.getChildValue(e)}readolisBaseLayer(t,e){t.options.isBaseLayer="true"===MS.getChildValue(e)}readoldisplayInLayerSwitcher(t,e){const i=t,n=XL(MS.getChildValue(e));i.options.displayInLayerSwitcher="true"===n}readwmcServer(t,e){const i=t;i.params.version=e.getAttribute("version"),this.runChildNodes(i,e)}readwmcFormatList(t,e){this.runChildNodes(t,e)}readwmcFormat(t,e){const i=t,n=MS.getChildValue(e);i.formats.push(n),"1"===e.getAttribute("current")&&(i.params.format=n)}readwmcStyleList(t,e){this.runChildNodes(t,e)}readwmcSLD(t,e){this.runChildNodes(t,e)}readsldStyledLayerDescriptor(t,e){t.body=Hd(e)}readwmcOnlineResource(t,e){t.href=this.getAttributeNS(e,this.namespaces.xlink,"href")}readwmcName(t,e){const i=t,n=MS.getChildValue(e);if(n){i["name"]=n}}readwmcTitle(t,e){const i=t,n=MS.getChildValue(e);if(n){i["title"]=n}}readwmcMetadataURL(t,e){const i=t,n={},r=e.getElementsByTagName("OnlineResource");r.length>0&&this.readwmcOnlineResource(n,r[0]);i.options.metadataURL=n.href}readwmcextmetadata(t,e){t.options.metadataUrl=e&&e.innerHTML}readwmcAbstract(t,e){const i=t,n=MS.getChildValue(e);if(n){i["abstract"]=n}}readwmcLatLonBoundingBox(t,e){t.llbbox=[parseFloat(e.getAttribute("minx")),parseFloat(e.getAttribute("miny")),parseFloat(e.getAttribute("maxx")),parseFloat(e.getAttribute("maxy"))]}readwmcLegendURL(t,e){const i=t,n={width:e.getAttribute("width"),height:e.getAttribute("height")},r=e.getElementsByTagName("OnlineResource");r.length>0&&this.readwmcOnlineResource(n,r[0]);i.legend=n}readsldFeatureTypeStyle(t,e){t.body=Hd(e)}readwmcKeywordList(t,e){const i=t,n="keywords";i[n]=[],this.runChildNodes(i[n],e)}readwmcKeyword(t,e){t.push(MS.getChildValue(e))}readwmcLogoURL(t,e){t.logo={width:e.getAttribute("width"),height:e.getAttribute("height"),format:e.getAttribute("format"),href:this.getOnlineResource_href(e)}}readwmcDescriptionURL(t,e){t.descriptionURL=this.getOnlineResource_href(e)}readwmcContactInformation(t,e){const i=t,n={};this.runChildNodes(n,e);i.contactInformation=n}readwmcContactPersonPrimary(t,e){const i=t,n={};this.runChildNodes(n,e);i.personPrimary=n}readwmcContactPerson(t,e){const i=t,n=MS.getChildValue(e);if(n){i["person"]=n}}readwmcContactOrganization(t,e){const i=t,n=MS.getChildValue(e);if(n){i["organization"]=n}}readwmcContactPosition(t,e){const i=t,n=MS.getChildValue(e);if(n){i["position"]=n}}readwmcContactAddress(t,e){const i=t,n={};this.runChildNodes(n,e);i.contactAddress=n}readwmcAddressType(t,e){const i=t,n=MS.getChildValue(e);if(n){i["type"]=n}}readwmcAddress(t,e){const i=t,n=MS.getChildValue(e);if(n){i["address"]=n}}readwmcCity(t,e){const i=t,n=MS.getChildValue(e);if(n){i["city"]=n}}readwmcStateOrProvince(t,e){const i=t,n=MS.getChildValue(e);if(n){i["stateOrProvince"]=n}}readwmcPostCode(t,e){const i=t,n=MS.getChildValue(e);if(n){i["postcode"]=n}}readwmcCountry(t,e){const i=t,n=MS.getChildValue(e);if(n){i["country"]=n}}readwmcContactVoiceTelephone(t,e){const i=t,n=MS.getChildValue(e);if(n){i["phone"]=n}}readwmcContactFacsimileTelephone(t,e){const i=t,n=MS.getChildValue(e);if(n){i["fax"]=n}}readwmcContactElectronicMailAddress(t,e){const i=t,n=MS.getChildValue(e);if(n){i["email"]=n}}readwmcDataURL(t,e){t.dataURL=this.getOnlineResource_href(e)}readwmcDimensionList(t,e){const i=t,n="dimensions";i[n]={},this.runChildNodes(i[n],e)}readwmcDimension(t,e){const i=t,n={name:e.getAttribute("name").toLowerCase(),units:e.getAttribute("units")||"",unitSymbol:e.getAttribute("unitSymbol")||"",userValue:e.getAttribute("userValue")||"",nearestValue:"1"===e.getAttribute("nearestValue"),multipleValues:"1"===e.getAttribute("multipleValues"),current:"1"===e.getAttribute("current"),default:e.getAttribute("default")||""},r=MS.getChildValue(e);n.values=r.split(",");i[n.name]=n}};class KS extends MS{constructor(t){super(t),this.version=null,this.parser=null}readFromDocument(t){9!==t.nodeType&&Oc(Cu("exception").must_be_document);const e=t.documentElement;this.version=e.getAttribute("version"),this.version||(this.version=KS.DEFAULT_VERSION);const i="v".concat(XL(this.version).replace(/\./g,""));this.parser=new KS[i](this.options);return this.parser.read(t)}}KS.v110=WS;const JS=KS;class ZS extends Vd{constructor(t){super(t),this.selected=!1,this.layers=[],this.groups=[],this.loadContextPromise=null,this.maxExtent=null,this.extentProj_=null}addTo(t){this.map=t,this.fire(kc),this.facadeLayer_?.fire(kc)}select(){!1===this.selected&&(this.map.getWMC().forEach((t=>t.unselect())),this.selected=!0,this.loadContextPromise=new Promise(((t,e)=>{DL(this.url).then((e=>{let i;!1===this.map.defaultProj&&(i=this.map.getProjection().code);const n=e.xml,r=new JS({projection:i}).readFromDocument(n);t.call(this,r)}))})),this.loadContextPromise.then((t=>{if(this.map.defaultProj){const e=ee(t.projection);this.map.setProjection({code:e.getCode(),units:e.getUnits()},!0)}this.loadLayers(t),this.map.fire(lu,this)})))}unselect(){if(!0===this.selected&&(this.selected=!1,qL(this.layers)||this.map.removeLayers(this.layers),!qL(this.groups))){const t=[...this.groups];this.groups=[],this.map.removeLayerGroup(t)}}loadLayers(t){this.layers=t.layers,this.maxExtent=t.maxExtent,qL(t.layerGroups)?this.groups=[]:this.groups=this.groups.concat(t.layerGroups),this.layers.forEach((t=>t.setWMCParent(this.facadeLayer_))),this.map.addWMS(this.layers,!0),this.map.addLayerGroup(this.groups),this.layers.forEach(((t,e)=>t.setZIndex(this.getZIndex()+e))),this.groups.forEach(((t,e)=>t.setZIndex(this.getZIndex()+e))),this.facadeLayer_.fire(su,[this.layers]),this.facadeLayer_.fire(su,[this.groups])}setFacadeObj(t){this.facadeLayer_=t}getMaxExtent(t){return qL(this.maxExtent)&&this.loadContextPromise.then((e=>{this.maxExtent=e.maxExtent,VL(t)&&t(this.maxExtent)})),!qL(this.maxExtent)&&VL(t)&&t(this.maxExtent),this.maxExtent}calculateMaxExtent(){return new Promise((t=>this.getMaxExtent(t)))}getLayers(){return this.layers}destroy(){qL(this.layers)||this.map.removeLayers(this.layers),this.map=null,this.layers.length=0,this.wmcDocument=null}equals(t){let e=!1;return t instanceof ZS&&(e=this.url===t.url,e=e&&this.name===t.name),e}}const $S=ZS;class tb extends _g{constructor(t,e){const i=new $S(e);if(super(fg(t,Tu),i),QL($S)&&Oc(Cu("exception").wmclayer_method),qL(t)&&Oc(Cu("exception").no_param),this.options=e,!qL(this.url)&&qL(this.name))this.generateName_();else if(qL(this.url)&&!qL(this.name)){const t=M.config.predefinedWMC.predefinedNames.indexOf(this.name);-1===t?Oc(`El contexto predefinido '${this.name}'no existe`):(this.url=M.config.predefinedWMC.urls[t],this.name=M.config.predefinedWMC.names[t])}this.loaded_=!1,this.once(su,(()=>{this.setLoaded(!0)}))}get selected(){return this.getImpl().selected}set selected(t){this.getImpl().selected=t}get type(){return Tu}set type(t){QL(t)||qL(t)||t===Tu||Oc("El tipo de capa debe ser '".concat(Tu).concat("' pero se ha especificado '").concat(t).concat("'"))}get layers(){return this.getImpl().layers}set layers(t){this.getImpl().layers=t}get projection(){return this.getImpl().projection}set projection(t){this.getImpl().projection=t}set maxExtent(t){this.getImpl().maxExtent=t}getMaxExtent(t){return this.getImpl().getMaxExtent(t)}calculateMaxExtent(){return this.getImpl().calculateMaxExtent()}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}select(){QL(this.getImpl().select)&&Oc(Cu("exception").select_method),this.getImpl().select()}unselect(){QL(this.getImpl().unselect)&&Oc(Cu("exception").unselect_method),this.getImpl().unselect()}equals(t){let e=!1;return t instanceof tb&&(e=this.url===t.url,e=e&&this.name===t.name),e}isLoaded(){return this.loaded_}setLoaded(t){this.loaded_=t}}const eb=tb;class ib extends od{constructor(t){super({extent:t.extent,origin:t.origin,origins:t.origins,resolutions:t.resolutions,tileSize:t.tileSize,tileSizes:t.tileSizes,sizes:t.sizes}),this.matrixIds_=t.matrixIds}getMatrixId(t){return this.matrixIds_[t]}getMatrixIds(){return this.matrixIds_}}const nb=ib;function rb(t,e,i){const n=[],r=[],s=[],o=[],a=[];i=void 0!==i?i:[];const l="TileMatrix",h="Identifier",c="ScaleDenominator",u="TopLeftCorner",g=ee(t.SupportedCRS),d=g.getMetersPerUnit(),p="ne"==g.getAxisOrientation().substr(0,2);return t[l].sort((function(t,e){return e[c]-t[c]})),t[l].forEach((function(e){let g;if(g=!(i.length>0)||i.find((function(i){return e[h]==i[l]||!e[h].includes(":")&&t[h]+":"+e[h]===i[l]})),g){r.push(e[h]);const t=28e-5*e[c]/d,i=e.TileWidth,l=e.TileHeight;p?s.push([e[u][1],e[u][0]]):s.push(e[u]),n.push(t),o.push(i==l?i:[i,l]),a.push([e.MatrixWidth,e.MatrixHeight])}})),new ib({extent:e,origins:s,resolutions:n,matrixIds:r,tileSizes:o,sizes:a})}const sb=class extends TA{constructor(t){const e=void 0!==t.requestEncoding?t.requestEncoding:"KVP",i=t.tileGrid;let n=t.urls;void 0===n&&void 0!==t.url&&(n=bA(t.url)),super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileClass:t.tileClass,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,urls:n,wrapX:void 0!==t.wrapX&&t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.version_=void 0!==t.version?t.version:"1.0.0",this.format_=void 0!==t.format?t.format:"image/jpeg",this.dimensions_=void 0!==t.dimensions?t.dimensions:{},this.layer_=t.layer,this.matrixSet_=t.matrixSet,this.style_=t.style,this.requestEncoding_=e,this.setKey(this.getKeyForDimensions_()),n&&n.length>0&&(this.tileUrlFunction=wA(n.map(this.createFromWMTSTemplate.bind(this))))}setUrls(t){this.urls=t;const e=t.join("\n");this.setTileUrlFunction(wA(t.map(this.createFromWMTSTemplate.bind(this))),e)}getDimensions(){return this.dimensions_}getFormat(){return this.format_}getLayer(){return this.layer_}getMatrixSet(){return this.matrixSet_}getRequestEncoding(){return this.requestEncoding_}getStyle(){return this.style_}getVersion(){return this.version_}getKeyForDimensions_(){const t=this.urls?this.urls.slice(0):[];for(const e in this.dimensions_)t.push(e+"-"+this.dimensions_[e]);return t.join("/")}updateDimensions(t){Object.assign(this.dimensions_,t),this.setKey(this.getKeyForDimensions_())}createFromWMTSTemplate(t){const e=this.requestEncoding_,i={layer:this.layer_,style:this.style_,tilematrixset:this.matrixSet_};"KVP"==e&&Object.assign(i,{Service:"WMTS",Request:"GetTile",Version:this.version_,Format:this.format_}),t="KVP"==e?NA(t,i):t.replace(/\{(\w+?)\}/g,(function(t,e){return e.toLowerCase()in i?i[e.toLowerCase()]:t}));const n=this.tileGrid,r=this.dimensions_;return function(i,s,o){if(!i)return;const a={TileMatrix:n.getMatrixId(i[0]),TileCol:i[1],TileRow:i[2]};Object.assign(a,r);let l=t;return l="KVP"==e?NA(l,a):l.replace(/\{(\w+?)\}/g,(function(t,e){return a[e]})),l}}};function ob(t,e){const i=t.Contents.Layer.find((function(t){return t.Identifier==e.layer}));if(!i)return null;const n=t.Contents.TileMatrixSet;let r;r=i.TileMatrixSetLink.length>1?"projection"in e?i.TileMatrixSetLink.findIndex((function(t){const i=n.find((function(e){return e.Identifier==t.TileMatrixSet})).SupportedCRS,r=ee(i),s=ee(e.projection);return r&&s?ae(r,s):i==e.projection})):i.TileMatrixSetLink.findIndex((function(t){return t.TileMatrixSet==e.matrixSet})):0,r<0&&(r=0);const s=i.TileMatrixSetLink[r].TileMatrixSet,o=i.TileMatrixSetLink[r].TileMatrixSetLimits;let a=i.Format[0];"format"in e&&(a=e.format),r=i.Style.findIndex((function(t){return"style"in e?t.Title==e.style:t.isDefault})),r<0&&(r=0);const l=i.Style[r].Identifier,h={};"Dimension"in i&&i.Dimension.forEach((function(t,e,i){const n=t.Identifier;let r=t.Default;void 0===r&&(r=t.Value[0]),h[n]=r}));const c=t.Contents.TileMatrixSet.find((function(t){return t.Identifier==s}));let u;const g=c.SupportedCRS;if(g&&(u=ee(g)),"projection"in e){const t=ee(e.projection);t&&(u&&!ae(t,u)||(u=t))}let d=!1;const p="ne"==u.getAxisOrientation().substr(0,2);let A=c.TileMatrix[0],f={MinTileCol:0,MinTileRow:0,MaxTileCol:A.MatrixWidth-1,MaxTileRow:A.MatrixHeight-1};if(o){f=o[o.length-1];const t=c.TileMatrix.find((t=>t.Identifier===f.TileMatrix||c.Identifier+":"+t.Identifier===f.TileMatrix));t&&(A=t)}const m=28e-5*A.ScaleDenominator/u.getMetersPerUnit(),_=p?[A.TopLeftCorner[1],A.TopLeftCorner[0]]:A.TopLeftCorner,y=A.TileWidth*m,I=A.TileHeight*m;let E=c.BoundingBox;E&&p&&(E=[E[1],E[0],E[3],E[2]]);let C=[_[0]+y*f.MinTileCol,_[1]-I*(1+f.MaxTileRow),_[0]+y*(1+f.MaxTileCol),_[1]-I*f.MinTileRow];if(void 0!==E&&!D(E,C)){const t=i.WGS84BoundingBox,e=ee("EPSG:4326").getExtent();if(C=E,t)d=t[0]===e[0]&&t[2]===e[2];else{const t=ue(E,c.SupportedCRS,"EPSG:4326");d=t[0]-1e-10<=e[0]&&t[2]+1e-10>=e[2]}}const v=rb(c,C,o),x=[];let w=e.requestEncoding;if(w=void 0!==w?w:"","OperationsMetadata"in t&&"GetTile"in t.OperationsMetadata){const e=t.OperationsMetadata.GetTile.DCP.HTTP.Get;for(let t=0,i=e.length;tthis.addLayer_(t))):this.addLayer_(e),this.fire(kc),this.facadeLayer_?.fire(kc)}setResolutions(t){if(qL(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=ee(this.map.getProjection().code);this.getCapabilities().then((n=>{const r=n.getMatrixSet(this.name),s=n.getMatrixIds(this.name),o=n.getFormat(this.name),a={url:this.url,layer:this.name,matrixSet:r,format:o,projection:i,tileGrid:new nb({origin:J(e),resolutions:t,matrixIds:s}),extent:e},l=this.options.crossOrigin;QL(l)||(a.crossOrigin=l),a.tileLoadFunction=this.tileLoadFunction;const h=new sb(a);this.ol3Layer.setSource(h)}))}}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().filter((t=>!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),qL(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();qL(e)||this.map.setBbox(e,{nearest:!0})}else qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}addLayer_(t){const e=this.facadeLayer_.getMaxExtent(),i=t,n=this.options.minResolution,r=this.options.maxResolution;i.format=this.options.format||t.format;const s=this.options.crossOrigin;QL(s)||(i.crossOrigin=s);const o=new sb(hB(i,{extent:e,tileLoadFunction:this.tileLoadFunction},!0));this.ol3Layer=new Kg(hB({visible:this.options.visibility,source:o,minResolution:n,maxResolution:r},this.vendorOptions_,!0));const a=this.zIndex_;this.map.getMapImpl().addLayer(this.ol3Layer),null!==a&&this.setZIndex(a),this.setVisible(this.visibility),this.ol3Layer.set("animated",!0),this.fire(kc,this),this.facadeLayer_?.fire(kc,this)}setMaxExtent(t){this.getOLLayer().setExtent(t)}getCapabilitiesOptions_(){return qL(this.capabilitiesOptionsPromise)&&(this.capabilitiesOptionsPromise=this.getCapabilities(),this.capabilitiesOptionsPromise instanceof Promise&&(this.capabilitiesOptionsPromise=this.capabilitiesOptionsPromise.then((t=>{const e=this.name;let i=this.matrixSet;qL(i)&&(i=this.map.getProjection().code);const n=this.facadeLayer_.getMaxExtent(),r=ob(t,{layer:e,matrixSet:i,extent:n});return r.tileGrid.extent=n,r})))),this.capabilitiesOptionsPromise}setTileLoadFunction(t){this.getOLLayer().getSource().setTileLoadFunction(t)}setURL(t){this.url=t,this.recreateOlLayer()}setName(t){this.name=t,this.recreateOlLayer()}getCapabilities(){return qL(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=new Promise(((t,e)=>{const i=$L(this.url),n=new Qb;DL(i).then((e=>{const i=e.xml,r=n.read(i);t.call(this,r)}))}))),this.getCapabilitiesPromise_}getMinResolution(){return this.options.minResolution}getMaxResolution(){return this.options.maxResolution}setFacadeObj(t){this.facadeLayer_=t}recreateOlLayer(){const t=this.map.getMapImpl();qL(this.ol3Layer)||t.removeLayer(this.ol3Layer);const e=this.getCapabilitiesOptions_();e instanceof Promise?e.then((t=>this.addLayer_(t))):this.addLayer_(e)}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map=null}equals(t){let e=!1;return t instanceof kb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet),e}setOptionsGetFeatureInfoUrl(t){const e=t.version,i=t.style,n=t.format;QL(e)||(this.optionsFromGetFeatureInfoUrl_.version=e),QL(i)||(this.optionsFromGetFeatureInfoUrl_.style=i),QL(n)||(this.optionsFromGetFeatureInfoUrl_.format=n)}getOptionsGetFeatureInfoUrl(){return this.optionsFromGetFeatureInfoUrl_}getGetFeatureInfoUrl(t,e,i){const n=this.getTileColTileRow(t,e),r=this.getRelativeTileCoordInPixel_(t,e),s=this.optionsFromGetFeatureInfoUrl_.version,o=this.name,a=this.optionsFromGetFeatureInfoUrl_.style,l=this.optionsFromGetFeatureInfoUrl_.format,h=this.ol3Layer.getSource().getMatrixSet(),c=e,u=i,g=n[0],d=n[1],p=r[0],A=r[1];return KL(this.url,{service:"WMTS",request:"GetFeatureInfo",version:s,layer:o,style:a,format:l,tilematrixset:h,tilematrix:c,tilerow:d,tilecol:g,J:A,I:p,infoFormat:u})}getTileColTileRow(t,e){let i=null;if(!qL(this.ol3Layer)){const n=this.ol3Layer.getSource();if(!qL(n)){const{tileGrid:r}=n;i=r.getTileCoordForCoordAndZ(t,e)}}return i.slice(1)}getRelativeTileCoordInPixel_(t,e){let i;if(!qL(this.ol3Layer)){const n=this.ol3Layer.getSource();if(!qL(n)){const{tileGrid:r}=n,s=r.getTileCoordForCoordAndZ(t,e),o=r.getTileCoordExtent(s,[]),a=r.getResolution(s[0]);i=[Math.floor((t[0]-o[0])/a),Math.floor((o[3]-t[1])/a)]}}return i}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}const Gb=kb;class Ub extends _g{constructor(t,e={},i){const n=new Gb(e,i),r=fg(t,Fu);super(r,n),QL(Gb)&&Oc(Cu("exception").wmts_method),qL(t)&&Oc(Cu("exception").no_param),this.matrixSet=r.matrixSet,this.legend=r.legend,this.transparent=r.transparent,this.options=e}get type(){return Fu}set type(t){QL(t)||qL(t)||t===Fu||Oc("El tipo de capa debe ser '".concat(Fu).concat("' pero se ha especificado '").concat(t).concat("'"))}get matrixSet(){return this.getImpl().matrixSet}set matrixSet(t){this.getImpl().matrixSet=t}get legend(){return this.getImpl().legend}set legend(t){qL(t)?this.getImpl().legend=this.name:this.getImpl().legend=t}get options(){return this.getImpl().options}set options(t){this.getImpl().options=t}setTileLoadFunction(t){this.getImpl().setTileLoadFunction(t)}setURL(t){this.getImpl().setURL(t)}setName(t){this.getImpl().setName(t)}getCapabilities(){return qL(this.getCapabilitiesPromise_)&&(this.getCapabilitiesPromise_=this.getImpl().getCapabilities()),this.getCapabilitiesPromise_}equals(t){let e=!1;return t instanceof Ub&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.matrixSet===t.matrixSet,e=e&&this.id===t.id),e}getGetFeatureInfoUrl(t,e,i){return this.getImpl().getGetFeatureInfoUrl(t,e,i)}setOptionsGetFeatureInfoUrl(t){this.getImpl().setOptionsGetFeatureInfoUrl(t)}getOptionsGetFeatureInfoUrl(){return this.getImpl().getOptionsGetFeatureInfoUrl()}getTileColTileRow(t,e){return this.getImpl().getTileColTileRow(t,e)}}const qb=Ub;const Vb=class extends TA{constructor(t){const e=void 0!==(t=t||{}).projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:_A({extent:IA(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}};class zb extends Vd{constructor(t,e,i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.tileLoadFunction=i?.tileLoadFunction,this.zIndex_=uf.Z_INDEX[Ou]}setVisible(t){if(this.visibility=t,!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach((t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)})),qL(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),qL(e)||this.map.setBbox(e)}else qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t;const e=this.facadeLayer_.getMaxExtent();if(this.ol3Layer=new Kg(hB({source:new Vb({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`,tileLoadFunction:this.tileLoadFunction}),extent:e},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&(this.hasAttributtion=!0)})),!this.hasAttributtion){let t;qL(this.vendorOptions_)&&(t={className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution"}),this.map.getMapImpl().addControl(new Mh(t)),this.hasAttributtion=!1}this.map.getMapImpl().updateSize();const i=this.map.getMapImpl().getSize(),n=this.map.getProjection().units;this.resolutions_=iB(this.getExtent(),i,16,n),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const r=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",r),this.fire(kc),this.facadeLayer_?.fire(kc)}recreateOlLayer(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach((t=>{(t instanceof Hb||t instanceof $b)&&(this.haveOSMorMapboxLayer=!0)})),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&this.map.getImpl().getMapImpl().removeControl(t)}));const e=this.facadeLayer_.getMaxExtent();this.ol3Layer=new Kg(hB({source:new Vb({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`,tileLoadFunction:this.tileLoadFunction}),extent:e},this.vendorOptions_,!0)),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getMapImpl().updateSize();const i=this.map.getMapImpl().getSize(),n=this.map.getProjection().units;this.resolutions_=iB(this.getExtent(),i,16,n),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const r=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",r)}setURL(t){this.url=t,this.recreateOlLayer()}setName(t){this.name=t,this.recreateOlLayer()}setResolutions(t){if(this.resolutions_=t,!qL(this.ol3Layer)&&qL(this.vendorOptions_.source)){const e=this.facadeLayer_.getMaxExtent(),i=new Vb({url:`${this.url}${this.name}/{z}/{x}/{y}.png?${M.config.MAPBOX_TOKEN_NAME}=${this.accessToken}`,extent:e,resolutions:t,attributionControl:!0,tileLoadFunction:this.tileLoadFunction});this.ol3Layer.setSource(i)}}setTileLoadFunction(t){this.getOLLayer().getSource().setTileLoadFunction(t)}getExtent(){let t=null;return qL(this.ol3Layer)||(t=ee(this.map.getProjection().code).getExtent()),{x:{min:t[0],max:t[2]},y:{min:t[1],max:t[3]}}}setMaxExtent(t){this.ol3Layer.setExtent(t)}setFacadeObj(t){this.facadeLayer_=t}getMinResolution(){return this.resolutions_[0]}getMaxResolution(){return this.resolutions_[this.resolutions_.length-1]}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach((t=>{(t instanceof Hb||t instanceof $b)&&(this.haveOSMorMapboxLayer=!0)})),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&this.map.getImpl().getMapImpl().removeControl(t)})),this.map=null}equals(t){let e=!1;return t instanceof zb&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}zb.ATTRIBUTION='© Mapbox';const Yb=zb;class jb extends _g{constructor(t,e={},i={}){const n=new Yb(t,e,i),r=fg(t,Ou);super(r,n),QL(Yb)&&Oc(Cu("exception").mapbox_method),qL(t)&&Oc(Cu("exception").no_param),qL(r.name)&&Oc(Cu("exception").no_name),this.name=r.name,this.legend=r.legend,qL(r.legend)&&(this.legend=r.name),this.transparent=r.transparent,this.accessToken=r.accessToken,this.options=e}get url(){return this.getImpl().url}set url(t){qL(t)?this.getImpl().url=M.config.MAPBOX_URL:this.getImpl().url=t}get transparent(){return this.getImpl().transparent}set transparent(t){qL(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get accessToken(){return this.getImpl().accessToken}set accessToken(t){qL(t)?this.getImpl().accessToken=M.config.MAPBOX_TOKEN_VALUE:this.getImpl().accessToken=t}get type(){return Ou}set type(t){QL(t)||qL(t)||t===Ou||Oc("El tipo de capa debe ser '".concat(Ou).concat("' pero se ha especificado '").concat(t).concat("'"))}setTileLoadFunction(t){this.getImpl().setTileLoadFunction(t)}setURL(t){this.getImpl().setURL(t)}setName(t){this.getImpl().setName(t)}equals(t){let e=!1;return t instanceof jb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options,e=e&&this.id===t.id),e}}const Hb=jb,Xb='© OpenStreetMap contributors.';const Wb=class extends Vb{constructor(t){let e;e=void 0!==(t=t||{}).attributions?t.attributions:[Xb];const i=void 0!==t.crossOrigin?t.crossOrigin:"anonymous",n=void 0!==t.url?t.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:e,attributionsCollapsible:!1,cacheSize:t.cacheSize,crossOrigin:i,interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:19,opaque:void 0===t.opaque||t.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:n,wrapX:t.wrapX,zDirection:t.zDirection})}};class Kb extends Vd{constructor(t,e={},i){super(e,i),this.resolutions_=null,this.facadeLayer_=null,this.hasAttributtion=!1,this.haveOSMorMapboxLayer=!1,!1===e.visibility&&(this.visibility=!1),this.tileLoadFunction=i?.tileLoadFunction,this.zIndex_=uf.Z_INDEX[Du],this.url_=t.url}setVisible(t){if(this.visibility=t,!0===this.inRange())if(!0===t&&!0!==this.transparent){this.map.getBaseLayers().forEach((t=>{!t.equals(this)&&t.isVisible()&&t.setVisible(!1)})),qL(this.ol3Layer)||this.ol3Layer.setVisible(t);const e=this.map.getBbox();this.map.getImpl().updateResolutionsFromBaseLayer(),qL(e)||this.map.setBbox(e)}else qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}addTo(t){this.map=t,this.ol3Layer=new Kg(hB({},this.vendorOptions_,!0)),this.updateSource_(),this.map.getMapImpl().addLayer(this.ol3Layer),this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&(this.hasAttributtion=!0)}),this),this.hasAttributtion||(this.map.getMapImpl().addControl(new Mh({className:"ol-attribution ol-unselectable ol-control ol-collapsed m-attribution",collapsible:!0})),this.hasAttributtion=!1),this.map.getMapImpl().updateSize();const e=this.map.getMapImpl().getSize(),i=this.map.getProjection().units;this.resolutions_=iB(this.facadeLayer_.getMaxExtent(),e,16,i),this.isVisible()&&!this.inRange()&&this.setVisible(!1),null!==this.zIndex_&&this.setZIndex(this.zIndex_),null!==this.resolutions_&&this.setResolutions(this.resolutions_);const n=!1===this.transparent||!0===this.options.animated;this.ol3Layer.set("animated",n),this.map.on(hu,(()=>this.updateSource_())),this.fire(kc),this.facadeLayer_?.fire(kc)}setResolutions(t){this.resolutions_=t,this.updateSource_(t)}updateSource_(t){if(qL(t)&&!qL(this.map)){this.map.getMapImpl().updateSize();const t=this.map.getMapImpl().getSize(),e=this.map.getProjection().units,i=M.config.ZOOM_LEVELS;this.resolutions_=iB(this.facadeLayer_.getMaxExtent(),t,i,e)}if(!qL(this.ol3Layer)&&qL(this.vendorOptions_.source)){const t=this.facadeLayer_.getMaxExtent();let e="";e=QL(this.url_)?new Wb({tileLoadFunction:this.tileLoadFunction}):new Vb({url:this.url_,tileLoadFunction:this.tileLoadFunction}),this.ol3Layer.setSource(e),this.ol3Layer.setExtent(t)}}setTileLoadFunction(t){this.getOLLayer().getSource().setTileLoadFunction(t)}setFacadeObj(t){this.facadeLayer_=t}setMaxExtent(t){this.ol3Layer.setExtent(t)}getMinResolution(){}getMaxResolution(){}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.map.getLayers().forEach((t=>{(t instanceof $b||t instanceof Hb)&&(this.haveOSMorMapboxLayer=!0)})),this.haveOSMorMapboxLayer||this.map.getImpl().getMapImpl().getControls().getArray().forEach((t=>{t instanceof Mh&&this.map.getImpl().getMapImpl().removeControl(t)})),this.map=null}equals(t){let e=!1;return t instanceof Kb&&(e=this.url===t.url,e=e&&this.name===t.name),e}cloneOLLayer(){let t=null;if(null!=this.ol3Layer){const e=this.ol3Layer.getProperties();t=new Kg(e)}return t}}const Jb=Kb;class Zb extends _g{constructor(t,e={},i={}){let n=t;QL(Jb)&&Oc(Cu("exception").osm_method),qL(n)&&(n="OSM");const r=new Jb(n,e,i),s=fg(n,Du);qL(s.name)&&(s.name="osm"),super(s,r),this.name=s.name,this.legend=s.legend,qL(s.legend)&&(this.legend="OpenStreetMap"),this.transparent=s.transparent,this.options=e}get transparent(){return this.getImpl().transparent}set transparent(t){qL(t)?this.getImpl().transparent=!1:this.getImpl().transparent=t}get type(){return Du}set type(t){QL(t)||qL(t)||t===Du||Oc("El tipo de capa debe ser '".concat(Du).concat("' pero se ha especificado '").concat(t).concat("'"))}setTileLoadFunction(t){this.getImpl().setTileLoadFunction(t)}equals(t){let e=!1;return t instanceof Zb&&(e=this.url===t.url,e=e&&this.name===t.name,e=e&&this.options===t.options),e}}const $b=Zb;const tL=class extends Tg{constructor(t,e,i,n,r,s){super(t,e,s),this.extent=null,this.format_=n,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=r,this.url_=i,this.key=i}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==vh&&(this.setState(xh),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(t,e){this.setFeatures(t)}onError(){this.setState(Sh)}setFeatures(t){this.features_=t,this.setState(wh)}setLoader(t){this.loader_=t}},eL=[];const iL=class extends Tg{constructor(t,e,i,n){super(t,e,{transition:0}),this.context_={},this.executorGroups={},this.declutterExecutorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=n.bind(void 0,this),this.wrappedTileCoord=i}getContext(t){const e=Xs(t);return e in this.context_||(this.context_[e]=bl(1,1,eL)),this.context_[e]}hasContext(t){return Xs(t)in this.context_}getImage(t){return this.hasContext(t)?this.getContext(t).canvas:null}getReplayState(t){const e=Xs(t);return e in this.replayState_||(this.replayState_[e]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[e]}load(){this.getSourceTiles()}release(){for(const t in this.context_){const e=this.context_[t];Ll(e),eL.push(e.canvas),delete this.context_[t]}super.release()}};const nL=class extends BA{constructor(t){const e=t.projection||"EPSG:3857",i=t.extent||IA(e),n=t.tileGrid||_A({extent:i,maxResolution:t.maxResolution,maxZoom:void 0!==t.maxZoom?t.maxZoom:22,minZoom:t.minZoom,tileSize:t.tileSize||512});super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,interpolate:!0,opaque:!1,projection:e,state:t.state,tileGrid:n,tileLoadFunction:t.tileLoadFunction?t.tileLoadFunction:rL,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:void 0===t.zDirection?1:t.zDirection}),this.format_=t.format?t.format:null,this.sourceTileCache=new uA(this.tileCache.highWaterMark),this.overlaps_=null==t.overlaps||t.overlaps,this.tileClass=t.tileClass?t.tileClass:tL,this.tileGrids_={}}getFeaturesInExtent(t){const e=[],i=this.tileCache;if(0===i.getCount())return e;const n=nd(i.peekFirstKey())[0],r=this.tileGrid;return i.forEach((function(i){if(i.tileCoord[0]!==n||i.getState()!==wh)return;const s=i.getSourceTiles();for(let i=0,n=s.length;i{const n=function(t){const[e,i,n]=t.substring(t.lastIndexOf("/")+1,t.length).split(",").map(Number);return ed(e,i,n)}(e),r=i.peek(n);if(r){const e=r.sourceTiles;for(let i=0,n=e.length;i{const r=this.tileUrlFunction(n,t,e),s=this.sourceTileCache.containsKey(r)?this.sourceTileCache.get(r):new this.tileClass(n,r?vh:bh,r,this.format_,this.tileLoadFunction);i.sourceTiles.push(s);const o=s.getState();if(o{this.handleTileChange(e);const n=s.getState();if(n===wh||n===Sh){const e=s.getKey();e in i.errorTileKeys?s.getState()===wh&&delete i.errorTileKeys[e]:i.loadingSourceTiles--,n===Sh?i.errorTileKeys[e]=!0:s.removeEventListener(bs,t),0===i.loadingSourceTiles&&i.setState(ws(i.errorTileKeys)?wh:Sh)}};s.addEventListener(bs,t),i.loadingSourceTiles++}o===vh&&(s.extent=l.getTileCoordExtent(n),s.projection=e,s.resolution=l.getResolution(n[0]),this.sourceTileCache.set(r,s),s.load())})),i.loadingSourceTiles||i.setState(i.sourceTiles.some((t=>t.getState()===Sh))?Sh:wh)}return i.sourceTiles}getTile(t,e,i,n,r){const s=ed(t,e,i),o=this.getKey();let a;if(this.tileCache.containsKey(s)&&(a=this.tileCache.get(s),a.key===o))return a;const l=[t,e,i];let h=this.getTileCoordForTileUrlFunction(l,r);const c=this.getTileGrid().getExtent(),u=this.getTileGridForProjection(r);if(h&&c){const e=u.getTileCoordExtent(h);R(e,-u.getResolution(t),e),lt(c,e)||(h=null)}let g=!0;if(null!==h){const e=this.tileGrid,i=u.getResolution(t),s=e.getZForResolution(i,1),o=u.getTileCoordExtent(h);R(o,-i,o),e.forEachTileCoord(o,s,(t=>{g=g&&!this.tileUrlFunction(t,n,r)}))}const d=new iL(l,g?bh:vh,h,this.getSourceTiles.bind(this,n,r));return d.key=o,a?(d.interimTile=a,d.refreshInterimChain(),this.tileCache.replace(s,d)):this.tileCache.set(s,d),d}getTileGridForProjection(t){const e=t.getCode();let i=this.tileGrids_[e];if(!i){const t=this.tileGrid,n=t.getResolutions().slice(),r=n.map((function(e,i){return t.getOrigin(i)})),s=n.map((function(e,i){return t.getTileSize(i)})),o=ea+1;for(let t=n.length;t{const r=n===A?e.declutterTree.all().map((t=>t.value)):null;for(let e=0,a=n.length;e{const n=this.getLayer(),r=Xs(n),s=n.getSource(),o=this.renderedProjection,a=o.getExtent(),l=this.renderedResolution,h=s.getTileGridForProjection(o),c=_o(this.renderedPixelToCoordinateTransform_,t.slice()),u=h.getTileCoordForCoordAndResolution(c,l);let g;for(let t=0,e=this.renderedTiles.length;t0)return void e([]);const d=st(h.getTileCoordExtent(g.wrappedTileCoord)),p=[(c[0]-d[0])/l,(d[1]-c[1])/l],A=g.getSourceTiles().reduce((function(t,e){return t.concat(e.getFeatures())}),[]);let f=g.hitDetectionImageData[r];if(!f){const t=xc(h.getTileSize(h.getZForResolution(l,s.zDirection))),e=this.renderedRotation_;f=vy(t,[this.getRenderTransform(h.getTileCoordCenter(g.wrappedTileCoord),l,0,Cy,t[0]*Cy,t[1]*Cy,0)],A,n.getStyleFunction(),h.getTileCoordExtent(g.wrappedTileCoord),g.getReplayState(n).renderedResolution,e),g.hitDetectionImageData[r]=f}e(xy(p,A,f))}))}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&void 0!==this.renderedLayerRevision_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}renderDeclutter(t){const e=this.context,i=e.globalAlpha;e.globalAlpha=this.getLayer().getOpacity();const n=t.viewHints,r=!(n[Zo]||n[$o]),s=this.renderedTiles;for(let e=0,i=s.length;e=0;--e)n[e].execute(this.context,1,this.getTileRenderTransform(i,t),t.viewState.rotation,r,void 0,t.declutterTree)}e.globalAlpha=i}getTileRenderTransform(t,e){const i=e.pixelRatio,n=e.viewState,r=n.center,s=n.resolution,o=n.rotation,a=e.size,l=Math.round(a[0]*i),h=Math.round(a[1]*i),c=this.getLayer().getSource().getTileGridForProjection(e.viewState.projection),u=t.tileCoord,g=c.getTileCoordExtent(t.wrappedTileCoord),d=c.getTileCoordExtent(u,this.tmpExtent)[0]-g[0];return fo(yo(this.inversePixelTransform.slice(),1/i,1/i),this.getRenderTransform(r,s,o,i,l,h,d))}postRender(t,e){const i=e.viewHints,n=!(i[Zo]||i[$o]);this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice(),this.renderedRotation_=e.viewState.rotation;const r=this.getLayer(),s=r.getRenderMode(),o=t.globalAlpha;t.globalAlpha=r.getOpacity();const a=oL[s],l=e.viewState,h=l.rotation,c=r.getSource(),u=c.getTileGridForProjection(l.projection).getZForResolution(l.resolution,c.zDirection),g=this.renderedTiles,d=[],p=[];let A=!0;for(let i=g.length-1;i>=0;--i){const s=g[i];A=A&&!s.getReplayState(r).dirty;const o=s.executorGroups[Xs(r)].filter((t=>t.hasExecutors(a)));if(0===o.length)continue;const l=this.getTileRenderTransform(s,e),c=s.tileCoord[0];let f=!1;const m=o[0].getClipCoords(l);if(m){for(let e=0,i=d.length;e>3)?i.readString():2===t?i.readFloat():3===t?i.readDouble():4===t?i.readVarint64():5===t?i.readVarint():6===t?i.readSVarint():7===t?i.readBoolean():null;e.values.push(n)}}function gL(t,e,i){if(1==t)e.id=i.readVarint();else if(2==t){const t=i.readVarint()+i.pos;for(;i.pos>3}if(o--,1===s||2===s)a+=t.readSVarint(),l+=t.readSVarint(),1===s&&h>c&&(n.push(h),c=h),i.push(a,l),h+=2;else{if(7!==s)throw new Error("Invalid command found in the PBF");h>c&&(i.push(i[c],i[c+1]),h+=2)}}h>c&&(n.push(h),c=h)}createFeature_(t,e,i){const n=e.type;if(0===n)return null;let r;const s=e.properties;let o;this.idProperty_?(o=s[this.idProperty_],delete s[this.idProperty_]):o=e.id,s[this.layerName_]=e.layer.name;const a=[],l=[];this.readRawGeometry_(t,e,a,l);const h=function(t,e){let i;1===t?i=1===e?"Point":"MultiPoint":2===t?i=1===e?"LineString":"MultiLineString":3===t&&(i="Polygon");return i}(n,l.length);if(this.featureClass_===Pd)r=new this.featureClass_(h,a,l,s,o),r.transform(i.dataProjection);else{let t;if("Polygon"==h){const e=nl(a,l);t=e.length>1?new Md(a,"XY",e):new sl(a,"XY",l)}else t="Point"===h?new qa(a,"XY"):"LineString"===h?new wd(a,"XY"):"MultiPoint"===h?new Id(a,"XY"):"MultiLineString"===h?new bd(a,"XY",l):null;r=new(0,this.featureClass_),this.geometryName_&&r.setGeometryName(this.geometryName_);const e=KE(t,!1,i);r.setGeometry(e),void 0!==o&&r.setId(o),r.setProperties(s,!0)}return r}getType(){return"arraybuffer"}readFeatures(t,e){const i=this.layers_,n=ee((e=this.adaptOptions(e)).dataProjection);n.setWorldExtent(e.extent),e.dataProjection=n;const r=new hL(t),s=r.readFields(cL,{}),o=[];for(const t in s){if(i&&!i.includes(t))continue;const a=s[t],l=a?[0,0,a.extent,a.extent]:null;n.setExtent(l);for(let t=0,i=a.length;t{if(this.map){const t=this.map.getZoom();this.lastZoom_!==t&&(this.features_.length=0,this.lastZoom_=t)}})),this.fire(kc),this.facadeVector_?.fire(kc)}setTileLoadFunction(t){this.getOLLayer().getSource().setTileLoadFunction(t)}getFeatures(t,e){let i=[];if(this.ol3Layer){const t=this.ol3Layer.getSource().tileCache;if(0===t.getCount())return i;const e=nd(t.peekFirstKey())[0];t.forEach((t=>{if(t.tileCoord[0]!==e||t.getState()!==wh)return;const n=t.getSourceTiles();for(let t=0,e=n.length;t!t.equals(this)&&t.isVisible())).forEach((t=>t.setVisible(!1))),this.ol3Layer.setVisible(t);const e=this.map.getZoom();this.map.getImpl().updateResolutionsFromBaseLayer(),qL(e)||this.map.setZoom(e);const i=this.map.getBbox();qL(i)||this.map.setBbox(i,{nearest:!0})}else qL(this.ol3Layer)||this.ol3Layer.setVisible(t)}equals(t){let e=!1;return t instanceof AL&&(e=this.name===t.name),e}}const fL=AL,mL={RENDER:"render",FEATURE:"feature"};class _L extends _I{constructor(t={},e={},i={},n){super(t,e,i,n||new fL(t,e,i)),QL(fL)&&Oc("La implementación usada no puede crear capas Vector")}get type(){return Gu}set type(t){QL(t)||qL(t)||t===Gu||Oc("El tipo de capa debe ser '".concat(Gu).concat("' pero se ha especificado '").concat(t).concat("'"))}setTileLoadFunction(t){this.getImpl().setTileLoadFunction(t)}getMaxExtent(){let t=this.userMaxExtent;return qL(t)&&(t=this.map_.userMaxExtent,qL(t)&&(t=this.map_.getProjection().getExtent())),t}calculateMaxExtent(){return new Promise((t=>t(this.getMaxExtent())))}setStyle(t,e=!1,i=_L.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}getProjection(){return this.getImpl().getProjection()}getGeometryType(){let t=null;const e=this.getFeatures();if(!qL(e)){const i=e[0];qL(i)||(t=i.getType())}return t}getFeatures(){return this.getImpl().getFeatures().map((t=>lx.olFeature2Facade(t)))}clearStyle(){this.setStyle(null)}setFilter(){}addFeatures(){}removeFeatures(){}refresh(){}redraw(){}toGeoJSON(){}}_L.DEFAULT_PARAMS_STYLE={fill:{color:"#fff",opacity:.6},stroke:{color:"#827ec5",width:2}},_L.DEFAULT_OPTIONS_STYLE={point:{..._L.DEFAULT_PARAMS_STYLE,radius:5},line:{..._L.DEFAULT_PARAMS_STYLE},polygon:{..._L.DEFAULT_PARAMS_STYLE}};const yL=_L;const IL=class extends Mc{constructor(t,e,i){super(),this.map_=t,this.url_=e,this.format_=i}getLoaderFn(t){return(e,i,n)=>{this.loadInternal_(n).then((e=>{t.apply(this,e)}))}}loadInternal_(t){let e=this.url_;return new Promise((i=>{YL(M.config.ticket)&&(e=KL(e,{ticket:M.config.ticket})),DL(e).then((e=>{if(qL(e.text))Oc(Cu("exception").no_service_response);else{const n=this.format_.read(e.text,{featureProjection:t});i.call(this,[n])}}))}))}};class EL extends hI{constructor(t,e,i){super(e,i),this.popup_=null,this.formater_=null,this.loader_=null,this.loadFeaturesPromise_=null,this.loaded_=!1,this.hiddenAttributes_=[],qL(e.hide)||(this.hiddenAttributes_=e.hide),this.showAttributes_=[],qL(e.show)||(this.showAttributes_=e.show)}addTo(t){this.formater_=new BS({defaultDataProjection:ee(t.getProjection().code)}),qL(this.url)||(this.loader_=new IL(t,this.url,this.formater_)),super.addTo(t)}refresh(t=null){let e={type:"FeatureCollection",features:this.formater_.write(this.facadeVector_.getFeatures()),crs:{properties:{code:this.map.getProjection().code.split(":")[1]},type:"EPSG"}};zL(t)&&(e=t),this.source=e,this.updateSource_()}recreateOlLayer(){this.loader_.url_=this.url,this.loadFeaturesPromise_=void 0,this.updateSource_()}setURL(t){this.url=t,this.recreateOlLayer()}setSource(t){this.source=t,qL(this.map)||this.updateSource_()}requestFeatures_(){return this.source?this.loadFeaturesPromise_=new Promise((t=>{t(this.formater_.read(this.source,this.map.getProjection()))})):qL(this.loadFeaturesPromise_)&&(this.loadFeaturesPromise_=new Promise((t=>{this.loader_.getLoaderFn((e=>{t(e)}))(null,null,ee(this.map.getProjection().code))}))),this.loadFeaturesPromise_}updateSource_(){qL(this.vendorOptions_.source)&&this.requestFeatures_().then((t=>{this.ol3Layer&&this.ol3Layer.setSource(new kf({loader:(e,i,n)=>{this.loaded_=!0,this.facadeVector_.clear(),this.facadeVector_.addFeatures(t,!1,!1),this.redraw(),this.fire(su,[t])}}))}))}isLoaded(){return this.loaded_}equals(t){let e=!1;return t instanceof EL&&(e=e&&this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.template===t.template),e}}const CL=EL;class vL extends _I{constructor(t,e={},i){super(t,e,void 0,new CL(t,e,i)),QL(CL)&&Oc(Cu("exception").geojsonlayer_method),qL(t)&&Oc(Cu("exception").no_param),YL(t)?this.url=t:UL(t)?this.source=t:(this.url=t.url,this.name=t.name,this.source=t.source,qL(t.crs)||(qL(this.source)&&(this.source={type:"FeatureCollection",features:[]}),this.source.crs={type:"EPSG",properties:{code:t.crs}})),this.options=e}get type(){return Qu}set type(t){QL(t)||qL(t)||t===Qu||Oc("El tipo de capa debe ser '".concat(Qu).concat("' pero se ha especificado '").concat(t).concat("'"))}get source(){return this.getImpl().source}set source(t){this.getImpl().source=t}equals(t){let e=!1;return t instanceof vL&&(e=this.name===t.name,e=e&&this.extract===t.extract,e=e&&this.template===t.template,e=e&&this.id===t.id),e}setURL(t){this.getImpl().setURL(t)}setSource(t){this.source=t,this.getImpl().refresh(t)}setStyle(t,e=!1,i=vL.DEFAULT_OPTIONS_STYLE){super.setStyle(t,e,i)}}vL.DEFAULT_PARAMS={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}},vL.DEFAULT_OPTIONS_STYLE={point:{...vL.DEFAULT_PARAMS,radius:5},line:{...vL.DEFAULT_PARAMS},polygon:{...vL.DEFAULT_PARAMS}};const xL=vL;class wL extends Qc{constructor(t,e={}){const i=new sx(t);super();const n=new uf(i.container,this,e);if(this.setImpl(n),qL(t)&&Oc(Cu("exception").no_param),QL(uf)&&Oc(Cu("exception").constructor_impl),this._panels=[],this._plugins=[],this._areasContainer=null,this.popup_=[],this._defaultProj=!0,this.panel={LEFT:null,RIGHT:"null"},this._userZoom=null,this.userCenter_=null,this._finishedInitCenter=!0,this._finishedMaxExtent=!0,this._finishedMapImpl=!1,this._finishedMap=!1,this.centerFeature_=null,this.drawLayer_=null,this.userMaxExtent=null,this.ticket_=null,qL(i.ticket)||this.setTicket(i.ticket),i.container.classList.add("m-mapea-container"),qL(i.bgColorContainer)||this.setBGColorContainer(i.bgColorContainer),n.on(ou,(()=>{this._finishedMapImpl=!0,this._checkCompleted()})),this.createMainPanels_(),this.featuresHandler_=new ux,this.featuresHandler_.addTo(this),this.featuresHandler_.activate(),this.drawLayer_=new _I({name:"__draw__"},{displayInLayerSwitcher:!1}),this.drawLayer_.setStyle(new CI(wL.DRAWLAYER_STYLE)),this.drawLayer_.setZIndex(uf.Z_INDEX[Pu]+999),this.addLayers(this.drawLayer_),qL(i.projection)?this.setProjection(M.config.DEFAULT_PROJ,!0):this.setProjection(i.projection),qL(i.bbox)||this.setBbox(i.bbox),qL(i.resolutions)||this.setResolutions(i.resolutions),!qL(i.maxExtent)){const t=qL(i.zoom)&&qL(i.bbox);this.setMaxExtent(i.maxExtent,t)}if(qL(i.wmc)||this.addWMC(i.wmc),qL(i.layers)||this.addLayers(i.layers),qL(i.wms)||this.addWMS(i.wms),qL(i.wmts)||this.addWMTS(i.wmts),qL(i.kml)||this.addKML(i.kml),qL(i.controls)?this.addControls("panzoom"):this.addControls(i.controls),!qL(i.getfeatureinfo))if("plain"!==i.getfeatureinfo&&"html"!==i.getfeatureinfo&&"gml"!==i.getfeatureinfo)pI(Cu("dialog").getfeatureinfo_type);else{const t=new kv(i.getfeatureinfo);this.addControls(t)}if(!QL(i.layerswitcher))if("emptylayer"!==i.layerswitcher&&""!==i.layerswitcher)pI(Cu("layerswitcher").unsupported_param);else{const t=new xI(i.layerswitcher);this.addControls(t)}qL(i.wmc)&&qL(i.layers)&&this.addWMC(M.config.predefinedWMC.predefinedNames[0]),qL(i.center)||this.setCenter(i.center),qL(i.zoom)?qL(i.bbox)&&this.setZoom(0):this.setZoom(i.zoom),qL(i.rotation)||this.once(ou,(()=>{this.setRotation(i.rotation)})),qL(i.label)||this.addLabel(i.label),qL(i.bbox)&&qL(i.zoom)&&qL(i.center)&&this.zoomToMaxExtent(!0),qL(i.center)&&qL(i.bbox)&&(this._finishedInitCenter=!1,this.getInitCenter_().then((t=>{qL(this.userCenter_)&&this.setCenter(t),this._finishedInitCenter=!0,this._checkCompleted()})))}getLayers(t){let e=t;QL(uf.prototype.getLayers)&&Oc(Cu("exception").getlayers_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map(fg));return this.getImpl().getLayers(i).sort(wL.LAYER_SORT)}getRootLayers(t){return this.getLayers(t).filter((t=>qL(t.getLayerGroup())))}getBaseLayers(){return QL(uf.prototype.getBaseLayers)&&Oc(Cu("exception").getbaselayers_method),this.getImpl().getBaseLayers().sort(wL.LAYER_SORT)}getFeatureHandler(){return this.featuresHandler_}addLayers(t){let e=t;if(!qL(e)){QL(uf.prototype.addLayers)&&Oc(Cu("exception").addlayers_method),UL(e)||(e=[e]);const t=e.map((t=>{let e;if(t instanceof _g)e=t;else{const i=fg(t);if(qL(i.type))pI(Cu("dialog").invalid_type_layer);else switch(i.type){case"WFS":e=new XS(t,{style:i.style});break;case"WMC":e=new eb(t);break;case"WMS":e=new rf(t);break;case"GeoJSON":e=new xL(i,{style:i.style});break;case"OSM":e=new $b(t);break;case"Mapbox":e=new Hb(t);break;case"KML":e=new ES(t);break;case"Vector":e=new _I(t);break;case"WMTS":e=new qb(t);break;case"MVT":e=new yL(i);break;default:pI(Cu("dialog").invalid_type_layer)}}return e instanceof _I&&!(e instanceof XS)&&this.featuresHandler_.addLayer(e),e.setMap(this),e}));this.getImpl().addLayers(t),this.fire(Uc,[t])}return this}removeLayers(t){if(!qL(t)){QL(uf.prototype.removeLayers)&&Oc(Cu("exception").removelayers_method);const e=this.getLayers(t);e.forEach((t=>{t instanceof _I&&this.featuresHandler_.removeLayer(t)})),this.getImpl().removeLayers(e)}return this}getLayerGroup(){return QL(uf.prototype.getLayerGroups)&&Oc("La implementación usada no posee el método getLayerGroups"),this.getImpl().getLayerGroups().sort(wL.LAYER_SORT)}addLayerGroup(t){let e=t;return GL(e)&&Oc("No ha especificado ningun grupo"),QL(uf.prototype.addLayerGroups)&&Oc("La implementación usada no posee el método addLayerGroups"),UL(e)||(e=[e]),this.getImpl().addLayerGroups(e),this}removeLayerGroup(t){return GL(t)&&Oc("No ha especificado ningun grupo a eliminar"),QL(this.getImpl().removeLayerGroups)&&Oc("La implementación usada no posee el método removeGroups"),this.getImpl().removeLayerGroups(t),this}getWMC(t){let e=t;QL(uf.prototype.getWMC)&&Oc(Cu("exception").getwmc_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Tu))));return this.getImpl().getWMC(i).sort(wL.LAYER_SORT)}addWMC(t){let e=t;if(!qL(e)){QL(uf.prototype.addWMC)&&Oc(Cu("exception").addwmc_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{if(zL(e)&&e instanceof eb)e.setMap(this),t.push(e);else if(!(e instanceof _g))try{const i=new eb(e,e.options);i.setMap(this),t.push(i)}catch(t){throw pI(t.toString()),t}})),this.getImpl().addWMC(t),this.fire(Uc,[t]),this.fire(qc,[t]);const i=this.getWMC(),n=i.filter((t=>!0===t.selected))[0];null==n&&i[0].select(),i.length>1&&(this.removeControls("wmcselector"),this.addControls(new mf))}return this}refreshWMCSelectorControl(){if(this.removeControls("wmcselector"),1===this.getWMC().length)this.getWMC()[0].select();else if(this.getWMC().length>1){this.addControls(new mf);const t=this.getWMC().filter((t=>!0===t.selected))[0];null==t&&this.getWMC()[0].select()}}removeWMC(t){if(!qL(t)){QL(uf.prototype.removeWMC)&&Oc(Cu("exception").removewmc_method);const e=this.getWMC(t);e.length>0&&this.getImpl().removeWMC(e)}return this}getKML(t){let e=t;QL(uf.prototype.getKML)&&Oc(Cu("exception").getkml_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Ru))));return this.getImpl().getKML(i).sort(wL.LAYER_SORT)}addKML(t){let e=t;if(!qL(e)){QL(uf.prototype.addKML)&&Oc(Cu("exception").addkml_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{let i;zL(e)&&e instanceof ES?i=e:e instanceof _g||(i=new ES(e,e.options)),!0===i.extract&&this.featuresHandler_.addLayer(i),t.push(i)})),this.getImpl().addKML(t),this.fire(Uc,[t]),this.fire(Vc,[t])}return this}removeKML(t){if(!qL(t)){QL(uf.prototype.removeKML)&&Oc(Cu("exception").removekml_method);const e=this.getKML(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeKML(e))}return this}getWMS(t){let e=t;QL(uf.prototype.getWMS)&&Oc(Cu("exception").getwms_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Nu))));return this.getImpl().getWMS(i).sort(wL.LAYER_SORT)}addWMS(t){let e=t;if(!qL(e)){QL(uf.prototype.addWMS)&&Oc(Cu("exception").addwms_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{let i=e;e instanceof rf||(i=new rf(e,e.options)),i.setMap(this),t.push(i)})),this.getImpl().addWMS(t),this.fire(Uc,[t]),this.fire(zc,[t])}return this}removeWMS(t){if(!qL(t)){QL(uf.prototype.removeWMS)&&Oc(Cu("exception").removewms_method);const e=this.getWMS(t);e.length>0&&this.getImpl().removeWMS(e)}return this}getWFS(t){let e=t;QL(uf.prototype.getWFS)&&Oc(Cu("exception").getwfs_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Pu))));return this.getImpl().getWFS(i).sort(wL.LAYER_SORT)}getGeoJSON(t){let e=t;QL(uf.prototype.getGeoJSON)&&Oc(Cu("exception").getgeojson_method),GL(e)?e=[]:UL(e)||(e=[e]);return this.getImpl().getGeoJSON(e).sort(wL.LAYER_SORT)}addWFS(t){let e=t;if(!qL(e)){QL(uf.prototype.addWFS)&&Oc(Cu("exception").addwfs_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{let i;if(zL(e)&&e instanceof XS)i=e;else if(!(e instanceof _g))try{i=new XS(e,e.options)}catch(t){throw pI(t.toString()),t}this.featuresHandler_.addLayer(i),t.push(i)})),this.getImpl().addWFS(t),this.fire(Uc,[t]),this.fire(Yc,[t])}return this}removeWFS(t){if(!qL(t)){QL(uf.prototype.removeWFS)&&Oc(Cu("exception").removewfs_method);const e=this.getWFS(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeWFS(e))}return this}getWMTS(t){let e=t;QL(uf.prototype.getWMTS)&&Oc(Cu("exception").getwmts_method),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Fu))));return this.getImpl().getWMTS(i).sort(wL.LAYER_SORT)}addWMTS(t){let e=t;if(!qL(e)){QL(uf.prototype.addWMTS)&&Oc(Cu("exception").addwmts_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{if(zL(e)&&e instanceof qb)e.setMap(this),t.push(e);else if(!(e instanceof _g)){const i=new qb(e,e.options);i.setMap(this),t.push(i)}})),this.getImpl().addWMTS(t),this.fire(Uc,[t]),this.fire(Wc,[t])}return this}removeWMTS(t){if(!qL(t)){QL(uf.prototype.removeWMTS)&&Oc(Cu("exception").removewmts_method);const e=this.getWMTS(t);e.length>0&&this.getImpl().removeWMTS(e)}return this}getMVT(t){let e=t;QL(uf.prototype.getMVT)&&Oc("La implementación usada no posee el método getWFS"),GL(e)?e=[]:UL(e)||(e=[e]);let i=[];e.length>0&&(i=e.map((t=>fg(t,Gu))));return this.getImpl().getMVT(i).sort(wL.LAYER_SORT)}removeMVT(t){if(!qL(t)){QL(uf.prototype.removeMVT)&&Oc("La implementación usada no posee el método removeWFS");const e=this.getMVT(t);e.length>0&&(e.forEach((t=>{this.featuresHandler_.removeLayer(t)})),this.getImpl().removeMVT(e))}return this}addMVT(t){let e=t;if(!qL(e)){QL(uf.prototype.addMVT)&&Oc("La implementación usada no posee el método addWFS"),UL(e)||(e=[e]);const t=[];e.forEach((e=>{let i;if(zL(e)&&e instanceof yL)i=e;else if(!(e instanceof _g))try{i=new yL(e,e.options)}catch(t){throw pI(t.toString()),t}t.push(i)})),this.getImpl().addMVT(t),this.fire(Uc,[t]),this.fire(jc,[t])}return this}getControls(t){let e=t;QL(uf.prototype.getControls)&&Oc(Cu("exception").getcontrols_method),GL(e)?e=[]:UL(e)||(e=[e]);return this.getImpl().getControls(e)}addControls(t){let e=t;if(!qL(e)){QL(uf.prototype.addControls)&&Oc(Cu("exception").addcontrols_method),UL(e)||(e=[e]);const t=[];e.forEach((e=>{const i=(t=>{let e=null;if(YL(t)){const i=XL(t),n={[kv.NAME]:new kv("html"),[xI.NAME]:new xI,[VI.NAME]:new VI,[ME.NAME]:new ME,[VE.NAME]:new VE,[QE.NAME]:new QE({toggleDelay:400}),[XE.NAME]:new XE,[Mu.NAME]:new Mu,[sE.NAME]:new sE,[XI.NAME]:new XI,[`${XI.Name}*true`]:new XI({exactScale:!0}),[EE.NAME]:new EE,[mf.NAME]:new mf};if(!(i in n)){const t=aB([M.config.MAPEA_URL,"/api/actions/controls"]);pI(`El control ${i} no está definido. Consulte los controles disponibles aquí`)}e=n[i]}else t instanceof vu?e=t:Oc("El control añadido no es válido.");return e})(e),n=Zv(i,this);this.hasControl(i)||(qL(n)?i.addTo(this):(n.addControls(i),this.addPanels(n)),t.push(i))})),this.getImpl().addControls(t)}}hasControl(t){let e=t;t instanceof vu&&(e=t.name);const i=this.getControls().find((t=>t.name===e));return!qL(i)}removeControls(t){qL(t)&&Oc(Cu("exception").remove_control),QL(uf.prototype.removeControls)&&Oc(Cu("exception").removecontrol_method);let e=this.getControls(t);return e=[].concat(e),e.length>0&&(e.forEach((t=>{qL(t.getPanel())||t.getPanel().removeControls(t)})),this.getImpl().removeControls(e)),this}getMaxExtent(){let t=this.userMaxExtent;if(qL(t)){const e=this.getWMC().find((t=>t.selected));t=qL(e)?MB(this.getLayers().filter((t=>"__draw__"!==t.name)).map((t=>t.getMaxExtent()))):e.getMaxExtent(),qL(t)&&(t=this.getProjection().getExtent())}return t}calculateMaxExtent(){return new Promise((t=>{let e=this.userMaxExtent;if(qL(e)){const i=this.getWMC().find((t=>t.selected));if(qL(i)){const i=this.getLayers().filter((t=>"__draw__"!==t.name&&t.isVisible())).map((t=>t.calculateMaxExtent()));Promise.all(i).then((i=>{e=MB(i),qL(e)&&(e=this.getProjection().getExtent()),qL(this.userMaxExtent)||(e=this.userMaxExtent),t(e)}))}else i.calculateMaxExtent().then(t)}else t(e)}))}setMaxExtent(t,e=!0){qL(t)&&this.resetMaxExtent(),QL(uf.prototype.setMaxExtent)&&Oc(Cu("exception").setmaxextent_method);try{let i=lg(t);!UL(i)&&zL(i)&&(i=[i.x.min,i.y.min,i.x.max,i.y.max]),this.userMaxExtent=i,this.getImpl().setMaxExtent(i,e)}catch(t){throw pI(t.toString()),t}return this}resetMaxExtent(){return this.userMaxExtent=null,this.calculateMaxExtent().then((t=>{const e=lg(t);this.getImpl().setMaxExtent(e,!0)})),this}getBbox(){QL(uf.prototype.getBbox)&&Oc(Cu("exception").getbbox_method);return this.getImpl().getBbox()}setBbox(t,e){qL(t)&&Oc(Cu("exception").no_bbox),QL(uf.prototype.setBbox)&&Oc(Cu("exception").setbbox_method);try{const i=lg(t);this.getImpl().setBbox(i,e)}catch(t){throw pI(Cu("exception").incorrect_format_bbox),t}return this}getZoom(){QL(uf.prototype.getZoom)&&Oc(Cu("exception").getzoom_method);return this.getImpl().getZoom()}setZoom(t){qL(t)&&Oc(Cu("exception").no_zoom),QL(uf.prototype.setZoom)&&Oc(Cu("exception").setzoom_method);try{const e=ug(t);this._userZoom=e,this.getImpl().setZoom(e)}catch(t){throw pI(t.toString()),t}return this}getCenter(){QL(uf.prototype.getCenter)&&Oc(Cu("exception").getcenter_method);return this.getImpl().getCenter()}setCenter(t){qL(t)&&Oc(Cu("exception").no_center),QL(uf.prototype.setCenter)&&Oc(Cu("exception").setcenter_method);const e=ag(t);return this.getImpl().setCenter(e),this.userCenter_=e,!0===e.draw&&(this.drawLayer_.clear(),this.centerFeature_=new DB("__mapeacenter__",{type:"Feature",geometry:{type:"Point",coordinates:[e.x,e.y]},properties:{vendor:{mapea:{click:t=>{const e=this.getLabel();qL(e)||e.show(this)}}}}}),this.drawFeatures([this.centerFeature_])),this}getFeatureCenter(){return this.centerFeature_}removeCenter(){this.removeFeatures(this.centerFeature_),this.centerFeature_=null,this.zoomToMaxExtent()}getResolutions(){QL(uf.prototype.getResolutions)&&Oc(Cu("exception").getresolutions_method);return this.getImpl().getResolutions()}setResolutions(t){qL(t)&&Oc(Cu("exception").no_resolutions),QL(uf.prototype.setResolutions)&&Oc(Cu("exception").setresolutions_method);const e=cg(t);return this.getImpl().setResolutions(e),this}getScale(){QL(uf.prototype.getScale)&&Oc(Cu("exception").getscale_method);return this.getImpl().getScale()}getExactScale(){QL(uf.prototype.getExactScale)&&Oc("La implementación usada no posee el método getScale");return this.getImpl().getExactScale()}getProjection(){QL(uf.prototype.getProjection)&&Oc(Cu("exception").getprojection_method);return this.getImpl().getProjection()}setProjection(t,e){let i=t;qL(i)&&Oc(Cu("exception").no_projection),QL(uf.prototype.setProjection)&&Oc(Cu("exception").setprojection_method);try{const t=this.getProjection();i=hg(i),t.code!==i.code&&(this.getImpl().setProjection(i),this._defaultProj=this._defaultProj&&!0===e,this.fire(hu,[t,i]))}catch(t){pI(t.toString()),String(t).indexOf("El formato del parámetro projection no es correcto")>=0&&this.setProjection(M.config.DEFAULT_PROJ,!0)}return this}getPlugins(t){let e=t;GL(e)?e=[]:UL(e)||(e=[e]);let i=[];return 0===e.length?i=this._plugins:e.forEach((t=>{i=i.concat(this._plugins.filter((e=>t===e.name)))})),i}addPlugin(t){return qL(t)&&Oc(Cu("exception").no_plugins),QL(t.addTo)&&Oc(Cu("exception").no_add_plugin_to_map),this._plugins.push(t),t.addTo(this),this}addPlugins(t){qL(t)&&Oc(Cu("exception").no_plugins);let e=t;return UL(t)||(e=[t]),e.forEach((t=>{this.addPlugin(t)})),this}removePlugins(t){let e=t;return qL(e)&&Oc(Cu("exception").no_plugin_to_remove),UL(e)||(e=[e]),e=[].concat(e),e.length>0&&e.forEach((t=>{t.destroy(),this._plugins=this._plugins.filter((e=>t.name!==e.name))})),this}getEnvolvedExtent(){return new Promise((t=>{const e=this.getWMC().find((t=>t.selected));if(qL(e)){const e=this.getBaseLayers().find((t=>t.isVisible()));if(qL(e)){const e=this.getLayers().filter((t=>"__draw__"!==t.name));Promise.all(e.map((t=>t.calculateMaxExtent()))).then((e=>{const i=qL(e)?[this.getProjection().getExtent()]:e,n=MB(i);t(n)}))}else e.getMaxExtent(t)}else e.getMaxExtent(t)}))}zoomToMaxExtent(t){return this.calculateMaxExtent().then((e=>{(!0!==t||qL(this._userZoom))&&this.setBbox(e),this._finishedMaxExtent=!0,this._checkCompleted()})),this}setTicket(t){return this.ticket_=t,M.config.ticket=t,this}getTicket(){return this.ticket_}getInitCenter_(){return new Promise(((t,e)=>{this.calculateMaxExtent().then((e=>{let i;i=UL(e)?{x:(e[0]+e[2])/2,y:(e[1]+e[3])/2}:{x:(e.x.max+e.x.min)/2,y:(e.y.max+e.y.min)/2},t(i)}))}))}destroy(){return QL(uf.prototype.destroy)&&Oc(Cu("exception").destroy_method),this.getImpl().destroy(),this}addLabel(t,e,i=!0){qL(t)&&Oc(Cu("exception").no_projection),QL(uf.prototype.addLabel)&&Oc(Cu("exception").addlabel_method);let n=null,r=null,s=t,o=e;return UL(t)||(s=[t]),QL(e)||UL(e[0])?QL(e)&&(o=[]):o=[e],s.forEach(((e,s)=>{const a=void 0===e.panMapIfOutOfView||t.panMapIfOutOfView;if(zL(e)?(n=cB(e.text),r=e.coord):(n=cB(e),r=o[s]),r=qL(r)?this.getCenter():ag(r),qL(r))this.getInitCenter_().then((t=>{const e=new nx(n,t,a);this.getImpl().addLabel(e,i)}));else{const t=new nx(n,r,a);this.getImpl().addLabel(t,i)}})),this}getLabel(){return this.getImpl().getLabel()}getLabels(){return this.getImpl().getLabels()}removeLabel(t){return this.getImpl().removeLabel(t)}drawPoints(t){let e=t;qL(e)&&Oc(Cu("exception").no_point),UL(e)||(e=[e]);const i=e.map((t=>{const e={type:"Feature",geometry:{type:"Point",coordinates:[t.x,t.y]},properties:{}};return VL(t.click)&&(e.properties.vendor={mapea:{click:t.click}}),new DB(null,e)}));this.drawLayer_.addFeatures(i)}drawFeatures(t){return this.drawLayer_.addFeatures(t),this}removeFeatures(t){return this.drawLayer_.removeFeatures(t),this}addPanels(t){let e=t;return qL(e)||(UL(e)||(e=[e]),e.forEach((t=>{const e=this._panels.some((e=>e.equals(t)));if(t instanceof Hv&&!e){this._panels.push(t);const e="div.m-area".concat(t.position),i=this._areasContainer.querySelector(e);t.addTo(this,i)}}))),this}removePanel(t){return t.getControls().length>0&&Oc(Cu("exception").remove_control_from_panel),t instanceof Hv&&(t.destroy(),this._panels=this._panels.filter((e=>!e.equals(t)))),this}getPanels(t){let e=t,i=[];return qL(e)?i=this._panels:(UL(e)||(e=[e]),e.forEach((t=>{const e=this._panels.filter((e=>e.name===t));e.forEach((t=>{qL(t)||i.push(t)}))}))),i}createMainPanels_(){this._areasContainer=document.createElement("div"),this._areasContainer.classList.add("m-areas");const t=document.createElement("div");t.classList.add("m-area"),t.classList.add("m-top"),t.classList.add("m-left");const e=document.createElement("div");e.classList.add("m-area"),e.classList.add("m-top"),e.classList.add("m-right");const i=document.createElement("div");i.classList.add("m-area"),i.classList.add("m-bottom"),i.classList.add("m-left");const n=document.createElement("div");n.classList.add("m-area"),n.classList.add("m-bottom"),n.classList.add("m-right"),this._areasContainer.appendChild(t),this._areasContainer.appendChild(e),this._areasContainer.appendChild(i),this._areasContainer.appendChild(n),this.getContainer().appendChild(this._areasContainer)}getContainer(){return QL(uf.prototype.getContainer)&&Oc(Cu("exception").getcontainer_method),this.getImpl().getContainer()}getMapImpl(){return QL(uf.prototype.getMapImpl)&&Oc(Cu("exception").getmapimpl_method),this.getImpl().getMapImpl()}getPopup(){let t=null;return t=0===this.popup_.length?null:this.popup_[0],t}getPopups(){let t=null;return 0===this.popup_.length?t=null:this.popup_.length>=1&&(t=this.popup_),t}removePopup(t){return QL(uf.prototype.removePopup)&&Oc(Cu("exception").removepopup_method),qL(t)?(this.popup_.forEach((t=>{this.getImpl().removePopup(t),t.destroy()})),this.popup_=[]):UL(t)?t.forEach(((t,e)=>{const i=this.popup_.findIndex((e=>e.getId()===t.getId()));this.getImpl().removePopup(this.popup_[i]),this.popup_[i].destroy(),this.popup_.splice(i,1)})):(this.getImpl().removePopup(t),t.destroy(),this.popup_.forEach(((e,i)=>{e.getId()===t.getId()&&this.popup_.splice(i,1)}))),this}addPopup(t,e,i=!0){qL(t)&&Oc(Cu("exception").no_popup);let n=t,r=e;return UL(t)||(n=[t]),UL(e[0])||(r=[e]),n.forEach(((t,e)=>{i&&(this.removePopup(this.popup_),this.popup_=[]),this.popup_.push(t),t.addTo(this,r[e])})),this}addUpClass_(t){t.on(kc,(t=>{3===this.getControls(["wmcselector","scale","scaleline"]).length&&this.getControls(["scaleline"])[0].getElement().classList.add("ol-scale-line-up")}))}_checkCompleted(){this._finishedInitCenter&&this._finishedMaxExtent&&this._finishedMapImpl&&(this._finishedMap=!0,this.fire(ou))}on(t,e,i){const n=super.on(t,e,i);return t===ou&&!0===this._finishedMap&&this.fire(ou),n}refresh(){return!QL(this.getImpl().refresh)&&VL(this.getImpl().refresh)&&this.getImpl().refresh(),this.getLayers().forEach((t=>t.refresh())),this}get defaultProj(){return this._defaultProj}static LAYER_SORT(t,e){if(!qL(t)&&!qL(e)){return t.getZIndex()-e.getZIndex()}return 0}isFinished(){return this._finishedMap}get areasContainer(){return this._areasContainer}getRotation(){return QL(uf.prototype.getRotation)&&Oc(Cu("exception").no_get_rotation_method),this.getImpl().getRotation()*(180/Math.PI)}setRotation(t){QL(uf.prototype.setRotation)&&Oc(Cu("exception").no_set_rotation_method),this.getImpl().setRotation(t*(Math.PI/180)),this.fire(gu,[t])}setBGColorContainer(t){qL(t)||(document.querySelector(".m-mapea-container").style.backgroundColor=t,document.querySelector(".m-mapea-container").style.backgroundImage="unset")}enableMouseWheel(t){this.getImpl().enableMouseWheel(t)}enableDrag(t){this.getImpl().enableDrag(t)}setZoomLevels(t){QL(t)||qL(t)||this.calculateMaxExtent().then((e=>{const i=this.getZoom(),n=this.getMapImpl().getSize(),r=this.getProjection().units,s=iB(e,n,t,r);this.setResolutions(s,!0),M.config.ZOOM_LEVELS=t,i{throw t}))}getImageMap(){return this.getImpl().getImageMap()}setToClosestScale(t){const e=eB(t,this.getProjection().units);this.getImpl().setToClosestScale(e)}getOverlayLayers(){return this.getLayers().filter((t=>"__draw__"!==t.name&&!0===t.transparent))}removeOverlayLayers(){const t=this.getOverlayLayers();return this.removeLayers(t),this}}wL.DRAWLAYER_STYLE={fill:{color:"#009e00"},stroke:{color:"#fcfcfc",width:2},radius:7};const SL=wL;i(421);const bL=(t,e)=>{bL[t]=e};let LL=!0;const BL=[];const ML=class{constructor(t){this.text=null,this.xml=null,this.headers={},this.error=!1,this.code=0}parseXmlHttp(t){this.text=t.responseText,this.xml=t.responseXML,this.code=t.status,this.error=""!==t.statusText&&"OK"!==t.statusText;let e=t.getAllResponseHeaders();e=e.split("\n"),e.forEach((t=>{let e=t;e=e.trim();const i=e.replace(/^([^:]+):(.+)$/,"$1").trim(),n=e.replace(/^([^:]+):(.+)$/,"$2").trim();""!==i&&(this.headers[i]=n)}))}parseProxy(t){if(this.code=t.code,this.error=t.error,200===this.code&&!0!==this.error){this.text=t.content.trim();try{const e=t.headers["Content-Type"];"undefined"!=typeof DOMParser&&/text\/html/i.test(e)?this.xml=(new DOMParser).parseFromString(this.text,"text/html"):/xml/i.test(e)&&(this.xml=(new DOMParser).parseFromString(this.text,"text/xml"))}catch(t){this.xml=null,this.error=!0}}Object.keys(t.headers).forEach((e=>{this.headers[e]=t.headers[e]}))}},TL="GET",RL="POST",NL=(t,e)=>{let i=M.config.PROXY_URL;return e===RL&&(i=M.config.PROXY_POST_URL),i=KL(i,{url:t}),i},PL=(t,e,i)=>{let n=t;qL(e)||(n=KL(n,e)),LL&&(n=NL(n,TL));const r=JL("mapea_jsonphandler_");if(n=KL(n,{callback:r}),!qL(i)&&"ticket"in i&&!1===i.ticket){const t=n.indexOf("ticket="),e=n.indexOf("&",t);n=n.substring(n,t)+n.substring(e,n.length)}const s=new Promise(((t,e)=>{const i=t;new Promise((t=>{window[r]=t})).then((t=>{delete window[r],(t=>{const e=document.getElementById(t);e.parentNode.removeChild(e)})(r);const e=new ML;e.parseProxy(t),i(e)}))}));return((t,e)=>{const i=document.createElement("script");i.type="text/javascript",i.id=e,i.src=t,i.setAttribute("async",""),window.document.body.appendChild(i)})(n,r),s},FL=(t,e,i,n)=>{let r=t,s=e;return!1!==n&&!0===LL&&(r=NL(r,i)),zL(s)&&(s=JSON.stringify(s)),new Promise(((t,e)=>{let n;window.XMLHttpRequest?n=new XMLHttpRequest:window.ActiveXObject&&(n=new ActiveXObject("Microsoft.XMLHTTP")),n.onreadystatechange=()=>{if(4===n.readyState){const e=new ML;e.parseXmlHttp(n),t(e)}},n.open(i,r,!0),n.send(s)}))},DL=(t,e,i)=>{let n,r=(qL(i)||!1!==i.jsonp)&&!1!==LL;const s=new URL(t).origin;return r=r&&-1===BL.indexOf(s),n=!0===r?PL(t,e,i):FL(t,e,TL,!1),n},OL={inches:1,in:1,Inch:1,ft:12,mi:63360,m:39.3701,dd:4374754,yd:36,d:4374754,degrees:4374754,nmi:72913.4252,Meter:39.37,Foot:12,IFoot:11.999976,ClarkeFoot:11.999868327581488,SearsFoot:11.999955194477684,GoldCoastFoot:11.999964589846002,IInch:.9999979999999999,MicroInch:999998e-9,Mil:9.99998e-7,Centimeter:.3937,Kilometer:39370,Yard:36,SearsYard:35.99986558343306,IndianYard:35.99987015540864,IndianYd37:35.999740205100004,IndianYd62:35.999880755999996,IndianYd75:35.999868945,IndianFoot:11.9999567087,IndianFt37:11.9999134017,IndianFt62:11.999960252000001,IndianFt75:11.999956315,Mile:63360,IYard:35.999928,IMile:63359.87328,NautM:72913.24,"Lat-66":4367838.370169282,"Lat-83":4367954.152606599,Decimeter:3.9370000000000003,Millimeter:.03937,Dekameter:393.7,Decameter:393.7,Hectometer:3937,GermanMeter:39.370535294205006,CaGrid:39.359685060000004,ClarkeChain:791.991309620512,GunterChain:792.0000000000001,BenoitChain:791.9977268035781,SearsChain:791.9970428354235,ClarkeLink:7.91991309620512,GunterLink:7.920000000000001,BenoitLink:7.919977268035781,SearsLink:7.919970428354236,Rod:198.00000000000014,IntnlChain:791.998416,IntnlLink:7.91998416,Perch:198.00000000000014,Pole:198.00000000000014,Furlong:7919.999999999997,Rood:148.75036777426,CapeFoot:11.999868185255002,Brealey:14763.75,ModAmFt:12.000458400000001,Fathom:71.999856,"NautM-UK":72959.85408,"50kilometers":1968500,"150kilometers":5905500,mm:39.37/1e3,cm:.3937,dm:39.37*100,km:39370,kmi:72913.4252,fath:71.999856,ch:791.998416,link:7.91998416,"us-in":1,"us-ft":12,"us-yd":36,"us-ch":792.0000000000001,"us-mi":63360,"ind-yd":35.999740205100004,"ind-ft":11.9999134017,"ind-ch":791.9942845122},QL=t=>void 0===t,kL=t=>{let e=!1;return null===t||QL(t)||(e="boolean"==typeof t),e},GL=t=>{let e=!1;return kL(t)||"number"==typeof t||(QL(t)?e=!0:t?null===t&&(e=!0):e=!0),e},UL=t=>{let e=!1;return GL(t)||(e=Object.prototype.toString.call(t)===Object.prototype.toString.call([])),e},qL=t=>{let e=!1;return GL(t)?e=!0:UL(t)?(e=!0,t.length>0&&(e=!t.some((t=>!qL(t))))):"string"==typeof t&&0===t.trim().length&&(e=!0),e},VL=t=>{let e=!1;return GL(t)||(e="function"==typeof t&&!QL(t.call)),e},zL=t=>{let e=!1;return GL(t)||(e="object"==typeof t&&!QL(t.toString)),e},YL=t=>{let e=!1;return GL(t)||(e="string"==typeof t),e},jL=t=>{let e=!1;return!GL(t)&&YL(t)&&(e=/(https?:\/\/[^*]+)/.test(t)),e},HL=t=>"number"==typeof t,XL=(t,e)=>{let i=t;return!qL(i)&&YL(i)&&(i=i.trim(),i=e?i.toUpperCase():i.toLowerCase()),i},WL=(t,e)=>{let i=null;const n=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");let r=e;const s=r.indexOf("?");if(-1!==s){r=r.substring(s);i=new RegExp(`[\\?&]${n}=([^&#]*)`).exec(r),null!==i&&(i=decodeURIComponent(i[1].replace(/\+/g," ")))}return i},KL=(t,e)=>{let i=t;-1===i.indexOf("?")?i+="?":"?"!==i.charAt(i.length-1)&&(i+="&");let n="";if(zL(e)){Object.keys(e).forEach((t=>{const i=e[t];n+=t,n+="=",n+=encodeURIComponent(i),n+="&"})),n=n.substring(0,n.length-1)}else YL(e)&&(n=e);return i+=n,i},JL=(t,e)=>{let i="";return qL(t)||(i=t),i=i.concat(Math.random()).replace(/0\./,""),qL(e)||(i=i.concat(e)),i},ZL=(t,e,i)=>{let n=t;return n=KL(n,"request=GetCapabilities"),n=KL(n,"service=WMS"),YL(e)&&(n=KL(n,{version:e})),YL(i)&&(n=KL(n,{ticket:i})),n},$L=(t,e)=>{let i=t;return i=KL(i,"request=GetCapabilities"),i=KL(i,"service=WMTS"),qL(e)||(i=KL(i,{version:e})),i},tB=(t,e,i)=>{let n=t,r=e;const s=new Array(i);n=Number.parseFloat(n),r=Number.parseFloat(r);let o=2;Number.isNaN(n)||(o=(r/n)**(1/(i-1)));for(let t=0;te-t)),s},eB=(t,e)=>{let i,n=e;if(!qL(t)){GL(n)&&(n="degrees");i=1/((t>1?1/t:t)*OL[n]*72)}return i},iB=(t,e,i,n)=>{let r=t,[s,o]=[null,null];UL(r)?(s=r[2]-r[0],o=r[3]-r[1]):zL(r)?(s=r.x.max-r.x.min,o=r.y.max-r.y.min):YL(r)&&(r=r.split(","),s=r[2]-r[0],o=r[3]-r[1]);const a=s/e[0],l=o/e[1],h=Math.max(a,l);return tB(null,h,i)},nB=(t,e)=>{let i=e;qL(i)&&(i="degrees");return t*OL[i]*72},rB=t=>{let e;if(!qL(t)){const i=document.createElement("div");i.innerHTML=t,e=i.children[0]}return e},sB=t=>{let e=t;if(e&&(e=e.trim(),e.length>0)){let t=e.indexOf(":");-1!==t&&(t+=1,e=e.substring(t,e.length))}return e},oB=t=>{let e=XL(t);return e=e.replace(/_(\w)/g,((t,e)=>" ".concat(e.toUpperCase()))),e=e.replace(/^\w/,(t=>t.toUpperCase())),e},aB=t=>{let e=null;if(!qL(t)){e=t[0],e=e.replace(/\/+\s*$/,"");for(let i=1,n=t.length;i{const n=Object(t),r=parseInt(n.length,10)||0;if(0===r)return!1;const s=parseInt(i,10)||0;let o,a;for(s>=0?o=s:(o=r+s,o<0&&(o=0));o{const n=t;return Object.keys(e).forEach((t=>{QL(n[t])?n[t]=e[t]:Object.getPrototypeOf(n[t])===Object.prototype?hB(n[t],e[t],i):!0===i&&(n[t]=e[t])})),n},cB=t=>{let e;return e=t.replace(/(<\s*script[^>]*>)+[^<]*(<\s*\/\s*script[^>]*>)+/gi,""),e=e.replace(/(('|')\s*\+\s*)?\s*eval\s*\(.*\)\s*(\+\s*('|'))?/gi,""),e},uB=t=>{const e=t;if("ontouchstart"in document){let t=0;e.addEventListener("touchstart",(i=>{t=e.scrollTop+i.touches[0].pageY})),e.addEventListener("touchmove",(i=>{e.scrollTop=t-i.touches[0].pageY}))}},gB=(t,e)=>{const i=t.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1"),n=e.replace(/^(.+)\/$/,"$1").replace(/^(.+)\?$/,"$1");return i.toLowerCase()===n.toLowerCase()},dB=t=>{const e=[ad.toLowerCase(),"GeometryPropertyType".toLowerCase(),pd.toLowerCase(),ld.toLowerCase(),dd.toLowerCase(),hd.toLowerCase(),cd.toLowerCase(),ud.toLowerCase(),gd.toLowerCase(),Ad.toLowerCase(),fd.toLowerCase(),"pointpropertytype","polygonpropertytype","linestringpropertytype","geometrypropertytype","multisurfacepropertytype","multilinestringpropertytype","surfacepropertytype","geometrypropertytype","geometryarraypropertytype","multigeometrypropertytype","multipolygonpropertytype","multipointpropertytype","abstractgeometricaggregatetype","pointarraypropertytype","curvearraypropertytype","solidpropertytype","solidarraypropertytype"],i=t.toLowerCase();return-1!==e.indexOf(i)},pB=t=>{const e=document.createElement("textarea");return e.innerHTML=t,e.value},AB=t=>{let e=t;!YL(t)&&t.outerHTML&&(e=t.outerHTML);const i=document.createElement("DIV");return i.innerHTML=e,i.textContent||i.innerText||""},fB=(t,e,i)=>a().scale([t,e]).colors(i),mB=t=>{let e;if(YL(t)){let i=a()(t).hex();i=i.replace(/^#/,"0x"),e=a()(16777215-i).hex()}return e},_B=(t={},e={})=>{const i=t;return qL(e)||Object.keys(e).forEach((t=>{let n=e[t];UL(n)?n=[...n]:zL(n)&&(n=_B({},n)),qL(i[t])?i[t]=n:zL(i[t])&&_B(i[t],n)})),i},yB=(t,e)=>{let i=[...t];if(t.lengtht.ORDER-e.ORDER,EB=t=>{const e=new Image;return new Promise(((i,n)=>{e.onload=()=>i(e),e.src=t}))},CB=t=>{let e;return UL(t)?(e=[...t],e=e.map(CB)):zL(t)?(e=_B({},t),Object.keys(e).forEach((t=>{const i=e[t];VL(i)?e[t]=`{{f}}${i.toString()}`:zL(i)&&(e[t]=CB(i))}))):e=VL(t)?`{{f}}${t.toString()}`:t,e},vB=t=>{let e=t;if(/^\{\{f\}\}/.test(t)){const i=t.replace(/^\{\{f\}\}(.+)/,"$1");e=new Function("f",`return ${i}`)()}else Object.keys(e).forEach((t=>{const i=e[t];if(/^\{\{f\}\}/.test(i)){const n=i.replace(/^\{\{f\}\}(.+)/,"$1");e[t]=new Function("f",`return ${n}`)()}else zL(i)&&vB(i)}));return e},xB=(t,e)=>{const i=t.classList;i.contains(e)?i.remove(e):i.add(e)},wB=(t,e)=>{const i=e.parentNode;i&&i.replaceChild(t,e)},SB=t=>{if(t){const e=t.parentElement;e&&e.removeChild(t)}},bB=t=>{let e=!1;return Array.isArray(t)||"object"!=typeof t||qL(t)?("function"==typeof t||"string"==typeof t&&/\{\{.*\}\}/.test(t))&&(e=!0):e=Object.values(t).some((t=>bB(t))),e};let LB="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAIAAAAK4lpAAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpaVURewg4pChOlkQFXHUKhShQqgVWnUwufQLmjQkKS6OgmvBwY/FqoOLs64OroIg+AHi6uKk6CIl/i8ptIj14Lgf7+497t4BQr3MNKtrHNB020wl4mImuyoGXhFECGH0ol9mljEnSUl0HF/38PH1LsazOp/7c/SoOYsBPpF4lhmmTbxBPL1pG5z3iSOsKKvE58RjJl2Q+JHrisdvnAsuCzwzYqZT88QRYrHQxkobs6KpEU8RR1VNp3wh47HKeYuzVq6y5j35C8M5fWWZ6zSHkcAiliBBhIIqSijDRoxWnRQLKdqPd/APuX6JXAq5SmDkWEAFGmTXD/4Hv7u18pMTXlI4DnS/OM7HCBDYBRo1x/k+dpzGCeB/Bq70lr9SB2Y+Sa+1tOgR0LcNXFy3NGUPuNwBBp8M2ZRdyU9TyOeB9zP6piwwcAuE1rzemvs4fQDS1FXyBjg4BEYLlL3e4d3B9t7+PdPs7wcKRXJ9HBxvdAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+cICgwaEtLWWMgAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAQklEQVQ4y2P8z8yAFZSwfMEqvhO7coa441ZYxZkYaAxGLRi1gHLAsvXOa6wSjXuEsYrzCsVjFa9VezIaB6MW0AgAACUUCncamxS/AAAAAElFTkSuQmCC";const BB=t=>LB,MB=t=>{let e=null;return qL(t)||(e=[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER,Number.MIN_SAFE_INTEGER],t.forEach((t=>{qL(t)||(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}))),e},TB=()=>{const t=window.navigator.userAgent||window.navigator.vendor||window.opera;let e="unknown";return/android/i.test(t)&&(e="android"),/iPad|iPhone|iPod/.test(t)&&!window.MSStream&&(e="ios"),e},RB=(t,e,i)=>xe(t,e,i);class NB{constructor(t,e,i){const n=e;this.facadeFeature_=null,this.formatter_=new LS,qL(e)?this.olFeature_=new _d:(qL(e.type)&&(n.type="Feature"),this.olFeature_=this.formatter_.readFeature(n)),qL(t)?qL(this.olFeature_.getId())&&this.olFeature_.setId(JL("mapea_feature_")):this.olFeature_.setId(t)}getOLFeature(){return this.olFeature_}setOLFeature(t,e){qL(t)||(this.olFeature_=t,!1!==e&&qL(this.olFeature_.getId())&&this.olFeature_.setId(JL("mapea_feature_")))}getAttributes(){const t=this.olFeature_.getProperties(),e=t.geometry;return!qL(e)&&e instanceof _a&&delete t.geometry,t}getId(){return this.olFeature_.getId()}setId(t){this.olFeature_.setId(t)}setAttributes(t){this.olFeature_.setProperties(t)}static olFeature2Facade(t,e){let i=null;return qL(t)||(i=new DB,i.getImpl().setOLFeature(t,e)),i}static olRenderFeature2Facade(t,e,i){const n=qd.olRenderFeature2olFeature(t,e,i);return NB.olFeature2Facade(n)}static facade2OLFeature(t){return t.getImpl().getOLFeature()}getAttribute(t){return this.olFeature_.get(t)}setAttribute(t,e){return this.olFeature_.set(t,e)}static getGeometry(t){let e;const i=t.geometry.type;return"circle"===i?e=new kd(t.geometry.coordinates):"geometry"===i?e=new _a(t.geometry.coordinates):"linestring"===i?e=new wd(t.geometry.coordinates):"multilinestring"===i?e=new bd(t.geometry.coordinates):"multipoint"===i?e=new Id(t.geometry.coordinates):"multipolygon"===i?e=new Md(t.geometry.coordinates):"point"===i?e=new qa(t.geometry.coordinates):"polygon"===i&&(e=new sl(t.geometry.coordinates)),e}setGeometry(t){const e=t.type.toLowerCase();"circle"===e?this.olFeature_.setGeometry(new kd(t.coordinates)):"geometry"===e?this.olFeature_.setGeometry(new _a(t.coordinates)):"linestring"===e?this.olFeature_.setGeometry(new wd(t.coordinates)):"multilinestring"===e?this.olFeature_.setGeometry(new bd(t.coordinates)):"multipoint"===e?this.olFeature_.setGeometry(new Id(t.coordinates)):"multipolygon"===e?this.olFeature_.setGeometry(new Md(t.coordinates)):"point"===e?this.olFeature_.setGeometry(new qa(t.coordinates)):"polygon"===e&&this.olFeature_.setGeometry(new sl(t.coordinates))}setFacadeObj(t){this.facadeFeature_=t}getCentroid(){let t;const e=this.getOLFeature().getGeometry(),i=qd.getCentroid(e);if(!qL(i)){const e=new qa(i);t=new _d({geometry:e,name:"centroid"})}return t=NB.olFeature2Facade(t),t}clearStyle(){this.olFeature_.setStyle(null)}}const PB=NB;class FB extends Qc{constructor(t,e,i){super(new PB(t,e,i)),this.style_=null,this.formatGeoJSON_=new BS,this.setStyle(i)}setId(t){this.getImpl().setId(t)}getId(){return this.getImpl().getId()}getGeometry(){return this.getGeoJSON().geometry}setGeometry(t){this.getImpl().setGeometry(t)}getGeoJSON(){return this.formatGeoJSON_.write(this)[0]}getAttributes(){return this.getImpl().getAttributes()}setAttributes(t){"object"==typeof t?this.getImpl().setAttributes(t):dI(Cu("feature").incorrect_attributes)}getAttribute(t){let e;if(e=this.getImpl().getAttribute(t),qL(e)){const i=t.split(".");i.length>1&&(e=i.reduce(((t,e)=>{let i;return qL(t)||(i=t instanceof FB?t.getAttribute(e):t[e]),i}),this))}return e}setAttribute(t,e){return this.getImpl().setAttribute(t,e)}setStyle(t){!qL(t)&&t instanceof Zm?(this.style_=t,this.style_.applyToFeature(this)):qL(t)&&(this.style_=null,this.getImpl().clearStyle()),this.fire(cu,[t,this])}equals(t){return this.getId()===t.getId()}getStyle(){return this.style_}clearStyle(){this.setStyle(null)}getCentroid(){const t=this.getId(),e=this.getAttributes(),i=new CI({stroke:{color:"#67af13",width:2},radius:8,fill:{color:"#67af13",opacity:.2}}),n=this.getImpl().getCentroid();return qL(n)||(n.setId(`${t} centroid}`),n.setAttributes(e),n.setStyle(i)),n}}const DB=FB;const OB=class extends DB{constructor(t,e){super(JL("_mapea_cluster_")),this.setAttributes(e),this.setAttribute("features",t)}};const QB=class extends Qc{addTo(t){qL(t)&&Oc(Cu("exception").no_map);const e=this.getImpl();QL(e.addTo)&&Oc(Cu("exception").addto_method);const i=this.createView(t);i instanceof Promise?i.then((i=>{e.addTo(t,i),this.fire(kc)})):(e.addTo(t,i),this.fire(kc))}createView(t){}getControls(){}};const kB=class extends fI{constructor(t,e={}){super(),this.filterFunction_=t,this.cqlFilter_="",qL(e.cqlFilter)||(this.cqlFilter_=e.cqlFilter)}setFunction(t){this.filterFunction_=t}getFunctionFilter(){return this.filterFunction_}execute(t){return t.filter(this.filterFunction_)}toCQL(){return this.cqlFilter_}};const GB=class extends kB{constructor(t,e){super(((e,i)=>{let n=null;return qL(e)||(n=e.getGeometry()),t(n,i)}),e)}};function UB(t){return"string"==typeof t?t:""}const qB=class extends WE{constructor(){super()}getType(){return"text"}readFeature(t,e){return this.readFeatureFromText(UB(t),this.adaptOptions(e))}readFeatureFromText(t,e){return js()}readFeatures(t,e){return this.readFeaturesFromText(UB(t),this.adaptOptions(e))}readFeaturesFromText(t,e){return js()}readGeometry(t,e){return this.readGeometryFromText(UB(t),this.adaptOptions(e))}readGeometryFromText(t,e){return js()}readProjection(t){return this.readProjectionFromText(UB(t))}readProjectionFromText(t){return this.dataProjection}writeFeature(t,e){return this.writeFeatureText(t,this.adaptOptions(e))}writeFeatureText(t,e){return js()}writeFeatures(t,e){return this.writeFeaturesText(t,this.adaptOptions(e))}writeFeaturesText(t,e){return js()}writeGeometry(t,e){return this.writeGeometryText(t,this.adaptOptions(e))}writeGeometryText(t,e){return js()}},VB={POINT:qa,LINESTRING:wd,POLYGON:sl,MULTIPOINT:Id,MULTILINESTRING:bd,MULTIPOLYGON:Md},zB="EMPTY",YB="Z",jB="M",HB=0,XB=1,WB=2,KB=3,JB=4,ZB=5,$B=6,tM={Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION",Circle:"CIRCLE"};class eM{constructor(t){this.wkt=t,this.index_=-1}isAlpha_(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}isNumeric_(t,e){return e=void 0!==e&&e,t>="0"&&t<="9"||"."==t&&!e}isWhiteSpace_(t){return" "==t||"\t"==t||"\r"==t||"\n"==t}nextChar_(){return this.wkt.charAt(++this.index_)}nextToken(){const t=this.nextChar_(),e=this.index_;let i,n=t;if("("==t)i=WB;else if(","==t)i=ZB;else if(")"==t)i=KB;else if(this.isNumeric_(t)||"-"==t)i=JB,n=this.readNumber_();else if(this.isAlpha_(t))i=XB,n=this.readText_();else{if(this.isWhiteSpace_(t))return this.nextToken();if(""!==t)throw new Error("Unexpected character: "+t);i=$B}return{position:e,value:n,type:i}}readNumber_(){let t;const e=this.index_;let i=!1,n=!1;do{"."==t?i=!0:"e"!=t&&"E"!=t||(n=!0),t=this.nextChar_()}while(this.isNumeric_(t,i)||!n&&("e"==t||"E"==t)||n&&("-"==t||"+"==t));return parseFloat(this.wkt.substring(e,this.index_--))}readText_(){let t;const e=this.index_;do{t=this.nextChar_()}while(this.isAlpha_(t));return this.wkt.substring(e,this.index_--).toUpperCase()}}class iM{constructor(t){this.lexer_=t,this.token_={position:0,type:HB},this.layout_="XY"}consume_(){this.token_=this.lexer_.nextToken()}isTokenType(t){return this.token_.type==t}match(t){const e=this.isTokenType(t);return e&&this.consume_(),e}parse(){return this.consume_(),this.parseGeometry_()}parseGeometryLayout_(){let t="XY";const e=this.token_;if(this.isTokenType(XB)){const i=e.value;i===YB?t="XYZ":i===jB?t="XYM":"ZM"===i&&(t="XYZM"),"XY"!==t&&this.consume_()}return t}parseGeometryCollectionText_(){if(this.match(WB)){const t=[];do{t.push(this.parseGeometry_())}while(this.match(ZB));if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parsePointText_(){if(this.match(WB)){const t=this.parsePoint_();if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parseLineStringText_(){if(this.match(WB)){const t=this.parsePointList_();if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parsePolygonText_(){if(this.match(WB)){const t=this.parseLineStringTextList_();if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parseMultiPointText_(){if(this.match(WB)){let t;if(t=this.token_.type==WB?this.parsePointTextList_():this.parsePointList_(),this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parseMultiLineStringText_(){if(this.match(WB)){const t=this.parseLineStringTextList_();if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parseMultiPolygonText_(){if(this.match(WB)){const t=this.parsePolygonTextList_();if(this.match(KB))return t}throw new Error(this.formatErrorMessage_())}parsePoint_(){const t=[],e=this.layout_.length;for(let i=0;i0&&(n+=" "+e)}return 0===i.length?n+" "+zB:n+"("+i+")"}const lM=class extends qB{constructor(t){super(),t=t||{},this.splitCollection_=void 0!==t.splitCollection&&t.splitCollection}parse_(t){const e=new eM(t);return new iM(e).parse()}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e),n=new _d;return n.setGeometry(i),n}readFeaturesFromText(t,e){let i=[];const n=this.readGeometryFromText(t,e);i=this.splitCollection_&&"GeometryCollection"==n.getType()?n.getGeometriesArray():[n];const r=[];for(let t=0,e=i.length;tt.contains(e)))[0]),void 0===i&&(i=r.TileMatrixSetLink[0].TileMatrixSet))}return i}getMatrixIds(t,e){let i=[];const n=this.getMatrixSet(t,e),r=this.capabilities.Contents.TileMatrixSet.filter((t=>t.Identifier===n))[0];return null!=r&&r.length>0&&(i=r.TileMatrix.map((t=>t.Identifier))),i}getFormat(t){let e;const i=this.capabilities.Contents.Layer.filter((e=>e.Identifier===t))[0];return null!=i&&(e=i.Format[0]),e}getOptionsFromCapabilities(t,e){return ob(this.capabilities,{layer:t,matrixSet:e})}};class gM extends Vd{constructor(){super(),this.geojsonFormatter_=new LS,this.name="drawLayer",this.selectedFeatures_=[]}addTo(t){this.map=t,this.ol3Layer=new Sy({source:new kf({}),style:new Nm({fill:new wm({color:"rgba(0, 158, 0, 0.1)"}),stroke:new bm({color:"#fcfcfc",width:2}),image:new vm({radius:7,fill:new wm({color:"#009E00"}),stroke:new bm({color:"#fcfcfc",width:2})})}),zIndex:uf.Z_INDEX.WFS+999}),!1!==this.options.visibility&&this.setVisible(this.inRange());this.map.getMapImpl().addLayer(this.ol3Layer),this.fire(kc)}selectFeatures(t){this.selectedFeatures_=t,VL(this.selectedFeatures_[0].click)&&this.selectedFeatures_[0].click()}unselectFeatures(){this.selectedFeatures_.length>0&&(this.selectedFeatures_.length=0,this.map.removePopup())}drawPoints(t){let e=t;qL(e)&&Oc(Cu("exception").no_point),UL(e)||(e=[e]);const i=this.pointsToGeoJSON_(e);this.drawGeoJSON(i)}drawGeoJSON(t){let e=t;qL(e)&&Oc(Cu("exception").no_geojson),UL(e)||(e=[e]);const i=ee(this.map.getProjection().code);let n=[];e.forEach((t=>{const e=this.geojsonFormatter_.readFeatures(t,{dataProjection:i});n=n.concat(e)})),this.ol3Layer.getSource().addFeatures(n)}drawFeatures(t){let e=t;qL(e)||(UL(e)||(e=[e]),this.ol3Layer.getSource().addFeatures(e))}removeFeatures(t){let e=t;if(!qL(e)){UL(e)||(e=[e]);const t=this.ol3Layer.getSource();e.forEach((e=>{try{t.removeFeature(e)}catch(t){throw t}}))}}getPoints(t){let e=[];const i=this.ol3Layer.getSource();return e=qL(t)?i.getFeatures():i.getFeaturesAtCoordinate(t),this.featuresToPoints_(e)}destroy(){const t=this.map.getMapImpl();qL(this.ol3Layer)||(t.removeLayer(this.ol3Layer),this.ol3Layer=null),this.options=null,this.map=null}equals(t){let e=!1;return t instanceof gM&&(e=e&&this.name===t.name),e}pointsToGeoJSON_(t){let e=[];const i=ee(this.map.getProjection().code);return e=t.map((t=>{const e=t.data,n=new qa([t.x,t.y]);return{type:"Feature",geometry:this.geojsonFormatter_.writeGeometryObject(n,{dataProjection:i}),properties:e,click:t.click,showPopup:t.showPopup}})),e}featuresToPoints_(t){return[]}}const dM=gM,pM=34962,AM=34963,fM=35044,mM=35048,_M=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function yM(t,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!ro},e);const i=_M.length;for(let n=0;n{this.uniforms_.push({value:t.uniforms[i],location:e.getUniformLocation(this.renderTargetProgram_,i)})}))}getGL(){return this.gl_}init(t){const e=this.getGL(),i=[e.drawingBufferWidth*this.scaleRatio_,e.drawingBufferHeight*this.scaleRatio_];if(e.bindFramebuffer(e.FRAMEBUFFER,this.getFrameBuffer()),e.bindRenderbuffer(e.RENDERBUFFER,this.getDepthBuffer()),e.viewport(0,0,i[0],i[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==i[0]||this.renderTargetTextureSize_[1]!==i[1]){this.renderTargetTextureSize_=i;const t=0,n=e.RGBA,r=0,s=e.RGBA,o=e.UNSIGNED_BYTE,a=null;e.bindTexture(e.TEXTURE_2D,this.renderTargetTexture_),e.texImage2D(e.TEXTURE_2D,t,n,i[0],i[1],r,s,o,a),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.renderTargetTexture_,0),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,i[0],i[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthBuffer_)}}apply(t,e,i,n){const r=this.getGL(),s=t.size;if(r.bindFramebuffer(r.FRAMEBUFFER,e?e.getFrameBuffer():null),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.renderTargetTexture_),!e){const e=Xs(r.canvas);if(!t.renderTargets[e]){const i=r.getContextAttributes();i&&i.preserveDrawingBuffer&&(r.clearColor(0,0,0,0),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT)),t.renderTargets[e]=!0}}r.disable(r.DEPTH_TEST),r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA),r.viewport(0,0,r.drawingBufferWidth,r.drawingBufferHeight),r.bindBuffer(r.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),r.useProgram(this.renderTargetProgram_),r.enableVertexAttribArray(this.renderTargetAttribLocation_),r.vertexAttribPointer(this.renderTargetAttribLocation_,2,r.FLOAT,!1,0,0),r.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),r.uniform1i(this.renderTargetTextureLocation_,0);const o=t.layerStatesArray[t.layerIndex].opacity;r.uniform1f(this.renderTargetOpacityLocation_,o),this.applyUniforms(t),i&&i(r,t),r.drawArrays(r.TRIANGLES,0,6),n&&n(r,t)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(t){const e=this.getGL();let i,n=1;this.uniforms_.forEach((function(r){if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof ImageData)r.texture||(r.texture=e.createTexture()),e.activeTexture(e[`TEXTURE${n}`]),e.bindTexture(e.TEXTURE_2D,r.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),i instanceof ImageData?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,i.width,i.height,0,e.UNSIGNED_BYTE,new Uint8Array(i.data)):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i),e.uniform1i(r.location,n++);else if(Array.isArray(i))switch(i.length){case 2:return void e.uniform2f(r.location,i[0],i[1]);case 3:return void e.uniform3f(r.location,i[0],i[1],i[2]);case 4:return void e.uniform4f(r.location,i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(r.location,i)}))}};function SM(t,e){return t[0]=e[0],t[1]=e[1],t[4]=e[2],t[5]=e[3],t[12]=e[4],t[13]=e[5],t}const bM="u_projectionMatrix",LM="u_time",BM="u_zoom",MM="u_resolution",TM="u_rotation",RM="u_viewportSizePx",NM="u_pixelRatio",PM="u_hitDetection",FM={UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126},DM={};function OM(t){return"shared/"+t}let QM=0;function kM(t){switch(t){case FM.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case FM.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case FM.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case FM.FLOAT:default:return Float32Array.BYTES_PER_ELEMENT}}const GM=class extends ds{constructor(t){super(),t=t||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=t.canvasCacheKey?OM(t.canvasCacheKey):function(){const t="unique/"+QM;return QM+=1,t}(),this.gl_=function(t){let e=DM[t];if(!e){const i=document.createElement("canvas");i.width=1,i.height=1,i.style.position="absolute",i.style.left="0",e={users:0,context:yM(i)},DM[t]=e}return e.users+=1,e.context}(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;const e=this.gl_.canvas;e.addEventListener(vM,this.boundHandleWebGLContextLost_),e.addEventListener(xM,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=[1,0,0,1,0,0],this.offsetScaleMatrix_=[1,0,0,1,0,0],this.tmpMat4_=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],t.uniforms&&this.setUniforms(t.uniforms),this.postProcessPasses_=t.postProcesses?t.postProcesses.map((t=>new wM({webGlContext:this.gl_,scaleRatio:t.scaleRatio,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms}))):[new wM({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(t){this.uniforms_=[],this.addUniforms(t)}addUniforms(t){for(const e in t)this.uniforms_.push({name:e,value:t[e]})}canvasCacheKeyMatches(t){return this.canvasCacheKey_===OM(t)}getExtension(t){if(t in this.extensionCache_)return this.extensionCache_[t];const e=this.gl_.getExtension(t);return this.extensionCache_[t]=e,e}bindBuffer(t){const e=this.gl_,i=Xs(t);let n=this.bufferCache_[i];if(!n){n={buffer:t,webGlBuffer:e.createBuffer()},this.bufferCache_[i]=n}e.bindBuffer(t.getType(),n.webGlBuffer)}flushBufferData(t){const e=this.gl_;this.bindBuffer(t),e.bufferData(t.getType(),t.getArray(),t.getUsage())}deleteBuffer(t){const e=this.gl_,i=Xs(t),n=this.bufferCache_[i];n&&!e.isContextLost()&&e.deleteBuffer(n.webGlBuffer),delete this.bufferCache_[i]}disposeInternal(){const t=this.gl_.canvas;t.removeEventListener(vM,this.boundHandleWebGLContextLost_),t.removeEventListener(xM,this.boundHandleWebGLContextRestored_),function(t){const e=DM[t];if(!e)return;if(e.users-=1,e.users>0)return;const i=e.context,n=i.getExtension("WEBGL_lose_context");n&&n.loseContext();const r=i.canvas;r.width=1,r.height=1,delete DM[t]}(this.canvasCacheKey_),delete this.gl_}prepareDraw(t,e,i){const n=this.gl_,r=this.getCanvas(),s=t.size,o=t.pixelRatio;r.width===s[0]*o&&r.height===s[1]*o||(r.width=s[0]*o,r.height=s[1]*o,r.style.width=s[0]+"px",r.style.height=s[1]+"px");for(let e=this.postProcessPasses_.length-1;e>=0;e--)this.postProcessPasses_[e].init(t);n.bindTexture(n.TEXTURE_2D,null),n.clearColor(0,0,0,0),n.depthRange(0,1),n.clearDepth(1),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),n.enable(n.BLEND),n.blendFunc(n.ONE,e?n.ZERO:n.ONE_MINUS_SRC_ALPHA),i?(n.enable(n.DEPTH_TEST),n.depthFunc(n.LEQUAL)):n.disable(n.DEPTH_TEST)}bindTexture(t,e,i){const n=this.gl_;n.activeTexture(n.TEXTURE0+e),n.bindTexture(n.TEXTURE_2D,t),n.uniform1i(this.getUniformLocation(i),e)}prepareDrawToRenderTarget(t,e,i,n){const r=this.gl_,s=e.getSize();r.bindFramebuffer(r.FRAMEBUFFER,e.getFramebuffer()),r.bindRenderbuffer(r.RENDERBUFFER,e.getDepthbuffer()),r.viewport(0,0,s[0],s[1]),r.bindTexture(r.TEXTURE_2D,e.getTexture()),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,i?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}drawElements(t,e){const i=this.gl_;this.getExtension("OES_element_index_uint");const n=i.UNSIGNED_INT,r=e-t,s=4*t;i.drawElements(i.TRIANGLES,r,n,s)}finalizeDraw(t,e,i){for(let n=0,r=this.postProcessPasses_.length;n{if(i="function"==typeof r.value?r.value(t):r.value,i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof ImageData){r.texture||(r.prevValue=void 0,r.texture=e.createTexture()),this.bindTexture(r.texture,n,r.name),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);(!(i instanceof HTMLImageElement)||i.complete)&&r.prevValue!==i&&(r.prevValue=i,e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)),n++}else if(Array.isArray(i)&&6===i.length)this.setUniformMatrixValue(r.name,SM(this.tmpMat4_,i));else if(Array.isArray(i)&&i.length<=4)switch(i.length){case 2:return void e.uniform2f(this.getUniformLocation(r.name),i[0],i[1]);case 3:return void e.uniform3f(this.getUniformLocation(r.name),i[0],i[1],i[2]);case 4:return void e.uniform4f(this.getUniformLocation(r.name),i[0],i[1],i[2],i[3]);default:return}else"number"==typeof i&&e.uniform1f(this.getUniformLocation(r.name),i)}))}useProgram(t,e){this.gl_.useProgram(t),this.currentProgram_=t,this.applyFrameState(e),this.applyUniforms(e)}compileShader(t,e){const i=this.gl_,n=i.createShader(e);return i.shaderSource(n,t),i.compileShader(n),n}getProgram(t,e){const i=this.gl_,n=this.compileShader(t,i.FRAGMENT_SHADER),r=this.compileShader(e,i.VERTEX_SHADER),s=i.createProgram();if(i.attachShader(s,n),i.attachShader(s,r),i.linkProgram(s),!i.getShaderParameter(n,i.COMPILE_STATUS)){const t=`Fragment shader compilation failed: ${i.getShaderInfoLog(n)}`;throw new Error(t)}if(i.deleteShader(n),!i.getShaderParameter(r,i.COMPILE_STATUS)){const t=`Vertex shader compilation failed: ${i.getShaderInfoLog(r)}`;throw new Error(t)}if(i.deleteShader(r),!i.getProgramParameter(s,i.LINK_STATUS)){const t=`GL program linking failed: ${i.getProgramInfoLog(s)}`;throw new Error(t)}return s}getUniformLocation(t){const e=Xs(this.currentProgram_);return void 0===this.uniformLocationsByProgram_[e]&&(this.uniformLocationsByProgram_[e]={}),void 0===this.uniformLocationsByProgram_[e][t]&&(this.uniformLocationsByProgram_[e][t]=this.gl_.getUniformLocation(this.currentProgram_,t)),this.uniformLocationsByProgram_[e][t]}getAttributeLocation(t){const e=Xs(this.currentProgram_);return void 0===this.attribLocationsByProgram_[e]&&(this.attribLocationsByProgram_[e]={}),void 0===this.attribLocationsByProgram_[e][t]&&(this.attribLocationsByProgram_[e][t]=this.gl_.getAttribLocation(this.currentProgram_,t)),this.attribLocationsByProgram_[e][t]}makeProjectionTransform(t,e){const i=t.size,n=t.viewState.rotation,r=t.viewState.resolution,s=t.viewState.center;return Eo(e,0,0,2/(r*i[0]),2/(r*i[1]),-n,-s[0],-s[1]),e}setUniformFloatValue(t,e){this.gl_.uniform1f(this.getUniformLocation(t),e)}setUniformFloatVec2(t,e){this.gl_.uniform2fv(this.getUniformLocation(t),e)}setUniformFloatVec4(t,e){this.gl_.uniform4fv(this.getUniformLocation(t),e)}setUniformMatrixValue(t,e){this.gl_.uniformMatrix4fv(this.getUniformLocation(t),!1,e)}enableAttributeArray_(t,e,i,n,r){const s=this.getAttributeLocation(t);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,e,i,!1,n,r))}enableAttributes(t){const e=function(t){let e=0;for(let i=0;ithis.size_[0]||e>=this.size_[1])return VM[0]=0,VM[1]=0,VM[2]=0,VM[3]=0,VM;this.readAll();const i=Math.floor(t)+(this.size_[1]-Math.floor(e)-1)*this.size_[0];return VM[0]=this.data_[4*i],VM[1]=this.data_[4*i+1],VM[2]=this.data_[4*i+2],VM[3]=this.data_[4*i+3],VM}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){const t=this.size_,e=this.helper_.getGL();this.texture_=this.helper_.createTexture(t,null,this.texture_),e.bindFramebuffer(e.FRAMEBUFFER,this.framebuffer_),e.viewport(0,0,t[0],t[1]),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture_,0),e.bindRenderbuffer(e.RENDERBUFFER,this.depthbuffer_),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t[0],t[1]),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(t[0]*t[1]*4)}},YM="GENERATE_POINT_BUFFERS";i(187);function jM(t,e){const i=256,n=255;return(e=e||[])[0]=Math.floor(t/i/i/i)/n,e[1]=Math.floor(t/i/i)%i/n,e[2]=Math.floor(t/i)%i/n,e[3]=t%i/n,e}const HM=class extends qM{constructor(t,e){const i=e.uniforms||{},n=[1,0,0,1,0,0];i[bM]=n,super(t,{uniforms:i,postProcesses:e.postProcesses}),this.sourceRevision_=-1,this.verticesBuffer_=new CM(pM,mM),this.indicesBuffer_=new CM(AM,mM),this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.program_,this.hitDetectionEnabled_=e.hitDetectionEnabled??!0;const r=e.attributes?e.attributes.map((function(t){return{name:"a_"+t.name,size:1,type:FM.FLOAT}})):[];this.attributes=[{name:"a_position",size:2,type:FM.FLOAT},{name:"a_index",size:1,type:FM.FLOAT}],this.hitDetectionEnabled_&&(this.attributes.push({name:"a_hitColor",size:4,type:FM.FLOAT}),this.attributes.push({name:"a_featureUid",size:1,type:FM.FLOAT})),this.attributes.push(...r),this.customAttributes=e.attributes?e.attributes:[],this.previousExtent_=[1/0,1/0,-1/0,-1/0],this.currentTransform_=n,this.renderTransform_=[1,0,0,1,0,0],this.invertRenderTransform_=[1,0,0,1,0,0],this.renderInstructions_=new Float32Array(0),this.hitRenderTarget_,this.lastSentId=0,this.worker_=function(){const t='const e="GENERATE_POLYGON_BUFFERS",t="GENERATE_POINT_BUFFERS",n="GENERATE_LINE_STRING_BUFFERS";function r(e,t){const n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function x(e,t){const n=(r=t)[0]*r[3]-r[1]*r[2];var r;!function(e,t){if(!e)throw new Error(t)}(0!==n,"Transformation matrix cannot be inverted");const x=t[0],i=t[1],u=t[2],o=t[3],f=t[4],s=t[5];return e[0]=o/n,e[1]=-i/n,e[2]=-u/n,e[3]=x/n,e[4]=(u*s-o*f)/n,e[5]=-(x*s-i*f)/n,e}function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}new Array(6);var u={exports:{}};function o(e,t,n){n=n||2;var r,x,i,u,o,s,l,v=t&&t.length,c=v?t[0]*n:e.length,h=f(e,0,c,n,!0),g=[];if(!h||h.next===h.prev)return g;if(v&&(h=function(e,t,n,r){var x,i,u,o=[];for(x=0,i=t.length;x80*n){r=i=e[0],x=u=e[1];for(var b=n;bi&&(i=o),s>u&&(u=s);l=0!==(l=Math.max(i-r,u-x))?32767/l:0}return a(h,g,n,r,x,l,0),g}function f(e,t,n,r,x){var i,u;if(x===O(e,t,n,r)>0)for(i=t;i=t;i-=r)u=P(i,e[i],e[i+1],u);return u&&m(u,u.next)&&(B(u),u=u.next),u}function s(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!m(r,r.next)&&0!==M(r.prev,r,r.next))r=r.next;else{if(B(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function a(e,t,n,r,x,i,u){if(e){!u&&i&&function(e,t,n,r){var x=e;do{0===x.z&&(x.z=b(x.x,x.y,t,n,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==e);x.prevZ.nextZ=null,x.prevZ=null,function(e){var t,n,r,x,i,u,o,f,s=1;do{for(n=e,e=null,i=null,u=0;n;){for(u++,r=n,o=0,t=0;t0||f>0&&r;)0!==o&&(0===f||!r||n.z<=r.z)?(x=n,n=n.nextZ,o--):(x=r,r=r.nextZ,f--),i?i.nextZ=x:e=x,x.prevZ=i,i=x;n=r}i.nextZ=null,s*=2}while(u>1)}(x)}(e,r,x,i);for(var o,f,p=e;e.prev!==e.next;)if(o=e.prev,f=e.next,i?v(e,r,x,i):l(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(f.i/n|0),B(e),e=f.next,p=f.next;else if((e=f)===p){u?1===u?a(e=c(s(e),t,n),t,n,r,x,i,2):2===u&&h(e,t,n,r,x,i):a(s(e),t,n,r,x,i,1);break}}}function l(e){var t=e.prev,n=e,r=e.next;if(M(t,n,r)>=0)return!1;for(var x=t.x,i=n.x,u=r.x,o=t.y,f=n.y,s=r.y,a=xi?x>u?x:u:i>u?i:u,c=o>f?o>s?o:s:f>s?f:s,h=r.next;h!==t;){if(h.x>=a&&h.x<=v&&h.y>=l&&h.y<=c&&Z(x,o,i,f,u,s,h.x,h.y)&&M(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function v(e,t,n,r){var x=e.prev,i=e,u=e.next;if(M(x,i,u)>=0)return!1;for(var o=x.x,f=i.x,s=u.x,a=x.y,l=i.y,v=u.y,c=of?o>s?o:s:f>s?f:s,y=a>l?a>v?a:v:l>v?l:v,g=b(c,h,t,n,r),d=b(p,y,t,n,r),w=e.prevZ,m=e.nextZ;w&&w.z>=g&&m&&m.z<=d;){if(w.x>=c&&w.x<=p&&w.y>=h&&w.y<=y&&w!==x&&w!==u&&Z(o,a,f,l,s,v,w.x,w.y)&&M(w.prev,w,w.next)>=0)return!1;if(w=w.prevZ,m.x>=c&&m.x<=p&&m.y>=h&&m.y<=y&&m!==x&&m!==u&&Z(o,a,f,l,s,v,m.x,m.y)&&M(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;w&&w.z>=g;){if(w.x>=c&&w.x<=p&&w.y>=h&&w.y<=y&&w!==x&&w!==u&&Z(o,a,f,l,s,v,w.x,w.y)&&M(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;m&&m.z<=d;){if(m.x>=c&&m.x<=p&&m.y>=h&&m.y<=y&&m!==x&&m!==u&&Z(o,a,f,l,s,v,m.x,m.y)&&M(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function c(e,t,n){var r=e;do{var x=r.prev,i=r.next.next;!m(x,i)&&A(x,r,r.next,i)&&F(x,i)&&F(i,x)&&(t.push(x.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),B(r),B(r.next),r=e=i),r=r.next}while(r!==e);return s(r)}function h(e,t,n,r,x,i){var u=e;do{for(var o=u.next.next;o!==u.prev;){if(u.i!==o.i&&w(u,o)){var f=I(u,o);return u=s(u,u.next),f=s(f,f.next),a(u,t,n,r,x,i,0),void a(f,t,n,r,x,i,0)}o=o.next}u=u.next}while(u!==e)}function p(e,t){return e.x-t.x}function y(e,t){var n=function(e,t){var n,r=t,x=e.x,i=e.y,u=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var o=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(o<=x&&o>u&&(u=o,n=r.x=r.x&&r.x>=a&&x!==r.x&&Z(in.x||r.x===n.x&&g(n,r)))&&(n=r,v=f)),r=r.next}while(r!==s);return n}(e,t);if(!n)return t;var r=I(n,e);return s(r,r.next),s(n,n.next)}function g(e,t){return M(e.prev,e,t.prev)<0&&M(t.next,e,e.next)<0}function b(e,t,n,r,x){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*x|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function d(e){var t=e,n=e;do{(t.x=(e-u)*(i-o)&&(e-u)*(r-o)>=(n-u)*(t-o)&&(n-u)*(i-o)>=(x-u)*(r-o)}function w(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&A(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(F(e,t)&&F(t,e)&&function(e,t){var n=e,r=!1,x=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&x<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(M(e.prev,e,t.prev)||M(e,t.prev,t))||m(e,t)&&M(e.prev,e,e.next)>0&&M(t.prev,t,t.next)>0)}function M(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function m(e,t){return e.x===t.x&&e.y===t.y}function A(e,t,n,r){var x=z(M(e,t,n)),i=z(M(e,t,r)),u=z(M(n,r,e)),o=z(M(n,r,t));return x!==i&&u!==o||(!(0!==x||!E(e,n,t))||(!(0!==i||!E(e,r,t))||(!(0!==u||!E(n,e,r))||!(0!==o||!E(n,t,r)))))}function E(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function z(e){return e>0?1:e<0?-1:0}function F(e,t){return M(e.prev,e,e.next)<0?M(e,t,e.next)>=0&&M(e,e.prev,t)>=0:M(e,t,e.prev)<0||M(e,e.next,t)<0}function I(e,t){var n=new _(e.i,e.x,e.y),r=new _(t.i,t.x,t.y),x=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=x,x.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function P(e,t,n,r){var x=new _(e,t,n);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function B(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function _(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function O(e,t,n,r){for(var x=0,i=t,u=n-r;i0&&(r+=e[x-1].length,n.holes.push(r))}return n};var N=i(u.exports);const R=[],S={vertexPosition:0,indexPosition:0};function T(e,t,n,r,x){e[t+0]=n,e[t+1]=r,e[t+2]=x}function U(e,t,n,r,x,i){const u=3+x,o=e[t+0],f=e[t+1],s=R;s.length=x;for(let n=0;n0?f:2*Math.PI-f}let b=-1,d=-1;const Z=null!==i;if(null!==x){b=g(p,y,r(s,[...[e[x],e[x+1]]]))}if(Z){d=g(y,p,r(s,[...[e[i],e[i+1]]]))}return u.push(c[0],c[1],h[0],h[1],b,d,a,0),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,1),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,2),u.push(...f),u.push(c[0],c[1],h[0],h[1],b,d,a,3),u.push(...f),o.push(v,v+1,v+2,v+1,v+3,v+2),a+Math.sqrt((y[0]-p[0])*(y[0]-p[0])+(y[1]-p[1])*(y[1]-p[1]))}function G(e,t,n,r,x){const i=2+x;let u=t;const o=e.slice(u,u+x);u+=x;const f=e[u++];let s=0;const a=new Array(f-1);for(let t=0;t{const i=r.data;switch(i.type){case t:{const e=3,t=2,n=i.customAttributesSize,r=t+n,x=new Float32Array(i.renderInstructions),u=x.length/r,o=4*u*(n+e),f=new Uint32Array(6*u),s=new Float32Array(o);let a;for(let e=0;e0?c=o+(n-1)*r:l&&(c=i-r);let h=null;n{const e=t.data;if(e.type===YM){const i=e.projectionTransform;this.verticesBuffer_.fromArrayBuffer(e.vertexBuffer),this.helper.flushBufferData(this.verticesBuffer_),this.indicesBuffer_.fromArrayBuffer(e.indexBuffer),this.helper.flushBufferData(this.indicesBuffer_),this.renderTransform_=i,Co(this.invertRenderTransform_,this.renderTransform_),this.renderInstructions_=new Float32Array(t.data.renderInstructions),e.id===this.lastSentId&&(this.ready=!0),this.getLayer().changed()}})),this.featureCache_={},this.featureCount_=0;const s=this.getLayer().getSource();this.sourceListenKeys_=[Gs(s,bf,this.handleSourceFeatureAdded_,this),Gs(s,Lf,this.handleSourceFeatureChanged_,this),Gs(s,Mf,this.handleSourceFeatureDelete_,this),Gs(s,Bf,this.handleSourceFeatureClear_,this)],s.forEachFeature((t=>{this.featureCache_[Xs(t)]={feature:t,properties:t.getProperties(),geometry:t.getGeometry()},this.featureCount_++}))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new zM(this.helper))}handleSourceFeatureAdded_(t){const e=t.feature;this.featureCache_[Xs(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()},this.featureCount_++}handleSourceFeatureChanged_(t){const e=t.feature;this.featureCache_[Xs(e)]={feature:e,properties:e.getProperties(),geometry:e.getGeometry()}}handleSourceFeatureDelete_(t){const e=t.feature;delete this.featureCache_[Xs(e)],this.featureCount_--}handleSourceFeatureClear_(){this.featureCache_={},this.featureCount_=0}renderFrame(t){const e=this.helper.getGL();this.preRender(e,t);const[i,n,r]=this.getWorldParameters_(t);this.renderWorlds(t,!1,i,n,r),this.helper.finalizeDraw(t,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);const s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(t,!0,i,n,r),this.hitRenderTarget_.clearCachedData()),this.postRender(e,t),s}getWorldParameters_(t){const e=t.viewState.projection,i=this.getLayer().getSource().getWrapX()&&e.canWrapX(),n=e.getExtent(),r=t.extent,s=i?at(n):null,o=i?Math.ceil((r[2]-n[2])/s)+1:1;return[i?Math.floor((r[0]-n[0])/s):0,o,s]}prepareFrameInternal(t){const e=this.getLayer(),i=e.getSource(),n=t.viewState,r=!t.viewHints[Zo]&&!t.viewHints[$o],s=!z(this.previousExtent_,t.extent),o=this.sourceRevision_Promise.resolve(new Uint8Array(4)),interpolate:t.interpolate,transition:t.transition}),this.pixelRatio_=t.pixelRatio,this.gutter_=t.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=t.sourceTileGrid,this.targetTileGrid_=t.targetTileGrid,this.wrappedTileCoord_=t.wrappedTileCoord||t.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;const e=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),i=this.targetTileGrid_.getExtent();let n=this.sourceTileGrid_.getExtent();const r=i?rt(e,i):e;if(0===K(r))return void(this.state=bh);const s=t.sourceProj,o=s.getExtent();o&&(n=n?rt(n,o):o);const a=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),l=t.targetProj,h=Vg(s,l,r,a);if(!isFinite(h)||h<=0)return void(this.state=bh);const c=void 0!==t.errorThreshold?t.errorThreshold:.5;if(this.triangulation_=new Og(s,l,r,n,h*c,a),0===this.triangulation_.getTriangles().length)return void(this.state=bh);this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let u=this.triangulation_.calculateSourceExtent();if(n&&(s.canWrapX()?(u[1]=dt(u[1],n[1],n[3]),u[3]=dt(u[3],n[1],n[3])):u=rt(u,n)),K(u)){const e=this.sourceTileGrid_.getTileRangeForExtentAndZ(u,this.sourceZ_),i=t.getTileFunction;for(let t=e.minX;t<=e.maxX;t++)for(let n=e.minY;n<=e.maxY;n++){const e=i(this.sourceZ_,t,n,this.pixelRatio_);e&&this.sourceTiles_.push(e)}0===this.sourceTiles_.length&&(this.state=bh)}else this.state=bh}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){const t=[];if(this.sourceTiles_.forEach((e=>{if(!e||e.getState()!==wh)return;const i=e.getSize(),n=this.gutter_;let r;const s=KM(e.getData());r=s||function(t){JM||(JM=bl(t.width,t.height,void 0,{willReadFrequently:!0}));const e=JM.canvas,i=t.width;e.width!==i&&(e.width=i);const n=t.height;return e.height!==n&&(e.height=n),JM.clearRect(0,0,i,n),JM.drawImage(t,0,0),JM.getImageData(0,0,i,n).data}(WM(e.getData()));const o=[i[0]+2*n,i[1]+2*n],a=r instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=new h(r.buffer),u=h.BYTES_PER_ELEMENT,g=u*c.length/l,d=c.byteLength/o[1],p=Math.floor(d/u/o[0]),A=l*p;let f=c;if(c.length!==A){f=new h(A);let t=0,e=0;const i=o[0]*p;for(let n=0;n=0;--e){const i=[];for(let n=0,r=t.length;n{const i=e.getState();if(i!==vh&&i!==xh)return;t++;const n=Gs(e,bs,(function(){const i=e.getState();i!=wh&&i!=Sh&&i!=bh||(qs(n),t--,0===t&&(this.unlistenSources_(),this.reproject_()))}),this);this.sourcesListenerKeys_.push(n)})),0===t?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach((function(t){t.getState()==vh&&t.load()}))}unlistenSources_(){this.sourcesListenerKeys_.forEach(qs),this.sourcesListenerKeys_=null}};const eT=class extends Ss{constructor(t){super(),this.tile,this.handleTileChange_=this.handleTileChange_.bind(this),this.gutter_=t.gutter||0,this.helper_=t.helper,this.loaded=!1,this.ready=!1}setTile(t){if(t!==this.tile)if(this.tile&&this.tile.removeEventListener(bs,this.handleTileChange_),this.tile=t,this.loaded=t.getState()===wh,this.loaded)this.uploadTile();else{if(t instanceof Dg){const e=t.getImage();e instanceof Image&&!e.crossOrigin&&(e.crossOrigin="anonymous")}t.addEventListener(bs,this.handleTileChange_)}}uploadTile(){js()}setReady(){this.ready=!0,this.dispatchEvent(bs)}handleTileChange_(){this.tile.getState()===wh&&(this.loaded=!0,this.uploadTile())}disposeInternal(){this.tile.removeEventListener(bs,this.handleTileChange_)}};function iT(t,e,i){const n=i?t.LINEAR:t.NEAREST;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n)}function nT(t,e,i,n,r,s){const o=t.getGL();let a,l;if(i instanceof Float32Array){a=o.FLOAT,t.getExtension("OES_texture_float");l=null!==t.getExtension("OES_texture_float_linear")}else a=o.UNSIGNED_BYTE,l=!0;iT(o,e,s&&l);const h=i.byteLength/n[1];let c,u=1;switch(h%8==0?u=8:h%4==0?u=4:h%2==0&&(u=2),r){case 1:c=o.LUMINANCE;break;case 2:c=o.LUMINANCE_ALPHA;break;case 3:c=o.RGB;break;case 4:c=o.RGBA;break;default:throw new Error(`Unsupported number of bands: ${r}`)}const g=o.getParameter(o.UNPACK_ALIGNMENT);o.pixelStorei(o.UNPACK_ALIGNMENT,u),o.texImage2D(o.TEXTURE_2D,0,c,n[0],n[1],0,c,a,i),o.pixelStorei(o.UNPACK_ALIGNMENT,g)}let rT=null;const sT=class extends eT{constructor(t){super(t),this.textures=[],this.renderSize_=xc(t.grid.getTileSize(t.tile.tileCoord[0])),this.bandCount=NaN;const e=new CM(pM,fM);e.fromArray([0,1,1,1,1,0,0,0]),this.helper_.flushBufferData(e),this.coords=e,this.setTile(t.tile)}uploadTile(){const t=this.helper_,e=t.getGL(),i=this.tile;let n;this.textures.length=0,n=i instanceof Dg||i instanceof Yg?i.getImage():i.getData();const r=WM(n);if(r){const t=e.createTexture();return this.textures.push(t),this.bandCount=4,function(t,e,i,n){iT(t,e,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,i)}(e,t,r,i.interpolate),void this.setReady()}n=KM(n);const s=i.getSize(),o=[s[0]+2*this.gutter_,s[1]+2*this.gutter_],a=n instanceof Float32Array,l=o[0]*o[1],h=a?Float32Array:Uint8Array,c=h.BYTES_PER_ELEMENT,u=n.byteLength/o[1];this.bandCount=Math.floor(u/c/o[0]);const g=Math.ceil(this.bandCount/4);if(1===g){const r=e.createTexture();return this.textures.push(r),nT(t,r,n,o,this.bandCount,i.interpolate),void this.setReady()}const d=new Array(g);for(let t=0;t=p;--r){const i=l.getTileRangeForExtentAndZ(e,r,this.tempTileRange_),o=l.getResolution(r);for(let e=i.minX;e<=i.maxX;++e)for(let d=i.minY;d<=i.maxY;++d){const i=td(r,e,d,this.tempTileCoord_),p=cT(a,i);let A,f;if(g.containsKey(p)&&(A=g.get(p),f=A.tile),A&&A.tile.key===a.getKey()||(f=a.getTile(r,e,d,t.pixelRatio,s.projection)),aT(n,f))continue;if(A)if(this.isDrawableTile_(f))A.setTile(f);else{const t=f.getInterimTile();A.setTile(t)}else A=this.createTileRepresentation({tile:f,grid:l,helper:this.helper,gutter:h}),g.set(p,A);lT(n,A,r);const m=f.getKey();u[m]=!0,f.getState()===vh&&(t.tileQueue.isKeyQueued(m)||t.tileQueue.enqueue([f,c,l.getTileCoordCenter(i),o]))}}}beforeTilesRender(t,e){this.helper.prepareDraw(this.frameState,!e,!0)}renderTile(t,e,i,n,r,s,o,a,l,h,c){}drawTile_(t,e,i,n,r,s,o){if(!e.loaded)return;const a=e.tile.tileCoord,l=id(a),h=l in s?s[l]:1,c=o.getResolution(i),u=xc(o.getTileSize(i),this.tempSize_),g=o.getOrigin(i),d=o.getTileCoordExtent(a),p=h<1?-1:1/(i+2);h<1&&(t.animate=!0);const A=t.viewState,f=A.center[0],m=A.center[1],_=u[0]+2*n,y=u[1]+2*n,I=_/y,E=(f-g[0])/(u[0]*c),C=(g[1]-m)/(u[1]*c),v=A.resolution/c,x=a[1],w=a[2];Ao(this.tileTransform_),yo(this.tileTransform_,2/(t.size[0]*v/_),-2/(t.size[1]*v/_)),function(t,e){const i=Math.cos(e),n=Math.sin(e);fo(t,mo(po,i,n,-n,i,0,0))}(this.tileTransform_,A.rotation),yo(this.tileTransform_,1,1/I),Io(this.tileTransform_,(u[0]*(x-E)-n)/_,(u[1]*(w-C)-n)/y),this.renderTile(e,this.tileTransform_,t,r,c,u,g,d,p,n,h)}renderFrame(t){this.frameState=t,this.renderComplete=!0;const e=this.helper.getGL();this.preRender(e,t);const i=t.viewState,n=this.getLayer(),r=n.getRenderSource(),s=r.getTileGridForProjection(i.projection),o=r.getGutterForProjection(i.projection),a=hT(t,t.extent),l=s.getZForResolution(i.resolution,r.zDirection),h={tileIds:new Set,representationsByZ:{}},c=n.getPreload();if(t.nextExtent){const e=s.getZForResolution(i.nextResolution,r.zDirection),n=hT(t,t.nextExtent);this.enqueueTiles(t,n,e,h,c)}this.enqueueTiles(t,a,l,h,0),c>0&&setTimeout((()=>{this.enqueueTiles(t,a,l-1,h,c-1)}),0);const u={},g=Xs(this),d=t.time;let p=!1;for(const t of h.representationsByZ[l]){const e=t.tile;if((e instanceof Yg||e instanceof tT)&&e.getState()===bh)continue;const i=e.tileCoord;if(t.loaded){const t=e.getAlpha(g,d);if(1===t){e.endTransition(g);continue}p=!0;u[id(i)]=t}this.renderComplete=!1;if(this.findAltTiles_(s,i,l+1,h))continue;const n=s.getMinZoom();for(let t=l-1;t>=n;--t){if(this.findAltTiles_(s,i,t,h))break}}this.beforeTilesRender(t,p);const A=h.representationsByZ,f=Object.keys(A).map(Number).sort(As);for(let e=0,i=f.length;et.dispose())),t.clear()}removeHelper(){this.helper&&this.clearCache(),super.removeHelper()}disposeInternal(){super.disposeInternal(),delete this.frameState}},gT={TILE_TRANSFORM:"u_tileTransform",TRANSITION_ALPHA:"u_transitionAlpha",DEPTH:"u_depth",RENDER_EXTENT:"u_renderExtent",RESOLUTION:"u_resolution",ZOOM:"u_zoom",GLOBAL_ALPHA:"u_globalAlpha",PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},dT="a_textureCoord",pT=[{name:dT,size:2,type:FM.FLOAT}];const AT=class extends uT{constructor(t,e){super(t,e),this.program_,this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.indices_=new CM(AM,fM),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=e.paletteTextures||[]}reset(t){super.reset(t),this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.helper&&(this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_))}afterHelperCreated(){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}createTileRepresentation(t){return new sT(t)}beforeTilesRender(t,e){super.beforeTilesRender(t,e),this.helper.useProgram(this.program_,t)}renderTile(t,e,i,n,r,s,o,a,l,h,c){const u=this.helper.getGL();this.helper.bindBuffer(t.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(pT);let g=0;for(;g0&&(y=a,rt(y,n,y)),this.helper.setUniformFloatVec4(gT.RENDER_EXTENT,y),this.helper.setUniformFloatValue(gT.RESOLUTION,d.resolution),this.helper.setUniformFloatValue(gT.ZOOM,d.zoom),this.helper.setUniformFloatValue(gT.TEXTURE_PIXEL_WIDTH,p),this.helper.setUniformFloatValue(gT.TEXTURE_PIXEL_HEIGHT,A),this.helper.setUniformFloatValue(gT.TEXTURE_RESOLUTION,r),this.helper.setUniformFloatValue(gT.TEXTURE_ORIGIN_X,o[0]+m*s[0]*r-h*r),this.helper.setUniformFloatValue(gT.TEXTURE_ORIGIN_Y,o[1]-_*s[1]*r+h*r),this.helper.drawElements(0,this.indices_.getSize())}getData(t){if(!this.helper.getGL())return null;const e=this.frameState;if(!e)return null;const i=this.getLayer(),n=_o(e.pixelToCoordinateTransform,t.slice()),r=e.viewState,s=i.getExtent();if(s&&!F(_e(s,r.projection),n))return null;const o=i.getSources(T([n]),r.resolution);let a,l,h;for(a=o.length-1;a>=0;--a)if(l=o[a],"ready"===l.getState()){if(h=l.getTileGridForProjection(r.projection),l.getWrapX())break;const t=h.getExtent();if(!t||F(t,n))break}if(a<0)return null;const c=this.tileRepresentationCache;for(let t=h.getZForResolution(r.resolution);t>=h.getMinZoom();--t){const e=h.getTileCoordForCoordAndZ(n,t),i=cT(l,e);if(!c.containsKey(i))continue;const r=c.get(i),s=r.tile;if((s instanceof Yg||s instanceof tT)&&s.getState()===bh)return null;if(!r.loaded)continue;const o=h.getOrigin(t),a=xc(h.getTileSize(t)),u=h.getResolution(t),g=(n[0]-o[0])/u-e[1]*a[0],d=(o[1]-n[1])/u-e[2]*a[1];return r.getPixelData(g,d)}return null}disposeInternal(){const t=this.helper;if(t){t.getGL().deleteProgram(this.program_),delete this.program_,t.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},fT={NUMBER:1,STRING:2,COLOR:4,BOOLEAN:8,NUMBER_ARRAY:16,ANY:31,NONE:0};const mT={};function _T(t){if("number"==typeof t)return fT.NUMBER;if("boolean"==typeof t)return fT.BOOLEAN;if("string"==typeof t)return e=t,So.test(e)&&(e=Lo(e)),wo.test(e)||e.startsWith("rgba(")||e.startsWith("rgb(")?fT.COLOR|fT.STRING:fT.STRING;var e;if(!Array.isArray(t))throw new Error(`Unhandled value type: ${JSON.stringify(t)}`);const i=t;if(i.every((function(t){return"number"==typeof t})))return 3===i.length||4===i.length?fT.COLOR|fT.NUMBER_ARRAY:fT.NUMBER_ARRAY;if("string"!=typeof i[0])throw new Error(`Expected an expression operator but received: ${JSON.stringify(i)}`);const n=mT[i[0]];if(void 0===n)throw new Error(`Unrecognized expression operator: ${JSON.stringify(i)}`);return n.getReturnType(i.slice(1))}function yT(t){const e=[];return(t&fT.NUMBER)>0&&e.push("number"),(t&fT.COLOR)>0&&e.push("color"),(t&fT.BOOLEAN)>0&&e.push("boolean"),(t&fT.NUMBER_ARRAY)>0&&e.push("number[]"),(t&fT.STRING)>0&&e.push("string"),e.length>0?e.join(", "):"(no type)"}function IT(t){const e=t.toString();return e.includes(".")?e:e+".0"}function ET(t){if(t.length<2||t.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${t.length}(${t.map(IT).join(", ")})`}function CT(t){const e=Mo(t),i=e.length>3?e[3]:1;return ET([e[0]/255*i,e[1]/255*i,e[2]/255*i,i])}const vT={};let xT=0;function wT(t){return t in vT||(vT[t]=xT++),vT[t]}function ST(t){return IT(wT(t))}function bT(t,e,i){const n=void 0!==i?i:fT.NUMBER;if(Array.isArray(e)&&"string"==typeof e[0]){const i=mT[e[0]];if(void 0===i)throw new Error(`Unrecognized expression operator: ${JSON.stringify(e)}`);return i.toGlsl(t,e.slice(1),n)}const r=_T(e)&n;if(DT(e,r,""),(r&fT.NUMBER)>0)return IT(e);if((r&fT.BOOLEAN)>0)return e.toString();if((r&fT.STRING)>0)return ST(e.toString());if((r&fT.COLOR)>0)return CT(e);if((r&fT.NUMBER_ARRAY)>0)return ET(e);throw new Error(`Unexpected expression ${e} (expected type ${yT(n)})`)}function LT(t){if(!(_T(t)&fT.NUMBER))throw new Error(`A numeric value was expected, got ${JSON.stringify(t)} instead`)}function BT(t){for(let e=0;ee)throw new Error(`At most ${e} arguments were expected, got ${t.length} instead`)}function FT(t){if(t.length%2!=0)throw new Error(`An even amount of arguments was expected, got ${JSON.stringify(t)} instead`)}function DT(t,e,i){if(e===fT.NONE)throw new Error(`No matching type was found for the following expression ${i}: ${JSON.stringify(t)}`)}function OT(t,e,i){if(DT(t,e,i),n=e,Math.log2(n)%1!=0)throw new Error(`Expected to have a unique type for the following expression ${i}: ${JSON.stringify(t)}\nGot the following types instead: ${yT(e)}`);var n}function QT(t,e,i,n){if((e&i)===fT.NONE)throw new Error(`Expected the ${n} type of the following expression: ${JSON.stringify(t)} to be of the following types: ${yT(i)}\nGot these types instead: ${yT(e)}`)}function kT(t){return"u_var_"+t}mT.get={getReturnType:function(t){if(2===t.length){return function(t){switch(t){case"string":return fT.STRING;case"color":return fT.COLOR;case"number":return fT.NUMBER;case"boolean":return fT.BOOLEAN;case"number[]":return fT.NUMBER_ARRAY;default:throw new Error(`Unrecognized type hint: ${t}`)}}(t[1])}return fT.ANY},toGlsl:function(t,e,i){NT(e,1),PT(e,2),MT(e[0]);const n=i&mT.get.getReturnType(e);OT(["get",...e],n,"");const r=e[0].toString(),s=t.attributes.find((t=>t.name===r));if(s){if(n!==s.type)throw new Error(`The following attribute was used in different places with incompatible types: ${r}\nTypes were: ${yT(s.type)} and ${yT(n)}`)}else t.attributes.push({name:r,type:n});return(t.inFragmentShader?"v_":"a_")+r}},mT.var={getReturnType:function(){return fT.ANY},toGlsl:function(t,e,i){RT(e,1),MT(e[0]);const n=e[0].toString();if(!t.style.variables||void 0===t.style.variables[n])throw new Error(`The following variable is missing from the style: ${n}`);const r=i&_T(t.style.variables[n]);OT(["var",...e],r,"");const s=t.variables.find((t=>t.name===n));if(s){if(r!==s.type)throw new Error(`The following variable was used in different places with incompatible types: ${n}\nTypes were: ${yT(s.type)} and ${yT(r)}`)}else t.variables.push({name:n,type:r});return kT(n)}};const GT="u_paletteTextures";mT.palette={getReturnType:function(){return fT.COLOR},toGlsl:function(t,e){RT(e,2),LT(e[0]);const i=bT(t,e[0]),n=e[1];if(!Array.isArray(n))throw new Error("The second argument of palette must be an array");const r=n.length,s=new Uint8Array(4*r);for(let t=0;tbT(e,t,fT.BOOLEAN))).join(` ${t} `);return n=`(${n})`,n}}}mT.band={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){NT(e,1),PT(e,3);const i=e[0];if(!(UT in t.functions)){let e="";const i=t.bandCount||1;for(let t=0;t{const e=t.getType();switch(e){case"Point":case"LineString":case"Polygon":return e;case"MultiPoint":case"MultiLineString":case"MultiPolygon":return e.substring(5);case"Circle":return"Polygon";case"GeometryCollection":return n(t.getGeometries()[0])}};t.attributes.find((t=>t.name===i))||t.attributes.push({name:i,type:fT.STRING,callback:t=>n(t.getGeometry())});return(t.inFragmentShader?"v_":"a_")+i}},mT["*"]={getReturnType:function(t){let e=fT.NUMBER|fT.COLOR;for(let i=0;ibT(t,e,n))).join(" * ")})`}},mT["/"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} / ${bT(t,e[1])})`}},mT["+"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return NT(e,2),BT(e),`(${e.map((e=>bT(t,e))).join(" + ")})`}},mT["-"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} - ${bT(t,e[1])})`}},mT.clamp={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){RT(e,3),BT(e);const i=bT(t,e[1]),n=bT(t,e[2]);return`clamp(${bT(t,e[0])}, ${i}, ${n})`}},mT["%"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),BT(e),`mod(${bT(t,e[0])}, ${bT(t,e[1])})`}},mT["^"]={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,2),BT(e),`pow(${bT(t,e[0])}, ${bT(t,e[1])})`}},mT.abs={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`abs(${bT(t,e[0])})`}},mT.floor={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`floor(${bT(t,e[0])})`}},mT.round={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`floor(${bT(t,e[0])} + 0.5)`}},mT.ceil={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`ceil(${bT(t,e[0])})`}},mT.sin={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`sin(${bT(t,e[0])})`}},mT.cos={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`cos(${bT(t,e[0])})`}},mT.atan={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return NT(e,1),PT(e,2),BT(e),2===e.length?`atan(${bT(t,e[0])}, ${bT(t,e[1])})`:`atan(${bT(t,e[0])})`}},mT.sqrt={getReturnType:function(){return fT.NUMBER},toGlsl:function(t,e){return RT(e,1),BT(e),`sqrt(${bT(t,e[0])})`}},mT[">"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} > ${bT(t,e[1])})`}},mT[">="]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} >= ${bT(t,e[1])})`}},mT["<"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} < ${bT(t,e[1])})`}},mT["<="]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,2),BT(e),`(${bT(t,e[0])} <= ${bT(t,e[1])})`}},mT["=="]=qT("=="),mT["!="]=qT("!="),mT["!"]={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){return RT(e,1),TT(e[0]),`(!${bT(t,e[0],fT.BOOLEAN)})`}},mT.all=VT("&&"),mT.any=VT("||"),mT.between={getReturnType:function(){return fT.BOOLEAN},toGlsl:function(t,e){RT(e,3),BT(e);const i=bT(t,e[1]),n=bT(t,e[2]),r=bT(t,e[0]);return`(${r} >= ${i} && ${r} <= ${n})`}},mT.array={getReturnType:function(){return fT.NUMBER_ARRAY},toGlsl:function(t,e){NT(e,2),PT(e,4),BT(e);const i=e.map((function(e){return bT(t,e)}));return`vec${e.length}(${i.join(", ")})`}},mT.color={getReturnType:function(){return fT.COLOR},toGlsl:function(t,e){NT(e,3),PT(e,4),BT(e);const i=e.slice(0,3).map((e=>`${bT(t,e)} / 255.0`));if(3===e.length)return`vec4(${i.join(", ")}, 1.0)`;return`(${bT(t,e[3])} * vec4(${i.join(", ")}, 1.0))`}},mT.interpolate={getReturnType:function(t){let e=fT.COLOR|fT.NUMBER;for(let i=3;i=1;i-=2){a=`(${s} == ${bT(t,e[i],n)} ? ${bT(t,e[i+1],r)} : ${a||o})`}return a}},mT.case={getReturnType:function(t){let e=fT.ANY;for(let i=1;i=0;i-=2){s=`(${bT(t,e[i],fT.BOOLEAN)} ? ${bT(t,e[i+1],n)} : ${s||r})`}return s}},mT.in={getReturnType:function(t){return fT.BOOLEAN},toGlsl:function(t,e){RT(e,2);const i=e[0];let n=e[1];if(!Array.isArray(n))throw new Error('The "in" operator expects an array literal as its second argument.');if("string"==typeof n[0]){if("literal"!==n[0])throw new Error('For the "in" operator, a string array should be wrapped in a "literal" operator to disambiguate from expressions.');if(!Array.isArray(n[1]))throw new Error('The "in" operator was provided a literal value which was not an array as second argument.');n=n[1]}let r=_T(i);for(let t=0;t 0) {\n if (gl_FragColor.a < 0.05) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getStrokeVertexShader(){return this.hasStroke_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute float a_index;\nattribute vec2 a_segmentStart;\nattribute vec2 a_segmentEnd;\nattribute float a_parameters;\nattribute float a_distance;\nattribute vec2 a_joinAngles;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvec2 worldToPx(vec2 worldPos) {\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\n}\n\nvec4 pxToScreen(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return vec4(screenPos, 0.0, 1.0);\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nvec2 getJoinOffsetDirection(vec2 normalPx, float joinAngle) {\n float halfAngle = joinAngle / 2.0;\n float c = cos(halfAngle);\n float s = sin(halfAngle);\n vec2 angleBisectorNormal = vec2(s * normalPx.x + c * normalPx.y, -c * normalPx.x + s * normalPx.y);\n float length = 1.0 / s;\n return angleBisectorNormal * length;\n}\n\nvec2 getOffsetPoint(vec2 point, vec2 normal, float joinAngle, float offsetPx) {\n // if on a cap or the join angle is too high, offset the line along the segment normal\n if (cos(joinAngle) > 0.998 || isCap(joinAngle)) {\n return point - normal * offsetPx;\n }\n // offset is applied along the inverted normal (positive offset goes "right" relative to line direction)\n return point - getJoinOffsetDirection(normal, joinAngle) * offsetPx;\n}\n\nvoid main(void) {\n v_angleStart = a_joinAngles.x;\n v_angleEnd = a_joinAngles.y;\n float vertexNumber = a_parameters;\n\n float lineWidth = ${this.strokeWidthExpression_};\n float lineOffsetPx = ${this.strokeOffsetExpression_};\n\n // compute segment start/end in px with offset\n vec2 segmentStartPx = worldToPx(a_segmentStart);\n vec2 segmentEndPx = worldToPx(a_segmentEnd);\n vec2 tangentPx = normalize(segmentEndPx - segmentStartPx);\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\n segmentStartPx = getOffsetPoint(segmentStartPx, normalPx, v_angleStart, lineOffsetPx),\n segmentEndPx = getOffsetPoint(segmentEndPx, normalPx, v_angleEnd, lineOffsetPx);\n \n // compute current vertex position\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\n vec2 joinDirection;\n vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx;\n // if angle is too high, do not make a proper join\n if (cos(angle) > 0.985 || isCap(angle)) {\n joinDirection = normalPx * normalDir - tangentPx * tangentDir;\n } else {\n joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle);\n }\n positionPx = positionPx + joinDirection * lineWidth * 0.5;\n gl_Position = pxToScreen(positionPx);\n\n v_segmentStart = segmentStartPx;\n v_segmentEnd = segmentEndPx;\n v_width = lineWidth;\n v_hitColor = a_hitColor;\n v_distanceOffsetPx = a_distance / u_resolution;\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec2 v_segmentStart;\nvarying vec2 v_segmentEnd;\nvarying float v_angleStart;\nvarying float v_angleEnd;\nvarying float v_width;\nvarying vec4 v_hitColor;\nvarying float v_distanceOffsetPx;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\n\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nbool isCap(float joinAngle) {\n return joinAngle < -0.1;\n}\n\nfloat segmentDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n vec2 tangent = normalize(end - start);\n vec2 normal = vec2(-tangent.y, tangent.x);\n vec2 startToPoint = point - start;\n return abs(dot(startToPoint, normal)) - width * 0.5;\n}\n\nfloat buttCapDistanceField(vec2 point, vec2 start, vec2 end) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n return dot(startToPoint, -tangent);\n}\n\nfloat squareCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return buttCapDistanceField(point, start, end) - width * 0.5;\n}\n\nfloat roundCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n float onSegment = max(0., 1000. * dot(point - start, end - start)); // this is very high when inside the segment\n return length(point - start) - width * 0.5 - onSegment;\n}\n\nfloat roundJoinDistanceField(vec2 point, vec2 start, vec2 end, float width) {\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n vec2 startToPoint = point - start;\n vec2 tangent = normalize(end - start);\n float c = cos(joinAngle * 0.5);\n float s = sin(joinAngle * 0.5);\n float direction = -sign(sin(joinAngle));\n vec2 bisector = vec2(c * tangent.x - s * tangent.y, s * tangent.x + c * tangent.y);\n float radius = width * 0.5 * s;\n return dot(startToPoint, bisector * direction) - radius;\n}\n\nfloat miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\n if (cos(joinAngle) > 0.985) { // avoid risking a division by zero\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n float miterLength = 1. / sin(joinAngle * 0.5);\n float miterLimit = ${this.strokeMiterLimitExpression_};\n if (miterLength > miterLimit) {\n return bevelJoinField(point, start, end, width, joinAngle);\n }\n return -1000.;\n}\n\nfloat capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) {\n if (capType == ${ST("butt")}) {\n return buttCapDistanceField(point, start, end);\n } else if (capType == ${ST("square")}) {\n return squareCapDistanceField(point, start, end, width);\n }\n return roundCapDistanceField(point, start, end, width);\n}\n\nfloat joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) {\n if (joinType == ${ST("bevel")}) {\n return bevelJoinField(point, start, end, width, joinAngle);\n } else if (joinType == ${ST("miter")}) {\n return miterJoinDistanceField(point, start, end, width, joinAngle);\n }\n return roundJoinDistanceField(point, start, end, width);\n}\n\nfloat computeSegmentPointDistance(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float capType, float joinType) {\n if (isCap(joinAngle)) {\n return capDistanceField(point, start, end, width, capType);\n }\n return joinDistanceField(point, start, end, width, joinAngle, joinType);\n}\n\nvoid main(void) {\n vec2 currentPoint = gl_FragCoord.xy / u_pixelRatio;\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 v_worldPos = pxToWorld(currentPoint);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n v_worldPos[0] < u_renderExtent[0] ||\n v_worldPos[1] < u_renderExtent[1] ||\n v_worldPos[0] > u_renderExtent[2] ||\n v_worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n\n float segmentLength = length(v_segmentEnd - v_segmentStart);\n vec2 segmentTangent = (v_segmentEnd - v_segmentStart) / segmentLength;\n vec2 segmentNormal = vec2(-segmentTangent.y, segmentTangent.x);\n vec2 startToPoint = currentPoint - v_segmentStart;\n float currentLengthPx = max(0., min(dot(segmentTangent, startToPoint), segmentLength)) + v_distanceOffsetPx; \n float currentRadiusPx = abs(dot(segmentNormal, startToPoint));\n vec4 color = ${this.strokeColorExpression_} * u_globalAlpha;\n float capType = ${this.strokeCapExpression_};\n float joinType = ${this.strokeJoinExpression_};\n float segmentStartDistance = computeSegmentPointDistance(currentPoint, v_segmentStart, v_segmentEnd, v_width, v_angleStart, capType, joinType);\n float segmentEndDistance = computeSegmentPointDistance(currentPoint, v_segmentEnd, v_segmentStart, v_width, v_angleEnd, capType, joinType);\n float distance = max(\n segmentDistanceField(currentPoint, v_segmentStart, v_segmentEnd, v_width),\n max(segmentStartDistance, segmentEndDistance)\n );\n distance = max(distance, ${this.strokeDistanceFieldExpression_});\n gl_FragColor = color * smoothstep(0., -1., distance);\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}getFillVertexShader(){return this.hasFill_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nattribute vec2 a_position;\nattribute vec4 a_hitColor;\n${this.attributes_.map((function(t){return"attribute "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.vertexShaderFunctions_.join("\n")}\nvoid main(void) {\n gl_Position = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\n${this.varyings_.map((function(t){return" "+t.name+" = "+t.expression+";"})).join("\n")}\n}`:null}getFillFragmentShader(){return this.hasFill_?`${zT}\n${this.uniforms_.map((function(t){return"uniform "+t+";"})).join("\n")}\nvarying vec4 v_hitColor;\n${this.varyings_.map((function(t){return"varying "+t.type+" "+t.name+";"})).join("\n")}\n${this.fragmentShaderFunctions_.join("\n")}\nvec2 pxToWorld(vec2 pxPos) {\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\n}\n\nvoid main(void) {\n #ifdef GL_FRAGMENT_PRECISION_HIGH\n vec2 v_worldPos = pxToWorld(gl_FragCoord.xy / u_pixelRatio);\n if (\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\n v_worldPos[0] < u_renderExtent[0] ||\n v_worldPos[1] < u_renderExtent[1] ||\n v_worldPos[0] > u_renderExtent[2] ||\n v_worldPos[1] > u_renderExtent[3]\n )\n ) {\n discard;\n }\n #endif\n if (${this.discardExpression_}) { discard; }\n gl_FragColor = ${this.fillColorExpression_} * u_globalAlpha;\n if (u_hitDetection > 0) {\n if (gl_FragColor.a < 0.1) { discard; };\n gl_FragColor = v_hitColor;\n }\n}`:null}}const HT="blur",XT="gradient",WT="radius",KT=["#00f","#0ff","#0f0","#ff0","#f00"];const JT=class extends Y_{constructor(t){t=t||{};const e=Object.assign({},t);delete e.gradient,delete e.radius,delete e.blur,delete e.weight,super(e),this.gradient_=null,this.addChangeListener(XT,this.handleGradientChanged_),this.setGradient(t.gradient?t.gradient:KT),this.setBlur(void 0!==t.blur?t.blur:15),this.setRadius(void 0!==t.radius?t.radius:8);const i=t.weight?t.weight:"weight";this.weightFunction_="string"==typeof i?function(t){return t.get(i)}:i,this.setRenderOrder(null)}getBlur(){return this.get(HT)}getGradient(){return this.get(XT)}getRadius(){return this.get(WT)}handleGradientChanged_(){this.gradient_=function(t){const e=1,i=256,n=bl(e,i),r=n.createLinearGradient(0,0,e,i),s=1/(t.length-1);for(let e=0,i=t.length;e{const e=this.weightFunction_(t);return void 0!==e?dt(e,0,1):1}}],uniforms:{u_size:()=>2*(this.get(WT)+this.get(HT)),u_blurSlope:()=>this.get(WT)/Math.max(1,this.get(HT))},hitDetectionEnabled:!0,vertexShader:t.getSymbolVertexShader(),fragmentShader:t.getSymbolFragmentShader(),postProcesses:[{fragmentShader:"\n precision mediump float;\n\n uniform sampler2D u_image;\n uniform sampler2D u_gradientTexture;\n uniform float u_opacity;\n\n varying vec2 v_texCoord;\n\n void main() {\n vec4 color = texture2D(u_image, v_texCoord);\n gl_FragColor.a = color.a * u_opacity;\n gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb;\n gl_FragColor.rgb *= gl_FragColor.a;\n }",uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}renderDeclutter(){}};const ZT=class extends JT{constructor(t={}){super(t);const e=t.weight?t.weight:"weight";let i;if("string"==typeof e){let n=1;const r=this.getWeights(t);r.length>0?(n=r.reduce(((t,e)=>Math.max(t,e))),this.maxWeight_=n,this.minWeight_=r.reduce(((t,e)=>Math.min(t,e))),i=t=>{let i;return t instanceof _d?i=t.get(e):t instanceof DB&&(i=t.getAttribute(e)),parseFloat(i/n)}):dI(`La capa de nombre ${t.name} no tiene ninguna feature
    \n con el atributo especificado en simbología establecida.\n
    Se setea una ponderación por defecto`,"Mapa de calor")}else i=e;this.setStyle(((t,e)=>{const n=um.getValue(i,t),r=void 0!==n?dt(n,0,1):1,s=255*r||0;let o=this.styleCache_[s];return o||(o=[new Nm({image:new Hf({opacity:r,src:this.circleImage_})})],this.styleCache_[s]=o),o}))}getMinWeight(){return this.minWeight_}getMaxWeight(){return this.maxWeight_}getWeights(t){let e=[];const i=this.getSource();if(null!==i){const n=i.getFeatures();n.length>0&&(e=n.map((e=>e.get(t.weight))).filter((t=>null!=t)))}return e}};const $T=class{constructor(t={}){this.attributeName_=t.attribute||null,this.label_=t.label||null,this.fillColor_=t.fill||null,this.legend_=t.legend||null}get attribute(){return this.attributeName_}set attribute(t){this.attributeName_=t}get label(){return this.label_}set label(t){this.label_=t}get fillColor(){return this.fillColor_}set fillColor(t){this.fillColor_=t}get legend(){return this.legend_}set legend(t){this.legend_=t}},tR={DONUT:"donut",PIE_3D:"pie3D",PIE:"pie",BAR:"bar"},eR={Custom:"m.style.chart.types.custom_scheme",Classic:["#ffa500","blue","red","green","cyan","magenta","yellow","#0f0"],Dark:["#960","#003","#900","#060","#099","#909","#990","#090"],Pale:["#fd0","#369","#f64","#3b7","#880","#b5d","#666"],Pastel:["#fb4","#79c","#f66","#7d7","#acc","#fdd","#ff9","#b9b"],Neon:["#ff0","#0ff","#0f0","#f0f","#f00","#00f"]};class iR extends Zm{constructor(t={}){const e=t,i=e.variables||null;if(Object.values(tR).includes(e.type)||(e.type=iR.DEFAULT.type),qL(i)||(e.variables=i instanceof Array?i.filter((t=>null!=t)).map((t=>iR.formatVariable(t))):"string"==typeof i||"object"==typeof i?[iR.formatVariable(i)]:[]),qL(e.scheme))e.scheme=iR.DEFAULT.scheme;else if("string"==typeof e.scheme){const t=e.variables.some((t=>null!=t.fillColor));e.scheme===eR.Custom&&t?e.scheme=e.variables.map((t=>t.fillColor?t.fillColor:"")):e.scheme=eR[e.scheme]||iR.DEFAULT.scheme}else e.scheme instanceof Array&&e.scheme.every((t=>"string"==typeof t))||(e.scheme=iR.DEFAULT.scheme);super(e,new lR(e))}static formatVariable(t){if(null==t)return null;let e={};return t instanceof $T?t:(e="string"==typeof t?{attribute:t}:t,new $T(e))}updateCanvas(){qL(this.getImpl())&&qL(this.canvas_)||this.getImpl().updateCanvas(this.canvas_)}apply(t){this.layer_=t,t.getFeatures().forEach((t=>t.setStyle(this.clone()))),this.updateCanvas()}get ORDER(){return 1}toJSON(){const t=this.getOptions();return{parameters:[{type:t.type,radius:t.radius,donutRadio:t.donutRadio,offsetX:t.offsetX,offsetY:t.offsetY,stroke:qL(t.stroke)?void 0:_B({},t.stroke),fill3DColor:t.fill3DColor,scheme:UL(t.scheme)?[...t.scheme]:t.scheme,label:qL(t.label)?void 0:_B({},t.label),rotateWithView:t.rotateWithView,variables:t.variables.map((t=>{let e;return qL(t.label)||(e=_B({},t.label),e=CB(e)),{attribute:t.attribute,legend:t.legend,fill:t.fillColor,label:e}}))}],deserializedMethod:"M.style.Chart.deserialize"}}static deserialize([t]){const e=t;e.variables=t.variables.map((t=>new $T(vB(t))));return new Function(["options"],"return new M.style.Chart(options)")(e)}}iR.DEFAULT={shadow3dColor:"#369",type:tR.PIE,scheme:eR.Classic,radius:20,donutRatio:.5,offsetX:0,offsetY:0,animationStep:1};const nR=iR;class rR extends am{constructor(t={}){const e=qL(t.stroke)?0:t.stroke.getWidth();super({radius:("number"==typeof t.radius?t.radius:0)+e,fill:new wm({color:[0,0,0]}),rotation:"number"==typeof t.rotation?t.rotation:0,snapToPixel:"boolean"==typeof t.snapToPixel&&t.snapToPixel}),t.scale&&this.setScale(t.scale),this.variables_=t.variables||[],this.stroke_=t.stroke||null,this.radius_=t.radius||0,this.donutRatio_=t.donutRatio||0,this.type_=t.type||null,this.offset_=[t.offsetX?t.offsetX:0,t.offsetY?t.offsetY:0],this.animation_={animate:"number"==typeof t.animation,step:"number"==typeof t.animation?t.animation:nR.DEFAULT.animationStep},this.data_=t.data||null,this.colors_=t.scheme instanceof Array?t.scheme:[],this.fill3DColor_=t.fill3DColor||"#000",this.rotateWithView_=t.rotateWithView||!1,this.renderChart_()}clone(){const t=new rR({type:this.type_,radius:this.radius_,colors:this.colors_,rotation:this.getRotation(),scale:this.getScale(),donutRatio:this.donutRatio_,data:this.data_,stroke:this.stroke_,scheme:this.colors_,offsetX:this.offset_[0],offsetY:this.offset_[1],animation:this.animation_,fill3DColor:this.fill3DColor_,rotateWithView:this.rotateWithView_});return t.setScale(this.getScale()),t.setOpacity(this.getOpacity()),t}get data(){return this.data_}set data(t){this.data_=t,this.renderChart_()}get radius(){return this.radius_}set radius(t){this.radius_=t,this.renderChart_()}setRadius(t,e){this.donutRatio_=e||this.donutRatio_,this.radius=t}setAnimation(t){if(!1===t){if(!1===this.animation_.animate)return;this.animation_.animate=!1}else{if(this.animation_.step===t)return;this.animation_.animate=!0,this.animation_.step=t}this.renderChart_()}getChecksum(){let t;const e=null!==this.stroke_?this.stroke_.getChecksum():"-";if(null===this.checksums_||e!==this.checksums_[1]||t!==this.checksums_[2]||this.radius_!==this.checksums_[3]||this.data_.join("|")!==this.checksums_[4]){const i=`c${e}undefined${this.radius_?this.radius_.toString():"-"}${this.data_.join("|")}`;this.checksums_=[i,e,t,this.radius_,this.data_.join("|")]}return this.checksums_[0]}renderChart_(t){switch(this.type_){case tR.DONUT:case tR.PIE_3D:case tR.PIE:this.renderCircleChart();break;default:this.renderBarChart()}}renderBarChart(){const t=this.getImage(1),e=t.getContext("2d");let i,n=0;const r=this.animation_.animate?this.animation_.step:1;this.stroke_&&(i=bo(this.stroke_.getColor()),n=this.stroke_.getWidth());const s=Math.max.apply(null,this.data_)||0,o=Math.min(5,2*this.radius_/this.data_.length),a=t.width-(n||0);let l;const h=t.width/2;let c=h-this.data_.length*o/2;i&&(e.strokeStyle=i,e.lineWidth=n),this.data_.sort(((t,e)=>t-e)).forEach(((t,n)=>{e.beginPath(),e.fillStyle=this.colors_[n%this.colors_.length],l=c+o;const h=t/s*2*this.radius_*r;e.rect(c,a-h,o,h),e.closePath(),e.fill(),i&&e.stroke(),c=l}));const u=this.getAnchor();u[0]=h-this.offset_[0],u[1]=h-this.offset_[1]}renderCircleChart(){let t,e=0;this.stroke_&&(t=bo(this.stroke_.getColor()),e=this.stroke_.getWidth());const i=this.getImage(1),n=i.getContext("2d");n.clearRect(0,0,i.width,i.height),n.lineJoin="round";let r=0;!qL(this.data_)&&this.data_.length>0&&(r=this.data_.reduce(((t,e)=>t+e))),n.setTransform(1,0,0,1,0,0),n.translate(0,0);const s=this.animation_.animate?this.animation_.step:1,o=Math.PI*(s-1.5),a=i.width/2;t&&(n.strokeStyle=t,n.lineWidth=e),n.save(),this.type_===tR.PIE_3D?this.drawPie3D(n,o,a,s,t,r):this.type_===tR.DONUT?this.drawDonut(n,o,a,s,t,e,r):this.drawPie(n,o,a,s,t,r),n.restore();const l=this.getAnchor();l[0]=a-this.offset_[0],l[1]=a-this.offset_[1]}drawDonut(t,e,i,n,r,s,o){const a=t;a.save(),a.beginPath(),a.rect(0,0,2*i,2*i),a.arc(i,i,this.radius_*n*this.donutRatio_,0,2*Math.PI),a.clip("evenodd");const l=this.drawPie(a,e,i,n,r,o);a.restore(),a.beginPath(),a.strokeStyle=r,a.lineWidth=s;const h=this.radius_;a.arc(i,i,h*n*this.donutRatio_,Math.PI*(n-1.5),l),r&&a.stroke()}drawPie3D(t,e,i,n,r,s){const o=t;o.translate(0,.3*i),o.scale(1,.7),o.beginPath(),o.fillStyle=this.fill3DColor_,o.arc(i,1.4*i,this.radius_*n,0,2*Math.PI),o.fill(),r&&o.stroke(),this.drawPie(t,e,i,n,r,s)}drawPie(t,e,i,n,r,s){let o,a=e;const l=t;return this.data_.forEach(((t,e)=>{l.beginPath(),l.moveTo(i,i),l.fillStyle=this.colors_[e%this.colors_.length],o=a+2*Math.PI*t/(s*n),l.arc(i,i,this.radius_*n,a,o),l.closePath(),l.fill(),r&&l.stroke(),a=o})),a}}const sR=class extends cm{},oR=(t,e,i,n)=>{let r;return r="function"==typeof t.text?t.text(n,i.data,e):`${um.getValue(t.text,e)}`||"",r="0"===r?"":r,r};class aR extends sR{constructor(t={}){((t,...e)=>{const i=t;if(null==i)throw new TypeError("Cannot convert undefined or null to object");const n=Object(i);e.filter((t=>null!=t)).forEach((t=>Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(t,e)&&!Object.prototype.hasOwnProperty.call(i,e)&&(i[e]=t[e])}))))})(t,nR.DEFAULT),super(t),this.variables_=t.variables||[],this.colorsScheme_=t.scheme||[]}updateCanvas(t){if(!qL(t)){const e=t.getContext("2d");this.drawGeometryToCanvas(e)}}drawGeometryToCanvas(t){const e=t;if(!qL(e)&&!qL(e.canvas)){const t=aR.CANVAS_PROPS.fixedProps,i=aR.CANVAS_PROPS.width;e.canvas.setAttribute("width",i),e.width=i;const n=[],r={};Object.keys(aR.CANVAS_PROPS.percentages).forEach((t=>{r[t]=i*(aR.CANVAS_PROPS.percentages[t]/100)}));let[s,o]=[r.left_right_content,t.top_content];const a=(i,r,s,o,a)=>{const l=s.split(" ");let h="";const c=r[0];let u=r[1];return n.push((t=>{const e=t.context;e.font=`${t.fontSize}px ${t.fontFamily}`,e.strokeStyle=t.strokeColor,e.strokeWidth=t.strokeWidth,e.fillStyle=t.textColor}).bind(this,{context:e,fontSize:t.font_size,fontFamily:t.font_family,strokeColor:t.text_stroke_color,strokeWidth:t.text_stroke_width,textColor:t.text_color})),l.forEach(((t,i)=>{e.measureText(`${h+t}`).width>o&&i>0?(n.push(((t,e,i,n)=>{t.strokeText(e,i,n),t.fillText(e,i,n)}).bind(this,e,h,c,u)),h=`${t} `,u+=a):h=`${h+t} `})),n.push(((t,e,i,n)=>{t.strokeText(e,i,n),t.fillText(e,i,n)}).bind(this,e,h,c,u)),[c,u]},l=(i,s,o)=>{let[l,h]=i;h+=t.item_top_margin,n.push((t=>{const e=t.context;e.beginPath(),e.strokeStyle=t.strokeColor,e.lineWidth=t.width,e.fillStyle=t.color,e.rect(t.x,t.y,t.rectSize,t.rectSize),e.closePath(),e.stroke(),e.fill()}).bind(this,{context:e,strokeColor:"#000",width:t.rect_border_width,color:o,x:l,y:h,rectSize:t.rect_size})),l+=r.item_side_margin+t.rect_size,h+=t.rect_size/1.5;const c=h+t.item_top_margin,u=r.max_text_width,g=r.max_text_line_height,d=a(e,[l,h],s,u,g);return[d[0],d[1]>c?d[1]:c]};this.variables_.forEach(((t,e)=>{const i=qL(t.legend)?t.attribute:t.legend,n=qL(t.fillColor)?this.colorsScheme_[e%this.colorsScheme_.length]||this.colorsScheme_[0]:t.fillColor;[s,o]=l([s,o],i,n),s=r.left_right_content})),o+=t.top_content,e.canvas.setAttribute("height",o),e.save(),n.forEach((t=>t())),e.restore()}}updateFacadeOptions(t){const i=t;i.rotateWithView=!1,this.olStyleFn_=(t,r)=>{let s=t;s instanceof _d||(s=this);const o=this.formatDataRecursively_(i,s);let a=[];if(this.variables_.forEach((t=>{let e=s.get(t.attribute);e=parseFloat(e),a=a.concat(e instanceof Array?e:[e]).filter((t=>null!=t))})),0===a.length)throw new Error("cannot draw an empty data chart");o.data=a,qL(i.stroke)||(o.stroke=new bm(i.stroke));let l=[new Dy({geometry:t=>{const e=qd.getCentroid(t.getGeometry());return new qa(e)},image:new rR(o)})];return"bar"!==o.type?1!==i.variables.length&&i.variables.length!==a.length||(l=l.concat(((t,e,i)=>{let n=0;const r=e.data.reduce(((t,e)=>t+e)),s=e.variables,o=e.data,a=t.concat(e.data.map(((t,a)=>{const l=s.length===o.length?s[a]:s[0],h=l.label||{},c=h.radius?h.radius:e.radius,u=(2*n+t)/r*Math.PI-Math.PI/2;if(n+=t,!l.label)return null;const g="number"==typeof h.radiusIncrement?h.radiusIncrement:3;let d="function"==typeof h.textAlign?h.textAlign(u):null;qL(d)&&(d=h.textAlign||(unull!=t))})(l,o,s))):"bar"===o.type&&(l=l.concat(((t,e,i)=>{let n=0,r=null;const s=e.variables,o=e.data,a=t.concat(e.data.map(((a,l)=>{const h=s.length===o.length?s[l]:s[0],c=h.label||{};if(!h.label)return null;const u=oR(c,i,e,a),g=um.getValue(c.font,i);qL(r)?r=t[0].getImage().getImage().height/2-6:r-=15,n=n+9+6;const d=-t[0].getImage().getImage().width/2-(1+e.offsetX)||0;return new Dy({text:new Fm({text:"string"==typeof u?`${u}`:"",offsetY:r+e.offsetY||0,offsetX:d,textBaseline:"middle",rotateWithView:!1,textAlign:"center",stroke:c.stroke?new bm({}):void 0,font:`9px ${g}`,scale:"number"==typeof c.scale?um.getValue(c.scale,i):void 0,fill:new wm({color:e.scheme[l%e.scheme.length]})})})}))),l=a.filter((t=>null!=t));n=Math.max(n,1);const h=-t[0].getImage().getImage().width/2+10+e.offsetX,c=t[0].getImage().getImage().height/2+e.offsetY,u=new Hf({anchor:[h,c],anchorOrigin:"bottom-right",offsetOrigin:"bottom-left",anchorXUnits:"pixels",anchorYUnits:"pixels",rotateWithView:!1,src:`data:image/svg+xml;base64,${window.btoa(``)}`,size:[a[0].getImage().getImage().width/2,n]});return l.push(new Nm({image:u})),l})(l,o,s))),((t,i,r)=>{if(!qL(t.label)){const s=new Nm,o=um.getValue(t.label.text,r),a=um.getValue(t.label.align,r),l=um.getValue(t.label.baseline,r),h=t.label.offset?t.label.offset[0]:void 0,c=t.label.offset?t.label.offset[1]:void 0,u=new wm({color:um.getValue(t.label.color||"#000000",r)}),g=new Fm({font:um.getValue(t.label.font,r),rotateWithView:um.getValue(t.label.rotate,r),scale:um.getValue(t.label.scale,r),offsetX:um.getValue(h,r),offsetY:um.getValue(c,r),fill:u,textAlign:Object.values(e).includes(a)?a:"center",textBaseline:Object.values(n).includes(l)?l:"top",text:void 0===o?void 0:String(o),rotation:um.getValue(t.label.rotation,r)});qL(t.label.stroke)||g.setStroke(new bm({color:um.getValue(t.label.stroke.color,r),width:um.getValue(t.label.stroke.width,r),lineCap:um.getValue(t.label.stroke.linecap,r),lineJoin:um.getValue(t.label.stroke.linejoin,r),lineDash:um.getValue(t.label.stroke.linedash,r),lineDashOffset:um.getValue(t.label.stroke.linedashoffset,r),miterLimit:um.getValue(t.label.stroke.miterlimit,r)})),s.setText(g),i.push(s)}})(o,l,s),l}}applyToLayer(t){t.getFeatures().forEach(this.applyToFeature,this)}applyToFeature(t){t.getImpl().getOLFeature().setStyle(this.olStyleFn_)}formatDataRecursively_(t,e){return Object.keys(t).reduce(((i,n,r)=>{let s=i;return"object"!=typeof i&&(s={},"object"!=typeof t[i]&&this.setVal(s,t,i,e)),this.setVal(s,t,n),s}))}setVal(t,e,i,n){const r=t;r[i]=um.getValue(e[i],n),!zL(e[i])||e[i]instanceof Array||(r[i]=this.formatDataRecursively_(e[i],n))}}aR.CANVAS_PROPS={width:200,percentages:{left_right_content:5,item_side_margin:5,max_text_width:70},fixedProps:{rect_border_width:2,font_size:10,font_family:"sans-serif",text_stroke_color:"#fff",text_stroke_width:1,text_color:"#000",top_content:10,item_top_margin:10,text_line_height:15,rect_size:15}};const lR=aR;const hR=class extends cm{constructor(t,e,i){super({}),this.heatmapLayer_=null,this.attribute_=t,this.opt_options_=_B(e,i),this.opt_options_.zIndex=999999,this.oldOLLayer_=null}applyToLayer(t){if(this.layer_=t,!qL(t)){const t=this.layer_.getImpl().getOLLayer();t instanceof JT||(this.oldOLLayer_=t);const e=this.layer_.getFeatures().map((t=>t.getImpl().getOLFeature()));e.forEach((t=>t.setStyle(null))),this.createHeatmapLayer_(e),this.layer_.getImpl().setOLLayer(this.heatmapLayer_)}}unapply(t){qL(this.oldOLLayer_)||(this.layer_.getImpl().setOLLayer(this.oldOLLayer_),this.layer_.redraw(),this.layer_=null,this.oldOLLayer_=null,this.heatmapLayer_=null)}createHeatmapLayer_(t){this.opt_options_.source=new kf({features:t}),this.opt_options_.name=this.layer_.name,this.heatmapLayer_=new ZT(this.opt_options_)}setOptions(t,e){this.opt_options_=_B(t,e)}getMinWeight(){return this.heatmapLayer_.getMinWeight()}getMaxWeight(){return this.heatmapLayer_.getMaxWeight()}};const cR=class extends Hf{getImageSize(){return this.iconImage_.getSize()}};class uR extends $m{constructor(t){let e=t;qL(e)&&(e=uR.DEFAULT_NULL),e=_B({},e);super(e,new mR(e))}unapply(t){this.getImpl().unapply(t)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Line'))"}}uR.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};const gR=uR;class dR{static render(t,e){let i=t;const n=this;let r=0,s=0,o=2;const a=(t,e,i,n)=>{const[r,s]=[i-t,n-e];return Math.sqrt(r*r+s*s)},l=(t,e)=>{if(!r||s+re))&&(o+=2,!(o>=t.length));)s+=r;const i=e-s;o>=t.length&&(o=t.length-2);return[i?t[o-2]+(t[o]-t[o-2])*i/r:t[o-2],i?t[o-1]+(t[o+1]-t[o-1])*i/r:t[o-1],Math.atan2(t[o+1]-t[o-1],t[o]-t[o-2])]};let h=.25*n.measureText(" ").width,c=0,u=0;for(let t=2;t{n.push(t[0]*e[0]+t[1]*e[1]+t[4]),n.push(t[2]*e[0]+t[3]*e[1]+t[5])})),i&&n[0]>n[n.length-2]){const t=[];for(let e=n.length-2;e>=0;e-=2)t.push(n[e]),t.push(n[e+1]);return t}return n}static formatStyle(t){let e=t;if(null==e)return null;let i=null;return void 0===e&&(e=[new Nm({text:new Fm})]),i="function"==typeof e?e:()=>[e],i}static draw(t,e,i,n){const r=this.getPath_(e,n,i.getRotateWithView());t.font=i.getFont(),t.textBaseline=i.getTextBaseline(),t.textAlign=i.getTextAlign(),t.lineWidth=i.getStroke()&&i.getStroke().getWidth()||dR.DEFAULT.lineWidth,t.strokeStyle=i.getStroke()&&i.getStroke().getColor()||dR.DEFAULT.lineColor,t.fillStyle=i.getFill()&&i.getFill().getColor()||dR.DEFAULT.fillColor,t.textJustify="justify"===i.getTextAlign(),t.textOverflow=i.getTextOverflow?i.getTextOverflow():dR.DEFAULT.textOverflow,t.minWidth=i.getMinWidth?i.getMinWidth():dR.DEFAULT.minWidth,"function"==typeof t.textPath&&t.textPath(i.getText(),r),t.restore()}}dR.DEFAULT={lineWidth:0,lineColor:"#fff",fillColor:"#000",textOverflow:"",minWidth:0};const pR=function(t=null){if(QL(window.CanvasRenderingContext2D.prototype.textPath)&&(window.CanvasRenderingContext2D.prototype.textPath=dR.render),t.frameState.viewState.resolution>this.textPathMaxResolution_)return;const e=t.frameState.extent,i=t.context;i.save(),i.scale(t.frameState.pixelRatio,t.frameState.pixelRatio);null!=this.getSource()&&0===this.getSource().getFeatures().length||(this.getSource().getFeaturesInExtent(e).forEach((e=>{const n=null!=e.getStyle()?e.getStyle():this.getStyle();let r="function"==typeof n?n(e,t.frameState.viewState.resolution):n;r instanceof Array||(r=[r]),r.forEach((n=>{let r,s=(n instanceof gR?n.getOptions().geometry:n.getGeometry())||e.getGeometry();if("function"==typeof s&&(s=s(e)),"MultiLineString"===s.getType())r=s.getLineString(0).getCoordinates();else r=s.getCoordinates();const o=n instanceof gR?n.getOptions().text:n.textPath;null!=o&&o instanceof Dm&&dR.draw(i,t.frameState.coordinateToPixelTransform,o,r)}))})),i.restore())};_a.prototype.cspline=function(t){let e;return this.calcCSpline?this.csplineGeometryRevision===this.getRevision()&&this.csplineOption===JSON.stringify(t)||(this.csplineGeometry_=this.calcCSpline(t),this.csplineGeometryRevision=this.getRevision(),this.csplineOption=JSON.stringify(t),e=this.csplineGeometry_):e=this,e},Od.prototype.calcCSpline=function(t){const e=[];this.getGeometries().forEach((t=>e.push(t.cspline())));return new Od(e)},bd.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new bd(e)},sl.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new sl(e)},Md.prototype.calcCSpline=function(t){const e=[];this.getLineStrings().forEach((t=>e.push(t.cspline().getCoordinates())));return new Md(e)};const AR=(t,e,i,n)=>{const r=i-t,s=n-e;return Math.sqrt(r*r+s*s)};wd.prototype.calcCSpline=function(t={}){const e=this.getCoordinates(),i="number"==typeof t.tension?t.tension:.5,n=t.resolution||this.getLength()/e.length/(t.pointsPerSeg||10),r=[];let s,o,a,l,h,c,u,g,d,p,A,f,m;const _=e.slice(0);for(e.length>2&&e[0][0]===e[e.length-1][0]&&e[0][1]===e[e.length-1][1]?(_.unshift(e[e.length-2]),_.push(e[1])):(_.unshift(e[0]),_.push(e[e.length-1])),m=1;m<_.length-2;m+=1){const e=AR(_[m][0],_[m][1],_[m+1][0],_[m+1][1]),y=Math.round(e/n);let I=1;if(t.normalize){const t=AR(_[m+1][0],_[m+1][1],_[m-1][0],_[m-1][1]),e=AR(_[m+2][0],_[m+2][1],_[m][0],_[m][1]);I=t{let i=e;i instanceof _d||i instanceof Pd||(i=this);const n=t.stroke,r=t.label,s=new Dy,o=new Dy,l=um.getValue;if(qL(n)||s.setStroke(new bm({color:l(n.color,i),width:l(n.width,i),lineDash:l(n.linedash,i),lineDashOffset:l(n.linedashoffset,i),lineCap:l(n.linecap,i),lineJoin:l(n.linejoin,i),miterLimit:l(n.miterlimit,i)})),!qL(r)){const e={text:void 0===l(r.text,i)?void 0:String(l(r.text,i)),font:l(r.font,i),fill:new wm({color:l(r.color||"#000000",i)}),textBaseline:(l(r.baseline,i)||"").toLowerCase(),textAlign:l(r.align,i),scale:l(r.scale,i),rotateWithView:l(r.rotate,i)||!1,textOverflow:l(r.textoverflow,i)||"",minWidth:l(r.minwidth,i)||0,geometry:l(r.geometry,i),offsetX:l(t.label.offset?t.label.offset[0]:void 0,i),offsetY:l(t.label.offset?t.label.offset[1]:void 0,i)},n=new Dm(e);qL(r.stroke)||n.setStroke(new bm({color:l(r.stroke.color,i),width:l(r.stroke.width,i),lineCap:l(r.stroke.linecap,i),lineJoin:l(r.stroke.linejoin,i),lineDash:l(r.stroke.linedash,i),lineDashOffset:l(r.stroke.linedashoffset,i),miterLimit:l(r.stroke.miterlimit,i)}));const o=l(r.path,i);"boolean"==typeof o&&o?(s.textPath=n,!qL(r.smooth)&&!0===r.smooth&&VL(i.getGeometry)&&s.setGeometry(i.getGeometry().cspline())):s.setText(n)}let h;if(!qL(t.fill)){const e=um.getValue(t.fill.color,i,this.layer_);let n=um.getValue(t.fill.opacity,i,this.layer_);n||0===n||(n=1);const r=um.getValue(t.fill.width,i,this.layer_);qL(e)||(h=new bm({color:a()(e).alpha(n).css(),width:r}))}return o.setStroke(h),[s,o]}}applyToLayer(t){super.applyToLayer(t);const e=t.getImpl().getOLLayer();qL(e)||(this.postComposeEvtKey_=e.on("postcompose",pR,e))}unapply(){zs(this.postComposeEvtKey_)}drawGeometryToCanvas(t,e,i,n){let r=fR.getCanvasSize()[0],s=fR.getCanvasSize()[1];if(t.drawGeometry(new wd([[0+n/2,0+n/2],[r/3,s/2-n/2],[2*r/3,0+n/2],[r-n/2,s/2-n/2]])),!qL(i)){const t=i.width,n=e.getContext("2d");n.lineWidth=i.width,r=e.width,s=e.height,n.strokeStyle=i.color,n.beginPath(),n.lineTo(0+t,0+t),n.lineTo(r/3,s/2-t),n.lineTo(2*r/3,0+t),n.lineTo(r-t,s/2-t),n.stroke()}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=fR.getCanvasSize(),i=rm(t.getContext("2d"),{size:e});let n;const r=this.olStyleFn_()[1];qL(r)||qL(r.getStroke())||(n={color:r.getStroke().getColor(),width:1});const s=this.olStyleFn_()[0];qL(s.getText())||s.setText(null);const o=s.getStroke();let a;qL(o)||(qL(o.getWidth())?a=1:(a=o.getWidth(),o.getWidth()>fR.DEFAULT_WIDTH_LINE&&(a=fR.DEFAULT_WIDTH_LINE)),n={color:s.getStroke().getColor(),width:a},s.getStroke().setWidth(a),i.setStyle(s)),this.drawGeometryToCanvas(i,t,n,a)}static getCanvasSize(){return[25,15]}}fR.DEFAULT_WIDTH_LINE=3;const mR=fR;class _R extends um{constructor(t){super(t),this.olStyleFn_=this.updateFacadeOptions(t)}updateFacadeOptions(t){return i=>{let r=i;r instanceof _d||i instanceof Pd||(r=this);const s=new Dy;if(qL(t.stroke)||s.setStroke(new bm({color:um.getValue(t.stroke.color,r,this.layer_),width:um.getValue(t.stroke.width,r,this.layer_),lineDash:um.getValue(t.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(t.stroke.linedashoffset,r,this.layer_),lineCap:um.getValue(t.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.stroke.linejoin,r,this.layer_),miterLimit:um.getValue(t.stroke.miterlimit,r,this.layer_)})),!qL(t.label)){const i=um.getValue(t.label.text,r,this.layer_),o=um.getValue(t.label.align,r,this.layer_),a=um.getValue(t.label.baseline,r,this.layer_),l=!!qL(t.label.overflow,this.layer_)||t.label.overflow;s.setText(new Fm({font:um.getValue(t.label.font,r,this.layer_),rotateWithView:um.getValue(t.label.rotate,r,this.layer_),scale:um.getValue(t.label.scale,r,this.layer_),offsetX:um.getValue(t.label.offset?t.label.offset[0]:void 0,r,this.layer_),offsetY:um.getValue(t.label.ofsset?t.label.offset[1]:void 0,r,this.layer_),fill:new wm({color:um.getValue(t.label.color||"#000000",r,this.layer_)}),textAlign:Object.values(e).includes(o)?o:"center",textBaseline:Object.values(n).includes(a)?a:"top",text:void 0===i?void 0:String(i),rotation:um.getValue(t.label.rotation,r,this.layer_),overflow:um.getValue(l,r,this.layer_)})),qL(t.label.stroke)||s.getText().setStroke(new bm({color:um.getValue(t.label.stroke.color,r,this.layer_),width:um.getValue(t.label.stroke.width,r,this.layer_),lineCap:um.getValue(t.label.stroke.linecap,r,this.layer_),lineJoin:um.getValue(t.label.stroke.linejoin,r,this.layer_),lineDash:um.getValue(t.label.stroke.linedash,r,this.layer_),lineDashOffset:um.getValue(t.label.stroke.linedashoffset,r,this.layer_),miterLimit:um.getValue(t.label.stroke.miterlimit,r,this.layer_)}))}if(!qL(t.fill)){const e=um.getValue(t.fill.color,r,this.layer_);let i,n=um.getValue(t.fill.opacity,r,this.layer_);if(n||0===n||(n=1),qL(e)||(i=new wm({color:a()(e).alpha(n).css()})),qL(t.fill.pattern))s.setFill(i);else{let e="rgba(0,0,0,1)";if(!qL(t.fill.pattern.color)){let i=um.getValue(t.fill.pattern.opacity,r,this.layer_)||1;i||0===i||(i=1),e=a()(t.fill.pattern.color).alpha(i).css()}s.setFill(new km({pattern:(um.getValue(t.fill.pattern.name,r,this.layer_)||"").toLowerCase(),color:e,size:um.getValue(t.fill.pattern.size,r,this.layer_),spacing:um.getValue(t.fill.pattern.spacing,r,this.layer_),image:"IMAGE"===um.getValue(t.fill.pattern.name,r,this.layer_)?new Hf({src:um.getValue(t.fill.pattern.src,r,this.layer_)}):void 0,angle:um.getValue(t.fill.pattern.rotation,r,this.layer_),scale:um.getValue(t.fill.pattern.scale,r,this.layer_),offset:um.getValue(t.fill.pattern.offset,r,this.layer_),fill:i}))}}return[s]}}updateCanvas(t){this.updateFacadeOptions(this.options_);const e=_R.getCanvasSize(),i=rm(t.getContext("2d"),{size:e}),n=this.olStyleFn_()[0];qL(n.getText())||n.setText(null);const r=n.getStroke();qL(r)||qL(r.getWidth())||r.getWidth()>_R.DEFAULT_WIDTH_POLYGON&&n.getStroke().setWidth(_R.DEFAULT_WIDTH_POLYGON),i.setStyle(n),this.drawGeometryToCanvas(i)}drawGeometryToCanvas(t){const e=_R.getCanvasSize(),i=Math.floor(e[0]),n=Math.floor(e[1]),r=e[0]-i,s=e[1]-n;t.drawGeometry(new sl([[[r+3,s+3],[i-3,s+3],[i-3,n-3],[r+3,n-3],[r+3,s+3]]]))}static getCanvasSize(){return[25,15]}}_R.DEFAULT_WIDTH_POLYGON=3;const yR=_R,IR=(t,e)=>{let[i,n]=[void 0,void 0];const r=t.filter((t=>![NaN,void 0,null].includes(t.getAttribute(e)))).map((t=>parseInt(t.getAttribute(e),10)));let s=1;if(!qL(r))for(i=r[0],n=r[0];s(t-e)*(r-n)/(i-e)+n;class CR extends Uy{constructor(t,e,i,n,r,s={}){super(s,{}),qL(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.minRadius_=parseInt(e,10)||5,this.maxRadius_=parseInt(i,10)||15,this.style_=n,this.proportionalFunction_=r||ER,this.maxRadius_this.applyToFeature(t,1)));const e=this.oldStyle_.clone();e instanceof $m&&(e.set("zindex",(t=>this.maxValue_-parseFloat(t.getAttribute(this.attributeName_)))),e.set(CR.getSizeAttribute(e),(t=>{const e=CR.SCALE_PROPORTION,i=t.getAttribute(this.attributeName_),n=[i,this.minValue_,this.maxValue_,this.minRadius_,this.maxRadius_];let r=this.proportionalFunction_(...n);if("icon.scale"===CR.getSizeAttribute(this.oldStyle_)){const t=this.minRadius_/e,n=this.maxRadius_/e,s=[i,this.minValue_,this.maxValue_,t,n];r=this.proportionalFunction_(...s)}return r})),this.updateCanvas())}}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this}getStyle(){return console.warn("Deprecated function: Use getStyles instead."),this.style_}setStyle(t){return this.style_=t,this.update_(),this}getMinRadius(){return this.minRadius_}setProportionalFunction(t){this.proportionalFunction_=t,this.update_()}getProportionalFunction(){return this.proportionalFunction_}setMinRadius(t){return this.minRadius_=parseInt(t,10),t>=this.maxRadius_&&Oc(Cu("exception").min_gt_max),this.update_(),this}getMaxRadius(){return this.maxRadius_}setMaxRadius(t){return this.maxRadius_=parseInt(t,10),t<=this.minRadius_&&Oc(Cu("exception").max_lt_min),this.update_(),this}updateCanvas(){this.updateCanvasPromise_=new Promise(((t,e)=>{if(!qL(this.layer_)){const e=this.styles_.filter((t=>t instanceof $m))[0];let i=qL(e)?this.layer_.getStyle():e;if(i=qL(i)?this.style_:i,i instanceof $m){let e=i.clone();e instanceof e_?e=new CI(e.getOptions().point):e instanceof CI||(e=new CI(e.getOptions()));const n=CR.getSizeAttribute(e),r=e.clone(),s=e.clone(),o=this.getMaxRadius(),a=this.getMinRadius();r.set(n,o),s.set(n,a),this.loadCanvasImage(o,r.toImage(),(e=>{this.loadCanvasImage(a,s.toImage(),(i=>{this.drawGeometryToCanvas(e,i,t)}))}))}else qL(i)||(this.canvas_=i.canvas,t())}}))}loadCanvasImage(t,e,i){const n=new Image;n.crossOrigin="Anonymous",n.onload=()=>{i({image:n,value:t})},n.onerror=()=>{i({value:t})},n.src=e}drawGeometryToCanvas(t,e,i){const n=t.image,r=e.image;this.canvas_.height=n.height+5+r.height+5;const s=this.canvas_.getContext("2d");s.textBaseline="middle";let o=0,a=0;if(qL(n)||(o=n.width+5,a=n.height/2,/^https?:\/\//i.test(n.src)?(this.canvas_.height=130,s.fillText(` max: ${this.maxValue_}`,85,40),s.drawImage(n,0,0,80,80)):(s.fillText(` max: ${this.maxValue_}`,o,a),s.drawImage(n,0,0))),!qL(r)){let t=0;qL(n)||(t=n.width/2-r.width/2);const e=n.height+5;a=e+r.height/2,/^https?:\/\//i.test(r.src)?(s.fillText(` min: ${this.minValue_}`,85,105),s.drawImage(r,20,85,40,40)):(s.fillText(` min: ${this.minValue_}`,o,a),s.drawImage(r,t,e))}i()}static getSizeAttribute(t){let e="radius";return qL(t.get("icon"))||(e=qL(t.get("icon.src"))?"icon.radius":"icon.scale"),e}calculateStyle_(t,e,i){const n=this.proportionalFunction_;let r=i;if(!qL(r)){r=r.clone();let[i,s]=[e.minRadius,e.maxRadius];qL(r.get("icon.src"))||(i=e.minRadius/CR.SCALE_PROPORTION,s=e.maxRadius/CR.SCALE_PROPORTION);const o=t.getAttribute(this.attributeName_);null==o&&console.warn(`Warning: ${this.attributeName_} value is null or empty.`);const a=n(o,e.minValue,e.maxValue,i,s),l=e.maxValue-parseFloat(t.getAttribute(this.attributeName_));r.set(`${CR.getSizeAttribute(r)}`,a),r.set("zindex",l)}return r}get ORDER(){return 3}toJSON(){const t=this.getAttributeName(),e=this.getMinRadius(),i=this.getMaxRadius(),n=this.getStyles().map((t=>t.serialize())),r=CB(this.getProportionalFunction());let s=_B({},this.getOptions());s=CB(s);return{parameters:[t,e,i,n,r,s],deserializedMethod:"M.style.Proportional.deserialize"}}static deserialize([t,e,i,n,r,s]){const o=t,a=e,l=i,h=vB(r),c=vB(s),u=new Function(["attributeName","minRadius","maxRadius","style","proportionalFunction","options"],"return new M.style.Proportional(attributeName,\n minRadius, maxRadius, style, proportionalFunction, options)")(o,a,l,void 0,h,c),g=n.map((t=>Jm.deserialize(t)));return u.add(g),u}}CR.SCALE_PROPORTION=20;const vR=CR;class xR extends $m{constructor(t={}){let e=t;super(e,new yR(e)),qL(e)&&(e=xR.DEFAULT_NULL),e=_B({},e)}getDeserializedMethod_(){return"((serializedParameters) => M.style.Simple.deserialize(serializedParameters, 'M.style.Polygon'))"}}xR.DEFAULT_NULL={fill:{color:"rgba(255, 255, 255, 0.4)",opacity:.4},stroke:{color:"#3399CC",width:1.5}};const wR=xR,SR=t=>{const e=t.radius,i=a().random().hex(),n=t.strokeColor,r=t.strokeWidth;return new e_({point:{radius:e,fill:{color:i},stroke:{color:n,width:r}},line:{fill:{color:i},stroke:{color:n,width:r}},polygon:{fill:{color:i},stroke:{color:n,width:r}}})};class bR extends Uy{constructor(t,e,i={}){super(i,{}),qL(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.categoryStyles_=e}get ORDER(){return 2}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getCategories(){return this.categoryStyles_}setCategories(t){return this.categoryStyles_=t,this.update_(),this.refresh(),this}getStyleForCategory(t){return this.categoryStyles_[t]}setStyleForCategory(t,e){return this.categoryStyles_[t]=e,this.update_(),this.refresh(),this}updateCanvas(){const t=[];this.updateCanvasPromise_=new Promise(((e,i)=>this.loadCanvasImages_(0,t,e)))}loadCanvasImages_(t,e,i){const n=this.getCategories(),r=Object.keys(n);if(t===r.length)this.drawGeometryToCanvas(e,i);else{const n=r[t],s=this.getStyleForCategory(n),o=new Image;o.crossOrigin="Anonymous",o.onload=()=>{e.push({image:o,categoryName:n}),this.loadCanvasImages_(t+1,e,i)},o.onerror=()=>{e.push({categoryName:n}),this.loadCanvasImages_(t+1,e,i)},s.updateCanvas(),s.get("icon.src")&&EB(s.get("icon.src")).then((t=>{o.width=s.get("icon.scale")?t.width*s.get("icon.scale"):t.width,o.height=s.get("icon.scale")?t.height*s.get("icon.scale"):t.height}));const a=s.toImage();a instanceof Promise?a.then((t=>{o.src=t})):o.src=a}}drawGeometryToCanvas(t,e){const i=t.map((t=>t.image.height)),n=t.map((t=>t.image.width)),r=this.canvas_.getContext("2d");r.canvas.height=i.reduce(((t,e)=>t+e+5)),r.textBaseline="middle";const s=Math.max.apply(n,n);t.forEach(((t,e)=>{const n=t.image,o=t.categoryName;let a=0;const l=i.slice(0,e);qL(l)||(a=l.reduce(((t,e)=>t+e+5)),a+=5);let h=0;if(!qL(n)){h=n.height;const t=(s-n.width)/2;r.drawImage(n,t,a,n.width,n.height)}r.fillText(o,s+5,a+h/2)})),e()}update_(){if(!qL(this.layer_)){(qL(this.categoryStyles_)||0===Object.keys(this.categoryStyles_).length)&&(this.categoryStyles_=this.generateRandomCategories_());const t=this.categoryStyles_.other;this.layer_.getFeatures().forEach((e=>{const i=e.getAttribute(this.attributeName_),n=this.categoryStyles_[i];qL(n)?qL(t)||e.setStyle(t):e.setStyle(n)})),this.updateCanvas()}}add(t){let e=t;return UL(e)||(e=[e]),e=e.filter((t=>t instanceof Vy||t instanceof vR)),super.add(e)}generateRandomCategories_(){const t={};return qL(this.layer_)||this.layer_.getFeatures().forEach((e=>{const i=e.getAttribute(this.attributeName_);Object.prototype.hasOwnProperty.call(t,i)||(t[i]=SR({radius:bR.RANDOM_RADIUS_OPTION,strokeColor:bR.RANDOM_STROKE_COLOR_OPTION,strokeWidth:bR.RANDOM_STROKE_WIDTH_OPTION}))})),t}toJSON(){const t=this.getAttributeName(),e=this.getCategories(),i={};Object.keys(e).forEach((t=>{i[t]=e[t].serialize()}));let n=_B({},this.getOptions());n=CB(n);const r=this.getStyles().map((t=>t.serialize()));return{parameters:[t,i,n,r],deserializedMethod:"M.style.Category.deserialize"}}static deserialize([t,e,i,n]){const r=t,s=e;Object.keys(e).forEach((t=>{s[t]=Jm.deserialize(e[t])}));const o=vB(i),a=new Function(["attributeName","categoryStyles","options"],"return new M.style.Category(attributeName, categoryStyles, options)")(r,s,o),l=n.map((t=>Jm.deserialize(t)));return a.add(l),a}}bR.RANDOM_RADIUS_OPTION=10,bR.RANDOM_STROKE_WIDTH_OPTION=1,bR.RANDOM_STROKE_COLOR_OPTION="black";const LR=bR,BR=t=>{const e=[];return t.forEach((t=>{-1===e.indexOf(t)&&e.push(t)})),e},MR=t=>{let e=t;e=e||5;const i=(t,i=e)=>{const n=BR(t),r=n.length<=i?n.length-1:i;t.sort(((t,e)=>t-e));const s=((t,e)=>{const i=[],n=[];let r=0;for(let r=0;r=r+n[h][t-1]&&(i[s][t]=u,n[s][t]=r+n[h][t-1])}i[s][1]=1,n[s][1]=r}return{lowerClassLimits:i,varianceCombinations:n}})(t,r),o=((t,e,i)=>{let n=t.length-1;const r=[];let s=i;for(r[i]=t[t.length-1],r[0]=t[0];s>1;)r[s-1]=t[e[n][s]-2],n=e[n][s]-1,s-=1;return r})(t,s.lowerClassLimits,r);return o.slice(1,o.length)};return Object.defineProperty(i,"name",{value:"jenks"}),i},TR=t=>{const e=t||5,i=(t,i=e)=>{const n=BR(t),r=n.length<=i?n.length-1:i,s=t.length;t.sort(((t,e)=>t-e));const o=Math.trunc(s/r),a=[];for(let e=0;enew kB((i=>null!=i.getAttribute(t)&&i.getAttribute(t)<=e),{cqlFilter:`${t} <= '${e}'`}),NR=t=>Math.round(100*t)/100;class PR extends Uy{constructor(t,e,i=MR(),n={}){super(n,{}),qL(t)&&Oc(Cu("exception").no_attr_name),this.attributeName_=t,this.choroplethStyles_=e,this.quantification_=i,this.dataValues_=[],this.breakPoints_=[]}applyInternal(t){this.layer_=t,this.update_()}getAttributeName(){return this.attributeName_}setAttributeName(t){return this.attributeName_=t,this.update_(),this.refresh(),this}getQuantification(){return this.quantification_}setQuantification(t){if(this.quantification_=t,!this.choroplethStyles_.some((t=>YL(t)))){if(this.choroplethStyles_.length0){const t=[];this.updateCanvasPromise_=new Promise(((e,i)=>this.loadCanvasImages_(0,t,e)))}}loadCanvasImages_(t,e,i){if(t===this.choroplethStyles_.length)this.drawGeometryToCanvas(e,i);else{let n=-1;t>0&&(n=this.breakPoints_[t-1]);const r=this.breakPoints_[t],s=new Image;s.crossOrigin="Anonymous",s.onload=()=>{e.push({image:s,startLimit:NR(n),endLimit:NR(r)}),this.loadCanvasImages_(t+1,e,i)},s.onerror=()=>{e.push({startLimit:NR(n),endLimit:NR(r)}),this.loadCanvasImages_(t+1,e,i)},this.choroplethStyles_[t].updateCanvas();const o=this.choroplethStyles_[t].toImage();YL(o)?s.src=o:o.then((t=>{s.src=t}))}}drawGeometryToCanvas(t,e){const i=t.map((t=>t.image.height)),n=t.map((t=>t.image.width)),r=this.canvas_.getContext("2d");r.canvas.height=i.reduce(((t,e)=>t+e+5)),r.textBaseline="middle";const s=Math.max.apply(n,n);t.forEach(((t,e)=>{const n=t.image,o=t.startLimit,a=t.endLimit;let l=0;const h=i.slice(0,e);qL(h)||(l=h.reduce(((t,e)=>t+e+5)),l+=5);let c=0;qL(n)||(c=n.height,r.drawImage(n,0,l)),o<0?r.fillText(` x <= ${a}`,s+5,l+c/2):r.fillText(`${o} < x <= ${a}`,s+5,l+c/2)}),this),e()}getValues(){const t=[];return qL(this.layer_)||this.layer_.getFeatures().forEach((e=>{try{const i=parseFloat(e.getAttribute(this.attributeName_));Number.isNaN(i)||t.push(i)}catch(t){}}),this),t}update_(){if(!qL(this.layer_)){const t=this.layer_.getFeatures();if(!qL(t))if(this.dataValues_=this.getValues(),qL(this.choroplethStyles_)||!qL(this.choroplethStyles_)&&(YL(this.choroplethStyles_[0])||YL(this.choroplethStyles_[1]))){this.breakPoints_=this.quantification_(this.dataValues_);const t=this.choroplethStyles_&&this.choroplethStyles_[0]?this.choroplethStyles_[0]:PR.START_COLOR_DEFAULT,e=this.choroplethStyles_&&this.choroplethStyles_[1]?this.choroplethStyles_[1]:PR.END_COLOR_DEFAULT,i=this.breakPoints_.length;let n=fB(t,e,i);UL(n)||(n=[n]);const r=(t,e)=>t.map((t=>e(t)));this.choroplethStyles_=r(n,PR.DEFAULT_STYLE)}else this.breakPoints_=this.quantification_(this.dataValues_,this.choroplethStyles_.length);for(let e=this.breakPoints_.length-1;e>-1;e-=1){RR(this.attributeName_,this.breakPoints_[e]).execute(t).forEach((t=>t.setStyle(this.choroplethStyles_[e])))}this.updateCanvas()}}static DEFAULT_STYLE(t){return new e_({point:{fill:{color:t,opacity:1},stroke:{color:"black",width:1},radius:5},line:{stroke:{color:t,width:1}},polygon:{fill:{color:t,opacity:1},stroke:{color:"black",width:1}}})}add(t){let e=t;return UL(e)||(e=[e]),e=e.filter((t=>t instanceof Vy||t instanceof vR)),super.add(e)}get ORDER(){return 2}toJSON(){const t=this.getAttributeName(),e=this.getChoroplethStyles().map((t=>t.serialize()));let i=this.getQuantification();i=qL(i.name)?CB(i):i.name;let n=_B({},this.getOptions());n=CB(n);return{parameters:[t,e,i,n,this.getStyles().map((t=>t.serialize()))],deserializedMethod:"M.style.Choropleth.deserialize"}}static deserialize([t,e,i,n,r]){const s=t,o=e.map((t=>Jm.deserialize(t)));let a;a="jenks"===i?MR():"quantile"===i?TR():vB(i);const l=vB(n),h=new Function(["attributeName","styles","quantification","options"],"return new M.style.Choropleth(attributeName, styles, quantification, options)")(s,o,a,l),c=r.map((t=>Jm.deserialize(t)));return h.add(c),h}}PR.START_COLOR_DEFAULT="red",PR.END_COLOR_DEFAULT="brown";const FR=PR;const DR=class{static addSymbol(t,e){return lm.addDefs(t,e)}};class OR extends Jm{constructor(t,e={},i={}){const n=e,r=i;if(YL(t)||VL(t)||Oc(Cu("exception").no_empty),_B(n,OR.DEFAULT_OPTIONS),qL(n.gradient)||UL(n.gradient)||(n.gradient=[n.gradient]),n.gradient=n.gradient||OR.DEFAULT_OPTIONS.gradient,n.gradient.length<2){const t=mB(n.gradient[0]);n.gradient.push(t)}n.blur=qL(n.blur)?OR.DEFAULT_OPTIONS.blur:parseFloat(n.blur),n.radius=qL(n.radius)?OR.DEFAULT_OPTIONS.radius:parseFloat(n.radius),n.weight=t,r.opacity=Number.isNaN(parseFloat(r.opacity))?1:parseFloat(r.opacity);super(n,new hR(t,n,r)),this.attribute_=t,this.options_=n,this.vendorOptions_=r}unapply(t){this.layer_=null,this.getImpl().unapply(t)}getAttributeName(){return this.attribute_}setAttributeName(t){this.attribute_=t,this.options_.weight=this.attribute_,this.update_()}getGradient(){return this.options_.gradient}setGradient(t){let e=t;if(UL(e)||(e=[e]),e.length<2){const t=mB(e[0]);e.push(t)}this.options_.gradient=e,this.update_()}getRadius(){return this.options_.radius}setRadius(t){this.options_.radius=t,this.update_()}getBlurSize(){return this.options_.blur}setBlurSize(t){this.options_.blur=t,this.update_()}update_(){const t=this.getImpl();t.unapply(this.layer_),t.setOptions(this.options_,this.vendorOptions_),t.applyToLayer(this.layer_)}drawGeometryToCanvas(){const[t,e]=[this.getImpl().getMinWeight(),this.getImpl().getMaxWeight()],i=this.canvas_.getContext("2d"),n=i.createLinearGradient(0,150,200,150),r=yB([0,1],this.options_.gradient.length);this.options_.gradient.forEach(((t,e)=>n.addColorStop(r[e],t))),i.fillStyle=n,i.fillRect(0,20,200,30),i.fillStyle="#000",i.font="10px sans-serif",i.fillText(t,0,60),i.fillText(e,199,60)}updateCanvas(){this.drawGeometryToCanvas()}toJSON(){const t=this.getAttributeName(),e=this.getOptions();return{parameters:[t,{gradient:[...e.gradient],blur:e.blur,radius:e.radius,weight:e.weight},this.vendorOptions_],deserializedMethod:"M.style.Heatmap.deserialize"}}static deserialize([t,e,i]){const n=t,r=vB(e),s=vB(i);return new Function(["attribute","options","vendorOptions"],"return new M.style.Heatmap(attribute, options, vendorOptions)")(n,r,s)}}OR.DEFAULT_OPTIONS={gradient:["#00f","#0ff","#0f0","#ff0","#f00"],blur:15,radius:10};const QR=OR;function kR(t,e){return t.interfaces_&&t.interfaces_.indexOf(e)>-1}function GR(){}class UR{constructor(){UR.constructor_.apply(this,arguments)}setOrdinate(t,e,i){}size(){}getOrdinate(t,e){}getCoordinate(){if(1===arguments.length){}else if(2===arguments.length){}}getCoordinateCopy(t){}getDimension(){}getX(t){}expandEnvelope(t){}copy(){}getY(t){}toCoordinateArray(){}getClass(){return UR}get interfaces_(){return[GR]}}UR.constructor_=function(){},UR.X=0,UR.Y=1,UR.Z=2,UR.M=3;class qR{constructor(){qR.constructor_.apply(this,arguments)}create(){if(1===arguments.length){if(arguments[0]instanceof Array){}else if(kR(arguments[0],UR)){}}else if(2===arguments.length){}}getClass(){return qR}get interfaces_(){return[]}}function VR(t){this.message=t}qR.constructor_=function(){};class zR{constructor(){zR.constructor_.apply(this,arguments)}filter(t){}getClass(){return zR}get interfaces_(){return[]}}function YR(){}function jR(){}zR.constructor_=function(){};class HR{constructor(){HR.constructor_.apply(this,arguments)}static equalsWithTolerance(t,e,i){return Math.abs(t-e)<=i}getClass(){return HR}get interfaces_(){return[]}}function XR(t,e){this.low=0|e,this.high=0|t}function WR(){}var KR,JR,ZR;function $R(){}function tN(t){this.name="RuntimeException",this.message=t,this.stack=(new Error).stack,Error.call(this,t)}HR.constructor_=function(){},XR.toBinaryString=function(t){for(var e="",i=2147483648;i>0;i>>>=1)e+=(t.high&i)===i?"1":"0";for(i=2147483648;i>0;i>>>=1)e+=(t.low&i)===i?"1":"0";return e},WR.isNaN=t=>Number.isNaN(t),WR.isInfinite=t=>!Number.isFinite(t),WR.MAX_VALUE=Number.MAX_VALUE,"function"==typeof Float64Array&&"function"==typeof Int32Array?(KR=2146435072,JR=new Float64Array(1),ZR=new Int32Array(JR.buffer),WR.doubleToLongBits=function(t){JR[0]=t;var e=0|ZR[0],i=0|ZR[1];return(i&KR)===KR&&1048575&i&&0!==e&&(e=0,i=2146959360),new XR(i,e)},WR.longBitsToDouble=function(t){return ZR[0]=t.low,ZR[1]=t.high,JR[0]}):function(){var t=1023,e=Math.log2,i=Math.floor,n=Math.pow,r=function(){for(var t=53;t>0;t--){var r=n(2,t)-1;if(i(e(r))+1===t)return r}return 0}();WR.doubleToLongBits=function(s){var o,a,l,h,c,u,g,d,p;if(s<0||1/s===Number.NEGATIVE_INFINITY?(u=1<<31,s=-s):u=0,0===s)return new XR(d=u,p=0);if(s===1/0)return new XR(d=2146435072|u,p=0);if(s!=s)return new XR(d=2146959360,p=0);if(h=0,p=0,(o=i(s))>1)if(o<=r)(h=i(e(o)))<=20?(p=0,d=o<<20-h&1048575):(p=o%(a=n(2,l=h-20))<<32-l,d=o/a&1048575);else for(l=o,p=0;0!==(l=i(a=l/2));)h++,p>>>=1,p|=(1&d)<<31,d>>>=1,a!==l&&(d|=524288);if(g=h+t,c=0===o,o=s-o,h<52&&0!==o)for(l=0;;){if((a=2*o)>=1?(o=a-1,c?(g--,c=!1):(l<<=1,l|=1,h++)):(o=a,c?0==--g&&(h++,c=!1):(l<<=1,h++)),20===h)d|=l,l=0;else if(52===h){p|=l;break}if(1===a){h<20?d|=l<<20-h:h<52&&(p|=l<<52-h);break}}return d|=g<<20,new XR(d|=u,p)},WR.longBitsToDouble=function(e){var i,r,s,o,a=e.high,l=e.low;r=a&1<<31?-1:1,s=((2146435072&a)>>20)-t,o=0,i=1<<19;for(var h=1;h<=20;h++)a&i&&(o+=n(2,-h)),i>>>=1;i=1<<31;for(h=21;h<=52;h++)l&i&&(o+=n(2,-h)),i>>>=1;if(-1023===s){if(0===o)return 0*r;s=-1022}else{if(1024===s)return 0===o?r/0:NaN;o+=1}return r*o*n(2,s)}}(),tN.prototype=Object.create(Error.prototype),tN.prototype.constructor=Error;class eN extends tN{constructor(){super(),eN.constructor_.apply(this,arguments)}getClass(){return eN}get interfaces_(){return[]}}eN.constructor_=function(){if(0===arguments.length)tN.constructor_.call(this);else if(1===arguments.length){let t=arguments[0];tN.constructor_.call(this,t)}};class iN{constructor(){iN.constructor_.apply(this,arguments)}static shouldNeverReachHere(){if(0===arguments.length)iN.shouldNeverReachHere(null);else if(1===arguments.length){let t=arguments[0];throw new eN("Should never reach here"+(null!==t?": "+t:""))}}static isTrue(){if(1===arguments.length){let t=arguments[0];iN.isTrue(t,null)}else if(2===arguments.length){let t=arguments[1];if(!arguments[0])throw null===t?new eN:new eN(t)}}static equals(){if(2===arguments.length){let t=arguments[0],e=arguments[1];iN.equals(t,e,null)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];if(!e.equals(t))throw new eN("Expected "+t+" but encountered "+e+(null!==i?": "+i:""))}}getClass(){return iN}get interfaces_(){return[]}}iN.constructor_=function(){};class nN{constructor(){nN.constructor_.apply(this,arguments)}static hashCode(){if(1===arguments.length&&"number"==typeof arguments[0]){let e=arguments[0];var t=WR.doubleToLongBits(e);return Math.trunc(t^t>>>32)}}setOrdinate(t,e){switch(t){case nN.X:this.x=e;break;case nN.Y:this.y=e;break;case nN.Z:this.z=e;break;default:throw new VR("Invalid ordinate index: "+t)}}equals2D(){if(1===arguments.length){let t=arguments[0];return this.x===t.x&&this.y===t.y}if(2===arguments.length){let t=arguments[0],e=arguments[1];return!!HR.equalsWithTolerance(this.x,t.x,e)&&!!HR.equalsWithTolerance(this.y,t.y,e)}}getOrdinate(t){switch(t){case nN.X:return this.x;case nN.Y:return this.y;case nN.Z:return this.z}throw new VR("Invalid ordinate index: "+t)}equals3D(t){return this.x===t.x&&this.y===t.y&&(this.z===t.z||WR.isNaN(this.z)&&WR.isNaN(t.z))}equals(t){return t instanceof nN&&this.equals2D(t)}equalInZ(t,e){return HR.equalsWithTolerance(this.z,t.z,e)}compareTo(t){var e=t;return this.xe.x?1:this.ye.y?1:0}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return iN.shouldNeverReachHere("this shouldn't happen because this class is Cloneable"),null;throw t}}copy(){return new nN(this)}toString(){return"("+this.x+", "+this.y+", "+this.z+")"}distance3D(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return Math.sqrt(e*e+i*i+n*n)}distance(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*t+nN.hashCode(this.x))+nN.hashCode(this.y)}setCoordinate(t){this.x=t.x,this.y=t.y,this.z=t.z}getClass(){return nN}get interfaces_(){return[YR,GR,jR]}}class rN{constructor(){rN.constructor_.apply(this,arguments)}static compare(t,e){return te?1:WR.isNaN(t)?WR.isNaN(e)?0:-1:WR.isNaN(e)?1:0}compare(t,e){var i=t,n=e,r=rN.compare(i.x,n.x);if(0!==r)return r;var s=rN.compare(i.y,n.y);return 0!==s?s:this._dimensionsToTest<=2?0:rN.compare(i.z,n.z)}getClass(){return rN}get interfaces_(){return[$R]}}rN.constructor_=function(){if(this._dimensionsToTest=2,0===arguments.length)rN.constructor_.call(this,2);else if(1===arguments.length){let t=arguments[0];if(2!==t&&3!==t)throw new VR("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}},nN.DimensionalComparator=rN,nN.constructor_=function(){if(this.x=null,this.y=null,this.z=null,0===arguments.length)nN.constructor_.call(this,0,0);else if(1===arguments.length){let t=arguments[0];nN.constructor_.call(this,t.x,t.y,t.z)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];nN.constructor_.call(this,t,e,nN.NULL_ORDINATE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this.x=t,this.y=e,this.z=i}},nN.serialVersionUID=0x5cbf2c235c7e5800,nN.NULL_ORDINATE=WR.NaN,nN.X=0,nN.Y=1,nN.Z=2;class sN{constructor(){sN.constructor_.apply(this,arguments)}static intersects(){if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];return i.x>=(t.xe.x?t.x:e.x)&&i.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=Math.min(o.x,a.x),e=Math.max(o.x,a.x),i=Math.min(r.x,s.x),n=Math.max(r.x,s.x);return!(i>e)&&(!(ne)&&!(nt._minx?this._minx:t._minx,i=this._miny>t._miny?this._miny:t._miny,n=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return!this.isNull()&&(t>=this._minx&&t<=this._maxx&&e>=this._miny&&e<=this._maxy)}}intersects(){if(1===arguments.length){if(arguments[0]instanceof sN){let t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx)&&(!((t.x>e.x?t.x:e.x)this._maxy)&&!((t.y>e.y?t.y:e.y)this._maxx||tthis._maxy||ethis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.isNull()?(this._minx=t,this._maxx=t,this._miny=e,this._maxy=e):(tthis._maxx&&(this._maxx=t),ethis._maxy&&(this._maxy=e))}}minExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0}translate(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)}toString(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"}setToNull(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1}getHeight(){return this.isNull()?0:this._maxy-this._miny}maxExtent(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e}expandBy(){if(1===arguments.length){let t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=e,this._maxy+=e,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}}contains(){if(1===arguments.length){if(arguments[0]instanceof sN){let t=arguments[0];return this.covers(t)}if(arguments[0]instanceof nN){let t=arguments[0];return this.covers(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];return this.covers(t,e)}}centre(){return this.isNull()?null:new nN((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)}init(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof sN){let t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];tt._maxx&&(e=this._minx-t._maxx);var i=0;return this._maxyt._maxy&&(i=this._miny-t._maxy),0===e?i:0===i?e:Math.sqrt(e*e+i*i)}hashCode(){var t=17;return t=37*(t=37*(t=37*(t=37*t+nN.hashCode(this._minx))+nN.hashCode(this._maxx))+nN.hashCode(this._miny))+nN.hashCode(this._maxy)}getClass(){return sN}get interfaces_(){return[YR,jR]}}sN.constructor_=function(){if(this._minx=null,this._maxx=null,this._miny=null,this._maxy=null,0===arguments.length)this.init();else if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof sN){let t=arguments[0];this.init(t)}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t.x,e.x,t.y,e.y)}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];this.init(t,e,i,n)}},sN.serialVersionUID=0x51845cd552189800;class oN{constructor(){oN.constructor_.apply(this,arguments)}isGeometryCollection(){return this.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION}getFactory(){return this._factory}getGeometryN(t){return this}getArea(){return 0}isRectangle(){return!1}equals(){if(arguments[0]instanceof oN){let t=arguments[0];return null!==t&&this.equalsTopo(t)}if(arguments[0]instanceof Object){let e=arguments[0];if(!(e instanceof oN))return!1;var t=e;return this.equalsExact(t)}}equalsExact(t){return this===t||this.equalsExact(t,0)}geometryChanged(){this.apply(oN.geometryChangedFilter)}geometryChangedAction(){this._envelope=null}equalsNorm(t){return null!==t&&this.norm().equalsExact(t.norm())}getLength(){return 0}getNumGeometries(){return 1}compareTo(){if(1===arguments.length){let e=arguments[0];var t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e)}if(2===arguments.length){let e=arguments[0],i=arguments[1];t=e;return this.getTypeCode()!==t.getTypeCode()?this.getTypeCode()-t.getTypeCode():this.isEmpty()&&t.isEmpty()?0:this.isEmpty()?-1:t.isEmpty()?1:this.compareToSameClass(e,i)}}getUserData(){return this._userData}getSRID(){return this._SRID}getEnvelope(){return this.getFactory().toGeometry(this.getEnvelopeInternal())}checkNotGeometryCollection(t){if(t.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION)throw new VR("This method does not support GeometryCollection arguments")}equal(t,e,i){return 0===i?t.equals(e):t.distance(e)<=i}norm(){var t=this.copy();return t.normalize(),t}getPrecisionModel(){return this._factory.getPrecisionModel()}getEnvelopeInternal(){return null===this._envelope&&(this._envelope=this.computeEnvelopeInternal()),new sN(this._envelope)}setSRID(t){this._SRID=t}setUserData(t){this._userData=t}compare(t,e){for(var i=t.iterator(),n=e.iterator();i.hasNext()&&n.hasNext();){var r=i.next(),s=n.next(),o=r.compareTo(s);if(0!==o)return o}return i.hasNext()?1:n.hasNext()?-1:0}hashCode(){return this.getEnvelopeInternal().hashCode()}isGeometryCollectionOrDerived(){return this.getTypeCode()===oN.TYPECODE_GEOMETRYCOLLECTION||this.getTypeCode()===oN.TYPECODE_MULTIPOINT||this.getTypeCode()===oN.TYPECODE_MULTILINESTRING||this.getTypeCode()===oN.TYPECODE_MULTIPOLYGON}get interfaces_(){return[GR,YR,jR]}getClass(){return oN}static hasNonEmptyElements(t){for(var e=0;e0}getClass(){return cN}get interfaces_(){return[lN]}}cN.constructor_=function(){};class uN{constructor(){uN.constructor_.apply(this,arguments)}isInBoundary(t){return t>1}getClass(){return uN}get interfaces_(){return[lN]}}uN.constructor_=function(){};class gN{constructor(){gN.constructor_.apply(this,arguments)}isInBoundary(t){return 1===t}getClass(){return gN}get interfaces_(){return[lN]}}function dN(){}function pN(){}function AN(t){this.message=t||""}function fN(){}function mN(t){this.message=t||""}function _N(t){this.message=t||""}function yN(){this.array_=[],arguments[0]instanceof pN&&this.addAll(arguments[0])}gN.constructor_=function(){},lN.Mod2BoundaryNodeRule=hN,lN.EndPointBoundaryNodeRule=cN,lN.MultiValentEndPointBoundaryNodeRule=uN,lN.MonoValentEndPointBoundaryNodeRule=gN,lN.constructor_=function(){},lN.MOD2_BOUNDARY_RULE=new hN,lN.ENDPOINT_BOUNDARY_RULE=new cN,lN.MULTIVALENT_ENDPOINT_BOUNDARY_RULE=new uN,lN.MONOVALENT_ENDPOINT_BOUNDARY_RULE=new gN,lN.OGC_SFS_BOUNDARY_RULE=lN.MOD2_BOUNDARY_RULE,dN.prototype.hasNext=function(){},dN.prototype.next=function(){},dN.prototype.remove=function(){},pN.prototype.add=function(){},pN.prototype.addAll=function(){},pN.prototype.isEmpty=function(){},pN.prototype.iterator=function(){},pN.prototype.size=function(){},pN.prototype.toArray=function(){},pN.prototype.remove=function(){},AN.prototype=new Error,AN.prototype.name="IndexOutOfBoundsException",fN.prototype=Object.create(pN.prototype),fN.prototype.constructor=fN,fN.prototype.get=function(){},fN.prototype.set=function(){},fN.prototype.isEmpty=function(){},mN.prototype=new Error,mN.prototype.name="NoSuchElementException",_N.prototype=new Error,_N.prototype.name="OperationNotSupported",yN.prototype=Object.create(fN.prototype),yN.prototype.constructor=yN,yN.prototype.ensureCapacity=function(){},yN.prototype.interfaces_=[fN,pN],yN.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],0,arguments[1]),!0},yN.prototype.clear=function(){this.array_=[]},yN.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},yN.prototype.set=function(t,e){var i=this.array_[t];return this.array_[t]=e,i},yN.prototype.iterator=function(){return new IN(this)},yN.prototype.get=function(t){if(t<0||t>=this.size())throw new AN;return this.array_[t]},yN.prototype.isEmpty=function(){return 0===this.array_.length},yN.prototype.size=function(){return this.array_.length},yN.prototype.toArray=function(){for(var t=[],e=0,i=this.array_.length;e=1)if(this.get(this.size()-1).equals2D(t))return null;super.add.call(this,t)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return this.add(t,e),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){let e=arguments[0],i=arguments[1];if(arguments[2])for(var t=0;t=0;t--)this.add(e[t],i);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof nN){let t=arguments[0],i=arguments[1];if(!arguments[2]){var e=this.size();if(e>0){if(t>0)if(this.get(t-1).equals2D(i))return null;if(ts&&(i=-1);for(t=r;t!==s;t+=i)this.add(e[t],n);return!0}}closeRing(){this.size()>0&&this.add(new nN(this.get(0)),!1)}getClass(){return EN}get interfaces_(){return[]}}EN.constructor_=function(){if(0===arguments.length);else if(1===arguments.length){let t=arguments[0];this.ensureCapacity(t.length),this.add(t,!0)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.ensureCapacity(t.length),this.add(t,e)}},EN.coordArrayType=new Array(0).fill(null);class CN{constructor(){CN.constructor_.apply(this,arguments)}static log10(t){var e=Math.log(t);return WR.isInfinite(e)||WR.isNaN(e)?e:e/CN.LOG_10}static min(t,e,i,n){var r=t;return ei?i:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){let t=arguments[0],e=arguments[1],i=arguments[2];return ti?i:t}}static wrap(t,e){return t<0?e- -t%e:t%e}static max(){if(3===arguments.length){let e=arguments[1],i=arguments[2];return e>(t=arguments[0])&&(t=e),i>t&&(t=i),t}if(4===arguments.length){let e=arguments[1],i=arguments[2],n=arguments[3];var t;return e>(t=arguments[0])&&(t=e),i>t&&(t=i),n>t&&(t=n),t}}static average(t,e){return(t+e)/2}getClass(){return CN}get interfaces_(){return[]}}function vN(){}CN.constructor_=function(){},CN.LOG_10=Math.log(10),vN.arraycopy=(t,e,i,n,r)=>{let s=0;for(let o=e;o({"line.separator":"\n"}[t]);class xN{constructor(){xN.constructor_.apply(this,arguments)}static isRing(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])}static ptNotInList(t,e){for(var i=0;i=t?e:[]}static indexOf(t,e){for(var i=0;i0)&&(e=t[i]);return e}static extract(t,e,i){e=CN.clamp(e,0,t.length);var n=(i=CN.clamp(i,-1,t.length))-e+1;i<0&&(n=0),e>=t.length&&(n=0),in.length)return 1;if(0===i.length)return 0;var r=xN.compare(i,n);return xN.isEqualReversed(i,n)?0:r}OLDcompare(t,e){var i=t,n=e;if(i.lengthn.length)return 1;if(0===i.length)return 0;for(var r=xN.increasingDirection(i),s=xN.increasingDirection(n),o=r>0?0:i.length-1,a=s>0?0:i.length-1,l=0;l0))return e.value;e=e.right}}return null},ON.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:0,getValue(){return this.value},getKey(){return this.key}},this.size_=1,null;var i,n,r=this.root_;do{if(i=r,(n=t.compareTo(r.key))<0)r=r.left;else{if(!(n>0)){var s=r.value;return r.value=e,s}r=r.right}}while(null!==r);var o={key:t,left:null,right:null,value:e,parent:i,color:0,getValue(){return this.value},getKey(){return this.key}};return n<0?i.left=o:i.right=o,this.fixAfterInsertion(o),this.size_++,null},ON.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!=this.root_&&1==t.parent.color;){var e;if(NN(t)==FN(NN(NN(t))))1==RN(e=DN(NN(NN(t))))?(PN(NN(t),0),PN(e,0),PN(NN(NN(t)),1),t=NN(NN(t))):(t==DN(NN(t))&&(t=NN(t),this.rotateLeft(t)),PN(NN(t),0),PN(NN(NN(t)),1),this.rotateRight(NN(NN(t))));else 1==RN(e=FN(NN(NN(t))))?(PN(NN(t),0),PN(e,0),PN(NN(NN(t)),1),t=NN(NN(t))):(t==FN(NN(t))&&(t=NN(t),this.rotateRight(t)),PN(NN(t),0),PN(NN(NN(t)),1),this.rotateLeft(NN(NN(t))))}this.root_.color=0},ON.prototype.values=function(){var t=new yN,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=ON.successor(e));)t.add(e.value);return t},ON.prototype.entrySet=function(){var t=new MN,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=ON.successor(e));)t.add(e);return t},ON.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.left==t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},ON.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null==t.parent?this.root_=e:t.parent.right==t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},ON.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},ON.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}e=t.parent;for(var i=t;null!==e&&i===e.right;)i=e,e=e.parent;return e},ON.prototype.size=function(){return this.size_},ON.prototype.containsKey=function(t){for(var e=this.root_;null!==e;){var i=t.compareTo(e.key);if(i<0)e=e.left;else{if(!(i>0))return!0;e=e.right}}return!1};class QN{constructor(){QN.constructor_.apply(this,arguments)}getClass(){return QN}get interfaces_(){return[]}}function kN(){}function GN(){this.array_=[],arguments[0]instanceof pN&&this.addAll(arguments[0])}QN.constructor_=function(){},kN.prototype=new BN,GN.prototype=new kN,GN.prototype.contains=function(t){for(var e=0,i=this.array_.length;et<=32&&t>=0||127==t,zN.toUpperCase=t=>t.toUpperCase();class YN{constructor(){YN.constructor_.apply(this,arguments)}static toDimensionSymbol(t){switch(t){case YN.FALSE:return YN.SYM_FALSE;case YN.TRUE:return YN.SYM_TRUE;case YN.DONTCARE:return YN.SYM_DONTCARE;case YN.P:return YN.SYM_P;case YN.L:return YN.SYM_L;case YN.A:return YN.SYM_A}throw new VR("Unknown dimension value: "+t)}static toDimensionValue(t){switch(zN.toUpperCase(t)){case YN.SYM_FALSE:return YN.FALSE;case YN.SYM_TRUE:return YN.TRUE;case YN.SYM_DONTCARE:return YN.DONTCARE;case YN.SYM_P:return YN.P;case YN.SYM_L:return YN.L;case YN.SYM_A:return YN.A}throw new VR("Unknown dimension symbol: "+t)}getClass(){return YN}get interfaces_(){return[]}}YN.constructor_=function(){},YN.P=0,YN.L=1,YN.A=2,YN.FALSE=-1,YN.TRUE=-2,YN.DONTCARE=-3,YN.SYM_FALSE="F",YN.SYM_TRUE="T",YN.SYM_DONTCARE="*",YN.SYM_P="0",YN.SYM_L="1",YN.SYM_A="2";class jN{constructor(){jN.constructor_.apply(this,arguments)}filter(t){}getClass(){return jN}get interfaces_(){return[]}}jN.constructor_=function(){};class HN{constructor(){HN.constructor_.apply(this,arguments)}filter(t,e){}isDone(){}isGeometryChanged(){}getClass(){return HN}get interfaces_(){return[]}}HN.constructor_=function(){};class XN extends oN{constructor(){super(),XN.constructor_.apply(this,arguments)}computeEnvelopeInternal(){for(var t=new sN,e=0;e=0;){var o=r.substring(0,s);n.add(o),s=(r=r.substring(s+i)).indexOf(e)}r.length>0&&n.add(r);for(var a=new Array(n.size()).fill(null),l=0;l0)for(var s=r;s0&&i.append(" ");for(var r=0;r0&&i.append(","),i.append(rP.toString(s.getOrdinate(n,r)))}return i.append(")"),i.toString()}}static ensureValidRing(t,e){var i=e.size();return 0===i?e:i<=3?oP.createClosedRing(t,e,4):e.getOrdinate(0,UR.X)===e.getOrdinate(i-1,UR.X)&&e.getOrdinate(0,UR.Y)===e.getOrdinate(i-1,UR.Y)?e:oP.createClosedRing(t,e,i+1)}static createClosedRing(t,e,i){var n=t.create(i,e.getDimension()),r=e.size();oP.copy(e,0,n,0,r);for(var s=r;s0){var i=this._points.copy();oP.reverse(i),this._points=i}return null}}}getCoordinate(){return this.isEmpty()?null:this._points.getCoordinate(0)}getBoundaryDimension(){return this.isClosed()?YN.FALSE:0}isClosed(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))}getEndPoint(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)}getTypeCode(){return oN.TYPECODE_LINESTRING}getDimension(){return 1}getLength(){return ZN.ofLine(this._points)}getNumPoints(){return this._points.size()}reverse(){var t=this._points.copy();return oP.reverse(t),this.getFactory().createLineString(t)}compareToSameClass(){if(1===arguments.length){for(var t=arguments[0],e=0,i=0;e= 2)");this._points=t}isCoordinate(t){for(var e=0;et?1:0},gP.isNaN=t=>Number.isNaN(t);class dP{constructor(){dP.constructor_.apply(this,arguments)}static sqr(t){return dP.valueOf(t).selfMultiply(t)}static valueOf(){if("string"==typeof arguments[0]){let t=arguments[0];return dP.parse(t)}if("number"==typeof arguments[0]){return new dP(arguments[0])}}static sqrt(t){return dP.valueOf(t).sqrt()}static parse(t){for(var e=0,i=t.length;zN.isWhitespace(t.charAt(e));)e++;var n=!1;if(e=i);){var h=t.charAt(e);if(e++,zN.isDigit(h)){var c=h-"0";s.selfMultiply(dP.TEN),s.selfAdd(c),o++}else{if("."!==h){if("e"===h||"E"===h){var u=t.substring(e);try{l=gP.parseInt(u)}catch(e){throw e instanceof NumberFormatException?new NumberFormatException("Invalid exponent "+u+" in string "+t):e}break}throw new NumberFormatException("Unexpected character '"+h+"' at position "+e+" in string "+t)}a=o}}var g=s,d=o-a-l;if(0===d)g=s;else if(d>0){var p=dP.TEN.pow(d);g=s.divide(p)}else if(d<0){p=dP.TEN.pow(-d);g=s.multiply(p)}return n?g.negate():g}static createNaN(){return new dP(WR.NaN,WR.NaN)}static copy(t){return new dP(t)}static magnitude(t){var e=Math.abs(t),i=Math.log(e)/Math.log(10),n=Math.trunc(Math.floor(i));return 10*Math.pow(10,n)<=e&&(n+=1),n}static stringOfChar(t,e){for(var i=new uP,n=0;n9?(c=!0,u="9"):u="0"+h,o.append(u),i=i.subtract(dP.valueOf(h)).multiply(dP.TEN),c&&i.selfAdd(dP.TEN);var g=!0,d=dP.magnitude(i._hi);if(d<0&&Math.abs(d)>=a-l&&(g=!1),!g)break}return e[0]=n,o.toString()}sqr(){return this.multiply(this)}doubleValue(){return this._hi+this._lo}subtract(){if(arguments[0]instanceof dP){let t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){let t=arguments[0];return this.add(-t)}}equals(){if(1===arguments.length&&arguments[0]instanceof dP){let t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}}isZero(){return 0===this._hi&&0===this._lo}selfSubtract(){if(arguments[0]instanceof dP){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}}getSpecialNumberString(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null}min(t){return this.le(t)?this:t}selfDivide(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfDivide(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i,n,r=null,s=null,o=null,a=null;return i=this._hi/l,a=(r=(o=dP.SPLIT*i)-(r=o-i))*(s=(a=dP.SPLIT*l)-(s=a-l))-(n=i*l)+r*(e=l-s)+(t=i-r)*s+t*e,a=i+(o=(this._hi-n-a+this._lo-i*h)/l),this._hi=a,this._lo=i-a+o,this}}dump(){return"DD<"+this._hi+", "+this._lo+">"}divide(){if(arguments[0]instanceof dP){let l=arguments[0];var t,e,i,n,r=null,s=null,o=null,a=null;return t=(i=this._hi/l._hi)-(r=(o=dP.SPLIT*i)-(r=o-i)),a=r*(s=(a=dP.SPLIT*l._hi)-(s=a-l._hi))-(n=i*l._hi)+r*(e=l._hi-s)+t*s+t*e,o=(this._hi-n-a+this._lo-i*l._lo)/l._hi,new dP(a=i+o,i-a+o)}if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)?dP.createNaN():dP.copy(this).selfDivide(t,0)}}ge(t){return this._hi>t._hi||this._hi===t._hi&&this._lo>=t._lo}pow(t){if(0===t)return dP.valueOf(1);var e=new dP(this),i=dP.valueOf(1),n=Math.abs(t);if(n>1)for(;n>0;)n%2==1&&i.selfMultiply(e),(n/=2)>0&&(e=e.sqr());else i=e;return t<0?i.reciprocal():i}ceil(){if(this.isNaN())return dP.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new dP(t,e)}compareTo(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0}rint(){return this.isNaN()?this:this.add(.5).floor()}setValue(){if(arguments[0]instanceof dP){let t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){let t=arguments[0];return this.init(t),this}}max(t){return this.ge(t)?this:t}sqrt(){if(this.isZero())return dP.valueOf(0);if(this.isNegative())return dP.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,i=dP.valueOf(e),n=this.subtract(i.sqr())._hi*(.5*t);return i.add(n)}selfAdd(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){let o=arguments[0];var t=null,e=null,i=null,n=null,r=null,s=null;return n=(i=this._hi+o)-(r=i-this._hi),e=(s=(n=o-r+(this._hi-n))+this._lo)+(i-(t=i+s)),this._hi=t+e,this._lo=e+(t-this._hi),this}}else if(2===arguments.length){let c=arguments[0],u=arguments[1];t=null,e=null;var o,a=null;i=null,n=null,r=null,s=null;i=this._hi+c,o=this._lo+u,n=i-(r=i-this._hi),a=o-(s=o-this._lo);var l=(t=i+(r=(n=c-r+(this._hi-n))+o))+(r=(a=u-s+(this._lo-a))+(e=r+(i-t))),h=r+(t-l);return this._hi=l,this._lo=h,this}}selfMultiply(){if(1===arguments.length){if(arguments[0]instanceof dP){let t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){let t=arguments[0];return this.selfMultiply(t,0)}}else if(2===arguments.length){let l=arguments[0],h=arguments[1];var t,e,i=null,n=null,r=null,s=null;i=(r=dP.SPLIT*this._hi)-this._hi,s=dP.SPLIT*l,i=r-i,t=this._hi-i,n=s-l;var o=(r=this._hi*l)+(s=i*(n=s-n)-r+i*(e=l-n)+t*n+t*e+(this._hi*h+this._lo*l)),a=s+(i=r-o);return this._hi=o,this._lo=a,this}}selfSqr(){return this.selfMultiply(this)}floor(){if(this.isNaN())return dP.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new dP(t,e)}negate(){return this.isNaN()?this:new dP(-this._hi,-this._lo)}clone(){try{return null}catch(t){if(t instanceof CloneNotSupportedException)return null;throw t}}multiply(){if(arguments[0]instanceof dP){let t=arguments[0];return t.isNaN()?dP.createNaN():dP.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)?dP.createNaN():dP.copy(this).selfMultiply(t,0)}}isNaN(){return WR.isNaN(this._hi)}intValue(){return Math.trunc(this._hi)}toString(){var t=dP.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()}toStandardNotation(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!0,e),n=e[0]+1,r=i;if("."===i.charAt(0))r="0"+i;else if(n<0)r="0."+dP.stringOfChar("0",-n)+i;else if(-1===i.indexOf(".")){var s=n-i.length;r=i+dP.stringOfChar("0",s)+".0"}return this.isNegative()?"-"+r:r}reciprocal(){var t,e,i,n,r=null,s=null,o=null,a=null;t=(i=1/this._hi)-(r=(o=dP.SPLIT*i)-(r=o-i)),s=(a=dP.SPLIT*this._hi)-this._hi;var l=i+(o=(1-(n=i*this._hi)-(a=r*(s=a-s)-n+r*(e=this._hi-s)+t*s+t*e)-i*this._lo)/this._hi);return new dP(l,i-l+o)}toSciNotation(){if(this.isZero())return dP.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),i=this.extractSignificantDigits(!1,e),n=dP.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===i.charAt(0))throw new IllegalStateException("Found leading zero: "+i);var r="";i.length>1&&(r=i.substring(1));var s=i.charAt(0)+"."+r;return this.isNegative()?"-"+s+n:s+n}abs(){return this.isNaN()?dP.NaN:this.isNegative()?this.negate():new dP(this)}isPositive(){return this._hi>0||0===this._hi&&this._lo>0}lt(t){return this._hit._hi||this._hi===t._hi&&this._lo>t._lo}isNegative(){return this._hi<0||0===this._hi&&this._lo<0}trunc(){return this.isNaN()?dP.NaN:this.isPositive()?this.floor():this.ceil()}signum(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0}getClass(){return dP}get interfaces_(){return[jR,YR,GR]}}dP.constructor_=function(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){let t=arguments[0];this.init(t)}else if(arguments[0]instanceof dP){let t=arguments[0];this.init(t)}else if("string"==typeof arguments[0]){let t=arguments[0];dP.constructor_.call(this,dP.parse(t))}}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.init(t,e)}},dP.PI=new dP(3.141592653589793,12246467991473532e-32),dP.TWO_PI=new dP(6.283185307179586,24492935982947064e-32),dP.PI_2=new dP(1.5707963267948966,6123233995736766e-32),dP.E=new dP(2.718281828459045,14456468917292502e-32),dP.NaN=new dP(WR.NaN,WR.NaN),dP.EPS=123259516440783e-46,dP.SPLIT=134217729,dP.MAX_PRINT_DIGITS=32,dP.TEN=dP.valueOf(10),dP.ONE=dP.valueOf(1),dP.SCI_NOT_EXPONENT_CHAR="E",dP.SCI_NOT_ZERO="0.0E0";class pP{constructor(){pP.constructor_.apply(this,arguments)}static orientationIndex(t,e,i){var n=pP.orientationIndexFilter(t,e,i);if(n<=1)return n;var r=dP.valueOf(e.x).selfAdd(-t.x),s=dP.valueOf(e.y).selfAdd(-t.y),o=dP.valueOf(i.x).selfAdd(-e.x),a=dP.valueOf(i.y).selfAdd(-e.y);return r.selfMultiply(a).selfSubtract(s.selfMultiply(o)).signum()}static signOfDet2x2(){if(arguments[0]instanceof dP){let t=arguments[1],e=arguments[2],i=arguments[3];return arguments[0].multiply(i).selfSubtract(t.multiply(e)).signum()}if("number"==typeof arguments[0]){let r=arguments[0],s=arguments[1],o=arguments[2],a=arguments[3];var t=dP.valueOf(r),e=dP.valueOf(s),i=dP.valueOf(o),n=dP.valueOf(a);return t.multiply(n).selfSubtract(e.multiply(i)).signum()}}static intersection(t,e,i,n){var r=dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(dP.valueOf(e.x).selfSubtract(t.x)),s=dP.valueOf(n.x).selfSubtract(i.x).selfMultiply(dP.valueOf(e.y).selfSubtract(t.y)),o=r.subtract(s),a=dP.valueOf(n.x).selfSubtract(i.x).selfMultiply(dP.valueOf(t.y).selfSubtract(i.y)),l=dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(dP.valueOf(t.x).selfSubtract(i.x)),h=a.subtract(l).selfDivide(o).doubleValue(),c=dP.valueOf(t.x).selfAdd(dP.valueOf(e.x).selfSubtract(t.x).selfMultiply(h)).doubleValue(),u=dP.valueOf(e.x).selfSubtract(t.x).selfMultiply(dP.valueOf(t.y).selfSubtract(i.y)),g=dP.valueOf(e.y).selfSubtract(t.y).selfMultiply(dP.valueOf(t.x).selfSubtract(i.x)),d=u.subtract(g).selfDivide(o).doubleValue(),p=dP.valueOf(i.y).selfAdd(dP.valueOf(n.y).selfSubtract(i.y).selfMultiply(d)).doubleValue();return new nN(c,p)}static orientationIndexFilter(t,e,i){var n=null,r=(t.x-i.x)*(e.y-i.y),s=(t.y-i.y)*(e.x-i.x),o=r-s;if(r>0){if(s<=0)return pP.signum(o);n=r+s}else{if(!(r<0))return pP.signum(o);if(s>=0)return pP.signum(o);n=-r-s}var a=pP.DP_SAFE_EPSILON*n;return o>=a||-o>=a?pP.signum(o):2}static signum(t){return t>0?1:t<0?-1:0}getClass(){return pP}get interfaces_(){return[]}}pP.constructor_=function(){},pP.DP_SAFE_EPSILON=1e-15;class AP{constructor(){AP.constructor_.apply(this,arguments)}static index(t,e,i){return pP.orientationIndex(t,e,i)}static isCCW(t){var e=t.length-1;if(e<3)throw new VR("Ring has fewer than 4 points, so orientation cannot be determined");for(var i=t[0],n=0,r=1;r<=e;r++){var s=t[r];s.y>i.y&&(i=s,n=r)}var o=n;do{(o-=1)<0&&(o=e)}while(t[o].equals2D(i)&&o!==n);var a=n;do{a=(a+1)%e}while(t[a].equals2D(i)&&a!==n);var l=t[o],h=t[a];if(l.equals2D(i)||h.equals2D(i)||l.equals2D(h))return!1;var c=AP.index(l,i,h);return 0===c?l.x>h.x:c>0}getClass(){return AP}get interfaces_(){return[]}}AP.constructor_=function(){},AP.CLOCKWISE=-1,AP.RIGHT=AP.CLOCKWISE,AP.COUNTERCLOCKWISE=1,AP.LEFT=AP.COUNTERCLOCKWISE,AP.COLLINEAR=0,AP.STRAIGHT=AP.COLLINEAR;class fP{constructor(){fP.constructor_.apply(this,arguments)}getClass(){return fP}get interfaces_(){return[]}}fP.constructor_=function(){};class mP extends oN{constructor(){super(),mP.constructor_.apply(this,arguments)}computeEnvelopeInternal(){return this._shell.getEnvelopeInternal()}getCoordinates(){if(this.isEmpty())return[];for(var t=new Array(this.getNumPoints()).fill(null),e=-1,i=this._shell.getCoordinates(),n=0;n=1&&this.getCoordinateSequence().size()= 4)")}getGeometryType(){return oN.TYPENAME_LINEARRING}copy(){return new yP(this._points.copy(),this._factory)}getClass(){return yP}get interfaces_(){return[]}}yP.constructor_=function(){if(arguments[0]instanceof Array&&arguments[1]instanceof QP){let t=arguments[0],e=arguments[1];yP.constructor_.call(this,e.getCoordinateSequenceFactory().create(t),e)}else if(kR(arguments[0],UR)&&arguments[1]instanceof QP){let t=arguments[0],e=arguments[1];aP.constructor_.call(this,t,e),this.validateConstruction()}},yP.MINIMUM_VALID_SIZE=4,yP.serialVersionUID=-0x3b229e262367a600;class IP extends XN{constructor(){super(),IP.constructor_.apply(this,arguments)}equalsExact(){if(2===arguments.length&&"number"==typeof arguments[1]&&arguments[0]instanceof oN){let t=arguments[0],e=arguments[1];return!!this.isEquivalentClass(t)&&super.equalsExact.call(this,t,e)}return super.equalsExact.apply(this,arguments)}getBoundaryDimension(){return 1}getTypeCode(){return oN.TYPECODE_MULTIPOLYGON}getDimension(){return 2}reverse(){for(var t=this._geometries.length,e=new Array(t).fill(null),i=0;i0){var t=new sP(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(e=3),e<2?new SP(t):new SP(t,e)}}getClass(){return bP}get interfaces_(){return[qR,jR]}}bP.constructor_=function(){},bP.serialVersionUID=-0x38e49fa6cf6f2e00,bP.instanceObject=new bP;var LP=Object.defineProperty;const BP=function(t,e){function i(t){if(!this||this.constructor!==i)return new i(t);this._keys=[],this._values=[],this._itp=[],this.objectOnly=e,t&&MP.call(this,t)}e||LP(t,"size",{get:NP});return t.constructor=i,i.prototype=t,i}({delete:function(t){this.has(t)&&(this._keys.splice(UN,1),this._values.splice(UN,1),this._itp.forEach((function(t){UN-1},has:function(t){return TP.call(this,this._keys,t)},get:function(t){return this.has(t)?this._values[UN]:void 0},set:function(t,e){return this.has(t)?this._values[UN]=e:this._values[this._keys.push(t)-1]=e,this},keys:function(){return RP(this._itp,this._keys)},values:function(){return RP(this._itp,this._values)},entries:function(){return RP(this._itp,this._keys,this._values)},forEach:function(t,e){for(var i=this.entries();;){var n=i.next();if(n.done)break;t.call(e,n.value[1],n.value[0],this)}},clear:function(){(this._keys||0).length=this._values.length=0}});function MP(t){this.add?t.forEach(this.add,this):t.forEach((function(t){this.set(t[0],t[1])}),this)}function TP(t,e){if(this.objectOnly&&e!==Object(e))throw new TypeError("Invalid value used as weak collection key");if(e!=e||0===e)for(UN=t.length;UN--&&((i=t[UN])!==(n=e)&&(i==i||n==n)););else UN=t.indexOf(e);var i,n;return UN>-1}function RP(t,e,i){var n=[0],r=!1;return t.push(n),{next:function(){var s,o=n[0];return!r&&ot.add(e))),t},FP.prototype.size=function(){return this.map_.size()};class DP{constructor(){DP.constructor_.apply(this,arguments)}static mostPrecise(t,e){return t.compareTo(e)>=0?t:e}equals(t){if(!(t instanceof DP))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale}compareTo(t){var e=t,i=this.getMaximumSignificantDigits(),n=e.getMaximumSignificantDigits();return new gP(i).compareTo(new gP(n))}getScale(){return this._scale}isFloating(){return this._modelType===DP.FLOATING||this._modelType===DP.FLOATING_SINGLE}getType(){return this._modelType}toString(){var t="UNKNOWN";return this._modelType===DP.FLOATING?t="Floating":this._modelType===DP.FLOATING_SINGLE?t="Floating-Single":this._modelType===DP.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t}makePrecise(){if("number"==typeof arguments[0]){let t=arguments[0];return WR.isNaN(t)||this._modelType===DP.FLOATING_SINGLE?t:this._modelType===DP.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof nN){let t=arguments[0];if(this._modelType===DP.FLOATING)return null;t.x=this.makePrecise(t.x),t.y=this.makePrecise(t.y)}}getMaximumSignificantDigits(){var t=16;return this._modelType===DP.FLOATING?t=16:this._modelType===DP.FLOATING_SINGLE?t=6:this._modelType===DP.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t}setScale(t){this._scale=Math.abs(t)}getClass(){return DP}get interfaces_(){return[jR,YR]}}class OP{constructor(){OP.constructor_.apply(this,arguments)}readResolve(){return OP.nameToTypeMap.get(this._name)}toString(){return this._name}getClass(){return OP}get interfaces_(){return[jR]}}OP.constructor_=function(){this._name=null;let t=arguments[0];this._name=t,OP.nameToTypeMap.put(t,this)},OP.serialVersionUID=-552860263173159e4,OP.nameToTypeMap=new FP,DP.Type=OP,DP.constructor_=function(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=DP.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof OP){let t=arguments[0];this._modelType=t,t===DP.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){let t=arguments[0];this._modelType=DP.FIXED,this.setScale(t)}else if(arguments[0]instanceof DP){let t=arguments[0];this._modelType=t._modelType,this._scale=t._scale}},DP.serialVersionUID=0x6bee6404e9a25c00,DP.FIXED=new OP("FIXED"),DP.FLOATING=new OP("FLOATING"),DP.FLOATING_SINGLE=new OP("FLOATING SINGLE"),DP.maximumPreciseValue=9007199254740992;class QP{constructor(){QP.constructor_.apply(this,arguments)}static toMultiPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toGeometryArray(t){if(null===t)return null;var e=new Array(t.size()).fill(null);return t.toArray(e)}static getDefaultCoordinateSequenceFactory(){return bP.instance()}static toMultiLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLineStringArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toMultiPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toLinearRingArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPointArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static toPolygonArray(t){var e=new Array(t.size()).fill(null);return t.toArray(e)}static createPointFromInternalCoord(t,e){return e.getPrecisionModel().makePrecise(t),e.getFactory().createPoint(t)}toGeometry(t){return t.isNull()?this.createPoint():t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new nN(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new nN(t.getMinX(),t.getMinY()),new nN(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new nN(t.getMinX(),t.getMinY()),new nN(t.getMinX(),t.getMaxY()),new nN(t.getMaxX(),t.getMaxY()),new nN(t.getMaxX(),t.getMinY()),new nN(t.getMinX(),t.getMinY())]),null)}createLineString(){if(0===arguments.length)return this.createLineString(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLineString(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(kR(arguments[0],UR)){return new aP(arguments[0],this)}}}createMultiLineString(){if(0===arguments.length)return new WN(null,this);if(1===arguments.length){return new WN(arguments[0],this)}}buildGeometry(t){for(var e=null,i=!1,n=!1,r=t.iterator();r.hasNext();){var s=r.next(),o=s.getClass();null===e&&(e=o),o!==e&&(i=!0),s instanceof XN&&(n=!0)}if(null===e)return this.createGeometryCollection();if(i||n)return this.createGeometryCollection(QP.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof mP)return this.createMultiPolygon(QP.toPolygonArray(t));if(a instanceof aP)return this.createMultiLineString(QP.toLineStringArray(t));if(a instanceof hP)return this.createMultiPoint(QP.toPointArray(t));iN.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a}createMultiPointFromCoords(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)}createPoint(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof nN){let t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(kR(arguments[0],UR)){return new hP(arguments[0],this)}}}getCoordinateSequenceFactory(){return this._coordinateSequenceFactory}createPolygon(){if(0===arguments.length)return this.createPolygon(null,null);if(1===arguments.length){if(kR(arguments[0],UR)){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){let t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof yP){let t=arguments[0];return this.createPolygon(t,null)}}else if(2===arguments.length){return new mP(arguments[0],arguments[1],this)}}getSRID(){return this._SRID}createGeometryCollection(){if(0===arguments.length)return new XN(null,this);if(1===arguments.length){return new XN(arguments[0],this)}}createGeometry(t){return new EP(this).edit(t,new class{edit(){if(2===arguments.length&&arguments[1]instanceof oN&&kR(arguments[0],UR)){let t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})}getPrecisionModel(){return this._precisionModel}createLinearRing(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){let t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(kR(arguments[0],UR)){return new yP(arguments[0],this)}}}createMultiPolygon(){if(0===arguments.length)return new IP(null,this);if(1===arguments.length){return new IP(arguments[0],this)}}createMultiPoint(){if(0===arguments.length)return new _P(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){return new _P(arguments[0],this)}if(kR(arguments[0],UR)){let n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var t=new Array(n.size()).fill(null),e=0;et.x+" "+t.y,point(t){return jP.coordinate.call(this,t._coordinates._coordinates[0])},multipoint(t){var e=[];for(let i=0,n=t._geometries.length;i1||a<0||a>1)&&(r=!0)}}else r=!0;return r?CN.min($P.pointToSegment(t,i,n),$P.pointToSegment(e,i,n),$P.pointToSegment(i,t,e),$P.pointToSegment(n,t,e)):0}static pointToSegment(t,e,i){if(e.x===i.x&&e.y===i.y)return t.distance(e);var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((t.x-e.x)*(i.x-e.x)+(t.y-e.y)*(i.y-e.y))/n;if(r<=0)return t.distance(e);if(r>=1)return t.distance(i);var s=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(s)*Math.sqrt(n)}static pointToLinePerpendicular(t,e,i){var n=(i.x-e.x)*(i.x-e.x)+(i.y-e.y)*(i.y-e.y),r=((e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y))/n;return Math.abs(r)*Math.sqrt(n)}static pointToSegmentString(t,e){if(0===e.length)throw new VR("Line array must contain at least one vertex");for(var i=t.distance(e[0]),n=0;nr?n:r;else{var o=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(s=n>r?o:a)||t.equals(e)||(s=Math.max(o,a))}return iN.isTrue(!(0===s&&!t.equals(e)),"Bad distance calculation"),s}static nonRobustComputeEdgeDistance(t,e,i){var n=t.x-e.x,r=t.y-e.y,s=Math.sqrt(n*n+r*r);return iN.isTrue(!(0===s&&!t.equals(e)),"Invalid distance calculation"),s}getIndexAlongSegment(t,e){return this.computeIntLineIndex(),this._intLineIndex[t][e]}getTopologySummary(){var t=new sP;return this.isEndPoint()&&t.append(" endpoint"),this._isProper&&t.append(" proper"),this.isCollinear()&&t.append(" collinear"),t.toString()}computeIntersection(t,e,i,n){this._inputLines[0][0]=t,this._inputLines[0][1]=e,this._inputLines[1][0]=i,this._inputLines[1][1]=n,this._result=this.computeIntersect(t,e,i,n)}getIntersectionNum(){return this._result}computeIntLineIndex(){if(0===arguments.length)null===this._intLineIndex&&(this._intLineIndex=Array(2).fill().map((()=>Array(2))),this.computeIntLineIndex(0),this.computeIntLineIndex(1));else if(1===arguments.length){let t=arguments[0];this.getEdgeDistance(t,0)>this.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}}isProper(){return this.hasIntersection()&&this._isProper}setPrecisionModel(t){this._precisionModel=t}isInteriorIntersection(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){let e=arguments[0];for(var t=0;tArray(2))),this._intPt=new Array(2).fill(null),this._intLineIndex=null,this._isProper=null,this._pa=null,this._pb=null,this._precisionModel=null,this._intPt[0]=new nN,this._intPt[1]=new nN,this._pa=this._intPt[0],this._pb=this._intPt[1],this._result=0},tF.DONT_INTERSECT=0,tF.DO_INTERSECT=1,tF.COLLINEAR=2,tF.NO_INTERSECTION=0,tF.POINT_INTERSECTION=1,tF.COLLINEAR_INTERSECTION=2;class eF extends tF{constructor(){super(),eF.constructor_.apply(this,arguments)}static nearestEndpoint(t,e,i,n){var r=t,s=$P.pointToSegment(t,i,n),o=$P.pointToSegment(e,i,n);return o1e-4&&vN.out.println("Distance = "+r.distance(s))}intersectionWithNormalization(t,e,i,n){var r=new nN(t),s=new nN(e),o=new nN(i),a=new nN(n),l=new nN;this.normalizeToEnvCentre(r,s,o,a,l);var h=this.safeHCoordinateIntersection(r,s,o,a);return h.x+=l.x,h.y+=l.y,h}computeCollinearIntersection(t,e,i,n){var r=sN.intersects(t,e,i),s=sN.intersects(t,e,n),o=sN.intersects(i,n,t),a=sN.intersects(i,n,e);return r&&s?(this._intPt[0]=i,this._intPt[1]=n,tF.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=t,this._intPt[1]=e,tF.COLLINEAR_INTERSECTION):r&&o?(this._intPt[0]=i,this._intPt[1]=t,!i.equals(t)||s||a?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):r&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||s||o?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):s&&o?(this._intPt[0]=n,this._intPt[1]=t,!n.equals(t)||r||a?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):s&&a?(this._intPt[0]=n,this._intPt[1]=e,!n.equals(e)||r||o?tF.COLLINEAR_INTERSECTION:tF.POINT_INTERSECTION):tF.NO_INTERSECTION}normalizeToEnvCentre(t,e,i,n,r){var s=t.xe.x?t.x:e.x,l=t.y>e.y?t.y:e.y,h=i.xn.x?i.x:n.x,g=i.y>n.y?i.y:n.y,d=((s>h?s:h)+(ac?o:c)+(l0&&s>0||r<0&&s<0)return tF.NO_INTERSECTION;var o=AP.index(i,n,t),a=AP.index(i,n,e);return o>0&&a>0||o<0&&a<0?tF.NO_INTERSECTION:0===r&&0===s&&0===o&&0===a?this.computeCollinearIntersection(t,e,i,n):(0===r||0===s||0===o||0===a?(this._isProper=!1,t.equals2D(i)||t.equals2D(n)?this._intPt[0]=t:e.equals2D(i)||e.equals2D(n)?this._intPt[0]=e:0===r?this._intPt[0]=new nN(i):0===s?this._intPt[0]=new nN(n):0===o?this._intPt[0]=new nN(t):0===a&&(this._intPt[0]=new nN(e))):(this._isProper=!0,this._intPt[0]=this.intersection(t,e,i,n)),tF.POINT_INTERSECTION)}getClass(){return eF}get interfaces_(){return[]}}eF.constructor_=function(){};class iF{constructor(){iF.constructor_.apply(this,arguments)}static locatePointInRing(){if(arguments[0]instanceof nN&&kR(arguments[1],UR)){let r=arguments[1];for(var t=new iF(arguments[0]),e=new nN,i=new nN,n=1;nn&&(i=e.x,n=t.x),this._p.x>=i&&this._p.x<=n&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var r=AP.index(t,e,this._p);if(r===AP.COLLINEAR)return this._isPointOnSegment=!0,null;e.y=this._max)throw new mN;var t=this._parent.getGeometryN(this._index++);return t instanceof XN?(this._subcollectionIterator=new rF(t),this._subcollectionIterator.next()):t}remove(){throw new UnsupportedOperationException(this.getClass().getName())}hasNext(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)}getClass(){return rF}get interfaces_(){return[dN]}}rF.constructor_=function(){this._parent=null,this._atStart=null,this._max=null,this._index=null,this._subcollectionIterator=null;let t=arguments[0];this._parent=t,this._atStart=!0,this._index=0,this._max=t.getNumGeometries()};class sF{constructor(){sF.constructor_.apply(this,arguments)}locateInPolygonRing(t,e){return e.getEnvelopeInternal().intersects(t)?nF.locateInRing(t,e.getCoordinates()):WP.EXTERIOR}intersects(t,e){return this.locate(t,e)!==WP.EXTERIOR}updateLocationInfo(t){t===WP.INTERIOR&&(this._isIn=!0),t===WP.BOUNDARY&&this._numBoundaries++}computeLocation(t,e){if(e instanceof hP&&this.updateLocationInfo(this.locateOnPoint(t,e)),e instanceof aP)this.updateLocationInfo(this.locateOnLineString(t,e));else if(e instanceof mP)this.updateLocationInfo(this.locateInPolygon(t,e));else if(e instanceof WN)for(var i=e,n=0;n0||this._isIn?WP.INTERIOR:WP.EXTERIOR)}getClass(){return sF}get interfaces_(){return[]}}sF.constructor_=function(){if(this._boundaryRule=lN.OGC_SFS_BOUNDARY_RULE,this._isIn=null,this._numBoundaries=null,0===arguments.length);else if(1===arguments.length){let t=arguments[0];if(null===t)throw new VR("Rule must be non-null");this._boundaryRule=t}};class oF{constructor(){oF.constructor_.apply(this,arguments)}static matches(){if(Number.isInteger(arguments[0])&&"string"==typeof arguments[1]){let t=arguments[0],e=arguments[1];return e===YN.SYM_DONTCARE||(e===YN.SYM_TRUE&&(t>=0||t===YN.TRUE)||(e===YN.SYM_FALSE&&t===YN.FALSE||(e===YN.SYM_P&&t===YN.P||(e===YN.SYM_L&&t===YN.L||e===YN.SYM_A&&t===YN.A))))}if("string"==typeof arguments[0]&&"string"==typeof arguments[1]){let t=arguments[1];return new oF(arguments[0]).matches(t)}}static isTrue(t){return t>=0||t===YN.TRUE}isIntersects(){return!this.isDisjoint()}isCovers(){return(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])||oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY]))&&this._matrix[WP.EXTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.BOUNDARY]===YN.FALSE}isCoveredBy(){return(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])||oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY]))&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE}set(){if(1===arguments.length){let n=arguments[0];for(var t=0;t=0&&e>=0&&this.setAtLeast(t,e,i)}isWithin(){return oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE}isTouches(t,e){return t>e?this.isTouches(e,t):(t===YN.A&&e===YN.A||t===YN.L&&e===YN.L||t===YN.L&&e===YN.A||t===YN.P&&e===YN.A||t===YN.P&&e===YN.L)&&(this._matrix[WP.INTERIOR][WP.INTERIOR]===YN.FALSE&&(oF.isTrue(this._matrix[WP.INTERIOR][WP.BOUNDARY])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.INTERIOR])||oF.isTrue(this._matrix[WP.BOUNDARY][WP.BOUNDARY])))}isOverlaps(t,e){return t===YN.P&&e===YN.P||t===YN.A&&e===YN.A?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]):t===YN.L&&e===YN.L&&(1===this._matrix[WP.INTERIOR][WP.INTERIOR]&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]))}isEquals(t,e){return t===e&&(oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&this._matrix[WP.INTERIOR][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.EXTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.EXTERIOR][WP.BOUNDARY]===YN.FALSE)}toString(){for(var t=new sP("123456789"),e=0;e<3;e++)for(var i=0;i<3;i++)t.setCharAt(3*e+i,YN.toDimensionSymbol(this._matrix[e][i]));return t.toString()}setAll(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this._matrix[e][i]=t}get(t,e){return this._matrix[t][e]}transpose(){var t=this._matrix[1][0];return this._matrix[1][0]=this._matrix[0][1],this._matrix[0][1]=t,t=this._matrix[2][0],this._matrix[2][0]=this._matrix[0][2],this._matrix[0][2]=t,t=this._matrix[2][1],this._matrix[2][1]=this._matrix[1][2],this._matrix[1][2]=t,this}matches(t){if(9!==t.length)throw new VR("Should be length 9: "+t);for(var e=0;e<3;e++)for(var i=0;i<3;i++)if(!oF.matches(this._matrix[e][i],t.charAt(3*e+i)))return!1;return!0}add(t){for(var e=0;e<3;e++)for(var i=0;i<3;i++)this.setAtLeast(e,i,t.get(e,i))}isDisjoint(){return this._matrix[WP.INTERIOR][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.INTERIOR][WP.BOUNDARY]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.INTERIOR]===YN.FALSE&&this._matrix[WP.BOUNDARY][WP.BOUNDARY]===YN.FALSE}isCrosses(t,e){return t===YN.P&&e===YN.L||t===YN.P&&e===YN.A||t===YN.L&&e===YN.A?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.INTERIOR][WP.EXTERIOR]):t===YN.L&&e===YN.P||t===YN.A&&e===YN.P||t===YN.A&&e===YN.L?oF.isTrue(this._matrix[WP.INTERIOR][WP.INTERIOR])&&oF.isTrue(this._matrix[WP.EXTERIOR][WP.INTERIOR]):t===YN.L&&e===YN.L&&0===this._matrix[WP.INTERIOR][WP.INTERIOR]}getClass(){return oF}get interfaces_(){return[GR]}}oF.constructor_=function(){if(this._matrix=null,0===arguments.length)this._matrix=Array(3).fill().map((()=>Array(3))),this.setAll(YN.FALSE);else if(1===arguments.length)if("string"==typeof arguments[0]){let t=arguments[0];oF.constructor_.call(this),this.set(t)}else if(arguments[0]instanceof oF){let t=arguments[0];oF.constructor_.call(this),this._matrix[WP.INTERIOR][WP.INTERIOR]=t._matrix[WP.INTERIOR][WP.INTERIOR],this._matrix[WP.INTERIOR][WP.BOUNDARY]=t._matrix[WP.INTERIOR][WP.BOUNDARY],this._matrix[WP.INTERIOR][WP.EXTERIOR]=t._matrix[WP.INTERIOR][WP.EXTERIOR],this._matrix[WP.BOUNDARY][WP.INTERIOR]=t._matrix[WP.BOUNDARY][WP.INTERIOR],this._matrix[WP.BOUNDARY][WP.BOUNDARY]=t._matrix[WP.BOUNDARY][WP.BOUNDARY],this._matrix[WP.BOUNDARY][WP.EXTERIOR]=t._matrix[WP.BOUNDARY][WP.EXTERIOR],this._matrix[WP.EXTERIOR][WP.INTERIOR]=t._matrix[WP.EXTERIOR][WP.INTERIOR],this._matrix[WP.EXTERIOR][WP.BOUNDARY]=t._matrix[WP.EXTERIOR][WP.BOUNDARY],this._matrix[WP.EXTERIOR][WP.EXTERIOR]=t._matrix[WP.EXTERIOR][WP.EXTERIOR]}};class aF{constructor(){aF.constructor_.apply(this,arguments)}static isNorthern(t){return t===aF.NE||t===aF.NW}static isOpposite(t,e){return t!==e&&2===(t-e+4)%4}static commonHalfPlane(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var i=te?t:e)?3:i}static isInHalfPlane(t,e){return e===aF.SE?t===aF.SE||t===aF.SW:t===e||t===e+1}static quadrant(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){let t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new VR("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?aF.NE:aF.SE:e>=0?aF.NW:aF.SW}if(arguments[0]instanceof nN&&arguments[1]instanceof nN){let t=arguments[0],e=arguments[1];if(e.x===t.x&&e.y===t.y)throw new VR("Cannot compute the quadrant for two identical points "+t);return e.x>=t.x?e.y>=t.y?aF.NE:aF.SE:e.y>=t.y?aF.NW:aF.SW}}getClass(){return aF}get interfaces_(){return[]}}aF.constructor_=function(){},aF.NE=0,aF.NW=1,aF.SW=2,aF.SE=3;class lF{constructor(){lF.constructor_.apply(this,arguments)}compareDirection(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrantthis.location.length){var e=new Array(3).fill(null);e[hF.ON]=this.location[hF.ON],e[hF.LEFT]=WP.NONE,e[hF.RIGHT]=WP.NONE,this.location=e}for(var i=0;i1&&t.append(WP.toLocationSymbol(this.location[hF.LEFT])),t.append(WP.toLocationSymbol(this.location[hF.ON])),this.location.length>1&&t.append(WP.toLocationSymbol(this.location[hF.RIGHT])),t.toString()}setLocations(t,e,i){this.location[hF.ON]=t,this.location[hF.LEFT]=e,this.location[hF.RIGHT]=i}get(t){return t1}isAnyNull(){for(var t=0;t=t.getNumPoints()&&null===n)return null;var s=t.getCoordinate(r);null!==n&&n.segmentIndex===i.segmentIndex&&(s=n.coord);var o=new lF(t,i.coord,s,new uF(t.getLabel()));e.add(o)}createEdgeEndForPrev(t,e,i,n){var r=i.segmentIndex;if(0===i.dist){if(0===r)return null;r--}var s=t.getCoordinate(r);null!==n&&n.segmentIndex>=r&&(s=n.coord);var o=new uF(t.getLabel());o.flip();var a=new lF(t,i.coord,s,o);e.add(a)}computeEdgeEnds(){if(1===arguments.length){let n=arguments[0];for(var t=new yN,e=n;e.hasNext();){var i=e.next();this.computeEdgeEnds(i,t)}return t}if(2===arguments.length){let t=arguments[0],e=arguments[1];var n=t.getEdgeIntersectionList();n.addEndpoints();var r=n.iterator(),s=null,o=null;if(!r.hasNext())return null;var a=r.next();do{s=o,o=a,a=null,r.hasNext()&&(a=r.next()),null!==o&&(this.createEdgeEndForPrev(t,e,o,s),this.createEdgeEndForNext(t,e,o,a))}while(null!==o)}}getClass(){return gF}get interfaces_(){return[]}}gF.constructor_=function(){};class dF{constructor(){dF.constructor_.apply(this,arguments)}setVisited(t){this._isVisited=t}setInResult(t){this._isInResult=t}isCovered(){return this._isCovered}isCoveredSet(){return this._isCoveredSet}setLabel(t){this._label=t}getLabel(){return this._label}setCovered(t){this._isCovered=t,this._isCoveredSet=!0}updateIM(t){iN.isTrue(this._label.getGeometryCount()>=2,"found partial label"),this.computeIM(t)}isInResult(){return this._isInResult}isVisited(){return this._isVisited}getClass(){return dF}get interfaces_(){return[]}}dF.constructor_=function(){if(this._label=null,this._isInResult=!1,this._isCovered=!1,this._isCoveredSet=!1,this._isVisited=!1,0===arguments.length);else if(1===arguments.length){let t=arguments[0];this._label=t}};class pF extends dF{constructor(){super(),pF.constructor_.apply(this,arguments)}isIncidentEdgeInResult(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1}isIsolated(){return 1===this._label.getGeometryCount()}getCoordinate(){return this._coord}print(t){t.println("node "+this._coord+" lbl: "+this._label)}computeIM(t){}computeMergedLocation(t,e){var i=WP.NONE;if(i=this._label.getLocation(e),!t.isNull(e)){var n=t.getLocation(e);i!==WP.BOUNDARY&&(i=n)}return i}setLabel(){if(2!==arguments.length||!Number.isInteger(arguments[1])||!Number.isInteger(arguments[0]))return super.setLabel.apply(this,arguments);{let t=arguments[0],e=arguments[1];null===this._label?this._label=new uF(t,e):this._label.setLocation(t,e)}}getEdges(){return this._edges}mergeLabel(){if(arguments[0]instanceof pF){let t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof uF){let i=arguments[0];for(var t=0;t<2;t++){var e=this.computeMergedLocation(i,t);this._label.getLocation(t)===WP.NONE&&this._label.setLocation(t,e)}}}add(t){this._edges.insert(t),t.setNode(this)}setLabelBoundary(t){if(null===this._label)return null;var e=WP.NONE;null!==this._label&&(e=this._label.getLocation(t));var i=null;switch(e){case WP.BOUNDARY:i=WP.INTERIOR;break;case WP.INTERIOR:default:i=WP.BOUNDARY}this._label.setLocation(t,i)}getClass(){return pF}get interfaces_(){return[]}}pF.constructor_=function(){this._coord=null,this._edges=null;let t=arguments[0],e=arguments[1];this._coord=t,this._edges=e,this._label=new uF(0,WP.NONE)};class AF{constructor(){AF.constructor_.apply(this,arguments)}find(t){return this.nodeMap.get(t)}addNode(){if(arguments[0]instanceof nN){let e=arguments[0];return null===(t=this.nodeMap.get(e))&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}if(arguments[0]instanceof pF){let e=arguments[0];var t;return null===(t=this.nodeMap.get(e.getCoordinate()))?(this.nodeMap.put(e.getCoordinate(),e),e):(t.mergeLabel(e),t)}}print(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}}iterator(){return this.nodeMap.values().iterator()}values(){return this.nodeMap.values()}getBoundaryNodes(t){for(var e=new yN,i=this.iterator();i.hasNext();){var n=i.next();n.getLabel().getLocation(t)===WP.BOUNDARY&&e.add(n)}return e}add(t){var e=t.getCoordinate();this.addNode(e).add(t)}getClass(){return AF}get interfaces_(){return[]}}AF.constructor_=function(){this.nodeMap=new ON,this.nodeFact=null;let t=arguments[0];this.nodeFact=t};class fF extends tN{constructor(){if(1===arguments.length){let t=arguments[0];super(t),tN.call(this,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];super(fF.msgWithCoord(t,e)),this.name="TopologyException",this.pt=new nN(e)}}getCoordinate(){return this.pt}get interfaces_(){return[]}getClass(){return fF}static msgWithCoord(t,e){return null!==e?t+" [ "+e+" ]":t}}class mF{constructor(){mF.constructor_.apply(this,arguments)}locate(t){}getClass(){return mF}get interfaces_(){return[]}}mF.constructor_=function(){};class _F{constructor(){_F.constructor_.apply(this,arguments)}static locatePointInPolygon(t,e){if(e.isEmpty())return WP.EXTERIOR;var i=e.getExteriorRing(),n=_F.locatePointInRing(t,i);if(n!==WP.INTERIOR)return n;for(var r=0;re._xValue?1:this._eventTypee._eventType?1:0}getInsertEvent(){return this._insertEvent}isInsert(){return this._eventType===EF.INSERT}isSameLabel(t){return null!==this._label&&this._label===t._label}getDeleteEventIndex(){return this._deleteEventIndex}getClass(){return EF}get interfaces_(){return[YR]}}EF.constructor_=function(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){let t=arguments[0],e=arguments[1];this._eventType=EF.DELETE,this._xValue=t,this._insertEvent=e}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._eventType=EF.INSERT,this._label=t,this._xValue=e,this._obj=i}},EF.INSERT=1,EF.DELETE=2;class CF{constructor(){CF.constructor_.apply(this,arguments)}getClass(){return CF}get interfaces_(){return[]}}CF.constructor_=function(){};const vF={reverseOrder:function(){return{compare:(t,e)=>e.compareTo(t)}},min:function(t){return vF.sort(t),t.get(0)},sort:function(t,e){const i=t.toArray();e?VN.sort(i,e):VN.sort(i);const n=t.iterator();for(let t=0,e=i.length;te||this._maxs?1:0}getClass(){return BF}get interfaces_(){return[$R]}}BF.constructor_=function(){},LF.NodeComparator=BF,LF.constructor_=function(){this._min=WR.POSITIVE_INFINITY,this._max=WR.NEGATIVE_INFINITY};class MF extends LF{constructor(){super(),MF.constructor_.apply(this,arguments)}query(t,e,i){if(!this.intersects(t,e))return null;i.visitItem(this._item)}getClass(){return MF}get interfaces_(){return[]}}MF.constructor_=function(){this._item=null;let t=arguments[0],e=arguments[1],i=arguments[2];this._min=t,this._max=e,this._item=i};class TF extends LF{constructor(){super(),TF.constructor_.apply(this,arguments)}buildExtent(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max)}query(t,e,i){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,i),null!==this._node2&&this._node2.query(t,e,i)}getClass(){return TF}get interfaces_(){return[]}}TF.constructor_=function(){this._node1=null,this._node2=null;let t=arguments[0],e=arguments[1];this._node1=t,this._node2=e,this.buildExtent(this._node1,this._node2)};class RF{constructor(){RF.constructor_.apply(this,arguments)}buildTree(){xF.sort(this._leaves,new LF.NodeComparator);for(var t=this._leaves,e=null,i=new yN;;){if(this.buildLevel(t,i),1===i.size())return i.get(0);e=t,t=i,i=e}}insert(t,e,i){if(null!==this._root)throw new IllegalStateException("Index cannot be added to once it has been queried");this._leaves.add(new MF(t,e,i))}query(t,e,i){this.init(),this._root.query(t,e,i)}buildRoot(){if(null!==this._root)return null;this._root=this.buildTree()}printNode(t){vN.out.println(XP.toLineString(new nN(t._min,this._level),new nN(t._max,this._level)))}init(){if(null!==this._root)return null;this.buildRoot()}buildLevel(t,e){this._level++,e.clear();for(var i=0;i=0&&e>=0||t<=0&&e<=0?Math.max(t,e):0}if(arguments[0]instanceof nN){let t=arguments[0];return AP.index(this.p0,this.p1,t)}}toGeometry(t){return t.createLineString([this.p0,this.p1])}isVertical(){return this.p0.x===this.p1.x}equals(t){if(!(t instanceof NF))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)}intersection(t){var e=new eF;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null}project(){if(arguments[0]instanceof nN){let i=arguments[0];if(i.equals(this.p0)||i.equals(this.p1))return new nN(i);var t=this.projectionFactor(i),e=new nN;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}if(arguments[0]instanceof NF){let t=arguments[0];var i=this.projectionFactor(t.p0),n=this.projectionFactor(t.p1);if(i>=1&&n>=1)return null;if(i<=0&&n<=0)return null;var r=this.project(t.p0);i<0&&(r=this.p0),i>1&&(r=this.p1);var s=this.project(t.p1);return n<0&&(s=this.p0),n>1&&(s=this.p1),new NF(r,s)}}normalize(){this.p1.compareTo(this.p0)<0&&this.reverse()}angle(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)}getCoordinate(t){return 0===t?this.p0:this.p1}distancePerpendicular(t){return $P.pointToLinePerpendicular(t,this.p0,this.p1)}minY(){return Math.min(this.p0.y,this.p1.y)}midPoint(){return NF.midPoint(this.p0,this.p1)}projectionFactor(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,i=this.p1.y-this.p0.y,n=e*e+i*i;return n<=0?WR.NaN:((t.x-this.p0.x)*e+(t.y-this.p0.y)*i)/n}closestPoints(t){var e=this.intersection(t);if(null!==e)return[e,e];var i=new Array(2).fill(null),n=WR.MAX_VALUE,r=null,s=this.closestPoint(t.p0);n=s.distance(t.p0),i[0]=s,i[1]=t.p0;var o=this.closestPoint(t.p1);(r=o.distance(t.p1))0&&e<1?this.project(t):this.p0.distance(t)1||WR.isNaN(e))&&(e=1),e}toString(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"}isHorizontal(){return this.p0.y===this.p1.y}distance(){if(arguments[0]instanceof NF){let t=arguments[0];return $P.segmentToSegment(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof nN){let t=arguments[0];return $P.pointToSegment(t,this.p0,this.p1)}}pointAlong(t){var e=new nN;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e}hashCode(){var t=java.lang.Double.doubleToLongBits(this.p0.x);t^=31*java.lang.Double.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),i=java.lang.Double.doubleToLongBits(this.p1.x);return i^=31*java.lang.Double.doubleToLongBits(this.p1.y),e^(Math.trunc(i)^Math.trunc(i>>32))}getClass(){return NF}get interfaces_(){return[YR,jR]}}NF.constructor_=function(){if(this.p0=null,this.p1=null,0===arguments.length)NF.constructor_.call(this,new nN,new nN);else if(1===arguments.length){let t=arguments[0];NF.constructor_.call(this,t.p0,t.p1)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this.p0=t,this.p1=e}else if(4===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3];NF.constructor_.call(this,new nN(t,e),new nN(i,n))}},NF.serialVersionUID=0x2d2172135f411c00;class PF{constructor(){PF.constructor_.apply(this,arguments)}static getGeometry(){if(1===arguments.length){let t=arguments[0];return t.getFactory().buildGeometry(PF.getLines(t))}if(2===arguments.length){let t=arguments[0],e=arguments[1];return t.getFactory().buildGeometry(PF.getLines(t,e))}}static getLines(){if(1===arguments.length){let t=arguments[0];return PF.getLines(t,!1)}if(2===arguments.length){if(kR(arguments[0],pN)&&kR(arguments[1],pN)){let i=arguments[1];for(var t=arguments[0].iterator();t.hasNext();){var e=t.next();PF.getLines(e,i)}return i}if(arguments[0]instanceof oN&&"boolean"==typeof arguments[1]){let t=arguments[0],e=arguments[1];var i=new yN;return t.apply(new PF(i,e)),i}if(arguments[0]instanceof oN&&kR(arguments[1],pN)){let t=arguments[0],e=arguments[1];return t instanceof aP?e.add(t):t.apply(new PF(e)),e}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&kR(arguments[0],pN)&&kR(arguments[1],pN)){let i=arguments[1],n=arguments[2];for(t=arguments[0].iterator();t.hasNext();){e=t.next();PF.getLines(e,i,n)}return i}if("boolean"==typeof arguments[2]&&arguments[0]instanceof oN&&kR(arguments[1],pN)){let t=arguments[1],e=arguments[2];return arguments[0].apply(new PF(t,e)),t}}}filter(t){if(this._isForcedToLineString&&t instanceof yP){var e=t.getFactory().createLineString(t.getCoordinateSequence());return this._lines.add(e),null}t instanceof aP&&this._lines.add(t)}setForceToLineString(t){this._isForcedToLineString=t}getClass(){return PF}get interfaces_(){return[zR]}}PF.constructor_=function(){if(this._lines=null,this._isForcedToLineString=!1,1===arguments.length){let t=arguments[0];this._lines=t}else if(2===arguments.length){let t=arguments[0],e=arguments[1];this._lines=t,this._isForcedToLineString=e}};class FF{constructor(){FF.constructor_.apply(this,arguments)}visitItem(t){this._items.add(t)}getItems(){return this._items}getClass(){return FF}get interfaces_(){return[bF]}}FF.constructor_=function(){this._items=new yN};class DF{constructor(){DF.constructor_.apply(this,arguments)}locate(t){var e=new iF(t),i=new OF(e);return this._index.query(t.y,t.y,i),e.getLocation()}getClass(){return DF}get interfaces_(){return[mF]}}class OF{constructor(){OF.constructor_.apply(this,arguments)}visitItem(t){var e=t;this._counter.countSegment(e.getCoordinate(0),e.getCoordinate(1))}getClass(){return OF}get interfaces_(){return[bF]}}OF.constructor_=function(){this._counter=null;let t=arguments[0];this._counter=t};class QF{constructor(){QF.constructor_.apply(this,arguments)}init(t){for(var e=PF.getLines(t).iterator();e.hasNext();){var i=e.next().getCoordinates();this.addLine(i)}}addLine(t){for(var e=1;e0||!e.coord.equals2D(n);r||i--;var s=new Array(i).fill(null),o=0;s[o++]=new nN(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)s[o++]=this.edge.pts[a];return r&&(s[o]=e.coord),new zF(s,new uF(this.edge._label))}add(t,e,i){var n=new kF(t,e,i),r=this._nodeMap.get(n);return null!==r?r:(this._nodeMap.put(n,n),n)}isIntersection(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1}getClass(){return GF}get interfaces_(){return[]}}GF.constructor_=function(){this._nodeMap=new ON,this.edge=null;let t=arguments[0];this.edge=t};class UF{constructor(){UF.constructor_.apply(this,arguments)}static toIntArray(t){for(var e=new Array(t.size()).fill(null),i=0;ii?e:i}getMinX(t){var e=this.pts[this.startIndex[t]].x,i=this.pts[this.startIndex[t+1]].x;return ee&&(n=1),this._depth[t][i]=n}}}getDelta(t){return this._depth[t][hF.RIGHT]-this._depth[t][hF.LEFT]}getLocation(t,e){return this._depth[t][e]<=0?WP.EXTERIOR:WP.INTERIOR}toString(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]}add(){if(1===arguments.length){let n=arguments[0];for(var t=0;t<2;t++)for(var e=1;e<3;e++){var i=n.getLocation(t,e);i!==WP.EXTERIOR&&i!==WP.INTERIOR||(this.isNull(t,e)?this._depth[t][e]=VF.depthAtLocation(i):this._depth[t][e]+=VF.depthAtLocation(i))}}else if(3===arguments.length){let t=arguments[0],e=arguments[1];arguments[2]===WP.INTERIOR&&this._depth[t][e]++}}getClass(){return VF}get interfaces_(){return[]}}VF.constructor_=function(){this._depth=Array(2).fill().map((()=>Array(3)));for(var t=0;t<2;t++)for(var e=0;e<3;e++)this._depth[t][e]=VF.NULL_VALUE},VF.NULL_VALUE=-1;class zF extends dF{constructor(){super(),zF.constructor_.apply(this,arguments)}static updateIM(){if(!(2===arguments.length&&arguments[1]instanceof oF&&arguments[0]instanceof uF))return super.updateIM.apply(this,arguments);{let t=arguments[0],e=arguments[1];e.setAtLeastIfValid(t.getLocation(0,hF.ON),t.getLocation(1,hF.ON),1),t.isArea()&&(e.setAtLeastIfValid(t.getLocation(0,hF.LEFT),t.getLocation(1,hF.LEFT),2),e.setAtLeastIfValid(t.getLocation(0,hF.RIGHT),t.getLocation(1,hF.RIGHT),2))}}getDepth(){return this._depth}getCollapsedEdge(){var t=new Array(2).fill(null);return t[0]=this.pts[0],t[1]=this.pts[1],new zF(t,uF.toLineLabel(this._label))}isIsolated(){return this._isIsolated}getCoordinates(){return this.pts}setIsolated(t){this._isIsolated=t}setName(t){this._name=t}equals(t){if(!(t instanceof zF))return!1;var e=t;if(this.pts.length!==e.pts.length)return!1;for(var i=!0,n=!0,r=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){let t=arguments[0];return this.pts[t]}}print(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)}computeIM(t){zF.updateIM(this._label,t)}isCollapsed(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))}isClosed(){return this.pts[0].equals(this.pts[this.pts.length-1])}getMaximumSegmentIndex(){return this.pts.length-1}getDepthDelta(){return this._depthDelta}getNumPoints(){return this.pts.length}printReverse(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")}getMonotoneChainEdge(){return null===this._mce&&(this._mce=new qF(this)),this._mce}getEnvelope(){if(null===this._env){this._env=new sN;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()}isPointwiseEqual(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;e=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])}getInvalidPoint(){return this._invalidPoint}getBoundaryPoints(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),i=0,n=t.iterator();n.hasNext();){var r=n.next();e[i++]=r.getCoordinate().copy()}return e}getBoundaryNodes(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes}addSelfIntersectionNode(t,e,i){if(this.isBoundaryNode(t,e))return null;i===WP.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,i)}addPolygonRing(t,e,i){if(t.isEmpty())return null;var n=xN.removeRepeatedPoints(t.getCoordinates());if(n.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=n[0],null;var r=e,s=i;AP.isCCW(n)&&(r=i,s=e);var o=new zF(n,new uF(this._argIndex,WP.BOUNDARY,r,s));this._lineEdgeMap.put(t,o),this.insertEdge(o),this.insertPoint(this._argIndex,n[0],WP.BOUNDARY)}insertPoint(t,e,i){var n=this._nodes.addNode(e),r=n.getLabel();null===r?n._label=new uF(t,i):r.setLocation(t,i)}createEdgeSetIntersector(){return new SF}addSelfIntersectionNodes(t){for(var e=this._edges.iterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.eiList.iterator();r.hasNext();){var s=r.next();this.addSelfIntersectionNode(t,s.coord,n)}}add(){if(!(1===arguments.length&&arguments[0]instanceof oN))return super.add.apply(this,arguments);{let t=arguments[0];if(t.isEmpty())return null;if(t instanceof IP&&(this._useBoundaryDeterminationRule=!1),t instanceof mP)this.addPolygon(t);else if(t instanceof aP)this.addLineString(t);else if(t instanceof hP)this.addPoint(t);else if(t instanceof _P)this.addCollection(t);else if(t instanceof WN)this.addCollection(t);else if(t instanceof IP)this.addCollection(t);else{if(!(t instanceof XN))throw new UnsupportedOperationException(t.getClass().getName());this.addCollection(t)}}}addCollection(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new DF(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)}findEdge(){if(1===arguments.length&&arguments[0]instanceof aP){let t=arguments[0];return this._lineEdgeMap.get(t)}return super.findEdge.apply(this,arguments)}getClass(){return XF}get interfaces_(){return[]}}XF.constructor_=function(){if(this._parentGeom=null,this._lineEdgeMap=new FP,this._boundaryNodeRule=null,this._useBoundaryDeterminationRule=!0,this._argIndex=null,this._boundaryNodes=null,this._hasTooFewPoints=!1,this._invalidPoint=null,this._areaPtLocator=null,this._ptLocator=new sF,2===arguments.length){let t=arguments[0],e=arguments[1];XF.constructor_.call(this,t,e,lN.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];this._argIndex=t,this._parentGeom=e,this._boundaryNodeRule=i,null!==e&&this.add(e)}};class WF extends lF{constructor(){super(),WF.constructor_.apply(this,arguments)}insert(t){this._edgeEnds.add(t)}print(t){t.println("EdgeEndBundle--\x3e Label: "+this._label);for(var e=this.iterator();e.hasNext();){e.next().print(t),t.println()}}iterator(){return this._edgeEnds.iterator()}getEdgeEnds(){return this._edgeEnds}computeLabelOn(t,e){for(var i=0,n=!1,r=this.iterator();r.hasNext();){(s=r.next().getLabel().getLocation(t))===WP.BOUNDARY&&i++,s===WP.INTERIOR&&(n=!0)}var s=WP.NONE;n&&(s=WP.INTERIOR),i>0&&(s=XF.determineBoundary(e,i)),this._label.setLocation(t,s)}computeLabelSide(t,e){for(var i=this.iterator();i.hasNext();){var n=i.next();if(n.getLabel().isArea()){var r=n.getLabel().getLocation(t,e);if(r===WP.INTERIOR)return this._label.setLocation(t,e,WP.INTERIOR),null;r===WP.EXTERIOR&&this._label.setLocation(t,e,WP.EXTERIOR)}}}getLabel(){return this._label}computeLabelSides(t){this.computeLabelSide(t,hF.LEFT),this.computeLabelSide(t,hF.RIGHT)}updateIM(t){zF.updateIM(this._label,t)}computeLabel(t){for(var e=!1,i=this.iterator();i.hasNext();){i.next().getLabel().isArea()&&(e=!0)}this._label=e?new uF(WP.NONE,WP.NONE,WP.NONE):new uF(WP.NONE);for(var n=0;n<2;n++)this.computeLabelOn(n,t),e&&this.computeLabelSides(n)}getClass(){return WF}get interfaces_(){return[]}}WF.constructor_=function(){if(this._edgeEnds=new yN,1===arguments.length){let t=arguments[0];WF.constructor_.call(this,null,t)}else if(2===arguments.length){let t=arguments[1];lF.constructor_.call(this,t.getEdge(),t.getCoordinate(),t.getDirectedCoordinate(),new uF(t.getLabel())),this.insert(t)}};class KF extends yF{constructor(){super(),KF.constructor_.apply(this,arguments)}updateIM(t){for(var e=this.iterator();e.hasNext();){e.next().updateIM(t)}}insert(t){var e=this._edgeMap.get(t);null===e?(e=new WF(t),this.insertEdgeEnd(t,e)):e.insert(t)}getClass(){return KF}get interfaces_(){return[]}}KF.constructor_=function(){};class JF extends pF{constructor(){super(),JF.constructor_.apply(this,arguments)}updateIMFromEdges(t){this._edges.updateIM(t)}computeIM(t){t.setAtLeastIfValid(this._label.getLocation(0),this._label.getLocation(1),0)}getClass(){return JF}get interfaces_(){return[]}}JF.constructor_=function(){let t=arguments[0],e=arguments[1];pF.constructor_.call(this,t,e)};class ZF extends jF{constructor(){super(),ZF.constructor_.apply(this,arguments)}createNode(t){return new JF(t,new KF)}getClass(){return ZF}get interfaces_(){return[]}}ZF.constructor_=function(){};class $F{constructor(){$F.constructor_.apply(this,arguments)}insertEdgeEnds(t){for(var e=t.iterator();e.hasNext();){var i=e.next();this._nodes.add(i)}}computeProperIntersectionIM(t,e){var i=this._arg[0].getGeometry().getDimension(),n=this._arg[1].getGeometry().getDimension(),r=t.hasProperIntersection(),s=t.hasProperInteriorIntersection();2===i&&2===n?r&&e.setAtLeast("212101212"):2===i&&1===n?(r&&e.setAtLeast("FFF0FFFF2"),s&&e.setAtLeast("1FFFFF1FF")):1===i&&2===n?(r&&e.setAtLeast("F0FFFFFF2"),s&&e.setAtLeast("1F1FFFFFF")):1===i&&1===n&&s&&e.setAtLeast("0FFFFFFFF")}labelIsolatedEdges(t,e){for(var i=this._arg[t].getEdgeIterator();i.hasNext();){var n=i.next();n.isIsolated()&&(this.labelIsolatedEdge(n,e,this._arg[e].getGeometry()),this._isolatedEdges.add(n))}}labelIsolatedEdge(t,e,i){if(i.getDimension()>0){var n=this._ptLocator.locate(t.getCoordinate(),i);t.getLabel().setAllLocations(e,n)}else t.getLabel().setAllLocations(e,WP.EXTERIOR)}computeIM(){var t=new oF;if(t.set(WP.EXTERIOR,WP.EXTERIOR,2),!this._arg[0].getGeometry().getEnvelopeInternal().intersects(this._arg[1].getGeometry().getEnvelopeInternal()))return this.computeDisjointIM(t),t;this._arg[0].computeSelfNodes(this._li,!1),this._arg[1].computeSelfNodes(this._li,!1);var e=this._arg[0].computeEdgeIntersections(this._arg[1],this._li,!1);this.computeIntersectionNodes(0),this.computeIntersectionNodes(1),this.copyNodesAndLabels(0),this.copyNodesAndLabels(1),this.labelIsolatedNodes(),this.computeProperIntersectionIM(e,t);var i=new gF,n=i.computeEdgeEnds(this._arg[0].getEdgeIterator());this.insertEdgeEnds(n);var r=i.computeEdgeEnds(this._arg[1].getEdgeIterator());return this.insertEdgeEnds(r),this.labelNodeEdges(),this.labelIsolatedEdges(0,1),this.labelIsolatedEdges(1,0),this.updateIM(t),t}labelNodeEdges(){for(var t=this._nodes.iterator();t.hasNext();){t.next().getEdges().computeLabelling(this._arg)}}copyNodesAndLabels(t){for(var e=this._arg[t].getNodeIterator();e.hasNext();){var i=e.next();this._nodes.addNode(i.getCoordinate()).setLabel(t,i.getLabel().getLocation(t))}}labelIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.find(s.coord);o.getLabel().isNull(t)&&(n===WP.BOUNDARY?o.setLabelBoundary(t):o.setLabel(t,WP.INTERIOR))}}labelIsolatedNode(t,e){var i=this._ptLocator.locate(t.getCoordinate(),this._arg[e].getGeometry());t.getLabel().setAllLocations(e,i)}computeIntersectionNodes(t){for(var e=this._arg[t].getEdgeIterator();e.hasNext();)for(var i=e.next(),n=i.getLabel().getLocation(t),r=i.getEdgeIntersectionList().iterator();r.hasNext();){var s=r.next(),o=this._nodes.addNode(s.coord);n===WP.BOUNDARY?o.setLabelBoundary(t):o.getLabel().isNull(t)&&o.setLabel(t,WP.INTERIOR)}}labelIsolatedNodes(){for(var t=this._nodes.iterator();t.hasNext();){var e=t.next(),i=e.getLabel();iN.isTrue(i.getGeometryCount()>0,"node with empty label found"),e.isIsolated()&&(i.isNull(0)?this.labelIsolatedNode(e,0):this.labelIsolatedNode(e,1))}}updateIM(t){for(var e=this._isolatedEdges.iterator();e.hasNext();){e.next().updateIM(t)}for(var i=this._nodes.iterator();i.hasNext();){var n=i.next();n.updateIM(t),n.updateIMFromEdges(t)}}computeDisjointIM(t){var e=this._arg[0].getGeometry();e.isEmpty()||(t.set(WP.INTERIOR,WP.EXTERIOR,e.getDimension()),t.set(WP.BOUNDARY,WP.EXTERIOR,e.getBoundaryDimension()));var i=this._arg[1].getGeometry();i.isEmpty()||(t.set(WP.EXTERIOR,WP.INTERIOR,i.getDimension()),t.set(WP.EXTERIOR,WP.BOUNDARY,i.getBoundaryDimension()))}getClass(){return $F}get interfaces_(){return[]}}$F.constructor_=function(){this._li=new eF,this._ptLocator=new sF,this._arg=null,this._nodes=new AF(new ZF),this._im=null,this._isolatedEdges=new yN,this._invalidPoint=null;let t=arguments[0];this._arg=t};class tD{constructor(){tD.constructor_.apply(this,arguments)}getArgGeometry(t){return this._arg[t].getGeometry()}setComputationPrecision(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)}getClass(){return tD}get interfaces_(){return[]}}tD.constructor_=function(){if(this._li=new eF,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){let t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new XF(0,t)}else if(2===arguments.length){let t=arguments[0],e=arguments[1];tD.constructor_.call(this,t,e,lN.OGC_SFS_BOUNDARY_RULE)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];t.getPrecisionModel().compareTo(e.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new XF(0,t,i),this._arg[1]=new XF(1,e,i)}};class eD{constructor(){eD.constructor_.apply(this,arguments)}static contains(t,e){return new eD(t).contains(e)}isContainedInBoundary(t){if(t instanceof mP)return!1;if(t instanceof hP)return this.isPointContainedInBoundary(t);if(t instanceof aP)return this.isLineStringContainedInBoundary(t);for(var e=0;e0){var n=t;t=e,e=n}var r=!1;return e.y>t.y&&(r=!0),r?this._li.computeIntersection(t,e,this._diagDown0,this._diagDown1):this._li.computeIntersection(t,e,this._diagUp0,this._diagUp1),!!this._li.hasIntersection()}getClass(){return iD}get interfaces_(){return[]}}iD.constructor_=function(){this._li=new eF,this._rectEnv=null,this._diagUp0=null,this._diagUp1=null,this._diagDown0=null,this._diagDown1=null;let t=arguments[0];this._rectEnv=t,this._diagUp0=new nN(t.getMinX(),t.getMinY()),this._diagUp1=new nN(t.getMaxX(),t.getMaxY()),this._diagDown0=new nN(t.getMinX(),t.getMaxY()),this._diagDown1=new nN(t.getMaxX(),t.getMinY())};class nD{constructor(){nD.constructor_.apply(this,arguments)}applyTo(t){for(var e=0;e=this._rectEnv.getMinX()&&e.getMaxX()<=this._rectEnv.getMaxX()||e.getMinY()>=this._rectEnv.getMinY()&&e.getMaxY()<=this._rectEnv.getMaxY()?(this._intersects=!0,null):void 0:null}intersects(){return this._intersects}getClass(){return sD}get interfaces_(){return[]}}sD.constructor_=function(){this._rectEnv=null,this._intersects=!1;let t=arguments[0];this._rectEnv=t};class oD extends nD{constructor(){super(),oD.constructor_.apply(this,arguments)}isDone(){return!0===this._containsPoint}visit(t){if(!(t instanceof mP))return null;var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;for(var i=new nN,n=0;n<4;n++)if(this._rectSeq.getCoordinate(n,i),e.contains(i)&&_F.containsPointInPolygon(i,t))return this._containsPoint=!0,null}containsPoint(){return this._containsPoint}getClass(){return oD}get interfaces_(){return[]}}oD.constructor_=function(){this._rectSeq=null,this._rectEnv=null,this._containsPoint=!1;let t=arguments[0];this._rectSeq=t.getExteriorRing().getCoordinateSequence(),this._rectEnv=t.getEnvelopeInternal()};class aD extends nD{constructor(){super(),aD.constructor_.apply(this,arguments)}intersects(){return this._hasIntersection}isDone(){return!0===this._hasIntersection}visit(t){var e=t.getEnvelopeInternal();if(!this._rectEnv.intersects(e))return null;var i=PF.getLines(t);this.checkIntersectionWithLineStrings(i)}checkIntersectionWithLineStrings(t){for(var e=t.iterator();e.hasNext();){var i=e.next();if(this.checkIntersectionWithSegments(i),this._hasIntersection)return null}}checkIntersectionWithSegments(t){for(var e=t.getCoordinateSequence(),i=1;i0)&&(!!t.getEnvelopeInternal().covers(e.getEnvelopeInternal())&&(!!t.isRectangle()||new lD(t,e).getIntersectionMatrix().isCovers())))}static intersects(t,e){if(!t.getEnvelopeInternal().intersects(e.getEnvelopeInternal()))return!1;if(t.isRectangle())return rD.intersects(t,e);if(e.isRectangle())return rD.intersects(e,t);if(t.isGeometryCollection()||e.isGeometryCollection()){for(var i=0;i0)&&(!!t.getEnvelopeInternal().contains(e.getEnvelopeInternal())&&(t.isRectangle()?eD.contains(t,e):new lD(t,e).getIntersectionMatrix().isContains())))}getIntersectionMatrix(){return this._relate.computeIM()}getClass(){return lD}get interfaces_(){return[]}}lD.constructor_=function(){if(this._relate=null,2===arguments.length){let t=arguments[0],e=arguments[1];tD.constructor_.call(this,t,e),this._relate=new $F(this._arg)}else if(3===arguments.length){let t=arguments[0],e=arguments[1],i=arguments[2];tD.constructor_.call(this,t,e,i),this._relate=new $F(this._arg)}};const hD=t=>{let e=t,i=[];return e instanceof _I?i=[...e.getFeatures().map((t=>t.getGeometry()))]:(UL(e)||(e=[e]),i=e.map((t=>{let e;return t instanceof DB?e=t.getGeometry():zL(t)&&(e=t),e}))),i},cD=(t,e)=>{let i="";const n=new cM;return e.forEach(((e,r)=>{0!==r&&(i+=" OR ");const s=e;"point"===s.type.toLowerCase()&&(s.coordinates.length=2);const o=n.write(s);i+=`${t}({{geometryName}}, ${o})`})),i},uD=["fullscreenchange","webkitfullscreenchange","MSFullscreenChange"],gD="enterfullscreen",dD="leavefullscreen";function pD(t){const e=t.body;return!!(e.webkitRequestFullscreen||e.requestFullscreen&&t.fullscreenEnabled)}function AD(t){return!(!t.webkitIsFullScreen&&!t.fullscreenElement)}function fD(t){t.requestFullscreen?t.requestFullscreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen()}const mD=class extends Bh{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target}),this.on,this.once,this.un,this.keys_=void 0!==t.keys&&t.keys,this.source_=t.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=void 0!==t.className?t.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=void 0!==t.activeClassName?t.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=void 0!==t.inactiveClassName?t.inactiveClassName.split(" "):[this.cssClassName_+"-false"];const e=void 0!==t.label?t.label:"⤢";this.labelNode_="string"==typeof e?document.createTextNode(e):e;const i=void 0!==t.labelActive?t.labelActive:"×";this.labelActiveNode_="string"==typeof i?document.createTextNode(i):i;const n=t.tipLabel?t.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=n,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(Ms,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${Il} ${Cl}`,this.element.appendChild(this.button_)}handleClick_(t){t.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){const t=this.getMap();if(!t)return;const e=t.getOwnerDocument();if(pD(e))if(AD(e))!function(t){t.exitFullscreen?t.exitFullscreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()}(e);else{let i;i=this.source_?"string"==typeof this.source_?e.getElementById(this.source_):this.source_:t.getTargetElement(),this.keys_?function(t){t.webkitRequestFullscreen?t.webkitRequestFullscreen():fD(t)}(i):fD(i)}}handleFullScreenChange_(){const t=this.getMap();if(!t)return;const e=this.isInFullscreen_;this.isInFullscreen_=AD(t.getOwnerDocument()),e!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Tl(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(gD)):(Tl(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(dD)),t.updateSize())}setClassName_(t,e){e?(t.classList.remove(...this.inactiveClassName_),t.classList.add(...this.activeClassName_)):(t.classList.remove(...this.activeClassName_),t.classList.add(...this.inactiveClassName_))}setMap(t){const e=this.getMap();e&&e.removeChangeListener(yh,this.boundHandleMapTargetChange_),super.setMap(t),this.handleMapTargetChange_(),t&&t.addChangeListener(yh,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){const t=this.documentListeners_;for(let e=0,i=t.length;e=0;e--)r.push(n[t][e]);return{hasZ:i.hasZ,hasM:i.hasM,rings:r}}};function ED(t,e){if(!t)return null;let i;if("number"==typeof t.x&&"number"==typeof t.y)i="Point";else if(t.points)i="MultiPoint";else if(t.paths){i=1===t.paths.length?"LineString":"MultiLineString"}else if(t.rings){const e=t,n=CD(e),r=function(t,e){const i=[],n=[],r=[];let s,o;for(s=0,o=t.length;s=0;s--){const i=n[s][0];if(D(new Ga(i).getExtent(),new Ga(t).getExtent())){n[s].push(t),e=!0;break}}e||n.push([t.reverse()])}return n}(e.rings,n);1===r.length?(i="Polygon",t=Object.assign({},t,{rings:r[0]})):(i="MultiPolygon",t=Object.assign({},t,{rings:r}))}return KE((0,yD[i])(t),!1,e)}function CD(t){let e="XY";return!0===t.hasZ&&!0===t.hasM?e="XYZM":!0===t.hasZ?e="XYZ":!0===t.hasM&&(e="XYM"),e}function vD(t){const e=t.getLayout();return{hasZ:"XYZ"===e||"XYZM"===e,hasM:"XYM"===e||"XYZM"===e}}function xD(t,e){return(0,ID[t.getType()])(KE(t,!0,e),e)}const wD=class extends vS{constructor(t){t=t||{},super(),this.geometryName_=t.geometryName}readFeatureFromObject(t,e,i){const n=t,r=ED(n.geometry,e),s=new _d;if(this.geometryName_&&s.setGeometryName(this.geometryName_),s.setGeometry(r),n.attributes){s.setProperties(n.attributes,!0);const t=n.attributes[i];void 0!==t&&s.setId(t)}return s}readFeaturesFromObject(t,e){if(e=e||{},t.features){const i=[],n=t.features;for(let r=0,s=n.length;r1,n=i&&t.imageInfo.profile[1].supports?t.imageInfo.profile[1].supports:[],r=i&&t.imageInfo.profile[1].formats?t.imageInfo.profile[1].formats:[],s=i&&t.imageInfo.profile[1].qualities?t.imageInfo.profile[1].qualities:[];return{url:t.imageInfo["@id"].replace(/\/?(?:info\.json)?$/g,""),sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return void 0===t.height?t.width:t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:[...e.supports,...n],formats:[...e.formats,...r],qualities:[...e.qualities,...s]}},_O[dO]=function(t){const e=t.getComplianceLevelSupportedFeatures(),i=void 0===t.imageInfo.extraFormats?e.formats:[...e.formats,...t.imageInfo.extraFormats],n=void 0!==t.imageInfo.preferredFormats&&Array.isArray(t.imageInfo.preferredFormats)&&t.imageInfo.preferredFormats.length>0?t.imageInfo.preferredFormats.filter((function(t){return["jpg","png","gif"].includes(t)})).reduce((function(t,e){return void 0===t&&i.includes(e)?e:t}),void 0):void 0;return{url:t.imageInfo.id,sizes:void 0===t.imageInfo.sizes?void 0:t.imageInfo.sizes.map((function(t){return[t.width,t.height]})),tileSize:void 0===t.imageInfo.tiles?void 0:[t.imageInfo.tiles.map((function(t){return t.width}))[0],t.imageInfo.tiles.map((function(t){return t.height}))[0]],resolutions:void 0===t.imageInfo.tiles?void 0:t.imageInfo.tiles.map((function(t){return t.scaleFactors}))[0],supports:void 0===t.imageInfo.extraFeatures?e.supports:[...e.supports,...t.imageInfo.extraFeatures],formats:i,qualities:void 0===t.imageInfo.extraQualities?e.qualities:[...e.qualities,...t.imageInfo.extraQualities],preferredFormat:n}};const yO=class{constructor(t){this.setImageInfo(t)}setImageInfo(t){this.imageInfo="string"==typeof t?JSON.parse(t):t}getImageApiVersion(){if(void 0===this.imageInfo)return;let t=this.imageInfo["@context"]||"ol-no-context";"string"==typeof t&&(t=[t]);for(let e=0;e0&&"string"==typeof this.imageInfo.profile[0]&&fO.test(this.imageInfo.profile[0]))return this.imageInfo.profile[0]}}getComplianceLevelFromProfile(t){const e=this.getComplianceLevelEntryFromProfile(t);if(void 0===e)return;const i=e.match(/level[0-2](?:\.json)?$/g);return Array.isArray(i)?i[0].replace(".json",""):void 0}getComplianceLevelSupportedFeatures(){if(void 0===this.imageInfo)return;const t=this.getImageApiVersion(),e=this.getComplianceLevelFromProfile(t);return void 0===e?pO.none.none:pO[t][e]}getTileSourceOptions(t){const e=t||{},i=this.getImageApiVersion();if(void 0===i)return;const n=void 0===i?void 0:_O[i](this);return void 0!==n?{url:n.url,version:i,size:[this.imageInfo.width,this.imageInfo.height],sizes:n.sizes,format:void 0!==e.format&&n.formats.includes(e.format)?e.format:void 0!==n.preferredFormat?n.preferredFormat:"jpg",supports:n.supports,quality:e.quality&&n.qualities.includes(e.quality)?e.quality:n.qualities.includes("native")?"native":"default",resolutions:Array.isArray(n.resolutions)?n.resolutions.sort((function(t,e){return e-t})):void 0,tileSize:n.tileSize}:void 0}},IO=[null],EO=ap(IO,{nd:function(t,e){const i=e[e.length-1];i.ndrefs.push(t.getAttribute("ref")),t.hasAttribute("lon")&&t.hasAttribute("lat")&&(i.flatCoordinates.push(parseFloat(t.getAttribute("lon"))),i.flatCoordinates.push(parseFloat(t.getAttribute("lat"))))},tag:xO}),CO=ap(IO,{node:function(t,e){const i=e[0],n=e[e.length-1],r=t.getAttribute("id"),s=[parseFloat(t.getAttribute("lon")),parseFloat(t.getAttribute("lat"))];n.nodes[r]=s;const o=hp({tags:{}},vO,t,e);if(!ws(o.tags)){const t=new qa(s);KE(t,!1,i);const e=new _d(t);void 0!==r&&e.setId(r),e.setProperties(o.tags,!0),n.features.push(e)}},way:function(t,e){const i=t.getAttribute("id"),n=hp({id:i,ndrefs:[],flatCoordinates:[],tags:{}},EO,t,e);e[e.length-1].ways.push(n)}});const vO=ap(IO,{tag:xO});function xO(t,e){e[e.length-1].tags[t.getAttribute("k")]=t.getAttribute("v")}const wO=class extends ZE{constructor(){super(),this.dataProjection=ee("EPSG:4326")}readFeaturesFromNode(t,e){if(e=this.getReadOptions(t,e),"osm"==t.localName){const i=hp({nodes:{},ways:[],features:[]},CO,t,[e]);for(let t=0;t>1):i>>1}return e}(t);for(let t=0,n=i.length;t=32;)e=63+(32|31&t),i+=String.fromCharCode(e),t>>=5;return e=t+63,i+=String.fromCharCode(e),i}const RO=class extends qB{constructor(t){super(),t=t||{},this.dataProjection=ee("EPSG:4326"),this.factor_=t.factor?t.factor:1e5,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY"}readFeatureFromText(t,e){const i=this.readGeometryFromText(t,e);return new _d(i)}readFeaturesFromText(t,e){return[this.readFeatureFromText(t,e)]}readGeometryFromText(t,e){const i=ya(this.geometryLayout_),n=LO(t,i,this.factor_);SO(n,0,n.length,i,n);const r=Pa(n,0,n.length,i);return KE(new wd(r,this.geometryLayout_),!1,this.adaptOptions(e))}writeFeatureText(t,e){const i=t.getGeometry();if(i)return this.writeGeometryText(i,e);throw new Error("Expected `feature` to have a geometry")}writeFeaturesText(t,e){return this.writeFeatureText(t[0],e)}writeGeometryText(t,e){const i=(t=KE(t,!0,this.adaptOptions(e))).getFlatCoordinates(),n=t.getStride();return SO(i,0,i.length,n,i),bO(i,n,this.factor_)}};const NO={Point:function(t,e,i){const n=t.coordinates;e&&i&&QO(n,e,i);return new qa(n)},LineString:function(t,e){const i=PO(t.arcs,e);return new wd(i)},Polygon:function(t,e){const i=[];for(let n=0,r=t.arcs.length;n0&&i.pop(),n>=0){const t=e[n];for(let e=0,n=t.length;e=0;--e)i.push(t[e].slice(0))}return i}function FO(t,e,i,n,r,s,o){const a=t.geometries,l=[];for(let t=0,h=a.length;t0,i=this.readUint32(e),n=Math.floor((268435455&i)/1e3),r=Boolean(2147483648&i)||1===n||3===n,s=Boolean(1073741824&i)||2===n||3===n,o=Boolean(536870912&i),a=(268435455&i)%1e3,l=["XY",r?"Z":"",s?"M":""].join(""),h=o?this.readUint32(e):null;if(void 0!==t&&t!==a)throw new Error("Unexpected WKB geometry type "+a);if(this.initialized_){if(this.isLittleEndian_!==e)throw new Error("Inconsistent endian");if(this.layout_!==l)throw new Error("Inconsistent geometry layout");if(h&&this.srid_!==h)throw new Error("Inconsistent coordinate system (SRID)")}else this.isLittleEndian_=e,this.hasZ_=r,this.hasM_=s,this.layout_=l,this.srid_=h,this.initialized_=!0;return a}readWkbPayload(t){switch(t){case GO:return this.readPoint();case UO:return this.readLineString();case qO:case WO:return this.readPolygon();case VO:return this.readMultiPoint();case zO:return this.readMultiLineString();case YO:case HO:case XO:return this.readMultiPolygon();case jO:return this.readGeometryCollection();default:throw new Error("Unsupported WKB geometry type "+t+" is found")}}readWkbBlock(t){return this.readWkbPayload(this.readWkbHeader(t))}readWkbCollection(t,e){const i=this.readUint32(),n=[];for(let r=0;r({[e]:t[i]}))));for(const t of this.layout_)this.writeDouble(t in i?i[t]:this.nodata_[t])}writeLineString(t,e){this.writeUint32(t.length);for(let i=0;it+e[0]),0),e=new ArrayBuffer(t),i=new DataView(e);let n=0;return this.writeQueue_.forEach((t=>{switch(t[0]){case 1:i.setUint8(n,t[1]);break;case 4:i.setUint32(n,t[1],this.isLittleEndian_);break;case 8:i.setFloat64(n,t[1],this.isLittleEndian_)}n+=t[0]})),e}}function ZO(t){return"string"==typeof t?function(t){const e=new Uint8Array(t.length/2);for(let i=0;inew _d({geometry:t})))}readGeometry(t,e){const i=ZO(t);if(!i)return null;const n=new KO(i).readGeometry();return this.viewCache_=i,e=this.getReadOptions(t,e),this.viewCache_=null,KE(n,!1,e)}readProjection(t){const e=this.viewCache_||ZO(t);if(!e)return;const i=new KO(e);return i.readWkbHeader(),i.getSrid()&&ee("EPSG:"+i.getSrid())||void 0}writeFeature(t,e){return this.writeGeometry(t.getGeometry(),e)}writeFeatures(t,e){return this.writeGeometry(new Od(t.map((t=>t.getGeometry()))),e)}writeGeometry(t,e){e=this.adaptOptions(e);const i=new JO({layout:this.layout_,littleEndian:this.littleEndian_,ewkb:this.ewkb_,nodata:{Z:this.nodataZ_,M:this.nodataM_}});let n=Number.isInteger(this.srid_)?Number(this.srid_):null;if(!1!==this.srid_&&!Number.isInteger(this.srid_)){const t=e.dataProjection&&ee(e.dataProjection);if(t){const e=t.getCode();e.startsWith("EPSG:")&&(n=Number(e.substring(5)))}}i.writeGeometry(KE(t,!0,e),n);const r=i.getBuffer();return this.hex_?function(t){const e=new Uint8Array(t);return Array.from(e.values()).map((t=>(t<16?"0":"")+Number(t).toString(16).toUpperCase())).join("")}(r):r}};const tQ=class extends ZE{constructor(t){super(),t=t||{},this.featureNS_="http://mapserver.gis.umn.edu/mapserver",this.gmlFormat_=new oC,this.layers_=t.layers?t.layers:null}getLayers(){return this.layers_}setLayers(t){this.layers_=t}readFeatures_(t,e){t.setAttribute("namespaceURI",this.featureNS_);const i=t.localName;let n=[];if(0===t.childNodes.length)return n;if("msGMLOutput"==i)for(let i=0,r=t.childNodes.length;i1?1:-1;return e.endInteraction(this.duration_,i),this.handlingDownUpSequence_=!1,this.handlingDoubleDownSequence_=!1,!1}return!0}stopDown(t){return t}updateTrackedPointers_(t){if(function(t){const e=t.type;return e===oh.POINTERDOWN||e===oh.POINTERDRAG||e===oh.POINTERUP}(t)){const e=t.originalEvent,i=e.pointerId.toString();t.type==oh.POINTERUP?delete this.trackedPointers_[i]:(t.type==oh.POINTERDOWN||i in this.trackedPointers_)&&(this.trackedPointers_[i]=e),this.targetPointers=Object.values(this.trackedPointers_)}}waitForDblTap_(){void 0!==this.doubleTapTimeoutId_?(clearTimeout(this.doubleTapTimeoutId_),this.doubleTapTimeoutId_=void 0):(this.handlingDoubleDownSequence_=!0,this.doubleTapTimeoutId_=setTimeout(this.endInteraction_.bind(this),250))}endInteraction_(){this.handlingDoubleDownSequence_=!1,this.doubleTapTimeoutId_=void 0}},iQ="addfeatures";class nQ extends us{constructor(t,e,i,n){super(t),this.features=i,this.file=e,this.projection=n}}const rQ=class extends Dh{constructor(t){t=t||{},super({handleEvent:Is}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];const e=t.formatConstructors?t.formatConstructors:[];for(let t=0,i=e.length;t0){this.source_&&(this.source_.clear(),this.source_.addFeatures(l)),this.dispatchEvent(new nQ(iQ,t,l,s));break}}}registerListeners_(){const t=this.getMap();if(t){const e=this.target?this.target:t.getViewport();this.dropListenKeys_=[Gs(e,Ps,this.handleDrop,this),Gs(e,Rs,this.handleStop,this),Gs(e,Ns,this.handleStop,this),Gs(e,Ps,this.handleStop,this)]}}setActive(t){!this.getActive()&&t&&this.registerListeners_(),this.getActive()&&!t&&this.unregisterListeners_(),super.setActive(t)}setMap(t){this.unregisterListeners_(),super.setMap(t),this.getActive()&&this.registerListeners_()}tryReadFeatures_(t,e,i){try{return t.readFeatures(e,i)}catch(t){return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(qs),this.dropListenKeys_=null)}handleDrop(t){const e=t.dataTransfer.files;for(let t=0,i=e.length;t1?1:-1;return e.endInteraction(this.duration_,i),this.lastScaleDelta_=0,!1}handleDownEvent(t){return!!$h(t)&&(!!this.condition_(t)&&(t.map.getView().beginInteraction(),this.lastAngle_=void 0,this.lastMagnitude_=void 0,!0))}},oQ="drawstart",aQ="drawend",lQ="drawabort";class hQ extends us{constructor(t,e){super(t),this.feature=e}}function cQ(t,e){return At(t[0],t[1],e[0],e[1])}function uQ(t,e){const i=t.length;return e<0?t[e+i]:e>=i?t[e-i]:t[e]}function gQ(t,e,i){let n,r;eo){return cQ(_Q(t,n),_Q(t,r))}let a=0;if(n=i?n-=i:n<0&&(n+=i);let s=n+1;s>=i&&(s-=i);const o=t[n],a=o[0],l=o[1],h=t[s];return[a+(h[0]-a)*r,l+(h[1]-l)*r]}function yQ(){const t=Tm();return function(e,i){return t[e.getGeometry().getType()]}}const IQ=class extends kh{constructor(t){const e=t;e.stopDown||(e.stopDown=Es),super(e),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=t.source?t.source:null,this.features_=t.features?t.features:null,this.snapTolerance_=t.snapTolerance?t.snapTolerance:12,this.type_=t.type,this.mode_=function(t){switch(t){case"Point":case"MultiPoint":return"Point";case"LineString":case"MultiLineString":return"LineString";case"Polygon":case"MultiPolygon":return"Polygon";case"Circle":return"Circle";default:throw new Error("Invalid type: "+t)}}(this.type_),this.stopClick_=!!t.stopClick,this.minPoints_=t.minPoints?t.minPoints:"Polygon"===this.mode_?3:2,this.maxPoints_="Circle"===this.mode_?2:t.maxPoints?t.maxPoints:1/0,this.finishCondition_=t.finishCondition?t.finishCondition:Is,this.geometryLayout_=t.geometryLayout?t.geometryLayout:"XY";let i=t.geometryFunction;if(!i){const t=this.mode_;if("Circle"===t)i=function(t,e,i){const n=e||new kd([NaN,NaN]),r=fe(t[0],i),s=Ft(r,fe(t[t.length-1],i));n.setCenterAndRadius(r,Math.sqrt(s),this.geometryLayout_);const o=pe();return o&&n.transform(i,o),n};else{let e;"Point"===t?e=qa:"LineString"===t?e=wd:"Polygon"===t&&(e=sl),i=function(i,n,r){return n?"Polygon"===t?i[0].length?n.setCoordinates([i[0].concat([i[0][0]])],this.geometryLayout_):n.setCoordinates([],this.geometryLayout_):n.setCoordinates(i,this.geometryLayout_):n=new e(i,this.geometryLayout_),n}}}this.geometryFunction_=i,this.dragVertexDelay_=void 0!==t.dragVertexDelay?t.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=t.clickTolerance?t.clickTolerance*t.clickTolerance:36,this.overlay_=new Sy({source:new kf({useSpatialIndex:!1,wrapX:!!t.wrapX&&t.wrapX}),style:t.style?t.style:yQ(),updateWhileInteracting:!0}),this.geometryName_=t.geometryName,this.condition_=t.condition?t.condition:Wh,this.freehandCondition_,t.freehand?this.freehandCondition_=Yh:this.freehandCondition_=t.freehandCondition?t.freehandCondition:Jh,this.traceCondition_,this.setTrace(t.trace||!1),this.traceState_={active:!1},this.traceSource_=t.traceSource||t.source||null,this.addChangeListener(Ph,this.updateState_)}setTrace(t){let e;e=t?!0===t?Yh:t:Hh,this.traceCondition_=e}setMap(t){super.setMap(t),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(t){t.originalEvent.type===Bs&&t.originalEvent.preventDefault(),this.freehand_="Point"!==this.mode_&&this.freehandCondition_(t);let e=t.type===oh.POINTERMOVE,i=!0;if(!this.freehand_&&this.lastDragTime_&&t.type===oh.POINTERDRAG){Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=t.pixel,this.shouldHandle_=!this.freehand_,e=!0):this.lastDragTime_=void 0,this.shouldHandle_&&void 0!==this.downTimeout_&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)}return this.freehand_&&t.type===oh.POINTERDRAG&&null!==this.sketchFeature_?(this.addToDrawing_(t.coordinate),i=!1):this.freehand_&&t.type===oh.POINTERDOWN?i=!1:e&&this.getPointerCount()<2?(i=t.type===oh.POINTERMOVE,i&&this.freehand_?(this.handlePointerMove_(t),this.shouldHandle_&&t.originalEvent.preventDefault()):("mouse"===t.originalEvent.pointerType||t.type===oh.POINTERDRAG&&void 0===this.downTimeout_)&&this.handlePointerMove_(t)):t.type===oh.DBLCLICK&&(i=!1),super.handleEvent(t)&&i}handleDownEvent(t){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=t.pixel,this.finishCoordinate_||this.startDrawing_(t.coordinate),!0):this.condition_(t)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout((()=>{this.handlePointerMove_(new sh(oh.POINTERMOVE,t.map,t.originalEvent,!1,t.frameState))}),this.dragVertexDelay_),this.downPx_=t.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(t){if(!this.traceSource_||!this.traceCondition_(t))return;if(this.traceState_.active)return void this.deactivateTrace_();const e=this.getMap(),i=T([e.getCoordinateFromPixel([t.pixel[0]-this.snapTolerance_,t.pixel[1]+this.snapTolerance_]),e.getCoordinateFromPixel([t.pixel[0]+this.snapTolerance_,t.pixel[1]-this.snapTolerance_])]),n=this.traceSource_.getFeaturesInExtent(i);if(0===n.length)return;const r=function(t,e){const i=[];for(let n=0;nt.endIndex||!i&&et.endIndex)&&this.removeTracedCoordinates_(e,t.endIndex):(this.removeTracedCoordinates_(t.startIndex,t.endIndex),this.addTracedCoordinates_(t,t.startIndex,e))}removeTracedCoordinates_(t,e){if(t===e)return;let i=0;if(t0&&this.removeLastPoints_(i)}addTracedCoordinates_(t,e,i){if(e===i)return;const n=[];if(e=s;--e)n.push(uQ(t.coordinates,e))}n.length&&this.appendCoordinates(n)}updateTrace_(t){const e=this.traceState_;if(!e.active)return;if(-1===e.targetIndex&&Dt(e.startPx,t.pixel)i.startIndex?hi.startIndex&&(h-=n.length)),l=h,a=t)}const h=e.targets[a];let c=h.ring;if(e.targetIndex===a&&c){const t=_Q(h.coordinates,l);Dt(i.getPixelFromCoordinate(t),e.startPx)>n&&(c=!1)}if(c){const t=h.coordinates,e=t.length,i=h.startIndex,n=l;if(ithis.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}this.finishCoordinate_?(this.updateTrace_(t),this.modifyDrawing_(t.coordinate)):this.createOrUpdateSketchPoint_(t.coordinate.slice())}atFinish_(t,e){let i=!1;if(this.sketchFeature_){let n=!1,r=[this.finishCoordinate_];const s=this.mode_;if("Point"===s)i=!0;else if("Circle"===s)i=2===this.sketchCoords_.length;else if("LineString"===s)n=!e&&this.sketchCoords_.length>this.minPoints_;else if("Polygon"===s){const t=this.sketchCoords_;n=t[0].length>this.minPoints_,r=[t[0][0],t[0][t[0].length-2]],r=e?[t[0][0]]:[t[0][0],t[0][t[0].length-2]]}if(n){const e=this.getMap();for(let n=0,s=r.length;n=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),this.geometryFunction_(r,e,i)):"Polygon"===s&&(r=this.sketchCoords_[0],r.length>=this.maxPoints_&&(this.freehand_?r.pop():n=!0),r.push(t.slice()),n&&(this.finishCoordinate_=r[0]),this.geometryFunction_(this.sketchCoords_,e,i)),this.createOrUpdateSketchPoint_(t.slice()),this.updateSketchFeatures_(),n&&this.finishDrawing()}removeLastPoints_(t){if(!this.sketchFeature_)return;const e=this.sketchFeature_.getGeometry(),i=this.getMap().getView().getProjection(),n=this.mode_;for(let r=0;r=2){this.finishCoordinate_=t[t.length-2].slice();const e=this.finishCoordinate_.slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}this.geometryFunction_(t,e,i),"Polygon"===e.getType()&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(e)}else if("Polygon"===n){t=this.sketchCoords_[0],t.splice(-2,1);const n=this.sketchLine_.getGeometry();if(t.length>=2){const e=t[t.length-2].slice();t[t.length-1]=e,this.createOrUpdateSketchPoint_(e)}n.setCoordinates(t),this.geometryFunction_(this.sketchCoords_,e,i)}if(1===t.length){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){const t=this.abortDrawing_();if(!t)return;let e=this.sketchCoords_;const i=t.getGeometry(),n=this.getMap().getView().getProjection();"LineString"===this.mode_?(e.pop(),this.geometryFunction_(e,i,n)):"Polygon"===this.mode_&&(e[0].pop(),this.geometryFunction_(e,i,n),e=i.getCoordinates()),"MultiPoint"===this.type_?t.setGeometry(new Id([e])):"MultiLineString"===this.type_?t.setGeometry(new bd([e])):"MultiPolygon"===this.type_&&t.setGeometry(new Md([e])),this.dispatchEvent(new hQ(aQ,t)),this.features_&&this.features_.push(t),this.source_&&this.source_.addFeature(t)}abortDrawing_(){this.finishCoordinate_=null;const t=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),t}abortDrawing(){const t=this.abortDrawing_();t&&this.dispatchEvent(new hQ(lQ,t))}appendCoordinates(t){const e=this.mode_,i=!this.sketchFeature_;let n;if(i&&this.startDrawing_(t[0]),"LineString"===e||"Circle"===e)n=this.sketchCoords_;else{if("Polygon"!==e)return;n=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[]}i&&n.shift(),n.pop();for(let e=0;er?o[1]:o[0]),a}}return null}handlePointerMove_(t){const e=t.pixel,i=t.map;let n=this.snapToVertex_(e,i);n||(n=i.getCoordinateFromPixelInternal(e)),this.createOrUpdatePointerFeature_(n)}createOrUpdateExtentFeature_(t){let e=this.extentFeature_;return e?t?e.setGeometry(al(t)):e.setGeometry(void 0):(e=new _d(t?al(t):{}),this.extentFeature_=e,this.extentOverlay_.getSource().addFeature(e)),e}createOrUpdatePointerFeature_(t){let e=this.vertexFeature_;if(e){e.getGeometry().setCoordinates(t)}else e=new _d(new qa(t)),this.vertexFeature_=e,this.vertexOverlay_.getSource().addFeature(e);return e}handleEvent(t){return!t.originalEvent||!this.condition_(t)||(t.type!=oh.POINTERMOVE||this.handlingDownUpSequence||this.handlePointerMove_(t),super.handleEvent(t),!1)}handleDownEvent(t){const e=t.pixel,i=t.map,n=this.getExtentInternal();let r=this.snapToVertex_(e,i);const s=function(t){let e=null,i=null;return t[0]==n[0]?e=n[2]:t[0]==n[2]&&(e=n[0]),t[1]==n[1]?i=n[3]:t[1]==n[3]&&(i=n[1]),null!==e&&null!==i?[e,i]:null};if(r&&n){const t=r[0]==n[0]||r[0]==n[2]?r[0]:null,e=r[1]==n[1]||r[1]==n[3]?r[1]:null;null!==t&&null!==e?this.pointerHandler_=wQ(s(r)):null!==t?this.pointerHandler_=SQ(s([t,n[1]]),s([t,n[3]])):null!==e&&(this.pointerHandler_=SQ(s([n[0],e]),s([n[2],e])))}else r=i.getCoordinateFromPixelInternal(e),this.setExtent([r[0],r[1],r[0],r[1]]),this.pointerHandler_=wQ(r);return!0}handleDragEvent(t){if(this.pointerHandler_){const e=t.coordinate;this.setExtent(this.pointerHandler_(e)),this.createOrUpdatePointerFeature_(e)}}handleUpEvent(t){this.pointerHandler_=null;const e=this.getExtentInternal();return e&&0!==K(e)||this.setExtent(null),!1}setMap(t){this.extentOverlay_.setMap(t),this.vertexOverlay_.setMap(t),super.setMap(t)}getExtent(){return me(this.getExtentInternal(),this.getMap().getView().getProjection())}getExtentInternal(){return this.extent_}setExtent(t){this.extent_=t||null,this.createOrUpdateExtentFeature_(t),this.dispatchEvent(new CQ(this.extent_))}};function LQ(t){return parseFloat(t)}function BQ(t){return function(t){return It(t,5)}(t).toString()}function MQ(t,e){return!isNaN(t)&&t!==LQ(BQ(e))}const TQ=class extends Dh{constructor(t){let e;super(),e=!0===(t=Object.assign({animate:!0,params:["x","y","z","r","l"],replace:!1,prefix:""},t||{})).animate?{duration:250}:t.animate?t.animate:null,this.animationOptions_=e,this.params_=t.params.reduce(((t,e)=>(t[e]=!0,t)),{}),this.replace_=t.replace,this.prefix_=t.prefix,this.listenerKeys_=[],this.initial_=!0,this.updateState_=this.updateState_.bind(this)}getParamName_(t){return this.prefix_?this.prefix_+t:t}get_(t,e){return t.get(this.getParamName_(e))}set_(t,e,i){e in this.params_&&t.set(this.getParamName_(e),i)}delete_(t,e){e in this.params_&&t.delete(this.getParamName_(e))}setMap(t){const e=this.getMap();super.setMap(t),t!==e&&(e&&this.unregisterListeners_(e),t&&(this.initial_=!0,this.updateState_(),this.registerListeners_(t)))}registerListeners_(t){this.listenerKeys_.push(Gs(t,ph,this.updateUrl_,this),Gs(t.getLayerGroup(),bs,this.updateUrl_,this),Gs(t,"change:layergroup",this.handleChangeLayerGroup_,this)),this.replace_||addEventListener("popstate",this.updateState_)}unregisterListeners_(t){for(let t=0,e=this.listenerKeys_.length;t=0;--t){const n=i[t];for(let t=this.dragSegments_.length-1;t>=0;--t)this.dragSegments_[t][0]===n&&this.dragSegments_.splice(t,1);e.remove(n)}}setActive(t){this.vertexFeature_&&!t&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(t)}setMap(t){this.overlay_.setMap(t),super.setMap(t)}getOverlay(){return this.overlay_}handleSourceAdd_(t){t.feature&&this.features_.push(t.feature)}handleSourceRemove_(t){t.feature&&this.features_.remove(t.feature)}handleFeatureAdd_(t){this.addFeature_(t.element)}handleFeatureChange_(t){if(!this.changingFeature_){const e=t.target;this.removeFeature_(e),this.addFeature_(e)}}handleFeatureRemove_(t){this.removeFeature_(t.element)}writePointGeometry_(t,e){const i=e.getCoordinates(),n={feature:t,geometry:e,segment:[i,i]};this.rBush_.insert(e.getExtent(),n)}writeMultiPointGeometry_(t,e){const i=e.getCoordinates();for(let n=0,r=i.length;n=0;--t)this.insertVertex_(r[t],s)}return!!this.vertexFeature_}handleUpEvent(t){for(let e=this.dragSegments_.length-1;e>=0;--e){const i=this.dragSegments_[e][0],n=i.geometry;if("Circle"===n.getType()){const e=n.getCenter(),r=i.featureSegments[0],s=i.featureSegments[1];r.segment[0]=e,r.segment[1]=e,s.segment[0]=e,s.segment[1]=e,this.rBush_.update(q(e),r);let o=n;const a=pe();if(a){const e=t.map.getView().getProjection();o=o.clone().transform(a,e),o=ll(o).transform(e,a)}this.rBush_.update(o.getExtent(),s)}else this.rBush_.update(T(i.segment),i)}return this.featuresBeingModified_&&(this.dispatchEvent(new DQ(FQ,this.featuresBeingModified_,t)),this.featuresBeingModified_=null),!1}handlePointerMove_(t){this.lastPixel_=t.pixel,this.handlePointerAtPixel_(t.pixel,t.map,t.coordinate)}handlePointerAtPixel_(t,e,i){const n=i||e.getCoordinateFromPixel(t),r=e.getView().getProjection(),s=function(t,e){return QQ(n,t,r)-QQ(n,e,r)};let o,a;if(this.hitDetection_){const i="object"==typeof this.hitDetection_?t=>t===this.hitDetection_:void 0;e.forEachFeatureAtPixel(t,((t,e,i)=>{i&&(i=new qa(Ae(i.getCoordinates(),r)));const n=i||t.getGeometry();if("Point"===n.getType()&&t instanceof _d&&this.features_.getArray().includes(t)){a=n;const e=t.getGeometry().getFlatCoordinates().slice(0,2);o=[{feature:t,geometry:a,segment:[e,e]}]}return!0}),{layerFilter:i})}if(!o){const t=me(R(_e(q(n,RQ),r),e.getView().getResolution()*this.pixelTolerance_,RQ),r);o=this.rBush_.getInExtent(t)}if(o&&o.length>0){const i=o.sort(s)[0],l=i.segment;let h=kQ(n,i,r);const c=e.getPixelFromCoordinate(h);let u=Dt(t,c);if(a||u<=this.pixelTolerance_){const t={};if(t[Xs(l)]=!0,this.snapToPointer_||(this.delta_[0]=h[0]-n[0],this.delta_[1]=h[1]-n[1]),"Circle"===i.geometry.getType()&&1===i.index)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);else{const n=e.getPixelFromCoordinate(l[0]),r=e.getPixelFromCoordinate(l[1]),s=Ft(c,n),a=Ft(c,r);u=Math.sqrt(Math.min(s,a)),this.snappedToVertex_=u<=this.pixelTolerance_,this.snappedToVertex_&&(h=s>a?l[1]:l[0]),this.createOrUpdateVertexFeature_(h,[i.feature],[i.geometry]);const g={};g[Xs(i.geometry)]=!0;for(let e=1,i=o.length;e=0;--o)r=t[o],u=r[0],g=Xs(u.feature),u.depth&&(g+="-"+u.depth.join("-")),g in e||(e[g]={}),0===r[1]?(e[g].right=u,e[g].index=u.index):1==r[1]&&(e[g].left=u,e[g].index=u.index+1);for(g in e){switch(c=e[g].right,l=e[g].left,a=e[g].index,h=a-1,u=void 0!==l?l:c,h<0&&(h=0),s=u.geometry,n=s.getCoordinates(),i=n,d=!1,s.getType()){case"MultiLineString":n[u.depth[0]].length>2&&(n[u.depth[0]].splice(a,1),d=!0);break;case"LineString":n.length>2&&(n.splice(a,1),d=!0);break;case"MultiPolygon":i=i[u.depth[1]];case"Polygon":i=i[u.depth[0]],i.length>4&&(a==i.length-1&&(a=0),i.splice(a,1),d=!0,0===a&&(i.pop(),i.push(i[0]),h=i.length-1))}if(d){this.setGeometryCoordinates_(s,n);const e=[];if(void 0!==l&&(this.rBush_.remove(l),e.push(l.segment[0])),void 0!==c&&(this.rBush_.remove(c),e.push(c.segment[1])),void 0!==l&&void 0!==c){const t={depth:u.depth,feature:u.feature,geometry:u.geometry,index:h,segment:e};this.rBush_.insert(T(t.segment),t)}this.updateSegmentIndices_(s,a,u.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),t.length=0}}return d}setGeometryCoordinates_(t,e){this.changingFeature_=!0,t.setCoordinates(e),this.changingFeature_=!1}updateSegmentIndices_(t,e,i,n){this.rBush_.forEachInExtent(t.getExtent(),(function(r){r.geometry===t&&(void 0===i||void 0===r.depth||ys(r.depth,i))&&r.index>e&&(r.index+=n)}))}},qQ="snap";class VQ extends us{constructor(t,e){super(t),this.vertex=e.vertex,this.vertexPixel=e.vertexPixel,this.feature=e.feature}}function zQ(t){return t.feature?t.feature:t.element?t.element:null}const YQ=[];const jQ=class extends kh{constructor(t){const e=t=t||{};e.handleDownEvent||(e.handleDownEvent=Is),e.stopDown||(e.stopDown=Es),super(e),this.on,this.once,this.un,this.source_=t.source?t.source:null,this.vertex_=void 0===t.vertex||t.vertex,this.edge_=void 0===t.edge||t.edge,this.features_=t.features?t.features:null,this.featuresListenerKeys_=[],this.featureChangeListenerKeys_={},this.indexedFeaturesExtents_={},this.pendingFeatures_={},this.pixelTolerance_=void 0!==t.pixelTolerance?t.pixelTolerance:10,this.rBush_=new Sf,this.GEOMETRY_SEGMENTERS_={Point:this.segmentPointGeometry_.bind(this),LineString:this.segmentLineStringGeometry_.bind(this),LinearRing:this.segmentLineStringGeometry_.bind(this),Polygon:this.segmentPolygonGeometry_.bind(this),MultiPoint:this.segmentMultiPointGeometry_.bind(this),MultiLineString:this.segmentMultiLineStringGeometry_.bind(this),MultiPolygon:this.segmentMultiPolygonGeometry_.bind(this),GeometryCollection:this.segmentGeometryCollectionGeometry_.bind(this),Circle:this.segmentCircleGeometry_.bind(this)}}addFeature(t,e){e=void 0===e||e;const i=Xs(t),n=t.getGeometry();if(n){const e=this.GEOMETRY_SEGMENTERS_[n.getType()];if(e){this.indexedFeaturesExtents_[i]=n.getExtent([1/0,1/0,-1/0,-1/0]);const r=[];if(e(r,n),1===r.length)this.rBush_.insert(T(r[0]),{feature:t,segment:r[0]});else if(r.length>1){const e=r.map((t=>T(t))),i=r.map((e=>({feature:t,segment:e})));this.rBush_.load(e,i)}}}e&&(this.featureChangeListenerKeys_[i]=Gs(t,bs,this.handleFeatureChange_,this))}getFeatures_(){let t;return this.features_?t=this.features_:this.source_&&(t=this.source_.getFeatures()),t}handleEvent(t){const e=this.snapTo(t.pixel,t.coordinate,t.map);return e&&(t.coordinate=e.vertex.slice(0,2),t.pixel=e.vertexPixel,this.dispatchEvent(new VQ(qQ,{vertex:t.coordinate,vertexPixel:t.pixel,feature:e.feature}))),super.handleEvent(t)}handleFeatureAdd_(t){const e=zQ(t);e&&this.addFeature(e)}handleFeatureRemove_(t){const e=zQ(t);e&&this.removeFeature(e)}handleFeatureChange_(t){const e=t.target;if(this.handlingDownUpSequence){const t=Xs(e);t in this.pendingFeatures_||(this.pendingFeatures_[t]=e)}else this.updateFeature_(e)}handleUpEvent(t){const e=Object.values(this.pendingFeatures_);return e.length&&(e.forEach(this.updateFeature_.bind(this)),this.pendingFeatures_={}),!1}removeFeature(t,e){const i=void 0===e||e,n=Xs(t),r=this.indexedFeaturesExtents_[n];if(r){const e=this.rBush_,i=[];e.forEachInExtent(r,(function(e){t===e.feature&&i.push(e)}));for(let t=i.length-1;t>=0;--t)e.remove(i[t])}i&&(qs(this.featureChangeListenerKeys_[n]),delete this.featureChangeListenerKeys_[n])}setMap(t){const e=this.getMap(),i=this.featuresListenerKeys_,n=this.getFeatures_();e&&(i.forEach(qs),i.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(qs),this.featureChangeListenerKeys_={}),super.setMap(t),t&&(this.features_?i.push(Gs(this.features_,Js,this.handleFeatureAdd_,this),Gs(this.features_,Zs,this.handleFeatureRemove_,this)):this.source_&&i.push(Gs(this.source_,bf,this.handleFeatureAdd_,this),Gs(this.source_,Mf,this.handleFeatureRemove_,this)),n.forEach((t=>this.addFeature(t))))}snapTo(t,e,i){const n=i.getView().getProjection(),r=fe(e,n),s=me(R(T([r]),i.getView().getResolution()*this.pixelTolerance_),n),o=this.rBush_.getInExtent(s),a=o.length;if(0===a)return null;let l,h,c=1/0;const u=this.pixelTolerance_*this.pixelTolerance_,g=()=>{if(l){const e=i.getPixelFromCoordinate(l);if(Ft(t,e)<=u)return{vertex:l,vertexPixel:[Math.round(e[0]),Math.round(e[1])],feature:h}}return null};if(this.vertex_){for(let t=0;t{const i=fe(t,n),s=Ft(r,i);s{t.push([e])}))}segmentMultiPolygonGeometry_(t,e){const i=e.getCoordinates();for(let e=0,n=i.length;e{if(t instanceof _d&&this.filter_(t,e)&&(!this.features_||this.features_.getArray().includes(t)))return t}),{layerFilter:this.layerFilter_,hitTolerance:this.hitTolerance_})}getHitTolerance(){return this.hitTolerance_}setHitTolerance(t){this.hitTolerance_=t}setMap(t){const e=this.getMap();super.setMap(t),this.updateState_(e)}handleActiveChanged_(){this.updateState_(null)}updateState_(t){let e=this.getMap();const i=this.getActive();if((!e||!i)&&(e=e||t,e)){e.getViewport().classList.remove("ol-grab","ol-grabbing")}}};function ZQ(t,e,i){const n=[];let r=t(0),s=t(1),o=e(r),a=e(s);const l=[s,r],h=[a,o],c=[1,0],u={};let g,d,p,A,f,m,_=1e5;for(;--_>0&&c.length>0;)p=c.pop(),r=l.pop(),o=h.pop(),m=p.toString(),m in u||(n.push(o[0],o[1]),u[m]=!0),A=c.pop(),s=l.pop(),a=h.pop(),f=(p+A)/2,g=t(f),d=e(g),pt(d[0],d[1],o[0],o[1],a[0],a[1]){const e=t.get("graticule_label");return this.lonLabelStyleBase_.getText().setText(e),this.lonLabelStyleBase_},this.latLabelStyleBase_=new Nm({text:void 0!==t.latLabelStyle?t.latLabelStyle.clone():new Fm({font:"12px Calibri,sans-serif",textAlign:"right",fill:new wm({color:"rgba(0,0,0,1)"}),stroke:new bm({color:"rgba(255,255,255,1)",width:3})})}),this.latLabelStyle_=t=>{const e=t.get("graticule_label");return this.latLabelStyleBase_.getText().setText(e),this.latLabelStyleBase_},this.meridiansLabels_=[],this.parallelsLabels_=[],this.addEventListener(Xo,this.drawLabels_.bind(this))),this.intervals_=void 0!==t.intervals?t.intervals:tk,this.setSource(new kf({loader:this.loaderFunction.bind(this),strategy:this.strategyFunction.bind(this),features:new eo,overlaps:!1,useSpatialIndex:!1,wrapX:t.wrapX})),this.featurePool_=[],this.lineStyle_=new Nm({stroke:this.strokeStyle_}),this.loadedExtent_=null,this.renderedExtent_=null,this.renderedResolution_=null,this.setRenderOrder(null)}strategyFunction(t,e){let i=t.slice();var n,r,s;return this.projection_&&this.getSource().getWrapX()&>(i,this.projection_),this.loadedExtent_&&(n=this.loadedExtent_,r=i,s=e,Math.abs(n[0]-r[0])this.featurePool_.length;)a=new _d,this.featurePool_.push(a);const h=n.getFeaturesCollection();h.clear();let c,u,g=0;for(c=0,u=this.meridians_.length;cMath.PI/2}const g=sm(t);for(let t=a;t<=l;++t){let i,n,c,d,p=this.meridians_.length+this.parallels_.length;if(this.meridiansLabels_)for(n=0,c=this.meridiansLabels_.length;n=a?(t[0]=o[0],t[2]=o[2]):s=!0);const l=[dt(e[0],this.minX_,this.maxX_),dt(e[1],this.minY_,this.maxY_)],h=this.toLonLatTransform_(l);isNaN(h[1])&&(h[1]=Math.abs(this.maxLat_)>=Math.abs(this.minLat_)?this.maxLat_:this.minLat_);let c=dt(h[0],this.minLon_,this.maxLon_),u=dt(h[1],this.minLat_,this.maxLat_);const g=this.maxLines_;let d,p,A,f,m=t;s||(m=[dt(t[0],this.minX_,this.maxX_),dt(t[1],this.minY_,this.maxY_),dt(t[2],this.minX_,this.maxX_),dt(t[3],this.minY_,this.maxY_)]);const _=ut(m,this.toLonLatTransform_,void 0,8);let y=_[3],I=_[2],E=_[1],C=_[0];if(s||(F(m,this.bottomLeft_)&&(C=this.minLon_,E=this.minLat_),F(m,this.bottomRight_)&&(I=this.maxLon_,E=this.minLat_),F(m,this.topLeft_)&&(C=this.minLon_,y=this.maxLat_),F(m,this.topRight_)&&(I=this.maxLon_,y=this.maxLat_),y=dt(y,u,this.maxLat_),I=dt(I,c,this.maxLon_),E=dt(E,this.minLat_,u),C=dt(C,this.minLon_,c)),c=Math.floor(c/r)*r,f=dt(c,this.minLon_,this.maxLon_),p=this.addMeridian_(f,E,y,n,t,0),d=0,s)for(;(f-=r)>=C&&d++n[s]&&(r=s,s=1);const o=Math.max(e[1],n[r]),a=Math.min(e[3],n[s]),l=dt(e[1]+Math.abs(e[1]-e[3])*this.lonLabelPosition_,o,a),h=[n[r-1]+(n[s-1]-n[r-1])*(l-n[r])/(n[s]-n[r]),l],c=this.meridiansLabels_[i].geom;return c.setCoordinates(h),c}getMeridians(){return this.meridians_}getParallel_(t,e,i,n,r){const s=function(t,e,i,n,r){return ZQ((function(n){return[e+(i-e)*n,t]}),he(ee("EPSG:4326"),n),r)}(t,e,i,this.projection_,n);let o=this.parallels_[r];return o?(o.setFlatCoordinates("XY",s),o.changed()):o=new wd(s,"XY"),o}getParallelPoint_(t,e,i){const n=t.getFlatCoordinates();let r=0,s=n.length-2;n[r]>n[s]&&(r=s,s=0);const o=Math.max(e[0],n[r]),a=Math.min(e[2],n[s]),l=dt(e[0]+Math.abs(e[0]-e[2])*this.latLabelPosition_,o,a),h=[l,n[r+1]+(n[s+1]-n[r+1])*(l-n[r])/(n[s]-n[r])],c=this.parallelsLabels_[i].geom;return c.setCoordinates(h),c}getParallels(){return this.parallels_}updateProjectionInfo_(t){const e=ee("EPSG:4326"),i=t.getWorldExtent();this.maxLat_=i[3],this.maxLon_=i[2],this.minLat_=i[1],this.minLon_=i[0];const n=he(t,e);if(this.minLon_=Math.abs(this.minLat_)?this.maxLat_:this.minLat_),this.projection_=t}};const ik=class extends Fg{constructor(t,e,i,n,r){super(t,e,i,void 0!==r?Cg:xg),this.loader_=void 0!==r?r:null,this.canvas_=n,this.error_=null}getError(){return this.error_}handleLoad_(t){t?(this.error_=t,this.state=wg):this.state=xg,this.changed()}load(){this.state==Cg&&(this.state=vg,this.changed(),this.loader_(this.handleLoad_.bind(this)))}getImage(){return this.canvas_}};const nk=class extends Zg{constructor(t){super(t),this.vectorRenderer_=new wy(t),this.layerImageRatio_=t.getImageRatio(),this.coordinateToVectorPixelTransform_=[1,0,0,1,0,0],this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(t){if(!this.vectorRenderer_)return Promise.resolve([]);const e=_o(this.coordinateToVectorPixelTransform_,_o(this.renderedPixelToCoordinateTransform_,t.slice()));return this.vectorRenderer_.getFeatures(e)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(t){const e=t.pixelRatio,i=t.viewState,n=i.resolution,r=t.viewHints,s=this.vectorRenderer_;let o=t.extent;1!==this.layerImageRatio_&&(o=o.slice(0),ct(o,this.layerImageRatio_));const a=at(o)/n,l=nt(o)/n;if(!r[Zo]&&!r[$o]&&!ht(o)){s.useContainer(null,null);const r=s.context,h=t.layerStatesArray[t.layerIndex],c=Object.assign({},h,{opacity:1}),u=Object.assign({},t,{declutterTree:new wf(9),extent:o,size:[a,l],viewState:Object.assign({},t.viewState,{rotation:0}),layerStatesArray:[c],layerIndex:0});let g=!0;const d=new ik(o,n,e,r.canvas,(function(t){s.prepareFrame(u)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(u,null)&&(s.renderDeclutter(u),g=!1),t())}));d.addEventListener(bs,(()=>{if(d.getState()!==xg)return;this.image_=g?null:d;const t=d.getPixelRatio(),n=PA(d.getResolution())*e/t;this.renderedResolution=n,this.coordinateToVectorPixelTransform_=Eo(this.coordinateToVectorPixelTransform_,a/2,l/2,1/n,-1/n,0,-i.center[0],-i.center[1])})),d.load()}return this.image_&&(this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice()),!!this.image_}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(t,e,i,n,r){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(t,e,i,n,r):super.forEachFeatureAtCoordinate(t,e,i,n,r)}};const rk=class extends Y_{constructor(t){t=t||{};const e=Object.assign({},t);delete e.imageRatio,super(e),this.imageRatio_=void 0!==t.imageRatio?t.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new nk(this)}};function sk(t,e){const i=`\n attribute vec2 ${dT};\n uniform mat4 ${gT.TILE_TRANSFORM};\n uniform float ${gT.TEXTURE_PIXEL_WIDTH};\n uniform float ${gT.TEXTURE_PIXEL_HEIGHT};\n uniform float ${gT.TEXTURE_RESOLUTION};\n uniform float ${gT.TEXTURE_ORIGIN_X};\n uniform float ${gT.TEXTURE_ORIGIN_Y};\n uniform float ${gT.DEPTH};\n\n varying vec2 v_textureCoord;\n varying vec2 v_mapCoord;\n\n void main() {\n v_textureCoord = ${dT};\n v_mapCoord = vec2(\n ${gT.TEXTURE_ORIGIN_X} + ${gT.TEXTURE_RESOLUTION} * ${gT.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\n ${gT.TEXTURE_ORIGIN_Y} - ${gT.TEXTURE_RESOLUTION} * ${gT.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\n );\n gl_Position = ${gT.TILE_TRANSFORM} * vec4(${dT}, ${gT.DEPTH}, 1.0);\n }\n `,n={inFragmentShader:!0,variables:[],attributes:[],functions:{},bandCount:e,style:t},r=[];if(void 0!==t.color){const e=bT(n,t.color,fT.COLOR);r.push(`color = ${e};`)}if(void 0!==t.contrast){const e=bT(n,t.contrast,fT.NUMBER);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb - (${e} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.exposure){const e=bT(n,t.exposure,fT.NUMBER);r.push(`color.rgb = clamp((${e} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(void 0!==t.saturation){const e=bT(n,t.saturation,fT.NUMBER);r.push(`\n float saturation = ${e} + 1.0;\n float sr = (1.0 - saturation) * 0.2126;\n float sg = (1.0 - saturation) * 0.7152;\n float sb = (1.0 - saturation) * 0.0722;\n mat3 saturationMatrix = mat3(\n sr + saturation, sr, sr,\n sg, sg + saturation, sg,\n sb, sb, sb + saturation\n );\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\n `)}if(void 0!==t.gamma){const e=bT(n,t.gamma,fT.NUMBER);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${e}));`)}if(void 0!==t.brightness){const e=bT(n,t.brightness,fT.NUMBER);r.push(`color.rgb = clamp(color.rgb + ${e}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}const s={},o=n.variables.length;if(o>1&&!t.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let e=0;e ${gT.RENDER_EXTENT}[2] ||\n v_mapCoord[1] > ${gT.RENDER_EXTENT}[3]\n ) {\n discard;\n }\n\n vec4 color = texture2D(${gT.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\n\n ${r.join("\n")}\n\n gl_FragColor = color;\n gl_FragColor.rgb *= gl_FragColor.a;\n gl_FragColor *= ${gT.TRANSITION_ALPHA};\n }`,uniforms:s,paletteTextures:n.paletteTextures}}class ok extends Eg{constructor(t){const e=(t=t?Object.assign({},t):{}).style||{};delete t.style;const i=t.cacheSize;delete t.cacheSize,super(t),this.sources_=t.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=e,this.cacheSize_=i,this.styleVariables_=this.style_.variables||{},this.addChangeListener(zo,this.handleSourceUpdate_)}getSources(t,e){const i=this.getSource();return this.sources_?"function"==typeof this.sources_?this.sources_(t,e):this.sources_:i?[i]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){const t=this.getRenderSource();return t?t.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache(),this.getSource()&&this.setStyle(this.style_)}getSourceBandCount_(){const t=Number.MAX_SAFE_INTEGER,e=this.getSources([-t,-t,t,t],t);return e&&e.length&&"bandCount"in e[0]?e[0].bandCount:4}createRenderer(){const t=sk(this.style_,this.getSourceBandCount_());return new AT(this,{vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,cacheSize:this.cacheSize_,paletteTextures:t.paletteTextures})}renderSources(t,e){const i=this.getRenderer();let n;for(let r=0,s=e.length;r{"ready"==e.getState()&&(e.removeEventListener("change",t),this.changed())};e.addEventListener("change",t)}r=r&&"ready"==i}const s=this.renderSources(t,n);if(this.getRenderer().renderComplete&&r)return this.renderedResolution_=i.resolution,s;if(this.renderedResolution_>.5*i.resolution){const e=this.getSources(t.extent,this.renderedResolution_).filter((t=>!n.includes(t)));if(e.length>0)return this.renderSources(t,e)}return s}setStyle(t){this.styleVariables_=t.variables||{},this.style_=t;const e=sk(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms}),this.changed()}updateStyleVariables(t){Object.assign(this.styleVariables_,t),this.changed()}}ok.prototype.dispose;const ak=ok;const lk=class extends TA{constructor(t){const e=void 0!==t.hidpi&&t.hidpi;super({cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,opaque:!0,projection:ee("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,tilePixelRatio:e?2:1,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.hidpi_=e,this.culture_=void 0!==t.culture?t.culture:"en-us",this.maxZoom_=void 0!==t.maxZoom?t.maxZoom:-1,this.apiKey_=t.key,this.imagerySet_=t.imagerySet,this.placeholderTiles_=t.placeholderTiles;const i="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/"+this.imagerySet_+"?uriScheme=https&include=ImageryProviders&key="+this.apiKey_+"&c="+this.culture_;fetch(i).then((t=>t.json())).then((t=>this.handleImageryMetadataResponse(t)))}getApiKey(){return this.apiKey_}getImagerySet(){return this.imagerySet_}handleImageryMetadataResponse(t){if(200!=t.statusCode||"OK"!=t.statusDescription||"ValidCredentials"!=t.authenticationResultCode||1!=t.resourceSets.length||1!=t.resourceSets[0].resources.length)return void this.setState("error");const e=t.resourceSets[0].resources[0],i=-1==this.maxZoom_?e.zoomMax:this.maxZoom_,n=IA(this.getProjection()),r=this.hidpi_?2:1,s=e.imageWidth==e.imageHeight?e.imageWidth/r:[e.imageWidth/r,e.imageHeight/r],o=_A({extent:n,minZoom:e.zoomMin,maxZoom:i,tileSize:s});this.tileGrid=o;const a=this.culture_,l=this.hidpi_,h=this.placeholderTiles_;if(this.tileUrlFunction=wA(e.imageUrlSubdomains.map((function(t){const i=[0,0,0],n=e.imageUrl.replace("{subdomain}",t).replace("{culture}",a);return function(t,e,r){if(!t)return;td(t[0],t[1],t[2],i);const s=new URL(n.replace("{quadkey}",function(t){const e=t[0],i=new Array(e);let n,r,s=1<>=1;return i.join("")}(i))),o=s.searchParams;return l&&(o.set("dpi","d1"),o.set("device","mobile")),!0===h?o.delete("n"):!1===h&&o.set("n","z"),s.toString()}}))),e.imageryProviders){const t=le(ee("EPSG:4326"),this.getProjection());this.setAttributions((i=>{const n=[],r=i.viewState,s=this.getTileGrid(),o=s.getZForResolution(r.resolution,this.zDirection),a=s.getTileCoordForCoordAndZ(r.center,o)[0];return e.imageryProviders.map((function(e){let r=!1;const s=e.coverageAreas;for(let e=0,n=s.length;e=n.zoomMin&&a<=n.zoomMax){const e=n.bbox;if(lt(ut([e[1],e[0],e[3],e[2]],t),i.extent)){r=!0;break}}}r&&n.push(e.attribution)})),n.push('Terms of Use'),n}))}this.setState("ready")}};const hk=class extends Vb{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,maxZoom:void 0!==t.maxZoom?t.maxZoom:18,minZoom:t.minZoom,projection:t.projection,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection}),this.account_=t.account,this.mapId_=t.map||"",this.config_=t.config||{},this.templateCache_={},this.initializeMap_()}getConfig(){return this.config_}updateConfig(t){Object.assign(this.config_,t),this.initializeMap_()}setConfig(t){this.config_=t||{},this.initializeMap_()}initializeMap_(){const t=JSON.stringify(this.config_);if(this.templateCache_[t])return void this.applyTemplate_(this.templateCache_[t]);let e="https://"+this.account_+".carto.com/api/v1/map";this.mapId_&&(e+="/named/"+this.mapId_);const i=new XMLHttpRequest;i.addEventListener("load",this.handleInitResponse_.bind(this,t)),i.addEventListener("error",this.handleInitError_.bind(this)),i.open("POST",e),i.setRequestHeader("Content-type","application/json"),i.send(JSON.stringify(this.config_))}handleInitResponse_(t,e){const i=e.target;if(!i.status||i.status>=200&&i.status<300){let e;try{e=JSON.parse(i.responseText)}catch(t){return void this.setState("error")}this.applyTemplate_(e),this.templateCache_[t]=e,this.setState("ready")}else this.setState("error")}handleInitError_(t){this.setState("error")}applyTemplate_(t){const e="https://"+t.cdn_url.https+"/"+this.account_+"/api/v1/map/"+t.layergroupid+"/{z}/{x}/{y}.png";this.setUrl(e)}};const ck=class extends CA{constructor(t){const e=void 0===t.projection?"EPSG:3857":t.projection;let i=t.tileGrid;void 0===i&&e&&(i=_A({extent:IA(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize})),super({cacheSize:.1,attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,projection:e,tileGrid:i,opaque:t.opaque,state:t.state,wrapX:t.wrapX,transition:t.transition,interpolate:t.interpolate}),this.gutter_=void 0!==t.gutter?t.gutter:0,this.tileSize_=t.tileSize?xc(t.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=t.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=void 0===t.bandCount?4:t.bandCount,this.tileGridForProjection_={},this.tileCacheForProjection_={}}setTileSizes(t){this.tileSizes_=t}getTileSize(t){if(this.tileSizes_)return this.tileSizes_[t];if(this.tileSize_)return this.tileSize_;const e=this.getTileGrid();return e?xc(e.getTileSize(t)):[256,256]}getGutterForProjection(t){const e=this.getProjection();return!e||ae(e,t)?this.gutter_:0}setLoader(t){this.loader_=t}getReprojTile_(t,e,i,n,r){const s=this.getTileCacheForProjection(n),o=ed(t,e,i);if(s.containsKey(o)){const t=s.get(o);if(t&&t.key==this.getKey())return t}const a=this.getTileGrid(),l=Math.max.apply(null,a.getResolutions().map(((t,e)=>{const i=xc(a.getTileSize(e)),n=this.getTileSize(e);return Math.max(n[0]/i[0],n[1]/i[1])}))),h=this.getTileGridForProjection(r),c=this.getTileGridForProjection(n),u=[t,e,i],g=this.getTileCoordForTileUrlFunction(u,n),d=Object.assign({sourceProj:r,sourceTileGrid:h,targetProj:n,targetTileGrid:c,tileCoord:u,wrappedTileCoord:g,pixelRatio:l,gutter:this.getGutterForProjection(r),getTileFunction:(t,e,i,n)=>this.getTile(t,e,i,n,r)},this.tileOptions),p=new tT(d);return p.key=this.getKey(),p}getTile(t,e,i,n,r){const s=this.getProjection();if(s&&r&&!ae(s,r))return this.getReprojTile_(t,e,i,r,s);const o=this.getTileSize(t),a=ed(t,e,i);if(this.tileCache.containsKey(a))return this.tileCache.get(a);const l=this.loader_;const h=Object.assign({tileCoord:[t,e,i],loader:function(){return vs((function(){return l(t,e,i)}))},size:o},this.tileOptions),c=new $M(h);return c.key=this.getKey(),c.addEventListener(bs,this.handleTileChange_),this.tileCache.set(a,c),c}handleTileChange_(t){const e=t.target,i=Xs(e),n=e.getState();let r;n==xh?(this.tileLoadingKeys_[i]=!0,r=gA):i in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[i],r=n==Sh?pA:n==wh?dA:void 0),r&&this.dispatchEvent(new EA(r,e))}getTileGridForProjection(t){const e=this.getProjection();if(this.tileGrid&&(!e||ae(e,t)))return this.tileGrid;const i=Xs(t);return i in this.tileGridForProjection_||(this.tileGridForProjection_[i]=mA(t)),this.tileGridForProjection_[i]}setTileGridForProjection(t,e){const i=ee(t);if(i){const t=Xs(i);t in this.tileGridForProjection_||(this.tileGridForProjection_[t]=e)}}getTileCacheForProjection(t){const e=this.getProjection();if(!e||ae(e,t))return this.tileCache;const i=Xs(t);return i in this.tileCacheForProjection_||(this.tileCacheForProjection_[i]=new uA(.1)),this.tileCacheForProjection_[i]}expireCache(t,e){const i=this.getTileCacheForProjection(t);this.tileCache.expireCache(this.tileCache==i?e:{});for(const t in this.tileCacheForProjection_){const n=this.tileCacheForProjection_[t];n.expireCache(n==i?e:{})}}clear(){super.clear();for(const t in this.tileCacheForProjection_)this.tileCacheForProjection_[t].clear()}};var uk=i(499);const gk=new Map;function dk(t,e){Array.isArray(t)||(t=[t]),t.forEach((t=>gk.set(t,e)))}async function pk(t){const e=gk.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);return new(await e())(t)}dk([void 0,1],(()=>Promise.resolve().then(i.bind(i,321)).then((t=>t.default)))),dk(5,(()=>Promise.resolve().then(i.bind(i,672)).then((t=>t.default)))),dk(6,(()=>{throw new Error("old style JPEG compression is not supported.")})),dk(7,(()=>Promise.resolve().then(i.bind(i,347)).then((t=>t.default)))),dk([8,32946],(()=>Promise.resolve().then(i.bind(i,522)).then((t=>t.default)))),dk(32773,(()=>Promise.resolve().then(i.bind(i,411)).then((t=>t.default)))),dk(34887,(()=>Promise.resolve().then(i.bind(i,293)).then((async t=>(await t.zstd.init(),t))).then((t=>t.default)))),dk(50001,(()=>Promise.resolve().then(i.bind(i,588)).then((t=>t.default))));const Ak="undefined"!=typeof navigator&&navigator.hardwareConcurrency||2;const fk=class{constructor(t=Ak,e){this.workers=null,this._awaitingDecoder=null,this.size=t,this.messageId=0,t&&(this._awaitingDecoder=e?Promise.resolve(e):new Promise((t=>{Promise.resolve().then(i.bind(i,294)).then((e=>{t(e.create)}))})),this._awaitingDecoder.then((e=>{this._awaitingDecoder=null,this.workers=[];for(let i=0;ii.decode(t,e))):new Promise((i=>{const n=this.workers.find((t=>t.idle))||this.workers[Math.floor(Math.random()*this.size)];n.idle=!1;const r=this.messageId++,s=t=>{t.data.id===r&&(n.idle=!0,i(t.data.decoded),n.worker.removeEventListener("message",s))};n.worker.addEventListener("message",s),n.worker.postMessage({fileDirectory:t,buffer:e,id:r},[e])}))}destroy(){this.workers&&(this.workers.forEach((t=>{t.worker.terminate()})),this.workers=null)}};function mk(t){return(e,...i)=>yk(t,e,i)}function _k(t,e){return mk(vk(t,e).get)}const{apply:yk,construct:Ik,defineProperty:Ek,get:Ck,getOwnPropertyDescriptor:vk,getPrototypeOf:xk,has:wk,ownKeys:Sk,set:bk,setPrototypeOf:Lk}=Reflect,{EPSILON:Bk,MAX_SAFE_INTEGER:Mk,isFinite:Tk,isNaN:Rk}=Number,{iterator:Nk,species:Pk,toStringTag:Fk,for:Dk}=Symbol,Ok=Object,{create:Qk,defineProperty:kk,freeze:Gk,is:Uk}=Ok,qk=Ok.prototype,Vk=(qk.__lookupGetter__&&mk(qk.__lookupGetter__),Ok.hasOwn||mk(qk.hasOwnProperty)),zk=Array,Yk=(zk.isArray,zk.prototype),jk=(mk(Yk.join),mk(Yk.push),mk(Yk.toLocaleString),Yk[Nk]),Hk=mk(jk),{abs:Xk,trunc:Wk}=Math,Kk=ArrayBuffer,Jk=(Kk.isView,Kk.prototype),Zk=(mk(Jk.slice),_k(Jk,"byteLength"),"undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:null),$k=(Zk&&_k(Zk.prototype,"byteLength"),xk(Uint8Array)),tG=($k.from,$k.prototype),eG=(tG[Nk],mk(tG.keys),mk(tG.values),mk(tG.entries),mk(tG.set),mk(tG.reverse),mk(tG.fill),mk(tG.copyWithin),mk(tG.sort),mk(tG.slice),mk(tG.subarray),_k(tG,"buffer"),_k(tG,"byteOffset"),_k(tG,"length"),_k(tG,Fk),Uint8Array),iG=Uint16Array,nG=Uint32Array,rG=Float32Array,sG=xk([][Nk]()),oG=mk(sG.next),aG=mk(function*(){}().next),lG=xk(sG),hG=DataView.prototype,cG=mk(hG.getUint16),uG=(mk(hG.setUint16),TypeError),gG=WeakSet.prototype,dG=(mk(gG.add),mk(gG.has),WeakMap),pG=dG.prototype,AG=mk(pG.get),fG=(mk(pG.has),mk(pG.set)),mG=new dG,_G=Qk(null,{next:{value:function(){const t=AG(mG,this);return oG(t)}},[Nk]:{value:function(){return this}}});const yG=new dG,IG=Qk(lG,{next:{value:function(){const t=AG(yG,this);return aG(t)},writable:!0,configurable:!0}});for(const t of Sk(sG))"next"!==t&&kk(IG,t,vk(sG,t));const EG=new Kk(4),CG=new rG(EG),vG=new nG(EG),xG=new iG(512),wG=new eG(512);for(let t=0;t<256;++t){const e=t-127;e<-27?(xG[t]=0,xG[256|t]=32768,wG[t]=24,wG[256|t]=24):e<-14?(xG[t]=1024>>-e-14,xG[256|t]=1024>>-e-14|32768,wG[t]=-e-1,wG[256|t]=-e-1):e<=15?(xG[t]=e+15<<10,xG[256|t]=e+15<<10|32768,wG[t]=13,wG[256|t]=13):e<128?(xG[t]=31744,xG[256|t]=64512,wG[t]=24,wG[256|t]=24):(xG[t]=31744,xG[256|t]=64512,wG[t]=13,wG[256|t]=13)}const SG=new nG(2048);for(let t=1;t<1024;++t){let e=t<<13,i=0;for(;!(8388608&e);)e<<=1,i-=8388608;e&=-8388609,i+=947912704,SG[t]=e|i}for(let t=1024;t<2048;++t)SG[t]=939524096+(t-1024<<13);const bG=new nG(64);for(let t=1;t<31;++t)bG[t]=t<<23;bG[31]=1199570944,bG[32]=2147483648;for(let t=33;t<63;++t)bG[t]=2147483648+(t-32<<23);bG[63]=3347054592;const LG=new iG(64);for(let t=1;t<64;++t)32!==t&&(LG[t]=1024);function BG(t,e,...i){return function(t){const e=t>>10;return vG[0]=SG[LG[e]+(1023&t)]+bG[e],CG[0]}(cG(t,e,...function(t){if(t[Nk]===jk&&sG.next===oG)return t;const e=Qk(_G);return fG(mG,e,Hk(t)),e}(i)))}var MG=i(330),TG=i(602);function RG(t,e,i,n=1){return new(Object.getPrototypeOf(t).constructor)(e*i*n)}function NG(t,e,i){return(1-i)*t+i*e}function PG(t,e,i,n,r,s="nearest"){switch(s.toLowerCase()){case"nearest":return function(t,e,i,n,r){const s=e/n,o=i/r;return t.map((t=>{const a=RG(t,n,r);for(let l=0;l{const a=RG(t,n,r);for(let l=0;l=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[t]/8)}getReaderForSample(t){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,i=this.fileDirectory.BitsPerSample[t];switch(e){case 1:if(i<=8)return DataView.prototype.getUint8;if(i<=16)return DataView.prototype.getUint16;if(i<=32)return DataView.prototype.getUint32;break;case 2:if(i<=8)return DataView.prototype.getInt8;if(i<=16)return DataView.prototype.getInt16;if(i<=32)return DataView.prototype.getInt32;break;case 3:switch(i){case 16:return function(t,e){return BG(this,t,e)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(t=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1}getBitsPerSample(t=0){return this.fileDirectory.BitsPerSample[t]}getArrayForSample(t,e){return OG(this.getSampleFormat(t),this.getBitsPerSample(t),e)}async getTileOrStrip(t,e,i,n,r){const s=Math.ceil(this.getWidth()/this.getTileWidth()),o=Math.ceil(this.getHeight()/this.getTileHeight());let a;const{tiles:l}=this;let h,c;1===this.planarConfiguration?a=e*s+t:2===this.planarConfiguration&&(a=i*s*o+e*s+t),this.isTiled?(h=this.fileDirectory.TileOffsets[a],c=this.fileDirectory.TileByteCounts[a]):(h=this.fileDirectory.StripOffsets[a],c=this.fileDirectory.StripByteCounts[a]);const u=(await this.source.fetch([{offset:h,length:c}],r))[0];let g;return null!==l&&l[a]?g=l[a]:(g=(async()=>{let t=await n.decode(this.fileDirectory,u);const i=this.getSampleFormat(),r=this.getBitsPerSample();return function(t,e){return(1!==t&&2!==t||!(e<=32)||e%8!=0)&&(3!==t||16!==e&&32!==e&&64!==e)}(i,r)&&(t=function(t,e,i,n,r,s,o){const a=new DataView(t),l=2===i?1:n,h=OG(e,r,2===i?o*s:o*s*n),c=parseInt("1".repeat(r),2);if(1===e){let t;t=1===i?n*r:r;let e=s*t;7&e&&(e=e+7&-8);for(let t=0;t>8-r-d&c;else if(d+r<=16)h[u]=a.getUint16(g)>>16-r-d&c;else if(d+r<=24){const t=a.getUint16(g)<<8|a.getUint8(g+2);h[u]=t>>24-r-d&c}else h[u]=a.getUint32(g)>>32-r-d&c}}}}return h.buffer}(t,i,this.planarConfiguration,this.getSamplesPerPixel(),r,this.getTileWidth(),this.getBlockHeight(e))),t})(),null!==l&&(l[a]=g)),{x:t,y:e,sample:i,data:await g}}async _readRaster(t,e,i,n,r,s,o,a,l){const h=this.getTileWidth(),c=this.getTileHeight(),u=this.getWidth(),g=this.getHeight(),d=Math.max(Math.floor(t[0]/h),0),p=Math.min(Math.ceil(t[2]/h),Math.ceil(u/h)),A=Math.max(Math.floor(t[1]/c),0),f=Math.min(Math.ceil(t[3]/c),Math.ceil(g/c)),m=t[2]-t[0];let _=this.getBytesPerPixel();const y=[],I=[];for(let t=0;t{const s=r.data,o=new DataView(s),a=this.getBlockHeight(r.y),l=r.y*c,d=r.x*h,A=l+a,f=(r.x+1)*h,E=I[p],v=Math.min(a,a-(A-t[3]),g-l),x=Math.min(h,h-(f-t[2]),u-d);for(let r=Math.max(0,t[1]-l);rh[2]||h[1]>h[3])throw new Error("Invalid subsets");const c=(h[2]-h[0])*(h[3]-h[1]),u=this.getSamplesPerPixel();if(e&&e.length){for(let t=0;t=u)return Promise.reject(new RangeError(`Invalid sample index '${e[t]}'.`))}else for(let t=0;tl[2]||l[1]>l[3])throw new Error("Invalid subsets");const h=this.fileDirectory.PhotometricInterpretation;if(h===uk.Ie.RGB){let l=[0,1,2];if(this.fileDirectory.ExtraSamples!==uk.pd.Unspecified&&o){l=[];for(let t=0;t>24)/500+a,h=a-(t[e+2]<<24>>24)/200;l=.95047*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),a=1*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),h=1.08883*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),r=3.2406*l+-1.5372*a+-.4986*h,s=-.9689*l+1.8758*a+.0415*h,o=.0557*l+-.204*a+1.057*h,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,n[i]=255*Math.max(0,Math.min(1,r)),n[i+1]=255*Math.max(0,Math.min(1,s)),n[i+2]=255*Math.max(0,Math.min(1,o))}return n}(d);break;default:throw new Error("Unsupported photometric interpretation.")}if(!e){const t=new Uint8Array(A.length/3),e=new Uint8Array(A.length/3),i=new Uint8Array(A.length/3);for(let n=0,r=0;nvoid 0===MG(t,"sample"))):n.filter((e=>Number(MG(e,"sample"))===t));for(let t=0;t[s+t*e+n*i,h+o*e+a*i])),u=c.map((t=>t[0])),g=c.map((t=>t[1]));return[Math.min(...u),Math.min(...g),Math.max(...u),Math.max(...g)]}{const t=this.getOrigin(),n=this.getResolution(),r=t[0],s=t[1],o=r+n[0]*i,a=s+n[1]*e;return[Math.min(r,o),Math.min(s,a),Math.max(r,o),Math.max(s,a)]}}};class kG{constructor(t){this._dataView=new DataView(t)}get buffer(){return this._dataView.buffer}getUint64(t,e){const i=this.getUint32(t,e),n=this.getUint32(t+4,e);let r;if(e){if(r=i+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*i+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}getInt64(t,e){let i=0;const n=(128&this._dataView.getUint8(t+(e?7:0)))>0;let r=!0;for(let s=0;s<8;s++){let o=this._dataView.getUint8(t+(e?s:7-s));n&&(r?0!==o&&(o=255&~(o-1),r=!1):o=255&~o),i+=o*256**s}return n&&(i=-i),i}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat16(t,e){return BG(this._dataView,t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}}class GG{constructor(t,e,i,n){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=i,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){const e=this.readUint32(t),i=this.readUint32(t+4);let n;if(this._littleEndian){if(n=e+2**32*i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}if(n=2**32*e+i,!Number.isSafeInteger(n))throw new Error(`${n} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return n}readInt64(t){let e=0;const i=(128&this._dataView.getUint8(t+(this._littleEndian?7:0)))>0;let n=!0;for(let r=0;r<8;r++){let s=this._dataView.getUint8(t+(this._littleEndian?r:7-r));i&&(n?0!==s&&(s=255&~(s-1),n=!1):s=255&~s),e+=s*256**r}return i&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}}const UG="\r\n\r\n";function qG(t){if(void 0!==Object.fromEntries)return Object.fromEntries(t);const e={};for(const[i,n]of t)e[i.toLowerCase()]=n;return e}function VG(t){const e=t.split("\r\n").map((t=>{const e=t.split(":").map((t=>t.trim()));return e[0]=e[0].toLowerCase(),e}));return qG(e)}function zG(t){let e,i,n;return t&&([,e,i,n]=t.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),i=parseInt(i,10),n=parseInt(n,10)),{start:e,end:i,total:n}}class YG{async fetch(t,e=void 0){return Promise.all(t.map((t=>this.fetchSlice(t,e))))}async fetchSlice(t){throw new Error(`fetching of slice ${t} not possible, not implemented`)}get fileSize(){return null}async close(){}}class jG extends Map{constructor(t={}){if(super(),!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof t.maxAge&&0===t.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=t.maxSize,this.maxAge=t.maxAge||Number.POSITIVE_INFINITY,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(t){if("function"==typeof this.onEviction)for(const[e,i]of t)this.onEviction(e,i.value)}_deleteIfExpired(t,e){return"number"==typeof e.expiry&&e.expiry<=Date.now()&&("function"==typeof this.onEviction&&this.onEviction(t,e.value),this.delete(t))}_getOrDeleteIfExpired(t,e){if(!1===this._deleteIfExpired(t,e))return e.value}_getItemValue(t,e){return e.expiry?this._getOrDeleteIfExpired(t,e):e.value}_peek(t,e){const i=e.get(t);return this._getItemValue(t,i)}_set(t,e){this.cache.set(t,e),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(t,e){this.oldCache.delete(t),this._set(t,e)}*_entriesAscending(){for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield t)}}for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield t)}}get(t){if(this.cache.has(t)){const e=this.cache.get(t);return this._getItemValue(t,e)}if(this.oldCache.has(t)){const e=this.oldCache.get(t);if(!1===this._deleteIfExpired(t,e))return this._moveToRecent(t,e),e.value}}set(t,e,{maxAge:i=this.maxAge}={}){const n="number"==typeof i&&i!==Number.POSITIVE_INFINITY?Date.now()+i:void 0;return this.cache.has(t)?this.cache.set(t,{value:e,expiry:n}):this._set(t,{value:e,expiry:n}),this}has(t){return this.cache.has(t)?!this._deleteIfExpired(t,this.cache.get(t)):!!this.oldCache.has(t)&&!this._deleteIfExpired(t,this.oldCache.get(t))}peek(t){return this.cache.has(t)?this._peek(t,this.cache):this.oldCache.has(t)?this._peek(t,this.oldCache):void 0}delete(t){const e=this.cache.delete(t);return e&&this._size--,this.oldCache.delete(t)||e}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(t){if(!(t&&t>0))throw new TypeError("`maxSize` must be a number greater than 0");const e=[...this._entriesAscending()],i=e.length-t;i<0?(this.cache=new Map(e),this.oldCache=new Map,this._size=e.length):(i>0&&this._emitEvictions(e.slice(0,i)),this.oldCache=new Map(e.slice(i)),this.cache=new Map,this._size=0),this.maxSize=t}*keys(){for(const[t]of this)yield t}*values(){for(const[,t]of this)yield t}*[Symbol.iterator](){for(const t of this.cache){const[e,i]=t;!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}for(const t of this.oldCache){const[e,i]=t;if(!this.cache.has(e)){!1===this._deleteIfExpired(e,i)&&(yield[e,i.value])}}}*entriesDescending(){let t=[...this.cache];for(let e=t.length-1;e>=0;--e){const i=t[e],[n,r]=i;!1===this._deleteIfExpired(n,r)&&(yield[n,r.value])}t=[...this.oldCache];for(let e=t.length-1;e>=0;--e){const i=t[e],[n,r]=i;if(!this.cache.has(n)){!1===this._deleteIfExpired(n,r)&&(yield[n,r.value])}}}*entriesAscending(){for(const[t,e]of this._entriesAscending())yield[t,e.value]}get size(){if(!this._size)return this.oldCache.size;let t=0;for(const e of this.oldCache.keys())this.cache.has(e)||t++;return Math.min(this._size+t,this.maxSize)}entries(){return this.entriesAscending()}forEach(t,e=this){for(const[i,n]of this.entriesAscending())t.call(e,n,i,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}}class HG extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,HG),this.name="AbortError"}}class XG extends Error{constructor(t,e){super(e),this.errors=t,this.message=e,this.name="AggregateError"}}const WG=XG;class KG{constructor(t,e,i=null){this.offset=t,this.length=e,this.data=i}get top(){return this.offset+this.length}}class JG{constructor(t,e,i){this.offset=t,this.length=e,this.blockIds=i}}class ZG extends YG{constructor(t,{blockSize:e=65536,cacheSize:i=100}={}){super(),this.source=t,this.blockSize=e,this.blockCache=new jG({maxSize:i,onEviction:(t,e)=>{this.evictedBlocks.set(t,e)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(t,e){const i=[],n=[],r=[];this.evictedBlocks.clear();for(const{offset:e,length:s}of t){let t=e+s;const{fileSize:o}=this;null!==o&&(t=Math.min(t,o));for(let s=Math.floor(e/this.blockSize)*this.blockSize;ssetTimeout(e,t)))}(),this.fetchBlocks(e);const s=[];for(const t of n)this.blockRequests.has(t)&&s.push(this.blockRequests.get(t));await Promise.allSettled(i),await Promise.allSettled(s);const o=[],a=r.filter((t=>this.abortedBlockIds.has(t)||!this.blockCache.has(t)));if(a.forEach((t=>this.blockIdsToFetch.add(t))),a.length>0&&e&&!e.aborted){this.fetchBlocks(null);for(const t of a){const e=this.blockRequests.get(t);if(!e)throw new Error(`Block ${t} is not in the block requests`);o.push(e)}await Promise.allSettled(o)}if(e&&e.aborted)throw new HG("Request was aborted");const l=r.map((t=>this.blockCache.get(t)||this.evictedBlocks.get(t))),h=l.filter((t=>!t));if(h.length)throw new WG(h,"Request failed");const c=new Map(function(t,e){const i=Array.isArray(t)?t:Array.from(t),n=Array.isArray(e)?e:Array.from(e);return i.map(((t,e)=>[t,n[e]]))}(r,l));return this.readSliceData(t,c)}fetchBlocks(t){if(this.blockIdsToFetch.size>0){const e=this.groupBlocks(this.blockIdsToFetch),i=this.source.fetch(e,t);for(let n=0;n{try{const t=(await i)[n],r=e*this.blockSize,s=r-t.offset,o=Math.min(s+this.blockSize,t.data.byteLength),a=t.data.slice(s,o),l=new KG(r,a.byteLength,a,e);this.blockCache.set(e,l),this.abortedBlockIds.delete(e)}catch(i){if("AbortError"!==i.name)throw i;i.signal=t,this.blockCache.delete(e),this.abortedBlockIds.add(e)}finally{this.blockRequests.delete(e)}})())}this.blockIdsToFetch.clear()}}groupBlocks(t){const e=Array.from(t).sort(((t,e)=>t-e));if(0===e.length)return[];let i=[],n=null;const r=[];for(const t of e)null===n||n+1===t?(i.push(t),n=t):(r.push(new JG(i[0]*this.blockSize,i.length*this.blockSize,i)),i=[t],n=t);return r.push(new JG(i[0]*this.blockSize,i.length*this.blockSize,i)),r}readSliceData(t,e){return t.map((t=>{let i=t.offset+t.length;null!==this.fileSize&&(i=Math.min(this.fileSize,i));const n=Math.floor(t.offset/this.blockSize),r=Math.floor(i/this.blockSize),s=new ArrayBuffer(t.length),o=new Uint8Array(s);for(let s=n;s<=r;++s){const n=e.get(s),r=n.offset-t.offset;let a,l=0,h=0;r<0?l=-r:r>0&&(h=r),a=n.top-i<0?n.length-l:i-n.offset-l;const c=new Uint8Array(n.data,l,a);o.set(c,h)}return s}))}}class $G{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(t){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}}class tU{constructor(t){this.url=t}async request({headers:t,signal:e}={}){throw new Error("request is not implemented")}}class eU extends $G{constructor(t){super(),this.response=t}get status(){return this.response.status}getHeader(t){return this.response.headers.get(t)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}}class iU extends tU{constructor(t,e){super(t),this.credentials=e}async request({headers:t,signal:e}={}){const i=await fetch(this.url,{headers:t,credentials:this.credentials,signal:e});return new eU(i)}}class nU extends $G{constructor(t,e){super(),this.xhr=t,this.data=e}get status(){return this.xhr.status}getHeader(t){return this.xhr.getResponseHeader(t)}async getData(){return this.data}}class rU extends tU{constructRequest(t,e){return new Promise(((i,n)=>{const r=new XMLHttpRequest;r.open("GET",this.url),r.responseType="arraybuffer";for(const[e,i]of Object.entries(t))r.setRequestHeader(e,i);r.onload=()=>{const t=r.response;i(new nU(r,t))},r.onerror=n,r.onabort=()=>n(new HG("Request aborted")),r.send(),e&&(e.aborted&&r.abort(),e.addEventListener("abort",(()=>r.abort())))}))}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}var sU=i(752),oU=i(640),aU=i(630);class lU extends $G{constructor(t,e){super(),this.response=t,this.dataPromise=e}get status(){return this.response.statusCode}getHeader(t){return this.response.headers[t]}async getData(){return await this.dataPromise}}class hU extends tU{constructor(t){super(t),this.parsedUrl=aU.parse(this.url),this.httpApi="http:"===this.parsedUrl.protocol?sU:oU}constructRequest(t,e){return new Promise(((i,n)=>{const r=this.httpApi.get({...this.parsedUrl,headers:t},(t=>{const e=new Promise((e=>{const i=[];t.on("data",(t=>{i.push(t)})),t.on("end",(()=>{const t=Buffer.concat(i).buffer;e(t)})),t.on("error",n)}));i(new lU(t,e))}));r.on("error",n),e&&(e.aborted&&r.destroy(new HG("Request aborted")),e.addEventListener("abort",(()=>r.destroy(new HG("Request aborted")))))}))}async request({headers:t,signal:e}={}){return await this.constructRequest(t,e)}}class cU extends YG{constructor(t,e,i,n){super(),this.client=t,this.headers=e,this.maxRanges=i,this.allowFullFile=n,this._fileSize=null}async fetch(t,e){return this.maxRanges>=t.length?this.fetchSlices(t,e):(this.maxRanges>0&&t.length,Promise.all(t.map((t=>this.fetchSlice(t,e)))))}async fetchSlices(t,e){const i=await this.client.request({headers:{...this.headers,Range:`bytes=${t.map((({offset:t,length:e})=>`${t}-${t+e}`)).join(",")}`},signal:e});if(i.ok){if(206===i.status){const{type:n,params:r}=function(t){const[e,...i]=t.split(";").map((t=>t.trim()));return{type:e,params:qG(i.map((t=>t.split("="))))}}(i.getHeader("content-type"));if("multipart/byteranges"===n){const t=function(t,e){let i=null;const n=new TextDecoder("ascii"),r=[],s=`--${e}`,o=`${s}--`;for(let e=0;e<10;++e)n.decode(new Uint8Array(t,e,s.length))===s&&(i=e);if(null===i)throw new Error("Could not find initial boundary");for(;i1){const i=await Promise.all(t.slice(1).map((t=>this.fetchSlice(t,e))));return h.concat(i)}return h}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await i.getData();return this._fileSize=t.byteLength,[{data:t,offset:0,length:t.byteLength}]}}throw new Error("Error fetching data.")}async fetchSlice(t,e){const{offset:i,length:n}=t,r=await this.client.request({headers:{...this.headers,Range:`bytes=${i}-${i+n}`},signal:e});if(r.ok){if(206===r.status){const t=await r.getData(),{total:e}=zG(r.getHeader("content-range"));return this._fileSize=e||null,{data:t,offset:i,length:n}}{if(!this.allowFullFile)throw new Error("Server responded with full file");const t=await r.getData();return this._fileSize=t.byteLength,{data:t,offset:0,length:t.byteLength}}}throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}}function uU(t,{blockSize:e,cacheSize:i}){return null===e?t:new ZG(t,{blockSize:e,cacheSize:i})}function gU(t,{forceXHR:e=!1,...i}={}){return"function"!=typeof fetch||e?"undefined"!=typeof XMLHttpRequest?function(t,{headers:e={},maxRanges:i=0,allowFullFile:n=!1,...r}={}){const s=new rU(t);return uU(new cU(s,e,i,n),r)}(t,i):function(t,{headers:e={},maxRanges:i=0,allowFullFile:n=!1,...r}={}){const s=new hU(t);return uU(new cU(s,e,i,n),r)}(t,i):function(t,{headers:e={},credentials:i,maxRanges:n=0,allowFullFile:r=!1,...s}={}){const o=new iU(t,i);return uU(new cU(o,e,n,r),s)}(t,i)}class dU extends YG{constructor(t){super(),this.file=t}async fetchSlice(t,e){return new Promise(((i,n)=>{const r=this.file.slice(t.offset,t.offset+t.length),s=new FileReader;s.onload=t=>i(t.target.result),s.onerror=n,s.onabort=n,s.readAsArrayBuffer(r),e&&e.addEventListener("abort",(()=>s.abort()))}))}}function pU(t){switch(t){case uk.sf.BYTE:case uk.sf.ASCII:case uk.sf.SBYTE:case uk.sf.UNDEFINED:return 1;case uk.sf.SHORT:case uk.sf.SSHORT:return 2;case uk.sf.LONG:case uk.sf.SLONG:case uk.sf.FLOAT:case uk.sf.IFD:return 4;case uk.sf.RATIONAL:case uk.sf.SRATIONAL:case uk.sf.DOUBLE:case uk.sf.LONG8:case uk.sf.SLONG8:case uk.sf.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function AU(t,e,i,n){let r=null,s=null;const o=pU(e);switch(e){case uk.sf.BYTE:case uk.sf.ASCII:case uk.sf.UNDEFINED:r=new Uint8Array(i),s=t.readUint8;break;case uk.sf.SBYTE:r=new Int8Array(i),s=t.readInt8;break;case uk.sf.SHORT:r=new Uint16Array(i),s=t.readUint16;break;case uk.sf.SSHORT:r=new Int16Array(i),s=t.readInt16;break;case uk.sf.LONG:case uk.sf.IFD:r=new Uint32Array(i),s=t.readUint32;break;case uk.sf.SLONG:r=new Int32Array(i),s=t.readInt32;break;case uk.sf.LONG8:case uk.sf.IFD8:r=new Array(i),s=t.readUint64;break;case uk.sf.SLONG8:r=new Array(i),s=t.readInt64;break;case uk.sf.RATIONAL:r=new Uint32Array(2*i),s=t.readUint32;break;case uk.sf.SRATIONAL:r=new Int32Array(2*i),s=t.readInt32;break;case uk.sf.FLOAT:r=new Float32Array(i),s=t.readFloat32;break;case uk.sf.DOUBLE:r=new Float64Array(i),s=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e!==uk.sf.RATIONAL&&e!==uk.sf.SRATIONAL)for(let e=0;et.getWidth()-e.getWidth()));for(let e=0;en||s&&s>o)break}}let u=e;if(o){const[t,e]=a.getOrigin(),[i,n]=l.getResolution(a);u=[Math.round((o[0]-t)/i),Math.round((o[1]-e)/n),Math.round((o[2]-t)/i),Math.round((o[3]-e)/n)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...t,window:u})}}class yU extends _U{constructor(t,e,i,n,r={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=i,this.firstIFDOffset=n,this.cache=r.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){const i=this.bigTiff?4048:1024;return new GG((await this.source.fetch([{offset:t,length:void 0!==e?e:i}]))[0],t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){const e=this.bigTiff?20:12,i=this.bigTiff?8:2;let n=await this.getSlice(t);const r=this.bigTiff?n.readUint64(t):n.readUint16(t),s=r*e+(this.bigTiff?16:6);n.covers(t,s)||(n=await this.getSlice(t,s));const o={};let a=t+(this.bigTiff?8:2);for(let t=0;t{const e=await this.ifdRequests[t-1];if(0===e.nextIFDByteOffset)throw new mU(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){const e=await this.requestIFD(t);return new QG(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(t){if(!(t instanceof mU))throw t;e=!1}return t}async getGhostValues(){const t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e="GDAL_STRUCTURAL_METADATA_SIZE=";let i=await this.getSlice(t,130);if(e===AU(i,uk.sf.ASCII,30,t)){const e=AU(i,uk.sf.ASCII,130,t).split("\n")[0],n=Number(e.split("=")[1].split(" ")[0])+e.length;n>130&&(i=await this.getSlice(t,n));const r=AU(i,uk.sf.ASCII,n,t);this.ghostValues={},r.split("\n").filter((t=>t.length>0)).map((t=>t.split("="))).forEach((([t,e])=>{this.ghostValues[t]=e}))}return this.ghostValues}static async fromSource(t,e,i){const n=(await t.fetch([{offset:0,length:1024}],i))[0],r=new kG(n),s=r.getUint16(0,0);let o;if(18761===s)o=!0;else{if(19789!==s)throw new TypeError("Invalid byte order value.");o=!1}const a=r.getUint16(2,o);let l;if(42===a)l=!1;else{if(43!==a)throw new TypeError("Invalid magic number.");l=!0;if(8!==r.getUint16(4,o))throw new Error("Unsupported offset byte-size.")}const h=l?r.getUint64(8,o):r.getUint32(4,o);return new yU(t,o,l,h,e)}close(){return"function"==typeof this.source.close&&this.source.close()}}class IU extends _U{constructor(t,e){super(),this.mainFile=t,this.overviewFiles=e,this.imageFiles=[t].concat(e),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){const t=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map((t=>t.parseFileDirectoryAt(t.firstIFDOffset))));return this.fileDirectoriesPerFile=await Promise.all(t),this.fileDirectoriesPerFile}async getImage(t=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let e=0,i=0;for(let n=0;nt.getImageCount())));return this.imageCounts=await Promise.all(t),this.imageCount=this.imageCounts.reduce(((t,e)=>t+e),0),this.imageCount}}async function EU(t,e){return yU.fromSource(new dU(t),e)}function CU(t,e){if(!t)return!1;if(!0===t)return!0;if(3!==e.getSamplesPerPixel())return!1;const i=e.fileDirectory.PhotometricInterpretation,n=uk.Ie;return i===n.CMYK||i===n.YCbCr||i===n.CIELab||i===n.ICCLab}const vU="STATISTICS_MAXIMUM",xU="STATISTICS_MINIMUM";let wU;function SU(){return wU||(wU=new fk),wU}function bU(t){try{return t.getBoundingBox()}catch(e){return[0,0,t.getWidth(),t.getHeight()]}}function LU(t){try{return t.getOrigin().slice(0,2)}catch(e){return[0,t.getHeight()]}}function BU(t,e){try{return t.getResolution(e)}catch(i){return[e.getWidth()/t.getWidth(),e.getHeight()/t.getHeight()]}}function MU(t){const e=t.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&32767!==e.ProjectedCSTypeGeoKey){const t="EPSG:"+e.ProjectedCSTypeGeoKey;let i=ee(t);if(!i){const n=h(e.ProjLinearUnitsGeoKey);n&&(i=new u({code:t,units:n}))}return i}if(e.GeographicTypeGeoKey&&32767!==e.GeographicTypeGeoKey){const t="EPSG:"+e.GeographicTypeGeoKey;let i=ee(t);if(!i){const n=h(e.GeogAngularUnitsGeoKey);n&&(i=new u({code:t,units:n}))}return i}return null}function TU(t){return t.getImageCount().then((function(e){const i=new Array(e);for(let n=0;nyU.fromSource(gU(t,i)))));return new IU(r,s)}(t.url,t.overviews,e):async function(t,e={},i){return yU.fromSource(gU(t,e),i)}(t.url,e),i.then(TU)}function NU(t,e,i,n,r){if(Array.isArray(t)){const s=t.length;if(!Array.isArray(e)||s!=e.length){const t=new Error(n);throw r(t),t}for(let o=0;oi*t)throw new Error(n)}function PU(t){return t instanceof Int8Array?127:t instanceof Uint8Array||t instanceof Uint8ClampedArray?255:t instanceof Int16Array?32767:t instanceof Uint16Array?65535:t instanceof Int32Array?2147483647:t instanceof Uint32Array?4294967295:t instanceof Float32Array?34e37:255}class FU extends ck{constructor(t){super({state:"loading",tileGrid:null,projection:t.projection||null,opaque:t.opaque,transition:t.transition,interpolate:!1!==t.interpolate,wrapX:t.wrapX}),this.sourceInfo_=t.sources;const e=this.sourceInfo_.length;this.sourceOptions_=t.sourceOptions,this.sourceImagery_=new Array(e),this.sourceMasks_=new Array(e),this.resolutionFactors_=new Array(e),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=!1!==t.normalize,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=t.convertToRGB||!1,this.setKey(this.sourceInfo_.map((t=>t.url)).join(","));const i=this,n=new Array(e);for(let t=0;t=0;--t){const i=MU(e[t]);if(i){this.projection=i;break}}}configure_(t){let e,i,n,r,s;const o=new Array(t.length),a=new Array(t.length),l=new Array(t.length);let h=0;const c=t.length;for(let u=0;u{4&~(t.fileDirectory.NewSubfileType||0)?c.push(t):g.push(t)}));const d=c.length;if(g.length>0&&g.length!==d)throw new Error(`Expected one mask per image found ${g.length} masks and ${d} images`);let p,A;const f=new Array(d),m=new Array(d),_=new Array(d);a[u]=new Array(d),l[u]=new Array(d);for(let t=0;t_.length&&(h=s.length-_.length);const t=s[s.length-1]/_[_.length-1];this.resolutionFactors_[u]=t;const e=_.map((e=>e*t)),i=`Resolution mismatch for source ${u}, got [${e}] but expected [${s}]`;NU(s.slice(h,s.length),e,.02,i,this.viewRejector)}else s=_,this.resolutionFactors_[u]=1;n?NU(n.slice(h,n.length),m,.01,`Tile size mismatch for source ${u}`,this.viewRejector):n=m,r?NU(r.slice(h,r.length),f,0,`Tile size mismatch for source ${u}`,this.viewRejector):r=f,this.sourceImagery_[u]=c.reverse(),this.sourceMasks_[u]=g.reverse()}for(let t=0,e=this.sourceImagery_.length;tl||s>l;)o.push([Math.ceil(r/l),Math.ceil(s/l)]),l+=l;break;case"truncated":let t=r,e=s;for(;t>l||e>l;)o.push([Math.ceil(t/l),Math.ceil(e/l)]),t>>=1,e>>=1;break;default:throw new Error("Unknown `tierSizeCalculation` configured")}o.push([1,1]),o.reverse();const h=[n],c=[0];for(let t=1,e=o.length;t{p=a,this.changed()})),_.src=m}};function kU(t){return t.toLocaleString("en",{maximumFractionDigits:10})}const GU=class extends TA{constructor(t){const e=t||{};let i=e.url||"";i+=i.lastIndexOf("/")===i.length-1||""===i?"":"/";const n=e.version||gO,r=e.sizes||[],s=e.size;go(null!=s&&Array.isArray(s)&&2==s.length&&!isNaN(s[0])&&s[0]>0&&!isNaN(s[1])&&s[1]>0,"Missing or invalid `size`");const o=s[0],a=s[1],l=e.tileSize,h=e.tilePixelRatio||1,c=e.format||"jpg",u=e.quality||(e.version==uO?"native":"default");let g=e.resolutions||[];const d=e.supports||[],p=e.extent||[0,-a,o,0],A=null!=r&&Array.isArray(r)&&r.length>0,f=void 0!==l&&("number"==typeof l&&Number.isInteger(l)&&l>0||Array.isArray(l)&&l.length>0),m=null!=d&&Array.isArray(d)&&(d.includes("regionByPx")||d.includes("regionByPct"))&&(d.includes("sizeByWh")||d.includes("sizeByH")||d.includes("sizeByW")||d.includes("sizeByPct"));let _,y,I;if(g.sort((function(t,e){return e-t})),f||m)if(null!=l&&("number"==typeof l&&Number.isInteger(l)&&l>0?(_=l,y=l):Array.isArray(l)&&l.length>0&&((1==l.length||null==l[1]&&Number.isInteger(l[0]))&&(_=l[0],y=l[0]),2==l.length&&(Number.isInteger(l[0])&&Number.isInteger(l[1])?(_=l[0],y=l[1]):null==l[0]&&Number.isInteger(l[1])&&(_=l[1],y=l[1])))),void 0!==_&&void 0!==y||(_=ia,y=ia),0==g.length){I=Math.max(Math.ceil(Math.log(o/_)/Math.LN2),Math.ceil(Math.log(a/y)/Math.LN2));for(let t=I;t>=0;t--)g.push(Math.pow(2,t))}else{const t=Math.max(...g);I=Math.round(Math.log(t)/Math.LN2)}else if(_=o,y=a,g=[],A){r.sort((function(t,e){return t[0]-e[0]})),I=-1;const t=[];for(let e=0;e0&&g[g.length-1]==i?t.push(e):(g.push(i),I++)}if(t.length>0)for(let e=0;eI)return;const E=t[1],C=t[2],v=g[p];if(!(void 0===E||void 0===C||void 0===v||E<0||Math.ceil(o/v/_)<=E||C<0||Math.ceil(a/v/y)<=C)){if(m||f){const t=E*_*v,e=C*y*v;let i=_*v,r=y*v,s=_,c=y;if(t+i>o&&(i=o-t),e+r>a&&(r=a-e),t+_*v>o&&(s=Math.floor((o-t+v-1)/v)),e+y*v>a&&(c=Math.floor((a-e+v-1)/v)),0==t&&i==o&&0==e&&r==a)l="full";else if(!m||d.includes("regionByPx"))l=t+","+e+","+i+","+r;else if(d.includes("regionByPct")){l="pct:"+kU(t/o*100)+","+kU(e/a*100)+","+kU(i/o*100)+","+kU(r/a*100)}n!=dO||m&&!d.includes("sizeByWh")?!m||d.includes("sizeByW")?h=s+",":d.includes("sizeByH")?h=","+c:d.includes("sizeByWh")?h=s+","+c:d.includes("sizeByPct")&&(h="pct:"+kU(100/v)):h=s+","+c}else if(l="full",A){const t=r[p][0],e=r[p][1];h=n==dO?t==o&&e==a?"max":t+","+e:t==o?"full":t+","}else h=n==dO?"max":"full";return i+l+"/"+h+"/0/"+u+"."+c}},transition:e.transition}),this.zDirection=e.zDirection}};function UU(t,e,i,n,r,s){const o=r.getCode().split(/:(?=\d+$)/).pop(),a=i/n,l=[Et(at(e)/a,RA),Et(nt(e)/a,RA)];s.SIZE=l[0]+","+l[1],s.BBOX=e.join(","),s.BBOXSR=o,s.IMAGESR=o,s.DPI=Math.round(s.DPI?s.DPI*n:90*n);const h=t.replace(/MapServer\/?$/,"MapServer/export").replace(/ImageServer\/?$/,"ImageServer/exportImage");if(h==t)throw new Error("`options.featureTypes` should be an Array");return NA(h,s)}function qU(t){const e=t.load?t.load:Pg,i=ee(t.projection||"EPSG:3857");return function(n,r,s){s=t.hidpi?s:1;const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};Object.assign(o,t.params),n=UA(n,r,s,t.ratio);const a=UU(t.url,n,r,s,i,o),l=new Image;return null!==t.crossOrigin&&(l.crossOrigin=t.crossOrigin),e(l,a).then((t=>{const e=at(n)/t.width*s;return{image:t,extent:n,resolution:e,pixelRatio:s}}))}}const VU=class extends qA{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.hidpi_=void 0===t.hidpi||t.hidpi,this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:GA,this.params_=t.params||{},this.image_=null,this.imageSize_=[0,0],this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=qU({crossOrigin:this.crossOrigin_,params:this.params_,projection:n,hidpi:this.hidpi_,url:this.url_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}getUrl(){return this.url_}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}setUrl(t){t!=this.url_&&(this.url_=t,this.image_=null,this.changed())}updateParams(t){Object.assign(this.params_,t),this.image_=null,this.changed()}};const zU=class extends qA{constructor(t){super({attributions:(t=t||{}).attributions,interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions,state:t.state}),this.canvasFunction_=t.canvasFunction,this.canvas_=null,this.renderedRevision_=0,this.ratio_=void 0!==t.ratio?t.ratio:1.5}getImageInternal(t,e,i,n){e=this.findNearestResolution(e);let r=this.canvas_;if(r&&this.renderedRevision_==this.getRevision()&&r.getResolution()==e&&r.getPixelRatio()==i&&D(r.getExtent(),t))return r;ct(t=t.slice(),this.ratio_);const s=[at(t)/e*i,nt(t)/e*i],o=this.canvasFunction_.call(this,t,e,i,s,n);return o&&(r=new ik(t,e,i,o)),this.canvas_=r,this.renderedRevision_=this.getRevision(),r}};function YU(t,e,i,n,r,s,o){const a=function(t,e,i,n){const r=at(t),s=nt(t),o=e[0],a=e[1],l=.0254/n;return a*r>o*s?r*i/(o*l):s*i/(a*l)}(i,n,s,o),l=$(i),h={OPERATION:r?"GETDYNAMICMAPOVERLAYIMAGE":"GETMAPIMAGE",VERSION:"2.0.0",LOCALE:"en",CLIENTAGENT:"ol/source/ImageMapGuide source",CLIP:"1",SETDISPLAYDPI:o,SETDISPLAYWIDTH:Math.round(n[0]),SETDISPLAYHEIGHT:Math.round(n[1]),SETVIEWSCALE:a,SETVIEWCENTERX:l[0],SETVIEWCENTERY:l[1]};return Object.assign(h,e),NA(t,h)}function jU(t){const e=t.load||Pg;return function(i,n,r){const s=new Image;null!==t.crossOrigin&&(s.crossOrigin=t.crossOrigin);const o=at(i=UA(i,n,r,t.ratio))/n,a=nt(i)/n,l=[o*r,a*r],h=YU(t.url,t.params,i,l,t.useOverlay,t.metersPerUnit||1,t.displayDpi||96);return e(s,h).then((t=>({image:t,extent:i,pixelRatio:r})))}}const HU=class extends qA{constructor(t){super({interpolate:t.interpolate,projection:t.projection,resolutions:t.resolutions}),this.crossOrigin_=void 0!==t.crossOrigin?t.crossOrigin:null,this.displayDpi_=void 0!==t.displayDpi?t.displayDpi:96,this.params_=t.params||{},this.url_=t.url,this.imageLoadFunction_=void 0!==t.imageLoadFunction?t.imageLoadFunction:GA,this.hidpi_=void 0===t.hidpi||t.hidpi,this.metersPerUnit_=void 0!==t.metersPerUnit?t.metersPerUnit:1,this.ratio_=void 0!==t.ratio?t.ratio:1,this.useOverlay_=void 0!==t.useOverlay&&t.useOverlay,this.image_=null,this.renderedRevision_=0}getParams(){return this.params_}getImageInternal(t,e,i,n){return void 0===this.url_?null:(this.loader||(this.loader=jU({crossOrigin:this.crossOrigin_,params:this.params_,hidpi:this.hidpi_,metersPerUnit:this.metersPerUnit_,url:this.url_,useOverlay:this.useOverlay_,ratio:this.ratio_,load:(t,e)=>(this.image.setImage(t),this.imageLoadFunction_(this.image,e),Pg(t))})),super.getImageInternal(t,e,i,n))}getImageLoadFunction(){return this.imageLoadFunction_}updateParams(t){Object.assign(this.params_,t),this.changed()}setImageLoadFunction(t){this.image_=null,this.imageLoadFunction_=t,this.changed()}};function XU(t){const e=t.load||Pg,i=t.imageExtent,n=new Image;return null!==t.crossOrigin&&(n.crossOrigin=t.crossOrigin),()=>e(n,t.url).then((t=>{const e=at(i)/t.width,n=nt(i)/t.height;return{image:t,extent:i,resolution:e!==n?[e,n]:n,pixelRatio:1}}))}const WU=class extends qA{constructor(t){const e=void 0!==t.crossOrigin?t.crossOrigin:null,i=void 0!==t.imageLoadFunction?t.imageLoadFunction:GA;super({attributions:t.attributions,interpolate:t.interpolate,projection:ee(t.projection)}),this.url_=t.url,this.imageExtent_=t.imageExtent,this.image=null,this.image=new Fg(this.imageExtent_,void 0,1,XU({url:t.url,imageExtent:t.imageExtent,crossOrigin:e,load:(t,e)=>(this.image.setImage(t),i(this.image,e),Pg(t))})),this.image.addEventListener(bs,this.handleImageChange.bind(this))}getImageExtent(){return this.imageExtent_}getImageInternal(t,e,i,n){return lt(t,this.image.getExtent())?this.image:null}getUrl(){return this.url_}};function KU(t,e,i,n){const r=document.createElement("script"),s="olc_"+Xs(e);function o(){delete window[s],r.parentNode.removeChild(r)}r.async=!0,r.src=t+(t.includes("?")?"&":"?")+(n||"callback")+"="+s;const a=setTimeout((function(){o(),i&&i()}),1e4);window[s]=function(t){clearTimeout(a),o(),e(t)},document.head.appendChild(r)}class JU extends Error{constructor(t){super("Unexpected response status: "+t.status),this.name="ResponseError",this.response=t}}class ZU extends Error{constructor(t){super("Failed to issue request"),this.name="ClientError",this.client=t}}function $U(t){return new Promise((function(e,i){const n=new XMLHttpRequest;n.addEventListener("load",(function(t){const n=t.target;if(!n.status||n.status>=200&&n.status<300){let t;try{t=JSON.parse(n.responseText)}catch(t){const e="Error parsing response text as JSON: "+t.message;return void i(new Error(e))}e(t)}else i(new JU(n))})),n.addEventListener("error",(function(t){i(new ZU(t.target))})),n.open("GET",t),n.setRequestHeader("Accept","application/json"),n.send()}))}function tq(t,e){return e.includes("://")?e:new URL(e,t).href}const eq={"image/png":!0,"image/jpeg":!0,"image/gif":!0,"image/webp":!0},iq={"application/vnd.mapbox-vector-tile":!0,"application/geo+json":!0};function nq(t,e,i,n){let r=t.projection;if(!r&&(r=ee(e.crs),!r))throw new Error(`Unsupported CRS: ${e.crs}`);const s="en"!==r.getAxisOrientation().substr(0,2),o=e.tileMatrices,a={};for(let t=0;tt.maxTileCol||u.tileRowt.maxTileRow)return}Object.assign(u,m);const g=i.replace(/\{(\w+?)\}/g,(function(t,e){return u[e]}));return tq(_,g)}}}function rq(t,e){const i=e.tileMatrixSetLimits;let n;if("map"===e.dataType)n=function(t,e){let i,n;for(let r=0;r"http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme"===t.rel));if(!r)throw new Error("Expected http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme link or tileMatrixSet");const s=r.href;return $U(tq(t.url,s)).then((function(e){return nq(t,e,n,i)}))}function sq(t){return $U(t.url).then((function(e){return rq(t,e)}))}const oq=class extends TA{constructor(t){super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition});sq({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Wt(t),this.setState("error")}};const aq=class extends nL{constructor(t){super({attributions:t.attributions,attributionsCollapsible:t.attributionsCollapsible,cacheSize:t.cacheSize,format:t.format,overlaps:t.overlaps,projection:t.projection,tileClass:t.tileClass,transition:t.transition,wrapX:t.wrapX,zDirection:t.zDirection,state:"loading"});sq({url:t.url,projection:this.getProjection(),mediaType:t.mediaType,supportedMediaTypes:t.format.supportedMediaTypes,context:t.context||null}).then(this.handleTileSetInfo_.bind(this)).catch(this.handleError_.bind(this))}handleTileSetInfo_(t){this.tileGrid=t.grid,this.setTileUrlFunction(t.urlFunction,t.urlTemplate),this.setState("ready")}handleError_(t){Wt(t),this.setState("error")}};let lq,hq=!0;try{new ImageData(10,10)}catch(t){hq=!1}function cq(t){let e=!0;try{new ImageData(10,10)}catch(t){e=!1}function i(t,i,n){return e?new ImageData(t,i,n):{data:t,width:i,height:n}}return function(e){const n=e.buffers,r=e.meta,s=e.imageOps,o=e.width,a=e.height,l=n.length,h=n[0].byteLength;if(s){const e=new Array(l);for(let t=0;tthis._maxQueueLength;)this._queue.shift().callback(null,null)}_dispatch(){if(this._running||0===this._queue.length)return;const t=this._queue.shift();this._job=t;const e=t.inputs[0].width,i=t.inputs[0].height,n=t.inputs.map((function(t){return t.data.buffer})),r=this._workers.length;if(this._running=r,1===r)return void this._workers[0].postMessage({buffers:n,meta:t.meta,imageOps:this._imageOps,width:e,height:i},n);const s=t.inputs[0].data.length,o=4*Math.ceil(s/4/r);for(let s=0;sStadia Maps','© OpenMapTiles',Xb];t.layer.startsWith("stamen_")&&l.splice(1,0,'© Stamen Design'),super({attributions:l,cacheSize:t.cacheSize,crossOrigin:"anonymous",interpolate:t.interpolate,maxZoom:void 0!==t.maxZoom?t.maxZoom:n.maxZoom,minZoom:void 0!==t.minZoom?t.minZoom:n.minZoom,opaque:r.opaque,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileLoadFunction:t.tileLoadFunction,transition:t.transition,url:a,tilePixelRatio:o?2:1,wrapX:t.wrapX,zDirection:t.zDirection})}};const xq=class extends TA{constructor(t){super({attributions:(t=t||{}).attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:t.projection,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:t.tileGrid,tileLoadFunction:t.tileLoadFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.params_=t.params||{},this.hidpi_=void 0===t.hidpi||t.hidpi,this.tmpExtent_=[1/0,1/0,-1/0,-1/0],this.setKey(this.getKeyForParams_())}getKeyForParams_(){let t=0;const e=[];for(const i in this.params_)e[t++]=i+"-"+this.params_[i];return e.join("/")}getParams(){return this.params_}getRequestUrl_(t,e,i,n,r,s){const o=this.urls;if(!o)return;let a;if(1==o.length)a=o[0];else{a=o[_t(rd(t),o.length)]}return UU(a,i,(this.tileGrid||this.getTileGridForProjection(r)).getResolution(t[0]),n,r,s)}getTilePixelRatio(t){return this.hidpi_?t:1}updateParams(t){Object.assign(this.params_,t),this.setKey(this.getKeyForParams_())}tileUrlFunction(t,e,i){let n=this.getTileGrid();if(n||(n=this.getTileGridForProjection(i)),n.getResolutions().length<=t[0])return;1==e||this.hidpi_||(e=1);const r=n.getTileCoordExtent(t,this.tmpExtent_);let s=xc(n.getTileSize(t[0]),this.tmpSize);1!=e&&(s=vc(s,e,this.tmpSize));const o={F:"image",FORMAT:"PNG32",TRANSPARENT:!0};return Object.assign(o,this.params_),this.getRequestUrl_(t,s,r,e,i,o)}};const wq=class extends Vb{constructor(t){super({opaque:!1,projection:(t=t||{}).projection,tileGrid:t.tileGrid,wrapX:void 0===t.wrapX||t.wrapX,zDirection:t.zDirection,url:t.template||"z:{z} x:{x} y:{y}",tileLoadFunction:(t,e)=>{const i=t.getTileCoord()[0],n=xc(this.tileGrid.getTileSize(i)),r=bl(n[0],n[1]);r.strokeStyle="grey",r.strokeRect(.5,.5,n[0]+.5,n[1]+.5),r.fillStyle="grey",r.strokeStyle="white",r.textAlign="center",r.textBaseline="middle",r.font="24px sans-serif",r.lineWidth=4,r.strokeText(e,n[0]/2,n[1]/2,n[0]),r.fillText(e,n[0]/2,n[1]/2,n[0]),t.setImage(r.canvas)}})}};const Sq=class extends TA{constructor(t){if(super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,projection:ee("EPSG:3857"),reprojectionErrorThreshold:t.reprojectionErrorThreshold,state:"loading",tileLoadFunction:t.tileLoadFunction,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,zDirection:t.zDirection}),this.tileJSON_=null,this.tileSize_=t.tileSize,t.url)if(t.jsonp)KU(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(t){const e=ee("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=le(e,i);n=ut(t.bounds,r)}const r=IA(i),s=t.minzoom||0,o=_A({extent:r,maxZoom:t.maxzoom||22,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=o,this.tileUrlFunction=xA(t.tiles,o),t.attribution&&!this.getAttributions()){const e=void 0!==n?n:r;this.setAttributions((function(i){return lt(e,i.extent)?[t.attribution]:null}))}this.tileJSON_=t,this.setState("ready")}handleTileJSONError(){this.setState("error")}};class bq extends Tg{constructor(t,e,i,n,r,s){super(t,e),this.src_=i,this.extent_=n,this.preemptive_=r,this.grid_=null,this.keys_=null,this.data_=null,this.jsonp_=s}getImage(){return null}getData(t){if(!this.grid_||!this.keys_)return null;const e=(t[0]-this.extent_[0])/(this.extent_[2]-this.extent_[0]),i=(t[1]-this.extent_[1])/(this.extent_[3]-this.extent_[1]),n=this.grid_[Math.floor((1-i)*this.grid_.length)];if("string"!=typeof n)return null;let r=n.charCodeAt(Math.floor(e*n.length));r>=93&&r--,r>=35&&r--,r-=32;let s=null;if(r in this.keys_){const t=this.keys_[r];s=this.data_&&t in this.data_?this.data_[t]:t}return s}forDataAtCoordinate(t,e,i){this.state==bh&&!0===i?(this.state=vh,Us(this,bs,(function(i){e(this.getData(t))}),this),this.loadInternal_()):!0===i?setTimeout((()=>{e(this.getData(t))}),0):e(this.getData(t))}getKey(){return this.src_}handleError_(){this.state=Sh,this.changed()}handleLoad_(t){this.grid_=t.grid,this.keys_=t.keys,this.data_=t.data,this.state=wh,this.changed()}loadInternal_(){if(this.state==vh)if(this.state=xh,this.jsonp_)KU(this.src_,this.handleLoad_.bind(this),this.handleError_.bind(this));else{const t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",this.src_),t.send()}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleError_()}this.handleLoad_(t)}else this.handleError_()}onXHRError_(t){this.handleError_()}load(){this.preemptive_?this.loadInternal_():this.setState(bh)}}const Lq=class extends CA{constructor(t){if(super({projection:ee("EPSG:3857"),state:"loading",zDirection:t.zDirection}),this.preemptive_=void 0===t.preemptive||t.preemptive,this.tileUrlFunction_=SA,this.template_=void 0,this.jsonp_=t.jsonp||!1,t.url)if(this.jsonp_)KU(t.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{const e=new XMLHttpRequest;e.addEventListener("load",this.onXHRLoad_.bind(this)),e.addEventListener("error",this.onXHRError_.bind(this)),e.open("GET",t.url),e.send()}else{if(!t.tileJSON)throw new Error("Either `url` or `tileJSON` options must be provided");this.handleTileJSONResponse(t.tileJSON)}}onXHRLoad_(t){const e=t.target;if(!e.status||e.status>=200&&e.status<300){let t;try{t=JSON.parse(e.responseText)}catch(t){return void this.handleTileJSONError()}this.handleTileJSONResponse(t)}else this.handleTileJSONError()}onXHRError_(t){this.handleTileJSONError()}getTemplate(){return this.template_}forDataAtCoordinateAndResolution(t,e,i,n){if(this.tileGrid){const r=this.tileGrid.getZForResolution(e,this.zDirection),s=this.tileGrid.getTileCoordForCoordAndZ(t,r);this.getTile(s[0],s[1],s[2],1,this.getProjection()).forDataAtCoordinate(t,i,n)}else!0===n?setTimeout((function(){i(null)}),0):i(null)}handleTileJSONError(){this.setState("error")}handleTileJSONResponse(t){const e=ee("EPSG:4326"),i=this.getProjection();let n;if(void 0!==t.bounds){const r=le(e,i);n=ut(t.bounds,r)}const r=IA(i),s=t.minzoom||0,o=_A({extent:r,maxZoom:t.maxzoom||22,minZoom:s});this.tileGrid=o,this.template_=t.template;const a=t.grids;if(a){if(this.tileUrlFunction_=xA(a,o),void 0!==t.attribution){const e=void 0!==n?n:r;this.setAttributions((function(i){return lt(e,i.extent)?[t.attribution]:null}))}this.setState("ready")}else this.setState("error")}getTile(t,e,i,n,r){const s=ed(t,e,i);if(this.tileCache.containsKey(s))return this.tileCache.get(s);const o=[t,e,i],a=this.getTileCoordForTileUrlFunction(o,r),l=this.tileUrlFunction_(a,n,r),h=new bq(o,void 0!==l?vh:bh,void 0!==l?l:"",this.tileGrid.getTileCoordExtent(o),this.preemptive_,this.jsonp_);return this.tileCache.set(s,h),h}useTile(t,e,i){const n=ed(t,e,i);this.tileCache.containsKey(n)&&this.tileCache.get(n)}};const Bq=window.M={},Mq=window.ol={};Bq.ClusteredFeature=OB,Bq.Control=vu,Bq.Feature=DB,Bq.Filter=fI,Bq.Label=nx,Bq.Layer=_g,Bq.Map=SL,Bq.Object=Mc,Bq.Parameters=sx,Bq.Plugin=QB,Bq.Popup=sI,Bq.RenderFeature=ax,Bq.Style=Jm,Bq.addProxyException=t=>{const e=new URL(t).origin;-1===BL.indexOf(e)&&BL.push(e)},Bq.config=bL,Bq.control={},Bq.control.GetFeatureInfo=kv,Bq.control.LayerSwitcher=xI,Bq.control.Location=VI,Bq.control.Mouse=ME,Bq.control.Navtoolbar=VE,Bq.control.OverviewMap=QE,Bq.control.Panzoom=XE,Bq.control.Panzoombar=Mu,Bq.control.Rotate=sE,Bq.control.Rotate.onClick=iE,Bq.control.Rotate.onMouseDown=tE,Bq.control.Rotate.onMouseMove=nE,Bq.control.Rotate.onMouseUp=eE,Bq.control.Scale=XI,Bq.control.ScaleLine=EE,Bq.control.WMCSelector=mf,Bq.dialog={},Bq.dialog.error=pI,Bq.dialog.info=dI,Bq.dialog.show=gI,Bq.dialog.success=AI,Bq.evt={},Bq.evt.ACTIVATED=Kc,Bq.evt.ADDED_GEOPACKAGE="added:geopackage",Bq.evt.ADDED_GEOPACKAGE_TILE="added:geopackagetile",Bq.evt.ADDED_GEOPACKAGE_VECTOR="added:geopackagevector",Bq.evt.ADDED_KML=Vc,Bq.evt.ADDED_LAYER=Uc,Bq.evt.ADDED_MBTILES="added:mbtiles",Bq.evt.ADDED_MBTILES_VECTOR="added:mbtilesvector",Bq.evt.ADDED_TO_MAP=kc,Bq.evt.ADDED_TO_PANEL=Gc,Bq.evt.ADDED_VECTOR_TILE=jc,Bq.evt.ADDED_WFS=Yc,Bq.evt.ADDED_WMC=qc,Bq.evt.ADDED_WMS=zc,Bq.evt.ADDED_WMTS=Wc,Bq.evt.CHANGE=au,Bq.evt.CHANGE_PROJ=hu,Bq.evt.CHANGE_ROTATION=gu,Bq.evt.CHANGE_STYLE=cu,Bq.evt.CHANGE_WMC=lu,Bq.evt.CHANGE_ZOOM=uu,Bq.evt.CLICK=pu,Bq.evt.COMPLETED=ou,Bq.evt.DEACTIVATED=Jc,Bq.evt.DESTROY=tu,Bq.evt.DOUBLE_CLICK="doubleclick",Bq.evt.EventsManager=Bc,Bq.evt.HIDE=$c,Bq.evt.HOVER_FEATURES=nu,Bq.evt.LAYER_VISIBILITY_CHANGE=du,Bq.evt.LEAVE_FEATURES=ru,Bq.evt.LOAD=su,Bq.evt.LOAD_LAYERS="load:layers",Bq.evt.Listener=Lc,Bq.evt.MOVE=Au,Bq.evt.POPUP_ADDED=fu,Bq.evt.POPUP_ADDED_TAB=_u,Bq.evt.POPUP_REMOVED=mu,Bq.evt.POPUP_REMOVED_TAB=yu,Bq.evt.REMOVED_FROM_MAP=Xc,Bq.evt.REMOVED_LAYER=Hc,Bq.evt.SELECT_FEATURES=eu,Bq.evt.SHOW=Zc,Bq.evt.UNSELECT_FEATURES=iu,Bq.exception=Oc,Bq.facade={},Bq.facade.Base=Qc,Bq.filter=GB,Bq.filter.AND=t=>{let e="";const i=t.length;return t.forEach(((t,n)=>{e+=`(${t.toCQL()})`,nt.every((t=>t.getFunctionFilter()(e)))),{cqlFilter:e})},Bq.filter.EQUAL=(t,e)=>new kB((i=>Object.is(i.getAttribute(t),e)),{cqlFilter:`${t}='${e}'`}),Bq.filter.Function=kB,Bq.filter.GT=(t,e)=>new kB((i=>null!=i.getAttribute(t)&&i.getAttribute(t)>e),{cqlFilter:`${t} > '${e}'`}),Bq.filter.GTE=(t,e)=>new kB((i=>null!=i.getAttribute(t)&&i.getAttribute(t)>=e),{cqlFilter:`${t} >= '${e}'`}),Bq.filter.LIKE=(t,e)=>new kB((i=>i.getAttribute(t).toString().match(new RegExp(e))),{cqlFilter:`${t} LIKE '%${e}%'`}),Bq.filter.LT=(t,e)=>new kB((i=>null!=i.getAttribute(t)&&i.getAttribute(t)new kB((e=>!t.getFunctionFilter()(e)),{cqlFilter:`NOT ${t.toCQL()}`}),Bq.filter.OR=t=>{const e=t.length;let i="";return t.forEach(((t,n)=>{i+=`(${t.toCQL()})`,nt.some((t=>t.getFunctionFilter()(e)))),{cqlFilter:i})},Bq.filter.spatial={},Bq.filter.spatial.CONTAIN=t=>{const e=hD(t);return new GB(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.contains(e,r)}))}),{cqlFilter:cD("CONTAINS",e)})},Bq.filter.spatial.DISJOINT=t=>{const e=hD(t);return new GB(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return!lD.intersects(r,e)}))}),{cqlFilter:cD("DISJOINT",e)})},Bq.filter.spatial.INTERSECT=t=>{const e=hD(t);return new GB(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.intersects(r,e)}))}),{cqlFilter:cD("INTERSECTS",e)})},Bq.filter.spatial.WITHIN=t=>{const e=hD(t);return new GB(((t,i)=>{const n=new VP,r=n.read(t);return e.some((t=>{const e=n.read(t);return lD.contains(e,r)}))}),{cqlFilter:cD("WITHIN",e)})},Bq.filter.spatial.parseParamToGeometries=hD,Bq.format={},Bq.format.GeoJSON=BS,Bq.format.WKT=cM,Bq.geom={},Bq.geom.geojson={},Bq.geom.geojson.type={},Bq.geom.geojson.type.GEOMETRY_COLLECTION="GeometryCollection",Bq.geom.geojson.type.LINE_STRING="LineString",Bq.geom.geojson.type.MULTI_LINE_STRING="MultiLineString",Bq.geom.geojson.type.MULTI_POINT="MultiPoint",Bq.geom.geojson.type.MULTI_POLYGON="MultiPolygon",Bq.geom.geojson.type.POINT="Point",Bq.geom.geojson.type.POLYGON="Polygon",Bq.geom.parse=jS,Bq.geom.parseWFS=t=>{let e;return t===GS?e=pd:t===US?e=ld:t===qS?e=hd:t===VS?e=cd:t===zS?e=ud:t===YS&&(e=gd),e},Bq.geom.wfs={},Bq.geom.wfs.type={},Bq.geom.wfs.type.LINE=US,Bq.geom.wfs.type.MLINE=zS,Bq.geom.wfs.type.MPOINT=VS,Bq.geom.wfs.type.MPOLYGON=YS,Bq.geom.wfs.type.POINT=GS,Bq.geom.wfs.type.POLYGON=qS,Bq.geom.wkt={},Bq.geom.wkt.type={},Bq.geom.wkt.type.CIRCLE=fd,Bq.geom.wkt.type.GEOMETRY=ad,Bq.geom.wkt.type.GEOMETRY_COLLECTION=Ad,Bq.geom.wkt.type.LINEAR_RING=dd,Bq.geom.wkt.type.LINE_STRING=ld,Bq.geom.wkt.type.MULTI_LINE_STRING=ud,Bq.geom.wkt.type.MULTI_POINT=cd,Bq.geom.wkt.type.MULTI_POLYGON=gd,Bq.geom.wkt.type.POINT=pd,Bq.geom.wkt.type.POLYGON=hd,Bq.handler={},Bq.handler.Feature=ux,Bq.impl={},Bq.impl.Control=pf,Bq.impl.Feature=PB,Bq.impl.GetCapabilities=zd,Bq.impl.Label=ex,Bq.impl.Layer=Vd,Bq.impl.Map=uf,Bq.impl.Popup=Zy,Bq.impl.RenderFeature=lx,Bq.impl.Style=cm,Bq.impl.View=sf,Bq.impl.control={},Bq.impl.control.GetFeatureInfo=Fv,Bq.impl.control.LayerSwitcher=xf,Bq.impl.control.Location=kI,Bq.impl.control.Mouse=LE,Bq.impl.control.Navtoolbar=kE,Bq.impl.control.OverviewMap=PE,Bq.impl.control.Panzoom=jE,Bq.impl.control.Panzoombar=Dc,Bq.impl.control.Rotate=KI,Bq.impl.control.Scale=jI,Bq.impl.control.ScaleLine=mE,Bq.impl.control.WMCSelector=Af,Bq.impl.format={},Bq.impl.format.DescribeFeatureType=RS,Bq.impl.format.DescribeFeatureTypeXML=TS,Bq.impl.format.GML=DS,Bq.impl.format.GeoJSON=LS,Bq.impl.format.KML=mS,Bq.impl.format.WKT=hM,Bq.impl.format.WMC=JS,Bq.impl.format.WMSCapabilities=hA,Bq.impl.format.WMTSCapabilities=uM,Bq.impl.format.XML=MS,Bq.impl.handler={},Bq.impl.handler.Feature=cx,Bq.impl.interaction={},Bq.impl.interaction.SelectCluster=Py,Bq.impl.layer={},Bq.impl.layer.AnimatedCluster=Ly,Bq.impl.layer.Draw=dM,Bq.impl.layer.GeoJSON=CL,Bq.impl.layer.Heatmap=ZT,Bq.impl.layer.KML=yS,Bq.impl.layer.MVT=fL,Bq.impl.layer.Mapbox=Yb,Bq.impl.layer.OSM=Jb,Bq.impl.layer.Vector=hI,Bq.impl.layer.WFS=kS,Bq.impl.layer.WMC=$S,Bq.impl.layer.WMS=ef,Bq.impl.layer.WMTS=Gb,Bq.impl.loader={},Bq.impl.loader.JSONP=IL,Bq.impl.loader.KML=px,Bq.impl.loader.WFS=OS,Bq.impl.service={},Bq.impl.service.WFS=NS,Bq.impl.source={},Bq.impl.source.ImageWMS=$A,Bq.impl.source.TileWMS=KA,Bq.impl.style={},Bq.impl.style.Centroid=Dy,Bq.impl.style.Chart=lR,Bq.impl.style.Cluster=ky,Bq.impl.style.Generic=Wm,Bq.impl.style.Heatmap=hR,Bq.impl.style.Icon=cR,Bq.impl.style.Line=mR,Bq.impl.style.Path=Dm,Bq.impl.style.Point=II,Bq.impl.style.Polygon=yR,Bq.impl.style.Simple=um,Bq.impl.utils=qd,Bq.language={},Bq.language.addTranslation=(t,e)=>{Iu.translations[t]=e},Bq.language.getLang=()=>Iu.lang,Bq.language.getTranslation=Eu,Bq.language.getValue=Cu,Bq.language.setLang=t=>{Object.keys(Iu.translations).includes(t)||Oc(Cu("exception").unsupported_lang),Iu.lang=t},Bq.layer={},Bq.layer.GeoJSON=xL,Bq.layer.KML=ES,Bq.layer.LayerGroup=Cf,Bq.layer.MVT=yL,Bq.layer.MVT.mode=mL,Bq.layer.Mapbox=Hb,Bq.layer.OSM=$b,Bq.layer.Vector=_I,Bq.layer.WFS=XS,Bq.layer.WMC=eb,Bq.layer.WMS=rf,Bq.layer.WMTS=qb,Bq.layer.type={},Bq.layer.type.GeoJSON=Qu,Bq.layer.type.KML=Ru,Bq.layer.type.MVT=Gu,Bq.layer.type.Mapbox=Ou,Bq.layer.type.OSM=Du,Bq.layer.type.Vector=ku,Bq.layer.type.WFS=Pu,Bq.layer.type.WMC=Tu,Bq.layer.type.WMS=Nu,Bq.layer.type.WMTS=Fu,Bq.layer.type.registerLayerType=t=>{t in Uu||(Uu[t]=t)},Bq.map=(t,e)=>(qL(uf)&&Oc(Cu("exception").no_impl),new SL(t,e)),Bq.parameter={},Bq.parameter.center=ag,Bq.parameter.geojson=sg,Bq.parameter.kml=Ku,Bq.parameter.layer=fg,Bq.parameter.mapbox=$u,Bq.parameter.maxExtent=lg,Bq.parameter.mvt=dg,Bq.parameter.osm=ig,Bq.parameter.projection=hg,Bq.parameter.resolutions=cg,Bq.parameter.wfs=gg,Bq.parameter.wmc=og,Bq.parameter.wms=Hu,Bq.parameter.wmts=pg,Bq.parameter.zoom=ug,Bq.projection=hs,Bq.proxy=t=>{"boolean"==typeof t&&(LL=t)},Bq.remote={},Bq.remote.Response=ML,Bq.remote.get=DL,Bq.remote.post=(t,e,i)=>FL(t,e,RL),Bq.removeProxyException=t=>{const e=new URL(t).origin,i=BL.indexOf(e);-1!==i&&BL.splice(i,1)},Bq.style={},Bq.style.Category=LR,Bq.style.Chart=nR,Bq.style.Choropleth=FR,Bq.style.Cluster=Vy,Bq.style.Composite=Uy,Bq.style.Feature=Zm,Bq.style.Font=DR,Bq.style.Generic=e_,Bq.style.Heatmap=QR,Bq.style.Line=gR,Bq.style.Point=CI,Bq.style.Polygon=wR,Bq.style.Proportional=vR,Bq.style.Proportional.getMinMaxValues=IR,Bq.style.Simple=$m,Bq.style.align={},Bq.style.align.CENTER=dm,Bq.style.align.JUSTIFY=Am,Bq.style.align.LEFT=gm,Bq.style.align.RIGHT=pm,Bq.style.baseline={},Bq.style.baseline.ALPHABETIC=ym,Bq.style.baseline.BOTTOM=_m,Bq.style.baseline.HANGING=Im,Bq.style.baseline.IDEOGRAPHIC=Em,Bq.style.baseline.MIDDLE=mm,Bq.style.baseline.TOP=fm,Bq.style.chart={},Bq.style.chart.Variable=$T,Bq.style.chart.schemes=eR,Bq.style.chart.types=tR,Bq.style.form={},Bq.style.form.BAN="BAN",Bq.style.form.BLAZON="BLAZON",Bq.style.form.BOOKMARK="BOOKMARK",Bq.style.form.BUBBLE="BUBBLE",Bq.style.form.CIRCLE="CIRCLE",Bq.style.form.COMA="COMA",Bq.style.form.DIAMOND="DIAMOND",Bq.style.form.HEXAGON="HEXAGON",Bq.style.form.LOZENGE="LOZENGE",Bq.style.form.MARKER="MARKER",Bq.style.form.NONE="none",Bq.style.form.POI="POI",Bq.style.form.SHIELD="SHIELD",Bq.style.form.SIGN="SIGN",Bq.style.form.SQUARE="SQUARE",Bq.style.form.TRIANGLE="TRIANGLE",Bq.style.pattern={},Bq.style.pattern.BRECCIA="BRECCIA",Bq.style.pattern.BRICK="BRICK",Bq.style.pattern.CAPS="CAPS",Bq.style.pattern.CEMETRY="CEMETRY",Bq.style.pattern.CHAOS="CHAOS",Bq.style.pattern.CHARACTER="CHARACTER",Bq.style.pattern.CIRCLE="CIRCLE",Bq.style.pattern.CLAY="CLAY",Bq.style.pattern.COAL="COAL",Bq.style.pattern.CONGLOMERATE="CONGLOMERATE",Bq.style.pattern.CROSS="CROSS",Bq.style.pattern.CROSSES="CROSSES",Bq.style.pattern.DOLOMITE="DOLOMITE",Bq.style.pattern.DOT="DOT",Bq.style.pattern.FLOODED="FLOODED",Bq.style.pattern.FOREST="FOREST",Bq.style.pattern.GRASS="GRASS",Bq.style.pattern.GRAVEL="GRAVEL",Bq.style.pattern.HATCH="HATCH",Bq.style.pattern.HEXAGON="HEXAGON",Bq.style.pattern.ICON="ICON",Bq.style.pattern.IMAGE="IMAGE",Bq.style.pattern.NYLON="NYLON",Bq.style.pattern.PINE="PINE",Bq.style.pattern.PINES="PINES",Bq.style.pattern.ROCK="ROCK",Bq.style.pattern.ROCKS="ROCKS",Bq.style.pattern.SAND="SAND",Bq.style.pattern.SCRUB="SCRUB",Bq.style.pattern.SQUARE="SQUARE",Bq.style.pattern.SWAMP="SWAMP",Bq.style.pattern.TILE="TILE",Bq.style.pattern.TREE="TREE",Bq.style.pattern.VINE="VINE",Bq.style.pattern.WAVE="WAVE",Bq.style.pattern.WOVEN="WOVEN",Bq.style.quantification={},Bq.style.quantification.JENKS=MR,Bq.style.quantification.QUANTILE=TR,Bq.style.state={},Bq.style.state.DEFAULT="default",Bq.style.state.NEW="new",Bq.style.state.SELECTED="selected",Bq.style.textoverflow={},Bq.style.textoverflow.ELLIPSIS="ellipsis",Bq.style.textoverflow.HIDDEN="",Bq.style.textoverflow.VISIBLE="visible",Bq.template={},Bq.template.add=(t,e)=>{QL(Su[t])&&(Su[t]=e)},Bq.template.compile=(t,e)=>{let i,n,r={};return QL(e)||(r=_B(r,e.vars),i=e.parseToHtml,n=e.scope),new Promise(((s,o)=>{Lu(t,e).then((t=>{const e=t.call(null,r);!1!==i?s.call(n,rB(e)):s.call(n,e)}))}))},Bq.template.compileSync=bu,Bq.template.get=Lu,Bq.ui={},Bq.ui.Panel=Hv,Bq.ui.position={},Bq.ui.position.BL=zv,Bq.ui.position.BR=Yv,Bq.ui.position.TL=qv,Bq.ui.position.TR=Vv,Bq.units={},Bq.units.DOTS_PER_INCH=72,Bq.units.INCHES_PER_UNIT=OL,Bq.utils={},Bq.utils.addParameters=KL,Bq.utils.beautifyAttribute=sB,Bq.utils.beautifyAttributeName=oB,Bq.utils.beautifyString=t=>{let e;return e=t.toLowerCase(),e=e.trim(e),e=e.charAt(0).toUpperCase()+e.slice(1),e=e.replace(/_/g," "),e=e.replace(/\s+/," "),e=e.replace(/(\s\w)+/g,(t=>t.toUpperCase())),e=e.replace(/\s+(de|del|las?|el|los?|un|unas?|unos?|y|a|al|en)\s+/gi,(t=>t.toLowerCase())),e},Bq.utils.concatUrlPaths=aB,Bq.utils.decodeHtml=pB,Bq.utils.defineFunctionFromString=vB,Bq.utils.drawDynamicStyle=BB,Bq.utils.enableTouchScroll=uB,Bq.utils.escapeJSCode=cB,Bq.utils.escapeXSS=t=>{let e;return e=t.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/'/g,"""),e=e.replace(/'/g,"'"),e=e.replace(/\//g,"/"),e},Bq.utils.extend=hB,Bq.utils.extendsObj=_B,Bq.utils.fillResolutions=tB,Bq.utils.generateColorScale=fB,Bq.utils.generateIntervals=yB,Bq.utils.generateRandom=JL,Bq.utils.generateResolutionsFromExtent=iB,Bq.utils.generateResolutionsFromScales=(t,e,i,n)=>{const r=eB(t,n),s=eB(e,n);return tB(r,s,i)},Bq.utils.getEnvolvedExtent=MB,Bq.utils.getFeaturesExtent=(t,e)=>M.impl.utils.getFeaturesExtent(t,e),Bq.utils.getImageSize=EB,Bq.utils.getOpacityFromRgba=t=>{let e;const i=/^rgba\s*\((\s*\d+\s*,){3}\s*([\d.]+)\s*\)$/;if(i.test(t)){e=t.replace(i,"$2");try{e=parseFloat(e)}catch(t){throw t}}return e},Bq.utils.getParameterValue=WL,Bq.utils.getResolutionFromScale=eB,Bq.utils.getRgba=(t,e)=>a()(t).alpha(e).css(),Bq.utils.getScaleFromResolution=nB,Bq.utils.getSystem=TB,Bq.utils.getTextFromHtml=AB,Bq.utils.getWMSGetCapabilitiesUrl=ZL,Bq.utils.getWMTSGetCapabilitiesUrl=$L,Bq.utils.htmlToString=t=>{let e;if(!qL(t)){const i=document.createElement("div");i.appendChild(t),e=i.innerHTML}return e},Bq.utils.includes=lB,Bq.utils.inverseColor=mB,Bq.utils.isArray=UL,Bq.utils.isBoolean=kL,Bq.utils.isDynamic=bB,Bq.utils.isFunction=VL,Bq.utils.isGeometryType=dB,Bq.utils.isNull=GL,Bq.utils.isNullOrEmpty=qL,Bq.utils.isNumber=HL,Bq.utils.isObject=zL,Bq.utils.isPositiveNumber=t=>HL(t)&&t>0,Bq.utils.isString=YL,Bq.utils.isUndefined=QL,Bq.utils.isUrl=jL,Bq.utils.normalize=XL,Bq.utils.rgbToHex=t=>{let e;try{e=a()(t).hex()}catch(t){throw t}return e},Bq.utils.rgbaToHex=t=>{let e;try{e=a()(t).hex()}catch(t){throw t}return e},Bq.utils.sameUrl=gB,Bq.utils.setDynamicLegend=t=>{LB=t},Bq.utils.setEquals=(t,e)=>{let i=!1;return t.length===e.length&&(i=t.every((t=>e.some((e=>e.equals(t)))))),i},Bq.utils.stringToHtml=rB,Bq.utils.stringifyFunctions=CB,Bq.utils.styleComparator=IB,Bq.version="6.6.0",Bq.window=Jy,Mq.Collection=eo,Mq.Feature=_d,Mq.Geolocation=OI,Mq.Image={},Mq.Image.decode=Pg,Mq.Image.load=Rg,Mq.Kinetic=mc,Mq.Map=bc,Mq.Object=Ks,Mq.Observable=Ys,Mq.Observable.unByKey=zs,Mq.Overlay=Wy,Mq.View=dl,Mq.array={},Mq.array.stableSort=function(t,e){const i=t.length,n=Array(t.length);let r;for(r=0;r{const i=t.results;if(i?.length>0){const t=i.filter((t=>"EPSG"===t.id?.authority&&t.id?.code===e))[0];if(t){const e=t.transformations;if(e?.length>0){const i=t.default_transformation;if(e.filter((t=>t.id?.authority===i?.authority&&t.id?.code===i?.code&&0===t.grids?.length)).length>0)return t.exports?.proj4;const n=e.filter((t=>0===t.grids?.length&&"EPSG"===t.target_crs?.authority&&4326===t.target_crs?.code&&!1===t.deprecated&&!0===t.usable)).sort(((t,e)=>t.accuracy-e.accuracy))[0]?.exports?.proj4;if(n)return n}return t.exports?.proj4}}}))}},Mq.proj.proj4.fromEPSGCode=async function(t){"string"==typeof t&&(t=parseInt(t.split(":").pop(),10));const e=ns;if(!e)throw new Error("Proj4 must be registered first with register(proj4)");const i="EPSG:"+t;return e.defs(i)||(e.defs(i,await ss(t)),rs(e)),ee(i)},Mq.proj.proj4.register=rs,Mq.proj.proj4.setEPSGLookup=function(t){ss=t},Mq.proj.setUserProjection=de,Mq.proj.toLonLat=function(t,e){const i=ce(t,void 0!==e?e:"EPSG:3857","EPSG:4326"),n=i[0];return(n<-180||n>180)&&(i[0]=_t(n+180,360)-180),i},Mq.proj.transform=ce,Mq.proj.transformExtent=ue,Mq.proj.useGeographic=function(){de("EPSG:4326")},Mq.render={},Mq.render.Feature={},Mq.render.Feature.toFeature=function(t,e){const i=t.getId(),n=Nd(t),r=t.getProperties(),s=new _d;return void 0!==e&&s.setGeometryName(e),s.setGeometry(n),void 0!==i&&s.setId(i),s.setProperties(r,!0),s},Mq.render.Feature.toGeometry=Nd,Mq.render.VectorContext=Xf,Mq.render.canvas={},Mq.render.canvas.checkedFonts=Vl,Mq.render.canvas.registerFont=Hl,Mq.render.getRenderPixel=function(t,e){return _o(t.inversePixelTransform,e.slice(0))},Mq.render.getVectorContext=sm,Mq.render.toContext=rm,Mq.renderer={},Mq.renderer.Composite=$l,Mq.renderer.canvas={},Mq.renderer.canvas.ImageLayer=Zg,Mq.renderer.canvas.TileLayer=Wg,Mq.renderer.canvas.VectorImageLayer=nk,Mq.renderer.canvas.VectorLayer=wy,Mq.renderer.canvas.VectorTileLayer=aL,Mq.renderer.webgl={},Mq.renderer.webgl.PointsLayer=HM,Mq.renderer.webgl.TileLayer=AT,Mq.size={},Mq.size.toSize=xc,Mq.source={},Mq.source.BingMaps=lk,Mq.source.CartoDB=hk,Mq.source.Cluster=Gf,Mq.source.DataTile=ck,Mq.source.GeoTIFF=DU,Mq.source.IIIF=GU,Mq.source.Image=qA,Mq.source.ImageArcGISRest=VU,Mq.source.ImageCanvas=zU,Mq.source.ImageMapGuide=HU,Mq.source.ImageStatic=WU,Mq.source.ImageWMS=ZA,Mq.source.OGCMapTile=oq,Mq.source.OGCVectorTile=aq,Mq.source.OSM=Wb,Mq.source.OSM.ATTRIBUTION=Xb,Mq.source.Raster=Iq,Mq.source.Source=fA,Mq.source.StadiaMaps=vq,Mq.source.Tile=CA,Mq.source.TileArcGISRest=xq,Mq.source.TileDebug=wq,Mq.source.TileImage=TA,Mq.source.TileJSON=Sq,Mq.source.TileWMS=XA,Mq.source.UTFGrid=Lq,Mq.source.Vector=kf,Mq.source.VectorTile=nL,Mq.source.WMTS=sb,Mq.source.WMTS.optionsFromCapabilities=ob,Mq.source.XYZ=Vb,Mq.source.Zoomify=QU,Mq.source.arcgisRest={},Mq.source.arcgisRest.createLoader=qU,Mq.source.mapguide={},Mq.source.mapguide.createLoader=jU,Mq.source.sourcesFromTileGrid=function(t,e){const i=new cA(32),n=t.getExtent();return function(r,s){i.expireCache(),n&&(r=rt(n,r));const o=t.getZForResolution(s),a=[];return t.forEachTileCoord(r,o,(t=>{const n=t.toString();if(!i.containsKey(n)){const r=e(t);i.set(n,r)}a.push(i.get(n))})),a}},Mq.source.static={},Mq.source.static.createLoader=XU,Mq.source.wms={},Mq.source.wms.createLoader=HA,Mq.sphere={},Mq.sphere.getArea=function t(e,i){const n=(i=i||{}).radius||Ut,r=i.projection||"EPSG:3857",s=e.getType();"GeometryCollection"!==s&&(e=e.clone().transform(r,"EPSG:4326"));let o,a,l,h,c,u,g=0;switch(s){case"Point":case"MultiPoint":case"LineString":case"MultiLineString":case"LinearRing":break;case"Polygon":for(o=e.getCoordinates(),g=Math.abs(zt(o[0],n)),l=1,h=o.length;l - +