Sat. Dec 4th, 2021
Spread the love


Looking for more holiday deals? Visit our Guide to Cyber Week to see all the best sales to shop before — and during — Black Friday.

Black Friday is always a great time to snag a Nintendo Switch or some discounted games and accessories, and that’s especially true this year. Nintendo’s beloved home console is finally somewhat easy to find again after a year of shortages (unless you want the shiny new OLED model), and there are some new bundles out there that will get you games and extras right out of the box.

On top of that, some of the absolute best Switch games out there are significantly discounted, as are plenty of useful accessories for enhancing family game nights or playing on the go. Ready to play? Here are the best Switch savings we’ve spotted so far.

Nintendo Switch console and bundle deals

Best Buy
Nintendo Switch Mario Kart 8 Deluxe Bundle

Nintendo Switch Mario Kart 8 Deluxe Bundle ($299, originally $369; gamestop.com, walmart.com or bestbuy.com)

Nintendo usually offers a Mario Kart 8 bundle every Black Friday, but it’s sweetened the pot a bit for 2021. On top of getting you Mario Kart 8 Deluxe — an excellent kart racer that just about every Switch owner should have anyway — this bundle also includes three months of Nintendo Switch Online. That will allow you to play games online right out of the box while also getting you access to cloud saves and a sizable library of NES and SNES classics, including The Legend of Zelda and Super Mario World.

You’re getting all of that for the system’s base $299 price, which essentially means you’re getting $70 of free stuff. Just note that this bundle includes the standard Nintendo Switch, meaning you won’t get the bigger, bolder display found on the $349 Nintendo Switch OLED.

Nintendo Switch OLED ($349; amazon.comtarget.com and gamestop.com)

While we don’t expect the Nintendo Switch OLED to be discounted for Black Friday, this week might be your best chance to find this hard-to-find console in stock. We called this model the best Nintendo Switch yet, thanks to a gorgeous 7-inch OLED screen that really makes games pop and an improved kickstand that’s ideal for impromptu Smash Bros. tournaments.

Walmart
Nintendo Switch Joy-Con

Nintendo Switch Joy-Con ($69, originally $79; walmart.com)

It’s never a bad idea to pick up an extra pair of Joy-Cons, whether you want to refresh your Switch with some new colors or just need extra controllers for family game night. Nintendo’s versatile mini gamepads are available for their usual sale price of $10 off, making now a good time to grab some if you’ve been holding off.

Nintendo Switch Pro Controller ($52.88, originally $69; walmart.com)

When you’re trying to win an intense Mario Kart match or finally vanquish that difficult Metroid Dread boss, sometimes the tiny Joy-Cons don’t cut it. The Switch Pro Controller is all but essential if you do lots of big-screen gaming, as it’s much more ergonomic and comfortable than the Joy-Cons while still supporting motion controls and advanced HD rumble haptics. It’s rarely cheaper than this sale price, so snag one while you can.

PowerA Enhanced Wireless Controller ($38.99, originally $54.99; amazon.com)

Looking for a cheaper alternative to the Pro Controller? If you can live without HD rumble and Amiibo support, PowerA’s wireless option is a great choice at this price. It has a similar look and feel as Nintendo’s first-party pad as well as two programmable back buttons that can help give you an edge in competitive games. And if you’re shopping for a serious Nintendo lover, this gamepad comes in a variety of themed skins that run the gamut from Animal Crossing to Zelda.

PowerA Enhanced Wired Controller ($13.99, originally $27.99; bestbuy.com)

If you don’t mind going wired, this is one of the cheapest prices we’ve seen on a dependable Nintendo Switch controller. Like its wireless counterpart, this PowerA pad has programmable rear buttons and comes in several Nintendo flavors inspired by Mario and Pokémon.

PowerA GameCube Style Controller ($29.99, originally $44.88; walmart.com)

If you’re a hardcore Super Smash Bros. player or just have a lot of nostalgia for the Nintendo GameCube, this throwback controller will let you play games like it’s 2002.

Amazon
Orzly Carry Case

Orzly Carry Case ($16.59, originally $19.99; amazon.com)

One of the most popular Switch cases out there, this Orzly model features a hard water-resistant shell for keeping your Switch safe on the go, and has enough room to store up to eight game cards and plenty of extra Joy-Cons and cables.

Razer Kraken X ($29.99, originally $49.99; amazon.com)

The Razer Kraken X is our favorite budget gaming headset, thanks to its excellent sound, comfort and mic quality for the money, and it’s a perfect companion for playing your Switch on the go.

SanDisk 128GB MicroSDXC Card ($19.99, originally $34.99; amazon.com)

If you download most of your games digitally, your Switch’s internal storage is going to fill up fast. We highly recommend that any Switch owner picks up a microSD card like this discounted 128GB SanDisk model, which will let you store exponentially more games, screenshots and videos at once. This popular card works with every Switch model, and as a bonus, it comes with some fun Nintendo branding.

Amazon
Ring Fit Adventure

Ring Fit Adventure ($54.99, originally $79.99; amazon.com)

Nintendo’s hugely popular exercise game just hit its lowest price yet, making now a great time to see what all the hype is about. Ring Fit Adventure is essentially an immersive role-playing game that you play with your entire body, as you’ll use the included Ring-Con and Leg Strap to vanquish foes by performing various exercises. If you’re looking for a fun way to work up a sweat, this is it.

Mario Kart Live: Home Circuit ($59.99, originally $99; bestbuy.com)

Mario Kart Live: Home Circuit is an augmented reality game that essentially turns your living room into a playable Mario Kart course. You’ll drive an actual remote-controlled car around your home, which comes to life on your Switch screen as an interactive track complete with enemies, hazards and all the fun chaos that comes with a great Mario Kart race. It’s a really fun blend of digital and physical play, and it’s available at its lowest price yet right now.

The Legend of Zelda: Breath of the Wild ($35, originally $59.99; amazon.com)

If you somehow haven’t played Breath of the Wild yet, you’ve got one fewer excuse now. Largely considered to be the best Switch game out there, Breath of the Wild reinvents the Zelda formula by throwing Link into a gorgeous, expansive open world that you can explore however you see fit. This popular title rarely drops this low in price, so snag it while you can.

Super Mario Odyssey ($35.23, originally $59.99; gamestop.com)

Much like Breath of the Wild, Super Mario Odyssey is essential for any Switch owner. This joyously inventive 3D platformer is nearly half off right now, so don’t miss out if you haven’t played it yet.

Just Dance 2022 ($24.99, originally $49.99; amazon.com)

The latest installment in Ubisoft’s popular dancing game has new features designed to help you work up a sweat as well as a family-friendly kids mode, and it’s available for half off right now.

Super Mario Maker 2 ($39.99, originally $59.99; amazon.com)

Why settle for just playing a Mario game when you can make your own? Super Mario Maker 2 makes it easy to craft the Mario courses of your dreams as well as play a near-endless stream of creative, charming and straight-up sadistic levels created by other players. There’s even a story mode for those who want a more classic Mario experience that also teaches you some building basics. It’s one of our favorite Switch games, and well worth it at this price.

Sonic Colors: Ultimate ($19.98, originally $39.99; gamestop.com)

Sonic Colors: Ultimate brings the classic Wii game to the current generation with slicker graphics, new modes and all of the high-speed action you’d expect from a Sonic game. It’s 50% off just months after release.

Xenoblade Chronicles Definitive Edition ($39.99, originally $59.99; gamestop.com)

Looking for a game you can sink serious hours into? Xenoblade Chronicles Definitive Edition finally brings Nintendo’s beloved role-playing game to the Switch with improved visuals, new music and a variety of quality-of-life improvements. If you want to carry a giant sword around, engage in fun real-time combat and explore some truly beautiful environments, this one’s for you.

Splatoon 2 ($35; originally $59.99; gamestop.com)

