Mon. Jan 17th, 2022
Spread the love


When the new console generation started about a year ago, I was pretty content with just my PS5. I have a pretty powerful gaming PC that can play all the latest Microsoft games, so there was no practical reason for me to get an Xbox Series X. But there was something about the smaller, cheaper Xbox Series S that kept calling to me, even if I didn’t need one. And when I decided to treat myself to one earlier this year, it wasn’t long before the most basic current-gen console became my favorite.

Even with the more capable PS5 at my disposal, the Series S is the console I use the most — and it does enough right that I don’t feel a need to upgrade to the mightier Series X just yet. And while folks all over are still frantically refreshing their browsers in hopes of scoring an elusive PS5 or Xbox Series X during restocks, the Series S is abundantly available on most store shelves.

For all of those reasons — and a few others — the Xbox Series S is the console I recommend to most folks. Let me break down why.

The best console for most people

The Xbox Series S’ excellent performance, compact design and superb overall value make it the console that most people should pick up right now.

Mike Andronico/CNN

I’ll be honest — a big reason why I bought the Xbox Series S is because I simply love the way it looks. Whereas the blocky, tower-shaped Xbox Series X and the ridiculously gargantuan sci-fi behemoth that is the PS5 both command a decent amount of space, the Series S is an adorable little white rectangle that kind of looks like a large Bluetooth speaker. It’s about half of the weight of both higher-end consoles, and a fraction of the size. This tiny box is just nice to look at — especially sitting next to the matching white Switch OLED in my entertainment center.

But the Series S’ sleek design isn’t just pretty — it’s also practical. Moving the console from my living room to my PC area whenever I streamed on Twitch was a breeze, and far less of a hassle than lugging my PS5 from room to room. And if I ever find myself going on a long trip where I’ll want a console handy, the Series S is the only system small enough to fit in my backpack.

The Xbox Series S has some of the Xbox Series X’s best features — and performs great for the price

Mike Andronico/CNN

Despite being the cheapest current gaming console out there, the Series S still feels distinctly next-gen, largely because it has a lot of the same key features as the pricier Series X. Modern games are practically devoid of loading times, thanks to the solid-state drive packed inside, but it’s the “Quick Resume” feature that actually impacted the way I play games during my first few weeks with the console.

Available on both the Series X and S, Quick Resume lets you have a handful of games open at once and pick up right where you left off when you switch between them. So when I take a break from Halo: The Master Chief Collection for some retro shooting action in Doom 64, I can hop right into my paused game rather than booting up the title all over again. It’s one of the best innovations of this console generation — and is something the PS5 doesn’t offer.

I typically stick to one or two games at a time, but the convenience of Quick Resume — combined with the endless buffet of games on Xbox Game Pass — made me want to try out more titles at once. I quickly found myself downloading and jumping between games I might not have otherwise tried out, such as Xenocrisis and Rage 2, since the console does a great job removing a lot of the waiting that comes with booting up a video game. The feature also works over long spans of time — I was often shocked to see my Halo game still suspended after not touching it for weeks.

And while the Xbox Series S isn’t quite as powerful as the Series X, it’s still a fantastic way to experience current-gen gaming. Titles such as Dirt 5 and Mass Effect Legendary Edition still burst with vivid color and detail on Microsoft’s tiny console, and more importantly, run at incredibly smooth frame rates.

While the Series S outputs at a lower resolution of 1440p compared to the Series X’s richer 4K output, both consoles are capable of frame rates as high as 120 frames per second. That means that when I’m playing titles such as Forza Horizon 5 and Star Wars: Squadrons, I’m getting a fluid and responsive experience that feels on par with both my PS5 and my powerful gaming PC. If you have a 1080p TV and don’t plan on upgrading to 4K anytime soon, the gap between the Series S and the Series X or PS5 is even less significant.

How the Xbox Series S and PS5 stack up

Jacob Krol/CNN

On top of stacking up well to its bigger sibling, the Series S gets more playtime in my home than my more powerful PS5 — and it’s all because of the little things.

While this hasn’t always been the case on previous consoles, I much prefer the Xbox user interface to what PlayStation offers right now. It’s far more customizable — not just in the amount of ways that you can tweak colors and backgrounds, but also due to the fact that you can pin your go-to games and apps to your home screen for easier access. By comparison, the PS5 interface feels empty. You can’t set a custom wallpaper, and the ability to organize games into folders (a feature that the PS4 had) is still missing.

And while the latest Xbox controller isn’t nearly as advanced as the PS5’s DualSense gamepad, it’s still my favorite one to use by a mile. The Xbox Wireless Controller just feels right in my hands, especially since it’s gotten an even more ergonomic design, textured grips and an improved D-pad for this generation. I still like a lot of things about the DualSense, which has some truly futuristic features like detailed haptic feedback and adaptive triggers that help better simulate the feel of web-swinging as Spider-Man or firing a rifle in Deathloop. But Sony’s controller is far too big for my liking, and I’m much more comfortable gaming on an Xbox pad.

