﻿{"id":356,"date":"2020-03-13T17:42:00","date_gmt":"2020-03-13T17:42:00","guid":{"rendered":"https:\/\/lagar.vamtam.com\/?page_id=356"},"modified":"2026-10-01T16:00:33","modified_gmt":"2026-10-01T12:00:33","slug":"find-us","status":"publish","type":"page","link":"https:\/\/lusarev.am\/am\/find-us\/","title":{"rendered":"\u0533\u054f\u053b\u0550 \u0544\u0535\u0536"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"356\" class=\"elementor elementor-356\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a39aec8 elementor-section-height-min-height elementor-section-content-bottom elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"a39aec8\" data-element_type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b02e8b7\" data-id=\"b02e8b7\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b1ea8dd elementor-headline--style-blurred_letters animated-slow elementor-invisible elementor-widget elementor-widget-vamtam-animated-headline\" data-id=\"b1ea8dd\" data-element_type=\"widget\" data-settings=\"{&quot;headline_style&quot;:&quot;blurred_letters&quot;,&quot;vamtam_text&quot;:&quot;Experiences&quot;,&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_tablet&quot;:&quot;none&quot;}\" data-widget_type=\"vamtam-animated-headline.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h1 class=\"elementor-headline\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-word\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter blurred\" data-delay=\"0.17\">E<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">x<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter blurred\" data-delay=\"0.22\">p<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">e<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter blurred\" data-delay=\"0.31\">r<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">i<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">e<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">n<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">c<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter blurred\" data-delay=\"0.38\">e<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"vamtam-letter\">s<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\t\t\t\t\t\t\t\t\t<\/h1>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-67868c8 elementor-section-height-min-height elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"67868c8\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f8d9e19\" data-id=\"f8d9e19\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4d24a5c elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"4d24a5c\" data-element_type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:200,&quot;_animation_tablet&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\">\u0533\u057f\u056b\u0580 \u0574\u0565\u0566<\/h6>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-106983b elementor-widget elementor-widget-heading\" data-id=\"106983b\" data-element_type=\"widget\" data-settings=\"{&quot;_animation_tablet&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u0533\u0576\u0565\u2019\u0584 \u053c\u0578\u0582\u057d\u0561\u0580\u0587 \u0563\u056b\u0576\u056b\u0576\u0565\u0580\u0568 \u0561\u057c\u0581\u0561\u0576\u0581 \u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\u0576\u0565\u0580\u0578\u0582\u0574<\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e0a7448 elementor-absolute elementor-widget elementor-widget-image\" data-id=\"e0a7448\" data-element_type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"432\" height=\"552\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2024\/12\/\u053d\u0561\u0572\u0578\u0572-\u057d\u056f\u0565\u0579-1.png\" class=\"attachment-large size-large wp-image-990218\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2024\/12\/\u053d\u0561\u0572\u0578\u0572-\u057d\u056f\u0565\u0579-1.png 432w, https:\/\/lusarev.am\/wp-content\/uploads\/2024\/12\/\u053d\u0561\u0572\u0578\u0572-\u057d\u056f\u0565\u0579-1-235x300.png 235w, https:\/\/lusarev.am\/wp-content\/uploads\/2024\/12\/\u053d\u0561\u0572\u0578\u0572-\u057d\u056f\u0565\u0579-1-9x12.png 9w, https:\/\/lusarev.am\/wp-content\/uploads\/2024\/12\/\u053d\u0561\u0572\u0578\u0572-\u057d\u056f\u0565\u0579-1-315x403.png 315w\" sizes=\"(max-width: 432px) 100vw, 432px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t<div class=\"elementor-element elementor-element-75f2653 e-flex e-con-boxed e-con e-parent\" data-id=\"75f2653\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-096320f e-grid e-con-full e-con e-child\" data-id=\"096320f\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-3a246e7 e-con-full e-flex e-con e-child\" data-id=\"3a246e7\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-71f5738 elementor-widget elementor-widget-image\" data-id=\"71f5738\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/yerevan-city.am\/shop\/search\/0?search=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png\" class=\"attachment-large size-large wp-image-991501\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png 1000w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-300x300.png 300w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-150x150.png 150w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-768x768.png 768w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-12x12.png 12w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-630x630.png 630w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city-315x315.png 315w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bfab3be elementor-align-left elementor-widget elementor-widget-button\" data-id=\"bfab3be\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/yerevan-city.am\/shop\/search\/0?search=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0533\u0576\u0565\u055b\u0584 \u0570\u056b\u0574\u0561<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9e5bba2 e-con-full e-flex e-con e-child\" data-id=\"9e5bba2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c99b612 elementor-widget elementor-widget-image\" data-id=\"c99b612\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.sas.am\/search\/?q=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas.png\" class=\"attachment-large size-large wp-image-991499\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas.png 1000w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-300x300.png 300w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-150x150.png 150w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-768x768.png 768w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-12x12.png 12w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-630x630.png 630w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/sas-315x315.png 315w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80b2c7a elementor-align-left elementor-widget elementor-widget-button\" data-id=\"80b2c7a\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.sas.am\/search\/?q=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0533\u0576\u0565\u055b\u0584 \u0570\u056b\u0574\u0561<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8d4114b e-con-full e-flex e-con e-child\" data-id=\"8d4114b\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07c0a44 elementor-widget elementor-widget-image\" data-id=\"07c0a44\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/parma.am\/hy\/product\/search?text=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma.png\" class=\"attachment-large size-large wp-image-991502\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma.png 1000w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-300x300.png 300w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-150x150.png 150w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-768x768.png 768w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-12x12.png 12w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-630x630.png 630w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/parma-315x315.png 315w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe3fb8e elementor-align-left elementor-widget elementor-widget-button\" data-id=\"fe3fb8e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/parma.am\/hy\/product\/search?text=Lusarev\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0533\u0576\u0565\u055b\u0584 \u0570\u056b\u0574\u0561<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aadc9b4 e-con-full e-flex e-con e-child\" data-id=\"aadc9b4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2c3cd80 elementor-widget elementor-widget-image\" data-id=\"2c3cd80\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/carrefour.am\/am\/catalogsearch\/result\/?q=Lusarev+\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour.png\" class=\"attachment-large size-large wp-image-991500\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour.png 1000w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-300x300.png 300w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-150x150.png 150w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-768x768.png 768w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-12x12.png 12w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-630x630.png 630w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/carrefour-315x315.png 315w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b114322 elementor-align-left elementor-widget elementor-widget-button\" data-id=\"b114322\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/carrefour.am\/am\/catalogsearch\/result\/?q=Lusarev+\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0533\u0576\u0565\u055b\u0584 \u0570\u056b\u0574\u0561<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4708e88 e-con-full e-flex e-con e-child\" data-id=\"4708e88\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30b0db2 elementor-widget elementor-widget-image\" data-id=\"30b0db2\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.rockfour.am\/hy\/shop?f_sort=relevance&#038;f_search=Lusarev%20\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"1000\" src=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour.png\" class=\"attachment-large size-large wp-image-991504\" alt=\"\" srcset=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour.png 1000w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-300x300.png 300w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-150x150.png 150w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-768x768.png 768w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-12x12.png 12w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-630x630.png 630w, https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/1Rockfour-315x315.png 315w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05abb6e elementor-align-left elementor-widget elementor-widget-button\" data-id=\"05abb6e\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.rockfour.am\/hy\/shop?f_sort=relevance&#038;f_search=Lusarev%20\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-right\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u0533\u0576\u0565\u055b\u0584 \u0570\u056b\u0574\u0561<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d974469 e-flex e-con-boxed e-con e-parent\" data-id=\"d974469\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73cf46c elementor-widget elementor-widget-spacer\" data-id=\"73cf46c\" data-element_type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-97c933d e-con-full e-flex e-con e-parent\" data-id=\"97c933d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54bf39e elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"54bf39e\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\r\n<html>\r\n\t<head>\r\n\t\t<meta charset=\"utf-8\">\r\n\t\t<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@400;500;600&display=swap');\r\n@font-face { font-family: \"Mardoto\"; font-display: swap; src: url(\"data:font\/woff2;base64,d09GMgABAAAAAC0wABEAAAAAZAQAACzPAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGmQbiVIcgT4GYABcCIEQCZptEQgKgY1M\/x8BNgIkA4MMC4FIAAQgBYc6ByAMgTEb5FpVRoWNA8AMJW2MRAgbBwKKYRZFsHFAkHlfLPn\/c3JjDK0Bq+4\/ISg7MVTBMAwKY6497703iDooGAZ9j2gmHDIUn1dgdGRkPmEqr36nVS0j89d59FmR2YMfzpg5sPl2clC6jhiZcRn1kenaI5YIxR\/CG\/Wd6nyExj7J\/Xud2Xv\/v29LlqyQs2FFS2hYAKIuUFGZCrHKpM9smzJ3192kYw\/CNoeJ0RhvfZuFjYKNQaqYYBR2X0DFQgUDPTYP83rQH9RH+vYR4d96HxDimtf2mTP3JAckzNyEChG1bL3LDiFajP3CvSLbqHAxGoVE6ZSFA2MQGs35oM7PJ1MchyxLNicGyXaA\/+cjHSAPa5el3SbA8dalc+1R90rDmLKWU1\/ZlgsUQH0Kgl5Rip0\/zB1mbdPJZf\/\/bWoX3nv\/j+IAS3FkB9Be4KJiLVU5qUYTVrfVlnNmMQMAdHS5kEBI+PbtdrMCI\/VA2IYMi4YY\/l1aK5Oh201mDksKUSEIfSALLIHmY3b\/HLSKJKv6SjLi6P9VCYQbBda15XJQgvkwc6h2xkZrKUMnZ+gJ+zMKLOq20\/Z4S2ARRJlWwQ4QM8Tj8uJ0zebaziExAvmeQ6fNtMSjHFhwfXv\/\/7dpb\/ueTPJn1BYfsSaqfqCo0jSjd98b1lgzIxk0tmONjLPKj2DXxxnZOR7JuxlJ9if7kzdAVOXIMiz4A1EV4IqIOixz+rR9qhRtH3j+uXf6Z6UXsCyxtBNQZGu8PrW2Tepj2zbq4rHJO1kyp717KKpWyllZQDWFehJYGCArlz3GxMTbnQ0fQ3Ad+2V+Scxe2jTp5bqKCMMAwyGQ3K9f77Fcl\/FMXaQYBbhbFxCA6vCpxmgEgchkRKMhNh6ITkeCBSORIpE4cUiCBCRJEpIjBylUg6lTjzRqRBCAhS4ELi77YYGEAEDtGXe6n0kFEhjYF2GrCaflDFgYHq0YsglZgtfx3gYIg4QQLjHiZEAJSqCGUoz1cxp0YAXT1gCvqxFUVuAWuodQvCPcdLcMh2cY\/1zY03gm2DB4w1lc9K68ZGBXcAuloRpHld7uCv8ryvWi4zf2NNzjMPMHNNxbdA1iOCKYSWQWCivNKWeT5PG46LKrrtEZvPjwVaREqVbMFQyDMsixBMgMkuBkBAtIwcSKhQZzCsVZiA0zD2QXUVxGcRXhGhY6xEDmheAD8kVSBCmBKUXW6i0w1zFkHESozCLZrMsiIdJZRXUehJjOdVlXRcZisrQnQAIxCUIRgkkoiigUMSiSUKShKLbLKlRRcqoiNBjMGhGasWi9pGJiEIApX0G6t7kjzSozsoLqF9taluD+or8AgYIECxEqjJ2DS4RIMRIkSpEmXYYceQqVqVCpSrUayJ8TB4AQAAMAgKDv5LHXVRrJ8tek0HIvKVmQtyIJeIUhDFU4hacTAS4VLitWdzSMJqx60Q7gxYGBqQfSkYrpOpHAnxCMbSWhs1i9qV2mD1gwJuUdKH4vrGrBZ8fx0UJMlWSmutkv85GkZnxQhNF7avH4eZxEY0tSVRswHsoqW2JUrZFgVK1I1ez8aRdV4OrkqKzVerVKaYxWTLcgs32ThLey0kQaiBnjEgC3WYrhLKXSAQDh4Ec+zl4J8AQpMTcbB8Ff0DXUWQEAIDd9cxwDt1gQseGRPyE5r2skjCn4hCQytWGksfsPiB7lCU106N2fV3\/J\/bwO\/MzPlZ\/XAeKQfuWVnicJtwCACfUBf7cK9v8Hk5aBhtxfHFeVHWzcefHbufJUqI8yH99AtauOg+v4p9RILEG8DCMF9v7B0Nuje\/oUeGDD6XOcIr8MVJb+ZwEKcivXxlriLeG6DHsgcI\/ekYBFmTpqQAf+cGnSp35n7HHUjuhysNRNTz8HK9bkN+CT4\/GIUgOe9oanz4oi0Ekdd0J8ICQxMbCVt9zoRwamyL+kFjlSJOViXHZ6gWN0HI2aVzfUjA5bwrNAuE\/ijNJAYH3u5J7+1UPLVfOfDTGqXVKiX4cT4km4ecQddWAEGpY60ORxoFVPp95Yq8TiaECsWHTFPjxGiZ2qwU3+6KQpe5L6ZifuPpGL\/19nvWzbNY10EuKxSacaRK2C6iw42TiEYeDceBPssOqh0YsssQN9AiIOJ6rH1Etfu4v25tgB9HX12f4zIQZSbJ6JOs2Mw83mbPSdUXAf+Rc2YKjrDaDqSOoiLtxyNBYxylsqOpINpIF4LjduqIjqpDaROlQznd4SOrcuYijZoD4xqnbPg2YO1ojVF9aNGaBojcwrwqTjEHsOwAF3lwg3jnpldQA\/w8N8xxFA1y1bxD8jkPOWyhoj8hfU91G9OLrYOw\/FfA\/1EQc\/8sORYu8k7J19oRu7N7DDeyhwBxdivXIRq2fN1ShHmS\/hA1fHEOcC6nbJxYG5NObzAKqT1ZsVLd9XDQ9SYYRuWBk4SRyEmSL+mooXVy0AJkMiCZd7EmP7YcAwU0DTzwPr6jGiV09WGsUjEuvv5ngWKkD4fKE0Owv+XG0eqiNHAascfRTyJwoCGgoDOooCBooDJkoCFkoDHZQFbDQOdHtnEOrr0pW98yBoSN5XCZf88wktaxp\/T7to2d749249wQyD24hzPMEFFlxiwRUWLLBgiQXXWHCDBbdY8BRLagmsxipaZUc2CwYyUgb+FPGW96brN8waXDlXN8cNgAkCaUtalDo6dS7ZEIC29M0ufpCTbTFubsWMs1F4pZaqOxdNnS+1B96j7znADKuSYS2i4yk5FkNwm+C6sS6LZR99e98ph8AqJjZ0Eq7HLyLHIzR3Vx2PpyeJbDVjT1C0oPUYTUgQRKYM7+TBRF4nIVybYjtWfX8oktmtFzb7FERAanRjvzB1y4UCgjmrm7xfgdV8up3BWQyNzCgNkhdIgF\/qyVh1En6qw3xhKifNJ+pr7FqbyEIoKuPjCg3XqhzrHD0JLaAxdkKdqTuSisn0ctwXFdt2EoBGknFaNEKb4xOUaRNo1ohGlWoqGg\/xyOs3LdFKTtAkyxTTJGiRVtFJcKI+2jkdEpi4mVinrC7+3XLBpM0jjg1RTAKpXRwHgyjZHHm8F6HBqlgjvMvAFjEm6c6Isp1LBerJkgnPAiZr3GuXfkAAWCfH64miZvN+di5D0BDJ4ZYbDMfmVANWtSnryCvB6a9c9NQcV1fiUxZ6o6\/WPHWlmddqnnkuTpJmc8xHpmfRYMP1ErpuIkhRNZHfmUgHNZ98F0U3gEYWIfJv1MVumWcbOa7\/IyaJTOwitey1V2XR2JSJW8WKbvbitCJGukVwZ9zKjlkkuAHfVv21b\/SQ5eICFzy8nZU7w3frAjLQeeSS92qelOj+SghGggbjvKUSZlibiGqd0WZZ6JEWdtIWcBJGV8DLkE5fIEgYQ3EY4SeC7BkrJCljqpDliMwVipSxVEMFS1XqYoMmYWwFugwZ7AWGhHEU44SNiszlFkvKuKpxYwXjrnCkjKfaXSjYi+M9MKWQ7KE4vI4vN5TWHxTy4evUnxP\/Gbp1kExtDjTmMFpW7unqPbyD4PTxCR2ZzJHZHFnMkbVmaA660w8TOnGaE5c5cZsTT81wHTzn6odMKSmJq9ou7biWsbf67iczp+kfoUDYuaF0yNpB9An+bAVQN8CZDhw2p8H1nxt7sqYle8eRL4znlsgKccEJ3IV5QchrRq8MhR+ngeJ901Hi4n+fGQ3aPmygOdycUn+8H2hljtY2mPA8nvOIhxve9KGbewpbXM\/Luop6YTDUDvhQx28HMJdZOjXz2NT1JwPYALZnB2XLM48XLB\/J6CZ9da+w5WGr56opHbJjRw6blmu13LqWO3g8Ny2zruV9fWser41bPnAOcs4KK4b+rydrhZO6orz0XgytZUBYOj4wTDXEK7Jjwwe9A+ThVCMS4b8HIewcKKwV75F8bjvptl8FUVA2MhSLAfwiqgHnGXg2FHJcowgI+0vSJotgUJ9gQKNOFUjcZ9AYXoR7BZr6gjpgaSfQVkrYRyToGOajVBmKwwrq8qB9aWoYqvfiQbxaDLLN0KzCBe\/JJMDtTyBZaEhYzZIveESDMYhRnNDecZnBAATBctPDCorQCow+B5FoUmbp7Y0b6HhlA5KRXipmeZElSEsYWpwY1ARADQzYpbJbL74zaV85exQIuayaBSVGaDXKFisCfrh1GtX\/5EkxDdgs4JvaLtklppq2JI\/hP2BYbUu1MET5yKeUeGe3N5GS4TzWbt44jeQqhQ1UhLkApnZwCdhAxWNYql+nVk3jowYcWLiy0CWMcCmhbsuSlfy9YgpjvAgLeHG2xAjABdh3WZaQpADHSrrkbjCa0ONPcVbDMvBzf+hYgt3QU6dmLMmjKS0WlsG3MIVly4r1bfvAhXG1LeEFnQR2ec7oAQ\/vBH4PZHAsx+TgqLY0rliAZlET0jg\/S6DIT0pY8\/ET0kzR2Xb1l1V\/6325ZDzwsZxnggChe11lMQhGhnSBiO3oViKFZB+z3ZD6rGsg2zoA6Wdr1ViwijIQ9kncK0Uc2qpd3vvaCQyKjD9ZQOr6vFaO5pjBomwlYEyaDZMm2hC3lJtkFLgSmTPqjtWCmUKucJ70XKJVVSTc0dCn1u16tRYpsvTTTHnrPXb8n2wOEj4aziA6JscyLBAp0mygoXS93hpE8DIvH382tGbVKQzHof9C+dlSYa2u5R6G7NvMhIBgo\/ZezA3UJLLjfIwvuIWVLkwtHDNMAgxAioOcTHsRv1Fp3IKiFREibbA+dg21LqpI8GgDbUH57tVWePLqS\/vRRwPMnSZlzPPxaOlRM1kJjsmVRdSTsimaJ\/IZAM\/knqCO7BJh+E+o6G\/7GuFlgOMGVbz8RwTvnYRLk7wI7MT+swrybKCZak\/5KOWbkWOOI0SWUPwQEsagPEvXW5SDZ+997aU8AxXCYIX4peoK4GniiIEdz31n68BTXGi22XhEixvYXVX8GxiZ1dKt9UUOYTogFVr861rX13ptjMLVm6B84Zr\/6DX9hS2BnceySDmgshLnz2CBvDTI5UJi0Xn5xaMLW2wXFaDMufd6cs3p8gIoh2F3ioAilg8Vc2j4g8tD1EgiuQZp7iWOM4mNW8A6XZ7xQQfkKgfM6gE3bkedl4b0y5UVPOH8XyxroE4qhZ6OEyT1RGnc5ZNRdVGovPSucgpSrgJlCXlJeYiCEXwtQjdtPFC5\/UKbODaSoCq4Usq7hZwcSB0aHSUhL\/nsFeRdrm86yQQQrU+3FHZywUaRyr35gGI34stksvReXZ3t+IuSfukUPeN86jIdiq\/+fEpTknRUxeP1NFSIyGRUFm+qicAsV0ELpmyFnsF8qsx7n6QvvagzK6jKEU8IlSKXh7r7odrPzPCtCTYJE77WaevTVVMU+bA3juZ1abXAiThK8FbVl0pMUZ4FRTsARIhG72m94M+abOxc8TOYvXvPyWSjWWxLqICiML83\/G0IpJAiH1ZoVaTc0DdG5OMUfhsS2agUUQVws1ITTV8E7\/0aKL8qz7gOWevLG+soRWgb1IyGJAEUAUW2kpdUhChBsJrkpf1aUFSOw17VPJRhqnr6Wx2qJRgD7A9U2oNefZH+0NRwV8\/k8JC+WB8m9\/e7Hzqjr6VPpN8r4ES12M2rVOZD7pR4amjr7OmaEn6cvG8xiXDbMNsQ2fi6n\/BNHAJVzB9DJoONP\/\/3h4b+VTX8HDSByamYjQYJz49b5xAODYVlzYjPT1lnEvmjpGw30pcN+4ZYX+K1OCIO1OgmUyNNTPdpVH18MZ\/LcKzWjPfv+ZkWrlUdXvRgsHgfhHZNUlgUPjUYnpCaGS6KBJsV1Y6uN1X+O3ikVfJkO3oHbmTxpFBC5GBOCXd09XgoctLSWNz9fulLz9SCJSqo0phQBmRgoU+HG4pO53KDbN6LI+Z8MtaZUHdFcs+BrdXxp2+m9rauxGYu1G6pzTx5K4a1jZlRNfkultX6NrZ6MuOj6OPA6Joz\/c6yK2Nyncc8yd0K6KC5q6ayo6URW4R0K8WkEpcWTYY03m+F8H\/Qy9cHdw4VrX3bPWrWJ+4z+dhjltATQphlMJCrCxM47acvEayqh6xPOIgcaLkfbePtcm0PxEAGxGeRloftwi0sdLlLHtntOWYF7t4UIH0JuScGFkXvKX14Ja2wfJla4FLvTRYXbH6cV+kjtYPlFQcGR+hVIbAx6+DgkG\/gRuRZ5k7ZronDcl2sXWewPaQ1HHZY8WwvT3aNH8iqLtLKOLUkH+9D1O1OfGf03Ym0\/BMX198Zep+CwxfOIi0P2YUHypoTzeHFY\/9\/pGUqMwS+fFpbBFcAmSAItqNaRo8lXhDPBPgUc7wzj3GPhdOQ3vk+aZzy+i9m6CgF1I\/HobGH01NVC+tLz\/pn9mSmZ\/WcDShZ\/XfRORp5M25bZcS92crKc+d5nYZi49LyFfmqM6dUpqq3H9zWEbEFl8fHR2lxGV+3X0whRNyeOopMN0Xg7W0RhAwzD3\/SZy53Nfr++upMXHfD19hViiMf6C6LOzoluMbYz6FvVpOPbSnQk9DgSkbpjWzN4v1go\/oDtMjd\/48SHl3KGIPtbL\/YjYhAxpjVLejTT\/F\/LPRX9bLEXL\/hg40FvkGF3V4pCV1ITIHfQmWN6Ftcb88PKm2piFowmWNKN6wV0um0M\/\/Xo4P\/Y5pPNSzgw0qGEZmCeSa99ljHiC9+Kh11malF7x+Tfbt1g18qFcecnEzIThuODB1O0hZtGq169zt\/cgza0qQ4BYwQqoL9Cf0XXCouX+id3+nicQUnn++CBQtvQS9turTnY1PC3sbpmZWv0Qxt4pFxrPquRPLIZGSWirs0KVvI\/D6x0+UnzLp6+Hv\/L9EvcmzvdFyWymHR4YJruMFXSIaIIAfHf9jWnDZFfSnKTET8e+ouOtcW7aM5\/h6mZ4wLiduP35nlg2ZQfyhCVNW26wKVF4zvfQ3B1uFqoRuM6GSvfSsVmP4\/U1nhvMHg5KHjPTyUV3SUHWr7PrcI8+LCGyawvj0uKDBDS0rx8vc2tpD6uNzVRN77h+iH\/GBd\/WNh7XDwrl8qE5W\/56PX36uDeWUnXia3cp+V5VwvEtO6hrvI9e6e2V6k8ZpjNnyL5dIofn5RheB9LJv1M6tppUmcGM7sRkaTm13QGT5meG324og4P9Wdsu6Rirq\/XbpxSy9uPHz0\/N7VBPS4p12ZaePp4gQ5HCGsdMQ94941MWqn20fzggyK6hhA4nERg6YpX1fCPOBWOG4ykfVPwYTJNlvXuTnB3C6+UhNHenSELaPRMqm1JFjSmNRs5kiNjnJkYM1TF9sx2w4I4yJPVldjhjD2gBIZM8Q1WIRO\/M9f4x7iuvx7WbR8jXvteEfDk395Q0P\/8xsfd+h3MB+D\/KGkE0hfp12\/XXj1XXPjs9mjQcQ2ikmPaGw2aziA0BbvHIS49oLpLzs5cVhukoV+Hv2s1R86cXhM9miTJ+TRSbnjJDBeVZI\/XhUFmaXMRktO1OSXjFWHSQh2+GEEWt+f7HoZuJqRj1OELEDzKQf5AcnmrQ5v3k4tiN6Nv\/7j6fBn1KGlND4tpSy2uXs5MoLO86Q4tJrHDnvFtCSgCeU0BHuTED4ulZNNv5jSh9tPsA08SsqYPH7i\/Fnh+Yrs+EyvFAenOBnXZcG5d69JNq\/7BEB6eUz6QGHnuaEpATgPF9oWJ1NTCDTSvoDU15m\/\/t4VSlHz5qoW6uPXuZqDceuLtBpxWrlsCp\/3V0kD36SBb+iPqUhyPpYOS3OeqkiMYr\/StcXLuaa0AA7wB4rF3yiYJG\/3ASqVeM2ru1rIn5BMSiy9Pjy3dLVccOY1OycgA8qeVfqGgPQ51brd7wou7BtPPmrwZHFb00LpENsOrZerqxuH1rXXBDIgOFPNTnKPhrL7bN37gvDs46hEIS0aDepB+nMTDk2FpJXPk8mDMTrJsZ1zwWWXgGbVBfIRLM+wAF0x6LAPV7j3emBT7Yeo9nG5jOHI7uuJJSkx9vbRiXCkQ4SFdYxHMdqd969Z+7HSC9atBuoaV7uz+vObA80vzwjO\/JvpeBnJIgcdStIeq3\/YSskKMhsFDSoQI13JyffPYlAAZF8KPAtZp3T9yqz9ZNmzQHpZAKTP7Yh8AYdTp+8Mo2FmzxnYvHM\/qmGZ9q08F3\/PeVCgyMv8dZfR1vaCWbzerd2a+OoMvUaB6B\/eGrmrrkpDoF5XpedsF4cJ8nXeQmR\/UIoREDF5EDI9xoOfok31nmpMosRUUdwmshQcLdT6FGJKb4ZLqwR7jhBIL1vjR9IXLAP\/ujI3ff6O1YG+Uig\/rJj1esQ\/PW2OmvnwIEyiMfzmiWP9SV2x78q6knMQQg+EJ2Gz9wNzuf1WSNTqnWSW6RTrC1MvnZhWv7sUQlCPdeOUYolxDMwWEjoayp6NtL8l1ylWN+GSyuuuo\/I50kKedylVmJh2tXWb6c0h5mX0G6PV+5AqQNaRZ4XoYG3pqNzgPRy\/sSPojjir63qtzG7meCS7xr8m4S8QN1zdLhQ4+Lt1bzZcYQAunLPa4hQIWERTJ1ckcpfLzbAMvfnHniXpE4miuVCNzP3N\/i3+1j4RF9pQRUyyPjKYEGVUiY4uxbs7FmX5BwRl+sOL3PcKTBPi5s\/kMurO5sbOJ1TmzvSnlbpiHmn77iI7+UW5GVJdBZ7MHx1BSGf8YBkzPVWAm1NT4cd9z7nm72VNNHdxq1EX7HZNN93ePWB3uknjq6O7g3sSMRIXFpZkF2vkSnH262DP4dttwnPDttYQEtY3TaiVQl9u\/y1iT\/K1T0sMxVo2btuaPuOE8DPP9s9PWryc0Vi7nJG+lMeqXpmuLvWY8d2b6BqAMbEPtktAc6oaJvJYit\/YrgA7ltE\/A82ASofZS60+XmVFPl4h+d4Oxei9iHI2+zFbvowfu9YW6M722PWZTcmRDYI0HiaEU\/wroOzZlPV6cJwQyGYOYS\/QNq389vWMO3uTML2BjYyY\/HynWYQveWWWLCD\/eIR85bftYWKM3KJS85r5B9htdZEp5YvlooaENa7mYPy6mFZ5NrUOmjeyqyHrwnJirerz+XTHsbL4qPGg3o97PEswpOiyBKfJ9BGZDvYsXMDbge1pCoSquz0W2nyQFHn3sT9ChdAj7CNwPjQ3g3G2bj4n4k6rZnPEynwubSmj+MfHDzxcy0hb3USbZlP9sfYRDGs2dl9P3vojJov1qC7\/B4SjRwTXHott5E3JX+sRUD2mGYmUaHoCapK6ORV5DCeTY+jJ9UOVutvj26xGOvNG66ZbJl9tVZgCJkFFX3FVCE1M5F0iMSXbZX9\/nDiCT5g0mAYQ6w3Sh9P7JiF9Q+kJ8GcTxISWRWxFe8UiNqGFGIQOZLPnQuZNIsnL4\/WOp1OTuRLiCqT5ggMBcXkT\/p8WLL4lly9mZzGkvJnhY1I7f1g5rgR6Zf8XCqwWHe+8XLkj2P1BBnx6RrSCZB7yzA2i\/A3jSwC1qgQ1tHKKspsRx2hP63dGi9bGKEHlKvkrkZTrVEIDE6C\/2PW1inq\/R7Ivov5FL6WHCJVIFXibK7skKCEVvZWoSh7OuwPNap+ueQFPJXwYfj5npZyiHWpUjThGa4n1hlfdHZOSHN23rr8RYhSMnAwpbS33GDP0wfZzz+vPOj3+VyIqWM79M170S68+GF+G7I3eFqjjmO0hx7c321OAjm\/x0THHo+SmN33uauSPswq\/W2cj7ILcSAg0OZGW+Y0PKhOm+ARyDMeVWBnVeLRzsM8\/v6VrjdGklPmumZr2V+esac9+M6YENTeFUAVL5MX9JmZIlnxpY8N5G0des59o7v1QHh5+PgCR6BVZw67aDmaAfTk7tkvvUJU\/GcThTeqwjR6B0hft4yYINQ+RowZyuzDUmxEUjKrj4LKJ9TteHMRQIxiYeoyZnJTMso3NsrnZ5eq1L5sBDcTAw1Nodh3+0rLkKSds+3i0PgK997x+UuSYLkqve7ePBH7GlGsqIZYwpDcd6\/ta0Zr\/HvJTQyWyI2sSvQIQ4efDy4\/LNREOHz5qDUmK3EH84JDrgIQJIMeDVnBheD3UAoas8IJTzpkESOID0kmA3OB\/wiV1Ld8Z6rIBFHehCkRhQSDEhQC0wHsyPWHPFxeoM0umbdgK6tqLTJxBT6SxQOH3YiztFMH9xJl47dqByDEXsNdhyYwxoOMkoE3qOqdpAUKE9K2z4004\/Dl0Qf6KfUQD20IrtJqhfi8C1hip2rStRdUKr6Vu19tx\/9fUfaMKEPF\/tXiPNt2iJtOkSDYi3\/N72lVUDSeAC5dS4ZW6SYtkhxXmHJ8T5EmYWjEaMSxJ+PBdzbl7sh73f43dN0rCBtG5xE1qRBfA9Jwu7oNvDAN5akVNYSPQY2oeIjaB6bdTFQM2q1mLBo3kspXU8R3D7RwWgkvdvYAJ0EaP5BmUVnDl+1DCi8mkbecEcXecyxNKW+F2fDzUhhIEd4CI0KIU5+7BA6WqHgAHo0xwKxndFUDwP5Lsfpv7qFgWYICjq2fM9G33KGPWCdJZYdNrXiYmK75VMatiORGAKbdKY6h8NA1m0JNFuVL6Vo2C1BkLmrkH4njVKSVh7nAQaRxQ9yLTGelTiqRN4tRSB6cjmGYDod\/5OHbh4A0irVYdSPryCmtBDHEmVSJRluTspYwLM7Hc9w6XnsnKz\/0S1spa4qtfSBazllCBhTnLeOvER17u8v7SyZFk06a143RXBi3IPC7JOA3TN3iF4YhH7N0WUmNUFTnrdLWG\/eyMSwZk9Vu3KpAiaSvKuAPZPkGkoTXLDPW04Ciuhc6dmBglLGgRQvaBhWS2arAqFa1iBjZbon3QxEHEadG33gZrwZaC1WU3IvWF6Qyz0hGkEWCpQ3j79heUy680H2dpEkcWfoTgfxUnY+O17tsiLRoePAld6TJLY4HD2a4MB35o\/r\/1ZNKwTi0HR74OF90WKTc8O8HduRHCIODmnOTlNaFLRk0RAzEOJmZaW+lgTc9oiY85PsQM7YbmhKi6kVilKrdIL7aTIxleb5AGrPLtIzmQwQgZgT7IkpkLECBg8QxF74grEIXoRCoyEhGCAH+aKDzNu7JVxWYY7ByaQywUSd4hgi5rLg+RuE+NYMMSQBI544x0LGTylWh7RMhu1bqXgi0a1\/bdoRLoADEVfD6JdaYAmao3o1LD7LZEs2p0zz97lCRUuADTTdnrJKk39XraJDIRVVDSBuR+pDkXItJNy59iz95yId3Tc8AiaHyg9xvQzjkEa+UgCP6kVQZNk\/c4p3hmmqvt+6jwd23xiVhsnxexY6+ZwV5fOX3R0KuzWsynmcxEPg6\/I8lSenV\/6f7eHJwoMrVLq\/UCiwLS+3ZXPLNc0kC7RSVfYeBUAkmh4lVVuQAK5FwwWVEv3A7nNKZuCK3n1jAVSntA1V2zw5ZYlfuQxuVtZ5Vmsn3Y910Jecg3R1k7YxWltKdFRivk9ZbWFZvNnXxsDtRUFY6WcKF05UI6IbMC\/PAMR9sCDhGmPxuWAfH5RhnXxM2EUUXdIC8hgkpSr62oC8aplqhYsaRkQQhZAOZ1+dH1HC+AVBDa5ffFhLnve0qZYGAfC7xAQZOICzZR2FGVI5nmA81RCjPtqagy4iANUYqAJ\/ThU1ZRT\/AKr7+sdWtDU5qsFfnYYmG9agtTpawlUlTRApT7xMKIDsLgPRpPELWA6bI0tsJuE\/ZxjW2r8jkHeMmLOAQDg13psie8jEyTa9E5khbRZhAgk9rbavF3ECDg21oUCso1HdpQXq4N5eSVoesqNDwRRnCyyM6EGGmOsYGvLD1VuS9GmaPFwZ0b1oXOocqNdD8wu1AXxJAMqTc83yNtUahIL+\/QtqyopTib1Vutiar7VUj\/dZ8eSiYor9rGdVLSTGas0MP38vYdhARHArJGkanSSToAHpxJYUirZEohLsGDcAcBTOTVFcO3hnI2SSZq\/lqVfcwcw5b60Q6T2dfe5iqNIIjEqnIbCBOtNrqi8GRU4LPGGXWGgp3XZHOcDLwiwdQnxddtgIPdvIWEjNdtJ1Pvsx9CPYRAoK7Ll1ygFGNbtoju7wlWqWvVnRkg8IurLbv\/OVq9dUKExWkyhgFn6oOuYJyqqT+PqPFvE+C3kzl7wfvrns0Et9wttEh6aKaWcRM6G2axvtGlmX8CrlW5LyZsIWnB+nZ4IelYqzwzSqJHf64GtqAOJGc46e6QPMVNXQnTmslc+NoAljxcWFyUGCMTFfUlc7wXrRzsIFMpAJ\/ndUdDmeXAirlEmPPQjISqrlYZlbKLDpRbkSwA5QEzyXto18qlgCFnFfNyCGTo8Fh0wiAmG7JyIQLPnSKosvdhYKKx0qYLYZ72KfdjX+NYuJbjLArK0gy1UGdQzXENZiKaafpI9BCjUk46n6rBuT8GkE\/wvuY27XW1nHOm+wavHXMPLA\/pQPJB1BLEwhQbHsqzI6Xso3HM+R6V642hXtR7a\/BFK2neNHGaGZ9nrZrdarkEBam4FAV3nxRJ1dDSltPOIsWA1+QNjoiCKOkUiwFdflGELdLZ3reJD2zjfZinLs\/TaSMQboGdezMH1f5Onri+0T7EZiaTR0T6riQL4aGol0lMj0tShFVZ+LEI2aZIa\/cDAA9XpzEzO8fEq5hAWDPrafFpQ0\/qn1dUakGCRCkrog3eSh4S6cmF1rUiMywwdvLtDE1VT1ArpFTl1yip5AxIELHQDvkhQiorIkjlT2uBeHjrfB+posB8KitMMPZaWdtZ7AzikvoAJGu1al8yJuH\/heLW4NKQ6ECwmG7KsWMVSutnG6NZDvF4V5vhNvXuFQeiw3Wjx9DfSi\/3P8LiJFUVr5gpT0fpeP3zSq909Jr3c1TrCozymvmK2TI6y3l7eH5akTdSBgWcdUroEP5+BBADTOezFDreIwzVamhs6ZeRCmSYUCKziPJejz2v1mj9rQTr1XJRi6pEjlx63KM0GBQQcunVoWUVxiZvGlpYD0TQZJLRVpWNVwmaar9ERcEDKUH7HXz1FI3n9Nw9T8ptSkuxVf2o\/8XJzt3\/19B9o9Yw1BV9oYPuPMSqzgJSG2ntPHqzGmK\/YYbjslPBM131WK0aevs5SQYWZ\/84vqeB+5fop\/XQ1fH0vK3+227QbFHzLorDWWK5mD+XgQcL7v5sx19lcjoEd9\/WIXqVdeGm+F7nRZrp94mqPmV6P4shCVNYBGzMwk7FvXhY\/tZWrAu9DpKKC19aHPjciK+0Op45QGvPO9PTyErk4tH7ty+fP7h3+9b1qxfPn\/o6UrB6ROZ+ZxgNC3eJTieywT9GjKeE1Fl0PQmwkZ82Us6MhlroPTM8XORsaf\/\/SvEAz05a11FzkJOOroUDTTeHvCiBDS1vIm7gk7DVQWp320wAgBGnc+i4s64H4AxnUtaCP9m+A73ZDjV8MvkNrUxU9V16Cc0ra7XQ+ydRtzaUeRaLxnkkNnFhmdJ\/BlsxCXKYjcnI0tbz3KGElT6IT61jEZ8+wcnRgR0mqxg7FXJzq04bmPr6VFPezMliRb\/CFljM7msUT+js4lllngPrWZ5gaVsZWn01i1jsxcvPdKsFOlA2GbdBAszENcc4PtwfwCo2XUk56yovc7DuA2IOnrgmTPxHtjNGc+Xl6\/cNg\/ZhkfQ8bfnJyIpH1GDXmtJKn8\/g7CJVGBoEwix8rvsTNb7ls+ZRd3B7g+GrC3NzKOdM5QmeK6rRNM6eUW\/WGZqG5Ix6mXHTMNYs3m3OZ9OW1UxSJvxp3Z\/7kpNcU3\/oLSi8a4i7+UgKMIQDdky5iE8CVX1MFwf3fh4jR0e5T7oyn3+TztVoONNB71kiS7x9w1QYhs9faqmqF4soAhbb9\/5u1qtlNI9mbVPLMs9ShAh9yaRr\/4biqxhs\/fIE3cCgzVmsMTroNTbFeJ1Nl1tV28Sbk25V5R3icL8VSdfU3hF+Qs5wleOsJbidSwH5vidwVrtEDMFhcA0cHbUxdaaC52cZQbWle8gGDGjJlpkcLNE7+l6QjsifPq9w79BFtCEO7QaLEftwNPEc52enx4fbdU51eWIYb\/5vpvGnmEnhBwP4CcBGV7vBmviWI8617CEM1kAwW2i\/muEEBP9B\/nm2mm99yc+9fO2y\/J2JgPEP5H0IcyL5LwHay7ucizX8DiIoaFkQr1MDIAIPPGfBLxIevROd+us9QZ4oG9O3ReiZe5QPQky31uz+hPihrD\/hjMppDoWnMJOcP6N\/y0z\/S+f2lCMK5K6o4o8QIC+3DsHvZ0mIW911VOutrnPuTbaeczanREvMHpgU+IHWIsR38u\/PMQKiKscpA3qID+zJXQdZEi4+khDdJwiAhDb4b6Najpxy\/E8yQwEAwMmdxOY\/64qTf8afE3W3HQPWSwwIjTGf\/XsA9UYQdHfPA3RYqD2efuWHG+2E+WsK8lxl\/8ihDnhFn247KvRMYByj9QuCmn1Eu6sTCgsstVeSMgSfX9b6G9ugBLjReBP5aHv8tcTHjT\/1wSxJiOqgf8Gw9HV9ZEVobODuZZuojepliqy8I582FVJFwZAC2Gbm9rwQ0Ns+u0EyJV3okQoZ0wXlQ7rIbel66lrEamVzIsP28BEYKqcJQjc4tqq6Kf\/\/G7V2hyheI0+qaFAwUpBFFiAqHjJx\/ZOR3yK5qqGEHX8Fqg2KG9QNttWMa4obLxNbbw9aDZ42fb6vi4HAbw73aGF7XtXAUXDv\/oDPmIF6\/\/uZrutyAnuVBseVz057WKaQAvT4tmtmQRBTpcd+ABxXSoUQgNX9kIRNDgDcD9B\/NtLGJGaaHh7CRXh\/CNF9P0S4XFQPMdGLwSEStXgdIisq2EMUXoV3WvUQa9Elpx4eTUR9wd2wEbPG9OrWY4LBxcEpmqGCxJ1dhVpFR+wwbMJwV4kxkPp4pV2oK9XkJfVA\/phxhgBpHEgjRGEcO7tuvVwjk9qELZ5w2CC7Ka1WqyFxacpc224QrlIg\/EiZTt23MjCy1imM47gmXrbi+bLFC1UIfS3GcUbGrlU6jziu17AhAWRDJEvZtDRMSQO3la6HUmk8yL0WApA1rE3+7hPGpZDYVkWBZch5pQPKkARl9oWRSV+8UIyRQIGIZciSjiek8g53ydMIIYyUSxqopXZKGgrZnToYJgPuwGORiZCPlMtVYHctNlI+JL28QAoOKUUb\/IIUKg3NI1Jak0DppdFqMzCqTicL4QBoK1Vpn6NxXBFCrHHtZOMRafxWxuUpYan4vt\/NrliWAjGTOzxLd1Idls5\/xbmyMEEgzM1x8v9W1b+agOz8E9x6pQGC+svOyqOqjb3X1uxKQT89iZekQRNru7U1hfkvKg7iEXHKSZE9UjHhemSstgAZdxJCWyOOK9obAlECTYbQLgdpZ+I7ljgN7iBvmryXmMH9lo4lpWjwL\/83H1LDHeNzH0zKIMhYBAAA\") format(\"woff2\"); }\r\n\r\n.lusarev-map-container {\r\n            width: 100%;\r\n            height: 60%;\r\n            position: relative;\r\n            display: flex;\r\n            flex-direction: column;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n        }\r\n\r\n        .lusarev-controls {\r\n            position: relative;\r\n            background: white;\r\n            border-radius: 8px;\r\n            box-shadow: 0 2px 6px rgba(0,0,0,0.1);\r\n            width: 100%;\r\n            padding: 15px;\r\n            box-sizing: border-box;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n        }\r\n\r\n        @media (min-width: 768px) {\r\n            .lusarev-controls {\r\n                position: absolute;\r\n                top: 20px;\r\n                left: 20px;\r\n                z-index: 1000;\r\n                width: 300px;\r\n            }\r\n        }\r\n\r\n        .lusarev-title {\r\n            font-size: 24px;\r\n            font-weight: bold;\r\n            margin-bottom: 10px;\r\n            color: #545d5c;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n        }\r\n\r\n\t\t.lusarev-subtitle {\r\n\t\t\tfont-size: 15px;\r\n\t\t\tcolor: #B98D58;\r\n\t\t\tmargin-bottom: 15px;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n\t\t}\r\n\r\n        .lusarev-select {\r\n            width: 100%;\r\n            padding: 10px;\r\n            border: 1px solid #ddd;\r\n            border-radius: 4px;\r\n            margin-bottom: 10px;\r\n            font-size: 14px;\r\n            appearance: none;\r\n            background: url('data:image\/svg+xml;utf8,<svg fill=\"%23000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M7 10l5 5 5-5z\"\/><path d=\"M0 0h24v24H0z\" fill=\"none\"\/><\/svg>') no-repeat;\r\n            background-position: right 10px center;\r\n            background-color: white;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n        }\r\n\r\n\r\n\t\t.find-closest-btn {\r\n\t\t\twidth: 100% !important;\r\n\t\t\tpadding: 10px !important;\r\n\t\t\tbackground-color: #B98D58 !important;\r\n\t\t\tcolor: #f9f8f4 !important;\r\n\t\t\tborder: none !important;\r\n\t\t\tborder-radius: 4px !important;\r\n\t\t\tcursor: pointer !important;\r\n\t\t\tfont-size: 15px !important;\r\n\t\t\ttransition: background-color 0.2s !important;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important;\r\n\t\t}\r\n\r\n        .find-closest-btn:hover {\r\n\t\t\tbackground-color: #545d5c !important;\r\n\t\t}\r\n\r\n\t\t.lusarev-select:focus {\r\n\t\t\toutline: none !important;\r\n\t\t\tborder-color: #B98D58 !important;\r\n\t\t}\r\n\r\n        #lusarev-map {\r\n            height: 70vh;\r\n            width: 100%;\r\n        }\r\n\t\t\r\n\t\t@media (max-width: 767px) {\r\n            #lusarev-map {\r\n                height: 60vh;\r\n            }\r\n        }\r\n\r\n        \/* Popups. zeromaze-map builds the popup box itself with inline styles and\r\n           no class, so we style it by its content (:has) and need !important. *\/\r\n        #lusarev-map div:has(> .custom-popup),\r\n        #lusarev-map div:has(> .user-popup) {\r\n\t\t\tbackground: #B98D58 !important;\r\n\t\t\tcolor: #f9f8f4 !important;\r\n            border-radius: 8px !important;\r\n            padding: 10px !important;\r\n            margin-top: -10px; \/* engine offsets popups 34px up, lift clear of our 32px pin + tip *\/\r\n            text-align: center;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important;\r\n        }\r\n\r\n        \/* the little tip under the bubble (Leaflet's .leaflet-popup-tip) *\/\r\n        #lusarev-map div:has(> .custom-popup)::after,\r\n        #lusarev-map div:has(> .user-popup)::after {\r\n            content: '';\r\n            position: absolute;\r\n            left: 50%;\r\n            bottom: -6px;\r\n            margin-left: -6px;\r\n            border: 6px solid transparent;\r\n            border-bottom: 0;\r\n            border-top-color: #B98D58;\r\n        }\r\n\r\n        \/* the location dot is centered on its point (not a 32px pin), so sit lower *\/\r\n        #lusarev-map div:has(> .user-popup) {\r\n            margin-top: 18px;\r\n        }\r\n\r\n        .user-popup {\r\n            font-size: 14px;\r\n            font-weight: bold;\r\n        }\r\n\r\n        .custom-popup {\r\n            padding: 0;\r\n        }\r\n\r\n        .custom-popup h3 {\r\n            margin: 0 0 2px 0;\r\n            font-size: 14px;\r\n            font-weight: bold;\r\n            color: white;\r\n        }\r\n\r\n        .custom-popup p {\r\n            margin: 0;\r\n            font-size: 13px;\r\n            color: rgba(255, 255, 255, 0.9);\r\n        }\r\n\r\n\t\t\/* zeromaze-map has no zoom control, these buttons replace Leaflet's *\/\r\n\t\t.lusarev-zoom {\r\n\t\t\tposition: absolute;\r\n\t\t\tright: 10px;\r\n\t\t\tbottom: 28px; \/* clears the OSM attribution strip *\/\r\n\t\t\tz-index: 4;\r\n\t\t\tdisplay: flex;\r\n\t\t\tflex-direction: column;\r\n\t\t\tborder-radius: 8px;\r\n\t\t\toverflow: hidden;\r\n\t\t\tbox-shadow: 0 2px 6px rgba(0,0,0,0.1);\r\n\t\t}\r\n\r\n\t\t.lusarev-zoom button {\r\n\t\t\tbackground: #545d5c;\r\n\t\t\tcolor: #f9f8f4;\r\n\t\t\tborder: none;\r\n\t\t\twidth: 36px;\r\n\t\t\theight: 36px;\r\n\t\t\tpadding: 0;\r\n\t\t\tfont-size: 18px;\r\n\t\t\tfont-weight: bold;\r\n\t\t\tline-height: 36px;\r\n\t\t\tcursor: pointer;\r\n\t\t\ttransition: all 0.2s ease;\r\n\t\t}\r\n\r\n\t\t.lusarev-zoom button:hover {\r\n\t\t\tbackground: #B98D58;\r\n\t\t}\r\n\r\n\t\t.lusarev-zoom button:first-child {\r\n\t\t\tborder-bottom: 1px solid rgba(255,255,255,0.2);\r\n\t\t}\r\n\r\n\t\t@keyframes pulse {\r\n\t\t\t0% {\r\n\t\t\t\ttransform: scale(1);\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\t\t\t50% {\r\n\t\t\t\topacity: 0.0;\r\n\t\t\t}\r\n\t\t\t100% {\r\n\t\t\t\ttransform: scale(3);\r\n\t\t\t\topacity: 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.pulse-ring {\r\n\t\t\tanimation: pulse 2s ease-out infinite;\r\n\t\t\ttransform-origin: center;\r\n\t\t}\r\n\t\t\/* Category Container *\/\r\n\t\t.lusarev-category {\r\n\t\t\tmargin-bottom: 20px;\r\n\t\t}\r\n\r\n\t\t\/* Category Headers *\/\r\n\t\t.lusarev-category-header {\r\n\t\t\tfont-family: 'Outfit', sans-serif;\r\n\t\t\tfont-size: 16px;\r\n\t\t\tfont-weight: 500;\r\n\t\t\tcolor: #545d5c;\r\n\t\t\tmargin-bottom: 8px;\r\n\t\t\tpadding-left: 2px;\r\n\t\t}\r\n\r\n\t\t\/* Select Dropdowns *\/\r\n\t\t.lusarev-select {\r\n\t\t\twidth: 100%;\r\n\t\t\tpadding: 10px 30px 10px 10px;\r\n\t\t\tborder: 1px solid #ddd;\r\n\t\t\tborder-radius: 4px;\r\n\t\t\tfont-size: 14px;\r\n            padding-left: 45px !important;\r\n\t\t\tappearance: none;\r\n\t\t\tbackground: url('data:image\/svg+xml;utf8,<svg fill=\"%23000000\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M7 10l5 5 5-5z\"\/><path d=\"M0 0h24v24H0z\" fill=\"none\"\/><\/svg>') no-repeat;\r\n\t\t\tbackground-position: right 10px center;\r\n\t\t\tbackground-color: white;\r\n\t\t\tfont-family: 'Outfit', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\r\n\t\t}\r\n\r\n\t\t.lusarev-select:focus {\r\n\t\t\toutline: none;\r\n\t\t\tborder-color: #B98D58;\r\n\t\t\tbox-shadow: 0 0 0 2px rgba(185, 141, 88, 0.2);\r\n\t\t}\r\n\r\n\t\t\/* Location Indicators *\/\r\n\t\t.location-indicator {\r\n\t\t\tdisplay: inline-block;\r\n\t\t\twidth: 10px;\r\n\t\t\theight: 10px;\r\n\t\t\tborder-radius: 50%;\r\n\t\t\tmargin-right: 8px;\r\n\t\t\tvertical-align: middle;\r\n\t\t}\r\n\r\n\t\t\/* Color scheme for different location types *\/\r\n\t\t.location-indicator.delivery { \r\n\t\t\tbackground-color: #4CAF50; \r\n\t\t}\r\n\r\n\t\t.location-indicator.restaurant { \r\n\t\t\tbackground-color: #3f7bff; \r\n\t\t}\r\n\r\n\t\t.location-indicator.chain { \r\n\t\t\tbackground-color: #F6AE2D; \r\n\t\t}\r\n\r\n\t\t.location-indicator.shop { \r\n\t\t\tbackground-color: #ce6a5e; \r\n\t\t}\r\n\r\n\t\t\/* Option Styling *\/\r\n\t\t.lusarev-select option {\r\n\t\t\tpadding: 8px;\r\n\t\t\tfont-family: 'Outfit', sans-serif;\r\n\t\t}\r\n\r\n\t\t\/* Hover states *\/\r\n\t\t.lusarev-select option:hover {\r\n\t\t\tbackground-color: #f5f5f5;\r\n\t\t}\r\n\r\n\t\t\/* Disabled states *\/\r\n\t\t.lusarev-select:disabled {\r\n\t\t\tbackground-color: #f5f5f5;\r\n\t\t\tcursor: not-allowed;\r\n\t\t}\r\n\t\t.lusarev-select option {\r\n    position: relative;\r\n    padding-left: 25px !important;\r\n}\r\n\r\n.select-wrapper {\r\n    position: relative;\r\n    width: 100%;\r\n    margin-bottom: 10px;\r\n}\r\n\r\n.select-color-indicator {\r\n    position: absolute;\r\n    left: 10px;\r\n    top: 50%;\r\n    transform: translateY(-50%);\r\n    width: 10px;\r\n    height: 10px;\r\n    border-radius: 50%;\r\n    pointer-events: none;\r\n}\r\n\r\n\/* Color indicators for each category *\/\r\n.restaurants-indicator { background-color: #3f7bff; }\r\n.chains-indicator { background-color: #F6AE2D; }\r\n.shops-indicator { background-color: #ce6a5e; }\r\n\r\n\/* Style for selected state *\/\r\n.lusarev-select:focus {\r\n    outline: none;\r\n}\r\n\r\n.lusarev-select.active-category {\r\n    border-width: 2px;\r\n    border-style: solid;\r\n}\r\n\r\n@keyframes markerEntrance {\r\n    0% {\r\n        opacity: 0;\r\n    }\r\n    100% {\r\n        opacity: 1;\r\n    }\r\n}\r\n\r\n.marker-entrance {\r\n    animation: markerEntrance 0.5s ease-in forwards;\r\n}\r\n\r\n\/* For staggered animations when showing multiple markers *\/\r\n.marker-entrance[data-index] {\r\n    animation-delay: calc(var(--index) * 50ms);\r\n}\r\n\r\n\/* Ensure SVG is optimized for animation *\/\r\n.custom-div-icon svg {\r\n    will-change: opacity;\r\n}\r\n.select-wrapper {\r\n    position: relative;\r\n    \/*padding-left: 35px;  \/* Make room for the marker *\/\r\n    margin-bottom: 10px;\r\n}\r\n\r\n.select-wrapper::before {\r\n    content: '';\r\n    position: absolute;\r\n    left: 15px;\r\n    top: 45%;\r\n    transform: translateY(-50%);\r\n    width: 24px;\r\n    height: 24px;\r\n    z-index: 99;\r\n    background-repeat: no-repeat;\r\n    background-position: center;\r\n}\r\n\r\n#restaurants-select-wrapper::before {\r\n    background-image: url(\"data:image\/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 32 32' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M16 2C10.477 2 6 6.477 6 12c0 6.5 10 18 10 18s10-11.5 10-18c0-5.523-4.477-10-10-10zm0 14a4 4 0 110-8 4 4 0 010 8z' fill='%233f7bff' stroke='%23545d5c' stroke-width='1'\/%3E%3C\/svg%3E\");\r\n}\r\n\r\n#chains-select-wrapper::before {\r\n    background-image: url(\"data:image\/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 32 32' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M16 2C10.477 2 6 6.477 6 12c0 6.5 10 18 10 18s10-11.5 10-18c0-5.523-4.477-10-10-10zm0 14a4 4 0 110-8 4 4 0 010 8z' fill='%23F6AE2D' stroke='%23545d5c' stroke-width='1'\/%3E%3C\/svg%3E\");\r\n}\r\n\r\n#shops-select-wrapper::before {\r\n    background-image: url(\"data:image\/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 32 32' xmlns='http:\/\/www.w3.org\/2000\/svg'%3E%3Cpath d='M16 2C10.477 2 6 6.477 6 12c0 6.5 10 18 10 18s10-11.5 10-18c0-5.523-4.477-10-10-10zm0 14a4 4 0 110-8 4 4 0 010 8z' fill='%23ce6a5e' stroke='%23545d5c' stroke-width='1'\/%3E%3C\/svg%3E\");\r\n}\r\n    <\/style>\r\n\t<\/head>\r\n\t<body>\r\n\t\t<div class=\"lusarev-map-container\">\r\n\t\t\t<div class=\"lusarev-controls\">\r\n\t\t\t\t<div class=\"lusarev-title\">\u0548\u0580\u057f\u0565\u0572\u056b\u055e\u0581 \u0563\u0576\u0565\u056c<\/div>\r\n\t\t\t\t<!--<div class=\"lusarev-subtitle\">CHOOSE<\/div>-->\r\n\t\t\t\t<!-- Restaurants Dropdown -->\r\n\t\t\t\t<div class=\"select-wrapper\" id=\"restaurants-select-wrapper\">\r\n\t\t\t\t\t<select class=\"lusarev-select\" id=\"restaurants-select\">\r\n\t\t\t\t\t\t<option value>\u054c\u0565\u057d\u057f\u0578\u0580\u0561\u0576\u0576\u0565\u0580<\/option>\r\n\t\t\t\t\t\t<option value=\"horeca\"><span class=\"location-indicator restaurant\"><\/span>\u0532\u0578\u056c\u0578\u0580 \u057c\u0565\u057d\u057f\u0578\u0580\u0561\u0576\u0576\u0565\u0580\u0568<\/option>\r\n\t\t\t\t\t<\/select>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<!-- Supermarket Chains Dropdown -->\r\n\t\t\t\t<div class=\"select-wrapper\" id=\"chains-select-wrapper\">\r\n\t\t\t\t\t<select class=\"lusarev-select\" id=\"chains-select\">\r\n\t\t\t\t\t\t<option value>\u054d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\u0576\u0565\u0580<\/option>\r\n\t\t\t\t\t\t<option value=\"all-chains\"><span class=\"location-indicator chain\"><\/span>\u0532\u0578\u056c\u0578\u0580 \u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\u0576\u0565\u0580\u0568<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Yerevan City<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Tsiran<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u057d\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>SAS<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Carrefour<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab88\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>88<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0566\u0578\u057e\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Zovq<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Chinar<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Parma<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Evrika<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator chain\"><\/span>Rock Four<\/option>\r\n\t\t\t\t\t<\/select>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<!-- Individual Shops Dropdown -->\r\n\t\t\t\t<div class=\"select-wrapper\" id=\"shops-select-wrapper\">\r\n\t\t\t\t\t<select class=\"lusarev-select\" id=\"shops-select\">\r\n\t\t\t\t\t\t<option value>\u053d\u0561\u0576\u0578\u0582\u0569\u0576\u0565\u0580<\/option>\r\n\t\t\t\t\t\t<option value=\"all-shops\"><span class=\"location-indicator shop\"><\/span>\u0532\u0578\u056c\u0578\u0580 \u056d\u0561\u0576\u0578\u0582\u0569\u0576\u0565\u0580\u0568<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0561\u0563\u0578\u057c\u0561 \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Agora Market<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0561\u056c\u056f\u0578\u0570\u0578\u056c\u056c\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Alcohall<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0561\u0580\u0574\u0561\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Armat<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0562\u0561\u0580\u056b\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Bariq<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0562\u0580\u0565\u0576\u0564 \u0561\u056c\u056f\u0578\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Brand Alco<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0563\u0565\u057e\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Gev<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0563\u0576\u0578\u0582\u0576\u056b \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Gnuni Market<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0564\u0575\u0578\u0582\u0569\u056b \u0586\u0580\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Duty Free<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0565\u0580\u056b\u0581\u0575\u0561\u0576\u0576\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Yeritsyanner<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0566\u0561\u0574\u0562\u0575\u0578\u0582\u0572\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Zambyugh<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0567\u057d \u0567\u0586\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>SF<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u056c\u056b\u0564\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Lider<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u056f\u0561\u0575\u0566\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Kaiser<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u056f\u0565\u057c\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Keras<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u056f\u0565\u057c\u0561\u057d\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Kerasi<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0570\u0561\u0575\u056f\u0561\u056f\u0561\u0576 \u0561\u0576\u056f\u0575\u0578\u056b\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Haykakan Ankyun<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0573\u056b\u0577\u057f \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Jisht Market<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0561\u0563\u0576\u056b\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Magnis<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0561\u0563\u0576\u056b\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Magnit<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0561\u0575 \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>My Market<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Market<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0561\u0584\u057d\u056b\u0574\u0578\u0582\u0574\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Maximum<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0574\u0578\u0582\u057d\u0561\u056c\u0565\u057c \u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Musaler<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0576\u0578\u0575\u0561\u0576 \u057f\u0561\u057a\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Noyan Tapan<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0577\u056b\u0577 \u0561\u056c\u056f\u0578\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Shish Alco<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u057d\u0584\u0561\u0575\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Sky<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u057e\u0561\u0575\u0576 \u057d\u0569\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Wine Store<\/option>\r\n\t\t\t\t\t\t<option value=\"\u00ab\u0585\u0570\u0561\u0576\u0575\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\"><span class=\"location-indicator shop\"><\/span>Ohanyan<\/option>\r\n\t\t\t\t\t<\/select>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<button class=\"find-closest-btn\" onclick=\"findClosestLocation()\">\r\n\t\t\t\t\t\u0533\u057f\u0576\u0565\u056c \u0561\u0574\u0565\u0576\u0561\u0574\u0578\u057f <img\r\n\t\t\t\t\t\tsrc=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQUAAAAyCAYAAABVns4wAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAALiMAAC4jAXilP3YAABW9SURBVHhe7Z0LvBVVvcdn9gGhfCRXM818lcCNAlEzQdFK4gBq5CNIHtJDsbR71bRMU+N6uWp2rRRNMVGDg88UxTQQCdIIpDR5KJRp5RMK8VnyPHv6\/vasczxz5rFn9szeZx+Y72f\/P2vW67\/WrJm9Zs16jZU1T84Y0n\/V1BE7GmtOTk4no2DMzGhw7CM2dFs\/0FhzcnI6GZlXCkXbGmjbdl4p5OR0UjKtFBzHsjGOsB0rrxRycjopmVYKS+865oOWY+\/p2PYnJk7MvhWSkx7HcboXi8UPGmtOjo9M\/7j2xs0DbNviZ+1yYq\/GXsY5p46gUjgHYxHmdq5LTo6XbCuFgj3aHFpFxx5nDnPqBFoI22Ocbdv2PlQKX3Fdc3K8ZFYpLJ0x7BSME1xbiXNXNA39tDnOqQ9OpUJ4vzk+j4qhqznOyWlFHYMVs6xp2Icsq3kAakbz0nA8Tl59jrUFl5u5EWdt2WD9\/qBT5qw1Pjk1Rq8LyHNcC66ZC\/ZTCoXCzcaak1PCpkl5ITdK2ScGN9D9T90+zHaK9qCipWFH53DbsvfEK1bF4jiWQ8Bnbcv5rVUoLHaKziP9xs3ZAa\/PuSHCIe03uXl\/bKyJ4RwP4xwbjTUU0nmbdH5orLEgjo304fBI5ECkJ7IX8h\/Ie5FNyNukv5pwf8V8GvNx3BaR1muYNYEyUCvhRmMtQT5USfRGmo1TakjnW+jTdc0U8vpPjHXI8+hfiawpeVQAugZhfNa11QbSnMv1XmSssnfBuMi1lYfwq4l\/g7Emgrg9MM5ybdEQdr0qhW9xfAGFrJs4EALehnHJopsHrX7vdjsM6NJgDygWVTFYn8R9l1KgMlApvEKF8BhHjxVta9HqdQ2PDz9z9n7ovoy01coIBP81+E9EfmqcEsM59sO4HB1Huy5+SOcVjEkU\/BTXJRp0fgDja8iX0btfyTEBpEfdalEe1r3IHaT7ktyrAWl1QVaRz\/2NUyu4f4m0pxtraiiXMzH0oNnNdakO5PtvGA8gM8j\/kpJjTMjjARiXksdjXJfqQ36XkE9a1S7YG5D\/4\/As8vEe1zUYwr2KcRHxK6oUOF\/NMJ6EnEFaoQ0A0lGle0XpKU8kVQqX6bg9BHwRv30Qxzi1onkJK25r7N3cbI2xC\/a3UdbdeLk41qs0DyZ1aW6+7+NfmveCcfWAfjVr30S\/N64Bv3MojIpbCS2YgnmNdFRD+yCd00jH8yQNAj3dMM5HzkOXWgKpIW1VEHOQn6BzDiJ7ZpDn0ehUxe6DtJ\/Brw+SWWtBZYlR0Q1cCaT3KPnXn2upcSoLcboiuu8i\/5AZcwTpLTTHJcjDIGQ+7lF\/1pHcm3cba8VwH9xEOl81Vg+k8TrGIaTzXEtH4xvGDEJNX1+FIGgpOP3Gzv3jgePnfs+2ikOpJLYYL1KxXi10sQf0H\/fQ5LAKQaBbzevNri0Q1ZKpIZ0NGFHp\/MOYoVCoei1YhK7\/QTKpEAS6CsjRyINcnFWkcy4yHnkYSXXTok\/X+LuuzQ9p9iLMKGPNBPS9aQ5rAudwJGkuoazUcosFcXQv\/Mu11QbyqOFgD+RDlcQVri0U3XepIG01APq7tkAuU4Wgg8xGHw4Y9\/CjjuVMNVaraDmX9h09p5TI1gA3nC7MQi7iQa5LddCfFLkSmYZ1HRdqvetTGdwMx6Lr48YaxkWEy3R4utZwjpp3cT3XKfBJWCeMIH++Vzj4f8pfTfcwTse\/wRxXBPGPoowC71381IJufW3O9EagPTHLHDrNxeJMc9zpodB0w82k4PZ2XYIhnFiDLERmIncg9+D1COYLSOwmOmH1JJvo2ioDHXo6XOjawuG8+hB2pLF2WjgPne+1nMuHXZf6guzpj322a3sXKv63MK5ybX6I15NzOs5YKyW0tQjXkYY6cku09CmcjuN1JZd2kJmVZPpjxhrJypmDd9n0TsM\/bMte3W\/sQ3vp9cJ4RUL6b5F+4HJr0h9P+k3GWjHoiXyHVKGTTkul5oH86X019KIRV52E1xDmLkQdYIEQbmfkcA7V4XkCYXcveQQzDf8vm+OKIN+D0THPWCMhXysI2x9J3Z9Bul9Ezx3G6oF01uLX2uFWDsLrNU2953sQT5XXURwfznHoA40wN3EtTzXWUMin8rKrsXpAh0ahFru2TFCfwRHIyaSpPjq9w7dCeu9DNDqlc\/WBn6ejMgmc56EYi9Fd+r+3Bb2qDPZBt3ckjEhqngSC39MmWCyWzRj6p6UzGhO1EkjjLZOcD\/xONsFSgaqu6HrH1eoHv8+boB7w6oKfnvKB4DcT0UzBRBBV+RmFLHM1vQtuGzD2NUErBj3zXY2xyaS1QLpfNPp84LfaBKsY1PRHz59djX7wew0jsEO5LYRb68bwg98XTLBMQe+FyBnG6gH3iSb5QPBXpZIY4t1nVPjAzzcEX433yIW242RZw3YolNtBVLCBHT34qVUwmlo2cYcVOjcTTy2Lg9BzNrLReIlbcA9tccSBi60l7J8x1lZIJ7T1htd3Ed\/TpN7gvDTK8HnyGtiqwb8Hfh8x1rqCa34pEtgqJ9+TMaI6ac8zZmy4D9TKD5wLRBmp870GlYJjLdY8BGPbGjjYmEEs4AK3\/TMnhhuhGR1Xc9jydFXHosaU0xLWlzCVNP5ijj2Ql\/74pX13rQmU2UqMP7g2P5xL6h77WkOeX6f8dS+EcTR\/8o+a47icj96w\/\/k0ylHzczxkXikUutgLtl\/XoBl7WwtRk3D2MGZquHD3Y\/wJmRJ0oZLAjaPJOb6JWtxwGjK+HImatamRiLpvLRhCX0U60Tm0ZzJ5f9scezB\/bk02jAX3gSbVneTavJCGOrIDh0IzrxQ0DNnrrDmpnp51RlTHWyOFexqSarhIcMHVrNeryiWuSyo0GS3oT3EnFY46s35GngPnf+Cn15ljjbXeieqoTVWxdhRcHw1N6jUijDH82eM+jL7N9QzrWyndC+bYQ\/avD1sZFOqL5tAHfiq\/G\/gTvcCFug25BPk69pGYQ5BDEA0n7YqUrTi4SOvRmWriD+lpHwtfhyHpq9JRK0H5fgfjGh2H8D1j1i2cp8b7A1\/tOFWd37OurbaQdoG8aQJa68KzCrgaPYH9VFy77kjZdQzEV4UZuDwePw2Nl+6FIEpPE04gkyHJSiH9uh2SJG9aMPRHY60IdOsPqRaHmrvqQPwzsgJ5DN1PIJrVmQnkdyr6tIzdA1mYxfm19hdgV0WlxUWBMzPxG054Tb1ODHmIGpJcg95Ur13o185RvyCNsMk4nnMNAz1RQ5I\/w4g9bdqgp3I\/dI4n\/t7kIfSBUg7ifx\/jO67NC36vk8beSOvcgvZwblfgH9gxSfx7yVvbbQ78oCCzIclKII16HpLUorHFbqjs0bkjtyKDsaZ6Dyb+3ujZVFLcDty1eM0DbtcYbx\/4abFWRRA30yFJounpuycyHJmMRN0vRQytgiwLQUOHJNOC7lQdncTfDYm6X31TplvAuwf+b7ohveAuPmGCBpK\/PpSB2lZP+XMoz3fXdWQI+ndExiDzSONxLtinjFdiiH8uenwLa3Cfz5Phd8baCmF\/jF\/gLEv8DiUvQ4w1S96PXr1uxZGXEM052ER+XkJ+ifw3EvVdkSn4exYddUa4XlqLc71rC+QsyiVscd83KIOdjLU989BdfiCAgs9bCiEthRbwPxVpNsGrhtJALucwUYVNnA8ggeeH+2ATzAd+moodCH4V\/bmIF9pSqCakew9G2b1BWiB83bYUBGp2R0\/UPevb8hC37cPOC3ehfT8iqZeWQuiEmnqB2lWLvY6mbENXfGYBNbxWTJ5POrH2dWhD4Lp89PyOvP\/KWH0QR4txAssfv8O5iUIrlHqB7G9ELiK\/I5GolbCdCs5FG8lELec\/l\/Nu\/8qpzXQC+0lAG\/s8ao5DqZdKIWrpdq0oO4xKgT6E8Z9ciDORFUjVKjMu7ATUx1r7QDjNl\/+Ga\/OCntBeZoH\/ExgLXJsf\/C82h3UH570e0XZ\/fbg22jQls30o0KvXlpcTyitIZp3GhivQqZmHPjhfTTZrfcWjAtdeH1HzGC41ZnlQ1tGvD78xyfnAr+zCljigajt06SYKBL++JmhsiPZh4k1ApiCPInoP\/heyxdWaDvToRiu7FTvhLnRjeMFdFVfZzkvCab5FKPj7pktHQfiojsYtyMvIWuR15J9yM96RKByiMr4XORWnnU2SFYGOzNc+EO9DyNtIZjMq0RXVIdy64I3jU4yzD\/z+gBG\/I5sIHV0pTDHJ+cAvkzFzVO2KLvVM+8BZC5Ay+Q4CerTN1g7o3AP5GDIQ0ZyFE5CvIOch1yGPIZuVfhSEiezrIIjSetUN7QX3WNvsE1S9+0vdWH7wi7XSsgXCxx59wEl7XO6M+1HIlYietoHgp5GaCxA9EVODnqosiCKuRkkSL5ILA117IbpHfeAuDuRQC\/eecV0DSbbYDWUdXSmcbJLzgZ\/24UsNeoYblT7wq3j4LQ0kvS9pa6+FUPD\/gQkeCP5aTOUD9+cwYs+0JPwYN2Yw+MdeoUfYiockCaIWnXrW3yhFCAD\/ZYg2yE0FOqpSKVQD8nOdyZoP\/G5HRhmrD\/xWYSSbdUukjq4U1HMe2ITEfT0SuqlsXNBxs1HpA79Y780Ejd2zHRd0qgUT+BQQ+N1qgvrArxvykgnqAffA5blhEEWjM8+7sf3gN9cELQthU89TIKgqzKjWyzpE+wRUDPE7TaVAllQe6lD1gfsmJKqVkGhfjrroaCwUCn\/HCJw9Z7vTOrVDcMVQKNoxaYxr84JfM\/rLzpgknDaY1fbsmX7ghrS1BqHSbevGE1\/b7Hsgj\/rj3eTa4oEe9dpHLZT6LDdeRZt8VAL5+Rvyac5luXHygJ8eFLPJU9JVg50SlQeGZln6wK8rEthyovyexwh9sARRT5OXfmRMH5yY3sP1bYXEELeAXE+hhb2H3m8KPBJ0aKckrWMYYZwyAX2q9Hx\/7DboovogniauBE6DhauoaANHUxZM\/FTo5iPkQ60pz45ALeCnTqpU28MlhSTfQI4nT2GrBjXqcjf3Ri13ZO4wOF+NRCSdRKf9PhMN03ZopcDFbP1mBBlfwAnPN1YP+OmizyJ8ojnz6FMnluaAB37vAT8VVtkPckgPlIZ6ML9JPu5BMtnEA91aFfk+1xZI4HAh8UaRF18ecNcmnIHrWESPnt1ONIc+iKe59Ne6tkCGct6RU2Szhjxp7wffvoYt4K+HRWS\/S73R9r5PgimL2OuAuBfUAk\/UYmyFTNa8TwG9w5BHjLUE9t5I1LDhX5FYNyXB1Ssf2o8g8I8cw2+BcNpC3ANum5E7kWFYE\/c1EE\/TfW9xtQWDf2BnIW5aj7G8FKgduEdu0LK8qfG+pdOHhO4RQXz170Rdg7Idv4RJ3afQFqLpfO93NfjBTwwzwWNDnJr3KaBXHd6\/NtbEEH9\/JO4QbuKdmkRp3JLIUask1Zy8y7VlhsaX9VWok2jm6gtJrZAX3+fN2kJ+NFdftd\/VxNXuOx6Ir3nx6j\/QV4pCx4rRoxWKRyJlm1bonEW4qNcGLT7RrEFNC9bKOn1gZTXSOpkGf63S3IfDQxC1XE7EP7LZS3ht9eZbbUh+RhDXt6KT8HrS70ucwO3CHa738hmNPD3sCQeMeyhwk1qBfu3ue7qxeiCNIn4HI6ErCImf+SpJ4u2OaHPZsFWNKm+tUIz9nRDyGbVK8mEMPZmzpOW+H0UZhJZ\/Och3E\/mOHG4m\/\/rf6l7QTtHJIZHQlkK1IE1tvBk4TILfD9xQ0UgHonfKG5FpyEIksIe2LYR5FtFn38pCuF5I4jUPxNFEm9eQ0qKepDoIf4vJgg\/8lphgHnCP\/JLWU9Mb9182Y6iztGmoluWGgp6eUfnFz1ORtwf\/TFsKLRBXcz0C55oIvJJuGBzaUqgWpKn7PtVrOzrUoo5sLeD\/vyZ4YjqyT2EytV3YCr3vcF5l3xMJtz+iJ65aF+qJ19bfkZOQ0LsK4zPUoHrfisPZ6ExcTsRpQHogexoziY6fE36COfbAxdZHPXzLoDkvdSxe6dqCaS7YZklx9NJiykb7PUT9wUaQXtTXhqoC+VKeQnclolyOp3wymQFbRa4in6mmY1MO2rbv567ND9dGLcaovR4j6ZBKgUxrj\/nQT6BTaA4nropB0za1i04moEsjDYehO9bmF4TX9y2PxdQux1pNWNXFNujXXgiawXkS+QzrZb7AmO15kPN62Rz7eOaXw7o5jvnysG0NfHLGEH1\/IorQD\/qSN43oaCFV\/GmzGUHaWsYe9Z3Ka6kYhprjuoJ8674PHFasgEnoC\/u40E+5F6K+OBVJS6WQ+KvJKVGmy26LThhVHAdw8nOQihcfEVWfgVdL4jgk9uIrwm5A9iMflyP6SKu+u6itsgKH7SoFfWoSz+bwYNKZRDq+Jwn+6mzTXgJhn1DXPApfJf\/UXSO3WzG98bB31jlzbdv9lqBt2QXbsX+xtKnxq0umDQ7rCY+cSqx8kN7FypdxakvUvP+dOI+o\/RAiUdkget3V2gffdcBP+X6ANC5GQs8BP81ziBr1qQbalDeT71eiR\/1p+vqYB8pEi6ciW4zl0I12O6aGt2rSaiDTWkWmP1qijTXJp6bZareZ4ebCR0I6qkRKuyMT\/kYksxYHeVEHofbS1\/CemvNhS1UjIYtqsej9fCrloe3ZAiG9nUhDuz1HbsCCviVrV9593Jonb\/qkWgOUwGG4HkLc8A5N92nzHP+mhdqe3y50md93zAOaMquP6MYpZ31w9xikVNmS159g6HUu9DWOONo\/8QzOWZ15FYMefd\/hvzgci\/QkTc89jN9fcDsU8XQ+kke1JHRfpP7gTlzIi17vdN9X3KfSHs6jH8aTbc+bdG4gja8ba0WoUlBPeLJ50el4g0z\/xhwnhpPWp9c0\/MQNb2mMWj3Zaubr6aomk2YHajkwT0b7aaRqy5sFedECqN4casqt8qNWlzbN1MSals\/r64+nDVm1Pl75e4p8aaRCoxRl3y\/R3x2JtQuSbT\/\/8NPTJ+zW3FAYxEN8IHfLwKLl9CUd35+USsOh8niRgyUU0+KC07DQ7rbjsj5fuPNAvKO2tm+PdvMpfQiX+6kRo2xlAtr7M7MPEJOuOo5V\/juUHN5Fu055ns6E1aavNZ0JSflrX8XMd4TiXO5Gb2nuCfeIXm97c76BuzTHpebvhDm1Z\/mtx\/QoFrd8n9eH04yTxfvKMw0NDWP7jpn9BDdBVSvOnOpBpaAKXJv\/aqJeExXCeNencvJKYdvBXtbUOJtH1lAaCBsLdtc+\/cY+mPU4fE4HQMWgV1C9zvalUtDoWipq0o+QUxfQGnC0pZxeG36dVwhbFRqt2iWLCkHklcI2xJYGp\/SNT5qHW9O3Prd5qAw2Uimk+ohQW\/JKYRvi4DHzXqGV8EKhYOeVQk4oeaWw7bGwe9H2fQMiJydnG2VZ07C637I9pyOxrH8DmC71JamO9w0AAAAASUVORK5CYII=\"\r\n\t\t\t\t\t\talt=\"Lusarev\"\r\n\t\t\t\t\t\tstyle=\"height: 14px; vertical-align: middle; margin-left: 2px; margin-bottom: 2px;\">\r\n\t\t\t\t<\/button>\r\n\r\n\t\t\t<\/div>\r\n\t\t\t<div id=\"lusarev-map\"><\/div>\r\n\t\t<\/div>\r\n\r\n\t\t<!-- zeromaze-map vector engine (ZMV) + its tile worker, inlined by maps\/build.py so this\r\n\t\t     snippet needs no hosted files. Replaced Leaflet + CARTO tiles, which started serving\r\n\t\t     \"API KEY REQUIRED\" images instead of the map. -->\r\n\t\t<script>\"use strict\";var ZMV=(()=>{var bt=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Ut=Object.prototype.hasOwnProperty;var Dt=(p,t)=>{for(var e in t)bt(p,e,{get:t[e],enumerable:!0})},Gt=(p,t,e,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of zt(t))!Ut.call(p,i)&&i!==e&&bt(p,i,{get:()=>t[i],enumerable:!(r=Bt(t,i))||r.enumerable});return p};var It=p=>Gt(bt({},\"__esModule\",{value:!0}),p);var Qt={};Dt(Qt,{BACKGROUND:()=>lt,BRAND:()=>Tt,DARK:()=>Mt,LIGHT:()=>xt,Marker:()=>ot,Popup:()=>at,STYLE:()=>it,STYLES:()=>St,VERSION:()=>Et,VectorRenderer:()=>st,ZeroMap:()=>mt,brandStyle:()=>Ct,decodeMVT:()=>Ft,hex:()=>d,vectorFactory:()=>Kt});var wt=85.0511287798;function $(p,t){let e=Math.max(-wt,Math.min(wt,t)),r=(p+180)\/360,i=Math.sin(e*Math.PI\/180),s=.5-Math.log((1+i)\/(1-i))\/(4*Math.PI);return{x:r,y:s}}function J(p,t){let e=p*360-180,r=Math.PI-2*Math.PI*t,i=180\/Math.PI*Math.atan(.5*(Math.exp(r)-Math.exp(-r)));return{lng:e,lat:i}}var K=256;function ht(p,t,e){let r=$(p,t),i=K*Math.pow(2,e);return{x:r.x*i,y:r.y*i}}function rt(p,t){return Math.max(t.minZoom,Math.min(t.maxZoom,Math.round(p.zoom)))}function j(p,t,e){let r=ht(p.lng,p.lat,p.zoom),i=ht(t,e,p.zoom),s=i.x-r.x,n=i.y-r.y,o=p.bearing||0;if(o){let a=Math.cos(o),m=Math.sin(o),g=s*a+n*m,b=-s*m+n*a;s=g,n=b}return{x:s+p.width\/2,y:n+p.height\/2}}function ct(p,t,e){let r=ht(p.lng,p.lat,p.zoom),i=K*Math.pow(2,p.zoom),s=t-p.width\/2,n=e-p.height\/2,o=p.bearing||0;if(o){let g=Math.cos(o),b=Math.sin(o),T=s*g-n*b,v=s*b+n*g;s=T,n=v}let a=(r.x+s)\/i,m=(r.y+n)\/i;return J(a,m)}function tt(p,t){let e=rt(p,t),r=Math.pow(2,e),i=K*Math.pow(2,p.zoom),s=K*Math.pow(2,p.zoom-e),n=ht(p.lng,p.lat,p.zoom),o=n.x-p.width\/2,a=n.y-p.height\/2,m=p.bearing||0,g=Math.cos(m),b=Math.sin(m),T=1\/0,v=1\/0,l=-1\/0,h=-1\/0,x=[[0,0],[p.width,0],[p.width,p.height],[0,p.height]];for(let[M,w]of x){let A=M-p.width\/2,R=w-p.height\/2,C=A*g-R*b,B=A*b+R*g,S=n.x+C,P=n.y+B;S<T&&(T=S),S>l&&(l=S),P<v&&(v=P),P>h&&(h=P)}let c=M=>M\/i*r,u=Math.floor(c(T)),f=Math.floor(c(l)),y=Math.floor(c(v)),_=Math.floor(c(h)),E=[];for(let M=y;M<=_;M++)if(!(M<0||M>=r))for(let w=u;w<=f;w++){let A=(w%r+r)%r,R=w\/r*i-o,C=M\/r*i-a;E.push({x:A,y:M,z:e,screenX:R,screenY:C,size:s})}return E}var gt=p=>(Math.exp(p)+Math.exp(-p))\/2,At=p=>(Math.exp(p)-Math.exp(-p))\/2,Vt=p=>At(p)\/gt(p);function Lt(p,t,e=1.42){let[r,i,s]=p,[n,o,a]=t,m=e*e,g=m*m,b=n-r,T=o-i,v=b*b+T*T,l=Math.sqrt(v);if(v<1e-12||!isFinite(l)){let E=Math.abs(Math.log(a\/s))\/e||0;return{interp:M=>[r+M*b,i+M*T,s*Math.pow(a\/s,M)],S:E}}let h=(a*a-s*s+g*v)\/(2*s*m*l),x=(a*a-s*s-g*v)\/(2*a*m*l),c=Math.log(Math.sqrt(h*h+1)-h),f=(Math.log(Math.sqrt(x*x+1)-x)-c)\/e,y=gt(c),_=At(c);return{interp:E=>{let M=E*f,w=s\/(m*l)*(y*Vt(e*M+c)-_),A=s*y\/gt(e*M+c);return[r+w*b,i+w*T,A]},S:f}}function Rt(p){return p<.5?4*p*p*p:1-Math.pow(-2*p+2,3)\/2}var nt=class{constructor(t,e,r){this.dprCap=2;this.dprOverride=null;this.maxTiles=512;this.fadeMs=200;this.contextLost=!1;this.preloadRing=1;this.preloadZoomOut=!0;this.preloadZoomIn=!0;this.lastRenderMs=0;this.drawCalls=0;this.uploads=0;this.uploadMs=0;this.aPos=0;this.tiles=new Map;this.frame=0;this.prevZ=-1;this.preloadTimer=0;this.onContextLost=t=>{t.preventDefault(),this.contextLost=!0;for(let e of this.tiles.values())e.tex=null,e.loaded=!1};this.onContextRestored=()=>{this.contextLost=!1,this.initGL();for(let t of this.tiles.values())t.tex=null,t.loaded=!1,t.decoded=!t.failed&&t.img.complete&&t.img.naturalWidth>0;this.onNeedRender()};this.canvas=t,this.source=e,this.onNeedRender=r;let i=t.getContext(\"webgl\",{antialias:!1,alpha:!1,premultipliedAlpha:!1});if(!i)throw new Error(\"WebGL not available\");this.gl=i,t.addEventListener(\"webglcontextlost\",this.onContextLost,!1),t.addEventListener(\"webglcontextrestored\",this.onContextRestored,!1),this.initGL()}initGL(){let t=this.gl;this.prog=this.buildProgram(),this.aPos=t.getAttribLocation(this.prog,\"a_pos\"),this.uRes=t.getUniformLocation(this.prog,\"u_res\"),this.uDest=t.getUniformLocation(this.prog,\"u_dest\"),this.uUv=t.getUniformLocation(this.prog,\"u_uv\"),this.uAlpha=t.getUniformLocation(this.prog,\"u_alpha\"),this.uTex=t.getUniformLocation(this.prog,\"u_tex\"),this.quadBuf=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,this.quadBuf),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),t.STATIC_DRAW)}buildProgram(){let t=this.gl,e=`\r\n      attribute vec2 a_pos;\r\n      uniform vec2 u_res;\r\n      uniform vec4 u_dest;\r\n      uniform vec4 u_uv;\r\n      varying vec2 v_uv;\r\n      void main() {\r\n        vec2 px = u_dest.xy + a_pos * u_dest.zw;\r\n        vec2 clip = (px \/ u_res) * 2.0 - 1.0;\r\n        gl_Position = vec4(clip.x, -clip.y, 0.0, 1.0);\r\n        v_uv = u_uv.xy + a_pos * u_uv.zw;\r\n      }`,r=`\r\n      precision mediump float;\r\n      uniform sampler2D u_tex;\r\n      uniform float u_alpha;\r\n      varying vec2 v_uv;\r\n      void main() {\r\n        vec4 c = texture2D(u_tex, v_uv);\r\n        gl_FragColor = vec4(c.rgb, c.a * u_alpha);\r\n      }`,i=t.createProgram();if(t.attachShader(i,this.compile(t.VERTEX_SHADER,e)),t.attachShader(i,this.compile(t.FRAGMENT_SHADER,r)),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS))throw new Error(\"program link: \"+t.getProgramInfoLog(i));return i}compile(t,e){let r=this.gl,i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),!r.getShaderParameter(i,r.COMPILE_STATUS))throw new Error(\"shader compile: \"+r.getShaderInfoLog(i));return i}dpr(){var e,r;let t=(r=(e=this.dprOverride)!=null?e:window.devicePixelRatio)!=null?r:1;return Math.min(this.dprCap,t)}tileUrl(t,e,r){let i=this.source.subdomains,s=i[(e+r)%i.length],n=this.dpr()>1?\"@2x\":\"\";return this.source.urlTemplate.replace(\"{s}\",s).replace(\"{z}\",String(t)).replace(\"{x}\",String(e)).replace(\"{y}\",String(r)).replace(\"{r}\",n)}uploadTexture(t){let e=this.gl,r=performance.now(),i=e.createTexture();e.bindTexture(e.TEXTURE_2D,i),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.img),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_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),t.tex=i,t.loaded=!0,this.uploadMs+=performance.now()-r,this.uploads++}getTile(t,e,r,i){let s=`${t}\/${e}\/${r}${this.dpr()>1?\"@2x\":\"\"}`,n=this.tiles.get(s);if(n)return n;if(!i)return;let o=new Image;o.crossOrigin=\"anonymous\",n={img:o,tex:null,decoded:!1,decodedAt:0,loaded:!1,failed:!1,fadeStart:0,frame:0},this.tiles.set(s,n);let a=n;return o.onload=()=>{a.decoded=!0,a.decodedAt=performance.now(),this.onNeedRender()},o.onerror=()=>{a.failed=!0},o.src=this.tileUrl(t,e,r),n}drawQuad(t,e,r,i,s,n,o){let a=this.gl;a.bindTexture(a.TEXTURE_2D,t),a.uniform4f(this.uDest,e,r,i,s),a.uniform4f(this.uUv,n[0],n[1],n[2],n[3]),a.uniform1f(this.uAlpha,o),a.drawArrays(a.TRIANGLES,0,6),this.drawCalls++}ancestor(t){for(let e=t.z-1;e>=this.source.minZoom&&t.z-e<=6;e--){let r=1<<t.z-e,i=Math.floor(t.x\/r),s=Math.floor(t.y\/r),n=this.getTile(e,i,s,!1);if(n&&n.loaded&&n.tex){let o=1\/r;return{entry:n,uv:[(t.x-i*r)*o,(t.y-s*r)*o,o,o]}}}return null}drawCoverage(t,e,r,i){let s=this.ancestor(t);if(s&&(this.drawQuad(s.entry.tex,e,r,i,i,s.uv,1),s.entry.frame=this.frame),t.z<this.source.maxZoom){let n=i\/2;for(let o=0;o<2;o++)for(let a=0;a<2;a++){let m=this.getTile(t.z+1,t.x*2+a,t.y*2+o,!1);m&&m.loaded&&m.tex&&(this.drawQuad(m.tex,e+a*n,r+o*n,n,n,[0,0,1,1],1),m.frame=this.frame)}}}render(t){if(this.contextLost||this.gl.isContextLost())return;let e=this.gl,r=this.dpr(),i=Math.max(1,Math.round(t.width*r)),s=Math.max(1,Math.round(t.height*r));(this.canvas.width!==i||this.canvas.height!==s)&&(this.canvas.width=i,this.canvas.height=s),this.frame++,this.drawCalls=0;let n=performance.now(),o=n;e.viewport(0,0,i,s),e.clearColor(.9,.9,.88,1),e.clear(e.COLOR_BUFFER_BIT),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA),e.useProgram(this.prog),e.bindBuffer(e.ARRAY_BUFFER,this.quadBuf),e.enableVertexAttribArray(this.aPos),e.vertexAttribPointer(this.aPos,2,e.FLOAT,!1,0,0),e.uniform2f(this.uRes,i,s),e.uniform1i(this.uTex,0),e.activeTexture(e.TEXTURE0);let a=6,m=!1,g=!1,b={minZoom:this.source.minZoom,maxZoom:this.source.maxZoom},T=rt(t,b),v=T!==this.prevZ;for(let l of tt(t,b)){let h=this.getTile(l.z,l.x,l.y,!0);h&&h.decoded&&!h.loaded&&(performance.now()-n<a?this.uploadTexture(h):m=!0);let x=l.screenX*r,c=l.screenY*r,u=l.size*r,f=!!(h&&h.loaded&&h.tex),y=1;f&&(h.frame===this.frame-1||(o-h.decodedAt<120||v?h.fadeStart=o:h.fadeStart=0),y=h.fadeStart?Math.min(1,(o-h.fadeStart)\/this.fadeMs):1,y<1&&(g=!0)),(!f||y<1)&&this.drawCoverage(l,x,c,u),f&&(this.drawQuad(h.tex,x,c,u,u,[0,0,1,1],y),h.frame=this.frame)}this.prevZ=T,this.lastRenderMs=performance.now()-n,m||g?this.onNeedRender():this.schedulePreload(t),this.tiles.size>this.maxTiles&&this.evict()}schedulePreload(t){clearTimeout(this.preloadTimer);let e={lng:t.lng,lat:t.lat,zoom:t.zoom,width:t.width,height:t.height};this.preloadTimer=window.setTimeout(()=>this.preload(e),200)}preload(t){if(this.contextLost)return;let e={minZoom:this.source.minZoom,maxZoom:this.source.maxZoom},r=rt(t,e),i=this.preloadRing,s=(n,o,a)=>{if(n<e.minZoom||n>e.maxZoom)return;let m=1<<n;a<0||a>=m||this.getTile(n,(o%m+m)%m,a,!0)};for(let n of tt(t,e)){for(let o=-i;o<=i;o++)for(let a=-i;a<=i;a++)s(r,n.x+a,n.y+o);this.preloadZoomOut&&s(r-1,n.x>>1,n.y>>1),this.preloadZoomIn&&(s(r+1,n.x*2,n.y*2),s(r+1,n.x*2+1,n.y*2),s(r+1,n.x*2,n.y*2+1),s(r+1,n.x*2+1,n.y*2+1))}}evict(){let t=[...this.tiles.entries()].sort((r,i)=>r[1].frame-i[1].frame),e=this.tiles.size-this.maxTiles;for(let[r,i]of t){if(e<=0||i.frame===this.frame)break;i.tex&&this.gl.deleteTexture(i.tex),this.tiles.delete(r),e--}}get attribution(){return this.source.attribution}get minZoom(){return this.source.minZoom}get maxZoom(){return this.source.maxZoom}stats(){return{tiles:this.tiles.size,drawCalls:this.drawCalls,lastRenderMs:+this.lastRenderMs.toFixed(3),uploads:this.uploads,avgUploadMs:this.uploads?+(this.uploadMs\/this.uploads).toFixed(3):0}}clearTiles(){for(let t of this.tiles.values())t.tex&&this.gl.deleteTexture(t.tex);this.tiles.clear(),this.uploads=0,this.uploadMs=0}setSource(t){this.source=t,this.clearTiles(),this.prevZ=-1,this.onNeedRender()}};var vt=(p,t,e)=>Math.max(t,Math.min(e,p)),ut=class{constructor(t){this.pointers=new Map;this.panLL=null;this.pinchLL=null;this.pinchDist0=0;this.pinchZoom0=0;this.lastHint=0;this.samples=[];this.lastTapT=0;this.lastTapX=0;this.lastTapY=0;this.tapDrag=null;this.tapDragPxPerZoom=110;this.dragStarted=!1;this.enabled=!0;this.onSelectStart=t=>{this.enabled&&this.pointers.size>0&&t.preventDefault()};this.onDown=t=>{if(!this.enabled)return;let e=this.pos(t);if(this.pointers.set(t.pointerId,{x:e.x,y:e.y,type:t.pointerType,downT:performance.now(),downX:e.x,downY:e.y}),this.t.stopAnim(),this.t.stopMotion(),this.samples=[{t:performance.now(),x:e.x,y:e.y}],t.pointerType!==\"touch\"){try{this.t.canvas.setPointerCapture(t.pointerId)}catch{}t.preventDefault()}let r=performance.now();t.pointerType===\"touch\"&&this.pointers.size===1&&r-this.lastTapT<300&&Math.hypot(e.x-this.lastTapX,e.y-this.lastTapY)<30?this.tapDrag={ll:this.t.screenToLngLatAt(e.x,e.y),ax:e.x,ay:e.y,startY:e.y,zoom0:this.t.cam.zoom,active:!1}:this.pointers.size>=2&&(this.tapDrag=null),this.resetGesture()};this.onMove=t=>{if(!this.enabled)return;let e=this.pointers.get(t.pointerId);if(!e)return;let r=this.pos(t);if(e.x=r.x,e.y=r.y,this.isPinch()&&this.pinchLL){t.preventDefault(),this.armDrag();let[s,n]=this.touches(),o={x:(s.x+n.x)\/2,y:(s.y+n.y)\/2},a=Math.hypot(s.x-n.x,s.y-n.y);if(this.pinchDist0>0){let m=vt(this.pinchZoom0+Math.log2(a\/this.pinchDist0),this.t.minZoom,this.t.maxZoom);this.t.setZoomKeepCenter(m),this.t.panAnchor(this.pinchLL.lng,this.pinchLL.lat,o.x,o.y)}return}if(this.tapDrag&&this.touches().length===1){let s=e.y-this.tapDrag.startY;if(this.tapDrag.active||Math.abs(s)>4){this.tapDrag.active=!0,t.preventDefault(),this.armDrag();let n=vt(this.tapDrag.zoom0+s\/this.tapDragPxPerZoom,this.t.minZoom,this.t.maxZoom);this.t.setZoomKeepCenter(n),this.t.panAnchor(this.tapDrag.ll.lng,this.tapDrag.ll.lat,this.tapDrag.ax,this.tapDrag.ay)}return}let i=this.panPt();if(i&&this.panLL){t.pointerType!==\"touch\"&&t.preventDefault(),Math.hypot(i.x-i.downX,i.y-i.downY)>3&&this.armDrag(),this.t.panAnchor(this.panLL.lng,this.panLL.lat,i.x,i.y),this.samples.push({t:performance.now(),x:i.x,y:i.y}),this.samples.length>6&&this.samples.shift();return}this.touches().length===1&&this.t.cooperative&&this.hint(\"Use two fingers to move the map\")};this.onUp=t=>{if(!this.enabled)return;let e=this.pointers.get(t.pointerId),r=!this.isPinch()&&!!this.panLL,i=!!(this.tapDrag&&this.tapDrag.active);this.pointers.delete(t.pointerId);try{this.t.canvas.releasePointerCapture(t.pointerId)}catch{}e&&e.type===\"touch\"&&!i&&this.handleTap(e);let s=e?Math.hypot(e.x-e.downX,e.y-e.downY):0;r&&s>10&&!i&&this.fling(performance.now()),this.tapDrag=null,this.pointers.size===0&&(this.dragStarted=!1),this.resetGesture()};this.onWheel=t=>{if(!this.enabled)return;if(this.t.cooperative&&!(t.ctrlKey||t.metaKey)){this.hint(\"Use Ctrl + scroll to zoom\");return}t.preventDefault(),this.t.stopAnim();let e=this.pos(t),r=t.deltaY;t.deltaMode===1?r*=32:t.deltaMode===2&&(r*=this.t.cam.height);let i=vt(-r*.005,-1,1);this.t.zoomBy(i,e.x,e.y)};this.onDblClick=t=>{if(!this.enabled)return;t.preventDefault();let e=this.pos(t);this.t.zoomBy(t.shiftKey?-1:1,e.x,e.y)};this.t=t;let e=t.canvas;this.applyTouchAction(),e.style.userSelect=\"none\",e.style.webkitUserSelect=\"none\",e.style.webkitTouchCallout=\"none\",e.style.webkitTapHighlightColor=\"transparent\",e.addEventListener(\"pointerdown\",this.onDown),e.addEventListener(\"pointermove\",this.onMove,{passive:!1}),e.addEventListener(\"pointerup\",this.onUp),e.addEventListener(\"pointercancel\",this.onUp),e.addEventListener(\"wheel\",this.onWheel,{passive:!1}),e.addEventListener(\"dblclick\",this.onDblClick),document.addEventListener(\"selectstart\",this.onSelectStart)}applyTouchAction(){this.t.canvas.style.touchAction=this.enabled?this.t.cooperative?\"pan-x pan-y\":\"none\":\"auto\"}setEnabled(t){if(t!==this.enabled){if(this.enabled=t,!t){for(let e of this.pointers.keys())try{this.t.canvas.releasePointerCapture(e)}catch{}this.pointers.clear(),this.panLL=null,this.pinchLL=null,this.tapDrag=null,this.dragStarted=!1,this.samples=[]}this.applyTouchAction()}}armDrag(){this.dragStarted||(this.dragStarted=!0,this.t.notifyDragStart())}pos(t){let e=this.t.canvas.getBoundingClientRect();return{x:t.clientX-e.left,y:t.clientY-e.top}}touches(){return[...this.pointers.values()].filter(t=>t.type===\"touch\")}isPinch(){return this.touches().length>=2}panPt(){let t=[...this.pointers.values()].find(r=>r.type!==\"touch\");if(t)return t;let e=this.touches();return e.length===1&&!this.t.cooperative?e[0]:null}resetGesture(){if(this.isPinch()){let[t,e]=this.touches(),r={x:(t.x+e.x)\/2,y:(t.y+e.y)\/2};this.pinchDist0=Math.hypot(t.x-e.x,t.y-e.y),this.pinchZoom0=this.t.cam.zoom,this.pinchLL=this.t.screenToLngLatAt(r.x,r.y),this.panLL=null}else{let t=this.panPt();this.panLL=t?this.t.screenToLngLatAt(t.x,t.y):null,this.pinchLL=null}}fling(t){let e=this.samples;if(e.length<1)return;let r=e[e.length-1],i=e.length-1;for(;i>0&&t-e[i-1].t<=90;)i--;let s=e[i],n=t-s.t;if(n<=0)return;let o=(r.x-s.x)\/n,a=(r.y-s.y)\/n;Math.hypot(o,a)>.05&&this.t.flingPan(o,a),this.samples=[]}handleTap(t){let e=performance.now(),r=Math.hypot(t.x-t.downX,t.y-t.downY);e-t.downT<250&&r<12&&(e-this.lastTapT<300&&Math.hypot(t.x-this.lastTapX,t.y-this.lastTapY)<30?(this.t.zoomBy(1,t.x,t.y),this.lastTapT=0,navigator.vibrate&&navigator.vibrate(8)):(this.lastTapT=e,this.lastTapX=t.x,this.lastTapY=t.y))}hint(t){let e=performance.now();e-this.lastHint<900||(this.lastHint=e,this.t.showHint(t))}};var Et=\"0.18.0\",Zt={urlTemplate:\"https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png\",subdomains:\"abcd\",minZoom:0,maxZoom:20,attribution:\"\\xA9 OpenStreetMap contributors \\xA9 CARTO\"},et=(p,t,e)=>Math.max(t,Math.min(e,p)),mt=class{constructor(t,e={}){this.rafPending=!1;this.animId=0;this.hintEl=null;this.hintTimer=0;this.navRAF=0;this.navTarget=null;this.motionRAF=0;this.lastMotionT=0;this.zoomTarget=null;this.zoomAnchorSx=0;this.zoomAnchorSy=0;this.zoomAnchorLng=0;this.zoomAnchorLat=0;this.panVX=0;this.panVY=0;this.markers=new Set;this.overlayInGL=!1;this.openPopup=null;this.listeners=new Map;this._moving=!1;this._mLng=0;this._mLat=0;this._mZoom=0;this._mBearing=0;this._mLastT=0;this._settleRAF=0;this.motionTick=t=>{let e=Math.max(0,Math.min(t-this.lastMotionT,40));this.lastMotionT=t;let r=!1;if(this.zoomTarget!==null){let i=this.zoomTarget-this.cam.zoom;Math.abs(i)>.001?(this.cam.zoom+=i*(1-Math.exp(-e\/70)),r=!0):(this.cam.zoom=this.zoomTarget,this.zoomTarget=null),this._panAnchor(this.zoomAnchorLng,this.zoomAnchorLat,this.zoomAnchorSx,this.zoomAnchorSy)}if(this.panVX||this.panVY){this._panBy(this.panVX*e,this.panVY*e);let i=Math.exp(-e\/325);this.panVX*=i,this.panVY*=i,Math.hypot(this.panVX,this.panVY)<.02?(this.panVX=0,this.panVY=0):r=!0}this.renderFrame(),this.motionRAF=r?requestAnimationFrame(this.motionTick):0};this.navTick=()=>{let t=this.navTarget;if(!t){this.navRAF=0;return}let e=.16;this.cam.lng+=(t.lng-this.cam.lng)*e,this.cam.lat+=(t.lat-this.cam.lat)*e,this.cam.zoom+=(t.zoom-this.cam.zoom)*e;let r=this.cam.bearing||0,i=(t.bearing-r)%(2*Math.PI);i>Math.PI?i-=2*Math.PI:i<-Math.PI&&(i+=2*Math.PI),this.cam.bearing=r+i*e,this.renderFrame(),this.navRAF=requestAnimationFrame(this.navTick)};this.settleTick=()=>{let t=!!this.animId||!!this.motionRAF||!!this.navRAF;this._moving&&!t&&performance.now()-this._mLastT>40?(this._moving=!1,this._settleRAF=0,this.emit(\"moveend\")):this._moving?this._settleRAF=requestAnimationFrame(this.settleTick):this._settleRAF=0};var m,g;let r=typeof t==\"string\"?document.querySelector(t):t;if(!r)throw new Error(\"ZeroMap: container not found\");this.container=r,this.source=e.source||Zt,this.cooperative=(m=e.cooperativeGestures)!=null?m:!0,getComputedStyle(r).position===\"static\"&&(r.style.position=\"relative\"),r.style.overflow=\"hidden\";let i=document.createElement(\"canvas\");i.style.cssText=\"position:absolute;inset:0;width:100%;height:100%;display:block;\",r.appendChild(i),this.canvas=i;let[s,n]=e.center||[44.5,40.18];this.cam={lng:s,lat:n,zoom:(g=e.zoom)!=null?g:12,width:r.clientWidth,height:r.clientHeight},this._mLng=s,this._mLat=n,this._mZoom=this.cam.zoom,this._mBearing=0;let o=()=>this.requestRender();this.renderer=e.renderer?e.renderer(i,o):new nt(i,this.source,o),this.overlayInGL=typeof this.renderer.setOverlay==\"function\",this.markerLayer=document.createElement(\"div\"),this.markerLayer.style.cssText=\"position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2;\",r.appendChild(this.markerLayer),this.overlayInGL&&i.addEventListener(\"click\",b=>{let T=i.getBoundingClientRect(),v=b.clientX-T.left,l=b.clientY-T.top,h=null;for(let x of this.markers)!x.dom&&x._hit(this,v,l)&&(h=x);h?h._click():this._openPopup(null)}),e.attribution!==!1&&this.addAttribution(e.attribution),this.input=new ut(this),e.interactive===!1&&this.input.setEnabled(!1),new ResizeObserver(()=>{this.cam.width=r.clientWidth,this.cam.height=r.clientHeight,this.requestRender()}).observe(r),this.requestRender()}get minZoom(){return this.renderer.minZoom}get maxZoom(){return this.renderer.maxZoom}screenToLngLatAt(t,e){return ct(this.cam,t,e)}_panAnchor(t,e,r,i){let s=K*Math.pow(2,this.cam.zoom),n=$(t,e),o=n.x*s-(r-this.cam.width\/2),a=n.y*s-(i-this.cam.height\/2),m=J(o\/s,a\/s);this.cam.lng=m.lng,this.cam.lat=m.lat}panAnchor(t,e,r,i){this._panAnchor(t,e,r,i),this.requestRender()}_panBy(t,e){let r=K*Math.pow(2,this.cam.zoom),i=$(this.cam.lng,this.cam.lat),s=J((i.x*r-t)\/r,(i.y*r-e)\/r);this.cam.lng=s.lng,this.cam.lat=s.lat}setZoomKeepCenter(t){this.cam.zoom=et(t,this.minZoom,this.maxZoom),this.requestRender()}zoomAround(t,e,r){let i=ct(this.cam,e,r);this.cam.zoom=et(t,this.minZoom,this.maxZoom),this.panAnchor(i.lng,i.lat,e,r)}zoomBy(t,e,r){this.stopAnim(),this.panVX=0,this.panVY=0,this.zoomTarget===null&&(this.zoomTarget=this.cam.zoom),this.zoomTarget=et(this.zoomTarget+t,this.minZoom,this.maxZoom),this.zoomAnchorSx=e,this.zoomAnchorSy=r;let i=ct(this.cam,e,r);this.zoomAnchorLng=i.lng,this.zoomAnchorLat=i.lat,this.startMotion()}flingPan(t,e){this.stopAnim(),this.panVX=t,this.panVY=e,this.startMotion()}stopMotion(){this.motionRAF&&cancelAnimationFrame(this.motionRAF),this.motionRAF=0,this.zoomTarget=null,this.panVX=0,this.panVY=0}startMotion(){this.motionRAF||(this.lastMotionT=performance.now(),this.motionRAF=requestAnimationFrame(this.motionTick))}setView(t,e,r){this.stopAnim(),this.stopMotion(),this.cam.lng=t,this.cam.lat=e,this.cam.zoom=et(r,this.minZoom,this.maxZoom),this.requestRender()}setBearing(t){this.cam.bearing=t,this.requestRender()}get bearing(){return this.cam.bearing||0}setDevicePixelRatio(t){this.renderer.dprOverride=t,this.requestRender()}flyTo(t){var h,x,c;this.stopAnim(),this.stopMotion();let e=K,r=$(this.cam.lng,this.cam.lat),i=[r.x*e,r.y*e,this.cam.width\/Math.pow(2,this.cam.zoom)],s=et((h=t.zoom)!=null?h:this.cam.zoom,this.minZoom,this.maxZoom),[n,o]=(x=t.center)!=null?x:[this.cam.lng,this.cam.lat],a=$(n,o),m=[a.x*e,a.y*e,this.cam.width\/Math.pow(2,s)],{interp:g,S:b}=Lt(i,m,1.42),T=(c=t.duration)!=null?c:et(b*450,300,3e3),v=performance.now(),l=u=>{let f=(u-v)\/T;f>=1&&(f=1);let[y,_,E]=g(Rt(f)),M=J(y\/e,_\/e);this.cam.lng=M.lng,this.cam.lat=M.lat,this.cam.zoom=Math.log2(this.cam.width\/E),this.renderFrame(),this.animId=f<1?requestAnimationFrame(l):0};this.animId=requestAnimationFrame(l)}stopAnim(){this.animId&&cancelAnimationFrame(this.animId),this.animId=0}redraw(){this.requestRender()}setInteractive(t){this.input.setEnabled(t)}boundsCamera(t,e={}){var c,u;if(!t.length)return{lng:this.cam.lng,lat:this.cam.lat,zoom:this.cam.zoom};let r=1\/0,i=1\/0,s=-1\/0,n=-1\/0;for(let[f,y]of t){let _=$(f,y);_.x<r&&(r=_.x),_.x>s&&(s=_.x),_.y<i&&(i=_.y),_.y>n&&(n=_.y)}let o=(c=e.padding)!=null?c:0,a=Array.isArray(o)?o[0]:o,m=Array.isArray(o)?o[1]:o,g=Math.max(1,this.cam.width-2*a),b=Math.max(1,this.cam.height-2*m),T=s-r,v=n-i,l=1\/0;T>1e-9&&(l=Math.min(l,Math.log2(g\/(T*K)))),v>1e-9&&(l=Math.min(l,Math.log2(b\/(v*K))));let h=Math.min(this.maxZoom,(u=e.maxZoom)!=null?u:this.maxZoom);isFinite(l)||(l=h),l=et(l,this.minZoom,h);let x=J((r+s)\/2,(i+n)\/2);return{lng:x.lng,lat:x.lat,zoom:l}}getBoundsZoom(t,e={}){return this.boundsCamera(t,e).zoom}fitBounds(t,e={}){let r=this.boundsCamera(t,e);this.setView(r.lng,r.lat,r.zoom)}flyToBounds(t,e={}){let r=this.boundsCamera(t,e);this.flyTo({center:[r.lng,r.lat],zoom:r.zoom,duration:e.duration})}panTo(t,e={}){this.flyTo({center:t,zoom:this.cam.zoom,duration:e.duration})}zoomIn(){this.zoomBy(1,this.cam.width\/2,this.cam.height\/2)}zoomOut(){this.zoomBy(-1,this.cam.width\/2,this.cam.height\/2)}getCenter(){return{lng:this.cam.lng,lat:this.cam.lat}}getZoom(){return this.cam.zoom}distance(t,e){let r=63710088e-1,i=Math.PI\/180,s=(e[1]-t[1])*i,n=(e[0]-t[0])*i,o=t[1]*i,a=e[1]*i,m=Math.sin(s\/2)**2+Math.cos(o)*Math.cos(a)*Math.sin(n\/2)**2;return 2*r*Math.asin(Math.min(1,Math.sqrt(m)))}setSource(t){this.source=t;let e=this.renderer;e.setSource&&e.setSource(t),this.setZoomKeepCenter(this.cam.zoom)}setPerformanceMode(t){let e=this.renderer;e.setPerformanceMode&&e.setPerformanceMode(t)}resize(){this.cam.width=this.container.clientWidth,this.cam.height=this.container.clientHeight,this.requestRender()}navFollow(t,e,r,i){var s,n;this.stopAnim(),this.stopMotion(),this.navTarget={lng:t,lat:e,bearing:r,zoom:(n=i!=null?i:(s=this.navTarget)==null?void 0:s.zoom)!=null?n:17},this.navRAF||(this.navRAF=requestAnimationFrame(this.navTick))}navStop(){this.navRAF&&cancelAnimationFrame(this.navRAF),this.navRAF=0,this.navTarget=null}stats(){return{cam:{lng:+this.cam.lng.toFixed(5),lat:+this.cam.lat.toFixed(5),zoom:+this.cam.zoom.toFixed(3)},animating:!!this.animId,...this.renderer.stats()}}showHint(t){if(!this.hintEl){let e=document.createElement(\"div\");e.style.cssText=\"position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:3;background:rgba(20,20,20,.78);color:#fff;font:13px system-ui,sans-serif;padding:7px 14px;border-radius:8px;pointer-events:none;opacity:0;transition:opacity .18s;white-space:nowrap;\",this.container.appendChild(e),this.hintEl=e}this.hintEl.textContent=t,this.hintEl.style.opacity=\"1\",clearTimeout(this.hintTimer),this.hintTimer=window.setTimeout(()=>{this.hintEl&&(this.hintEl.style.opacity=\"0\")},1100)}addAttribution(t){let e=document.createElement(\"div\");e.textContent=typeof t==\"string\"?t:this.renderer.attribution,e.style.cssText=\"position:absolute;right:0;bottom:0;z-index:2;font:11px\/1.6 system-ui,sans-serif;background:rgba(255,255,255,.7);padding:0 5px;color:#333;pointer-events:none;\",this.container.appendChild(e)}requestRender(){this.rafPending||(this.rafPending=!0,requestAnimationFrame(()=>{this.rafPending=!1,this.renderFrame()}))}renderFrame(){let t=this.renderer;this.overlayInGL&&t.setOverlay&&t.setOverlay(this.overlayData()),t.setZoomFocus&&(this.zoomTarget!==null?t.setZoomFocus(this.zoomAnchorSx,this.zoomAnchorSy):t.setZoomFocus(null,null)),this.renderer.render(this.cam);for(let e of this.markers)e._update(this);this.openPopup&&this.openPopup._update(this),this.trackMotion()}trackMotion(){let t=this.cam,e=t.bearing||0,r=t.zoom!==this._mZoom;(t.lng!==this._mLng||t.lat!==this._mLat||r||e!==this._mBearing)&&(this._mLng=t.lng,this._mLat=t.lat,this._mZoom=t.zoom,this._mBearing=e,this._mLastT=performance.now(),this._moving||(this._moving=!0,this.emit(\"movestart\")),this.emit(\"move\"),r&&this.emit(\"zoom\"),this._settleRAF||(this._settleRAF=requestAnimationFrame(this.settleTick)))}on(t,e){let r=this.listeners.get(t);return r||(r=new Set,this.listeners.set(t,r)),r.add(e),this}off(t,e){var r;return(r=this.listeners.get(t))==null||r.delete(e),this}emit(t){let e=this.listeners.get(t);if(!(!e||!e.size))for(let r of[...e])try{r(this.cam)}catch(i){console.error('ZeroMap \"'+t+'\" listener threw:',i)}}notifyDragStart(){this.emit(\"dragstart\")}overlayData(){let t=[],e=this.openPopup?this.openPopup.getMarker():null;for(let r of this.markers)r.dom||t.push({lng:r.lng,lat:r.lat,color:r.color,label:r.label,popup:r===e?r.popupHtml:void 0});return t}addMarker(t){let e=new ot(this,t);return this.markers.add(e),this.requestRender(),e}project(t,e){return j(this.cam,t,e)}_openPopup(t){this.openPopup&&this.openPopup!==t&&this.openPopup._hide(),this.openPopup=t,t&&t._show(this),this.requestRender()}},Xt=p=>`<svg width=\"26\" height=\"34\" viewBox=\"0 0 26 34\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M13 0C5.8 0 0 5.8 0 13c0 9 13 21 13 21s13-12 13-21C26 5.8 20.2 0 13 0z\" fill=\"${p}\"\/><circle cx=\"13\" cy=\"13\" r=\"5\" fill=\"#fff\"\/><\/svg>`,ot=class{constructor(t,e){this.el=null;this.popup=null;if(this.map=t,this.lng=e.lng,this.lat=e.lat,this.color=e.color||\"#e0533d\",this.label=e.label,this.anchor=e.anchor||\"bottom\",this.onClick=e.onClick,this.dom=!t.overlayInGL||!!e.html,this.dom){let r=document.createElement(\"div\");r.className=e.className||\"\",r.style.cssText=\"position:absolute;left:0;top:0;pointer-events:auto;cursor:pointer;\",r.style.transform=\"translate(-50%,\"+(this.anchor===\"bottom\"?\"-100%\":\"-50%\")+\")\",r.innerHTML=e.html||Xt(this.color),r.addEventListener(\"click\",i=>{i.stopPropagation(),this._click()}),t.markerLayer.appendChild(r),this.el=r,this._update(t)}}bindPopup(t){return this.popupHtml=t,this.popup=new at(this,t),this}setLngLat(t,e){return this.lng=t,this.lat=e,this.el&&this._update(this.map),this}remove(){this.el&&this.el.remove(),this.popup&&this.popup._hide(),this.map.markers.delete(this)}_click(){this.onClick&&this.onClick(),this.popup&&this.map._openPopup(this.popup.isOpen?null:this.popup)}_hit(t,e,r){let i=t.project(this.lng,this.lat);return e>=i.x-13&&e<=i.x+13&&r>=i.y-34&&r<=i.y+2}_update(t){if(!this.el)return;let e=t.project(this.lng,this.lat);this.el.style.left=e.x+\"px\",this.el.style.top=e.y+\"px\"}},at=class{constructor(t,e){this.el=null;this.isOpen=!1;this.marker=t,this.html=e}getMarker(){return this.marker}_show(t){if(this.isOpen=!0,!!this.marker.dom){if(!this.el){let e=document.createElement(\"div\");e.style.cssText=\"position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 34px));background:#fff;color:#222;padding:8px 12px;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.18);font:13px system-ui,sans-serif;white-space:nowrap;pointer-events:auto;z-index:3;\",e.innerHTML=this.html,t.markerLayer.appendChild(e),this.el=e}this.el.style.display=\"block\",this._update(t)}}_hide(){this.isOpen=!1,this.el&&(this.el.style.display=\"none\")}_update(t){if(!this.el)return;let e=t.project(this.marker.lng,this.marker.lat);this.el.style.left=e.x+\"px\",this.el.style.top=e.y+\"px\"}};function d(p,t=1){let e=parseInt(p.slice(1),16);return[(e>>16&255)\/255,(e>>8&255)\/255,(e&255)\/255,t]}var lt=d(\"#f3f1ea\"),it=[{source:\"land\",type:\"fill\",color:d(\"#e9ece1\"),kinds:{grass:d(\"#d8e8c9\"),garden:d(\"#d8e8c9\"),meadow:d(\"#d8e8c9\"),grassland:d(\"#d8e8c9\"),scrub:d(\"#d7e4c4\"),park:d(\"#c6e4b4\"),recreation_ground:d(\"#c6e4b4\"),village_green:d(\"#c6e4b4\"),golf_course:d(\"#c6e4b4\"),playground:d(\"#cdeac0\"),allotments:d(\"#dae6c8\"),orchard:d(\"#d3e6c0\"),forest:d(\"#c9ddb0\"),wood:d(\"#c9ddb0\"),farmland:d(\"#ece9da\"),farmyard:d(\"#e7e1d1\"),residential:d(\"#eceae5\"),industrial:d(\"#e7e3db\"),retail:d(\"#ece7de\"),commercial:d(\"#ece7de\"),cemetery:d(\"#dbe2ce\"),grave_yard:d(\"#dbe2ce\"),quarry:d(\"#e5e1d7\")}},{source:\"sites\",type:\"fill\",color:d(\"#eceae3\"),kinds:{hospital:d(\"#f0dcd6\"),university:d(\"#ece0c8\"),college:d(\"#ece0c8\"),school:d(\"#ece0c8\"),kindergarten:d(\"#ece0c8\"),sports_centre:d(\"#d7e8c6\"),parking:d(\"#e7e5de\"),construction:d(\"#e8e2d6\")}},{source:\"water_polygons\",type:\"fill\",color:d(\"#8ecae6\")},{source:\"water_lines\",type:\"line\",color:d(\"#6fb4dd\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1},drain:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:d(\"#dcd3bf\")},{source:\"streets\",type:\"line\",color:d(\"#ffffff\"),width:2,kinds:{motorway:{color:d(\"#f6b981\"),width:5.5},trunk:{color:d(\"#f7c690\"),width:5},primary:{color:d(\"#fbd0a0\"),width:4.5},secondary:{color:d(\"#ffe7b3\"),width:3.4},tertiary:{color:d(\"#ffffff\"),width:2.8},residential:{color:d(\"#ffffff\"),width:2.2},unclassified:{color:d(\"#ffffff\"),width:2},living_street:{color:d(\"#f5f2eb\"),width:2},service:{color:d(\"#f2efe8\"),width:1.3},track:{color:d(\"#e9e2d4\"),width:1.1},path:{color:d(\"#e6dccb\"),width:1}}},{source:\"boundaries\",type:\"line\",color:d(\"#caa9ca\"),width:.8}],xt={name:\"light\",background:lt,layers:it,label:{color:\"#3f3b36\",halo:\"#ffffff\",street:\"#8a8377\"}},Ht=[{source:\"land\",type:\"fill\",color:d(\"#1b1f28\"),kinds:{grass:d(\"#1e2a1e\"),garden:d(\"#1e2a1e\"),meadow:d(\"#1e2a1e\"),grassland:d(\"#1e2a1e\"),scrub:d(\"#1f291b\"),park:d(\"#213520\"),recreation_ground:d(\"#213520\"),village_green:d(\"#213520\"),golf_course:d(\"#203320\"),playground:d(\"#1f2e1e\"),allotments:d(\"#212a1b\"),orchard:d(\"#1f2b1f\"),forest:d(\"#1b2a1b\"),wood:d(\"#1b2a1b\"),farmland:d(\"#232519\"),farmyard:d(\"#26241a\"),residential:d(\"#1d212b\"),industrial:d(\"#20242e\"),retail:d(\"#232734\"),commercial:d(\"#232734\"),cemetery:d(\"#1c281c\"),grave_yard:d(\"#1c281c\"),quarry:d(\"#242019\")}},{source:\"sites\",type:\"fill\",color:d(\"#20242e\"),kinds:{hospital:d(\"#331f27\"),university:d(\"#2b2820\"),college:d(\"#2b2820\"),school:d(\"#2b2820\"),kindergarten:d(\"#2b2820\"),sports_centre:d(\"#1f2d1f\"),parking:d(\"#1e222b\"),construction:d(\"#232019\")}},{source:\"water_polygons\",type:\"fill\",color:d(\"#163a52\")},{source:\"water_lines\",type:\"line\",color:d(\"#3f82ad\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1},drain:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:d(\"#272c3b\")},{source:\"streets\",type:\"line\",color:d(\"#3a4152\"),width:2,kinds:{motorway:{color:d(\"#bb8a56\"),width:5.5},trunk:{color:d(\"#a87f52\"),width:5},primary:{color:d(\"#977450\"),width:4.5},secondary:{color:d(\"#54607a\"),width:3.4},tertiary:{color:d(\"#48516a\"),width:2.8},residential:{color:d(\"#3a4254\"),width:2.2},unclassified:{color:d(\"#3a4254\"),width:2},living_street:{color:d(\"#333a4a\"),width:2},service:{color:d(\"#2e3441\"),width:1.3},track:{color:d(\"#2a303c\"),width:1.1},path:{color:d(\"#2a303c\"),width:1}}},{source:\"boundaries\",type:\"line\",color:d(\"#5a4a5a\"),width:.8}],Mt={name:\"dark\",background:d(\"#12151c\"),layers:Ht,label:{color:\"#d3dae6\",halo:\"#0b0d12\",street:\"#8a92a1\"}},Nt=[{source:\"land\",type:\"fill\",color:d(\"#efe9dd\"),kinds:{grass:d(\"#dfe6cf\"),garden:d(\"#dfe6cf\"),grassland:d(\"#dfe6cf\"),park:d(\"#d1e2ba\"),recreation_ground:d(\"#d1e2ba\"),village_green:d(\"#d1e2ba\"),playground:d(\"#d8e6c6\"),forest:d(\"#cddbb4\"),wood:d(\"#cddbb4\"),orchard:d(\"#d5e2c0\"),farmland:d(\"#eae4d2\"),residential:d(\"#f0ebe0\"),industrial:d(\"#e9e2d4\"),retail:d(\"#efe7d8\"),cemetery:d(\"#dbe1cd\"),grave_yard:d(\"#dbe1cd\")}},{source:\"sites\",type:\"fill\",color:d(\"#ece7dc\"),kinds:{hospital:d(\"#eedcd3\"),university:d(\"#e9ddc6\"),college:d(\"#e9ddc6\"),school:d(\"#e9ddc6\"),sports_centre:d(\"#d7e6c2\"),parking:d(\"#e6e1d5\"),construction:d(\"#e8e1d2\")}},{source:\"water_polygons\",type:\"fill\",color:d(\"#9cc7c4\")},{source:\"water_lines\",type:\"line\",color:d(\"#7fb4b0\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:d(\"#e1d6c0\")},{source:\"streets\",type:\"line\",color:d(\"#ffffff\"),width:2,kinds:{motorway:{color:d(\"#d98b63\"),width:5.5},trunk:{color:d(\"#e0996f\"),width:5},primary:{color:d(\"#e8ac86\"),width:4.5},secondary:{color:d(\"#f2cfa6\"),width:3.4},tertiary:{color:d(\"#ffffff\"),width:2.8},residential:{color:d(\"#ffffff\"),width:2.2},service:{color:d(\"#f4efe6\"),width:1.3},track:{color:d(\"#e9e0d0\"),width:1.1}}}],Tt={name:\"brand\",background:d(\"#f5efe3\"),layers:Nt,label:{color:\"#4f3f30\",halo:\"#fbf6ec\",street:\"#9a8a72\"}},St={light:xt,dark:Mt,brand:Tt};function Ot(p,t,e){let r=Math.max(p,t,e),i=Math.min(p,t,e),s=(r+i)\/2,n=r-i;if(n<1e-6)return{h:0,s:0,l:s};let o=s>.5?n\/(2-r-i):n\/(r+i),a;return r===p?a=(t-e)\/n+(t<e?6:0):r===t?a=(e-p)\/n+2:a=(p-t)\/n+4,{h:a\/6,s:o,l:s}}function yt(p,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1\/6?p+(t-p)*6*e:e<1\/2?t:e<2\/3?p+(t-p)*(2\/3-e)*6:p}function Pt(p,t,e){if(t===0)return[e,e,e];let r=e<.5?e*(1+t):e+t-e*t,i=2*e-r;return[yt(i,r,p+1\/3),yt(i,r,p),yt(i,r,p-1\/3)]}function kt(p,t,e){let[r,i,s]=Pt(p,t,e),n=o=>Math.round(Math.max(0,Math.min(1,o))*255).toString(16).padStart(2,\"0\");return\"#\"+n(r)+n(i)+n(s)}function Ct(p,t=\"brand\"){let e=d(p),{h:r,s:i}=Ot(e[0],e[1],e[2]),s=Math.max(.25,Math.min(i,.72)),n=(g,b,T=1)=>{let v=Pt(r,Math.max(0,Math.min(1,g)),b);return[v[0],v[1],v[2],T]},o=it.map(g=>g.type===\"line\"?{...g,kinds:g.kinds?{...g.kinds}:void 0}:{...g,kinds:g.kinds?{...g.kinds}:void 0}),a=o.find(g=>g.source===\"land\");a&&(a.color=n(s*.22,.935));let m=o.find(g=>g.source===\"streets\");return m&&m.kinds&&(m.kinds.motorway={color:n(s,.62),width:5.5},m.kinds.trunk={color:n(s*.92,.66),width:5},m.kinds.primary={color:n(s*.8,.72),width:4.5},m.kinds.secondary={color:n(s*.55,.82),width:3.4}),{name:t,background:n(s*.28,.955),layers:o,label:{color:kt(r,Math.min(s,.5),.3),halo:\"#ffffff\",street:kt(r,s*.35,.5)}}}var _t={\"train-front\":[\"M8 3.1V7a4 4 0 0 0 8 0V3.1\",\"m9 15-1-1\",\"m15 15 1-1\",\"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z\",\"m8 19-2 3\",\"m16 19 2 3\"],bus:[\"M8 6v6\",\"M15 6v6\",\"M2 12h19.6\",\"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3\",\"M 5 18 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M9 18h5\",\"M 14 18 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\"],\"cable-car\":[\"M10 3h.01\",\"M14 2h.01\",\"m2 9 20-5\",\"M12 12V6.5\",\"M 7 12 h 10 a 3 3 0 0 1 3 3 v 4 a 3 3 0 0 1 -3 3 h -10 a 3 3 0 0 1 -3 -3 v -4 a 3 3 0 0 1 3 -3 Z\",\"M9 12v5\",\"M15 12v5\",\"M4 17h16\"],\"graduation-cap\":[\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z\",\"M22 10v6\",\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"],\"book-open\":[\"M12 5v16\",\"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z\"],school:[\"M14 21v-3a2 2 0 0 0-4 0v3\",\"M18 4.933V21\",\"m4 6 7.106-3.79a2 2 0 0 1 1.788 0L20 6\",\"m6 11-3.52 2.147a1 1 0 0 0-.48.854V19a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a1 1 0 0 0-.48-.853L18 11\",\"M6 4.933V21\",\"M 10 9 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\"],baby:[\"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5\",\"M15 12h.01\",\"M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1\",\"M9 12h.01\"],cross:[\"M4 9a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h4a1 1 0 0 1 1 1v4a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-4a1 1 0 0 1 1-1h4a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-4a1 1 0 0 1-1-1V4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4a1 1 0 0 1-1 1z\"],stethoscope:[\"M11 2v2\",\"M5 2v2\",\"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\",\"M8 15a6 6 0 0 0 12 0v-3\",\"M 18 10 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\"],\"paw-print\":[\"M 9 4 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M 16 8 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M 18 16 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z\"],landmark:[\"M10 18v-7\",\"M11.119 2.205a2 2 0 0 1 1.762 0l7.84 3.846A.5.5 0 0 1 20.5 7h-17a.5.5 0 0 1-.22-.949z\",\"M14 18v-7\",\"M18 18v-7\",\"M3 22h18\",\"M6 18v-7\"],shield:[\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"],flame:[\"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4\"],mail:[\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\",\"M 4 4 h 16 a 2 2 0 0 1 2 2 v 12 a 2 2 0 0 1 -2 2 h -16 a 2 2 0 0 1 -2 -2 v -12 a 2 2 0 0 1 2 -2 Z\"],drama:[\"M10 11h.01\",\"M14 6h.01\",\"M18 6h.01\",\"M6.5 13.1h.01\",\"M22 5c0 9-4 12-6 12s-6-3-6-12c0-2 2-3 6-3s6 1 6 3\",\"M17.4 9.9c-.8.8-2 .8-2.8 0\",\"M10.1 7.1C9 7.2 7.7 7.7 6 8.6c-3.5 2-4.7 3.9-3.7 5.6 4.5 7.8 9.5 8.4 11.2 7.4.9-.5 1.9-2.1 1.9-4.7\",\"M9.1 16.5c.3-1.1 1.4-1.7 2.4-1.4\"],clapperboard:[\"m12.296 3.464 3.02 3.956\",\"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z\",\"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\",\"m6.18 5.276 3.1 3.899\"],\"disc-3\":[\"M 2 12 a 10 10 0 1 0 20 0 a 10 10 0 1 0 -20 0\",\"M6 12c0-1.7.7-3.2 1.8-4.2\",\"M 10 12 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M18 12c0 1.7-.7 3.2-1.8 4.2\"],\"shopping-bag\":[\"M16 10a4 4 0 0 1-8 0\",\"M3.103 6.034h17.794\",\"M3.4 5.467a2 2 0 0 0-.4 1.2V20a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6.667a2 2 0 0 0-.4-1.2l-2-2.667A2 2 0 0 0 17 2H7a2 2 0 0 0-1.6.8z\"],\"shopping-basket\":[\"m15 11-1 9\",\"m19 11-4-7\",\"M2 11h20\",\"m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4\",\"M4.5 15.5h15\",\"m5 11 4-7\",\"m9 11 1 9\"],\"shopping-cart\":[\"M 7 21 a 1 1 0 1 0 2 0 a 1 1 0 1 0 -2 0\",\"M 18 21 a 1 1 0 1 0 2 0 a 1 1 0 1 0 -2 0\",\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\"],church:[\"M10 9h4\",\"M12 7v5\",\"M14 21v-3a2 2 0 0 0-4 0v3\",\"m18 9 3.52 2.147a1 1 0 0 1 .48.854V19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-6.999a1 1 0 0 1 .48-.854L6 9\",\"M6 21V7a1 1 0 0 1 .376-.782l5-3.999a1 1 0 0 1 1.249.001l5 4A1 1 0 0 1 18 7v14\"],trees:[\"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z\",\"M7 16v6\",\"M13 19v3\",\"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5\"],\"ferris-wheel\":[\"M 10 12 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M12 2v4\",\"m6.8 15-3.5 2\",\"m20.7 7-3.5 2\",\"M6.8 9 3.3 7\",\"m20.7 17-3.5-2\",\"m9 22 3-8 3 8\",\"M8 22h8\",\"M18 18.7a9 9 0 1 0-12 0\"],trophy:[\"M10 14.66V17a1 1 0 0 1-1 1 2 2 0 0 0-2 2v2\",\"M14 14.66V17a1 1 0 0 0 1 1 2 2 0 0 1 2 2v2\",\"M17.916 10H19.5A2.5 2.5 0 0 0 22 7.5V5a1 1 0 0 0-1-1h-3\",\"M4 22h16\",\"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z\",\"M6.084 10H4.5A2.5 2.5 0 0 1 2 7.5V5a1 1 0 0 1 1-1h3\"],dumbbell:[\"M17.596 12.768a2 2 0 1 0 2.829-2.829l-1.768-1.767a2 2 0 0 0 2.828-2.829l-2.828-2.828a2 2 0 0 0-2.829 2.828l-1.767-1.768a2 2 0 1 0-2.829 2.829z\",\"m2.5 21.5 1.4-1.4\",\"m20.1 3.9 1.4-1.4\",\"M5.343 21.485a2 2 0 1 0 2.829-2.828l1.767 1.768a2 2 0 1 0 2.829-2.829l-6.364-6.364a2 2 0 1 0-2.829 2.829l1.768 1.767a2 2 0 0 0-2.828 2.829z\",\"m9.6 14.4 4.8-4.8\"],bed:[\"M2 4v16\",\"M2 8h18a2 2 0 0 1 2 2v10\",\"M2 17h20\",\"M6 8v9\"],utensils:[\"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2\",\"M7 2v20\",\"M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7\"],sandwich:[\"m2.37 11.223 8.372-6.777a2 2 0 0 1 2.516 0l8.371 6.777\",\"M21 15a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.25\",\"M3 15a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h9\",\"m6.67 15 6.13 4.6a2 2 0 0 0 2.8-.4l3.15-4.2\",\"M 3 11 h 18 a 1 1 0 0 1 1 1 v 2 a 1 1 0 0 1 -1 1 h -18 a 1 1 0 0 1 -1 -1 v -2 a 1 1 0 0 1 1 -1 Z\"],coffee:[\"M10 2v2\",\"M14 2v2\",\"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1\",\"M6 2v2\"],croissant:[\"M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487\",\"M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132\",\"M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42\",\"M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14\",\"M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676\"],wine:[\"M8 22h8\",\"M7 10h10\",\"M12 15v7\",\"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z\"],beer:[\"M17 11h1a3 3 0 0 1 0 6h-1\",\"M9 12v6\",\"M13 12v6\",\"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z\",\"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8\"],banknote:[\"M 4 6 h 16 a 2 2 0 0 1 2 2 v 8 a 2 2 0 0 1 -2 2 h -16 a 2 2 0 0 1 -2 -2 v -8 a 2 2 0 0 1 2 -2 Z\",\"M 10 12 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M6 12h.01M18 12h.01\"],pill:[\"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z\",\"m8.5 8.5 7 7\"],fuel:[\"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5\",\"M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16\",\"M2 21h13\",\"M3 9h11\"],carrot:[\"M15 16a1 1 0 0 0-7-7q-4 4-5.987 12.385a.5.5 0 0 0 .602.602Q11 20 15 16l-3-3\",\"M15 9q4 4 7 0-3-4-7 0 4-4 0-7-4 3 0 7\",\"m8 15-2.58-2.58\"],beef:[\"M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3\",\"m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5\",\"M 10 8.5 a 2.5 2.5 0 1 0 5 0 a 2.5 2.5 0 1 0 -5 0\"],\"cup-soda\":[\"m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8\",\"M5 8h14\",\"M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0\",\"m12 8 1-6h2\"],fish:[\"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z\",\"M18 12v.5\",\"M16 17.93a9.77 9.77 0 0 1 0-11.86\",\"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33\",\"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4\",\"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98\"],shirt:[\"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\"],footprints:[\"M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z\",\"M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z\",\"M16 17h4\",\"M4 13h4\"],gem:[\"M10.5 3 8 9l4 13 4-13-2.5-6\",\"M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z\",\"M2 9h20\"],briefcase:[\"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\",\"M 4 6 h 16 a 2 2 0 0 1 2 2 v 10 a 2 2 0 0 1 -2 2 h -16 a 2 2 0 0 1 -2 -2 v -10 a 2 2 0 0 1 2 -2 Z\"],sparkles:[\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z\",\"M20 2v4\",\"M22 4h-4\",\"M 2 20 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\"],scissors:[\"M 3 6 a 3 3 0 1 0 6 0 a 3 3 0 1 0 -6 0\",\"M8.12 8.12 12 12\",\"M20 4 8.12 15.88\",\"M 3 18 a 3 3 0 1 0 6 0 a 3 3 0 1 0 -6 0\",\"M14.8 14.8 20 20\"],glasses:[\"M 2 15 a 4 4 0 1 0 8 0 a 4 4 0 1 0 -8 0\",\"M 14 15 a 4 4 0 1 0 8 0 a 4 4 0 1 0 -8 0\",\"M14 15a2 2 0 0 0-2-2 2 2 0 0 0-2 2\",\"M2.5 13 5 7c.7-1.3 1.4-2 3-2\",\"M21.5 13 19 7c-.7-1.3-1.5-2-3-2\"],sofa:[\"M20 9V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v3\",\"M2 16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z\",\"M4 18v2\",\"M20 18v2\",\"M12 4v9\"],hammer:[\"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9\",\"m18 15 4-4\",\"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5\"],sprout:[\"M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3\",\"M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4\",\"M5 21h14\"],\"paint-roller\":[\"M 4 2 h 12 a 2 2 0 0 1 2 2 v 2 a 2 2 0 0 1 -2 2 h -12 a 2 2 0 0 1 -2 -2 v -2 a 2 2 0 0 1 2 -2 Z\",\"M10 16v-2a2 2 0 0 1 2-2h8a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2\",\"M 9 16 h 2 a 1 1 0 0 1 1 1 v 4 a 1 1 0 0 1 -1 1 h -2 a 1 1 0 0 1 -1 -1 v -4 a 1 1 0 0 1 1 -1 Z\"],plug:[\"M12 22v-5\",\"M15 8V2\",\"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z\",\"M9 8V2\"],smartphone:[\"M 7 2 h 10 a 2 2 0 0 1 2 2 v 16 a 2 2 0 0 1 -2 2 h -10 a 2 2 0 0 1 -2 -2 v -16 a 2 2 0 0 1 2 -2 Z\",\"M12 18h.01\"],monitor:[\"M 4 3 h 16 a 2 2 0 0 1 2 2 v 10 a 2 2 0 0 1 -2 2 h -16 a 2 2 0 0 1 -2 -2 v -10 a 2 2 0 0 1 2 -2 Z\",\"M 8 21 L 16 21\",\"M 12 17 L 12 21\"],book:[\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\"],pencil:[\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\",\"m15 5 4 4\"],blocks:[\"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\",\"M 15 2 h 6 a 1 1 0 0 1 1 1 v 6 a 1 1 0 0 1 -1 1 h -6 a 1 1 0 0 1 -1 -1 v -6 a 1 1 0 0 1 1 -1 Z\"],gift:[\"M12 7v14\",\"M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8\",\"M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5\",\"M 4 7 h 16 a 1 1 0 0 1 1 1 v 2 a 1 1 0 0 1 -1 1 h -16 a 1 1 0 0 1 -1 -1 v -2 a 1 1 0 0 1 1 -1 Z\"],flower:[\"M 9 12 a 3 3 0 1 0 6 0 a 3 3 0 1 0 -6 0\",\"M12 16.5A4.5 4.5 0 1 1 7.5 12 4.5 4.5 0 1 1 12 7.5a4.5 4.5 0 1 1 4.5 4.5 4.5 4.5 0 1 1-4.5 4.5\",\"M12 7.5V9\",\"M7.5 12H9\",\"M16.5 12H15\",\"M12 16.5V15\",\"m8 8 1.88 1.88\",\"M14.12 9.88 16 8\",\"m8 16 1.88-1.88\",\"M14.12 14.12 16 16\"],bike:[\"M 15 17.5 a 3.5 3.5 0 1 0 7 0 a 3.5 3.5 0 1 0 -7 0\",\"M 2 17.5 a 3.5 3.5 0 1 0 7 0 a 3.5 3.5 0 1 0 -7 0\",\"M 14 5 a 1 1 0 1 0 2 0 a 1 1 0 1 0 -2 0\",\"M12 17.5V14l-3-3 4-3 2 3h2\"],car:[\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2\",\"M 5 17 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\",\"M9 17h6\",\"M 15 17 a 2 2 0 1 0 4 0 a 2 2 0 1 0 -4 0\"],newspaper:[\"M15 18h-5\",\"M18 14h-8\",\"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2\",\"M 11 6 h 6 a 1 1 0 0 1 1 1 v 2 a 1 1 0 0 1 -1 1 h -6 a 1 1 0 0 1 -1 -1 v -2 a 1 1 0 0 1 1 -1 Z\"],plane:[\"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\"],\"washing-machine\":[\"M3 6h3\",\"M17 6h.01\",\"M 5 2 h 14 a 2 2 0 0 1 2 2 v 16 a 2 2 0 0 1 -2 2 h -14 a 2 2 0 0 1 -2 -2 v -16 a 2 2 0 0 1 2 -2 Z\",\"M 7 13 a 5 5 0 1 0 10 0 a 5 5 0 1 0 -10 0\",\"M12 18a2.5 2.5 0 0 0 0-5 2.5 2.5 0 0 1 0-5\"],store:[\"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5\",\"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244\",\"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05\"],\"map-pin\":[\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\"M 9 10 a 3 3 0 1 0 6 0 a 3 3 0 1 0 -6 0\"]},pt={metro:\"train-front\",bus_station:\"bus\",cablecar:\"cable-car\",university:\"graduation-cap\",college:\"graduation-cap\",library:\"book-open\",school:\"school\",kindergarten:\"baby\",hospital:\"cross\",clinic:\"stethoscope\",doctors:\"stethoscope\",dentist:\"stethoscope\",veterinary:\"paw-print\",townhall:\"landmark\",courthouse:\"landmark\",embassy:\"landmark\",museum:\"landmark\",community_centre:\"landmark\",police:\"shield\",fire_station:\"flame\",post_office:\"mail\",theatre:\"drama\",arts_centre:\"drama\",cinema:\"clapperboard\",nightclub:\"disc-3\",mall:\"shopping-bag\",department_store:\"shopping-bag\",marketplace:\"shopping-basket\",supermarket:\"shopping-cart\",worship:\"church\",park:\"trees\",theme_park:\"ferris-wheel\",zoo:\"paw-print\",stadium:\"trophy\",sports_centre:\"dumbbell\",hotel:\"bed\",hostel:\"bed\",guest_house:\"bed\",motel:\"bed\",restaurant:\"utensils\",fast_food:\"sandwich\",cafe:\"coffee\",bakery:\"croissant\",bar:\"wine\",pub:\"beer\",bank:\"banknote\",atm:\"banknote\",pharmacy:\"pill\",fuel:\"fuel\",convenience:\"shopping-basket\",greengrocer:\"carrot\",butcher:\"beef\",alcohol:\"wine\",beverages:\"cup-soda\",seafood:\"fish\",clothes:\"shirt\",shoes:\"footprints\",jewelry:\"gem\",bag:\"briefcase\",beauty:\"sparkles\",hairdresser:\"scissors\",cosmetics:\"sparkles\",chemist:\"sparkles\",optician:\"glasses\",furniture:\"sofa\",hardware:\"hammer\",doityourself:\"hammer\",garden_centre:\"sprout\",paint:\"paint-roller\",electronics:\"plug\",mobile_phone:\"smartphone\",computer:\"monitor\",books:\"book\",stationery:\"pencil\",toys:\"blocks\",sports:\"dumbbell\",gift:\"gift\",florist:\"flower\",bicycle:\"bike\",car:\"car\",car_rental:\"car\",car_wash:\"car\",pet:\"paw-print\",kiosk:\"newspaper\",newsagent:\"newspaper\",travel_agency:\"plane\",laundry:\"washing-machine\",shop:\"store\",place:\"map-pin\",_default:\"map-pin\"};var st=class{constructor(t,e,r={}){this.contextLost=!1;this.rotC=1;this.rotS=0;this.attribution=\"\\xA9 OpenStreetMap contributors\";this.minZoom=0;this.maxZoom=19;this.tileMaxZoom=14;this.dprOverride=null;this.urlTemplate=\"https:\/\/vector.openstreetmap.org\/shortbread_v1\/{z}\/{x}\/{y}.mvt\";this.maxTiles=900;this.tileCache=!0;this.maxCachedTiles=2e3;this.lastTrim=0;this.lastEvict=0;this.preloadRing=1;this.preloadZoomOut=!0;this.preloadZoomIn=!0;this.lookaheadFrames=10;this.uploadBudgetMs=6;this.coldRevealBudgetMs=12;this.preloadTimer=0;this.lastRenderMs=0;this.drawCalls=0;this.builtCount=0;this.tiles=new Map;this.frame=0;this.workers=[];this.workerBusy=[];this.workerTask=[];this.workerSince=[];this.workerUrl=\"dist\/worker_vec.js\";this.currentStyleLayers=it;this.workerTimeoutMs=1e4;this.reqQueue=[];this.nextId=1;this.pending=new Map;this.fp={};this.lp={};this.labelTex=new Map;this.labelState=new Map;this.lastLabelT=0;this.poiState=new Map;this.lastPoiT=0;this.labelsFading=!1;this.sp={};this.gb={};this.glyphScratch=new Float32Array(96e3);this.glyphUV=new Map;this.iconUV=new Map;this.glyphPen={x:0,y:0,rowH:0};this.glyphAtlasDirty=!1;this.glyphAtlasDpr=0;this.ATLAS=1024;this.streetState=new Map;this.lastStreetT=0;this.lastStreetZoom=-1;this.lastStreetCX=0;this.lastStreetCY=0;this.lastStreetLayoutT=-1e9;this.lastStreetBearing=0;this._labelRects=[];this._occupiedRects=[];this._poiRects=[];this.housePlaced=[];this.lastHouseCX=0;this.lastHouseCY=0;this.pinTex=new Map;this.markerTex=new Map;this.popupTex=new Map;this.overlay=[];this.lineAA=!0;this.performanceMode=\"full\";this.liteDropSources=[];this.minimalDropSources=[\"buildings\",\"sites\"];this.motionBlur=(navigator.hardwareConcurrency||4)>=4;this.blurGain=1.25;this.maxBlur=.029;this.blurMinStrength=.004;this.panGain=.55;this.maxPanBlur=.028;this.prevZoomForBlur=0;this.prevLngForBlur=0;this.prevLatForBlur=0;this.blurInit=!1;this.blurFocusX=null;this.blurFocusY=null;this.bp={};this.fbo=null;this.fboTex=null;this.fboW=0;this.fboH=0;this.gp={};this.bg=lt;this.labelColor=\"#3f3b36\";this.labelHalo=\"#ffffff\";this.streetColor=\"#8a8377\";this.streetMinZoom={motorway:14,trunk:14,primary:14,secondary:15,tertiary:15,residential:16,living_street:16,unclassified:16,pedestrian:16,service:17,track:17,path:17};this.showHousenumbers=!0;this.houseNumberMinZoom=18;this.houseNumberCap=120;this.houseScale=.82;this.houseScaleZoomGain=.16;this.houseScaleMax=1.08;this.showPois=!0;this.poiCap=48;this.poiTextPx=13;this.poiBadgeBg=\"#ffffff\";this.poiIconColor=\"#c65a37\";this.poiBadgeSize=26;this.poiIconFill=.56;this.poiLabelGap=2;this.poiCategoryColor={metro:\"#2f6fb0\",bus_station:\"#2f6fb0\",cablecar:\"#2f6fb0\",hospital:\"#d1433f\",university:\"#2a8a8a\",college:\"#2a8a8a\",library:\"#2a8a8a\",townhall:\"#7a5ea8\",courthouse:\"#7a5ea8\",embassy:\"#7a5ea8\",museum:\"#7a5ea8\",theatre:\"#a5478c\",cinema:\"#a5478c\",arts_centre:\"#a5478c\",mall:\"#d17a2a\",department_store:\"#d17a2a\",supermarket:\"#d17a2a\",marketplace:\"#d17a2a\",worship:\"#6b5d4f\",park:\"#3d9a52\",theme_park:\"#3d9a52\",zoo:\"#3d9a52\",stadium:\"#3d9a52\",sports_centre:\"#3d9a52\",hotel:\"#c15b7a\",restaurant:\"#d9663d\",fast_food:\"#d9663d\",cafe:\"#9a6a3c\",bakery:\"#9a6a3c\",bar:\"#8e3b5e\",pub:\"#8e3b5e\",bank:\"#2f8f6b\",atm:\"#2f8f6b\",pharmacy:\"#4aa34a\",fuel:\"#5a6b7a\",nightclub:\"#a5478c\",clinic:\"#3f7ea8\",doctors:\"#3f7ea8\",dentist:\"#3f7ea8\",veterinary:\"#3d9a52\",school:\"#2a8a8a\",kindergarten:\"#e0a52e\",police:\"#3a5a8f\",fire_station:\"#d1433f\",post_office:\"#2f6fb0\",community_centre:\"#7a5ea8\",hostel:\"#c15b7a\",guest_house:\"#c15b7a\",motel:\"#c15b7a\",convenience:\"#6a9a3f\",greengrocer:\"#6a9a3f\",butcher:\"#6a9a3f\",beverages:\"#6a9a3f\",seafood:\"#6a9a3f\",alcohol:\"#8e3b5e\",clothes:\"#b5568f\",shoes:\"#b5568f\",jewelry:\"#b5568f\",bag:\"#b5568f\",beauty:\"#c9598a\",hairdresser:\"#c9598a\",cosmetics:\"#c9598a\",chemist:\"#c9598a\",optician:\"#c9598a\",furniture:\"#8a6a3c\",hardware:\"#8a6a3c\",doityourself:\"#8a6a3c\",paint:\"#8a6a3c\",garden_centre:\"#3d9a52\",florist:\"#3d9a52\",sports:\"#3d9a52\",bicycle:\"#3d9a52\",electronics:\"#3a7ca5\",mobile_phone:\"#3a7ca5\",computer:\"#3a7ca5\",books:\"#d17a2a\",stationery:\"#d17a2a\",toys:\"#d17a2a\",gift:\"#c15b7a\",car:\"#5a6b7a\",car_rental:\"#5a6b7a\",car_wash:\"#5a6b7a\",laundry:\"#6a6a6a\",pet:\"#6b5d4f\",kiosk:\"#6a6a6a\",newsagent:\"#6a6a6a\",travel_agency:\"#2f6fb0\",shop:\"#8a7a6a\",place:\"#8a7a6a\"};this.poiCollectMinZoom=17.5;this.poiDefaultMinZoom=18;this.landmarkMinZoom={metro:18,mall:18,hospital:18,university:18,stadium:18,museum:18,zoo:18,park:18,townhall:18,bus_station:18,cablecar:18,theatre:18,cinema:18,marketplace:18,theme_park:18,courthouse:18,embassy:18,worship:18,college:18,arts_centre:18,department_store:18.5,library:18.5,sports_centre:18.5,supermarket:18.5,hotel:18.5,pharmacy:18.5,bank:18.5,restaurant:18.5,fuel:18.5,fast_food:18.5,cafe:18.5,bar:19,pub:19,bakery:19,clinic:18.5,school:18.5,police:18.5,fire_station:18.5,post_office:18.5,hostel:18.5,nightclub:19,doctors:19,dentist:19,veterinary:19,kindergarten:19,community_centre:19,car_rental:19,car_wash:19,atm:19,guest_house:19,motel:19,convenience:19,greengrocer:19,butcher:19,alcohol:19,beverages:19,seafood:19,clothes:19,shoes:19,jewelry:19,bag:19,beauty:19,hairdresser:19,cosmetics:19,chemist:19,optician:19,furniture:19,hardware:19,doityourself:19,garden_centre:19,paint:19,electronics:19,mobile_phone:19,computer:19,books:19,stationery:19,toys:19,sports:19,gift:19,florist:19,bicycle:19,car:19,pet:19,kiosk:19,newsagent:19,travel_agency:19,laundry:19,shop:19,place:19};this.onContextLost=t=>{t.preventDefault(),this.contextLost=!0};this.onContextRestored=()=>{this.contextLost=!1,this.initGL(),this.fbo=null,this.fboTex=null,this.fboW=0,this.fboH=0,this.tiles.clear(),this.pending.clear(),this.reqQueue=[],this.labelTex.clear(),this.resetGlyphAtlas(this.dpr()),this.streetState.clear(),this.housePlaced=[],this.poiState.clear(),this.builtCount=0,this.blurInit=!1,this.onNeedRender()};this.canvas=t,this.onNeedRender=e;let i=t.getContext(\"webgl\",{antialias:!0,alpha:!1});if(!i)throw new Error(\"WebGL not available\");this.gl=i,t.addEventListener(\"webglcontextlost\",this.onContextLost,!1),t.addEventListener(\"webglcontextrestored\",this.onContextRestored,!1),this.initGL(),this.workerUrl=r.workerUrl||\"dist\/worker_vec.js\";let s=r.workers||Math.min(8,Math.max(2,(navigator.hardwareConcurrency||4)-1));for(let n=0;n<s;n++){let o=new Worker(this.workerUrl),a=n;o.onmessage=m=>this.onWorkerMessage(m,a),o.onerror=()=>this.recoverWorker(a),this.workers.push(o),this.workerBusy.push(!1),this.workerTask.push(null),this.workerSince.push(0)}this.waitForLabelFont()}waitForLabelFont(){let t=document.fonts;if(!t)return;let e=()=>{for(let r of this.labelTex.values())this.gl.deleteTexture(r.tex);this.labelTex.clear(),this.resetGlyphAtlas(this.dpr()),this.housePlaced=[],this.poiState.clear(),this.onNeedRender()};t.load&&Promise.all([t.load('400 12px \"Helvetica World\"'),t.load('400 12px \"Mardoto\"')]).then(e).catch(()=>{}),t.addEventListener&&t.addEventListener(\"loadingdone\",e)}onWorkerMessage(t,e){let{id:r,ok:i,fills:s,lines:n}=t.data,o=this.pending.get(r);this.pending.delete(r),this.workerBusy[e]=!1,this.workerTask[e]=null,o&&(o.inflight=!1,i?(o.fills=s,o.lines=n,o.labels=t.data.labels||[],o.streetLabels=t.data.streetLabels||[],o.houseNumbers=t.data.houseNumbers||[],o.poiLabels=t.data.poiLabels||[]):o.failed=!0),this.dispatchTiles(),this.onNeedRender()}dispatchTiles(){let t=performance.now();for(let i=0;i<this.workers.length;i++)this.workerBusy[i]&&this.workerTask[i]&&t-this.workerSince[i]>this.workerTimeoutMs&&this.recoverWorker(i);if(!this.reqQueue.length)return;let e=[];for(let i of this.reqQueue)i.queued&&!i.built&&this.tiles.get(i.key)===i&&t-i.wantTime<=1e3?e.push(i):i.queued=!1;this.reqQueue=e;let r=0;for(let i=0;i<this.workerBusy.length;i++)this.workerBusy[i]||r++;if(!(!r||!this.reqQueue.length)){this.reqQueue.sort((i,s)=>i.priority-s.priority);for(let i=0;i<this.workers.length&&this.reqQueue.length;i++){if(this.workerBusy[i])continue;let s=this.reqQueue.shift();s.queued=!1,s.inflight=!0;let n=this.nextId++;this.pending.set(n,s),this.workerBusy[i]=!0,this.workerTask[i]=s,this.workerSince[i]=t,this.workers[i].postMessage({id:n,url:s.url})}}}recoverWorker(t){let e=this.workerTask[t];if(e){for(let[i,s]of this.pending)if(s===e){this.pending.delete(i);break}}try{this.workers[t].terminate()}catch{}let r=new Worker(this.workerUrl);r.onmessage=i=>this.onWorkerMessage(i,t),r.onerror=()=>this.recoverWorker(t),r.postMessage({type:\"style\",layers:this.workerStyleLayers()}),this.tileCache||r.postMessage({type:\"config\",tileCache:!1}),this.workers[t]=r,this.workerBusy[t]=!1,this.workerTask[t]=null,this.workerSince[t]=0,e&&!e.built&&!e.failed&&(e.inflight=!1,e.queued=!0,e.wantTime=performance.now(),this.reqQueue.push(e)),this.onNeedRender()}dpr(){var t,e;return Math.min(2,(e=(t=this.dprOverride)!=null?t:window.devicePixelRatio)!=null?e:1)}compile(t,e){let r=this.gl,i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),!r.getShaderParameter(i,r.COMPILE_STATUS))throw new Error(\"vec shader: \"+r.getShaderInfoLog(i));return i}link(t,e){let r=this.gl,i=r.createProgram();if(r.attachShader(i,this.compile(r.VERTEX_SHADER,t)),r.attachShader(i,this.compile(r.FRAGMENT_SHADER,e)),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS))throw new Error(\"vec link: \"+r.getProgramInfoLog(i));return i}initGL(){let t=this.gl,e=\"vec3 unpackRGB(float p){ float b=mod(p,256.0); float g=mod(floor(p\/256.0),256.0); float r=floor(p\/65536.0); return vec3(r,g,b)\/255.0; }\",r=\"uniform vec2 u_rot; vec2 zmRot(vec2 px, vec2 res){ vec2 d=px-res*0.5; return vec2(d.x*u_rot.x+d.y*u_rot.y, -d.x*u_rot.y+d.y*u_rot.x)+res*0.5; }\";this.fillProg=this.link(`attribute vec2 a_pos; attribute float a_c; uniform vec2 u_res; uniform vec4 u_dest; varying vec3 v_color; ${e} ${r}\r\n       void main(){ vec2 px=u_dest.xy+a_pos*u_dest.zw; vec2 c=(zmRot(px,u_res)\/u_res)*2.0-1.0; gl_Position=vec4(c.x,-c.y,0.0,1.0); v_color=unpackRGB(a_c); }`,\"precision mediump float; uniform float u_fade; varying vec3 v_color; void main(){ gl_FragColor=vec4(v_color,1.0)*u_fade; }\"),this.fp.pos=t.getAttribLocation(this.fillProg,\"a_pos\"),this.fp.color=t.getAttribLocation(this.fillProg,\"a_c\"),this.fp.res=t.getUniformLocation(this.fillProg,\"u_res\"),this.fp.dest=t.getUniformLocation(this.fillProg,\"u_dest\"),this.fp.fade=t.getUniformLocation(this.fillProg,\"u_fade\"),this.fp.rot=t.getUniformLocation(this.fillProg,\"u_rot\"),this.lineProg=this.link(`attribute vec2 a_pos; attribute vec2 a_norm; attribute float a_hw; attribute float a_c;\r\n       uniform vec2 u_res; uniform vec4 u_dest; uniform float u_dpr; uniform mediump float u_aa;\r\n       varying vec3 v_color; varying float v_dist; varying float v_solid; ${e} ${r}\r\n       void main(){ float hw=abs(a_hw); float ext=hw+u_aa; vec2 px=u_dest.xy+a_pos*u_dest.zw + a_norm*(ext*u_dpr);\r\n         vec2 c=(zmRot(px,u_res)\/u_res)*2.0-1.0; gl_Position=vec4(c.x,-c.y,0.0,1.0); v_color=unpackRGB(a_c);\r\n         v_dist=sign(a_hw)*ext*u_dpr; v_solid=hw*u_dpr; }`,`precision mediump float; uniform float u_fade; uniform mediump float u_aa; varying vec3 v_color; varying float v_dist; varying float v_solid;\r\n       void main(){ float cov=1.0; if(u_aa>0.5) cov=1.0-smoothstep(v_solid-0.7, v_solid+0.7, abs(v_dist));\r\n         gl_FragColor=vec4(v_color,1.0)*(u_fade*cov); }`),this.lp.pos=t.getAttribLocation(this.lineProg,\"a_pos\"),this.lp.norm=t.getAttribLocation(this.lineProg,\"a_norm\"),this.lp.hw=t.getAttribLocation(this.lineProg,\"a_hw\"),this.lp.color=t.getAttribLocation(this.lineProg,\"a_c\"),this.lp.res=t.getUniformLocation(this.lineProg,\"u_res\"),this.lp.dest=t.getUniformLocation(this.lineProg,\"u_dest\"),this.lp.dpr=t.getUniformLocation(this.lineProg,\"u_dpr\"),this.lp.fade=t.getUniformLocation(this.lineProg,\"u_fade\"),this.lp.aa=t.getUniformLocation(this.lineProg,\"u_aa\"),this.lp.rot=t.getUniformLocation(this.lineProg,\"u_rot\"),this.spriteProg=this.link(`attribute vec2 a_pos; uniform vec2 u_res; uniform vec4 u_dest; varying vec2 v_uv;\r\n       void main(){ vec2 px=u_dest.xy+a_pos*u_dest.zw; vec2 c=(px\/u_res)*2.0-1.0; gl_Position=vec4(c.x,-c.y,0.0,1.0); v_uv=a_pos; }`,\"precision mediump float; uniform sampler2D u_tex; uniform float u_alpha; varying vec2 v_uv; void main(){ gl_FragColor=texture2D(u_tex,v_uv)*u_alpha; }\"),this.sp.pos=t.getAttribLocation(this.spriteProg,\"a_pos\"),this.sp.res=t.getUniformLocation(this.spriteProg,\"u_res\"),this.sp.dest=t.getUniformLocation(this.spriteProg,\"u_dest\"),this.sp.tex=t.getUniformLocation(this.spriteProg,\"u_tex\"),this.sp.alpha=t.getUniformLocation(this.spriteProg,\"u_alpha\"),this.glyphBatchProg=this.link(`attribute vec2 a_pos; attribute vec2 a_uv; attribute float a_alpha; uniform vec2 u_res;\r\n       varying vec2 v_uv; varying float v_a;\r\n       void main(){ vec2 c=(a_pos\/u_res)*2.0-1.0; gl_Position=vec4(c.x,-c.y,0.0,1.0); v_uv=a_uv; v_a=a_alpha; }`,`precision mediump float; uniform sampler2D u_tex; varying vec2 v_uv; varying float v_a;\r\n       void main(){ gl_FragColor=texture2D(u_tex,v_uv)*v_a; }`),this.gb.pos=t.getAttribLocation(this.glyphBatchProg,\"a_pos\"),this.gb.uv=t.getAttribLocation(this.glyphBatchProg,\"a_uv\"),this.gb.alpha=t.getAttribLocation(this.glyphBatchProg,\"a_alpha\"),this.gb.res=t.getUniformLocation(this.glyphBatchProg,\"u_res\"),this.gb.tex=t.getUniformLocation(this.glyphBatchProg,\"u_tex\"),this.glyphBuf=t.createBuffer(),this.glyphAtlas=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.glyphAtlas),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),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),this.glyphCanvas=document.createElement(\"canvas\"),this.glyphCanvas.width=this.ATLAS,this.glyphCanvas.height=this.ATLAS,this.glyphCtx=this.glyphCanvas.getContext(\"2d\"),this.quadBuf=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,this.quadBuf),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),t.STATIC_DRAW),this.blurProg=this.link(\"attribute vec2 a_pos; varying vec2 v_uv; void main(){ v_uv=a_pos; gl_Position=vec4(a_pos*2.0-1.0,0.0,1.0); }\",`precision mediump float; uniform sampler2D u_tex; uniform float u_strength; uniform vec2 u_center; uniform vec2 u_pan; varying vec2 v_uv;\r\n       void main(){ vec2 dir=u_strength*(v_uv-u_center)+u_pan; vec4 s=vec4(0.0);\r\n         for(int i=0;i<8;i++){ float t=float(i)\/7.0; s+=texture2D(u_tex, v_uv - dir*t); }\r\n         gl_FragColor=s\/8.0; }`),this.bp.pos=t.getAttribLocation(this.blurProg,\"a_pos\"),this.bp.tex=t.getUniformLocation(this.blurProg,\"u_tex\"),this.bp.strength=t.getUniformLocation(this.blurProg,\"u_strength\"),this.bp.center=t.getUniformLocation(this.blurProg,\"u_center\"),this.bp.pan=t.getUniformLocation(this.blurProg,\"u_pan\"),this.gridProg=this.link(`attribute vec2 a_pos; uniform vec2 u_res; uniform vec4 u_dest; varying vec2 v_uv; ${r}\r\n       void main(){ vec2 px=u_dest.xy+a_pos*u_dest.zw; vec2 c=(zmRot(px,u_res)\/u_res)*2.0-1.0; gl_Position=vec4(c.x,-c.y,0.0,1.0); v_uv=a_pos; }`,`precision mediump float; uniform float u_div; uniform float u_cellpx; uniform float u_linew; varying vec2 v_uv;\r\n       void main(){ vec2 f=fract(v_uv*u_div); vec2 dpx=min(f,1.0-f)*u_cellpx; float d=min(dpx.x,dpx.y);\r\n         float line=(1.0-smoothstep(u_linew*0.5, u_linew*1.5, d))*0.09; gl_FragColor=vec4(0.0,0.0,0.0,line); }`),this.gp.pos=t.getAttribLocation(this.gridProg,\"a_pos\"),this.gp.res=t.getUniformLocation(this.gridProg,\"u_res\"),this.gp.dest=t.getUniformLocation(this.gridProg,\"u_dest\"),this.gp.div=t.getUniformLocation(this.gridProg,\"u_div\"),this.gp.cellpx=t.getUniformLocation(this.gridProg,\"u_cellpx\"),this.gp.linew=t.getUniformLocation(this.gridProg,\"u_linew\"),this.gp.rot=t.getUniformLocation(this.gridProg,\"u_rot\")}drawGrid(t,e,r,i,s,n){let o=this.gl;o.enable(o.SCISSOR_TEST),this.scissorRot(t,e,r,r,s,n),o.useProgram(this.gridProg),o.bindBuffer(o.ARRAY_BUFFER,this.quadBuf),o.enableVertexAttribArray(this.gp.pos),o.vertexAttribPointer(this.gp.pos,2,o.FLOAT,!1,0,0),o.uniform2f(this.gp.res,s,n),o.uniform2f(this.gp.rot,this.rotC,this.rotS),o.uniform4f(this.gp.dest,t,e,r,r);let a=4;o.uniform1f(this.gp.div,a),o.uniform1f(this.gp.cellpx,r\/a),o.uniform1f(this.gp.linew,Math.max(1,i)),o.drawArrays(o.TRIANGLES,0,6),this.drawCalls++,o.disable(o.SCISSOR_TEST)}setOverlay(t){this.overlay=t}setZoomFocus(t,e){this.blurFocusX=t,this.blurFocusY=e}ensureFBO(t,e){if(this.fbo&&this.fboW===t&&this.fboH===e)return;let r=this.gl;this.fboTex&&r.deleteTexture(this.fboTex),this.fbo&&r.deleteFramebuffer(this.fbo),this.fboTex=r.createTexture(),r.bindTexture(r.TEXTURE_2D,this.fboTex),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,t,e,0,r.RGBA,r.UNSIGNED_BYTE,null),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),this.fbo=r.createFramebuffer(),r.bindFramebuffer(r.FRAMEBUFFER,this.fbo),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,this.fboTex,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this.fboW=t,this.fboH=e}texFromCanvas(t){let e=this.gl,r=e.createTexture();return e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_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),r}getPinTex(t){let e=this.pinTex.get(t);if(e)return e;let r=this.dpr(),i=26,s=34,n=document.createElement(\"canvas\");n.width=Math.round(i*r),n.height=Math.round(s*r);let o=n.getContext(\"2d\");o.scale(r,r),o.fillStyle=t,o.fill(new Path2D(\"M13 0C5.8 0 0 5.8 0 13c0 9 13 21 13 21s13-12 13-21C26 5.8 20.2 0 13 0z\")),o.fillStyle=\"#fff\",o.beginPath(),o.arc(13,13,5,0,Math.PI*2),o.fill();let a={tex:this.texFromCanvas(n),w:i,h:s};return this.pinTex.set(t,a),a}getMarkerLabelTex(t){let e=this.markerTex.get(t);if(e)return e;let r=this.dpr(),i=12,s=6,n=3,o=document.createElement(\"canvas\"),a=o.getContext(\"2d\"),m=\"600 \"+i+\"px system-ui, -apple-system, sans-serif\";a.font=m;let g=Math.ceil(a.measureText(t).width)+s*2,b=i+n*2+2;o.width=Math.round(g*r),o.height=Math.round(b*r),a=o.getContext(\"2d\"),a.scale(r,r),a.font=m,a.textAlign=\"center\",a.textBaseline=\"middle\",a.lineJoin=\"round\",a.lineWidth=3,a.strokeStyle=\"#ffffff\",a.strokeText(t,g\/2,b\/2),a.fillStyle=\"#2a2a2a\",a.fillText(t,g\/2,b\/2);let T={tex:this.texFromCanvas(o),w:g,h:b};return this.markerTex.set(t,T),T}getPopupTex(t){let e=this.popupTex.get(t);if(e)return e;let r=this.dpr(),i=\/^\\s*<b>\/i.test(t),s=t.replace(\/<br\\s*\\\/?>\/gi,`\r\n`).replace(\/<[^>]+>\/g,\"\").split(`\r\n`).map(A=>A.trim()).filter(A=>A.length);s.length||s.push(\"\");let n=13,o=18,a=12,m=8,g=8,b=8,T=A=>(A===0&&i?\"700 \":\"400 \")+n+\"px system-ui, sans-serif\",v=document.createElement(\"canvas\").getContext(\"2d\"),l=0;s.forEach((A,R)=>{v.font=T(R),l=Math.max(l,v.measureText(A).width)});let h=Math.ceil(l)+a*2,x=s.length*o+m*2,c=x+g+4,u=document.createElement(\"canvas\");u.width=Math.round(h*r),u.height=Math.round(c*r);let f=u.getContext(\"2d\");f.scale(r,r),f.fillStyle=\"#ffffff\",f.shadowColor=\"rgba(0,0,0,.22)\",f.shadowBlur=8,f.shadowOffsetY=2;let y=1,_=1,E=h-2,M=x-2;f.beginPath(),f.moveTo(y+b,_),f.arcTo(y+E,_,y+E,_+M,b),f.arcTo(y+E,_+M,y,_+M,b),f.arcTo(y,_+M,y,_,b),f.arcTo(y,_,y+E,_,b),f.closePath(),f.fill(),f.beginPath(),f.moveTo(h\/2-g,x-1),f.lineTo(h\/2+g,x-1),f.lineTo(h\/2,x-1+g),f.closePath(),f.fill(),f.shadowColor=\"transparent\",f.textAlign=\"left\",f.textBaseline=\"middle\",s.forEach((A,R)=>{f.font=T(R),f.fillStyle=R===0?\"#1a1a1a\":\"#5a5a5a\",f.fillText(A,a,m+o*R+o\/2)});let w={tex:this.texFromCanvas(u),w:h,h:c};return this.popupTex.set(t,w),w}drawOverlay(t,e,r,i){if(!this.overlay.length)return;let s=this.gl;s.useProgram(this.spriteProg),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),s.bindBuffer(s.ARRAY_BUFFER,this.quadBuf),s.enableVertexAttribArray(this.sp.pos),s.vertexAttribPointer(this.sp.pos,2,s.FLOAT,!1,0,0),s.uniform2f(this.sp.res,r,i),s.uniform1i(this.sp.tex,0),s.uniform1f(this.sp.alpha,1),s.activeTexture(s.TEXTURE0);let n=(o,a,m,g)=>{let b=Math.round((a-o.w\/2)*e),T=Math.round((g?m-o.h:m-o.h\/2)*e);s.bindTexture(s.TEXTURE_2D,o.tex),s.uniform4f(this.sp.dest,b,T,Math.round(o.w*e),Math.round(o.h*e)),s.drawArrays(s.TRIANGLES,0,6),this.drawCalls++};for(let o of this.overlay){let a=j(t,o.lng,o.lat);a.x<-60||a.y<-60||a.x>t.width+60||a.y>t.height+60||(o.label&&n(this.getMarkerLabelTex(o.label),a.x,a.y+6,!1),n(this.getPinTex(o.color),a.x,a.y,!0))}for(let o of this.overlay){if(!o.popup)continue;let a=j(t,o.lng,o.lat),m=this.getPopupTex(o.popup),g=Math.round((a.x-m.w\/2)*e),b=Math.round((a.y-34-(m.h-4))*e);s.bindTexture(s.TEXTURE_2D,m.tex),s.uniform4f(this.sp.dest,g,b,Math.round(m.w*e),Math.round(m.h*e)),s.drawArrays(s.TRIANGLES,0,6),this.drawCalls++}}tileUrl(t,e,r){return this.urlTemplate.replace(\"{z}\",String(t)).replace(\"{x}\",String(e)).replace(\"{y}\",String(r))}getTile(t,e,r,i=1e9){let s=`${t}\/${e}\/${r}`,n=this.tiles.get(s);return n?(!n.built&&!n.failed&&!n.inflight&&(n.wantTime=performance.now(),i<n.priority&&(n.priority=i),n.queued||(n.queued=!0,this.reqQueue.push(n))),n):(n={requested:!0,fills:null,lines:null,labels:[],streetLabels:[],houseNumbers:[],poiLabels:[],built:!1,builtAt:0,failed:!1,fillBuf:null,fillCount:0,lineBuf:null,lineCount:0,frame:0,touchedAt:0,key:s,url:this.tileUrl(t,e,r),priority:i,queued:!0,inflight:!1,wantTime:performance.now()},this.tiles.set(s,n),this.reqQueue.push(n),n)}upload(t){let e=this.gl;t.fillBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t.fillBuf),e.bufferData(e.ARRAY_BUFFER,t.fills,e.STATIC_DRAW),t.fillCount=t.fills.length\/3,t.lineBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t.lineBuf),e.bufferData(e.ARRAY_BUFFER,t.lines,e.STATIC_DRAW),t.lineCount=t.lines.length\/6,t.built=!0,t.builtAt=performance.now(),t.fills=null,t.lines=null,this.builtCount++}scissorRot(t,e,r,i,s,n){let o=this.gl;if(this.rotS===0&&this.rotC===1){o.scissor(Math.floor(t),Math.floor(n-(e+i)),Math.ceil(r),Math.ceil(i));return}let a=s\/2,m=n\/2,g=this.rotC,b=this.rotS,T=1\/0,v=1\/0,l=-1\/0,h=-1\/0,x=[[t,e],[t+r,e],[t+r,e+i],[t,e+i]];for(let[c,u]of x){let f=c-a,y=u-m,_=f*g+y*b+a,E=-f*b+y*g+m;_<T&&(T=_),_>l&&(l=_),E<v&&(v=E),E>h&&(h=E)}o.scissor(Math.floor(T),Math.floor(n-h),Math.ceil(l-T),Math.ceil(h-v))}drawGeom(t,e,r,i,s,n,o,a,m,g,b,T,v){let l=this.gl;l.enable(l.SCISSOR_TEST),this.scissorRot(n,o,a,m,b,T),t.fillCount&&(l.useProgram(this.fillProg),l.uniform2f(this.fp.res,b,T),l.uniform2f(this.fp.rot,this.rotC,this.rotS),l.uniform1f(this.fp.fade,v),l.uniform4f(this.fp.dest,e,r,i,s),l.bindBuffer(l.ARRAY_BUFFER,t.fillBuf),l.enableVertexAttribArray(this.fp.pos),l.vertexAttribPointer(this.fp.pos,2,l.FLOAT,!1,12,0),l.enableVertexAttribArray(this.fp.color),l.vertexAttribPointer(this.fp.color,1,l.FLOAT,!1,12,8),l.drawArrays(l.TRIANGLES,0,t.fillCount),this.drawCalls++),t.lineCount&&(l.useProgram(this.lineProg),l.uniform2f(this.lp.res,b,T),l.uniform2f(this.lp.rot,this.rotC,this.rotS),l.uniform1f(this.lp.fade,v),l.uniform4f(this.lp.dest,e,r,i,s),l.uniform1f(this.lp.dpr,g),l.uniform1f(this.lp.aa,this.lineAA?1:0),l.bindBuffer(l.ARRAY_BUFFER,t.lineBuf),l.enableVertexAttribArray(this.lp.pos),l.vertexAttribPointer(this.lp.pos,2,l.FLOAT,!1,24,0),l.enableVertexAttribArray(this.lp.norm),l.vertexAttribPointer(this.lp.norm,2,l.FLOAT,!1,24,8),l.enableVertexAttribArray(this.lp.hw),l.vertexAttribPointer(this.lp.hw,1,l.FLOAT,!1,24,16),l.enableVertexAttribArray(this.lp.color),l.vertexAttribPointer(this.lp.color,1,l.FLOAT,!1,24,20),l.drawArrays(l.TRIANGLES,0,t.lineCount),this.drawCalls++),l.disable(l.SCISSOR_TEST)}drawTile(t,e,r,i,s,n){let o=e.screenX*r,a=e.screenY*r,m=e.size*r;this.drawGeom(t,o,a,m,m,o,a,m,m,r,i,s,n)}ancestorFor(t,e,r){for(let i=1;i<=5;i++){let s=t-i;if(s<this.minZoom)break;let n=e>>i,o=r>>i,a=this.tiles.get(`${s}\/${n}\/${o}`);if(a&&a.built){let m=1<<i;return{entry:a,ox:(e-(n<<i))\/m,oy:(r-(o<<i))\/m,s:1\/m}}}return null}render(t){if(this.contextLost||this.gl.isContextLost())return;let e=t.bearing||0;this.rotC=Math.cos(e),this.rotS=Math.sin(e);let r=this.gl,i=this.dpr(),s=Math.max(1,Math.round(t.width*i)),n=Math.max(1,Math.round(t.height*i));(this.canvas.width!==s||this.canvas.height!==n)&&(this.canvas.width=s,this.canvas.height=n),this.frame++,this.drawCalls=0;let o=performance.now(),a=t.zoom-this.prevZoomForBlur,m=0,g=0;if(this.blurInit){let L=j(t,this.prevLngForBlur,this.prevLatForBlur);m=(L.x-t.width\/2)\/t.width,g=(L.y-t.height\/2)\/t.height}let b=this.blurInit?t.lng-this.prevLngForBlur:0,T=this.blurInit?t.lat-this.prevLatForBlur:0;this.prevZoomForBlur=t.zoom,this.prevLngForBlur=t.lng,this.prevLatForBlur=t.lat,this.blurInit=!0;let v=Math.min(this.maxBlur,Math.abs(a)*this.blurGain),l=v>this.blurMinStrength,h=l?0:m*this.panGain,x=l?0:-g*this.panGain,c=Math.hypot(h,x);if(c>this.maxPanBlur){let L=this.maxPanBlur\/c;h*=L,x*=L,c=this.maxPanBlur}let u=this.motionBlur&&(l||c>this.blurMinStrength);r.viewport(0,0,s,n),u?(this.ensureFBO(s,n),r.bindFramebuffer(r.FRAMEBUFFER,this.fbo)):r.bindFramebuffer(r.FRAMEBUFFER,null),r.clearColor(this.bg[0],this.bg[1],this.bg[2],1),r.clear(r.COLOR_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA);let f={minZoom:this.minZoom,maxZoom:this.tileMaxZoom},y=[...tt(t,f)],_=!l&&Math.abs(b)<1e-7&&Math.abs(T)<1e-7,E=0;for(let L of y){let F=this.tiles.get(`${L.z}\/${L.x}\/${L.y}`);F&&F.built&&E++}let w=_&&y.length>0&&E<y.length*.5?this.coldRevealBudgetMs:this.uploadBudgetMs,A=0,R=0,C=!1,B=!1,S=[],P=[],H=[],z=[],G=this.showPois&&t.zoom>=this.poiCollectMinZoom,U=this.showHousenumbers&&t.zoom>=this.houseNumberMinZoom-.5,I=t.zoom!==this.lastStreetZoom||e!==this.lastStreetBearing||o-this.lastStreetLayoutT>200;this.lastStreetBearing=e;let N=t.width\/2,O=t.height\/2;y.sort((L,F)=>(L.screenX+L.size\/2-N)**2+(L.screenY+L.size\/2-O)**2-((F.screenX+F.size\/2-N)**2+(F.screenY+F.size\/2-O)**2));let W=0;for(let L of y){let F=this.getTile(L.z,L.x,L.y,W++);if(F.touchedAt=o,F.fills&&!F.built)if(R<w||A===0){let k=performance.now();this.upload(F),R+=performance.now()-k,A++}else C=!0;else!F.built&&!F.failed&&(C=!0);let X=F.built?Math.min(1,(o-F.builtAt)\/220):0,V=L.screenX*i,D=L.screenY*i,Z=L.size*i;if(!F.built||X<1){let k=this.ancestorFor(L.z,L.x,L.y);if(k){k.entry.touchedAt=o;let Y=Z\/k.s;if(this.drawGeom(k.entry,V-k.ox*Y,D-k.oy*Y,Y,Y,V,D,Z,Z,i,s,n,1),!F.built){let q=L.size\/k.s;for(let Q of k.entry.labels)Q.x<k.ox||Q.x>=k.ox+k.s||Q.y<k.oy||Q.y>=k.oy+k.s||S.push({name:Q.name,kind:Q.kind,rank:Q.rank,sx:L.screenX+(Q.x-k.ox)*q,sy:L.screenY+(Q.y-k.oy)*q})}}else F.built||this.drawGrid(V,D,Z,i,s,n)}if(F.built){F.frame=this.frame,X<1&&(B=!0),this.drawTile(F,L,i,s,n,X);for(let k of F.labels)S.push({name:k.name,kind:k.kind,rank:k.rank,sx:L.screenX+k.x*L.size,sy:L.screenY+k.y*L.size});if(I)for(let k of F.streetLabels){let Y=[];for(let q=0;q<k.pts.length;q+=2)Y.push(L.screenX+k.pts[q]*L.size,L.screenY+k.pts[q+1]*L.size);P.push({name:k.name,kind:k.kind,pts:Y})}if(U&&I)for(let k of F.houseNumbers)H.push({text:k.text,sx:L.screenX+k.x*L.size,sy:L.screenY+k.y*L.size});if(G)for(let k of F.poiLabels)z.push({name:k.name,kind:k.kind,rank:k.rank,sx:L.screenX+k.x*L.size,sy:L.screenY+k.y*L.size})}}if(!l&&this.blurInit&&(b!==0||T!==0)){let L=this.lookaheadFrames,F={...t,lng:t.lng+b*L,lat:t.lat+T*L},X=900;for(let V of tt(F,f))this.getTile(V.z,V.x,V.y,X++).touchedAt=o}if(this.dispatchTiles(),this.rotS!==0){let L=t.width\/2,F=t.height\/2,X=this.rotC,V=this.rotS;for(let D of S){let Z=D.sx-L,k=D.sy-F;D.sx=Z*X+k*V+L,D.sy=-Z*V+k*X+F}for(let D of P){let Z=D.pts;for(let k=0;k<Z.length;k+=2){let Y=Z[k]-L,q=Z[k+1]-F;Z[k]=Y*X+q*V+L,Z[k+1]=-Y*V+q*X+F}}for(let D of H){let Z=D.sx-L,k=D.sy-F;D.sx=Z*X+k*V+L,D.sy=-Z*V+k*X+F}for(let D of z){let Z=D.sx-L,k=D.sy-F;D.sx=Z*X+k*V+L,D.sy=-Z*V+k*X+F}}if(this.drawLabelsGL(S,t.width,t.height,i,o,a),this.drawStreetLabelsGL(P,t.width,t.height,i,o,t.zoom,a,t,I),this.drawPOILabelsGL(z,t,i,o,a),this.drawHouseNumbersGL(H,i,t,I),this.drawOverlay(t,i,s,n),u){r.bindFramebuffer(r.FRAMEBUFFER,null),r.viewport(0,0,s,n),r.disable(r.BLEND),r.useProgram(this.blurProg),r.bindBuffer(r.ARRAY_BUFFER,this.quadBuf),r.enableVertexAttribArray(this.bp.pos),r.vertexAttribPointer(this.bp.pos,2,r.FLOAT,!1,0,0),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.fboTex),r.uniform1i(this.bp.tex,0);let L=this.blurFocusX!=null?this.blurFocusX\/t.width:.5,F=this.blurFocusY!=null?this.blurFocusY\/t.height:.5;r.uniform2f(this.bp.center,L,1-F),r.uniform1f(this.bp.strength,v*(a>=0?1:-1)),r.uniform2f(this.bp.pan,h,x),r.drawArrays(r.TRIANGLES,0,6),r.enable(r.BLEND),this.onNeedRender()}this.lastRenderMs=performance.now()-o,C||B||this.labelsFading?this.onNeedRender():this.schedulePreload(t),this.tiles.size>this.maxTiles&&(this.pending.size===0||o-this.lastEvict>400)&&(this.evict(),this.lastEvict=o)}schedulePreload(t){clearTimeout(this.preloadTimer);let e={lng:t.lng,lat:t.lat,zoom:t.zoom,width:t.width,height:t.height};this.preloadTimer=window.setTimeout(()=>this.preload(e),200)}preload(t){let e={minZoom:this.minZoom,maxZoom:this.tileMaxZoom},r=rt(t,e),i=this.preloadRing,s=performance.now(),n=(a,m,g)=>{if(a<this.minZoom||a>this.tileMaxZoom)return;let b=1<<a;g<0||g>=b||(this.getTile(a,(m%b+b)%b,g,1e6).touchedAt=s)},o=tt(t,e);for(let a of o)for(let m=-i;m<=i;m++)for(let g=-i;g<=i;g++)n(r,a.x+g,a.y+m);for(let a of o)this.preloadZoomOut&&n(r-1,a.x>>1,a.y>>1),this.preloadZoomIn&&(n(r+1,a.x*2,a.y*2),n(r+1,a.x*2+1,a.y*2),n(r+1,a.x*2,a.y*2+1),n(r+1,a.x*2+1,a.y*2+1));this.dispatchTiles(),this.tileCache&&s-this.lastTrim>15e3&&(this.lastTrim=s,this.trimTileCache())}getLabelTex(t){let e=this.labelTex.get(t);if(e)return e;let r=this.dpr(),i=14,s=4,n=document.createElement(\"canvas\"),o=n.getContext(\"2d\"),a=\"400 \"+i+'px \"Helvetica World\", \"Helvetica Neue\", Helvetica, \"Mardoto\", Arial, sans-serif';o.font=a;let m=Math.ceil(o.measureText(t).width)+s*2,g=i+s*2+4;n.width=Math.round(m*r),n.height=Math.round(g*r),o=n.getContext(\"2d\"),o.scale(r,r),o.font=a,o.textAlign=\"center\",o.textBaseline=\"middle\",o.lineJoin=\"round\",o.lineWidth=3,o.strokeStyle=this.labelHalo,o.strokeText(t,m\/2,g\/2),o.fillStyle=this.labelColor,o.fillText(t,m\/2,g\/2);let b=this.gl,T=b.createTexture();b.bindTexture(b.TEXTURE_2D,T),b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,n),b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE);let v={tex:T,w:m,h:g};return this.labelTex.set(t,v),v}drawLabelsGL(t,e,r,i,s,n){let o=new Map;for(let c of t){let u=o.get(c.name);(!u||c.rank>u.rank)&&o.set(c.name,c)}let a=[...o.values()].sort((c,u)=>u.rank-c.rank),m=[],g=new Set;for(let c of a){if(g.size>=42)break;if(c.sx<0||c.sy<0||c.sx>e||c.sy>r)continue;let u=this.getLabelTex(c.name),f=[c.sx-u.w\/2,c.sy-u.h\/2,c.sx+u.w\/2,c.sy+u.h\/2],y=!1;for(let _ of m)if(!(f[2]<_[0]||f[0]>_[2]||f[3]<_[1]||f[1]>_[3])){y=!0;break}y||(m.push(f),g.add(c.name))}this._labelRects=m;for(let c of g){let u=o.get(c),f=this.labelState.get(c);f||(f={opacity:0,target:1,sx:u.sx,sy:u.sy},this.labelState.set(c,f)),f.target=1,f.sx=u.sx,f.sy=u.sy}for(let[c,u]of this.labelState)if(!g.has(c)){u.target=0;let f=o.get(c);f&&(u.sx=f.sx,u.sy=f.sy)}let b=Math.min(s-this.lastLabelT,60);this.lastLabelT=s;let T=1-Math.exp(-b\/55),v=Math.min(1,Math.abs(n)*5.5),l=Math.max(T,v);this.labelsFading=!1;let h=this.gl,x=!1;for(let[c,u]of this.labelState){if(u.opacity+=(u.target-u.opacity)*l,u.target===0&&u.opacity<.02){this.labelState.delete(c);continue}if(Math.abs(u.target-u.opacity)>.01&&(this.labelsFading=!0),u.opacity<.02)continue;let f=this.getLabelTex(c);x||(h.useProgram(this.spriteProg),h.blendFunc(h.ONE,h.ONE_MINUS_SRC_ALPHA),h.bindBuffer(h.ARRAY_BUFFER,this.quadBuf),h.enableVertexAttribArray(this.sp.pos),h.vertexAttribPointer(this.sp.pos,2,h.FLOAT,!1,0,0),h.uniform2f(this.sp.res,e*i,r*i),h.uniform1i(this.sp.tex,0),h.activeTexture(h.TEXTURE0),x=!0),h.uniform1f(this.sp.alpha,u.opacity),h.bindTexture(h.TEXTURE_2D,f.tex),h.uniform4f(this.sp.dest,Math.round((u.sx-f.w\/2)*i),Math.round((u.sy-f.h\/2)*i),Math.round(f.w*i),Math.round(f.h*i)),h.drawArrays(h.TRIANGLES,0,6),this.drawCalls++}}resetGlyphAtlas(t){this.glyphUV.clear(),this.iconUV.clear(),this.glyphPen={x:0,y:0,rowH:0},this.glyphAtlasDpr=t,this.glyphCtx.clearRect(0,0,this.ATLAS,this.ATLAS),this.glyphAtlasDirty=!0}ensureIcon(t,e){e!==this.glyphAtlasDpr&&this.resetGlyphAtlas(e);let r=pt[t]||pt._default,i=this.poiCategoryColor[t]||this.poiIconColor,s=r+\"|\"+i,n=this.iconUV.get(s);if(n)return n;let o=(_t[r]||_t[pt._default]).map(_=>new Path2D(_)),a=Math.round(this.poiBadgeSize*e),m=Math.round(3*e),g=a+m*2,b=a+m*2;this.glyphPen.x+g>this.ATLAS&&(this.glyphPen.x=0,this.glyphPen.y+=this.glyphPen.rowH,this.glyphPen.rowH=0);let T=this.glyphPen.x,v=this.glyphPen.y;this.glyphPen.x+=g,b>this.glyphPen.rowH&&(this.glyphPen.rowH=b);let l=this.glyphCtx,h=T+m+a\/2,x=v+m+a\/2,c=a\/2-Math.max(1,e);l.save(),l.shadowColor=\"rgba(0,0,0,0.30)\",l.shadowBlur=2*e,l.shadowOffsetY=.5*e,l.beginPath(),l.arc(h,x,c,0,Math.PI*2),l.fillStyle=this.poiBadgeBg,l.fill(),l.shadowColor=\"transparent\",l.lineWidth=Math.max(1,1*e),l.strokeStyle=\"rgba(0,0,0,0.16)\",l.stroke(),l.translate(h,x);let u=a*this.poiIconFill\/24;l.scale(u,u),l.translate(-12,-12),l.lineCap=\"round\",l.lineJoin=\"round\",l.strokeStyle=i,l.lineWidth=2.2;for(let _ of o)l.stroke(_);l.restore();let f=this.ATLAS,y={u0:T\/f,v0:v\/f,u1:(T+g)\/f,v1:(v+b)\/f,cw:g,ch:b};return this.iconUV.set(s,y),this.glyphAtlasDirty=!0,y}ensureGlyph(t,e,r=11){e!==this.glyphAtlasDpr&&this.resetGlyphAtlas(e);let i=r===11?t:t+\"\u0001\"+r,s=this.glyphUV.get(i);if(s)return s;let n=r*e,o=3*e,a=this.glyphCtx,m=\"400 \"+n+'px \"Helvetica World\", \"Helvetica Neue\", Helvetica, \"Mardoto\", Arial, sans-serif';a.font=m;let g=a.measureText(t).width,b=Math.ceil(g)+o*2,T=Math.ceil(n)+o*2+2;this.glyphPen.x+b>this.ATLAS&&(this.glyphPen.x=0,this.glyphPen.y+=this.glyphPen.rowH,this.glyphPen.rowH=0);let v=this.glyphPen.x,l=this.glyphPen.y;this.glyphPen.x+=b,T>this.glyphPen.rowH&&(this.glyphPen.rowH=T),a.textAlign=\"center\",a.textBaseline=\"middle\",a.lineJoin=\"round\",a.lineWidth=2.5*e,a.strokeStyle=this.labelHalo,a.strokeText(t,v+b\/2,l+T\/2),a.fillStyle=this.streetColor,a.fillText(t,v+b\/2,l+T\/2);let h=this.ATLAS,x={u0:v\/h,v0:l\/h,u1:(v+b)\/h,v1:(l+T)\/h,cw:b,ch:T,adv:g\/e};return this.glyphUV.set(i,x),this.glyphAtlasDirty=!0,x}uploadGlyphAtlas(){if(!this.glyphAtlasDirty)return;let t=this.gl;t.bindTexture(t.TEXTURE_2D,this.glyphAtlas),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,this.glyphCanvas),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),this.glyphAtlasDirty=!1}layoutStreet(t,e,r){let i=e.length\/2;if(i<2)return null;let s=0,n=0;for(let y=1;y<i;y++)s+=e[y*2]-e[(y-1)*2],n+=e[y*2+1]-e[(y-1)*2+1];let o=Math.abs(s)<.001?n<=0:s>=0,a=[],m=[];for(let y=0;y<i;y++){let _=o?y:i-1-y;a.push(e[_*2]),m.push(e[_*2+1])}let g=[],b=[0],T=0;for(let y=1;y<i;y++){let _=Math.hypot(a[y]-a[y-1],m[y]-m[y-1]);g.push(_),T+=_,b.push(T)}if(T<12)return null;let v=[...t],l=1.2,h=[],x=0;for(let y=0;y<v.length;y++){let _=this.ensureGlyph(v[y],r).adv;h.push(_),x+=_+(y?l:0)}if(x>T-6)return null;let c=y=>{let _=Math.max(0,Math.min(T,y)),E=1;for(;E<i-1&&b[E]<_;)E++;let M=(_-b[E-1])\/(g[E-1]||1);return{x:a[E-1]+(a[E]-a[E-1])*M,y:m[E-1]+(m[E]-m[E-1])*M,ang:Math.atan2(m[E]-m[E-1],a[E]-a[E-1])}},u=(T-x)\/2,f=[];for(let y=0;y<v.length;y++){let _=h[y];if(v[y]!==\" \"){let E=c(u+_\/2),M=E.ang;Math.cos(M)<0&&(M+=Math.PI),f.push({ch:v[y],cx:E.x,cy:E.y,rot:M})}u+=_+l}return f.length?{glyphs:f}:null}drawStreetLabelsGL(t,e,r,i,s,n,o,a,m){var f;if(m){let y=new Map;for(let R of t){if(n<((f=this.streetMinZoom[R.kind])!=null?f:16))continue;let C=0,B=R.pts;for(let P=2;P<B.length;P+=2)C+=Math.hypot(B[P]-B[P-2],B[P+1]-B[P-1]);let S=y.get(R.name);(!S||C>S.len)&&y.set(R.name,{name:R.name,kind:R.kind,pts:R.pts,len:C})}let _={motorway:6,trunk:5,primary:4,secondary:3,tertiary:2,residential:1,living_street:1},E=[...y.values()].sort((R,C)=>(_[C.kind]||0)-(_[R.kind]||0)||C.len-R.len),M=new Map;for(let R of E){let C=this.layoutStreet(R.name,R.pts,i);C&&M.set(R.name,C.glyphs)}let w=this._labelRects.slice(),A=new Set;for(let R of E){if(A.size>=80)break;let C=M.get(R.name);if(!C)continue;let B=[],S=!1;for(let P of C){let H=[P.cx-5,P.cy-6,P.cx+5,P.cy+6];B.push(H);for(let z of w)if(!(H[2]<z[0]||H[0]>z[2]||H[3]<z[1]||H[1]>z[3])){S=!0;break}if(S)break}if(!S){for(let P of B)w.push(P);A.add(R.name)}}for(let[R,C]of M){let B=this.streetState.get(R);B||(B={opacity:0,target:0,glyphs:C},this.streetState.set(R,B)),B.glyphs=C,B.target=A.has(R)?1:0}for(let[R,C]of this.streetState)M.has(R)||(C.target=0);this._occupiedRects=w,this.lastStreetZoom=n,this.lastStreetCX=a.lng,this.lastStreetCY=a.lat,this.lastStreetLayoutT=s}let g=0,b=0;if(!m){let y=j(a,this.lastStreetCX,this.lastStreetCY);g=y.x-e\/2,b=y.y-r\/2}let T=Math.min(s-this.lastStreetT,60);this.lastStreetT=s;let v=Math.max(1-Math.exp(-T\/55),Math.min(1,Math.abs(o)*5.5)),l=this.glyphScratch,h=0;for(let[y,_]of this.streetState){if(_.opacity+=(_.target-_.opacity)*v,_.target===0&&_.opacity<.02){this.streetState.delete(y);continue}if(Math.abs(_.target-_.opacity)>.01&&(this.labelsFading=!0),_.opacity<.02)continue;let E=_.opacity;for(let M of _.glyphs){if(h+30>l.length){let D=new Float32Array(l.length*2);D.set(l),this.glyphScratch=l=D}let w=this.ensureGlyph(M.ch,i),A=(M.cx+g)*i,R=(M.cy+b)*i,C=w.cw\/2,B=w.ch\/2,S=Math.cos(M.rot),P=Math.sin(M.rot),H=A-C*S+B*P,z=R-C*P-B*S,G=A+C*S+B*P,U=R+C*P-B*S,I=A-C*S-B*P,N=R-C*P+B*S,O=A+C*S-B*P,W=R+C*P+B*S,L=w.u0,F=w.v0,X=w.u1,V=w.v1;l[h++]=H,l[h++]=z,l[h++]=L,l[h++]=F,l[h++]=E,l[h++]=G,l[h++]=U,l[h++]=X,l[h++]=F,l[h++]=E,l[h++]=I,l[h++]=N,l[h++]=L,l[h++]=V,l[h++]=E,l[h++]=I,l[h++]=N,l[h++]=L,l[h++]=V,l[h++]=E,l[h++]=G,l[h++]=U,l[h++]=X,l[h++]=F,l[h++]=E,l[h++]=O,l[h++]=W,l[h++]=X,l[h++]=V,l[h++]=E}}if(!h)return;this.uploadGlyphAtlas();let x=this.gl;x.useProgram(this.glyphBatchProg),x.blendFunc(x.ONE,x.ONE_MINUS_SRC_ALPHA),x.bindBuffer(x.ARRAY_BUFFER,this.glyphBuf),x.bufferData(x.ARRAY_BUFFER,l.subarray(0,h),x.DYNAMIC_DRAW);let c=4,u=5*c;x.enableVertexAttribArray(this.gb.pos),x.vertexAttribPointer(this.gb.pos,2,x.FLOAT,!1,u,0),x.enableVertexAttribArray(this.gb.uv),x.vertexAttribPointer(this.gb.uv,2,x.FLOAT,!1,u,2*c),x.enableVertexAttribArray(this.gb.alpha),x.vertexAttribPointer(this.gb.alpha,1,x.FLOAT,!1,u,4*c),x.uniform2f(this.gb.res,e*i,r*i),x.activeTexture(x.TEXTURE0),x.bindTexture(x.TEXTURE_2D,this.glyphAtlas),x.uniform1i(this.gb.tex,0),x.drawArrays(x.TRIANGLES,0,h\/5),this.drawCalls++,x.disableVertexAttribArray(this.gb.uv),x.disableVertexAttribArray(this.gb.alpha)}drawPOILabelsGL(t,e,r,i,s){var E;let n=e.width,o=e.height,a=this.poiTextPx,m=new Map;for(let M of t){let w=(E=this.landmarkMinZoom[M.kind])!=null?E:this.poiDefaultMinZoom;if(e.zoom<w)continue;let A=m.get(M.name);(!A||M.rank>A.rank)&&m.set(M.name,M)}let g=[...m.values()].sort((M,w)=>w.rank-M.rank||(M.name<w.name?-1:M.name>w.name?1:0)),b=g.filter(M=>{var w,A;return((A=(w=this.poiState.get(M.name))==null?void 0:w.opacity)!=null?A:0)>.5}).concat(g.filter(M=>{var w,A;return((A=(w=this.poiState.get(M.name))==null?void 0:w.opacity)!=null?A:0)<=.5})),T=this._occupiedRects.slice();this._poiRects=[];let v=new Set,l=40;for(let M of b){if(v.size>=this.poiCap)break;if(M.sx<-l||M.sy<-l||M.sx>n+l||M.sy>o+l)continue;let w=0;for(let P of M.name)w+=this.ensureGlyph(P,r,a).adv;let A=this.poiBadgeSize\/2,R=a+3,C=Math.max(A,w\/2),B=[M.sx-C,M.sy-A,M.sx+C,M.sy+A+this.poiLabelGap+R],S=!1;for(let P of T)if(!(B[2]<P[0]||B[0]>P[2]||B[3]<P[1]||B[1]>P[3])){S=!0;break}S||(T.push(B),this._poiRects.push(B),v.add(M.name))}for(let M of v){let w=m.get(M),A=this.poiState.get(M);A||(A={opacity:0,target:1,sx:w.sx,sy:w.sy,kind:w.kind},this.poiState.set(M,A)),A.target=1,A.sx=w.sx,A.sy=w.sy,A.kind=w.kind}for(let[M,w]of this.poiState)if(!v.has(M)){w.target=0;let A=m.get(M);A&&(w.sx=A.sx,w.sy=A.sy)}let h=Math.min(i-this.lastPoiT,60);this.lastPoiT=i;let x=Math.max(1-Math.exp(-h\/55),Math.min(1,Math.abs(s)*5.5)),c=this.glyphScratch,u=0;for(let[M,w]of this.poiState){if(w.opacity+=(w.target-w.opacity)*x,w.target===0&&w.opacity<.02){this.poiState.delete(M);continue}if(Math.abs(w.target-w.opacity)>.01&&(this.labelsFading=!0),w.opacity<.02)continue;let A=w.opacity,R=[...M],C=[],B=0;for(let z of R){let G=this.ensureGlyph(z,r,a).adv;C.push(G),B+=G}let S=this.ensureIcon(w.kind,r);if(u+30>c.length){let z=new Float32Array(c.length*2);z.set(c),this.glyphScratch=c=z}{let z=Math.round(w.sx*r-S.cw\/2),G=Math.round(w.sy*r-S.ch\/2),U=z+S.cw,I=G+S.ch;c[u++]=z,c[u++]=G,c[u++]=S.u0,c[u++]=S.v0,c[u++]=A,c[u++]=U,c[u++]=G,c[u++]=S.u1,c[u++]=S.v0,c[u++]=A,c[u++]=z,c[u++]=I,c[u++]=S.u0,c[u++]=S.v1,c[u++]=A,c[u++]=z,c[u++]=I,c[u++]=S.u0,c[u++]=S.v1,c[u++]=A,c[u++]=U,c[u++]=G,c[u++]=S.u1,c[u++]=S.v0,c[u++]=A,c[u++]=U,c[u++]=I,c[u++]=S.u1,c[u++]=S.v1,c[u++]=A}let P=w.sx-B\/2,H=(w.sy+this.poiBadgeSize\/2+this.poiLabelGap+a\/2)*r;for(let z=0;z<R.length;z++){let G=C[z];if(R[z]===\" \"){P+=G;continue}let U=this.ensureGlyph(R[z],r,a);if(u+30>c.length){let L=new Float32Array(c.length*2);L.set(c),this.glyphScratch=c=L}let I=Math.round((P+G\/2)*r-U.cw\/2),N=Math.round(H-U.ch\/2),O=I+U.cw,W=N+U.ch;c[u++]=I,c[u++]=N,c[u++]=U.u0,c[u++]=U.v0,c[u++]=A,c[u++]=O,c[u++]=N,c[u++]=U.u1,c[u++]=U.v0,c[u++]=A,c[u++]=I,c[u++]=W,c[u++]=U.u0,c[u++]=U.v1,c[u++]=A,c[u++]=I,c[u++]=W,c[u++]=U.u0,c[u++]=U.v1,c[u++]=A,c[u++]=O,c[u++]=N,c[u++]=U.u1,c[u++]=U.v0,c[u++]=A,c[u++]=O,c[u++]=W,c[u++]=U.u1,c[u++]=U.v1,c[u++]=A,P+=G}}if(!u)return;this.uploadGlyphAtlas();let f=this.gl;f.useProgram(this.glyphBatchProg),f.blendFunc(f.ONE,f.ONE_MINUS_SRC_ALPHA),f.bindBuffer(f.ARRAY_BUFFER,this.glyphBuf),f.bufferData(f.ARRAY_BUFFER,c.subarray(0,u),f.DYNAMIC_DRAW);let y=4,_=5*y;f.enableVertexAttribArray(this.gb.pos),f.vertexAttribPointer(this.gb.pos,2,f.FLOAT,!1,_,0),f.enableVertexAttribArray(this.gb.uv),f.vertexAttribPointer(this.gb.uv,2,f.FLOAT,!1,_,2*y),f.enableVertexAttribArray(this.gb.alpha),f.vertexAttribPointer(this.gb.alpha,1,f.FLOAT,!1,_,4*y),f.uniform2f(this.gb.res,n*r,o*r),f.activeTexture(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,this.glyphAtlas),f.uniform1i(this.gb.tex,0),f.drawArrays(f.TRIANGLES,0,u\/5),this.drawCalls++,f.disableVertexAttribArray(this.gb.uv),f.disableVertexAttribArray(this.gb.alpha)}drawHouseNumbersGL(t,e,r,i){let s=r.width,n=r.height,o=this.houseNumberMinZoom,a=Math.max(0,Math.min(1,(r.zoom-(o-.5))\/.5));if(!this.showHousenumbers||a<=.01){this.housePlaced=[];return}let m=Math.min(this.houseScaleMax,this.houseScale+Math.max(0,r.zoom-o)*this.houseScaleZoomGain);if(i){let u=[],f=this._occupiedRects.concat(this._poiRects);for(let y of t){if(u.length>=this.houseNumberCap)break;if(y.sx<-40||y.sx>s+40||y.sy<-40||y.sy>n+40)continue;let _=0;for(let R of y.text)_+=this.ensureGlyph(R,e).adv*m;let E=_\/2,M=6*m+2,w=[y.sx-E,y.sy-M,y.sx+E,y.sy+M],A=!1;for(let R of f)if(!(w[2]<R[0]||w[0]>R[2]||w[3]<R[1]||w[1]>R[3])){A=!0;break}A||(f.push(w),u.push(y))}this.housePlaced=u,this.lastHouseCX=r.lng,this.lastHouseCY=r.lat}if(!this.housePlaced.length)return;let g=0,b=0;if(!i){let u=j(r,this.lastHouseCX,this.lastHouseCY);g=u.x-s\/2,b=u.y-n\/2}let T=a,v=this.glyphScratch,l=0;for(let u of this.housePlaced){let f=[...u.text],y=[],_=0;for(let w of f){let A=this.ensureGlyph(w,e).adv*m;y.push(A),_+=A}let E=u.sx+g-_\/2,M=(u.sy+b)*e;for(let w=0;w<f.length;w++){let A=y[w];if(f[w]===\" \"){E+=A;continue}let R=this.ensureGlyph(f[w],e);if(l+30>v.length){let W=new Float32Array(v.length*2);W.set(v),this.glyphScratch=v=W}let C=(E+A\/2)*e,B=R.cw\/2*m,S=R.ch\/2*m,P=C-B,H=C+B,z=M-S,G=M+S,U=R.u0,I=R.v0,N=R.u1,O=R.v1;v[l++]=P,v[l++]=z,v[l++]=U,v[l++]=I,v[l++]=T,v[l++]=H,v[l++]=z,v[l++]=N,v[l++]=I,v[l++]=T,v[l++]=P,v[l++]=G,v[l++]=U,v[l++]=O,v[l++]=T,v[l++]=P,v[l++]=G,v[l++]=U,v[l++]=O,v[l++]=T,v[l++]=H,v[l++]=z,v[l++]=N,v[l++]=I,v[l++]=T,v[l++]=H,v[l++]=G,v[l++]=N,v[l++]=O,v[l++]=T,E+=A}}if(!l)return;this.uploadGlyphAtlas();let h=this.gl;h.useProgram(this.glyphBatchProg),h.blendFunc(h.ONE,h.ONE_MINUS_SRC_ALPHA),h.bindBuffer(h.ARRAY_BUFFER,this.glyphBuf),h.bufferData(h.ARRAY_BUFFER,v.subarray(0,l),h.DYNAMIC_DRAW);let x=4,c=5*x;h.enableVertexAttribArray(this.gb.pos),h.vertexAttribPointer(this.gb.pos,2,h.FLOAT,!1,c,0),h.enableVertexAttribArray(this.gb.uv),h.vertexAttribPointer(this.gb.uv,2,h.FLOAT,!1,c,2*x),h.enableVertexAttribArray(this.gb.alpha),h.vertexAttribPointer(this.gb.alpha,1,h.FLOAT,!1,c,4*x),h.uniform2f(this.gb.res,s*e,n*e),h.activeTexture(h.TEXTURE0),h.bindTexture(h.TEXTURE_2D,this.glyphAtlas),h.uniform1i(this.gb.tex,0),h.drawArrays(h.TRIANGLES,0,l\/5),this.drawCalls++,h.disableVertexAttribArray(this.gb.uv),h.disableVertexAttribArray(this.gb.alpha)}evict(){let e=performance.now(),r=[...this.tiles.entries()].sort((s,n)=>s[1].touchedAt-n[1].touchedAt),i=this.tiles.size-this.maxTiles;for(let[s,n]of r){if(i<=0||e-n.touchedAt<1500)break;n.fillBuf&&this.gl.deleteBuffer(n.fillBuf),n.lineBuf&&this.gl.deleteBuffer(n.lineBuf),this.tiles.delete(s);for(let[o,a]of this.pending)if(a===n){this.pending.delete(o);break}i--}}async trimTileCache(){if(!(!this.tileCache||typeof caches==\"undefined\"))try{let t=await caches.open(\"zeromap-tiles-v1\"),e=await t.keys(),r=e.length-this.maxCachedTiles;for(let i=0;i<r;i++)await t.delete(e[i])}catch{}}setTileCache(t){this.tileCache=t;for(let e of this.workers)e.postMessage({type:\"config\",tileCache:t})}setStyle(t){this.bg=t.background,this.labelColor=t.label.color,this.labelHalo=t.label.halo,this.streetColor=t.label.street,this.currentStyleLayers=t.layers,this.pushStyleToWorkers(),this.clearBuiltTiles();for(let e of this.labelTex.values())this.gl.deleteTexture(e.tex);this.labelTex.clear(),this.resetGlyphAtlas(this.dpr()),this.onNeedRender()}setPerformanceMode(t){t!==this.performanceMode&&(this.performanceMode=t,this.motionBlur=t===\"full\"?(navigator.hardwareConcurrency||4)>=4:!1,this.pushStyleToWorkers(),this.clearBuiltTiles(),this.onNeedRender())}workerStyleLayers(){let t=this.performanceMode===\"minimal\"?this.minimalDropSources:this.performanceMode===\"lite\"?this.liteDropSources:null;return t&&t.length?this.currentStyleLayers.filter(e=>!t.includes(e.source)):this.currentStyleLayers}pushStyleToWorkers(){let t=this.workerStyleLayers();for(let e of this.workers)e.postMessage({type:\"style\",layers:t})}clearBuiltTiles(){for(let t of this.tiles.values())t.fillBuf&&this.gl.deleteBuffer(t.fillBuf),t.lineBuf&&this.gl.deleteBuffer(t.lineBuf);this.tiles.clear(),this.pending.clear(),this.reqQueue=[],this.streetState.clear(),this.housePlaced=[],this.poiState.clear(),this.builtCount=0}stats(){let t=0;for(let e of this.tiles.values())e.built&&t++;return{tiles:this.tiles.size,built:t,drawCalls:this.drawCalls,lastRenderMs:+this.lastRenderMs.toFixed(3),workers:this.workers.length}}};var dt=class{constructor(t,e=0,r=t.length){this.buf=t,this.pos=e,this.end=r}varint(){let t=0,e=0,r;do r=this.buf[this.pos++],t+=(r&127)*Math.pow(2,e),e+=7;while(r>=128);return t}svarint(){let t=this.varint();return t%2===1?-(t+1)\/2:t\/2}string(t){let e=new TextDecoder().decode(this.buf.subarray(this.pos,this.pos+t));return this.pos+=t,e}skip(t){t===0?this.varint():t===2?this.pos+=this.varint():t===5?this.pos+=4:t===1&&(this.pos+=8)}float(){let t=new DataView(this.buf.buffer,this.buf.byteOffset+this.pos,4);return this.pos+=4,t.getFloat32(0,!0)}double(){let t=new DataView(this.buf.buffer,this.buf.byteOffset+this.pos,8);return this.pos+=8,t.getFloat64(0,!0)}};function ft(p,t,e){for(;p.pos<t;){let r=p.varint();e(r>>3,r&7)}}function Wt(p,t){let e=\"\";return ft(p,t,(r,i)=>{r===1&&i===2?e=p.string(p.varint()):r===2&&i===5?e=p.float():r===3&&i===1?e=p.double():r===4&&i===0||r===5&&i===0?e=p.varint():r===6&&i===0?e=p.svarint():r===7&&i===0?e=p.varint()!==0:p.skip(i)}),e}function Yt(p,t){let e=[],r=[],i=0,s=0;for(;p.pos<t;){let n=p.varint(),o=n&7,a=n>>3;if(o===1)for(let m=0;m<a;m++)r.length&&e.push(r),r=[],i+=p.svarint(),s+=p.svarint(),r.push(i,s);else if(o===2)for(let m=0;m<a;m++)i+=p.svarint(),s+=p.svarint(),r.push(i,s);else o===7&&r.length&&(e.push(r),r=[])}return r.length&&e.push(r),e}function qt(p,t){let e=\"\",r=4096,i=[],s=[],n=[];ft(p,t,(a,m)=>{if(a===1&&m===2)e=p.string(p.varint());else if(a===5&&m===0)r=p.varint();else if(a===3&&m===2)i.push(p.string(p.varint()));else if(a===4&&m===2){let g=p.varint(),b=p.pos+g;s.push(Wt(p,b)),p.pos=b}else if(a===2&&m===2){let g=p.varint();n.push([p.pos,p.pos+g]),p.pos+=g}else p.skip(m)});let o=[];for(let[a,m]of n){let g=new dt(p.buf,a,m),b=0,T=0,v=[],l=[];ft(g,m,(x,c)=>{if(x===1&&c===0)b=g.varint();else if(x===3&&c===0)T=g.varint();else if(x===2&&c===2){let u=g.varint(),f=g.pos+u;for(;g.pos<f;)v.push(g.varint())}else if(x===4&&c===2){let u=g.varint();l=Yt(g,g.pos+u)}else g.skip(c)});let h={};for(let x=0;x+1<v.length;x+=2){let c=i[v[x]],u=s[v[x+1]];c!==void 0&&u!==void 0&&(h[c]=u)}o.push({type:T,rings:l,props:h,id:b})}return{name:e,extent:r,features:o}}function Ft(p){let t=new dt(p),e=[];return ft(t,t.end,(r,i)=>{if(r===3&&i===2){let s=t.varint(),n=t.pos+s;e.push(qt(t,n)),t.pos=n}else t.skip(i)}),e}function Kt(p,t){return new st(p,t)}return It(Qt);})();\r\n\/\/# sourceMappingURL=zeromap-vec.global.js.map\r\n<\/script>\r\n\t\t<script type=\"text\/plain\" id=\"lusarev-zmv-worker\">\"use strict\";(()=>{var E=class{constructor(n,t=0,r=n.length){this.buf=n,this.pos=t,this.end=r}varint(){let n=0,t=0,r;do r=this.buf[this.pos++],n+=(r&127)*Math.pow(2,t),t+=7;while(r>=128);return n}svarint(){let n=this.varint();return n%2===1?-(n+1)\/2:n\/2}string(n){let t=new TextDecoder().decode(this.buf.subarray(this.pos,this.pos+n));return this.pos+=n,t}skip(n){n===0?this.varint():n===2?this.pos+=this.varint():n===5?this.pos+=4:n===1&&(this.pos+=8)}float(){let n=new DataView(this.buf.buffer,this.buf.byteOffset+this.pos,4);return this.pos+=4,n.getFloat32(0,!0)}double(){let n=new DataView(this.buf.buffer,this.buf.byteOffset+this.pos,8);return this.pos+=8,n.getFloat64(0,!0)}};function Z(e,n,t){for(;e.pos<n;){let r=e.varint();t(r>>3,r&7)}}function be(e,n){let t=\"\";return Z(e,n,(r,i)=>{r===1&&i===2?t=e.string(e.varint()):r===2&&i===5?t=e.float():r===3&&i===1?t=e.double():r===4&&i===0||r===5&&i===0?t=e.varint():r===6&&i===0?t=e.svarint():r===7&&i===0?t=e.varint()!==0:e.skip(i)}),t}function xe(e,n){let t=[],r=[],i=0,o=0;for(;e.pos<n;){let s=e.varint(),a=s&7,l=s>>3;if(a===1)for(let f=0;f<l;f++)r.length&&t.push(r),r=[],i+=e.svarint(),o+=e.svarint(),r.push(i,o);else if(a===2)for(let f=0;f<l;f++)i+=e.svarint(),o+=e.svarint(),r.push(i,o);else a===7&&r.length&&(t.push(r),r=[])}return r.length&&t.push(r),t}function ge(e,n){let t=\"\",r=4096,i=[],o=[],s=[];Z(e,n,(l,f)=>{if(l===1&&f===2)t=e.string(e.varint());else if(l===5&&f===0)r=e.varint();else if(l===3&&f===2)i.push(e.string(e.varint()));else if(l===4&&f===2){let u=e.varint(),p=e.pos+u;o.push(be(e,p)),e.pos=p}else if(l===2&&f===2){let u=e.varint();s.push([e.pos,e.pos+u]),e.pos+=u}else e.skip(f)});let a=[];for(let[l,f]of s){let u=new E(e.buf,l,f),p=0,d=0,h=[],y=[];Z(u,f,(x,v)=>{if(x===1&&v===0)p=u.varint();else if(x===3&&v===0)d=u.varint();else if(x===2&&v===2){let _=u.varint(),g=u.pos+_;for(;u.pos<g;)h.push(u.varint())}else if(x===4&&v===2){let _=u.varint();y=xe(u,u.pos+_)}else u.skip(v)});let k={};for(let x=0;x+1<h.length;x+=2){let v=i[h[x]],_=o[h[x+1]];v!==void 0&&_!==void 0&&(k[v]=_)}a.push({type:d,rings:y,props:k,id:p})}return{name:t,extent:r,features:a}}function q(e){let n=new E(e),t=[];return Z(n,n.end,(r,i)=>{if(r===3&&i===2){let o=n.varint(),s=n.pos+o;t.push(ge(n,s)),n.pos=s}else n.skip(i)}),t}var B=new Set,Y=!1;function J(e,n,t=2){let r=n&&n.length,i=r?n[0]*t:e.length;B.size&&B.clear();let o=re(e,0,i,t,!0),s=[];if(!o||o.next===o.prev)return s;let a=0,l=0,f=0;if(r&&(o=Me(e,n,o,t)),e.length>80*t){a=e[0],l=e[1];let u=a,p=l;for(let d=t;d<i;d+=t){let h=e[d],y=e[d+1];h<a&&(a=h),y<l&&(l=y),h>u&&(u=h),y>p&&(p=y)}f=Math.max(u-a,p-l),f=f!==0?32767\/f:0}return D(o,s,a,l,f),s}function re(e,n,t,r,i){let o=null;if(i===Ce(e,n,t,r)>0)for(let s=n;s<t;s+=r)o=te(s\/r|0,e[s],e[s+1],o);else for(let s=t-r;s>=n;s-=r)o=te(s\/r|0,e[s],e[s+1],o);return o&&T(o,o.next)&&(P(o),o=o.next),o}function L(e,n=e){let t=n===e,r=e,i;do i=!1,r!==r.next&&(B.size===0||!B.has(r))&&(T(r,r.next)||b(r.prev,r,r.next)===0)?((t||r===n)&&(n=r.prev),Y=!0,P(r),r=r.prev,i=!0):(t||r!==n)&&(r=r.next,i=!t);while(i||r!==n);return n}function D(e,n,t,r,i){i&&Te(e,t,r,i);let o=e,s=!1;for(;e.prev!==e.next;){let a=e.prev,l=e.next;if(b(a,e,l)<0&&(i?ve(e,t,r,i):we(e))){n.push(a.i,e.i,l.i),P(e),e=l,o=l;continue}if(e=l,e===o){if(Y=!1,e=L(e),Y){o=e;continue}if(!s){e=_e(e,n),o=e,s=!0;continue}Se(e,n,t,r,i);break}}}function we(e){let n=e.prev,t=e,r=e.next,i=n.x,o=t.x,s=r.x,a=n.y,l=t.y,f=r.y,u=Math.min(i,o,s),p=Math.min(a,l,f),d=Math.max(i,o,s),h=Math.max(a,l,f),y=r.next;for(;y!==n;){if(y.x>=u&&y.x<=d&&y.y>=p&&y.y<=h&&!(i===y.x&&a===y.y)&&N(i,a,o,l,s,f,y.x,y.y)&&b(y.prev,y,y.next)>=0)return!1;y=y.next}return!0}function ve(e,n,t,r){let i=e.prev,o=e,s=e.next,a=i.x,l=o.x,f=s.x,u=i.y,p=o.y,d=s.y,h=Math.min(a,l,f),y=Math.min(u,p,d),k=Math.max(a,l,f),x=Math.max(u,p,d),v=X(h,y,n,t,r),_=X(k,x,n,t,r),g=e.prevZ;for(;g&&g.z>=v;){if(g.x>=h&&g.x<=k&&g.y>=y&&g.y<=x&&g!==s&&!(a===g.x&&u===g.y)&&N(a,u,l,p,f,d,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.prevZ}let w=e.nextZ;for(;w&&w.z<=_;){if(w.x>=h&&w.x<=k&&w.y>=y&&w.y<=x&&w!==s&&!(a===w.x&&u===w.y)&&N(a,u,l,p,f,d,w.x,w.y)&&b(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function _e(e,n){let t=e,r=!1;do{let i=t.prev,o=t.next.next;se(i,t,t.next,o,!1)&&G(i,o)&&G(o,i)&&(n.push(i.i,t.i,o.i),P(t),P(t.next),t=e=o,r=!0),t=t.next}while(t!==e);return r?L(t):t}function Se(e,n,t,r,i){let o=e;do{let s=o.next.next;for(;s!==o.prev;){if(o.i!==s.i&&Ee(o,s)){let a=ce(o,s);o=L(o,o.next),a=L(a,a.next),D(o,n,t,r,i),D(a,n,t,r,i);return}s=s.next}o=o.next}while(o!==e)}var O=!1;function Me(e,n,t,r){let i=[];for(let o=0,s=n.length;o<s;o++){let a=n[o]*r,l=o<s-1?n[o+1]*r:e.length,f=re(e,a,l,r,!1);f===f.next&&B.add(f),i.push(Pe(f))}i.sort(Le),Ve(e.length\/r,n.length),oe(t,t),O=!0;for(let o=0;o<i.length;o++)t=Ae(i[o],t);return O=!1,L(t)}function Le(e,n){return e.x-n.x||e.y-n.y||(e.next.y-e.y)\/(e.next.x-e.x)-(n.next.y-n.y)\/(n.next.x-n.x)}function Ae(e,n){let t=Fe(e,n);if(!t)return n;let r=ce(t,e),i=r.next;return oe(t,i.next),L(r,r.next),L(t,t.next)}var ie=16,m=new Float64Array(0),z=0,j=[],K=[];function Ve(e,n){let t=Math.ceil((e+2*n)\/ie)+n+2;m.length<t*4&&(m=new Float64Array(t*4)),z=0}function oe(e,n){let t=e;do{let r=z++;j[r]=t;let i=1\/0,o=1\/0,s=-1\/0,a=-1\/0,l=0;do{let u=t.next;t.z=r,t.x<i&&(i=t.x),t.x>s&&(s=t.x),t.y<o&&(o=t.y),t.y>a&&(a=t.y),u.x<i&&(i=u.x),u.x>s&&(s=u.x),u.y<o&&(o=u.y),u.y>a&&(a=u.y),t=u}while(++l<ie&&t!==n);K[r]=t;let f=r*4;m[f]=i,m[f+1]=o,m[f+2]=s,m[f+3]=a}while(t!==n)}function Re(e,n){let t=e.z*4;n.x<m[t]&&(m[t]=n.x),n.y<m[t+1]&&(m[t+1]=n.y),n.x>m[t+2]&&(m[t+2]=n.x),n.y>m[t+3]&&(m[t+3]=n.y)}function ee(e){let n=K[e];for(;n.prev.next!==n;)n=n.next;return K[e]=n,n}function ne(e){let n=j[e];for(;n.prev.next!==n;)n=n.next;return j[e]=n,n}function Fe(e,n){let t=n,r=e.x,i=e.y,o=-1\/0,s;if(T(e,t))return t;for(let d=0,h=0;d<z;d++,h+=4){if(i<m[h+1]||i>m[h+3]||m[h]>r||m[h+2]<=o)continue;let y=ee(d);t=ne(d);do{if(t.prev.next===t){if(T(e,t.next))return t.next;if(i<=t.y&&i>=t.next.y&&t.next.y!==t.y){let k=t.x+(i-t.y)*(t.next.x-t.x)\/(t.next.y-t.y);if(k<=r&&k>o&&(o=k,s=t.x<t.next.x?t:t.next,k===r))return s}}t=t.next}while(t!==y)}if(!s)return null;let a=s.x,l=s.y,f=Math.min(i,l),u=Math.max(i,l),p=1\/0;for(let d=0,h=0;d<z;d++,h+=4){if(m[h+2]<a||m[h]>r||m[h+3]<f||m[h+1]>u)continue;let y=ee(d);t=ne(d);do{if(t.prev.next===t&&r>=t.x&&t.x>=a&&r!==t.x&&N(i<l?r:o,i,a,l,i<l?o:r,i,t.x,t.y)){let k=Math.abs(i-t.y)\/(r-t.x);(G(t,e)||t.y===i&&t.next.y===i&&t.next.x>r)&&(k<p||k===p&&(t.x>s.x||t.x===s.x&&Be(s,t)))&&(s=t,p=k)}t=t.next}while(t!==y)}return s}function Be(e,n){return b(e.prev,e,n.prev)<0&&b(n.next,e,e.next)<0}var S=[],V=[],M=new Uint32Array(0),R=new Uint32Array(0),F=new Uint32Array(256);function Te(e,n,t,r){let i=e,o=0;do i.z=X(i.x,i.y,n,t,r),S[o++]=i,i=i.next;while(i!==e);Ge(o);let s=null;for(let a=0;a<o;a++){let l=S[a];l.prevZ=s,s&&(s.nextZ=l),s=l}s.nextZ=null}function Ge(e){if(e<=32){for(let n=1;n<e;n++){let t=S[n],r=t.z,i=n-1;for(;i>=0&&S[i].z>r;)S[i+1]=S[i],i--;S[i+1]=t}return}M.length<e&&(M=new Uint32Array(e),R=new Uint32Array(e),V=new Array(e));for(let n=0;n<e;n++)M[n]=S[n].z;H(e,S,M,V,R,0),H(e,V,R,S,M,8),H(e,S,M,V,R,16),H(e,V,R,S,M,24)}function H(e,n,t,r,i,o){F.fill(0);for(let a=0;a<e;a++)F[t[a]>>>o&255]++;let s=0;for(let a=0;a<256;a++){let l=F[a];F[a]=s,s+=l}for(let a=0;a<e;a++){let l=t[a],f=F[l>>>o&255]++;r[f]=n[a],i[f]=l}}function X(e,n,t,r,i){return e=(e-t)*i|0,n=(n-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,e|n<<1}function Pe(e){let n=e,t=e;do(n.x<t.x||n.x===t.x&&n.y<t.y)&&(t=n),n=n.next;while(n!==e);return t}function N(e,n,t,r,i,o,s,a){return(i-s)*(n-a)>=(e-s)*(o-a)&&(e-s)*(r-a)>=(t-s)*(n-a)&&(t-s)*(o-a)>=(i-s)*(r-a)}function Ee(e,n){let t=T(e,n)&&b(e.prev,e,e.next)>0&&b(n.prev,n,n.next)>0;return e.next.i!==n.i&&(t||G(e,n)&&G(n,e)&&(b(e.prev,e,n.prev)!==0||b(e,n.prev,n)!==0))&&!Ze(e,n)&&(t||He(e,n))}function b(e,n,t){return(n.y-e.y)*(t.x-n.x)-(n.x-e.x)*(t.y-n.y)}function T(e,n){return e.x===n.x&&e.y===n.y}function se(e,n,t,r,i=!0){let o=b(e,n,t),s=b(e,n,r),a=b(t,r,e),l=b(t,r,n);return(o>0&&s<0||o<0&&s>0)&&(a>0&&l<0||a<0&&l>0)?!0:i?!!(o===0&&C(e,t,n)||s===0&&C(e,r,n)||a===0&&C(t,e,r)||l===0&&C(t,n,r)):!1}function C(e,n,t){return n.x<=Math.max(e.x,t.x)&&n.x>=Math.min(e.x,t.x)&&n.y<=Math.max(e.y,t.y)&&n.y>=Math.min(e.y,t.y)}function Ze(e,n){let t=Math.min(e.x,n.x),r=Math.max(e.x,n.x),i=Math.min(e.y,n.y),o=Math.max(e.y,n.y),s=e;do{let a=s.next;if(s.x>r&&a.x>r||s.x<t&&a.x<t||s.y>o&&a.y>o||s.y<i&&a.y<i){s=a;continue}if(s.i!==e.i&&a.i!==e.i&&s.i!==n.i&&a.i!==n.i&&se(s,a,e,n))return!0;s=a}while(s!==e);return!1}function G(e,n){return b(e.prev,e,e.next)<0?b(e,n,e.next)>=0&&b(e,e.prev,n)>=0:b(e,n,e.prev)<0||b(e,e.next,n)<0}function He(e,n){let t=e,r=!1,i=(e.x+n.x)\/2,o=(e.y+n.y)\/2;do{let s=t.next;t.y>o!=s.y>o&&i<(s.x-t.x)*(o-t.y)\/(s.y-t.y)+t.x&&(r=!r),t=s}while(t!==e);return r}function ce(e,n){let t=W(e.i,e.x,e.y),r=W(n.i,n.x,n.y),i=e.next,o=n.prev;return e.next=n,n.prev=e,t.next=i,i.prev=t,r.next=t,t.prev=r,o.next=r,r.prev=o,r}function te(e,n,t,r){let i=W(e,n,t);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function P(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),O&&Re(e.prev,e.next)}function W(e,n,t){return{i:e,x:n,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function Ce(e,n,t,r){let i=0;for(let o=n,s=t-r;o<t;o+=r)i+=(e[s]-e[o])*(e[o+1]+e[s+1]),s=o;return i}function c(e,n=1){let t=parseInt(e.slice(1),16);return[(t>>16&255)\/255,(t>>8&255)\/255,(t&255)\/255,n]}var qe=c(\"#f3f1ea\"),U=[{source:\"land\",type:\"fill\",color:c(\"#e9ece1\"),kinds:{grass:c(\"#d8e8c9\"),garden:c(\"#d8e8c9\"),meadow:c(\"#d8e8c9\"),grassland:c(\"#d8e8c9\"),scrub:c(\"#d7e4c4\"),park:c(\"#c6e4b4\"),recreation_ground:c(\"#c6e4b4\"),village_green:c(\"#c6e4b4\"),golf_course:c(\"#c6e4b4\"),playground:c(\"#cdeac0\"),allotments:c(\"#dae6c8\"),orchard:c(\"#d3e6c0\"),forest:c(\"#c9ddb0\"),wood:c(\"#c9ddb0\"),farmland:c(\"#ece9da\"),farmyard:c(\"#e7e1d1\"),residential:c(\"#eceae5\"),industrial:c(\"#e7e3db\"),retail:c(\"#ece7de\"),commercial:c(\"#ece7de\"),cemetery:c(\"#dbe2ce\"),grave_yard:c(\"#dbe2ce\"),quarry:c(\"#e5e1d7\")}},{source:\"sites\",type:\"fill\",color:c(\"#eceae3\"),kinds:{hospital:c(\"#f0dcd6\"),university:c(\"#ece0c8\"),college:c(\"#ece0c8\"),school:c(\"#ece0c8\"),kindergarten:c(\"#ece0c8\"),sports_centre:c(\"#d7e8c6\"),parking:c(\"#e7e5de\"),construction:c(\"#e8e2d6\")}},{source:\"water_polygons\",type:\"fill\",color:c(\"#8ecae6\")},{source:\"water_lines\",type:\"line\",color:c(\"#6fb4dd\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1},drain:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:c(\"#dcd3bf\")},{source:\"streets\",type:\"line\",color:c(\"#ffffff\"),width:2,kinds:{motorway:{color:c(\"#f6b981\"),width:5.5},trunk:{color:c(\"#f7c690\"),width:5},primary:{color:c(\"#fbd0a0\"),width:4.5},secondary:{color:c(\"#ffe7b3\"),width:3.4},tertiary:{color:c(\"#ffffff\"),width:2.8},residential:{color:c(\"#ffffff\"),width:2.2},unclassified:{color:c(\"#ffffff\"),width:2},living_street:{color:c(\"#f5f2eb\"),width:2},service:{color:c(\"#f2efe8\"),width:1.3},track:{color:c(\"#e9e2d4\"),width:1.1},path:{color:c(\"#e6dccb\"),width:1}}},{source:\"boundaries\",type:\"line\",color:c(\"#caa9ca\"),width:.8}];var ze=[{source:\"land\",type:\"fill\",color:c(\"#1b1f28\"),kinds:{grass:c(\"#1e2a1e\"),garden:c(\"#1e2a1e\"),meadow:c(\"#1e2a1e\"),grassland:c(\"#1e2a1e\"),scrub:c(\"#1f291b\"),park:c(\"#213520\"),recreation_ground:c(\"#213520\"),village_green:c(\"#213520\"),golf_course:c(\"#203320\"),playground:c(\"#1f2e1e\"),allotments:c(\"#212a1b\"),orchard:c(\"#1f2b1f\"),forest:c(\"#1b2a1b\"),wood:c(\"#1b2a1b\"),farmland:c(\"#232519\"),farmyard:c(\"#26241a\"),residential:c(\"#1d212b\"),industrial:c(\"#20242e\"),retail:c(\"#232734\"),commercial:c(\"#232734\"),cemetery:c(\"#1c281c\"),grave_yard:c(\"#1c281c\"),quarry:c(\"#242019\")}},{source:\"sites\",type:\"fill\",color:c(\"#20242e\"),kinds:{hospital:c(\"#331f27\"),university:c(\"#2b2820\"),college:c(\"#2b2820\"),school:c(\"#2b2820\"),kindergarten:c(\"#2b2820\"),sports_centre:c(\"#1f2d1f\"),parking:c(\"#1e222b\"),construction:c(\"#232019\")}},{source:\"water_polygons\",type:\"fill\",color:c(\"#163a52\")},{source:\"water_lines\",type:\"line\",color:c(\"#3f82ad\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1},drain:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:c(\"#272c3b\")},{source:\"streets\",type:\"line\",color:c(\"#3a4152\"),width:2,kinds:{motorway:{color:c(\"#bb8a56\"),width:5.5},trunk:{color:c(\"#a87f52\"),width:5},primary:{color:c(\"#977450\"),width:4.5},secondary:{color:c(\"#54607a\"),width:3.4},tertiary:{color:c(\"#48516a\"),width:2.8},residential:{color:c(\"#3a4254\"),width:2.2},unclassified:{color:c(\"#3a4254\"),width:2},living_street:{color:c(\"#333a4a\"),width:2},service:{color:c(\"#2e3441\"),width:1.3},track:{color:c(\"#2a303c\"),width:1.1},path:{color:c(\"#2a303c\"),width:1}}},{source:\"boundaries\",type:\"line\",color:c(\"#5a4a5a\"),width:.8}],en={name:\"dark\",background:c(\"#12151c\"),layers:ze,label:{color:\"#d3dae6\",halo:\"#0b0d12\",street:\"#8a92a1\"}},Ne=[{source:\"land\",type:\"fill\",color:c(\"#efe9dd\"),kinds:{grass:c(\"#dfe6cf\"),garden:c(\"#dfe6cf\"),grassland:c(\"#dfe6cf\"),park:c(\"#d1e2ba\"),recreation_ground:c(\"#d1e2ba\"),village_green:c(\"#d1e2ba\"),playground:c(\"#d8e6c6\"),forest:c(\"#cddbb4\"),wood:c(\"#cddbb4\"),orchard:c(\"#d5e2c0\"),farmland:c(\"#eae4d2\"),residential:c(\"#f0ebe0\"),industrial:c(\"#e9e2d4\"),retail:c(\"#efe7d8\"),cemetery:c(\"#dbe1cd\"),grave_yard:c(\"#dbe1cd\")}},{source:\"sites\",type:\"fill\",color:c(\"#ece7dc\"),kinds:{hospital:c(\"#eedcd3\"),university:c(\"#e9ddc6\"),college:c(\"#e9ddc6\"),school:c(\"#e9ddc6\"),sports_centre:c(\"#d7e6c2\"),parking:c(\"#e6e1d5\"),construction:c(\"#e8e1d2\")}},{source:\"water_polygons\",type:\"fill\",color:c(\"#9cc7c4\")},{source:\"water_lines\",type:\"line\",color:c(\"#7fb4b0\"),width:1.6,kinds:{river:{width:2.6},canal:{width:2.2},stream:{width:1.5},ditch:{width:1.1}}},{source:\"buildings\",type:\"fill\",color:c(\"#e1d6c0\")},{source:\"streets\",type:\"line\",color:c(\"#ffffff\"),width:2,kinds:{motorway:{color:c(\"#d98b63\"),width:5.5},trunk:{color:c(\"#e0996f\"),width:5},primary:{color:c(\"#e8ac86\"),width:4.5},secondary:{color:c(\"#f2cfa6\"),width:3.4},tertiary:{color:c(\"#ffffff\"),width:2.8},residential:{color:c(\"#ffffff\"),width:2.2},service:{color:c(\"#f4efe6\"),width:1.3},track:{color:c(\"#e9e0d0\"),width:1.1}}}],nn={name:\"brand\",background:c(\"#f5efe3\"),layers:Ne,label:{color:\"#4f3f30\",halo:\"#fbf6ec\",street:\"#9a8a72\"}};function ae(e,n){return e.kinds&&typeof n==\"string\"&&e.kinds[n]?e.kinds[n]:e.color}function le(e,n){var t;if(e.kinds&&typeof n==\"string\"&&e.kinds[n]){let r=e.kinds[n];return{color:r.color||e.color,width:(t=r.width)!=null?t:e.width}}return{color:e.color,width:e.width}}var ue={\"pt:station\":{kind:\"metro\",rank:100},\"pt:bus_station\":{kind:\"bus_station\",rank:70},\"pt:aerialway_station\":{kind:\"cablecar\",rank:74},\"amenity:university\":{kind:\"university\",rank:90},\"amenity:college\":{kind:\"college\",rank:62},\"amenity:hospital\":{kind:\"hospital\",rank:88},\"amenity:townhall\":{kind:\"townhall\",rank:72},\"amenity:courthouse\":{kind:\"courthouse\",rank:60},\"amenity:library\":{kind:\"library\",rank:48},\"amenity:theatre\":{kind:\"theatre\",rank:66},\"amenity:cinema\":{kind:\"cinema\",rank:60},\"amenity:arts_centre\":{kind:\"arts_centre\",rank:52},\"amenity:marketplace\":{kind:\"marketplace\",rank:58},\"amenity:place_of_worship\":{kind:\"worship\",rank:56},\"office:diplomatic\":{kind:\"embassy\",rank:55},\"shop:mall\":{kind:\"mall\",rank:92},\"shop:department_store\":{kind:\"department_store\",rank:64},\"shop:supermarket\":{kind:\"supermarket\",rank:44},\"tourism:museum\":{kind:\"museum\",rank:80},\"tourism:hotel\":{kind:\"hotel\",rank:42},\"tourism:theme_park\":{kind:\"theme_park\",rank:66},\"tourism:zoo\":{kind:\"zoo\",rank:70},\"leisure:park\":{kind:\"park\",rank:68},\"leisure:stadium\":{kind:\"stadium\",rank:82},\"leisure:sports_centre\":{kind:\"sports_centre\",rank:46},\"amenity:restaurant\":{kind:\"restaurant\",rank:38},\"amenity:fast_food\":{kind:\"fast_food\",rank:34},\"amenity:cafe\":{kind:\"cafe\",rank:34},\"shop:bakery\":{kind:\"bakery\",rank:30},\"amenity:bar\":{kind:\"bar\",rank:30},\"amenity:pub\":{kind:\"pub\",rank:30},\"amenity:nightclub\":{kind:\"nightclub\",rank:28},\"amenity:bank\":{kind:\"bank\",rank:40},\"amenity:atm\":{kind:\"atm\",rank:24},\"amenity:pharmacy\":{kind:\"pharmacy\",rank:40},\"amenity:clinic\":{kind:\"clinic\",rank:38},\"amenity:doctors\":{kind:\"doctors\",rank:34},\"amenity:dentist\":{kind:\"dentist\",rank:32},\"amenity:veterinary\":{kind:\"veterinary\",rank:28},\"amenity:school\":{kind:\"school\",rank:44},\"amenity:kindergarten\":{kind:\"kindergarten\",rank:30},\"amenity:police\":{kind:\"police\",rank:42},\"amenity:fire_station\":{kind:\"fire_station\",rank:42},\"amenity:post_office\":{kind:\"post_office\",rank:34},\"amenity:community_centre\":{kind:\"community_centre\",rank:30},\"amenity:fuel\":{kind:\"fuel\",rank:34},\"amenity:car_rental\":{kind:\"car_rental\",rank:24},\"amenity:car_wash\":{kind:\"car_wash\",rank:22},\"tourism:hostel\":{kind:\"hostel\",rank:30},\"tourism:guest_house\":{kind:\"guest_house\",rank:26},\"tourism:motel\":{kind:\"motel\",rank:26},\"shop:convenience\":{kind:\"convenience\",rank:26},\"shop:greengrocer\":{kind:\"greengrocer\",rank:24},\"shop:butcher\":{kind:\"butcher\",rank:26},\"shop:alcohol\":{kind:\"alcohol\",rank:24},\"shop:beverages\":{kind:\"beverages\",rank:22},\"shop:seafood\":{kind:\"seafood\",rank:24},\"shop:clothes\":{kind:\"clothes\",rank:28},\"shop:shoes\":{kind:\"shoes\",rank:26},\"shop:jewelry\":{kind:\"jewelry\",rank:28},\"shop:bag\":{kind:\"bag\",rank:24},\"shop:beauty\":{kind:\"beauty\",rank:26},\"shop:hairdresser\":{kind:\"hairdresser\",rank:26},\"shop:cosmetics\":{kind:\"cosmetics\",rank:24},\"shop:chemist\":{kind:\"chemist\",rank:26},\"shop:optician\":{kind:\"optician\",rank:26},\"shop:furniture\":{kind:\"furniture\",rank:28},\"shop:hardware\":{kind:\"hardware\",rank:26},\"shop:doityourself\":{kind:\"doityourself\",rank:26},\"shop:garden_centre\":{kind:\"garden_centre\",rank:24},\"shop:paint\":{kind:\"paint\",rank:22},\"shop:electronics\":{kind:\"electronics\",rank:28},\"shop:mobile_phone\":{kind:\"mobile_phone\",rank:28},\"shop:computer\":{kind:\"computer\",rank:28},\"shop:books\":{kind:\"books\",rank:28},\"shop:stationery\":{kind:\"stationery\",rank:22},\"shop:toys\":{kind:\"toys\",rank:24},\"shop:sports\":{kind:\"sports\",rank:26},\"shop:gift\":{kind:\"gift\",rank:22},\"shop:florist\":{kind:\"florist\",rank:24},\"shop:bicycle\":{kind:\"bicycle\",rank:24},\"shop:car\":{kind:\"car\",rank:26},\"shop:pet\":{kind:\"pet\",rank:24},\"shop:kiosk\":{kind:\"kiosk\",rank:20},\"shop:newsagent\":{kind:\"newsagent\",rank:20},\"shop:travel_agency\":{kind:\"travel_agency\",rank:24},\"shop:laundry\":{kind:\"laundry\",rank:22},\"shop:dry_cleaning\":{kind:\"laundry\",rank:22}},fe=new Set([\"bench\",\"waste_basket\",\"waste_disposal\",\"drinking_water\",\"vending_machine\",\"toilets\",\"post_box\",\"telephone\",\"surveillance\",\"fountain\",\"shelter\",\"recycling\",\"parking\",\"parking_space\",\"parking_entrance\",\"bicycle_parking\",\"motorcycle_parking\",\"bicycle_rental\",\"car_sharing\",\"charging_station\",\"clock\",\"hunting_stand\",\"grit_bin\",\"bbq\",\"fire_hydrant\",\"street_lamp\",\"tree\",\"water_point\",\"taxi\",\"bureau_de_change\",\"vacant\",\"no\",\"ticket_validator\",\"compressed_air\"]);function ye(e,n=U){let t=[],r=[];for(let i of n){let o=e.find(a=>a.name===i.source);if(!o)continue;let s=1\/o.extent;for(let a of o.features)if(i.type===\"fill\"&&a.type===3)je(t,a.rings,s,ae(i,a.props.kind));else if(i.type===\"line\"&&a.type===2){let l=le(i,a.props.kind);for(let f of a.rings)Ke(r,f,s,l.width,l.color)}}return{fills:new Float32Array(t),lines:new Float32Array(r),labels:Oe(e),streetLabels:De(e),houseNumbers:Ye(e),poiLabels:Ie(e)}}function Ue(e){let n=e.name_en||e.name;if(!n)return null;for(let t=0;t<n.length;t++){let r=n.charCodeAt(t);if(r>=1024&&r<=1791||r>=12352&&r<=12543||r>=19968&&r<=40959)return null}return String(n)}function Ie(e){let n=[],t=e.find(i=>i.name===\"public_transport\");t&&de(t,n,i=>{var o;return ue[\"pt:\"+String((o=i.kind)!=null?o:\"\")]});let r=e.find(i=>i.name===\"pois\");return r&&de(r,n,i=>{for(let o of[\"amenity\",\"shop\",\"tourism\",\"leisure\",\"office\"]){let s=i[o];if(s!=null&&s!==\"\"){let a=ue[o+\":\"+String(s)];if(a)return a}}if(i.shop&&!fe.has(String(i.shop)))return{kind:\"shop\",rank:20};for(let o of[\"amenity\",\"tourism\",\"office\",\"craft\"]){let s=i[o];if(s!=null&&s!==\"\"&&!fe.has(String(s)))return{kind:\"place\",rank:18}}}),n}function de(e,n,t){let r=1\/e.extent;for(let i of e.features){if(i.type!==1)continue;let o=t(i.props);if(!o)continue;let s=Ue(i.props);if(s)for(let a of i.rings)a.length>=2&&n.push({x:a[0]*r,y:a[1]*r,name:s,kind:o.kind,rank:o.rank})}}function Ye(e){let n=[],t=e.find(i=>i.name===\"addresses\");if(!t)return n;let r=1\/t.extent;for(let i of t.features){if(i.type!==1)continue;let o=i.props.housenumber;if(o==null||o===\"\")continue;let s=String(o);for(let a of i.rings)a.length>=2&&n.push({x:a[0]*r,y:a[1]*r,text:s})}return n}function De(e){let n=e.find(o=>o.name===\"street_labels\");if(!n)return[];let t=1\/n.extent,r=new Map;for(let o of n.features){if(o.type!==2)continue;let s=o.props.name_en||o.props.name;if(!s)continue;let a=String(o.props.kind||\"\");for(let l of o.rings){if(l.length<4)continue;let f=0;for(let d=2;d<l.length;d+=2)f+=Math.hypot(l[d]-l[d-2],l[d+1]-l[d-1]);let u=r.get(s);if(u&&f<=u.len)continue;let p=[];for(let d=0;d<l.length;d+=2)p.push(l[d]*t,l[d+1]*t);r.set(s,{kind:a,pts:p,len:f})}}let i=[];for(let[o,s]of r)i.push({name:o,kind:s.kind,pts:s.pts});return i}function Oe(e){let n=[],t=e.find(i=>i.name===\"place_labels\");if(!t)return n;let r=1\/t.extent;for(let i of t.features){if(i.type!==1)continue;let o=i.props.name_en||i.props.name;if(!o)continue;let s=String(i.props.kind||\"\"),a=Number(i.props.population)||0;for(let l of i.rings)l.length>=2&&n.push({x:l[0]*r,y:l[1]*r,name:String(o),kind:s,rank:a})}return n}function he(e){let n=0;for(let t=0,r=e.length;t<r;t+=2){let i=(t+2)%r;n+=e[t]*e[i+1]-e[i]*e[t+1]}return n\/2}function me(e){return Math.round(e[0]*255)*65536+Math.round(e[1]*255)*256+Math.round(e[2]*255)}function je(e,n,t,r){if(!n.length)return;let i=me(r),o=Math.sign(he(n[0]))||1,s=[],a=()=>{if(!s.length)return;let l=[],f=[];for(let p=0;p<s.length;p++){p>0&&f.push(l.length\/2);let d=s[p];for(let h=0;h<d.length;h+=2)l.push(d[h]*t,d[h+1]*t)}let u=J(l,f.length?f:void 0,2);for(let p=0;p<u.length;p++){let d=u[p]*2;e.push(l[d],l[d+1],i)}s=[]};for(let l of n){if(l.length<6)continue;(Math.sign(he(l))||o)===o&&s.length&&a(),s.push(l)}a()}function Ke(e,n,t,r,i){let o=n.length\/2;if(o<2)return;let s=r\/2,a=[];for(let u=0;u<o;u++)a.push([n[u*2]*t,n[u*2+1]*t]);let l=[];for(let u=0;u<o;u++){let p=u>0?pe(a[u][0]-a[u-1][0],a[u][1]-a[u-1][1]):null,d=u<o-1?pe(a[u+1][0]-a[u][0],a[u+1][1]-a[u][1]):null;if(p&&d){let h=[-p[1],p[0]],y=[-d[1],d[0]],k=h[0]+y[0],x=h[1]+y[1],v=Math.hypot(k,x);v<1e-6?(k=h[0],x=h[1]):(k\/=v,x\/=v);let _=1\/Math.max(.35,k*h[0]+x*h[1]);_=Math.min(_,3),l.push([k*_,x*_])}else{let h=p||d;l.push([-h[1],h[0]])}}let f=me(i);for(let u=0;u<o-1;u++){let p=a[u],d=a[u+1],h=l[u],y=l[u+1];A(e,p,h,s,f),A(e,p,[-h[0],-h[1]],-s,f),A(e,d,y,s,f),A(e,p,[-h[0],-h[1]],-s,f),A(e,d,[-y[0],-y[1]],-s,f),A(e,d,y,s,f)}}function pe(e,n){let t=Math.hypot(e,n)||1;return[e\/t,n\/t]}function A(e,n,t,r,i){e.push(n[0],n[1],t[0],t[1],r,i)}var Q=self,ke=U,Xe=\"zeromap-tiles-v1\",$=!0,I;function We(){return I===void 0&&(I=$&&typeof caches!=\"undefined\"?caches.open(Xe).catch(()=>null):Promise.resolve(null)),I}async function Je(e){let n=await We();if(n)try{let r=await n.match(e);if(r)return await r.arrayBuffer()}catch{}let t=await fetch(e);if(!t.ok)throw new Error(\"http \"+t.status);if(n)try{n.put(e,t.clone()).catch(()=>{})}catch{}return await t.arrayBuffer()}Q.onmessage=async e=>{let n=e.data;if(n.type===\"style\"){ke=n.layers;return}if(n.type===\"config\"){typeof n.tileCache==\"boolean\"&&n.tileCache!==$&&($=n.tileCache,I=void 0);return}let{id:t,url:r}=n;try{let i=await Je(r),o=q(new Uint8Array(i)),{fills:s,lines:a,labels:l,streetLabels:f,houseNumbers:u,poiLabels:p}=ye(o,ke);Q.postMessage({id:t,ok:!0,fills:s,lines:a,labels:l,streetLabels:f,houseNumbers:u,poiLabels:p},[s.buffer,a.buffer])}catch{Q.postMessage({id:t,ok:!1})}};})();\r\n\/\/# sourceMappingURL=worker_vec.js.map\r\n<\/script>\r\n\t\t<script>\r\n\t\t\tdocument.addEventListener('DOMContentLoaded', function() {\r\n    initMap();\r\n});\r\n\tconst lusarevLocations = {\r\n\t\tdelivery: [],\r\n\t\t\r\n\t\t\"horeca\": [\r\n\t\t\t{ name: \"\u00ab\u0531\u054e\u0531\u053c\u0548\u0546\u00bb\", address: \"\u053f\u0578\u057f\u0561\u0575\u0584, \u0531\u0580\u0561\u0574\u0578\u0582\u057d\", coords: [40.253068, 44.650227] },\r\n\t\t\t{ name: \"\u00ab\u0533\u0550\u0531\u0546\u0534 \u054c\u0535\u0536\u0548\u0550\u0539 \u054b\u0535\u0550\u0544\u0548\u0552\u053f\u00bb\", address: \"\u0547\u0561\u0570\u0578\u0582\u0574\u0575\u0561\u0576 \u0583\u0578\u0572. 7\/5\", coords: [39.8393227, 45.6662928] },\r\n\t\t\t{ name: \"\u00ab\u0533\u0550\u0531\u0546\u0534 \u053f\u0531\u0556\u0535\u00bb\", address: \"Hrachya Kochar St. 16\/6\", coords: [40.19271785, 44.49559365] },\r\n\t\t\t{ name: \"\u00ab\u053b\u0546 \u054e\u053b\u0546\u0548\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 \u0583\u0578\u0572 6\", coords: [40.187037, 44.508926] },\r\n\t\t\t{ name: \"\u00ab\u0531\u054c\u0531\u0533\u0531\u054d\u054f\u00bb\", address: \"\u053b\u057d\u0561\u0570\u0561\u056f\u0575\u0561\u0576 41\", coords: [40.1883989, 44.5192495] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0580\u0565\u0574\u0575\u0561\u0576 \u0553\u0580\u0578\u057b\u0565\u0584\u0569\u057d\u00bb\", address: \"\u054f\u0565\u0580\u0575\u0561\u0576 8\", coords: [40.1811385, 44.5130682] },\r\n\t\t\t{ name: \"\u00ab\u0533\u053b\u0546\u0535\u054f\u0548\u0552\u0546\u00bb\", address: \"\u053f\u0578\u057f\u0561\u0575\u0584\u056b \u0531\u057c\u056b\u0576\u057b \u0563\u0575\u0578\u0582\u0572\", coords: [40.2352314, 44.5609078] },\r\n\t\t\t{ name: \"\u00ab\u0545\u0531\u054d\u0531\u0544\u0531\u0546\u00bb\", address: \"\u053e\u0561\u0572\u056f\u0561\u0571\u0578\u0580 \u0555\u0580\u0562\u0565\u056c\u056b 8\", coords: [40.532036, 44.720668] },\r\n\t\t\t{ name: \"\u00ab\u0545\u0531\u054d\u0531\u0544\u0531\u0546\u00bb\", address: \"\u0535\u056f\u0574\u0561\u056c\u0575\u0561\u0576 \u0583\u0578\u0572. 1\/1 \u0577\u0565\u0576\u0584\", coords: [40.1846706, 44.5078526] },\r\n\t\t\t{ name: \"\u00ab\u0545\u0531\u054d\u0531\u0544\u0531\u0546\u00bb\", address: \"\u053e\u0578\u057e\u0561\u0563\u0575\u0578\u0582\u0572\", coords: [40.5795977, 44.9916593] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u0546 \u053f\u0531\u0556\u0535\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 4\/6\", coords: [40.1794947, 44.5108391] },\r\n\t\t\t{ name: \"\u00ab\u054e\u053b\u053f\u054f\u0548\u0550\u053b\u0531\u00bb \u054c\u0535\u054d\u054f\u0548\u0550\u0531\u0546\u00bb\", address: \"\u054e\u0561\u0575\u0578\u0581 \u0571\u0578\u0580\u056b\", coords: [39.6901292, 45.5157251] },\r\n\t\t\t{ name: \"\u00ab\u0549\u0531\u0550\u0535\u0546\u0551\u053b 28\u00bb\", address: \"\u0549\u0561\u0580\u0565\u0576\u0581\u056b \u0583\u0578\u0572 28\", coords: [40.179503, 44.527270] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0550\u0531\u0547\u0554 \u0531\u0545\u0533\u053b\u00bb\", address: \"\u0531\u0580\u0561\u0580\u0561\u057f\u056b \u0574\u0561\u0580\u0566, \u0544\u056d\u0579\u0575\u0561\u0576\", coords: [40.044180, 44.499796] },\r\n\t\t\t{ name: \"\u00ab\u0533\u0531\u0533\u0531\u0550\u053b \u0544\u0548\u054f\u00bb\", address: \"\u0533\u0565\u0572\u0561\u0580\u0584\u0578\u0582\u0576\u056b\u0584\", coords: [40.5848707, 44.9769838] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0531\u054f\u053b\u054d\u00bb\", address: \"\u053f\u0578\u057f\u0561\u0575\u0584\u056b \u0574\u0561\u0580\u0566, \u0531\u0580\u0561\u0574\u0578\u0582\u057d\", coords: [40.252424, 44.671836] },\r\n\t\t\t{ name: \"\u00ab\u0537\u053c \u054f\u0548\u054c\u054c\u0548\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 8\/1\", coords: [40.1869322, 44.5087689] },\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0545 \u053c\u0535\u0546\u0534 \u054c\u0535\u0536\u0548\u0550\u0539\u00bb\", address: \"\u0533\u0565\u0572\u0561\u0580\u0584\u0578\u0582\u0576\u056b\u0584\u056b \u0549\u056f\u0561\u056c\u0578\u057e\u056f\u0561\", coords: [40.5108138, 45.0006223] },\r\n\t\t\t{ name: \"\u00ab\u053e\u0548\u054e\u0531\u053e\u0548\u0551\u00bb\", address: \"\u0533\u0565\u0572\u0561\u0580\u0584\u0578\u0582\u0576\u056b\u0584\u056b \u0549\u056f\u0561\u056c\u0578\u057e\u056f\u0561\", coords: [40.5116321, 44.9863278] },\r\n\t\t\t{ name: \"\u00ab\u0534\u0535\u053f\u0531\u0546\u054f\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 38\", coords: [40.187832, 44.510044] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0543\u0531\u054c\u00bb\", address: \"\u054d\u057a\u0565\u0576\u0564\u0561\u0580\u0575\u0561\u0576 5\", coords: [40.186738, 44.512400] },\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0552\u054c \u054a\u0531\u0546\u0534\u0548\u053f\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d 62\/1\", coords: [40.205977, 44.522985] },\r\n\t\t\t{ name: \"\u00ab\u0533\u0548\u0552\u054d\u054f\u0548\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 11\", coords: [40.1829941, 44.5176919] },\r\n\t\t\t{ name: \"\u00ab\u0531\u054f\u0544\u0548\u054d\u0556\u0535\u0550\u0531\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572 1\", coords: [40.1836421, 44.5152379] },\r\n\t\t\t{ name: \"\u00ab\u0532\u0531\u0550\u0534\u053b\u0546\u0535\u0550\u00bb\", address: \"\u0540\u0580\u0561\u0566\u0564\u0561\u0576\u056b \u053f\u056b\u0580\u0573\", coords: [40.1900144, 44.496506] },\r\n\t\t\t{ name: \"\u00ab379 \u0539\u0548\u0550\u0549 \u0538\u0546\u0534 \u0532\u0550\u0548\u0552\u00bb\", address: \"\u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0561\u0576 39\", coords: [40.176193, 44.5146475] },\r\n\t\t\t{ name: \"\u00ab\u0532\u0575\u0578\u0582\u0580\u0561\u056f\u0561\u0576 \u0536\u056b\u0583\u057e\u0561\u0575\u0576\u00bb\", address: \"\u0532\u0575\u0578\u0582\u0580\u0561\u056f\u0561\u0576 2-\u0580\u0564 \u0583.2 -\u0580\u0564 \u0576. 27 \u0577\", coords: [40.335162, 44.261943] },\r\n\t\t\t{ name: \"\u00ab\u054e\u0531\u0546\u0531 \u053d\u0548\u0552\u0550\u054b\u053b\u0546\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 \u0583\u0578\u0572. 21\/1\", coords: [40.19411185, 44.4919964] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0545\u0531\u054f\u0531\u00bb \u053c\u0531\u0548\u0552\u0546\u054b-\u0532\u0531\u0550\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 4\/2\", coords: [40.179151, 44.510732] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0545\u0531\u054f\u0531\u00bb \u053c\u0531\u0548\u0552\u0546\u054b-\u0532\u0531\u0550\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 41\/9\", coords: [40.187321, 44.51020265] },\r\n\t\t\t{ name: \"\u00ab\u0531\u054a\u0548\u053c\u053c\u0548\u00bb\", address: \"\u054f\u0565\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 91\", coords: [40.188962, 44.521242] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0545\u0550\u053b\u0533\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 4\/6\", coords: [40.1802698, 44.5110545] },\r\n\t\t\t{ name: \"\u00ab\u0539\u0548\u0552\u0544\u0531\u0546\u0545\u0531\u0546\u053b \u053d\u053b\u0546\u053f\u0531\u053c\u053b\u0531\u0546\u0548\u0551\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 21\/1\", coords: [40.1829195, 44.516327] },\r\n\t\t\t{ name: \"\u00ab\u0539\u0539\u0535\u0546\u053b\u00bb\", address: \"\u0537\u057b\u0574\u056b\u0561\u056e\u056b\u0576 \u0544\u0561\u0576\u0578\u0582\u0577\u0575\u0561\u0576 0\", coords: [40.1651906, 44.3358044] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0548\u054f\u0537\u00bb\", address: \"\u0539\u0561\u0574\u0561\u0576\u0575\u0561\u0576 1\", coords: [40.1891645, 44.5148902] },\r\n\t\t\t{ name: \"\u00ab\u0531\u0546\u0534\u0550\u0548\u0552\u00bb\", address: \"\u053f\u0578\u0572\u0562\u0561\u0581\u056b 7\", coords: [40.181306, 44.510780] },\r\n\t\t\t{ name: \"\u00ab\u053c\u0548\u0556\u0539 \u054c\u0548\u0552\u0544\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572.\", coords: [40.1809999, 44.5142898] },\r\n\t\t\t{ name: \"\u00ab\u0556\u054c\u0535\u0546\u0534\u054d\u00bb \u0553\u0531\u0532\u00bb\", address: \"\u054d\u0561\u0575\u0561\u0569-\u0546\u0578\u057e\u0561\u0575\u056b \u057a\u0578\u0572. 14\", coords: [40.1822113, 44.5203147] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0548\u0544\u0544\u0548\u0546 \u0533\u0550\u0531\u0548\u0552\u0546\u0534\u00bb\", address: \"\u0532\u0561\u0572\u0580\u0561\u0574\u0575\u0561\u0576 \u057a\u0578\u0572. 6 \u0577\u0565\u0576\u0584\", coords: [40.1929849, 44.5090215] },\r\n\t\t\t{ name: \"\u00ab\u053b\u0546\u054f\u0535\u0544\u054a\u0548\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572., 10\/3\", coords: [40.181942, 44.514118] },\r\n\t\t\t{ name: \"\u00ab\u0534\u0531\u053c\u0531\u0546\u00bb \u0533\u056b\u0576\u0565\u057f\u0578\u0582\u0576\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576 12\", coords: [40.1808939, 44.5161124] },\r\n\t\t\t{ name: \"\u00ab\u0546\u054c\u0546\u0535\u0546\u053b \u0540\u0531\u0548\u0552\u054d\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576\u056b \u0583\u0578\u0572. 21\", coords: [40.1818365, 44.5136055] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0535\u0534\u0548\u0552\u0536\u0536\u0531\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 24\", coords: [40.1839617, 44.5048374] },\r\n\t\t\t{ name: \"\u00ab\u0545\u0531\u054d\u054d\u0548\u0552\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576\u056b \u0583\u0578\u0572. 38 \u0577\u0565\u0576\u0584\", coords: [40.1824539, 44.5133345] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0535\u0545 \u0549\u053b\u0536\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 26\/2 \u0577\u0565\u0576\u0584\", coords: [40.1830958, 44.5045112] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0546\u0534\u0531 \u0540\u0548\u0552\u053f\u0531\u0540\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 28 \u0577\u0565\u0576\u0584\", coords: [40.1879182, 44.5107402] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0546\u0534\u0531 \u054c\u0548\u0552\u0544\u054d\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576\u056b 43\", coords: [40.1847484, 44.5095154] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0546\u0534\u0531 \u054c\u0548\u0552\u0556\u0539\u0548\u054a\u00bb\", address: \"\u053f\u0578\u0572\u0562\u0561\u0581\u056b 36\/3\", coords: [40.182482, 44.512644] },\r\n\t\t\t{ name: \"\u00ab\u0537\u0554\u054d\u054f\u0550\u0531 \u054e\u0538\u0550\u054b\u053b\u0546\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 8 \u0577\u0565\u0576\u0584\", coords: [40.1868191, 44.5083497] },\r\n\t\t\t{ name: \"\u00ab\u0539\u0535\u0545\u053b \u054f\u0546\u0531\u053f\u00bb\", address: \"\u0536\u0561\u0584\u0575\u0561\u0576 \u0583\u0578\u0572. 13\/2 \u0577\u0565\u0576\u0584\", coords: [40.17841095, 44.5129259] },\r\n\t\t\t{ name: \"\u00ab\u0535\u054c\u0531\u0546\u053f\u0545\u0548\u0552\u0546\u053b \u0535\u0550\u0535\u054e\u0531\u0546\u00bb\", address: \"\u0532\u0561\u0572\u0580\u0561\u0574\u0575\u0561\u0576 \u057a\u0578\u0572. 2\/80\", coords: [40.1922371, 44.5041657] },\r\n\t\t\t{ name: \"\u00ab\u0555\u0554\u054d\u053b\u054b\u0535\u0546\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572. 42\/6\", coords: [40.19128805, 44.52039775] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u054d\u053f\u0531\u0556\u0535\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 18\/1\", coords: [40.181825, 44.517298] },\r\n\t\t\t{ name: \"\u00ab\u053f\u0531\u0544\u053b \u0544\u0545\u0548\u0552\u0536\u053b\u0554 \u0554\u053c\u0531\u0532\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 18 \u0577\", coords: [40.2715286, 44.633383] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0548\u053c\u053b\u0534\u0535\u0545 \u053b\u0546\u0546 \u0537\u0554\u054d\u054a\u0550\u0535\u054d\u00bb\", address: \"\u0532\u0578\u0582\u0566\u0561\u0576\u0564\u056b \u0583\u0578\u0572. 97\/2\", coords: [40.1832387, 44.5066841] },\r\n\t\t\t{ name: \"\u00ab\u0537\u054a\u053b\u053f\u0548\u0552\u0550\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576\u056b \u0583\u0578\u0572. 40\", coords: [40.1826754, 44.5128421] },\r\n\t\t\t{ name: \"\u00ab\u0532\u0531\u0532\u0535\u053c\u0548\u0546\u00bb\", address: \"\u0532\u0578\u0582\u0566\u0561\u0576\u0564\u056b \u0583\u0578\u0572. 91\", coords: [40.1829611, 44.5072718] },\r\n\t\t\t{ name: \"\u00ab\u0534\u0535 \u0531\u0546\u054b\u0535\u053c\u0548 \u0535\u0550\u0535\u054e\u0531\u0546\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576\u056b \u0583\u0578\u0572. 31\", coords: [40.1828065, 44.5121791] },\r\n\t\t\t{ name: \"\u00ab\u053c\u053b\u0532\u0535\u0550\u0539\u053b\u00bb \u0553\u0531\u0532\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572. 36\", coords: [40.1834187, 44.5111338] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0535\u053f\u053b\u0546-\u054d\u0531\u0545\u0531\u0539-\u0546\u0548\u054e\u0531\u00bb\", address: \"\u054d\u0561\u0575\u0561\u0569-\u0546\u0578\u057e\u0561\u0575\u056b \u057a\u0578\u0572. 33\", coords: [40.180726, 44.522778] },\r\n\t\t\t{ name: \"\u00ab\u0537\u0545\u0539 18 \u0537\u0546 \u053f\u0548\u053f\u054f\u0535\u0545\u053c-\u0532\u0531\u0550\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 \u0583\u0578\u0572. 41\", coords: [40.1873417, 44.5102544] },\r\n\t\t\t{ name: \"\u00ab1896\u00bb \u054c\u0535\u054d\u054f\u0548\u0550\u0531\u0546\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 \u0583\u0578\u0572. 41\", coords: [40.1872491, 44.5103563] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0548\u0552\u053f\u0531\u0540 \u0553\u053c\u0535\u0545\u054d\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 31\/12\", coords: [40.1880001, 44.5175765] },\r\n\t\t\t{ name: \"\u00ab\u054f\u0531\u0550\u0548\u0546\u053b \u0555\u054b\u0531\u053d\u00bb\", address: \"\u054a\u0561\u0580\u0578\u0576\u0575\u0561\u0576 \u0583\u0578\u0572. 21\/4\", coords: [40.1826999, 44.4989903] },\r\n\t\t\t{ name: \"\u00ab\u054e\u0548\u0552\u0534\u0548\u0552 \u053c\u0531\u0548\u0552\u0546\u054b\u00bb\", address: \"\u0549\u0561\u0580\u0565\u0576\u0581\u056b 43\", coords: [40.178260, 44.527713] },\r\n\t\t\t{ name: \"\u00ab\u054d\u054f\u0548\u0550\u053b\u0531\u00bb\", address: \"\u0532\u0561\u0572\u0580\u0561\u0574\u0575\u0561\u0576 2\", coords: [40.1865298, 44.5120475] },\r\n\t\t\t{ name: \"\u00ab\u054d\u053b\u0550\u0548\u054e\u0531\u0550\u0546\u0545\u0531\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572. 5\", coords: [40.182086, 44.515394] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0531\u0550\u053b\u054d\u0531\u00bb\", address: \"\u0531\u0577\u057f\u0561\u0580\u0561\u056f\u056b \u056d\u0573\u0578\u0582\u0572\u056b, 50\/11\", coords: [40.221528, 44.459303] },\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0550 \u0546\u0548\u0545\u0531\u0546 \u0531\u0545\u0533\u053b\u00bb\", address: \"\u0533\u0561\u057c\u0576\u056b, \u0544\u0561\u0580\u0566\u057a\u0565\u057f\u0578\u0582\u0576\u056b 10\", coords: [40.115564, 44.730238] },\r\n\t\t\t{ name: \"\u00ab\u0531\u0544\u0531\u0546\u00bb \u054c\u0565\u057d\u057f\u0578\u0580\u0561\u0576\u00bb\", address: \"\u053b\u057b\u0587\u0561\u0576 \u0535\u0580\u0587\u0561\u0576\u0575\u0561\u0576 51\/4\", coords: [41.1590334, 44.9951941] },\r\n\t\t\t{ name: \"\u00abUrchin & Oyster\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 8\", coords: [40.186854, 44.5085652] },\r\n\t\t\t{ name: \"\u00ab\u0548\u0582\u0580\u0562\u0561\u0576 \u054e\u0561\u0575\u0576 \u0532\u0561\u0580\u00bb\", address: \"\u0531\u0580\u0561\u0574\u056b 42\", coords: [40.1805452, 44.5124278] },\r\n\t\t\t{ name: \"\u00ab\u0532\u0548\u054d\u054d\u00bb \u0532\u0531\u0550\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 2\/28\", coords: [40.187392, 44.50942] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u0546\u054f\u0531\u053c\u0535\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 23\", coords: [40.1842873, 44.5143592] },\r\n\t\t\t{ name: \"\u00ab\u0537\u053c \u0533\u0531\u0550\u0534\u0535\u0546\u00bb\", address: \"\u053e\u056b\u056e\u0565\u057c\u0576\u0561\u056f\u0561\u0562\u0565\u0580\u0564\u056b 8\", coords: [40.1868067, 44.481416] },\r\n\t\t\t{ name: \"\u00ab\u053f\u0531\u0551\u053b\u0546\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 4\/6\", coords: [40.179871, 44.5106225] },\r\n\t\t\t{ name: \"\u00ab6100\u00bb\", address: \"\u054b\u0580\u057e\u0565\u056a \u0531\u0575\u0563\u0565\u0563\u0578\u0580\u056e\u0561\u056f\u0561\u0576 \u0569\u0561\u0572 1-2\", coords: [40.183614, 44.629553] },\r\n\t\t\t{ name: \"\u00ab\u0555\u0583\u0565\u0576 \u0540\u0561\u0578\u0582\u057d\u00bb\", address: \"\u053b\u057d\u0561\u0570\u0561\u056f\u0575\u0561\u0576 9\", coords: [40.188161, 44.5196972] },\r\n\t\t\t{ name: \"\u00ab\u0534\u0548\u054a\u00bb\", address: \"\u0542\u0561\u0566\u0561\u0580 \u0553\u0561\u0580\u057a\u0565\u0581\u056b 15\/9\", coords: [40.185938, 44.511181] },\r\n\t\t\t{ name: \"\u00ab\u0534\u056b\u056c\u056b\u057b\u0561\u0576\u056b \u0563\u056b\u0576\u0565\u057f\u0578\u0582\u0576\u00bb\", address: \"\u0554. \u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u0544\u0575\u0561\u057d\u0576\u056b\u056f\u0575\u0561\u0576 38\/1\", coords: [40.739173, 44.869174] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0578\u057e\u0561\u0566 \u054e\u0561\u0575\u0576 \u054c\u0578\u0582\u0574\u00bb\", address: \"\u0554. \u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u053f\u0578\u0574\u056b\u057d\u0561\u0580\u0576\u0565\u0580\u056b 26\", coords: [40.7405524, 44.8625965] },\r\n\t\t\t{ name: \"\u00ab\u0540\u0578\u057e\u0565\u0580\u00bb\", address: \"\u0554. \u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u0531\u0576\u0564\u0580\u0561\u0576\u056b\u056f\u056b 3-\u0580\u0564 \u0576\u0580\u0562. 1\", coords: [40.7437822, 44.8529996] },\r\n\t\t\t{ name: \"\u00ab\u0534\u054e\u053b\u0546 \u0544\u0545\u0548\u0552\u0536\u053b\u0554 \u0540\u0548\u053c\u00bb\", address: \"\u054a\u0561\u0580\u0578\u0576\u0575\u0561\u0576 40\", coords: [40.1838523, 44.501346] },\r\n\t\t\t{ name: \"\u00ab\u054e\u0531\u0545\u0546 \u054c\u0535\u0553\u0531\u0532\u053c\u053b\u0554\u00bb\", address: \"\u0539\u0561\u0574\u0561\u0576\u0575\u0561\u0576 2\", coords: [40.18917, 44.5158687] },\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0544\u0531\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576 \u0544\u0565\u056e\u056b 25\", coords: [40.172860, 44.514104] },\r\n\t\t\t{ name: \"\u00ab\u053c'\u0555\u0550\u0531\u0546\u053a \u0531\u0536\u0548\u0552\u0550\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 8\", coords: [40.18836, 44.517993] },\r\n\t\t\t{ name: \"\u00ab\u054c\u0548\u054d\u0539\u00bb\", address: \"\u0546\u0561\u0576\u057d\u0565\u0576\u056b 1\/12\", coords: [40.17657255, 44.5410293] },\r\n\t\t\t{ name: \"\u00ab\u053f\u0543\u0548\u0552\u0543\u00bb \u00ab\u0539\u0531\u054e\u0531\u00bb\", address: \"\u0554.\u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u0544\u0575\u0561\u057d\u0576\u056b\u056f\u0575\u0561\u0576 37\/4\", coords: [40.739017, 44.866294] },\r\n\t\t\t{ name: \"\u00ab\u0553\u0531\u053d\u053c\u0531\u054e\u0531\u00bb\", address: \"\u0554. \u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u0544\u0575\u0561\u057d\u0576\u056b\u056f\u0575\u0561\u0576 33\", coords: [40.4690546, 44.4139051] },\r\n\t\t\t{ name: \"\u00ab\u0532\u0531\u053c\u053f\u0548\u0546\u0548\u0552\u0544\u00bb\", address: \"\u0554. \u0534\u056b\u056c\u056b\u057b\u0561\u0576\", coords: [40.72893665, 44.9130916] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u054f\u053b\u054e\u054d \u053b\u0546\u0546 \u0534\u053b\u053c\u053b\u054b\u0531\u0546\u00bb\", address: \"\u0534\u056b\u056c\u056b\u057b\u0561\u0576 \u0544\u0578\u056c\u0564\u0578\u057e\u0561\u056f\u0561\u0576 \u0583\u0578\u0572., 7\/2 \u0577\u0565\u0576\u0584\", coords: [40.744292, 44.829050] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0531\u0536\u00bb\", address: \"\u0539\u0562\u056b\u056c\u056b\u057d\u0575\u0561\u0576 \u056d\u0573\u0578\u0582\u0572\u056b, 1\/8 \u0577\u0565\u0576\u0584\", coords: [40.211880, 44.530998] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u054f\u0546\u0531\u0554\u0531\u0547\u00bb\", address: \"\u053c\u0565\u0578\u0575\u056b \u0583\u0578\u0572, 52\", coords: [40.180088, 44.502656] },\r\n\t\t\t{ name: \"\u00abO\u2082 \u0533\u0531\u0550\u0534\u0535\u0546\u054d\u00bb\", address: \"\u054d\u056b\u056c\u056b\u056f\u0575\u0561\u0576 \u0569\u0561\u0572\u0561\u0574\u0561\u057d 13-\u0580\u0564 \u0583. \u21162\/8\", coords: [40.21599285, 44.4382646] },\r\n\t\t\t{ name: \"\u00ab\u0540\u053b\u0546 \u0540\u0531\u0545\u0531\u054d\u054f\u0531\u0546\u00bb\", address: \"\u0533\u0575\u0578\u0582\u0574\u0580\u056b, \u0531\u0562\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572., 246\/1\", coords: [40.785314, 43.840822] },\r\n\t\t\t{ name: \"\u00ab\u053f\u0548\u0552\u0544\u053f\u0548\u0552\u0544\u0531\u00bb\", address: \"\u0533\u0575\u0578\u0582\u0574\u0580\u056b, \u0533. \u0546\u056a\u0564\u0565\u0570\u056b \u0583\u0578\u0572., 26\/10\", coords: [40.794121, 43.845853] },\r\n\t\t\t{ name: \"\u00ab\u053c\u0545\u0548\u0552\u0544\u0535\u0546\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581 45\", coords: [40.18375741099282, 44.511139189250066] },\r\n\t\t\t{ name: \"\u00ab\u0531\u0550\u0547\u0548 \u054e\u0531\u0545\u0546 \u0532\u0531\u0550\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 20\/1\", coords: [40.1853258, 44.5056421] },\r\n\t\t\t{ name: \"\u00ab\u0546\u053b\u0550\u054e\u0531\u0546\u0531\u00bb\", address: \"\u0546\u0578\u0580 \u0533\u0565\u0572\u056b, \u0531\u057c\u0578\u0572\u057b\u0561\u0580\u0561\u0576\u0561\u0575\u056b\u0576 4-\u0580\u0564 \u0583\u056f\u0572\", coords: [40.315568, 44.584496] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572 28\", coords: [40.1881478, 44.5114665] },\r\n\t\t\t{ name: \"\u00ab\u0553\u0531\u0550\u054e\u0531\u0546\u0531\u00bb\", address: \"\u0540\u0580\u0561\u0566\u0564\u0561\u0576\u056b \u053f\u056b\u0580\u0573 77\/2\", coords: [40.1894289, 44.4929074] },\r\n\t\t\t{ name: \"\u00abFABULA COWORKING\u00bb\", address: \"\u054d\u0561\u0575\u0561\u0569-\u0546\u0578\u057e\u0561\u0575\u056b \u057a\u0578\u0572\u0578\u057f\u0561 40 \u0577\u0565\u0576\u0584\", coords: [40.1774319, 44.5264099] },\r\n\t\t\t{ name: \"\u00ab\u0556\u0550\u0535\u0546\u0549 \u0532\u0531\u0532\u053c\u054d\u00bb\", address: \"\u0544\u0578\u057d\u056f\u0578\u057e\u0575\u0561\u0576 33-42\", coords: [40.1879872, 44.5128647] },\r\n\t\t\t{ name: \"\u00ab\u053f\u0548\u0550\u054a\u0548\u0552\u054d \u0533\u0531\u054d\u054f\u0550\u0548\u0532\u0531\u0550\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572\u0578\u057f\u0561 5\", coords: [40.182025, 44.5154367] }\r\n\t\t],\r\n\r\n\t\t\/\/ Supermarket chains\r\n\t\t\"\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054c\u0578\u0582\u0562\u056b\u0576\u0575\u0561\u0576\u0581 \u0583\u0578\u0572 15\/5\", coords: [40.202477, 44.545282] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576 \u0544\u0565\u056e\u056b \u057a\u0578\u0572 10\", coords: [40.174541, 44.513553] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0555\u0563\u0561\u0576\u0578\u057e\u056b \u0583\u0578\u0572 26\/9\", coords: [40.180040, 44.445757] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576 \u054a\u0565\u057f\u0580\u0578\u057d\u0575\u0561\u0576 25\/5\", coords: [40.220357, 44.493053] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054d\u0565\u0562\u0561\u057d\u057f\u056b\u0561\u0575\u056b \u0583\u0578\u0572 141\/5\", coords: [40.171427, 44.457129] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0532\u0561\u0563\u0580\u0561\u057f\u0578\u0582\u0576\u0575\u0561\u0581 \u0583\u0578\u0572 5\/3\", coords: [40.155148, 44.479039] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d\u056b \u057a\u0578\u0572 60\/2\", coords: [40.205848, 44.521691] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053e\u056b\u056e\u0565\u057c\u0576\u0561\u056f\u0561\u0562\u0565\u0580\u0564\u056b 3\", coords: [40.179406, 44.488301] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0533\u0561\u0575\u056b \u057a\u0578\u0572 16\", coords: [40.197140, 44.566742] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572 5\", coords: [40.178669, 44.503923] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0537\u0580\u0565\u0562\u0578\u0582\u0576\u0578\u0582 \u0583\u0578\u0572 18\", coords: [40.1421264, 44.5211657] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572 20\/4\", coords: [40.182052, 44.509582] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0540\u0580\u0561\u0566\u0564\u0561\u0576, \u0531\u0576\u0564\u0580\u0561\u0576\u056b\u056f\u056b 66\", coords: [40.535895, 44.770767] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054e. \u0553\u0561\u0583\u0561\u0566\u0575\u0561\u0576 8\", coords: [40.201521, 44.504866] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0561\u0576 67 1\", coords: [40.178297, 44.519221] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054e\u0565\u0580\u056b\u0576 \u054a\u057f\u0572\u0576\u056b 5\", coords: [40.248323, 44.584483] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0556\u0578\u0582\u0579\u056b\u056f\u056b 1\/1\", coords: [40.199413, 44.476695] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0554. \u054e\u0561\u0576\u0561\u0571\u0578\u0580 \u054f. \u0544\u0565\u056e\u056b 36\/2\", coords: [40.4915931, 44.63044245] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d\u056b \u057a\u0578\u0572 1\", coords: [40.201386, 44.494330] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0539\u0561\u0564\u0587\u0578\u057d\u0575\u0561\u0576 12\/20\", coords: [40.144759, 44.487340] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0554. \u0531\u0562\u0578\u057e\u0575\u0561\u0576 3-\u0580\u0564 \u0574\u056b\u056f\u0580\u0578\u0577\u0580\u057b\u0561\u0576\", coords: [40.2715286, 44.633383] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d\u056b \u057a\u0578\u0572 46\", coords: [40.206604, 44.510929] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576 \u0555\u0563\u0578\u057d\u057f\u0578\u057d\u056b 23 4\", coords: [40.272321, 44.627527] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0531\u0580\u0574\u0565\u0576\u0561\u056f \u0531\u0580\u0574\u0565\u0576\u0561\u056f\u0575\u0561\u0576 143\", coords: [40.185793, 44.541796] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0544\u0561\u0566\u0574\u0561\u0576\u0575\u0561\u0576 1\", coords: [40.209779, 44.464127] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0531\u057e\u0561\u0576 \u0531\u057c\u056b\u0576\u057b 5\/33\", coords: [40.222251, 44.572502] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u054c\u0561\u0586\u0586\u056b 55\/1\", coords: [40.173461, 44.443068] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0532\u0561\u0576\u0561\u057e\u0561\u0576 19\", coords: [40.188687, 44.592811] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0554. \u0533\u0575\u0578\u0582\u0574\u0580\u056b, \u0544\u0561\u0584\u057d\u056b\u0574 \u0533\u0578\u0580\u056f\u056b 62\", coords: [40.786898, 43.848143] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0531\u0580\u057f\u0561\u0577\u0561\u057f, \u053b\u057d\u0561\u056f\u0578\u057e\u056b 64\/1\", coords: [39.951508, 44.550913] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0544\u0580\u0563\u0561\u057e\u0561\u0576, \u0533\u0580\u056b\u0563\u0578\u0580\u0575\u0561\u0576 30\/1\", coords: [39.969344, 44.531503] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053d\u0561\u0572\u0561\u0572 \u0534\u0578\u0576\u056b 13\", coords: [40.127294, 44.527798] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0544\u056d\u0579\u0575\u0561\u0576, \u0531\u0580\u057f\u0561\u0577\u0561\u057f\u056b \u056d\u0573\u0578\u0582\u0572\u056b 1\/6\", coords: [40.030275, 44.475417] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u053e\u0561\u0580\u0561\u057e\u0561\u0572\u0562\u0575\u0578\u0582\u0580 53\/9\", coords: [40.216666, 44.548838] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0547\u056b\u0580\u0561\u0566\u056b \u0583\u0578\u0572. 20\/80\", coords: [40.2038935, 44.4621205] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0531\u0580\u0561\u0574 \u053d\u0561\u0579\u0561\u057f\u0580\u0575\u0561\u0576 3\", coords: [40.202964, 44.491843] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0535\u0580\u0561\u057d\u056d\u0561\u057e\u0561\u0576 \u0544\u0561\u0575\u0580\u0578\u0582\u0572\u056b 3\/1\", coords: [40.0897166, 44.4507532] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0554. \u0531\u0577\u057f\u0561\u0580\u0561\u056f, \u054f\u056b\u0563\u0580\u0561\u0576 \u0544\u0565\u056e\u056b 37\", coords: [40.284918, 44.358413] },\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u0535\u054e\u0531\u0546 \u054d\u053b\u0539\u053b\u00bb\", address: \"\u0554. \u054e\u0561\u0572\u0561\u0580\u0577\u0561\u057a\u0561\u057f, \u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 9\", coords: [40.166761, 44.289890] }\r\n\t\t],\r\n\r\n\t\"\u00ab88\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0546\u0578\u0580 \u0533\u0565\u0572\u056b, \u0556. \u0539\u0587\u0578\u057d\u0575\u0561\u0576 \u0583\u0578\u0572., 9 \u0577\u0565\u0576\u0584\", coords: [40.330239, 44.584097] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0531\u057c\u056b\u0576\u057b, \u054a.\u054d\u0565\u0582\u0561\u056f\u056b \u0569\u0561\u0572. 4-\u0580\u0564 \u0583\u0578\u0572. 2-\u0580\u0564 \u0583\u0561\u056f.\", coords: [40.229205, 44.581187] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0540\u0561\u056c\u0561\u0562\u0575\u0561\u0576 \u0583\u0578\u0572., 9\/4 \u0577\u0565\u0576\u0584\", coords: [40.191849, 44.478383] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0533\u0561\u0580\u0565\u0563\u056b\u0576 \u0546\u056a\u0564\u0565\u0570\u056b \u0583\u0578\u0572., 25\/9 \u0577\u0565\u0576\u0584\", coords: [40.152356, 44.495856] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u054d\u0565\u0562\u0561\u057d\u057f\u056b\u0561\u0575\u056b \u0583\u0578\u0572., 3\/3\u0561 \u0577\u0565\u0576\u0584\", coords: [40.188742, 44.462402] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0532\u0561\u056f\u0578\u0582\u0576\u0581\u056b \u0583\u0578\u0572., 11\/11 \u0577\u0565\u0576\u0584\", coords: [40.190265, 44.571161] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0531\u0580\u0561\u0562\u056f\u056b\u0580 \u0533\u0587\u0578\u0580\u0563 \u054e\u0561\u0580\u0564\u0561\u0576\u0575\u0561\u0576 \u0583\u0578\u0572., 1\u0561 \u0577\u0565\u0576\u0584\", coords: [40.201962, 44.511684] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u054d\u0561\u0575\u0561\u0569-\u0546\u0578\u057e\u0561 40\/1\", coords: [40.1776286, 44.5259736] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581 42\/4\", coords: [40.1847013, 44.5127069] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0546\u0561\u0580\u056b\u0580 \u0536\u0561\u0580\u0575\u0561\u0576 72\/12\", coords: [40.204014, 44.516912] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u0531\u0580\u0561\u0562\u056f\u056b\u0580 \u0555\u0580\u0562\u0565\u056c\u056b \u0565\u0572\u0562\u0561\u0575\u0580\u0576\u0565\u0580\u056b \u0583\u0578\u0572., 67\/2 \u0577\u0565\u0576\u0584\", coords: [40.193613, 44.488472] },\r\n\t\t\t{ name: \"\u00ab88\u00bb\", address: \"\u054b\u0578\u0582\u0572\u0561\u0575\u056b \u0583\u0578\u0572.\", coords: [40.197295, 44.558896] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0537\u057b\u0574\u056b\u0561\u056e\u056b\u0576, \u054d\u057a\u0561\u0576\u0564\u0561\u0580\u0575\u0561\u0576 29\", coords: [40.171647, 44.296106] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0531\u0577\u057f\u0561\u0580\u0561\u056f, \u054f\u056b\u0563\u0580\u0561\u0576 \u0544\u0565\u056e 33\/1\", coords: [40.285221, 44.358548] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u054c\u0578\u057d\u057f\u0578\u0574\u056b 30\", coords: [40.1664312, 44.5179817] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0533\u0561\u0575\u056b \u057a\u0578\u0572 8\/2\", coords: [40.199806, 44.566068] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0532\u0561\u0577\u056b\u0576\u057b\u0561\u0572\u0575\u0561\u0576 188\/1\", coords: [40.2079004, 44.4683833] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576 \u054a\u0565\u057f\u0580\u0578\u057d\u0575\u0561\u0576 44\/1\", coords: [40.221851, 44.494706] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0561\u0576 62\", coords: [40.1777334, 44.519174] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0534\u056b\u056c\u056b\u057b\u0561\u0576, \u0544\u0561\u0584\u057d\u056b\u0574 \u0533\u0578\u0580\u056f\u0578\u0582 50\", coords: [40.739010, 44.865063] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0537\u057b\u0574\u056b\u0561\u056e\u056b\u0576, \u053c. \u0531\u0566\u0563\u0561\u056c\u0564\u0575\u0561\u0576 2\/1\", coords: [40.164080, 44.297310] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0531\u0562\u0578\u057e\u0575\u0561\u0576, \u0540\u0561\u057f\u056b\u057d\u056b 1\/15\", coords: [40.273621, 44.635705] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0533\u0575\u0578\u0582\u0580\u057b\u0575\u0561\u0576 27\/1\", coords: [40.19487175, 44.56252935] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u054f\u056b\u0579\u056b\u0576\u0561\u0575\u056b \u0583\u0578\u0572. 29\/2\", coords: [40.1833371, 44.4600116] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0547\u056b\u0576\u0561\u0580\u0561\u0580\u0576\u0565\u0580 12\", coords: [40.194632, 44.474197] },\r\n\t\t\t{ name: \"\u00ab\u053e\u053b\u0550\u0531\u0546\u00bb\", address: \"\u0531\u0577\u056d\u0561\u0562\u0561\u0564\u056b 1\/1\", coords: [40.220701, 44.575958] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u057d\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0531\u0580\u0577\u0561\u056f\u0578\u0582\u0576\u0575\u0561\u0581 11\/1 (8)\", coords: [40.1661321, 44.5057232] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572 18 (1)\", coords: [40.1803816, 44.5074847] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 \u0583\u0578\u0572 31 (2)\", coords: [40.1858968, 44.5122958] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0532\u0561\u0572\u0580\u0561\u0574\u0575\u0561\u0576 \u057a\u0578\u0572 85 (3)\", coords: [40.1964195, 44.4935178] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d\u056b \u057a\u0578\u0572 52 (4)\", coords: [40.2064511, 44.51421] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u053b\u057d\u0561\u0570\u0561\u056f\u0575\u0561\u0576 \u0583\u0578\u0572 35 (5)\", coords: [40.1863532, 44.5225043] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0554\u0561\u057b\u0561\u0566\u0576\u0578\u0582\u0576\u0578\u0582 \u0583\u0578\u0572 20\/1 (7)\", coords: [40.171506, 44.518186] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u053f\u056b\u0587\u0575\u0561\u0576 \u0583\u0578\u0572 1\u0561 (9)\", coords: [40.1932906, 44.4847798] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0540\u0561\u056c\u0561\u0562\u0575\u0561\u0576 22\/5 (10)\", coords: [40.20048615, 44.4800847] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0531\u054d\u00bb\", address: \"\u0531\u0576\u0564\u0580\u0561\u0576\u056b\u056f\u056b 40\/5 (6)\", coords: [40.177383, 44.445654] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u0531\u0580\u0577\u0561\u056f\u0578\u0582\u0576\u0575\u0561\u0581 \u057a\u0578\u0572. 34\/3\", coords: [40.1560362, 44.4988544] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576 \u0544\u0565\u056e\u056b \u057a\u0578\u0572. 16\", coords: [40.171950, 44.512870] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u0533\u056c\u0565\u0576\u0564\u0565\u056c \u0540\u056b\u056c\u0566 \u0531\u0580\u0563\u056b\u0577\u057f\u056b\u056b 11\/3\", coords: [40.163561, 44.50135105] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u054e\u0565\u0580\u056b\u0576 \u0531\u0576\u057f\u0561\u057c\u0561\u0575\u056b\u0576 \u0583\u0578\u0572. 131\", coords: [40.1963938, 44.5125458] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u0532\u0578\u0582\u0566\u0561\u0576\u0564 45\", coords: [40.1813081, 44.5096663] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u0533\u0578\u0582\u056c\u0562\u0565\u0576\u056f\u0575\u0561\u0576 30\/3\", coords: [40.2002234, 44.4962352] },\r\n\t\t\t{ name: \"\u00ab\u0554\u0531\u0550\u0556\u0548\u0552\u0550\u00bb\", address: \"\u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0561\u0576 59\", coords: [40.177470, 44.517272] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0566\u0578\u057e\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0536\u0548\u054e\u0554\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 12\/13\", coords: [40.1863613, 44.5078938] },\r\n\t\t\t{ name: \"\u00ab\u0536\u0548\u054e\u0554\u00bb\", address: \"\u053d\u0578\u0580\u0565\u0576\u0561\u0581\u056b 33\/7\", coords: [40.168215, 44.515080] },\r\n\t\t\t{ name: \"\u00ab\u0536\u0548\u054e\u0554\u00bb\", address: \"\u053f\u0578\u0574\u056b\u057f\u0561\u057d 56\", coords: [40.2063014, 44.5181399] },\r\n\t\t\t{ name: \"\u00ab\u0536\u0548\u054e\u0554\u00bb\", address: \"\u0533\u0575\u0578\u0582\u0580\u057b\u0575\u0561\u0576 11\/3\", coords: [40.193227, 44.562232] },\r\n\t\t\t{ name: \"\u00ab\u0536\u0548\u054e\u0554\u00bb\", address: \"\u0554\u0561\u057b\u0561\u0566\u0576\u0578\u0582\u0576\u056b 8\/10\", coords: [40.169153, 44.519715] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u0531\u0564\u0578\u0576\u0581\u056b \u0583\u0578\u0572 6\", coords: [40.212458, 44.523443] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u053d\u0578\u0580\u0565\u0576\u0561\u0581\u056b 27\/2\", coords: [40.173411, 44.511136] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u053e\u0561\u0580\u0561\u057e \u0531\u0572\u0562\u0575\u0578\u0582\u0580 55\/15\", coords: [40.2187299, 44.5501046] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u053c\u057e\u0578\u057e\u0575\u0561\u0576 \u0583\u0578\u0572. 14\/1\", coords: [40.203270, 44.562313] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u0549\u0565\u056d\u0578\u057e 52\/26\", coords: [40.153342, 44.478922] },\r\n\t\t\t{ name: \"\u00ab\u0549\u053b\u0546\u0531\u0550\u00bb\", address: \"\u053d\u0578\u0580\u0565\u0576\u0561\u0581\u056b 47\", coords: [40.163570, 44.516589] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0550\u0544\u0531\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572 3\/85\", coords: [40.1829656, 44.515017] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0550\u0544\u0531\u00bb\", address: \"\u054e\u0561\u0572\u0561\u0580\u0577\u0575\u0561\u0576 \u0583\u0578\u0572 10\", coords: [40.198221, 44.502198] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0550\u0544\u0531\u00bb\", address: \"\u054a\u0578\u0582\u0577\u056f\u056b\u0576 49\", coords: [40.185252, 44.508685] },\r\n\t\t\t{ name: \"\u00ab\u054a\u0531\u0550\u0544\u0531\u00bb\", address: \"\u0544\u0561\u0580\u0577\u0561\u056c \u0532\u0561\u0562\u0561\u057b\u0561\u0576\u0575\u0561\u0576 4\/12\", coords: [40.220371, 44.573066] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0537\u054e\u0550\u053b\u053f\u0531\u00bb\", address: \"\u054d\u0561\u0575\u0561\u0569-\u0546\u0578\u057e\u0561\u0575\u056b \u057a\u0578\u0572 19\/1\", coords: [40.182989, 44.520092] },\r\n\t\t\t{ name: \"\u00ab\u0537\u054e\u0550\u053b\u053f\u0531\u00bb\", address: \"\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u057a\u0578\u0572 10\/6\", coords: [40.181664, 44.514504] },\r\n\t\t\t{ name: \"\u00ab\u0537\u054e\u0550\u053b\u053f\u0531\u00bb\", address: \"\u0536\u0561\u0584\u0575\u0561\u0576 5\", coords: [40.1780375, 44.5088279] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u054c\u0548\u053f \u0556\u0548\u0550\u00bb\", address: \"\u0544\u0561\u0577\u057f\u0578\u0581\u056b \u057a\u0578\u0572 48\", coords: [40.1884945, 44.5172623] },\r\n\t\t\t{ name: \"\u00ab\u054c\u0548\u053f \u0556\u0548\u0550\u00bb\", address: \"\u0532\u0578\u0582\u0566\u0561\u0576\u0564\u056b \u0583\u0578\u0572. 17\", coords: [40.1800509, 44.5114018] },\r\n\t\t\t{ name: \"\u00ab\u054c\u0548\u053f \u0556\u0548\u0550\u00bb\", address: \"\u0531\u0580\u0561\u0574\u056b 86\", coords: [40.1839202, 44.507468] }\r\n\t\t],\r\n\r\n\t\t\/\/ Individual shops\r\n\t\t\"\u00ab\u0561\u0563\u0578\u057c\u0561 \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0531\u0533\u0548\u054c\u0531 \u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u05313 \u0569\u0561\u0572 15\/2\", coords: [40.182003, 44.570983] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0561\u056c\u056f\u0578\u0570\u0578\u056c\u056c\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0531\u053c\u053f\u0548\u0540\u0548\u053c\u053c\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 4\/5\", coords: [40.1794947, 44.5108391] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0561\u0580\u0574\u0561\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0531\u0550\u0544\u0531\u054f\u00bb\", address: \"\u054e.\u0540\u0561\u0574\u0562\u0561\u0580\u0571\u0578\u0582\u0574\u0575\u0561\u0576 18\/3\", coords: [40.199117, 44.505602] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0562\u0561\u0580\u056b\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0532\u0531\u0550\u053b\u0554\u00bb\", address: \"\u0546\u0565\u0580\u0584\u056b\u0576 \u0549\u0561\u0580\u0562\u0561\u056d 1 7\/4\", coords: [40.125798, 44.440457] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0562\u0580\u0565\u0576\u0564 \u0561\u056c\u056f\u0578\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0532\u0550\u0535\u0546\u0534 \u0531\u053c\u053f\u0548\u00bb\", address: \"\u0544\u0561\u0575\u056b\u057d\u056b 9-\u056b 1 \u0577\u0565\u0576\u0584\", coords: [40.1520488, 44.4924456] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0563\u0565\u057e\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0533\u0535\u054e\u00bb\", address: \"\u0544\u0531\u0550\u053f\u0535\u054f 4- \u0580\u0564 \u0563. \u0540\u0561\u0572\u0569\u0561\u0576\u0561\u056f\u056b 1 4\/10\", coords: [40.1868464, 44.4254803] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0563\u0576\u0578\u0582\u0576\u056b \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0533\u0546\u0548\u0552\u0546\u053b \u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0535\u0580\u057e\u0561\u0576\u0564 \u0554\u0578\u0579\u0561\u0580 1 10\", coords: [40.1732933, 44.5213051] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0564\u0575\u0578\u0582\u0569\u056b \u0586\u0580\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0534\u0545\u0548\u0552\u0539\u053b \u0556\u0550\u053b\u00bb\", address: \"\u0531\u0580\u0561\u0580\u0561\u057f\u0575\u0561\u0576 62\/23\", coords: [40.1452801, 44.4789913] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0565\u0580\u056b\u0581\u0575\u0561\u0576\u0576\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0535\u0550\u053b\u0551\u0545\u0531\u0546\u0546\u0535\u0550\u00bb\", address: \"\u0553\u0561\u0583\u0561\u0566\u0575\u0561\u0576 21\/92\", coords: [40.2049728, 44.5015064] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0566\u0561\u0574\u0562\u0575\u0578\u0582\u0572\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0536\u0531\u0544\u0532\u0545\u0548\u0552\u0542\u00bb\", address: \"\u0539\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 32\/1\", coords: [40.1834724, 44.51653135] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0567\u057d \u0567\u0586\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0537\u054d \u0537\u0556\u00bb\", address: \"\u0531\u0580\u0566\u0578\u0582\u0574\u0561\u0576\u0575\u0561\u0576 3\/1\", coords: [40.192710, 44.476704] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u056c\u056b\u0564\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u053c\u053b\u0534\u0535\u0550\u00bb\", address: \"\u0544\u0531\u0550\u053f\u0535\u054f \u0554. \u054e\u0561\u0575\u0584\", coords: [39.6889653, 45.4730602] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u056f\u0561\u0575\u0566\u0565\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u053f\u0531\u0545\u0536\u0535\u0550\u00bb\", address: \"\u0544\u0561\u0580\u0563\u0561\u0580\u0575\u0561\u0576 23\/6\", coords: [40.2047222, 44.4747222] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u056f\u0565\u057c\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u053f\u0535\u054c\u0531\u054d\u00bb\", address: \"\u0532\u0578\u0582\u0566\u0561\u0576\u0564\u056b 7\/8\", coords: [40.17952565, 44.51203805] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u056f\u0565\u057c\u0561\u057d\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u053f\u0535\u054c\u0531\u054d\u053b\u00bb\", address: \"\u054f\u056b\u0563\u0580\u0561\u0576\u0575\u0561\u0576 1 9\", coords: [40.211873, 44.517110] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0570\u0561\u0575\u056f\u0561\u056f\u0561\u0576 \u0561\u0576\u056f\u0575\u0578\u056b\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0540\u0531\u0545\u053f\u0531\u053f\u0531\u0546 \u0531\u0546\u053f\u0545\u0548\u053b\u0546\u00bb\", address: \"\u0533\u0561\u057c\u0576\u056b \u0544\u0561\u0580\u0566\u057a\u0565\u057f\u0578\u0582\u0576\u056b 10\", coords: [40.1185127, 44.7186328] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0573\u056b\u0577\u057f \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0543\u053b\u0547\u054f \u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0554. \u0535\u0572\u0565\u0563\u0576\u0561\u0571\u0578\u0580\", coords: [39.759815, 45.3328203] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0561\u0563\u0576\u056b\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054d\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 12\", coords: [40.180702, 44.508432] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054d\u00bb\", address: \"\u0544\u0578\u0582\u0580\u0561\u0581\u0561\u0576\u056b \u0583\u0578\u0572 113\/3\", coords: [40.149130, 44.518152] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054d\u00bb\", address: \"\u0556\u0580\u0578\u0582\u0576\u0566\u0565 10\", coords: [40.148192, 44.495065] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054d\u00bb\", address: \"\u0536\u0578\u057e\u0578\u0582\u0576\u056b 1 \u0583. 21\", coords: [40.232489, 44.510965] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0561\u0563\u0576\u056b\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054f\u00bb\", address: \"\u0531. \u0531\u057e\u0565\u057f\u056b\u057d\u0575\u0561\u0576 78 69\", coords: [40.198497, 44.502656] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0533\u0546\u053b\u054f\u00bb\", address: \"\u0546. \u0536\u0561\u0580\u0575\u0561\u0576 17 32\", coords: [40.204668, 44.512277] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0561\u0575 \u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0545 \u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0531\u057e\u0561\u0576\u0565\u057d\u0578\u057e 8\/3\", coords: [40.131853, 44.525006] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0545 \u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u053d\u0561\u0572\u0561\u0572 \u0534\u0578\u0576\u056b 16\", coords: [40.128764, 44.525024] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0561\u0580\u056f\u0565\u057f\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0535\u0580\u057e\u0561\u0576\u0564 \u0555\u057f\u0575\u0561\u0576 22\/1\", coords: [40.185683, 44.455782] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0554. \u0544\u0561\u057d\u056b\u057d \u0540\u0580\u0561\u057a\u0561\u0580\u0561\u056f 2\", coords: [40.062375, 44.443682] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0550\u053f\u0535\u054f\u00bb\", address: \"\u0531\u0580\u0577\u0561\u056f\u0578\u0582\u0576\u0575\u0561\u0581 48\", coords: [40.148241, 44.497167] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0561\u0584\u057d\u056b\u0574\u0578\u0582\u0574\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0531\u0554\u054d\u053b\u0544\u0548\u0552\u0544\u00bb\", address: \"\u053c\u0565\u0576\u056b\u0576\u0563\u0580\u0561\u0564\u0575\u0561\u0576 50\", coords: [40.1911605, 44.4649432] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0574\u0578\u0582\u057d\u0561\u056c\u0565\u057c \u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u0552\u054d\u0531\u053c\u0535\u054c \u00bb\", address: \"\u0540\u0561\u056c\u0561\u0562\u0575\u0561\u0576 33\", coords: [40.197367, 44.478887] },\r\n\t\t\t{ name: \"\u00ab\u0544\u0548\u0552\u054d\u0531\u053c\u0535\u054c \u00bb\", address: \"\u0540\u0561\u056c\u0561\u0562\u0575\u0561\u0576 23\", coords: [40.195114, 44.478572] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0576\u0578\u0575\u0561\u0576 \u057f\u0561\u057a\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0545\u0531\u0546 \u054f\u0531\u054a\u0531\u0546\u00bb\", address: \"\u0533\u0580 \u053c\u0578\u0582\u057d\u0561\u057e\u0578\u0580\u056b\u0579 3\", coords: [40.172116, 44.507273] },\r\n\t\t\t{ name: \"\u00ab\u0546\u0548\u0545\u0531\u0546 \u054f\u0531\u054a\u0531\u0546\u00bb\", address: \"\u0531\u0574\u056b\u0580\u0575\u0561\u0576 12\", coords: [40.180702, 44.508432] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0577\u056b\u0577 \u0561\u056c\u056f\u0578\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0547\u053b\u0547 \u0531\u053c\u053f\u0548\u00bb\", address: \"\u0534\u0561\u057e\u0569\u0561\u0577\u0565\u0576 3-\u0580\u0564 \u0569\u0561\u0572.12\/7\", coords: [40.2164678, 44.4934559] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u057d\u0584\u0561\u0575\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u054d\u0554\u0531\u0545\u00bb\", address: \"\u0531\u0580\u0574\u0565\u0576\u0561\u056f \u0531\u0580\u0574\u0565\u0576\u0561\u056f\u0575\u0561\u0576 26\", coords: [40.186455, 44.530764] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0554\u0531\u0545\u00bb\", address: \"\u0546\u0561\u0566\u0561\u0580\u0562\u0565\u056f\u0575\u0561\u0576 19\/19\", coords: [40.213395, 44.463076] },\r\n\t\t\t{ name: \"\u00ab\u054d\u0554\u0531\u0545\u00bb\", address: \"\u054e\u0565\u0580\u056b\u0576 \u0531\u0576\u057f\u0561\u057c\u0561\u0575\u056b\u0576 138\/3\", coords: [40.197250, 44.511576] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u057e\u0561\u0575\u0576 \u057d\u0569\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u054e\u0531\u0545\u0546 \u054d\u0539\u0548\u0550\u00bb\", address: \"\u053e\u0561\u0572\u056f\u0561\u0571\u0578\u0580 \u0555\u0580\u0562\u0565\u056c\u056b 16\", coords: [40.533044, 44.720578] }\r\n\t\t],\r\n\r\n\t\t\"\u00ab\u0585\u0570\u0561\u0576\u0575\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f\": [\r\n\t\t\t{ name: \"\u00ab\u0555\u0540\u0531\u0546\u0545\u0531\u0546\u00bb\", address: \"\u053f\u056b\u0587\u0575\u0561\u0576 \u0583\u0578\u0572. 18\", coords: [40.195707, 44.489873] },\r\n\t\t\t{ name: \"\u00ab\u0555\u0540\u0531\u0546\u0545\u0531\u0546\u00bb\", address: \"\u054d\u0561\u0580\u0575\u0561\u0576 \u0583\u0578\u0572. 24\", coords: [40.183954, 44.504911] }\r\n\t\t]\r\n\t};\r\n\r\n        let map;\r\n        let markers = [];\r\n        let currentPopup = null;\r\n        let userPosition = null;\r\n        let userMarker = null;\r\n        \/\/ zeromaze-map takes [lng, lat]; our data stays [lat, lng] like Leaflet had it.\r\n        function toLngLat(coords) {\r\n            return [coords[1], coords[0]];\r\n        }\r\n\r\n        \/\/ Leaflet had paddingTopLeft [150, 20] on desktop to keep pins out from under the\r\n        \/\/ controls panel. zeromaze-map only does symmetric [x, y] padding, so 160 each side.\r\n        function framePadding() {\r\n            return window.innerWidth < 768 ? [10, 10] : [160, 20];\r\n        }\r\n\r\n        function pinHtml(color, index) {\r\n            const indexStyle = index === undefined ? '' : ` style=\"--index: ${index}\"`;\r\n            return `<div class=\"marker-entrance\"${indexStyle}>\r\n                    <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n                        <path d=\"M16 2C10.477 2 6 6.477 6 12c0 6.5 10 18 10 18s10-11.5 10-18c0-5.523-4.477-10-10-10zm0 14a4 4 0 110-8 4 4 0 010 8z\"\r\n                            fill=\"${color}\"\r\n                            stroke=\"#545d5c\"\r\n                            stroke-width=\"1\"\/>\r\n                    <\/svg>\r\n                <\/div>`;\r\n        }\r\n\r\n        \/\/ One pin + its popup. Same markup every Leaflet divIcon block used to build.\r\n        function addPin(location, color, index) {\r\n            const marker = map.addMarker({\r\n                lng: location.coords[1],\r\n                lat: location.coords[0],\r\n                html: pinHtml(color, index),\r\n                className: 'custom-div-icon',\r\n                anchor: 'bottom'\r\n            }).bindPopup(`\r\n                <div class=\"custom-popup\">\r\n                    <h3>${location.name}<\/h3>\r\n                    <p>${location.address}<\/p>\r\n                <\/div>\r\n            `);\r\n            marker.coords = location.coords;\r\n            markers.push(marker);\r\n            return marker;\r\n        }\r\n\r\n        function clearMarkers() {\r\n            markers.forEach(marker => marker.remove());\r\n            markers = [];\r\n        }\r\n\r\n        \/\/ Only the private _openPopup can open a popup from code (no public API in v0.18).\r\n        function openMarkerPopup(marker) {\r\n            try { map._openPopup(marker.popup); } catch (e) { \/* popup just stays closed *\/ }\r\n        }\r\n\r\n        \/\/ durations are milliseconds here, Leaflet's were seconds\r\n        function flyToCoordsList(coordsList, durationMs, maxZoom) {\r\n            map.flyToBounds(coordsList.map(toLngLat), {\r\n                padding: framePadding(),\r\n                maxZoom: maxZoom,\r\n                duration: durationMs\r\n            });\r\n        }\r\n\r\n        function fitCoordsList(coordsList, maxZoom) {\r\n            map.fitBounds(coordsList.map(toLngLat), {\r\n                padding: framePadding(),\r\n                maxZoom: maxZoom\r\n            });\r\n        }\r\n\r\n        function calculateDistance(lat1, lon1, lat2, lon2) {\r\n            const R = 6371;\r\n            const dLat = (lat2 - lat1) * Math.PI \/ 180;\r\n            const dLon = (lon2 - lon1) * Math.PI \/ 180;\r\n            const a = \r\n                Math.sin(dLat\/2) * Math.sin(dLat\/2) +\r\n                Math.cos(lat1 * Math.PI \/ 180) * Math.cos(lat2 * Math.PI \/ 180) * \r\n                Math.sin(dLon\/2) * Math.sin(dLon\/2);\r\n            const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));\r\n            return R * c;\r\n        }\r\n\r\n        function getAllLocations() {\r\n            let allLocations = [];\r\n            Object.entries(lusarevLocations).forEach(([type, locations]) => {\r\n                locations.forEach(location => {\r\n                    allLocations.push({\r\n                        ...location,\r\n                        type: type\r\n                    });\r\n                });\r\n            });\r\n            return allLocations;\r\n        }\r\n\r\n\/\/ Function to determine marker color based on location type\r\nfunction getMarkerColor(locationType) {\r\n    if (locationType === 'delivery') return '#4CAF50';\r\n    if (locationType === 'horeca') return '#3f7bff';\r\n    \r\n    \/\/ Updated chain stores list\r\n    const chainStores = [\r\n        '\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb',\r\n        '\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb',\r\n        '\u00ab\u057d\u0561\u057d\u00bb',\r\n        '\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb',\r\n        '\u00ab88\u00bb',\r\n        '\u00ab\u0566\u0578\u057e\u0584\u00bb',\r\n        '\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb',\r\n        '\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb',\r\n        '\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb',\r\n        '\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb'\r\n    ];\r\n    \r\n    if (locationType.includes('\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f')) {\r\n        for (const chain of chainStores) {\r\n            if (locationType.startsWith(chain)) {\r\n                return '#F6AE2D'; \/\/ Chain store color\r\n            }\r\n        }\r\n        return '#ce6a5e'; \/\/ Individual shop color\r\n    }\r\n    \r\n    return '#ce6a5e'; \/\/ Default color\r\n}\r\n\/\/ Function to add markers with animation\r\nfunction addMarkersWithAnimation(locations, locationType) {\r\n    clearMarkers();\r\n\r\n    const bounds = [];\r\n    const markerColor = getMarkerColor(locationType);\r\n\r\n    locations.forEach((location, index) => {\r\n        setTimeout(() => {\r\n            addPin(location, markerColor);\r\n            bounds.push(location.coords);\r\n\r\n            if (index === locations.length - 1) {\r\n                flyToCoordsList(bounds, 500, 15);\r\n\r\n                if (locations.length === 1) {\r\n                    setTimeout(() => {\r\n                        map.flyTo({ center: toLngLat(location.coords), zoom: 14, duration: 600 });\r\n                    }, 600);\r\n                }\r\n            }\r\n        }, index * 5);\r\n    });\r\n}\r\n\r\nfunction updateMarkers(locationType) {\r\n    if (!locationType) return;\r\n\r\n    if (locationType === 'all-chains') {\r\n        const chainStores = [\r\n            '\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057d\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab88\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0566\u0578\u057e\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f'\r\n        ];\r\n\r\n        clearMarkers();\r\n\r\n        const bounds = [];\r\n        chainStores.forEach((store, storeIndex) => {\r\n            if (lusarevLocations[store]) {\r\n                lusarevLocations[store].forEach((location, index) => {\r\n                    setTimeout(() => {\r\n                        addPin(location, '#F6AE2D');\r\n                        bounds.push(location.coords);\r\n                    }, (storeIndex * 100) + (index * 5));\r\n                });\r\n            }\r\n        });\r\n\r\n        setTimeout(() => {\r\n            if (bounds.length > 0) {\r\n                flyToCoordsList(bounds, 1500, 15);\r\n            }\r\n        }, 100);\r\n\r\n    } else if (locationType === 'all-shops') {\r\n        const chainStores = [\r\n            '\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057d\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab88\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0566\u0578\u057e\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n            '\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f'\r\n        ];\r\n\r\n        clearMarkers();\r\n\r\n        const bounds = [];\r\n        let markerIndex = 0;\r\n\r\n        Object.entries(lusarevLocations).forEach(([type, locations]) => {\r\n            if (type !== 'horeca' && type !== 'delivery' && !chainStores.includes(type) && type.includes('\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f')) {\r\n                locations.forEach((location, index) => {\r\n                    setTimeout(() => {\r\n                        addPin(location, '#ce6a5e');\r\n                        bounds.push(location.coords);\r\n                    }, markerIndex * 5);\r\n                    markerIndex++;\r\n                });\r\n            }\r\n        });\r\n\r\n        setTimeout(() => {\r\n            if (bounds.length > 0) {\r\n                flyToCoordsList(bounds, 1500, 15);\r\n            }\r\n        }, 100);\r\n\r\n    } else if (lusarevLocations[locationType]) {\r\n        addMarkersWithAnimation(lusarevLocations[locationType], locationType);\r\n    }\r\n}\r\n\r\n\/\/ Event listeners for dropdowns\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n    const dropdowns = [\r\n        'delivery-select',\r\n        'restaurants-select',\r\n        'chains-select',\r\n        'shops-select'\r\n    ];\r\n\r\n    dropdowns.forEach(selectId => {\r\n        const select = document.getElementById(selectId);\r\n        if (select) {\r\n            select.addEventListener('change', function(e) {\r\n                const selectedType = e.target.value;\r\n                if (selectedType) {\r\n                    \/\/ Clear other dropdowns\r\n                    dropdowns.forEach(id => {\r\n                        if (id !== selectId) {\r\n                            const otherSelect = document.getElementById(id);\r\n                            if (otherSelect) {\r\n                                otherSelect.value = '';\r\n                            }\r\n                        }\r\n                    });\r\n                    updateMarkers(selectedType);\r\n                }\r\n            });\r\n        }\r\n    });\r\n});\r\nfunction findClosestLocation() {\r\n    if (!userPosition) {\r\n        if (navigator.geolocation) {\r\n            navigator.geolocation.getCurrentPosition(\r\n                (position) => {\r\n                    userPosition = position;\r\n                    findClosestFromPosition(position);\r\n                },\r\n                (error) => {\r\n                    console.error('Error getting location:', error);\r\n                    alert('Please enable location services to use this feature');\r\n                }\r\n            );\r\n        } else {\r\n            alert('Geolocation is not supported by your browser');\r\n        }\r\n    } else {\r\n        findClosestFromPosition(userPosition);\r\n    }\r\n}\r\n\r\n\r\n\r\nfunction findClosestFromPosition(position) {\r\n    const restaurantsSelect = document.getElementById('restaurants-select');\r\n    const chainsSelect = document.getElementById('chains-select');\r\n    const shopsSelect = document.getElementById('shops-select');\r\n    \r\n    let locationsToSearch = [];\r\n    let activeDropdown = null;\r\n\r\n    const chainStores = [\r\n        '\u00ab\u0565\u0580\u0565\u057e\u0561\u0576 \u057d\u056b\u0569\u056b\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u056e\u056b\u0580\u0561\u0576\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u057d\u0561\u057d\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u0584\u0561\u0580\u0586\u0578\u0582\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab88\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u0566\u0578\u057e\u0584\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u0579\u056b\u0576\u0561\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u057a\u0561\u0580\u0574\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u0567\u057e\u0580\u056b\u056f\u0561\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f',\r\n        '\u00ab\u057c\u0578\u056f \u0586\u0578\u0580\u00bb\u00bb-\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f'\r\n    ];\r\n\r\n    if (restaurantsSelect.value) {\r\n        locationsToSearch = lusarevLocations['horeca'].map(location => ({\r\n            ...location,\r\n            type: 'horeca'\r\n        }));\r\n        activeDropdown = 'restaurants-select';\r\n    } else if (chainsSelect.value) {\r\n        chainStores.forEach(store => {\r\n            if (lusarevLocations[store]) {\r\n                locationsToSearch = locationsToSearch.concat(\r\n                    lusarevLocations[store].map(location => ({\r\n                        ...location,\r\n                        type: store\r\n                    }))\r\n                );\r\n            }\r\n        });\r\n        activeDropdown = 'chains-select';\r\n    } else if (shopsSelect.value) {\r\n        Object.entries(lusarevLocations).forEach(([type, locations]) => {\r\n            if (type !== 'horeca' && type !== 'delivery' && !chainStores.includes(type) && type.includes('\u057d\u0578\u0582\u057a\u0565\u0580\u0574\u0561\u0580\u056f\u0565\u057f')) {\r\n                locationsToSearch = locationsToSearch.concat(\r\n                    locations.map(location => ({\r\n                        ...location,\r\n                        type: type\r\n                    }))\r\n                );\r\n            }\r\n        });\r\n        activeDropdown = 'shops-select';\r\n    } else {\r\n        locationsToSearch = getAllLocations();\r\n    }\r\n\r\n    let closest = null;\r\n    let minDistance = Infinity;\r\n\r\n    locationsToSearch.forEach(location => {\r\n        if (location.coords && location.coords[0] && location.coords[1]) {\r\n            const distance = calculateDistance(\r\n                position.coords.latitude,\r\n                position.coords.longitude,\r\n                location.coords[0],\r\n                location.coords[1]\r\n            );\r\n            if (distance < minDistance) {\r\n                minDistance = distance;\r\n                closest = location;\r\n            }\r\n        }\r\n    });\r\n\r\n    if (closest) {\r\n        ['restaurants-select', 'chains-select', 'shops-select'].forEach(id => {\r\n            const dropdown = document.getElementById(id);\r\n            if (dropdown) {\r\n                if (id === activeDropdown) {\r\n                    dropdown.value = closest.type;\r\n                    let borderColor = id === 'restaurants-select' ? '#3f7bff' : \r\n                                    id === 'chains-select' ? '#F6AE2D' : '#ce6a5e';\r\n                    \r\n                    dropdown.style.borderColor = borderColor;\r\n                    dropdown.style.borderWidth = '2px';\r\n                    dropdown.style.boxShadow = `0 0 0 1px ${borderColor}`;\r\n                } else {\r\n                    dropdown.value = '';\r\n                    dropdown.style.borderColor = '#ddd';\r\n                    dropdown.style.borderWidth = '1px';\r\n                    dropdown.style.boxShadow = 'none';\r\n                }\r\n            }\r\n        });\r\n\r\n        addMarkersWithAnimation([closest], closest.type);\r\n\r\n        map.flyTo({ center: toLngLat(closest.coords), zoom: 14, duration: 500 });\r\n\r\n        setTimeout(() => {\r\n            markers.forEach(marker => {\r\n                if (marker.coords[0] === closest.coords[0] &&\r\n                    marker.coords[1] === closest.coords[1]) {\r\n                    openMarkerPopup(marker);\r\n                }\r\n            });\r\n        }, 600);\r\n    }\r\n}\r\n\r\n\/\/ New function to show all locations\r\nfunction showAllLocations() {\r\n    clearMarkers();\r\n    const bounds = [];\r\n    let markerIndex = 0;\r\n    Object.entries(lusarevLocations).forEach(([locationType, locations]) => {\r\n        const markerColor = getMarkerColor(locationType);\r\n\r\n        locations.forEach(location => {\r\n            if (location.coords && location.coords[0] && location.coords[1]) {\r\n                addPin(location, markerColor, markerIndex);\r\n                markerIndex++;\r\n                bounds.push(location.coords);\r\n            }\r\n        });\r\n    });\r\n\r\n    if (bounds.length > 0) {\r\n        fitCoordsList(bounds, window.innerWidth < 768 ? 20 : 15);\r\n    }\r\n}\r\n\/\/ Modify initMap function\r\n\r\nfunction initMap() {\r\n    \/\/ The tile worker is inlined above as text, so it runs from a blob: URL\r\n    \/\/ (a worker URL on another domain would be blocked by the browser).\r\n    const workerSource = document.getElementById('lusarev-zmv-worker').textContent;\r\n    const workerUrl = URL.createObjectURL(new Blob([workerSource], { type: 'text\/javascript' }));\r\n    const mapEl = document.getElementById('lusarev-map');\r\n\r\n    \/\/ cooperativeGestures = ctrl+scroll to zoom and two-finger drag on touch, with a\r\n    \/\/ hint. Replaces the old scrollWheelZoom\/dragging toggles we did by hand.\r\n    map = new ZMV.ZeroMap(mapEl, {\r\n        center: [44.5152, 40.1872], \/\/ Yerevan center, [lng, lat]\r\n        zoom: 12,\r\n        cooperativeGestures: true,\r\n        renderer: (c, r) => new ZMV.VectorRenderer(c, r, { workerUrl: workerUrl })\r\n    });\r\n    try {\r\n        map.renderer.setStyle(ZMV.brandStyle('#B98D58')); \/\/ Lusarev gold\r\n    } catch (e) { \/* default light style is fine *\/ }\r\n\r\n    \/\/ Weak Android phones get the lighter render mode. deviceMemory only exists in\r\n    \/\/ Chromium; iOS caps hardwareConcurrency at 4, so trusting it alone would strip\r\n    \/\/ the map on every iPhone.\r\n    try {\r\n        const dm = navigator.deviceMemory;\r\n        if (dm !== undefined && (dm < 4 || (navigator.hardwareConcurrency || 8) <= 4)) {\r\n            map.setPerformanceMode('lite');\r\n        }\r\n    } catch (e) { \/* full mode is fine *\/ }\r\n\r\n    const zoomControls = document.createElement('div');\r\n    zoomControls.className = 'lusarev-zoom';\r\n    zoomControls.innerHTML = '<button type=\"button\" aria-label=\"Zoom in\">+<\/button>' +\r\n        '<button type=\"button\" aria-label=\"Zoom out\">&minus;<\/button>';\r\n    zoomControls.children[0].addEventListener('click', () => map.zoomIn());\r\n    zoomControls.children[1].addEventListener('click', () => map.zoomOut());\r\n    mapEl.appendChild(zoomControls);\r\n\r\n    showAllLocations();\r\n\r\n    const yerevanBounds = [\r\n        [40.1672, 44.4848], \/\/ Southwest coordinates\r\n        [40.2047, 44.5441]  \/\/ Northeast coordinates\r\n    ];\r\n    fitCoordsList(yerevanBounds, window.innerWidth < 768 ? 20 : 15);\r\n\r\n    \/\/ Handle dropdown changes\r\n    const dropdowns = ['restaurants-select', 'chains-select', 'shops-select'];\r\n    dropdowns.forEach(selectId => {\r\n        const select = document.getElementById(selectId);\r\n        if (select) {\r\n            select.addEventListener('change', function(e) {\r\n                const selectedType = e.target.value;\r\n                \r\n                dropdowns.forEach(id => {\r\n                    const dropdown = document.getElementById(id);\r\n                    dropdown.style.borderColor = '#ddd';\r\n                    dropdown.style.borderWidth = '1px';\r\n                    dropdown.style.boxShadow = 'none';\r\n                });\r\n\r\n                if (selectedType) {\r\n                    dropdowns.forEach(id => {\r\n                        if (id !== selectId) {\r\n                            const otherSelect = document.getElementById(id);\r\n                            if (otherSelect) {\r\n                                otherSelect.value = '';\r\n                            }\r\n                        }\r\n                    });\r\n\r\n                    updateMarkers(selectedType);\r\n\r\n                    let borderColor = selectId === 'restaurants-select' ? '#3f7bff' : \r\n                                    selectId === 'chains-select' ? '#F6AE2D' : '#ce6a5e';\r\n\r\n                    select.style.borderColor = borderColor;\r\n                    select.style.borderWidth = '2px';\r\n                    select.style.boxShadow = `0 0 0 1px ${borderColor}`;\r\n                } else {\r\n                    showAllLocations();\r\n                }\r\n            });\r\n        }\r\n    });\r\n\r\n    \/\/ Initialize user location\r\n    if (navigator.geolocation) {\r\n        navigator.geolocation.getCurrentPosition(\r\n            (position) => {\r\n                userPosition = position;\r\n                const { latitude, longitude } = position.coords;\r\n\r\n                if (userMarker) {\r\n                    userMarker.remove();\r\n                }\r\n\r\n                userMarker = map.addMarker({\r\n                    lng: longitude,\r\n                    lat: latitude,\r\n                    anchor: 'center',\r\n                    className: 'user-location-marker',\r\n                    html: `<svg viewBox=\"0 0 30 30\" width=\"30\" height=\"30\">\r\n                            <circle class=\"pulse-ring\" cx=\"15\" cy=\"15\" r=\"8\"\r\n                                    fill=\"none\"\r\n                                    stroke=\"#B98D58\"\r\n                                    stroke-width=\"1\"\r\n                                    opacity=\"0.6\"\/>\r\n                            <circle cx=\"15\" cy=\"15\" r=\"8\"\r\n                                    fill=\"#B98D58\"\r\n                                    stroke=\"#f9f8f4\"\r\n                                    stroke-width=\"2\"\/>\r\n                            <circle cx=\"15\" cy=\"15\" r=\"3\"\r\n                                    fill=\"#f9f8f4\"\/>\r\n                        <\/svg>`\r\n                }).bindPopup('<div class=\"user-popup\">Your Location<\/div>');\r\n\r\n                openMarkerPopup(userMarker);\r\n            },\r\n            (error) => {\r\n                console.error('Error getting location:', error);\r\n                showAllLocations();\r\n            },\r\n\t\t\t{\r\n                    enableHighAccuracy: true,\r\n                    timeout: 10000,\r\n                    maximumAge: 0\r\n                }\r\n        );\r\n    } else {\r\n        console.log('Geolocation is not supported');\r\n        showAllLocations();\r\n    }\r\n}\r\n\r\n\r\n\/\/ Function to update dropdown borders\r\nfunction updateDropdownBorders(selectedId) {\r\n    ['restaurants-select', 'chains-select', 'shops-select'].forEach(id => {\r\n        const element = document.getElementById(id);\r\n        if (element) {\r\n            if (id === selectedId) {\r\n                const color = id === 'restaurants-select' ? '#3f7bff' : \r\n                            id === 'chains-select' ? '#F6AE2D' : '#ce6a5e';\r\n                element.style.borderColor = color;\r\n                element.style.borderWidth = '2px';\r\n                element.style.boxShadow = `0 0 0 1px ${color}`;\r\n            } else {\r\n                element.style.borderColor = '#ddd';\r\n                element.style.borderWidth = '1px';\r\n                element.style.boxShadow = 'none';\r\n            }\r\n        }\r\n    });\r\n}\r\n    <\/script>\r\n\t<\/body>\r\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>E x p e r i e n c e s find us Buy Lusarev wines in online supermarkets Buy Now Buy Now Buy Now Buy Now Buy Now Where to buy? RestaurantsAll Restaurants SupermarketsAll SupermarketsYerevan CityTsiranSASCarrefour88ZovqChinarParmaEvrikaRock Four ShopsAll ShopsAgora MarketAlcohallArmatBariqBrand AlcoGevGnuni MarketDuty FreeYeritsyannerZambyughSFLiderKaiserKerasKerasiHaykakan AnkyunJisht MarketMagnisMagnitMy MarketMarketMaximumMusalerNoyan TapanShish AlcoSkyWine StoreOhanyan Find Closest<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Find Us - Lusarev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lusarev.am\/am\/find-us\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Find Us - Lusarev\" \/>\n<meta property=\"og:description\" content=\"E x p e r i e n c e s find us Buy Lusarev wines in online supermarkets Buy Now Buy Now Buy Now Buy Now Buy Now Where to buy? RestaurantsAll Restaurants SupermarketsAll SupermarketsYerevan CityTsiranSASCarrefour88ZovqChinarParmaEvrikaRock Four ShopsAll ShopsAgora MarketAlcohallArmatBariqBrand AlcoGevGnuni MarketDuty FreeYeritsyannerZambyughSFLiderKaiserKerasKerasiHaykakan AnkyunJisht MarketMagnisMagnitMy MarketMarketMaximumMusalerNoyan TapanShish AlcoSkyWine StoreOhanyan Find Closest\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lusarev.am\/am\/find-us\/\" \/>\n<meta property=\"og:site_name\" content=\"Lusarev\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-01T12:00:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/lusarev.am\/find-us\/\",\"url\":\"https:\/\/lusarev.am\/find-us\/\",\"name\":\"Find Us - Lusarev\",\"isPartOf\":{\"@id\":\"https:\/\/lusarev.am\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/lusarev.am\/find-us\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/lusarev.am\/find-us\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png\",\"datePublished\":\"2020-03-13T17:42:00+00:00\",\"dateModified\":\"2026-10-01T12:00:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/lusarev.am\/find-us\/#breadcrumb\"},\"inLanguage\":\"hy-AM\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/lusarev.am\/find-us\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hy-AM\",\"@id\":\"https:\/\/lusarev.am\/find-us\/#primaryimage\",\"url\":\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png\",\"contentUrl\":\"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/lusarev.am\/find-us\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/lusarev.am\/am\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Find Us\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/lusarev.am\/#website\",\"url\":\"https:\/\/lusarev.am\/\",\"name\":\"Lusarev\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/lusarev.am\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/lusarev.am\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hy-AM\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/lusarev.am\/#organization\",\"name\":\"Lusarev\",\"url\":\"https:\/\/lusarev.am\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hy-AM\",\"@id\":\"https:\/\/lusarev.am\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/lusarev.am\/wp-content\/uploads\/2020\/03\/New-Lusarev-wines-logo-white.png\",\"contentUrl\":\"https:\/\/lusarev.am\/wp-content\/uploads\/2020\/03\/New-Lusarev-wines-logo-white.png\",\"width\":1846,\"height\":515,\"caption\":\"Lusarev\"},\"image\":{\"@id\":\"https:\/\/lusarev.am\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Find Us - Lusarev","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lusarev.am\/am\/find-us\/","og_locale":"en_US","og_type":"article","og_title":"Find Us - Lusarev","og_description":"E x p e r i e n c e s find us Buy Lusarev wines in online supermarkets Buy Now Buy Now Buy Now Buy Now Buy Now Where to buy? RestaurantsAll Restaurants SupermarketsAll SupermarketsYerevan CityTsiranSASCarrefour88ZovqChinarParmaEvrikaRock Four ShopsAll ShopsAgora MarketAlcohallArmatBariqBrand AlcoGevGnuni MarketDuty FreeYeritsyannerZambyughSFLiderKaiserKerasKerasiHaykakan AnkyunJisht MarketMagnisMagnitMy MarketMarketMaximumMusalerNoyan TapanShish AlcoSkyWine StoreOhanyan Find Closest","og_url":"https:\/\/lusarev.am\/am\/find-us\/","og_site_name":"Lusarev","article_modified_time":"2026-10-01T12:00:33+00:00","og_image":[{"url":"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/lusarev.am\/find-us\/","url":"https:\/\/lusarev.am\/find-us\/","name":"Find Us - Lusarev","isPartOf":{"@id":"https:\/\/lusarev.am\/#website"},"primaryImageOfPage":{"@id":"https:\/\/lusarev.am\/find-us\/#primaryimage"},"image":{"@id":"https:\/\/lusarev.am\/find-us\/#primaryimage"},"thumbnailUrl":"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png","datePublished":"2020-03-13T17:42:00+00:00","dateModified":"2026-10-01T12:00:33+00:00","breadcrumb":{"@id":"https:\/\/lusarev.am\/find-us\/#breadcrumb"},"inLanguage":"hy-AM","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lusarev.am\/find-us\/"]}]},{"@type":"ImageObject","inLanguage":"hy-AM","@id":"https:\/\/lusarev.am\/find-us\/#primaryimage","url":"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png","contentUrl":"https:\/\/lusarev.am\/wp-content\/uploads\/2026\/03\/city.png"},{"@type":"BreadcrumbList","@id":"https:\/\/lusarev.am\/find-us\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lusarev.am\/am\/"},{"@type":"ListItem","position":2,"name":"Find Us"}]},{"@type":"WebSite","@id":"https:\/\/lusarev.am\/#website","url":"https:\/\/lusarev.am\/","name":"Lusarev","description":"","publisher":{"@id":"https:\/\/lusarev.am\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lusarev.am\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hy-AM"},{"@type":"Organization","@id":"https:\/\/lusarev.am\/#organization","name":"Lusarev","url":"https:\/\/lusarev.am\/","logo":{"@type":"ImageObject","inLanguage":"hy-AM","@id":"https:\/\/lusarev.am\/#\/schema\/logo\/image\/","url":"https:\/\/lusarev.am\/wp-content\/uploads\/2020\/03\/New-Lusarev-wines-logo-white.png","contentUrl":"https:\/\/lusarev.am\/wp-content\/uploads\/2020\/03\/New-Lusarev-wines-logo-white.png","width":1846,"height":515,"caption":"Lusarev"},"image":{"@id":"https:\/\/lusarev.am\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/pages\/356"}],"collection":[{"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/comments?post=356"}],"version-history":[{"count":190,"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/pages\/356\/revisions"}],"predecessor-version":[{"id":992134,"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/pages\/356\/revisions\/992134"}],"wp:attachment":[{"href":"https:\/\/lusarev.am\/am\/wp-json\/wp\/v2\/media?parent=356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}