Splatoon 2 is a great introduction to the shooter genre that has teams of squid-like children battle to cover the arena (and one another) in colorful ink. But don’t be fooled — just because Splatoon 2 is kid-friendly doesn’t mean that it isn’t highly competitive, as you’ll need good reflexes and strategy to come out on top. With Splatoon 3 set to hit next year, now’s a great time to snag this addictive shooter and get your ink-blasting skills in shape.

Cruis’n Blast ($22.99, originally $34.99; gamestop.com)

If you’re looking for pure arcade racing action, few games do it better than Cruis’n Blast. It’s a whole lot of nostalgic fun, and well worth it for just over $20.

(function(){
  function addScript({ async, defer, name, src, ucStates, id, data }) {
    try {
      if (src && typeof src === 'string') {
        if (ucStates && ucStates.length) {
          WM.UserConsent.addScript({ src, async, defer }, ucStates);
        } else {
          const script = document.createElement('script');
          script.src = src;
          script.dataset.uid = name;
          script.async = async;
          script.defer = defer;
          script.onload = () => {window.dispatchEvent(new CustomEvent(name+'.loaded'));};
          if (id) {
            script.id = id;
          }
          if (data && typeof data === 'object') {
            Object.keys(data).forEach(key => script.dataset[key] = data[key]);
          }
          document.head.appendChild(script);
        }
      }
    } catch(e) {
      console.error('ExternalScripts: error adding script "' + name + '"', e);
    }
  };
//snippet: user-consent
    window.WM=window.WM||{},function(e,o){"use strict";var n;"function"!=typeof e.CustomEvent&amp;&amp;((n=function(e,n){var t;return n=n||{bubbles:!1,cancelable:!1,detail:void 0},(t=o.createEvent("CustomEvent")).initCustomEvent(e,n.bubbles,n.cancelable,n.detail),t}).prototype=e.Event.prototype,e.CustomEvent=n,"function"!==e.Event&amp;&amp;(e.Event=n))}(window,document),window.WM.UserConsent=window.WM.UserConsent||function(y,C){"use strict";var I,k={},v=!1,f=[],m=0,b=null,h=null,S="",E={},T="",A="",D="",x=!1,O=!1,w=!1,n=!1,L="",t="3.1.12",M=null,P=!1,U=!1,R=null,_="",G={brand:"",categories:{req:"required",ven:"vendor",p1:"data-store",p2:"ads-contextual",p3:"ads-person-prof",p4:"ads-person",p5:"content-person-prof",p6:"content-person",p7:"measure-ads",p8:"measure-content",p9:"measure-market",p10:"product-develop",sp1:"product-security",sp2:"deliver-content",f1:"combine-data",f2:"link-devices",f3:"id-devices",sf1:"geolocate",sf2:"scan-devices"},ccCookie:"countryCode",compatCategories:{"ads-general":["ads-contextual","ads-person","ads-measure"],"ads-vendor":["vendor","ads-contextual","ads-person","ads-measure"],"behavior-general":["content-person"],"behavior-vendor":["vendor","content-person"],"perf-general":["measure-content","measure-market","product-develop"],"perf-vendor":["vendor","measure-content","measure-market","product-develop"],"person-general":["ads-person-prof","content-person-prof"],"person-vendor":["vendor","ads-person-prof","content-person-prof"],"social-vendor":["vendor"],"storage-general":["data-store"],"storage-vendor":["vendor","data-store"]},confirmCookie:"OptanonAlertBoxClosed",consentChangeAction:null,consentChangeActionDelay:1e3,consentCookie:"OptanonConsent",consentDefaults:{required:!0,vendor:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentExpireIn:1,consentLinkTitle:"",controlCookie:"OptanonControl",cookieSameSite:"Lax",cookieSecure:!1,enableDebug:!1,enableTransitionCheck:!0,enableWebViewCheck:!0,gdprApplies:!1,gdprIabCookie:"eupubconsent-v2",gdprIabIsGlobal:!1,gdprIabMaxPurposes:10,gdprIabMaxSpecialFeats:2,gdprIabPolicy:2,geoUsedByOneTrust:!0,languageFromBrowser:!0,privacyCenterLinkTitle:"",psmAppId:"",psmEnv:"prod",regionChangeAction:null,regions:[{id:"ccpa",compatCodes:{adv:["ven"],bbv:["ven"],pfv:["ven"],pzv:["ven"],sav:["ven"],smv:["ven"]},compatTransition:{cond:!1,new:"ven",old:"pzv"},consentExpireIn:3,consentImpliedDefaults:{required:!0,"data-store":!0,"ads-contextual":!0,"ads-person":!0,"ads-person-prof":!0,"content-person":!0,"content-person-prof":!0,"measure-ads":!0,"measure-content":!0,"measure-market":!0,"product-develop":!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0,geolocate:!0,"scan-devices":!0},consentLinkTitle:"Do Not Sell My Personal Information",geoMatch:["US","PR","VI","UM",""]},{id:"gdpr",compatCodes:{ad:["p2","p4","p7"],adv:["p2","p4","p7"],bb:["p6"],bbv:["p6"],pf:["p8","p9","p10"],pfv:["p8","p9","p10"],pz:["p3","p5"],pzv:["p3","p5"],sa:["p1"],sav:["p1"]},consentDefaults:{required:!0,vendor:!0,"data-store":!1,"ads-contextual":!1,"ads-person-prof":!1,"ads-person":!1,"content-person-prof":!1,"content-person":!1,"measure-ads":!1,"measure-content":!1,"measure-market":!1,"product-develop":!1,"product-security":!0,"deliver-content":!0,"combine-data":!1,"link-devices":!1,"id-devices":!1,geolocate:!1,"scan-devices":!1},consentImpliedDefaults:{required:!0,vendor:!0,"product-security":!0,"deliver-content":!0,"combine-data":!0,"link-devices":!0,"id-devices":!0},consentLinkTitle:"Manage Cookies+",gdprApplies:!0,geoMatch:["GB","DE","FR","IT","ES","PL","RO","NL","BE","GR","CZ","PT","SE","HU","AT","BG","DK","FI","SK","IE","HR","LT","SI","LV","EE","CY","LU","MT","NO","IS","LI"]},{id:"global",geoMatch:["*"]}],reloadOnConsentChange:!0,scCookie:"stateCode",useIAB:!0,uspApiCookieName:"usprivacy",uspApiExplicitNotice:!0,uspApiIsLspa:!1};function W(e){var n=Array.prototype.slice.call(arguments);n[0]="[WMUC]"+(0===T.length?"":" ("+T+")")+":",("error"===e?console.error:console.log).apply(console,n)}function p(e){return!!Number(e)}function d(e){return parseInt(e,2)||0}function l(e){return 100*d(e)}function g(e){for(var n="A".charCodeAt(),t=e.match(/.{6}/g),o="",r=0;r&lt;t.length;r++)o+=String.fromCharCode(d(t[r])+n);return o}function B(e){for(var n=e.split(&quot;&quot;),t={},o=0;o&lt;n.length;o++)p(n[o])&amp;&amp;(t[o+1]=!0);return t}function z(e){var n,t,o,r,s,i,a=[];if(&quot;string&quot;!=typeof e)return W(&quot;error&quot;,&quot;Invalid TC string specified&quot;),a;for(o=e.split(&quot;.&quot;),r=0;r&lt;o.length;r++){for(n=function(e){if(&quot;function&quot;==typeof y.atob)try{return atob(e.replace(/_/g,&quot;/&quot;).replace(/-/g,&quot;+&quot;))}catch(e){W(&quot;error&quot;,&quot;Failed to decode TC string&quot;)}return&quot;&quot;}(o[r]),s=0,i=&quot;&quot;;s&lt;n.length;s++)t=n.charCodeAt(s).toString(2),i+=&quot;00000000&quot;.slice(0,8-t.length)+t;a.push(i)}return 2!==d(a[0].slice(0,6))?(W(&quot;error&quot;,&quot;Unsupported TC string version&quot;),[]):a}function N(e){for(var t=0,i=function(n,e,t,o){function r(){if(o.pubRestrictionEntry&amp;&amp;o.rangeEntry)for(var e in o.rangeEntry)Object.prototype.hasOwnProperty.call(o.rangeEntry,e)&amp;&amp;(o.pubRestrictionEntry[e]=(o.pubRestrictionEntry[e]||[]).concat(o.rangeEntry[e]));o.numPubRestrictions&amp;&amp;(o.numPubRestrictions--,n.push({key:&quot;purposeId&quot;,size:6},{key:&quot;restrictionType&quot;,size:2},{key:&quot;numEntries&quot;,size:12}))}function s(){o.numEntries?(o.numEntries--,n.push({key:&quot;isRange&quot;,size:1,decoder:p},{key:&quot;startVendorId&quot;,size:16})):r()}function i(){return!o.purposeId||[{purpose:o.purposeId,isAllowed:0!==o.restrictionType,isConsentRequired:1===o.restrictionType,isLegitimateInterestRequired:2===o.restrictionType}]}if(&quot;isRangeEncoding&quot;===e.key)n.push(t?{key:&quot;numEntries&quot;,size:12}:{key:&quot;bitField&quot;,size:o.maxVendorId,decoder:B});else if(&quot;numEntries&quot;===e.key)o.rangeEntry={},s();else if(&quot;isRange&quot;===e.key)t&amp;&amp;n.push({key:&quot;endVendorId&quot;,size:16});else if(&quot;startVendorId&quot;===e.key)o.isRange||(o.rangeEntry[t]=i(),s());else if(&quot;endVendorId&quot;===e.key){for(var a=o.startVendorId;a&lt;=o.endVendorId;a+=1)o.rangeEntry[a]=i();s()}else&quot;numCustomPurposes&quot;===e.key?n.push({key:&quot;customPurposeConsents&quot;,size:o.numCustomPurposes,decoder:B},{key:&quot;customPurposeLegitimateInterests&quot;,size:o.numCustomPurposes,decoder:B}):&quot;numPubRestrictions&quot;===e.key&amp;&amp;(o.pubRestrictionEntry={},r())},a=function(e){return e.pubRestrictionEntry||e.rangeEntry||e.bitField||e},c=function(e,n){n=n.slice(t,t+e.size);return t+=e.size,(e.decoder||d)(n)},n=function(e,n){for(var t,o,r={},s=0;s&lt;e.queue.length;s++)o=function(e,n){var t,o,r,s={};if(!e.queue)return c(e,n);for(t=0;t&lt;e.queue.length;t+=1)o=e.queue[t],r=c(o,n),s[o.key]=r,i(e.queue,o,r,s);return a(s)}(t=e.queue[s],n),r[t.key]=o,i(e.queue,t,o,r);return a(r)},o=z(e),r=function(e){for(var n=[{key:&quot;purposeConsents&quot;,size:24,decoder:B},{key:&quot;purposeLegitimateInterests&quot;,size:24,decoder:B}],t=[{key:&quot;version&quot;,size:6},{key:&quot;created&quot;,size:36,decoder:l},{key:&quot;lastUpdated&quot;,size:36,decoder:l},{key:&quot;cmpId&quot;,size:12},{key:&quot;cmpVersion&quot;,size:12},{key:&quot;consentScreen&quot;,size:6},{key:&quot;consentLanguage&quot;,size:12,decoder:g},{key:&quot;vendorListVersion&quot;,size:12},{key:&quot;policyVersion&quot;,size:6},{key:&quot;isServiceSpecified&quot;,size:1,decoder:p},{key:&quot;useNonStandardStacks&quot;,size:1,decoder:p},{key:&quot;specialFeatureOptins&quot;,size:12,decoder:B}].concat(n).concat({key:&quot;purposeOneTreatment&quot;,size:1,decoder:p},{key:&quot;publisherCountryCode&quot;,size:12,decoder:g}),o=[].concat([{size:3}]).concat(n).concat({key:&quot;numCustomPurposes&quot;,size:6}),r=[{key:&quot;core&quot;,queue:t}],s=1;s&lt;e.length;s++)3===d(e[s].slice(0,3))&amp;&amp;r.push({key:&quot;publisherTC&quot;,queue:o});return r}(o),s={},u=0;u&lt;r.length;u++)s[r[u].key]=n(r[u],o[u]),t=0;return s}function V(e){e=new RegExp(&quot;(^|;) *&quot;+e+&quot; *= *([^;]+)&quot;),e=C.cookie.match(e);return e?e.pop():null}function o(e,n,t){e&amp;&amp;(C.cookie=e+&quot;=&quot;+(&quot;string&quot;==typeof n?n:&quot;&quot;)+&quot;; Domain=&quot;+((t=t||{}).domain||k.cookieDomain)+&quot;; Path=&quot;+(t.path||&quot;/&quot;)+(t.maxage?&quot;; Max-Age=&quot;+t.maxage:t.expires?&quot;; Expires=&quot;+t.expires:&quot;&quot;)+(t.secure?&quot;; Secure&quot;:&quot;&quot;)+(t.samesite?&quot;; SameSite=&quot;+t.samesite:&quot;&quot;))}function F(e){for(var n=0,t={},n=0;n&lt;I.length;n++)t[I[n]]=e[I[n]];return t}function q(){var e,n,t,o,r,s,i,a,c,u,p,d,l=[],g=[],C=V(k.consentCookie),f=!1,m=!1,b=!1;if(C&amp;&amp;-1!==C.indexOf(&quot;&amp;groups=&quot;)||!0===k.useExternalConsent||(v=!1,h=null),!0===k.useExternalConsent&amp;&amp;(C=&quot;groups=&quot;+encodeURIComponent(y.OTExternalConsent.groups)),!1===v?(p=F(k.consentDefaults),m=!0):k.gdprApplies&amp;&amp;k.useIAB&amp;&amp;k.gdprIabCookie&amp;&amp;(p=function(e){var n,t,o,r=null;if(&quot;string&quot;==typeof e&amp;&amp;0!==e.length)if(e=!0===k.useExternalConsent&amp;&amp;y.OTExternalConsent.tcString?(L=y.OTExternalConsent.tcString,&quot;external consent&quot;):(L=V(e),'&quot;'+e+'&quot; cookie'),L)if((o=N(L))&amp;&amp;o.core&amp;&amp;o.core.policyVersion===k.gdprIabPolicy&amp;&amp;o.core.purposeConsents){for(k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Processed TC string from &quot;+e+&quot;: &quot;,o),r=F(k.consentImpliedDefaults),o.core.purposeLegitimateInterests=o.core.purposeLegitimateInterests||{},o.core.specialFeatureOptins=o.core.specialFeatureOptins||{},n=1;n&lt;=k.gdprIabMaxPurposes;n++)r[t=k.categories[&quot;p&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.purposeConsents[n]?o.core.purposeConsents[n]:&quot;boolean&quot;==typeof o.core.purposeLegitimateInterests[n]?o.core.purposeLegitimateInterests[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t];for(n=1;n&lt;=k.gdprIabMaxSpecialFeats;n++)r[t=k.categories[&quot;sf&quot;+n.toString(10)]]=&quot;boolean&quot;==typeof o.core.specialFeatureOptins[n]?o.core.specialFeatureOptins[n]:&quot;boolean&quot;==typeof k.consentImpliedDefaults[t]&amp;&amp;k.consentImpliedDefaults[t]}else W(&quot;error&quot;,&quot;Error: Invalid TC string in &quot;+e+&quot;.&quot;),L=&quot;&quot;;else L=&quot;&quot;;return r}(k.gdprIabCookie))?m=!0:p=function(e,n){var t=0;if(n)for(e=e||{},t=0;t&lt;I.length;t++)&quot;boolean&quot;==typeof n[I[t]]&amp;&amp;(e[I[t]]=n[I[t]]);return e}(F(k.consentDefaults),k.consentImpliedDefaults),C)for(s=C.split(&quot;&amp;&quot;),r=0;r&lt;s.length;r++)if(u=s[r])if(u=(d=u.split(&quot;=&quot;))[0],d=d[1],!1===m&amp;&amp;&quot;groups&quot;===u&amp;&amp;d){for(a=decodeURIComponent(d).split(&quot;,&quot;),c=0;c&lt;a.length;c++)o=(i=a[c].split(&quot;:&quot;))[0].toLowerCase(),i=&quot;1&quot;===i[1],o&amp;&amp;(k.categories[o]?(p[k.categories[o]]=i,&quot;req&quot;!==o&amp;&amp;(f=!0)):(k.compatTransition&amp;&amp;k.compatTransition.old===o&amp;&amp;k.compatTransition.cond===i&amp;&amp;(b=!0),k.compatCodes[o]&amp;&amp;(l.push(o),g.push(i))));if(!1===f&amp;&amp;0&lt;l.length)for(P=!0,c=0;c&lt;l.length;c++)for(t=k.compatCodes[l[c]],n=0;n&lt;t.length;n++)(e=k.categories[t[n]])&amp;&amp;(p[e]=g[c]);else!0===b&amp;&amp;p[k.categories[k.compatTransition.new]]!==k.compatTransition.cond&amp;&amp;(p[k.categories[k.compatTransition.new]]=k.compatTransition.cond)}else&quot;version&quot;===u&amp;&amp;d?S=d:&quot;isIABGlobal&quot;===u&amp;&amp;(x=&quot;true&quot;===d);return p}function e(){return F(b)}function r(){return O}function j(){return!1===O}function s(){return&quot;ccpa&quot;===k.regId}function u(){return null!==b}function i(e,n){var t,o,r,s,i=!0,a=&quot;iab-&quot;+k.regId,c=&quot;not ready&quot;;if(u()&amp;&amp;e)for(e=Array.isArray(e)?e:[e],s=0;s&lt;e.length&amp;&amp;!0===i;s++)if((c=e[s])&amp;&amp;&quot;required&quot;!==c)if(&quot;iab&quot;===c||c===a){if(k.useIAB&amp;&amp;(!n||!n.ignoreIAB))break}else if(&quot;boolean&quot;==typeof b[c]&amp;&amp;!1===b[c])i=!1;else if(k.compatCategories[c])for(r=k.compatCategories[c],t=0;t&lt;r.length;t++)if(o=r[t],&quot;boolean&quot;==typeof b[o]&amp;&amp;!1===b[o]){i=!1;break}return k.debug&amp;&amp;((n=n||{}).name=n.name||n.id||&quot;unnamed&quot;,f.push({ts:new Date,act:n.cact||&quot;CHK&quot;,desc:n.name,res:i,note:!i&amp;&amp;c||&quot;&quot;}),W(&quot;debug&quot;,!0===i?&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] ALLOWS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script added&quot;:&quot;&quot;):&quot;Check for consent [&quot;+(e&amp;&amp;e.join(&quot;,&quot;)||&quot;empty&quot;)+'] REJECTS &quot;'+n.name+'&quot;'+(&quot;ADD&quot;===n.cact?&quot;, script NOT added&quot;:&quot;&quot;))),i}function J(){var e=s()?!0===U?(b.vendor?y.WM.CDP.ccpaShareData():y.WM.CDP.ccpaDoNotShare(),y.WM.CDP.getUSPString()):&quot;1&quot;+(k.uspApiExplicitNotice?&quot;Y&quot;:&quot;N&quot;)+(b.vendor?&quot;N&quot;:&quot;Y&quot;)+(k.uspApiIsLspa?&quot;Y&quot;:&quot;N&quot;):&quot;1---&quot;;return j()&amp;&amp;e!==_&amp;&amp;(_=e,!1===U&amp;&amp;null===R&amp;&amp;o(k.uspApiCookieName,e,{domain:k.cookieDomain,path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure}),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;USP string updated: &quot;,e)),_}function H(){y.location.reload()}function Y(e){var n;return!y.frames[e]&amp;&amp;(C.body?((n=C.createElement(&quot;iframe&quot;)).style.cssText=&quot;display:none&quot;,n.name=e,C.body.appendChild(n)):setTimeout(Y.bind(y,e),5),!0)}function Z(e){for(var n=null,t=y;t;t=t.parent){try{if(t.frames&amp;&amp;t.frames[e]){n=t;break}}catch(e){}if(t===y.top)break}return n}function K(e){y.addEventListener?y.addEventListener(&quot;message&quot;,e,!1):y.attachEvent(&quot;onmessage&quot;,e)}function Q(e){var n;E=e||{ccpaTCS:_,consentInteractions:m,consentTime:h,consentVersion:S,countryCode:A,region:k.regId,stateCode:D,userConsentVersion:t},j()&amp;&amp;o(k.controlCookie,&quot;ccc=&quot;+E.countryCode+&quot;&amp;csc=&quot;+E.stateCode+&quot;&amp;cic=&quot;+E.consentInteractions+&quot;&amp;otvers=&quot;+E.consentVersion+&quot;&amp;pctm=&quot;+(E.consentTime&amp;&amp;encodeURIComponent(E.consentTime.toISOString())||&quot;0&quot;)+&quot;&amp;reg=&quot;+E.region+&quot;&amp;ustcs=&quot;+encodeURIComponent(E.ccpaTCS)+&quot;&amp;vers=&quot;+E.userConsentVersion,{domain:k.cookieDomain,expires:(e=k.consentExpireIn,(n=n?new Date(n):new Date).setUTCFullYear(n.getUTCFullYear()+e),n.toUTCString()),path:&quot;/&quot;,samesite:k.cookieSameSite,secure:k.cookieSecure})}function X(){var e=null,n=V(k.confirmCookie);return&quot;string&quot;==typeof n&amp;&amp;0!==n.length&amp;&amp;(e=new Date(n),!1===y.isNaN(e.valueOf()))?e:null}function a(){var e,n,t=X(),o=!1,r=0&lt;y.WM.UserConsent_wrapproc?new Date(y.WM.UserConsent_wrapproc):null,s=v,i=h;for(y.WM.UserConsent_wrapproc=0,t&amp;&amp;(null===h||h&lt;t)&amp;&amp;(v=!0,h=t),n=q(),e=0;e<I>h.getTime()+k.consentChangeActionDelay+1e3)&amp;&amp;(h=r),r=b,b=n,J(),Q(),!0===o){if(!0===k.debug)try{f.push({ts:new Date,act:"CHG",desc:JSON.stringify(n),res:k.reloadOnConsentChange,note:"function"==typeof k.consentChangeAction?"change function":""})}catch(e){W("error","Failed to track consent change: ",e)}if("function"==typeof k.consentChangeAction&amp;&amp;k.consentChangeAction(F(b),k.regId,S,r),C.dispatchEvent(new CustomEvent("userConsentChanged",{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:h,old:r,new:F(b),usp:_,tcf:L}})),!0===k.reloadOnConsentChange)setTimeout(H,100);else if(j())try{y.sessionStorage.setItem("_ucWMCons",JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x})),y.postMessage("_ucWMConsReset","*")}catch(e){W("error","Failed to update session storage and notify children of consent change: ",e)}}}else h=i,(!E.region||!E.consentVersion&amp;&amp;S||!E.userConsentVersion||E.userConsentVersion&lt;&quot;3.1.1&quot;)&amp;&amp;Q()}function c(e){var n,t,o,r,s,i,a,c,u,p,d=C.getElementsByTagName(&quot;head&quot;)[0],l=C.createElement(&quot;script&quot;),g=null;if(null===b){if(null!==(s=Z(&quot;_usrConWM&quot;))){T=y.name||&quot;child&quot;;try{r=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMConf&quot;))}catch(e){r=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent settings.&quot;)}if(&quot;object&quot;==typeof r&amp;&amp;null!==r){e.countryCode=r.countryCode,e.cookieDomain=r.cookieDomain,e.cookieSameSite=r.cookieSameSite,e.cookieSecure=r.cookieSecure,e.domId=r.domId,e.languageFromBrowser=r.langFromBrowser,e.enableDebug=r.enableDebug,e.regId=r.regId,e.stateCode=r.stateCode,e.src=r.src;try{i=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMCons&quot;))}catch(e){i=null,W(&quot;error&quot;,&quot;Failed to parse parent frame consent state.&quot;)}&quot;object&quot;==typeof i&amp;&amp;null!==i&amp;&amp;(b=i.consentState,h=i.consentTime,S=i.consentVersion,e.gdprIabIsGlobal=i.iabIsGlobal,O=!0),!1===r.parentReload&amp;&amp;K(function(e){var n;if(&quot;_ucWMConsReset&quot;===e.data)if(!0===k.reloadOnConsentChange)setTimeout(H,100);else{try{n=y.sessionStorage.getItem(&quot;_ucWMCons&quot;)}catch(e){n=null}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;(b=n.consentState,h=n.consentTime,S=n.consentVersion,J())}})}}if(!(e&amp;&amp;e.src&amp;&amp;e.domId&amp;&amp;e.cookieDomain))throw new Error(&quot;Invalid config passed to user-consent!&quot;);if(k.cookieDomain=e.cookieDomain,k.cookieSameSite=e.cookieSameSite||G.cookieSameSite,k.cookieSecure=(&quot;boolean&quot;==typeof e.cookieSecure?e:G).cookieSecure,k.debug=!(!console||!e.enableDebug&amp;&amp;-1===y.location.search.search(/[?&amp;]wmuc_debug=[1t]/)),&quot;object&quot;==typeof y.GetExternalConsent&amp;&amp;null!==y.GetExternalConsent&amp;&amp;&quot;function&quot;==typeof y.GetExternalConsent.oneTrustCookie){try{t=JSON.parse(y.GetExternalConsent.oneTrustCookie())}catch(e){t=null}&quot;object&quot;==typeof t&amp;&amp;null!==t&amp;&amp;t.consentedDate&amp;&amp;(t.tcString||t.groups)&amp;&amp;(y.OTExternalConsent=t),&quot;function&quot;==typeof y.GetExternalConsent.countryCode&amp;&amp;y.GetExternalConsent.countryCode()&amp;&amp;(y.ExternalConsentGeo={countryCode:y.GetExternalConsent.countryCode(),stateCode:y.GetExternalConsent.stateCode()||&quot;&quot;})}for((&quot;boolean&quot;==typeof e.enableWebViewCheck?e:G).enableWebViewCheck&amp;&amp;&quot;object&quot;==typeof y.OTExternalConsent&amp;&amp;null!==y.OTExternalConsent&amp;&amp;y.OTExternalConsent.consentedDate?(k.useExternalConsent=!0,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reading consent from external consent data: &quot;,y.OTExternalConsent)):k.useExternalConsent=!1,k.geoUsedByOneTrust=(&quot;boolean&quot;==typeof e.geoUsedByOneTrust?e:G).geoUsedByOneTrust,!0===j()&amp;&amp;!0===k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_cc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug CC to: &quot;,A=y.location.search.match(/[?&amp;]wmuc_cc=([A-Za-z]{2})/)[1].toUpperCase()):A=k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.countryCode&amp;&amp;2===y.ExternalConsentGeo.countryCode.length?y.ExternalConsentGeo.countryCode.toUpperCase():&quot;string&quot;==typeof e.countryCode&amp;&amp;2===e.countryCode.length?e.countryCode.toUpperCase():(i=V(e.ccCookie||&quot;countryCode&quot;))&amp;&amp;2===i.length?i.toUpperCase():(W(&quot;error&quot;,&quot;User-Consent unable to determine country, missing or invalid cookies!&quot;),&quot;US&quot;),k.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_sc=[A-Za-z]{2}/)?W(&quot;debug&quot;,&quot;Set debug SC to: &quot;,D=y.location.search.match(/[?&amp;]wmuc_sc=([A-Za-z]{2})/)[1].toUpperCase()):k.useExternalConsent&amp;&amp;&quot;object&quot;==typeof y.ExternalConsentGeo&amp;&amp;&quot;string&quot;==typeof y.ExternalConsentGeo.stateCode&amp;&amp;2===y.ExternalConsentGeo.stateCode.length?D=y.ExternalConsentGeo.stateCode.toUpperCase():&quot;string&quot;==typeof e.stateCode&amp;&amp;2===e.stateCode.length?D=e.stateCode.toUpperCase():(i=V(e.scCookie||&quot;stateCode&quot;))&amp;&amp;2===i.length?D=i.toUpperCase():k.debug&amp;&amp;W(&quot;debug&quot;,&quot;User-Consent unable to determine state, leaving unset.&quot;),!0===j()&amp;&amp;!0===k.geoUsedByOneTrust&amp;&amp;!1===w&amp;&amp;(y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},i=function(e){!1===w?(w=!0,y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:A,stateCode:D},y.OneTrustStub&amp;&amp;&quot;function&quot;==typeof y.OneTrustStub.setGeoLocation&amp;&amp;y.OneTrustStub.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Set OneTrust geo-location.&quot;)):&quot;function&quot;==typeof y.OptanonWrapper&amp;&amp;y.OptanonWrapper()},y.addEventListener?y.addEventListener(&quot;consent.onetrust&quot;,i,!1):y.attachEvent(&quot;consent.onetrust&quot;,i)),k.categories=e.categories||G.categories,k.regions=e.regions||G.regions,k.consentChangeAction=e.consentChangeAction||G.consentChangeAction,k.consentChangeActionDelay=e.consentChangeActionDelay||G.consentChangeActionDelay,k.controlCookie=e.controlCookie||G.controlCookie,k.brand=e.brand||G.brand||&quot;&quot;,k.psmAppId=e.psmAppId||G.psmAppId||&quot;&quot;,k.psmEnv=e.psmEnv||G.psmEnv||&quot;prod&quot;,k.languageFromBrowser=(&quot;boolean&quot;==typeof e.languageFromBrowser?e:G).languageFromBrowser,k.regionChangeAction=e.regionChangeAction||G.regionChangeAction,k.reloadOnConsentChange=(&quot;boolean&quot;==typeof e.reloadOnConsentChange?e:G).reloadOnConsentChange,n=Object.keys(k.categories),I=[],o=0;o&lt;n.length;o++)I.push(k.categories[n[o]]);for(o=0;o&lt;k.regions.length;o++)if(!0===j()&amp;&amp;function(e){for(var n=0;n&lt;e.length;n++)if(A===e[n].toUpperCase()||&quot;*&quot;===e[n])return 1}(k.regions[o].geoMatch)||!0===O&amp;&amp;k.regions[o].id===e.regId){g=k.regions[o];break}if(!g){if(O)throw new Error(&quot;No matching user-consent region, parent and iframe configs do not match!&quot;);throw new Error(&quot;No matching user-consent region!&quot;)}if(k.regId=g.id,k.compatTransition=(e.enableTransitionCheck||G.enableTransitionCheck)&amp;&amp;g.compatTransition?g.compatTransition:null,k.compatCategories=g.compatCategories||e.compatCategories||G.compatCategories||{},k.compatCodes=g.compatCodes||e.compatCodes||G.compatCodes||{},k.consentExpireIn=g.consentExpireIn||e.consentExpireIn||G.consentExpireIn||1,k.consentLinkAction=g.consentLinkAction||e.consentLinkAction||null,k.consentLinkTitle=g.consentLinkTitle||e.consentLinkTitle||G.consentLinkTitle,k.confirmCookie=g.confirmCookie||e.confirmCookie||G.confirmCookie,k.consentCookie=g.consentCookie||e.consentCookie||G.consentCookie,k.consentDefaults=g.consentDefaults||e.consentDefaults||G.consentDefaults,k.consentImpliedDefaults=g.consentImpliedDefaults||G.consentImpliedDefaults||k.consentDefaults,k.domId=g.domId||e.domId,k.gdprIabCookie=g.gdprIabCookie||e.gdprIabCookie||G.gdprIabCookie,k.gdprIabMaxPurposes=g.gdprIabMaxPurposes||e.gdprIabMaxPurposes||G.gdprIabMaxPurposes,k.gdprIabMaxSpecialFeats=g.gdprIabMaxSpecialFeats||e.gdprIabMaxSpecialFeats||G.gdprIabMaxSpecialFeats,k.gdprIabPolicy=g.gdprIabPolicy||e.gdprIabPolicy||G.gdprIabPolicy,k.privacyCenterLinkAction=g.privacyCenterLinkAction||e.privacyCenterLinkAction||null,k.privacyCenterLinkTitle=g.privacyCenterLinkTitle||e.privacyCenterLinkTitle||G.privacyCenterLinkTitle,k.src=g.src||e.src,k.useIAB=(&quot;boolean&quot;==typeof e.useIAB?e:G).useIAB,k.uspApiExplicitNotice=e.uspApiExplicitNotice||G.uspApiExplicitNotice,k.uspApiIsLspa=e.uspApiIsLspa||G.uspApiIsLspa,k.uspApiCookieName=e.uspApiCookieName||G.uspApiCookieName,k.gdprApplies=(&quot;boolean&quot;==typeof g.gdprApplies?g:&quot;boolean&quot;==typeof e.gdprApplies?e:G).gdprApplies,x=e.gdprIabIsGlobal||G.gdprIabIsGlobal||!1,k.debug&amp;&amp;(W(&quot;debug&quot;,&quot;GeoIP Country Code: &quot;+A+&quot;, using consent region: &quot;+k.regId),W(&quot;debug&quot;,&quot;IAB &quot;+(k.useIAB?&quot;enabled&quot;:&quot;disabled&quot;))),!0===j()){if(k.psmAppId&amp;&amp;y.WM.CDP&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.initPsm&amp;&amp;&quot;function&quot;==typeof y.WM.CDP.isPrivacyEnabled&amp;&amp;!k.useExternalConsent){try{y.WM.CDP.initPsm(k.psmAppId,k.brand,k.psmEnv,k.cookieDomain,A),U=y.WM.CDP.isPrivacyEnabled(),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM found and initialized.  Privacy is &quot;+(U?&quot;enabled.&quot;:&quot;disabled.&quot;))}catch(e){U=!1,W(&quot;error&quot;,&quot;PSM found but failed to initialize: &quot;,e)}U&amp;&amp;(&quot;string&quot;!=typeof(u=y.WM.CDP.getUSPString())||0===u.length?U=!1:_=u,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM privacy enabled &quot;+(U?&quot;so using.&quot;:&quot;but not working so ignoring it.&quot;)))}else k.debug&amp;&amp;W(&quot;debug&quot;,&quot;PSM not found.&quot;);if(E=function(){var n,e,t,o,r={consentInteractions:m,consentTime:null,consentVersion:&quot;&quot;,countryCode:&quot;&quot;,region:&quot;&quot;,stateCode:&quot;&quot;,userConsentVersion:&quot;&quot;},s=V(k.controlCookie);if(&quot;string&quot;==typeof s&amp;&amp;0!==s.length)for(t=s.split(&quot;&amp;&quot;),e=0;e&lt;t.length;e++)if(&quot;string&quot;==typeof(o=t[e].split(&quot;=&quot;))[0]&amp;&amp;0!==o[0].length&amp;&amp;&quot;string&quot;==typeof o[1])switch(o[0]){case&quot;ccc&quot;:r.countryCode=o[1].toLowerCase();break;case&quot;csc&quot;:r.stateCode=o[1].toLowerCase();break;case&quot;cic&quot;:r.consentInteractions=parseInt(o[1],10),(isNaN(r.consentInteractions)||r.consentInteractionsh)?(h=E.consentTime,k.debug&amp;&amp;W("debug",'Consent time read from "'+k.controlCookie+'": ',h)):null!==h&amp;&amp;k.debug&amp;&amp;W("debug",'Consent time read from "'+k.confirmCookie+'": ',h);if(null!==h?(v=!0,b=q(),!0===v?(l.async=!0,null!==E.consentTime&amp;&amp;E.consentTime&lt;h&amp;&amp;(E.region=&quot;&quot;),k.debug&amp;&amp;(W(&quot;debug&quot;,'Consent state read from &quot;'+(k.useExternalConsent?&quot;external consent&quot;:k.consentCookie)+'&quot; ('+S+&quot;): &quot;,b),P&amp;&amp;W(&quot;debug&quot;,&quot;Consent state using compatibility config.&quot;))):(h=null,E.region=&quot;&quot;,k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state expired or removed, reset from defaults: &quot;,b))):(b=F(k.consentDefaults),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Consent state from defaults: &quot;,b)),k.debug)try{f.push({ts:new Date,act:&quot;SET&quot;,desc:JSON.stringify(b),res:null!==h,note:k.regId})}catch(e){W(&quot;error&quot;,&quot;Failed to track setting initial consent: &quot;,e)}}if(y.WM.UserConsent_initted)W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent initialized!&quot;);else{if(y.WM.UserConsent_initted=!0,k.useIAB&amp;&amp;(p=function(o,r){var s,n,i=&quot;string&quot;==typeof r.data,e=o+&quot;Call&quot;;try{n=i?JSON.parse(r.data):r.data}catch(e){n={}}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;n[e]&amp;&amp;(s=n[e],y[o](s.command,s.version,function(e,n){var t={};t[o+&quot;Return&quot;]={returnValue:e,success:n,callId:s.callId};try{r.source.postMessage(i?JSON.stringify(t):t,&quot;*&quot;)}catch(e){W(&quot;error&quot;,&quot;Failed to post reply: &quot;,e)}},s.parameter))},U||(null===(R=Z(&quot;__uspapiLocator&quot;))?(Y(&quot;__uspapiLocator&quot;),y.__uspapi=function(e,n,t){if(&quot;function&quot;==typeof t){if(n=0===n?1:n,&quot;getUSPData&quot;===e&amp;&amp;1===n)return t({version:1,uspString:y.WM.UserConsent.getUspAPIstring()},!0),!0;if(&quot;ping&quot;===e)return t({version:1,uspapiLoaded:!0},!0),!0;t(null,!1)}return!1},y.__uspapi.msgHandler=p.bind(y,&quot;__uspapi&quot;),K(y.__uspapi.msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready.&quot;)):k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB for CCPA ready (via frame).&quot;)),!x&amp;&amp;&quot;gdpr&quot;!==k.regId||(c=P?&quot;1.1&quot;:&quot;2.0&quot;,null===(M=Z((a=P?&quot;__cmp&quot;:&quot;__tcfapi&quot;)+&quot;Locator&quot;))&amp;&amp;&quot;function&quot;!=typeof y[a]?(Y(a+&quot;Locator&quot;),y[a]=function(){var e=arguments,n=0;return y[a].a=y[a].a||[],0&lt;e.length&amp;&amp;(n=0===(n=1&lt;e.length&amp;&amp;parseInt(e[1],10)||0)?2:n,&quot;ping&quot;===e[0]?e[2]({apiVersion:c,gdprApplies:k.gdprApplies,gdprAppliesGlobally:x,cmpLoaded:!1,cmpStatus:&quot;stub&quot;,displayStatus:k.gdprApplies?&quot;hidden&quot;:&quot;disabled&quot;},!0):&quot;setGdprApplies&quot;===e[0]&amp;&amp;3&lt;e.length&amp;&amp;&quot;boolean&quot;==typeof e[3]?k.gdprApplies=e[3]:y[a].a.push([].slice.apply(e))),y[a].a},y[a].msgHandler=p.bind(y,a),K(y[a].msgHandler),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready.&quot;),y[a](&quot;getTCData&quot;,0,y.OptanonWrapper)):M&amp;&amp;k.debug&amp;&amp;W(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready (via frame).&quot;))),J(),!0===j()){if(k.useExternalConsent?Q():E.region&amp;&amp;E.region!==k.regId&amp;&amp;(u=E.region,p=k.regId,k.debug&amp;&amp;W(&quot;debug&quot;,'User-Consent detected region change from &quot;'+u+'&quot; to &quot;'+p+'&quot;.'),&quot;function&quot;==typeof k.regionChangeAction&amp;&amp;k.regionChangeAction(u,p,k.consentLinkAction)),null===s&amp;&amp;Y(&quot;_usrConWM&quot;))try{y.sessionStorage.setItem(&quot;_ucWMConf&quot;,JSON.stringify({cookieDomain:k.cookieDomain,cookieSameSite:k.cookieSameSite,cookieSecure:k.cookieSecure,countryCode:A,domId:k.domId,enableDebug:k.debug,langFromBrowser:k.languageFromBrowser,parentReload:k.reloadOnConsentChange,regId:k.regId,src:k.src,stateCode:D})),y.sessionStorage.setItem(&quot;_ucWMCons&quot;,JSON.stringify({consentState:b,consentTime:h,consentVersion:S,iabIsGlobal:x}))}catch(e){W(&quot;error&quot;,&quot;Failed to set UserConsent frame data!&quot;)}!(l.charset=&quot;utf-8&quot;)===k.languageFromBrowser&amp;&amp;(l.dataset.documentLanguage=&quot;true&quot;),l.dataset.domainScript=k.domId,l.src=k.src,d.appendChild(l)}k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching UserConsentReady event.&quot;),C.dispatchEvent(new CustomEvent(&quot;userConsentReady&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}}))}}}return!0===y.WM.UserConsent_loaded?W(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent loaded!&quot;):(y.WM.UserConsent_loaded=!0,y.WM.UserConsent_wrapproc=0,y.OptanonWrapper=function(){var e;n||(n=!0,k.geoUsedByOneTrust&amp;&amp;y.Optanon&amp;&amp;&quot;function&quot;==typeof y.Optanon.getGeolocationData&amp;&amp;(e=y.Optanon.getGeolocationData())&amp;&amp;e.country!==A&amp;&amp;&quot;function&quot;==typeof y.Optanon.setGeoLocation&amp;&amp;(y.Optanon.setGeoLocation(A,D),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Reset OneTrust geo-location to match site.&quot;)),k.debug&amp;&amp;W(&quot;debug&quot;,&quot;Dispatching OptanonLoaded event.&quot;),C.dispatchEvent(new CustomEvent(&quot;optanonLoaded&quot;,{bubbles:!1,cancelable:!1,detail:{region:k.regId,time:new Date,consentConfirmed:v}})),!0===k.useExternalConsent&amp;&amp;!0!==y.Optanon.IsAlertBoxClosed()&amp;&amp;y.Optanon.Close()),null!==b&amp;&amp;0===y.WM.UserConsent_wrapproc&amp;&amp;(y.WM.UserConsent_wrapproc=(new Date).getTime(),setTimeout(a,(&quot;number&quot;==typeof k.consentChangeActionDelay?k:G).consentChangeActionDelay))},&quot;object&quot;==typeof y.WM.UserConsentConfig&amp;&amp;null!==y.WM.UserConsentConfig&amp;&amp;c(y.WM.UserConsentConfig)),{addScript:function(e,n,t){var o,r,s,t=t||C.head;if(e&amp;&amp;(e.src||e.text)){if(!0===i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;})){for(o=C.createElement(&quot;script&quot;),s=Object.keys(e),r=0;r<s> {
if (
  window.CNN.Zion.apiKey &amp;&amp;
  window.CNN.Zion.environmentType &amp;&amp;
  window.CNN.Zion.sourceId &amp;&amp;
  window.ZION_SDK
) {
  const accessKey = window.CNN.Zion.apiKey;
  const environment = window.ZION_SDK.EnvironmentType[window.CNN.Zion.environmentType];
  const enableLogging = environment !== window.ZION_SDK.EnvironmentType.Prod;

  new window.ZION_SDK.ZionAnalytics(window.ZION_SDK.ClientType.Web, environment, {
    accessKey,
    bridgeEnabled: true,
    bufferSize: 20,
    enabled: true,
    enableLogging,
    trackAdvertising: false,
    trackBluetooth: false,
    trackDeeplink: false,
    trackLifecycle: false,
    trackLocation: false,
    trackNotifications: false,
    trackPurchases: false,
    trackScreens: false,
    trackUxMetrics: true,
    uxMetricsPercentage: 100,
    telemetryEndpoint: window.env.ZION_TELEMETRY_ENDPOINT
  });

  if (window.zion_analytics) {
    window.zion_analytics.track(new window.ZION_SDK.Pageview({
      canonicalUrl: window.CNN.contentModel.canonicalUrl,
      traits: {
        event_source: window.CNN.contentModel.techStack || 'stellar',
        page_variant: window.CNN.contentModel.templateType || '',
        raw_url: window.location.href,
        cms_id: CNN.contentModel.cmsId || '',
        page_type: CNN.contentModel.pageType || '',
        edition: CNN.contentModel.edition,
        section: CNN.contentModel.section || '',
        subsection: CNN.contentModel.subsection || '',
        experience_type: window.location.href.includes('plus') ? 'cnn_plus' : 'cnn_core'
      },
      sourceId: window.CNN.contentModel.sourceId || ''
    }));
  }
} else {
  throw new Error('zion: missing either "apiKey", "environmentType" or "sourceId"');
}

});
})()

    }

