1/*! For license information please see consent-privacy-handler.min.js.LICENSE.txt */ 2(()=>{"use strict";function n(){var t,o,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function c(n,r,i,a){var c=r&&r.prototype instanceof u?r:u,s=Object.create(c.prototype);return e(s,"_invoke",function(n,e,r){var i,a,c,u=0,s=r||[],d=!1,f={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(n,e){return i=n,a=0,c=t,f.n=e,l}};function p(n,e){for(a=n,c=e,o=0;!d&&u&&!r&&o<s.length;o++){var r,i=s[o],p=f.p,v=i[2];n>3?(r=v===e)&&(c=i[(a=i[4])?5:(a=3,3)],i[4]=i[5]=t):i[0]<=p&&((r=n<2&&p<i[1])?(a=0,f.v=e,f.n=i[1]):p<v&&(r=n<3||i[0]>e||e>v)&&(i[4]=n,i[5]=e,f.n=v,a=0))}if(r||n>1)return l;throw d=!0,e}return function(r,s,v){if(u>1)throw TypeError("Generator is already running");for(d&&1===s&&p(s,v),a=s,c=v;(o=a<2?t:c)||!d;){i||(a?a<3?(a>1&&(f.n=-1),p(a,c)):f.n=c:f.v=c);try{if(u=2,i){if(a||(r="next"),o=i[r]){if(!(o=o.call(i,c)))throw TypeError("iterator result is not an object");if(!o.done)return o;c=o.value,a<2&&(a=0)}else 1===a&&(o=i.return)&&o.call(i),a<2&&(c=TypeError("The iterator does not provide a '"+r+"' method"),a=1);i=t}else if((o=(d=f.n<0)?c:n.call(e,f))!==l)break}catch(n){i=t,a=1,c=n}finally{u=1}}return{value:o,done:d}}}(n,i,a),!0),s}var l={};function u(){}function s(){}function d(){}o=Object.getPrototypeOf;var f=[][i]?o(o([][i]())):(e(o={},i,function(){return this}),o),p=d.prototype=u.prototype=Object.create(f);function v(n){return Object.setPrototypeOf?Object.setPrototypeOf(n,d):(n.__proto__=d,e(n,a,"GeneratorFunction")),n.prototype=Object.create(p),n}return s.prototype=d,e(p,"constructor",d),e(d,"constructor",s),s.displayName="GeneratorFunction",e(d,a,"GeneratorFunction"),e(p),e(p,a,"Generator"),e(p,i,function(){return this}),e(p,"toString",function(){return"[object Generator]"}),(n=function(){return{w:c,m:v}})()}function e(n,t,o,r){var i=Object.defineProperty;try{i({},"",{})}catch(n){i=0}e=function(n,t,o,r){if(t)i?i(n,t,{value:o,enumerable:!r,configurable:!r,writable:!r}):n[t]=o;else{var a=function(t,o){e(n,t,function(n){return this._invoke(t,o,n)})};a("next",0),a("throw",1),a("return",2)}},e(n,t,o,r)}function t(n,e,t,o,r,i,a){try{var c=n[i](a),l=c.value}catch(n){return void t(n)}c.done?e(l):Promise.resolve(l).then(o,r)}function o(n){return function(){var e=this,o=arguments;return new Promise(function(r,i){var a=n.apply(e,o);function c(n){t(a,r,i,c,l,"next",n)}function l(n){t(a,r,i,c,l,"throw",n)}c(void 0)})}}function r(n){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},r(n)}var i,a,c,l,u,s,d,f,p,v,g;i={TIMEOUT_MS:1e4,POLL_INTERVAL_MS:100,COOKIE_EXPIRY_YEARS:1,DEBOUNCE_DELAY_MS:50,STORAGE_KEYS:{CONSENT_DECISIONS:"ae_user_consent_decisions",DECISION_MADE:"ae_user_consent_decision_has_been_made"},CONSENT_VALUES:{ACCEPT:1,REJECT:0}},a=function(){try{var n,e=null===(n=window.localStorage)||void 0===n?void 0:n.getItem(i.STORAGE_KEYS.CONSENT_DECISIONS);if(!e)return null;var t=JSON.parse(e);return"object"!==r(t)||null===t?(console.warn("Invalid consent cookie format - not an object"),null):t}catch(n){return console.error("Error parsing consent cookie:",n),null}},c=function(){try{var n,e=null===(n=window.__audioEyeContext)||void 0===n||null===(n=n.consentManagementConfig)||void 0===n||null===(n=n.cookieConsentConfig)||void 0===n?void 0:n.cookies;if(!e)return null;var t=new Map;return e.forEach(function(n){var e=n.category,o=n.name;t.has(e)||t.set(e,[]),t.get(e).push(o)}),t}catch(n){return console.error("Error parsing cookie settings reference:",n),null}},l=function(){try{var n;return"true"===(null===(n=window.localStorage)||void 0===n?void 0:n.getItem(i.STORAGE_KEYS.DECISION_MADE))}catch(n){return console.error("Error checking user interaction status:",n),!1}},u=function(n,e,t){try{if("boolean"!=typeof n||"boolean"!=typeof e||"boolean"!=typeof t)return console.error("Invalid parameters for setCdlPrivacyCookie - all parameters must be boolean"),!1;var o={targetOptOut:n,saleOptOut:e,synced:t},r=new Date;r.setFullYear(r.getFullYear()+i.COOKIE_EXPIRY_YEARS);var a=window.location.hostname.split("."),c=a.length>=2?"; domain=.".concat(a.slice(-2).join(".")):"";return document.cookie="cdlPrivacy=".concat(encodeURIComponent(JSON.stringify(o)),"; path=/").concat(c,"; expires=").concat(r.toUTCString()),!0}catch(n){return console.error("Error setting cdlPrivacy cookie:",n),!1}},s=function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.TIMEOUT_MS;return"function"!=typeof n?Promise.reject(new Error("checkFn must be a function")):new Promise(function(t){var o=Date.now();if(n())t(!0);else{var r=function(){try{n()?t(!0):Date.now()-o<e?setTimeout(r,i.POLL_INTERVAL_MS):(console.warn("Timeout waiting for condition after ".concat(e,"ms")),t(!1))}catch(n){console.error("Error in waitFor condition check:",n),t(!1)}};setTimeout(r,i.POLL_INTERVAL_MS)}})},d=function(){var e=o(n().m(function e(t){var o,i;return n().w(function(n){for(;;)switch(n.n){case 0:if(n.p=0,"boolean"==typeof t){n.n=1;break}throw new Error("Invalid optOut parameter: expected boolean, got ".concat(r(t)));case 1:return n.n=2,s(function(){return void 0!==window.coxAutoDataLayer&&"function"==typeof window.coxAutoDataLayer.updatePrivacyOptOut});case 2:if(n.v){n.n=3;break}throw new Error("Timeout waiting for coxAutoDataLayer to become available");case 3:if(!(o=window.coxAutoDataLayer.updatePrivacyOptOut({targetOptOut:t,saleOptOut:t}))||"function"!=typeof o.then){n.n=4;break}return n.n=4,o;case 4:return console.log("Privacy opt-out updated successfully:",t),n.a(2,!0);case 5:return n.p=5,i=n.v,console.error("Error calling updatePrivacyOptOut:",i),n.a(2,!1)}},e,null,[[0,5]])}));return function(n){return e.apply(this,arguments)}}(),f=function(n){var e,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.DEBOUNCE_DELAY_MS;return function(){for(var o=arguments.length,r=new Array(o),i=0;i<o;i++)r[i]=arguments[i];clearTimeout(e),e=setTimeout(function(){return n.apply(null,r)},t)}},p=function(n){return n===i.CONSENT_VALUES.ACCEPT||n===i.CONSENT_VALUES.REJECT||null==n},v=function(){var e=o(n().m(function e(){var t,o,r,s,v,g,y,E,w,S,m;return n().w(function(n){for(;;)if(0===n.n)return console.log("Setting up Springtime consent listener"),t=null,o=a(),r=(null==o?void 0:o.allowedCookieNames)||[],s=c(),o&&0!==r.length&&s?(v=s.get("marketing")||[],g=v.every(function(n){return r.includes(n)}),t=l()?g?i.CONSENT_VALUES.ACCEPT:i.CONSENT_VALUES.REJECT:null):(console.warn("Consent data not yet available (AudioEye may still be initializing) - setting default opt-out state, listener will still be registered"),u(!0,!0,!1)),y=function(){u(!1,!1,!0),console.log("User opted IN - tracking will be enabled on next pageload")},E=function(){d(!0),console.log("User opted OUT - disabled tracking")},w=function(){u(!0,!0,!1),console.log("Consent changed to null (undecided) - treating as opt-out")},S=function(n,e){if(p(n))if(p(e)){var t="".concat(n,"->").concat(e);switch(t){case"null->1":y();break;case"null->0":E();break;case"null->undefined":case"undefined->undefined":l()?(console.log("User interacted with banner but targeting is undefined - treating as opt-out"),E()):console.log("Consent state is undefined and user has not interacted - no action taken");break;case"1->0":case"0->1":case"undefined->1":case"undefined->0":d(e===i.CONSENT_VALUES.REJECT),console.log("State change - updating privacy opt-out:",e===i.CONSENT_VALUES.REJECT);break;default:null===e?w():console.log("Unhandled consent transition:",t)}}else console.warn('Invalid "to" consent state:',e);else console.warn('Invalid "from" consent state:',n)},m=f(function(n){try{var e,o,r=null!==(e=null==n||null===(o=n.detail)||void 0===o||null===(o=o.message)||void 0===o?void 0:o.marketing)&&void 0!==e?e:null;console.log("Consent event received - marketing state:",r),r!==t?(console.log("Consent change detected:",t,"->",r),S(t,r),t=r,void 0!==window.ConsentEventDispatcher&&window.ConsentEventDispatcher.dispatchConsentUpdate(r,"springtime-consent-handler")):console.log("No consent state change detected, ignoring event")}catch(n){console.error("Error handling consent decision event:",n)}}),window.addEventListener("consent-decision",m),n.a(2,function(){window.removeEventListener("consent-decision",m),console.log("Springtime consent listener cleanup completed")})},e)}));return function(){return e.apply(this,arguments)}}(),g=function(){var e=o(n().m(function e(){var t,o;return n().w(function(n){for(;;)switch(n.n){case 0:if(n.p=0,console.log("Springtime consent privacy handler initializing..."),"undefined"!=typeof window){n.n=1;break}throw new Error("Window object not available - cannot initialize consent handler");case 1:return window.localStorage||console.warn("localStorage not available - consent functionality may be limited"),n.n=2,v();case 2:return t=n.v,console.log("Springtime consent privacy handler initialized successfully"),window._springtimeConsentCleanup=t,n.a(2,{success:!0,cleanup:t});case 3:return n.p=3,o=n.v,console.error("Failed to initialize Springtime consent privacy handler:",o),n.a(2,{success:!1,error:o})}},e,null,[[0,3]])}
2));return function(){return e.apply(this,arguments)}}(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",g):g(),"undefined"!=typeof module&&module.exports&&(module.exports={getConsentDecisionsLocalStorage:a,getCookieSettingsReferenceMapByCategory:c,isUserInteracted:l,setCdlPrivacyCookie:u,updatePrivacyOptOut:d,setupConsentListener:v,init:g,waitFor:s,debounce:f,isValidConsentState:p,CONSTANTS:i})})();
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.