Sat. Dec 4th, 2021
Spread the love


Looking for the best products to gift — and to get — this holiday season? Check out Underscored’s Holiday Guide here.

The holidays are somehow already here, and Amazon’s gift guides are prepped with plenty of options for your holiday shopping needs. No matter who you’re shopping for this gift-giving season, they’re filled with picks for everyone on your list.

We’ve sifted through its electronics list (and we’ve even checked it twice!) to round up our favorites to give this holiday season. From some of our favorite products that we’ve tested to highly rated gadgets that won’t break the bank, our picks are sure to add to the holiday magic during all your gift-giving events.

AMAZON
LapGear Home Office Lap Desk

This lap desk can hold up to a 15.6-inch laptop and features an integrated mousepad. There’s also a convenient stand for your phone to prop it up while you work. The flat surface will allow for proper ventilation for your computer while you sit back and relax.

Amazon
UBeesize 10-Inch Ring Light With Tripod

Perfect for the content creators on your gift list this season, this tripod also comes with a ring light for on-the-go filming. The tripod collapses from 62 inches down to 20 inches for convenient storage and portability while also allowing for versatile camera angles when filming.

Nixplay
Nixplay 10.1-Inch Digital Smart Frame

A digital photo frame is a perfect gift that keeps on giving. You’re able to share photos at any time with loved ones using this smart frame, and the Nixplay app (for Android and iOS) makes it easy to display photos on your frame or someone else’s. Additionally, the frames can be paired with Alexa to shuffle photo playlists using your voice.

HP
HP Sprocket

This tiny printer creates 2.3-inch-by-3.4-inch photos that are fun to share. It connects to your phone or computer via Bluetooth and is rechargeable. It’s a great gift for anyone looking to print photos on the fly or for a student looking to add some personal flair to their dorm decor.

SanDisk 500GB Extreme Portable SSD ($87.99, originally $149.99; amazon.com)

SanDisk
SanDisk 500GB Extreme Portable SSD

Protect and store your files, photos and other data with this high-speed and durable 500GB external drive. It features up to 6-foot drop protection and is IP55 rated against water and dust. It’s pretty darn portable, thanks to a small build, and has a functional carabiner loop built in.

Polaroid
Polaroid Go Mini Instant Camera

We tested out this mini instant camera and had a lot of fun along the way. It’s a simple and fun gagdet that leaves you with cute prints you can hang up right away. We think the analog camera is perfect for holiday get-togethers to capture fun times together.

Apple
Apple Leather Case for iPhone 13 Pro Max

This classic case is perfect for someone who appreciates the fine details. The soft golden brown tone is a neutral color, and MagSafe is built in, so you can get the most out of your new iPhone while keeping it safe from drops and scratches.

Jacob Krol/CNN
Echo Dot (4th Gen)

This softball-sized speaker transforms your home into a smart home after a simple setup. The speaker is fully equipped with Alexa capabilities, giving you full control over other smart home devices in your house. In our testing, we really enjoyed the sound quality, so when you’re playing your favorite holiday tunes they’re still coming through rich and crisp.

AMAZON
Echo Show 5

When Amazon updated its Echo Show 5, we were pretty stoked about it. It’s a small but highly functional smart frame and speaker in one. You have full access to Alexa and her many functions while also being able to use the device for movie and TV show streaming, music listening and other various smart home controls.

Jason Cipriani/CNN
Roku Express 4K+ 2021

This budget-friendly streaming stick provides a stellar viewing experience, making it a perfect gift for the film and TV buffs on your list. The Roku Express 4K+ comes with everything you’ll need to get started, and once you’re set up, you’ll be able to enjoy 4K streaming.

Apple
Apple Leather Wallet With MagSafe

Perfect for on-the-go convenience, this MagSafe wallet attaches directly to the back of your iPhone 12 or iPhone 13 model for card storage you can’t lose (so long as you have your phone, of course).

Mike Andronico/CNN
Jabra Elite 3

We’re big fans of these budget-friendly earbuds since we tested them out back in September. With a long-lasting battery life and comfortable wear, these headphones are great for on-the-go usage. They’re compatible with any Bluetooth-enabled device. And you can choose from four different colorways to find the perfect hue for your gift recipient.

Tile
Tile Essentials 4-Pack

