Sat. Dec 4th, 2021
Spread the love

The Oculus Quest 2 isn’t just an excellent virtual reality headset — it’s also one of our favorite gaming platforms overall and doubles as a great way to work up a sweat. If you’ve been wondering what the hype is all about, the Quest 2 is currently available for $50 off, and comes with a free $50 gift card.

Amazon and Best Buy are both offering a free $50 gift card with the purchase of an Oculus Quest 2, though Amazon is going the extra mile and offering $50 off at checkout so long as you check off the coupon box on the store page. Amazon shoppers will also need to use the code OCULUS50 at checkout to get the free credit. The deal lasts through November 29, and applies to both the $299 Quest 2 with 128GB of storage as well as the $399 model with 256GB of free space.

That extra $50 can help you augment your Quest 2 with some useful accessories like extra grips for the headset’s Touch Controllers or a carrying case for taking the goggles on the go. Or you can use it to get a head start on your holiday shopping or buy yourself something completely random. We won’t judge.

Our favorite VR headset

The Oculus Quest 2 lets you access tons of immersive games, workout experiences and entertainment apps, and you can get it with a free $50 gift card right now.

Bonus cash aside, the Oculus Quest 2 is simply a great tech purchase for both serious gamers and folks who just want a fun new way to be entertained. This headset is completely wireless and self-contained, so you can use it in pretty much any room and don’t have to set up any pesky sensors or trackers to get started. It has an awesome and diverse game library — you can slash blocks to music in Beat Saber, engage in lightsaber battles in Vader Immortal and experience the scares of Resident Evil 4 in first person, to name just a few highlights. And if you pick up an Oculus Link cable, you can connect the Quest 2 to your PC to play higher-end VR games like Half Life: Alyx and Star Wars: Squadrons.

But the Quest 2 isn’t just a great gateway to virtual reality gaming — it can also help keep you active. Oculus’ headset has a number of excellent fitness apps, such as FitXR and Supernatural, the latter of which I’ve personally been using for close to a year. As someone who typically hates working out, the Quest 2 made me actively enjoy exercising, and even has a built-in app for tracking your burned calories and workout time. And when it’s time to cool down, there are plenty of entertainment apps that will let you have your own personal Netflix theater or experience a roller coaster from the comfort of your couch.

Plus, at a time when the PS5 and Xbox Series X are still very hard to find, the Quest 2 makes for a great alternative if you’re looking to gift someone (or yourself) a gadget that can play a whole lot of great video games. It can also be your gateway to the metaverse, for better or worse. No matter how you plan to use it, we’d recommend this versatile headset to just about anyone — especially at this rare discount.

(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/24/cnn-underscored/oculus-quest-2-black-friday-deal-2021/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/11/24/cnn-underscored/oculus-quest-2-black-friday-deal-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/24/cnn-underscored/oculus-quest-2-black-friday-deal-2021/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/11/24/cnn-underscored/oculus-quest-2-black-friday-deal-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/24/cnn-underscored/oculus-quest-2-black-friday-deal-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/24/cnn-underscored/oculus-quest-2-black-friday-deal-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