1// Generated at 2026-09-23 11:06:37 2 3(()=>{{var e;function c(t){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}let t=(e=function(){for(var t,n,a=[],r=window,e=r;e;){try{if(e.frames.__tcfapiLocator){t=e;break}}catch(t){}if(e===r.top)break;e=e.parent}t||(function t(){var e,o=r.document,n=!!r.frames.__tcfapiLocator;return n||(o.body?((e=o.createElement("iframe")).style.cssText="display:none",e.name="__tcfapiLocator",o.body.appendChild(e)):setTimeout(t,5)),!n}(),r.__tcfapi=function(){for(var t=arguments.length,e=new Array(t),o=0;o<t;o++)e[o]=arguments[o];if(!e.length)return a;"setGdprApplies"===e[0]?3<e.length&&2===parseInt(e[1],10)&&"boolean"==typeof e[3]&&(n=e[3],"function"==typeof e[2])&&e[2]("set",!0):"ping"===e[0]?"function"==typeof e[2]&&e[2]({gdprApplies:n,cmpLoaded:!1,cmpStatus:"stub"}):a.push(e)},r.addEventListener("message",function(o){var n="string"==typeof o.data,t={};if(n)try{t=JSON.parse(o.data)}catch(t){}else t=o.data;var a="object"===c(t)&&null!==t?t.__tcfapiCall:null;a&&window.__tcfapi(a.command,a.version,function(t,e){t={__tcfapiReturn:{returnValue:t,success:e,callId:a.callId}};o&&o.source&&o.source.postMessage&&o.source.postMessage(n?JSON.stringify(t):t,"*")},a.parameter)},!1))})&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;t(),((e=(e=void 0===window._iub?window._iub={}:window._iub).cmp||(e.cmp={})).VERSION||(e.VERSION={})).stubV2="0.4.0"}})(); 4(()=>{var Q,W,Y,$,z,J,r=Object.defineProperty,s=Object.defineProperties,i=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,p=(e,t,s)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,h=(e,t)=>{for(var s in t=t||{})d.call(t,s)&&p(e,s,t[s]);if(n)for(var s of n(t))u.call(t,s)&&p(e,s,t[s]);return e},q=(e,t)=>s(e,i(t)),o=(e,t,s)=>p(e,"symbol"!=typeof t?t+"":t,s);{class T extends Error{constructor(e){super(e),this.name="DecodingError"}}class O extends Error{constructor(e){super(e),this.name="EncodingError"}}class P extends Error{constructor(e){super(e),this.name="GVLError"}}class R extends Error{constructor(e,t,s=""){super(`invalid value ${t} passed for ${e} `+s),this.name="TCModelError"}}class N{static encode(t){if(!/^[0-1]+$/.test(t))throw new O("Invalid bitField");var e=t.length%this.LCM;t+=e?"0".repeat(this.LCM-e):"";let s="";for(let e=0;e<t.length;e+=this.BASIS)s+=this.DICT[parseInt(t.substr(e,this.BASIS),2)];return s}static decode(t){if(!/^[A-Za-z0-9\-_]+$/.test(t))throw new T("Invalidly encoded Base64URL string");let s="";for(let e=0;e<t.length;e++){var r=this.REVERSE_DICT.get(t[e]).toString(2);s+="0".repeat(this.BASIS-r.length)+r}return s}}o(N,"DICT","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),o(N,"REVERSE_DICT",new Map([["A",0],["B",1],["C",2],["D",3],["E",4],["F",5],["G",6],["H",7],["I",8],["J",9],["K",10],["L",11],["M",12],["N",13],["O",14],["P",15],["Q",16],["R",17],["S",18],["T",19],["U",20],["V",21],["W",22],["X",23],["Y",24],["Z",25],["a",26],["b",27],["c",28],["d",29],["e",30],["f",31],["g",32],["h",33],["i",34],["j",35],["k",36],["l",37],["m",38],["n",39],["o",40],["p",41],["q",42],["r",43],["s",44],["t",45],["u",46],["v",47],["w",48],["x",49],["y",50],["z",51],["0",52],["1",53],["2",54],["3",55],["4",56],["5",57],["6",58],["7",59],["8",60],["9",61],["-",62],["_",63]])),o(N,"BASIS",6),o(N,"LCM",24);var a,K=class _{has(e){return _.langSet.has(e)}parseLanguage(e){var t=(e=e.toUpperCase()).split("-")[0];if(2<=e.length&&2==t.length){if(_.langSet.has(e))return e;if(_.langSet.has(t))return t;var s,r=t+"-"+t;if(_.langSet.has(r))return r;for(s of _.langSet)if(-1!==s.indexOf(e)||-1!==s.indexOf(t))return s}throw new Error("unsupported language "+e)}forEach(e){_.langSet.forEach(e)}get size(){return _.langSet.size}};o(K,"langSet",new Set(["AR","BG","BS","CA","CS","CY","DA","DE","EL","EN","ES","ET","EU","FI","FR","GL","HE","HI","HR","HU","ID","IS","IT","JA","KA","KO","LT","LV","MK","MS","MT","NL","NO","PL","PT-BR","PT-PT","RO","RU","SK","SL","SQ","SR-LATN","SR-CYRL","SV","SW","TH","TL","TR","UK","VI","ZH","ZH-HANT"]));class D{}o(D,"cmpId","cmpId"),o(D,"cmpVersion","cmpVersion"),o(D,"consentLanguage","consentLanguage"),o(D,"consentScreen","consentScreen"),o(D,"created","created"),o(D,"supportOOB","supportOOB"),o(D,"isServiceSpecific","isServiceSpecific"),o(D,"lastUpdated","lastUpdated"),o(D,"numCustomPurposes","numCustomPurposes"),o(D,"policyVersion","policyVersion"),o(D,"publisherCountryCode","publisherCountryCode"),o(D,"publisherCustomConsents","publisherCustomConsents"),o(D,"publisherCustomLegitimateInterests","publisherCustomLegitimateInterests"),o(D,"publisherLegitimateInterests","publisherLegitimateInterests"),o(D,"publisherConsents","publisherConsents"),o(D,"publisherRestrictions","publisherRestrictions"),o(D,"purposeConsents","purposeConsents"),o(D,"purposeLegitimateInterests","purposeLegitimateInterests"),o(D,"purposeOneTreatment","purposeOneTreatment"),o(D,"specialFeatureOptins","specialFeatureOptins"),o(D,"useNonStandardTexts","useNonStandardTexts"),o(D,"vendorConsents","vendorConsents"),o(D,"vendorLegitimateInterests","vendorLegitimateInterests"),o(D,"vendorListVersion","vendorListVersion"),o(D,"vendorsAllowed","vendorsAllowed"),o(D,"vendorsDisclosed","vendorsDisclosed"),o(D,"version","version");class U{clone(){let s=new this.constructor;
4return Object.keys(this).forEach(e=>{var t=this.deepClone(this[e]);void 0!==t&&(s[e]=t)}),s}deepClone(t){let e=typeof t;if("number"===e||"string"===e||"boolean"===e)return t;if(null!==t&&"object"===e){if("function"==typeof t.clone)return t.clone();if(t instanceof Date)return new Date(t.getTime());if(void 0!==t[Symbol.iterator]){let e=[];for(var s of t)e.push(this.deepClone(s));return t instanceof Array?e:new t.constructor(e)}{let e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]=this.deepClone(t[r]));return e}}}}(e=a=a||{})[e.NOT_ALLOWED=0]="NOT_ALLOWED",e[e.REQUIRE_CONSENT=1]="REQUIRE_CONSENT",e[e.REQUIRE_LI=2]="REQUIRE_LI";var c,l,e=class _ extends U{constructor(e,t){super(),o(this,"purposeId_"),o(this,"restrictionType"),void 0!==e&&(this.purposeId=e),void 0!==t&&(this.restrictionType=t)}static unHash(e){var t=e.split(this.hashSeparator),s=new _;if(2!==t.length)throw new R("hash",e);return s.purposeId=parseInt(t[0],10),s.restrictionType=parseInt(t[1],10),s}get hash(){if(this.isValid())return""+this.purposeId+_.hashSeparator+this.restrictionType;throw new Error("cannot hash invalid PurposeRestriction")}get purposeId(){return this.purposeId_}set purposeId(e){this.purposeId_=e}isValid(){return Number.isInteger(this.purposeId)&&0<this.purposeId&&(this.restrictionType===a.NOT_ALLOWED||this.restrictionType===a.REQUIRE_CONSENT||this.restrictionType===a.REQUIRE_LI)}isSameAs(e){return this.purposeId===e.purposeId&&this.restrictionType===e.restrictionType}};o(e,"hashSeparator","-");let d=e;class re extends U{constructor(){super(...arguments),o(this,"bitLength",0),o(this,"map",new Map),o(this,"gvl_")}has(e){return this.map.has(e)}isOkToHave(t,s,r){var e;let i=!0;if(null!=(e=this.gvl)&&e.vendors){let e=this.gvl.vendors[r];if(e)if(t===a.NOT_ALLOWED)i=e.legIntPurposes.includes(s)||e.purposes.includes(s);else if(e.flexiblePurposes.length)switch(t){case a.REQUIRE_CONSENT:i=e.flexiblePurposes.includes(s)&&e.legIntPurposes.includes(s);break;case a.REQUIRE_LI:i=e.flexiblePurposes.includes(s)&&e.purposes.includes(s)}else i=!1;else i=!1}return i}add(e,t){this.isOkToHave(t.restrictionType,t.purposeId,e)&&(t=t.hash,this.has(t)||(this.map.set(t,new Set),this.bitLength=0),this.map.get(t).add(e))}restrictPurposeToLegalBasis(e){var t=Array.from(this.gvl.vendorIds),s=e.hash,r=t[t.length-1],e=[...Array(r).keys()].map(e=>e+1);if(this.has(s))for(let e=1;e<=r;e++)this.map.get(s).add(e);else this.map.set(s,new Set(e)),this.bitLength=0}getVendors(e){let s=[];if(e){e=e.hash;this.has(e)&&(s=Array.from(this.map.get(e)))}else{let t=new Set;this.map.forEach(e=>{e.forEach(e=>{t.add(e)})}),s=Array.from(t)}return s.sort((e,t)=>e-t)}getRestrictionType(e,t){let s;return this.getRestrictions(e).forEach(e=>{e.purposeId===t&&(void 0===s||s>e.restrictionType)&&(s=e.restrictionType)}),s}vendorHasRestriction(e,t){let s=!1;var r=this.getRestrictions(e);for(let e=0;e<r.length&&!s;e++)s=t.isSameAs(r[e]);return s}getMaxVendorId(){let t=0;return this.map.forEach(e=>{t=Math.max(Array.from(e)[e.size-1],t)}),t}getRestrictions(s){let r=[];return this.map.forEach((e,t)=>{s&&!e.has(s)||r.push(d.unHash(t))}),r}getPurposes(){let s=new Set;return this.map.forEach((e,t)=>{s.add(d.unHash(t).purposeId)}),Array.from(s)}remove(e,t){var t=t.hash,s=this.map.get(t);s&&(s.delete(e),0==s.size)&&(this.map.delete(t),this.bitLength=0)}set gvl(e){this.gvl_||(this.gvl_=e,this.map.forEach((t,e)=>{let s=d.unHash(e);Array.from(t).forEach(e=>{this.isOkToHave(s.restrictionType,s.purposeId,e)||t.delete(e)})}))}get gvl(){return this.gvl_}isEmpty(){return 0===this.map.size}get numRestrictions(){return this.map.size}}(e=c=c||{}).CORE="core",e.VENDORS_DISCLOSED="vendorsDisclosed",e.VENDORS_ALLOWED="vendorsAllowed",e.PUBLISHER_TC="publisherTC";class ie{}o(ie,"ID_TO_KEY",[c.CORE,c.VENDORS_DISCLOSED,c.VENDORS_ALLOWED,c.PUBLISHER_TC]),o(ie,"KEY_TO_ID",{[c.CORE]:0,[c.VENDORS_DISCLOSED]:1,[c.VENDORS_ALLOWED]:2,[c.PUBLISHER_TC]:3});class x extends U{constructor(){super(...arguments),o(this,"bitLength",0),o(this,"maxId_",0),o(this,"set_",new Set)}*[Symbol.iterator](){for(let e=1;e<=this.maxId;e++)yield[e,this.has(e)]}values(){return this.set_.values()}get maxId(){return this.maxId_}has(e){return this.set_.has(e)}
4unset(e){Array.isArray(e)?e.forEach(e=>this.unset(e)):"object"==typeof e?this.unset(Object.keys(e).map(e=>Number(e))):(this.set_.delete(Number(e)),this.bitLength=0,e===this.maxId&&(this.maxId_=0,this.set_.forEach(e=>{this.maxId_=Math.max(this.maxId,e)})))}isIntMap(t){return"object"==typeof t&&Object.keys(t).every(e=>Number.isInteger(parseInt(e,10))&&this.isValidNumber(t[e].id)&&void 0!==t[e].name)}isValidNumber(e){return 0<parseInt(e,10)}isSet(e){let t=!1;return t=e instanceof Set?Array.from(e).every(this.isValidNumber):t}set(e){if(Array.isArray(e))e.forEach(e=>this.set(e));else if(this.isSet(e))this.set(Array.from(e));else if(this.isIntMap(e))this.set(Object.keys(e).map(e=>Number(e)));else{if(!this.isValidNumber(e))throw new R("set()",e,"must be positive integer array, positive integer, Set<number>, or IntMap");this.set_.add(e),this.maxId_=Math.max(this.maxId,e),this.bitLength=0}}empty(){this.set_=new Set,this.maxId_=0}forEach(t){for(let e=1;e<=this.maxId;e++)t(this.has(e),e)}get size(){return this.set_.size}setAll(e){this.set(e)}unsetAll(e){this.unset(e)}}e=D.cmpId,w=D.cmpVersion,g=D.consentLanguage,v=D.consentScreen,b=D.created,C=D.isServiceSpecific,I=D.lastUpdated,J=D.policyVersion,z=D.publisherCountryCode,$=D.publisherLegitimateInterests,Y=D.publisherConsents,W=D.purposeConsents,Q=D.purposeLegitimateInterests,L=D.purposeOneTreatment,A=D.specialFeatureOptins,se=D.useNonStandardTexts,V=D.vendorListVersion,_=D.version;class M{}o(M,e,12),o(M,w,12),o(M,g,12),o(M,v,6),o(M,b,36),o(M,C,1),o(M,I,36),o(M,J,6),o(M,z,12),o(M,$,24),o(M,Y,24),o(M,W,24),o(M,Q,24),o(M,L,1),o(M,A,12),o(M,se,1),o(M,V,12),o(M,_,6),o(M,"anyBoolean",1),o(M,"encodingType",1),o(M,"maxId",16),o(M,"numCustomPurposes",6),o(M,"numEntries",12),o(M,"numRestrictions",12),o(M,"purposeId",6),o(M,"restrictionType",2),o(M,"segmentType",3),o(M,"singleOrRange",1),o(M,"vendorId",16);class F{static encode(e){return String(Number(e))}static decode(e){return"1"===e}}class k{static encode(e,t){let s;if("string"==typeof e&&(e=parseInt(e,10)),(s=e.toString(2)).length>t||e<0)throw new O(e+" too large to encode into "+t);return s=s.length<t?"0".repeat(t-s.length)+s:s}static decode(e,t){if(t!==e.length)throw new T("invalid bit length");return parseInt(e,2)}}class ne{static encode(e,t){return k.encode(Math.round(e.getTime()/100),t)}static decode(e,t){if(t!==e.length)throw new T("invalid bit length");var s=new Date;return s.setTime(100*k.decode(e,t)),s}}class G{static encode(t,s){let r="";for(let e=1;e<=s;e++)r+=F.encode(t.has(e));return r}static decode(t,s){if(t.length!==s)throw new T("bitfield encoding length mismatch");var r=new x;for(let e=1;e<=s;e++)F.decode(t[e-1])&&r.set(e);return r.bitLength=t.length,r}}class oe{static encode(e,t){var s=(e=e.toUpperCase()).charCodeAt(0)-65,r=e.charCodeAt(1)-65;if(s<0||25<s||r<0||25<r)throw new O("invalid language code: "+e);if(t%2==1)throw new O(`numBits must be even, ${t} is not valid`);return t/=2,k.encode(s,t)+k.encode(r,t)}static decode(r,e){if(e!==r.length||r.length%2)throw new T("invalid bit length for language");{let e=r.length/2,t=k.decode(r.slice(0,e),e)+65,s=k.decode(r.slice(e),e)+65;r=String.fromCharCode(t)+String.fromCharCode(s)}return r}}class ae{static encode(a){let t=k.encode(a.numRestrictions,M.numRestrictions);if(!a.isEmpty())a.getRestrictions().forEach(e=>{t=(t+=k.encode(e.purposeId,M.purposeId))+k.encode(e.restrictionType,M.restrictionType);var s=a.getVendors(e),r=s.length;let i=0,n=0,o="";for(let e=0;e<r;e++){let t=s[e];if(0===n&&(i++,n=t),e===r-1||s[e+1]>((t,s)=>{for(let e=t+1;e<=s;e++)if(a.gvl.vendorIds.has(e))return e;return t})(t,s[r-1])){let e=!(t===n);o=(o+=F.encode(e))+k.encode(n,M.vendorId),e&&(o+=k.encode(t,M.vendorId)),n=0}}t=(t+=k.encode(i,M.numEntries))+o});return t}static decode(s){let r=0,i=new re,t=k.decode(s.substr(r,M.numRestrictions),M.numRestrictions);r+=M.numRestrictions;for(let e=0;e<t;e++){let e=k.decode(s.substr(r,M.purposeId),M.purposeId);r+=M.purposeId;var n=k.decode(s.substr(r,M.restrictionType),M.restrictionType),o=(r+=M.restrictionType,new d(e,n)),a=k.decode(s.substr(r,M.numEntries),M.numEntries);r+=M.numEntries;for(let e=0;e<a;e++){let e=F.decode(s.substr(r,M.anyBoolean));r+=M.anyBoolean;var c=k.decode(s.substr(r,M.vendorId),M.vendorId);if(r+=M.vendorId,e){let t=k.decode(s.substr(r,M.vendorId),M.vendorId);if(r+=M.vendorId,t<c)throw new T(`Invalid RangeEntry: endVendorId ${t} is less than `+c);for(let e=c;e<=t;e++)i.add(e,o)}else i.add(c,o)}}
4return i.bitLength=r,i}}(e=l=l||{})[e.FIELD=0]="FIELD",e[e.RANGE=1]="RANGE";class H{static encode(s){let r=[],i,n=[],e=k.encode(s.maxId,M.maxId),o="",t=M.maxId+M.encodingType,a=t+s.maxId,c=2*M.vendorId+M.singleOrRange+M.numEntries,d=t+M.numEntries;return s.forEach((e,t)=>{o+=F.encode(e),(i=s.maxId>c&&d<a)&&e&&(s.has(t+1)?0===n.length&&(n.push(t),d=(d+=M.singleOrRange)+M.vendorId):(n.push(t),d+=M.vendorId,r.push(n),n=[]))}),i?e=(e+=String(l.RANGE))+this.buildRangeEncoding(r):e=(e+=String(l.FIELD))+o,e}static decode(r,e){let i,n=0,t=k.decode(r.substr(n,M.maxId),M.maxId);n+=M.maxId;var s=k.decode(r.charAt(n),M.encodingType);if(n+=M.encodingType,s===l.RANGE){if(i=new x,1===e){if("1"===r.substr(n,1))throw new T("Unable to decode default consent=1");n++}let t=k.decode(r.substr(n,M.numEntries),M.numEntries);n+=M.numEntries;for(let e=0;e<t;e++){let e=F.decode(r.charAt(n)),s=(n+=M.singleOrRange,k.decode(r.substr(n,M.vendorId),M.vendorId));if(n+=M.vendorId,e){let t=k.decode(r.substr(n,M.vendorId),M.vendorId);n+=M.vendorId;for(let e=s;e<=t;e++)i.set(e)}else i.set(s)}}else{let e=r.substr(n,t);n+=t,i=G.decode(e,t)}return i.bitLength=n,i}static buildRangeEncoding(e){var t=e.length;let s=k.encode(t,M.numEntries);return e.forEach(e=>{var t=1===e.length;s=(s+=F.encode(!t))+k.encode(e[0],M.vendorId),t||(s+=k.encode(e[1],M.vendorId))}),s}}function X(){return{[D.version]:k,[D.created]:ne,[D.lastUpdated]:ne,[D.cmpId]:k,[D.cmpVersion]:k,[D.consentScreen]:k,[D.consentLanguage]:oe,[D.vendorListVersion]:k,[D.policyVersion]:k,[D.isServiceSpecific]:F,[D.useNonStandardTexts]:F,[D.specialFeatureOptins]:G,[D.purposeConsents]:G,[D.purposeLegitimateInterests]:G,[D.purposeOneTreatment]:F,[D.publisherCountryCode]:oe,[D.vendorConsents]:H,[D.vendorLegitimateInterests]:H,[D.publisherRestrictions]:ae,segmentType:k,[D.vendorsDisclosed]:H,[D.vendorsAllowed]:H,[D.publisherConsents]:G,[D.publisherLegitimateInterests]:G,[D.numCustomPurposes]:k,[D.publisherCustomConsents]:G,[D.publisherCustomLegitimateInterests]:G}}class ce{constructor(e,t){o(this,"1",[c.CORE]),o(this,"2",[c.CORE]),2===e.version&&(e.isServiceSpecific?(this[2].push(c.VENDORS_DISCLOSED),this[2].push(c.PUBLISHER_TC)):((t=!(!t||!t.isForVendors))&&!0!==e[D.supportOOB]||this[2].push(c.VENDORS_DISCLOSED),t&&(e[D.supportOOB]&&0<e[D.vendorsAllowed].size&&this[2].push(c.VENDORS_ALLOWED),this[2].push(c.PUBLISHER_TC))))}}class de{static encode(i,n){let e;try{e=this.fieldSequence[String(i.version)][n]}catch(e){throw new O(`Unable to encode version: ${i.version}, segment: `+n)}let o="",a=(n!==c.CORE&&(o=k.encode(ie.KEY_TO_ID[n],M.segmentType)),X());return e.forEach(t=>{var e=i[t],s=a[t];let r=M[t];void 0===r&&this.isPublisherCustom(t)&&(r=Number(i[D.numCustomPurposes]));try{o+=s.encode(e,r)}catch(e){throw new O(`Error encoding ${n}->${t}: `+e.message)}}),N.encode(o)}static decode(e,i,t){let n=N.decode(e),o=0,s=(t===c.CORE&&(i.version=k.decode(n.substr(o,M[D.version]),M[D.version])),t!==c.CORE&&(o+=M.segmentType),this.fieldSequence[String(i.version)][t]),a=X();return s.forEach(t=>{var s=a[t];let r=M[t];if(0!==(r=void 0===r&&this.isPublisherCustom(t)?Number(i[D.numCustomPurposes]):r)){let e=n.substr(o,r);if(i[t]=s===H?s.decode(e,i.version):s.decode(e,r),Number.isInteger(r))o+=r;else{if(!Number.isInteger(i[t].bitLength))throw new T(t);o+=i[t].bitLength}}}),i}static isPublisherCustom(e){return 0===e.indexOf("publisherCustom")}}o(de,"fieldSequence",new class{constructor(){o(this,"1",{[c.CORE]:[D.version,D.created,D.lastUpdated,D.cmpId,D.cmpVersion,D.consentScreen,D.consentLanguage,D.vendorListVersion,D.purposeConsents,D.vendorConsents]}),o(this,"2",{[c.CORE]:[D.version,D.created,D.lastUpdated,D.cmpId,D.cmpVersion,D.consentScreen,D.consentLanguage,D.vendorListVersion,D.policyVersion,D.isServiceSpecific,D.useNonStandardTexts,D.specialFeatureOptins,D.purposeConsents,D.purposeLegitimateInterests,D.purposeOneTreatment,D.publisherCountryCode,D.vendorConsents,D.vendorLegitimateInterests,D.publisherRestrictions],[c.VENDORS_DISCLOSED]:[D.vendorsDisclosed],[c.PUBLISHER_TC]:[D.publisherConsents,D.publisherLegitimateInterests,D.numCustomPurposes,D.publisherCustomConsents,D.publisherCustomLegitimateInterests],[c.VENDORS_ALLOWED]:[D.vendorsAllowed]})}});class le{static process(e,t){var s=e.gvl;if(!s)throw new O("Unable to encode TCModel without a GVL");if(!s.isReady)throw new O("Unable to encode TCModel tcModel.gvl.readyPromise is not resolved");(e=e.clone()).consentLanguage=s.language.slice(0,2).toUpperCase(),0<(null==t?void 0:t.ver
4sion)&&(null==t?void 0:t.version)<=this.processor.length?e.version=t.version:e.version=this.processor.length;t=e.version-1;if(this.processor[t])return this.processor[t](e,s);throw new O("Invalid version: "+e.version)}}o(le,"processor",[e=>e,(o,s)=>{o.publisherRestrictions.gvl=s,o.purposeLegitimateInterests.unset([1,3,4,5,6]);var e=new Map;return e.set("legIntPurposes",o.vendorLegitimateInterests),e.set("purposes",o.vendorConsents),e.forEach((i,n)=>{i.forEach((e,t)=>{if(e){let e=s.vendors[t];if(!e||e.deletedDate)i.unset(t);else if(0===e[n].length)if("legIntPurposes"===n&&0===e.purposes.length&&0===e.legIntPurposes.length&&0<e.specialPurposes.length)i.set(t);else if("legIntPurposes"===n&&0<e.purposes.length&&0===e.legIntPurposes.length&&0<e.specialPurposes.length)i.set(t);else if(o.isServiceSpecific)if(0===e.flexiblePurposes.length)i.unset(t);else{let s=o.publisherRestrictions.getRestrictions(t),r=!1;for(let e=0,t=s.length;e<t&&!r;e++)r=s[e].restrictionType===a.REQUIRE_CONSENT&&"purposes"===n||s[e].restrictionType===a.REQUIRE_LI&&"legIntPurposes"===n;r||i.unset(t)}else i.unset(t)}})}),o}]);class ue{static absCall(r,i,n,o){return new Promise((t,e)=>{let s=new XMLHttpRequest;s.withCredentials=n,s.addEventListener("load",()=>{if(s.readyState==XMLHttpRequest.DONE)if(200<=s.status&&s.status<300){let e=s.response;if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}t(e)}else e(new Error(`HTTP Status: ${s.status} response type: `+s.responseType))}),s.addEventListener("error",()=>{e(new Error("error"))}),s.addEventListener("abort",()=>{e(new Error("aborted"))}),null===i?s.open("GET",r,!0):s.open("POST",r,!0),s.responseType="json",s.timeout=o,s.ontimeout=()=>{e(new Error("Timeout "+o+"ms "+r))},s.send(i)})}static post(e,t,s=!1,r=0){return this.absCall(e,JSON.stringify(t),s,r)}static fetch(e,t=!1,s=0){return this.absCall(e,null,t,s)}}var g,m,v,f,b,y,C,E,I,w=class _ extends U{constructor(t,e){super(),o(this,"readyPromise"),o(this,"gvlSpecificationVersion"),o(this,"vendorListVersion"),o(this,"tcfPolicyVersion"),o(this,"lastUpdated"),o(this,"purposes"),o(this,"specialPurposes"),o(this,"features"),o(this,"specialFeatures"),o(this,"isReady_",!1),o(this,"vendors_"),o(this,"vendorIds"),o(this,"fullVendorList"),o(this,"byPurposeVendorMap"),o(this,"bySpecialPurposeVendorMap"),o(this,"byFeatureVendorMap"),o(this,"bySpecialFeatureVendorMap"),o(this,"stacks"),o(this,"dataCategories"),o(this,"lang_"),o(this,"cacheLang_"),o(this,"isLatest",!1);let s=_.baseUrl,r=null==e?void 0:e.language;if(r)try{r=_.consentLanguages.parseLanguage(r)}catch(e){throw new P("Error during parsing the language: "+e.message)}if(this.lang_=r||_.DEFAULT_LANGUAGE,this.cacheLang_=r||_.DEFAULT_LANGUAGE,this.isVendorList(t))this.populate(t),this.readyPromise=Promise.resolve();else{if(!s)throw new P("must specify GVL.baseUrl before loading GVL json");if(0<t){let e=t;_.CACHE.has(e)?(this.populate(_.CACHE.get(e)),this.readyPromise=Promise.resolve()):(s+=_.versionedFilename.replace("[VERSION]",String(e)),this.readyPromise=this.fetchJson(s))}else _.CACHE.has(_.LATEST_CACHE_KEY)?(this.populate(_.CACHE.get(_.LATEST_CACHE_KEY)),this.readyPromise=Promise.resolve()):(this.isLatest=!0,this.readyPromise=this.fetchJson(s+_.latestFilename))}}static set baseUrl(e){if(/^https?:\/\/vendorlist\.consensu\.org\//.test(e))throw new P("Invalid baseUrl! You may not pull directly from vendorlist.consensu.org and must provide your own cache");0<e.length&&"/"!==e[e.length-1]&&(e+="/"),this.baseUrl_=e}static get baseUrl(){return this.baseUrl_}static emptyLanguageCache(e){let t=!1;return null==e&&0<_.LANGUAGE_CACHE.size?(_.LANGUAGE_CACHE=new Map,t=!0):"string"==typeof e&&this.consentLanguages.has(e.toUpperCase())&&(_.LANGUAGE_CACHE.delete(e.toUpperCase()),t=!0),t}static emptyCache(e){let t=!1;return Number.isInteger(e)&&0<=e?(_.CACHE.delete(e),t=!0):void 0===e&&(_.CACHE=new Map,t=!0),t}cacheLanguage(){_.LANGUAGE_CACHE.has(this.cacheLang_)||_.LANGUAGE_CACHE.set(this.cacheLang_,{purposes:this.purposes,specialPurposes:this.specialPurposes,features:this.features,specialFeatures:this.specialFeatures,stacks:this.stacks,dataCategories:this.dataCategories})}async fetchJson(e){try{this.populate(await ue.fetch(e))}catch(e){throw new P(e.message)}}getJson(){return q(h({gvlSpecificationVersion:this.gvlSpecificationVersion,vendorListVersion:this.vendorListVersion,tcfPolicyVersion:this.tcfPolicyVersion,lastUpdated:this.lastUpdated,purposes:this.clonePurposes(),specialPurposes:this.cloneSpecialPurposes(),features:this.cloneFeatures(),specialFeatures:this.cloneSpecialFeatures(),stacks:this.cloneStacks()},this.dataCategories?{dataCategories:this.cloneDataCategories()}:{}),{vendors:this.cloneVendors()})}cloneSpecialFeatures(){var e,t={};for(e of Object.keys(this.specialFeatures))t[e]=_.cloneFeature(this.specialFeatures[e]);return t}cloneFeatures(){var e,t={};for(e of Object.keys(this.features))t[e]=_.cloneFeature(this.features[e]);return t}cloneStacks(){var e,t={};for(e of Object.keys(this.stacks))t[e]=_.cloneStack(this.stacks[e]);return t}cloneDataCategories(){var e,t={};for(e of Object.keys(this.dataCategories))t[e]=_.cloneDataCategory(this.dataCategories[e]);return t}cloneSpecialPurposes(){var e,t={};for(e of Object.keys(this.specialPurposes))t[e]=_.clonePurpose(this.specialPurposes[e]);return t}clonePurposes(){var e,t={};for(e of Object.keys(this.purposes))t[e]=_.clonePurpose(this.purposes[e]);return t}static clonePurpose(e){return h(h({id:e.id,name:e.name,description:e.description},e.descriptionLegal?{descriptionLegal:e.descriptionLegal}:{}),e.illustrations?{illustrations:Array.from(e.illustrations)}:{})}static cloneFeature(e){return h(h({id:e.id,name:e.name,description:e.description},e.descriptionLegal?{descriptionLegal:e.descriptionLegal}:{}),e.illustrations?{illustrations:Array.from(e.illustrations)}:{})}static cloneDataCategory(e){return{id:e.id,name:e.name,description:e.description}}static cloneStack(e){return{id:e.id,name:e.name,description:e.description,purposes:Array.from(e.purposes),specialFeatures:Array.from(e.specialFeatures)}}static cloneDataRetention(e){return q(h({},"number"==typeof e.stdRetention?{stdRetention:e.stdRetention}:{}),{purposes:h({},e.purposes),specialPurposes:h({},e.specialPurposes)})}static cloneVendorUrls(e){return e.map(e=>h({langId:e.langId,privacy:e.privacy},e.legIntClaim?{legIntClaim:e.legIntClaim}:{}))}static cloneVendor(e){return h(h(h(h(h(h(h(h(h(h(h({id:e.id,name:e.name,purposes:Array.from(e.purposes),legIntPurposes:Array.from(e.legIntPurposes),flexiblePurposes:Array.from(e.flexiblePurposes),specialPurposes:Array.from(e.specialPurposes),features:Array.from(e.features),specialFeatures:Array.from(e.specialFeatures)},e.overflow?{overflow:{httpGetLimit:e.overflow.httpGetLimit}}:{}),"number"==typeof e.cookieMaxAgeSeconds||null===e.cookieMaxAgeSeconds?{cookieMaxAgeSeconds:e.cookieMaxAgeSeconds}:{}),void 0!==e.usesCookies?{usesCookies:e.usesCookies}:{}),e.policyUrl?{policyUrl:e.policyUrl}:{}),void 0!==e.cookieRefresh?{cookieRefresh:e.cookieRefresh}:{}),void 0!==e.usesNonCookieAccess?{usesNonCookieAccess:e.usesNonCookieAccess}:{}),e.dataRetention?{dataRetention:this.cloneDataRetention(e.dataRetention)}:{}),e.urls?{urls:this.cloneVendorUrls(e.urls)}:{}),e.dataDeclaration?{dataDeclaration:Array.from(e.dataDeclaration)}:{}),e.deviceStorageDisclosureUrl?{deviceStorageDisclosureUrl:e.deviceStorageDisclosureUrl}:{}),e.deletedDate?{deletedDate:e.deletedDate}:{})}cloneVendors(){var e,t={};for(e of Object.keys(this.fullVendorList))t[e]=_.cloneVendor(this.fullVendorList[e]);return t}async changeLanguage(e){let t=e;try{t=_.consentLanguages.parseLanguage(e)}catch(e){throw new P("Error during parsing the language: "+e.message)}var s=e.toUpperCase();if((t.toLowerCase()!==_.DEFAULT_LANGUAGE.toLowerCase()||_.LANGUAGE_CACHE.has(s))&&t!==this.lang_)if(this.lang_=t,_.LANGUAGE_CACHE.has(s)){let t=_.LANGUAGE_CACHE.get(s);for(let e in t)t.hasOwnProperty(e)&&(this[e]=t[e])}else{let e=_.baseUrl+_.languageFilename.replace("[LANG]",this.lang_.toLowerCase());try{await this.fetchJson(e),this.cacheLang_=s,this.cacheLanguage()}catch(e){throw new P("unable to load language: "+e.message)}}}get language(){return this.lang_}isVendorList(e){return void 0!==e&&void 0!==e.vendors}populate(e){this.purposes=e.purposes,this.specialPurposes=e.specialPurposes,this.features=e.features,this.specialFeatures=e.specialFeatures,this.stacks=e.stacks,this.dataCategories=e.dataCategories,this.isVendorList(e)&&(this.gvlSpecificationVersion=e.gvlSpecificationVersion,this.tcfPolicyVersion=e.tcfPolicyVersion,this.vendorListVersion=e.vendorListVersion,this.lastUpdated=e.lastUpdated,"string"==typeof this.lastUpdated&&(this.lastUpdated=new Date(this.lastUpdated)),this.vendors_=e.vendors,this.fullVendorList=e.vend
4ors,this.mapVendors(),this.isReady_=!0,this.isLatest&&_.CACHE.set(_.LATEST_CACHE_KEY,this.getJson()),_.CACHE.has(this.vendorListVersion)||_.CACHE.set(this.vendorListVersion,this.getJson())),this.cacheLanguage()}mapVendors(e){this.byPurposeVendorMap={},this.bySpecialPurposeVendorMap={},this.byFeatureVendorMap={},this.bySpecialFeatureVendorMap={},Object.keys(this.purposes).forEach(e=>{this.byPurposeVendorMap[e]={legInt:new Set,consent:new Set,flexible:new Set}}),Object.keys(this.specialPurposes).forEach(e=>{this.bySpecialPurposeVendorMap[e]=new Set}),Object.keys(this.features).forEach(e=>{this.byFeatureVendorMap[e]=new Set}),Object.keys(this.specialFeatures).forEach(e=>{this.bySpecialFeatureVendorMap[e]=new Set}),Array.isArray(e)||(e=Object.keys(this.fullVendorList).map(e=>+e)),this.vendorIds=new Set(e),this.vendors_=e.reduce((e,t)=>{var s=this.vendors_[String(t)];return s&&void 0===s.deletedDate&&(s.purposes.forEach(e=>{this.byPurposeVendorMap[String(e)].consent.add(t)}),s.specialPurposes.forEach(e=>{this.bySpecialPurposeVendorMap[String(e)].add(t)}),s.legIntPurposes.forEach(e=>{this.byPurposeVendorMap[String(e)].legInt.add(t)}),s.flexiblePurposes&&s.flexiblePurposes.forEach(e=>{this.byPurposeVendorMap[String(e)].flexible.add(t)}),s.features.forEach(e=>{this.byFeatureVendorMap[String(e)].add(t)}),s.specialFeatures.forEach(e=>{this.bySpecialFeatureVendorMap[String(e)].add(t)}),e[t]=s),e},{})}getFilteredVendors(e,t,s,r){var i=e.charAt(0).toUpperCase()+e.slice(1);let n={};return("purpose"===e&&s?this["by"+i+"VendorMap"][String(t)][s]:this["by"+(r?"Special":"")+i+"VendorMap"][String(t)]).forEach(e=>{n[String(e)]=this.vendors[String(e)]}),n}getVendorsWithConsentPurpose(e){return this.getFilteredVendors("purpose",e,"consent")}getVendorsWithLegIntPurpose(e){return this.getFilteredVendors("purpose",e,"legInt")}getVendorsWithFlexiblePurpose(e){return this.getFilteredVendors("purpose",e,"flexible")}getVendorsWithSpecialPurpose(e){return this.getFilteredVendors("purpose",e,void 0,!0)}getVendorsWithFeature(e){return this.getFilteredVendors("feature",e)}getVendorsWithSpecialFeature(e){return this.getFilteredVendors("feature",e,void 0,!0)}get vendors(){return this.vendors_}narrowVendorsTo(e){this.mapVendors(e)}get isReady(){return this.isReady_}clone(){var e=new _(this.getJson());return this.lang_!==_.DEFAULT_LANGUAGE&&e.changeLanguage(this.lang_),e}static isInstanceOf(e){return"object"==typeof e&&"function"==typeof e.narrowVendorsTo}};o(w,"LANGUAGE_CACHE",new Map),o(w,"CACHE",new Map),o(w,"LATEST_CACHE_KEY",0),o(w,"DEFAULT_LANGUAGE","EN"),o(w,"consentLanguages",new K),o(w,"baseUrl_"),o(w,"latestFilename","vendor-list.json"),o(w,"versionedFilename","archives/vendor-list-v[VERSION].json"),o(w,"languageFilename","purposes-[LANG].json");let r=w;class pe extends U{constructor(e){super(),o(this,"isServiceSpecific_",!0),o(this,"supportOOB_",!1),o(this,"useNonStandardTexts_",!1),o(this,"purposeOneTreatment_",!1),o(this,"publisherCountryCode_","AA"),o(this,"version_",2),o(this,"consentScreen_",0),o(this,"policyVersion_",5),o(this,"consentLanguage_","EN"),o(this,"cmpId_",0),o(this,"cmpVersion_",0),o(this,"vendorListVersion_",0),o(this,"numCustomPurposes_",0),o(this,"gvl_"),o(this,"created"),o(this,"lastUpdated"),o(this,"specialFeatureOptins",new x),o(this,"purposeConsents",new x),o(this,"purposeLegitimateInterests",new x),o(this,"publisherConsents",new x),o(this,"publisherLegitimateInterests",new x),o(this,"publisherCustomConsents",new x),o(this,"publisherCustomLegitimateInterests",new x),o(this,"customPurposes"),o(this,"vendorConsents",new x),o(this,"vendorLegitimateInterests",new x),o(this,"vendorsDisclosed",new x),o(this,"vendorsAllowed",new x),o(this,"publisherRestrictions",new re),e&&(this.gvl=e),this.updated()}set gvl(e){r.isInstanceOf(e)||(e=new r(e)),this.gvl_=e,this.publisherRestrictions.gvl=e}get gvl(){return this.gvl_}set cmpId(e){if(e=Number(e),!(Number.isInteger(e)&&1<e))throw new R("cmpId",e);this.cmpId_=e}get cmpId(){return this.cmpId_}set cmpVersion(e){if(e=Number(e),!(Number.isInteger(e)&&-1<e))throw new R("cmpVersion",e);this.cmpVersion_=e}get cmpVersion(){return this.cmpVersion_}set consentScreen(e){if(e=Number(e),!(Number.isInteger(e)&&-1<e))throw new R("consentScreen",e);this.consentScreen_=e}get consentScreen(){return this.consentScreen_}set consentLanguage(e){this.consentLanguage_=e}get consentLanguage(){return this.consentLanguage_}set publisherCountryCode(e){if(!/^([A-z]){2}$/.test(e))throw new R("publisherCountryCode",e);this.publisherCountryCode_=e.toUpperCase()}get publisherCountryCode(){return this.publisherCountryCode_}set vendorListVersion(e){if((e=0|Number(e))<0)throw new R("vendorListVersion",e);this.vendorListVersion_=e}get vendorListVersion(){return this.gvl?this.gvl.vendorListVersion:this.vendorListVersion_}set policyVersion(e){if(this.policyVersion_=parseInt(e,10),this.policyVersion_<0)throw new R("policyVersion",e)}get policyVersion(){return this.gvl?this.gvl.tcfPolicyVersion:this.policyVersion_}set version(e){this.version_=parseInt(e,10)}get version(){return this.version_}set isServiceSpecific(e){this.isServiceSpecific_=e}get isServiceSpecific(){return this.isServiceSpecific_}set useNonStandardTexts(e){this.useNonStandardTexts_=e}get useNonStandardTexts(){return this.useNonStandardTexts_}set supportOOB(e){this.supportOOB_=e}get supportOOB(){return this.supportOOB_}set purposeOneTreatment(e){this.purposeOneTreatment_=e}get purposeOneTreatment(){return this.purposeOneTreatment_}setAllVendorConsents(){this.vendorConsents.set(this.gvl.vendors)}unsetAllVendorConsents(){this.vendorConsents.empty()}setAllVendorsDisclosed(){this.vendorsDisclosed.set(this.gvl.vendors)}unsetAllVendorsDisclosed(){this.vendorsDisclosed.empty()}setAllVendorsAllowed(){this.vendorsAllowed.set(this.gvl.vendors)}unsetAllVendorsAllowed(){this.vendorsAllowed.empty()}setAllVendorLegitimateInterests(){this.vendorLegitimateInterests.set(this.gvl.vendors)}unsetAllVendorLegitimateInterests(){this.vendorLegitimateInterests.empty()}setAllPurposeConsents(){this.purposeConsents.set(this.gvl.purposes)}unsetAllPurposeConsents(){this.purposeConsents.empty()}setAllPurposeLegitimateInterests(){this.purposeLegitimateInterests.set(this.gvl.purposes)}unsetAllPurposeLegitimateInterests(){this.purposeLegitimateInterests.empty()}setAllSpecialFeatureOptins(){this.specialFeatureOptins.set(this.gvl.specialFeatures)}unsetAllSpecialFeatureOptins(){this.specialFeatureOptins.empty()}setAll(){this.setAllVendorConsents(),this.setAllPurposeLegitimateInterests(),this.setAllSpecialFeatureOptins(),this.setAllPurposeConsents(),this.setAllVendorLegitimateInterests()}unsetAll(){this.unsetAllVendorConsents(),this.unsetAllPurposeLegitimateInterests(),this.unsetAllSpecialFeatureOptins(),this.unsetAllPurposeConsents(),this.unsetAllVendorLegitimateInterests()}get numCustomPurposes(){let e=this.numCustomPurposes_;var t;
4return"object"==typeof this.customPurposes&&(t=Object.keys(this.customPurposes).sort((e,t)=>Number(e)-Number(t)),e=parseInt(t.pop(),10)),e}set numCustomPurposes(e){if(this.numCustomPurposes_=parseInt(e,10),this.numCustomPurposes_<0)throw new R("numCustomPurposes",e)}updated(){var e=new Date,e=new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));this.created=e,this.lastUpdated=e}}o(pe,"consentLanguages",r.consentLanguages);let u=(g=null==(g=null==(g=null==(g=window._iub)?void 0:g.cs)?void 0:g.options)?void 0:g.i18nForBanner)&&(g=Object.values(g))[0]?g[0].tcf_v2:{},t=s=>Object.keys(s).reduce((e,t)=>(e[t]=Object.assign({},s[t],{id:+t}),e),{}),s=r.prototype.populate,i=(r.prototype.populate=function(e){return s.call(this,Object.assign({},e,{purposes:t(u.purposes),features:t(u.features),specialPurposes:t(u.specialPurposes),specialFeatures:t(u.specialFeatures),stacks:{}}))},r.prototype.fetchJson),p=(r.prototype.fetchJson=function(e){var t;return/purposes-\w\w\.json$/.test(e)?{then:e=>e({})}:(window._iub&&((null==(t=_iub.cs)?void 0:t.options)||_iub.csConfiguration)||{}).googleAdditionalConsentMode&&/vendorlist/.test(e)?Promise.all([i.call(this,e),new Promise((s,r)=>{let i=new XMLHttpRequest;i.addEventListener("load",()=>{let e={};try{e=JSON.parse(i.responseText)}catch(e){console.error("Error fetching GAC vendors: wrong response format"),r()}_iub.acVendors=e;let t=null;"function"==typeof CustomEvent?t=new CustomEvent("acVendorUpdate"):(t=document.createEvent("CustomEvent")).initCustomEvent("acVendorUpdate",null,null,null),document.dispatchEvent(t),s()}),i.open("GET","https://cdn.iubenda.com/cs/tcf/gac-vendors.json"),i.send()})]):i.call(this,e)},{purposes:{1:{name:"Store and/or access information on a device",description:"Cookies, device identifiers, or other information can be stored or accessed on your device for the purposes presented to you.",descriptionLegal:"Vendors can: Store and access information on the device such as cookies and device identifiers presented to a user."},2:{name:"Select basic ads",description:"Ads can be shown to you based on the content youâre viewing, the app youâre using, your approximate location, or your device type.",descriptionLegal:"To do basic ad selection vendors can:<br/><br/>- Use real-time information about the context in which the ad will be shown, to show the ad, including information about the content and the device, such as: device type and capabilities, user agent, URL, IP address<br/>- Use a userâs non-precise geolocation data<br/>- Control the frequency of ads shown to a user.<br/>- Sequence the order in which ads are shown to a user.<br/>- Prevent an ad from serving in an unsuitable editorial (brand-unsafe) context<br/>Vendors cannot:<br/>- Create a personalised ads profile using this information for the selection of future ads.<br/><br/>N.B. Non-precise means only an approximate location involving at least a radius of 500 meters is permitted."},3:{name:"Create a personalised ads profile",description:"A profile can be built about you and your interests to show you personalised ads that are relevant to you.",descriptionLegal:"To create a personalised ads profile vendors can:<br/><br/>- Collect information about a user, including a user's activity, interests, demographic information, or location, to create or edit a user profile for use in personalised advertising.<br/>- Combine this information with other information previously collected, including from across websites and apps, to create or edit a user profile for use in personalised advertising."},4:{name:"Select personalised ads",description:"Personalised ads can be shown to you based on a profile about you.",descriptionLegal:"To select personalised ads vendors can: Select personalised ads based on a user profile or other historical user data, including a userâs prior activity, interests, visits to sites or apps, location, or demographic information."},5:{name:"Create a personalised content profile",description:"A profile can be built about you and your interests to show you personalised content that is relevant to you.",descriptionLegal:"To create a personalised content profile vendors can: <br/><br/>- Collect information about a user, including a user's activity, interests, visits to sites or apps, demographic information, or location, to create or edit a user profile for personalising content.<br/>
4- Combine this information with other information previously collected, including from across websites and apps, to create or edit a user profile for use in personalising content."},6:{name:"Select personalised content",description:"Personalised content can be shown to you based on a profile about you.",descriptionLegal:"To select personalised content vendors can: Select personalised content based on a user profile or other historical user data, including a userâs prior activity, interests, visits to sites or apps, location, or demographic information."},7:{name:"Measure ad performance",description:"The performance and effectiveness of ads that you see or interact with can be measured.",descriptionLegal:"To measure ad performance vendors can:<br/><br/>- Measure whether and how ads were delivered to and interacted with by a user<br/>- Provide reporting about ads including their effectiveness and performance<br/>- Provide reporting about users who interacted with ads using data observed during the course of the user's interaction with that ad<br/>- Provide reporting to publishers about the ads displayed on their property<br/>- Measure whether an ad is serving in a suitable editorial environment (brand-safe) context<br/>- Determine the percentage of the ad that had the opportunity to be seen and the duration of that opportunity<br/>- Combine this information with other information previously collected, including from across websites and apps<br/><br/>Vendors cannot:<br/><br/>- Apply panel or similarly-derived audience insights data to ad measurement data without a Legal Basis to apply market research to generate audience insights (Purpose 9)"},8:{name:"Measure content performance",description:"The performance and effectiveness of content that you see or interact with can be measured.",descriptionLegal:"To measure content performance vendors can:<br/><br/>- Measure and report on how content was delivered to and interacted with by users.<br/>- Provide reporting, using directly measurable or known information, about users who interacted with the content<br/>- Combine this information with other information previously collected, including from across websites and apps.<br/><br/>Vendors cannot:<br/><br/>- Measure whether and how ads (including native ads) were delivered to and interacted with by a user.<br/>- Apply panel- or similarly derived audience insights data to ad measurement data without a Legal Basis to apply market research to generate audience insights (Purpose 9)"},9:{name:"Apply market research to generate audience insights",description:"Market research can be used to learn more about the audiences who visit sites/apps and view ads.",descriptionLegal:"To apply market research to generate audience insights vendors can:<br/><br/>- Provide aggregate reporting to advertisers or their representatives about the audiences reached by their ads, through panel-based and similarly derived insights.<br/>- Provide aggregate reporting to publishers about the audiences that were served or interacted with content and/or ads on their property by applying panel-based and similarly derived insights.<br/>- Associate offline data with an online user for the purposes of market research to generate audience insights if vendors have declared to match and combine offline data sources (Feature 1)<br/>- Combine this information with other information previously collected including from across websites and apps. <br/><br/>Vendors cannot:<br/><br/>- Measure the performance and effectiveness of ads that a specific user was served or interacted with, without a Legal Basis to measure ad performance.<br/>- Measure which content a specific user was served and how they interacted with it, without a Legal Basis to measure content performance."},10:{name:"Develop and improve products",description:"Your data can be used to improve existing systems and software, and to develop new products",descriptionLegal:"To develop new products and improve products vendors can:<br/><br/>- Use information to improve their existing products with new features and to develop new products<br/>- Create new models and algorithms through machine learning<br/><br/>Vendors cannot: Conduct any other data processing operation allowed under a different purpose under this purpose"},11:{name:"Use limited data to select content",description:"Content presented to you on this service can be based on limited data, such as the website or app you are using, your non-precise location, your device type, or which content you are (or have been) interacting with (for example, to limit the number of times a video or an article is presented to you).",descriptionLegal:"A travel magazine has published an article on its website about the new online courses proposed by a language school, to improve travelling experiences abroad. The schoolâs blog posts are inserted directly at the bottom of the page, and selected on the basis of your non-precise location (for instance, blog posts explaining the course curriculum for different languages than the language of the country you are situated in).<br/><br/>A sports news mobile app has started a new section of articles covering the most recent football games. Each article includes videos hosted by a separate streaming platform showcasing the highlights of each match. If you fast-forward a video, this information may be used to select a shorter video to play next."}},specialPurposes:{1:{name:"Ensure security, prevent fraud, and debug",description:"Your data can be used to monitor for and prevent fraudulent activity, and ensure systems and processes work properly and securely.",descriptionLegal:"To ensure security, prevent fraud and debug vendors can:<br/><br/>- Ensure data are securely transmitted<br/>- Detect and prevent malicious, fraudulent, invalid, or illegal activity.<br/>
4- Ensure correct and efficient operation of systems and processes, including to monitor and enhance the performance of systems and processes engaged in permitted purposes<br/><br/>Vendors cannot: Conduct any other data processing operation allowed under a different purpose under this purpose."},2:{name:"Technically deliver ads or content",description:"Your device can receive and send information that allows you to see and interact with ads and content.",descriptionLegal:"To deliver information and respond to technical requests vendors can:<br/><br/>- Use a userâs IP address to deliver an ad over the internet<br/>- Respond to a userâs interaction with an ad by sending the user to a landing page<br/>- Use a userâs IP address to deliver content over the internet<br/>- Respond to a userâs interaction with content by sending the user to a landing page<br/>- Use information about the device type and capabilities for delivering ads or content, for example, to deliver the right size ad creative or video file in a format supported by the device<br/><br/>Vendors cannot: Conduct any other data processing operation allowed under a different purpose under this purpose"},3:{name:"Save and communicate privacy choices",description:"The choices you make regarding the purposes and entities listed in this notice are saved and made available to those entities in the form of digital signals (such as a string of characters). This is necessary in order to enable both this service and those entities to respect such choices.",descriptionLegal:"When you visit a website and are offered a choice between consenting to the use of profiles for personalised advertising or not consenting, the choice you make is saved and made available to advertising providers, so that advertising presented to you respects that choice."}},features:{1:{name:"Match and combine offline data sources",description:"Data from offline data sources can be combined with your online activity in support of one or more purposes",descriptionLegal:"Vendors can: Combine data obtained offline with data collected online in support of one or more Purposes or Special Purposes."},2:{name:"Link different devices",description:"Different devices can be determined as belonging to you or your household in support of one or more of purposes.",descriptionLegal:"Vendors can:<br/><br/>- Deterministically determine that two or more devices belong to the same user or household<br/>- Probabilistically determine that two or more devices belong to the same user or household<br/>- Actively scan device characteristics for identification for probabilistic identification if users have allowed vendors to actively scan device characteristics for identification (Special Feature 2)"},3:{name:"Receive and use automatically-sent device characteristics for identification",description:"Your device might be distinguished from other devices based on information it automatically sends, such as IP address or browser type.",descriptionLegal:"Vendors can:<br/><br/>- Create an identifier using data collected automatically from a device for specific characteristics, e.g. IP address, user-agent string.<br/>- Use such an identifier to attempt to re-identify a device.<br/><br/>Vendors cannot:<br/><br/>- Create an identifier using data collected via actively scanning a device for specific characteristics, e.g. installed font or screen resolution without usersâ separate opt-in to actively scanning device characteristics for identification.<br/>- Use such an identifier to re-identify a device."}},specialFeatures:{1:{name:"Use precise geolocation data",description:"Your precise geolocation data can be used in support of one or more purposes. This means your location can be accurate to within several meters.",descriptionLegal:"Vendors can: Collect and process precise geolocation data in support of one or more purposes.<br/><br/>N.B. Precise geolocation means that there are no restrictions on the precision of a userâs location; this can be accurate to within several meters."},2:{name:"Actively scan device characteristics for identification",description:"Your device can be identified based on a scan of your device's unique combination of characteristics.",descriptionLegal:"Vendors can:<br/><br/>- Create an identifier using data collected via actively scanning a device for specific characteristics, e.g. installed fonts or screen resolution.<br/>- Use such an identifier to re-identify a device."}}});(v=m=m||{}).PING="ping",v.GET_TC_DATA="getTCData",v.GET_IN_APP_TC_DATA="getInAppTCData",v.GET_VENDOR_LIST="getVendorList",v.ADD_EVENT_LISTENER="addEventListener",v.REMOVE_
4EVENT_LISTENER="removeEventListener",(b=f=f||{}).STUB="stub",b.LOADING="loading",b.LOADED="loaded",b.ERROR="error",(C=y=y||{}).VISIBLE="visible",C.HIDDEN="hidden",C.DISABLED="disabled",(I=E=E||{}).TC_LOADED="tcloaded",I.CMP_UI_SHOWN="cmpuishown",I.USER_ACTION_COMPLETE="useractioncomplete";class he{constructor(e,t,s,r){o(this,"listenerId"),o(this,"callback"),o(this,"next"),o(this,"param"),o(this,"success",!0),Object.assign(this,{callback:e,listenerId:s,param:t,next:r});try{this.respond()}catch(e){this.invokeCallback(null)}}invokeCallback(e){var t=null!==e;"function"==typeof this.next?this.callback(this.next,e,t):this.callback(e,t)}}class ge extends he{respond(){this.throwIfParamInvalid(),this.invokeCallback(new fe(this.param,this.listenerId))}throwIfParamInvalid(){if(!(void 0===this.param||Array.isArray(this.param)&&this.param.every(Number.isInteger)))throw new Error("Invalid Parameter")}}class B{static reset(){delete this.cmpId,delete this.cmpVersion,delete this.eventStatus,delete this.gdprApplies,delete this.tcModel,delete this.tcString,delete this.tcfPolicyVersion,this.cmpStatus=f.LOADING,this.disabled=!1,this.displayStatus=y.HIDDEN,this.eventQueue.clear()}}o(B,"apiVersion","2"),o(B,"tcfPolicyVersion"),o(B,"eventQueue",new class{constructor(){o(this,"eventQueue",new Map),o(this,"queueNumber",0)}add(e){return this.eventQueue.set(this.queueNumber,e),this.queueNumber++}remove(e){return this.eventQueue.delete(e)}exec(){this.eventQueue.forEach((e,t)=>{new ge(e.callback,e.param,t,e.next)})}clear(){this.queueNumber=0,this.eventQueue.clear()}get size(){return this.eventQueue.size}}),o(B,"cmpStatus",f.LOADING),o(B,"disabled",!1),o(B,"displayStatus",y.HIDDEN),o(B,"cmpId"),o(B,"cmpVersion"),o(B,"eventStatus"),o(B,"gdprApplies"),o(B,"tcModel"),o(B,"tcString");class me{constructor(){o(this,"cmpId",B.cmpId),o(this,"cmpVersion",B.cmpVersion),o(this,"gdprApplies",B.gdprApplies),o(this,"tcfPolicyVersion",B.tcfPolicyVersion)}}class ve extends me{constructor(){super(...arguments),o(this,"cmpStatus",f.ERROR)}}class fe extends me{constructor(t,e){if(super(),o(this,"tcString"),o(this,"listenerId"),o(this,"eventStatus"),o(this,"cmpStatus"),o(this,"isServiceSpecific"),o(this,"useNonStandardTexts"),o(this,"publisherCC"),o(this,"purposeOneTreatment"),o(this,"outOfBand"),o(this,"purpose"),o(this,"vendor"),o(this,"specialFeatureOptins"),o(this,"publisher"),this.eventStatus=B.eventStatus,this.cmpStatus=B.cmpStatus,this.listenerId=e,B.gdprApplies){let e=B.tcModel;this.tcString=B.tcString,this.isServiceSpecific=e.isServiceSpecific,this.useNonStandardTexts=e.useNonStandardTexts,this.purposeOneTreatment=e.purposeOneTreatment,this.publisherCC=e.publisherCountryCode,!1===this.isServiceSpecific&&(this.outOfBand={allowedVendors:this.createVectorField(e.vendorsAllowed,t),disclosedVendors:this.createVectorField(e.vendorsDisclosed,t)}),this.purpose={consents:this.createVectorField(e.purposeConsents),legitimateInterests:this.createVectorField(e.purposeLegitimateInterests)},this.vendor={consents:this.createVectorField(e.vendorConsents,t),legitimateInterests:this.createVectorField(e.vendorLegitimateInterests,t),disclosedVendors:this.createVectorField(e.vendorsDisclosed,t)},this.specialFeatureOptins=this.createVectorField(e.specialFeatureOptins),this.publisher={consents:this.createVectorField(e.publisherConsents),legitimateInterests:this.createVectorField(e.publisherLegitimateInterests),customPurpose:{consents:this.createVectorField(e.publisherCustomConsents),legitimateInterests:this.createVectorField(e.publisherCustomLegitimateInterests)},restrictions:this.createRestrictions(e.publisherRestrictions)}}}createRestrictions(t){let r={};if(0<t.numRestrictions){var s=t.getMaxVendorId();for(let e=1;e<=s;e++){let s=e.toString();t.getRestrictions(e).forEach(e=>{var t=e.purposeId.toString();r[t]||(r[t]={}),r[t][s]=e.restrictionType})}}return r}createVectorField(s,e){return e?e.reduce((e,t)=>(e[String(t)]=s.has(Number(t)),e),{}):[...s].reduce((e,t)=>(e[t[0].toString(10)]=t[1],e),{})}}class be extends fe{constructor(e){super(e),delete this.outOfBand}createVectorField(e){return[...e].reduce((e,t)=>
4e+(t[1]?"1":"0"),"")}createRestrictions(e){let n={};if(0<e.numRestrictions){let t=e.getMaxVendorId();e.getRestrictions().forEach(e=>{n[e.purposeId.toString()]="_".repeat(t)});for(let i=0;i<t;i++){var s=i+1;e.getRestrictions(s).forEach(e=>{var t=e.restrictionType.toString(),e=e.purposeId.toString(),s=n[e].substr(0,i),r=n[e].substr(i+1);n[e]=s+t+r})}}return n}}class ye extends me{constructor(){super(),o(this,"cmpLoaded",!0),o(this,"cmpStatus",B.cmpStatus),o(this,"displayStatus",B.displayStatus),o(this,"apiVersion",String(B.apiVersion)),o(this,"gvlVersion"),B.tcModel&&B.tcModel.vendorListVersion&&(this.gvlVersion=+B.tcModel.vendorListVersion)}}J=m.PING,z=m.GET_TC_DATA,$=m.GET_IN_APP_TC_DATA,Y=m.GET_VENDOR_LIST,W=m.ADD_EVENT_LISTENER,Q=m.REMOVE_EVENT_LISTENER;class j{}o(j,J,class extends he{respond(){this.invokeCallback(new ye)}}),o(j,z,ge),o(j,$,class extends ge{respond(){this.throwIfParamInvalid(),this.invokeCallback(new be(this.param))}}),o(j,Y,class extends he{respond(){var e=B.tcModel,t=e.vendorListVersion;let s;void 0===this.param&&(this.param=t),(s=this.param===t&&e.gvl?e.gvl:new r(this.param)).readyPromise.then(()=>{this.invokeCallback(s.getJson())})}}),o(j,W,class extends ge{respond(){this.listenerId=B.eventQueue.add({callback:this.callback,param:this.param,next:this.next}),super.respond()}}),o(j,Q,class extends he{respond(){this.invokeCallback(B.eventQueue.remove(this.param))}});class Ce{static has(e){return"string"==typeof e&&(e=Number(e)),this.set_.has(e)}}o(Ce,"set_",new Set([0,2,void 0,null]));let n="__tcfapi";class Ee{constructor(e){if(o(this,"callQueue"),o(this,"customCommands"),e){var t=m.ADD_EVENT_LISTENER;if(null!=e&&e[t])throw new Error(`Built-In Custom Commmand for ${t} not allowed: Use ${m.GET_TC_DATA} instead`);if(t=m.REMOVE_EVENT_LISTENER,null!=e&&e[t])throw new Error(`Built-In Custom Commmand for ${t} not allowed`);null!=e&&e[m.GET_TC_DATA]&&(e[m.ADD_EVENT_LISTENER]=e[m.GET_TC_DATA],e[m.REMOVE_EVENT_LISTENER]=e[m.GET_TC_DATA]),this.customCommands=e}try{this.callQueue=window[n]()||[]}catch(e){this.callQueue=[]}finally{window[n]=this.apiCall.bind(this),this.purgeQueuedCalls()}}apiCall(e,t,s,...r){if("string"!=typeof e&&"function"==typeof s)s(null,!1);else if(Ce.has(t)){if("function"!=typeof s)throw new Error("invalid callback function");B.disabled?s(new ve,!1):this.isCustomCommand(e)||this.isBuiltInCommand(e)?this.isCustomCommand(e)&&!this.isBuiltInCommand(e)?this.customCommands[e](s,...r):e===m.PING?this.isCustomCommand(e)?new j[e](this.customCommands[e],r[0],null,s):new j[e](s,r[0]):void 0===B.tcModel?this.callQueue.push([e,t,s,...r]):this.isCustomCommand(e)&&this.isBuiltInCommand(e)?new j[e](this.customCommands[e],r[0],null,s):new j[e](s,r[0]):s(null,!1)}else s(null,!1)}purgeQueuedCalls(){var e=this.callQueue;this.callQueue=[],e.forEach(e=>{window[n](...e)})}isCustomCommand(e){return this.customCommands&&"function"==typeof this.customCommands[e]}isBuiltInCommand(e){return void 0!==j[e]}}class Ie{constructor(e,t,s=!0,r){o(this,"callResponder"),o(this,"isServiceSpecific"),o(this,"numUpdates",0),this.throwIfInvalidInt(e,"cmpId",2),this.throwIfInvalidInt(t,"cmpVersion",0),B.cmpId=e,B.cmpVersion=t,B.tcfPolicyVersion=5,this.isServiceSpecific=!!s,this.callResponder=new Ee(r)}throwIfInvalidInt(e,t,s){if(!("number"==typeof e&&Number.isInteger(e)&&s<=e))throw new Error(`Invalid ${t}: `+e)}update(e,t=!1){if(B.disabled)throw new Error("CmpApi Disabled");B.cmpStatus=f.LOADED,t?(B.displayStatus=y.VISIBLE,B.eventStatus=E.CMP_UI_SHOWN):void 0===B.tcModel?(B.displayStatus=y.DISABLED,B.eventStatus=E.TC_LOADED):(B.displayStatus=y.HIDDEN,B.eventStatus=E.USER_ACTION_COMPLETE),B.gdprApplies=null!==e,B.gdprApplies?(""===e?(B.tcModel=new pe,B.tcModel.cmpId=B.cmpId,B.tcModel.cmpVersion=B.cmpVersion):B.tcModel=class{static encode(r,e){let i,n="";return r=le.process(r,e),(i=Array.isArray(null==e?void 0:e.segments)?e.segments:new ce(r,e)[""+r.version]).forEach((e,t)=>{let s="";t<i.length-1&&(s="."),n+=de.encode(r,e)+s}),n}static decode(e,i){let n=e.split("."),t=n.length;i=i||new pe;for(let r=0;r<t;r++){let e=n[r],t=N.decode(e.charAt(0)).substr(0,M.segmentType),s=ie.ID_TO_KEY[k.decode(t,M.segmentType).toString()];de.decode(e,i,s)}return i}}.decode(e),B.tcModel.isServiceSpecific=this.isServiceSpecific,B.tcfPolicyVersion=Number(B.tcModel.policyVersion),B.tcString=e):B.tcModel=null,0===this.numUpdates?this.callResponder.purgeQueuedCalls():B.eventQueue.exec(),this.numUpdates++}disable(){B.disabled=!0,B.cmpStatus=f.ERROR}}function S(e,t){if("local_storage"===t)return localStorage.getItem(e);var s=e,r=[],i=document.cookie.split(/\s*;\s*/);for(let e=0;e<i.length;e++){var n=i[e].split("="),o=n[0],n=n[1],o=o.match(new RegExp(`^${s}(-(\\d+))?$`));o&&(r[parseInt(o[2],10)||0]=n)}return r.length?r.join(""):""}function Z(e){var r=[];if(e){let s=1;var i=new Int16Array(e.split("").map(e=>e.charCodeAt(0)));for(let e=0;e<i.length;e++){let t=i[e];if(e%2!=0)for(let e=0;e<t;e++)r.push(s+e);s+=t}}return r}function ee(e){return("1~"===(e||"").substring(0,2)?e=>{var e=(e||"").split("~"),t=e[0],s=e[1]||"";let r=[];if(t){if(s){let e=decodeURIComponent(escape(atob(s)));r=new Int16Array(e.split("").map(e=>e.charCodeAt(0)))}return t+"~"+r.join(".")}return""}:e=>{var t=[],e=decodeURIComponent(escape(atob(e))).split("~"),s=e[0],r=e[1],i=e[2];if(s){t.push(s);let e=Z(r||"");if(t.push(e.join(".")),i){let e=Z(i);e.unshift("dv"),t.push(e.join("."))}else"2"===s&&t.push("dv")}return t.join("~")})(e)}function te(e,t,s){var r;return(null==(r=null==t?void 0:t.items)?void 0:r[e])&&(null==(r=t.items[e])?void 0:r.type)||s}{u=p;let t=void 0===window._iub?window._iub={}:window._iub,e=t.cmp||(t.cmp={}),s=((e.VERSION||(e.VERSION={})).safeTcfV2="0.21.2",t&&t.csConfiguration),r=null==s?void 0:s.storage,i=(null==r?void 0:r.type)||"cookie",n=te("core",r,i),o=te("tcf",r,i),a=te("granular",r,i),c=s&&(!!S("_iub_cs-s"+s.siteId,n)||!!S("_iub_cs-"+s.cookiePolicyId,n)),d=S((L=s,"string"==typeof(A=null==(A=null==(A=null==L?void 0:L.preferenceCookie)?void 0:A.tcfV2Name)?void 0:A.trim())&&A?A.trim().replace(/%\{cookie_policy_id\}/g,null!=(A=null==L?void 0:L.cookiePolicyId)?A:""):"euconsent-v2"),o);
4var L=d=d||S("euconsent-v2",o),A=s?decodeURIComponent(S(`_iub_cs-${s.cookiePolicyId}-granular`,a)):"{}";let l={};try{l=JSON.parse(A)||{}}catch(e){}var V,_,A=l.gac?ee(l.gac):null,se=s&&s.googleEnableAdvertiserConsentMode||!1;if(L&&(!s||c)&&!t.cmpApi){let e=((e,t,s)=>{let i=s,n=!1,r=(e,t,s)=>{let r=t;t&&"object"==typeof t&&(r=h({},t),i&&(r.addtlConsent=i),n&&(r.enableAdvertiserConsentMode=!0),delete r.outOfBand),"function"==typeof e?e(r,s):(t=["next is not a function, probably a vendor invoked __tcfapi with parameter null. "+(""+(Error().stack||"")).replace("Error","")],(e=(null==(e=null==(e=window._iub)?void 0:e.jlib)?void 0:e.logger)||window.console)&&(e.warn||e.log)(...t))},o=new Ie(e,t,!0,{getTCData:r,getInAppTCData:r}),a=(o.setAcmString=function(e){i=e},o.setGoogleEnableAdvertiserConsentMode=e=>{n=e},o.update),c={};return o.update=(e,t)=>{e===c.consentString&&t===c.uiVisible||(c.consentString=e,c.uiVisible=t,a.call(o,e,t))},o})((V=null==(V=null==(V=null==(V=window._iub)?void 0:V.sharedData)?void 0:V.options)?void 0:V.cmpId,_=null==s?void 0:s.cmpId,V=null==V?void 0:V.tcf,_=null==_?void 0:_.tcf,V||_||123),(null==(V=null==s?void 0:s.cmpVersion)?void 0:V.tcf)||390,A);e.setGoogleEnableAdvertiserConsentMode(se),e.update(L,!1),t.cmpApi=e}}}})(); 5!function(e){"use strict";const s=e=>{("undefined"==typeof window||window.iubPubSubDebug)&&"undefined"!=typeof console&&console.debug&&console.debug(`[Iubenda PubSub Debug] ${e}`)},i=e=>{"undefined"!=typeof console&&console.error&&console.error(`[Iubenda PubSub Error] ${e}`)};class r{constructor(){this.topics={},this.onceOnly={},this.replayPublishers={}}subscribe(e,r,n,t=!1){if(s(`Subscribing to topic: ${e}, subscriberId: ${r}, once: ${t}`),e){if(r)return t?this.subscribeOnce(e,r,n):this.subscribeRegular(e,r,n);i("Subscriber name cannot be null or undefined")}else i("Topic cannot be null or undefined")}subscribeOnce(e,s,i){this._abstractSubscribe(this.onceOnly,e,s,i,!0)}subscribeRegular(e,s,i){this._abstractSubscribe(this.topics,e,s,i,!1)}_abstractSubscribe(e,r,n,t,u){const o={subscriberId:n,callback:t};if(!e[r])return s(`Creating topic: ${r} in ${u?"onceOnly":"regular"} mode`),e[r]=[],e[r].push(o),void this._publishReplay(r);if(e[r].find(e=>e.subscriberId===o.subscriberId)){return void i(`Subscriber ${o.subscriberId} already subscribed to topic ${r} in ${u?"onceOnly":"regular"} mode`)}e[r].push(o),this._publishReplay(r)}unsubscribe(e,i){s(`Unsubscribing ${e} from topic ${i} in both modes`),this.unsubscribeFromRegular(e,i),this.unsubscribeFromOnceOnly(e,i)}unsubscribeFromRegular(e,s){this._abstractUnsubscribe(this.topics,e,s,!1)}
5unsubscribeFromOnceOnly(e,s){this._abstractUnsubscribe(this.onceOnly,e,s,!0)}_abstractUnsubscribe(e,i,r,n){s(`Unsubscribing ${i} from ${n?"once":"regular"} topic ${r}`),e[r]&&(e[r]=e[r].filter(e=>e.subscriberId!==i))}_publishReplay(e){const s=this.replayPublishers[e];s&&this.publish(e,s.publisherId,s.message)}publish(e,i,r,n=!1){s(`${i} publishing to topic: ${e}, message: ${JSON.stringify(r)}`),n&&(this.replayPublishers[e]={publisherId:i,message:JSON.parse(JSON.stringify(r))}),this.publishToRegularSubscribers(e,i,r),this.publishToOnceSubscribers(e,i,r)}publishToRegularSubscribers(e,s,i){this._abstractPublish(this.topics,s,e,i,!1)}publishToOnceSubscribers(e,s,i){this._abstractPublish(this.onceOnly,s,e,i,!0)}_abstractPublish(e,s,r,n,t){if(!e[r])return;const u=[...e[r]];for(const{callback:e,subscriberId:o}of u)try{e(n)}catch(e){i(`Error while processing ${t?"once-only":"regular"} subscriber callback triggered by ${s} for topic ${r} for subscriber ${o} with message ${n}: ${e}`)}t&&delete e[r]}}function n(e){const s=e.match(/^(.+?)[-_](.+)$/);return s?{language:s[1],region:s[2]}:{language:e}}function t(e,s,i){const r=i.map(function(e){return e.toLowerCase()}).indexOf(s.toLowerCase());-1!==r&&e.push(i[r])}let u=0;const o=_iub.csConfiguration;function c(){let e;e="https://cdn.iubenda.com/cookie_solution/iubenda_cs/1.107.0/core-"+o.lang+".js";let s=document.querySelector('script[src="'+e+'"]');if(!s){s=document.createElement("script");const i=document.querySelector("script");s.src=e,s.setAttribute("charset","UTF-8"),s.addEventListener("error",function(){++u,u<5&&(s.parentNode.removeChild(s),setTimeout(c,10))}),i.parentNode.insertBefore(s,i)}}try{window._cmp=window._cmp||{},window._cmp.pubSub=window._cmp.pubSub||new r}catch(e){console.error("Error in PubSub initialization",e)}_iub.invTcfC=Date.now()-31104e6;_iub.csConfigLegacy=!1,_iub.GVL2=_iub.GVL2||224,_iub.GVL3=_iub.GVL3||177,_iub.vendorsCountGVL3=_iub.vendorsCountGVL3||1214;_iub.cc='EU',o.lang=function(e,s,i,r){function u(s,r,n){if(n&&!r)return!1;const t=r&&r.cookiePolicyId||e.cookiePolicyId,u=-1!==i.indexOf(s)||e.i18n&&e.i18n[s]||r&&r.i18n&&r.i18n[s];return t&&u}const o=e.lang,c=[];o&&c.push(o);const b=Object.keys(s||{}),l=n(r),a=l.region,d=l.language.toLowerCase();if(a){t(c,d+"-"+a,b)}a||t(c,d,b),b.forEach(function(e){n(e).language===d&&c.push(e)}),c.push.apply(c,b);for(let e=0;e<c.length;++e){const i=0!==e||!o,r=c[e];if(u(r,s?s[r]:null,i))return r}return"en"}(o,_iub.csLangConfiguration,["bg","ca","cs","da","de","el","en","en-GB","es","et","fi","fr","hr","hu","it","lt","lv","nl","no","pl","pt","pt-BR","ro","ru","sk","sl","sv"],document.documentElement.lang||navigator.language||"en"),c(),e.loadCore=c,Object.defineProperty(e,"__esModule",{value:!0})}({}); 6 7__tcfapi('addEventListener', 2, function (tcData, success) { 8 const LOG_PREFIX = 'TCFAPI: '; 9 console.debug("%saddEventListener", LOG_PREFIX, tcData); 10 if (!success) { 11 console.error("%sError in addEventListener", LOG_PREFIX); 12 return; 13 } 14 switch (tcData.eventStatus) { 15 case 'useractioncomplete': 16 case 'tcloaded': { 17 __tcfapi('removeEventListener', 2, function (success) { 18 console.debug("%sremoveEventListener(%s):%s", LOG_PREFIX, tcData.listenerId, success); 19 }, tcData.listenerId); 20 21 /* START TNCJS TRACKING - Adasta Network - ProviderID: f3d8ce66-41c2-403f-a623-484d16e3f42c */ 22 try { 23 (function(t,n,c,i,d){t[c]=t[c]||{};t[c].providerId=i;t[c].options=t[c].options||d;var f='ready';t[c][f]=t[c][f]||function(z){t[c][f].q=t[c][f].q||[];t[c][f].q.push(z);return t[c];};var s=n.createElement('script');s.setAttribute('global',c);s.async=!0;s.src='https://js.tncid.app/route.js';n.querySelector('head,body').appendChild(s);})(window,document,'__tnc','f3d8ce66-41c2-403f-a623-484d16e3f42c',{autostart:true}); 24 25 function waitForGlobalVariable(variableName) { 26 if (window[variableName]) { 27 return Promise.resolve(variableName); 28 } 29 30 return new Promise(function(resolve) { 31 const intervalID = setInterval(function() { 32 if (window[variableName]) { 33 clearInterval(intervalID); 34 resolve(); 35 } 36 }, 10); 37 }); 38 } 39 40 function getCookieValue(name) { 41 const namePattern = name + "="; 42 const decodedCookies = decodeURIComponent(document.cookie); 43 const cookies = decodedCookies.split(';'); 44 45 for(let i = 0; i < cookies.length; i++) {
46 let cookie = cookies[i].trim(); 47 if (cookie.indexOf(namePattern) === 0) { 48 return cookie.substring(namePattern.length, cookie.length); 49 } 50 } 51 return null; 52 } 53 54 async function tncReady() { 55 await waitForGlobalVariable('__tnc'); 56 await new Promise(resolve=>{ 57 __tnc.ready(resolve); 58 }); 59 return __tnc; 60 } 61 62 async function setPPID(){ 63 console.log('Tnc in setPPID:', __tnc); 64 let tncid = getCookieValue('tncid'); 65 66 if (!tncid) { 67 await tncReady(); 68 tncid = await __tnc.getTNCID(); 69 } 70 // Sample output for testing purposes 71 72 console.log('TNC cookie id:', tncid ); 73 // Sample call to Google PPID Service 74 window.googletag = window.googletag || {}; 75 window.googletag.cmd = window.googletag.cmd || []; 76 window.googletag.cmd.push(async function() { 77 googletag.pubads().setPublisherProvidedId(tncid); 78 await tncReady(); 79 __tnc.setPPID(tncid); 80 }); 81 } 82 83 setPPID(); 84 } catch (error) { 85 console.log('Error in TNCJS tracking', error); 86 } 87 /* END TNCJS TRACKING */ 88 89 let adServer = 'dfp'; 90 // if (!tcData.gdprApplies) { 91 // adServer = 'dfp'; // Google Ad Server 92 // } else if ( 93 // ( tcData.purpose !== undefined && tcData.purpose.consents !== undefined && tcData.purpose.consents['1'] === true ) // Check for c
93onsent 94 // && ( tcData.vendor !== undefined && tcData.vendor.consents !== undefined && tcData.vendor.consents['755'] === true ) // Check for Google Adserver consent 95 // ) { 96 // adServer = 'dfp'; // Google Ad Server 97 // } else { 98 // adServer = 'sas'; // Smart Ad Server 99 // } 100 101 window.visibiliaJs = window.visibiliaJs || []; 102 visibiliaJs.push(function () { 103 try { 104 visibiliaJs.initAdvertising({ adServer }); 105 visibiliaJs.startAdvertising(); 106 } catch (e) { 107 console.debug("%sadvertising", LOG_PREFIX, e); 108 } 109 }); 110 break; 111 } 112 } 113});
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.