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