Of course, none of these features matter nearly as much as the games you can play on these machines, and it’s much harder for me to pick a favorite there. The PlayStation 5 is the clear winner in terms of big first-party releases: Spider-Man: Miles Morales, Ratchet & Clank: Rift Apart, Demon’s Souls and Returnal have all been massive hits over the past year, and all do a great job showcasing what the system is capable of. Heck, the free Astro’s Playroom game that comes preloaded with the PS5 is better than some paid titles I’ve played recently.

Xbox Game Pass

Microsoft
Xbox Game Pass

But what the Xbox platform currently lacks in chart-topping tentpoles it makes up for in sheer value. When you pair the Series S with an Xbox Game Pass subscription (starting at $10 a month), you get a $300 system that instantly has access to an ever-growing library currently offering hundreds of games. The Game Pass library includes all Microsoft first-party releases like Halo and Gears, some big third-party names like Destiny 2 and Star Wars Jedi: Fallen Order along with an abundance of great indie games, many of which I likely wouldn’t have tried if it wasn’t for the service.

Microsoft has also been stepping up its game when it comes to the quality of its exclusives, as made evident by the stunning Forza Horizon 5 and what we’ve played of Halo Infinite so far. And while new PS5 exclusives will run you $50 to $70 a pop, all of Microsoft’s new releases are on Game Pass the day they come out. So while I’ll fire up my PS5 every few months for the big exclusives, I tend to return to my Series S far more frequently since I know I’ll always have something new to play without spending any extra cash.

Despite holding up well against the Xbox Series X and PS5, the Series S isn’t without its caveats. The console’s small 512GB SSD only has about 364GB of usable storage, which means that it’ll quickly fill up with modern games that can demand as much as 100GB of space. You can always delete and redownload software as you need to, or pick up a Seagate expansion card, but the former can get annoying and the latter is very expensive.

And while the Xbox Series S is capable of ray tracing — a fancy tech feature that allows for ultrarealistic reflections and shadows — some games only support it on the more powerful Xbox Series X. Finally, if you own or plan on upgrading to a 4K TV or monitor down the line, the Xbox Series X and PS5 will both be a more future-proof purchase.

Jacob Krol/CNN

I’m not trying to say that the Xbox Series S is superior to the PS5 or the Xbox Series X — if you care about 4K gaming and want a more future-proof gaming console, it’s worth holding out for one of them. But I continue to be delighted by the design, performance and overall value of Microsoft’s cheapest gaming box, and during a holiday season when most other systems are virtually impossible to buy, the Series S is your best option right now.

For $299, you’re getting a system that can play the latest Call of Duty, Battlefield and Madden titles, to name just a few — and make them look pretty great at that. And when you throw in Xbox Game Pass, you have an instant library of hundreds of titles that includes access to all of the new Halo, Forza and Gears games as soon as they come out. The Series S is the best value in console gaming right now, and not just because you can actually buy it.

