templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     {% set metaInfo = getMetaInfo() %}
  5.     {% block meta %}
  6.         {% include "Slivki#{regional_template_path}/meta_block.html.twig" %}
  7.     {% endblock %}
  8.     {% block ogimage %}
  9.         <meta property="og:image" content="/images/b180x180.jpg" />
  10.         <meta property="og:image:width" content="180"/>
  11.         <meta property="og:image:height" content="180"/>
  12.     {% endblock %}
  13.     {% block stylesheets %}
  14.         <link rel="stylesheet" href="/css/intTelInput.css?v=2" />
  15.         <link href="/css/jform-styler/vanillaSelectBox.css" rel="stylesheet">
  16.         <link href="/css/delivery.min.css?v={{ delivery_css_version }}" rel="stylesheet" type="text/css" />
  17.         <link href="/css/flowersHotLent.css?v={{ flowers_hot_lent_css_version }}" rel="stylesheet" type="text/css" />
  18.         <link rel="stylesheet" href="/css/beauty/beauty-masters.css?v={{ beauty_masters_css_version }}" type="text/css"/>
  19.         <link href="/css/style.min.css?v={{ style_css_version }}" rel="stylesheet" type="text/css" />
  20.         <link href="/js/jgallery-1.5.5/dist/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
  21.         <link rel="stylesheet" href="/css/slick.min.css"/>
  22.         <link rel="stylesheet" href="/css/slick-theme.min.css" />
  23.         <link rel="stylesheet" href="/css/slider_preview.css?v={{ slider_preview_css_version }}" />
  24.         <link rel="stylesheet" href="/css/botstrap-dropdowns-v3/dropdowns.css"/>
  25.         {% if isMobileDevice() %}
  26.             <link href="/css/header_mobile.css?v={{ header_mobile_css_version }}" rel="stylesheet" type="text/css" />
  27.         {% endif %}
  28.         {% if app.request.getPathInfo() == '/profile' %}
  29.             <link href="/css/crt-fonts.css?v={{ crt_fonts_css_version }}" rel="stylesheet" type="text/css" />
  30.             <link href="/css/certificate-creator/certificate-creator.css" rel="stylesheet" type="text/css" />
  31.         {% endif %}
  32.         <link href="/css/new_popup.css?v={{ new_popup_css_version }}" rel="stylesheet" type="text/css" />
  33.         <link rel="stylesheet" href="/css/jquery.toast.min.css" />
  34.         <link href="/css/slivkiPay.css?v=1" rel="stylesheet" type="text/css" />
  35.     {% endblock %}
  36.     {% block favicon %}
  37.         <link type="image/x-icon" rel="shortcut icon" href="/images/favicon/favicon.ico">
  38.         <link type="image/png" sizes="16x16" rel="icon" href="/images/favicon/icons/favicon-16x16.png">
  39.         <link type="image/png" sizes="32x32" rel="icon" href="/images/favicon/icons/favicon-32x32.png">
  40.         <link type="image/png" sizes="96x96" rel="icon" href="/images/favicon/icons/favicon-96x96.png">
  41.         <link type="image/png" sizes="120x120" rel="icon" href="/images/favicon/icons/favicon-120x120.png">
  42.     {% endblock %}
  43.     <meta name="yandex-verification" content="239193428ba27fa2" />
  44.     <meta name="google-site-verification" content="33UhU8AvLA9eoT3WZfkzuOaxKNujSVAtcYZHf-pGToI" />
  45.     <link rel="manifest" href="/manifest.json?v=0">
  46.     <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=ced3d85f-6a99-4208-93d6-b578ba5e8f8a"></script>
  47.     <!-- Meta Pixel Code -->
  48.     <script>
  49.         !function(f,b,e,v,n,t,s)
  50.         {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  51.             n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  52.             if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  53.             n.queue=[];t=b.createElement(e);t.async=!0;
  54.             t.src=v;s=b.getElementsByTagName(e)[0];
  55.             s.parentNode.insertBefore(t,s)}(window, document,'script',
  56.             'https://connect.facebook.net/en_US/fbevents.js');
  57.         fbq('init', '1202694461570299');
  58.         fbq('track', 'PageView');
  59.     </script>
  60.     <noscript><img height="1" width="1" style="display:none"
  61.                    src="https://www.facebook.com/tr?id=1202694461570299&ev=PageView&noscript=1"
  62.         /></noscript>
  63.     <!-- End Meta Pixel Code -->
  64.     <noscript>
  65.         <img height="1" width="1" src="https://www.facebook.com/tr?id=1884900258504761&ev=PageView&noscript=1" style="display: none;"/>
  66.     </noscript>
  67.     <!-- End Facebook Pixel Code -->
  68.     <script type="text/javascript">(window.Image ? (new Image()) : document.createElement('img')).src = 'https://vk.com/rtrg?p=VK-RTRG-167315-4IspB';</script>
  69.     {% if fitnessOffer is defined %}
  70.         <script>
  71.             !function(f,b,e,v,n,t,s)
  72.             {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  73.                 n.callMethod.apply(n,arguments):n.queue.push(arguments)};
  74.                 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
  75.                 n.queue=[];t=b.createElement(e);t.async=!0;
  76.                 t.src=v;s=b.getElementsByTagName(e)[0];
  77.                 s.parentNode.insertBefore(t,s)}(window, document,'script',
  78.                 'https://connect.facebook.net/en_US/fbevents.js');
  79.             fbq('init', ${currentCity.getID() > 1 ? '675534651528670' : '1202694461570299'});
  80.             fbq('track', 'PageView');
  81.         </script>
  82.         <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1615676305118909&ev=PageView&noscript=1"/></noscript>
  83.         <script type="text/javascript">(window.Image ? (new Image()) : document.createElement('img')).src = 'https://vk.com/rtrg?p=VK-RTRG-170417-8Uj6y';</script>
  84.     {% endif %}
  85.     <script>
  86.         var userAgent = navigator.userAgent || navigator.vendor || window.opera;
  87.         if (userAgent.indexOf('FBAN') == -1 && userAgent.indexOf('FBAV') == -1 && userAgent.indexOf('Instagram') == -1 &&
  88.             userAgent.indexOf('Skype') == -1 && userAgent.indexOf('Viber') == -1 && userAgent.indexOf('WhatsApp') == -1) {
  89.             var d = document,
  90.                 h = d.getElementsByTagName('head')[0],
  91.                 s = d.createElement('script');
  92.             s.type = 'text/javascript';
  93.             s.async = true;
  94.             s.src = '//cdn.sendpulse.com/js/push/260be6a77276a4d176159328b4b7175c_1.js?v=0';
  95.             //s.src = '/js/sp.js?v=1';
  96.             h.appendChild(s);
  97.         }
  98.     </script>
  99.     <!-- TikTok Code -->
  100.     <script>
  101.         !function (w, d, t) {
  102.             w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++
  103.             )ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=i+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
  104.             ttq.load('CAEQUGBC77U9MLGRE66G');
  105.             ttq.page();
  106.         }(window, document, 'ttq');
  107.     </script>
  108.     <!-- End TikTok Code -->
  109.     <!-- Global site tag (gtag.js) - Google Analytics -->
  110.     {% set currentCity = getCurrentCity() %}
  111.     {% if app.environment != 'dev' %}
  112.         <!-- Google tag (gtag.js) -->
  113.         <script async src="https://www.googletagmanager.com/gtag/js?id=AW-978097094"></script>
  114.         <script>
  115.             window.dataLayer = window.dataLayer || [];
  116.             function gtag(){dataLayer.push(arguments);}
  117.             gtag('js', new Date());
  118.             gtag('config', 'AW-978097094');
  119.         </script>
  120.     {% endif %}
  121. </head>
  122. {% set bodyClass =  '' %}
  123. {% if noToken is not defined and is_granted('ROLE_ADMIN_USER') %}
  124.     {% set bodyClass =  ' a-u' %}
  125. {% endif %}
  126. <body class="{{ not isMobileDevice() ? 'desktop-device' }}{{ bodyClass }}">
  127. {% if app.debug %}
  128.     <input type="hidden" id="debugMode" value="1"/>
  129. {% endif %}
  130. <script>
  131.     (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  132.             (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  133.         m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  134.     })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  135.     ga('create', 'UA-185332166-1', 'auto');
  136.     ga('send', 'pageview');
  137.     {% if app.user %}
  138.         ga('set', 'userId', '{{ app.user.getID() }}');
  139.     {% endif %}
  140. </script>
  141.     {% if app.user %}
  142.         <input type="hidden" id="customerID" value="{{ app.user.getID() }}"/>
  143.         <input class="sp_push_custom_data" type="hidden" name="Name" value="{{ app.user.getFirstName() }}">
  144.         {% if app.user.getEmail() != '' %}
  145.             <input class="sp_push_custom_data" type="hidden" name="email" value="{{ app.user.getEmail() }}">
  146.         {% else %}
  147.             <input class="sp_push_custom_data" type="hidden" name="email" value="{{ app.user.getPhone() }}">
  148.         {% endif %}
  149.     {% endif %}
  150.     <input type="hidden" id="serverTime" value="{{ 'now'|date('Y-m-d H:i:s') }}">
  151.     <input type="hidden" id="cityID" value="{{ currentCity.getID() }}">
  152.     {% set currentCity = getCurrentCity() %}
  153.     {% set coordinate = currentCity.getCoordinate() %}
  154.     <input id="cityName" type="hidden" value="{{ currentCity.getID() in [constant('Slivki\\Entity\\City::DEFAULT_CITY_ID'), constant('Slivki\\Entity\\City::TASHKENT_CITY_ID')] ? '/' : getURL(constant('Slivki\\Repository\\SeoRepository::RESOURCE_URL_CITY'), currentCity.getID()) }}"/>
  155.     <input type="hidden" id="cityCoord" value="[{{ coordinate.getLatitude() }}, {{ coordinate.getLongitude() }}]">
  156.     <input type="hidden" id="rtbhUID" value="{{ getRTBHouseUID(app.user) }}">
  157.     <input id="userId" type="hidden" value=" {{ app.user is not null ? app.user.ID : null }}">
  158.     <input id="metricaUrl" type="hidden" value=" {{ slivki_metrica_url }}/api/v1/metric">
  159.     {% block top %}{% endblock %}
  160.     {% block fullSiteBanner %}
  161.         {% if not isMobileDevice() and not (app.user and app.user.hasRole(constant('\\Slivki\\Entity\\UserGroup::ROLE_ADS_FREE'))) %}
  162.             {{ getBrandingBanner(app.user, brandingBannerCategoryIDs is defined ? brandingBannerCategoryIDs : [], offer is defined ? offer.getID()) }}
  163.         {% endif %}
  164.     {% endblock %}
  165.     {% block header %}
  166.         {% if isMobileDevice() %}
  167.             {% include 'header_mobile.html.twig' %}
  168.         {% else %}
  169.             {% include 'header.html.twig' %}
  170.         {% endif %}
  171.     {% endblock %}
  172. {% block messenger %}
  173.     {% include "Slivki#{regional_template_path}/jivosite/index.html.twig" %}
  174. {% endblock %}
  175.     {% block content %}
  176.         <div class="content container transparent with-banner {% block contentContainerClass %}{% endblock %}"  id="contentContainer">
  177.             {% block topContentBlock %}{% endblock %}
  178.             {% block mainHotFeedBlock %}{% endblock %}
  179.             {% if ('Googlebot' not in (app.request.server.get('HTTP_USER_AGENT'))) %}
  180.                 {% block left_sidebar %}{% endblock %}
  181.             {% endif %}
  182.             <div class="{% block mainColumnClass %}content--main {% endblock %}" {% block mainColumnParameters %}{% endblock %}>
  183.                 <div class="content-wrapper">
  184.                     {% block main_content %}{% endblock %}
  185.                 </div>
  186.             </div>
  187.             {% block bottomContentBlock %}{% endblock %}
  188.             </div>
  189.         </div>
  190.         {% block footer %}
  191.             {% if not disableFooter is defined  %}
  192.                 {{ getFooter() }}
  193.             {% endif %}
  194.         {% endblock %}
  195.         {% if not isMobileDevice() and not app.request.cookies.has('seenMicrophoneTooltip') and (not app.user or not app.user.isSeenMicrophoneTooltip()) %}
  196.             <div id="voiceSearchHintGreyout" class="hidden">
  197.                 <div id="voiceSearchHint" class="voice-search-hint-block">Круто! Нажмите на микрофон и скажите, например, суши или пицца</div>
  198.             </div>
  199.             {% if app.user %}
  200.                 {{ setSeenMicrophoneTooltip(app.user) }}
  201.             {% endif %}
  202.         {% endif %}
  203.         <div id="contentGreyout"></div>
  204.     {% endblock %}
  205.     {% block popups %}
  206.         {% if isMobileDevice() %}
  207.             <link rel="stylesheet" href="/css/infopopup_mobile.css?v={{ infopopup_css_version }}" type="text/css">
  208.         {% else %}
  209.             <link rel="stylesheet" href="/css/infopopup.css?v={{ infopopup_css_version }}" type="text/css">
  210.         {% endif %}
  211.         {% if app.session.flashbag.get("showMogilevMailingBonusPopup")|length > 0 %}
  212.             {% include 'Slivki/popups/mogilev_mailing_popup.html.twig' %}
  213.         {% endif %}
  214.         {% include 'Slivki/popups/info_dialog_popup.html.twig' with {id: 'info_dialog'} %}
  215.         {{ getNoticePopup(app.user) }}
  216.         {% include 'Slivki/popups/alert_popup.html.twig' %}
  217.         {% set infoDialogMessage = app.session.flashBag.get(constant('Slivki\\Controller\\SiteController::SHOW_INFO_DIALOG_PARAMETER')) %}
  218.         {% if infoDialogMessage | length > 0 %}
  219.             {% include 'Slivki/popups/info_dialog_popup.html.twig' with {'id': 'info_dialog_auto', 'infoDialogMessage': infoDialogMessage[0] } %}
  220.         {% endif %}
  221.         {% if app.user %}
  222.             {# user is logged in #}
  223.             {% if isMobileDevice() %}
  224.                 {% include 'Slivki/popups/mobile_logout.html.twig' with {id: 'logoutConfirmPopup'} %}
  225.             {% else %}
  226.                 {% include 'Slivki/popups/logout_popup.html.twig' with {id: 'logoutConfirmPopup'} %}
  227.             {% endif %}
  228.             {% if not isMobileDevice() %}
  229.                 {% include 'Slivki/popups/delete_comment_popup.html.twig' with {id: 'deleteCommentConfirmPopup'} %}
  230.                 {% if app.session.flashbag.get("openThanksForRegisterPopup") | length > 0 %}
  231.                     {% include 'Slivki/popups/thanks_for_register_popup.html.twig' with {id: 'modal-register-thanks'} %}
  232.                     <input type="hidden" id="openThanksForRegisterPopup"/>
  233.                 {% endif %}
  234.             {% endif %}
  235.         {% else %}
  236.             {% include 'Slivki/mobile/popup/succes_restore_password.html.twig'%}
  237.             {# user is not logged in #}
  238.             {% if not isMobileDevice() %}
  239.                 {% include 'Slivki/popups/login_register_popup.html.twig' %}
  240.                 {% include 'Slivki/popups/restore_password_popup.html.twig' with {id: 'modal_remember_password'} %}
  241.                 {% set registeredEmailSent = app.session.flashbag.get("registeredEmailSent") %}
  242.                 {% set registeredEmailSentRaw = app.session.flashbag.get("registeredEmailSentRaw") %}
  243.                 {% if registeredEmailSent | length > 0 and registeredEmailSentRaw | length > 0 %}
  244.                     {% include 'Slivki/popups/account_activation_popup.html.twig' with {id: 'modal-register-complete', link: registeredEmailSent[0], email: registeredEmailSentRaw[0]} %}
  245.                     <input type="hidden" id="openAccountActivationPopup"/>
  246.                 {% endif %}
  247.             {% endif %}
  248.         {% endif %}
  249.     {% endblock %}
  250.     {% include 'Slivki/delivery/modal/questions.html.twig' %}
  251.     {% include 'Slivki/delivery/modal/questionsSuccess.html.twig' %}
  252.     {% include 'Slivki/popups/slivki_confirm_popup.html.twig' %}
  253.     {% include 'Slivki/popups/new_alert_popup.html.twig' %}
  254.     {% include 'Slivki/popups/loading.html.twig' %}
  255.     {% include 'Slivki/popups/mail_popup.html.twig' %}
  256.     {% include 'Slivki/add_batch_codes/error.html.twig' %}
  257.     {% include 'Slivki/add_batch_codes/success.html.twig' %}
  258.     {% include 'Slivki/add_batch_codes/auth.html.twig' %}
  259. {% if app.user and not app.user.getEmail() and not app.request.get('_route') == 'profile' and app.session.flashbag.get("openMergeProfilePopup") %}
  260.     {% include 'Slivki/popups/popup_union_mail.html.twig' %}
  261. {% endif %}
  262.     <script src="/js/jquery2-2-4.min.js"></script>
  263.     {% block javascripts %}
  264.         <script type="text/javascript" src="/js/jquery.cookie.js"></script>
  265.         <script type="text/javascript" src="/js/cookies.min.js"></script>
  266.         <script src="/js/menuAim/main.min.js"></script>
  267.         <script src="/js/main.js?v=200"></script>
  268.         <script src="/js/voices/app.js?v=4"></script>
  269.         <script src="/js/voices/recorder.js"></script>
  270.         {% if isMobileDevice() %}
  271.         <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-touch-events/1.0.9/jquery.mobile-events.min.js"></script>
  272.         <script src="https://cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js"></script>
  273.         <script src="/js/header_mobile.js?v=38/"></script>
  274.         {% endif %}
  275.         <script src="/js/jquery.form.js?v=1"></script>
  276.         <script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
  277.         <script src="/js/jquery.placeholder.js"></script>
  278.         <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js?v=1"></script>
  279.         <script type="text/javascript">
  280.             $.widget.bridge('uitooltip', $.ui.tooltip);
  281.             $.widget.bridge('uibutton', $.ui.button);
  282.         </script>
  283.         <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  284.         <script src="/js/jquery.maskedinput.min.js"></script>
  285.         <script src="/js/jquery.inputmask.min.js"></script>
  286.         <script src="/js/ajaxupload.3.5.js?v=1"></script>
  287.         <script src="/js/lightbox.min.js?v=1"></script>
  288.         <script src="/js/jquery.marquee.min.js" type="text/javascript"></script>
  289.         <!--[if lt IE 9]>
  290.         <script src="/js/css3-mediaqueries.js?v=1"></script>
  291.         <script src="/js/html5shiv.js?v=1"></script>
  292.         <![endif]-->
  293.         <script type="text/javascript" src="/js/jquery.lazyload.js?v=2"></script>
  294.         <script src="/js/jquery.jcarousel.min.js?v=1"></script>
  295.         <script src="/js/mwheelIntent.js?v=1"></script>
  296.         <script src="/js/jquery.mousewheel.js?v=1"></script>
  297.         <script type="module" src="/js/botsrap-custom-dropdowns/custom-dropdowns.js"></script>
  298.         <div id="overlay-loading"><img src="/images/image-preview-ajax-loader.gif" alt="" /></div>
  299.         <!-- Yandex.Metrika counter -->
  300.         <script type="text/javascript" >
  301.             (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
  302.                 m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
  303.             (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
  304.             ym(20933521, "init", {
  305.                 clickmap:true,
  306.                 trackLinks:true,
  307.                 accurateTrackBounce:true
  308.             });
  309.         </script>
  310.         <noscript><div><img src="https://mc.yandex.ru/watch/20933521" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
  311.         <!-- /Yandex.Metrika counter -->
  312.         <script type="application/ld+json">
  313.             {
  314.                 "@context": "http://schema.org",
  315.                 "@type": "WebSite",
  316.                 "url": "https://www.slivki.by/",
  317.                 "potentialAction": {
  318.                     "@type": "SearchAction",
  319.                     "target": "https://www.slivki.by/search?searchIn=0&text={searchText}&sortBy=default&distance=0",
  320.                     "query-input": "required name=searchText" }
  321.             }
  322.         </script>
  323.         <script src="/js/jform-styler/vanillaSelectBox.min.js"></script>
  324.         <script src="/js/intlTelInput-jquery.min.js"></script>
  325.         <script src="/js/slick.min.js"></script>
  326.         <script src="https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/17.0.13/js/utils.min.js"></script>
  327.         <link href="/css/scroll.css?v=5" rel="stylesheet" type="text/css" />
  328.         <script src="/js/jquery.jscrollpane.min.js?v=2"></script>
  329.         <script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.5.9/lottie_light.min.js"></script>
  330.         <script src="/js/jquery.slivkiSmile.js?v=10"></script>
  331.         <script src="/js/recaptcha_api.js"></script>
  332.         <script src="/js/common.min.js?v={{ common_js_version }}"></script>
  333.         <script src="/js/common-old.min.js?v={{ common_old_js_version }}"></script>
  334.         <script type="module" src="/js/family_subscription/api_family_subscription.js?v={{ family_subscription_js_version }}"></script>
  335.         <script type="module" src="/js/family_subscription/family_subscription.js?v={{ family_subscription_js_version }}"></script>
  336.         <script src="/js/jquery.sameheight.js"></script>
  337.         <script src="/js/slivki_v1.js?v={{ slivki_v1_js_version }}"></script>
  338.         <script src="/js/subscription.js?v={{ subscription_js_version }}"></script>
  339.         <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
  340.         <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
  341.         <script type="module" src="/js/time_block_category/main.js?v={{ time_block_category_js }}"></script>
  342.         <script src="/js/moment.min.js"></script>
  343.         <script src="//translate.google.com/translate_a/element.js?cb=TranslateInit"></script>
  344.         <script src="/js/gtranslate.js"></script>
  345.         <script src="/js/flowersCategoryCarousel.js?v={{ flowers_category_carousel_js_version }}"></script>
  346.         <script src="/js/slider_preview/slider_preview.js?v={{ slider_preview_js_version }}"></script>
  347.         <script src="/js/helper.js?v={{ helper_version_js }}"></script>
  348.         <script src="/js/captcha/main.js?v=10"></script>
  349.         <script src="/js/maps_index_page/roundedControlls.js?v=5"></script>
  350.         <script type="module" src="/js/beauty/mainMapBeauty.js?v={{ main_map_beauty_js_version }}"></script>
  351.         <script type="module" src="/js/beauty/masters.js?v={{ beauty_masters_js_version }}"></script>
  352.         <script type="module" src="/js/oplati/main.js?v={{ oplati_js_version }}" />
  353.         <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-toast-plugin/1.3.2/jquery.toast.min.js"
  354.                 integrity="sha512-zlWWyZq71UMApAjih4WkaRpikgY9Bz1oXIW5G0fED4vk14JjGlQ1UmkGM392jEULP8jbNMiwLWdM8Z87Hu88Fw=="
  355.                 crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  356.         <!--[/ignore]-->
  357.         <script type="text/javascript">
  358.             window.NREUM||(NREUM={}),__nr_require=function(e,t,n){function r(n){if(!t[n]){var o=t[n]={exports:{}};e[n][0].call(o.exports,function(t){var o=e[n][1][t];return r(o||t)},o,o.exports)}return t[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(e,t,n){function r(){}function o(e,t,n){return function(){return i(e,[(new Date).getTime()].concat(u(arguments)),t?null:this,n),t?void 0:this}}var i=e("handle"),a=e(2),u=e(3),c=e("ee").get("tracer"),f=NREUM;"undefined"==typeof window.newrelic&&(newrelic=f);var s=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(s,function(e,t){f[t]=o(l+t,!0,"api")}),f.addPageAction=o(l+"addPageAction",!0),f.setCurrentRouteName=o(l+"routeName",!0),t.exports=newrelic,f.interaction=function(){return(new r).get()};var d=r.prototype={createTracer:function(e,t){var n={},r=this,o="function"==typeof t;return i(p+"tracer",[Date.now(),e,n],r),function(){if(c.emit((o?"":"no-")+"fn-start",[Date.now(),r,o],n),o)try{return t.apply(this,arguments)}finally{c.emit("fn-end",[Date.now()],n)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(e,t){d[t]=o(p+t)}),newrelic.noticeError=function(e){"string"==typeof e&&(e=new Error(e)),i("err",[e,(new Date).getTime()])}},{}],2:[function(e,t,n){function r(e,t){var n=[],r="",i=0;for(r in e)o.call(e,r)&&(n[i]=t(r,e[r]),i+=1);return n}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],3:[function(e,t,n){function r(e,t,n){t||(t=0),"undefined"==typeof n&&(n=e?e.length:0);for(var r=-1,o=n-t||0,i=Array(o<0?0:o);++r<o;)i[r]=e[t+r];return i}t.exports=r},{}],ee:[function(e,t,n){function r(){}function o(e){function t(e){return e&&e instanceof r?e:e?c(e,u,i):i()}function n(n,r,o){if(!p.aborted){e&&e(n,r,o);for(var i=t(o),a=v(n),u=a.length,c=0;c<u;c++)a[c].apply(i,r);var f=s[w[n]];return f&&f.push([y,n,r,i]),i}}function d(e,t){b[e]=v(e).concat(t)}function v(e){return b[e]||[]}function g(e){return l[e]=l[e]||o(n)}function m(e,t){f(e,function(e,n){t=t||"feature",w[n]=t,t in s||(s[t]=[])})}var b={},w={},y={on:d,emit:n,get:g,listeners:v,context:t,buffer:m,abort:a,aborted:!1};return y}function i(){return new r}function a(){(s.api||s.feature)&&(p.aborted=!0,s=p.backlog={})}var u="nr@context",c=e("gos"),f=e(2),s={},l={},p=t.exports=o();p.backlog=s},{}],gos:[function(e,t,n){function r(e,t,n){if(o.call(e,t))return e[t];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return e[t]=r,r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],handle:[function(e,t,n){function r(e,t,n,r){o.buffer([e],r),o.emit(e,t,n)}var o=e("ee").get("handle");t.exports=r,r.ee=o},{}],id:[function(e,t,n){function r(e){var t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===window?0:a(e,i,function(){return o++})}var o=1,i="nr@id",a=e("gos");t.exports=r},{}],loader:[function(e,t,n){function r(){if(!h++){var e=y.info=NREUM.info,t=l.getElementsByTagName("script")[0];if(setTimeout(f.abort,3e4),!(e&&e.licenseKey&&e.applicationID&&t))return f.abort();c(b,function(t,n){e[t]||(e[t]=n)}),u("mark",["onload",a()],null,"api");var n=l.createElement("script");n.src="https://"+e.agent,t.parentNode.insertBefore(n,t)}}function o(){"complete"===l.readyState&&i()}function i(){u("mark",["domContent",a()],null,"api")}function a(){return(new Date).getTime()}var u=e("handle"),c=e(2),f=e("ee"),s=window,l=s.document,p="addEventListener",d="attachEvent",v=s.XMLHttpRequest,g=v&&v.prototype;NREUM.o={ST:setTimeout,CT:clearTimeout,XHR:v,REQ:s.Request,EV:s.Event,PR:s.Promise,MO:s.MutationObserver},e(1);var m=""+location,b={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1016.min.js"},w=v&&g&&g[p]&&!/CriOS/.test(navigator.userAgent),y=t.exports={offset:a(),origin:m,features:{},xhrWrappable:w};l[p]?(l[p]("DOMContentLoaded",i,!1),s[p]("load",r,!1)):(l[d]("onreadystatechange",o),s[d]("onload",r)),u("mark",["firstbyte",a()],null,"api");var h=0},{}]},{},["loader"]);
  359.             ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"aaa162bec7",applicationID:"19553048",sa:1}
  360.         </script>
  361.         <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
  362.     {% endblock %}
  363.     <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  364.     <script>
  365.         [].forEach.call(document.querySelectorAll('.adsbygoogle'), function(){
  366.             (adsbygoogle = window.adsbygoogle || []).push({});
  367.         });
  368.     </script>
  369.     <script type="text/javascript">
  370.         /* <![CDATA[ */
  371.         var google_conversion_id = 978097094;
  372.         var google_custom_params = window.google_tag_params;
  373.         var google_remarketing_only = true;
  374.         /* ]]> */
  375.     </script>
  376.     <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
  377.     </script>
  378.     <noscript>
  379.         <div style="display:inline;">
  380.             <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/978097094/?guid=ON&amp;script=0"/>
  381.         </div>
  382.     </noscript>
  383.     {% set geoIpLocation = getIPLocationData() %}
  384.     <input type="hidden" id="geoIpLatitude" value="{{ geoIpLocation[0] }}"/>
  385.     <input type="hidden" id="geoIpLongitude" value="{{ geoIpLocation[1] }}"/>
  386.     {% if fitnessOffer is defined %}
  387.         <script type="text/javascript">
  388.             var _tmr = window._tmr || (window._tmr = []);
  389.             _tmr.push({id: "2933821", type: "pageView", start: (new Date()).getTime(), pid: "USER_ID"});
  390.             (function (d, w, id) {
  391.                 if (d.getElementById(id)) return;
  392.                 var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id;
  393.                 ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js";
  394.                 var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
  395.                 if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
  396.             })(document, window, "topmailru-code");
  397.         </script><noscript><div>
  398.             <img src="//top-fwz1.mail.ru/counter?id=2933821;js=na" style="border:0;position:absolute;left:-9999px;" alt="" />
  399.         </div></noscript>
  400.     {% endif %}
  401.     {% if app.user and app.user.isGeoLocationAccepted() == null %}
  402.         <input type="hidden" id="storeGeoLocationData"/>
  403.     {% endif %}
  404.     {% block assetsBottom %}
  405.         <link href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
  406.         <link href="/css/lightbox.css" rel="stylesheet" type="text/css" />
  407.         <input id="slivkiSmileList" type="hidden" value="{{ constant('Slivki\\Entity\\Comment::SMILE_LIST')|join(',') }}"/>
  408.     {% endblock %}
  409.     {% block RTBHouse %}
  410.         <script>
  411.             try{ (function() {
  412.                 var prefix = "", hash = "TS5TS2S9bdSbgKBA4Q2H", rtbhTags = []; rtbhTags.push("pr_"+hash+""); rtbhTags.push("pr_"+hash+"_uid_"+document.getElementById('rtbhUID').value);
  413.                 var key = "__rtbhouse.lid", lid = window.localStorage.getItem(key); if (!lid) {
  414.                     lid = ""; var pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  415.                     for (var i = 0; i < 20; i++) lid += pool.charAt(Math.floor(Math.random() * pool.length)); window.localStorage.setItem(key, lid);}
  416.                 rtbhTags.push("pr_"+hash+"_lid_" + lid);
  417.                 var ifr = document.createElement("iframe"),
  418.                     sr = encodeURIComponent(document.referrer ? document.referrer : ""),
  419.                     su = encodeURIComponent(document.location.href ? document.location.href : ""),
  420.                     ifrSrc = "https://"+prefix+"creativecdn.com/tags?type=iframe", tmstmp = encodeURIComponent("" + Date.now()); for(var i=0; i<rtbhTags.length; i++) {ifrSrc += "&id=" + encodeURIComponent(rtbhTags[i]);}
  421.                 ifrSrc += "&su=" + su + "&sr=" + sr + "&ts=" + tmstmp;
  422.                 ifr.setAttribute("src", ifrSrc); ifr.setAttribute("width", "1");
  423.                 ifr.setAttribute("height", "1"); ifr.setAttribute("scrolling", "no");
  424.                 ifr.setAttribute("frameBorder", "0"); ifr.setAttribute("style", "display:none");
  425.                 ifr.setAttribute("referrerpolicy", "no-referrer-when-downgrade"); if(document.body){document.body.appendChild(ifr);}
  426.                 else{window.addEventListener('DOMContentLoaded', function(){document.body.appendChild(ifr);});}
  427.             })();} catch(e) {} </script>
  428.     {% endblock %}
  429.     {% block metrikaEvent %}{% endblock %}
  430. </body>
  431. </html>