A lot of lyrics to love songs can sound threatening if you take them too literally or think about them from a certain perspective – for example, trying to compose a summary after you have heard a particularly troubling one Having watched episode of television about a megalomaniac tech billionaire who has kept his wife trapped in a luxurious, eerie, lifelike “hub” for which the sky is just a giant cloud screen saver for 10 years, on someone forever and to hold on forever: kind of chills if you think about it after watching the said woman claw her way out of her tech fortress to discover that her techie husband has already implanted a chip in her head !! One that allows him to see everything she sees, follow her every move and possibly hear her thoughts too ??!?! Anyway, my runner-up was “And if I had the chance, I would never let you go,” but I bet you could easily come up with a few without thinking too much share your scariest suggestions in the comments!

But let’s keep up with this Made for Love is based on the book of the same name by Alissa Nutting that I’m dying to read, but when I took up these recaps I thought: Hey, why don’t I hold back so we can can go on this crazy journey together? Shows that take all of the tropics about the love we should yearn for and turn it (and your stomach) upside down are very much in my vulture wheelhouse (this is where you see it – and I have that source material too not read yet) So I’ll go into this blind, but if you did the reading before you came to class, A for you! Just keep your spoilers to yourself

We meet Hazel, played by Cristin Milioti, who rounds off her hat-trick with the roles of “Woman caught in a science fiction love story” (with the great Palm Springs and, yes, I’ll say how I met your mother into that category; it’s a stranger show than you recall, and it takes three to make a list anyway) She’s the wife of the subtly named Byron Gogol (a reference to Gogol or Google or both? Works either way ! And don’t let me start with your husband’s big red flag called Byron) whose company is a very disturbing hybrid of Google and Amazon and Apple and other such tech companies that have completely taken over our lives; His demeanor and the aesthetics of his house remind me of Nathan from Ex Machina. What about technical types and smooth, mild surfaces?

Byron’s new product is called Made for Love, and any non-psycho would think it sounds like something from Black Mirror (which Milioti was on too, a very useful preparation for the experience, I bet): Let you and your lover You implant suitable chips in your skull, e.g. B. Necklaces from Best Friends where you have to share every thought and feeling every second of every day until you die. Honestly, it sounds like just an abusive partner making up something that might tell you everything you know about Byron must

Cut to our girl Hazel, who is slick with unknown dirt and emerges from a hatch in the desert and bleeds from her head I have to say, if she planned this escape, she is dressed a little impractically: sparkling green mini dress, no shoes brave decisions abound.She hands her finger to a pile of buildings – we’ll soon recognize this as a hub – and steps forward as an Alexa-style speaker with the small g of the Gogol logo shines ominously in the sand

Our episode brings us back to 24 hours before the escape, and I admit I find this device a little entry-level model – great storytelling can create tension without that brazen tension-building structure! – but I’ll let it happen just because I feel a little less nervous for the rest of the half hour knowing that Hazel will eventually be Thelma & Louise who gets it out of her beautiful prison

Hazel’s every move is tracked, documented, reviewed, and likely stored in a cloud only her husband can access. Eventually we learn that she knows she even has to rate her orgasms – which are shot for … educational purposes? – as if Byron was her Uber driver because he fell on her. You live in suffocating luxury. You have a dolphin named Zelda in your pool. When Hazel has friends, we don’t see them There aren’t any family photos around the place.They have tiny earbuds that make screens appear in the air, and on one of those aerial screens Byron and Hazel see that riots have broken out in seven countries over his latest Gogol tablets (This is where we learn through too a news report that Hazel hasn’t left the compound in ten years) Hazel is quietly planning her escape behind extremely cute tortoiseshell sunglasses with hexagonal lenses. Can someone tell me where I can get these sunglasses? Do I have to marry a tech psycho first and live in a beige cage for a decade with only my pool dolphin as company, or do you think I could find a scammer at Aritzia?

Hazel is surrounded by little tech roosters telling her when to eat and take a nap I like her fancy nap sweater It’s very Nancy Meyers In fact, the hub’s entire color scheme is Nancy Meyers-esque, but with all of the warmth and coziness that is withdrawn from it feels a little obvious and on the nose when it comes to choosing the set design, but it’s believable and maybe that’s the most important thing? Back to the decisions on the nose: Hazel wears white or sand-colored clothes when she is in the hub Her party dress (her last stop before her escape) is white with multicolored pearls (one foot in, one foot out), and her freedom clothes are so light it almost scalds the eye – sparkling green sequins, ketchup-red tracksuit But I am mine yourself ahead!

Back to the future: Hazel rides in a van with this tall bearded man turns out to be El Perro, a radio DJ anyone who hasn’t lived under a rock would have heard of Hazel Haven’t heard of El Perro yet She hasn’t seen real money in ten years I think the first thing she should do is ask if he should call 911 on his phone But she just grins her illegal grin and carries on when he basically leaves her to do what he thinks is more urgent than helping this woman who is obviously in dire need (he doesn’t even think about putting her in a Hospital? Not cool, El Perro), she slips into the dressing room of the staff at a strip club and searches it for her necessary supplies: change of closet, six pack of beer Can I just say that I love a scene in which a desperate woman on the run settles in a public bathroom? Makes me leave my identity behind, dye my hair black over a gas station sink, and fling myself on the horizon, of course, I wouldn’t do that now because you’re relying on me to recap the next seven episodes of this series, maybe after !

In the past, Hazel is the charming party hostess who pretends to be drinking and reveals a little secret to her guests: They can tell the hub is fake because the clouds don’t move right in the corners of the cubes, which I pretty much see I’m sure is exactly how Katniss and the gang figured out the arena trick in the second book of the Hunger Games, right? Byron pulls Hazel in for one of those gross performative kisses – reminds me of TomKat’s cracking run on the red carpet – and then mumbles in her ear, “You lied to me”

Then Byron makes his big announcement: Made for Love is ready for use, baby !! Tomorrow he and Hazel will be the first couple to take part in They’re “User One” “(Big little side-effect from his assistants wondering if Byron’s use of the first-person plural means he’s finally acknowledging their work which of course he doesn’t”) One of Byron’s servants notes to the other that if they go through this one of the users will die. Zelda (the dolphin) has a chip, but it’s only a one-way street A two-way chip would be fatal for either party. In the meantime, Byron insists that everyone clap for him, à la Jeb Bush

As she promised earlier in the day, Hazel sings “Anyway, this is Wonderwall” on guitar with her husband. They do a little duet about how strange love is. It’s Barf City. Then she walks through a door, who appears out of nowhere, back to her house The dress she will wear for her escape is in a glass case on the wall I wonder if we’re going to figure out why it’s kept this way she smashes the case – a brave decision for someone I suppose hopes they won’t get caught if they escape captivity – and gathers all of their little cock spies in a sheets she smears on red lipstick, the mouth of harlotry and treason ( I also bet she’s never allowed to wear that in this house of creams and taupes; it would never come off the towels and sheets) She twists the sheet around her neck and drops the weighted cock end into the pool on it looks like a suicide attempt, but we don’t (yet) see her getting from the bottom of the pool to her escape hatch in the desert

Instead, we see her at the strip club, hiding from a Gogol footman named Lyle who claims to be there to help her Hazel replies that she is “not a fucking idiot” and what an accident I am stop, but nothing to make her feel terrible about, chopping off three of his fingers with an ax.She gets into a passing car, the driver of which takes her to the place she says is her home at this point, her blood sprayed in the face, but the driver politely doesn’t recognize this at home, she tells herself, as she walks down the street, it’s “a fucking shit hole”

Somehow there is a pay phone that she is dropped off at, which seems like a miracle until it starts ringing as she approaches it The alarm in the car behind her starts to beep The alarm in every car she is on drives by, does the same. A stranger walks up to her to say that Byron Gogol is on the phone for her, and while she starts in a very defiant manner – “You tell him TOO LATE” – she quickly learns that her worst nightmare has occurred is: He already has the chip implanted in her brain. She is made for love. She sprints away in horror as her husband wriggles her brain like a true sociopath from afar. “Get the fuck out of my head!” She screams This show is going to give me so many nightmares

She finds her house and is looking for her father, played by Ray Romano, whom we saw in a retrospective of her childhood: Her parents teased each other lovingly when her father tried to make a small airplane heavenly (I think he) sold the family station wagon for this project (interesting priorities) while sipping some moonlight

She opens the door for her father to have sex with a doll. He is … remarkably unimpressed by his daughter who comes back to him in this state after ten years in the Hub, by the said daughter who comes up to him and one Mannequin screwing, really from the whole thing I mean, at least for Hazel, this isn’t even 70 strangest thing that happened to her today. Still, she reacts to the combination of this scenario and the violent hum in her brain in the most rational way I can think of: by passing out

Already a subscriber?
Sign up or link your magazine subscription

Already a subscriber?
Sign up or link your magazine subscription

Already a subscriber?
Sign up or link your magazine subscription

Already a subscriber?
Sign up or link your magazine subscription