(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 f,k="",v={},I=!1,m=[],b=0,h=null,E=null,S="",T={},A="",D="",O="",x=!1,P=!1,w=!1,n=!1,L="",t="3.1.15",M=null,G=!1,R=!1,U=!1,_=null,W="",B={addtlConsentCookie:"OTAdditionalConsentString",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","measure-ads"],"ads-vendor":["vendor","ads-contextual","ads-person","measure-ads"],"behavior-general":["content-person"],"behavior-vendor":["vendor","content-person"],functional:["vendor","data-store","content-person-prof","content-person"],performance:["measure-content","measure-market","product-develop"],"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"],targeting:["vendor","ads-contextual","ads-person-prof","ads-person","measure-ads"]},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,enableGPC:!0,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"],fc:["ven"],pfv:["ven"],pzv:["ven"],sav:["ven"],smv:["ven"],tc:["ven"]},compatTransition:{cond:!1,new:"ven",old:"pzv"},consentExpireIn:3,consentGpcDefaults:{vendor:!1},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"],fc:["p1","p5","p6"],pf:["p8","p9","p10"],pfv:["p8","p9","p10"],pz:["p3","p5"],pzv:["p3","p5"],sa:["p1"],sav:["p1"],tc:["p2","p3","p4","p7"]},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,reloadOnConsentReduction:!1,scCookie:"stateCode",setPageClass:!0,useIAB:!0,uspApiCookieName:"usprivacy",uspApiExplicitNotice:!0,uspApiIsLspa:!1};function N(e){var n=Array.prototype.slice.call(arguments);n[0]="[WMUC]"+(0===A.length?"":" ("+A+")")+":",("error"===e?console.error:console.log).apply(console,n)}function d(e){return!!Number(e)}function p(e){return parseInt(e,2)||0}function l(e){return 100*p(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(p(t[r])+n);return o}function z(e){for(var n=e.split(&quot;&quot;),t={},o=0;o&lt;n.length;o++)d(n[o])&amp;&amp;(t[o+1]=!0);return t}function V(e){var n,t,o,r,s,i,a=[];if(&quot;string&quot;!=typeof e)return N(&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){N(&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!==p(a[0].slice(0,6))?(N(&quot;error&quot;,&quot;Unsupported TC string version&quot;),[]):a}function F(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:d},{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:z});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:z},{key:&quot;customPurposeLegitimateInterests&quot;,size:o.numCustomPurposes,decoder:z}):&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||p)(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=V(e),r=function(e){for(var n=[{key:&quot;purposeConsents&quot;,size:24,decoder:z},{key:&quot;purposeLegitimateInterests&quot;,size:24,decoder:z}],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:d},{key:&quot;useNonStandardStacks&quot;,size:1,decoder:d},{key:&quot;specialFeatureOptins&quot;,size:12,decoder:z}].concat(n).concat({key:&quot;purposeOneTreatment&quot;,size:1,decoder:d},{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===p(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 q(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||v.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 j(e){for(var n=0,t={},n=0;n&lt;f.length;n++)t[f[n]]=e[f[n]];return t}function J(e,n){var t=0;if(n)for(e=e||{},t=0;t&lt;f.length;t++)&quot;boolean&quot;==typeof n[f[t]]&amp;&amp;(e[f[t]]=n[f[t]]);return e}function H(){var e,n,t,o,r,s,i,a,c,u,d,p,l=[],g=[],C=q(v.consentCookie),f=!1,m=!1,b=!1;if(C&amp;&amp;-1!==C.indexOf(&quot;&amp;groups=&quot;)||!0===v.useExternalConsent||(I=!1,E=null),!0===v.useExternalConsent&amp;&amp;(C=&quot;groups=&quot;+encodeURIComponent(y.OTExternalConsent.groups)),(R=!1)===I?(d=j(v.consentDefaults),(m=!0)===v.enableGPC&amp;&amp;v.consentGpcDefaults&amp;&amp;navigator.globalPrivacyControl&amp;&amp;(d=J(d,v.consentGpcDefaults),R=!0)):!0!==v.useExternalConsent&amp;&amp;v.gdprApplies&amp;&amp;v.useIAB&amp;&amp;v.gdprIabCookie&amp;&amp;(d=function(e,n){var t,o,r,s,i,a=null;if(&quot;string&quot;==typeof e&amp;&amp;0!==e.length)if(!0===v.useExternalConsent&amp;&amp;y.OTExternalConsent.tcString?(L=y.OTExternalConsent.tcString,s=r=&quot;external consent&quot;,k=y.OTExternalConsent.addtlConsent||&quot;&quot;):(L=q(e),r=&quot;&quot;&quot;+e+'&quot; cookie',s=&quot;&quot;&quot;+n+'&quot; cookie',null===(k=&quot;string&quot;==typeof n&amp;&amp;0!==n.length?q(n):&quot;&quot;)&amp;&amp;(k=&quot;&quot;)),L)if((i=F(L))&amp;&amp;i.core&amp;&amp;i.core.policyVersion===v.gdprIabPolicy&amp;&amp;i.core.purposeConsents){for(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Processed TC string from &quot;+r+&quot;: &quot;,i),a=j(v.consentImpliedDefaults),i.core.purposeLegitimateInterests=i.core.purposeLegitimateInterests||{},i.core.specialFeatureOptins=i.core.specialFeatureOptins||{},t=1;t&lt;=v.gdprIabMaxPurposes;t++)a[o=v.categories[&quot;p&quot;+t.toString(10)]]=&quot;boolean&quot;==typeof i.core.purposeConsents[t]?i.core.purposeConsents[t]:&quot;boolean&quot;==typeof i.core.purposeLegitimateInterests[t]?i.core.purposeLegitimateInterests[t]:&quot;boolean&quot;==typeof v.consentImpliedDefaults[o]&amp;&amp;v.consentImpliedDefaults[o];for(t=1;t&lt;=v.gdprIabMaxSpecialFeats;t++)a[o=v.categories[&quot;sf&quot;+t.toString(10)]]=&quot;boolean&quot;==typeof i.core.specialFeatureOptins[t]?i.core.specialFeatureOptins[t]:&quot;boolean&quot;==typeof v.consentImpliedDefaults[o]&amp;&amp;v.consentImpliedDefaults[o];0!==k.length&amp;&amp;-1===k.search(/^d+~[d.]*$/)&amp;&amp;(N(&quot;error&quot;,&quot;Error: Invalid AC string in &quot;+s+&quot;.&quot;),k=&quot;&quot;)}else N(&quot;error&quot;,&quot;Error: Invalid TC string in &quot;+r+&quot;.&quot;),k=L=&quot;&quot;;else k=L=&quot;&quot;;return a}(v.gdprIabCookie,v.addtlConsentCookie))?m=!0:d=J(j(v.consentDefaults),v.consentImpliedDefaults),C)for(s=C.split(&quot;&amp;&quot;),r=0;r&lt;s.length;r++)if(u=s[r])if(u=(p=u.split(&quot;=&quot;))[0],p=p[1],!1===m&amp;&amp;&quot;groups&quot;===u&amp;&amp;p){for(a=decodeURIComponent(p).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;(v.categories[o]?(d[v.categories[o]]=i,&quot;req&quot;!==o&amp;&amp;(f=!0)):(v.compatTransition&amp;&amp;v.compatTransition.old===o&amp;&amp;v.compatTransition.cond===i&amp;&amp;(b=!0),v.compatCodes[o]&amp;&amp;(l.push(o),g.push(i))));if(!1===f&amp;&amp;0&lt;l.length)for(G=!0,c=0;c&lt;l.length;c++)for(t=v.compatCodes[l[c]],n=0;n&lt;t.length;n++)(e=v.categories[t[n]])&amp;&amp;(d[e]=g[c]);else!0===b&amp;&amp;d[v.categories[v.compatTransition.new]]!==v.compatTransition.cond&amp;&amp;(d[v.categories[v.compatTransition.new]]=v.compatTransition.cond)}else&quot;version&quot;===u&amp;&amp;p?S=p:&quot;isIABGlobal&quot;===u&amp;&amp;(x=&quot;true&quot;===p);return d}function e(){return j(h)}function r(){return P}function Y(){return!1===P}function s(){return&quot;ccpa&quot;===v.regId}function u(){return null!==h}function i(e,n){var t,o,r,s,i=!0,a=&quot;iab-&quot;+v.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(v.useIAB&amp;&amp;(!n||!n.ignoreIAB))break}else if(&quot;boolean&quot;==typeof h[c]&amp;&amp;!1===h[c])i=!1;else if(v.compatCategories[c])for(r=v.compatCategories[c],t=0;t&lt;r.length;t++)if(o=r[t],&quot;boolean&quot;==typeof h[o]&amp;&amp;!1===h[o]){i=!1;break}return v.debug&amp;&amp;((n=n||{}).name=n.name||n.id||&quot;unnamed&quot;,m.push({ts:new Date,act:n.cact||&quot;CHK&quot;,desc:n.name,res:i,note:!i&amp;&amp;c||&quot;&quot;}),N(&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 Z(){var e=s()?!0===U?(h.vendor?y.WM.CDP.ccpaShareData():y.WM.CDP.ccpaDoNotShare(),y.WM.CDP.getUSPString()):&quot;1&quot;+(v.uspApiExplicitNotice?&quot;Y&quot;:&quot;N&quot;)+(h.vendor?&quot;N&quot;:&quot;Y&quot;)+(v.uspApiIsLspa?&quot;Y&quot;:&quot;N&quot;):&quot;1---&quot;;return Y()&amp;&amp;e!==W&amp;&amp;(W=e,!1===U&amp;&amp;null===_&amp;&amp;o(v.uspApiCookieName,e,{domain:v.cookieDomain,path:&quot;/&quot;,samesite:v.cookieSameSite,secure:v.cookieSecure}),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;USP string updated: &quot;,e)),W}function K(){y.location.reload()}function $(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($.bind(y,e),5),!0)}function Q(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 X(e){y.addEventListener?y.addEventListener(&quot;message&quot;,e,!1):y.attachEvent(&quot;onmessage&quot;,e)}function ee(e){var n;T=e||{ccpaTCS:W,consentInteractions:b,consentTime:E,consentVersion:S,countryCode:D,region:v.regId,stateCode:O,userConsentVersion:t},Y()&amp;&amp;o(v.controlCookie,&quot;ccc=&quot;+T.countryCode+&quot;&amp;csc=&quot;+T.stateCode+&quot;&amp;cic=&quot;+T.consentInteractions+&quot;&amp;otvers=&quot;+T.consentVersion+&quot;&amp;pctm=&quot;+(T.consentTime&amp;&amp;encodeURIComponent(T.consentTime.toISOString())||&quot;0&quot;)+&quot;&amp;reg=&quot;+T.region+&quot;&amp;ustcs=&quot;+encodeURIComponent(T.ccpaTCS)+&quot;&amp;vers=&quot;+T.userConsentVersion,{domain:v.cookieDomain,expires:(e=v.consentExpireIn,(n=n?new Date(n):new Date).setUTCFullYear(n.getUTCFullYear()+e),n.toUTCString()),path:&quot;/&quot;,samesite:v.cookieSameSite,secure:v.cookieSecure})}function ne(){var e=null,n=q(v.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=ne(),o=!1,r=0&lt;y.WM.UserConsent_wrapproc?new Date(y.WM.UserConsent_wrapproc):null,s=I,i=E,a=!1;for(y.WM.UserConsent_wrapproc=0,t&amp;&amp;(null===E||E&lt;t)&amp;&amp;(I=!0,E=t),n=H(),e=0;eE.getTime()+v.consentChangeActionDelay+1e3)&amp;&amp;(E=r),r=h,h=n,Z(),ee(),!0===o){if(!0===v.debug)try{m.push({ts:new Date,act:"CHG",desc:JSON.stringify(n),res:v.reloadOnConsentChange||v.reloadOnConsentReduction&amp;&amp;a,note:"function"==typeof v.consentChangeAction?"change function":""})}catch(e){N("error","Failed to track consent change: ",e)}if("function"==typeof v.consentChangeAction&amp;&amp;v.consentChangeAction(j(h),v.regId,S,r),C.dispatchEvent(new CustomEvent("userConsentChanged",{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:E,old:r,new:j(h),usp:W,tcf:L,acf:k}})),!0===v.reloadOnConsentChange||!0===a&amp;&amp;!0===v.reloadOnConsentReduction)setTimeout(K,100);else if(Y())try{y.sessionStorage.setItem("_ucWMCons",JSON.stringify({consentState:h,consentTime:E,consentVersion:S,iabIsGlobal:x})),y.postMessage("_ucWMConsReset","*")}catch(e){N("error","Failed to update session storage and notify children of consent change: ",e)}}}else E=i,(!T.region||!T.consentVersion&amp;&amp;S||!T.userConsentVersion||T.userConsentVersion&lt;&quot;3.1.1&quot;)&amp;&amp;ee()}function c(e){var n,t,o,r,s,i,a,c,u,d,p=C.getElementsByTagName(&quot;head&quot;)[0],l=C.createElement(&quot;script&quot;),g=null;if(null===h){if(null!==(s=Q(&quot;_usrConWM&quot;))){A=y.name||&quot;child&quot;;try{r=JSON.parse(y.sessionStorage.getItem(&quot;_ucWMConf&quot;))}catch(e){r=null,N(&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.enableGPC=!!r.enableGPC,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,N(&quot;error&quot;,&quot;Failed to parse parent frame consent state.&quot;)}&quot;object&quot;==typeof i&amp;&amp;null!==i&amp;&amp;(h=i.consentState,E=i.consentTime,S=i.consentVersion,e.gdprIabIsGlobal=!!i.iabIsGlobal,P=!0),!1===r.parentReload&amp;&amp;X(function(e){var n;if(&quot;_ucWMConsReset&quot;===e.data){try{n=y.sessionStorage.getItem(&quot;_ucWMCons&quot;)}catch(e){n=null}&quot;object&quot;==typeof n&amp;&amp;null!==n&amp;&amp;(e=function(e,n){var t=0;if(e&amp;&amp;n)for(t=0;t&lt;f.length;t++)if(!0===e[f[t]]&amp;&amp;!0!==n[f[t]])return!0;return!1}(h,n.consentState),h=n.consentState,E=n.consentTime,S=n.consentVersion,Z(),(!0===v.reloadOnConsentChange||!0===e&amp;&amp;!0===v.reloadOnConsentReduction)&amp;&amp;setTimeout(K,100))}})}}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(v.cookieDomain=e.cookieDomain,v.cookieSameSite=e.cookieSameSite||B.cookieSameSite,v.cookieSecure=(&quot;boolean&quot;==typeof e.cookieSecure?e:B).cookieSecure,v.debug=!(!console||!e.enableDebug&amp;&amp;-1===y.location.search.search(/[?&amp;]wmuc_debug=[1t]/)),v.enableGPC=(&quot;boolean&quot;==typeof e.enableGPC?e:B).enableGPC,&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:B).enableWebViewCheck&amp;&amp;&quot;object&quot;==typeof y.OTExternalConsent&amp;&amp;null!==y.OTExternalConsent&amp;&amp;y.OTExternalConsent.consentedDate?(v.useExternalConsent=!0,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Reading consent from external consent data: &quot;,y.OTExternalConsent)):v.useExternalConsent=!1,v.geoUsedByOneTrust=(&quot;boolean&quot;==typeof e.geoUsedByOneTrust?e:B).geoUsedByOneTrust,!0===Y()&amp;&amp;!0===v.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_cc=[A-Za-z]{2}/)?N(&quot;debug&quot;,&quot;Set debug CC to: &quot;,D=y.location.search.match(/[?&amp;]wmuc_cc=([A-Za-z]{2})/)[1].toUpperCase()):D=v.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=q(e.ccCookie||&quot;countryCode&quot;))&amp;&amp;2===i.length?i.toUpperCase():(N(&quot;error&quot;,&quot;User-Consent unable to determine country, missing or invalid cookies!&quot;),&quot;US&quot;),v.debug&amp;&amp;-1!==y.location.search.search(/[?&amp;]wmuc_sc=[A-Za-z]{2}/)?N(&quot;debug&quot;,&quot;Set debug SC to: &quot;,O=y.location.search.match(/[?&amp;]wmuc_sc=([A-Za-z]{2})/)[1].toUpperCase()):v.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?O=y.ExternalConsentGeo.stateCode.toUpperCase():&quot;string&quot;==typeof e.stateCode&amp;&amp;2===e.stateCode.length?O=e.stateCode.toUpperCase():(i=q(e.scCookie||&quot;stateCode&quot;))&amp;&amp;2===i.length?O=i.toUpperCase():v.debug&amp;&amp;N(&quot;debug&quot;,&quot;User-Consent unable to determine state, leaving unset.&quot;),!0===Y()&amp;&amp;!0===v.geoUsedByOneTrust&amp;&amp;!1===w&amp;&amp;(y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:D,stateCode:O},i=function(e){!1===w?(w=!0,y.OneTrust=y.OneTrust||{},y.OneTrust.geolocationResponse={countryCode:D,stateCode:O},y.OneTrustStub&amp;&amp;&quot;function&quot;==typeof y.OneTrustStub.setGeoLocation&amp;&amp;y.OneTrustStub.setGeoLocation(D,O),v.debug&amp;&amp;N(&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)),v.categories=e.categories||B.categories,v.regions=e.regions||B.regions,v.consentChangeAction=e.consentChangeAction||B.consentChangeAction,v.consentChangeActionDelay=e.consentChangeActionDelay||B.consentChangeActionDelay,v.controlCookie=e.controlCookie||B.controlCookie,v.brand=e.brand||B.brand||&quot;&quot;,v.psmAppId=e.psmAppId||B.psmAppId||&quot;&quot;,v.psmEnv=e.psmEnv||B.psmEnv||&quot;prod&quot;,v.languageFromBrowser=(&quot;boolean&quot;==typeof e.languageFromBrowser?e:B).languageFromBrowser,v.regionChangeAction=e.regionChangeAction||B.regionChangeAction,v.reloadOnConsentChange=(&quot;boolean&quot;==typeof e.reloadOnConsentChange?e:B).reloadOnConsentChange,v.reloadOnConsentReduction=(&quot;boolean&quot;==typeof e.reloadOnConsentReduction?e:B).reloadOnConsentReduction,n=Object.keys(v.categories),f=[],o=0;o&lt;n.length;o++)f.push(v.categories[n[o]]);for(o=0;o&lt;v.regions.length;o++)if(!0===Y()&amp;&amp;function(e){for(var n=0;n&lt;e.length;n++)if(D===e[n].toUpperCase()||&quot;*&quot;===e[n])return 1}(v.regions[o].geoMatch)||!0===P&amp;&amp;v.regions[o].id===e.regId){g=v.regions[o];break}if(!g){if(P)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(v.regId=g.id,v.compatTransition=(e.enableTransitionCheck||B.enableTransitionCheck)&amp;&amp;g.compatTransition?g.compatTransition:null,v.compatCategories=g.compatCategories||e.compatCategories||B.compatCategories||{},v.compatCodes=g.compatCodes||e.compatCodes||B.compatCodes||{},v.consentExpireIn=g.consentExpireIn||e.consentExpireIn||B.consentExpireIn||1,v.consentLinkAction=g.consentLinkAction||e.consentLinkAction||null,v.consentLinkTitle=g.consentLinkTitle||e.consentLinkTitle||B.consentLinkTitle,v.confirmCookie=g.confirmCookie||e.confirmCookie||B.confirmCookie,v.consentCookie=g.consentCookie||e.consentCookie||B.consentCookie,v.addtlConsentCookie=g.addtlConsentCookie||e.addtlConsentCookie||B.addtlConsentCookie,v.consentDefaults=g.consentDefaults||e.consentDefaults||B.consentDefaults,v.consentGpcDefaults=g.consentGpcDefaults||e.consentGpcDefaults||B.consentGpcDefaults||null,v.consentImpliedDefaults=g.consentImpliedDefaults||B.consentImpliedDefaults||v.consentDefaults,v.domId=g.domId||e.domId,v.gdprIabCookie=g.gdprIabCookie||e.gdprIabCookie||B.gdprIabCookie,v.gdprIabMaxPurposes=g.gdprIabMaxPurposes||e.gdprIabMaxPurposes||B.gdprIabMaxPurposes,v.gdprIabMaxSpecialFeats=g.gdprIabMaxSpecialFeats||e.gdprIabMaxSpecialFeats||B.gdprIabMaxSpecialFeats,v.gdprIabPolicy=g.gdprIabPolicy||e.gdprIabPolicy||B.gdprIabPolicy,v.privacyCenterLinkAction=g.privacyCenterLinkAction||e.privacyCenterLinkAction||null,v.privacyCenterLinkTitle=g.privacyCenterLinkTitle||e.privacyCenterLinkTitle||B.privacyCenterLinkTitle,v.src=g.src||e.src,v.useIAB=(&quot;boolean&quot;==typeof e.useIAB?e:B).useIAB,v.uspApiExplicitNotice=e.uspApiExplicitNotice||B.uspApiExplicitNotice,v.uspApiIsLspa=e.uspApiIsLspa||B.uspApiIsLspa,v.uspApiCookieName=e.uspApiCookieName||B.uspApiCookieName,v.gdprApplies=(&quot;boolean&quot;==typeof g.gdprApplies?g:&quot;boolean&quot;==typeof e.gdprApplies?e:B).gdprApplies,x=e.gdprIabIsGlobal||B.gdprIabIsGlobal||!1,(!0===e.setPageClass||&quot;boolean&quot;!=typeof e.setPageClass&amp;&amp;!0===B.setPageClass)&amp;&amp;C.documentElement&amp;&amp;(C.documentElement.className=(C.documentElement.className&amp;&amp;&quot; &quot;!==C.documentElement.className?C.documentElement.className+&quot; userconsent-cntry-&quot;:&quot;userconsent-cntry-&quot;)+D.toLowerCase()+&quot; userconsent-reg-&quot;+v.regId.toLowerCase()),v.debug&amp;&amp;(N(&quot;debug&quot;,&quot;GeoIP Country Code: &quot;+D+&quot;, using consent region: &quot;+v.regId),N(&quot;debug&quot;,&quot;IAB &quot;+(v.useIAB?&quot;enabled&quot;:&quot;disabled&quot;))),!0===Y()){if(v.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;!v.useExternalConsent){try{y.WM.CDP.initPsm(v.psmAppId,v.brand,v.psmEnv,v.cookieDomain,D),U=y.WM.CDP.isPrivacyEnabled(),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM found and initialized.  Privacy is &quot;+(U?&quot;enabled.&quot;:&quot;disabled.&quot;))}catch(e){U=!1,N(&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:W=u,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM privacy enabled &quot;+(U?&quot;so using.&quot;:&quot;but not working so ignoring it.&quot;)))}else v.debug&amp;&amp;N(&quot;debug&quot;,&quot;PSM not found.&quot;);if(T=function(){var n,e,t,o,r={consentInteractions:b,consentTime:null,consentVersion:&quot;&quot;,countryCode:&quot;&quot;,region:&quot;&quot;,stateCode:&quot;&quot;,userConsentVersion:&quot;&quot;},s=q(v.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.consentInteractions<b>E)?(E=T.consentTime,v.debug&amp;&amp;N("debug",'Consent time read from "'+v.controlCookie+'": ',E)):null!==E&amp;&amp;v.debug&amp;&amp;N("debug",'Consent time read from "'+v.confirmCookie+'": ',E);if(null!==E?(I=!0,h=H(),!0===I?(l.async=!0,null!==T.consentTime&amp;&amp;T.consentTime&lt;E&amp;&amp;(T.region=&quot;&quot;),v.debug&amp;&amp;(N(&quot;debug&quot;,'Consent state read from &quot;'+(v.useExternalConsent?&quot;external consent&quot;:v.consentCookie)+'&quot; ('+S+&quot;): &quot;,h),G&amp;&amp;N(&quot;debug&quot;,&quot;Consent state using compatibility config.&quot;))):(E=null,T.region=&quot;&quot;,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state expired or removed, reset from defaults: &quot;,h))):(h=j(v.consentDefaults),!0===v.enableGPC&amp;&amp;v.consentGpcDefaults&amp;&amp;navigator.globalPrivacyControl?(h=J(h,v.consentGpcDefaults),R=!0,v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state from defaults (GPC set): &quot;,h)):v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Consent state from defaults: &quot;,h)),v.debug)try{m.push({ts:new Date,act:&quot;SET&quot;,desc:JSON.stringify(h),res:null!==E,note:v.regId})}catch(e){N(&quot;error&quot;,&quot;Failed to track setting initial consent: &quot;,e)}}if(y.WM.UserConsent_initted)N(&quot;error&quot;,&quot;ERROR:  Second instance of UserConsent initialized!&quot;);else{if(y.WM.UserConsent_initted=!0,v.useIAB&amp;&amp;(d=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){N(&quot;error&quot;,&quot;Failed to post reply: &quot;,e)}},s.parameter))},U||(null===(_=Q(&quot;__uspapiLocator&quot;))?($(&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=d.bind(y,&quot;__uspapi&quot;),X(y.__uspapi.msgHandler),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB for CCPA ready.&quot;)):v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB for CCPA ready (via frame).&quot;)),(x||v.gdprApplies)&amp;&amp;(c=G?&quot;1.1&quot;:&quot;2.0&quot;,null===(M=Q((a=G?&quot;__cmp&quot;:&quot;__tcfapi&quot;)+&quot;Locator&quot;))&amp;&amp;&quot;function&quot;!=typeof y[a]?($(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:v.gdprApplies,gdprAppliesGlobally:x,cmpLoaded:!1,cmpStatus:&quot;stub&quot;,displayStatus:v.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]?v.gdprApplies=e[3]:y[a].a.push([].slice.apply(e))),y[a].a},y[a].msgHandler=d.bind(y,a),X(y[a].msgHandler),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready.&quot;),y[a](&quot;getTCData&quot;,0,y.OptanonWrapper)):M&amp;&amp;v.debug&amp;&amp;N(&quot;debug&quot;,&quot;IAB (v&quot;+c+&quot;) for GDPR ready (via frame).&quot;))),Z(),!0===Y()){if(v.useExternalConsent?ee():T.region&amp;&amp;T.region!==v.regId&amp;&amp;(u=T.region,d=v.regId,v.debug&amp;&amp;N(&quot;debug&quot;,'User-Consent detected region change from &quot;'+u+'&quot; to &quot;'+d+'&quot;.'),&quot;function&quot;==typeof v.regionChangeAction&amp;&amp;v.regionChangeAction(u,d,v.consentLinkAction)),null===s&amp;&amp;$(&quot;_usrConWM&quot;))try{y.sessionStorage.setItem(&quot;_ucWMConf&quot;,JSON.stringify({cookieDomain:v.cookieDomain,cookieSameSite:v.cookieSameSite,cookieSecure:v.cookieSecure,countryCode:D,domId:v.domId,enableDebug:v.debug,langFromBrowser:v.languageFromBrowser,parentReload:v.reloadOnConsentChange,regId:v.regId,src:v.src,stateCode:O})),y.sessionStorage.setItem(&quot;_ucWMCons&quot;,JSON.stringify({consentState:h,consentTime:E,consentVersion:S,iabIsGlobal:x}))}catch(e){N(&quot;error&quot;,&quot;Failed to set UserConsent frame data!&quot;)}!(l.charset=&quot;utf-8&quot;)===v.languageFromBrowser&amp;&amp;(l.dataset.documentLanguage=&quot;true&quot;),l.dataset.domainScript=v.domId,l.src=v.src,p.appendChild(l)}v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Dispatching UserConsentReady event.&quot;),C.dispatchEvent(new CustomEvent(&quot;userConsentReady&quot;,{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:new Date,consentConfirmed:I}}))}}}return!0===y.WM.UserConsent_loaded?N(&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,v.geoUsedByOneTrust&amp;&amp;y.Optanon&amp;&amp;&quot;function&quot;==typeof y.Optanon.getGeolocationData&amp;&amp;(e=y.Optanon.getGeolocationData())&amp;&amp;e.country!==D&amp;&amp;&quot;function&quot;==typeof y.Optanon.setGeoLocation&amp;&amp;(y.Optanon.setGeoLocation(D,O),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Reset OneTrust geo-location to match site.&quot;)),v.debug&amp;&amp;N(&quot;debug&quot;,&quot;Dispatching OptanonLoaded event.&quot;),C.dispatchEvent(new CustomEvent(&quot;optanonLoaded&quot;,{bubbles:!1,cancelable:!1,detail:{region:v.regId,time:new Date,consentConfirmed:I}})),!0===v.useExternalConsent&amp;&amp;!0!==y.Optanon.IsAlertBoxClosed()&amp;&amp;y.Optanon.Close()),null!==h&amp;&amp;0===y.WM.UserConsent_wrapproc&amp;&amp;(y.WM.UserConsent_wrapproc=(new Date).getTime(),setTimeout(a,(&quot;number&quot;==typeof v.consentChangeActionDelay?v:B).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&lt;s.length;r++)o[s[r]]=e[s[r]];return t.appendChild(o),!0}}else N(&quot;error&quot;,&quot;Invalid or missing options to addScript.&quot;);return!1},addScriptElement:function(e,n,t){if(t=t||C.head,e){if(i(n,{cact:&quot;ADD&quot;,name:e.name||e.src||e.id||&quot;unnamed inline&quot;}))return t.appendChild(e),!0}else N(&quot;error&quot;,&quot;Invalid or missing options to addScriptElement.&quot;);return!1},forceReconsent:function(){Y()&amp;&amp;(C.cookie=v.consentCookie+&quot;=; Domain=&quot;+v.cookieDomain+&quot;; Path=/; Expires=Thu, 01 Jan 2000 00:00:01 GMT;&quot;,C.cookie=v.confirmCookie+&quot;=; Domain=&quot;+v.cookieDomain+&quot;; Path=/; Expires=Thu, 01 Jan 2000 00:00:01 GMT;&quot;,ee({ccpaTCS:&quot;&quot;,consentInteractions:b,consentTime:null,consentVersion:S,countryCode:D,region:v.regId,stateCode:O,userConsentVersion:t}),setTimeout(K,100))},getCmpString:function(e,n){var t,o,r;if(&quot;function&quot;==typeof e)if(n=n||this.getRegion(),!1===v.useIAB&amp;&amp;(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString called with IAB disabled&quot;),e(n,0,&quot;&quot;,&quot;&quot;,new Error(&quot;IAB disabled&quot;))),v.gdprApplies||x&amp;&amp;&quot;ccpa&quot;!==n){if(!1===G){if(&quot;string&quot;==typeof L&amp;&amp;0!==L.length)return v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString returning GDPR v2 CMP string&quot;),void e(n,2,L,k,null);t=window.__tcfapi,o=&quot;getTCData&quot;,r=2}else t=window.__cmp,o=&quot;getConsentData&quot;,r=1;t(o,r,function(e,n,t,o,r){r?(v.debug&amp;&amp;N(&quot;debug&quot;,&quot;getCmpString returning GDPR v&quot;+t+&quot; CMP string&quot;),e(n,t,1===t?o.consentData:o.tcString,1 {
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/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/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/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/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/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/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/12/03/cnn-underscored/xbox-series-s-vs-ps5-xbox-series-x/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