Information A number of individuals killed in a automobile accident in Yonkers – RADIO.COM

0
59

YONKERS (WCBS 880) – Police say a driver who sped away from an attempted traffic stop in Yonkers on Tuesday evening crashed into another vehicle, killing four teenagers and himself.

The crash happened around 10:30 p.m. on Riverdale Avenue and Culver Street at about 10:30 pm

5 dead in Yonkers crash, according to @YonkersPD details in minutes on Today in New York pic.twitter.com/Rrhe6G7Fjn

– 𝐌𝐲𝐥𝐞𝐬 𝐍. 𝐌𝐢𝐥𝐥𝐞𝐫 (@MylesMill) December 23, 2020

Police said they tried to run over 36-year-old Devon Haywood, who was behind the wheel of a white Infiniti, for eratic driving with alleged equipment violations.

The Infiniti sped off before crashing into a Nissan and splitting the vehicle in half.

Haywood died in the hospital.

Four teenagers in the Nissan, identified as Randy Brisbane, Tamari Watkins, Anthony Cruz and Brandon Sierra, were expelled from the vehicle and died on the scene. They were all 18 years old and reportedly recently graduated from high school.

The surveillance video received from WNBC shows the crash at the intersection.

Mayor Mike Spano described the crash as "downright tragic".

"Four young lives have been cut short by the ruthlessness of one," said Spano. "Let this be a lesson to anyone who drives at excessive speed – it endangers not only your life, but the innocent life you share the road with. My deepest condolences and prayers go to the families of the lost, especially during this time holiday season. "

"My heart breaks for the families who are affected by this terrible and devastating car accident," said Andrea Stewart-Cousins, Senate Majority Leader. "Your worlds will change forever. We don't know all the details yet as the crash is still under investigation, but we always have to look for ways to make our streets as safe as possible. I'm sure I'm tracking the situation and broadcasting My condolences to the families and their loved ones. "

