1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,644862,409051,e=>{"use strict";var t,r,i=/^[a-zA-Z:_][a-zA-Z0-9:_.-]*$/,n={revert:function(){}},s=new Map,a=new Set;function o(e){var t=s.get(e);return t||(t={element:e,attributes:{}},s.set(e,t)),t}function u(e,t,r,i,n){var s=r(e),a={isDirty:!1,originalValue:s,virtualValue:s,mutations:[],el:e,_positionTimeout:null,observer:new MutationObserver(function(){if("position"!==t||!a._positionTimeout){"position"===t&&(a._positionTimeout=setTimeout(function(){a._positionTimeout=null},1e3));var i=r(e);"position"===t&&i.parentNode===a.virtualValue.parentNode&&i.insertBeforeNode===a.virtualValue.insertBeforeNode||i!==a.virtualValue&&(a.originalValue=i,n(a))}}),mutationRunner:n,setValue:i,getCurrentValue:r};return"position"===t&&e.parentNode?a.observer.observe(e.parentNode,{childList:!0,subtree:!0,attributes:!1,characterData:!1}):a.observer.observe(e,"html"===t?{childList:!0,subtree:!0,attributes:!0,characterData:!0}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[t]}),a}function l(e,t){var r=t.getCurrentValue(t.el);t.virtualValue=e,e&&"string"!=typeof e?r&&e.parentNode===r.parentNode&&e.insertBeforeNode===r.insertBeforeNode||(t.isDirty=!0,k()):e!==r&&(t.isDirty=!0,k())}function c(e){var r,i=e.originalValue;e.mutations.forEach(function(e){return i=e.mutate(i)}),l((r=i,t||(t=document.createElement("div")),t.innerHTML=r,t.innerHTML),e)}function h(e){var t=new Set(e.originalValue.split(/\s+/).filter(Boolean));e.mutations.forEach(function(e){return e.mutate(t)}),l(Array.from(t).filter(Boolean).join(" "),e)}function f(e){var t=e.originalValue;e.mutations.forEach(function(e){return t=e.mutate(t)}),l(t,e)}function d(e){var t=e.originalValue;e.mutations.forEach(function(e){t=function(e){var t=e.parentSelector,r=e.insertBeforeSelector,i=document.querySelector(t);if(!i)return null;var n=r?document.querySelector(r):null;return r&&!n?null:{parentNode:i,insertBeforeNode:n}}(e.mutate())||t}),l(t,e)}var p=function(e){return e.innerHTML},m=function(e,t){return e.innerHTML=t};function g(e){var t=o(e);return t.html||(t.html=u(e,"html",p,m,c)),t.html}var _=function(e){return{parentNode:e.parentElement,insertBeforeNode:e.nextElementSibling}},v=function(e,t){(!t.insertBeforeNode||t.parentNode.contains(t.insertBeforeNode))&&t.parentNode.insertBefore(e,t.insertBeforeNode)};function y(e){var t=o(e);return t.position||(t.position=u(e,"position",_,v,d)),t.position}var b=function(e,t){return t?e.className=t:e.removeAttribute("class")},x=function(e){return e.className};function E(e){var t=o(e);return t.classes||(t.classes=u(e,"class",x,b,h)),t.classes}function A(e,t){var r=o(e);return r.attributes[t]||(r.attributes[t]=u(e,t,function(e){var r;return null!=(r=e.getAttribute(t))?r:null},function(e,r){return null!==r?e.setAttribute(t,r):e.removeAttribute(t)},f)),r.attributes[t]}function w(e,t,r){if(r.isDirty){r.isDirty=!1;var i,n,a,o,u,l,c,h,f,d,p=r.virtualValue;!r.mutations.length&&(d=s.get(e))&&("html"===t?(null==(i=d.html)||null==(n=i.observer)||n.disconnect(),delete d.html):"class"===t?(null==(a=d.classes)||null==(o=a.observer)||o.disconnect(),delete d.classes):"position"===t?(null==(u=d.position)||null==(l=u.observer)||l.disconnect(),delete d.position):(null==(c=d.attributes)||null==(h=c[t])||null==(f=h.observer)||f.disconnect(),delete d.attributes[t])),r.setValue(e,p)}}function S(e,t){e.html&&w(t,"html",e.html),e.classes&&w(t,"class",e.classes),e.position&&w(t,"position",e.position),Object.keys(e.attributes).forEach(function(r){w(t,r,e.attributes[r])})}function k(){s.forEach(S)}function F(e){if("position"!==e.kind||1!==e.elements.size){var t=new Set(e.elements);document.querySelectorAll(e.selector).forEach(function(r){if(!t.has(r)){var i;e.elements.add(r),i=null,"html"===e.kind?i=g(r):"class"===e.kind?i=E(r):"attribute"===e.kind?i=A(r,e.attribute):"position"===e.kind&&(i=y(r)),i&&(i.mutations.push(e),i.mutationRunner(i))}})}}function R(){a.forEach(F)}function V(e){return"u"<typeof document?n:(a.add(e),F(e),{revert:function(){e.elements.forEac
1h(function(t){var r=null;if("html"===e.kind?r=g(t):"class"===e.kind?r=E(t):"attribute"===e.kind?r=A(t,e.attribute):"position"===e.kind&&(r=y(t)),r){var i=r.mutations.indexOf(e);-1!==i&&r.mutations.splice(i,1),r.mutationRunner(r)}}),e.elements.clear(),a.delete(e)}})}function C(e,t){return V({kind:"html",elements:new Set,mutate:t,selector:e})}function T(e,t){return V({kind:"class",elements:new Set,mutate:t,selector:e})}function $(e,t,r){return i.test(t)?"class"===t||"className"===t?T(e,function(e){var t=r(Array.from(e).join(" "));e.clear(),t&&t.split(/\s+/g).filter(Boolean).forEach(function(t){return e.add(t)})}):V({kind:"attribute",attribute:t,elements:new Set,mutate:r,selector:e}):n}"u">typeof document&&(r||(r=new MutationObserver(function(){R()})),R(),r.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!1,characterData:!1}));let O=function(e){var t,r,i=e.selector,s=e.action,a=e.value,o=e.attribute,u=e.parentSelector,l=e.insertBeforeSelector;if("html"===o){if("append"===s)return C(i,function(e){return e+(null!=a?a:"")});else if("set"===s)return C(i,function(){return null!=a?a:""})}else if("class"===o){if("append"===s)return T(i,function(e){a&&e.add(a)});else if("remove"===s)return T(i,function(e){a&&e.delete(a)});else if("set"===s)return T(i,function(e){e.clear(),a&&e.add(a)})}else if("position"===o){if("set"===s&&u){return t=i,r=function(){return{insertBeforeSelector:l,parentSelector:u}},V({kind:"position",elements:new Set,mutate:r,selector:t})}}else if("append"===s)return $(i,o,function(e){return null!==e?e+(null!=a?a:""):null!=a?a:""});else if("set"===s)return $(i,o,function(){return null!=a?a:""});else if("remove"===s)return $(i,o,function(){return null});return n};function N(e){let t=0x811c9dc5,r=e.length;for(let i=0;i<r;i++)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return t>>>0}function M(e,t,r){return 2===r?N(N(e+t)+"")%1e4/1e4:1===r?N(t+e)%1e3/1e3:null}function K(e,t){return e>=t[0]&&e<t[1]}function H(e){try{let t=e.replace(/([^\\])\//g,"$1\\/");return new RegExp(t)}catch(e){console.error(e);return}}let I=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function B(e,t,r){if(t=t||"",!(r=r||globalThis.crypto&&globalThis.crypto.subtle))throw Error("No SubtleCrypto implementation found");try{let i=await r.importKey("raw",I(t),{name:"AES-CBC",length:128},!0,["encrypt","decrypt"]),[n,s]=e.split("."),a=await r.decrypt({
1name:"AES-CBC",iv:I(n)},i,I(s));return new TextDecoder().decode(a)}catch(e){throw Error("Failed to decrypt")}}function L(e){"number"==typeof e&&(e+=""),e&&"string"==typeof e||(e="0");let t=e.replace(/(^v|\+.*$)/g,"").split(/[-.]/);return 3===t.length&&t.push("~"),t.map(e=>e.match(/^[0-9]+$/)?e.padStart(5," "):e).join("-")}let U={};function D(e,t){if("$or"in t)return J(e,t.$or);if("$nor"in t)return!J(e,t.$nor);if("$and"in t){var r=e,i=t.$and;for(let e=0;e<i.length;e++)if(!D(r,i[e]))return!1;return!0}if("$not"in t)return!D(e,t.$not);for(let[r,i]of Object.entries(t))if(!function e(t,r){if("string"==typeof t)return r+""===t;if("number"==typeof t)return+r===t;if("boolean"==typeof t)return!!r===t;if(null===t)return null===r;if(Array.isArray(t)||!j(t))return JSON.stringify(r)===JSON.stringify(t);for(let i in t)if(!function(t,r,i){switch(t){case"$veq":return L(r)===L(i);case"$vne":return L(r)!==L(i);case"$vgt":return L(r)>L(i);case"$vgte":return L(r)>=L(i);case"$vlt":return L(r)<L(i);case"$vlte":return L(r)<=L(i);case"$eq":return r===i;case"$ne":return r!==i;case"$lt":return r<i;case"$lte":return r<=i;case"$gt":return r>i;case"$gte":return r>=i;case"$exists":return i?null!=r:null==r;case"$in":if(!Array.isArray(i))return!1;return P(r,i);case"$nin":if(!Array.isArray(i))return!1;return!P(r,i);case"$not":return!e(i,r);case"$size":if(!Array.isArray(r))return!1;return e(i,r.length);case"$elemMatch":if(!Array.isArray(r))return!1;let n=j(i)?t=>e(i,t):e=>D(e,i);for(let e=0;e<r.length;e++)if(r[e]&&n(r[e]))return!0;return!1;case"$all":if(!Array.isArray(r))return!1;for(let t=0;t<i.length;t++){let n=!1;for(let s=0;s<r.length;s++)if(e(i[t],r[s])){n=!0;break}if(!n)return!1}return!0;case"$regex":try{return(!U[i]&&(U[i]=new RegExp(i.replace(/([^\\])\//g,"$1\\/"))),U[i]).test(r)}catch(e){return!1}case"$type":return function(e){if(null===e)return"null";if(Array.isArray(e))return"array";let t=typeof e;return["string","number","boolean","object","undefined"].includes(t)?t:"unknown"}(r)===i;default:return console.error("Unknown operator: "+t),!1}}(i,r,t[i]))return!1;return!0}(i,function(e,t){let r=t.split("."),i=e;for(let e=0;e<r.length;e++)if(!i||"object"!=typeof i||!(r[e]in i))return null;else i=i[r[e]];return i}(e,r)))return!1;return!0}function j(e){let t=Object.keys(e);return t.length>0&&t.filter(e=>"$"===e[0]).length===t.length}function P(e,t){return Array.isArray(e)?e.some(e=>t.includes(e)):t.includes(e)}function J(e,t){if(!t.length)return!0;for(let r=0;r<t.length;r++)if(D(e,t[r]))return!0;return!1}let q={staleTTL:6e4,cacheKey:"gbFeaturesCache",backgroundSync:!0,maxEntries:10,disableIdleStreams:!1,idleStreamInterval:2e4},z={fetch:globalThis.fetch?globalThis.fetch.bind(globalThis):void 0,SubtleCrypto:globalThis.crypto?globalThis.crypto.subtle:void 0,EventSource:globalThis.EventSource},G={fetchFeaturesCall:e=>{let{host:t,clientKey:r,headers:i}=e;return z.fetch("".concat(t,"/api/features/").concat(r),{headers:i})},fetchRemoteEvalCall:e=>{let{host:t,clientKey:r,payload:i,headers:n}=e,s={method:"POST",headers:{"Content-Type":"application/json",...n},body:JSON.stringify(i)};return z.fetch("".concat(t,"/api/eval/").concat(r),s)},eventSourceCall:e=>{let{host:t,clientKey:r,headers:i}=e;return i?new z.EventSource("".concat(t,"/sub/").concat(r),{headers:i}):new z.EventSource("".concat(t,"/sub/").concat(r))},startIdleListener:()=>{let e;if(!("u">typeof window&&"u">typeof document))return;let t=()=>{"visible"===document.visibilityState?(window.clearTimeout(e),Y.forEach(e=>{e&&"idle"===e.state&&em(e)})):"hidden"===document.visibilityState&&(e=window.setTimeout(er,q.idleStreamInterval))};return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)},stopIdleListener:()=>{}};try{globalThis.localStorage&&(z.localStorage=globalThis.localStorage)}catch(e){}let Q=new Map,Z=!1,W=new Map,X=new Map,Y=new Map,ee=new Set;async function et(e,t,r,i,n,s){s||(q.backgroundSync=!1);let a=await en(e,i,t,r);n&&a&&await ec(e,a)}function er(){Y.forEach(e=>{e&&(e.state="idle",ep(e))})}async function ei(){try{if(!z.localStorage)return;await z.localStorage.setItem(q.cacheKey,JSON.stringify(Array.from(W.entries())))}catch(e){}}async function en(e,t,r,i){var n,s;let a=es(e),o=ea(e),u=new Date;await eo();let l=W.get(o);return l&&!i&&(t||l.staleAt>u)?(l.sse&&ee.add(a),l.staleAt<u?eh(e):ef(e),l.data):await (n=eh(e),s=r,new Promise(e=>{let t,r=!1,i=i=>{r||(r=!0,t&&clearTimeout(t),e(i||null))};s&&(t=setTimeout(()=>i(),s)),n.then(e=>i(e)).catch(()=>i())}))}function es(e){let[t,r]=e.getApiInfo();return"".concat(t,"||").concat(r)}function ea(e){let t=es(e);if(!e.isRemoteEval())return t;let r=e.getAttributes(),i=e.getCacheKeyAttributes()||Object.keys(e.getAttributes()),n={};
1i.forEach(e=>{n[e]=r[e]});let s=e.getForcedVariations(),a=e.getUrl();return"".concat(t,"||").concat(JSON.stringify({ca:n,fv:s,url:a}))}async function eo(){if(!Z){Z=!0;try{if(z.localStorage){let e=await z.localStorage.getItem(q.cacheKey);if(e){let t=JSON.parse(e);t&&Array.isArray(t)&&t.forEach(e=>{let[t,r]=e;W.set(t,{...r,staleAt:new Date(r.staleAt)})}),eu()}}}catch(e){}if(!q.disableIdleStreams){let e=G.startIdleListener();e&&(G.stopIdleListener=e)}}}function eu(){let e=Array.from(W.entries()).map(e=>{let[t,r]=e;return{key:t,staleAt:r.staleAt.getTime()}}).sort((e,t)=>e.staleAt-t.staleAt),t=Math.min(Math.max(0,W.size-q.maxEntries),W.size);for(let r=0;r<t;r++)W.delete(e[r].key)}function el(e,t,r){let i=r.dateUpdated||"",n=new Date(Date.now()+q.staleTTL),s=W.get(t);if(s&&i&&s.version===i){s.staleAt=n,ei();return}W.set(t,{data:r,version:i,staleAt:n,sse:ee.has(e)}),eu(),ei();let a=Q.get(e);a&&a.forEach(e=>ec(e,r))}async function ec(e,t){await (t.encryptedExperiments?e.setEncryptedExperiments(t.encryptedExperiments,void 0,z.SubtleCrypto):e.setExperiments(t.experiments||e.getExperiments())),await (t.encryptedFeatures?e.setEncryptedFeatures(t.encryptedFeatures,void 0,z.SubtleCrypto):e.setFeatures(t.features||e.getFeatures()))}async function eh(e){let{apiHost:t,apiRequestHeaders:r}=e.getApiHosts(),i=e.getClientKey(),n=e.isRemoteEval(),s=es(e),a=ea(e),o=X.get(a);return o||(o=(n?G.fetchRemoteEvalCall({host:t,clientKey:i,payload:{attributes:e.getAttributes(),forcedVariations:e.getForcedVariations(),forcedFeatures:Array.from(e.getForcedFeatures().entries()),url:e.getUrl()},headers:r}):G.fetchFeaturesCall({host:t,clientKey:i,headers:r})).then(e=>("enabled"===e.headers.get("x-sse-support")&&ee.add(s),e.json())).then(t=>(el(s,a,t),ef(e),X.delete(a),t)).catch(e=>(X.delete(a),Promise.resolve({}))),X.set(a,o)),await o}function ef(e){let t=es(e),r=ea(e),{streamingHost:i,streamingHostRequestHeaders:n}=e.getApiHosts(),s=e.getClientKey();if(q.backgroundSync&&ee.has(t)&&z.EventSource){if(Y.has(t))return;let e={src:null,host:i,clientKey:s,headers:n,cb:i=>{try{if("features-updated"===i.type){let e=Q.get(t);e&&e.forEach(e=>{eh(e)})}else if("features"===i.type){let e=JSON.parse(i.data);el(t,r,e)}e.errors=0}catch(t){ed(e)}},errors:0,state:"active"};Y.set(t,e),em(e)}}function ed(e){if("idle"!==e.state&&(e.errors++,e.errors>3||e.src&&2===e.src.readyState)){let t=Math.pow(3,e.errors-3)*(1e3+1e3*Math.random());ep(e),setTimeout(()=>{["idle","active"].includes(e.state)||em(e)},Math.min(t,3e5))}}function ep(e){e.src&&(e.src.onopen=null,e.src.onerror=null,e.src.close(),e.src=null,"active"===e.state&&(e.state="disabled"))}function em(e){e.src=G.eventSourceCall({host:e.host,clientKey:e.clientKey,headers:e.headers}),e.state="active",e.src.addEventListener("features",e.cb),e.src.addEventListener("features-updated",e.cb),e.src.onerror=()=>ed(e),e.src.onopen=()=>{e.errors=0}}let eg="u">typeof window&&"u">typeof document,e_=function(){let e;try{e="0.31.0"}catch(t){e=""}return e}();e.s(["GrowthBook",0,class{constructor(e){if(e=e||{},this.version=e_,this._ctx=this.context=e,this._renderer=null,this._trackedExperiments=new Set,this._trackedFeatures={},this.debug=!1,this._subscriptions=new Set,this._rtQueue=[],this._rtTimer=0,this.ready=!1,this._assigned=new Map,this._forcedFeatureValues=new Map,this._attributeOverrides={},this._activeAutoExperiments=new Map,this._triggeredExpKeys=new Set,this._loadFeaturesCalled=!1,e.remoteEval){if(e.decryptionKey)throw Error("Encryption is not available for remoteEval");if(!e.clientKey)throw Error("Missing clientKey");let t=!1;try{t=!!new URL(e.apiHost||"").hostname.match(/growthbook\.io$/i)}catch(e){}if(t)throw Error("Cannot use remoteEval on GrowthBook Cloud")}else if(e.cacheKeyAttributes)throw Error("cacheKeyAttributes are only used for remoteEval");e.features&&(this.ready=!0),eg&&e.enableDevMode&&(window._growthbook=this,document.dispatchEvent(new Event("gbloaded"))),e.experiments&&(this.ready=!0,this._updateAllAutoExperiments()),e.clientKey&&!e.remoteEval&&this._refresh({},!0,!1)}async loadFeatures(e){let t,r;e&&e.autoRefresh&&(this._ctx.subscribeToChanges=!0),this._loadFeaturesCalled=!0,await this._refresh(e,!0,!0),this._canSubscribe()&&(t=es(this),(r=Q.get(t)||new Set).add(this),Q.set(t,r))}async refreshFeatures(e){await this._refresh(e,!1,!0)}
1getApiInfo(){return[this.getApiHosts().apiHost,this.getClientKey()]}getApiHosts(){let e=this._ctx.apiHost||"https://cdn.growthbook.io";return{apiHost:e.replace(/\/*$/,""),streamingHost:(this._ctx.streamingHost||e).replace(/\/*$/,""),apiRequestHeaders:this._ctx.apiHostRequestHeaders,streamingHostRequestHeaders:this._ctx.streamingHostRequestHeaders}}getClientKey(){return this._ctx.clientKey||""}isRemoteEval(){return this._ctx.remoteEval||!1}getCacheKeyAttributes(){return this._ctx.cacheKeyAttributes}async _refresh(e,t,r){if(e=e||{},!this._ctx.clientKey)throw Error("Missing clientKey");await et(this,e.timeout,e.skipCache||this._ctx.enableDevMode,t,r,!1!==this._ctx.backgroundSync)}_render(){this._renderer&&this._renderer()}setFeatures(e){this._ctx.features=e,this.ready=!0,this._render()}async setEncryptedFeatures(e,t,r){let i=await B(e,t||this._ctx.decryptionKey,r);this.setFeatures(JSON.parse(i))}setExperiments(e){this._ctx.experiments=e,this.ready=!0,this._updateAllAutoExperiments()}async setEncryptedExperiments(e,t,r){let i=await B(e,t||this._ctx.decryptionKey,r);this.setExperiments(JSON.parse(i))}setAttributes(e){(this._ctx.attributes=e,this._ctx.remoteEval)?this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}setAttributeOverrides(e){(this._attributeOverrides=e,this._ctx.remoteEval)?this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}setForcedVariations(e){(this._ctx.forcedVariations=e||{},this._ctx.remoteEval)?this._refreshForRemoteEval():(this._render(),this._updateAllAutoExperiments())}setForcedFeatures(e){this._forcedFeatureValues=e,this._render()}setURL(e){(this._ctx.url=e,this._ctx.remoteEval)?this._refreshForRemoteEval().then(()=>this._updateAllAutoExperiments(!0)):this._updateAllAutoExperiments(!0)}getAttributes(){return{...this._ctx.attributes,...this._attributeOverrides}}getForcedVariations(){return this._ctx.forcedVariations||{}}getForcedFeatures(){return this._forcedFeatureValues||new Map}getUrl(){return this._ctx.url||""}getFeatures(){return this._ctx.features||{}}getExperiments(){return this._ctx.experiments||[]}subscribe(e){return this._subscriptions.add(e),()=>{this._subscriptions.delete(e)}}_canSubscribe(){return!1!==this._ctx.backgroundSync&&this._ctx.subscribeToChanges}async _refreshForRemoteEval(){!this._ctx.remoteEval||this._loadFeaturesCalled&&await this._refresh({},!1,!0).catch(()=>{})}getAllResults(){return new Map(this._assigned)}destroy(){var e;this._subscriptions.clear(),this._assigned.clear(),this._trackedExperiments.clear(),this._trackedFeatures={},this._rtQueue=[],this._rtTimer&&clearTimeout(this._rtTimer),e=this,Q.forEach(t=>t.delete(e)),eg&&window._growthbook===this&&delete window._growthbook,this._activeAutoExperiments.forEach(e=>{e.undo()}),this._activeAutoExperiments.clear(),this._triggeredExpKeys.clear()}setRenderer(e){this._renderer=e}forceVariation(e,t){(this._ctx.forcedVariations=this._ctx.forcedVariations||{},this._ctx.forcedVariations[e]=t,this._ctx.remoteEval)?this._refreshForRemoteEval():(this._updateAllAutoExperiments(),this._render())}run(e){let t=this._run(e,null);return this._fireSubscriptions(e,t),t}triggerExperiment(e){if(this._triggeredExpKeys.add(e),!this._ctx.experiments)return null;this._ctx.experiments.filter(t=>t.key===e).forEach(e=>{if(!e.manual)return null;this._runAutoExperiment(e)})}_runAutoExperiment(e,t){let r=this._activeAutoExperiments.get(e);if(e.manual&&!this._triggeredExpKeys.has(e.key)&&!r)return null;let i=this.run(e),n=JSON.stringify(i.value);if(!t&&i.inExperiment&&r&&r.valueHash===n)return i;if(r&&this._undoActiveAutoExperiment(e),i.inExperiment){let t=this._applyDOMChanges(i.value);t&&this._activeAutoExperiments.set(e,{undo:t,valueHash:n})}return i}_undoActiveAutoExperiment(e){let t=this._activeAutoExperiments.get(e);t&&(t.undo(),this._activeAutoExperiments.delete(e))}_updateAllAutoExperiments(e){let t=this._ctx.experiments||[],r=new Set(t);this._activeAutoExperiments.forEach((e,t)=>{r.has(t)||(e.undo(),this._activeAutoExperiments.delete(t))}),t.forEach(t=>{this._runAutoExperiment(t,e)})}_fireSubscriptions(e,t){let r=e.key,i=this._assigned.get(r);i&&i.result.inExperiment===t.inExperiment&&i.result.variationId===t.variationId||(this._assigned.set(r,{experiment:e,result:t}),this._subscriptions.forEach(r=>{try{r(e,t)}catch(e){console.error(e)}}))}_trackFeatureUsage(e,t){if("override"===t.source)return;let r=JSON.stringify(t.value);if(this._trackedFeatures[e]!==r){if(this._trackedFeatures[e]=r,this._ctx.onFeatureUsage)try{this._ctx.onFeatureUsage(e,t)}catch(e){}eg&&window.fetch&&(this._rtQueue.push({key:e,on:t.on}),this._rtTimer||(this._rtTimer=window.setTimeout(()=>{this._rtTimer=0;let e=[...this._rtQueue];this._rtQueue=[],this._ctx.realtimeKey&&window.fetch("https://rt.growthbook.io/?key=".concat(this._ctx.realtimeKey,"&events=").concat(encodeURIComponent(JSON.stringify(e))),{cache:"no-cache",mode:"no-cors"}).catch(()=>{})},this._ctx.realtimeInterval||2e3)))}}_getFeatureResult(e,t,r,i,n,s){let a={value:t,on:!!t,off:!t,source:r,ruleId:i||""};return n&&(a.experiment=n),s&&(a.experimentResult=s),this._trackFeatureUsage(e,a),a}isOn(e){return this.evalFeature(e).on}isOff(e){return this.evalFeature(e).off}getFeatureValue(e,t){let r=this.evalFeature(e).value;return null===r?t:r}feature(e){return this.evalFeature(e)}evalFeature(e){if(this._forcedFeatureValues.has(e))return this._getFeatureResult(e,this._forcedFeatureValues.get(e),"override");if(!this._ctx.features||!this._ctx.features[e])return this._getFeatureResult(e,null,"unknownFeature");let t=this._ctx.features[e];if(t.rules)for(let r of t.rules){if(r.condition&&!this._conditionPasses(r.condition)||r.filters&&this._isFilteredOut(r.filters))continue;if("force"in r){if(!this._isIncludedInRollout(r.seed||e,r.hashAttribute,r.range,r.coverage,r.hashVersion))continue;
1return r.tracks&&r.tracks.forEach(e=>{this._track(e.experiment,e.result)}),this._getFeatureResult(e,r.force,"force",r.id)}if(!r.variations)continue;let t={variations:r.variations,key:r.key||e};"coverage"in r&&(t.coverage=r.coverage),r.weights&&(t.weights=r.weights),r.hashAttribute&&(t.hashAttribute=r.hashAttribute),r.namespace&&(t.namespace=r.namespace),r.meta&&(t.meta=r.meta),r.ranges&&(t.ranges=r.ranges),r.name&&(t.name=r.name),r.phase&&(t.phase=r.phase),r.seed&&(t.seed=r.seed),r.hashVersion&&(t.hashVersion=r.hashVersion),r.filters&&(t.filters=r.filters);let i=this._run(t,e);if(this._fireSubscriptions(t,i),i.inExperiment&&!i.passthrough)return this._getFeatureResult(e,i.value,"experiment",r.id,t,i)}return this._getFeatureResult(e,void 0===t.defaultValue?null:t.defaultValue,"defaultValue")}_isIncludedInRollout(e,t,r,i,n){if(!r&&void 0===i)return!0;let{hashValue:s}=this._getHashAttribute(t);if(!s)return!1;let a=M(e,s,n||1);return null!==a&&(r?K(a,r):void 0===i||a<=i)}_conditionPasses(e){return D(this.getAttributes(),e)}_isFilteredOut(e){return e.some(e=>{let{hashValue:t}=this._getHashAttribute(e.attribute);if(!t)return!0;let r=M(e.seed,t,e.hashVersion||2);return null===r||!e.ranges.some(e=>K(r,e))})}_run(e,t){var r,i,n;let s,a,o,u=e.key,l=e.variations.length;if(l<2||!1===this._ctx.enabled)return this._getResult(e,-1,!1,t);e=this._mergeOverrides(e);let c=function(e,t,r){if(!t)return null;let i=t.split("?")[1];if(!i)return null;let n=i.replace(/#.*/,"").split("&").map(e=>e.split("=",2)).filter(t=>{let[r]=t;return r===e}).map(e=>{let[,t]=e;return parseInt(t)});return n.length>0&&n[0]>=0&&n[0]<r?n[0]:null}(u,this._getContextUrl(),l);if(null!==c)return this._getResult(e,c,!1,t);if(this._ctx.forcedVariations&&u in this._ctx.forcedVariations){let r=this._ctx.forcedVariations[u];return this._getResult(e,r,!1,t)}if("draft"===e.status||!1===e.active)return this._getResult(e,-1,!1,t);let{hashValue:h}=this._getHashAttribute(e.hashAttribute);if(!h)return this._getResult(e,-1,!1,t);if(e.filters){if(this._isFilteredOut(e.filters))return this._getResult(e,-1,!1,t)}else{let i;if(e.namespace&&(null===(i=M("__"+(r=e.namespace)[0],h,1))||!(i>=r[1])||!(i<r[2])))return this._getResult(e,-1,!1,t)}if(e.include&&!function(e){try{return e()}catch(e){return console.error(e),!1}}(e.include)||e.condition&&!this._conditionPasses(e.condition)||e.groups&&!this._hasGroupOverlap(e.groups)||e.url&&!this._urlIsValid(e.url)||e.urlPatterns&&!function(e,t){if(!t.length)return!1;let r=!1,i=!1;for(let n=0;n<t.length;n++){let s=function(e,t,r){try{let i=new URL(e,"https://_");if("regex"===t){let e=H(r);if(!e)return!1;return e.test(i.href)||e.test(i.href.substring(i.origin.length))}if("simple"===t)try{let e=new URL(r.replace(/^([^:/?]*)\./i,"https://$1.").replace(/\*/g,"_____"),"https://_____"),t=[[i.host,e.host,!1],[i.pathname,e.pathname,!0]];return e.hash&&t.push([i.hash,e.hash,!1]),e.searchParams.forEach((e,r)=>{t.push([i.searchParams.get(r)||"",e,!1])}),!t.some(e=>!function(e,t,r){try{let i=t.replace(/[*.+?^${}()|[\]\\]/g,"\\$&").replace(/_____/g,".*");return r&&(i="\\/?"+i.replace(/(^\/|\/$)/g,"")+"\\/?"),RegExp("^"+i+"$","i").test(e)}catch(e){return!1}}(e[0],e[1],e[2]))}catch(e){}return!1}catch(e){return!1}}(e,t[n].type,t[n].pattern);if(!1===t[n].include){if(s)return!1}else r=!0,s&&(i=!0)}return i||!r}(this._getContextUrl(),e.urlPatterns))return this._getResult(e,-1,!1,t);let f=M(e.seed||u,h,e.hashVersion||1);if(null===f)return this._getResult(e,-1,!1,t);let d=function(e,t){for(let r=0;r<t.length;r++)if(K(e,t[r]))return r;return -1}(f,e.ranges||(i=void 0===e.coverage?1:e.coverage,n=e.weights,(i=void 0===i?1:i)<0?i=0:i>1&&(i=1),s=l<=0?[]:Array(l).fill(1/l),(n=n||s).length!==l&&(n=s),((a=n.reduce((e,t)=>t+e,0))<.99||a>1.01)&&(n=s),o=0,n.map(e=>{let t=o;return o+=e,[t,t+i*e]})));if(d<0)return this._getResult(e,-1,!1,t);if("force"in e)return this._getResult(e,void 0===e.force?-1:e.force,!1,t);if(this._ctx.qaMode||"stopped"===e.status)return this._getResult(e,-1,!1,t);let p=this._getResult(e,d,!0,t,f);return this._track(e,p),p}log(e,t){this.debug&&(this._ctx.log?this._ctx.log(e,t):console.log(e,t))}_track(e,t){if(!this._ctx.trackingCallback)return;let r=e.key,i=t.hashAttribute+t.hashValue+r+t.variationId;if(!this._trackedExperiments.has(i)){this._trackedExperiments.add(i);try{this._ctx.trackingCallback(e,t)}catch(e){console.error(e)}}}_mergeOverrides(e){let t=e.key,r=this._ctx.overrides;return r&&r[t]&&"string"==typeof(e=Object.assign({},e,r[t])).url&&(e.url=H(e.url)),e}_getHashAttribute(e){let t=e||"id",r="";return this._attributeOverrides[t]?r=this._attributeOverrides[t]:this._ctx.attributes?r=this._ctx.attributes[t]||"":this._ctx.user&&(r=this._ctx.user[t]||""),{hashAttribute:t,hashValue:r}}_getResult(e,t,r,i,n){let s=!0;(t<0||t>=e.variations.length)&&(t=0,s=!1);let{hashAttribute:a,hashValue:o}=this._getHashAttribute(e.hashAttribute),u=e.meta?e.meta[t]:{},l={key:u.key||""+t,featureId:i,inExperiment:s,hashUsed:r,variationId:t,value:e.variations[t],hashAttribute:a,hashValue:o};return u.name&&(l.name=u.name),void 0!==n&&(l.bucket=n),u.passthrough&&(l.passthrough=u.passthrough),l}_getContextUrl(){return this._ctx.url||(eg?window.location.href:"")}_urlIsValid(e){let t=this._getContextUrl();if(!t)return!1;let r=t.replace(/^https?:\/\//,"").replace(/^[^/]*\//,"/");return!!(e.test(t)||e.test(r))}_hasGroupOverlap(e){let t=this._ctx.groups||{};for(let r=0;r<e.length;
1r++)if(t[e[r]])return!0;return!1}_applyDOMChanges(e){if(!eg)return;let t=[];if(e.css){let r=document.createElement("style");r.innerHTML=e.css,document.head.appendChild(r),t.push(()=>r.remove())}if(e.js){let r=document.createElement("script");r.innerHTML=e.js,document.body.appendChild(r),t.push(()=>r.remove())}return e.domMutations&&e.domMutations.forEach(e=>{t.push(O(e).revert)}),()=>{t.forEach(e=>e())}}}],409051);var ev=e.i(272653);let ey=ev.createContext({});function eb(){let{growthbook:e}=ev.useContext(ey);return e}e.s(["GrowthBookProvider",0,({children:e,growthbook:t})=>{let[r,i]=ev.useState(0);return ev.useEffect(()=>{if(t&&t.setRenderer)return t.setRenderer(()=>{i(e=>e+1)}),()=>{t.setRenderer(()=>{})}},[t]),ev.createElement(ey.Provider,{value:{growthbook:t}},e)},"useFeatureValue",0,function(e,t){let r=eb();return r?r.getFeatureValue(e,t):t},"useGrowthBook",0,eb],644862)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.