(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{onTemplateShow:()=>M});var n={};e.r(n),e.d(n,{onTemplateShow:()=>Ie});const o="esi_auth",r="feat__piano_use_vanity_domain";const i=(e,t=null)=>{var n,o;const r=`; ${document.cookie}`.split(`; ${e}=`);return 2===r.length?decodeURIComponent(null!==(n=null===(o=r.pop())||void 0===o?void 0:o.split(";").shift())&&void 0!==n?n:""):t};let a,s;const c=()=>{if("undefined"==typeof window)return"prod"!=={NODE_ENV:"production",npm_config_domain:""}.SERVER;if("undefined"!=typeof window&&void 0===a){var e;const t=new URLSearchParams(null===(e=window)||void 0===e||null===(e=e.location)||void 0===e?void 0:e.search);a=t.has("__DEBUG__")}return a||"true"===i("__DEBUG__")},l=()=>{var e;return void 0===s&&(s=!0===(null===(e=window.JSGlobals)||void 0===e||null===(e=e.featureFlags)||void 0===e?void 0:e.feat__sentry)),s},d=(...e)=>{c()&&console.log(...e)},u=(...e)=>{var t;const n=c(),o=l();n&&console.warn(...e),o&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))},p="_",m="^",w="opt-in",f="/internal-api",y=`${f}/newsletter-component/submit`,g=`${f}/newsletter-component/submit/lite`,v=`${f}/update-user-subscription-auto-renew`,h="/login",b="regSourceMethod",E="regSourceNewsletter";const S=(e,{async:t=!0,defer:n=document.location.search.includes("___FORCE_DEFER___"),parent:o=document.body,attributes:r}={})=>{window.JSGlobals=window.JSGlobals||{};const i=window.JSGlobals.loadedJS=[];return new Promise((a,s)=>{const c=(e instanceof Array?e:[e]).map(e=>i.includes(e)?Promise.resolve():new Promise((a,s)=>{const c=((e,{id:t,async:n,defer:o,ok:r,error:i,attributes:a})=>{const s=document.createElement("script");return s.onload=r,s.onerror=i,t&&"undefined"!==t&&(s.id=t),n&&!o&&s.setAttribute("async",""),o&&s.setAttribute("defer",""),a&&a.forEach(([e,t])=>{s.setAttribute(e,t)}),s.src=e,s})(e,{async:t,defer:n,ok:a,error:s,attributes:r});o.appendChild(c),i.push(e)}));return Promise.all(c).then(a,s)})};const _=()=>{var e,t;return null!==(e=null===(t=window.JSGlobals)||void 0===t?void 0:t.recaptureV3Key)&&void 0!==e?e:null},O=()=>new Promise((e,t)=>{try{var n;null===(n=grecaptcha)||void 0===n||n.ready(e)}catch(e){t(e instanceof Error?e:new Error(String(e)))}});const P=(e,t={})=>{const n=JSON.stringify(t,null,2),o=n.split("\n").reduce((e,t)=>t.length>=e?t.length:e,0),r=e.length,i=Math.max(r,o),a=` ${e.padEnd(i)} `,s=n.split("\n").map(e=>` ${e.padEnd(i)} `),c=s.length>1?`%c${s.slice(0,1)}\n%c${s.slice(1,-1).join("\n")}\n%c${s.slice(-1)}\n`:`%c${s[0]}\n`,l=s.length>1?["font-family:monospace; background: #333; color: #eee; padding-top: 5px;","font-family:monospace; background: #333; color: #eee;","font-family:monospace; background: #333; color: #eee; padding-bottom: 10px; border-radius: 0 0 6px 6px"]:["font-family:monospace; background: #333; color: #eee; padding-top: 5px; padding-bottom: 10px; border-radius: 0 0 6px 6px"];console.log(`%c${a}\n${c}`,"font-family:monospace; background: #333; color: #eee; border-bottom: 1px solid #666; padding: 5px 0; border-radius: 6px 6px 0 0",...l)};let T=function(e){return e.SECTION_PAGE_NEWSLETTER_PROMPT="section-page-newsletter-prompt",e.ANON_SECTION_PAGE_NEWSLETTER_PROMPT="anon-section-page-newsletter-prompt",e.UNKNOWN_EVENT="unknown-event",e}({});const j=async e=>{const{email:t,newsletter:n,offer:o=""}=e;try{if(!n||!t)throw new Error("Missing required fields");const e=await(async e=>{const t=_();if(!t)throw new Error("reCAPTCHA error: Missing key");try{return await S([`https://www.google.com/recaptcha/api.js?render=${t}`]),await O(),await grecaptcha.execute(t,{action:e})}catch(e){if(e instanceof Error)throw new Error(`reCAPTCHA error: ${e.message}`);throw e}})("signup_newsletters");if(!e)throw new Error("Missing token");J(n);const r={[p]:t,[m]:e,[w]:o?"true":"false",[b]:"Section page newsletter prompt",[E]:n,newsletters:n},i=new Blob([JSON.stringify(r)],{type:"application/json"}),a=`${g}?__amp_source_origin=${encodeURIComponent(window.location.origin)}`;navigator.sendBeacon(a,i)?P(`${T.ANON_SECTION_PAGE_NEWSLETTER_PROMPT}:`,r):console.error("Newsletter signup could not be sent")}catch(e){e instanceof Error&&console.error("Newsletter signup error:",e.message),G()}},N=async e=>{const{newsletter:t,offer:n=""}=e;try{if(!t)throw new Error("Missing required fields");J(t);const e={[w]:n?"true":"false",newsletters:t},o=new Blob([JSON.stringify(e)],{type:"application/json"}),r=`${y}?__amp_source_origin=${encodeURIComponent(window.location.origin)}`;navigator.sendBeacon(r,o)?P(`${T.SECTION_PAGE_NEWSLETTER_PROMPT}:`,e):console.error("Newsletter signup could not be sent")}catch(e){e instanceof Error&&(console.error("Newsletter signup error:",e.message),G())}},x=e=>{location.href=e},k="showUpgradeSuccessMessage",A="showNewsletterSuccessMessage",C="showErrorMessage",I="newsletterKey";const R=(e,t={})=>{const n=((e={})=>e instanceof URLSearchParams?e:new URLSearchParams(Object.entries(e).reduce((e,[t,n])=>(e[t]=n.toString(),e),{})))(t);return 0===Array.from(n.keys()).length?`${e}`:`${e}?${n}`},U=(e="/")=>R(e,{[C]:"true"}),$=(e="/",t)=>R(e,{[A]:"true",[I]:t});function D(){x(((e="/")=>R(e,{[k]:"true"}))(window.location.href))}function J(e){x($(window.location.href,e))}function G(){x(U(window.location.href))}function L(e){const t=-1===e.origin.indexOf("tinypass.com"),n=-1===e.origin.indexOf("independent.co.uk");if(t&&n||!e.data)return;const o=function(e){if(e&&!Array.isArray(e)){if("object"==typeof e)return e;if("string"==typeof e)try{return JSON.parse(e)}catch{return}}}(e.data);if(o)switch(o.event){case"completeUpgradePurchase":return void D();case"customEvent":if(!o.params)return;return void function({eventName:e,params:t}){if(e)switch(e){case T.SECTION_PAGE_NEWSLETTER_PROMPT:return void N(t);case T.ANON_SECTION_PAGE_NEWSLETTER_PROMPT:return void j(t);default:;}}(o.params);default:return}}const M=e=>{"OTN6797XUKB0"===e.templateId&&window.ga&&window.ga("send","event","adBlocker",location.pathname)},B=["Registration is a free and easy way to support our truly independent journalism"];const z="ssr-auth-state",H="ANONYMOUS";const q=()=>Math.floor(Date.now()/1e3);function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function W(e){var t=function(e,t){if("object"!=F(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=F(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==F(t)?t:t+""}function V(e,t,n){return(t=W(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let K;function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function Y(e){for(var t=1;t{try{const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(t));return JSON.parse(n)}catch(e){return null}};function Z(){if(void 0===globalThis.window)return null;const e=(()=>{var e;const t=null!==(e=i(o))&&void 0!==e?e:"";return Q(t)})();if(!e)return null;const{email:t,given_name:n,family_name:r,userStatus:a,pUid:s,exp:c,isAdFreeUser:l,isActiveRecurringDonator:d,adFreeExpiryTimestamp:u,recurringDonatorExpiryTimestamp:p,permutiveId:m}=e;return{email:t,givenName:n,familyName:r,userStatus:a,uid:s,exp:c,isAdFreeUser:l,isActiveRecurringDonator:d,adFreeExpiryTimestamp:u,recurringDonatorExpiryTimestamp:p,permutiveId:m}}var ee;function te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}const ne=Math.random().toString(36).slice(2),oe={status:H,loading:!1,__id__:ne},re=function(e){let t=e;const n=new Set;return{get:()=>t,set:e=>{t=e,n.forEach(e=>e(t))},patch:e=>{t=Y(Y({},t),e),n.forEach(e=>e(t))},subscribe:e=>(n.add(e),()=>n.delete(e))}}(null!==(ee="undefined"!=typeof window?function(e=document){if(void 0===e)return null;if(void 0!==K)return K;const t=e.getElementById(z),n=null==t?void 0:t.textContent;let o=null;try{if(!n)throw new Error("No auth snapshot found in DOM");o=JSON.parse(atob(n))}catch(e){d(e)}finally{var r;null===(r=document.getElementById(z))||void 0===r||r.remove()}return K=o,o}(document):void 0)&&void 0!==ee?ee:oe),ie={__id__:ne,get:re.get,subscribe:re.subscribe,actions:{set:re.set,patch:re.patch,login:e=>{re.patch({loading:!0});const t=new URL(h,window.location.origin);e&&t.searchParams.set("returnPath",e),window.location.href=t.toString()},logout:async()=>{re.patch({loading:!0});try{await fetch("/user/logout",{credentials:"include"})}finally{re.set(oe)}},loadProfile:()=>{const e=Z();e?re.patch(function(e){for(var t=1;tnew Promise(n=>{var o;null!==(o=window.JSGlobals)&&void 0!==o&&null!==(o=o.cmp)&&void 0!==o&&o.enabled?window.__tcfapi&&new Promise(e=>{var t;if(null===(t=window.JSGlobals)||void 0===t||null===(t=t.cmp)||void 0===t||!t.enabled)return void e(!0);const n=document.getElementById("sp-script");null!=n&&n.error&&e(!1),window.addEventListener(se,()=>{e(!1)}),window.__tcfapi("addEventListener",2,(t,n)=>{var o;if(n)if(["useractioncomplete","tcloaded"].includes(t.eventStatus))if(window.__tcfapi("removeEventListener",2,()=>{},t.listenerId),t.gdprApplies){if(d("Consent Or Pay: valid GDPR tcData ---\x3e",t),null!==(o=t.publisher)&&void 0!==o&&null!==(o=o.consents)&&void 0!==o&&o[1])return d('Consent Or Pay: tcData.publisher?.consents?.["1"] ---\x3e',t),void e(!0);e(!1)}else e(!0);else d("Consent Or Pay: !['useractioncomplete', 'tcloaded'].includes(tcData.eventStatus) ---\x3e",{tcData:t,eventStatus:t.eventStatus})})}).then(o=>{o?window.__tcfapi("getCustomVendorConsents",2,o=>{var r;const i=!(null===(r=o.grants)||void 0===r||null===(r=r[e])||void 0===r||!r.vendorGrant);d("CMP:getCustomVendorConsents",t,i),n(i)}):n(!1)}):n(!0)});const le=()=>{var e;null===(e=document.querySelector(".notification-prompt"))||void 0===e||null===(e=e.classList)||void 0===e||e.remove("notification-prompt--show")},de=()=>{var e;null===(e=window.braze)||void 0===e||e.openSession(),Notification.requestPermission(),le()};function ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}const pe=()=>{const e=i("esi_puid");var t;e&&(null===(t=window.braze)||void 0===t||t.changeUser(e))},me=async()=>{if(!!window.braze)return pe(),!0;try{var e;if(!await ce("5ed8c49c4b8ce4571c7ad801","braze"))return!1;const{braze:{sdkAPIKey:t="",sdkEndpoint:n=""}={}}=window.JSGlobals;return await S(["https://js.appboycdn.com/web-sdk/4.8/braze.min.js"]),null===(e=window.braze)||void 0===e||e.initialize(t,function(e){for(var t=1;t{const e=document.querySelector(".notification-prompt__accept"),t=document.querySelector(".notification-prompt__deny");null==e||e.addEventListener("click",de),null==t||t.addEventListener("click",()=>le())})(),document.dispatchEvent(new CustomEvent("brazeLoaded")),!0}catch(e){return((...e)=>{var t;const n=c(),o=l();n&&console.error(...e),o&&(null===(t=window.Sentry)||void 0===t||t.captureException(...e))})("Error initializing braze sdk",e),!1}},we=async(e,t)=>{try{var n;if(await me())null===(n=window.braze)||void 0===n||n.logCustomEvent(e,t),(()=>{var e;null===(e=window.braze)||void 0===e||e.requestImmediateDataFlush(e=>{e||u("Braze data flush was unsuccessful")})})()}catch(t){console.error(`Error logging ${e} Braze event:`,t.message)}},fe=(e,t,n)=>{const o=new Date;if(n&&(n.days||n.hours)){const e=n.days?24*n.days*60*60*1e3:60*n.hours*60*1e3;o.setTime(o.getTime()+e)}const r=[];r.push(`${e}=${encodeURIComponent(t)}`),r.push("path=/"),r.push("secure"),n&&r.push(`expires=${o.toUTCString()}`),document.cookie=r.join(";")},ye=()=>{const e="true"===i("feat__force_piano_prod");return"development"===window.JSGlobals.pianoEnvironment&&!e},ge=async()=>{window.location.pathname.includes("/preview")||await(async()=>{const e="production"===window.JSGlobals.pianoEnvironment,t="true"===i(r)?e?"https://cdn-piano.independent.co.uk/api/tinypass.min.js":"https://cdn.independent.co.uk/api/tinypass.min.js":"https://cdn.tinypass.com/api/tinypass.min.js";await S([t])})()},ve=()=>{const e=ie.get();return e&&"string"==typeof e.status?e.status===H?Promise.reject(new Error("User is anonymous")):"number"!=typeof e.exp?Promise.reject(new Error("Invalid token expiry")):e.exp-q()>3600?(d("ensureAuthReady: no refresh needed"),Promise.resolve()):new Promise((e,t)=>{window.addEventListener("authTokenRefreshed",()=>{e()}),window.addEventListener("authTokenRefreshFailed",()=>{t(new Error("Token refresh failed"))}),window.setTimeout(()=>{t(new Error("Token refresh timeout"))},2e3)}):Promise.reject(new Error("Invalid auth state"))},he=async()=>{location.search.includes("CMP=ILC-refresh")||await ge()},be=()=>{const e=window.tp||[];return window.tp=e,e},Ee=(...e)=>{be().push(...e)},Se=e=>{const t=new URLSearchParams;new URL(document.location.href).pathname.startsWith("/donations")&&(t.set("donations",""),t.set("regSourceMethod","Donations")),(async(e,t)=>{if(t){fe("__pianoParams",JSON.stringify(t),{hours:1});const n=new URL(location.origin);n.pathname="/internal-api/subscription/term",n.searchParams.set("__amp_source_origin",location.origin),n.searchParams.set("termId",t.termId);const o=await fetch(n.toString(),{credentials:"same-origin"}),r=await o.json();fe("__pianoTerm",JSON.stringify(r),{hours:1}),e.set("offerId",t.offerId),e.set("termId",t.termId)}location.href=`/register?${e.toString()}`})(t,e)},_e=e=>{switch(e.eventName){case"openLogin":var t;null===(t=document.getElementById("loginButton"))||void 0===t||t.click();break;case"set-return-url":document.cookie=`ref_url=${location.origin}${location.pathname}; path=/;`;break;case"reg-return-url":localStorage.setItem("regReturnUrl",location.href)}};function Oe(e){const[t]=document.getElementsByClassName("tp-modal"),n=(new Date).toUTCString();t&&(t.scrollTop=0),document.cookie=`__pianoTerm=null; expires=${n}; path=/;`,document.cookie=`__pianoParams=null; expires=${n}; path=/;`,fetch(v,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json"}})}function Pe(){}function Te(e){if("checkoutCompleted"!==e.state){const[e]=document.getElementsByClassName("payment-methods");e.classList.remove("hide")}}const je=async({meterName:e,viewsLeft:t})=>{"PremiumArticleMeter"===e&&0===t&&await(async()=>{await we("premium_meter_expired",{})})()};async function Ne(e){await je(e)}function xe(){}function ke(){}function Ae(e){var t,n;const a=i(o),s="true"===i(r),c=null!==(t=null==e||null===(n=e.user)||void 0===n?void 0:n.uid)&&void 0!==t?t:null,l=ye(),d=s?`vx-${l?"sandbox":"piano"}.independent.co.uk`:"tinypass.com";!a||c&&"anon"!==c||document.querySelectorAll(`.tp-modal, iframe[src*=${d}], .tp-container-inner, .tp-backdrop.tp-active`).forEach(e=>e.remove())}function Ce(){}const Ie=e=>{if(window.JSGlobals.MOCK_ENV&&"modal"===e.displayMode){const e=be();if(Array.isArray(e))return;e.template.close()}};(async(e=!1)=>{const a=e?n:t,{onTemplateShow:s}=a;await(async e=>{try{await ve()}catch(e){u("ensureAuthReady",e)}e(i(o)||"")})(e=>{d("Auth: Piano initialization with token:",e);const t="true"===i(r);(()=>{const e="true"===i(r),t=ye(),n=e?window.JSGlobals.piano.pianoApiHost:window.JSGlobals.piano.pianoEndpoint;Ee(["setAid",window.JSGlobals.piano.pianoAppId],["setCxenseSiteId",window.JSGlobals.piano.pianoSiteId],["setEndpoint",n],["setUseTinypassAccounts",!1],["setDebug",!1]),e||Ee(["setSandbox",t])})(),t&&Ee(["setPianoIdUrl",window.JSGlobals.piano.pianoAuth],["setComposerHost",window.JSGlobals.piano.pianoComposer],["setStaticDomain",window.JSGlobals.piano.pianoCdn]),Ee(["setExternalJWT",e]);const n=(e=>[["addHandler","checkoutComplete",Oe],["addHandler","checkoutClose",Te],["addHandler","checkoutCustomEvent",Pe],["addHandler","loginRequired",Se],["addHandler","loginSuccess",ke],["addHandler","meterExpired",Ne],["addHandler","meterActive",xe],["addHandler","experienceExecute",Ae],["addHandler","experienceExecutionFailed",Ce],["addHandler","showTemplate",e],["addHandler","customEvent",_e],["setUseTinypassAccounts",!1],["setUsePianoIdUserProvider",!1],["setUsePianoIdLiteUserProvider",!0]])(s);Ee(...n),window.addEventListener("message",L)}),await he()})()})();