document.F = Object "), e.close (), createDict = eF; r -;) delete createDict (PROTOTYPE) (enumBugKeys (r)); return createDict ()}; module.exports = Object.create || function (e, t) {var r; return null! == e? (empty (PROTOTYPE) = anObject (e), r = new empty, empty (PROTOTYPE) = null, r (IE_PROTO) = e): r = createDict (), void 0 === t? r: dPs (r, t)};
}, {"219": 219, "231": 231, "233": 233, "246": 246, "254": 254, "255": 255});
window.modules ("254") = (function (required, module, export) {var dP = required (244), anObject = required (219), getKeys = required (235); module.exports = required (229)? Object.defineProperties: Function (e, r) {anObject (e); for (var t, o = getKeys (r), c = o.Length, i = 0; c> i;) dP.f (e, t = o (i ++), r (t)); return e};
}, {219: 219, 229: 229, 235: 235, 244: 244});
window.modules ("255") = (function (required, module, export) {var shared = required (242) ("key"), uid = required (252); module.exports = function (s) {return shared (e) || (divided (e) = uid (e))};
}, {"242": 242, "252": 252});
window.modules ("256") = (function (required, module, export) {var isObject = required (220); module.exports = function (t, e) {if (! isObject (t)) return t; var r, i; if (e && "function" == typeof (r = t.toString) &&! isObject (i = r.call (t))) return i; if ("function" == typeof (r = t ). valueOf) &&! isObject (i = r.call (t))) return i; if (! e && "function" == typeof (r = t.toString) &&! isObject (i = r.call (t))) return i; throw TypeError ("Object cannot be converted to primitive value")};
}, {"220": 220});
window.modules ("257") = (function (required, module, export) {var pIE = required (237), createDesc = required (245), toIObject = required (222), toPrimitive = required (256), has = require (243), IE8_DOM_DEFINE = require (247), gOPD = Object.getOwnPropertyDescriptor; exports.f = require (229)? gOPD: Funktion (e, r) {if (e = toIObject (e), r = toPrimitive (r ,! 0), IE8_DOM_DEFINE) try {return gOPD (e, r)} catch (e) {} if (has (e, r)) return createDesc (! PIE.f.call (e, r), e (r ))};
}, {222: 222, 229: 229, 237: 237, 243: 243, 245: 245, 247: 247, 256: 256});
window.modules ("258") = (function (required, module, export) {var toIObject = required (222), gOPN = required (259) .f, toString = {}. toString, windowNames = "object" == Window type && Window && Object.getOwnPropertyNames? Object.getOwnPropertyNames (window) :(), getWindowNames = Function (s) {try {return gOPN (e)} catch (e) {return windowNames.slice ()}}; module.exports .f = function (s) {return windowNames && "(object window)" == toString.call (e)? getWindowNames (e): gOPN (toIObject (e))};
}, {222: 222, 259: 259});
window.modules ("259") = (function (required, module, export) {var $ keys = required (260), hiddenKeys = required (233) .concat ("length", "prototype"); exports.f = Object.getOwnPropertyNames || function (e) {return $ keys (e, hiddenKeys)};
}, {233: 233, 260: 260});
window.modules ("260") = (function (required, module, export) {var has = required (243), toIObject = required (222), arrayIndexOf = required (221) (! 1), IE_PROTO = required (255 )) ("IE_PROTO"); module.exports = function (r, e) {var a, t = toIObject (r), u = 0, O = (); for (a in t) a! = IE_PROTO && hat (t, a) && O.push (a); for (; e.length> u;) has (t, a = e (u ++)) && (~ arrayIndexOf (O, a) || O.push (a)); return Ö};
}, {221: 221, 222: 222, 243: 243, 255: 255});
window.modules ("261") = (function (required, module, export) {var def = required (244) .f, has = required (243), TAG = required (262) ("toStringTag"); module. exported = function (e, r, o) {e &&! hat (e = o? e: e.prototype, TAG) && def (e, TAG, {configurable:! 0, value: r})};
}, {"243": 243, "244": 244, "262": 262});
window.modules ("262") = (function (required, module, export) {var store = required (242) ("wks"), uid = required (252), symbol = required (232). symbol, USE_SYMBOL = "function" == type of symbol, $ export = module.exports = function (o) {return store (o) || (store (o) = USE_SYMBOL && symbol (o) || (USE_SYMBOL? symbol: uid) ( "Symbol." + O))}; $ exports.store = store;
}, {232: 232, 242: 242, 252: 252});
window.modules ("263") = (function (required, module, export) {var lid = Math.ceil, floor = Math.floor; module.exports = function (o) {return isNaN (o = + o)? 0: (o> 0? Floor: ceiling) (o)};
}, {});
window.modules ("264") = (function (required, module, export) {var defined = required (228); module.exports = function (s) {return object (defined (s))};
}, {"228": 228});
window.modules ("265") = (function (required, module, export) {var global = required (232), core = required (226), LIBRARY = required (250), wksExt = required (266), defineProperty = require (244) .f; module.exports = function (e) {var r = core.Symbol || (core.Symbol = LIBRARY? {}: global.Symbol || {}); "_" == e. charAt (0) || e in r || defineProperty (r, e, {value: wksExt.f (e)})};
}, {226: 226, 232: 232, 244: 244, 250: 250, 266: 266});
window.modules ("266") = (function (required, module, export) {exports.f = required (262);
}, {"262": 262});
window.modules ("267") = (function (required, module, export) {! function () {var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /", t = {rotl: function (r, t) {return r> 32- t}, rotr: function (r, t) {return r> t}, endian: function (r) {if (r.constructor == Number) return 16711935 & t.rotl (r, 8) | 4278255360 & t. rotl (r, 24); for (var n = 0; n0; r -) t.push (Math.floor (256 * Math.random ())); return t}, bytesToWords: function (r) {for ( var t = (), n = 0, o = 0; n >> 5) | = r (n) 5) >>> 24-n% 32 & 255); return t}, bytesToHex: function (r) {for (var t = (), n = 0; n >> 4) .toString (16)), t.push ((15 & r (n)). toString ( 16)); return t.join ("")}, hexToBytes: function (r) {for (var t = (), n = 0; n0? (t = analysis (s), d = analysis (n)) 🙁 t = Analyze (n), d = Analyze (e)); var c, M = differentInSeconds (d, t), _ = d.getTimezoneOffset () – t.getTimezoneOffset (), I = Math.round (M / 60) – _; if (I = 2, s = i && r.length> 2, l = i? s? "podcasts / podcasts_episode": "podcast": r.join ("/"); o.siteZone = n.concat ("/", l); break; case "stationesDirectory": o. siteZone = n.concat ("/". concat (e.pageName, "_ music")); break; case "stationDetail": o.siteZone = n.concat ("/ liv estreamplayer"); break; case "topicPage": o.siteZone = n.concat ("/", "tag"); break; case "authorPage": o.siteZone = n.concat ("/", "show")} return o} function createAds (e) {var t = urlParse (window.location,! 0) .query, a = getMetaTagContent ("property", OG_TYPE), n = getCurrentStation () , o = getAdTargeting (getPageData (window) .location.pathname, a, n.site_slug)), r = (); googletag.cmd.push (function () {googletag.puba ds (). setTargeting ("refresh", (refreshCount ++). toString ()); var a, n = _createForOfIteratorHelper (e); try {for (ns ();! (a = nn ()). done;) {var i = a.value, s = i.querySelector (". google-ad-manager__slot"), l = i.getAttribute ( "Data ad size"), d = i.getAttribute ("data ad position"), g = i.getAttribute ("data ad position"), u = googletag.pubads (), c = adMapping.sizeMapping (l), p = void 0; "outOfPage" === l? p = googletag.defineOutOfPageSlot (o.siteZone, s.id) 🙁 p = googletag.defineSlot (o.siteZone, (adSizes (l) .defaultSize), s.id)). defineSizeMapping (c), p.setTargeting ("station", o.targetingRadioStation) .setTargeting ("genre", o.targetingGenre) .setTargeting ("cat", o.targeting category) .setTargeting ("tag", o.targetingTags ) .setTargeting ("pid", o.targetingPageId) .setTargeting ("pos", d) .setTargeting ("loc", g) .setTargeting ("adtest", t .adtest || ""). addService (u), o.targetingMarket && p.setTargeting ("market", o.targetingMarket), "sharethrough-tag" === l && p.setTargeting ("strnativekey", sharethroughPlacementKey), rightRailAdSizes.includes (l) && p.setTargeting ("pos", d + (numRightRail ++). toString ()), document.querySelector (". component – gallery") && "Führer" === d? p.setTargeting ("pos", d + (numGalleryInline ++). toString ()): document.querySelector (". component – station directory") && "Leader" === d && p.setTargeting ("pos", d + (numStationsDirectoryInline ++). toString ()), o .targetingAuthors.length && p.setTargeting ("author", o.targetingAuthors), allAdSlots (s.id) = p, r.push (s)}} catch ( e) {ne (e)} finally {nf ()} amazonTam .fetchAPSBids (allAdSlots, function () {r.forEach (function (e) {var t = allAdSlots (e.id); googletag.display (e.id ), "atf" === t.getTargeting ("loc")) (0)? InitialPageAdSlots.push (t): Observer.observe (e)}), googletag.pubads () .refresh (initialPageAdSlots)})} )} Function resizeForSkin () {var e = document.querySelector (". Layout__content"), t = document.querySelectorAll (". Component – station carousel"), a = (); return t.forEach (function (t) {var n = window.getComputedStyle (t), o = n.margin, r = n.width; a.push ({margin: o, width: r}), assign Object (t.style, {"margin-left": "calc ((100% -" .concat (e.clientWidth, "px) / 2)"), width: "". concat (e.clientWidth, "px" )})}), function () {t.forEach (function (e, t) {var n = a (t), o = n.margin, r = n.width; Object.assign (e.style, { margin: o, width: r})})}} function debounceRefresh () {return _debounce (function () {window.innerWidth! = windowWidth && (windowWidth = window.innerWidth, refreshAllSlots ())}, 500)} function getCurrentLocation () {var e = new url (window.location.href); return e.hash = "", e.toString ()} document.querySelectorAll (". google-ad-manager – mobile-adhesion"). forEach (function (s) {return addCloseEvent (e)}), window.disableAdRefresh = function (s) {e.forEach (function (s) {return disabledRefreshAds.add (e)})}, window.enableAdRefresh = function ( e) {e .forEach (function (s) {return disabledRefreshAds.delete (e)})}, window.freq_dfp_takeover = function (e, t, a, n) {var o = document.createElement ("div"), r = document. querySelector (". layout__topSection") || document.querySelector (". layout__top"), i = resizeForSkin (), s = getCurrentStation (); if (void 0 === a && (a = "# FFF"), void 0 === n && (n = "absolute"), o.setAttribute ("id", "freq-dfp – bg-skin" ), o.setAttribute ("class", "advertisement – full"), o. setAttribute ("data-ad-type", "fullpageBanner"), o.style.position = n, "fixed" == n && ( window.onscroll = function () {var e = void 0! == window.pageXOffset, t = "CSS1Compat" === (document.compatMode || "")? document.documentElement.scrollTop: document.body.scrollTop, a = e? window.pageYOffset: t, n = document.getElementsByClassName ("radiocom-nav" ") (0) .clientHeight; n && a> = n? (O.style.position =" fixed ", o.style ("padding-top") = "0px"): o.style.position = "absolute"}), t && (o.onclick = window.open.bind (this, t, "_ new")), e ) {var l = document.createElement ("div"), d = new image, g = document.getElementsByTagName ("body") (0); l.style ("background-imag" e ") =" url (" . concat (e, ")"), l.setAttribute ("class", "dfp-takeover-skin"), o.appendChild (l), d.src = e, d. onload = function () {void 0! == d.width && d.width> 1 && (updateSkinStyles (! 0), g.classList.add ("has-fullpage-ad"), document.querySelector (". google-ad- manager – global-logo- sponsorship ") && s.site_slug && g.classList.add (" has-global-sponsorship-ad "))}} r && (document.body.style.backgroundColor = a, r.parentNode.insertBefore (o, r. nextSibling)), clearDfpTakeover = function () {var e = document.getElementsByTagName ("body") (0); o.remove (), e && (e.classList.remove ("has-fullpage-ad"), e.classList.remove ("has-global-sponsorship-ad")), i (), updateSkinStyles (! 1 )}};
}, {"1": 1, "5": 5, "7": 7, "9": 9, "28": 28, "73": 73, "74": 74, "77": 77 78: 78, 79: 79, 80: 80, 81: 81, 82: 82});
window.modules ("google-tag-manager.client") = (function (required, module, export) {"use strict";! function () {if ("undefined"! = window type) {var t = document. getElementsByTagName ("script") (0), e = document.createElement ("script"), a = document.getElementById ("google-tag-manager"). getAttribute ("data-container-id"); window. dataLayer = window.dataLayer || (), window.dataLayer.push ({"gtm.start" 🙁 new date) .getTime (), event: "gtm.js"}), e.async =! 0, e. src = "https://www.googletagmanager.com/gtm.js?id=GTM-" .concat (a), t.parentNode.insertBefore (e, t)}} (), document.addEventListener ("pageView" , function (t) {window.dataLayer = window.dataLayer || (); var e = {event: "Pageview", title: t.detail.toTitle, "og: title": t.detail.toTitle, description: t.detail.toDescription, "twitter: image": t.detail.toMetaImageUrl, "og: image": t.detail.toMetaImageUrl, url: "". concat (window.location.protocol, "//"). concat (window.location.hostname) .concat (t.detail.toPath)} ; window.dataLayer.push (e)});
}, {});
window.modules ("host-page-header.client") = (function (required, module, export) {"use strict"; var getRightRail = required (20); module.exports = function (t) {return getRightRail ( t, "host")};
}, {"20": 20});
window.modules ("html-embedded.client") = (function (required, module, export) {"use strict"; var scriptEmbed = required (84); module.exports = function (s) {return scriptEmbed (e) };
}, {"84": 84});
window.modules ("instagram-post.client") = (function (required, module, export) {"use strict"; var _interopRequireDefault3 = required (5), _ interopRequireDefault2 = _interopRequireDefault3 (required (5)), _ classCallCheck2 = required (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2), embeddedsLibraryUrl = "// platform. instagram .js ", InstagramEmbeds = function () {function e () {(0, _classCallCheck3.default) (this, e), window.instgrm? this.process (): document.querySelector (& # 39; script (src = "& # 39;). Concat (embeddedsLibraryUrl, & # 39;") & # 39;)) || this.mount ()} return (0, _createClass3.default) (e, ({key: "mount", value: function () {var e = this, r = document.getElementsByTagName ("script") (0), t = document.createElement ("script"); t.onload = function () {e.process ()}, t.src = embeddedLibraryUrl, r.parentNode.insertBefore (t, r)}}, {key: "process ", value: function () {window.instgrm.Embeds.process ()}})), e} (); module.exports = function (e) {return new InstagramEmbeds (e)};
}, {"5": 5, "37": 37, "38": 38});
window.modules ("latest-recirculation.client") = (Function (required, module, export) {"use strict"; void 0 === window.document.createElement ("div"). style.webkitLineClamp && document. querySelector ("html"). classList.add ("no-line-clamp");
}, {});
window.modules ("latest-top-recirc-slider.client") = (function (required, module, export) {"use strict"; var _interopRequireDefault3 = require (5), _ interopRequireDefault2 = _interopRequireDefault3 (require (5)) , _classCallCheck2 = require (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2), Hammer = () {Function e (t) {var i = this; (0, _classCallCheck3.default) (this, e), this.dom = {el: t, btns: {left: t.querySelector (". Latest-top -recirc -slider__control – left "), right: t.querySelector (". latest-top-recirc-slider__control – right "), canMoveRight:! 0, canMoveLeft:! 1, disabledOpacity: .35}, itemsContainer: {el: t. querySelector (". last-top-recirc-slider__items-container"), x: 0, getViewWidth: function () {return i.dom.itemsContainer.el.offsetWidth}, getSlides: function () {return Array .from (i .dom.itemsContainer.el.children)}, getSingl eSlideWidth: function () {return i.dom.itemsContainer.el.children (0) .off setWidth}, getTotalWidthOfSlides: function () {return i.dom.itemsContainer.getSlides (). redu (function (e, t) {return e + t.offsetWidth}, 0)}, getInitialOffset: function () {return i. dom.itemsContainer.getSingleSlideWidth () – i.dom.itemsContainer.getViewWidth ()% i.dom.itemsContainer.getSingleSlideWidth ()}, getMaxX: function () {return i.dom.itemsContainer.getTotalWidthOfSlides () – i.dom. itemsContainer.getViewWidth ()}, getSlidesVisible: function () {return i.dom.itemsContainer.getViewWidth () / i.dom.itemsContainer.getSingleSlideWidth ()}, getTotalClicksToTheRight: function () {return i.dom.itemsContainer.getS. ) .length-i.dom.itemsContainer.getSlidesVisible ()}}, elements: t.querySelectorAll (". last-top-recirc-slider__item-container")}, this._maxClicksRight = Math.round (this.dom.itemsContainer .getTotalClicksToTheRight ()), this.setBtnsState ()} return (0, _createClass3.default) (e, ({key: "setItemsContainerPosition", value: function (e) {var t = this.dom, i = t.btns , n = t.itemsContainer; this.maxClicksRight = e, e> 0 &&! i.canMoveLeft || e0? (t.canMoveRi ght =! 0, s.style.opacity = 1) 🙁 t.canMoveRight =! 1 , s.style.opacity = t.disabledOpacity), Math.round (i.getTotalClicksToTheRight ()) – this.maxClicksRight> 0? (t.canMoveLeft =! 0, n.style.opacity = 1) 🙁 t.canMoveLeft =! 1, n.style.opacity = t.disabledOpacity)}}, {key: "onResize", value: function () {var e = this.dom.itemsContainer; ex = 0, e.el.style.transform = "translateX (". concat (ex, "px)"), this.setBtnsState (), this.maxClicksRight = Math.round (e.getTotalClicksToTheRight ())}}, {key: "maxClicksRight", set: function ( e) {th is._maxClicksRight + = e, this._maxClicksRightMath.round (this.dom.itemsContainer.getTotalClicksToTheRight ()) && (this. _maxClicksRight = Math.round (this.dom.itemsContainer.getTotalClicksToTheRight ())}, get: function () {return this._maxClicksRight}})), e} (), Slider = function () {function e () {var t = this; (0, _classCallCheck3.default) (this, e), this.onClick = this.onClick.bind (this), this.onResize = this.onResize.bind (this), document.addEventListener ("latest -top-recirc- slider-mount ", function (s) {return t.onMount (e)}), document.addEventListener (" last-top-recirc-slider-dismount ", function (s) {return t.onDismount (e)}) } return (0, _createClass3.default) (e, ({key: "onMount", value: function () {var e = this; this.sd = new SliderDom (document.querySelector (". last-top-recirc- slider ")), this.sd.dom.el.addEventListener (" click ", this.onClick), window .addEventListener (" resize ", this.onResize), this.hammer = new hammer (this.sd.dom. itemsContainer.el), this.hammer.on ("swipeleft swiperight", function (t) {"swipeleft" = == t.type && e.moveRight (), "swiperight" === t.type && e.moveLeft ()})}}, {key: "onDismount", value: function () {this.sd.dom.el.removeEventListener ("click", this.onClick), window.removeEventListener ("resize", this.onResize ), this.hammer.off ("swipeleft s wiperight ", this.sd.dom.itemsContainer.el)}}, {key:" onClick ", value: function (s) {e.target === this.sd.dom.btns.right && this.moveRight ( ), e.target === this.sd.dom.btns.left && this.moveLeft ()}}, {key: "onResize", value: function () {this.sd.onResize ()}}, { key: "moveLeft", value: function () {this.sd.setItemsContainerPosition (1)}}, {key: "moveRight", value: function () {this.sd.setItemsContainerPosition (-1)}})), e} (); module.exports = function (e) {return new slider (s)};
}, {"5": 5, "37": 37, "38": 38, "90": 90});
window.modules ("latest-videos.client") = (function (required, module, export) {"use strict"; var _interopRequireDefault3 = required (5), _ interopRequireDefault2 = _interopRequireDefault3 (required (5)), _ classCallCheck2 = required (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2), _ bindAll = require (91) , LatestVideosV e (t) {var l = this; (0, _classCallCheck3.default) (this, e), this.dom = {componentEl: t, rail: {el: t.querySelector (". Latest-videos__rail") , hasScrollListener:! 1, getItems: function () {return Array.from (l.dom.rail.el.querySelectorAll (". Recent-videos__video"))}, getAllItemsHeight: function () {return l.dom.rail. getItems () .reduce (function (e, t) {return e + t.offsetHeight}, 0)}}, railForeground: {el: t.querySelector (". newest-videos__rail-foreground"), moreScrollClass: "newest- videos__rail- foreground – scroll down "}}} return (0, _createClass3.default) (e, ({key:" onRailScroll ", value: function () {var e = this.dom.rail.el.scrollTop, t = this .dom.rail.getAllItemsHeight () – this.dom.rail.el.offsetHeight + 45, l = this.dom.railForeground; e> = t? l.el.classList.remove (l.moreScrollClass): l.el.classList.add (l.moreScrollClass)}})), e} (), LatestVideos = function () {function e (t) {(0, _classCallCheck3.default) (this, e), this.el = t, _bindAll (this, ("onMount", "onDismount", "onScroll")), document.addEventListener ("latest-videos-mount"), this. onMount), document.addEventListener ("latest-videos-dismount", this.onDismount)} return (0, _createClass3.default) (e, ({key: "onMount", value: function () {this. vc = newer LatestVideosViewController (this.el); var e = this.vc.dom.rail; e.el && (e.el.addEventListener ("scroll", this.onScroll), e.hasScrollListener =! 0)}}, {key : "onDismount", value: function () {var e = this.vc.dom.rail; e.hasScrollListener && (e.el.removeEventListener ("scroll", this.onScroll), e.hasScrollListener =! 1), document.removeEventListener ("last-videos-mount", this.onMount), document.removeEventListener ("latest-videos-dismount", this.onDismount)}}, {key: "onScroll", value: function () {this .vc.onRailScrol l ()}})), e} (); module.exports = function (e) {return new LatestVideos (e)} ;;
}, {"5": 5, "37": 37, "38": 38, "91": 91});
window.modules ("more-content-feed.client") = (function (required, module, export) {"use strict"; var _interopRequireDefault3 = require (5), _ interopRequireDefault2 = _interopRequireDefault3 (require (5)), _ regenerator = require (8), _ regenerator2 = (0, _interopRequireDefault2.default) (_ regenerator), _ asyncToGenerator2 = require (10), _ asyncToGenerator3 = (0, _interopRequireDefault2.default) (_ asyncToGenerator2), _ classCallChe2 (classCallChe2) _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2), _ require = require (30), fetchDOM = _require.fetchDOM, safari = require ( 98) require (52), _ require2 = require (4), LOAD_MORE_LIMIT = _require2.LOAD_MORE_LIMIT, MoreContentFeed = function () {function e (t) {(0, _classCallCheck3.default) (this, e), this.moreContentFeed = t, this .loadMore = t.querySelector (". links__link – loadmore"), this.moreContentUrl = "//" + this.moreContentFe ed.getAttribute ("data-uri"). replace ("@ publications", "") + ".html", this.maxLa zyLoadedPages = parseInt (this.moreContentFeed.getAttribute ("Data-Lazy-Loads"), 10), this.currentPage = 1, this.tag = "", this.author = "", this.lazyLoadEvent = new CustomEvent ("content-feed-lazy-load"), this.loadMore && (this.setupLazyLoad (), this.loadMore.onclick = this.handleLoadMoreContent. bind (this), this.loadMore.getAttribute ("data-tag")? this. tag = this.loadMore.getAttribute ("data-tag") || "": this.loadMore.getAttribute ("data-author" ) && (this.author = this.loadMore.getAttribute ("data-author") | | ""), this.loadMore.getAttribute ("data-section") && (this.sectionFront = this.loadMore.getAttribute (" data-section ") ||" "), this.loadMore.getAttribute (" data- "station") && (this.stationId = this.loadMore.getAttribute ("data-station") || "")} return ( 0, _createClass3.default) (e, ({key: "setupLazyLoad", value: function () {var e = this; this.currentPage> this.maxLazyLoadedPages || (this.loadMoreVisibility = new Visibility.Visible (this.loadMore, {selectedThreshold: .05}), this.loadMore.style.visibility = "hidden", this.loadMoreVisibility.on ("displayed", (0, _asyncToGenerator3.default) (_ regenerator2. default.mark (function t () {return _regenerator2.default.wrap (function (t) {for (;;) switch (t.prev = t.next) {case 0: return e. loadMoreVisibility.destroy (), t.next = 3, e.handleLoadMoreContent (); Case 3: e.loadMore && (document.dispatchEvent (e.lazyLoadEvent), e.setupLazyLoad ()); Case 4: case "end": return t.stop ()}}, t)})))}}, {key: "handleLoadMoreContent", value: function () {var e = (0, _asyncToGenerator3.default) ( _ regenerator2.default.mark (function e () {var t, r; return _regenerator2.default.wrap (function (s) {for (;;) switch (e.prev = e.next) {case 0: return t = "". concat (this.moreContentUrl, "? page ="). concat (this.currentPage ++), this.tag? t + = "& tag =". concat (this.tag): this.author && (t + = "& author =". concat (this.author)), this.sectionFront && (t + = "sectionFront =". concat (this.sectionFront)), this.stationId && (t + = "& stationId = ". concat (this.stationId)), e.next = 6, fetchDOM (t, {shouldDedupeContent:! 0}); Case 6: r = e.sent, this.loadMore.parentNode.removeChild (this.loadMore ), this.moreContentFeed.querySelector ("ul"). append (r), sa fari.fixAJAXImages (this.moreContentFeed), this.loadMore = this.moreContentFeed.querySelector (". links__link – loadmore"), LOAD_MORE_LIMIT === this.currentPage? this.loadMore.parentNode.r emoveChild (this.loadMore) .loadMore && (this.loadMore.onclick = this.handleLoadMoreContent.bind (this)); Case 12: case "end": return e.stop ()}}, e, this)})); return function () {return e.apply (this, arguments)}} ()})), e} (); module.exports = function (e) {return new MoreContentFeed (e)};
}, {"4": 4, "5": 5, "8": 8, "10": 10, "30": 30, "37": 37, "38": 38, "52": 52 98: 98});
window.modules ("newsletter-sign-up.client") = (function (required, module, export) {"use strict"; var $, _ interopRequireDefault3 = required (5), _ interopRequireDefault2 = _interopRequireDefault3 (required (5) ), _classCallCheck2 = require (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2) = _ bindll) (99), rest = require (34), componentName = "Newsletter registration", formClass = "". Concat (componentName, "__ form"), formInputClass = "". Concat (componentName, "__ form-input"), formInputLabelClass = "". concat (component name, "__ form input label"), formInputMsgClass = "". concat (component name, "__ form input message"), formInputs = ("E-Mail", "Zip", "Birthday"), validations = {email: (function (e) {return {isValid: / ^ (A-Z0- 9 ._% + -) + @ (A-Z0-9 .-) + . (AZ) {2,} $ / i.test (e), invalidMsg: "Please enter a valid email address a "}}), zip: (function (s) {return {isValid: / ^ d {5} $ | ^ d {5} – d {4} $ /. Test (s), invalidMsg:" Please enter a valid zip code such as 19020 "}}), birthday: (function (s) {return {isValid: / ^ (0-9) {2} ( /) {1} (0-9) {2 } ( /) {1} (0-9) {4} $ /. Test (s), invalidMsg: "Please enter a valid date such as 09/08/2001"}}, function (s) {var t = Date.now () – new date (s) .getTime (); return {isValid: Math.abs (new date (t) .getUTCFullYear () – 1970)> = 13, invalidMsg: "Must be at least 13 years old be to sign up "}})}, NewsletterSignUpModel = function () {function e () {var t = this; (0, _classCallCheck3.default) (this, e), this.form = {isValid: function () {return Object.entries (t.form.inputs) .every (function (s) {return! 0 === e (1) .isValid})}, inputs: formInputs.reduce (function (e, t) {return e (t) = {isValid:! 1, validations: validations (t)}, e}, {})}} return (0, _createClass3.default) (e, ({key: "getValidationResults", value: function (e, t) {var n = this.form. inputs (e) .validations, i = (); return n. forEach (function (e) {var n = e (t); i.push (n)}), i}}, {key: "validateInputFromResults", value: function (e, t) {return this.form.inputs (e) .isValid = t.every (function (e) {return e.isValid})}}), e} (), NewsletterSignUpView = function () {function e (t) {(0, _Class CallCheck3.default) (this, e), this.elements = {container: t, form: {el: $ (".". Concat (formClass)), input: formInputs.map (function (e) {return $ (".". concat (formInputClass, "-"). concat (e))}), submit: $ (".". concat (formInputClass, "- submit"))}}} return (0, _createClass3. S tandard) (e, ({key: "checkForEmptyInputAndSetClass", value: function (e) {e.value.trim ()? e.parentNode.classList.remove ("". concat (formInputLabelClass, "- empty")): e.parentNode.classList.add ("". concat (formInputLabelClass, "- empty"))}}, {key: " addInvalidMessages ", value: function (e, t) {var n = argument.length> 2 && void 0! == arguments (2)? Arguments (2) :(), i = e.parentNode.querySelector (".". Concat (formInputMsgClass)), a = ""; e.dataset.valid = t, i. Dataset.valid = t, t || (n.forEach (function (e) {e.isValid || (a + = "". concat (e.invalidMsg, ""))}), i.innerHTML = a)}}, {key: "setSubmitState" , value: function (e) {this.elements.form.submit.dataset.valid = e}})), e} (), NewsletterSignUpCtrl = function () {function e (t) {(0, _classCallCheck3.default) (this, e), _ bindAll (this, ("onMount", "onDismount", "onInputChange") "," onSubmit ")), this.view = new NewsletterSignUpView (t), this.model = new NewsletterSignUpModel, this .listeners = (), this.addEventListener ({el: document, type: "". concat (componentName, "-mount"), cb: this.onMount}), this.apiEndpoint = "//" + t.getAttribute ("data-uri"). replace ("@ shared", "")} return (0, _createClass3 .default) (e, ({key: "addEventListener", value: function (e) {this.listeners.push (e), e.el.addEventListener (e.type, e.cb)}}, {key: "removeEventListener", value: function (e) {e.el.removeEventListener (e.type, e.cb)} }, {Key: "onMount", value: function () {this.addListeners ()}}, {key: "addLis teners ", value: function () {var e = this, t = this.view.elements; t.form.inputs.forEach (function (t) {e.addEventListener ({el: t, type: "change", cb: e.onInputChange})}), this.addEventListener ({el: t.form.el , type: "submit", cb: this.onSubmit})}}, {key: "onSubmit", value: function (s) {var t = this; e.preventDefault (); var n = new FormData (e.target), i = this.apiEndpoint, a = qs.stringify ({postup: {address: n.get ("email"), zip code: n.get ("zip"), birthday : n.get ("birthday")}}); i + = "?". concat (a), rest.get (i) .then (function (e) {if (e.success) t.view.elements.container.classList.toggle ("". concat (componentName, "–success") ); else if (e.error) console.error (e.error); else {var n = document.createElement ("div"); n.innerHTML = e.html, n.querySelectorAll ("li.error") . forEach (function (e) {return console.error (new error (e.innerText))})}}). catch (function (e) {return console.error (e)})}}, {key: "onInputChange", value: function (e) {var t = e.target, n = this.model.getValidationResults (t. name, t.value), i = this.model.validateInputFromResults (t. name, n); n && (this.view.addInvalidMessages (e.target, i, n), this.view.checkForEmptyInputAndSetClass (t), this.view.setSubmitState (this.model.form.isValid ())}}, {key: " onDismount ", value: function () {var e = this; document.removeEventListener (" ". concat (componentName," – mount "), this.onMount), document.removeEventListener (" ". concat (componentName," – dismount "), this.onDismount), this.listeners.forEach (function (t) {e.removeEventListener (t)})}}), e} (); module.exports = function (e) {return $ = e.que. rySelector.bind (e), new NewsletterSignUpCtrl (e)};
}, {"5": 5, "34": 34, "37": 37, "38": 38, "91": 91, "99": 99});
window.modules ("nielsen.client") = (function (required, module, export) {"use strict"; var spaPayload, _interopRequireDefault3 = require (5), _ interopRequireDefault2 = _interopRequireDefault3 (require (5)), _ classCallCheck2 = require (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createClass2 = require (38), _ createClass3 = (0, _interopRequireDefault2.default) (_ createClass2), NielsenMarketingCloud = function () {) _classCallCheck3.default) (this, e), this.initialParams = {p: "1149", g: "5", podcast: "", blog: "", livestreamplayer: "player", pid: "", station: "NATL-RC", keyword: "", mkt: "Corporate", tag: "", author: "", genre: "", team: "", format: "", ctg: ""}} return ( 0, _createClass3.default) (e, ({key: "parseSPAPayload", value: function (e) {var t = {}; e._self && e.main? -1! == e.main (0). _ ref. indexOf ("article")? (t.tag = e.main (0) .tags.items.map (function (s) {return e.text}). join (","), t.author = e.main (0) .authors .map (function (s) {return e.text}). join (","), t.format = t.ctg = e.main (0) .sectionFront): – 1! = = e.main (0) ._ ref.indexOf ("sta tion-detail")? (t.station = e.main (0) .station, t.keyword = e.main (0) .keyword, t.mkt ​​= e.main (0) .market, t.genre = e.main ( 0) .genre, t.format = t.ctg = e.main (0) .sectionFront): – 1! == e.main (0) ._ ref.indexOf ("Topic Page")? t.tag = e.pageHeader (0) .tag: -1! == e.main (0) ._ ref.indexOf ("section-front") && (t.format = t.ctg = e.main (0)) .title): e.toArticlePage._ref? (t.tag = e.toArticlePage.tags.items.map (function (s) {return e.text}). join (","), t.author = e .toArticlePage.authors.map (function (s) {return e.text}). join (","), t.format = t.ctg = e.toArticlePage.sectionFront): e.toStationDetailPage._ref? (t. station = e.toStationDetailPage.station, t.keyword = e.toStationDetailPage.keyword, t.mkt ​​= e.toStationDetailPage.market, t.genre = e.toStationDetailPage.genre, t.format = t.ctg = e.toStationDetailPage. sectionFront): e.toTopicPage._ref? t.tag = e.toTopicPage.tag: e.toSectionFrontPage._ref && (t.format = t.ctg = e.toSectionFrontPage.title), this.updateParams (t)}}, {key: "updateParams", value: Function (s) {this.params = this.initialParams, this.nielsenUrl = "// loadus.exelator.com/load /?", This.params = {p: ep || "1149", g: eg || "5", podcast: e.podcast || "", blog: e.blog || "", livestreamplayer: e .livestreamplayer || "player", pid: e.pid || "", station: e.station || "NATL-RC", keyword: e.keyword || "", mkt: e.mkt || "Corporate", tag: e.tag || "", author: e.author || "", genre: e.genre || "", team: e.team || "", format: e.format | | "", ctg: e.ctg || ""}, this.nielsenUrl + = Object.keys (this.params) .map (function (s) {return encodeURIComponent (e) + "=" + encodeURIComponent (this. params (e))}. bind (this)). join ("&"), this.updatePixel ()}}, {key: "updatePixel", value: function () {var e = document.querySelector (". component– nielsen"), t = e.querySelector ( ". nielsen__marketing-cloud-pixel"); t && e.removeChild (t), e && ((t = document.createElement ("script")). classList.add ("nielsen__marketing-cloud" -pixel "), t.src = this.nielsenUrl, e.appendChild (t))}}), e} (), nielsen = new NielsenMarketingCloud;! function () {var e = atob (window.spaPayload); spaPayload = JSON.parse (e), document.addEventListener ("nielsen-mount ", function () {nielsen.parseSPAPayload (spaPayload)})} (), document.addEventListener (" pageView ", function (s) {spaPayload = e.detail});
}, {"5": 5, "37": 37, "38": 38});
window.modules ("podcast-episodenliste.client") = (function (required, module, export) {"use strict"; var _interopRequireDefault3 = required (5), _ interopRequireDefault2 = _interopRequireDefault3 (required (5)), _ defineProperty2 = require (6), _ defineProperty3 = (0, _interopRequireDefault2.default) (_ defineProperty2), _ classCallCheck2 = require (37), _ classCallCheck3 = (0, _interopRequireDefault2.default) (_ classCallCheck2), _ createaultClass2 = _interopRefireDef) (_ createClass2); Function ownKeys (e, t) {var a = Object.keys (e); if (Object.getOwnPropertySymbols) {var s = Object.getOwnPropertySymbols (e); t && (s = s.filter (function (t) {return Object.getOwnPropertyDescriptor (e, t) .enumerable})), a.push.apply (a, s)} return a} function _objectSpread (e) {for (var t = 1; t0 && void 0! == Arguments (0) && Arguments (0); return rest.get (this.getApiUrl (e))}}, {key: "pageNumber", set: function (e ) {this.apiParams.pageNumber = e}, get: function () {return this.apiParams.pageNumber}})), e} (), PodcastListComponentView = function () {function e (t) {(0, _c letCallCheck3 .default) (this, e), this.elements = {container: t, sortDropdown: $ one ("# episodenOrder"), episodencontainer: $ one (".". concat (componentClassName, "__ episodes")), loadMoreBtn : $ one (".". concat (componentClassName, "__ load-more-btn")}, this.itemTemplate = this.getHtmlTemplateFromClone ()} return (0, _createClass3.default) (e, ({key: "getHtmlTemplateFromClone ", Value: function () {if (this.elements.episodesContainer.children (0)) {var e = this.elements.episodesContainer.children (0) .cloneNode (! 0), t = {image: e. querySelector (".". concat (componentClassName, "__ image")), Link: e.querySelector (".". concat (componentClassName, "__ download-link")), playBtn: e.querySelector (".". concat (componentClassName, "__ play-btn ")), Published_date_formatted: e.querySelector (". ". concat (componentClassName," __ pub-date ")), duration_seconds_formatted: e.querySelector (". ". concat (componentClassName," __ duration-text " )), Title: e.querySelector (".". Concat (componentClassName, "__ title")), description: e.querySelector (".". Concat (componentClassName, "__ description")))}; Return function (a) {for (var s in t) if (t.hasOwnProperty (s)) {var o = t (s); switch (s) {case "image": o.setAttribute ("src", a.attributes.image_url); break; case "link": o.setAttribute ("href", a.attributes.audio_url); break; case "playBtn": o.setAttribute ("href", a.attributes .episode_detail_url), o.dataset.playPodcastEpisodeId = a.id, o.dataset.playPodcastShowId = a.attributes.podcast (0) .id; break; case "title": o.setAttribute ("href", a.attributes. episoden_detail_url), o.innerText = utils.truncate (a.attributes.title, 52, {useSuffix:! 0}); break; default: var i = a.attributes (s); "description" === s && (i = utils.truncate (i, 210, {useSuffix:! 0})), o.innerText = i}} return e.outerHTML}}}, {key: "addMoreEpisodes", value: function (e) {var t = dies, a = arguments. length> 1 && void 0! == arguments (1) && arguments (1), s = this.elements.episodesContainer; a && (s.innerHTML = ""), e.forEach (function (s) {s.insertAdjacentHTML ("beforeend", t.itemTemplate (e))})}}, {key: "hideLoadMoreBtn", value: function () {this.elements.loadMoreBtn.style.display = "none"}}, {key: "showLoadMoreBtn", value: function () {this.elements.loadMoreBtn.style.display = "block"}})), e} (), PodcastListComponentController = function () {function e (t) {(0, _classCallCheck3.default) (this, e), _ bindAll (dies, "onMount", "onDismount", "onClick", "onChange" , "onPlaybackStateChange"), this.view = new PodcastListComponentView (t), this.model = new PodcastListComponentModel (t), doc. addEventListener ("". concat (componentName, "- mount"), this.onMount)} return (0, _createClass3.default) (e, ({key: "onMount", value: function () {var e = new SelectBox (this.view.elements.sortDropdown, {searchable:! 1, customClass: "podcast-episodenliste__select-box"}); this.view.elements.container.addEventListener ("click", this.onClick), e. addEventListener ( "change", this.onChange), window.addEventListener ("playbackStateChange", this.onPlaybackStateChange)}}, {key: "onClick", value: function (e) {var t = this; if (! this. model. isLoading) {e.target === this.view.elements.loadMoreBtn && (this.model.isLoading, this.model.getEpisodes (). then (function (e) {var a = e._computed.episodes; t. model.pageNumber = t.model .pageNumber + 1, t.view.addMoreEpisodes (a), a.length0 && void 0! == Arguments (0)? Arguments (0): timerStepInterval; (0, _classCallCheck3.default) ( this, e), _ bindAll (this, ("tick")), this.stepsPassed = 0, this.isPaused =! 1, this.step = t, this.subscription = {}} re turn (0, _createClass3.default) (e, ({key: "subscribe", value: function (e, t) {this.subscription = {threshold: e, cb: t}}}, {key: "start" , Value: function () {this.tmr = setInterval (this.tick, this.step)}}, {key: "tick", value: function () {this.isPaused || (this.stepsPassed ++, this.subscription.threshold === this.stepsPassed && (this.subscription.cb (), this.reset ()))}}, {key: "reset", value: function () {this.stepsPassed = 0}}, {key: "pause", value: function () {this.isPaused =! 0}}, {key: "play", value: function () {this.isPaused =! 1}}, {key: "unsubscribe", value: function () {clearInterval (this.tmr)}})), e} (), PodcastHeroCarouselModel = function () {function e (t) {(0, _classCallCheck3. default) (this, e), this.ctrl = t, this.slideIndex = 0, this.numSlides = this.ctrl.view .slideElements.length} return (0, _createClass3.default) (e, ({key: " se tSlideIndex ", value: function (e, t) {t || 0 === t? this.slideIndex = t: (this.slideIndex + = e, this.slideIndexthis.numSlides-1 && (this.slideIndex = 0 ))}}, {key: "updateSlideIndex", value: function (e, t) {this.setSlideIndex (e.value, t)}})), e} (), PodcastHeroCarouselView = function () {function e ( t, s) {(0, _classCallCheck3.default) (this, e), this.ctrl = t, this.el = s, this.slidesContainer = this.el.querySelector (".". Concat (componentClassName, "__ slide ")), this.slideElements = this.el.querySelectorAll (". ". concat (componentClassName," __ slide ")), this.macroElements = this.el.querySelectorAll (". ". concat (componentClassName," __ macro-button ")), this.dir ectionalButtons = {left: this.el.querySelector (".". concat (componentClassName, "__ control-button – left")), right: this.el.querySelector (".". concat (componentClassName, ") __control-button – right"))}, this.isAnimating =! 1} return (0, _createClass3.default) (e, ({key: "setDirectionalClassName", value: function (e) {1 === e. Value? This.slidesContainer.classList.replace (carouselDirectionalObjects.left.className, e.className): this.slidesContainer.classList.replace (carouselDirectionalObjects.right.className, e.className)}}, {key: "onClickDirectionButton", value: function (e) {var t = this; this.isAnimating =! 0; var s = "" .concat (componentClassName, "__ slide"). Concat (activeSlideModifierName), i = this.slidesContainer.querySelector (".". Concat (s)); this.setDirectionalClassName (e), setTimeout ( function () {i. classList.add ("zero index"), t.slideElements (t.ctrl.model.slideIndex) .classList.add (s), setTimeout (function () {i.classList.remove (s, " Nullindex ")), t.isAnimating =! 1}, slideTransitionTime + 10)}, 10)}}, {key:" setActiveMacro ", value: function (e) {this.el.querySelector (". ". Concat ( activeMacroClassName)) .classList.remove (activeMacroClassName), this.macroElements (e) .classList.add (activeMacroClassName)}}), e} (), PodcastHeroCarouselController = function () {function e (t) {(0, _classCallCheck3.default) (this, e), bindInstanceFunctions (this), this.view = new PodcastHeroCarouselView (this , t), this.model = new PodcastHeroCarouselModel (this), this.timer = new PodcastHeroCarous elTimer, this.setupSwipe (t), document.addEventListener ("podcast-hero-carousel-mount", this.onMount), document. addEventListener ("podcast-hero-carousel-dismount", this.onDismount)} return (0, _createClass3.default) (e, ({key: "onComponentClick", value: function (e) {if (! this.view.isAnimating && (e.target.classList.contains ("". concat (componentClassName, "__ control-) button")) && this.transitionDirection (carouselDirectionalObjects (e.target.dataset.direction)), e. target.classList.contains ("". concat (componentClassName, "__ macro-button"))) {var t = parseInt () e.target.dataset.slideIndex), s = carouselDirectionalObjects (t = e.length? {done :! 0}: {done:! 1, value: e (r ++)}}, e: function (e) {throw e}, f: n}} throw new TypeError ("Invalid attempt to find a non-iterable instance to iterate. nTo be iterable, non-array objects must have a (Symbol.iterator) () method. ")} var o, i =! 0, c =! 1; return {s: function () {a = e (Symbol.iterator) ()}, n: function () {var e = a.next (); return i = e. done, e}, e: function (e) {c =! 0, o = e}, f: function () {try {i || null == a.return || a.return ()} fin ally {if (c) throw o}}}} function _unsupportedIterableToArray (e, t) {if (e) {if ("string" == typeof e) return _ar rayLikeToArray (e, t); var a = Object.prototype. toString.call (e) .slice (8, -1); return "Object" === a && e.constructor && (a = e.constructor.name), "Map" === a || "Set" === a? Array.from (e): "Arguments" === a || / ^ (?: Ui | I) nt (?: 8 | 16 | 32) (?: Clamped)? Array $ /. test (a)? _ arrayLikeToArray (e, t): void 0}} function _arrayLikeToArray (e, t) {(null == t || t> e.length) && (t = e.length); for (var a = 0, r = new array (t); a = 1180 && "" == this.query.value || window.innerWidth = 1024 && "" == this.query.value || window.innerWidthe .length) && (t = e. length); for (var r = 0, a = new array (t); r = 1024? this.pageType === STATION_DETAIL? this.stationsShownOnLoad = 8: this.stationsShownOnLoad = 12: this.stationsShownOnLoad = 6, this. seeAllLink && ( this.stationsData.lengthe.length) && (r = e.length); for (var t = 0, a = new array (r); t = this.windowSizes.medium) this.stationsVisible = 8; otherwise if (this .layoutWidth = "100%", this.pageSize = 1, this.stationsVisible = 4, this.windowWidth

LEAVE A REPLY

Please enter your comment!
Please enter your name here