= 0? (u = fsubstr (0, v), c = fsubstr (v 1)) 🙁 u = f, c = “”), i = decodeURIComponent (u), l = decodeURIComponent (c), hasOwnProperty (o, i) ? isArray (o [i])? o [i]] push (l): o [i] = [o [i], l]: o [i] = l} return o}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)};
}, {}];
Window modules [“1208”] = [Function (required, module, export) {“use strict”; var stringifyPrimitive = function (r) {switch (typeof r) {case “string”: return r; case “boolean”: return r? “true”: “false”; case “number”: return isFinite (r)? r: “”; default: return “”}}; module exported = function (r, e, t, n) {return e = e || “&”, t = t || “=”, null === r&& (r = void 0), “object” == typeof r? map (objectKeys (r), function (n) {var i = encodeURIComponent (stringifyPrimitive (n)) t; return isArray (r [n])? map (r [n], function (r) {return i encodeURIComponent (stringifyPrimitive (r))}) join (e): i encodeURIComponent (stringifyPrimitive (r [n]))}) join (e): n? encodeURIComponent (stringifyPrimitive (n)) t encodeURIComponent (stringifyPrimitive (r)): “”}; var isArray = ArrayisArray || function (r) {return “[Object array]” === ObjectPrototyptoStringcall (r)}; Function map (r, e) {if (rmap) return rmap (e); for (var t = [], n = 0; n0&&a [aLength-1]) && (6 === i [0] || 2 === i [0])) {o = 0; continue} if (3 === i [0] && (! a || i [1]> a [0] &&i [1] “:” akbar-men “,” ∑ “:” majmou “,” ¤ ” : “omla”}, az: {}, ca: {“∆”: “Delta”, “∞”: “infinite”, “♥”: “amor”, “&”: “i”, “|”: “o”, “”: “mes que”, “∑”: “suma” dels “,” ¤ “:” moneda “}, cz: {” ∆ “:” delta “,” ∞ “:” nekonecno “, “♥”: “laska”, “&”: “a”, “|”: “nebo”, “”: “vice jako”, “∑”: “soucet”, “¤”: “mena”}, de : {“∆”: “delta”, “∞”: “infinite”, “♥”: “love”, “&”: “and”, “|”: “or”, “”: “greater than”, “∑”: “Sum of”, “¤”: “Currency”}, dv: {“∆”: “delta”, “∞”: “kolunulaa”, “♥”: “loabi”, “&”: ” aai “,” | “:” noonee “,” “:” ah vure bodu “,” ∑ “:” jumula “,” ¤ “:” faisaa “}, en: {” ∆ “:” delta “,” ∞ “:” infinite “,” ♥ “:” love “,” & “:” and “,” | “:” or “,” “:” greater than “,” ∑ “:” sum “,” ¤ “: “Currency”}, es: {“∆”: “Delta”, “∞”: “infinito”, “♥”: “amor”, “&”: “y”, “|”: “u”, “” : “mas que”, “∑”: “suma de los”, “¤”: “moned a “}, fr: {” ∆ “:” delta “,” ∞ “:” infiniment “,” ♥ “:” Amour “,” & “:” et “,” | “:” ou “,” “: “superieure a”, “∑”: “somme des”, “¤”: “monna dh”}, gr: {}, hu: {“∆”: “delta”, “∞”: “vegtelen”, “♥ “:” szerelem “,” & “:” es “,” | “:” vagy “,” “:” nagyobb mint “,” ∑ “:” szumma “,” ¤ “:” penznem “}, it: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amore”, “&”: “e”, “|”: “o”, “”: “maggiore di”, “∑”: “somma”, “¤”: “moneta”}, lt : {}, lv: {“∆”: “delta”, “∞”: “bezgaliba”, “♥”: “milestiba”, “&”: “un”, “|”: “vai”, “”: “lielaks neka”, “∑”: “summa”, “¤”: “valuta”}, my: {“∆”: “kwahkhyaet”, “∞”: “asaonasme”, “♥”: “akhyait”, ” & “:” nhin “,” | “:” tho “,” “:” kyithaw “,” ∑ “:” paungld “,” ¤ “:” ngwekye “}, mk: {}, nl: {” ∆ “:” delta “,” ∞ “: “oneindig”, “♥”: “leads”, “&”: “en”, “|”: “of”, “”: “groter dan”, “∑”: “som”, “¤”: “valuta “}, pl: {” ∆ “:” delta “,” ∞ “:” nieskonczonosc “,” ♥ “:” milosc “,” & “:” i “,” | “:” lub “,” “:” wieksze niz “,” ∑ “:” suma “,” ¤ “:” waluta “}, pt: {” ∆ “:” delta “,” ∞ “:” infinito “, “♥”: “amor”, “&”: “e”, “| “:” ou “,” “:” maior que “,” ∑ “:” soma “,” ¤ “:” moeda “}, ro: {” ∆ “:” delta “,” ∞ “:” infinit “, “♥”: “dragoste”, “&”: “si”, “|”: “sau”, “”: “mai mare ca”, “∑”: “suma”, “¤”: “valuta”}, ru: {“∆”: “delta”, “∞”: “beskonechno”, “♥”: “lub ov”, “&”: “i”, “| “:” ili “,” “:” bolshe “,” ∑ “:” summa “,” ¤ “:” valjuta “}, sk: {” ∆ “:” Delta “,” ∞ “:” nekonecno “,” ♥ “:” laska “,” & “:” a “,” | “:” alebo “,” “:” viac ako “,” ∑ “:” sucet “,” ¤ “:” mena “}, sr: {}, tr: {“∆”: “delta”, “∞”: “Sonsuzluk”, “♥”: “ask”, “&”: “ve”, “|”: “veya”, “”: ” buyuktur “,” ∑ “:” toplam “,” ¤ “:” para birimi “}, uk: {” ∆ “:” delta “,” ∞ “:” bezkinechnist “,” ♥ “:” lubov “,” & “:” i “,” | “:” abo “,” “:” bilshe “,” ∑ “:” suma “,” ¤ “:” valjuta “}, vn: {” ∆ “:” delta “,” ∞ “:” vo cuc “, “♥”: “yeu”, “&”: “va”, “|”: “hoac”, “”: “lon hon”, “∑”: “tong”, “¤”: “tien te”}} ; if (“string”! = typeof e) return “”; if (“string” == typeof a&& (A = a), m = Ien, c = Cen, “object” == type of a) for (g in n = akeepCase ||! 1, O = acustom&& “object” == typeof aBrauch? aBrauch: O, u = cut off> 1&&a cut off ||! 1, l = auric ||! 1, s = auricNoSlash ||! 1, r = amarkize ||! 1, S =! 1! == asymbole&&! 1! == alang, A = a separator || A, l&& (p = bjoin ( “”)), s&& (p = zjoin (“”)), r&& (p = [“”, “!”, “~”, “*”, “‘”, “(“, “)”] join ( “”)), m = alang&&I [alang] &&S? I [alang]: S? Ien: {}, c = alang&&C [alang]? C [alang] :! 1 === alang ||! 0 === alang? {}: Cen, atitleCase&& “number” == typeof atitleCaselength&&ArrayPrototyptoStringAnruf (atitleCase)? (atitleCaseforEach (function (e) {O [e “”] = e “”}), t =! 0): t = !! atitleCase, acustom&& “number” == typeof a user-defined length&&ArrayPrototyptoStringAnruf (acustom) &&a user-defined forEach (function (e) a = “e” key (); > 1? New RegExp (“\ b” o (a) “\ b”, “gi”): new RegExp (o (a), “gi”), e = e replace (n, O [a] )}), O) p = g; for (p = o (p = A), f =! 1, y =! 1, d = 0, k = (e = replace (/ (^ s | s $) / g, “”)) length ; d = 0? (j = g, g = “”) :! 0 === y? (g = U [j] v [g], j = “”): g = f&&v [g] match (/ [A-Za-z0-9] /)? V [g]: v [g], f =! 1, y =! 1): g in U? (j = g, g = “, d === k-1&& (g = U [j]), y =! 0) :! m [g] || l&&-1! == join (” “) indexOf (g) || s&&-1! == zjoin (“”) indexOf (g)? (! 0 === y? (g = U [j] g, j = “”, y =! 1): f&& (/ [A-Za-z0-9] / Test (g) || Esubstr (-1) match (/ A-Za-z0-9] /)) && (g = “” g), f =! 1) 🙁 g = f || Esubstr (-1) match (/ [A-Za-z0-9] /)? A m [g]: m [g], g = void 0! == e [d 1] &&e [d 1] match (/ [A-Za-z0-9] /)? A: “”, f =! 0), E = replace (new RegExp (“[^ \ w \ s” p “_-]”, “g”), A); Return t&& (E = EReplace (/ ( w) ( S *) / g, function (e, a, n) {var t = atoUpperCase () (null! == n? N: “”); return objectkey (O) indexOf (ttoLowerCase ()) u&& (h = EcharAt (u) === A, E = EDisk (0, u), h || (E = EDisc (0, ElastIndexOf (A)))), n || t || (E = EtoLowerCase ()), E}, t = function (s) {return function (a) {return n (a, e)}}, o = function (s) {return ereplace (/ [- \ ^ $ *? ( ) | [] {} /] / g, “\ $ &”)}, i = function (e, a) {for (var n in a) if (a [n] === e) return ! 0}; if (“undefined”! = type of module &&moduleExport) ModulExporte = n, ModulExportecreateSlug = t; else if (“undefined”! = typeof define&&defineamd) define ([], function () {return n}); otherwise try {if (egetSlug || ecreateSlug) throw “Speakingurl: Globals exists / (getSlug | createSlug) /”; egetSlug = n, ecreateSlug = t} catch (e) {}} (this);
}, {}];
Window modules [“1235”] = [function (required, module, export) {var namespace = “expire_mixin”; Function expirePlugin () {var e = thiscreateStore (diesStore, null, dies_namespacePrefix-namespace); return {set: function (t, n, a, r) ​​{thishasNamespace (Namespace) || eset (n, r); return t ()}, get: function (e, n) {thishasNamespace (Namespace) || tcall (this, n); return e ()}, remove: function (t, n) {thishasNamespace (Namespace) || eremove (n); return t ()}, getExpiration: function (t, n) {return eget (n)}, removeExpiredKeys: function (e) {var n = []; this each (function (e, t) {npush (t)}); for (var a = 0; a = 0; r -) {var l = localStorage () key (r); e (read (l), l)}} function remove (e) {return localStorage () removeItem (e)} function clearAll () {return localStorage () clear ()} module exported = {name: “localStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll};
}, {“1237”: 1237}];
Window modules [“1239”] = [Function (required, module, export) {Module exported = {name: “memoryStorage”, read: read, write: write, each: each, remove: remove, clearAll: clearAll}; var memoryStorage = {}; function read (e) {return memoryStorage [e]} function write (e, r) {memoryStorage [e] = r} Function of each (e) {for (var r in memoryStorage) memoryStoragehasOwnProperty (r) &&e (memoryStorage [r] , r)} function remove (e) {delete memoryStorage [e]} function clearAll (e) {memoryStorage = {}}
}, {}];
Window modules [“1276”] = [Function (required, module, export) {! Function (s) {var t = function (s) {return new y (e)}; tversion = “068”, “undefined”! = Module type&&modules exported? Module exported = t: “function” == typeof define&&defineamd? define (function () {return t}): etypogr = t; var n = function (e, t) {return new RegExp (e, t)}, s = /] *> / i, r = tamp = function (e) {var t = / ( s |) (& | & | & # 38;) ( s |) / g; if (e || “string” == typeof e) returns e replace (/ ()? ([^)? / g, function (e, n, r, a) {return a = a || “”, ( n = n || “”) match (s)? nra: n (r = rReplace (t, ‘$ 1& $ 3’)) a})}, a = tord = function (e) {if (e | | “string” == typeof e) {var t, n = f (e), r = [], a =! 1, p = / ( d) (st | nd | rd | th) / g; return nforEach (function (s) {“tag” === eType? (rpress (etxt), t = sexec (etxt), a =! (! t || void 0! == t [1])): a ? rpress (etxt): rpress (eTXTersetzen (p, ‘$ 1 $ 2’))}), rjoin (“”)}}, p = tinitQuotes = function (s) {var t = n (“(?: ( ?:] *> | ^) \ s * (?:] *> \ s *) *) (?: ( “|” | “) | (‘|’ | ‘))”, “I” ); if (e || “string” == typeof e) returns e reset (t, function (e, t, n) {var s = t? “dquo”: “quo”, r = t || n; return [ eSheibe (0, elastIndexOf (r)), ”, r, “”] join (“”)})}, c = twidont = function (e) {var t = “(?:] *?>) *? [^ \ s] (? 🙁 ?: a | em | span | strong | i | b) [^>] *?>) *? “, s = n (” (\ s “t” \ s “t”) (?: \ s) ([^ \ s] (?: \ s * (?: a | em | span | strong | i | b) [^>] *?> \ s * \ *) *? (?: \ s *? (?: p | h [1-6] | li | dt | dd)> | $)) “,” gi “); return eReplace (s, ‘$ 1 $ 2’)}, i = tcaps = function (e) {var t, r = f (e), a = [], p =! 1, c = n (“((\ b [AZ \ d] * [AZ] \ d * [AZ] [AZ \ d ‘] * \ b) | (\ b [AZ] \ s? (?: [AZ] \\ s?)) (?: \ s | \ b | $)) “,” g “); return rforEach (function (s) {“tag” === eType AdPress (etxt), t = sexec (etxt), p =! (! t || void 0! == t [1])): p? adpress (etxt): adpress (eTXTersetzen (c, function (e, t, n, s) {var r, a; return n? ‘% s’ersetzen (“% s”, n) 🙁 “” === sScheibe (-1) & le; (r = sScheibe (0, -1), a = “”) 🙁 r = s, a = “”), replace ‘% s1% s2’ (“% s1”, r ) replace (“% s2”, a))}))}), aJointtypogrify = function (s) {var t = e; return ejquery&&ehtml&& (t = ehtml ()), t = r (t), t = c (t), t = u (t), t = i (t), t = p (t), t = a (t )}; var l, o, u = tsmartypants = function (e) {var t, n, r = f (e), a = [], p = [], c = “”, i = “”, l =! 1, o = “”; return rforEach (function (e) {if (“tag” === eType adress (etxt), null! == (i = sexec (etxt)) && (c = i [2] toLowerCase (), i [1] ? (pLength> 0&&c === p [SLength-1] &&ppop (), 0 === plength&& (l =! 1)) 🙁 ppush (c), l =! 0)); else {if (n = (n = eTXT) Replace (/ (rock) ‘n’ (roll) / gi, “$ 1’n ‘$ 2”), t = nDisk (-1),! l) switch (n = g (n), n = h (n), n = d (n), n = x (n)) {case “‘”: n = / S /test (o)? “”: “”; break; case “”: n = / S / test (o)? “” “:” “”; break; default: n = m (n)} o = t, apush (n)}}), ajoin (“”)}, f = ttokenize = function (s) {for (var t, n = [], s = 0 , r = / ([^] *>) / gi; null! == (t = rexec (e));) {var a = t [1], p = t [2]; a&&npush ({type: “Text”, txt: a}), npush ({type: “Tag”, txt: p}), s = rlastIndex} return rlastIndex) / g, “$ 1 -“)}, d = tsmartEllipses = function (s) {return ereplace (/ \/ G, “…”) replace (/ / g, “”)}, x = tsmartBackticks = function (s) {return ereplace (/` `/ g,” “”) replace (/ ” / g, “” “)}, m = tsmartQuotes = function (s) {var t = “(? =% s \ B)” replace (“% s”, “[! ” # \ $ \% \ ‘() *, – \ /:;? \ @ [\\] \ ^ _ `{|} ~]”), s = “[^ \ \ t \ r \ n \ [ {\ (\ -]” , r = n (“(\ s | | – | & [mn] dash; | – | – | ȁ [34];) ‘(? = \ w)”, “g”), a = n ( “(” s “) ‘(?! \ s | s \ b | \ d)”, “g”), p = n (“(” s “))’ (?! \ s | s \ b) “,” g “), c = n (‘(\ s | | – | & [mn] dash; | – | – | ȁ [34];)” (? = \ w)’ , “g”), i = n (‘”(? = \ s)’,” g “), l = n (” (“s ‘)”‘, “g”); return eersetzen (n (” ^ ‘% s “) replace (“% s “, t),” g “),”‘ “) replace (n (‘^”% s’) replace (“% s”, t), “g”) , “” “) replace (/” ‘(? = w) / g, “”‘ “) replace (/ ‘” (? = w) / g, “‘” “) replace (/ b ‘( ? = d {2} s) / g, “‘”) replace (r, “$ 1”) replace (a, “$ 1”) replace (p, “$ 1’ $ 2”) replace (“‘ “,” ‘”) replace (c,” $ 1 “”) replace (i, “” “) replace (l,” $ 1 “”) replace Si e (‘”‘,” “”)}, y = function (e) {this_wrapped = e}, v = function (e, n) {yPrototype [e] = function () {return e = calls to (t, that wrapped), dies_chain? t (e) chain (): e; var e}}; for (l in t) thasOwnProperty (l) && ((o = t [l]) &&o constructor&&ocall&&o apply) && [lv] l); yPrototypechain = function () {return this_chain =! 0, this}, yPrototypevalue = function () {return this_wrapped}} (this);
}, {}];
Window modules [“1358”] = [Function (required, module, export) {“use strict”; const universalAgora = required (1360), universalRest = required (9), universalQuery = required (1359), _ get = required (23); Function searchByQueryWithRawResults (e, r) {const t = `// $ {rPage? ˅Host} $ {80! == rpage? port? `: $ {rpage? ˅port} `:” “} $ {rPage? ˅path} / _ agora / _search`; return universalRestpost (t, e,! 0)} function getProducts (e, r, t) {return searchByQueryWithRawResults (universalAgorabuildProductsQuery (e), r) then (e => {const r = universalQueryformatSearchResult (e); return {total: eTrefferTotal Products: t? UniversalAgorafilterByLocale (r): r}})} Function getMerchantsList (e) {return searchByQueryWithRawResults (universalAgorabuildMerchantsAggregation (1e6, _get (e, “siteagoraLocale”)) “, e) then (dealer QueryesformatAggregation: Field: “Key”, sub-field: “Name”}))} ModulExportegetProduct = universalAgoragetProduct, ModulExportegetProducts = getProducts, ModulExportegetMerchantsList = getMerchantsList, ModulExportesearchByQueryWithRawResults = searchByQueryWithResultsults = searchByQueryWithRawerBesults = searchByQueryWithMerchantsByQueryUport = searchByQueryWithRawerExchants;
}, {9: 9, 23: 23, 1359: 1359, 1360: 1360}];
Window modules [“1359”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ get = require (23), _ isArray = require (150), _ set = require (107), _isObject = require (88), _ cloneDeep = require (60), _ uniq = require (91); function formatSearchResult (e) {return _map (eTrefferTreffer, “_ source”)} Function newQuery (e) {if (! e) raises a new error (“An index is required to create a query”); return {index: e, type: “_ doc”, body: {query: {}}}} function addShould (e, o) {var t = _get (e, “bodyAbfrageBoolsollte”, void 0), r = _isArray ( O); return t? r? _set (e, “bodyAbfrageBoolsollte”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolsollte”, t)): _ set (e, “bodyAbfrageBoolsollte”, r? o: [o]) , e} function addMust (e, o) {var t = _get (e, “bodyAbfrageBoolmust”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmuss”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmuss”, t)): _ set (e, “bodyAbfrageBoolmust”, r? o: [o]) , e} function addMustNot (e, o) {var t = _get (e, “bodyAbfrageBoolmust_not”, void 0), r = _isArray (o); return t? r? _set (e, “bodyAbfrageBoolmust_not”, tconcat (o)) 🙁 tpresses (o), _ set (e, “KörperAbfrageBoolmust_not”, t)): _ set (e, “bodyAbfrageBoolmust_not”, r? o: [o]) , e} function addFilter (e, o) {var t = _get (e, “bodyAbfrageBoolfilter”, void 0); if (! _ isObject (o)) throws a new error (“filter query must be an object”); return t? _isArray (t)? (tpresses (o), _ set (e, “KörperAbfrageBoolfilter”, t)): _ set (e, “bodyAbfrageBoolfilter”, [_ cloneDeep (t), o]): _ set (e, “bodyAbfrageBoolfilter”, o) , e} Function addMinimumShould (e, o) {if (“number”! = typeof o) triggers a new error (“A number is required as a second argument”); return _set (e, “bodyAbfrageBoolMinimum_should_match”, o), e} function addSort (e, o) {var t = _get (e, “bodysort”); return _isArray (t) || _set (e, “bodysort”, t = []), tpush (o), e} function addSize (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) trigger a new error (`Second argument must be a number: $ {o}`); return _set (e, “bodysize”, o)} function addFrom (e, o) {if (! o&&0! == o) return e; if (o = parseInt (o), isNaN (o)) throw new Error (`The second argument must be a number: $ {o}`); return _set (e, “bodyfrom”, o)} function onlyWithTheseFields (e, o) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); return _set (e, “body_Sourceinclude”, _ uniq (o)), e} function onlyWithinThisSite (e, o) {return osubsiteSlug? addFilter (e, {term: {subsite: osubsiteSlug}}) 🙁 addFilter (e, {term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), e } function onlyWithinThisDomain (e, o) {return addFilter (e, {Prefix: {canonicalUrl: `http: // $ {Öhost}`}}), e} Function within this SiteAndCrossposts (e, o) {var t = { term: {}}, r = {bool: {should: [], minimal_should_match: 1}}; return t term [“Crosspost” (ÖsubsiteSlug || oSchnecke)] =! 0, rBoolsolltedrücke (t), osubsiteSlug? rBoolsolltepush ({term: {subsite: osubsiteSlug}}) 🙁 rBoolsolltepush ({term: {site: oslug}}), addMustNot (e, {exists: {field: “subsite”}})), addFilter (e, r ), e} Function within thisDomainOrCrossposts (e, o) {return addShould (e, {term: {[`Crosspost $ {osubsiteSlug || oslug}`]:! 0}}), addShould (e, {Prefix: {canonicalUrl : `http: // $ {oHost}`}}), addMinimumShould (e, 1), e} Function moreLikeThis (e, o, t) {let r = {fields: [“Tags”], like: {_ Index: eingex, _type: “_ doc”, _ id: o}, include:! 1, min_term_freq: 1, max_query_terms: 12, min_doc_freq: 1}; return {more_like_this: assign object (r, t)}} function addAggregation (e = {}, o) {const {body: t = {}} = e; return o? (taggs? _set (e, “bodyaggs”, assign objects (taggs, o)): _ set (e, “bodyaggs”, o), e): e} function formatAggregationResults ({aggregationName: e = “”, field: o = “”, subfield: t = “”, skipEmpty: r =! 0}) {return function (s = {}) {let i = _get (s, `Aggregations $ {e} $ {t?” “t” “:” “} Buckets`, []); Return r&& (i = iFilter (e => 0! == _ get (e, “doc_count”, 0))), imap (e => e [o] || “”)}} function addGeo (e, o ) {if (! _ isArray (o)) throws a new error (“The second argument must be an array”); if (2! == oLength) trigger a new error (“Array must be length 2”); if (oEinige (isNaN)) throw a new error (“Array may only contain numbers”); return _set (e, “body returnAbfragegeo_shapeLagegestaltenTyp”, “Punkt”), _ set (e, “KörperAbfragegeo_shapeLagegestaltenKoordinaten”, o), e} function combinFunctionScoreQueries (e, o) {let t = _cloneDeep (_get (e, “bodyAbfrage” {})), r = _cloneDeep (_get (o, “bodyAbfrage”, {})), s = _get (e, “bodysort”); return _set (e, “bodyAbfrage”, {}), _ set (e, “bodyAbfragefunction_scoreFätze”, []), eBodyAbfragefunction_scoreFunctionspush ({filter: t, weight: 20}), eBodyAbfragefunction_scoreFunctionspush ({filter: r, weight: 10} ), eBodyAbfragefunction_scorescore_mode = “max”, eBodyAbfragefunction_scoremin_score = 10, _isArray (s) || _set (e, “bodysort”, s = []), sDo not move ({_ score: “desc”}), e} function addNestedObjQuery (e, o, t) {if (! e) triggers a new error ( “There is no base query to perform the addNestedObjQuery operation”); if (! o) throw new error (“There is no nested object path on which the nested query can be executed”); if (! t) throw new error (“There is no nested query path on which the nested query can be executed”); return _set (e, “nested”, {path: o, query: t}), e} function addMatchAll (e) {return _set (e, “bodyAbfrage”, {match_all: {}}), e} module exported = newQuery , ModulExporteaddGeo = addGeo, ModulExporteaddAggregation = addAggregation, ModulExporteaddShould = addShould, ModulExporteaddFilter = addFilter, ModulExporteaddMust = addMust, ModulExporteaddMustNot = addMustNot, ModulExporteaddMinimumShould = addMinimumShould, ModulExporteaddSort = addSort, ModulExporteaddSize = addSize, ModulExporteaddFrom = addFrom, module exports only with These Fields = only with synthesis fields, module exports only within this Site = only within this site, module exports only within this domain = onlyWithinThisDomain, ModulExportwithin ThisSiteAndCrossposts = within ThisSiteAndCrossposts, ModulExportwithin ThisDomainOrCrossposts = within ThisDomainOrCrossposts, ModulExporteformatAggregationResults = formatformatAggregationResults, ModulExporte eThis = moreLikeThis, ModulExportecombinFunctionScoreQueries = combinFunctionScoreQueries, ModulExporteaddNestedObjQuery = addNestedObjQuery, ModulExporteaddMatchAll = addMatchAll;
}, {23: 23, 50: 50, 60: 60, 88: 88, 91: 91, 107: 107, 150: 150}];
Window modules [“1360”] = [function (required, module, export) {(function (process, __ file name) {(function () {
“use strict”; const _forEach = require (40), _ get = require (23), _ filter = require (134), _ map = require (50), _ isEmpty = require (87), urlParse = require (51), log = require (22) setup ({file: __ filename}), queryService = require (1359), universalRest = require (9), AGORA_HOST = windowProzessenvAGORA_HOST, AGORA_ELASTIC_PREFIX = window processesvAGORA_ELASTIC_PREFIX, AGORA_ENDPOINT =? AGORA_HOSTOINT =? `$ {AGORA_HOST} / api / v1`: null, requestHeader = {” Content Type “:” application / json “}, PRODUCTS_INDEX =” agora-products “, AFFILIATES_INDEX = =” Retailer “, FILTER_KEY = {Dealer:” Name ” , Partner: “Partner”}, URL_RE = / ^ https?: / / * $ /; Function getProducts (e, t) {const {limit: r = 100, start: a = 0, search: s = “”, sortDate: c = “desc”} = e, n = `$ {AGORA_ENDPOINT} / products? limit = $ {r} &start = $ {a} &search = $ {encodeURIComponent (s)} &sortDate = $ {c} `; return fetch (n) then (handleResponse) then (e => t? filterByLocale (e, t): e) then (e => ({total: eLength, products: e})) catch (handleError (n))} Function getProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`; if (! AGORA_ENDPOINT) triggers a new error (“No Agora endpoint was set”)); if (“string”! = typeof e) throw new Error (“Request must provide a product ID”); return fetch (r) then (handleResponse) then (e => t? filterByLocale (e, t): e) catch (handleError (r))} function postProduct (e) {const t = `$ {AGORA_ENDPOINT} / products` , r = {method: “POST”, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function patchProduct (e, t) {const r = `$ {AGORA_ENDPOINT} / products / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteProduct (e) {const t = `$ {AGORA_ENDPOINT} / products / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function getMerchantList (e) {const {limit: t = 100, fields: r = “”} = e; Return promise resolve ([{name: “Amazon”}]) catch (handleError (“”))} function getMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; if (“string”! = typeof e) triggers a new error (“Request must provide a product ID”); return fetch (t) then (handleResponse) catch (handleError (t))} function patchMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / dealer / $ {e}`, a = {method: “PATCH” , Header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function postMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants`, r = {method:” POST “, header: requestHeader, Body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function putMerchant (e, t) {const r = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`, a = {method: ” PUT “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function deleteMerchant (e) {const t = `$ {AGORA_ENDPOINT} / Merchants / $ {e}`; return fetch (t, {method: “DELETE”, header: requestHeader}) then (handleResponse) catch (handleError (t))} function postLocale (e) {const t = `$ {AGORA_ENDPOINT} / locales /`, r = {Method: “POST”, header: requestHeader, body: JSONstringify (e)}; return fetch (t, r) then (handleResponse) catch (handleError (t))} function patchLocale (e, t) {const r = `$ {AGORA_ENDPOINT} / locales / $ {e}`, a = {method: ” PATCH “, header: requestHeader, body: JSONstringify (t)}; return fetch (r, a) then (handleResponse) catch (handleError (r))} function handleResponse (e) {try {return ejson () then (t => {if (estatus> = 400) {const e = _get ( t, “messageDetails [0] message”); throw a new error (e)} return t})} catch (e) {throw a new error (emessage)}} function handleError (e) {return t => {throw log (“warn”, `Failed request to $ {e}`, t), new error (`Request to $ {e} failed`)}} Function buildProductsQuery ({search: e =” “, limit: t = 100 , start: r = 0, sortDate: a = “”, filter: s, locale: c}) {const n = queryService (PRODUCTS_INDEX), o = s&&Object key length? ObjectKeyFilter (e => ArrayisArray (s [e]) &&s [e] length): [], i = {}, u = {}; if (prependElasticPrefix (n), e || oLength || c || queryServiceaddMatchAll (n), c&& (queryServiceaddMust (i, {match: {“localesCharacter”: c}}), queryServiceaddMustema (. DealerCountry: {“DealerCountry: {” DealerCountry) “: c}})), e) if (isURL (e)) queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({},” Händler “, {match: {” HändlerbuyUrl “: e}})]); else {const t = {}; queryServiceaddShould (t, [{match: {“localesproductId”: e}}, {match: {“locale name”: {query: e, boost: 2}}}]), queryServiceaddMinimumShould (t, 1), queryServiceaddMust (i, _get (t, “body) query”))} if (oLength) {const e = {}; oforEach (t => {const r = s [t], a = FILTER_KEY [t], c = {}; a&& (c [`dealer) $ {a}`] = r, queryServiceaddShould (e, {terms: c }))}), queryServiceaddMinimumShould (e, 1), queryServiceaddMust (u, _get (e, “body) query”))} return _isEmpty (i) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “locales”, _ get (i, “bodyAbfrage”))]), _ isEmpty (u) || queryServiceaddMust (n, [queryServiceaddNestedObjQuery ({}, “Dealer”, _ get (u, “bodyAbfrage”))]), queryServiceaddSize (n, t), r> = 0&&queryServiceadd=From (n, r), “desc” a || “asc” === a? queryServiceaddSort (n, {updatedAt: {order: a}}): e&&queryServiceaddSort (n, {_ score: {order: “desc”}}), n} function prependElasticPrefix (e) {return eingex = AGORA_ELASTIC_PREFIX? `$ {AGORA_ELASTIC_PREFIX} _ $ {eingex}`: eingex, e} Function buildMerchantsAggregation (e = 1e6, t) {const r = queryService (PRODUCTS_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {active:! 0}}), t&&queryServiceaddMust (r, queryServiceaddNestedObjQuery ({}, “Dealer”, _ get ({matchServiceaddMust ({} “, : t}}), “bodyAbfrage”))), queryServiceaddAggregation (r, {dealer: {nested: {path: “dealer”}, aggs: {name: {terms: {field: “dealer name”, size: e} }}}}), queryServiceaddSize (r, 0), r} function isURL (e) {URL_RE returned test (e)} function filterByLocale (e, t, r = {locales: “US”}) {const a = ArrayisArray ( e); if (_isEmpty (e)) returns a? []: {}; const s = [“locales”, “dealers”], c = a? e: [e], n = ObjectKey (r), o = _map (c, e => {const a = assign object ({}, e); _forEach (s, s => {if (ObjectKey (a) contains ( s)) {const c = t? _filter (e [s], [“Locale”, t]): e [s]; a [s] = c,! clength&&ncontains (s) && (a [s] = ( _ Filter (e [s], [“Locale”, r [s]]) || []) map (e => (eid = null, eLocalschema = t, e)))}}), aname = _get ( a, “locales [0] name”, “”), a}); return a&&oLength? o: _get (o, “[0]”, {})} function searchByQueryWithRawResults (e, t) {const r = `// $ {tpage? ˅Host} $ {80! == tpage? port? `: $ {tpage? ˅port} `:” “} $ {tpage? ˅path} / _ agora / _search`; return universalRestpost (r, e,! 0)} function buildMerchantsByUrlQuery (e) {const t = queryService (PRODUCTS_INDEX); return prependElasticPrefix (t), queryServiceaddNestedObjQuery (tBodyAbfrage, “Händler”, {match: {“HändlerbuyUrl”: e}}), t} function getAffiliatesByLocale (e, t) {const r = queryService (AFFILIATES_INDEX); return prependElasticPrefix (r), queryServiceaddMust (r, {match: {locale: e}}), queryServiceaddSize (r, 1e3), queryServiceaddSort (r, {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “TreffenTreffer”, []) map (e => _ get (e, “_ source”, {}))}} function getRetailersByAffiliateId (e, t) {const r = queryService (RETAILERS_INDEX) ; return e? (prependElasticPrefix (r), queryServiceaddMust (r, [queryServiceaddNestedObjQuery ({}, “AffiliateRetailers”, {match: {“AffiliateRetailers” Affiliate-ID “: e}})]), queryServiceaddSize (r, 1e3), queryServiceaddSort (r, {name: “asc”}), searchByQueryWithRawResults (r, t) then (e => _ get (e, “HitTreffer”, []) map (e => _ get (e, “_ source” , {})))): PromiseReject ()} function getMerchantsList (e) {return searchByQueryWithRawResults (buildMerchantsAggregation (1e6, _get (e, “site) agoraLocale”)), e) then (queryServiceformatAggregationResults ({“dealer , Field: “Key”, Subfield: “Name”}))} Function queryRetai lersByUrl (e, t) {const r = urlParse (e) host split (“www”) join (“”), a = queryService (RETAILERS_INDEX); return queryServiceaddMust (a, {match: {Domains: r}}), prependElasticPrefix (a), queryServiceaddSize (a, 10), searchByQueryWithRawResults (a, t) then (e => _ get (e, “HitTreffer”, [] ) map (e => _ get (e, “_ source”, {}))}} require (208), moduleExporte = {buildProductsQuery: buildProductsQuery, buildMerchantsAggregation: buildMerchantsAggregation, getProducts: getProducts, getProduct: getProduct, postProduct,: postProduct: putProduct: putProduct, patchProduct: patchProduct, deleteProduct: deleteProduct, getMerchantList: getMerchantList, getMerchant: getMerchant, postMerchant: postMerchant, patchMerchant: patchMerchant, putMerchant: putMerchant, putMerchant: putMerchant, deleteMerchant, putMerchant: patchLyLocale, filterLocale: patchLyLocale: filterLocale: patchLocale filter, delete: isLocale: patchLocale: postLocale, buildMerchantsByUrlQuery: buildMerchantsByUrlQuery, getAffiliatesByLocale: getAffiliatesByLocale, searchByQueryWithRawResults: searchByQueryWithRawResults, getRetailersByAffiliateId: getRetailersBdy hantsList: getMerchantsList, queryRetailersByUrl: queryRetailersByUrl};

}) call (this)}) call (this requires (11), “/ services / universal / agorajs)}, {9: 9, 11: 11, 22:22, 23:23, 40:40, 50:50 , 51: 51, 87: 87, 134: 134, 208: 208, 1359: 1359}];
Window modules [“1361”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ mapValues ​​= require (203), _ reduce = require (90), _ assign = require (138), _get = require (23), _ pickBy = require (139), _ find = require (43), AffiliateFields = [“siteShortKey”, “pageUri”, “productId”, “utmMedium”, “utmSource”, “format”, “utmCampaign”, “referrer”, “deviceAbbreviation”, “zone”] , AffiliateSettings = {amazon: {Domains: [“amazoncom”, “amazoncouk”], subtagKey: “ascsubtag”, maxLength: 99, separator: “standard”, encode:! 1}, narrative: {Domains: [“shop-linksco /”], subtagKey: “u1”, maxLength: 99, separator: “standard”, encode:! 0}, rakuten: {Domains: [“clickLinksynergiecom / deeplink”, “linksynergyWalmartcom / deeplink”], subtagKey: “u1”, maxLength: 72, separator: “standard”, encode:! 1}, shareasale: {Domains: [“shareasalecom”], subtagKey: “afftrack”, maxLength: 99, separator: “standard”, encode:! 1}, Skimlinks: {Domains: [“goUmleitungcom”], subtagKey: “xcust”, maxLength: 50, separator: “old”, encode:! 1}, effect: {Domains: [], subtagKey: “subId2”, maxLength: 99, separator: “standard”, encode:! 1}, Avantlink: {Domains: [“Avantlinkcom”], subtagKey: “ctc”, maxLength: 64, separator: “old”, code:! 1}, cj: {Domains: [“tkqlhcecom”, “jdoqocycom”, “dpbolvwnet”, “anrdoezrsnet”, “kqzyfjcom”], subtagKey: “sid”, maxLength: 64, separator: “old”, code:! 1, joinBy: “/”, assignBy: “/”, positioned:! 0, position: “after”, positionKey: “type / dlg /”}, in partnership: {Domains: [“prfhn”], subtagKey: “pubref”, maxLength: 100, separator: “old”, encode:! 1, joinBy: “/”, assignBy: “:”, positioned:! 0, position: “before”, positionKey: “Ziel”}, Pepperjam: {Domains: [“gopjncom”, “pntraccom”, “pjtracom”, “pjatrcom”, “pntrscom”, “pntracom”], subtagKey: “sid “, maxLength: 100, separator:” old “, encode:! 1}, awin: {Domains: [“awin1com”], subtagKey: “pref1”, maxLength: 100, separator: “old”, encode:! 1, positioned:! 0, position: “before”, positionKey: “ued”}}, subtagDictionary = {siteShortKey: “”, pageUri: “p”, productId: “i”, zone: “z”, deviceAbbreviation: “d”, utmSource: “s”, utmMedium: “m”, utmCampaign: “c”, referrer: “r”, format: “t”}, separator = {standard: [“[“, “]”], old: [“__” , “_”]}; Function parseValueFromSubtag (e, t, i) {const a = t [0] et [1], s = isplit (a) [1] || “”; return s? ssplit (t [0]) [0]: null} Function parseSubtag (e, t = LimiterStandard) {return _pickBy (_mapValues ​​(subtagDictionary, i => parseValueFromSubtag (i, t, e)))} Function generateSubtag (e , t, i = LimiterStandard, a =! 1) {const s = (e => t => `$ {e [0]} $ {t} $ {e [1]}`) (i); let n = _reduce (AffiliateFields, (t, i) => {const a = s (subtagDictionary [i]), n = e [i]; return t (n? an: “”)}, “”); return a&& (n = encodeURIComponent (n)), n} function applySubtagMaxlength (e, t) {var i = t-3 * (eDivided (“,”) length-1 esplit (“|”) length-1); Returns esubstr (0, i)} function getSubtagData ({getters: e, fields: t = [], visitState: i, locals: a, productLink: s}) {let n = {}; return tforEach (t => {n [t] = e [t] &&e [t] ({visitState: i, local: a, productLink: s})}), n} function parseQuery (e = “”) {return esplit (“&”) reduce ((e, t) => {const i = tsplit (“=”) [0], a = tsplit (“=”) [1]; return void 0! == a&& (e [i] = a), e}, {})} function processSubtagPosition ({url: e, positionKey: t, subtagKey: i, position: a = “after”, subtagString: s, joinBy: n, assignBy: o} = {}) {const [r, l] = esplit (t), u = `$ {i} $ {o} $ {s}`, g = []; if (“after” === a) {if (! l) return e; const [a, s = “”] = lsplit (`$ {i} $ {o}`), d = ssplit (n) slice (1) join (n); gpush (`$ {r} $ {t}`, u), a&&gPress (a), d&&gpush (d)} if (“before” === a) {const [e, a = “”] = rsplit ( `$ {i} $ {o}`), s = asplit (n) slice (1) join (n); gPress (e), s&&g press (s), gpush (u, `$ {t} $ {l}`)} return greduce ((e, t) => {return eSlice (-1) === n&& (e = eScheibe (0, -1)), eLength? [e, t] join (n): t}, “”)} Function processSubtag ({getters: e, Affiliate: t, URL: i, visitState: a = { }, Locals: s}) {const n = AffiliateFields, o = _get (AffiliateSettings [t], “subtagKey”), r = _get (AffiliateSettings [t], “maxLength”), l = _get (AffiliateSettings [t], “encode”), u = _get (AffiliateSettings [t], “separator”), g = _get (AffiliateSettings [t], “positioned”,! 1), d = _get (AffiliateSettings [t], “position”), c = _get (AffiliateSettings [t], “PositionKey”), p = _get (AffiliateSettings [t], “assignBy”, “=”), m = _get (AffiliateSettings [t], “joinBy”, “&”), f = delimiter [u]; let b, y, S = iindexOf (“?”)> = 0? iTeils (“?”) pop (): “”, h = parseQuery (S), _ = getSubtagData ({getter: e, fields: n, visitState: a, local: s, productLink: i}); return o&& (y = h [o] || “”, y = applySubtagMaxlength (b = generateSubtag (_ = _ assign (parseSubtag (y, f), _ pickBy (_)), t, f, l), r) , h [o] = y, S = _map (h, (e, t) => `$ {t} = $ {e}`) join (“&”), i = g? processSubtagPosition ({url: i , positionKey: c, subtagKey: o, position: d, subtagString: y, joinBy: m, assignBy: p}): isplit (“?”) [0] `? $ {S}`), i} function getAffiliate ( e) {const t = ObjectKey (AffiliateSettings); Return _find (t, t => _ find (AffiliateSettings [t]) domains, t => eincludes (ttoLowerCase ()))) || “”} Function createSubtagProcessor (e) {return ({url: t, visitState: i, locals: a, affiliate: s}) => (s = getAffiliate (t) || s)? processSubtag ({getters: e, url: t, Affiliate: s, visitState: i, Locals: a}): “”} ModulExportegenerateSubtag = generateSubtag, ModulExportegetAffiliate = getAffiliate, ModulExportecreateSubtagProcessor = createSubtagProcessor, ModulExporteproubtag = processSubtag;
}, {23: 23, 43: 43, 50: 50, 90: 90, 138: 138, 139: 139, 203: 203}];
FensterModule [“Artikel-Naviclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ throttle = required (37), $ visibility = required (1), $ popup = required (53), $ gtm = require (4), {reportSocial: reportSocial} = require (52) , auth0 = require (12); module exported = (t => {let e = domfind (“page header”), i = domfind (“article content”), o = domfind (t, “deepscroll-headline”), r = domfind (t, “deepscroll-rubric” ), l = domfind (t, “deepscroll-rubric-sponsored”), s = domfind (“article article header rubric”), n = domfind (“# deepscroll_center_divider”), a = domfind (“tone paragraph”) , d = domfind (t, “Logo”), c = domfind (t, “Dyn-Cut-Logo”), p = domfind (t, “article-nav-top”), u = domfind (t, “article -nav-deepscroll “), m = domfind (‘link [rel =” canonical “]’), f = m&&mgetAttribute (” href “), g = domfind (‘meta [property =” og: image “]’)? domfind (‘meta [property = “og: image”]’) getAttribute (“content”): “”, h = domfind (‘meta [property = “og: title”]’)? domfind (‘meta [property = “og: title”] ‘) getAttribute (“content”): “”, y = domfind (t, “Share a link Facebook”), w = domfind (t, “Share a link twitter”), v = domfind (t, “Share a link pinterest”), b = tclassListenthalt (“header-simple”), x = windowgetComputedStyle (d, null) getPropertyValue (“- targetFlexBasis”), L = window getComputedStyle (d, null) getPropertyValue (“- verticalStart”) || 0, C = window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || 0, $ =! 1, _ = 55; Function k () {_ = parseInt (window getComputedStyle (d, null) getPropertyValue (“- stickyTop”)) || _, C = $ visibility getViewportWidth ()> = 1180? -FenstergetComputedStyle (d, null) getPropertyValue (“- verticalEndDesktop”) || C: window getComputedStyle (d, null) getPropertyValue (“- verticalEnd”) || C} function S () {$ =! 1, P ()} Function P () {let {top: o} = tgetBoundingClientRect (), r = window getComputedStyle (d, null) getPropertyValue (“- baseFlexBasis”), l = rx, s = (_- egetBoundingClientRect () above) / _, n = Mathmax (0, Mathmin (1, s)), m = LC-2, f = Mathrund (L- (m * n 2)), g = MathCeil (rl * n); if (st? eclassListadd (“Header-after-Scroll”): eclassListentfernen (“Header-After-Scroll”), pStiltop = C “px”, uStiloben = C “px”, void (dStilflexBasis = x “px”)} WindowScrollY> o? TclassListadd (“after-scroll”): tclassListEntfernen (“After-Scroll”), WindowScrollY> o? EclassListadd (“Header-after-Scroll”): remove eclassList (“Header-After-Scroll”), pStiltop = f “px”, uStiltop = f “px”, dStilflexBasis = g “px”, c&& (cStilflexBasis = g “px”), $ VisibilitygetViewportWidth ()> = 1180&&i&&i&CHAR&i& =) -70: 0, e = $ Visibility getPageOffset (i) above, o = Mathemax (e, t); return Mathmax (WindowScrollY, DocumentBodyScrollTop)> = o} ()? TclassListadd (“deep-scroll”): tclassListremove (“deep -scroll “)} Function V (t) {var e = tcurrentTarget, i = egetAttribute (” href “), o = egetAttribute (” data handle “), r = $ popupgetPopupClass (eclassList), l = $ visibilityisBelowPrimaryConten t (e)? “bottom”: “top”; $ gtmreportNow ({Event: “Social-Share-Widget”, clickLocation: l, socialNetwork: r}), reportSocial (r), $ VisibilitygetViewportWidth ()> = 768&&r&& (tverhindereDefault, o, iow) (rupuppereDefault (), $ popupp) )}! function () {const e = _throttle (P, 30); if (k (), domfindAll (t, “Share a link”) forEach (t => taddEventListener (“click”, V)), y&& (yhref = “http: // wwwFacebookcom / sharer / sharerphp? u =” f “? utm_source = fb&utm_medium = s3&utm_campaign = sharebutton-t”), w&& (whref = “https: // twittercom / share? text =” encodeURIComponent (h) “encodeURIComponent (h)” &_CutCutCutCANDCutCutCutCUTCANDCUTCUTCUTCUTCANDCUTCUTCANDCUTCutCutCutCutCutCutCutCutCutCutCutCutCutCutCutCutCutC = “wgetAttribute (” Datenhandle “)), v&& (vhref =” http: // pinterestcom / pin / create / button /? url = “f”? utm_source = pin&utm_medium = s3&utm_campaign = sharebutton-tCURR) ” &media = “g), b) return; auth0on (“init”, () => {auth0isSubscriber () &&tclassList add window (“subscribed”)}) addEventListener (“scroll”, e), window addEventListener (“resize”, S), window addEventListener (“resize”, k) s? sclassListenthalt (“Rubric-Sponsor-History”) &&l? (rclassListenternen (“visible”), lclassListadd (“visible”), ltextContent = sText || stextContent) 🙁 rtextContent = sText || stextContent, rhref = shref || “#”) 🙁 nStildisplay = “none”, rStildisplay = “none”); S (), otextContent = h} ()});
}, {“1”: 1, “3”: 3, “4”: 4, “12”: 12, “37”: 37, “52”: 52, “53”: 53}];
FensterModule [“Navi-Such-Buttonclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (4), {reportSearch: reportSearch} = require (52), openClass = “open”, closeClass = “closed”; Module exported = (e => {const s = e, t = domfind (e, “nav-search-button-trigger”), n = domfind (e, “nav-search-form”), o = domfind (e, “Search input”); Function i () {const e = domfind (“body”); switch sclassList (closeClass), switch sclassList (openClass), switch eclassList (“deactivated”), switch eclassList (“search active”)} Function c () {i (), sclassListenthalts (openClass) &&ofocus ()} Function a (e) {! senthalts (eZiel) &&sclassListenthalts (openClass) &&i ()} Function r (e) {27 === ekeyChAR&i ()} Function r (e) {27 === ekeyCANDCHARANDCSSE} Function r (e) {27 === ekeyCANDCHARANDCSSE} function (e) {everhindereDefault (), $ gtmreportCustomEvent ({category: “search”, label: “on =” windowLagehref, Aktion: oWert}), reportSearch ((oValue || “”) split (“”), () = > nsubmit ())}! function (e, s, t) {s&&saddEventListener (“click”, c); t&&taddEventListener (“submit”, d); eaddEventListener (“click”, a), Document addEventListener (“keydown”, r), eaddEventListener (“touchend”, a), naddEventListener (“submit”, d)} (domfind (“body”), t, domfind (e, “nav-search-form Submit “))});
}, {“3”: 3, “4”: 4, “52”: 52}];
FensterModule [“Navi dropdown button client”] = [Function (required, module, export) {“use strict”; const dom = required (3), visibility = required (1), {reportSearch: reportSearch} = required (52); Function getNextSchildren (e) {const t = []; let i = e; for (; i = inextElementSibling;) tpush (i); return t} function getMainChildren (e, t) {let i = [], n = efirstChild; for (; n = nnextElementSibling;) ncontains (t)? nisSameNode (t) || (i = iconcat (getMainChildren (n, t))): ipush (n); return i} function isMobile () {return visibilitygetViewportWidth () {let t; const i = equerySelector (“nav-dropdown-button-trigger”), n = domfind (“body”), o = domfind (“above”), l = domfind (“confetti list”), s = domfind (” nav-dropdown-button_nymag-homepage “), r = domfind (” headerSeitenkopf “) || o, c = domfind (‘[data-editable = “main”]’), a = domam next (e, “page header”), d = a? aquerySelectorAll (“Confetti image blue”): “”, g = a? aquerySelectorAll (“confetti image green”): “”, u = a? aquerySelectorAll (“confetti image orange”): “”, f = a? aquerySelectorAll (“Konfetti-Bildorange2”): “”, m = a? aquerySelectorAll (“Confetti-Bildpink”): “”, p = a? aquerySelectorAll (“confetti image purple”): “”, h = a? aquerySelectorAll (“Confetti-Bildgelb”): “”, y = equerySelectorAll (“dropdown-nav-search-form”); Function b (e) {let t = ecurrentTarget, i = tquerySelector (“nav-search-input”), n = i? iValue split (“”): []; everhindereDefault (), reportSearch (n, () => tsubmit ())} iaddEventListener (“click”, () => {initializeHeight (e), v ()}); for (let e = 0, t = ylength; e (function (e) {remove eclassListers (“c-right”, “c-right down”, “c-left”, “c-left down”)}) (e ))}, 500)} ()) 🙁 isetAttribute (“aria-expanded”, “true”), t = windowscrollY), toggle eclassList (“closed”), toggle eclassList (“open”), n toggle classList toggle (“deactivated”), a&&eisSameNode (s)? function () {if (ocontains (e)) {const e = getMainChildren (o, s); S (e), w (o)} if (centhalt (e)) {const e = getMainChildren (c, s); Switching oclassList (“hidden component”), w (c), S (e)} Switching eclassList (“open-mobile”)} (): a&&! y&&r&& (w (r), function () {const i = eclassListenthalt (“open”)? 0: t; Window ScrollTo ({top: i})} ())} Function w (e) {S (getNextS Siblings (e ))} Function S (e) {eforEach (e => {eclassListumschalt (“hidden component”)})} naddEventListener (“click”, t => {! Econtains (tTarget) &&eclassListcontains (“open”) &&v ()} ), Document addEventListener (“keydown”, t => {27 === tkeyCode&&eclassListener (“open”) &&v ()})});
}, {“1”: 1, “3”: 3, “52”: 52}];
FensterModule [“follow client”] = [function (required, module, export) {“use strict”; const _find = require (43), $ popup = require (53); DScontroller (“follow”, [function () {function e (e) {thisel = e, dashandle = egetAttribute (“Datenhandle”)} return eprototype = {events: {click: “openFollow”}, openFollow: function (e) {var t, n, a = $ popupPosition, o = $ PopupParameter, l = {}, r = {w: 780, h: 500}, s = new a (rw, rh), c = dieselclassList; lhandle = thisGriff , rlinks = slinks, rtop = stop, n = _find ([{className: “facebook”, url: “https: // facebookcom / {handle}”, network: “Facebook”}, {className: “pinterest”, url : “http: // wwwpinterestcom / {handle}”, network: “Pinterest”}, {className: “instagram”, URL: “https: // wwwinstagramcom / {handle}”, network: “Instagram”}, {className : “rss”, URL: “http: // feedsFeedburnercom / {handle}”, network: “RSS”}, {class name: “Twitter”, URL: “https: // Twittercom / intent / follow? screen_name = {handle } &tw_p = followbutton&variant = 20 “, network:” Twitter “}, {class name:” Snapchat “, URL:” https: // wwwSnapchatcom / remove / {handle} “, Network: “Snapchat”}], function (s) {return centcontains (eKlassenname)}), lurl = nURLersetzen (“{handle}”, lGriff), lNetzwerk = nNetzwerk, lname = “Follow” lGriff “to” lNetzwerk, t = new o (l, r), window open (tAddress, tName, tFeature), ePreventDefault ()}}, e}]);
}, {“43”: 43, “53”: 53}];
FensterModule [“Comment-Linkclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), _ get = require (23), _ isFinite = require (109), ajax = require (110); DScontroller (“comments link”, [function () {var t, e = “http: //” document documentElementgetAttribute (“data-uri”) “html”; function n (n) {var o; (thisel = n, dascoral_talk_root = ngetAttribute (“data-coral-talk”), diescommentCount = domfind (n, “comments link number”), diescommentText = domfind (n, “comments link text”), diesisNavVariation = nclassListenthalts (“comment- link_article-nav “), diescutoffCnt = ngetAttribute (” data-cutoffCnt “) || 1e3, t =` $ {thiscoral_talk_root} / api / v1 / graph / ql`, diesshouldRenderCommentStream ()) &CountEANDCHAR (o = thisFetchedCommentConnect AjaxsendReceiveJson ({method: “GET”, URL: t ‘? Query = {Asset (URL: “‘ e ‘”) {totalCommentCount}}’, data type: “json”}, function (t, e) {var n = _get (e, “DatenAnlageguttotalCommentCount”, 0); return t? o (t): _ isFinite (n)? void o (null, n): o (“Unexpected Coral Talk response”)})}} return nPrototyponCommentCountFetched = Function (t, e) {if (t) return console warning (t); e> 0CS SEANDCHAR& (thisisNavVariation&&e1? “s”: “”), thiselclassListremove (“no comments”))}, nPrototypeshouldRenderCommentStream = function () {return-1! == eingexOf (“@published”)}, n}]);
}, {3: 3, 23: 23, 109: 109, 110: 110}];
WindowModule [“head-gtmclient”] = [Function (required, module, export) {“use strict”; const {getCLS: getCLS, getFID: getFID, getLCP: getLCP} = require (142), isProduction = require (10) (); function reportWebVitals (e) {isProduction || Console log (“reportWebVitals:% O”, e); const t = “string” == typeof eName? eNametoUpperCase (): eName; Window DataLayer = Window DataLayer || [], FensterdataLayerpush ({event: “analysisEvent”, event_action: t, event_category: “Web Vitals”, event_label: eid, event_value: eDelta, eventAction: t, eventCategory: “Web Vitals”, eventLabel: eid, eventNonInt:! 0 , eventValue: edelta, nonInteraction:! 0, transport: “beacon”})} getCLS (e => {eDelta = Mathrund (1e3 * eDelta), reportWebVitals (e)}), getFID (e => {eDelta = Mathrund ( eDelta), reportWebVitals (e)}), getLCP (e => {eDelta = Mathrund (eDelta), reportWebVitals (e)});
}, {“10”: 10, “142”: 142}];
WindowModule [“Concert Advertising Client”] = [Function (required, module, export) {“use strict”; const customMappings = {“Crime-Assault”: “Power”, “Career-Money-Productivity”: “Power”, “Feminism-Politics-Identity”: “Power”, “Culture Media”: “Culture”, Celebrity: “Culture.” “, Living:” style “, fashion:” style “, shopping:” style “, weddings:” style “, beauty:” style “, animals:” self “,” learning creativity “:” self “,” relationships- Friends family “:” self “,” mental health personality social behavior “:” self “,” learning creativity “:” self “,” health-wellness “:” self “, parenting:” self “,” relationships-sex- Dating marriage “:” Self “}, striptags = require (54); Function installConcertAds () {const e = new URLSearchParams (window location search) get (“konzert_config_url”), t = e || window concertConfigUrl; Window_nymPermutive || Console warning (“ConcertAds is initialized without Permutive”), Window ConcertAds = createConcertAds (), Window ConcertAdsloadRemoteConfig (t) then (function () {windowkonzertAdsinstall ()})} Function createConcertAds () {const e = getAuthStatus (); let t = getData (“title”), n = windowLagehref, i = getData (“section”), o = “”, a = getData (“type”), r = getData (“vertical”); t&& (t = Striptags (htmlDecode (t))) split (“”)), n = nSchibe (n Slice) lastIndexOf (“/”) 1); const l = {kw: getKeywords (), network: r, page type: a, entry group: i, keywords: t, pn: n}; Return “Homepage” === a? o = “homepage”: “Section Page” === a&& (o = (o = windowLagePathname) Replace (/ // g, “”)), i&&-1 === iindexOf (“”) && (o = i), customMappings [i] && (o = customMappings [i]), FensterLageHostnameSpiel (/ aws / i) && (lClay_sandbox_env = r), new windowConcertAds ({cmd: [], slots: [], , slugPath: “/” oreplace (/ – | – / g, “-“), logged in: “not authenticated”! == e, paywallActive: getPaywallStatus (e)})} function getKeywords () {try {const e = window_nymPermutiveArticleKeywords; Return of e&&eLength> 0&&e some (Boolean)? e: (DocumentquerySelector (‘meta [name = “keywords”]’) || documentquerySelector (‘meta [property = “article: tag”]’)) getAttribute (“content”) splits (“,”) map (function ( e) {return etrim ()})} catch (e) {return}} function getData (e) {if (window_nymPermutive) {if (e in window_nymPermutive) return window_nymPermutive [e]; if (window_nymPermutivearticle&&e im Fenster_nymPermutiveArtikel) return window_nymPermutiveArtikel [e]; if (window_nymPermutiveuser&&e in window_nymPermutiveUser) return window_nymPermutiveUser [e]}} Function htmlDecode (e) {var t = document createElement (“div”); return tinnerHTML = e, 0 === tchildNodesLength? “”: tchildNodes [0] nodeValue} function getAuthStatus () {const e = JSONparse (localStoragegetItem (“auth0: profile”)), t = e? e [“http: // nymagcom / app_metadata”]: null; return t? thas_subscription? “with the title”: “unentitled”: “not authenticated”} function getPaywallStatus (e) {const t = getData (“totalCount”) || 0; return Boolean (t> = 3&& “with the title”! == e)} WindowConcertAds? InstallConcertAds (): Window addEventListener (“konzertAdsReady”, installConcertAds);
}, {“54”: 54}];
WindowModule [“Latest News Client”] = [Function (required, module, export) {“use strict”; const dom = require (3), lazyLoad = require (96); Function lazyLoadImage (a) {const o = domfind (a, “img [data-src]”), d = domfindAll (a, “source [data-srcset]”), e = domam next (a, “result”) ; if (o&&e) {new lazyLoadLazyLoader (e, o, d) init ()}} function handleLazyLoad (a) {(domfindAll (a, “result”) || []) forEach (lazyLoadImage)} module exported = (a => {handleLazyLoad (a)});
}, {“3”: 3, “96”: 96}];
WindowModule [“Coral-Talkclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), store = required (116), visibility = required (1), auth0 = required (12), TALK_AUTH = “talk: auth_token”; let coralEmbed, hasEmbedScriptLoaded =! 1, hasCoralTalkRendered =! 1; Function renderComments (e) {if (hasEmbedScriptLoaded&&! HasCoralTalkRendered) {const t = {talk: `$ {eCORAL_TALK_HOST}`, auth_token: getAuthToken (), asset_url: eTALK_ASSET_URL}; hasCoralTalkRendered =! 0, coralEmbed = windowKoralleSichamtichrendern (ecommentStreamContainer, t)}} Function getAuthToken (e) {var t = e&&e [“http: // nymagcom / coral_talk”] || auth0getTalkJwt (), i = save get (TALK_AUTH); return t? i&&t == i? i: (storeset (TALK_AUTH, t), t) 🙁 i&&storeremove (TALK_AUTH), null)} function coralLogin () {coralEmbedlogin (getAuthToken ())} function embeddedScript (e, t) {let i = documentcreateElement (“script” ” ); itype = “text / javascript”, iasync =! 0, isrc = e, iaddEventListener (“load”, () => {hasEmbedScriptLoaded =! 0, renderComments (t)}), documentgetElementsByTagName (“head”) [0] appendChild (i)} function initVerificationMessage () {auth0isAuthenticated ( ) &&auth0refresh (); let e = documentquerySelector (“coral-talk-container”); auth0isAuthenticated () &&! auth0isEmailVerified () && (einsertAdjacentHTML (“beforebegin”, ‘ n n Please check your account to enable commenting. You haven’t received a confirmation email? Please resend the email now n’), DocumentquerySelector (“activation link”) addEventListener (“click”, sendVerificationEmail))} function sendVerificationEmail () {let e = documentquerySelector (“coral-talk-verify-address”); return fetch (`https: // $ {windowLagehost} / _ user / verification-email? user_id = $ {auth0getUserID ()}`, {method: “GET”, header: {“Content-Type”: “application / json “}}) then (e => e) then (t => {t&&200 == tStatus? einnerHTML =” Confirmation email was sent successfully “: einnerHTML =` $ {tstatusText} `}) catch (e => Console log (e))} Function tryScriptEmbedding (e, t) {initVerificationMessage (), hasEmbedScriptLoaded? renderComments (t): embeddedScript (tEMBED_URL, t)} function addVisibilityListener (e, t) {new VisibilitySichtbar (e, {pretoadThreshold: 750}) on (“Preload”, () => tryScriptEmbedding (e, t))} function removeSignInButton (e) {e&&eparentNode&&domremoveElement (e)} function init (e) {const t = egetAttribute (“data coral talk host”), i = `$ {t} / static / embeddedjs`, n =` http: // $ {documentdocumentElementgetAttribute (“data-uri”)} html`, a = “true” === egetAttribute (“data maintenance”), o = -1! == nindexOf (“@ published”), r = equerySelector (“Korallen-Talk-Container”), s = equerySelector (“coral-talk-btn-signin”), c = {CORAL_TALK_HOST: t, EMBED_URL: i, commentStreamContainer : r, signInButton: s, TALK_ASSET_URL: n} ;! on (“init”, () => {addVisibilityListener (e, c), saddEventListener (“click”, () => auth0showLogin ()), auth0isAuthenticated () &CSSEANDInCHARremove (s)}), auth0on (“login”, t => {removeSignInButton (s), getAuthToken (t), VisibilityisElementInViewport (e) &&attemptScriptEmbedding (c), hasCoralTalkRendered&&on (), logouth0 () = “auth” () = “logouth” (), = “logouth” =} “auth0n > {storeRemove the module (TALK_AUTH)}))} Exports = Init;
}, {“1”: 1, “3”: 3, “12”: 12, “116”: 116}];
WindowModule [“Choreographer Client”] = [Function (required, module, export) {“use strict”; const cookie = required (41), _ get = require (23), _ omit = require (80), {insertSpeedBumpComponents: insertSpeedBumpComponents} = require (77)), {insertNewsletterSpeedBumpComponents: insertNewsletterSpeedBumpComponents} = require (79), {generateGrowl: generateGrowl} = require (76), gtm = require (4), {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (14), {reportPaywall} = require (52), moment = require (24), {getClientHistory: getClientHistory , updateClientHistoryWithPageData: updateClientHistoryWithPageData} = require (78), auth0 = require (12), {scenario: scenario} = require (73), cidReadyEvent = “nymcid-set”, cidKey = “nymcid”, isProduction = require (10) ( ), logger = require (74) Logger (() => getLocalStorage (“show_choreographer_logs”)), {Verdon: Verdon} = require (75), TEST_COHORT_FLAG = “optimizeCohort”; Function displayDebug (e = “”) {if (“Authorization”! == eShare (“#”) pop ()) return; const t = _get (window “dataLayer [0] userDetails”, {}), o = _get (window, “dataLayer [0] pageDetailsfeatureTypes”, “”), n = o contains (“magazine”)? “Magazine”: “”, r = o contains (“Feature”)? “Featured”: “”, i = “Value of the article:” (n || r || “Article”), a = _get (JSONparse (localStoragegetItem (“auth0: profile”)), “http: // nymagcom / app_metadata “), l =” Authentication status: “(a?” authenticated “:” not authenticated “), s =” Authorization status: “(!! a&&ahas_subscription?” with the title “:” unentitled “), c = Object key (_omit (t, “newYorkMediaUserID”)) map (e => `$ {e}: $ {t [e]}`), d = documentBody, g = documentcreateElement (“div”), u = documentcreateElement (“ul”) ; [i, l, s, c] map (e => {const t = documentcreateElement (“li”); return tclassListadd (“debug-item”), tappendChild (document createTextNode (e)), t}) forEach (e = > {uappendChild (e)}), uclassListadd (“data balls”), gclassListadd (“debug choreographer”), gclassListadd (“display-debug-data”), gappendChild (u), dappendChild (g)} function initializeChoreographer (e ) {const t = egetAttribute (“data-site-slug”), o = pageShouldCountAsView (t), n = auth0isSubscriber (); return t? getClientId (cidKey, 8e3) then (e => (Logger) h1 (“Choreographer initialized”), Loggerlog (`clientId: $ {e}`), loggerlog (`Page counts as a view: $ {o}`), Window symViewsResponse || (o? updateClientHistoryWithPageData (e, t): getClientHistory (e))) then (r => {if (Logger) group (), Loggerh2 (“Client History”), LoggerTable (r), LoggergroupEnd (), isNCR ()) return; const {scenarios: i, touts: a, testCohort: l = “”} = readJSONFromScript (equerySelector (“script”)); if (! (l === (documentBodyDatet [TEST_COHORT_FLAG] || “”))) return; const s = iCard (e => Assign scenario (object) ({}, e, {History: r, siteSlug: t, isSubscriber: n}))) Filter (e => (Loggergroup (), Loggerh2 (“Evaluate scenarios “), Loggerlog (e), LoggergroupEnd (), it should show)) reduce ((e, {action: t, min: o, number: n}) => {const r = afind (({value: e}) => e === t); return r? (e [rTyp] = r, e [rArt] viewCount = no, e): e}, {}); Loggergroup (), Loggerh2 (“Active Touts”), LoggerProtokoll (e), LoggergroupEnd (), executeTouts (e, o, s, r)}) catch (console error): console error (“siteSlug not found”)} function documentIncludesComponent ( e) {return documentquerySelector (`[data-uri * =” / $ {e} / “]`)} function pageShouldCountAsView (e) {const t = “strategist” === e, o = [“product”, “product grid “]] find (e => documentIncludesComponent (e)); return t ||! o} Function executeTouts (e, t, o = {}, n) {const {global: r} = n, i = {featureArticleCount: rFeature || 0, magazineArticleCount: rMagazin || 0, standardArticleCount: rArticle || 0, totalArticleCount: rtotal || 0}, a = window concert ads, l = window concert ads; if (o [“Speed-Bump”] && (_get (a, “adsBlocked”,! 0)? InsertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i): a lifecycle listsAndPlayback (lVeranstaltenenslotsInserted, () => {insertSpeedBumpComponents (findTemplate (e, “Speed-Bump”), o [“Speed-Bump”], i)})), o [“Newsletter-Speed-Bump”] && (_get ( a, “adsBlocked”,! 0)? insertNewsletterSpeedBumpComponents (findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i): aLebenscyclelistenAndPlayback (lVeranstevenenslotsInserted, () => {insertNewsletterSpeedB ( findTemplate (e, “Newsletter-Speed-Bump”), o [“Newsletter-Speed-Bump”], i)}), o [“Branded-Growl”] &&brandedTakeoverTime (o [“Branded-Growl”]) &&t) Return loggerlog (“should show brand growl”), void growlManager (findTemplate (e, “brand growl”), {baseTrackingData: i, body: o [“brand growl”] brandedGrowlBody, contentClass: “branded-cont ent “, cta: o [” branded-Growl “] brandedGrowlCTA, imageUrl: o [” branded-Growl “] imageUrl, Link: o [” Branded-Growl “] brandedGrowlLink, Name: o [” Branded-Growl “] name , scrollDepth: o [“Brand-Growl”] brandedGrowlScrollDepth, Title: o [“branded-Growl”] brandedGrowlTitle, toutType: “branded Growl”}, “# branded-Growl”); if (t&&o [“content-cliff”]) contentCliff (findTemplate (e, “content-cliff”), o [“content-cliff”], o [“content-cliff”] viewsLeft, n); else {if (t&&o [“Cliff takeover”]) return / coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)? void (isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags)): void cliffTakeover (findTemplate (e, “Paywall reader interface”), i, o [“Cliff takeover”]); if (o [“Growl-Newletter”] ||! o [“Promo- growl”]) if (o [“Baby-Growl”]) babyGrowl (findTemplate (e, “Paywall reader interface”), i, o [“baby growls”]); else {if (! o [“warning-growl-2”]) return o [“warning-growl”] &&shouldWarn ()? (setContentCliffWarningDisplayed (), Loggerlog (“should show warning”), void growlManager (findTemplate (e, “warning-growl”), {contentClass: “warning-content”, title: o [“warning-growl”] warningGrowlTitle, name : o [“Warning-growl”] name, scrollDepth: o [“warn-growl”] warningGrowlScrollDepth, cta: o [“Warning-growl”] warningGrowlCTA, body: o [“Warning-growl”] warningGrowlBody, Link: o [“Warning-growl”] warningGrowlLink, baseTrackingData: i, toutType: “Warning-growl”}, “# Warning-growl”)): void 0; WarningGrowl (findTemplate (e, “paywall reader interface”), i, o [“warning-growl- 2”])} else growlManager (findTemplate (e, “growl message”), {contentClass: “promo content “, Title: void 0, Name: o [” Promo-Growl “] name, scrollDepth: o [” Promo-Growl “] promoGrowlScrollDepth, cta: o [” Promo-Growl “] promoGrowlCTA, Body: o [” Promo- Growl “] promoGrowlMessage, Link: o [” Promo-Growl “] promoGrowlLink, baseTrackingData: i, toutType:” promo growl “},” # growl-message “)}} Function shouldWarn () {return! contentCliffWarningDisplayed ()} function getContentCliffWarningDisplayedKey () {const e = new Date, t = egetMonth (); return`content-cliff-warning-displayed – $ {egetFullYear ()} – $ {t} `} Function contentCliffWarningDisplayed () {const e = getContentCliffWarningDisplayedKey (); Return “true” === getLocalStorage (e)} Function setContentCliffWarningDisplayed () {const e = getContentCliffWarningStand; e, “true”)} function growlManager (e, {contentClass: t, scrollDepth: o, name: n, title: r, body: i, cta: a, link: l, baseTrackingData: s, toutType: c, imageUrl : d = null}, g = “”) {const u = function () {const e = ” n n n n $ {r} n $ {d? ”:” “} n $ {i} n $ {d? “: “”} n $ {a} n n n n `; Return document createRange () createContextualFragment (e)} (), p = {Creative: i, ID: c, Name: n, Position: “Growl”}; uquerySelector (“a”) addEventListener (“click”, () => PromotionReport (“Click”, s, p)), generateGrowl (e.g. B. {content: u, scrollDepth: o, onShow: () => PromotionReport (“View”, s, p)})} Function contentCliff (e, t, o, n) {const {first_visit: r, global: i} = n, a = {totalArticleCount: itotal || 0, standardArticleCount: iArticle || 0, featureArticleCount: iFeature || 0, magazineArticleCount: iMagazin || 0}, {contentCliffBody: l} = t, s = DocumentimportNode (e,! 0) querySelector (“content cliff”), c = DocumentquerySelector (“Article content> sound paragraph”), d = {Creative: l, ID: ” Content Cliff “, Name:” Content Cliff “, Position:” In-Article “}; s&& (cinsertAdjacentHTML (“afterend”, sOuterHTML), require (“Content-Cliffclient”) (DocumentquerySelector (“content-cliff”), {contentCliffOptions: t, viewsLeft: o, firstVisit: Number (r), onShow: () = > PromotionReport (“View”, a, d), onClickCliff: () => PromotionReport (“Click”), a, d)}))} Function verdonFosseToutSetter (e, t, o, n, r) {const i = new Verdon ({container: “paywall-reader-interface”, url: “https: // fosseNymagcom / fosse / v153 / indexhtml”}), a = eTyp, l = {E-Mail: auth0getEmail (), isAuthenticated: auth0isAuthenticated (), isSubscriber: auth0isSubscriber ()}; add nclassList (a), icheinmal (“frame: ready”, () => {isendMessage (“tout: show”, {readerState: l, toutType: a, toutData: e}), r&&isendMessage (“frame: height”) }), ion (“tout: visible”, () => {PromotionReport (“View”, t, o)}), ion (“tout: sign-in”, () => {auth0showLogin (FensterLagehref)}) , ion (“tout: log-out”, () => {auth0logout ()}), ion (“tout: dismiss”, () => {add nclassList (“dismiss”), ichsendMessage (“tout: hide”, {toutType: a, toutData: e})}), ion (“tout: subscribe”, () => {ectaLink = replaceQueryParams (ectaLink), PromotionReport (“click”, t, o), window open (ectaLink, “_ Blank “)}), iein (” frame: height “, e => {nStilheight =` $ {eNutzlastcurrentHeight 10} px`}), ion (“tout: view-account”, () => {windowLagehref = “https: // subsNymagcom / account”})} Function promotion report (e, t, o) {const {creative: n, id: r, name: i, position: a} = o; tevent = `eecFörderung $ {e}`, tecommerce = {promoView: {Promotions: [{creative: ntrim (), id: r, name: i, position: a}]}}, gtmreportNow (t), reportPaywall ({ creative: ntrim (), eventType: e, id: r, name: i, position: a})} function babyGrowl (e, t, o) {const n = documentimportNode (e,! 0) querySelector (“paywall-reader -interface “), r = {creative: obabygrowlDescription, ID:” Baby growling “, Name:” Baby growling “, Position:” Growling “}; DocumentBody AppendChild (n), octaLink = obabygrowlCtaLink, octaText = obabygrowlMessage, oÜberschrift = obabygrowlDescription, verdonFosseToutSetter (o, t, r, n)} Function cliffTakeover (e, t, o) {const {cliffTakeLink: riffover, cliffTake: cliffCTA: nDover: n i, cliffTakeoverImage: a, cliffTakeoverPromo:: c} = o, d = Document ImportNode (e,! 0) querySelector (“Paywall Reader Interface”), g = DocumentquerySelectorAll (“Sound Paragraph”), u = {Creative: l, ID: “Content Cliff”, Name: “Content Cliff”, Position: “Growl”}, p = {cta: n, ctaLink: r, Description: i, Image: a, Promo: l, Status: s, Type: c}; DocumentKkörperappendChild (d), gforEach ((e, t) => {0! == t&&eremove ()}), verdonFosseToutSetter (p, t, u, d,! 0), documentquerySelector (“html”) StiloverflowY = “hidden” , DocumentBodyStyle position = “fixed”} Function warningGrowl (e, t, o) {const {Type: n, warningGrowl2CTA: r, warningGrowl2CtaLink: i, warningGrowl2Description: a, warningGrowl2Bild: l, warningGrowl2Promo: s, warningGrowl2Status: c} = o, d = DokumentimportNode (e,! 0) querySelector (“paywall-reader-interface”), g = {creative: s, id: “warning growl”, name: “warning growl”, position: “growl”}, u = { cta: r, ctaLink: i, description: a, picture: l, promo: s, status: c, type: n}; DocumentBody AppendChild (d), verdonFosseToutSetter (u, t, g, d,! 0)} Function getClientId (e = “”, t = 8e3) {let o = cookieget (e); return o? Promise resolution (o): new promise ((o, n) => {const r = setTimeout (() => {n (`Key could not be found: $ {e} on cookie after $ {t} ms`)} , t); Window addEventListener (cidReadyEvent, () => {clearTimeout (r), o (Cookie) get (e))})})} Function readJSONFromScript (e) {try {return JSONAnalyse (einnerHTML)} catch (e) {return {touts: [], scenarios: []}}} function findTemplate (e, t = “”) {const o = e&&equerySelector (`[data-template-id =” $ {t} “]`); returns o&&oContents} Function isNCR () {return / [? &] source = ncr / Test (location search)} Function brandedTakeoverTime (e) {const {startTime: t, endTime: o, startDate: n, endDate: r} = e, i = nconcat (“”, t), a = rconcat (“”, o), l = moment (i), s = moment (a); Return moment () isBetween (l, s)} function optimizeDebugger () {return new promise (e => {const t = windowLageSearch || “”; if (t) {const o = new URLSearchParams (t), n = oget ( “Optimize-Attribute-Name”) || “”, r = oget (“Optimize-Attribute-Value”) || “”, i = oget (“Optimization delay”) || 0, a = oget (“Optimize-Cookie “) ||! 1; setTimeout (() => {a&& (document cookie = randomNymcid ()), document body set attributes (` data – $ {n} `, r), e ()}, i)} else e ()} )} function randomNymcid () {return`nymcid = $ {(() => ([1e7] – 1e3 -4e3 -8e3 -1e11) Replace (/ / g, e => (e ^ 16 * crypto) getRandomValues (New Uint8Array (1)) [0] >> e / 4) toString (16) [0])) ()} `} function replaceQueryParams (e) {const t = windowLageSearch || “”; if (t) {const o = new URLSearchParams (t); if (econtains (“?”)) {const t = esplit (“?”), n = new URLSearchParams (t [1]); for (let e of oEntries ()) nset (e [0], e [1]); e = `$ {t [0]}? $ {ntoString ()} `} else e =` $ {e}? $ {otoString ()} `} return e} Module exported = (e => new promise (e => {auth0on (” init “, () => {e ()})}) then (() => optimizeDebugger ( )) then (() => {displayDebug (FensterLagehref), initializeChoreographer (e)}));
}, {4: 4, 10: 10, 12: 12, 14: 14, 23: 23, 24: 24, 41: 41, 52: 52, 73: 73, 74: 74, 75: 75, 76: 76, 77: 77, 78: 78, 79: 79, 80: 80 Content-Cliffclient “:” content-cliffKlient “}];
FensterModule [“growl client”] = [function (required, module, export) {“use strict”; require (140); const _some = require (59), dom = require (3), localStorageKeyRoot = “slideout -“, {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (14); module exported = ((e, t) => {const {content: o, onShow: s, scrollDepth: r = 50, dismissable: i =! 1} = t, n = Number (r || egetAttribute (“data display at -Page scroll percentage “)), a = domfind (e,” modal “), l =” slideout- “(tid || egetAttribute (” id “)), c = getLocalStorage (l); function d () {aclassListadd (“hidden”)} Function g () {setLocalStorage (l,! 0), d ()} i&&c? eremove () 🙁 o&&equerySelector (“[data content]”) appendChild (o), nCSSEAND 50 ) {const t = new IntersectionObserver (e => {_ some (e, “isIntersecting”) && (aStiltop = “inherit”, aclassListremove (“hidden”, “initial”), “function” == typeof s&&s (), dobeobachten (a))}); aStiltop = `$ {documentquerySelector (” body “) scrollHeight / (100 / e)} px`, tbeobachte (a)} (n), equerySelector (” dismissed-modal “) addEventListener (” click “, () => i? g (): d ()), eaddEventListener (” growl: hide “, d), eaddEventListen he (“growl: dismissed”, g))});
}, {3: 3, 14: 14, 59: 59, 140: 140}];
FensterModule [“Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const gtm = required (4), visibility = required (1); Module exported = ((e, i) => {if (! I ||! E) return; const {name: o, speedbumpDescription: r, speedbumpMessage: t, speedbumpLink: n, baseTrackingData: s} = i, c = new VisibilitySvisible (e, {shownThreshold: 5}); equerySelector (“Description”) innerHTML = r, equerySelector (“Promo-Link”) innerHTML = t, equerySelector (“Promo-Link”) href = n, eclassListentfernen (“collapsed” ), con (“shown”, function () {if (VisibilityisElementNotHidden (e)) {let e = s; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{Name: o, Creative: r, ID : “Speed ​​Bump”, Position: “In-Artikel”}]}}, gtmreportNow (e), cdestroy ()}}), equerySelector (“Promo-Link”) addEventListener (“click”, function () { let e = s; eevent = “eecPromotionClick”, eecommerce = {promoClick: {Promotions: [{Name: o, Creative: r, ID: “Speed ​​Bump”, Position: “In-Article”}]}}, gtmreportNow (e)})});
}, {“1”: 1, “4”: 4}];
FensterModule [“Newsletter-Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const {loadRecaptcha: loadRecaptcha} = require (108), _ isEmpty = require (87), _ set = require (107), _ kebabCase = require (81)), gtm = require (4), auth0 = require (12) , Visibility = require (1), COMPONENT_NAME = “Newsletter-Speed-Bump”, EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1, 3] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, LOCAL_STORAGE_KEY_NAME = “newsletterSpeedBumpSignUpStatus _”, MAX_EMAIL_LENGTH = 50; Function setClass (e, t) {eclassListadd (t)} Function getRequestUrl (e) {return egetAttribute (“action”)} Function getPageType (e) {const t = e? egetAttribute (“content”): “”; return _kebabCase (t)} function getPayloadObject (e, t, r, s) {const n = {}; return _set (n, `varsQuelle _ $ {t}`, `$ {COMPONENT_NAME} _ $ {s}`), nE-Mail = r, nListen = {}, nlistet [t] =! 0, nrecaptcha = e, nsignuppage = `$ {documentLagehref} _ $ {t}`, n [`source _ $ {t}`] = “newsleter_speedbump”, n} Module exported = ((e, t) => {if (! t ||! e) return; if (“success” === window local storage getItem (`$ {LOCAL_STORAGE_KEY_NAME} $ {tnewsletterSpeedBumpNewsletterId}`)) return void eremove (); const {baseTrackingData: r, name: s, newsletterSpeedBumpCopy : n, newsletterSpeedBumpDescription: i, newsletterSpeedBumpHeadline: a, newsletterSpeedBumpNewsletterId: o, newsletterSpeedBumpThankYouMessage: c, RECUT__getEmail (), d = equerySelector (“Description”), p = equerySelector (“Incoming email”), error message ), h = equerySelector (“Form”), E = equerySelector (“Form-Container”), y = equerySelector (“form-recaptcha-container”), g = equerySelector (“Heading”), v = equerySelector (“Container “), S = equerySelector (” Incoming NewsletterId “), _ = equerySelector (” recaptcha-wrapper “), L = equerySelector (” Incoming Submit “), w = equerySelector (” Te xtcontainer “), q = new VisibilityVisible (e, {shownThreshold: 5}); u&& (premoveAttribute (“required”), eclassListadd (“logged in”)), dinnerHTML = i, ginnerHTML = a, SValue = o, LValue = n, qon (“shown”, function () {if (VisibilityisElementNotHidden (e)) {const e = r; eevent = “eecPromotionView”, eecommerce = {promoView: {Promotions: [{creative: `$ {a} | $ {i} `, id:” Newsletter Speed ​​Bump “, Name: s, Position:” In-Article “}]}}, gtmreportNow (e), qdestroy ()}}), paddEventListener (” focus ” , () => {_classListentfernen (“hidden”)}), haddEventListener (“submit”, t => {tPreventDefault (); const s = new XMLHttpRequest, n = u || equerySelector (“input email”) value, i = getPageType (DocumentquerySelector (‘meta [name = “type”]’)); u ||! (nLength> = 50) &&EMAIL_VALID_REGEXtest (n)? loadRecaptcha (l, “newsletterSubmit”,! 0) then (a => {sopen (“POST”, getRequestUrl (h),! 0), ssetRequestHeader (“content type”, “application / json; character set = UTF-8”), saddEventListener (“load”, s => {const a = scurrentTarget || sZiel , if (astatus> = 200&&astatussetClass (e, “Success”)), [d, E, m, _] forEach (e => setClass (e, “hidden”)), gi nnerHTML = cersetzen (“{{email}}”, n), minnerHTML = “”; const s = Parsing JSON (aAnswer), l = _isEmpty (ssailthruIds)? “”: ObjectValues ​​(ssailthruIds) [0], u = r; uevent = “eecKauf”, uecommerce = {Purchase: {actionField: {id: l, Sales: “000”}, Products: [{Category: “Newsletter Registration”, Name: SValue, amount: 1, variant: `$ {COMPONENT_NAME} – $ {i}`}]}}, gtmreportNow (u), setTimeout (() => {eclassListadd (“hidden”)}, 5e3), tPreventDefault () } else minnerHTML = “* An error has occurred please try again”}), saddEventListener (“error”, () => {remove mclassListent (“hidden”), minnerHTML = “* An error has occurred please try again”} ), ssenden (JSONstringify (getPayloadObject (a, o, n, i))), tPreventDefault ()}): minnerHTML = “* Please enter a valid email address”})});
}, {“1”: 1, “4”: 4, “12”: 12, “81”: 81, “87”: 87, “107”: 107, “108”: 108}];
WindowModule [“Content-Cliffclient”] = [Function (required, module, export) {“use strict”; const auth0 = required (12), isProduction = required (10) (), logger = required (74) Logger (() =>! IsProduction); Module exported = ((t, e) => {if (! E) return; loggergroup (), Loggerh2 (“Content Cliff”); const {contentCliffOptions: o, firstVisit: n, onShow: r, onClickCliff: i} = e , c = 300, l = Number (DocumentquerySelector (“[Number of data components]”) getAttribute (“Number of data components”)), u = 3, s = [“taboola”], a = “# content-cliff”, f = t, d = function () {let t = 0; return documentquerySelectorAll (“[number of data words]”) forEach (function (s) {t = number (egetAttribute (“number of data words”) || 0,10) || 0 }), t} (), g = function (t, e) {function o (t) {return mathund (tgetTime () / 1e3 / 60)} const n = o (t), r = o (e); return nr} (new date, new date (s)) {}, show: () => {r (), function () {(p = function (t = “”) {return documentquerySelectorAll (`$ {t} ~ * `)} (a)) forEach (t => tremove ()), function () {const {contentCliffStatus: e, contentCliffPromo: n, contentCliffCTA: r, contentCliffURL: c} = o, l = tquerySelector (” [ Data content cliff status] “), u = tquerySelector (” [data-content-cliff-promo] “), s = tquerySelector (” [data-content-cliff-cta] “); s&&ssetAttribute ( “href”, c), s&&sinsertAdjacentHTML ( “after begin”, r), l&&linsertAdjacentHTML ( “after begin”, e), u&&uinsertAdjacentHTML ( “after begin”, n), s&&saddEventListener ( “click”, i)} () fclassListentfernen ( “collapsed”), e = s, eforEach (t => {const e = documentquerySelector (`[data-uri * =” / $ {t} / “]`); e&&eremove ()}), maddEventListener (“click” , () => auth0showLogin ()); var e} ()}} [function () {if (dl) return loggerlog (`Number of article words $ {d} was too short for the cliff`), Loggerlog (` Number of article components is less than $ {u} and not for the cliff suitable`), “noop”; if (g&&isProduction) returns “noop”; g&&loggerlog (`The first session check was $ {g}! Show the cliff anyway: isProduction => $ {isProduction}`); if (/ coronavirus news | pivot | paywall exclude / iTest (Fenster_nymGtmPageTags)) return isProduction&&loggerlog (“Content Cliff No-Op due to excluded tag match:”, Fenster_nymGtmPageTags), “noop”; return “show”} ()], m = tquerySelector (“content-cliff-login”); let p = []; return loggerlog (`should not work due to the 30 minute window of the first session in production: $ {g}`), loggergroupEnd (), auth0on (“login”, () => {fclassListadd (“reduced”), ( p = ArrayPrototypeScheibeAnruf (p, 0) reverse ()) forEach (t => finsertAdjacentElement (“afterend”, t)), p = []}), “function” == typeof h? h (): void 0});
}, {“10”: 10, “12”: 12, “74”: 74}];
FensterModule [“adclient”] = [function (required, module, export) {“use strict”; const _forEach = require (40), _ max = require (42), _ find = require (43), _ contains = require (44), $ visibility = require (1), dom = require (3), MAX_MOBILE_RE = / [[0-9] {1,3} – (768 | 600) /, MAX_TABLET_RE = / [0-9] {3} – (1024 | 1180) /, DESKTOP_RE = / (1024 | 1180) -plus /, AD_NAME_SELECTOR = ‘[data name ^ = “/ 4088 /”], [data name ^ = “/ 172968584 /”]’; var flaggedComponentsOnPage = function () {var e, t = documentquerySelector (“Article content”), n = []; return t&&_forEach ([‘Article sidebar [data width = “large”]’], function (a) {e = tquerySelectorAll (a), _ forEach (e, function (e) {npush (e)})}), n } (); Function getElementsVerticalOverlap (e, t) {var n = egetBoundingClientRect (), a = tgetBoundingClientRect (); return! (up> down || incorrectly correct)? abottom-ntop: 0} function getElementsOverlapAmount (e, t) {var n, a = []; return _forEach (t, function (t) {n = getElementsVerticalOverlap (e, t), apush (n)}), _ max (a)} function getNYMagAdChannel (e) {var t = “”; switch (e) {case “company information”: t = “company”; break; case “new york runs & to do things”: t = “to do”; break; Case “other”: t = e; break; Case “sponsored leaders”: t = “s-leaders”; Break; Case “Urbanist”: t = “Urbanist” “; break; default: t =” “} return t} Function appendSectionToDfpAds () {var e, t, n, a = Document querySelector (” meta [property = ‘og: site_name’ ] “), o = documentquerySelector (” Article [data content channel] “), i = Document querySelectorAll (AD_NAME_SELECTOR); a&& (e = aContent), o&& (t =” Magazine “=== e&& (n = getNYMagAdChannel (t)), n&&appendToAdd (i, n)} querySelector (” body> div “) || {}, t = documentquerySelector (” body “) || {}, nARecSSEAND , a = n&&nLength? [n]: [], o = _find (a, e => econtains (“Feature”)), i = Document querySelectorAll (AD_NAME_SELECTOR); n&& (o? appendPageNumberPosition), “Feature”: ientposition (“lede-gallery-content”)? appendPageNumberPositionToDfpAds (i, “Image_Gallery”): tclassListenthalts (“einspal term layout “)? appendPageNumberPositionToDfpAds (i, “One_Column_Article”): ncontains (“Article content”) &&appendPageNumberPositionToDfpAds (i, “Standard_Article”))} Function appendPageNumberPositionToDfpAds (e, “Standard_Article”))} Function appendPageNumberPositionToDfpAds (e) “” “,” 1100×1 “” “”, “1100×1” [] a =], o = find dom (“ad-splash”), i = domfind (“section wrapper”), r = find dom (“secondary”), d = find dom (“bottom”), s = find dom (“primary”) , c = {IA: {xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, Grid: 1}}, BA: {xsMobile: {normal: 1, grid: 1}, mobile: {normal: 1, grid: 1}, tablet: {normal: 1, grid: 1}, desktop: {normal: 1, grid: 1}}}; aforEach (e => {let a, l = “”, u = eDatsatzSchsize, m = eclassListVert, p = _find (n, e => ubeinclusive (e)), g = eparentElementclassListenthalts (“image-gallery-mobile-grid- ad “); if (u&&! p || esetAttribute (” data name “, egetAttribute (” data name “)” / “t), i&&u&&! p) {let n, u; if (oCSSE) contains (e) {let n, u; if (oCSSE) “: i&&contains (e)? l =” IA “:( r&&contains (e) || d&&dcontains (e) || s&&scontains (e)) =”! ” u = checkForAdViewport (m))) return; g? (n = c [l] [u] grid, c [l] [u] grid) 🙁 n = c [l] [u] normal, c [l] [u] normal), a = n {esetAttribute (“data name”, egetAttribute (“data name”) “/” t)})} inject functionGoogleScripts () {var e = document createElement (“script”), t = documentcreateElement (” script “), n = documentcreateDocumentFragment (); esrc = “// wwwgoogletagservicescom / tag / js / gptjs”, easync = “async”, tsrc = “// pagead2googlesyndicationcom / pagead / js / adsbygooglejs”, tasync = “async”, n asyncappendChild (e), nappendChild (t), Document getElementsByTagName (“body”) [0] appendChild (n)} appendSectionToDfpAds (), appendPageTypeToDfpAds (), injectGoogleScripts (), DSController (ad. “, [” ) {Return function (t) {var n, a, o, i = tgetAttribute (“data offload”), r = new $ VisibilitySvisible (t, {pretoadThreshold: i? WindowinnerHeight / 4: 200}), d =! 1 ; Function s () {FensterinnerWidth> = 1180&&tparentElementclassListenthalts (“ad-repeat”) &&flaggedComponentsOnPagelength&& (a = getElementsOverlapEANDCHAR, a = getElementsOverlapAmount (a = getElementsOverlapAmount), a = getElementsOverlapAmountA (a )} Function c () {s (), eUpdate (n)} Function l () {eremove (n), d || (d =! 0, ron (“shown”, c))} DocumentquerySelector (‘script [ data-name = “concert displays”] ‘) || (n = eerstellen (t), rPreload&& $ VisibilityisElementNotHidden (t)? (eaddTo PageLoadQueue (n), i&&ron (“hidden”, l)) 🙁 ron (“preload”, function () {! nslot&& $ VisibilityisElementNotHidden (t) && (s (), eload (n))}), i&&rauf (“hidden”, l)), diesadData = n)}}]);
}, {“1”: 1, “3”: 3, “40”: 40, “42”: 42, “43”: 43, “44”: 44}];
WindowModule [“Sticky-Listeclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), $ gtm = required (4), _ get = required (23), stickyContainer = required (“sticky-container” Client “); DSController (” Sticky-List “, [” $ window ” , Function (t) {var e = require (218), i = 40; function s (s) {let n, r = function (t) {let s = t [0], n = 0, r = eHeight ( diescontentArea), h = thisContentAreaoffsetHeight; if (thiscontainer&&thisBehältLänge) {if (sZieloffsetHeight) {let t = thisAusbrüchefindIndex (t => (function body (t, e)) {return t! == document}} ARtCSSEAND sZielCSSEAND s ; if (t> -1&&thisAusbrüche [t]) {let e = diesAusbrüche [t] offsetHeight i; thisBehält [t] StilmarginBottom = `$ {e} px`}} if (h! == thiscurrentHeigh) {const t = eRect (diesrightRail, das hiercontentArea); diescurrentHeight = h, diesrightRailStilHöhe = r-ttop-a (diesrightRail) “px”, diesAusbrbruchforEach ((s, r) => {let a = erect (s, thiscontentArea), h = eSchnittpunkt (a , t); if (h) {be e, s = htop-ttop-n; n = s hHöhe ich, dasBehält [r] Stilheight = `$ {s} px`, diesBehält [r] StilminHeight =` $ {s} px`, e = thisBehausbruch [r] offsetHeight i, thisBehält [r] StilmarginBottom = ` $ {e} px`}})}}} bind (this); tinnerWidth {let n = _get (e, “RecordName”, “”), r = nSlice (-1) || “1”, a = [“Image_Gallery”, “Standard_Article”, “Feature”, “One_Column_Article”] find (t => ncontains (t)) || “”; diesrightRailparentElementclassListentcontains (“tertiary”) &&a&& (eDatsatzname = parseInt (i, 10) se === t) || 0; return iSheight (n 1) reduce ((t, e) => t (eoffsetHeight || 0), 0) || 0} return sprototype = {setPins: function () {const t = eRect (diesrightRail, the hiercontentArea), i = eHöhe (diescontentArea), s = i-ttop-a (diesrightRail); let n, h, o, l; if (thispopulatePinsList (), s1&&tclassListadd (“Multi-Children”), l = 0; l {const t = Arrayof (eKinder); let o, a, i = 0; for (; i {handleLazyLoad (a)});
}, {“3”: 3, “96”: 96}];
WindowModule [“Article Client”] = [Function (required, module, export) {“use strict”; const $ visibility = required (1), $ gtm = required (4), ImageZoom = required (56), $ sentry = required (57); DScontroller (“article”, [function () {var e = 40; function t (t) {const i = documentquerySelector (“Wrapper> tertiary”), n = tquerySelector (“lede-image-wrapperVollblutung”), r = tquerySelector (“Attribution full bleeding”), o = tquerySelector (“article header”), l = o? OquerySelector (“img”): null, c = function () {let t = ogetBoundingClientRect () height; n&& (t = ngetBoundingClientRect ( ) Height 25, r&& (t = rgetBoundingClientRect () height)), ichStilpaddingTop = te “px”}; i&&o&& (window innerWidtht (e)), $}}]););
}, {“1”: 1, “4”: 4, “56”: 56, “57”: 57}];
WindowModule [“Tagsclient”] = [Function (required, module, export) {“use strict”; const _forEach = require (40); DScontroller (“tags”, [function () {function e (e) {thisel = e} return ePrototype = {Events: {“amore click on”: “showAll”}, showAll: function (e) {var t = eZiel, o = dieselquerySelectorAll (“liversteckt”); _ forEach (o, function (e) {eclassListernernen (“hidden”)}), tparent noderemoveChild (t), ePreventDefault ()}}, e}]);
}, {“40”: 40}];
FensterModule [“Newsletter-Flex-Textclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ kebabCase = required (81), _ isEmpty = required (87), _ set = required (107), permutiv = require (52), cmptName = “newsletter-flex-text”, { loadRecaptcha: loadRecaptcha} = require (108), gtm = require (4), EMAIL_VALID_REGEX = / ^ (?: (?: [^ () [] \,;: s @ “] (?: [ ^ () [] \,;: s @ “]) *) | (” “)) @ (?: (?: [[0-9] {1,3} [1,3 ] {1,3} [1,3] {1,3} [0-9] {1,3}]) | (?: (?: [A-zA-Z -0-9] ) [a-zA-Z] {2,})) $ /, MAX_EMAIL_LENGTH = 50; DScontroller (cmptName, [“$ window”, function (s) {function t (t) {thisel = t, dasemail = domfind (t, “email”), diestitle = domfind (t, “title”), this description = domfind (t, “description”), diesQuelle = domfind (t, “source”), diesform = domfind (t, “form”), diesreturnMsg = domfind (t, “feedback”), diesnewsletterId = domfind (t, ” newsletterId “) value, diesexpandTerms = domfind (t,” extended terms “), diesrecaptchaKey = this formData recordrecaptchaPublicKey, daslocal = elocalStorage, dasSitzung = esessionStorage, dasdisplayComponent ()} return tprototype = {getRequestUrl: function (” form actionA “return this) )}, getPageType: function () {var e = domfind (‘meta [name = “type”]’), t = e? egetAttribute (“content”): “”; return _kebabCase (t)}, getPayloadObject: function (e) {var t = {}; return temail = thisEmailWert, trecaptcha = e, _set (t, `varsQuelle _ $ {thisnewsletterId}`, `$ {cmptName} _ $ {thisgetPageType ()}`), tListen = { }, tlistet [this newslet terId] =! 0, t}, displayComponent: function () {var t = this, s = “success” === thislocal [“signUpColumnStatus” thisNewsletterIdtoString ()], i = “true” === thisbildengetAttribute (“data display after login”) ; if (! s || i) {if (remove thiselclassListent (“initially hidden”), this formclassListremove (“initially hidden”), setTimeout (function () {telclassListenferne (“opacity-zero”)}, 100), try this session) {diesSessionsetItem (“signUpColumn”, “displayed”)} catch (e) {}} else telparentElementclassListadd (“newsletter collapsed”); eaddEventListener (“unload”, function () {tSessionremoveItem (“signUpColumn”)})}, events: {“Send form”: “submitForm”, “E-mail keystroke”: “clearMsg”, “Terms button click “:” showTerms “}, clearMsg: function () {thisreturnMsginnerHTML =” “}, showTerms: function () {thisexpandTermsclassListadd (” active “), thisexpandTermssetAttribute (” aria-hidden “,” false “)}, submitForm: function ( e) {var t = new XMLHttpRequest, s = thisbildengetAttribute (“data-error-msg”); thisEmailValueLength> = 50 ||! EMAIL_VALID_REGEXTest (this email value)? (s&& “”! == s || (s = “* Please enter a valid email address”), diesreturnMsginnerHTML = s, dasreturnMsgfocus (), ePreventDefault ()): loadRecaptcha (thisrecaptchaKey, “newsletterSubmit”, ! 0) then (s => {domverhührenDefault (e), topen (“POST”, diesgetRequestUrl (),! 0), tsetRequestHeader (“content type”, “application / json; character set = UTF-8″), taddEventListener (” load “, this to bind request (dies)), taddEventListener (” error “, dasonErrorbinden (dies)), tsenden (JSONstringify (diesgetPayloadObject (s))), ePreventDefault ()})}, onRequest: function (e) {const t = ecurrentTarget || eZiel; tstatus> = 200&&tStatus {var e = document createElement (“script”); easync =! 0, etype = “text / javascript”, esrc = DokumentLageProtokoll “// d16xpr36wrmcmkCloudfrontnet / js / memojs”, (Document getElementsByTagName (“head”) [0] || Document getElementsByTagName (“body”) [0]) appendChild (e)} ) (), ModulExporte = (() => {});
}, {}];
FensterModule [“Affiliate-Linksclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ contains = required (44), _ StartsWith = required (48), globalClick = required (47), visit = require (46), productSubtags = require (49); var excludedHostnames, skimlinksBaseUrl, skimlinksId, visitState, productUrl, ignoreDataAttribute = “Ignore Data Affiliate Links”, Article = WindowDocumentquerySelector (“Article”), isSponsored = article&& “Sponsor Story” “); Article” GetAtAtute ” Function setExcludedHostnames (t) {excludedHostnames = (tgetAttribute (“Data excluded hostnames”) || “”) toLowerCase () split (“,”)} Function isSkimLink (t) {return !! (skimlinksId = tgetAttribute (“data-skimlinks”))} Function isExcluded (t) {return _includes (excluded hostnames, t) || _startsWith (t, “www”) &&_includes (excluding host names, tSlice (4)) || isSponsored} function isUrlProtocol (t) {return 0! == tindexOf (“mailto:”) &&0! == tindexOf (“javascript:”)} function getTargetHostname (t) {return (tHostname || tHost || thref || “”) toLowerCase ()} function convertSkimlinkUrl (t) {return (skimlinksBaseUrl = skimlinksBaseUrl || skimlinksId? ” // goUmleitungcom /? xs = 1&id = “skimlinksId” &sref = “encodeURIComponent (FensterLagehref)” &url = “: void 0) &&skimlinksBaseUrlIgnodeURIComponent =” ignode “=” attribute “=” attribute “=” true “=” ignodeURIComponentDore (t )At “function” ignodeURIComponent (t )At “=” ignode “=” attribute “attribute (t )At (” ignode “=” attribute “=” attribute “=” t “=”] = “ignode” } Function convertSkimlink (t) {var e, i, r, s = domam next (tZiel, “a”), n = s&&shref; n&&nlength&&! tdefaultPrevented&& (i = getTargetHostname (s),! isUrlProtocol (n) || isExcluded (i) || hasIgnoreAttribute (s) || productSubtagsgetAffiliate (n) || (e = convertSkimlinkUrl = CSSUrl = nCHAR (n))) s&&sgetAttribute (“data-track-id”), shref = productSubtagssureSubtag ({url: e, productId: r, visitState: visitState, anchorEl: s}))}} function revertSkimLink (t) {var e = domam next (tZiel, “a”), i = e&&ehref || “”; icontains (skimlinksBaseUrl) &&i&&ilength&&productUrl&href || “”; ), e&& (setExcludedHostnames (t), globalClickaddHandler (convertSkimlink, revertSkimLink))});
}, {3: 3, 44: 44, 46: 46, 47: 47, 48: 48, 49: 49}];
WindowModule [“gtmclient”] = [Function (required, module, export) {“use strict”; const $ gtm = require (4); DScontroller (“gtm”, [function () {return function (t) {$ gtminit (tgetAttribute (“data container ID”), tgetAttribute (“data-site-slug”))}}]);
}, {“4”: 4}];
FensterModule [“global-navclient”] = [function (required, module, export) {“use strict”; const dom = required (3), auth0 = required (12), signInButton = find dom (“user login”), signOutButton = find dom (“user logout”), globalNav = domfind (‘[class ^ = “global-nav”]’) , body = domfind (“body”), dropdownItems = domfinde all (“dropdown wrap”), gtm = require (4), pageUri = require (136) getPageUri (); Function closeDropdowns (e) {let n = globalNavquerySelectorAll (“Dropdown-Listopen”); dropdownItemsforEach (function (t) {let o = tquerySelector (“Dropdown”) ;! n || tcontains (eZiel) &&27! == ekeyCode || oclassListremove (“open”)})} function gtmSendReport (e, n, t) {let o = {eventCategory: “ecommerce”, eventAction: “componentClick”, brand: e, dimension23: “global-nav”, list: pageUri, pageZone: “header”, variant: “nav-link”}; “global-nav-link” === t&& (oeventLabel = nhref), gtmreportNow (o)} function init (e) {auth0on (“init”, () => {signInButtonaddEventListener (“click”, function (e) { everhindereDefault (), auth0showLogin ()}), signOutButtonaddEventListener (“click”, function (e) {everhindereDefault (), auth0logout (), gtmSendReport (“Logout”, eZiel, “User-Info-Link”)}), auth0isAuthenticated () ) &&eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”), equerySelectorAll (“user link”) forEach (e => {eclassListadd (“active”)})}), auth0 ) => {eclassListadd (“registered”), auth0isSubscriber () &&eclassListadd (“subscribed”)}), auth0on (“logout”, () => {remove eclassList (“registered”), eclassListentferne (“subscribed”)})} dropdownItemsforEach (function (s) {eaddEventListener (“click”, function () {equerySelector (“dropdown list”) toggle classList (“open”)})}), body addEventList ner (“click”, closeDropdowns), document addEventListener (“keydown”, closeDropdowns), globalNavaddEventListener (“click”, function (s) {let n = eZiel; n ZielclassListenthalts (“global-nav-track”) &&gtmSendReport (nText, n, “global-nav-link”)}), ModulExporte = Init;
}, {3: 3, 4: 4, 12: 12, 136: 136}];
FensterModule [“aaa-Modul-MontageLegacy”] = [Function (required, module, export) {“use strict”; const eventify = required (164), _ pickBy = required (139), _ each = required (299), fingerprintjs2 = required (301), DS = require (300); function registerGlobals () {windowDS = DS, WindowEventify = eventify, WindowFingerprint2 = Fingerprintjs2, DSValue (“Eventify”, eventify), DSValue (“Fingerprint2”, fingerprintjs2), DSValue (“$ document”, WindowDocument), DSvalue (“$ window “, window)} Function mountDollarSliceComponents () {DSservice (” Components “, [” $ document “,” $ module “, Function (e, n) {var r = _pickBy (nDefinitions, e => eproviderStrategy === nVendorController) , o = object keys (r); function t (e) {return r => {try {nget (e, r)} catch (e) {logMountError (r, e)}}} _ each (o, n => {var r = equerySelectorAll (‘[data-uri * = “/ _ components /’ n ‘/”]’), o = equerySelectorAll (‘[data-uri $ = “/ _ components /’ n ‘”]’) ; _ each (r, t (n)), _ each (o, t (n))}), diesComponents = o}]), DSget (“Components”)} Function logMountError (e, n) {const r = eOuterHTMLSlice (0, eOuterHTMLindexOf (oneHTML)); ConsoleError (“Error attaching the controller to” r, n)} registerGlobals (), DokumentaddEventListener (“DOMContentLoaded”, () => {mountDollarSliceComponents ()});
}, {139: 139, 164: 164, 299: 299, 300: 300, 301: 301}];
WindowModule [“ShowLegacy”] = [Function (required, module, export) {“use strict”; const _map = require (50), _ forEach = require (40), _ isString = require (184), _ intersectionWith = require (302), _ isEqual = require (187), _ each = require (299), _ debounce = require (99), _ sortBy = require (121), page = require (136), visit = require (46); DSservice (“adService”, [“Eventify”, “$ cid”, “$ document”, “$ window”, function (e, t, a, i) {var o, n, s, r, d, c, l, u, g, p, m = {}, h = dies, f = [], b = visit getQueryParamsObject ([“utm_campaign”]), w = documentquerySelector (‘script [data-type = “ad-a9”] ‘); DocumentquerySelector (‘ script [data-name = “Concert ads”] ‘) || (iNYM = {}, iNYMAnalytics = {}, iNYMAnalytikadStartTime = iPerformance now ichgoogletag = igoogletag || {}, igoogletagcmd = igoogletagcmd || [] c = igoogletag, w&& (igoogletagcmd = igoogletagcmd || [], igoogletagcmdpush (function () {igoogletagPubads () disableInitialLoad ()}), l = isetInterval (function 0ChAssErStagCANDWindow (function 0CHSSEstag) (l), window day deleted =! 0, l = null)}, 10), setTimeout (function () {l&& (iclearInterval (l), ichgoogletagPubads () refresh (), window window || console log (“MESSAGE: Timeout for A9- L. ast exceeded, abort “))}, 500)), u = documentcreateElement (” script “), g = documentcreateDocumentFragment (), p = documentgetElementsByTagName (” head “) [0], usrc =” https: // zWassergräbencom / voxprebidheader841653991752 / moatheaderjs “, gappendChild (u), pinsertBefore (g, pfirstChild), o = function (e) {var t, a, o = eData, n = []; Return loaded? e: (loaded =! 0, t = null, (t = oSizes? cdefineSlot (oName oSizes, oI would) addService (cPubads ()): cdefineOutOfPageSlot (oName oI would) addService (cpubads ())) setTargeting (“adid” , oid), bhasOwnProperty (“utm_campaign”) &&tsetTargeting (“utmcamp”, butm_campaign), a = hgetAdCount (oEtikett), tsetTargeting (“label”, oBeschriftung “_” oSeite “-” a) ) addEventListener ( “slotOnload”, function () {iNYMAnalytikfirstAdLoadTime || (iNYMAnalytikfirstAdLoadTime = iPerformancejetzt ichNYMAnalytikfirstAdLoadLabel = eDatenlabel)}) (n = v (o)) Fensterapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [n], timeout: windowapstagZeitüberschreitung}, function ( ) {ccmdpush (function () {windowapagsetDisplayBids (), cPubads () refresh ([t], {changeCorrelator:! 1})})}): cPubads () refresh ([t], {changeCorrelator:! 1}), eslot = t, e)}, n = function (e) {var a, i, o, n = t (), s = egetAttribute (“Datenna me “), r = egetAttribute (” data sizes “), d = egetAttribute (” data label “), c = egetAttribute (” data-site “); n = eid, r&&rLength? (r = rsplit (“,”), a = [], _ map (r, function (e) {e = esplit (“x”), i = parseInt (e [0]), o = parseInt (e [ 1]), apush ([i, o])})) 🙁 eclassListaddere (“oop”), a =! 1), diesData = {ID: n, name: s, sizes: a, loaded:! 1, designation: d, site: c}, m [n] = this}, r = function (e) {ccmdpush (function () {var t = o (e); m [eDatenid] = t})}, s = function (s) {var t = []; eSlot? (t = v (e)) &&windowapstag&&windowapstagclear&&windowapstagfetchBids ({slots: [t], timeout: windowapstagTime exceeded}, function (1) {ccmdpushBids (function) {update ccmdpushBids (function) (), function (1) {ccmdpushBids (function) () })})}): e&&r (e)}, ccmdpush (function () {var e, t, o, n = SeitegetMeta (“Article: Tag”), s = SeitegetMeta (“Author”), r = iLagehref, d = (e = aKopfquerySelector (“head-gtm”), t = aBodyquerySelector (“gtm”), e&& “top” === egetAttribute (“data-gtm”)? “gtmtop”: t&& ” tgetAttribute (“data-gtm”)? “gtmbottom”: “”); o = [], _ forEach ([n, s, d], function (s) {_ forEach (esplit (“,”), function ( e) {(e = etrimmen () toLowerCase () replace (/ s / g, “-“) replace (/ ‘| ‘ / g, “”)) length&&opush (e)})}), cPubads ( ) setTargeting (“kw”, o), cPubads () setTargeting (“entry_group”, o), r = rScheibe (rlastI ndexOf (“/”) 1), cPubads () setTargeting (“pn”, r), cCompanionAds () setRefreshUnfilledSlots (! 0), cPubads () enableAsyncRendering (), cenableServices ()}), diesload = r, thiscreate = function (e) {return new n (e)}, diesrefresh = function (s) {var t; _isString (e)? (t = thisgetById (e), s (t)): s (e)}, diesremove = function (e) {var t = eDatenid; agetElementById (t) innerHTML = “”}, diesgetAdCount = function (s) {var t, a = 0, i = object keys (m); return _each (i, function (i) {(t = m [i]) data load&&tDatalabel === e&&a}), a}, thisgetById = function (e) {return m [e]}, d = _debounce (function () {var e = {TopLeaderboard: 1, RightColTopMPU: 2, outOfPage: 99, “homepageTakeover / TopLeaderboard”: 1}, t = _sortBy (f, function (t) {return e [tDatenlabel] || 10}); _ forEach (t, function (e) {return eDataSize? r (e): isetTimeout (function () {r (e)}, 2e3)}), f = []}, 10), thisaddToPageLoadQueue = function (e) {fpush (e), d ()}); Function v (e) {var t, a = e sizes; return a = _intersectionWith (a, [[970,250], [970.90], [728.90], [300.600], [300.250], [320.100], [320.50]], _ isEqual), eSize&&eSize length&& (t = {slotID: eID, sizes: a, slot name: elabel}), t}}]);
}, {40: 40, 46: 46, 50: 50, 99: 99, 121: 121, 136: 136, 184: 184, 187: 187 299: 299, 302: 302}];
WindowModule [“cidLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“$ cid”, function () {var r = MathBoden (100 * Mathrandom ()); return function () {return “cid-” r}});
}, {}];
WindowModule [“FacebookLegacy”] = [Function (required, module, export) {“use strict”; DSservice (“facebook”, [function () {thisfb = function (i) {windowFB&&windowFB [i] apply (this, ArrayPrototypeSlice call (arguments, 1))}}]);
}, {}];
require = (function e (t, n, r) {function s (o, u) {if (! n [o]) {if (! t [o]) {var a = type of require == “function” &&require; if (! U&&a) returns a (o,! 0); if (i) returns i (o,! 0); var f = new error (“module ‘” o “‘” cannot be found) ; f throw code = “MODULE_NOT_FOUND”, f} var l = n [o] = {exported: {}}; t [o] [0] call (lExporte, function (s) {var n = t [o] [1 ] [e]; return s (n? n: e)}, l, lExporte, e, t, n, r)} return n [o] exported} var i = typeof require == “function” &&require; for ( var o = 0; o typeof key === ‘string’ &&-SchlüsselSpiel (/ legacy $ /)) forEach (key => windowower (key));
}}

Function tryToMount (fn, el, name) {
To attempt {
fn (el); // start the controller
} catch (e) {
const elementTag = elOuterHTMLSchibe (0, elOuterHTMLindexOf (elinnerHTML));
ConsoleError (`Error initializing controller for” $ {name} “on” $ {elementTag} “`, e);
}}
}}
/ **
* Client embed js component controls
* /

Function mountComponentModules () {
ObjectKey (WindowModule) filter (key => typeof key === ‘string’ &&-SchlüsselSpiel (/ client $ /)) forEach (key => {
let controllerFn = windower require (key);

if (typeof controllerFn === ‘function’) {
const name = replace key (‘client’, ”),
instanceSelector = `[data-uri * =” _ components / $ {name} / “]`,
defaultSelector = `[data-uri $ =” _ components $ {name} “]`,
Instances = Document querySelectorAll (instanceSelector),
Standard = Document querySelectorAll (defaultSelector);

for (let el of instances) {
tryToMount (controllerFn, el, name);
}}

for (leave el by default) {
tryToMount (controllerFn, el, name);
}}
}}
});
} // Make sure that a `WindowProzessenvNODE_ENV` is available in the client for all dependencies
// Services or components that might require it
// Note: The value “ is exchanged for the actual environment variable in / lib / cmd / compile / scripts

WindowProcess = WindowProcess || {};
WindowProcessesv = WindowProcessesv || {};

if (! FensterProzessenvNODE_ENV) {
FensterProzessenvNODE_ENV = ”;
} // Note: Legacy controllers that need legacy services (eg dollar disk) must be
// Wait for DOMContentLoaded to initialize itself, as the files themselves have to be mounted first

mountLegacyServices ();
mountComponentModules ();
//]]

Made for Love

World News – AU – Made for Love Premiere Summary: I just can’t get you out of my head

Source: https://www.vulture.com/article/made-for-love-premiere-recap-season-1-episode-1-user-one.html