PageSourceSearch

https://www.strava.com/cmp.js

js strava.com collected 2026-10-01 08:30:46 UTC 35,930 bytes, 2 lines download raw bytes

1!function(t){function e(){return window.Cookiebot?.doNotTrack||!0===navigator.globalPrivacyControl}function o(t){const e=document.cookie.split("; ");for(let o=0;o<e.length;o++){const[n,...a]=e[o].split("=");if(decodeURIComponent(n)===t)return a.length>0?decodeURIComponent(a.join("=")):""}return null}function n(t,e,o={}){let n=`${encodeURIComponent(t)}=${encodeURIComponent(e)}`;o.expires&&(o.expires instanceof Date?n+=`; expires=${o.expires.toUTCString()}`:"string"==typeof o.expires&&(n+=`; expires=${o.expires}`)),o.path&&(n+=`; path=${o.path}`),o.domain&&(n+=`; domain=${o.domain}`),o.sameSite&&(n+=`; SameSite=${o.sameSite}`),o.secure&&(n+="; Secure"),document.cookie=n}function a(t,e={}){n(t,"",{...e,expires:"Thu, 01 Jan 1970 00:00:00 GMT"})}function r(){const t=Ot.getItem("cmp_debug");return"1"===t||"true"===t}function i(t){try{t?Ot.setItem("cmp_debug","1"):Ot.removeItem("cmp_debug")}catch(t){t.message}}function c(){try{if(!r())return}catch(t){return}t.console&&console.info}function s(){return Array.from(document.querySelectorAll('script[type="text/plain"]')).filter(t=>t.hasAttribute("data-cookieconsent")).map((t,e)=>({index:e,category:t.getAttribute("data-cookieconsent"),sourceOrCode:t.src?t.src:t.innerHTML.substring(0,500)+"..."}))}function p(t,e){return new Promise((o,n)=>{const a=Date.now(),r=()=>{const i=e();i?(Date.now(),o(i)):Date.now()-a>=ht?n(new Error(`${t} - polling timed out`)):setTimeout(r,ct)};"undefined"==typeof process||"test"!==process.env.NODE_ENV?setTimeout(r,ct):r()})}function g(){return p("get_consent_cookie",()=>{if(!window.Cookiebot?.consent)return null;const t=JSON.parse(JSON.stringify(window.Cookiebot.consent)),{statistics:e,marketing:o,preferences:n,...a}=t;return{...a,performance:e,targeting:o,functional:n}})}function d(){p("check_consent_banner_rendered",()=>{const t=document.querySelectorAll("#CybotCookiebotDialog");if(t.length>0)for(const e of t){const t=window.getComputedStyle(e);if("none"!==t.display&&"hidden"!==t.visibility&&"0"!==t.opacity)return tt=!0,Et({action:"screen_enter",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"athlete_needs_to_provide_explicit_consent"}}),l(),!0}return!1}).catch(()=>{})}function l(){tt&&document.body.setAttribute("cookie-consent-banner-rendered","true")}function _(){return window.Cookiebot?.hasResponse}function u(){window.addEventListener("CookiebotOnAccept",function(){x().catch(t=>{Ct(t)})},!1),window.addEventListener("CookiebotOnDecline",function(){x().catch(t=>{Ct(t)})},!1),window.addEventListener("CookiebotOnDialogDisplay",function(){var t=document.getElementById("CybotCookiebotDialogBodyLevelButtonNecessaryInline");t&&document.addEventListener("click",function(e){t.disabled&&(e.target===t||t.contains(e.target)||t.parentNode&&t.parentNode.contains(e.target))&&(e.stopImmediatePropagation(),e.preventDefault())},!0)},!1)}function m(){window.removeEventListener("CookiebotOnAccept",x,!1),window.removeEventListener("CookiebotOnDecline",x,!1)}function y(){m(),window.StravaCookieManagementPlatform=null,V=null}function f(){return["staging.strava.com","localhost"].some(t=>window.location.host.toLowerCase().includes(t))?"":"https://www.strava.com"}function h(t,e,o){return new Promise((n,a)=>{const r=f(),i=e.startsWith("http")?e:r+e;let c=new XMLHttpRequest;c.open(t,i),c.setRequestHeader("X-Requested-With","XMLHttpRequest"),c.setRequestHeader("Accept","application/json"),c.setRequestHeader("X-CSRF-Token",mt),c.setRequestHeader("Content-Type","application/json; charset=UTF-8"),c.withCredentials=!0,c.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE)if(this.status,this.status>=200&&this.status<300)n(this.responseText?JSON.parse(this.responseText):void 0);else if(0===this.status||401===this.status||403===this.status||429===this.status||503===this.status||597===this.status)n(void 0);else{const o=new Error("Cookie Management Platform (CMP) XHR request failed");St({"stravaCmp.xhr.method":t,"stravaCmp.xhr.url":e,"stravaCmp.xhr.status":this.status,"stravaCmp.xhr.hasError":!0}),a(o)}},c.onerror=function(){const o=new Error("Network error while making XHR request");St({"stravaCmp.xhr.method":t,"stravaCmp.xhr.url":e}),a(o)},JSON.stringify({method:t,url:e}),c.send(JSON.stringify(o))})}async function k(t){return _t?h("PUT","/athlete_settings.json",{settings:t}).catch(t=>{throw t}):Promise.reject(new Error("Cannot update athlete settings when not logged in"))}function w(t){const e=!_();return{performance_cookies:{value:t?.performance?st.optedIn:st.optedOut,used_default:e},targeting_cookies:{value:t?.targeting?st.optedIn:st.optedOut,used_default:e},functional_cookies:{value:t?.functional?st.optedIn:st.optedOut,used_default:e}}}function b(t){return{functional:t?.functional_cookies?.value===st.optedIn,performance:t?.performance_cookies?.value===st.optedIn,targeting:t?.targeting_cookies?.value===st.optedIn}}async function v(){if(!_t)throw new Error("Cannot synchronize consent cookie preferences when not logged in");if(JSON.stringify(ut),JSON.stringify(w(Y)),ut?.data_sharing?.value===st.optedOut&&ut?.targeting_cookies?.value!==st.optedOut&&(await k({targeting_cookies:st.optedOut}
1),Et({action:"auto_sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_targeting_cookies_to_match_data_sharing_opted_out",targeting_cookies_from:ut?.targeting_cookies?.value,targeting_cookies_to:st.optedOut}}),ut?.targeting_cookies&&(ut.targeting_cookies.value=st.optedOut)),!1===ut?.functional_cookies?.used_default||!1===ut?.performance_cookies?.used_default||!1===ut?.targeting_cookies?.used_default){if(!window.Cookiebot?.submitCustomConsent)return;const t=b(ut);if(Y?.functional===t.functional&&Y?.performance===t.performance&&Y?.targeting===t.targeting)return;try{window.Cookiebot?.hide(),nt=!0,await J(t.functional,t.performance,t.targeting),Et({action:"auto_sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_athlete_luggage_settings_to_consent_cookie",functional_from:Y?.functional,functional_to:t.functional,performance_from:Y?.performance,performance_to:t.performance,targeting_from:Y?.targeting,targeting_to:t.targeting}}),Y&&(Y.functional=t.functional,Y.performance=t.performance,Y.targeting=t.targeting)}catch(t){Ct(t),nt=!1}return}}async function C(){if(!_t)throw new Error("Cannot synchronize browser signal preferences when not logged in");let t=!1===ut?.data_sharing?.used_default?ut?.data_sharing?.value:"unset",o=t;e()&&(o=st.optedOut);const n={data_sharing:o};JSON.stringify({data_sharing:t}),JSON.stringify(n),n.data_sharing!==t&&(k({data_sharing:n.data_sharing}
1),Et({action:"auto_sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_gpc_signal_to_athlete_luggage_settings",data_sharing_from:t,data_sharing_to:n.data_sharing}}),ut?.data_sharing&&(ut.data_sharing.value=n.data_sharing))}function S(){const t=o("_strava_cpra");let a=null;e()&&(a=st.optedOut),null!==a&&t!==a&&(n("_strava_cpra",a,dt),Et({action:"auto_sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_gpc_signal_to_cpra_cookie",data_sharing_from:t,data_sharing_to:a}}))}async function E(){const t=o("_strava_cpra");t===st.optedOut&&ut?.data_sharing?.value!==st.optedOut?(await k({data_sharing:t,targeting_cookies:t}),Et({action:"auto_sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_cpra_cookie_to_athlete_luggage_settings",data_sharing_from:ut?.data_sharing?.value,data_sharing_to:t,targeting_cookies_from:ut?.targeting_cookies?.value,targeting_cookies_to:t}}),ut?.data_sharing&&(ut.data_sharing.value=t,ut.data_sharing.used_default=!1),ut?.targeting_cookies&&(ut.targeting_cookies.value=t,ut.targeting_cookies.used_default=!1)):ut?.data_sharing?.value===st.optedOut&&t!==st.optedOut&&(n("_strava_cpra",ut?.data_sharing?.value,dt),Et({action:"auto_
1sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"syncing_athlete_luggage_settings_to_cpra_cookie",data_sharing_from:t,data_sharing_to:ut?.data_sharing?.value}}))}async function x(){let o;try{o=await g()}catch(t){t.message,rt=!0,o=null}if(!pt.includes(o?.method))return Y=o,void(ot=!0);Y&&pt.includes(Y?.method)&&(Z={...Y}),Y=o;const n=["functional","performance","targeting"];let a=!1;for(const o of n){const n=Z?.[o],r=Y?.[o];if(n!==r)if(a=!0,!0===r){const n=`strava:cmp:consent-accepted:${o}`;if("targeting"===o&&e());else{const e=new CustomEvent(n);t.dispatchEvent(e),it.accepted[o]+=1}}else if(!0===n&&!1===r){const e=new CustomEvent(`strava:cmp:consent-revoked:${o}`);t.dispatchEvent(e),it.revoked[o]+=1,L(o)}}if(at&&ot&&(a=!0,at=!1),a&&ot&&!nt){if(_t){const t={performance_cookies:Y?.performance?st.optedIn:st.optedOut,targeting_cookies:Y?.targeting?st.optedIn:st.optedOut,functional_cookies:Y?.functional?st.optedIn:st.optedOut};await k(t).catch(t=>{Ct(t)})}Et({action:"click",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"athlete_triggered_consent_change",performance_cookies_from:Z?.performance,performance_cookies_to:Y?.performance,targeting_cookies_from:Z?.targeting,targeting_cookies_to:Y?.targeting,functional_cookies_from:Z?.functional,functional_cookies_to:Y?.functional,consent_method_from:Z?.method,consent_method_to:Y?.method}})}nt=!1,ot=!0}function O(){return document.cookie.split("; ").map(t=>{const e=t.indexOf("=");return e>=0?t.substring(0,e).trim():t.trim()})}function I(t){const e=["",`.${window.location.hostname}`,`.${window.location.hostname.split(".").slice(-2).join(".")}`],o=["/","",window.location.pathname];e.forEach(e=>{o.forEach(o=>{try{a(t,{path:o,domain:e})}catch(t){Ct(t)}})})}function D(t,e=!1){if(!Array.isArray(t))throw new Error("deleteCookies expects an array");JSON.stringify(t),e||h("POST","/cmp-delete-cookies",{cookies:t}).then(t=>c("\ud83e\uddf9 deleted cookies - "+(t?.deleted?.join(", ")||""))).catch(Ct);const o=O();t.forEach(t=>{let e;const n="string"==typeof t&&t.startsWith("/")&&t.endsWith("/"),a="string"==typeof t&&(t.startsWith("^")||t.endsWith("$"));n||a?e=n?new RegExp(t.slice(1,-1)):new RegExp(t):"string"==typeof t&&t.includes("*")&&(e=new RegExp("^"+t.replace(/\*/g,".*")+"$")),e?o.forEach(t=>{e.test(t)&&I(t)}):"string"==typeof t&&I(t)})}function $(t,e="localStorage"){if(!Array.isArray(t))throw new Error("deleteStorageTrackers expects an array of patterns");const o="sessionStorage"===e?xt:Ot;t.forEach(t=>{const e="string"==typeof t&&t.startsWith("/")&&t.endsWith("/"),n="string"==typeof t&&(t.startsWith("^")||t.endsWith("$"));if(e||n){const n=e?new RegExp(t.slice(1,-1)):new RegExp(t),a=[];for(let t=0;t<o.length;t++){const e=o.key(t);e&&n.test(e)&&a.push(e)}a.forEach(t=>{o.removeItem(t)})}else if("string"==typeof t)if(t.includes("*")){const e=t.replace(/\*/g,".*"),n=new RegExp(`^${e}$`),a=[];for(let t=0;t<o.length;t++){const e=o.key(t);e&&n.test(e)&&a.push(e)}a.forEach(t=>{o.removeItem(t)})}else null!==o.getItem(t)&&o.removeItem(t)})}function T(t){if(!Array.isArray(t))throw new Error("deleteLocalStorageTrackers expects an array of patterns");JSON.stringify(t),$(t,"localStorage")}function A(t){if(!Array.isArray(t))throw new Error("deleteSessionStorageTrackers expects an array of patterns");JSON.stringify(t),$(t,"sessionStorage")}function B(t,e=!1){const o=[],n=[],a=[];"object"==typeof t&&null!==t?yt?.forEach(e=>{const r=e.category;t[r]&&("cookie"===e.type?o.push(e.pattern):"localStorage"===e.type?n.push(e.pattern):"sessionStorage"===e.type?a.push(e.pattern):"browserStorage"===e.type&&(n.push(e.pattern),a.push(e.pattern)))}):"string"==typeof t&&yt?.filter(e=>e.category===t).forEach(t=>{"cookie"===t.type?o.push(t.pattern):"localStorage"===t.type?n.push(t.pattern):"sessionStorage"===t.type?a.push(t.pattern):"browserStorage"===t.type&&(n.push(t.pattern),a.push(t.pattern))}),o.length>0&&D(o,e),n.length>0&&T(n),a.length>0&&A(a),0===o.length&&0===n.length&&a.length}function N(){const t=Y;t&&B({functional:!1===t.functional,performance:!1===t.performance,targeting:!1===t.targeting},!0)}function L(t,e=!1){B(t,e),"targeting"===t&&(P(),M())}function P(){window.branch&&"function"==typeof window.branch.disableTracking&&window.branch.disableTracking(!0)}function M(){window.fbq&&window.fbq("consent","revoke")}function R(){Ct(new Error("test error - strava cookie management platform (CMP)."))}function j(){L("functional"),L("performance"),L("targeting")}function W(){["",`.${window.location.hostname}`,`.${window.location.hostname.split(".").slice(-2).join(".")}`].forEach(t=>{a("CookieConsent",{domain:t,path:"/"})}),a("_strava_cpra",{path:"/"})}
1function z(){try{Cookiebot.renew(),Et({action:"screen_enter",page:"cookie_banner",category:"cookie_banner",element:"manage_preferences_modal",properties:{reason:"athlete_opened_manage_preferences_modal"}})}catch(t){Ct(t)}}async function J(t=!1,e=!1,o=!1){try{Cookiebot.submitCustomConsent(t,e,o),Cookiebot.hide()}catch(t){Ct(t)}}function q(){try{if(!r())return}catch(t){return}O().join(", ");const t=[];for(let e=0;e<Ot.length;e++){const o=Ot.key(e);o&&"cmp_debug"!==o&&t.push(o)}t.join(", ");const e=[];for(let t=0;t<xt.length;t++){const o=xt.key(t);o&&e.push(o)}e.join(", ")}function U(t){function e(){const e=document.getElementById(n);e&&e.parentNode&&document.body.removeChild(e);const o=document.getElementById(a);o&&o.parentNode&&document.body.removeChild(o),t.onDismiss&&t.onDismiss(),t.tracking&&t.tracking.onDismiss&&Et(t.tracking.onDismiss)}function o(){if(document.getElementById(n))return;let o="";(t.buttons||[]).forEach((t,e)=>{o+=`<button class="cmp-modal-btn-${e}" data-cy="${t.dataCy||""}">${t.text}</button>`});const r='<div class="cmp-modal-content"><button class="cmp-modal-close" aria-label="'+(t.closeLabel||"Close")+'">&times;</button><span>'+t.message+'</span><div class="cmp-modal-actions">'+o+"</div></div>",i="background-color: rgba(18,18,20,0.95) !important;border: 1px solid rgba(255, 255, 255, 0.55) !important;border-radius: 8px !important;bottom: 20px !important;left: 20px !important;right: 20px !important;padding: 20px 40px 20px 20px !important;position: fixed !important;z-index: 2147483647 !important;box-shadow: 0 12px 24px -12px rgba(18,18,20,0.12) !important;max-width: 385px !important;-webkit-font-smoothing: antialiased !important;display: block !important;visibility: visible !important;",c="color: #cbcbd6 !important;font-size: 14px !important;font-weight: 500 !important;line-height: 1.5em !important;",s="color: #fff !important;font-weight: 600 !important;text-decoration: none !important;",p="margin-top: 12px !important;display: flex !important;justify-content: space-between !important;gap: 12px !important;",g="background: #fff !important;border: 1px solid #fff !important;border-radius: 4px !important;color: #333 !important;flex-grow: 1 !important;padding: 6px 18px !important;cursor: pointer !important;",d="position: absolute !important;top: 8px !important;right: 8px !important;background: transparent !important;border: none !important;color: #cbcbd6 !important;font-size: 28px !important;line-height: 1 !important;cursor: pointer !important;padding: 0 !important;width: 32px !important;height: 32px !important;display: flex !important;align-items: center !important;justify-content: center !important;opacity: 0.6 !important;transition: opacity 0.2s !important;",l="opacity: 1 !important;",_=document.createElement("div");_.setAttribute("id",n),_.setAttribute("data-cy",t.dataCy||"modal"),_.innerHTML=r,_.setAttribute("style",i);const u=_.getElementsByClassName("cmp-modal-content")[0];u?u.setAttribute("style",c):Ct(new Error("Modal content element not found within the DNT modal."));const m=u?u.getElementsByTagName("a"):[];for(let t=0;t<m.length;t++)m[t].setAttribute("style",s);const y=_.getElementsByClassName("cmp-modal-actions")[0];y?y.setAttribute("style",p):Ct(new Error("Modal actions element not found within the DNT modal.")),(t.buttons||[]).forEach((t,o)=>{const n=_.getElementsByClassName(`cmp-modal-btn-${o}`)[0];n?(n.setAttribute("style",g),n.addEventListener("click",()=>{t.onClick&&t.onClick(),t.keepOpen||e()})):Ct(new Error(`Modal button ${o} not found within the DNT modal.`))});const f=_.getElementsByClassName("cmp-modal-close")[0];if(f&&(f.setAttribute("style",d),f.addEventListener("click",e),f.addEventListener("mouseenter",()=>{f.setAttribute("style",d+l)}),f.addEventListener("mouseleave",()=>{f.setAttribute("style",d)})),document.body){const t=document.createElement("div");t.setAttribute("id",a),t.setAttribute("style","position: fixed !important;top: 0 !important;left: 0 !important;right: 0 !important;bottom: 0 !important;background-color: rgba(0, 0, 0, 0.85) !important;z-index: 2147483646 !important;display: block !important;cursor: pointer !important;"),t.addEventListener("click",e),document.body.appendChild(t),document.body.appendChild(_)}return t.tracking&&t.tracking.onShow&&Et(t.tracking.onShow),_}const n=t.id,a=`${n}Overlay`;return{show:o,dismiss:e}}function H(){et&&(et.dismiss(),et=null)}
1function F(){if("1"===lt.get("cmp_force_dnt_notice"))return!0;const t=window.Cookiebot?.userCountry;return t&&"US-06"===t.trim().toUpperCase()&&e()?"true"!==o("_strava_dnt_modal_dismissed"):(a("_strava_dnt_modal_dismissed",{path:"/",domain:gt}),!1)}function X(t,e,o,n){H(),wt?wt.then(()=>X(t,e,o,n)):(et=U({id:t,dataCy:e,message:ft?.gpc_detect,closeLabel:ft?.close,buttons:[{text:ft?.ok,dataCy:`${e}-ok`,onClick:()=>{Et({action:"click",page:"cookie_banner",category:o,element:`${o}_ok`,properties:{reason:"athlete_acknowledged_gpc_dnt_browser_signal"}})}}],onDismiss:n,tracking:{onShow:{action:"screen_enter",page:"cookie_banner",category:o,element:o,properties:{reason:"gpc_dnt_browser_signal_detected"}}}}),et.show())}function G(){F()&&X("stravaDntModal","dnt-modal","dnt_modal",()=>{n("_strava_dnt_modal_dismissed","true",dt),et=null})}function K(){if(e())return et&&document.getElementById("stravaDntPreferencesBrowserSignalModal")?void et.show():void X("stravaDntPreferencesBrowserSignalModal","dnt-preferences-browser-signal-modal","dnt_preferences_browser_signal_modal",()=>{et=null});if(et&&document.getElementById("stravaDataSharingOptOutModal"))return void et.show();if(H(),wt)return void wt.then(()=>K());const t=o("_strava_cpra")===st.optedOut,a=async t=>{const e=t===st.optedOut;try{if(n("_strava_cpra",t,dt),Et({action:"click",page:"cookie_banner",category:"data_sharing_opt_out_modal",element:e?"data_sharing_opt_out_modal_opt_out":"data_sharing_opt_out_modal_opt_in",properties:{reason:e?"athlete_opted_out_of_data_sharing":"athlete_opted_in_to_data_sharing"}}),_t&&(await k({data_sharing:t}),ut?.data_sharing&&(ut.data_sharing.value=t)),e&&_()&&window.Cookiebot?.submitCustomConsent)try{const t=await g();await J(t?.functional,t?.performance,!1)}catch(t){t.message,rt=!0}}catch(t){Ct(t)}finally{H()}},r={dataCy:t?"data-sharing-opt-in-btn":"data-sharing-opt-out-btn",text:t?ft?.data_sharing_opt_out_button_opt_in:ft?.data_sharing_opt_out_button_opt_out,keepOpen:!0,onClick:()=>a(t?st.optedIn:st.optedOut)};et=U({id:"stravaDataSharingOptOutModal",dataCy:"data-sharing-opt-out-modal",message:`<h3>${ft?.data_sharing_opt_out_title}</h3><p>${ft?.data_sharing_opt_out_body_1}</p><p>${ft?.data_sharing_opt_out_body_2_html}</p>`,closeLabel:ft?.close,buttons:[{text:ft?.data_sharing_opt_out_button_cancel,dataCy:"data-sharing-opt-out-cancel-btn",onClick:()=>{Et({action:"click",page:"cookie_banner",category:"data_sharing_opt_out_modal",element:"data_sharing_opt_out_modal_cancel",properties:{reason:"athlete_cancelled_data_sharing_change"}})}},r],onDismiss:()=>{et=null},tracking:{onShow:{action:"screen_enter",page:"cookie_banner",category:"data_sharing_opt_out_modal",element:"data_sharing_opt_out_modal",properties:{reason:"athlete_opened_data_sharing_opt_out_modal"}}}}),et.show()}async function Q(n){try{if(V._initialized)return;document.querySelector('script[src*="cookiebot"]')||(Ct(new Error("Cookiebot script not found in the DOM. Ensure Cookiebot is properly loaded before initializing StravaCookieManagementPlatform.")),rt=!0),V._initialized=!0,n?.logError&&(Ct=n.logError);const r=Ct;function a(t){return{...t,logged_in:_t,source:"strava_cookie_management",version:bt,domain:window.Cookiebot?.domain||"unknown",consent_user_country:window.Cookiebot?.userCountry||"unknown",consent_method:Y?.method||"unknown",consent_stamp:Y?.stamp||"unknown",consent_dnt:!0===window.Cookiebot?.doNotTrack,global_privacy_control:!0===navigator.globalPrivacyControl,is_dnt_enabled:e(),has_response:_()}}if(n?.setTags&&(St=n.setTags),n?.withScope&&(vt=n.withScope),Ct=(t,e)=>{const o=Dt(),n={...o,...e,tags:{...o.tags,...e?.tags},contexts:{...o.contexts,...e?.contexts}};vt?vt(e=>{e.setTags({"stravaCmp.hasError":!0}),r(t,n)}):(n.tags["stravaCmp.hasError"]=!0,St(n.tags),r(t,n))},Ct.name,Et=t=>{const e={...t,properties:a(t.properties||{})};e.action,h("POST","/cmp-t",{event:e}).then(()=>c(`\ud83d\udcca tracked event: ${e.action}`)).catch(t=>{Ct(t)})},_t&&_()&&(!0===ut?.functional_cookies?.used_default||!0===ut?.performance_cookies?.used_default||!0===ut?.targeting_cookies?.used_default))try{window.Cookiebot.renew(),at=!0,Et({action:"screen_enter",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"banner_reopened_athlete_luggage_defaults_detected",functional_cookies_used_default:ut?.functional_cookies?.used_default,performance_cookies_used_default:ut?.performance_cookies?.used_default,targeting_cookies_used_default:ut?.targeting_cookies?.used_default}})}catch(l){Ct(l)}else try{await x()}catch(m){Ct(m)}u(),Y&&N(),_t&&await v(),_t?await C():await S(),G(),_t&&await E(),o("_strava_cpra")===st.optedOut&&(!1!==Y?.targeting&&(_()&&window.Cookiebot?.submitCustomConsent?(Et({action:"auto_
1sync",page:"cookie_banner",category:"cookie_banner",element:"cookie_banner",properties:{reason:"enforcing_targeting_opted_out_due_to_cpra_cookie_opted_out",targeting_from:Y?.targeting,targeting_to:!1,functional_from:Y?.functional,functional_to:Y?.functional,performance_from:Y?.performance,performance_to:Y?.performance}}),nt=!0,await J(Y?.functional,Y?.performance,!1)):rt=!0),L("targeting",!0)),q();let i=new CustomEvent("strava:cookie-management:ready");t.dispatchEvent(i),i.type,JSON.stringify(Dt(),null,2);const p=Dt();St(p.tags);const g=s();if(JSON.stringify(g,null,2),g.length>0){const y=g.map(t=>(t.sourceOrCode||"").split("?")[0]).filter(t=>t).sort().join("|");Ct(new Error("Blocked scripts detected by Strava Cookie Management Platform"),{fingerprint:["cmp-blocked-scripts",y.substring(0,100)]})}_()||d()}catch(f){Ct(f)}}try{const t=document.createElement("style");t.textContent="#CybotCookiebotDialogPoweredbyCybot { visibility: hidden; }",document.head.appendChild(t)}catch(t){}let V=t.StravaCookieManagementPlatform=t.StravaCookieManagementPlatform||{},Y=null,Z=null,tt=!1,et=null,ot=!1,nt=!1,at=!1,rt=!1,it={accepted:{functional:0,performance:0,targeting:0},revoked:{functional:0,performance:0,targeting:0}};const ct=200,st={optedIn:"opted_in",optedOut:"opted_out"},pt=["explicit","implied"];let gt;gt=/localhost/.test(window.location.hostname)?"localhost":/staging\./.test(window.location.hostname)?".staging.strava.com":".strava.com";const dt={expires:new Date(Date.now()+31536e6),path:"/",domain:gt},lt=new URLSearchParams(window?.location?.search),_t=!1,ut={targeting_cookies:{value:"opted_out",used_default:!0},functional_cookies:{value:"opted_out",used_default:!0},performance_cookies:{value:"opted_out",used_default:!0},data_sharing:{value:"opted_in",used_default:!0}},mt="e-8eIY8p7GokvC8C6m71afOFwOLnAB8_o7QiLxN4RA6R6WKTbzEJQhKlnpvepp7Bj0zaGJPEwfneT-eBygWKbQ",yt=[{pattern:"test_cookie",category:"functional",type:"cookie"},{pattern:"lidc",category:"functional",type:"cookie"},{pattern:"g_state",category:"functional",type:"cookie"},{pattern:"xp_session_identifier",category:"functional",type:"cookie"},{pattern:"maps.createOptions.mapDisplay",category:"functional",type:"browserStorage"},{pattern:"maps.savedParams",category:"functional",type:"browserStorage"},{pattern:"routes-sum-dismissed",category:"functional",type:"browserStorage"},{pattern:"g_state",category:"functional",type:"cookie"},{pattern:"xp_session_identifier",category:"functional",type:"cookie"},{pattern:"^snowplowOutQueue_[\\w-]+_post2$",category:"performance",type:"browserStorage"},{pattern:"^snowplowOutQueue_[\\w-]+_post2\\.expires$",category:"performance",type:"browserStorage"},{pattern:"_cltk",category:"performance",type:"browserStorage"},{pattern:"_clck",category:"performance",type:"cookie"},{pattern:"_clsk",category:"performance",type:"cookie"},{pattern:"_ga_12345",category:"performance",type:"cookie"},{pattern:"^_sp_id\\.[0-9a-f]{4}$",category:"performance",type:"cookie"},{pattern:"^_sp_root_domain_test_\\d*$",category:"performance",type:"cookie"},{pattern:"^_sp_ses\\.[0-9a-f]{4}$",category:"performance",type:"cookie"},{pattern:"ajs_anonymous_id",category:"performance",type:"cookie"},{pattern:"FPID",category:"performance",type:"cookie"},{pattern:"FPLC",category:"performance",type:"cookie"},{pattern:"sp",category:"performance",type:"cookie"},{pattern:"snowplowOutQueue_cf",category:"performance",type:"browserStorage"},{pattern:"_clsk",category:"performance",type:"cookie"},{pattern:"^_sp_id\\.[0-9a-f]{4}$",category:"performance",type:"cookie"},{pattern:"^_sp_ses\\.[0-9a-f]{4}$",category:"performance",type:"cookie"},{pattern:"FPID",category:"performance",type:"cookie"},{pattern:"FPLC",category:"performance",type:"cookie"},{pattern:"sp",category:"performance",type:"cookie"},{pattern:"tt_appInfo",category:"targeting",type:"browserStorage"},{pattern:"tt_pixel_is_enrich_ipv6_triggered_by_enrich_am",category:"targeting",type:"browserStorage"},{pattern:"tt_pixel_session_index",category:"targeting",type:"browserStorage"},{pattern:"tt_sessionId",category:"targeting",type:"browserStorage"},{pattern:"_s",category:"targeting",type:"cookie"},{pattern:"MR",category:"targeting",type:"cookie"},{pattern:"MUID",category:"targeting",type:"cookie"},{pattern:"SRM_B",category:"targeting",type:"cookie"},{pattern:"ANONCHK",category:"targeting",type:"cookie"},{pattern:"MR",category:"targeting",type:"cookie"},{pattern:"SM",category:"targeting",type:"cookie"},{pattern:"dd_anonymous_id",category:"targeting",type:"browserStorage"},{pattern:"MUID",category:"targeting",type:"cookie"},{pattern:"^fbssls_\\d+$",category:"targeting",type:"browserStorage"}
1,{pattern:"lastExternalReferrer",category:"targeting",type:"browserStorage"},{pattern:"lastExternalReferrerTime",category:"targeting",type:"browserStorage"},{pattern:"IDE",category:"targeting",type:"cookie"},{pattern:"__tld__",category:"targeting",type:"cookie"},{pattern:"_fbc",category:"targeting",type:"cookie"},{pattern:"_fbp",category:"targeting",type:"cookie"},{pattern:"_ga",category:"targeting",type:"cookie"},{pattern:"^_ga_[\\dA-Za-z]{8,}$",category:"targeting",type:"cookie"},{pattern:"^_gcl_au$",category:"targeting",type:"cookie"},{pattern:"_gtmeec",category:"targeting",type:"cookie"},{pattern:"_rdt_uuid",category:"targeting",type:"cookie"},{pattern:"_s",category:"targeting",type:"cookie"},{pattern:"_scid",category:"targeting",type:"cookie"},{pattern:"_scid_r",category:"targeting",type:"cookie"},{pattern:"_sctr",category:"targeting",type:"cookie"},{pattern:"_tt_enable_cookie",category:"targeting",type:"cookie"},{pattern:"_ttp",category:"targeting",type:"cookie"},{pattern:"ajs_user_id",category:"targeting",type:"cookie"},{pattern:"dd_anonymous_id",category:"targeting",type:"cookie"},{pattern:"dd_user_id",category:"targeting",type:"cookie"},{pattern:"IDE",category:"targeting",type:"cookie"},{pattern:"sc_at",category:"targeting",type:"cookie"},{pattern:"ttcsid",category:"targeting",type:"cookie"},{pattern:"ttcsid_[\\w]+",category:"targeting",type:"cookie"},{pattern:"ttcsid_%252525255B%252525255Cw%252525255D%252525252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%2525255B%2525255Cw%2525255D%2525252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%25255B%25255Cw%25255D%25252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%255B%255Cw%255D%252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%5B%5Cw%5D%2B",category:"targeting",type:"cookie"},{pattern:"_ttp",category:"targeting",type:"cookie"},{pattern:"branch_session",category:"targeting",type:"browserStorage"},{pattern:"branch_session_first",category:"targeting",type:"browserStorage"},{pattern:"^_gcl_ls$",category:"targeting",type:"browserStorage"},{pattern:"_rdt_cfg",category:"targeting",type:"browserStorage"},{pattern:"_fbc",category:"targeting",type:"cookie"},{pattern:"_fbp",category:"targeting",type:"cookie"},{pattern:"_ga",category:"targeting",type:"cookie"},{pattern:"_gtmeec",category:"targeting",type:"cookie"},{pattern:"_rdt_uuid",category:"targeting",type:"cookie"},{pattern:"_s",category:"targeting",type:"cookie"},{pattern:"_scid",category:"targeting",type:"cookie"},{pattern:"_scid_r",category:"targeting",type:"cookie"},{pattern:"_sctr",category:"targeting",type:"cookie"},{pattern:"_tt_enable_cookie",category:"targeting",type:"cookie"},{pattern:"_ttp",category:"targeting",type:"cookie"},{pattern:"^fbsr_\\d{12,18}$",category:"targeting",type:"cookie"},{pattern:"IDE",category:"targeting",type:"cookie"},{pattern:"sc_at",category:"targeting",type:"cookie"},{pattern:"ttcsid",category:"targeting",type:"cookie"},{pattern:"ttcsid_%252525255B%252525255Cw%252525255D%252525252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%2525255B%2525255Cw%2525255D%2525252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%25255B%25255Cw%25255D%25252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%255B%255Cw%255D%252B",category:"targeting",type:"cookie"},{pattern:"ttcsid_%5B%5Cw%5D%2B",category:"targeting",type:"cookie"}];let ft={ok:"OK",close:"Close",gpc_detect:"We have detected and honored your browser <a href='https://globalprivacycontrol.org/'>Global Privacy Control</a> (GPC) opt-out signal.",data_sharing_opt_out_title:"Options for Sharing Personal Information",data_sharing_opt_out_body_1:"From time to time, Strava uses targeted advertising on third-party platforms to market its services. You can control whether your information is shared with advertisers for this purpose.",data_sharing_opt_out_body_2_html:'For more information on how your personal information is handled, please read our <a href="https://www.strava.com/legal/privacy">Privacy Policy</a>.',data_sharing_opt_out_button_opt_out:"Opt Out",data_sharing_opt_out_button_opt_in:"Opt In",data_sharing_opt_out_button_cancel:"Go Back",data_sharing_opt_out_label_opted_out:"Opted Out"};const ht=1e4,kt="en-US";let wt=null;try{const t=document?.documentElement?.lang||"",e=t&&kt&&t.toLowerCase()===kt.toLowerCase();!t||e||/^en\b/i.test(t)||(wt=fetch(`${f()}/cmp-copy?hl=${encodeURIComponent(t)}`,{credentials:"omit",headers:{Accept:"application/json"}}).then(t=>t.ok?t.json():null).then(t=>{t&&"object"==typeof t&&(ft=t)}).catch(()=>{}).finally(()=>{wt=null}))}catch(t){}const bt="2.51.0";let vt,Ct=(()=>{let e;return e=window?.StravaSentry?.logError?window.StravaSentry.logError:"undefined"!=typeof window&&window.navigator?.userAgent?.includes("jsdom")?function(){}:t.console?.error?t.console.error.bind(t.console):function(){},function(...t){return window?.StravaSentry?.withScope?window.StravaSentry.withScope(t=>{t.setTags({"stravaCmp.hasError":!0})}):St({"stravaCmp.hasError":!0}),e(...t)}})(),St=function(){},Et=function(){};const xt={getItem:t=>{try{return window.sessionStorage.getItem(t)}catch(t){return t.message,null}},setItem:(t,e)=>{try{window.sessionStorage.setItem(t,e)}catch(t){t.message}},removeItem:t=>{try{window.sessionStorage.removeItem(t)}catch(t){t.message}},key:t=>{try{return window.sessionStorage.key(t)}catch(t){return t.message,null}},get length(){try{return window.sessionStorage.length}catch(t){return t.message,0}}},Ot={getItem:t=>{try{return window.localStorage.getItem(t)}catch(t){return t.message,null}},setItem:(t,e)=>{try{window.localStorage.setItem(t,e)}catch(t){t.message}},removeItem:t=>{try{window.localStorage.removeItem(t)}catch(t){t.message}},key:t=>{try{return window.localStorage.key(t)}catch(t){return t.message,null}},get length(){try{return window.localStorage.length}catch(t){return t.message,0}}}
1,It=lt.get("cmp_debug");if(null!==It){const t=String(It).toLowerCase();i("1"===t||"true"===t)}const Dt=()=>{const t=s();return{tags:{"stravaCmp.source":"strava-cookie-management-platform","stravaCmp.version":bt,"stravaCmp.loggedIn":_t,"stravaCmp.hasResponse":_(),"stravaCmp.doNotTrack":window.Cookiebot?.doNotTrack,"stravaCmp.globalPrivacyControl":!0===navigator.globalPrivacyControl,"stravaCmp.isDntEnabled":e(),"stravaCmp.serial":window.Cookiebot?.serial,
2"stravaCmp.consentMethod":Y?.method||"unknown","stravaCmp.userCulture":window.Cookiebot?.userCulture,"stravaCmp.domain":window.Cookiebot?.domain,"stravaCmp.changedPreferences":window.Cookiebot?.changed,"stravaCmp.userCountry":window.Cookiebot?.userCountry||"unknown","stravaCmp.autoBlock":window.Cookiebot?.autoblock,"stravaCmp.pollingWaitTime":ht,"stravaCmp.blockedScriptsCount":t.length,"stravaCmp.hasTrackers":(yt?.length||0)>0,"stravaCmp.bannerIsOpenForRenewal":at,"stravaCmp.cookiebotBlocked":rt,"stravaCmp.metrics.accepted.functional":it.accepted.functional,"stravaCmp.metrics.accepted.performance":it.accepted.performance,"stravaCmp.metrics.accepted.targeting":it.accepted.targeting,"stravaCmp.metrics.revoked.functional":it.revoked.functional,"stravaCmp.metrics.revoked.performance":it.revoked.performance,"stravaCmp.metrics.revoked.targeting":it.revoked.targeting},contexts:{stravaCmp:{"preferences.necessary.current":Y?.necessary,"preferences.functional.current":Y?.functional,"preferences.performance.current":Y?.performance,"preferences.targeting.current":Y?.targeting,"preferences.stamp.current":Y?.stamp,"preferences.necessary.previous":Z?.necessary,"preferences.functional.previous":Z?.functional,"preferences.performance.previous":Z?.performance,"preferences.targeting.previous":Z?.targeting,"preferences.stamp.previous":Z?.stamp,consented:window.Cookiebot?.consented,declined:window.Cookiebot?.declined,gdprApplies:window.Cookiebot?.regulations?.gdprApplies,ccpaApplies:window.Cookiebot?.regulations?.ccpaApplies,lgpdApplies:window.Cookiebot?.regulations?.lgpdApplies,"metrics.accepted.functional":it.accepted.functional,"metrics.accepted.performance":it.accepted.performance,"metrics.accepted.targeting":it.accepted.targeting,"metrics.revoked.functional":it.revoked.functional,"metrics.revoked.performance":it.revoked.performance,"metrics.revoked.targeting":it.revoked.targeting,"blockedScripts.count":t.length,"blockedScripts.scripts":JSON.stringify(t),"trackerCategoryMap.count":yt?.length||0}}}};if("1"===lt.get("cmp_clean")&&j(),"1"===lt.get("cmp_reset")){j(),W(),a("_strava_dnt_modal_dismissed",{path:"/",domain:gt});const t=new URL(window.location.href);t.searchParams.delete("cmp_reset"),window.location.assign(t.toString())}V.init=Q,V.isInitialized=()=>!!V._initialized,V.getConsentCookie=()=>g(),V.destroy=()=>y(),V.showPreferenceCenter=z,V.submitCustomConsent=J,V.getMetrics=()=>({...it}),V.getCookie=o,V.setCookie=n,V.deleteCookie=a,V.getApiPrefix=f,V.enableVerboseLogs=i,V.POLLING_WAIT_TIME=ht,V.POLLING_INTERVAL_TIME=ct,V.trackerCategoryMap=yt,V.shouldShowDntModal=F,V.showDataSharingPreferencesModal=K,V.testError=R,V.deleteNonEssentialCookies=j,V.resetConsentCookie=W,V.synchronizeBrowserSignalDntWithInternalCookie=S,V.synchronizeBrowserSignalDntWithLuggageData=C,V.synchronizeInternalDataSharingCookieWithLuggageData=E,V.deleteCookies=D,V.deleteLocalStorageTrackers=T,V.deleteSessionStorageTrackers=A,V.deleteStorageTrackers=$,V.deleteTrackersByCategory=L,V.performClientSideCleanup=N,V.safeLocalStorage=Ot,V.safeSessionStorage=xt,V.synchronizeConsentCookieWithLuggageData=v}(window);

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.