CINXE.COM

NDR Info Spezial | NDR.de - Nachrichten - NDR Info - NDR Info Spezial - epg

<!DOCTYPE html> <html lang="de" xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" prefix="og: http://ogp.me/ns#"> <!-- base_head --> <head> <title>NDR Info Spezial | NDR.de - Nachrichten - NDR Info - NDR Info Spezial - epg</title> <meta charset="utf-8"> <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="title" content="NDR Info Spezial " /> <meta property="og:title" content="NDR Info Spezial"/> <meta name="description" content="Hier hören Sie jederzeit das aktuelle Programm von NDR Info Spezial." /> <meta property="og:description" content="Hier hören Sie jederzeit das aktuelle Programm von NDR Info Spezial." /> <meta property="og:image" content="https://www.ndr.de/nachrichten/info/audiothekndrinfospezial100_v-contentxl.jpg" /> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@ndr"> <meta name="twitter:site" content="@ndr"> <meta name="twitter:domain" content="https://www.ndr.de/nachrichten/info/infospezial/epg/stationinfospezial102-radioplayer_livestream-livestream152.html"/> <meta name="twitter:title" content="NDR Info Spezial "/> <meta name="twitter:description" content="Hier hören Sie jederzeit das aktuelle Programm von NDR Info Spezial."/> <meta name="twitter:image" content="https://www.ndr.de/nachrichten/info/audiothekndrinfospezial100_v-contentxl.jpg" /> <meta name="keywords" lang="de" content="NDR,Norddeutscher Rundfunk,Norddeutschland,Radio,Fernsehen,TV" /> <meta name="author" content="NDR" /> <meta name="generator" content="orig01" /> <meta name="robots" content="index, follow, noarchive, max-snippet:-1, max-image-preview:large, max-video-preview:-1" /> <meta name="language" content="de" /> <link rel="icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png"> <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png"> <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png"> <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png"> <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"> <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png"> <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png"> <link rel="icon" type="image/png" href="/favicon-196x196.png" sizes="196x196"> <link rel="icon" type="image/png" href="/favicon-160x160.png" sizes="160x160"> <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96"> <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"> <link rel="preload" href="/common/resources/fonts/NDRSansD2Regular.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="/common/resources/fonts/NDRSansD2Black.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="/common/resources/fonts/NDRSansD2CondBlack.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="/common/resources/fonts/NDRSansD2CondBold.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="/common/resources/fonts/NDRSansD2CondRegular.woff2" as="font" type="font/woff2" crossorigin /> <link rel="preload" href="/common/resources/fonts/ndricons.woff" as="font" type="font/woff" crossorigin /> <meta name="msapplication-TileColor" content="#0c1754"> <meta name="msapplication-TileImage" content="/mstile-144x144.png"> <link type="text/css" rel="stylesheet" href="/resources/css/generated/ndrmerged.css?gen=1910" media="all" /> <!--[if lte IE 8]> <link type="text/css" rel="stylesheet" href="/resources/css/ie.css" media="all" /> <![endif]--> <!--[if IE 9 ]> <link type="text/css" rel="stylesheet" href="/resources/css/ie9.css" media="all" /> <![endif]--> <script type="text/javascript" src="/common/resources/lib/jquery/jquery-3.4.1.min.js"></script> <script src="/common/resources/lib/piano/piano-analytics.js"></script> <link href="https://ard.social/@ndr" rel="me"> <!--[if lt IE 9]> <script> document.createElement('header'); document.createElement('nav'); document.createElement('section'); document.createElement('article'); document.createElement('aside'); document.createElement('footer'); document.createElement('hgroup'); </script> <![endif]--> </head> <body class="ndrinfobranding ndrinfo main_both" > <a href="#content" title="Skip to content" class="skiplink">Direkt zum Inhalt</a> <header id="pageheader" role="navigation"> <div id="blocker"></div> <div class="mainnav"> <a id="dachmarkenlogo" title="zur NDR Homepage" href="/index.html" > <span class="invisible srlabel">zur NDR Homepage</span> <svg width="100%" height="100%" viewBox="0 -0.096 64 40"> <path fill="#ffffff" d="M8.923,32.342L3.524,22.62v9.723H0V15.671h3.699l5.624,10.373V15.671h3.524v16.671H8.923z M12.847,15.671V0 h1.975v15.671H12.847z M12.847,39.465v-7.123h1.975v7.123H12.847z M20.72,15.671c4.124,0,6.249,1.975,6.249,5.798v5.024 c0,3.924-2.049,5.849-6.249,5.849h-5.898V15.671H20.72z M20.395,29.193c2,0,2.974-1,2.974-3.049v-4.299c0-2.024-1-3.024-2.974-3.024 h-1.774v10.372H20.395z M37.341,32.342l-2.974-6.398h-2v6.398h-3.699V15.671h5.824c4.099,0,6.048,1.625,6.048,5.099 c0,2.299-0.85,3.674-2.75,4.499l3.524,7.073H37.341z M34.642,22.919c1.475,0,2.349-0.85,2.349-2.274 c0-1.475-0.649-2.024-2.349-2.024h-2.35v4.299H34.642z"/> </svg> <span id="textlogo">NDR</span> </a> <div id="radiotvlink" title="zur Navigation Radio & TV"><a href="#"><span class="ndricon_chev-down"></span> RADIO & TV</a></div> <div id="menuburger"><a href="#" title="zur Hauptnavigation"><div class="burger"><span class="ndricon_burger"></span></div></a></div> <div class="main"> <div class="gradient_menu"></div> <div id="burgermenu"> <div class="close"> <a href="#" title="Navigation des Hauptmenüs schließen"><span class="ndricon_x"></span></a> </div> <div class="searchwrapper"> <div id="suche" class="mobile"> <a href="#" title="zur Suche"><span class="ndricon_searchglass"></span></a> </div> <form id="search" class="mobile" action="/suche10.html" method="get"> <a href="#" id="searchclose" title="Suche schließen"><span class="ndricon_x"></span></a> <label for="searchword" class="invisible">Suchbegriffe:</label> <input id="searchword" type="text" name="query" placeholder="Suche"> <button type="submit" title="Suche starten"><span class="ndricon_searchglass"></span></button> </form> </div> <nav> <ul> <li><a href="/nachrichten/" title="zur Übersichtsseite Nachrichten">Nachrichten</a></li> <li><a href="/nachrichten/niedersachsen/" title="zur Übersichtsseite Niedersachsen"><span class="full">Niedersachsen</span><span class="abbreviated">NDS</span></a></li> <li><a href="/nachrichten/schleswig-holstein/" title="zur Übersichtsseite Schleswig-Holstein"><span class="full">Schleswig-Holstein</span><span class="abbreviated">SH</span></a></li> <li><a href="/nachrichten/mecklenburg-vorpommern/" title="zur Übersichtsseite Mecklenburg-Vorpommern"><span class="full">Mecklenburg-Vorpommern</span><span class="abbreviated">MV</span></a></li> <li><a href="/nachrichten/hamburg/" title="zur Übersichtsseite Hamburg"><span class="full">Hamburg</span><span class="abbreviated">HH</span></a></li> </ul> <ul> <li><a href="/sport/" title="zur Übersichtsseite Sport">Sport</a></li> <li><a href="/ratgeber/" title="zur Übersichtsseite Ratgeber">Ratgeber</a></li> <li><a href="/kultur/" title="zur Übersichtsseite Kultur">Kultur</a></li> <li><a href="/geschichte/" title="zur Übersichtsseite Geschichte">Geschichte</a></li> </ul> <ul> <li class="right"><a href="/wetter/" title="zur Übersichtsseite Wetter"><span class="abbreviated mobile"><span class="ndricon_weather"></span></span><span class="full">Wetter</span></a></li> <li class="right"><a href="/verkehr/" title="zur Übersichtsseite Verkehr"><span class="abbreviated mobile"><span class="ndricon_traffic"></span></span><span class="full">Verkehr</span></a></li> </ul> </nav> </div> <div id="radiotvmenu" role="navigation" > <div class="close"> <a href="#" role="button" title="Navigation Radio & TV schließen"><span class="ndricon_x"></span></a> </div> <nav> <ul> <li> <a href="/fernsehen/" title="zur Übersichtsseite Fernsehen"><span class="mainradiotv ndricon_video2"></span>Fernsehen</a> <a href="/fernsehen/livestream/index.html" class="streamradiotv tv" title="zur Übersichtsseite Fernsehen"><span class="ndricon_livestream"></span></a> <ul> <li><a href="/fernsehen/sendungen/" title="zur Seite Übersicht aller Sendungen">Übersicht aller Sendungen</a></li> <li><a href="/fernsehen/programm/" title="zur Seite TV-Programm" >TV-Programm</a></li> </ul> </li> <li> <a href="https://www.ardmediathek.de/ndr" rel="noopener" title="zum NDR in der Mediathek"><span class="mainradiotv ndricon_video3"></span>NDR in der Mediathek</a> <ul> <li><a href="https://www.ardmediathek.de/ndr/sendungen-a-bis-z" rel="noopener" title="Mediathek A-Z">Mediathek A-Z</a></li> <li><a href="https://www.ardmediathek.de/ndr/programm" rel="noopener" title="zur Seite Sendung verpasst">Sendung verpasst</a></li> </ul> </li> <li><a href="/fernsehen/barrierefreie_angebote/" title="zur Seite TV-Programm" ><span class="mainradiotv ndricon_barrierefrei"></span>Barrierefrei</a></li> <li> <a href="/radio/" title="zur Radio Übersichtsseite"><span class="mainradiotv ndricon_radio"></span>Radio</a> <ul> <li><a href="/ndr1niedersachsen/" title="zur Homepage von NDR 1 Niedersachsen">NDR 1 Niedersachsen</a> <a href="/ndr1niedersachsen/live/stationndr100-radioplayer.html" class="streamradiotv listenlive" title="NDR 1 Niedersachsen Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/radiomv/" title="zur Homepage von NDR 1 Radio MV">NDR 1 Radio MV</a> <a href="/radiomv/live/stationradiomv102-radioplayer.html" class="streamradiotv listenlive" title="NDR 1 Radio MV Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/wellenord/" title="zur Homepage von NDR 1 Welle Nord">NDR 1 Welle Nord</a> <a href="/wellenord/live/stationwellenord102-radioplayer.html" class="streamradiotv listenlive" title="NDR 1 Welle Nord Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/903/" title="zur Homepage von NDR 90,3">NDR 90,3</a> <a href="/903/live/stationneunzigdrei102-radioplayer.html" class="streamradiotv listenlive" title="NDR 90.3 Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/ndr2/" title="zur Homepage von NDR 2">NDR 2</a> <a href="/ndr2/live/stationndrzwei102-radioplayer.html" class="streamradiotv listenlive" title="NDR 2 Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/nachrichten/info/" title="zur Homepage von NDR Info">NDR Info</a> <a href="/nachrichten/info/radio_live/stationndrinfo102-radioplayer.html" class="streamradiotv listenlive" title="NDR Info Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/kultur/" title="zur Homepage von NDR Kultur">NDR Kultur</a> <a href="/kultur/live/stationndrkultur102-radioplayer.html" class="streamradiotv listenlive" title="NDR Kultur Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/n-joy/" title="zur Homepage von N-JOY">N-JOY</a> <a href="/n-joy/live/stationnjoy100-radioplayer.html" class="streamradiotv listenlive" title="N-Joy Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/nachrichten/info/infospezial/" title="zur Homepage von NDR Info Spezial">NDR Info Spezial</a> <a href="/nachrichten/infospezial/epg/stationinfospezial102-radioplayer.html" class="streamradiotv listenlive" title="NDR Info Spezial Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/ndrblue/" title="zur Homepage von NDR Blue">NDR Blue</a> <a href="/ndrblue/live/stationndrblue102-radioplayer.html" class="streamradiotv listenlive" title="NDR Blue Livestream"><span class="ndricon_livestream"></span></a> </li> <li><a href="/ndrschlager/" title="zur Homepage von NDR Plus">NDR Schlager</a> <a href="/ndrschlager/live/stationndrplus106-radioplayer.html" class="streamradiotv listenlive" title="NDR Schlager Livestream"><span class="ndricon_livestream"></span></a> </li> </ul> <li> <a href="https://www.ardaudiothek.de/" rel="noopener" title="zur ARD Audiothek" target="_blank"><span class="mainradiotv ndricon_ARDaudiothek"></span>ARD Audiothek</a></li> </ul> </nav> </div> </div> </div> <style type="text/css">@media screen and (min-width: 62rem) { .secondlevel_nav, .branding .brandingbar { background-color: #0277bf }}</style> <div class="secondlevel_nav"> <div class="wrapper"> <nav id="outer_nav" class="subnav"> <span class="gradient_arrow_right"></span> <div id="outer_nav_content" class="nav_content"> <div id="subnav_brandinglogo" style="height:3.5rem; width: 6.3999999rem; background-color: #0277bf"> <a title="Zur Startseite: NDR Info" href="/nachrichten/info"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="svgbrand logo_ndrinfo" viewBox="0 0 210 120"> <title>NDR Info</title> <path class="dm" d="M89.52,50c0-3.93-2.12-5-5.69-5H78.15V55.47h5.68c3.39,0,5.69-1.93,5.69-5.44ZM100,78.27H90.37l-7.2-15.48H78.33V78.27H69.38V37.92H83.47c8.83,0,14.64,2.9,14.64,12.58,0,4.9-1.94,8.83-6.66,10.65L100,78.27Z"/> <polygon class="dm" points="35.87 37.92 35.87 0 31.08 0 31.08 37.92 35.87 37.92 35.87 37.92"/> <path class="dm" d="M56.55,63.27V52.86c0-4.9-2.24-7.32-7.2-7.32H45.06v25.1h4.29c5,0,7.2-2.48,7.2-7.38Zm8.71.85c0,10.22-5.31,14.15-15.12,14.15H35.86V37.92H50.14c9.43,0,15.12,4.17,15.12,14V64.12Z"/> <polygon class="dm" points="31.08 78.27 31.08 37.92 22.56 37.92 22.56 63.03 8.95 37.92 0 37.92 0 78.27 8.53 78.27 8.53 54.74 21.59 78.27 31.08 78.27 31.08 78.27"/> <polygon class="dm" points="35.87 95.51 35.87 78.27 31.08 78.27 31.08 95.51 35.87 95.51 35.87 95.51"/> <polygon class="subm" points="126.69 78.29 126.69 72.96 122.25 72.78 122.25 43.39 126.69 43.21 126.69 37.93 110.8 37.93 110.8 43.21 115.23 43.39 115.23 72.78 110.8 72.96 110.8 78.29 126.69 78.29"/> <path class="subm" d="M156,78.29V73.71h0V56.5c0-6.95-2.4-9.88-8.08-9.88-3.05,0-6,1.44-9.58,4.19l-.18-3.59h-6.59v5.63h0V73.71h0v4.58h7V73.71h0V55.36c2.52-2.09,4.85-3.23,6.59-3.23,2.57,0,3.83,1.44,3.83,4.85V78.29Z"/> <path class="subm" d="M179.2,36.05a39.1,39.1,0,0,0-5.27-.48c-7.61,0-8.8,4.49-8.8,10.3v1.34h-4.67v5.63h4.73V73.71h0v4.58h7V73.71h0V52.79H178V47.22h-5.86V45.87c0-2.58.48-5,3.95-5a10.1,10.1,0,0,1,2.64.42l.48-5.21Z"/> <path class="subm" d="M194,46.16c-9.9,0-13.75,7.23-13.75,16.3,0,9.84,4.09,16.24,13.16,16.24,10.43,0,13.63-7.06,13.63-16.3,0-10.55-4.44-16.24-13-16.24Zm-6.52,16.54c0-7.76,1.84-11,6.16-11S199.8,55,199.8,62.47,198,73.2,193.64,73.2s-6.16-3.32-6.16-10.49Z"/> </svg><span class="branding_label">NDR Info</span> </a> </div> <button id="pnAdvancerLeft" class="pn-Advancer pn-Advancer_Left" type="button" aria-label="nach links für weitere Menüpunkte"> <span class="icon icon_arrow_left"></span> </button> <ul id="branding_navigation" class="info"> <li ><a href="/nachrichten/info/sendungen/index.html">Sendungen</a></li> <li ><a href="https://ndr.de/liveradio-ndrinfo">Radio live</a></li> <li ><a href="/nachrichten/info/podcasts/index.html">Podcasts</a></li> <li class="active"><a href="/nachrichten/info/infospezial/index.html">NDR Info Spezial</a></li> <li ><a href="/nachrichten/info/die_redaktion/index.html">Die Redaktion</a></li> <li ><a href="/nachrichten/info/app/index.html">App</a></li></ul> <span id="pnIndicator" class="subnav_Indicator"></span> </div> </nav> <button id="pnAdvancerRight" class="pn-Advancer pn-Advancer_Right" type="button" aria-label="nach rechts für weitere Menüpunkte"> <span class="icon icon_arrow_right"></span> </button> </div> </div> </header> <div id="page"> <a name="content"></a> <div class="container w100"> <script src="/resources/js/radiobox.js"></script> <div class="module onaircenter" data-brand="ndrinfospezial"> <div class="currentshow"> <h2 id="program_title"><a href="/nachrichten/info/epg/ARD-Infonacht,sendung1516274.html" title="ARD Infonacht" >ARD Infonacht</a></h2> <p class="subtitleofcurrentshow small">Gut informiert durch die Nacht</p> <div class="broadcasttime zeta"><span id="planin_time">22:00</span> - <span id="planout_time">23:03</span></div> <div class="hostimage" id="epg_program_image"> <div class="image-container landscape"> <noscript data-basename="/reichstag109_v-contentgross.jpg" data-alt="Reichstag mit hell erleuchteter Kuppel im nächtlichen Berlin &copy; imago/F. Berger Foto: F. Berger" data-title="Reichstag mit hell erleuchteter Kuppel im nächtlichen Berlin" data-type="contentklein,contentgross,contentxl,einspaltig,zweispaltig,vierspaltig,thumbnailgross,anderthalbspaltig,fullhd"> <img src="/reichstag109_v-contentgross.jpg" data-type="contentklein,contentgross,contentxl,einspaltig,zweispaltig,vierspaltig,thumbnailgross,anderthalbspaltig,fullhd" alt="Reichstag mit hell erleuchteter Kuppel im nächtlichen Berlin &copy; imago/F. Berger Foto: F. Berger" title="Reichstag mit hell erleuchteter Kuppel im nächtlichen Berlin" /> </noscript> </div></div> <div class="pp_liveplayer_holder module"> <div class="playerloading"><div class="loader"><div></div><div></div></div></div> <img width="184" height="104" src="/nachrichten/info/audiothekndrinfospezial100_v-einspaltig.jpg" alt="NDR Info Spezial &copy; NDR " title="NDR Info Spezial" width=0 height=0 style='display:none' /> <script src="/common/podlove-audioplayer/core/embed.js"></script> <script src="/common/podlove-audioplayer/core/extensions/external-events.js"></script> <script src="/common/podlove-audioplayer/init.js"></script> <div id="audioplayer-livestream152699c0ea9-83c2-440c-9dba-4e04e8ec387d" data-test="podl-audioplayer" class="podl-container-live"> <root class="pt-6 px-4 w-full text-center relative" style="background:transparent;"> <play-button variant="simple" class="relative" style="top:-10px;"></play-button> <volume-control class="absolute bottom-0 livevol mobile:hidden" style="right:65px;"></volume-control> </root> </div> <script type="text/javascript"> $(document).ready( function(){ /* Bugfix für Konsolenfehler "_cookie_test" in Firefox */ window.pdl = window.pdl || {}; window.pdl.requireConsent = 'v2'; window.pdl.cookieDefault = { domain: 'www.ndr.de' }; var getCookie = function (name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length === 2) return parts.pop().split(";").shift(); }; var cookieVal = getCookie('ndrEmbeds'); var substring = "tracking"; // Nur dann nicht ausliefern, wenn "tracking" im Cookie steht if (decodeURIComponent(cookieVal).indexOf(substring) === -1) { var pianoAnalytics = function (j) { "use strict"; var H = { site: "595937", collectDomain: "https://log.xiti.com", path: "event", visitorStorageMode: "fixed", storageLifetimeVisitor: 395, storageLifetimeUser: 395, storageLifetimePrivacy: 395, privacyDefaultMode: "optin", sendEventWhenOptout: !0, isVisitorClientSide: !0, enableCallbacks: !0, cookieDomain: "", cookieSecure: !0, cookiePath: "/", cookieSameSite: "lax", encodeStorageBase64: !1, addEventURL: "withoutQS", clickAutoManagement: !0, enableUTMTracking: !0, campaignPrefix: ["at_"], storageVisitor: "pa_vid", storageUser: "pa_user", version: "6.13.1", minHeartbeat: 5, minBufferingHeartbeat: 1, queueVarName: "_paq", globalVarName: "pa", enableAutomaticPageRefresh: !0, allowHighEntropyClientHints: !0, sendEmptyProperties: !0, enableExtendedOptout: !1, privacy: { storageKey: "pa_privacy", legacyKeys: {pa_vid: !0, pa_privacy: !0, atuserid: !0}, storageKeys: {pa_user: !0}, modes: { optin: { name: "optin", properties: { include: {visitor_privacy_consent: !0, visitor_privacy_mode: "optin"}, allowed: {"*": {"*": !0}}, forbidden: {"*": {}} }, storage: {allowed: {"*": !0}, forbidden: {}}, events: {allowed: {"*": !0}, forbidden: {}} }, optout: { name: "optout", visitorId: "OPT-OUT", properties: { include: {visitor_privacy_consent: !1, visitor_privacy_mode: "optout"}, allowed: {"*": {}}, forbidden: {"*": {}} }, storage: {allowed: {pa_vid: !0, pa_privacy: !0}, forbidden: {}}, events: {allowed: {"*": !0}, forbidden: {}} }, "no-consent": { name: "no-consent", visitorId: "no-consent", properties: { include: {visitor_privacy_consent: !1, visitor_privacy_mode: "no-consent"}, allowed: {"*": {}}, forbidden: {"*": {}} }, storage: {allowed: {}, forbidden: {"*": !0}}, events: {allowed: {"*": !0}, forbidden: {}} }, "no-storage": { name: "no-storage", visitorId: "no-storage", properties: { include: {visitor_privacy_consent: !1, visitor_privacy_mode: "no-storage"}, allowed: {"*": {"*": !0}}, forbidden: {"*": {}} }, storage: {allowed: {}, forbidden: {"*": !0}}, events: {allowed: {"*": !0}, forbidden: {}} }, exempt: { name: "exempt", properties: { include: {visitor_privacy_consent: !1, visitor_privacy_mode: "exempt"}, allowed: { "*": { app_crash: !0, app_crash_class: !0, app_crash_screen: !0, app_version: !0, browser: !0, browser_cookie_acceptance: !0, browser_group: !0, browser_version: !0, click: !0, click_chapter1: !0, click_chapter2: !0, click_chapter3: !0, click_full_name: !0, connection_monitor: !0, connection_organisation: !0, cookie_creation_date: !0, date: !0, date_day: !0, date_daynumber: !0, date_month: !0, date_monthnumber: !0, date_week: !0, date_year: !0, date_yearofweek: !0, device_brand: !0, device_display_height: !0, device_display_width: !0, device_name: !0, device_name_tech: !0, device_screen_diagonal: !0, device_screen_height: !0, device_screen_width: !0, device_type: !0, event_collection_platform: !0, event_collection_version: !0, event_hour: !0, event_id: !0, event_minute: !0, event_position: !0, event_second: !0, event_time: !0, event_time_utc: !0, event_url: !0, event_url_domain: !0, event_url_full: !0, exclusion_cause: !0, exclusion_type: !0, geo_city: !0, geo_continent: !0, geo_country: !0, geo_metro: !0, geo_region: !0, goal_type: !0, hit_time_utc: !0, os: !0, os_group: !0, os_version: !0, os_version_name: !0, page: !0, page_chapter1: !0, page_chapter2: !0, page_chapter3: !0, page_duration: !0, page_full_name: !0, page_position: !0, page_title_html: !0, page_url: !0, pageview_id: !0, previous_url: !0, privacy_status: !0, site: !0, site_env: !0, site_id: !0, site_platform: !0, src: !0, src_detail: !0, src_direct_access: !0, src_organic: !0, src_organic_detail: !0, src_portal_domain: !0, src_portal_site: !0, src_portal_site_id: !0, src_portal_url: !0, src_referrer_site_domain: !0, src_referrer_site_url: !0, src_referrer_url: !0, src_se: !0, src_se_category: !0, src_se_country: !0, src_type: !0, src_url: !0, src_url_domain: !0, src_webmail: !0 } }, forbidden: {"*": {}} }, storage: {allowed: {pa_vid: !0, pa_privacy: !0, atuserid: !0}, forbidden: {}}, events: { allowed: { "click.exit": !0, "click.navigation": !0, "click.download": !0, "click.action": !0, "page.display": !0 }, forbidden: {} } }, "*": { properties: { allowed: { "*": { connection_type: !0, device_timestamp_utc: !0, visitor_privacy_consent: !0, visitor_privacy_mode: !0, "ch_ua*": !0 } }, forbidden: {"*": {}} }, storage: {allowed: {}, forbidden: {}}, events: {allowed: {}, forbidden: {}} } } } }; function c(e) { return (c = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) } function U(e, t) { (null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } function w(e, t) { var n, r, o, i, a = "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; if (a) return r = !(n = !0), { s: function () { a = a.call(e) }, n: function () { var e = a.next(); return n = e.done, e }, e: function (e) { r = !0, o = e }, f: function () { try { n || null == a.return || a.return() } finally { if (r) throw o } } }; if (Array.isArray(e) || (a = function (e, t) { var n; if (e) return "string" == typeof e ? U(e, t) : "Map" === (n = "Object" === (n = Object.prototype.toString.call(e).slice(8, -1)) && e.constructor ? e.constructor.name : n) || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? U(e, t) : void 0 }(e)) || t && e && "number" == typeof e.length) return a && (e = a), i = 0, { s: t = function () { }, n: function () { return i >= e.length ? {done: !0} : {done: !1, value: e[i++]} }, e: function (e) { throw e }, f: t }; throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } var D = function e(t, n) { if ("object" !== c(t) || null === t || t instanceof Date) return t; var r, o = new t.constructor; for (r in t) !Object.prototype.hasOwnProperty.call(t, r) || void 0 === r || n && void 0 === t[r] || (o[r] = e(t[r])); return o }; var R, B = { post: function (e, t) { var n = !1; !(n = window.navigator && "function" == typeof window.navigator.sendBeacon ? window.navigator.sendBeacon(e, t) : n) && window.fetch && window.fetch(e, { method: "POST", body: t, headers: {"Content-Type": "text/plain;charset=UTF-8"} }) } }, l = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", V = { encodeURIComponent: window.encodeURIComponent, utf8: { encode: function (e) { e = e.replace(/\r\n/g, "\n"); for (var t = "", n = 0; n < e.length; n++) { var r = e.charCodeAt(n); r < 128 ? t += String.fromCharCode(r) : t = 127 < r && r < 2048 ? (t += String.fromCharCode(r >> 6 | 192)) + String.fromCharCode(63 & r | 128) : (t = (t += String.fromCharCode(r >> 12 | 224)) + String.fromCharCode(r >> 6 & 63 | 128)) + String.fromCharCode(63 & r | 128) } return t }, decode: function (e) { var t, n, r, o = "", i = 0; for (t = 0; i < e.length;) (r = e.charCodeAt(i)) < 128 ? (o += String.fromCharCode(r), i++) : 191 < r && r < 224 ? (t = e.charCodeAt(i + 1), o += String.fromCharCode((31 & r) << 6 | 63 & t), i += 2) : (t = e.charCodeAt(i + 1), n = e.charCodeAt(i + 2), o += String.fromCharCode((15 & r) << 12 | (63 & t) << 6 | 63 & n), i += 3); return o } }, base64: { encode: function (e) { var t, n, r, o, i, a, u = "", s = 0; for (e = V.utf8.encode(e); s < e.length;) r = (t = e.charCodeAt(s++)) >> 2, o = (3 & t) << 4 | (t = e.charCodeAt(s++)) >> 4, i = (15 & t) << 2 | (n = e.charCodeAt(s++)) >> 6, a = 63 & n, isNaN(t) ? i = a = 64 : isNaN(n) && (a = 64), u = u + l.charAt(r) + l.charAt(o) + l.charAt(i) + l.charAt(a); return u }, decode: function (e) { var t, n, r, o, i, a, u = "", s = 0; for (e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); s < e.length;) r = l.indexOf(e.charAt(s++)), t = (15 & (o = l.indexOf(e.charAt(s++)))) << 4 | (i = l.indexOf(e.charAt(s++))) >> 2, n = (3 & i) << 6 | (a = l.indexOf(e.charAt(s++))), u += String.fromCharCode(r << 2 | o >> 4), 64 != i && (u += String.fromCharCode(t)), 64 != a && (u += String.fromCharCode(n)); return u = V.utf8.decode(u) } } }, K = (R = window.crypto || window.msCrypto, { v4: function () { try { if (null !== R && "object" === c(R)) return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (e) { return (e ^ R.getRandomValues(new Uint32Array(1))[0] & 15 >> e / 4).toString(16) }) } catch (e) { console.error(e) } return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (e) { var t = 16 * Math.random() | 0; return ("x" === e ? t : 3 & t | 8).toString(16) }) } }); function Y(e) { var n = e; function r(e, t) { null !== t && "" !== t && void 0 !== t && (n[e] = t) } return { setConfiguration: r, setConfigurations: function (e) { for (var t in e) Object.prototype.hasOwnProperty.call(e, t) && r(t, e[t]) }, getConfiguration: function (e) { return void 0 !== n[e] ? D(n[e]) : null }, cloneData: function () { return D(n) }, deleteProperty: function (e) { delete n[e] } } } function q(t) { var n = []; return { push: function (e) { n.push(e), 1 === n.length && t[e[0]].apply(t, e.slice(1)) }, next: function () { var e; n.shift(), 0 < n.length && t[(e = n[0])[0]].apply(t, e.slice(1)) } } } function F(r, e, t) { this.properties = D(r._properties), this.setProperty = function (e, t, n) { r._privacy.call("isPropAllowed", e) && (this.properties[e] = {value: t, options: n || {}}) }, this.hasProperty = function (e) { return Object.prototype.hasOwnProperty.call(this.properties, e) }, this.getConfiguration = t.getConfiguration, this.setConfiguration = t.setConfiguration, this.options = e.options || {}, this.visitorId = null, this.build = { url: "", data: {} }, this.events = e.events || [] } function C(e, t, n, r) { !1 !== r && 0 < n.length && "function" == typeof n[0] ? n[0](e, t, n.slice(1)) : e._queue.next() } function W(e, t, n) { var r = t.getConfiguration("collectDomain"), o = r.startsWith("https://") || r.startsWith("http://") ? "" : "https://", o = "".concat(o).concat(r, "/").concat(t.getConfiguration("path")), r = "?s=".concat(t.getConfiguration("site")).concat(t.visitorId ? "&idclient=" + t.visitorId : ""); t.build.url = o + r, t.build.data = {events: t.events}, C(e, t, n) } function J(e, t, n, r, o) { var i, a = function (e, t, n) { for (var r = {}, o = new RegExp("[&#?]{1}([^&=#?]*)=([^&#]*)?", "g"), i = o.exec(t); null !== i;) 0 === i[1].indexOf(e) && (r[n + i[1].substring(e.length)] = window.decodeURIComponent(i[2])), i = o.exec(t); return r }(r, n, o), u = !1; for (i in a) Object.prototype.hasOwnProperty.call(a, i) && !t.properties[i] && t.setProperty(i, a[i], {persistent: !0}), u = !0; return u } function z(e, t, n) { var r, o = document.location.href, i = w(t.getConfiguration("campaignPrefix")); try { for (i.s(); !(r = i.n()).done;) if (J(0, t, o, r.value, "src_")) break } catch (e) { i.e(e) } finally { i.f() } t.getConfiguration("enableUTMTracking") && J(0, t, o, "utm_", "utm_"), C(e, t, n) } function X(e) { return 0 === e.indexOf('"') && (e = e.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")), Q(e) } var $, G, Z = function (e) { function t(e) { e && r.setDate(r.getDate() + e) } var n, r = new Date; return e instanceof Date ? r = e : "number" == typeof e ? t(e) : (n = e.days, e = e.minutes, t(n), e && r.setMinutes(r.getMinutes() + e)), r }, Q = function (t) { t = t.replace(/\+/g, " ").replace(/^\s+|\s+$/g, ""); try { return decodeURIComponent(t) } catch (e) { return t } }, m = ($ = "_cookie_test", G = "https:" === document.location.protocol, { set: te, get: re, getNames: function () { var t = []; return ne(function (e) { t.push(e) }), t }, remove: oe, getTopLevelDomain: function (e) { void 0 === e && (e = []); var t = window.location.hostname.split("."), n = (new Date).getTime().toString(36) + Math.round(2147483647 * Math.random()).toString(36), r = new Date; r.setSeconds(r.getSeconds() + 30); for (var o = 0; o < t.length; o++) try { var i = t.slice(-(o + 1)).join("."); if (!e.includes(i)) { te($, n, {expires: r, path: "/", domain: i, secure: G}); var a = re($) === n; if (oe($, {path: "/", domain: i}), a) return i } } catch (e) { } }, __private__: {_generateCookieString: ee} }); function ee(e, t, n) { var r = (n = void 0 === n ? {} : n).path, o = n.domain, i = n.expires, a = n.secure, u = n.samesite, s = n.raw, n = n.priority; return (s ? e : encodeURIComponent(e)) + "=" + (s ? t : encodeURIComponent(t)) + (i ? "; expires=".concat(Z(i).toUTCString()) : "") + (r ? "; path=".concat(r) : "") + (o ? "; domain=".concat(o) : "") + (a ? "; secure" : "") + (u ? "boolean" == typeof u ? "; sameSite" : "; sameSite=".concat(u) : "") + (n ? "; priority=".concat(n) : "") } function te(e, t, n, r) { void 0 === t || void 0 !== r && encodeURI(t).split(/%(?:u[\dA-F]{2})?[\dA-F]{2}|./).length - 1 > r || (document.cookie = ee(e, t, n)) } function ne(e) { for (var t = document.cookie.split(";"), n = 0; n < t.length; n++) { var r = t[n].split("="); if (e(Q(r[0]), r[1] || "")) return } } function re(n) { var r = null, o = {}; return ne(function (e, t) { if (n) return e === n && (r = X(t), 1); o[e] = X(t) }), n ? r : o } function oe(e, t) { te(e, "", Object.assign({}, t, {expires: -1})) } t = "_ls_ttl", ie = function () { try { var e = window.localStorage.getItem(t); return e ? JSON.parse(e) : null } catch (e) { return null } }, ae = function (e) { try { Object.keys(e).length ? window.localStorage.setItem(t, JSON.stringify(e)) : window.localStorage.removeItem(t) } catch (e) { } }, se(); var t, ie, ae, ue = { get: function (e) { var t; se(); try { return null != (t = window.localStorage.getItem(e)) ? t : null } catch (e) { return null } }, set: function (e, t, n) { if (r = e, n = (n = void 0 === n ? {} : n).expires, o = ie(), void 0 === n ? (null != o && o[r] && (delete o[r], ae(o)), !0) : (n = Z(n).getTime()) > Date.now() && ((o = o || {})[r] = n.toString(36), ae(o), !0)) try { window.localStorage.setItem(e, t) } catch (e) { } var r, o }, getNames: ce, remove: function (e) { try { window.localStorage.removeItem(e) } catch (e) { } se() }, expires: se, __protected__: { get ttlName() { return t } } }; function se() { var n = ce(), r = ie(), o = {}; r && (Object.keys(r).forEach(function (e) { if (n.includes(e)) { var t = r[e] ? parseInt(r[e], 36) : null; if (!(t = t) || t > Date.now()) o[e] = r[e]; else try { window.localStorage.removeItem(e) } catch (e) { } } }), JSON.stringify(r) !== JSON.stringify(o)) && ae(o) } function ce() { try { return Object.keys(window.localStorage) } catch (e) { return [] } } function n(t, e) { return { cookieName: e = void 0 === e ? "_pctx" : e, readonly: !1, init: function (e) { return null != (e = null != e ? e : t) ? e : null }, refresh: function (e) { return e }, update: function (e) { return e }, set: function (e) { return e }, get: function (e) { return e } } } function e(e) { return _(_({}, n(e)), {cookieName: null}) } function le(e) { return null == e } function de() { var t = {}; return { add: function (e) { t[e] = !0 }, values: function () { return d(t) } } } function fe(n, r) { var o, i = NaN, a = NaN; return function (e) { var t = null == r ? void 0 : r(); return e === a && i === t || (i = t, o = n(a = e)), o } } function pe(n) { var r; return function (e) { var t = n(); t !== r && e(r = t) } } function ve(e) { return y(e, function (e) { return "CX" !== (null == e ? void 0 : e.type) }) } function ge(e, t) { return t({protect: !0}), v() } function he(n, r, o) { var e = je().reduce(function (e, t) { t = t.id; return e[t] = o(null == n ? void 0 : n[t], null == r ? void 0 : r[t], t), e }, {}); return Me(e, r) ? r : e } function me(e, t) { return he(e, t, function (e, t, n) { return e || t || Qe()[n] }) } function _e() { return g().consent_modifiers || null } function ye() { return !!g().requireConsent } function be(e, t, n) { return "".concat(e.join(", "), " ").concat(1 < e.length ? n : t) } var we, Ce, ke = { get: function (e) { try { return window.sessionStorage.getItem(e) } catch (e) { return null } }, set: function (e, t) { try { window.sessionStorage.setItem(e, t) } catch (e) { } }, getNames: function () { try { return Object.keys(window.sessionStorage) } catch (e) { return [] } }, remove: function (e) { try { window.sessionStorage.removeItem(e) } catch (e) { } } }, _ = function () { return (_ = Object.assign || function (e) { for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]); return e }).apply(this, arguments) }, Pe = n("anon"), d = function (e) { return e ? Object.keys(e) : [] }, p = function (e) { return Array.isArray(e) }, Oe = function (e) { return !le(e) }, a = function (e) { return "object" === c(e) }, f = function (e) { return "string" == typeof e }, v = function () { for (var e = (new Date).getTime().toString(36); e.length < 16;) e += Math.round(2147483647 * Math.random()).toString(36); return e.substr(0, 16) }, y = function (n, t) { return n && d(n).filter(function (e) { return t(n[e]) }).reduce(function (e, t) { return _(_({}, e), ((e = {})[t] = n[t], e)) }, {}) }, Ae = function (o, i) { return a(o) ? d(o).reduce(function (e, t) { var n = o[t], r = i[t], r = r && r(n); return void 0 !== r && (e[t] = r), e }, {}) : o }, xe = function (e) { return "true" === e || !0 === e }, o = function t(e, n) { try { return e() } catch (e) { return n ? t(n) : null } }, Se = function (e, t) { return void 0 === t && (t = !1), o(function () { return JSON.parse(e) }, function () { return t ? JSON.parse(window.atob(e)) : null }) || null }, De = function (e, t) { void 0 === t && (t = !1); var n = JSON.stringify(e); return o(function () { return t ? window.btoa(n) : n }) || n }, Me = function (t, n) { var e, r; return t === n || (t && n ? (e = d(t), r = d(n), e.length === r.length && !e.some(function (e) { return t[e] !== n[e] })) : null) }, Ie = _(_({}, n(null)), { init: function (e) { return ve(e || null) }, refresh: ve, set: function (e, t) { return null === e ? null : y(_(_({}, t), e), function (e) { return null !== e }) } }), Ee = "pdl", g = function () { return window[Ee] || {} }, Ne = _(_({}, e()), { init: function (e, t) { return t({protect: !0}), g().pageViewId || v() }, refresh: ge, update: ge, set: function (e, t, n) { return n({protect: !0}), e } }), Te = _(_({}, n(null, "_pcid")), { init: function (e, t) { return t({protect: !0}), e || v() }, update: function (e, t) { return t({protect: !0}), v() }, set: function (e, t, n) { return n({protect: !0}), e } }), i = ["PA", "DMP", "COMPOSER", "ID", "VX", "ESP", "SOCIAL_FLOW", "DL"].map(function (e, t) { return {name: e, id: t} }), h = i.reduce(function (e, t, n) { t = t.name; return _(_({}, e), ((e = {})[t] = n, e[t.toLowerCase()] = n, e)) }, {}), Le = (h["social flow"] = h.SOCIAL_FLOW, h["Social Flow"] = h.SOCIAL_FLOW, pe(function () { var e; return null == (e = At(g().consent)) ? void 0 : e.products })), je = (we = i, function () { return Le(function (t) { we = t ? i.filter(function (e) { return t.includes(e.name) || "DL" === e.name }) : i }), we }), He = function (e) { var t = Number(e); return Number.isNaN(t) ? null != (e = h[e.toLowerCase()]) ? e : null : t < i.length ? t : null }, Ue = function (r, o) { return d(r).reduce(function (e, t) { var n = i[Number(t)].name, t = r[t]; return e[n] = o ? o(t, n) : t, e }, {}) }, Re = "opt-in", Be = "essential", Ve = "opt-out", Ke = "custom", Ye = [Re, Be, Ve], qe = Ye.concat(Ke), Fe = qe.reduce(function (e, t, n) { return _(_({}, e), ((e = {})[n] = t, e)) }, {}), We = [Re, Ke, Be, Ve], Je = function (e, t) { e = We.indexOf(e), t = We.indexOf(t); return We[Math.max(e, t)] }, ze = function (e) { return qe.includes(e) }, Xe = function (e) { return Ye.includes(e) }, $e = {AD: ["DMP", "SOCIAL_FLOW"], CP: ["COMPOSER"], AM: ["PA"], PR: ["ESP", "VX", "ID"], DL: ["DL"]}, Ge = d($e).reduce(function (t, n) { return $e[n].forEach(function (e) { e = h[e]; t[e] = n }), t }, {}), Ze = pe(function () { var e; return null == (e = At(g().consent)) ? void 0 : e.defaultPurposes }), Qe = (Ce = _({}, Ge), function () { return Ze(function (n) { Ce = _({}, Ge), n && d(n).forEach(function (e) { var t = h[e]; Ce[t] = null == (t = n[e]) ? void 0 : t.substring(0, 32) }) }), Ce }), r = _(_({}, n(null, "_pprv")), { init: function (e) { return b() ? me(e || null, null) : null }, set: function (e, t) { return b() ? null == e ? t : me(d(r = e).reduce(function (e, t) { var n = He(t), t = ot(r[t]); return null !== n && t !== tt && n !== h.DL && t && (e[n] = t), e }, {}), t) : null; var r } }), b = function () { return "v2" === g().requireConsent }, et = function (e, t) { return e === Ke && !(null != (e = _e()) && e[t]) }, tt = "DL", nt = ["AD", "AM", "CP", "PR", tt].reduce(function (e, t) { return _(_({}, e), ((e = {})[t] = t, e[t.toLowerCase()] = t, e)) }, {}), rt = function (e) { return nt[(null == e ? void 0 : e.toLowerCase()) || ""] || null }, ot = function (e) { return rt(e) || (null == e ? void 0 : e.substring(0, 32)) }, it = "Consent v2 is disabled", at = 'the "DL" purpose is reserved', ut = function (e) { return '"'.concat(e, '" can not be applied for the dl product') }, st = function (e) { return "".concat(e, " is unknown consent mode") }, ct = function (e) { return be(e, "does", "do") + "n't have modifier in the pdl. Custom mode can't be applied" }, lt = "Unknown purpose. Provide a product or define within pdl config", dt = function (e) { return "Custom purpose: " + be(e, "is", "are") + " unknown" }; function ft(u, e, t, n, r) { function o(e, t) { return t = ot(t), nt[t] || Object.values(u || {}).includes(t) ? f(e, t) : d(lt) } var i, a, s, c, l, d = function (e) { return {error: e} }, f = function (r, o, i) { var e, a = []; return ze(r) ? (e = je().reduce(function (e, t) { var n = t.id, t = t.name; return (!o || (null == u ? void 0 : u[n]) === o || null != i && i.includes(n)) && (et(r, t) ? a.push(t) : e[n] = {mode: r}), e }, {}), a.length ? d(ct(a)) : Object.keys(e).length ? {consent: e} : null) : d(st(r)) }; return b() ? r ? (i = n, r = r, c = ot(a = t), r = p(r) ? r : [r], (l = r.map(He).filter(Oe)).length ? c !== tt && l.includes(h.DL) ? {error: ut(c)} : c === tt && l.some(function (e) { return e !== h.DL }) ? d(at) : null != (s = f(i, c, l)) && s.error ? s : (l = l.reduce(function (e, t) { return e[t] = c, e }, {}), { consent: (null == s ? void 0 : s.consent) || null, purposes: l }) : rt(a) ? o(i, a) : d(dt(r))) : n ? o(n, t) : f(t) : d(it) } function pt(t, n) { return function (e) { return n(t + e) } } function vt(e, t) { void 0 === t && (t = kt); var n = h[e.toLowerCase()]; return void 0 !== n ? i[n].name : (t('"'.concat(e, '" is not found')), null) } function gt(o, a) { var e, u; return void 0 === a && (a = kt), o ? (e = {}, o.products && (p(o.products) ? e.products = o.products.reduce(function (e, t) { t = vt(t, pt("consent.products: ", a)); return t && e.push(t), e }, []) : a("consent.products: should be an array")), o.defaultPreset && (e.defaultPreset = d(o.defaultPreset).reduce(function (e, t) { var n = vt(t, pt("consent.defaultPreset: ", a)), r = Pt(o.defaultPreset[t]); return r || a("consent.defaultPreset: " + Ct(t, Ye)), n && r && (e[n] = r), e }, {})), (u = o.defaultPurposes) && (e.defaultPurposes = d(u).reduce(function (e, t) { var n = pt("consent.defaultPurposes: ", a), r = vt(t, n), o = u[t], i = ot(o); return i === tt || "DL" === r ? n('"'.concat(t, ": ").concat(o, '" - invalid config')) : r && i && (e[r] = i), e }, {})), e) : null } function ht(e) { return e.reduce(function (e, t, n) { return _(_({}, e), ((e = {})[n] = {mode: Fe[t]}, e)) }, {}) } function mt(e, t) { return he(e, t, function (e, t, n) { e = (null == e ? void 0 : e.mode) || (null == t ? void 0 : t.mode) || It()[0].preset[n].mode; return e !== (null == t ? void 0 : t.mode) ? {mode: e} : t }) } function _t(e) { var t = Number(e); return Number.isNaN(t) ? String(e) : t } function yt(e) { return p(e) ? e : e.split(",").map(function (e) { return e.trim().replace(/^['"](.+)['"]$/, "$1") }) } function u(e) { return e } var s, bt = function (o, e) { var i; return o ? (i = Ue(e || Ge), je().reduce(function (e, t) { var t = t.name, n = i[t], r = (null == (r = o[t]) ? void 0 : r.mode) || Re; return e[n] ? (e[n].mode = Je(e[n].mode, r), e[n].products.push(t)) : e[n] = {mode: r, products: [t]}, e }, {})) : null }, wt = ["include", "exclude", "obfuscate"], Ct = function (e, t) { return '"'.concat(e, '" should be one of ').concat(t.join(", ")) }, kt = function () { }, Pt = function (e) { return Xe(e) ? e : null }, Ot = function (e, i) { void 0 === i && (i = kt); var t = e.source, e = e.patches || []; return Pt(t) || (i(Ct("source", Ye)), t = Re), p(e) || (i('"patches" should be an array'), e = []), { source: t, patches: e = e.reduce(function (e, t, n) { var r, o; return !a(t) || p(t) ? i("patch[".concat(n, "]: should be type of {action, item, with?}")) : (r = t.action, o = t.item, wt.includes(r) ? o && a(o) && o.key && o.type ? e.push(t) : i("patch[".concat(n, ']: "item" should be type of {key, type}')) : i("patch[".concat(n, "]: ") + Ct("action", wt))), e }, []) } }, At = fe(gt), xt = function (o, i) { return void 0 === i && (i = kt), d(o || {}).reduce(function (e, t) { var n = null == o ? void 0 : o[t], r = vt((null == n ? void 0 : n.source) || "", i); return e[t] = _(_({}, n), {source: r}), e }, {}) }, St = [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 2, 2, 2, 2, 2, 0], [1, 2, 2, 2, 2, 2, 2, 1], [0, 2, 0, 2, 2, 2, 0, 0], [1, 2, 2, 2, 2, 2, 1, 1], [2, 0, 0, 2, 2, 2, 2, 0], [2, 0, 2, 2, 2, 2, 2, 0], [2, 2, 2, 2, 2, 2, 0, 2], [2, 2, 0, 0, 0, 0, 2, 0], [2, 2, 1, 2, 1, 2, 2, 1], [2, 2, 1, 1, 2, 2, 2, 1]], Dt = St.map(function (e, t) { return {id: t, preset: ht(e)} }), Mt = pe(function () { var e; return null == (e = At(g().consent)) ? void 0 : e.defaultPreset }), It = (s = Dt, function () { return Mt(function (n) { s = Dt.slice(), n && (s[0] = {id: 0, preset: _({}, s[0].preset)}, d(n).forEach(function (e) { var t = n[e], e = h[e]; s[0].preset[e] = {mode: t} })) }), s }), Et = _(_({}, n(null, "_pprv")), { init: function (e) { return ye() && e ? mt(e, null) : null }, set: function (e, t) { var n, r, o; return ye() ? null != e && (n = "number" == typeof e ? (null == (n = It()[e]) ? void 0 : n.preset) || null : p(e) ? (o = null, e.forEach(function (e) { var n = St[e]; !o && n ? o = n : o && n && (o = o.map(function (e, t) { return Math.min(e, n[t]) })) }), o && ht(o)) : d(r = e).reduce(function (e, t) { var n = r[t], t = He(t); return null !== t && (n = ze(n.mode) ? n.mode : null) && ((e = e || {})[t] = {mode: n}), e }, null)) ? mt(n, t) : t : null }, get: fe(function (e) { return e && Ue(e, function (e, t) { var n, e = _({}, e); return e.mode === Ke && (e.modifier = (null == (n = _e()) ? void 0 : n[t]) || null), e }) }, _e) }), Nt = _(_({}, e()), {init: It, set: It}), Tt = _(_({}, e()), {init: je, set: je}), Lt = _(_({}, e(null)), { readonly: !0, set: function () { return null }, get: _e }), jt = { id: u, type: u, zone: u, createdAt: _t, modifiedAt: _t, authors: yt, section: u, tags: yt, keywords: yt, title: u, description: u, isNative: xe }, Ht = function (e) { return "first" === e }, Ut = function (e) { return "last" === e }; function Rt(e, t) { return void 0 === e && (e = "meta"), Ht(t) ? document.querySelector(e) : (e = document.querySelectorAll(e), Ut(t) ? e[e.length - 1] : Array.from(e)) } function Bt(e) { var r = e.getContent || function (e) { return e.content }; if (e.selector) return (t = Rt(e.selector, e.take || "first")) && r(t) || null; var o = Yt.find(e.attr || ["name"], e.hasContent), t = e.names || [], i = !("all" === e.take), a = Ut(e.take); if (o) for (var n = 0, u = t; n < u.length; n++) { var s = function (e) { var t, n = [], e = o[e]; if (e) { if (i) return t = e[a ? e.length - 1 : 0], {value: r(t) || ""}; e.forEach(function (e) { n = n.concat(r(e) || "") }) } if (n.length) return {value: n} }(u[n]); if ("object" === c(s)) return s.value } return null } function Vt(e) { var t = e.replace(/DAY/g, "(0?[1-9]|[12][0-9]|3[01])").replace(/MONTHLONG/g, "(" + d(Jt).join("|") + ")").replace(/MONTH/g, "(0?[1-9]|1[012])").replace(/YEAR2/g, "([0-9][0-9])").replace(/YEAR/g, "(197[1-9]|19[8-9][0-9]|20[0-9][0-9])").replace(/TIME/g, "([0-9][0-9]):([0-9][0-9]):([0-9][0-9])(?:\\.[0-9][0-9][0-9])?([zZ]|[+-][0-9][0-9](?::?[0-9][0-9])?)?"), e = e.replace(/.*?([YMD])(EAR|ONTH|AY).*?/g, "$1").substring(0, 3); return [new RegExp(t), e] } function k(e) { return e && parseInt(e, 10) || 0 } Kt = null; var Kt, Yt = { refresh: function () { (Kt = Rt() || null) && setTimeout(function () { Kt = null }, 0) }, find: function (a, u) { return void 0 === u && (u = !1), Kt ? Kt.reduce(function (e, t) { for (var n = 0, r = a; n < r.length; n++) { var o = r[n], o = (("name" === o ? t.name : t.getAttribute(o)) || "").trim().toLowerCase(), i = t.content; if (o && (!u || i)) { e[o] || (e[o] = []), e[o].push(t); break } } return e }, {}) : null } }, qt = function (e) { for (var t = 0, n = e; t < n.length; t++) { var r = n[t], r = Bt(r); if (r) return r } }, P = function (e, t, n) { var r, o = jt[t]; !Boolean(e[t]) && o && (o = (r = ("function" == typeof n ? n : function () { return (p(n) ? qt : Bt)(n) })()) && o(r)) && (e[t] = o) }, Ft = function (e) { return {attr: ["property"], names: [e]} }, Wt = function (e) { return {names: [e]} }, Jt = { januar: "01", january: "01", jan: "01", februar: "02", february: "02", feb: "02", mars: "03", march: "03", mar: "03", april: "04", apr: "04", mai: "05", may: "05", juni: "06", june: "06", jun: "06", juli: "07", july: "07", jul: "07", august: "08", aug: "08", september: "09", sept: "09", sep: "09", oktober: "10", october: "10", okt: "10", oct: "10", november: "11", nov: "11", desember: "12", december: "12", dec: "12", des: "12" }, zt = ["\\bDAY\\.MONTH\\.YEAR\\b", "\\bDAY\\.?\\s{0,3}MONTHLONG\\.?\\s{1,3}YEAR\\b", "\\bYEAR-MONTH-DAY(?:[tT]|\\b)", "\\bMONTHLONG\\.?\\s{0,3}DAY(?:st|nd|rd|th)?,?\\s{1,3}YEAR\\b", "\\bDAY(?:st|nd|rd|th|\\.)?\\s{0,3}MONTHLONG\\.?,?\\s{1,3}YEAR\\b", "\\bYEAR[/年]MONTH[/月]DAY(?=\\b|日)", "\\bDAY\\.MONTH\\.YEAR2\\b", "\\bDAY/MONTH/YEAR\\b"].map(Vt), Xt = Vt("YEAR-MONTH-DAY[tT]TIME")[0]; function $t(e, t, n, r, o, i, a) { e = new Date(Date.UTC(k(e), k(t) - 1, k(n), k(r), k(o), k(i))), t = (a || "").match(/^([+-][0-9][0-9])(?::?([0-9][0-9])?)$/), t && (e = new Date(e.getTime() - 36e5 * Number(t[1]) - 6e4 * (Number(t[2]) || 0))), n = Date.now() - e.getTime(); return 0 < n || -n < 1728e5 ? e.toISOString() : null } var Gt = function (e) { return e.replace(/<\/?[^>?]*\/?>/g, " ").replace(/\s+/g, " ").trim() }; function Zt(e) { return Gt((e = void 0 === e ? "" : e).replace(/,(?=\s*(jr|sr)(\.?)\b)/g, " ")) } function Qt(e) { return _(_({}, e), {take: "last"}) } function O(e) { return _(_({}, e), { take: "last", hasContent: !0, getContent: function (e) { return Gt(e.content || "") } }) } function en(e) { P(e, "createdAt", function () { var e = qt(sn); if (!e) return null; var t = e.toLowerCase(), e = (t = t.toLowerCase()).match(Xt); if (e) return $t(e[1], e[2], e[3], e[4], e[5], e[6], e[7]); for (var n = 0, r = zt; n < r.length; n++) { var o = r[n], i = t.match(o[0]); if (i) return $t(2 === (i = "DMY" === o[1] ? ["", i[3], i[2], i[1]] : "MDY" === o[1] ? ["", i[3], i[1], i[2]] : i)[1].length ? (k(i[1]) < 60 ? "20" : "19") + i[1] : i[1], i[2].length <= 2 ? i[2] : Jt[i[2]], i[3]) } }), P(e, "modifiedAt", cn), P(e, "authors", ln), P(e, "keywords", function () { var e = qt(dn); return e && e.length <= 1024 ? e : null }), P(e, "title", pn), P(e, "description", fn) } function tn() { var e, t = Array.from(document.querySelectorAll("meta[property^=content]")).reduce(function (e, t) { var n = null == (n = null == t ? void 0 : t.getAttribute("property")) ? void 0 : n.split(":").pop(), r = jt[n]; return r && t && (e[n] = r((null == t ? void 0 : t.getAttribute("content")) || "")), e }, {}); return Yt.refresh(), P(e = t, "type", Ft("og:type")), P(e, "section", Wt("section")), P(e, "id", Wt("id")), P(e, "authors", Wt("author")), en(t), t } function nn(e) { return e.getTime().toString(36) } function rn(e) { return e ? o(function () { return new Date(parseInt(e, 36)) }) : null } function on(e, t, n) { return void 0 === n && (n = !1), { cookieName: e, consent: t = void 0 === t ? yn : t, encode: function (e) { return De(e, n) }, decode: function (e) { return Se(e, !0) } } } function an(e) { function r(e) { return _(_({}, f), y(e || {}, Oe)) } function n(e, t) { var n = e && t; !v() && n && g(), v() && !n && h(), v() && n && !c && g(), a = e, l = t } var o = e.cookieName, t = e.consent, i = m.get(o), a = !!i, u = a, s = mn(i, e), c = !!s.fixedAt, l = a, d = null, f = _({}, hn), p = null, v = function () { return a && l }, g = function (e) { var t, e = r(e), n = d || (p ? s.encode(p, e) : ""); n || (t = m.get(o), n = (t = s.decode(t || "")) ? s.encode(t, e) : ""), n && (c = !0, m.set(o, n, s.bindOptions(e)), u = !0) }, h = function (e) { v() && (u && m.remove(o, r(e)), u = !1) }; return s.onChange(function () { v() && (c = !1, g()) }), { get cookieName() { return o }, get cookieEnabled() { return v() }, get fixedAt() { return s.fixedAt }, get consent() { return t }, set: function (e, t) { p = e, v() && g(t) }, get: function () { return s.decode(m.get(o) || "") }, remove: h, setCookieOptions: function (e) { f = r(e), v() && g() }, setCookieEnabled: function (e, t) { void 0 === t && (t = null), d = e ? t : null, n(e, l) }, lazyActive: function () { n(a, !0) }, setFixedMode: function (e) { s.setMode(e) } } } var un, sn = [Qt({ attr: ["name", "property", "itemprop"], names: ["cxenseparse:publishtime", "cxenseparse:recs:publishtime", "article:published_time", "date", "dc.date", "dc.date.created", "dc.terms.issued", "pub_date", "article.published", "datepublished", "og:article:published_time"] }), Qt({ selector: "time.published[datetime],time[pubdate][datetime]", getContent: function (e) { return e.getAttribute("datetime") } }), Qt({ selector: "time[datetime]", getContent: function (e) { return e.getAttribute("datetime") } })], cn = {selector: 'meta[property="article:modified_time"]'}, ln = [{ attr: ["property", "name"], names: ["cxenseparse:author", "og:article:author", "article:author", "og:book:author", "book:author", "author", "dc.creator", "article.author"], take: "all", getContent: function (e) { var t = e.getAttribute("data-separator"), e = e.content; return t ? Zt(e).split(t) : Zt((t = void 0 === (t = e) ? "" : t).replace(/\n+/, ";").replace(/(\<|&lt;)br(\>|&gt;)/, ";").replace(/\b(and|und|og)\b/g, ";")).split(/[,;]/) } }], dn = [O({names: ["cxenseparse:keywords"]}), O({ attr: ["property", "name"], names: ["news_keywords"] }), O({names: ["keywords"]})], fn = [O({names: ["cxenseparse:description"]}), O({ attr: ["property"], names: ["og:description"] }), O({names: ["description"]})], pn = [{names: ["cxenseparse:title"]}, Qt({attr: ["property", "name"], names: ["og:title"]})], vn = _(_({}, e(null)), { init: tn, refresh: function (e) { var t = tn(); return null != e && e._fixed_ && null != e && e._fixed_.forEach(function (e) { delete t[e] }), _(_({}, e), t) }, set: function (n, e) { var t, r; return null === n ? {} : (t = new Set(e && e._fixed_), (r = function (e, t) { d(y(n, e)).forEach(t) })(Oe, function (e) { t.add(e) }), r(le, function (e) { t.delete(e) }), y(_(_(_({}, e), n), {_fixed_: Array.from(t.values())}), Oe)) }, get: fe(function (e) { var t = _({}, e); return delete t._fixed_, e && t }) }), gn = _(_({}, n(null, "_pcus")), { init: function (e) { return (e = void 0 === e ? null : e) && y(e, function (e) { return a(e) && Array.isArray(e.segments) }) } }), Ne = { pageViewId: Ne, browserId: Te, users: Ie, userStatus: Pe, siteId: n(), consent: Et, consentPresets: Nt, products: Tt, consentModifiers: Lt, purposes: r, content: vn, userSegments: gn }, hn = { path: "/", expires: 395, samesite: "lax", secure: "https:" === window.location.protocol, domain: m.getTopLevelDomain(["pantheon.io", "go-vip.net", "go-vip.co"]) }, mn = function (e, t) { function n(e) { return a = a || function (e) { var t = new Date; if (e instanceof Date) t = e; else { if ("number" != typeof e) return null; t.setDate(t.getDate() + e) } return t }(e.expires) } var r = t.encode, o = t.decode, i = !1, a = null, u = null, s = null; (t = null == (t = o(e || "")) ? void 0 : t._t) && (t = t.split("|"), a = rn(t[0]), u = rn(t[1]), i = !!a); return { get fixedAt() { return i ? [u, a] : null }, onChange: function (e) { s = e }, setMode: function (e) { var t = i; (i = e) !== t && (u = a = null) != s && s(i) }, bindOptions: function (e) { return i && (a = n(e)) ? _(_({}, e), {expires: a}) : e }, decode: function (e) { e = o(e); return null != e && e._t && delete e._t, e }, encode: function (e, t) { return i ? (a = n(t)) && (e._t = nn(a) + "|" + nn(u = u || new Date)) : delete e._t, r(e) } } }, _n = "essential", yn = "optional", bn = "mandatory", wn = String.fromCharCode, Cn = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$", kn = {}; (un = un || {}).URI = "URI"; function Pn() { function r(r, o, i) { void 0 === i && (i = !1); var a = []; return d(o).forEach(function (e) { var t = o[e], n = !s.has(e) || s.get(e) === r || i; t && n ? s.set(e, r) : !t && n ? s.delete(e) : a.push(e) }), 0 < a.length ? a : null } var i = zn(), a = {}, u = null, o = new Map, s = new Map, c = []; return function (e, t) { var n = v(); return o.set(n, e), t && i.register(t), a = _(_({}, i.get()), a), { getInitCookieData: function () { return a }, getCachedData: function () { return u || Gn }, setProtectionData: function (e) { return r(n, e) }, setProtectionDataUnsafe: function (e) { return r(n, e, !0) }, updateData: function (e) { return n = {}, r = {}, d(t = e).forEach(function (e) { s.has(e) ? n[e] = (null == u ? void 0 : u[e]) || null : r[e] = t[e] }), e = u || a, o = _(_({}, u), r), Me(o, e) || (i.set(o, e), u = o, c.forEach(function (e) { return (0, e[1])(r) })), 0 < d(n).length ? n : null; var t, n, r, o }, onUpdateData: function (e) { c.push([n, e]) }, terminate: function () { var t; t = n, c = c.filter(function (e) { return e[0] !== t }), o.delete(n) }, setCookieOptions: function () { return null }, setCookieEnabled: function () { return null }, get registeredCookiesWrapper() { return i.wrappers } } } } function On(t) { return d(t).filter(Qn).map(function (e) { return er(e, t[e]) }) } function An(e, t) { switch (e) { case Re: return !0; case Be: return t === _n || t === bn; case Ve: return t === bn; default: return !0 } } function xn(e) { function t(e) { return o(function () { return window.localStorage.getItem(e) }) } var n = t(e), r = o(function () { return parseInt(Se(t("_ls_ttl"))[e], 36) }); return r && r <= Date.now() ? null : n } function Sn(e) { var t = e && e.length; return 16 === t || 36 === t ? e : null } function Dn(o) { var e, i = _(_({}, ir), xt(null == (e = g()) ? void 0 : e.migration)); d(i).forEach(function (e) { var t = o.params.get(e), n = i[e] === ir[e], r = null == (r = i[e]) ? void 0 : r.source, r = r && (null == (r = or[r]) ? void 0 : r[e]) || []; t && r.length && (r = rr(r)) && (t.readonly = !1, o.updateValues(e, r, !0), t.readonly = !n) }) } function Mn() { function n(e) { return Ae(e, { path: String, domain: String, secure: xe, expires: function (e) { return e instanceof Date ? e : Number(e) }, samesite: function (e) { return f(e) ? e : xe(e) } }) } var r = _({}, window[Ee]); return null != r && r.cookies && (r.cookies = d(r.cookies).reduce(function (e, t) { return e[t] = n(r.cookies[t]), e }, {})), null != r && r.cookieDefault && (r.cookieDefault = n(r.cookieDefault)), r } function In(n) { function e(e) { return e || (null == (e = n.get("consent")) ? void 0 : e.DL) || null } function r(e, t) { var r = sr(t), o = null == (t = n.getConnection()) ? void 0 : t.registeredCookiesWrapper; o && (t = d(o).map(function (e) { return o[e].cookieName }), i(t, e).forEach(function (e) { var t = e.name, n = e.allowed, e = e.data, n = n && !r[t]; o[t].setCookieEnabled(n, e || null) })) } var t = d(Jn).reduce(function (e, t) { return e[t] = Jn[t].consent, e }, {}), i = nr({items: t, type: "cookie", getConsent: e}), o = e(), a = (null == (t = n.get("consent")) ? void 0 : t.PA) || null; n.addChangeListener("consent", function (e) { var t = (null == e ? void 0 : e.DL) || null, n = (null == e ? void 0 : e.PA) || null; (null == o ? void 0 : o.mode) === (null === t ? void 0 : t.mode) && (null == a ? void 0 : a.mode) === (null === n ? void 0 : n.mode) || (a = n, r(o = t, e)) }), r(o, n.get("consent")) } function En(n) { function t(o) { var i, e, t = bt(o, n.get("purposes")); t && o && (i = !1, e = d(t).reduce(function (n, e) { var r = t[e].mode; return t[e].products.forEach(function (e) { var t; r !== (null == (t = o[e]) ? void 0 : t.mode) && (et(r, e) ? a[e] || (a[e] = !0, cr(e, r, 1)) : (n[e] = {mode: r}, i = !0, cr(e, r, 2))) }), n }, {}), i) && n.updateValues({consent: e}) } var r = null, a = {}; n.addChangeListener("consent", function (e) { b() && (r && (clearTimeout(r), r = null), r = setTimeout(function () { t(e), r = null }, 200)) }), b() && t(n.get("consent")) } var Nn, Tn, Ln, jn, Hn, Un, A, Rn, x, S, M, Bn, I, E, Vn, Kn, Yn, qn, N, Fn = { URI: { prefix: "{u}", compress: function (e) { if (null == e) return ""; var t = e, n = 6, r = function (e) { return Cn.charAt(e) }; if (null == t) return ""; for (var o, i, a, u, s = {}, c = {}, l = "", d = 2, f = 3, p = 2, v = [], g = 0, h = 0, m = 0; m < t.length; m += 1) if (a = t.charAt(m), Object.prototype.hasOwnProperty.call(s, a) || (s[a] = f++, c[a] = !0), u = l + a, Object.prototype.hasOwnProperty.call(s, u)) l = u; else { if (Object.prototype.hasOwnProperty.call(c, l)) { if (l.charCodeAt(0) < 256) { for (o = 0; o < p; o++) g <<= 1, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++; for (i = l.charCodeAt(0), o = 0; o < 8; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1 } else { for (i = 1, o = 0; o < p; o++) g = g << 1 | i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i = 0; for (i = l.charCodeAt(0), o = 0; o < 16; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1 } 0 == --d && (d = Math.pow(2, p), p++), delete c[l] } else for (i = s[l], o = 0; o < p; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1; 0 == --d && (d = Math.pow(2, p), p++), s[u] = f++, l = String(a) } if ("" !== l) { if (Object.prototype.hasOwnProperty.call(c, l)) { if (l.charCodeAt(0) < 256) { for (o = 0; o < p; o++) g <<= 1, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++; for (i = l.charCodeAt(0), o = 0; o < 8; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1 } else { for (i = 1, o = 0; o < p; o++) g = g << 1 | i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i = 0; for (i = l.charCodeAt(0), o = 0; o < 16; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1 } 0 == --d && (d = Math.pow(2, p), p++), delete c[l] } else for (i = s[l], o = 0; o < p; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1; 0 == --d && (d = Math.pow(2, p), p++) } for (i = 2, o = 0; o < p; o++) g = g << 1 | 1 & i, h == n - 1 ? (h = 0, v.push(r(g)), g = 0) : h++, i >>= 1; for (; ;) { if (g <<= 1, h == n - 1) { v.push(r(g)); break } h++ } return v.join("") }, decompress: function (r) { if (null == r) return ""; if ("" == r) return null; for (var e, t, n, o, i, a, u = (r = r.replace(/ /g, "+")).length, s = 32, c = function (e) { var t = Cn, e = r.charAt(e); if (!kn[t]) { kn[t] = {}; for (var n = 0; n < t.length; n++) kn[t][t.charAt(n)] = n } return kn[t][e] }, l = [], d = 4, f = 4, p = 3, v = "", g = [], h = { val: c(0), position: s, index: 1 }, m = 0; m < 3; m += 1) l[m] = m; for (t = 0, o = Math.pow(2, 2), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; switch (t) { case 0: for (t = 0, o = Math.pow(2, 8), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; a = wn(t); break; case 1: for (t = 0, o = Math.pow(2, 16), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; a = wn(t); break; case 2: return "" } for (e = l[3] = a, g.push(a); ;) { if (u < h.index) return ""; for (t = 0, o = Math.pow(2, p), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; switch (a = t) { case 0: for (t = 0, o = Math.pow(2, 8), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; l[f++] = wn(t), a = f - 1, d--; break; case 1: for (t = 0, o = Math.pow(2, 16), i = 1; i != o;) n = h.val & h.position, h.position >>= 1, 0 == h.position && (h.position = s, h.val = c(h.index++)), t |= (0 < n ? 1 : 0) * i, i <<= 1; l[f++] = wn(t), a = f - 1, d--; break; case 2: return g.join("") } if (0 == d && (d = Math.pow(2, p), p++), l[a]) v = l[a]; else { if (a !== f) return null; v = e + e.charAt(0) } g.push(v), l[f++] = e + v.charAt(0), e = v, 0 == --d && (d = Math.pow(2, p), p++) } } } }, Wn = d(Fn).reduce(function (e, t) { return e[Fn[t].prefix] = Fn[t], e }, {}), Te = { cookieName: "_pctx", consent: bn, encode: function (e, t) { void 0 === t && (t = un.URI); e = JSON.stringify(e), e = Fn[t].compress(e); return Fn[t].prefix + e }, decode: function (e) { e = function (e) { var t = e.slice(0, 3), e = e.slice(3); if (!Wn[t]) return null; t = Wn[t].decompress(e); if (!t) return null; try { return JSON.parse(t) } catch (e) { return null } }(e || ""); return a(e) ? e : null } }, Jn = { _pprv: on("_pprv", bn, !!(null == (Ie = null == (Ie = g().cookies) ? void 0 : Ie._pprv) || !Ie.jsonOnly)), _pcid: on("_pcid", _n), _pcus: on("_pcus", yn, !0), _pctx: Te }, Pe = d(Nn = Jn).reduce(function (e, t) { return e[t] = an(Nn[t]), e }, {}), zn = function () { var a = null, u = null; return { register: function (e) { return a = _(_({}, e.fields), a), u = _(_({}, e.cookieByName), u) }, get wrappers() { return u }, get: function () { var t = {}; return u && d(u).forEach(function (e) { t = _(_({}, t), u[e].get()) }), t }, set: function (r, o) { void 0 === o && (o = null); var i = {}; d(r).forEach(function (e) { var t = r[e], n = null == a ? void 0 : a[e]; n && (i[n] || (i[n] = { wrapper: null == u ? void 0 : u[n], data: {}, update: !1, remove: !0 }), i[n].data[e] = t, i[n].remove = i[n].remove && null === t, o && (i[n].update || t === o[e]) || (i[n].update = !0)) }), d(i).forEach(function (e) { var t = i[e], n = t.wrapper, r = t.update, t = t.remove; t && n.remove(), r && !t && n.set(i[e].data) }) } } }, Xn = "__pctx_connection__", $n = "uvm42pas28m", Gn = {}, Zn = (void 0 === Tn && (Tn = !1), function (e, t) { var n = Pn(); try { Object.defineProperty(window, Xn, { configurable: Tn, set: function (e) { var t = e(); t === $n ? e(n) : "mrlqf5trgho" === t && (n = Pn()) } }) } catch (e) { } return window[Xn] = function (e) { return e && (n = e), $n }, n(e, t) }), Qn = function (e) { return e.includes("*") }, er = function (e, t) { return [new RegExp("^" + e.replace(/\*/g, ".*") + "$"), t] }, tr = function (e, t) { for (var n = 0, r = t; n < r.length; n++) { var o = r[n]; if (o[0].test(e)) return o[1] } return null }, nr = function (c) { function l(e) { return t[e] || tr(e, n) || yn } var t = Object.assign({}, c.items), n = On(t); return function (e, t) { var o, i, n, r = g().requireConsent, a = !p(e), u = a ? [e] : e, e = (n = t || c.getConsent()) ? n.mode === Ke ? (o = function (e, t, n) { t = t && Ot(t, n); if (!t) return null; for (var r = [], o = {}, i = 0, a = t.patches; i < a.length; i++) { var u = a[i], s = u.action, c = u.with, u = u.item; u.type === e && (o[u.key] = s = { action: s, data: void 0 === c ? null : c }, Qn(u.key)) && r.push(er(u.key, s)) } return { source: t.source, getModifier: function (e) { return o[e] || tr(e, r) } } }(c.type, n.modifier, c.log)) ? (i = o.source, u.map(function (e) { var t = o.getModifier(e), n = (n = null == t ? void 0 : t.action, r = null == t ? void 0 : t.data, "obfuscate" === n ? r : null), r = { name: e, allowed: null != t && t.action ? function (e) { switch (e) { case"include": return !0; case"exclude": return !1; case"obfuscate": return !0 } }(t.action) : An(i, l(e)) }; return null !== n && (r.data = n), r })) : s() : u.map(function (e) { return {name: e, allowed: An(n.mode, l(e))} }) : s(); function s() { return u.map(function (e) { return {name: e, allowed: !r} }) } return a ? e[0] : e } }, Et = Object.freeze({ __proto__: null, createCheckConsentWrapper: nr, createMask: er, getByMask: tr, isMask: Qn, itemsToMask: On }), rr = (Ln = { pa_vid: function (e) { return Sn(Se(e || "", !0) || e) }, atuserid: function (e) { return Sn((null == (e = Se(e || "", !0)) ? void 0 : e.val) || "") } }, function (e) { for (var t = 0, n = e; t < n.length; t++) { var r = function (e) { try { var t = e.ls ? xn(e.ls) || null : (n = m.get(e), Ln[e] && n ? Ln[e](n) : n); if (t) return {value: t} } catch (e) { } var n }(n[t]); if ("object" === c(r)) return r.value } return null }), Nt = [{ls: "_cX_P"}, "cX_P"], or = {PA: {browserId: ["pa_vid", "atuserid"].concat(Nt)}, DMP: {browserId: Nt}}, ir = {browserId: {source: "DMP"}}, Tt = "@@Data-layer/", ar = Tt + "update_value", ur = Tt + "refresh_value", sr = function (e) { e = e, n = g(), t = 1 === (t = (null == (t = n.consent) ? void 0 : t.products) || []).length && "PA" === t[0], e = "opt-out" === (null == (e = null == e ? void 0 : e.PA) ? void 0 : e.mode); var t, n = !!n.requireConsent && t && e; return {_pprv: !g().requireConsent, _pctx: n, _pcid: n, _pcus: n} }, cr = function (e, t, n) { n = 1 === n ? "can not be" : "was"; console.warn('[DL]: Consent v2: the "'.concat(e, '" has a conflicted consent mode, ') + "mode ".concat(n, ' changed to "').concat(t, '"')) }, T = (Hn = function (e) { In(e), Dn(e), En(e) }, Lt = Lt = Pe, Rn = { fields: d(Un = jn = Ne).reduce(function (e, t) { var n = Un[t].cookieName; return null !== n && (e[t] = n), e }, {}), cookieByName: Lt }, x = Zn("data-layer", Rn), S = !1, M = new Map, Bn = new Set, I = new Map, E = function () { if (x) return x; throw new Error("DataLayer can't be connected") }, Vn = function (e) { var t = E().registeredCookiesWrapper; t && e(t) }, Kn = function (e) { Vn(function (t) { e.forEach(function (e) { e = t[e]; e && e.lazyActive() }) }) }, Yn = function () { function t(r) { return d(o).reduce(function (e, t) { var n = o[t]; return void 0 !== n[r] && (e[t] = n[r]), e }, {}) } var o = {}; return { add: function (e, t) { o[e] = t }, call: function () { var e; e = t("protect"), 0 < d(e).length && E().setProtectionData(e), e = t("protectUnsafe"), 0 < d(e).length && E().setProtectionDataUnsafe(e) } } }, qn = function (o, i) { return d(o).reduce(function (e, t) { var n = I.get(t), r = o[t]; return n && (e[t] = i ? i(n, r) : n.get(r)), e }, {}) }, N = function (e, t, n) { void 0 === n && (n = !1); var r, i = e, a = de(), u = (f(e) && ((r = {})[e] = t, i = r), Yn()), s = Yn(), i = d(i).reduce(function (e, t) { var n = i[t], r = I.get(t), o = t; return null != r && r.readonly || (r && r.cookieName && a.add(r.cookieName), r && n !== A[t] && (n === ur ? (e[t] = r.refresh(A[t], function (e) { s.add(o, e) }), e[t] !== A[t] && u.add(o, {protectUnsafe: !1})) : e[t] = n === ar ? r.update(A[t], function (e) { s.add(o, e) }) : r.set(n, A[t], function (e) { s.add(o, e) }))), e }, {}), e = (Kn(a.values()), u.call(), E().updateData(i)); return e && n && (t = d(e).reduce(function (e, t) { return _(_({}, e), ((e = {})[t] = !1, e)) }, {}), E().setProtectionDataUnsafe(t), E().updateData(i)), s.call(), e && qn(e) }, { init: function (e) { var a, u, o, i, s, c; void 0 === e && (e = {}), S || (x = x || Zn("data-layer", Rn), a = _(_({}, e), Mn()), u = a.cookieDefault, Vn(function (i) { d(i).forEach(function (e) { var t, n, r = i[e].cookieName, o = null == (o = a.cookies) ? void 0 : o[r], r = "fixed" === (null == (r = a.cookies) ? void 0 : r.storageMode); null != (n = (t = i[e]).setFixedMode) && n.call(t, r), (u || o) && i[e].setCookieOptions(_(_({}, u), o)) }) }), S = !0, d(jn).forEach(function (e) { var t = jn[e]; M.set(e, new Set), I.set(e, t) }), o = !1, i = E().getInitCookieData(), s = E().getCachedData(), c = Yn(), e = d(jn).reduce(function (e, t) { var n = t, r = jn[t]; return e[t] = (null == s ? void 0 : s[n]) || r.init(null == i ? void 0 : i[n], function (e) { c.add(n, e) }), null != s && s[n] || (o = !0), e }, {}), A = e, o && E().updateData(e), c.call(), E().onUpdateData(fr), null != Hn && Hn(dr())) }, set: vr, get: pr, update: function (e) { return gr(e) }, refresh: function () { var n, e; return !E().setProtectionData(((e = {})["@@Data-layer/refresh_locked_key"] = !0, e)) && (n = [], I.forEach(function (e, t) { return n.push(t) }), e = n.reduce(function (e, t) { return e[t] = ur, e }, {}), N(e), !0) }, protect: function (e, t) { return hr(e, t) }, addChangeListener: mr, removeChangeListener: function (t) { Bn.delete(t), M.forEach(function (e) { return e.delete(t) }) }, terminate: function () { null != x && x.terminate(), M.clear(), Bn.clear(), x = null, S = !1, A = {} }, updateMigration: function () { S && Dn(dr()) }, get isReady() { return S }, utils: { validateModifier: Ot, validateConsent: gt, checkConsent: Et, setConsent: function (e, t, n) { if (pr("consent"), e = ft(pr("purposes"), 0, e, t, n)) { if (e.error) return e.error; vr({consent: e.consent, purposes: e.purposes}) } return null }, getConsent: function () { var e = pr(["consent", "purposes"]), t = e.consent, e = e.purposes; return bt(t, e) }, notAcquiredConsent: b() ? d($e).reduce(function (e, t) { return e[t] = {mode: "not-acquired", products: $e[t]}, e }, {}) : null }, get cookies() { return lr() }, get cookieEnabled() { return lr() }, setUnsafe: function (e, t) { N(e, t, !0) }, protectUnsafe: function (e, t) { return hr(e, t, !0) }, updateUnsafe: function (e) { return gr(e, !0) }, setCookieEnabled: function (r) { Vn(function (n) { var e = d(r); e.length ? e.forEach(function (e) { var t = n[e]; t && t.setCookieEnabled(r[e]) }) : d(n).forEach(function (e) { n[e].setCookieEnabled(r) }) }) } }); function lr() { var e = null; return Vn(function (o) { e = d(o).reduce(function (e, t) { var n = o[t].cookieEnabled, r = o[t].fixedAt || null; return e[o[t].cookieName] = n ? {enabled: n, fixedAt: r} : null, e }, {}) }), e } function dr() { return {params: I, getConnection: E, addChangeListener: mr, get: pr, updateValues: N} } function fr(r) { var o = !1; d(r).forEach(function (e) { var t, n = I.get(e); n && (t = r[e], A[e] !== t) && (A[e] = t, o = !0, null != (e = M.get(e))) && e.forEach(function (e) { return e(n.get(t)) }) }), o && Bn.forEach(function (e) { return e(qn(A)) }) } function pr(e) { var n = de(), t = f(e), r = void 0 === e ? A : t ? ((r = {})[e] = A[e], r) : e.reduce(function (e, t) { return I.has(t) && (e[t] = A[t]), e }, {}); return r = qn(r, function (e, t) { return e.cookieName && n.add(e.cookieName), e.get(t) }), Kn(n.values()), t ? r[e] : r } function vr(e, t) { return N(e, t, !1) } function gr(e, t) { void 0 === t && (t = !1); var n = e; return p(e) || (n = [e]), N(n.reduce(function (e, t) { return e[t] = ar, e }, {}), void 0, t) } function hr(e, t, n) { var r, n = (n = void 0 === n ? !1 : n) ? E().setProtectionDataUnsafe : E().setProtectionData, o = e; return f(e) && ((r = {})[e] = t, o = r), n(o) } function mr(e, t) { var n; f(e) ? null != (n = M.get(e)) && n.add(t) : Bn.add(e) } function _r(t, n, r) { n.setProperty("event_collection_platform", "js"), n.setProperty("event_collection_version", n.getConfiguration("version")); var e, o = new Date, i = (n.setProperty("device_timestamp_utc", o.getTime()), n.setProperty("device_local_hour", o.getTime()), n.setProperty("device_hour", o.getHours()), "isManualPageRefresh"), a = "pageview_id", u = "_isNotFirstPageView", s = w(n.events); try { for (s.s(); !(e = s.n()).done;) { var c = e.value; "page.display" === c.name && (null === t.getConfiguration(i) && t.getConfiguration(u) && t.setConfiguration(i, !1), t.getConfiguration("enableAutomaticPageRefresh") && !1 === t.getConfiguration(i) && t.getConfiguration(u) && T.refresh(), t.getConfiguration(u) || t.setConfiguration(u, !0)), yr(a, n, c) && t._privacy.call("isPropAllowed", a) && (c.data[a] = T.get("pageViewId")) } } catch (e) { s.e(e) } finally { s.f() } try { var l, d = new Date(new Date(T.cookies._pcid.fixedAt[0]).setUTCHours(0, 0, 0, 0)).toISOString(), f = w(n.events); try { for (f.s(); !(l = f.n()).done;) { var p = l.value; yr("cookie_creation_date", n, p) && n.setProperty("cookie_creation_date", d) } } catch (e) { f.e(e) } finally { f.f() } } catch (e) { } var v, g = T.get("content"); for (v in g) if (Object.prototype.hasOwnProperty.call(g, v)) { var h, m = "createdAt" === v || "tags" === v ? { createdAt: "content_publication_date", tags: "tags_array" }[v] : "content_".concat(v).replace(/[\w]([A-Z])/g, function (e) { return e[0] + "_" + e[1] }).toLowerCase(), _ = w(n.events); try { for (_.s(); !(h = _.n()).done;) { var y = h.value; yr(m, n, y) && t._privacy.call("isPropAllowed", m) && (y.data[m] = g[v]) } } catch (e) { _.e(e) } finally { _.f() } } n.setProperty("has_access", T.get("userStatus")), n.setProperty("device_screen_width", window.screen.width), n.setProperty("device_screen_height", window.screen.height), n.setProperty("device_display_width", window.innerWidth || document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : ""), n.setProperty("device_display_height", window.innerHeight || document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : ""); var b, o = function (e, t) { var n, r = w(t); try { for (r.s(); !(n = r.n()).done;) { var o, i = n.value; if (-1 < e.indexOf(i)) return [(o = e.split(i))[0], o.slice(1).join(i)] } } catch (e) { r.e(e) } finally { r.f() } return ["", ""] }(window.navigator ? window.navigator.language || window.navigator.userLanguage : "", ["-", "_"]), o = (n.setProperty("browser_language", o[0]), n.setProperty("browser_language_local", o[1]), n.setProperty("previous_url", document.referrer || ""), document.title && n.setProperty("page_title_html", document.title), "true" === n.getConfiguration("addEventURL").toString()); !o && "withoutQS" !== n.getConfiguration("addEventURL") || n.setProperty("event_url_full", o ? window.location.href.split("#")[0] : "".concat(window.location.protocol, "//").concat(window.location.host).concat(window.location.pathname)); try { t.getConfiguration("allowHighEntropyClientHints") ? window.navigator.userAgentData.getHighEntropyValues(["architecture", "bitness", "brands", "mobile", "model", "platform", "platformVersion", "uaFullVersion", "fullVersionList"]).then(function (e) { wr(n, e) }).finally(function () { C(t, n, r) }) : (b = { brands: window.navigator.userAgentData.brands, platform: window.navigator.userAgentData.platform, mobile: window.navigator.userAgentData.mobile }, wr(n, b), C(t, n, r)) } catch (e) { C(t, n, r) } } function yr(e, t, n) { if (t.hasProperty(e) && t.properties[e].options.events) { t = t.properties[e].options.events; if (-1 < t.indexOf(n.name)) return; var r, o = w(t); try { for (o.s(); !(r = o.n()).done;) { var i = r.value; if ("*" === i.charAt(i.length - 1) && 0 === n.name.indexOf(i.substring(0, i.length - 1))) return } } catch (e) { o.e(e) } finally { o.f() } } return void 0 === n.data[e] } function br(e) { return void 0 !== e } function wr(e, t) { var n = [{metric: "brands", property: "ch_ua"}, { metric: "architecture", property: "ch_ua_arch" }, {metric: "bitness", property: "ch_ua_bitness"}, { metric: "fullVersionList", property: "ch_ua_full_version_list" }, {metric: "mobile", property: "ch_ua_mobile"}, { metric: "model", property: "ch_ua_model" }, {metric: "platform", property: "ch_ua_platform"}, { metric: "platformVersion", property: "ch_ua_platform_version" }, {metric: "uaFullVersion", property: "ch_ua_full_version"}]; if (br(t)) for (var r = 0; r < n.length; r++) br(t[n[r].metric]) && e.setProperty(n[r].property, t[n[r].metric]) } function Cr(t, n, r) { function e(e) { C(t, n, r, e) } n.options && n.options.onBeforeBuild ? n.options.onBeforeBuild(t, n, e) : e() } function kr(t, n, r) { function e(e) { C(t, n, r, e) } n.options && n.options.onBeforeSend ? n.options.onBeforeSend(t, n, e) : e() } function Pr(e, t, n) { e._privacy.call("filterEvents", t.events), e._privacy.call("filterProps", t.properties); for (var r = t.events, o = 0; o < r.length; o++) { e._privacy.call("filterProps", r[o].data, r[o].name); var i, a = e._privacy.call("getModeMetadata") || {}; for (i in a) Object.prototype.hasOwnProperty.call(a, i) && t.setProperty(i, a[i]) } C(e, t, n) } function Or(e, t, n) { var r, o = []; for (r in t.properties) if (Object.prototype.hasOwnProperty.call(t.properties, r)) { var i, a = !1, u = w(t.events); try { for (u.s(); !(i = u.n()).done;) { var s = i.value, c = !1, l = t.properties[r].options.events; if (l) if (-1 < l.indexOf(s.name)) c = !0; else { var d, f = w(l); try { for (f.s(); !(d = f.n()).done;) { var p = d.value; if ("*" === p.charAt(p.length - 1) && 0 === s.name.indexOf(p.substring(0, p.length - 1))) { c = !0; break } } } catch (e) { f.e(e) } finally { f.f() } } else c = !0; c && (s.data[r] = t.properties[r].value, a = !0) } } catch (e) { u.e(e) } finally { u.f() } a && !t.properties[r].options.persistent && o.push(r) } for (var v = 0, g = o; v < g.length; v++) delete e._properties[g[v]]; if (!t.getConfiguration("sendEmptyProperties")) { var h, m = w(t.events); try { for (m.s(); !(h = m.n()).done;) { var _, y = h.value; for (_ in y.data) !Object.prototype.hasOwnProperty.call(y.data, _) || "" !== y.data[_] && void 0 !== y.data[_] || delete y.data[_] } } catch (e) { m.e(e) } finally { m.f() } } C(e, t, n) } function Ar(e, t, n) { (e._privacy.call("getMode") !== e._privacy.modeEnum.OPTOUT || e._privacy.call("getMode") === e._privacy.modeEnum.OPTOUT && t.getConfiguration("sendEventWhenOptout")) && 0 < t.build.data.events.length && B.post(t.build.url, JSON.stringify(t.build.data)), C(e, t, n) } function xr(n, r, o) { void 0 !== r.properties.user_id ? C(n, r, o) : n.getUser(function (e) { var t; null !== e && (r.setProperty("user_id", e.id, t = {persistent: !0}), r.setProperty("user_category", e.category, t), r.setProperty("user_recognition", !0, t)), C(n, r, o) }) } function Sr(n, r, o) { n._storage.getItem(r.getConfiguration("storageVisitor"), function (e) { var t; r.getConfiguration("isVisitorClientSide") && (r.visitorId = r.getConfiguration("visitorId") || T.get("browserId"), r.getConfiguration("isLegacyPrivacy") || "opt-out" !== n.consent.getMode() || (r.visitorId = "OPT-OUT"), t = "OPT-OUT" !== r.visitorId && "no-consent" !== r.visitorId && "no-storage" !== r.visitorId && r.visitorId !== r.getConfiguration("visitorId"), r.visitorId !== T.get("browserId")) && t && (r.visitorId = r.visitorId + "-NO"), C(n, r, o) }) } function Dr(o, e, t) { function n(e) { null != (e = i(Lr(t.dataLayer, t.items, o.getNames), e)) && e.forEach(function (e) { e.allowed ? e.data && o.set(e.name, e.data) : o.remove(e.name) }) } var r = Er(t), i = Tr(t.dataLayer, {items: t.items, type: e, getConsent: r}); return e = void 0 === t.checkConsentOnInit && t.enableAutoRemove, t.enableAutoRemove && Nr(t, n), e && n(r()), Object.assign({}, o, { set: function (e, t, n) { var r = i(e); null != r && r.allowed && (r = null != (r = r.data) ? r : t, o.set.apply(null, n ? [e, r, n] : [e, r])) }, check: i }) } function Mr(e, t) { return {check: Tr(t.dataLayer, {items: t.items, type: e, getConsent: Er(t)})} } var Ir = function (o) { this.setItem = function (e, t, n, r) { e = "".concat(e, "=").concat(o.getConfiguration("encodeStorageBase64") ? V.base64.encode(JSON.stringify(t)) : encodeURIComponent(JSON.stringify(t))), e = (e = (e = (e = (e += ";path=".concat(o.getConfiguration("cookiePath"))) + ";domain=".concat(o.getConfiguration("cookieDomain"))) + (o.getConfiguration("cookieSecure") ? ";secure" : "")) + ";samesite=".concat(o.getConfiguration("cookieSameSite"))) + (n ? ";expires=".concat(n.toUTCString()) : ""); document.cookie = e, r && r() }, this.getItem = function (t, e) { var n = null, t = new RegExp("(?:^| )".concat(t, "=([^;]+)")).exec(document.cookie) || null; if (t) try { n = JSON.parse(decodeURIComponent(t[1])) } catch (e) { n = JSON.parse(V.base64.decode(t[1])) } e && e(n) }, this.deleteItem = function (e, t) { var n = new Date; n.setTime(n.getTime() - 1e3), this.setItem(e, "", n, t) } }, Er = function (t) { return function () { var e = t.dataLayer.get("consent"); return e && e[t.productName] || null } }, Nr = function (t, n) { function e(e) { (e = (null == e ? void 0 : e[t.productName]) || null) !== r && n(r = e) } var r = null; return t.dataLayer.addChangeListener("consent", e), function () { t.dataLayer.removeChangeListener(e) } }, Tr = function (e, t) { return e.utils.checkConsent.createCheckConsentWrapper(t) }, Lr = function (e, t, n) { var r = e.utils.checkConsent, o = r.itemsToMask(t), i = Object.keys(t).filter(function (e) { return !r.isMask(e) }); return n().filter(function (e) { return i.includes(e) || r.getByMask(e, o) }) }, jr = { createLocalStorage: function (e) { t = e.dataLayer, o = ue.__protected__.ttlName, r = Tr((t = { dataLayer: t, productName: "DL" }).dataLayer, { items: ((n = {})[o] = "mandatory", n), type: "localStorage", getConsent: Er(t) }), i = function () { var e = r(o); return e.allowed && !e.data }, a = !0, Nr(t, s), s(); var t, n, r, o, i, a, u = function () { return a }; function s() { (a = i()) || ue.remove(o) } var c = Dr(ue, "localStorage", e); return Object.assign({}, c, { set: function (e, t, n) { var r = n; return null != n && n.expires && !u() && delete (r = Object.assign({}, n)).expires, c.set(e, t, r) } }) }, createProperty: function (e) { return Mr("property", e) }, createCookie: function (a) { function e(e) { null != (e = i(Lr(a.dataLayer, l, m.getNames), e)) && e.forEach(function (e) { function t() { return s[e.name] || u.getByMask(e.name, c) || r } e.allowed ? e.data && m.set(e.name, e.data, t()) : m.remove(e.name, t()) }) } var t, u = a.dataLayer.utils.checkConsent, n = Er(a), s = {}, c = [], l = {}, r = {}, i = (Object.keys(a.items).forEach(function (e) { var t, n, r, o, i = a.items[e]; i.type ? (t = i.type, n = i.domain, r = i.path, o = {}, l[e] = t, n && (o.domain = n), r && (o.path = r), u.isMask(e) ? c.push(u.createMask(e, o)) : s[e] = o) : l[e] = i }), Tr(a.dataLayer, {items: l, type: "cookie", getConsent: n})); t = !(void 0 !== a.checkConsentOnInit || !a.enableAutoRemove), a.enableAutoRemove && (r = a.enableAutoRemove, Nr(a, e)), t && e(n()); return Object.assign({}, m, { check: i, set: function (e, t, n, r) { var o = i(e); null != o && o.allowed && m.set(e, null != (e = o.data) ? e : t, n, r) } }) }, createSessionStorage: function (e) { return Dr(ke, "sessionStorage", e) }, createEvent: function (e) { return Mr("event", e) } }, Hr = {"*": "optional", pa_vid: "mandatory", pa_privacy: "mandatory", atuserid: "essential"}, Ur = { "click.exit": "mandatory", "click.navigation": "mandatory", "click.download": "mandatory", "click.action": "mandatory", "page.display": "mandatory" }, Rr = { "*": "optional", connection_type: "mandatory", device_timestamp_utc: "mandatory", visitor_privacy_consent: "mandatory", visitor_privacy_mode: "mandatory", ch_ua: "mandatory", ch_ua_arch: "mandatory", ch_ua_bitness: "mandatory", ch_ua_full_version: "mandatory", ch_ua_full_version_list: "mandatory", ch_ua_mobile: "mandatory", ch_ua_model: "mandatory", ch_ua_platform: "mandatory", ch_ua_platform_version: "mandatory", app_crash: "essential", app_crash_class: "essential", app_crash_screen: "essential", app_version: "essential", browser: "essential", browser_cookie_acceptance: "essential", browser_group: "essential", browser_version: "essential", click: "essential", click_chapter1: "essential", click_chapter2: "essential", click_chapter3: "essential", click_full_name: "essential", connection_monitor: "essential", connection_organisation: "essential", cookie_creation_date: "essential", date: "essential", date_day: "essential", date_daynumber: "essential", date_month: "essential", date_monthnumber: "essential", date_week: "essential", date_year: "essential", date_yearofweek: "essential", device_brand: "essential", device_display_height: "essential", device_display_width: "essential", device_name: "essential", device_name_tech: "essential", device_screen_diagonal: "essential", device_screen_height: "essential", device_screen_width: "essential", device_type: "essential", event_collection_platform: "essential", event_collection_version: "essential", event_hour: "essential", event_id: "essential", event_minute: "essential", event_position: "essential", event_second: "essential", event_time: "essential", event_time_utc: "essential", event_url: "essential", event_url_domain: "essential", event_url_full: "essential", exclusion_cause: "essential", exclusion_type: "essential", geo_city: "essential", geo_continent: "essential", geo_country: "essential", geo_metro: "essential", geo_region: "essential", goal_type: "essential", hit_time_utc: "essential", os: "essential", os_group: "essential", os_version: "essential", os_version_name: "essential", page: "essential", page_chapter1: "essential", page_chapter2: "essential", page_chapter3: "essential", page_duration: "essential", page_full_name: "essential", page_position: "essential", page_title_html: "essential", page_url: "essential", pageview_id: "essential", previous_url: "essential", privacy_status: "essential", site: "essential", site_env: "essential", site_id: "essential", site_platform: "essential", src: "essential", src_detail: "essential", src_direct_access: "essential", src_organic: "essential", src_organic_detail: "essential", src_portal_domain: "essential", src_portal_site: "essential", src_portal_site_id: "essential", src_portal_url: "essential", src_referrer_site_domain: "essential", src_referrer_site_url: "essential", src_referrer_url: "essential", src_se: "essential", src_se_category: "essential", src_se_country: "essential", src_type: "essential", src_url: "essential", src_url_domain: "essential", src_webmail: "essential" }; function Br(e, t) { var n; return n = t, window.pdl && window.pdl.consent_items && window.pdl.consent_items.PA && window.pdl.consent_items.PA[n] && Object.assign(e, window.pdl.consent_items.PA[t]), e } function Vr(o) { this.storageKeys = ["pa_vid", "pa_user", "pa_privacy", "atuserid"], this.propertyConsent = {}, this.eventConsent = {}, this.storageConsent = {}, this.consentItems = { propertyItems: {}, eventItems: {}, cookieItems: {} }, this.modeMetadata = { "opt-in": {visitor_privacy_consent: !0, visitor_privacy_mode: "optin"}, "opt-out": { visitor_privacy_consent: !1, visitor_privacy_mode: !0 === o.getConfiguration("enableExtendedOptout") ? "extended-optout" : "optout" }, essential: {visitor_privacy_consent: !1, visitor_privacy_mode: "exempt"}, custom: {visitor_privacy_consent: !1, visitor_privacy_mode: "custom"} }, this.init = function () { this.consentItems = { propertyItems: Br(Rr, "properties"), eventItems: Br(Ur, "events"), cookieItems: Br(Hr, "storages") }, this.propertyConsent = jr.createProperty({ dataLayer: T, productName: "PA", items: this.consentItems.propertyItems }), this.eventConsent = jr.createEvent({ dataLayer: T, productName: "PA", items: this.consentItems.eventItems }), this.storageConsent = jr.createCookie({ dataLayer: T, productName: "PA", items: this.consentItems.cookieItems }), o.getConfiguration("isLegacyPrivacy") || (this.initMode(), this.filterKeys()) }, this.initMode = function () { null === T.get("consent") && (window.pdl.consent && window.pdl.consent.defaultPreset ? T.set("consent", 0) : this.setMode("opt-in")) }, this.setMode = function (e) { T.set("consent", {PA: {mode: e}}), this.filterKeys() }, this.setPresets = function (e) { T.set("consent", e), this.filterKeys() }, this.getMode = function () { var e = "opt-in", t = T.get("consent"); return e = t && t.PA && t.PA.mode ? T.get("consent").PA.mode : e }, this.setCustomModeMetadata = function (e, t) { this.modeMetadata.custom.visitor_privacy_mode = t || "custom", this.modeMetadata.custom.visitor_privacy_consent = e }, this.getModeMetadata = function () { return this.modeMetadata[this.getMode()] || {} }, this.getConsentItems = function () { return this.consentItems }, this.isPropAllowed = function (e) { return !0 === o.getConfiguration("enableExtendedOptout") && "opt-out" === this.getMode() || this.propertyConsent.check(e).allowed }.bind(this), this.isEventAllowed = function (e) { return !0 === o.getConfiguration("enableExtendedOptout") && "opt-out" === this.getMode() || this.eventConsent.check(e).allowed }.bind(this), this.isKeyAllowed = function (e) { return this.storageConsent.check(e).allowed }.bind(this), this.filterProps = function (e) { for (var t in e) Object.prototype.hasOwnProperty.call(e, t) && !this.isPropAllowed(t) && delete e[t] }, this.filterEvents = function (e) { for (var t = e.length - 1; 0 <= t; t--) this.isEventAllowed(e[t].name) || e.splice(t, 1) }, this.filterKeys = function () { var e, t = w(this.storageKeys); try { for (t.s(); !(e = t.n()).done;) { var n = e.value; this.isKeyAllowed(n) || o._storage.deleteItem(n) } } catch (e) { t.e(e) } finally { t.f() } }, this.setItem = function (e, t, n, r) { this.isKeyAllowed(e) ? o._storage.setItem(e, t, n, r) : r && r() }, this.dl = T, this.init() } function Kr(n, e, t, r) { var o, i = t ? null : n, a = e || [], u = !1, s = !1, c = !1; if (0 < a.length) { for (var l = 0; l < a.length; l++) d(a[l], i); f() } function d(e, t) { try { (function e(t, n, r, o) { var i = t[n[0]]; return void 0 === i || (1 === n.length ? (i.apply(o || t, r), !1) : e(i, n.slice(1), r, o)) })(n, e[0].split("."), e.slice(1), t) ? s = !0 : u = !0 } catch (e) { s = !0 } } function f() { s && u && !c && (console.error("Piano Analytics SDK - window.".concat(r, ' is used for Piano Analytics integration and somewhere else. Please check "queueVarName" configuration if needed.')), c = !0) } t && (o = window[r].push.bind(window[r]), window[r].push = function (e) { d(e), f(), o(e) }) } function Yr(o) { function n(e, t, n, r) { return n = s(t[n].events[e], r), t = s(t["*"].events[e], r), n || t } function r(e, t, n, r, o) { var i, o = o ? (i = c(t[n].properties, e, r, o), c(t["*"].properties, e, r, o)) : (i = l(t[n].properties, e, r), l(t["*"].properties, e, r)); return i || o } function i(e, t, n, r) { return n = d(t[n].storage, e, r), t = d(t["*"].storage, e, r), n || t } var a = o.getConfiguration("privacy"), u = (this.currentMode = "", this.modes = a.modes, this._storageKeys = Object.assign(a.legacyKeys, a.storageKeys), this.init = function () { o.getConfiguration("isLegacyPrivacy") && (window._pac = window._pac || {privacy: []}, Kr(this, window._pac.privacy), o._storage.getItem(a.storageKey, function (e) { this.setMode(e && this.modes[e] ? e : o.getConfiguration("privacyDefaultMode")) }.bind(this))) }, this.setMode = function (t) { t !== this.currentMode && this.modes[t] && (this.currentMode = t, o._storage.getItem(a.storageKey, function (e) { "optout" === t || "no-consent" === t || "no-storage" === t ? o.setConfiguration("visitorId", this.modes[t].visitorId) : "OPT-OUT" !== o.getConfiguration("visitorId") && "no-consent" !== o.getConfiguration("visitorId") && "no-storage" !== o.getConfiguration("visitorId") || o.cfg.deleteProperty("visitorId"), this.filterProps(o._properties), this.filterKeys(), e !== t && ((e = new Date).setTime(e.getTime() + 24 * o.getConfiguration("storageLifetimePrivacy") * 60 * 60 * 1e3), this.setItem(a.storageKey, t, e)) }.bind(this))) }, this.createMode = function (e, t) { var n; this.modes[e] || ((n = D(this.modes.exempt)).name = e, n.properties.include.visitor_privacy_mode = e, n.properties.include.visitor_privacy_consent = t, this.modes[e] = n) }, this.getMode = function () { return this.currentMode }, function (e, t, n, r, o, i) { var a = ["*"], u = ["*"], s = "properties", c = r ? "forbidden" : "allowed"; t && (a = "string" == typeof t ? [t] : t), n && (u = "string" == typeof n ? [n] : n), o && (s = "storage"), i && (s = "events"); for (var l = 0; l < a.length; l++) if (void 0 !== this.modes[a[l]]) for (var d = this.modes[a[l]], f = 0; f < u.length; f++) { var p = d[s][c]; void 0 !== p[u[f]] || o || i || (p[u[f]] = {}); for (var v = 0; v < e.length; v++) o || i ? p[e[v]] = !0 : p[u[f]][e[v]] = !0 } }.bind(this)), s = (this.include = { properties: function (e, t, n) { u(e, t, n) }, property: function (e, t, n) { u([e], t, n) }, storageKeys: function (e, t) { u(e, t, null, !1, !0) }, storageKey: function (e, t) { u([e], t, null, !1, !0) }, events: function (e, t) { u(e, t, null, !1, !1, !0) }, event: function (e, t) { u([e], t, null, !1, !1, !0) } }, this.exclude = { properties: function (e, t, n) { u(e, t, n, !0) }, property: function (e, t, n) { u([e], t, n, !0) }, storageKeys: function (e, t) { u(e, t, null, !0, !0) }, storageKey: function (e, t) { u([e], t, null, !0, !0) }, events: function (e, t) { u(e, t, null, !0, !1, !0) }, event: function (e, t) { u([e], t, null, !0, !1, !0) } }, function (e, t) { if (e[t]) return !0; for (var n in e) if (Object.prototype.hasOwnProperty.call(e, n) && "*" === n.charAt(n.length - 1) && 0 === t.indexOf(n.substring(0, n.length - 1))) return !0; return !1 }), c = (this.isEventAllowed = function (e) { var t = n("forbidden", this.modes, this.currentMode, e), e = n("allowed", this.modes, this.currentMode, e); return !t && e }, function (e, t, n, r) { var o, i = e[t]; if (i[r] && i[r][n] || i["*"][n]) return !0; for (o in i) if (Object.prototype.hasOwnProperty.call(i, o) && "*" === o.charAt(o.length - 1) && 0 === r.indexOf(o.substring(0, o.length - 1)) || o === r) for (var a in i[o]) if (Object.prototype.hasOwnProperty.call(i[o], a) && ("*" === a.charAt(a.length - 1) && 0 === n.indexOf(a.substring(0, a.length - 1)) || n === a)) return !0; return !1 }), l = function (e, t, n) { if ("forbidden" === t && e[t]["*"][n]) return !0; for (var r in e[t]) if (Object.prototype.hasOwnProperty.call(e[t], r)) { if (e[t][r][n]) return !0; for (var o in e[t][r]) if ("*" === o.charAt(o.length - 1) && 0 === n.indexOf(o.substring(0, o.length - 1))) return !0 } return !1 }, d = (this.isPropAllowed = function (e, t) { var n = r("forbidden", this.modes, this.currentMode, e, t), e = r("allowed", this.modes, this.currentMode, e, t); return !n && e }, function (e, t, n) { var r, o = e[t]; if (o[n]) return !0; for (r in o) if (Object.prototype.hasOwnProperty.call(o, r) && "*" === r.charAt(r.length - 1) && 0 === n.indexOf(r.substring(0, r.length - 1))) return !0; return !1 }); this.isKeyAllowed = function (e) { var t = i("forbidden", this.modes, this.currentMode, e), e = i("allowed", this.modes, this.currentMode, e); return !t && e }, this.setItem = function (e, t, n, r) { this.isKeyAllowed(e) ? o._storage.setItem(e, t, n, r) : r && r() }, this.filterProps = function (e, t) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && !this.isPropAllowed(n, t || void 0) && delete e[n] }, this.filterKeys = function () { for (var e in this._storageKeys) Object.prototype.hasOwnProperty.call(this._storageKeys, e) && !this.isKeyAllowed(e) && o._storage.deleteItem(e) }, this.filterEvents = function (e) { for (var t = e.length - 1; 0 <= t; t--) this.isEventAllowed(e[t].name) || e.splice(t, 1) }, this.getModeMetadata = function () { return this.modes[this.getMode()].properties.include }, this.init() } function qr(i) { this.modeEnum = {OPTOUT: i.getConfiguration("isLegacyPrivacy") ? "optout" : "opt-out"}, this.call = function (e) { for (var t = i.getConfiguration("isLegacyPrivacy") ? "privacy" : "consent", n = arguments.length, r = new Array(1 < n ? n - 1 : 0), o = 1; o < n; o++) r[o - 1] = arguments[o]; return i[t][e].apply(i[t], r) } } function Fr(o) { var i = o.getConfiguration("storageUser"); this.setUser = function (e, t, n) { var r = {id: e, category: t}; o.setProperties({ user_id: e, user_category: t, user_recognition: !1 }, {persistent: !0}), !1 !== n && ((e = new Date).setTime(e.getTime() + 24 * o.getConfiguration("storageLifetimeUser") * 60 * 60 * 1e3), o._privacy.call("setItem", i, r, e)) }, this.getUser = function (n) { o._storage.getItem(i, function (e) { var t = e; !e && o._properties.user_id && (t = { id: o._properties.user_id.value, category: o._properties.user_category.value }), n && n(t) }) }, this.deleteUser = function (e) { o.deleteProperty("user_id"), o.deleteProperty("user_category"), o.deleteProperty("user_recognition"), o._storage.deleteItem(i, function () { e && e() }) } } function Wr(w) { function C() { this.debugError = { trigger: "AvInsights:Media:setContentValues:Error", level: "ERROR", messageObject: "Not an object" }, this.processHeartbeatValue = function (e, t) { e = parseInt(e, 10); return e ? Math.max(e, t) : 0 }, this.value2Number = function (e) { var t = 0; return isNaN(Number(e)) || (t = Number(e)), Math.max(t, 0) } } var k = { minHeartbeat: w.getConfiguration("minHeartbeat"), minBufferingHeartbeat: w.getConfiguration("minBufferingHeartbeat") }, P = "_ATVALUE", O = "_ATPREFIX"; function A(e, t) { var n, e = e.length < 2 || ":" !== e[1] ? (n = "", e) : e.length < 4 || ":" !== e[3] ? (n = e.substring(0, 1), e.substring(2, e.length)) : (n = e.substring(0, 3), e.substring(4, e.length)); return t && (n = n.toLowerCase(), e = e.toLowerCase()), {prefix: n, key: e} } function x(e) { return null !== e && "object" === c(e) && !(e instanceof Array) } function S(e, t, n, r, o) { var i, a, u, s = "", c = "", l = "", d = 0; for (u in e) if (Object.prototype.hasOwnProperty.call(e, u)) if (s = (i = A(u, o)).prefix || r || "", c = (t ? t + "_" : "") + i.key, x(e[u])) S(e[u], c, n, s, o); else { for (a = c.split("_"), l = "", d = 0; d < a.length; d++) s = (i = A(a[d], o)).prefix || s, l += i.key + (d < a.length - 1 ? "_" : ""); n[c = l || c] = n[c] || {}, n[c][P] = e[u], n[c][O] = s } } w.avInsights = {}, w.avInsights.Media = function (e, t, n) { function r(e) { e ? f.delayBufferingConfiguration = D(f.delayBufferingConfigurationBackup) : f.delayConfiguration = D(f.delayConfigurationBackup) } function o(e, t) { if (t) { h(e); var n, r = {}; for (n in x(t) ? r = t : isNaN(t) ? r = JSON.parse(t) : r[0] = t, r) Object.prototype.hasOwnProperty.call(r, n) && (e ? f.delayBufferingConfiguration.push({ delay: d.processHeartbeatValue(n, 0), number: 0, timeout: -1, refresh: d.processHeartbeatValue(r[n], k.minBufferingHeartbeat) }) : f.delayConfiguration.push({ delay: d.processHeartbeatValue(n, 0), number: 0, timeout: -1, refresh: d.processHeartbeatValue(r[n], k.minHeartbeat) })); m(e), g(e) } } function i(e, t, n, r) { var o = D(v), t = (o.av_session_id = {}, o.av_session_id[P] = f.sessionId, o.av_session_id[O] = "", t && (y(o), f.previousEvent = e), x(r) && S(r, null, o, null, !0), b(o)); w.sendEvent(e, t, n) } function a() { var e = this, t = 0, n = 0; e.getEventDuration = function () { var e = (new Date).getTime() - t - n; return n += e, e }, e.initBaseTime = function () { 0 === t && (t = (new Date).getTime()) }, e.resetProperties = function () { n = t = 0 }, e.initHeartbeatTimer = function (e, t) { var n = t ? f.delayBufferingConfiguration : f.delayConfiguration; 0 < n.length && (_(t), clearTimeout(n[0].timeout), n[0].timeout = setTimeout(function () { 0 === n[0].number && n.splice(0, 1), e && e() }, 1e3 * n[0].refresh)) }, e.stopHeartbeatTimer = function (e) { for (var t = e ? f.delayBufferingConfiguration : f.delayConfiguration, n = 0; n < t.length; n++) clearTimeout(t[n].timeout), t[n].timeout = -1 } } function u(e, t, n, r, o) { p.initBaseTime(), f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e ? f.previousCursorPosition + Math.floor(f.playbackSpeed * f.eventDuration) : n, t && p.initHeartbeatTimer(function () { u(!0, !0) }, !1), i("av.heartbeat", !0, r, o) } function s(e, t, n) { p.initBaseTime(), f.eventDuration = p.getEventDuration(), e && p.initHeartbeatTimer(function () { s(!0) }, !0), i("av.buffer.heartbeat", !0, t, n) } function c(e, t, n) { p.initBaseTime(), f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, e && p.initHeartbeatTimer(function () { c(!0) }, !0), i("av.rebuffer.heartbeat", !0, t, n) } var l = this, d = new C, f = null, p = null, v = null, g = function (e) { e ? f.delayBufferingConfigurationBackup = D(f.delayBufferingConfiguration) : f.delayConfigurationBackup = D(f.delayConfiguration) }, h = function (e) { e ? (f.delayBufferingConfiguration = [], f.delayBufferingConfigurationBackup = []) : (f.delayConfiguration = [], f.delayConfigurationBackup = []) }, m = function (e) { (e ? f.delayBufferingConfiguration : f.delayConfiguration).sort(function (e, t) { return e.delay < t.delay ? -1 : e.delay > t.delay ? 1 : 0 }) }, _ = function (e) { var t, e = e ? f.delayBufferingConfiguration : f.delayConfiguration; void 0 === (t = void 0 !== e[1] ? e[1].delay : t) ? e[0].number = 1 : 0 < e[0].number ? e[0].number-- : "number" == typeof t && (e[0].number = Math.floor(60 * (t - e[0].delay) / e[0].refresh) - 1) }, y = function (e) { e.av_previous_position = {}, e.av_previous_position[P] = f.previousCursorPosition, e.av_previous_position[O] = "", e.av_position = {}, e.av_position[P] = f.currentCursorPosition, e.av_position[O] = "", e.av_duration = {}, e.av_duration[P] = f.eventDuration, e.av_duration[O] = "", e.av_previous_event = {}, e.av_previous_event[P] = f.previousEvent, e.av_previous_event[O] = "" }, b = function (e) { var t, n = {}; for (t in e) Object.prototype.hasOwnProperty.call(e, t) && (Object.prototype.hasOwnProperty.call(e[t], P) ? n[e[t][O] ? "".concat(e[t][O], ":").concat(t) : t] = e[t][P] : n[t] = e[t]); return n }; l.set = function (e, t) { e = A(e, !0); v[e.key] = v[e.key] || {}, v[e.key][P] = t, v[e.key][O] = e.prefix }, l.get = function (e) { var t = null, e = A(e, !0); return t = void 0 !== v[e.key] ? v[e.key][P] : t }, l.del = function (e) { e = A(e, !0); void 0 !== v[e.key] && delete v[e.key] }, l.setProps = function (e) { x(e) && S(e, null, v, null, !0) }, l.getProps = function () { var e, t = null; for (e in v) Object.prototype.hasOwnProperty.call(v, e) && ((t = t || {})[e] = v[e][P]); return t }, l.delProps = function () { v = {} }; l.setPlaybackSpeed = function (e) { e = d.value2Number(e) || f.playbackSpeed; e !== f.playbackSpeed && (p.stopHeartbeatTimer(!1), f.isPlaying && (u(!0, !1), p.initHeartbeatTimer(function () { u(!0, !0) }, !1)), f.playbackSpeed = e) }, l.getSessionID = function () { return f.sessionId }, l.track = function (e, t, n, r) { var o = t || {}; switch (e) { case"av.heartbeat": l.heartbeat(o.av_position, n, r); break; case"av.buffer.heartbeat": l.bufferHeartbeat(n, r); break; case"av.rebuffer.heartbeat": l.rebufferHeartbeat(n, r); break; case"av.play": l.play(o.av_position, n, r); break; case"av.buffer.start": l.bufferStart(o.av_position, n, r); break; case"av.start": l.playbackStart(o.av_position, n, r); break; case"av.resume": l.playbackResumed(o.av_position, n, r); break; case"av.pause": l.playbackPaused(o.av_position, n, r); break; case"av.stop": l.playbackStopped(o.av_position, n, r); break; case"av.backward": l.seekBackward(o.av_previous_position, o.av_position, n, r); break; case"av.forward": l.seekForward(o.av_previous_position, o.av_position, n, r); break; case"av.seek.start": l.seekStart(o.av_previous_position, n, r); break; case"av.error": l.error(o.av_player_error, n, r); break; default: i(e, !1, n, r) } }, l.heartbeat = function (e, t, n) { var r, o = !0; null != e && 0 <= e && (o = !1, r = d.value2Number(e)), u(o, !1, r, t, n) }, l.bufferHeartbeat = function (e, t) { s(!1, e, t) }, l.rebufferHeartbeat = function (e, t) { c(!1, e, t) }, l.play = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = 0, f.previousCursorPosition = e, f.currentCursorPosition = e, f.isPlaying = !1, f.isPlaybackActivated = !1, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), i("av.play", !0, t, n) }, l.bufferStart = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), f.isPlaybackActivated ? (p.initHeartbeatTimer(function () { c(!0) }, !0), i("av.rebuffer.start", !0, t, n)) : (p.initHeartbeatTimer(function () { s(!0) }, !0), i("av.buffer.start", !0, t, n)) }, l.playbackStart = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = p.getEventDuration(), f.previousCursorPosition = e, f.currentCursorPosition = e, f.isPlaying = !0, f.isPlaybackActivated = !0, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), p.initHeartbeatTimer(function () { u(!0, !0) }, !1), i("av.start", !0, t, n) }, l.playbackResumed = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e, f.isPlaying = !0, f.isPlaybackActivated = !0, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), p.initHeartbeatTimer(function () { u(!0, !0) }, !1), i("av.resume", !0, t, n) }, l.playbackPaused = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e, f.isPlaying = !1, f.isPlaybackActivated = !0, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), i("av.pause", !0, t, n) }, l.playbackStopped = function (e, t, n) { p.initBaseTime(); e = d.value2Number(e); f.eventDuration = p.getEventDuration(), f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e, f.isPlaying = !1, f.isPlaybackActivated = !1, p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0), p.resetProperties(), r(!1), r(!0), i("av.stop", !0, t, n), f.previousCursorPosition = 0, f.currentCursorPosition = 0, f.eventDuration = 0, f.previousEvent = "", f.sessionId = K.v4() }, l.seek = function (e, t, n, r) { e = d.value2Number(e), t = d.value2Number(t); t < e ? l.seekBackward(e, t, n, r) : l.seekForward(e, t, n, r) }, l.seekBackward = function (e, t, n, r) { l.seekStart(e, null, r), f.eventDuration = 0, f.previousCursorPosition = d.value2Number(e), f.currentCursorPosition = d.value2Number(t), i("av.backward", !0, n, r) }, l.seekForward = function (e, t, n, r) { l.seekStart(e, null, r), f.eventDuration = 0, f.previousCursorPosition = d.value2Number(e), f.currentCursorPosition = d.value2Number(t), i("av.forward", !0, n, r) }, l.seekStart = function (e, t, n) { e = d.value2Number(e); f.previousCursorPosition = f.currentCursorPosition, f.currentCursorPosition = e, f.isPlaying ? f.eventDuration = p.getEventDuration() : f.eventDuration = 0, i("av.seek.start", !0, t, n) }, l.adClick = function (e, t) { i("av.ad.click", !1, e, t) }, l.adSkip = function (e, t) { i("av.ad.skip", !1, e, t) }, l.error = function (e, t, n) { var r = {}; (r = x(n) ? n : r).av_player_error = String(e), i("av.error", !1, t, r) }, l.display = function (e, t) { i("av.display", !1, e, t) }, l.close = function (e, t) { i("av.close", !1, e, t) }, l.volume = function (e, t) { i("av.volume", !1, e, t) }, l.subtitleOn = function (e, t) { i("av.subtitle.on", !1, e, t) }, l.subtitleOff = function (e, t) { i("av.subtitle.off", !1, e, t) }, l.fullscreenOn = function (e, t) { i("av.fullscreen.on", !1, e, t) }, l.fullscreenOff = function (e, t) { i("av.fullscreen.off", !1, e, t) }, l.quality = function (e, t) { i("av.quality", !1, e, t) }, l.speed = function (e, t) { i("av.speed", !1, e, t) }, l.share = function (e, t) { i("av.share", !1, e, t) }, o(!(f = { previousCursorPosition: 0, currentCursorPosition: 0, eventDuration: 0, playbackSpeed: 1, previousEvent: "", isPlaybackActivated: !1, isPlaying: !1, sessionId: "", delayConfiguration: [], delayConfigurationBackup: [], delayBufferingConfiguration: [], delayBufferingConfigurationBackup: [] }), e), o(!0, t), f.sessionId = n || K.v4(), p = new a, e = window, t = "pagehide", n = function () { p.stopHeartbeatTimer(!1), p.stopHeartbeatTimer(!0) }, e.addEventListener ? e.addEventListener(t, n, !1) : e.attachEvent && e.attachEvent("on" + t, n), v = {} } } function L(e) { var t, n = this; for (t in n.cfg = new Y(D(e) || H), n.setConfiguration = n.cfg.setConfiguration, n.setConfigurations = n.cfg.setConfigurations, n.getConfiguration = n.cfg.getConfiguration, window._pac = window._pac || {privacy: []}, window._pac) Object.prototype.hasOwnProperty.call(window._pac, t) && "privacy" !== t && n.setConfiguration(t, window._pac[t]); this._storage = new Ir(this), this._queue = new q(this), this._properties = {}, this._sendEvent = Jr; var r, e = this; e.setConfiguration("isLegacyPrivacy", !0), void 0 === window.pdl ? window.pdl = { migration: {browserId: {source: "PA"}}, cookies: {storageMode: "fixed"} } : (window.pdl.requireConsent && e.setConfiguration("isLegacyPrivacy", !1), void 0 === window.pdl.cookies ? window.pdl.cookies = {storageMode: "fixed"} : window.pdl.cookies && void 0 === window.pdl.cookies.storageMode && (window.pdl.cookies.storageMode = "fixed")), T.init({ cookieDefault: { domain: e.getConfiguration("cookieDomain"), secure: e.getConfiguration("cookieSecure"), path: e.getConfiguration("cookiePath"), samesite: e.getConfiguration("cookieSameSite") }, cookies: {_pcid: {expires: e.getConfiguration("storageLifetimeVisitor")}} }), e.privacy = new Yr(e), e.consent = new Vr(e), e._privacy = new qr(e), this.user = new Fr(this), Wr(this), r = (e = this).getConfiguration("queueVarName"), window[r] = window[r] || [], Kr(e, window[r], !0, r) } function Jr(e, t) { for (var n = [Pr, Sr, xr, z, _r, Or, Cr, W, kr, Ar], r = 0; r < e.length; r++) { var o = {name: "", data: {}}; if ("string" == typeof e[r]) o.name = e[r]; else { if (void 0 !== e[r].data) continue; o.name = e[r].name } e[r] = o } var i, t = {events: e, options: t}; 0 < n.length && "function" == typeof n[0] && (i = new Y(this.cfg.cloneData()), n[0](this, new F(this, t, i), n.slice(1))) } L.prototype.setProperty = function (e, t, n) { this._privacy.call("isPropAllowed", e) && (this._properties[e] = {value: t, options: n || {}}) }, L.prototype.setProperties = function (e, t) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && this.setProperty(n, e[n], t) }, L.prototype.deleteProperty = function (e) { delete this._properties[e] }, L.prototype.sendEvent = function (e, t, n) { this._queue.push(["_sendEvent", [{name: e, data: t}], n]) }, L.prototype.sendEvents = function (e, t) { this._queue.push(["_sendEvent", e, t]) }, L.prototype.getVisitorId = function (e) { var t, n = this.getConfiguration("visitorId") || null; if (n = n || T.get("browserId"), (t = e) && t(n), void 0 === e) return n }, L.prototype.setVisitorId = function (e) { this.setConfiguration("visitorId", e); var t = new Date; t.setTime(t.getTime() + 24 * this.getConfiguration("storageLifetimeVisitor") * 60 * 60 * 1e3), this._privacy.call("setItem", this.getConfiguration("storageVisitor"), e, t, function () { T.updateMigration() }) }, L.prototype.setUser = function (e, t, n) { this.user.setUser(e, t, n) }, L.prototype.getUser = function (e) { this.user.getUser(e) }, L.prototype.deleteUser = function () { this.user.deleteUser() }, (L.prototype.PA = L).prototype.refresh = function () { null === this.getConfiguration("isManualPageRefresh") && this.setConfiguration("isManualPageRefresh", !0), this.getConfiguration("isManualPageRefresh") && T.refresh() }, L.prototype.setContentProperty = function (e, t) { var n = {}; "content_publication_date" === e || "tags_array" === e ? n[{ content_publication_date: "createdAt", tags_array: "tags" }[e]] = t : n[e] = t, T.set("content", n) }, L.prototype.setContentProperties = function (e) { for (var t in e) Object.prototype.hasOwnProperty.call(e, t) && this.setContentProperty(t, e[t]) }; r = new L(H), window && !window[r.getConfiguration("globalVarName")] && (window[r.getConfiguration("globalVarName")] = r); vn = r; return j.pianoAnalytics = vn, Object.defineProperty(j, "__esModule", {value: !0}), j }({}); } var apiUrl = '/nachrichten/info/infospezial/programm/livestream152-podlove_image-44e078de-174a-46e3-bd73-00e8b83bf9d8.json', playerType = 'live', broadcastType = 'audioLivestream', playerId = '#audioplayer-livestream152699c0ea9-83c2-440c-9dba-4e04e8ec387d', pianoConfig = { "avContent": { "av_auto_mode": false, "av_broadcaster": "ndrinfospezial", "av_broadcasting_type": "Clip", "av_content": "NDR Info Spezial", "av_content_duration": 0, "av_content_id": "livestream152", "av_content_type": "Audio", "av_jumpmark": "", "av_lra": "NDR", "av_original_air_time": "", "av_parent_url": "https://www.ndr.de/nachrichten/info/infospezial/programm/livestream152.html", "av_player": "", "av_player_mode": "normal", "av_player_version": "", "av_quality": "", "av_publication_date": "2024-12-11T09:08:08Z", "av_show": "", "av_show_id": "0", "av_speed": "1", "av_tracking": "", "av_tracking_id": "0", "av_url": "", "av_web_only": false, "site": "NDR Online", "site_id": "595937", "site_level2": "ndr.de", "product_distribution": "Web", "product_login": false, "page": "NDR Info Spezial", "page_chapter1": "", "page_chapter2": "", "page_chapter3": "", "page_chapter4": "", "page_lra": "NDR", "page_show": "", "page_show_id": "0", "page_brand": "ndrinfospezial", "page_crossbrand": "NDR Info", "page_broadcast_reference": "Ja", "page_categories": "", "page_url_full": "", "page_contains_video": false, "page_contains_audio": false, "content_object_type": "audioLivestream", "content_content_type": "audioLivestream", "content_tracking": "", "content_tracking_id": "0", "content_id": "livestream152", "content_url_path": "", "content_import_id": "b48499d9-372b-45f2-9e7f-5d802de1c465", "d:content_publication_time": "", "d:content_last_editoral_update": "2024-12-11T09:08:08Z", "content_days_since_publication": "0", "technical_user_agent": "", "technical_previous_url": "", "user_logged_in": false }, "config": { "events": [ "av.speed", "av.jumpmark", "av.playermode", "av.quality", "av.signlanguage", "av.subtitle", "av.share", "av.dialog.open", "av.dialog.close" ], "site": "595937" }, "isEnabled": true } , audioDocumentId = 'livestream152', audioDocumentUrl = 'https://www.ndr.de/nachrichten/info/infospezial/programm/livestream152.html', primaryType = '', audioDuration = ''; if ( apiUrl !== "" && $(playerId).length > 0 ) { $.ajax({ url: apiUrl, dataType: "json", "success": function (data) { initAudioPlayer( data, playerType, broadcastType, playerId, pianoConfig, primaryType, audioDocumentUrl, audioDuration ); }, "error": function () { console.log('audioplayer failed'); } }); } }); </script> </div> </div> <ul class="playlist"> <li class="nowplaying"> <span class="label zeta">Jetzt:</span> <div class="cover"> <div id="coverimage" class="image-container square"> <img src="/resources/images/placeholder.png" alt="#"> </div> </div> <span class="title theta"><span id="titleNow"></span><span id="interpretNow"></span></span> <div class="detailinfo zeta"></div> </li> <li class="nextsong"> <span class="label zeta">Gleich:</span> <div class="cover"> <div id="coverimage" class="image-container square"> <img src="/resources/images/placeholder.png" alt="#"> </div> </div> <span class="title theta"><span id="titleNext"></span><span id="interpretNext"></span></span> </li> <li class="lastsong"> <span class="label zeta">Davor:</span> <div class="cover"> <div id="coverimage" class="image-container square"> <img src="/resources/images/placeholder.png" alt="#"> </div> </div> <span class="title theta"><span id="titlePrevious"></span><span id="interpretPrevious"></span></span> </li> </ul> <div class="expanderbox"> <div id="more_songs" class="exp-body" role="region" aria-hidden="true"> <ul class="playlist"> </ul> </div> <div class="addmore"> <a href="#" id="exp1-handle-testmc298" class="exp-header theta" role="button" aria-expanded="false" aria-controls="more_songs"> <span class="show">Mehr anzeigen</span> <span class="hide">Weniger anzeigen</span> </a> </div> </div> <div class="additionallinks"> <a href="/nachrichten/info/epg/ARD-Infonacht,sendung1516274.html" title="Sendungsinformationen" class="theta"><span class="ndricon_arw-right"></span>Mehr zur Sendung</a> <a href="/nachrichten/info/infospezial/programm/index.html" title="Programmübersicht" class="theta"><span class="ndricon_calendar"></span>Programm</a></div> </div> </div> <div class="pagepadding"> </div> <!-- googleoff: index --> </div> <div id="footer"> <div class="pagepadding"> <div class="module footerblock w25"> <div class="modulepadding"> <h2>Der NDR</h2> <ul> <li><a href="/der_ndr/start/index.html" title="Zum Artikel: Unternehmen" >Unternehmen</a></li> <li><a href="/der_ndr/karriere/index.html" title="Zum Artikel: Karriere" >Karriere</a></li> <li><a href="/der_ndr/kontakt/index.html" title="Zum Artikel: Kontakt/Gästeführungen" >Kontakt/Gästeführungen</a></li> <li><a href="/der_ndr/presse/index.html" title="Zum Artikel: Presse" >Presse</a></li> <li><a href="/der_ndr/zahlen_und_daten/index.html" title="Zum Artikel: Transparenz" >Transparenz</a></li> <li><a href="https://www.rundfunkbeitrag.de/" title="Link: Alle Informationen zum Rundfunkbeitrag " rel="noopener" target="_blank">Rundfunkbeitrag</a></li> <li><a href="/der_ndr/empfang_und_technik/index.html" title="Zum Artikel: Empfang &amp; Technik" >Empfang & Technik</a></li> <li><a href="/der_ndr/unternehmen/rundfunkrat/index.html" title="Zum Artikel: NDR Rundfunkrat" >NDR Rundfunkrat</a></li> <li><a href="/der_ndr/unternehmen/verwaltungsrat/index.html" title="Zum Artikel: NDR Verwaltungsrat" >NDR Verwaltungsrat</a></li> </ul> </div> </div> <div class="module footerblock w25"> <div class="modulepadding"> <h2>Service</h2> <ul> <li><a href="/nachrichten/wetter/index.html" title="Zum Artikel: Wetter" >Wetter</a></li> <li><a href="/nachrichten/verkehr/index.html" title="Zum Artikel: Verkehr" >Verkehr</a></li> <li><a href="/ratgeber/kochen/index.html" title="Zum Artikel: Rezepte" >Rezepte</a></li> <li><a href="/fernsehen/videotext/index.html" title="Zum Artikel: NDR Text" >NDR Text</a></li> <li><a href="/fernsehen/barrierefreie_angebote/index.html" title="Zum Artikel: Barrierefreiheit" >Barrierefreiheit</a></li> <li><a href="/fernsehen/barrierefreie_angebote/leichte_sprache/index.html" title="Zum Artikel: Leichte Sprache im NDR" >Leichte Sprache im NDR</a></li> <li><a href="https://www.ndrticketshop.de/" title="Link: Externer Link zum NDR Ticketshop" rel="noopener" target="_blank">Tickets</a></li> <li><a href="https://www.ndr-shop.de/" title="Link: Link zum NDR Shop" rel="noopener" target="_blank">Shop</a></li> <li><a href="/service/technische_hilfe/index.html" title="Zum Artikel: Hilfe" >Hilfe</a></li> <li><a href="/home/korrekturuebersicht100.html" title="Zum Artikel: Korrekturen" >Korrekturen</a></li> <li><a href="/service/newsletter/Newsletter-des-Norddeutschen-Rundfunks,newsletter7340.html" title="Zum Artikel: NDR Newsletter" >NDR Newsletter</a></li> <li><a href="/service/kontakt/Kritik-und-Anregungen-zum-NDR-Programm,kritik130.html" title="Zum Artikel: Kritik und Anregungen" >Kritik und Anregungen</a></li> </ul> </div> </div> <div class="module footerblock w25"> <div class="modulepadding"> <h2>Themen</h2> <ul> <li><a href="/nachrichten/info/sendungen/wissenschaft-und-bildung/index.html" title="Zum Artikel: Wissenschaft" >Wissenschaft</a></li> <li><a href="/home/Der-Klimawandel-im-Norden-Folgen-Ideen-und-Perspektiven,klimawandelnorden100.html" title="Zum Artikel: Klimawandel im Norden" >Klimawandel im Norden</a></li> <li><a href="/der_ndr/bildung/Lernen-digital-Bildungsangebote-des-NDR-fuer-Kinder-und-Jugendliche,homeschooling146.html" title="Zum Artikel: Bildungsangebote" >Bildungsangebote</a></li> <li><a href="/ndrfragt/index.html" title="Zum Artikel: #NDRfragt" >#NDRfragt</a></li> <li><a href="/NDR-Datenjournalismus-Zahlen-und-Fakten-einfach-erklaert-,ndrdata118.html" title="Zum Artikel: NDR Datenjournalismus" >NDR Datenjournalismus</a></li> <li><a href="/ratgeber/reise/ausflugstipps148.html" title="Zum Artikel: Ausflugstipps" >Ausflugstipps</a></li> <li><a href="/nachrichten/netzwelt/NDR-twitter-facebook-instagram-youtube,ndrsozialenetzwerke101.html" title="Zum Artikel: Social Media" >Social Media</a></li> <li><a href="/kultur/norddeutsche_sprache/index.html" title="Zum Artikel: Plattdeutsch" >Plattdeutsch</a></li> <li><a href="/wuensch_dir_deinen_ndr/index.html" title="Zum Artikel: Wünsch Dir Deinen NDR" >Wünsch Dir Deinen NDR</a></li> <li><a href="/hand_in_hand_fuer_norddeutschland/index.html" title="Zum Artikel: Hand in Hand für Norddeutschland" >Hand in Hand für Norddeutschland</a></li> <li><a href="/home/thema108.html" title="Zum Artikel: Themen A-Z" >Themen A-Z</a></li> <li><a href="/geschichte/ndr_retro/index.html" title="Zum Artikel: Archiv: NDR Retro" >Archiv: NDR Retro</a></li> </ul> </div> </div> <div class="module footerblock w25"> <div class="modulepadding"> <h2>NDR Info Spezial</h2> <ul> <li><a href="/nachrichten/info/infospezial/service/index.html" title="Zum Artikel: Kontakt" >Kontakt</a></li> <li><a href="/nachrichten/info/podcasts/index.html" title="Zum Artikel: Podcasts" >Podcasts</a></li> <li><a href="/nachrichten/info/service/NDR-Info-Frequenzen,frequenzen2.html" title="Zum Artikel: Frequenzen" >Frequenzen</a></li> <li><a href="/nachrichten/info/infospezial/programm/NDR-Info-Spezial-Programm,vorschaundrinfospezial2.html" title="Zum Artikel: Programmvorschau" >Programmvorschau</a></li> <li><a href="/radio/Die-NDR-Radio-App,ndrradioapp136.html" title="Zum Artikel: NDR Radio App" >NDR Radio App</a></li> <li><a href="/der_ndr/empfang_und_technik/digitalradio/Radio-ueber-DAB-Hoeren-und-Sehen,dabplus101.html" title="Zum Artikel: Radio über DAB+" >Radio über DAB+</a></li> <li><a href="/der_ndr/empfang_und_technik/digitalradio/Einfach-digital-NDR-Radioprogramme-,dvbsradio101.html" title="Zum Artikel: Digitalradio" >Digitalradio</a></li> <li><a href="/nachrichten/info/programm/NDR-Info-Perspektiven-Konstruktiver-Journalismus,ndrinfoperspektiven100.html" title="Zum Artikel: NDR Info Perspektiven: Auf der Suche nach Lösungen" >NDR Info Perspektiven: Auf der Suche nach Lösungen</a></li> <li><a href="/nachrichten/info/wir_ueber_uns/NDR-Info-im-Dialog,blogndrinfoimdialog100.html" title="Zum Artikel: NDR Info im Dialog" >NDR Info im Dialog</a></li> </ul> </div> </div> </div> <div class="module footerblock metanav"> <div class="pagepadding"> <ul> <li><a href="/service/impressum/index.html" title="Impressum">Impressum</a></li> <li><a href="/service/kontakt/index.html" title="Kontakt">Kontakt</a></li> <li><a href="/service/datenschutz/index.html" title="Datenschutzerklärung">Datenschutz</a></li> <li><a href="http://www.ard.de" title="ARD.de" rel="noopener">ARD.de</a></li> <li><a href="#" class="showcopyrights">Bildrechte</a></li> <li id="copy">&copy; Norddeutscher Rundfunk</li> </ul> </div> <script type="text/javascript" src="/common/resources/lib/baselib.js?gen=1910" defer></script> <script type="text/javascript" src="/resources/js/scripts.js?gen=1910" defer></script> <script type='text/javascript'> var getCookie = function (name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length === 2) return parts.pop().split(";").shift(); }; var cookieVal = getCookie('ndrEmbeds'); var substring = "tracking"; if ((decodeURIComponent(cookieVal).indexOf(substring) === -1) && (typeof pa != 'undefined')) { if (typeof basicPianoJSON === 'undefined') { var path = window.location.pathname.substring(0, window.location.pathname.lastIndexOf('/') + 1); pathArray = path.split( '/' ); if (pathArray[2] === undefined) pathArray[2] = ""; if (pathArray[3] === undefined) pathArray[3] = ""; if (pathArray[4] === undefined) pathArray[4] = ""; if (false) { pathArray[1] = 'notfound'; pathArray[2] = ''; pathArray[3] = ''; pathArray[4] = ''; } var basicPianoJSON = { 'site': 'NDR Online', 'site_id': 595937, 'site_level2': 'ndr.de', 'product_distribution': 'Web', 'product_login': false, 'page': 'NDR Info Spezial', // Event properties 'page_chapter1': pathArray[1], 'page_chapter2': pathArray[2], 'page_chapter3': pathArray[3], 'page_chapter4': pathArray[4], 'page_lra': 'NDR', 'page_show': '', // Sendereihe 'page_show_id': 0, 'page_brand': 'ndrinfospezial', 'page_crossbrand': 'NDR Info', 'page_broadcast_reference': 'Ja', 'page_categories': '', 'page_url_full': document.location.href, 'page_contains_video': false, 'page_contains_audio': false, 'content_object_type': 'station', 'content_content_type': '', 'content_tracking': '', 'content_tracking_id': 0, 'content_id': 'stationinfospezial102', 'content_url_path': document.location.pathname, 'content_import_id': 'station-ndrinfospezial', 'd:content_publication_time': "", 'd:content_last_editoral_update': "2023-11-08T10:45:40Z", 'content_days_since_publication': 0, 'technical_user_agent': window.navigator.userAgent, 'technical_previous_url': document.referrer, 'user_logged_in': false }; } pa.setConfigurations ({ 'site': 595937, 'collectDomain': 'https://log.xiti.com' }); pa.sendEvent('page.display', basicPianoJSON); // Event name function clickDownload(downloadUrl) { var filename = downloadUrl.split("/").pop(); var targetId = filename.split('.')[0]; pa.setProperty('click', 'Download'); pa.setProperty('click_target_id', targetId); pa.setProperty('click_target_url', downloadUrl); pa.sendEvent('click.download', basicPianoJSON); } document.querySelectorAll("a[title^='Download'], a.download").forEach((link)=> { link.addEventListener("click", function() { clickDownload(link.getAttribute("href")) }, false ); }); } var atilevel1 = '595937'; var bra = 'ndrinfospezial'; var fpdt = ''; var pdt = '2023-11-08T10:45:40Z'; var ageInDays = '0'; var sid = '0'; var bundesland = ''; var bundeslandId = '0'; var tags = ''; var uuid = 'station-ndrinfospezial'; var sophoraID = 'stationinfospezial102'; var pageTitle = 'NDR Info Spezial'; var objectType = 'station'; var atiLevel2 = 'ndr.de'; var contentType = ''; var distribution = 'Web'; var sendungsbezug = 'Ja'; var marke = 'NDR Info'; </script> </div> </div> </div> <!-- googleon: index --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10