Migos rapper Quavo shoves his former girlfriend Saweetie into viral leaked footage from an elevator camera The video received from TMZ is from an apartment complex in North Hollywood that Saweetie reportedly rented last year “, Legal name Diamonté Harper, who swings at Quavo, legal name Quavious Marshall, as she tries to remove luggage from the elevator. Quavo then pushes her into the elevator and uses his body to prevent her from getting off with the luggage Until she lands on the floor, just outside the frame, Quavo stays in the elevator and looks at her as the door opens, he gets out and Saweetie follows slowly and limping as the incident allegedly happened in 2020, the TMZ confirmed with sources on both sides

Saweetie was the first to announce their breakup earlier this month amid fraudulent rumors “I have endured too much betrayal and hurt myself behind the scenes to circulate a false narrative that worsens my character,” She wrote on Twitter at the time, “Presents are not plaster scars and love is not real when intimacy is given to other women. On the same day, the Daily Mail reported that Quavo had repossessed the Bentley he had rented for Saweetie as a Christmas present

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 = acut 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 aUser-definedlength&&ArrayPrototyptoStringAnruf (acustom) &&aUser-definedforEach (function (e) a (e) “a” key n); > 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 [pLength-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) &&o [l] 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 (`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 zurückAbfragegeo_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 (41), _ 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 = WindowProzessenvAGORA_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 specify a product ID”); return fetch (r) then (handleResponse) then (e => t? filterByLocale (e, t): e) catch (ha ndleError (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 (u, {matchcountry: {“DealerCountry: u, {match “: 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 ({matchServiceaddDMust ({} “, : 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), querySortdServic {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 ({aggregation name: “dealer”, field Key “, subfield:” name “}))} function queryRetailersByUrl (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), moduleExpor te = {buildProductsQuery: buildProductsQuery, buildMerchantsAggregation: buildMerchantsAggregation, getProducts: getProducts, getProduct: getProduct, postProduct: postProduct, putProduct: putProduct, patchProduct: putProduct, getProduct, patchProductist, getMerProduct, getMerProduct, getMerProduct, getMerProduct, getMerProduct: getMerProduct, getMerProduct: , putMerchant: putMerchant, deleteMerchant: deleteMerchant, isURL: isURL, filterByLocale: filterByLocale, patch locale: patch locale, post locale: post locale, buildMerchantsByUrlQuery: buildMerchantsByUrlQuery, getAffiliatesByLocale: getAffiliatesByLocale, searchByQueryWithRawResults: searchByQueryWithRawResults, getRetailersByAffiliateId: getRetailersByAffiliateId, getMerchantsList: getMerchantsList, queryRetailersByUrl: queryRetailersByUrl};

}) call (this)}) call (this requires (11), “/ services / universal / agorajs)}, {9: 9, 11: 11, 22: 22, 23: 23, 41: 41, 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 (89), _ assign = require (138), _get = require (23), _ pickBy = require (139), _ find = require (42), 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: “target”}, 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, 42: 42, 50: 50, 89: 89, 138: 138, 139: 139, 203: 203}];
FensterModule [“Artikel-Naviclient”] = [Function (required, module, export) {“use strict”; const dom = required (3), _ throttle = required (37), $ visibility = required (4), $ popup = required (53), $ gtm = require (2), {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) (rhindereDefault (), $ 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)” &CHARVIA_CutCutCutCutCutCampECH = utM_campECHAR = “f” = “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? (remove rclassListent (“visible”), lclassListadd (“visible”), ltextContent = sText || stextContent) 🙁 rtextContent = sText || stextContent, rhref = shref || “#”) 🙁 nStildisplay = “none”, rStildisplay = “none”); S (), otextContent = h} ()});
}, {“2”: 2, “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 (2), {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 === ekeyCAR&i () Function r (e) {27 === ekeyCANDCHARANDCSSE} Function r (e) {27 === ekeyCandCodeCSSE (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 “))});
}, {“2”: 2, “3”: 3, “52”: 52}];
FensterModule [“Navi dropdown button client”] = [Function (required, module, export) {“use strict”; const dom = required (3), visibility = required (4), {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 visibility getViewportWidth () {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 eclassList (“c-right”, “c-right bottom”, “c-left”, “c-left bottom”)}) (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 ()})});
}, {“3”: 3, “4”: 4, “52”: 52}];
FensterModule [“follow client”] = [function (required, module, export) {“use strict”; const _find = require (42), $ 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}]);
}, {“42”: 42, “53”: 53}];
FensterModule [“Comment-Linkclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), _ get = require (23), _ isFinite = require (110), ajax = require (109); 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, “comment link number”), diescommentText = domfind (n, “comments link text”), diesisNavVariation = nclassListenthalt (“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? “title”: “unentitled”: “unauthenticated”} function getPaywallStatus (e) {const t = getData (“totalCount”) || 0; return Boolean (t> = 3&& “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 (4), 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 (), logout (), > {storeRemove the module (TALK_AUTH)}))} Exports = Init;
}, {3: 3, 4: 4, 12: 12, 116: 116}];
WindowModule [“Choreographer Client”] = [function (require, module, export) {“use strict”; const cookie = require (40), _ get = require (23), _ omit = require (80), {insertSpeedBumpComponents: insertSpeedBumpComponents} = require (77)), {insertNewsletterSpeedBumpComponents: insertNewsletterSpeedBumpComponents} = require (78), {generateGrowl: generateGrowl} = require (76), gtm = require (2), {getLocalStorage: getLocalStorage, setLocalStorage: setLocalStorage} = require (14), {reportPaywall} = require (52), moment = require (24), {getClientHistory: getClientHistory , updateClientHistoryWithPageData: updateClientHistoryWithPageData} = require (79), 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, cliffTakeover: c} = o, d = DokumentimportNode (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, warningGrowl2Image: 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)}));
}, {2: 2, 10: 10, 12: 12, 14: 14, 23: 23, 24: 24, 40: 40, 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 ( ), doingobserved (a))}); aStiltop = `$ {documentquerySelector (” body “) scrollHeight / (100 / e)} px`, tbeobachte (a)} (n), equerySelector (” dismissed-modal “) addEventListener (“click”, () => i? g (): d ()), eaddEventListener (“growl: hide”, d), eaddEventListe ner (“growl: dismissed”, g))});
}, {3: 3, 14: 14, 59: 59, 140: 140}];
FensterModule [“Speed-Bumpclient”] = [Function (required, module, export) {“use strict”; const gtm = required (2), visibility = required (4); 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)})});
}, {“2”: 2, “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 (2), auth0 = require (12) , Visibility = require (4), 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 (“IncomingE-Mail”), 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”})});
}, {2: 2, 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 (41), _ max = require (43), _ find = require (42), _ contains = require (44), $ visibility = require (4), 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 => ubeinhalt (e)), g = eparentElementclassListenthalt (“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)}}]);
}, {3: 3, 4: 4, 41: 41, 42: 42, 43: 43, 44: 44}];
WindowModule [“Sticky-Listeclient”] = [Function (required, module, export) {“use strict”; const dom = require (3), $ gtm = require (2), _ get = require (23), stickyContainer = require (“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) {let 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 (4), $ gtm = required (2), 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)), $}}]););
}, {2: 2, 4: 4, 56: 56, 57: 57}];
WindowModule [“Tagsclient”] = [Function (required, module, export) {“use strict”; const _forEach = require (41); 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}]);
}, {“41”: 41}];
FensterModule [“Memo-Pixelclient”] = [Function (required, module, export) {“use strict”; (() => {var e = documentcreateElement (“script”); easync =! 0, etype = “text / javascript”, esrc = DokumentLageProtokoll “// d16xpr36wrmcmkCloudfrontnet / js / memojs”, (DokumentgetElementsByTagName (“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 (46), visit = require (47), productSubtags = require (49); var excluded hostnames, 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) &&skimlinksBaseUrlIgnodeURIComponentAttribute =” ignodeURIComponent (t )At “return true = =” ignodeURIComponentAttribute (t )At (ignode = ttribute “=” ignode “=” hastribute “=” ignode “=” attribute “=” ttribute “=” ignode “=” hastribute (t )Attribute = ” } 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 (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 (2); DScontroller (“gtm”, [function () {return function (t) {$ gtminit (tgetAttribute (“data container ID”), tgetAttribute (“data-site-slug”))}}]);
}, {“2”: 2}];
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 (2), 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) { ePreventDefault (), 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”) classListum toggle (“open”)})}), body addEventListener (“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;
}, {2: 2, 3: 3, 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, DSWert (“Eventify”, eventify), DSWert (“Fingerprint2”, fingerprintjs2), DSWert (“$ 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 (41), _ isString = require (184), _ intersectionWith = require (302), _ isEqual = require (190), _ each = require (299), _ debounce = require (100), _ sortBy = require (123), page = require (136), visit = require (47); 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 = “Konzertangebote”] ‘) || (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; Returns a = _IntersectionWith (a, [[970.250], [970.90], [728.90], [300.600], [300.250], [320.100], [320.50]], _ isEqual), eSize&&eSize length&&SSEANDCHAR = {slotID: eID, sizes: a, slot name: elabel}), t}}]);
}, {41: 41, 47: 47, 50: 50, 100: 100, 123: 123, 136: 136, 184: 184, 190: 190 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 ();
//]]

Quavo

World news – USA – Quavo will push Saweetie into leaky elevator receptacles from 2020

Source: https://www.vulture.com/2021/03/quavo-pushes-saweetie-elevator-video-from-2020.html