If you or someone you’re shopping for always seems to be losing track of their belongings, this four-pack of Tile item trackers is an excellent purchase. The pack is made up of a Tile Slim, meant to slide into a card holder in your wallet; a Tile Mate, which attaches to a key ring; and two Tile Stickers, which you can affix to devices like remotes, keys or bags.

Jacob Krol/CNN
Apple Watch SE

Apple’s affordable Watch option, the Apple Watch SE combines function and fashion in a wearable we love. Answer calls and messages right at your wrist as well as track your activity and fitness goals. It’s a great introductory wearable that makes a great gift.

Fitbit
Fitbit Versa 3

In our quest for the best running watch, we tested out the Versa 3 and think it’s a perfect midrange wearable. It’s priced below the Apple Watch SE but still features an always-on display, 24/7 heart rate monitor functionality and sleep tracking capabilities. The battery is quoted to last six days, though we found we charged it every four.

Amazon
Amazon Smart Plug

This smart plug works exclusively with Alexa and once paired gives you voice control over plugged-in devices. Think dimming the lights before starting a movie or turning the coffee machine on before you get downstairs. It’s a handy addition that also makes for a great stocking stuffer.

Jacob Krol/CNN
Beats Studio Buds

With a wide soundstage and fast pairing for both Android and Apple devices, Beats Studio Buds are an awesome gift for the music lover in your life. Pair that long battery life with a super-comfortable wear and these earbuds will get you through the day between calls, workouts and general music listening.

Jacob Krol/CNN
Samsung Galaxy Buds Live

Available in four different colors, the Galaxy Buds Live are an excellent pair of earbuds that will last you most of the day on a single charge. The 12mm speakers deliver high-quality sound, so you can jam out all day. They’re ideal for Android users looking for true wireless earbuds.

Beats
Beats Solo 3

Our pick for best on-ear headphones, this pick from Beats pumps out stellar sound throughout a comfortable and long-lasting wear. They feature the Apple W1 chip for fast pairing and connect over Bluetooth. The headphones are available in four different colors to match your style.

Jason Cipriani/CNN
Roku Streambar

For movie, TV and music lovers alike, sound can make or break the viewing experience, which is why we love this soundbar this gifting season. In our testing, we really enjoyed the music listening experience and found the TV and movie sound experience satisfying. It’s certainly an upgrade from your standard TV speakers.

(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/18/cnn-underscored/amazon-electronics-gift-guide-tech/undefined”==typeof value&&(n&&(t=window.localStorage.getItem(e)),n&&null!==t||(o=e,t=”https://www.cnn.com/2021/11/18/cnn-underscored/amazon-electronics-gift-guide-tech/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/18/cnn-underscored/amazon-electronics-gift-guide-tech/undefined”!=typeof document?document.createElement(“a”):{href:””,hostname:””,pathname:””};e.href=”https://www.cnn.com/2021/11/18/cnn-underscored/amazon-electronics-gift-guide-tech/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/18/cnn-underscored/amazon-electronics-gift-guide-tech/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 parse_query_string(e) {
for (var t = e.split(“&”), n = {}, o = 0; o -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 tagging() {
let e = document.querySelectorAll(
“a[href=’/dp/’]:not(.tagged), a[href=’gp/product’]:not(.tagged)”
),
t = os_system(),
n = params().utm_term;
for (const i of e)
if (
(i.classList.add(“tagged”), i.getAttribute(“href”).includes(“tag=”))
) {
if (n && “https://www.cnn.com/2021/11/18/cnn-underscored/amazon-electronics-gift-guide-tech/undefined” !== n) {
var o = i.getAttribute(“href”),
r = o.replace(
String(o).split(“tag=”)[1].split(“-20”)[0] + “-20”,
n
);
i.setAttribute(“href”, r);
}
if (“unknown” == t) i.setAttribute(“target”, “_blank”);
else if (“Android” == t && browser()) {
i.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”;
i.setAttribute(“href”, e);
} else i.setAttribute(“target”, “_self”);
}
}
!(function (e, t, n, o, r, i, a) {
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 = []),
((i = t.createElement(n)).async = !0),
(i.src = “https://connect.facebook.net/en_US/fbevents.js”),
(a = t.getElementsByTagName(n)[0]).parentNode.insertBefore(i, a));
})(window, document, “script”),
fbq(“init”, “404409197807416”),
fbq(“track”, “PageView”),
tagging();
}
});
})();

}())

Leave a Reply