//script: fave
addScript({ async: false, defer: true, name: ‘fave’, src: ‘https://registry.api.cnn.io/bundles/fave/latest-4.x/js’ });

//snippet: airship
!function(n,r,e,t,c){var i,o=”Promise”in n,u={then:function(){return u},catch:function(n){ return n(new Error(“Airship SDK Error: Unsupported browser”)),u}},s=o?new Promise((function(n,r){i=function(e,t){e?r(e):n(t)}})):u ;s._async_setup=function(n){if(o)try{i(null,n(c))}catch(n){i(n)}},n[t]=s;var a=r.createElement(“script”);a.src=e,a.async=!0,a.id=”_uasdk”, a.rel=t,r.head.appendChild(a)}(window,document, window.env.AIRSHIP_SRC, ‘UA’, { vapidPublicKey: window.env.AIRSHIP_VAPID_PUBLIC_KEY, websitePushId: window.env.AIRSHIP_WEB_SITE_PUSH_ID, appKey: window.env.AIRSHIP_APP_KEY, token: window.env.AIRSHIP_TOKEN, workerUrl:window.env.AIRSHIP_WORKER }); (function(){const c = { auto: true, position: ‘top’, appearDelay: 5000, stylesheet: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/css/vendor/airship.css’, askAgainDelay: 2592000, disappearDelay: 1000, type: ‘alert’, logo: ‘https://z.cdn.cnn.com/cnn/tmpl_asset/static/images/cnn_underscored_stacked_256.png’, i18n: { en: { title: ‘Subscribe to CNN Underscored notifications’, message: ‘Never miss out on a product worth buying or a sale worth shopping by subscribing to our push notifications.’, bubble: ‘Unlock permission to allow notifications’, button: ‘Allow’, accept: ‘Yes, Subscribe me!’, deny: ‘No thanks’}}}; window.UA.then((sdk) => { sdk.plugins.load(‘html-prompt’, ‘https://aswpsdkus.com/notify/v1/ua-html-prompt.min.js’, c).then((plugin) => plugin.prompt(c)); sdk.addEventListener(‘channel’, ev => { sdk.channel.tags.add(‘underscored’); }, { once: true }); }); })();

//snippet: krux-id
if (window.WM.UserConsent.inUserConsentState([‘vendor’,’data-store’,’ads-person-prof’,’ads-person’,’measure-ads’,’measure-content’,’measure-market’])) {
const MODULE_NAME=”Krux Module”,MODULE_VERSION=”v4.1.4″,config={DOM_CONTROLTAG:window.env.KRUX_DOM_CONTROLTAG,INTL_CONTROLTAG:window.env.KRUX_INTL_CONTROLTAG,SEND_VALUES_TO_ZION:window.env.KRUX_SEND_VALUES_TO_ZION};let zionBus,setControlTag,sendValuesToZion,hostname,messageSent=!1,subscribersSet=!1;const readCookie=e=>{let n=!1,t=null;var o;return void 0!==window.localStorage&&(n=!0),”https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined”!=typeof document&&document.cookie&&document.cookie.match(RegExp(${o}=.*?;))?document.cookie.match(RegExp(${o}=.*?;))[0].replace(RegExp(${o}=|;,”g”),””):null)),t},setHostAndPathNames=()=>{const e=”https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined”!=typeof document?document.location.href:””,hostname=e.hostname},countryCode=readCookie(“countryCode”)||(readCookie(“CG”)?readCookie(“CG”).substr(0,2):””),getURLParam=e=>{if(“https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined”==typeof document)return””;const n=e.replace(/[[]/,”[“).replace(/[]]/,”]”),t=new RegExp([?&amp;]${n}=([^&amp;#]*));if(document&&document.location&&document.location.search){const e=t.exec(document.location.search);return e?e[1]:””}return””},isIntl=()=>{let e=!1;return setHostAndPathNames(),e=”true”===getURLParam(“isIntl”)||(hostname.search(/^.(edition|edition-m|arabic|cnnespanol|cnne-test)./)>=0||””!==countryCode&&null!==countryCode&&(“US”!==countryCode&&”CA”!==countryCode)),e},piiRE=/(([^()[].,;:[email protected]”]+(.[^()[].,;:[email protected]”]+))|(“.+”))@(([^()[].,;:[email protected]”]+.)+[^()[].,;:[email protected]”]{2,})/i,piiIsPresentInQueryString=()=>{if(document.location.search){const e=document.location.search.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.search).search(piiRE)+1}catch(t){n=e}return 1===e||1===n}return!1},piiIsPresentInHash=()=>{if(document.location.hash){const e=document.location.hash.search(piiRE)+1;let n;try{n=decodeURIComponent(document.location.hash).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiIsPresentInReferrer=()=>{if(document.referrer){const e=document.referrer.search(piiRE)+1;let n;try{n=decodeURIComponent(document.referrer).search(piiRE)+1}catch(t){n=e}return e||n}return!1},piiFilter={qs:piiIsPresentInQueryString,hash:piiIsPresentInHash,ref:piiIsPresentInReferrer},retrieve=e=>{const n=kx${e},t=(()=>{try{return window.localStorage}catch(e){return null}})();if(t)return t[n]||””;if(navigator.cookieEnabled){const e=document.cookie.match(${n}=([^;]*));return e&&unescape(e[1])||””}return””},init=e=>{const n=new Promise((n=>{window.Krux||((window.Krux=function(){window.Krux.q.push([arguments])}).q=[]),window.krux_getFWKeyValues=(e,n)=>{window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[];const t=e||”_fwu:386123:”,o=n||35,r={};for(let e=0;e<window.Krux.segments.length;e++)e{let e=”&kxid=”;return window.Krux.user&&(e+=window.Krux.user),e+=&amp;kxseg=${window.kvs.join(",")},e},window.krux_getFWSegments=()=>(window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],kxseg=${window.Krux.segments.join(",kxseg=")}),window.krux_getUser=()=>(window.Krux.user=retrieve(“user”),window.Krux.user),window.krux_getKuid=()=>(window.Krux.kuid=retrieve(“kuid”),window.Krux.kuid),setControlTag=e=>{const n=document,t=n.createElement(“script”),o=n.getElementsByTagName(“head”)[0];t.type=”text/javascript”,t.async=!0,t.src=`https://cdn.krxd.net/controltag?confid=${e}`,piiFilter.hash()||piiFilter.qs()||piiFilter.ref()||o.appendChild(t)},sendValuesToZion=()=>{window.Krux.user=retrieve(“user”),window.Krux.segments=retrieve(“segs”)?retrieve(“segs”).split(“,”):[],window.Krux.kuid=retrieve(“kuid”);const n=window.Krux.user,t=window.Krux.segments.filter((function(e,n){return n{if(e){const n=e.CONTROLTAGS?e.CONTROLTAGS:{DOM:e.DOM_CONTROLTAG,INTL:e.INTL_CONTROLTAG},t=isIntl()?n.INTL:n.DOM;setControlTag(t),e.SEND_VALUES_TO_ZION&&!subscribersSet&&(subscribersSet=!0,window.ZION_SDK?(zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()):window.addEventListener(“zion.loaded”,(()=>{zionBus=window.ZION_SDK.ZionMessageBus.getInstance(),sendValuesToZion()})))}n()})()}));return n.id=”Krux Module v4.1.4″,n};init(config);

    }

//snippet: hyphensocial
(function () {
window.addEventListener(“load”, (event) => {
if (document.location.href.includes(“facebook-paid”)) {
function getURLParameter(e, t) {
return (RegExp(t + “=(.+?)(&|$)”).exec(e) || [, null])[1];
}
function parse_query_string(e) {
for (var t = e.split(“&”), n = {}, a = 0; a -1 || e.indexOf(“FBAV”) > -1;
}
function os_system() {
var e = navigator.userAgent || navigator.vendor || window.opera;
return /windows phone/i.test(e)
? “Windows Phone”
: /android/i.test(e)
? “Android”
: /iPad|iPhone|iPod/.test(e) && !window.MSStream
? “iOS”
: “unknown”;
}
function affSwap() {
(window.aff_params = {}),
(window.base_tag = null),
(window.tag_count = 0);
let e = document
.querySelector(‘[data-editable=”content”]’)
.querySelectorAll(‘a:not([swapped=”true”])’);
if (e.length >= 5) {
for (const t of e) {
let e = [
getURLParameter(t.href.replace(“-20”, “”), “tag”),
getURLParameter(t.href.replace(“|”, “&”), “subId1”),
getURLParameter(t.href.replace(“|”, “&”), “u1”),
getURLParameter(t.href.replace(“|”, “&”), “afftrack”),
].join(“”);
(e in aff_params) & (“” != e)
? ((window.aff_params[e] += 1),
window.aff_params[e] > window.tag_count &&
((tag_count = window.aff_params[e]), (window.base_tag = e)))
: (aff_params[e] = 1);
}
for (const t of e) {
(t.onclick = function () {
fbq(“trackSingleCustom”, “404409197807416”, “affClick”, {
href: t.href,
});
}),
t.setAttribute(“swapped”, !0);
let e = params().utm_term;
if (e && “https://www.cnn.com/2021/11/25/cnn-underscored/nintendo-switch-black-friday-deals-2021/undefined” !== e) {
let n = t.href.replace(base_tag, e);
t.setAttribute(“href”, n);
}
if (
t.href.includes(“amazon”) &
browser() &
(“Android” == os_system())
) {
t.setAttribute(“target”, “_blank”);
let e =
“intent://#Intent;scheme=com.amazon.mobile.shopping.web://amazon.com/o/ASIN/” +
i
.getAttribute(“href”)
.match(“(?:[/dp/]|$)([A-Z0-9]{10})”)[0]
.replace(“/”, “”) +
“/” +
i.getAttribute(“href”).split(“?”)[1].split(“tag=”)[1] +
“/ref=nosim//;end”;
t.setAttribute(“href”, e);
}
}
}
}
!(function (e, t, n, a, r, o, i) {
e.fbq ||
((r = e.fbq =
function () {
r.callMethod
? r.callMethod.apply(r, arguments)
: r.queue.push(arguments);
}),
e._fbq || (e._fbq = r),
(r.push = r),
(r.loaded = !0),
(r.version = “2.0”),
(r.queue = []),
((o = t.createElement(n)).async = !0),
(o.src = “https://connect.facebook.net/en_US/fbevents.js”),
(i = t.getElementsByTagName(n)[0]).parentNode.insertBefore(o, i));
})(window, document, “script”),
fbq(“init”, “404409197807416”),
fbq(“track”, “PageView”),
affSwap(),
setInterval(affSwap, 5e3);
}
});
})();

}())

Leave a Reply