@dev-wrapp/80918ac8127ba 0.0.103 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- /*! app name: app-p80918ac8127ba.js | version: 0.0.103 | build date: 2025-07-17T01:30:55.643Z */(()=>{var __webpack_modules__={"../builds/80918AC8127BA/0.0.103/prebid.js":()=>{eval('/* prebid.js v9.23.0\nUpdated: 2025-07-13\nModules: currency, criteoBidAdapter, ixBidAdapter, sovrnBidAdapter, testbidderBidAdapter */\nif(window.pbjs&&window.pbjs.libLoaded)try{window.pbjs.getConfig("debug")&&console.warn("Attempted to load a copy of Prebid.js that clashes with the existing \'pbjs\' instance. Load aborted.")}catch(e){}else (function(){\n(()=>{var r,t={433:(r,t,e)=>{function n(r,t,e,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)r=r?r[t[n]]:o;return r===o?e:r}e.d(t,{A:()=>n})},8128:r=>{\n/*\n* @license MIT\n* Fun Hooks v0.9.10\n* (c) @snapwich\n*/\nu.SYNC=1,u.ASYNC=2,u.QUEUE=4;var t="fun-hooks";var e=Object.freeze({useProxy:!0,ready:0}),n=new WeakMap,o="2,1,0"===[1].reduce((function(r,t,e){return[r,t,e]}),2).toString()?Array.prototype.reduce:function(r,t){var e,n=Object(this),o=n.length>>>0,i=0;if(t)e=t;else{for(;i<o&&!(i in n);)i++;e=n[i++]}for(;i<o;)i in n&&(e=r(e,n[i],i,n)),i++;return e};function i(r,t){return Array.prototype.slice.call(r,t)}var f=Object.assign||function(r){return o.call(i(arguments,1),(function(r,t){return t&&Object.keys(t).forEach((function(e){r[e]=t[e]})),r}),r)};function u(r){var a,c={},l=[];function p(r,t){return"function"==typeof r?h.call(null,"sync",r,t):"string"==typeof r&&"function"==typeof t?h.apply(null,arguments):"object"==typeof r?y.apply(null,arguments):void 0}function y(r,t,e){var n=!0;void 0===t&&(t=Object.getOwnPropertyNames(r),n=!1);var o={},i=["constructor"];do{(t=t.filter((function(t){return!("function"!=typeof r[t]||-1!==i.indexOf(t)||t.match(/^_/))}))).forEach((function(t){var n=t.split(":"),i=n[0],f=n[1]||"sync";if(!o[i]){var u=r[i];o[i]=r[i]=h(f,u,e?[e,i]:void 0)}})),r=Object.getPrototypeOf(r)}while(n&&r);return o}function s(r){var e=Array.isArray(r)?r:r.split(".");return o.call(e,(function(n,o,i){var f=n[o],u=!1;return f||(i===e.length-1?(a||l.push((function(){u||console.warn(t+": referenced \'"+r+"\' but it was never created")})),n[o]=v((function(r){n[o]=r,u=!0}))):n[o]={})}),c)}function v(r){var t=[],e=[],o=function(){},i={before:function(r,e){return a.call(this,t,"before",r,e)},after:function(r,t){return a.call(this,e,"after",r,t)},getHooks:function(r){var n=t.concat(e);"object"==typeof r&&(n=n.filter((function(t){return Object.keys(r).every((function(e){return t[e]===r[e]}))})));try{f(n,{remove:function(){return n.forEach((function(r){r.remove()})),this}})}catch(r){console.error("error adding `remove` to array, did you modify Array.prototype?")}return n},removeAll:function(){return this.getHooks().remove()}},u={install:function(n,i,f){this.type=n,o=f,f(t,e),r&&r(i)}};return n.set(i.after,u),i;function a(r,n,i,f){var u={hook:i,type:n,priority:f||10,remove:function(){var n=r.indexOf(u);-1!==n&&(r.splice(n,1),o(t,e))}};return r.push(u),r.sort((function(r,t){return t.priority-r.priority})),o(t,e),this}}function h(e,o,c){var p=o.after&&n.get(o.after);if(p){if(p.type!==e)throw t+": recreated hookable with different type";return o}var y,h,d=c?s(c):v(),b={get:function(r,t){return d[t]||Reflect.get.apply(Reflect,arguments)}};return a||l.push(g),r.useProxy&&"function"==typeof Proxy&&Proxy.revocable?h=new Proxy(o,b):(h=function(){return b.apply?b.apply(o,this,i(arguments)):o.apply(this,arguments)},f(h,d)),n.get(h.after).install(e,h,(function(r,t){var n,o=[];r.length||t.length?(r.forEach(f),n=o.push(void 0)-1,t.forEach(f),y=function(r,t,f){var u,a=0,c="async"===e&&"function"==typeof f[f.length-1]&&f.pop();function l(r){"sync"===e?u=r:c&&c.apply(null,arguments)}function p(r){if(o[a]){var n=i(arguments);return p.bail=l,n.unshift(p),o[a++].apply(t,n)}"sync"===e?u=r:c&&c.apply(null,arguments)}return o[n]=function(){var n=i(arguments,1);"async"===e&&c&&(delete p.bail,n.push(p));var o=r.apply(t,n);"sync"===e&&p(o)},p.apply(null,f),u}):y=void 0;function f(r){o.push(r.hook)}g()})),h;function g(){!a&&("sync"!==e||r.ready&u.SYNC)&&("async"!==e||r.ready&u.ASYNC)?"sync"!==e&&r.ready&u.QUEUE?b.apply=function(){var r=arguments;l.push((function(){h.apply(r[1],r[2])}))}:b.apply=function(){throw t+": hooked function not ready"}:b.apply=y}}return(r=f({},e,r)).ready?p.ready=function(){a=!0,function(r){for(var t;t=r.shift();)t()}(l)}:a=!0,p.get=s,p}r.exports=u},3172:(r,t,e)=>{function n(r,t,e){t.split&&(t=t.split("."));for(var n,o,i=0,f=t.length,u=r;i<f&&"__proto__"!=(o=""+t[i++])&&"constructor"!==o&&"prototype"!==o;)u=u[o]=i===f?e:typeof(n=u[o])==typeof t?n:0*t[i]!=0||~(""+t[i]).indexOf(".")?{}:[]}e.d(t,{J:()=>n})},5751:(r,t,e)=>{function n(r){var t,e,o;if(Array.isArray(r)){for(e=Array(t=r.length);t--;)e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}if("[object Object]"===Object.prototype.toString.call(r)){for(t in e={},r)"__proto__"===t?Object.defineProperty(e,t,{value:n(r[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}return r}e.d(t,{Q:()=>n})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.m=t,r=[],n.O=(t,e,o,i)=>{if(!e){var f=1/0;for(l=0;l<r.length;l++){e=r[l][0],o=r[l][1],i=r[l][2];for(var u=!0,a=0;a<e.length;a++)(!1&i||f>=i)&&Object.keys(n.O).every((r=>n.O[r](e[a])))?e.splice(a--,1):(u=!1,i<f&&(f=i));if(u){r.splice(l--,1);var c=o();void 0!==c&&(t=c)}}return t}i=i||0;for(var l=r.length;l>0&&r[l-1][2]>i;l--)r[l]=r[l-1];r[l]=[e,o,i]},n.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return n.d(t,{a:t}),t},n.d=(r,t)=>{for(var e in t)n.o(t,e)&&!n.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:t[e]})},n.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t),(()=>{var r={673:0};n.O.j=t=>0===r[t];var t=(t,e)=>{var o,i,f=e[0],u=e[1],a=e[2],c=0;if(f.some((t=>0!==r[t]))){for(o in u)n.o(u,o)&&(n.m[o]=u[o]);if(a)var l=a(n)}for(t&&t(e);c<f.length;c++)i=f[c],n.o(r,i)&&r[i]&&r[i][0](),r[i]=0;return n.O(l)},e=self.pbjsChunk=self.pbjsChunk||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))})();var o=n.O(void 0,[802,85],(()=>n(8261)));o=n.O(o)})();\n(self.pbjsChunk=self.pbjsChunk||[]).push([[802],{5789:(e,t,n)=>{n.d(t,{A4:()=>u,J7:()=>l,Pg:()=>f});var i=n(1580),r=n(1069),o=n(5901),s=n(7873),a=n(5569);const d=(0,s.m)(),c="outstream";function u(e){const{url:t,config:n,id:s,callback:u,loaded:l,adUnitCode:f,renderNow:g}=e;this.url=t,this.config=n,this.handlers={},this.id=s,this.renderNow=g,this.loaded=l,this.cmd=[],this.push=e=>{"function"==typeof e?this.loaded?e.call():this.cmd.push(e):(0,r.vV)("Commands given to Renderer.push must be wrapped in a function")},this.callback=u||(()=>{this.loaded=!0,this.process()}),this.render=function(){const e=arguments,n=()=>{this._render?this._render.apply(this,e):(0,r.JE)("No render function was provided, please use .setRender on the renderer")};!function(e){const t=d.adUnits,n=(0,o.I6)(t,(t=>t.code===e));if(!n)return!1;const i=n?.renderer,r=!!(i&&i.url&&i.render),s=n?.mediaTypes?.video?.renderer,a=!!(s&&s.url&&s.render);return!!(r&&!0!==i.backupOnly||a&&!0!==s.backupOnly)}(f)?g?n():(this.cmd.unshift(n),(0,i.R)(t,a.tp,c,this.callback,this.documentContext)):((0,r.JE)(`External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ${f}`),n())}.bind(this)}function l(e){return!(!e||!e.url&&!e.renderNow)}function f(e,t,n){let i=null;e.config&&e.config.documentResolver&&(i=e.config.documentResolver(t,document,n)),i||(i=document),e.documentContext=i,e.render(t,e.documentContext)}u.install=function(e){let{url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a}=e;return new u({url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a})},u.prototype.getConfig=function(){return this.config},u.prototype.setRender=function(e){this._render=e},u.prototype.setEventHandlers=function(e){this.handlers=e},u.prototype.handleVideoEvent=function(e){let{id:t,eventName:n}=e;"function"==typeof this.handlers[n]&&this.handlers[n](),(0,r.OG)(`Prebid Renderer event for id ${t} type ${n}`)},u.prototype.process=function(){for(;this.cmd.length>0;)try{this.cmd.shift().call()}catch(e){(0,r.vV)("Error processing Renderer command: ",e)}}},6811:(e,t,n)=>{n.d(t,{DL:()=>d,Ml:()=>r,Ue:()=>i,VJ:()=>u,hE:()=>c,hq:()=>a,mo:()=>s,pY:()=>l,uc:()=>o});const i="accessDevice",r="syncUser",o="fetchBids",s="reportAnalytics",a="transmitEids",d="transmitUfpd",c="transmitPreciseGeo",u="transmitTid",l="loadExternalScript"},3441:(e,t,n)=>{n.d(t,{s:()=>r});var i=n(8046);const r=(0,n(2604).ZI)((e=>i.Ay.resolveAlias(e)))},5569:(e,t,n)=>{n.d(t,{Tn:()=>o,tW:()=>r,tp:()=>i});const i="prebid",r="bidder",o="analytics"},2604:(e,t,n)=>{n.d(t,{Dk:()=>s,Ii:()=>o,TQ:()=>g,XG:()=>u,ZI:()=>p,Zw:()=>c,bt:()=>l,e3:()=>f,iK:()=>a,q7:()=>d});var i=n(5569),r=n(9214);const o="component",s=o+"Type",a=o+"Name",d="adapterCode",c="storageType",u="configName",l="syncType",f="syncUrl",g="_config";function p(e){return function(t,n,r){const c={[s]:t,[a]:n,[o]:`${t}.${n}`};return t===i.tW&&(c[d]=e(n)),h(Object.assign(c,r))}}const h=(0,r.A_)("sync",(e=>e))},5139:(e,t,n)=>{n.d(t,{io:()=>s,qB:()=>o});var i=n(1069),r=n(2604);const[o,s]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.h0)("Activity control:");const t={};function n(e){return t[e]=t[e]||[]}function o(t,n,i,o){let s;try{s=i(o)}catch(i){e.logError(`Exception in rule ${n} for \'${t}\'`,i),s={allow:!1,reason:i}}return s&&Object.assign({activity:t,name:n,component:o[r.Ii]},s)}const s={};function a(t){let{activity:n,name:i,allow:r,reason:o,component:a}=t;const d=`${i} ${r?"allowed":"denied"} \'${n}\' for \'${a}\'${o?":":""}`,c=s.hasOwnProperty(d);if(c&&clearTimeout(s[d]),s[d]=setTimeout((()=>delete s[d]),1e3),!c){const t=[d];o&&t.push(o),(r?e.logInfo:e.logWarn).apply(e,t)}}return[function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;const o=n(e),s=o.findIndex((e=>{let[t]=e;return r<t})),a=[r,t,i];return o.splice(s<0?o.length:s,0,a),function(){const e=o.indexOf(a);e>=0&&o.splice(e,1)}},function(e,t){let i,r;for(const[s,d,c]of n(e)){if(i!==s&&r)break;i=s;const n=o(e,d,c,t);if(n){if(!n.allow)return a(n),!1;r=n}}return r&&a(r),!0}]}()},9075:(e,t,n)=>{n.d(t,{$A:()=>T,BS:()=>P,Hh:()=>q,Pk:()=>x,Uc:()=>O,XO:()=>W,bw:()=>U,n6:()=>w,qn:()=>_,vB:()=>N,vW:()=>k,vd:()=>S});var i=n(1069),r=n(5023),o=n(8969),s=n(3272),a=n(5789),d=n(1371),c=n(6881),u=n(6031),l=n(9214),f=n(2449),g=n(5555),p=n(8046),h=n(6894),m=n(7779);const{AD_RENDER_FAILED:b,AD_RENDER_SUCCEEDED:y,STALE_RENDER:v,BID_WON:E,EXPIRED_RENDER:A}=o.qY,{EXCEPTION:I}=o.as,T=(0,l.A_)("sync",(function(e){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.k.resolve()).then((t=>t??c.n.findBidByAdId(e))).catch((()=>{}))})),w=(0,l.A_)("sync",(function(e){r.Ic(E,e),c.n.addWinningBid(e)}));function C(e){let{reason:t,message:n,bid:o,id:s}=e;const a={reason:t,message:n};o&&(a.bid=o,a.adId=o.adId),s&&(a.adId=s),(0,i.vV)(`Error rendering ad (id: ${s}): ${n}`),r.Ic(b,a)}function B(e){let{doc:t,bid:n,id:i}=e;const o={doc:t};n&&(o.bid=n),i&&(o.adId=i),p.Ay.callAdRenderSucceededBidder(n.adapterCode||n.bidder,n),r.Ic(y,o)}function O(e,t){switch(e.event){case o.qY.AD_RENDER_FAILED:C({bid:t,id:t.adId,reason:e.info.reason,message:e.info.message});break;case o.qY.AD_RENDER_SUCCEEDED:B({doc:null,bid:t,id:t.adId});break;default:(0,i.vV)(`Received event request for unsupported event: \'${e.event}\' (adId: \'${t.adId}\')`)}}function k(e,t,n){let{resizeFn:i,fireTrackers:r=f.vO}=n;if("resizeNativeHeight"===e.action)i(e.width,e.height);else r(e,t)}const R={[o.nl.EVENT]:O};R[o.nl.NATIVE]=k;const S=(0,l.A_)("sync",(function(e,t){const{ad:n,adUrl:r,cpm:o,originalCpm:s,width:a,height:d}=e,c={AUCTION_PRICE:s||o,CLICKTHROUGH:t?.clickUrl||""};return{ad:(0,i.gM)(n,c),adUrl:(0,i.gM)(r,c),width:a,height:d}})),D=(0,l.A_)("sync",(function(e){let{renderFn:t,resizeFn:n,bidResponse:r,options:s,doc:a,isMainDocument:c=a===document&&!(0,i.al)()}=e;const u=r.mediaType===d.G_;if(c||u)return void C({reason:o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT,message:u?"Cannot render video ad without a renderer":"renderAd was prevented from writing to the main document.",bid:r,id:r.adId});const l=S(r,s);t(Object.assign({adId:r.adId},l));const{width:f,height:g}=l;null!=(f??g)&&n(f,g)}));function U(e){let{renderFn:t,resizeFn:n,adId:a,options:d,bidResponse:c,doc:u}=e;q(c,(()=>{if(null!=c){if((c.status!==o.tl.RENDERED||((0,i.JE)(`Ad id ${a} has been rendered before`),r.Ic(v,c),!s.$W.getConfig("auctionOptions")?.suppressStaleRender))&&(m.uW.isBidNotExpired(c)||((0,i.JE)(`Ad id ${a} has been expired`),r.Ic(A,c),!s.$W.getConfig("auctionOptions")?.suppressExpiredRender)))try{D({renderFn:t,resizeFn:n,bidResponse:c,options:d,doc:u})}catch(e){C({reason:o.as.EXCEPTION,message:e.message,id:a,bid:c})}}else C({reason:o.as.CANNOT_FIND_AD,message:`Cannot find ad \'${a}\'`,id:a})}))}function _(e){const t=(0,h.BO)(e.metrics);t.checkpoint("bidRender"),t.timeBetween("bidWon","bidRender","render.deferred"),t.timeBetween("auctionEnd","bidRender","render.pending"),t.timeBetween("requestBids","bidRender","render.e2e"),e.status=o.tl.RENDERED}D.before((function(e,t){const{bidResponse:n,doc:i}=t;(0,a.J7)(n.renderer)?((0,a.Pg)(n.renderer,n,i),B({doc:i,bid:n,id:n.adId}),e.bail()):e(t)}),100);const $=new WeakMap,j=new WeakSet;function q(e,t){null!=e?($.set(e,t),e.deferRendering||N(e),x(e)):t()}function x(e){j.has(e)||(j.add(e),w(e))}function N(e){const t=$.get(e);t&&(t(),_(e),$.delete(e))}function P(e,t,n){let r;function s(e,n){C(Object.assign({id:t,bid:r},{reason:e,message:n}))}function a(t,n){e.defaultView&&e.defaultView.frameElement&&(t&&(e.defaultView.frameElement.width=t),n&&(e.defaultView.frameElement.height=n))}const d=(c={resizeFn:a},function(e,t,n){R.hasOwnProperty(e)&&R[e](t,n,c)});var c;function l(t){t.ad?(e.write(t.ad),e.close(),B({doc:e,bid:r,id:r.adId})):(0,u.H)(r).then((n=>n(t,{sendMessage:(e,t)=>d(e,t,r),mkFrame:i.hw},e.defaultView))).then((()=>B({doc:e,bid:r,id:r.adId})),(e=>{s(e?.reason||o.as.EXCEPTION,e?.message),e?.stack&&(0,i.vV)(e)}));const n=document.createComment(`Creative ${r.creativeId} served by ${r.bidder} Prebid.js Header Bidding`);(0,i._s)(n,e,"html")}try{t&&e?T(t).then((i=>{r=i,U({renderFn:l,resizeFn:a,adId:t,options:{clickUrl:n?.clickThrough},bidResponse:i,doc:e})})):s(o.as.MISSING_DOC_OR_ADID,"missing "+(t?"doc":"adId"))}catch(e){s(I,e.message)}}function W(){if(!window.frames[o.IY])if(document.body){const e=(0,i.CA)();e.name=o.IY,document.body.appendChild(e)}else window.requestAnimationFrame(W)}},8046:(e,t,n)=>{n.d(t,{Ay:()=>te,pX:()=>Q});var i=n(1069),r=n(2449),o=n(9115),s=n(8044),a=n(3272),d=n(9214),c=n(5901);let u={};function l(e,t,n){let i=function(e,t){let n=u[e]=u[e]||{bidders:{}};return t?n.bidders[t]=n.bidders[t]||{}:n}(e,n);return i[t]=(i[t]||0)+1,i[t]}function f(e){return l(e,"auctionsCounter")}function g(e){return u?.[e]?.requestsCounter||0}function p(e,t){return u?.[e]?.bidders?.[t]?.requestsCounter||0}function h(e,t){return u?.[e]?.bidders?.[t]?.winsCounter||0}function m(e){return u?.[e]?.auctionsCounter||0}var b=n(7934),y=n(6916),v=n(5023),E=n(8969),A=n(6894),I=n(6881),T=n(5569),w=n(5139),C=n(6811),B=n(2604),O=n(433);const k=["data","ext.data","yob","gender","keywords","kwarray","id","buyeruid","customdata"].map((e=>`user.${e}`)).concat("device.ext.cdep"),R=["user.eids","user.ext.eids"],S=["user.geo.lat","user.geo.lon","device.geo.lat","device.geo.lon"],D=["device.ip"],U=["device.ipv6"];function _(e){return Object.assign({get(){},run(e,t,n,i,r){const o=n&&n[i];if(function(e){return null!=e&&("object"!=typeof e||Object.keys(e).length>0)}(o)&&r()){const e=this.get(o);void 0===e?delete n[i]:n[i]=e}}},e)}function $(e){return e.forEach((e=>{e.paths=e.paths.map((e=>{const t=e.split("."),n=t.pop();return[t.length>0?t.join("."):null,n]}))})),function(t,n){const i=[];for(var r=arguments.length,o=new Array(r>2?r-2:0),s=2;s<r;s++)o[s-2]=arguments[s];const a=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(t){return e.hasOwnProperty(t.name)||(e[t.name]=!!t.applies(...n)),e[t.name]}}(t,...o);return e.forEach((e=>{if(!1!==t[e.name])for(const[r,o]of e.paths){const s=null==r?n:(0,O.A)(n,r);if(i.push(e.run(n,r,s,o,a.bind(null,e))),!1===t[e.name])return}})),i.filter((e=>null!=e))}}function j(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:w.io;return function(n){return!t(e,n)}}function q(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.DL,paths:k,applies:j(C.DL,e)},{name:C.hq,paths:R,applies:j(C.hq,e)},{name:C.hE,paths:S,applies:j(C.hE,e),get:e=>Math.round(100*(e+Number.EPSILON))/100},{name:C.hE,paths:D,applies:j(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(".").map(Number);if(4!=t.length)return null;let n=[];for(let e=0;e<4;e++){let t=Math.max(0,Math.min(8,24-8*e));n.push(255<<8-t&255)}return t.map(((e,t)=>e&n[t])).join(".")}(e)},{name:C.hE,paths:U,applies:j(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(":").map((e=>parseInt(e,16)));for(t=t.map((e=>isNaN(e)?0:e));t.length<8;)t.push(0);if(8!=t.length)return null;let n=[];for(let e=0;e<8;e++){let t=Math.max(0,Math.min(16,64-16*e));n.push(65535<<16-t&65535)}return t.map(((e,t)=>e&n[t])).map((e=>e.toString(16))).join(":")}(e)},{name:C.VJ,paths:["source.tid"],applies:j(C.VJ,e)}].map(_)}const x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;const t=$(q(e)),n=$(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w.io;return[{name:C.hq,paths:["userId","userIdAsEids"],applies:j(C.hq,e)},{name:C.VJ,paths:["ortb2Imp.ext.tid"],applies:j(C.VJ,e)}].map(_)}(e));return function(e){const i={};return{ortb2:n=>(t(i,n,e),n),bidRequest:t=>(n(i,t,e),t)}}}();(0,w.qB)(C.VJ,"enableTIDs config",(()=>{if(!a.$W.getConfig("enableTIDs"))return{allow:!1,reason:"TIDs are disabled"}}));const N="pbsBidAdapter",P={CLIENT:"client",SERVER:"server"},W={isAllowed:w.io,redact:x};let V={},M=V.bidderRegistry={},G=V.aliasRegistry={},F=[];a.$W.getConfig("s2sConfig",(e=>{e&&e.s2sConfig&&(F=(0,i.cy)(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])}));var H={};const L=(0,B.ZI)((e=>V.resolveAlias(e)));const z=(0,d.A_)("sync",(function(e){let{bidderCode:t,auctionId:n,bidderRequestId:r,adUnits:o,src:s,metrics:a}=e;return o.reduce(((e,o)=>{const d=o.bids.filter((e=>e.bidder===t));return null==t&&0===d.length&&null!=o.s2sBid&&d.push({bidder:null}),e.push(d.reduce(((e,d)=>{const c=null==(d=Object.assign({},d,{ortb2Imp:(0,i.D9)({},o.ortb2Imp,d.ortb2Imp)},(0,i.SH)(o,["nativeParams","nativeOrtbRequest","mediaType","renderer"]))).mediaTypes?o.mediaTypes:d.mediaTypes;return(0,i.wD)(c)?d=Object.assign({},d,{mediaTypes:c}):(0,i.vV)(`mediaTypes is not correctly configured for adunit ${o.code}`),"client"===s&&function(e,t){l(e,"requestsCounter",t)}(o.code,t),e.push(Object.assign({},d,{adUnitCode:o.code,transactionId:o.transactionId,adUnitId:o.adUnitId,sizes:c?.banner?.sizes||c?.video?.playerSize||[],bidId:d.bid_id||(0,i.s0)(),bidderRequestId:r,auctionId:n,src:s,metrics:a,auctionsCount:m(o.code),bidRequestsCount:g(o.code),bidderRequestsCount:p(o.code,d.bidder),bidderWinsCount:h(o.code,d.bidder),deferBilling:!!o.deferBilling})),e}),[])),e}),[]).reduce(i.Bq,[]).filter((e=>""!==e))}),"getBids");const J=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return e;{const i=n(t);return e.filter((e=>i.has(e.bidder)))}}),"filterBidsForAdUnit");const K=(0,d.A_)("sync",((e,t)=>e),"setupAdUnitMediaTypes");function Q(e){(0,i.cy)(e)||(e=[e]);const t=new Set([null]);return e.filter((e=>e&&e.enabled)).flatMap((e=>e.bidders)).forEach((e=>t.add(e))),t}const Y=(0,d.A_)("sync",(function(e,t){let{getS2SBidders:n=Q}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n(t);return(0,i.ZA)(e).reduce(((e,t)=>(e[r.has(t)?P.SERVER:P.CLIENT].push(t),e)),{[P.CLIENT]:[],[P.SERVER]:[]})}),"partitionBidders");function X(e,t){const n=M[e],i=n?.getSpec&&n.getSpec();if(i&&i[t]&&"function"==typeof i[t])return[i,i[t]]}function Z(e,t,n,r){try{(0,i.fH)(`Invoking ${e}.${t}`);for(var o=arguments.length,s=new Array(o>4?o-4:0),d=4;d<o;d++)s[d-4]=arguments[d];a.$W.runWithBidder(e,r.bind(n,...s))}catch(n){(0,i.JE)(`Error calling ${t} of ${e}`)}}function ee(e,t,n){if(n?.source!==E.RW.SRC){const i=X(e,t);null!=i&&Z(e,t,...i,n)}}V.makeBidRequests=(0,d.A_)("sync",(function(e,t,n,o,s){let d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},u=arguments.length>6?arguments[6]:void 0;u=(0,A.BO)(u),v.Ic(E.qY.BEFORE_REQUEST_BIDS,e),(0,r.nk)(e),e.map((e=>e.code)).filter(i.hj).forEach(f),e.forEach((e=>{(0,i.Qd)(e.mediaTypes)||(e.mediaTypes={}),e.bids=e.bids.filter((e=>!e.bidder||W.isAllowed(C.uc,L(T.tW,e.bidder)))),l(e.code,"requestsCounter")})),e=K(e,s);let{[P.CLIENT]:g,[P.SERVER]:p}=Y(e,F);a.$W.getConfig("bidderSequence")===a.Ov&&(g=(0,i.k4)(g));const h=(0,b.EN)();let m=[];const I=d.global||{},w=d.bidder||{};function O(e,t){const r=W.redact(null!=t?t:L(T.tW,e.bidderCode)),o=Object.freeze(r.ortb2((0,i.D9)({source:{tid:n}},I,w[e.bidderCode])));return e.ortb2=o,e.bids=e.bids.map((e=>(e.ortb2=o,r.bidRequest(e)))),e}F.forEach((r=>{const o=function(e){return L(T.tp,N,{[B.XG]:e.configName})}(r);if(r&&r.enabled&&W.isAllowed(C.uc,o)){let{adUnits:s,hasModuleBids:a}=function(e,t){let n=(0,i.Go)(e),r=!1;return n.forEach((e=>{const n=e.bids.filter((e=>e.module===N&&e.params?.configName===t.configName));1===n.length?(e.s2sBid=n[0],r=!0,e.ortb2Imp=(0,i.D9)({},e.s2sBid.ortb2Imp,e.ortb2Imp)):n.length>1&&(0,i.JE)(\'Multiple "module" bids for the same s2s configuration; all will be ignored\',n),e.bids=J(e.bids,t).map((e=>(e.bid_id=(0,i.s0)(),e)))})),n=n.filter((e=>0!==e.bids.length||null!=e.s2sBid)),{adUnits:n,hasModuleBids:r}}(e,r),d=(0,i.lk)();(0===p.length&&a?[null]:p).forEach((e=>{const a=(0,i.s0)(),c=u.fork(),l=O({bidderCode:e,auctionId:n,bidderRequestId:a,uniquePbsTid:d,bids:z({bidderCode:e,auctionId:n,bidderRequestId:a,adUnits:(0,i.Go)(s),src:E.RW.SRC,metrics:c}),auctionStart:t,timeout:r.timeout,src:E.RW.SRC,refererInfo:h,metrics:c},o);0!==l.bids.length&&m.push(l)})),s.forEach((e=>{let t=e.bids.filter((e=>(0,c.I6)(m,(t=>(0,c.I6)(t.bids,(t=>t.bidId===e.bid_id))))));e.bids=t})),m.forEach((e=>{void 0===e.adUnitsS2SCopy&&(e.adUnitsS2SCopy=s.filter((e=>e.bids.length>0||null!=e.s2sBid)))}))}}));let k=function(e){let t=(0,i.Go)(e);return t.forEach((e=>{e.bids=J(e.bids,null)})),t=t.filter((e=>0!==e.bids.length)),t}(e);return g.forEach((e=>{const r=(0,i.s0)(),a=u.fork(),d=O({bidderCode:e,auctionId:n,bidderRequestId:r,bids:z({bidderCode:e,auctionId:n,bidderRequestId:r,adUnits:(0,i.Go)(k),labels:s,src:"client",metrics:a}),auctionStart:t,timeout:o,refererInfo:h,metrics:a}),c=M[e];c||(0,i.vV)(`Trying to make a request for bidder that does not exist: ${e}`),c&&d.bids&&0!==d.bids.length&&m.push(d)})),m.forEach((e=>{y.mW.getConsentData()&&(e.gdprConsent=y.mW.getConsentData()),y.t6.getConsentData()&&(e.uspConsent=y.t6.getConsentData()),y.ad.getConsentData()&&(e.gppConsent=y.ad.getConsentData())})),m}),"makeBidRequests"),V.callBids=function(e,t,n,r,o,d,c){let u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};if(!t.length)return void(0,i.JE)("callBids executed with no bidRequests. Were they filtered by labels or sizing?");let[l,f]=t.reduce(((e,t)=>(e[Number(void 0!==t.src&&t.src===E.RW.SRC)].push(t),e)),[[],[]]);var g=[];f.forEach((e=>{for(var t=-1,n=0;n<g.length;++n)if(e.uniquePbsTid===g[n].uniquePbsTid){t=n;break}t<=-1&&g.push(e)}));let p=0;F.forEach((e=>{if(e&&g[p]&&Q(e).has(g[p].bidderCode)){const t=(0,s.g4)(d,o?{request:o.request.bind(null,"s2s"),done:o.done}:void 0);let a=e.bidders;const l=M[e.adapter];let h=g[p].uniquePbsTid,m=g[p].adUnitsS2SCopy,b=f.filter((e=>e.uniquePbsTid===h));if(l){let o={ad_units:m,s2sConfig:e,ortb2Fragments:u,requestBidsTimeout:d};if(o.ad_units.length){let e=b.map((e=>(e.start=(0,i.vE)(),function(t){t||c(e.bidderRequestId),r.apply(e,arguments)})));const s=(0,i.ZA)(o.ad_units).filter((e=>a.includes(e)));(0,i.OG)(`CALLING S2S HEADER BIDDERS ==== ${s.length>0?s.join(", "):\'No bidder specified, using "ortb2Imp" definition(s) only\'}`),b.forEach((e=>{v.Ic(E.qY.BID_REQUESTED,{...e,tid:e.auctionId})})),l.callBids(o,f,n,(t=>e.forEach((e=>e(t)))),t)}}else(0,i.vV)("missing "+e.adapter);p++}})),l.forEach((e=>{e.start=(0,i.vE)();const t=M[e.bidderCode];a.$W.runWithBidder(e.bidderCode,(()=>{(0,i.OG)("CALLING BIDDER"),v.Ic(E.qY.BID_REQUESTED,e)}));let u=(0,s.g4)(d,o?{request:o.request.bind(null,e.bidderCode),done:o.done}:void 0);const l=r.bind(e);try{a.$W.runWithBidder(e.bidderCode,t.callBids.bind(t,e,n,l,u,(()=>c(e.bidderRequestId)),a.$W.callbackWithBidder(e.bidderCode)))}catch(t){(0,i.vV)(`${e.bidderCode} Bid Adapter emitted an uncaught error when parsing their bidRequest`,{e:t,bidRequest:e}),l()}}))},V.videoAdapters=[],V.registerBidAdapter=function(e,t){let{supportedMediaTypes:n=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e&&t?"function"==typeof e.callBids?(M[t]=e,y.o2.register(T.tW,t,e.getSpec?.().gvlid),(0,c.mK)(n,"video")&&V.videoAdapters.push(t),(0,c.mK)(n,"native")&&r.mT.push(t)):(0,i.vV)("Bidder adaptor error for bidder code: "+t+"bidder must implement a callBids() function"):(0,i.vV)("bidAdapter or bidderCode not specified")},V.aliasBidAdapter=function(e,t,n){if(void 0===M[t]){let s=M[e];if(void 0===s){const n=[];F.forEach((i=>{if(i.bidders&&i.bidders.length){const r=i&&i.bidders;i&&(0,c.mK)(r,t)?G[t]=e:n.push(e)}})),n.forEach((e=>{(0,i.vV)(\'bidderCode "\'+e+\'" is not an existing bidder.\',"adapterManager.aliasBidAdapter")}))}else try{let a,d=function(e){let t=[];return(0,c.mK)(V.videoAdapters,e)&&t.push("video"),(0,c.mK)(r.mT,e)&&t.push("native"),t}(e);if(s.constructor.prototype!=Object.prototype)a=new s.constructor,a.setBidderCode(t);else{const{useBaseGvlid:r=!1}=n||{};let d=s.getSpec();const c=r?d.gvlid:n?.gvlid;null==c&&null!=d.gvlid&&(0,i.JE)(`Alias \'${t}\' will NOT re-use the GVL ID of the original adapter (\'${d.code}\', gvlid: ${d.gvlid}). Functionality that requires TCF consent may not work as expected.`);let u=n&&n.skipPbsAliasing;a=(0,o.xb)(Object.assign({},d,{code:t,gvlid:c,skipPbsAliasing:u})),G[t]=e}V.registerBidAdapter(a,t,{supportedMediaTypes:d})}catch(t){(0,i.vV)(e+" bidder does not currently support aliasing.","adapterManager.aliasBidAdapter")}}else(0,i.OG)(\'alias name "\'+t+\'" has been already specified.\')},V.resolveAlias=function(e){let t,n=e;for(;G[n]&&(!t||!t.has(n));)n=G[n],(t=t||new Set).add(n);return n},V.registerAnalyticsAdapter=function(e){let{adapter:t,code:n,gvlid:r}=e;t&&n?"function"==typeof t.enableAnalytics?(t.code=n,H[n]={adapter:t,gvlid:r},y.o2.register(T.Tn,n,r)):(0,i.vV)(`Prebid Error: Analytics adaptor error for analytics "${n}"\\n analytics adapter must implement an enableAnalytics() function`):(0,i.vV)("Prebid Error: analyticsAdapter or analyticsCode not specified")},V.enableAnalytics=function(e){(0,i.cy)(e)||(e=[e]),e.forEach((e=>{const t=H[e.provider];t&&t.adapter?W.isAllowed(C.mo,L(T.Tn,e.provider,{[B.TQ]:e}))&&t.adapter.enableAnalytics(e):(0,i.vV)(`Prebid Error: no analytics adapter found in registry for \'${e.provider}\'.`)}))},V.getBidAdapter=function(e){return M[e]},V.getAnalyticsAdapter=function(e){return H[e]},V.callTimedOutBidders=function(e,t,n){t=t.map((t=>(t.params=(0,i.SB)(e,t.adUnitCode,t.bidder),t.timeout=n,t))),t=(0,i.$z)(t,"bidder"),Object.keys(t).forEach((e=>{ee(e,"onTimeout",t[e])}))},V.callBidWonBidder=function(e,t,n){var r,o;t.params=(0,i.SB)(n,t.adUnitCode,t.bidder),r=t.adUnitCode,o=t.bidder,l(r,"winsCounter",o),ee(e,"onBidWon",t)},V.triggerBilling=(()=>{const e=new WeakSet;return t=>{e.has(t)||(e.add(t),t.source===E.RW.SRC&&t.burl&&i.mM.triggerPixel(t.burl),ee(t.bidder,"onBidBillable",t))}})(),V.callSetTargetingBidder=function(e,t){ee(e,"onSetTargeting",t)},V.callBidViewableBidder=function(e,t){ee(e,"onBidViewable",t)},V.callBidderError=function(e,t,n){ee(e,"onBidderError",{error:t,bidderRequest:n})},V.callAdRenderSucceededBidder=function(e,t){ee(e,"onAdRenderSucceeded",t)},V.callDataDeletionRequest=(0,d.A_)("sync",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const r="onDataDeletionRequest";Object.keys(M).filter((e=>!G.hasOwnProperty(e))).forEach((e=>{const n=X(e,r);if(null!=n){const i=I.n.getBidsRequested().filter((t=>function(e){const t=new Set;for(;G.hasOwnProperty(e)&&!t.has(e);)t.add(e),e=G[e];return e}(t.bidderCode)===e));Z(e,r,...n,i,...t)}})),Object.entries(H).forEach((e=>{let[n,o]=e;const s=o?.adapter?.[r];if("function"==typeof s)try{s.apply(o.adapter,t)}catch(e){(0,i.vV)(`error calling ${r} of ${n}`,e)}}))}));const te=V},9115:(e,t,n)=>{function i(e){var t=e;return{callBids:function(){},setBidderCode:function(e){t=e},getBidderCode:function(){return t}}}n.d(t,{xb:()=>B,a$:()=>w});var r=n(8046),o=n(3272),s=n(3597),a=n(8230),d=n(2449),c=n(3895),u=n(8969),l=n(5023),f=n(5901),g=n(1069),p=n(9214),h=n(6881),m=n(2693),b=n(6894),y=n(5139),v=n(3441),E=n(5569),A=n(6811);const I=["cpm","ttl","creativeId","netRevenue","currency"],T=["auctionId","transactionId"];function w(e){const t=Array.isArray(e.supportedMediaTypes)?{supportedMediaTypes:e.supportedMediaTypes}:void 0;function n(e){const n=B(e);r.Ay.registerBidAdapter(n,e.code,t)}n(e),Array.isArray(e.aliases)&&e.aliases.forEach((t=>{let i,o,s=t;(0,g.Qd)(t)&&(s=t.code,i=t.gvlid,o=t.skipPbsAliasing),r.Ay.aliasRegistry[s]=e.code,n(Object.assign({},e,{code:s,gvlid:i,skipPbsAliasing:o}))}))}const C=(0,g.Bj)((e=>{let{bidderCode:t}=e;if((0,y.io)(A.VJ,(0,v.s)(E.tW,t)))return{bidRequest:e=>e,bidderRequest:e=>e};function n(e,t,n){return T.includes(t)?null:Reflect.get(e,t,n)}function i(e,t){const n=new Proxy(e,t);return Object.entries(e).filter((e=>{let[t,n]=e;return"function"==typeof n})).forEach((t=>{let[i,r]=t;return n[i]=r.bind(e)})),n}const r=(0,g.Bj)((e=>i(e,{get:n})),(e=>e.bidId));return{bidRequest:r,bidderRequest:e=>i(e,{get:(t,i,o)=>"bids"===i?e.bids.map(r):n(t,i,o)})}}));function B(e){return Object.assign(new i(e.code),{getSpec:function(){return Object.freeze(Object.assign({},e))},registerSyncs:t,callBids:function(n,i,a,p,y,v){if(!Array.isArray(n.bids))return;const E=C(n),A={};function w(e,t){const n=(0,b.BO)(t.metrics);n.checkpoint("addBidResponse"),A[e]=!0,n.measureTime("addBidResponse.validate",(()=>function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function i(){let e=Object.keys(t);return I.every((n=>(0,f.mK)(e,n)&&!(0,f.mK)([void 0,null],t[n])))}function r(e){return`Invalid bid from ${t.bidderCode}. Ignoring bid: ${e}`}if(!e)return(0,g.JE)("No adUnitCode was supplied to addBidResponse."),!1;if(!t)return(0,g.JE)(`Some adapter tried to add an undefined bid for ${e}.`),!1;if(!i())return(0,g.vV)(r(`Bidder ${t.bidderCode} is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params.`)),!1;if("native"===t.mediaType&&!(0,d.Bm)(t,{index:n}))return(0,g.vV)(r("Native bid missing some required properties.")),!1;if("video"===t.mediaType&&!(0,c.vk)(t,{index:n}))return(0,g.vV)(r("Video bid does not have required vastUrl or renderer property")),!1;if("banner"===t.mediaType&&!function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((t.width||0===parseInt(t.width,10))&&(t.height||0===parseInt(t.height,10)))return t.width=parseInt(t.width,10),t.height=parseInt(t.height,10),!0;const i=n.getBidRequest(t),r=n.getMediaTypes(t),o=i&&i.sizes||r&&r.banner&&r.banner.sizes,s=(0,g.kK)(o);if(1===s.length){const[e,n]=s[0].split("x");return t.width=parseInt(e,10),t.height=parseInt(n,10),!0}return!1}(e,t,{index:n}))return(0,g.vV)(r("Banner bids require a width and height")),!1;return!0}(e,t)))?i(e,t):i.reject(e,t,u.Tf.INVALID)}const B=[];function O(){a(),o.$W.runWithBidder(e.code,(()=>{l.Ic(u.qY.BIDDER_DONE,n),t(B,n.gdprConsent,n.uspConsent,n.gppConsent)}))}const R=D(n).measureTime("validate",(()=>n.bids.filter((t=>function(t){if(!e.isBidRequestValid(t))return(0,g.JE)(`Invalid bid sent to bidder ${e.code}: ${JSON.stringify(t)}`),!1;return!0}(E.bidRequest(t))))));if(0===R.length)return void O();const U={};R.forEach((e=>{U[e.bidId]=e,e.adUnitCode||(e.adUnitCode=e.placementCode)})),k(e,R,n,p,v,{onRequest:e=>l.Ic(u.qY.BEFORE_BIDDER_HTTP,n,e),onResponse:t=>{y(e.code),B.push(t)},onPaapi:e=>{const t=U[e.bidId];t?S(t,e):(0,g.JE)("Received fledge auction configuration for an unknown bidId",e)},onError:(t,i)=>{i.timedOut||y(e.code),r.Ay.callBidderError(e.code,i,n),l.Ic(u.qY.BIDDER_ERROR,{error:i,bidderRequest:n}),(0,g.vV)(`Server call for ${e.code} failed: ${t} ${i.status}. Continuing without bids.`)},onBid:t=>{const n=U[t.requestId];if(n){if(t.adapterCode=n.bidder,function(e,t){let n=m.u.get(t,"allowAlternateBidderCodes")||!1,i=m.u.get(t,"allowedAlternateBidderCodes");if(e&&t&&t!==e&&(i=(0,g.cy)(i)?i.map((e=>e.trim().toLowerCase())).filter((e=>!!e)).filter(g.hj):i,!n||(0,g.cy)(i)&&"*"!==i[0]&&!i.includes(e)))return!0;return!1}(t.bidderCode,n.bidder))return(0,g.JE)(`${t.bidderCode} is not a registered partner or known bidder of ${n.bidder}, hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.`),void i.reject(n.adUnitCode,t,u.Tf.BIDDER_DISALLOWED);t.originalCpm=t.cpm,t.originalCurrency=t.currency,t.meta=t.meta||Object.assign({},t[n.bidder]),t.deferBilling=n.deferBilling,t.deferRendering=t.deferBilling&&(t.deferRendering??"function"!=typeof e.onBidBillable);const r=Object.assign((0,s.O)(u.XQ.GOOD,n),t,(0,g.Up)(n,T));w(n.adUnitCode,r)}else(0,g.JE)(`Bidder ${e.code} made bid for unknown request ID: ${t.requestId}. Ignoring.`),i.reject(null,t,u.Tf.INVALID_REQUEST_ID)},onCompletion:O})}});function t(t,n,i,r){R(e,t,n,i,r)}}const O=["bids","paapi"],k=(0,p.A_)("sync",(function(e,t,n,i,r,o){let{onRequest:s,onResponse:a,onPaapi:d,onError:c,onBid:u,onCompletion:l}=o;const f=D(n);l=f.startTiming("total").stopBefore(l);const p=C(n);let h=f.measureTime("buildRequests",(()=>e.buildRequests(t.map(p.bidRequest),p.bidderRequest(n))));if(!h||0===h.length)return void l();Array.isArray(h)||(h=[h]);const b=(0,g.U6)(l,h.length);h.forEach((t=>{const n=f.fork();function o(e){null!=e&&(e.metrics=n.fork().renameWith()),u(e)}const l=r((function(i,r){h();try{i=JSON.parse(i)}catch(e){}i={body:i,headers:{get:r.getResponseHeader.bind(r)}},a(i);try{i=n.measureTime("interpretResponse",(()=>e.interpretResponse(i,t)))}catch(t){return(0,g.vV)(`Bidder ${e.code} failed to interpret the server\'s response. Continuing without bids`,null,t),void b()}let s,c;i&&!Object.keys(i).some((e=>!O.includes(e)))?(s=i.bids,c=i.paapi):s=i,(0,g.cy)(c)&&c.forEach(d),s&&((0,g.cy)(s)?s.forEach(o):o(s)),b()})),p=r((function(e,t){h(),c(e,t),b()}));s(t);const h=n.startTiming("net");function I(n){const i=t.options;return Object.assign(n,i,{browsingTopics:!(i?.hasOwnProperty("browsingTopics")&&!i.browsingTopics)&&((m.u.get(e.code,"topicsHeader")??!0)&&(0,y.io)(A.DL,(0,v.s)(E.tW,e.code)))})}switch(t.method){case"GET":i(`${t.url}${function(e){if(e)return`?${"object"==typeof e?(0,g.bL)(e):e}`;return""}(t.data)}`,{success:l,error:p},void 0,I({method:"GET",withCredentials:!0}));break;case"POST":i(t.url,{success:l,error:p},"string"==typeof t.data?t.data:JSON.stringify(t.data),I({method:"POST",contentType:"text/plain",withCredentials:!0}));break;default:(0,g.JE)(`Skipping invalid request from ${e.code}. Request type ${t.type} must be GET or POST`),b()}}))}),"processBidderRequests"),R=(0,p.A_)("async",(function(e,t,n,i,s){const d=o.$W.getConfig("userSync.aliasSyncEnabled");if(e.getUserSyncs&&(d||!r.Ay.aliasRegistry[e.code])){let r=o.$W.getConfig("userSync.filterSettings"),d=e.getUserSyncs({iframeEnabled:!(!r||!r.iframe&&!r.all),pixelEnabled:!(!r||!r.image&&!r.all)},t,n,i,s);d&&(Array.isArray(d)||(d=[d]),d.forEach((t=>{a.zt.registerSync(t.type,e.code,t.url)})),a.zt.bidderDone(e.code))}}),"registerSyncs"),S=(0,p.A_)("sync",((e,t)=>{}),"addPaapiConfig");function D(e){return(0,b.BO)(e.metrics).renameWith((t=>[`adapter.client.${t}`,`adapters.client.${e.bidderCode}.${t}`]))}},1580:(e,t,n)=>{n.d(t,{R:()=>u});var i=n(6811),r=n(3441),o=n(5139),s=n(5901),a=n(1069);const d=new WeakMap,c=["debugging","outstream","improvedigital","showheroes-bs","aaxBlockmeter","adagio","adloox","akamaidap","arcspan","airgrid","browsi","brandmetrics","clean.io","humansecurity","confiant","contxtful","hadron","mediafilter","medianet","azerionedge","a1Media","geoedge","qortex","dynamicAdBoost","51Degrees","symitridap","wurfl","justtag","tncId","ftrackId","id5"];function u(e,t,n,u,l,f){if(!(0,o.io)(i.pY,(0,r.s)(t,n)))return;if(!n||!e)return void(0,a.vV)("cannot load external script without url and moduleCode");if(!(0,s.mK)(c,n))return void(0,a.vV)(`${n} not whitelisted for loading external JavaScript`);l||(l=document);const g=m(l,e);if(g)return u&&"function"==typeof u&&(g.loaded?u():g.callbacks.push(u)),g.tag;const p=d.get(l)||{},h={loaded:!1,tag:null,callbacks:[]};return p[e]=h,d.set(l,p),u&&"function"==typeof u&&h.callbacks.push(u),(0,a.JE)(`module ${n} is loading external JavaScript`),function(t,n,i,r){i||(i=document);var o=i.createElement("script");o.type="text/javascript",o.async=!0;const s=m(i,e);s&&(s.tag=o);o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,n())}:o.onload=function(){n()};o.src=t,r&&(0,a.Bg)(o,r);return(0,a._s)(o,i),o}(e,(function(){h.loaded=!0;try{for(let e=0;e<h.callbacks.length;e++)h.callbacks[e]()}catch(e){(0,a.vV)("Error executing callback","adloader.js:loadExternalScript",e)}}),l,f);function m(e,t){const n=d.get(e);return n&&n[t]?n[t]:null}}},8044:(e,t,n)=>{n.d(t,{RD:()=>f,g4:()=>l});var i=n(3272),r=n(1069);const o={fetch:window.fetch.bind(window),makeRequest:(e,t)=>new Request(e,t),timeout(e,t){const n=new AbortController;let i=setTimeout((()=>{n.abort(),(0,r.vV)(`Request timeout after ${e}ms`,t),i=null}),e);return{signal:n.signal,done(){i&&clearTimeout(i)}}}},s="GET",a="POST",d="Content-Type";function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t,n)=>{let r;null==e||null!=n?.signal||i.$W.getConfig("disableAjaxTimeout")||(r=o.timeout(e,t),n=Object.assign({signal:r.signal},n));let s=o.fetch(t,n);return null!=r?.done&&(s=s.finally(r.done)),s};return null==t&&null==n||(r=(e=>function(i,r){const o=new URL(null==i?.url?i:i.url,document.location).origin;let s=e(i,r);return t&&t(o),n&&(s=s.finally((()=>n(o)))),s})(r)),r}function u(e,t){let{status:n,statusText:i="",headers:o,url:s}=e,a=0;function c(e){if(0===a)try{a=(new DOMParser).parseFromString(t,o?.get(d)?.split(";")?.[0])}catch(t){a=null,e&&e(t)}return a}return{readyState:XMLHttpRequest.DONE,status:n,statusText:i,responseText:t,response:t,responseType:"",responseURL:s,get responseXML(){return c(r.vV)},getResponseHeader:e=>o?.has(e)?o.get(e):null,toJSON(){return Object.assign({responseXML:c()},this)},timedOut:!1}}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=c(e,{request:t,done:n});return function(e,t,n){!function(e,t){const{success:n,error:i}="object"==typeof t&&null!=t?t:{success:"function"==typeof t?t:()=>null,error:(e,t)=>(0,r.vV)("Network error",e,t)};e.then((e=>e.text().then((t=>[e,t])))).then((e=>{let[t,r]=e;const o=u(t,r);t.ok||304===t.status?n(r,o):i(t.statusText,o)}),(e=>i("",Object.assign(u({status:0},""),{reason:e,timedOut:"AbortError"===e?.name}))))}(i(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n.method||(t?a:s);if(i===s&&t){const i=(0,r.Dl)(e,n);Object.assign(i.search,t),e=(0,r.c$)(i)}const c=new Headers(n.customHeaders);c.set(d,n.contentType||"text/plain");const u={method:i,headers:c};return i!==s&&t&&(u.body=t),n.withCredentials&&(u.credentials="include"),isSecureContext&&["browsingTopics","adAuctionHeaders"].forEach((e=>{n[e]&&(u[e]=!0)})),n.keepalive&&(u.keepalive=!0),o.makeRequest(e,u)}(e,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:{})),t)}}const f=l();c()},6881:(e,t,n)=>{n.d(t,{n:()=>ie});var i=n(1069),r=n(6833),o=n(2449),s=n(8044),a=n(3272);const d=15;function c(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e.vastXml?e.vastXml:(i=e.vastUrl,r=e.vastImpUrl,`<VAST version="3.0">\\n <Ad>\\n <Wrapper>\\n <AdSystem>prebid.org wrapper</AdSystem>\\n <VASTAdTagURI><![CDATA[${i}]]></VASTAdTagURI>\\n ${(r=r&&(Array.isArray(r)?r:[r]))?r.map((e=>`<Impression><![CDATA[${e}]]></Impression>`)).join(""):""}\\n <Creatives></Creatives>\\n </Wrapper>\\n </Ad>\\n </VAST>`);var i,r;const o=t.getAuction(e);let s={type:"xml",value:n,ttlseconds:Number(e.ttl)+d};return a.$W.getConfig("cache.vasttrack")&&(s.bidder=e.bidder,s.bidid=e.requestId,s.aid=e.auctionId),null!=o&&(s.timestamp=o.getAuctionStart()),"string"==typeof e.customCacheKey&&""!==e.customCacheKey&&(s.key=e.customCacheKey),s}const u={store:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.g4;const i={puts:e.map(c)};n(a.$W.getConfig("cache.timeout"))(a.$W.getConfig("cache.url"),function(e){return{success:function(t){let n;try{n=JSON.parse(t).responses}catch(t){return void e(t,[])}n?e(null,n):e(new Error("The cache server didn\'t respond with a responses property."),[])},error:function(t,n){e(new Error(`Error storing video ad in the cache: ${t}: ${JSON.stringify(n)}`),[])}}}(t),JSON.stringify(i),{contentType:"text/plain",withCredentials:!0})}};function l(e){const t=e.map((e=>e.bidResponse));u.store(t,(function(n,r){var o;n?(o=n,(0,i.vV)(`Failed to save to the video cache: ${o}. Video bids will be discarded:`,t)):e.length!==r.length?(0,i.vV)(`expected ${e.length} cache IDs, got ${r.length} instead`):r.forEach(((t,n)=>{const{auctionInstance:r,bidResponse:o,afterBidAdded:s}=e[n];var d;""===t.uuid?(0,i.JE)("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."):(o.videoCacheKey=t.uuid,o.vastUrl||(o.vastUrl=(d=o.videoCacheKey,`${a.$W.getConfig("cache.url")}?uuid=${d}`)),F(r,o),s())}))}))}let f,g;a.$W.getConfig("cache",(e=>{f="number"==typeof e.cache.batchSize&&e.cache.batchSize>0?e.cache.batchSize:1,g="number"==typeof e.cache.batchTimeout&&e.cache.batchTimeout>0?e.cache.batchTimeout:0}));const p=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:setTimeout,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l,n=[[]],i=!1;const r=e=>e();return function(o,s,a){const d=g>0?e:r;n[n.length-1].length>=f&&n.push([]),n[n.length-1].push({auctionInstance:o,bidResponse:s,afterBidAdded:a}),i||(i=!0,d((()=>{n.forEach(t),n=[[]],i=!1}),g))}}();var h=n(5789),m=n(8230),b=n(9214),y=n(5901),v=n(3895),E=n(1371),A=n(2693),I=n(5023),T=n(8046),w=n(8969),C=n(5555),B=n(6894);var O=n(7873),k=n(6853),R=n(7863);const{syncUsers:S}=m.zt,D="started",U="inProgress",_="completed";I.on(w.qY.BID_ADJUSTMENT,(function(e){!function(e){let t=function(e,t,n){let{index:r=ie.index,bs:o=A.u}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=n||r.getBidRequest(t);const s=t?.adapterCode,a=t?.bidderCode||n?.bidder,d=o.get(t?.adapterCode,"adjustAlternateBids"),c=o.getOwn(a,"bidCpmAdjustment")||o.get(d?s:a,"bidCpmAdjustment");if(c&&"function"==typeof c)try{return c(e,Object.assign({},t),n)}catch(e){(0,i.vV)("Error during bid adjustment",e)}return e}(e.cpm,e);t>=0&&(e.cpm=t)}(e)}));const $=4,j={},q={},x=[],N=(0,O.m)();function P(e){let{adUnits:t,adUnitCodes:n,callback:s,cbTimeout:d,labels:c,auctionId:u,ortb2Fragments:l,metrics:f}=e;f=(0,B.BO)(f);const g=t,p=c,m=n,b=u||(0,i.lk)(),A=d,O=new Set,P=(0,C.v)(),z=(0,C.v)();let J,K,Q,Y,X=[],Z=s,ee=[],ne=(0,k.H)({startTime:e=>e.responseTimestamp,ttl:e=>null==(0,R.S9)()?null:1e3*Math.max((0,R.S9)(),e.ttl)}),re=[],oe=[],se=[];function ae(){return{auctionId:b,timestamp:J,auctionEnd:K,auctionStatus:Y,adUnits:g,adUnitCodes:m,labels:p,bidderRequests:ee,noBids:re,bidsReceived:ne.toArray(),bidsRejected:X,winningBids:oe,timeout:A,metrics:f,seatNonBids:se}}function de(e){if(e?I.Ic(w.qY.AUCTION_TIMEOUT,ae()):clearTimeout(Q),void 0===K){let n=[];e&&((0,i.OG)(`Auction ${b} timedOut`),n=ee.filter((e=>!O.has(e.bidderRequestId))).flatMap((e=>e.bids)),n.length&&I.Ic(w.qY.BID_TIMEOUT,n)),Y=_,K=Date.now(),f.checkpoint("auctionEnd"),f.timeBetween("requestBids","auctionEnd","requestBids.total"),f.timeBetween("callBids","auctionEnd","requestBids.callBids"),P.resolve(),I.Ic(w.qY.AUCTION_END,ae()),G(g,(function(){try{if(null!=Z){const t=ne.toArray().filter((e=>m.includes(e.adUnitCode))).reduce(te,{});Z.apply(N,[t,e,b]),Z=null}}catch(e){(0,i.vV)("Error executing bidsBackHandler",null,e)}finally{n.length&&T.Ay.callTimedOutBidders(t,n,A);let e=a.$W.getConfig("userSync")||{};e.enableOverride||S(e.syncDelay)}}))}}function ce(){a.$W.resetBidder(),(0,i.fH)(`Bids Received for Auction with id: ${b}`,ne.toArray()),Y=_,de(!1)}function ue(e){O.add(e)}function le(e){e.forEach((e=>{var t;t=e,ee=ee.concat(t)}));let t={},n={bidRequests:e,run:()=>{Q=setTimeout((()=>de(!0)),A),Y=U,I.Ic(w.qY.AUCTION_INIT,ae());let n=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=0,d=!1,c=new Set,u={};function l(){s--,d&&0===s&&e()}function f(e,t,n){return u[t.requestId]=!0,function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.getBidderRequest(e),o=n.getAdUnit(e),s=r&&r.start||e.requestTimestamp;Object.assign(e,{responseTimestamp:e.responseTimestamp||(0,i.vE)(),requestTimestamp:e.requestTimestamp||s,cpm:parseFloat(e.cpm)||0,bidder:e.bidder||e.bidderCode,adUnitCode:t}),null!=o?.ttlBuffer&&(e.ttlBuffer=o.ttlBuffer);e.timeToRespond=e.responseTimestamp-e.requestTimestamp}(t,e),s++,n(l)}function g(e,s){f(e,s,(e=>{let d=function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};I.Ic(w.qY.BID_ADJUSTMENT,e);const n=t.getBidRequest(e)?.renderer||t.getAdUnit(e).renderer,i=e.mediaType,o=t.getMediaTypes(e),s=o&&o[i];var d=s&&s.renderer,c=null;!d||!d.render||!0===d.backupOnly&&e.renderer?!n||!n.render||!0===n.backupOnly&&e.renderer||(c=n):c=d;c&&(e.renderer=h.A4.install({url:c.url,config:c.options,renderNow:null==c.url}),e.renderer.setRender(c.render));const u=L(e.mediaType,o,a.$W.getConfig("mediaTypePriceGranularity")),l=(0,r.j)(e.cpm,"object"==typeof u?u:a.$W.getConfig("customPriceBucket"),a.$W.getConfig("currency.granularityMultiplier"));return e.pbLg=l.low,e.pbMg=l.med,e.pbHg=l.high,e.pbAg=l.auto,e.pbDg=l.dense,e.pbCg=l.custom,e}(s);I.Ic(w.qY.BID_ACCEPTED,d),d.mediaType===E.G_?function(e,t,n){let{index:r=ie.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=!0;const s=r.getMediaTypes({requestId:t.originalRequestId||t.requestId,adUnitId:t.adUnitId})?.video,d=s&&s?.context,c=s&&s?.useCacheKey;a.$W.getConfig("cache.url")&&(c||d!==v.H6)&&(!t.videoCacheKey||a.$W.getConfig("cache.ignoreBidderCacheKey")?(o=!1,H(e,t,n,s)):t.vastUrl||((0,i.vV)("videoCacheKey specified but not required vastUrl for video bid"),o=!1));o&&(F(e,t),n())}(t,d,e):((0,o.l6)(d)&&(0,o.gs)(d,n.getAdUnit(d)),F(t,d),e())}))}function p(e,n,r){return f(e,n,(e=>{n.rejectionReason=r,(0,i.JE)(`Bid from ${n.bidder||"unknown bidder"} was rejected: ${r}`,n),I.Ic(w.qY.BID_REJECTED,n),t.addBidRejected(n),e()}))}function m(){let n=this,r=t.getBidRequests();const o=a.$W.getConfig("auctionOptions");if(c.add(n),o&&!(0,i.Im)(o)){const e=o.secondaryBidders;e&&!r.every((t=>(0,y.mK)(e,t.bidderCode)))&&(r=r.filter((t=>!(0,y.mK)(e,t.bidderCode))))}d=r.every((e=>c.has(e))),n.bids.forEach((e=>{u[e.bidId]||(t.addNoBid(e),I.Ic(w.qY.NO_BID,e))})),d&&0===s&&e()}return{addBidResponse:function(){function e(e,t){W.call({dispatch:g},e,t,(()=>{let n=!1;return i=>{n||(p(e,t,i),n=!0)}})())}return e.reject=p,e}(),adapterDone:function(){V(C.k.resolve()).finally((()=>m.call(this)))}}}(ce,this);T.Ay.callBids(g,e,n.addBidResponse,n.adapterDone,{request(e,n){d(j,n),d(t,e),q[e]||(q[e]={SRA:!0,origin:n}),t[e]>1&&(q[e].SRA=!1)},done(e){j[e]--,x[0]&&s(x[0])&&x.shift()}},A,ue,l),z.resolve()}};function s(e){let t=!0,n=a.$W.getConfig("maxRequestsPerOrigin")||$;return e.bidRequests.some((e=>{let i=1,r=void 0!==e.src&&e.src===w.RW.SRC?"s2s":e.bidderCode;return q[r]&&(!1===q[r].SRA&&(i=Math.min(e.bids.length,n)),j[q[r].origin]+i>n&&(t=!1)),!t})),t&&e.run(),t}function d(e,t){void 0===e[t]?e[t]=1:e[t]++}s(n)||((0,i.JE)("queueing auction due to limited endpoint capacity"),x.push(n))}return(0,R.lc)((()=>ne.refresh())),I.on(w.qY.SEAT_NON_BID,(e=>{var t;e.auctionId===b&&(t=e.seatnonbid,se=se.concat(t))})),{addBidReceived:function(e){ne.add(e)},addBidRejected:function(e){X=X.concat(e)},addNoBid:function(e){re=re.concat(e)},callBids:function(){Y=D,J=Date.now();let e=f.measureTime("requestBids.makeRequests",(()=>T.Ay.makeBidRequests(g,J,b,A,p,l,f)));(0,i.fH)(`Bids Requested for Auction with id: ${b}`,e),f.checkpoint("callBids"),e.length<1?((0,i.JE)("No valid bid requests returned for auction"),ce()):M.call({dispatch:le,context:this},e)},addWinningBid:function(e){oe=oe.concat(e),T.Ay.callBidWonBidder(e.adapterCode||e.bidder,e,t),e.deferBilling||T.Ay.triggerBilling(e)},setBidTargeting:function(e){T.Ay.callSetTargetingBidder(e.adapterCode||e.bidder,e)},getWinningBids:()=>oe,getAuctionStart:()=>J,getAuctionEnd:()=>K,getTimeout:()=>A,getAuctionId:()=>b,getAuctionStatus:()=>Y,getAdUnits:()=>g,getAdUnitCodes:()=>m,getBidRequests:()=>ee,getBidsReceived:()=>ne.toArray(),getNoBids:()=>re,getNonBids:()=>se,getFPD:()=>l,getMetrics:()=>f,end:P.promise,requestsDone:z.promise}}const W=(0,b.A_)("sync",(function(e,t,n){!function(e){const t=a.$W.getConfig("maxBid");return!t||!e.cpm||t>=Number(e.cpm)}(t)?n(w.Tf.PRICE_TOO_HIGH):this.dispatch.call(null,e,t)}),"addBidResponse"),V=(0,b.A_)("sync",(e=>e),"responsesReady"),M=(0,b.A_)("sync",(function(e){this.dispatch.call(this.context,e)}),"addBidderRequests"),G=(0,b.A_)("async",(function(e,t){t&&t()}),"bidsBackCallback");function F(e,t){!function(e){let t;const n=!0===A.u.get(e.bidderCode,"allowZeroCpmBids")?e.cpm>=0:e.cpm>0;e.bidderCode&&(n||e.dealId)&&(t=function(e,t){let{index:n=ie.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return{};const i=n.getBidRequest(t);var r={};const s=Z(t.mediaType,e);ee(r,s,t,i),e&&A.u.getOwn(e,w.iD.ADSERVER_TARGETING)&&(ee(r,A.u.ownSettingsFor(e),t,i),t.sendStandardTargeting=A.u.get(e,"sendStandardTargeting"));t.native&&(r=Object.assign({},r,(0,o.Zj)(t)));return r}(e.bidderCode,e));e.adserverTargeting=Object.assign(e.adserverTargeting||{},t)}(t),(0,B.BO)(t.metrics).timeSince("addBidResponse","addBidResponse.total"),e.addBidReceived(t),I.Ic(w.qY.BID_RESPONSE,t)}const H=(0,b.A_)("async",(function(e,t,n,i){p(e,t,n)}),"callPrebidCache");function L(e,t,n){if(e&&n){if(e===E.G_){const e=t?.[E.G_]?.context??"instream";if(n[`${E.G_}-${e}`])return n[`${E.G_}-${e}`]}return n[e]}}const z=e=>t=>{const n=e||function(e){let{index:t=ie.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=L(e.mediaType,t.getMediaTypes(e),a.$W.getConfig("mediaTypePriceGranularity"));return"string"==typeof e.mediaType&&n?"string"==typeof n?n:"custom":a.$W.getConfig("priceGranularity")}(t);return n===w.UE.AUTO?t.pbAg:n===w.UE.DENSE?t.pbDg:n===w.UE.LOW?t.pbLg:n===w.UE.MEDIUM?t.pbMg:n===w.UE.HIGH?t.pbHg:n===w.UE.CUSTOM?t.pbCg:void 0},J=()=>e=>e.creativeId?e.creativeId:"",K=()=>e=>e.meta&&e.meta.advertiserDomains&&e.meta.advertiserDomains.length>0?[e.meta.advertiserDomains].flat()[0]:"",Q=()=>e=>e.meta&&(e.meta.networkId||e.meta.networkName)?e?.meta?.networkName||e?.meta?.networkId:"",Y=()=>e=>e.meta&&e.meta.primaryCatId?e.meta.primaryCatId:"";function X(e,t){return{key:e,val:"function"==typeof t?function(e,n){return t(e,n)}:function(e){return e[t]}}}function Z(e,t){const n=Object.assign({},A.u.settingsFor(null));if(n[w.iD.ADSERVER_TARGETING]||(n[w.iD.ADSERVER_TARGETING]=[X(w.xS.BIDDER,"bidderCode"),X(w.xS.AD_ID,"adId"),X(w.xS.PRICE_BUCKET,z()),X(w.xS.SIZE,"size"),X(w.xS.DEAL,"dealId"),X(w.xS.SOURCE,"source"),X(w.xS.FORMAT,"mediaType"),X(w.xS.ADOMAIN,K()),X(w.xS.ACAT,Y()),X(w.xS.DSP,Q()),X(w.xS.CRID,J())]),"video"===e){const e=n[w.iD.ADSERVER_TARGETING].slice();if(n[w.iD.ADSERVER_TARGETING]=e,[w.xS.UUID,w.xS.CACHE_ID].forEach((t=>{void 0===(0,y.I6)(e,(e=>e.key===t))&&e.push(X(t,"videoCacheKey"))})),a.$W.getConfig("cache.url")&&(!t||!1!==A.u.get(t,"sendStandardTargeting"))){const t=(0,i.Dl)(a.$W.getConfig("cache.url"));void 0===(0,y.I6)(e,(e=>e.key===w.xS.CACHE_HOST))&&e.push(X(w.xS.CACHE_HOST,(function(e){return e?.adserverTargeting?.[w.xS.CACHE_HOST]||t.hostname})))}}return n}function ee(e,t,n,r){var o=t[w.iD.ADSERVER_TARGETING];return n.size=n.getSize(),(o||[]).forEach((function(o){var s=o.key,a=o.val;if(e[s]&&(0,i.JE)("The key: "+s+" is being overwritten"),(0,i.fp)(a))try{a=a(n,r)}catch(e){(0,i.vV)("bidmanager","ERROR",e)}(void 0===t.suppressEmptyKeys||!0!==t.suppressEmptyKeys)&&s!==w.xS.DEAL&&s!==w.xS.ACAT&&s!==w.xS.DSP&&s!==w.xS.CRID||!(0,i.xQ)(a)&&null!=a?e[s]=a:(0,i.fH)("suppressing empty key \'"+s+"\' from adserver targeting")})),e}function te(e,t){return e[t.adUnitCode]||(e[t.adUnitCode]={bids:[]}),e[t.adUnitCode].bids.push(t),e}function ne(e){Object.assign(this,{getAuction(t){let{auctionId:n}=t;if(null!=n)return e().find((e=>e.getAuctionId()===n))},getAdUnit(t){let{adUnitId:n}=t;if(null!=n)return e().flatMap((e=>e.getAdUnits())).find((e=>e.adUnitId===n))},getMediaTypes(e){let{adUnitId:t,requestId:n}=e;if(null!=n){const e=this.getBidRequest({requestId:n});if(null!=e&&(null==t||e.adUnitId===t))return e.mediaTypes}else if(null!=t){const e=this.getAdUnit({adUnitId:t});if(null!=e)return e.mediaTypes}},getBidderRequest(t){let{requestId:n,bidderRequestId:i}=t;if(null!=n||null!=i){let t=e().flatMap((e=>e.getBidRequests()));return null!=i&&(t=t.filter((e=>e.bidderRequestId===i))),null==n?t[0]:t.find((e=>e.bids&&null!=e.bids.find((e=>e.bidId===n))))}},getBidRequest(t){let{requestId:n}=t;if(null!=n)return e().flatMap((e=>e.getBidRequests())).flatMap((e=>e.bids)).find((e=>e&&e.bidId===n))},getOrtb2(e){return this.getBidderRequest(e)?.ortb2||this.getAuction(e)?.getFPD()?.global?.ortb2}})}const ie=function(){const e=(0,k.H)({startTime:e=>e.end.then((()=>e.getAuctionEnd())),ttl:e=>null==(0,R.S9)()?null:e.end.then((()=>1e3*Math.max((0,R.S9)(),...e.getBidsReceived().map((e=>e.ttl)))))});(0,R.lc)((()=>e.refresh()));const t={onExpiry:e.onExpiry};function n(t){for(const n of e)if(n.getAuctionId()===t)return n}function r(){return e.toArray().flatMap((e=>e.getBidsReceived()))}return t.addWinningBid=function(e){const t=(0,B.BO)(e.metrics);t.checkpoint("bidWon"),t.timeBetween("auctionEnd","bidWon","adserver.pending"),t.timeBetween("requestBids","bidWon","adserver.e2e");const r=n(e.auctionId);r?r.addWinningBid(e):(0,i.JE)("Auction not found when adding winning bid")},Object.entries({getAllWinningBids:{name:"getWinningBids"},getBidsRequested:{name:"getBidRequests"},getNoBids:{},getAdUnits:{},getBidsReceived:{pre:e=>e.getAuctionStatus()===_},getAdUnitCodes:{post:i.hj}}).forEach((n=>{let[i,{name:r=i,pre:o,post:s}]=n;const a=null==o?e=>e[r]():e=>o(e)?e[r]():[],d=null==s?e=>e:e=>e.filter(s);t[i]=()=>d(e.toArray().flatMap(a))})),t.getAllBidsForAdUnitCode=function(e){return r().filter((t=>t&&t.adUnitCode===e))},t.createAuction=function(t){const n=P(t);return function(t){e.add(t)}(n),n},t.findBidByAdId=function(e){return r().find((t=>t.adId===e))},t.getStandardBidderAdServerTargeting=function(){return Z()[w.iD.ADSERVER_TARGETING]},t.setStatusForBids=function(e,i){let r=t.findBidByAdId(e);if(r&&(r.status=i),r&&i===w.tl.BID_TARGETING_SET){const e=n(r.auctionId);e&&e.setBidTargeting(r)}},t.getLastAuctionId=function(){const t=e.toArray();return t.length&&t[t.length-1].getAuctionId()},t.clearAllAuctions=function(){e.clear()},t.index=new ne((()=>e.toArray())),t}()},7863:(e,t,n)=>{n.d(t,{S9:()=>u,cT:()=>c,lc:()=>l});var i=n(3272),r=n(1069);const o="minBidCacheTTL";let s=1,a=null;const d=[];function c(e){return e.ttl-(e.hasOwnProperty("ttlBuffer")?e.ttlBuffer:s)}function u(){return a}function l(e){d.push(e)}i.$W.getConfig("ttlBuffer",(e=>{"number"==typeof e.ttlBuffer?s=e.ttlBuffer:(0,r.vV)("Invalid value for ttlBuffer",e.ttlBuffer)})),i.$W.getConfig(o,(e=>{const t=a;a=e?.[o],a="number"==typeof a?a:null,t!==a&&d.forEach((e=>e(a)))}))},2693:(e,t,n)=>{n.d(t,{u:()=>a});var i=n(433),r=n(1069),o=n(7873),s=n(8969);const a=new class{constructor(e,t){this.getSettings=e,this.defaultScope=t}get(e,t){let n=this.getOwn(e,t);return void 0===n&&(n=this.getOwn(null,t)),n}getOwn(e,t){return e=this.#e(e),(0,i.A)(this.getSettings(),`${e}.${t}`)}getScopes(){return Object.keys(this.getSettings()).filter((e=>e!==this.defaultScope))}settingsFor(e){return(0,r.D9)({},this.ownSettingsFor(null),this.ownSettingsFor(e))}ownSettingsFor(e){return e=this.#e(e),this.getSettings()[e]||{}}#e(e){return null==e?this.defaultScope:e}}((()=>(0,o.m)().bidderSettings||{}),s.iD.BD_SETTING_STANDARD)},3597:(e,t,n)=>{n.d(t,{O:()=>o});var i=n(1069);function r(e){let{src:t="client",bidder:n="",bidId:r,transactionId:o,adUnitId:s,auctionId:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var d=t,c=e||0;Object.assign(this,{bidderCode:n,width:0,height:0,statusMessage:function(){switch(c){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}(),adId:(0,i.s0)(),requestId:r,transactionId:o,adUnitId:s,auctionId:a,mediaType:"banner",source:d}),this.getStatusCode=function(){return c},this.getSize=function(){return this.width+"x"+this.height},this.getIdentifiers=function(){return{src:this.source,bidder:this.bidderCode,bidId:this.requestId,transactionId:this.transactionId,adUnitId:this.adUnitId,auctionId:this.auctionId}}}function o(e,t){return new r(e,t)}},3272:(e,t,n)=>{n.d(t,{$W:()=>h,Ov:()=>u});var i=n(6833),r=n(5901),o=n(1069),s=n(433),a=n(8969);const d="TRUE"===(0,o.Ez)(a.M).toUpperCase(),c={},u="random",l={};l[u]=!0,l.fixed=!0;const f=u,g={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"};function p(e){const t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?{priceGranularity:g.MEDIUM,customPriceBucket:{},mediaTypePriceGranularity:{},bidderSequence:f,auctionOptions:{}}:{};function n(e){return t[e]}function s(n,i){t.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0}),t[n]=i}const a={publisherDomain:{set(e){null!=e&&(0,o.JE)("publisherDomain is deprecated and has no effect since v7 - use pageUrl instead"),s("publisherDomain",e)}},priceGranularity:{set(e){c(e)&&("string"==typeof e?s("priceGranularity",d(e)?e:g.MEDIUM):(0,o.Qd)(e)&&(s("customPriceBucket",e),s("priceGranularity",g.CUSTOM),(0,o.OG)("Using custom price granularity")))}},customPriceBucket:{},mediaTypePriceGranularity:{set(e){null!=e&&s("mediaTypePriceGranularity",Object.keys(e).reduce(((t,i)=>(c(e[i])?"string"==typeof e?t[i]=d(e[i])?e[i]:n("priceGranularity"):(0,o.Qd)(e)&&(t[i]=e[i],(0,o.OG)(`Using custom price granularity for ${i}`)):(0,o.JE)(`Invalid price granularity for media type: ${i}`),t)),{}))}},bidderSequence:{set(e){l[e]?s("bidderSequence",e):(0,o.JE)(`Invalid order: ${e}. Bidder Sequence was not set.`)}},auctionOptions:{set(e){(function(e){if(!(0,o.Qd)(e))return(0,o.JE)("Auction Options must be an object"),!1;for(let t of Object.keys(e)){if("secondaryBidders"!==t&&"suppressStaleRender"!==t&&"suppressExpiredRender"!==t)return(0,o.JE)(`Auction Options given an incorrect param: ${t}`),!1;if("secondaryBidders"===t){if(!(0,o.cy)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type Array`),!1;if(!e[t].every(o.O8))return(0,o.JE)(`Auction Options ${t} must be only string`),!1}else if(("suppressStaleRender"===t||"suppressExpiredRender"===t)&&!(0,o.Lm)(e[t]))return(0,o.JE)(`Auction Options ${t} must be of type boolean`),!1}return!0})(e)&&s("auctionOptions",e)}}};return Object.defineProperties(e,Object.fromEntries(Object.entries(a).map((e=>{let[i,r]=e;return[i,Object.assign({get:n.bind(null,i),set:s.bind(null,i),enumerable:t.hasOwnProperty(i),configurable:!t.hasOwnProperty(i)},r)]})))),e;function d(e){return(0,r.I6)(Object.keys(g),(t=>e===g[t]))}function c(e){if(!e)return(0,o.vV)("Prebid Error: no value passed to `setPriceGranularity()`"),!1;if("string"==typeof e)d(e)||(0,o.JE)("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");else if((0,o.Qd)(e)&&!(0,i.q)(e))return(0,o.vV)("Invalid custom price value passed to `setPriceGranularity()`"),!1;return!0}}const h=function(){let e,t,n,i=[],a=null;function u(){e={};let i=p({debug:d,bidderTimeout:3e3,enableSendAllBids:true,useBidCache:false,deviceAccess:true,disableAjaxTimeout:false,maxNestedIframes:10,maxBid:5e3,userSync:{topics:c}});t&&v(Object.keys(t).reduce(((e,n)=>(t[n]!==i[n]&&(e[n]=i[n]||{}),e)),{})),t=i,n={}}function l(){if(a&&n&&(0,o.Qd)(n[a])){let e=n[a];const i=new Set(Object.keys(t).concat(Object.keys(e)));return(0,r.A6)(i).reduce(((n,i)=>(void 0===e[i]?n[i]=t[i]:void 0===t[i]?n[i]=e[i]:(0,o.Qd)(e[i])?n[i]=(0,o.D9)({},t[i],e[i]):n[i]=e[i],n)),{})}return Object.assign({},t)}const[f,g]=[l,function(){const e=l();return Object.defineProperty(e,"ortb2",{get:function(){throw new Error("invalid access to \'orbt2\' config - use request parameters instead")}}),e}].map((e=>function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){const t=arguments.length<=0?void 0:arguments[0];return t?(0,s.A)(e(),t):l()}return y(...arguments)})),[h,m]=[g,f].map((e=>function(){let t=e(...arguments);return t&&"object"==typeof t&&(t=(0,o.Go)(t)),t}));function b(n){if(!(0,o.Qd)(n))return void(0,o.vV)("setConfig options must be an object");let i=Object.keys(n),r={};i.forEach((i=>{let s=n[i];(0,o.Qd)(e[i])&&(0,o.Qd)(s)&&(s=Object.assign({},e[i],s));try{r[i]=t[i]=s}catch(e){(0,o.JE)(`Cannot set config for property ${i} : `,e)}})),v(r)}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=t;if("string"!=typeof e&&(r=e,e="*",n=t||{}),"function"!=typeof r)return void(0,o.vV)("listener must be a function");const s={topic:e,callback:r};return i.push(s),n.init&&r("*"===e?g():{[e]:g(e)}),function(){i.splice(i.indexOf(s),1)}}function v(e){const t=Object.keys(e);i.filter((e=>(0,r.mK)(t,e.topic))).forEach((t=>{t.callback({[t.topic]:e[t.topic]})})),i.filter((e=>"*"===e.topic)).forEach((t=>t.callback(e)))}function E(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{!function(e){if(!(0,o.Qd)(e))throw"setBidderConfig bidder options must be an object";if(!Array.isArray(e.bidders)||!e.bidders.length)throw"setBidderConfig bidder options must contain a bidders list with at least 1 bidder";if(!(0,o.Qd)(e.config))throw"setBidderConfig bidder options must contain a config object"}(e),e.bidders.forEach((i=>{n[i]||(n[i]=p({},!1)),Object.keys(e.config).forEach((r=>{let s=e.config[r];const a=n[i][r];if((0,o.Qd)(s)&&(null==a||(0,o.Qd)(a))){const e=t?o.D9:Object.assign;n[i][r]=e({},a||{},s)}else n[i][r]=s}))}))}catch(e){(0,o.vV)(e)}}function A(e,t){a=e;try{return t()}finally{I()}}function I(){a=null}return u(),{getCurrentBidder:function(){return a},resetBidder:I,getConfig:g,getAnyConfig:f,readConfig:h,readAnyConfig:m,setConfig:b,mergeConfig:function(e){if(!(0,o.Qd)(e))return void(0,o.vV)("mergeConfig input must be an object");const t=(0,o.D9)(l(),e);return b({...t}),t},setDefaults:function(n){(0,o.Qd)(e)?(Object.assign(e,n),Object.assign(t,n)):(0,o.vV)("defaults must be an object")},resetConfig:u,runWithBidder:A,callbackWithBidder:function(e){return function(t){return function(){if("function"==typeof t){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return A(e,t.bind(this,...i))}(0,o.JE)("config.callbackWithBidder callback is not a function")}}},setBidderConfig:E,getBidderConfig:function(){return n},mergeBidderConfig:function(e){return E(e,!0)}}}()},6916:(e,t,n)=>{n.d(t,{SL:()=>g,ad:()=>c,mW:()=>a,o2:()=>l,t6:()=>d});var i=n(1069),r=n(5555),o=n(3272);Object.freeze({});class s{#t;#n;#i;#r;#o=!0;#s;generatedTime;hashFields;constructor(){this.reset()}#a(e){this.#r=!0,this.#n=e,this.#i.resolve(e)}reset(){this.#i=(0,r.v)(),this.#t=!1,this.#n=null,this.#r=!1,this.generatedTime=null}enable(){this.#t=!0}get enabled(){return this.#t}get ready(){return this.#r}get promise(){return this.#r?r.k.resolve(this.#n):(this.#t||this.#a(null),this.#i.promise)}setConsentData(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,i.vE)();this.generatedTime=t,this.#o=!0,this.#a(e)}getConsentData(){return this.#n}get hash(){return this.#o&&(this.#s=(0,i.PB)(JSON.stringify(this.#n&&this.hashFields?this.hashFields.map((e=>this.#n[e])):this.#n)),this.#o=!1),this.#s}}const a=new class extends s{hashFields=["gdprApplies","consentString"];getConsentMeta(){const e=this.getConsentData();if(e&&e.vendorData&&this.generatedTime)return{gdprApplies:e.gdprApplies,consentStringSize:(0,i.O8)(e.vendorData.tcString)?e.vendorData.tcString.length:0,generatedAt:this.generatedTime,apiVersion:e.apiVersion}}},d=new class extends s{getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},c=new class extends s{hashFields=["applicableSections","gppString"];getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},u=(()=>{function e(){return!!o.$W.getConfig("coppa")}return{getCoppa:e,getConsentData:e,getConsentMeta:e,reset(){},get promise(){return r.k.resolve(e())},get hash(){return e()?"1":"0"}}})(),l=function(){const e={},t={},n={};return{register(i,r,o){o&&((e[r]=e[r]||{})[i]=o,t.hasOwnProperty(r)?t[r]!==o&&(t[r]=n):t[r]=o)},get(i){const r={modules:e[i]||{}};return t.hasOwnProperty(i)&&t[i]!==n&&(r.gvlid=t[i]),r}}}(),f={gdpr:a,usp:d,gpp:c,coppa:u};const g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;return e=Object.entries(e),Object.assign({get promise(){return r.k.all(e.map((e=>{let[t,n]=e;return n.promise.then((e=>[t,e]))}))).then((e=>Object.fromEntries(e)))},get hash(){return(0,i.PB)(e.map((e=>{let[t,n]=e;return n.hash})).join(":"))}},Object.fromEntries(["getConsentData","getConsentMeta","reset"].map((t=>{return[t,(n=t,function(){return Object.fromEntries(e.map((e=>{let[t,i]=e;return[t,i[n]()]})))})];var n}))))}()},8969:(e,t,n)=>{n.d(t,{IY:()=>A,M:()=>r,RW:()=>g,Tf:()=>h,UE:()=>c,XQ:()=>o,Zh:()=>l,_B:()=>v,as:()=>a,cA:()=>d,h0:()=>m,iD:()=>i,jO:()=>b,nl:()=>E,oA:()=>y,qY:()=>s,tl:()=>p,x5:()=>f,xS:()=>u});const i={PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},r="pbjs_debug",o={GOOD:1},s={AUCTION_INIT:"auctionInit",AUCTION_TIMEOUT:"auctionTimeout",AUCTION_END:"auctionEnd",BID_ADJUSTMENT:"bidAdjustment",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_REJECTED:"bidRejected",NO_BID:"noBid",SEAT_NON_BID:"seatNonBid",BID_WON:"bidWon",BIDDER_DONE:"bidderDone",BIDDER_ERROR:"bidderError",SET_TARGETING:"setTargeting",BEFORE_REQUEST_BIDS:"beforeRequestBids",BEFORE_BIDDER_HTTP:"beforeBidderHttp",REQUEST_BIDS:"requestBids",ADD_AD_UNITS:"addAdUnits",AD_RENDER_FAILED:"adRenderFailed",AD_RENDER_SUCCEEDED:"adRenderSucceeded",TCF2_ENFORCEMENT:"tcf2Enforcement",AUCTION_DEBUG:"auctionDebug",BID_VIEWABLE:"bidViewable",STALE_RENDER:"staleRender",EXPIRED_RENDER:"expiredRender",BILLABLE_EVENT:"billableEvent",BID_ACCEPTED:"bidAccepted",RUN_PAAPI_AUCTION:"paapiRunAuction",PBS_ANALYTICS:"pbsAnalytics",PAAPI_BID:"paapiBid",PAAPI_NO_BID:"paapiNoBid",PAAPI_ERROR:"paapiError"},a={PREVENT_WRITING_ON_MAIN_DOCUMENT:"preventWritingOnMainDocument",NO_AD:"noAd",EXCEPTION:"exception",CANNOT_FIND_AD:"cannotFindAd",MISSING_DOC_OR_ADID:"missingDocOrAdid"},d={bidWon:"adUnitCode"},c={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"},u={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",SOURCE:"hb_source",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_ID:"hb_cache_id",CACHE_HOST:"hb_cache_host",ADOMAIN:"hb_adomain",ACAT:"hb_acat",CRID:"hb_crid",DSP:"hb_dsp"},l={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_HOST:"hb_cache_host"},f={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",privacyIcon:"hb_native_privicon",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url",adTemplate:"hb_adTemplate"},g={SRC:"s2s",DEFAULT_ENDPOINT:"https://prebid.adnxs.com/pbs/v1/openrtb2/auction",SYNCED_BIDDERS_KEY:"pbjsSyncs"},p={BID_TARGETING_SET:"targetingSet",RENDERED:"rendered",BID_REJECTED:"bidRejected"},h={INVALID:"Bid has missing or invalid properties",INVALID_REQUEST_ID:"Invalid request ID",BIDDER_DISALLOWED:"Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes",FLOOR_NOT_MET:"Bid does not meet price floor",CANNOT_CONVERT_CURRENCY:"Unable to convert currency",DSA_REQUIRED:"Bid does not provide required DSA transparency info",DSA_MISMATCH:"Bid indicates inappropriate DSA rendering method",PRICE_TOO_HIGH:"Bid price exceeds maximum value"},m={body:"desc",body2:"desc2",sponsoredBy:"sponsored",cta:"ctatext",rating:"rating",address:"address",downloads:"downloads",likes:"likes",phone:"phone",price:"price",salePrice:"saleprice",displayUrl:"displayurl"},b={sponsored:1,desc:2,rating:3,likes:4,downloads:5,price:6,saleprice:7,phone:8,address:9,desc2:10,displayurl:11,ctatext:12},y={ICON:1,MAIN:3},v=["privacyIcon","clickUrl","sendTargetingKeys","adTemplate","rendererUrl","type"],E={REQUEST:"Prebid Request",RESPONSE:"Prebid Response",NATIVE:"Prebid Native",EVENT:"Prebid Event"},A="__pb_locator__"},6833:(e,t,n)=>{n.d(t,{j:()=>f,q:()=>p});var i=n(5901),r=n(1069),o=n(3272);const s=2,a={buckets:[{max:5,increment:.5}]},d={buckets:[{max:20,increment:.1}]},c={buckets:[{max:20,increment:.01}]},u={buckets:[{max:3,increment:.01},{max:8,increment:.05},{max:20,increment:.5}]},l={buckets:[{max:5,increment:.05},{max:10,increment:.1},{max:20,increment:.5}]};function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=parseFloat(e);return isNaN(i)&&(i=""),{low:""===i?"":g(e,a,n),med:""===i?"":g(e,d,n),high:""===i?"":g(e,c,n),auto:""===i?"":g(e,l,n),dense:""===i?"":g(e,u,n),custom:""===i?"":g(e,t,n)}}function g(e,t,n){let a="";if(!p(t))return a;const d=t.buckets.reduce(((e,t)=>e.max>t.max?e:t),{max:0});let c=0,u=(0,i.I6)(t.buckets,(t=>{if(e>d.max*n){let e=t.precision;void 0===e&&(e=s),a=(t.max*n).toFixed(e)}else{if(e<=t.max*n&&e>=c*n)return t.min=c,t;c=t.max}}));return u&&(a=function(e,t,n){const i=void 0!==t.precision?t.precision:s,a=t.increment*n,d=t.min*n;let c=Math.floor,u=o.$W.getConfig("cpmRoundingFunction");"function"==typeof u&&(c=u);let l,f,g=Math.pow(10,i+2),p=(e*g-d*g)/(a*g);try{l=c(p)*a+d}catch(e){f=!0}(f||"number"!=typeof l)&&((0,r.JE)("Invalid rounding function passed in config"),l=Math.floor(p)*a+d);return l=Number(l.toFixed(10)),l.toFixed(i)}(e,u,n)),a}function p(e){if((0,r.Im)(e)||!e.buckets||!Array.isArray(e.buckets))return!1;let t=!0;return e.buckets.forEach((e=>{e.max&&e.increment||(t=!1)})),t}},6031:(e,t,n)=>{n.d(t,{H:()=>a,k:()=>s});var i=n(5555),r=n(1069),o=n(4595);const s=(0,n(9214).A_)("sync",(function(e){return o.G})),a=function(){const e={};return function(t){const n=s(t);return e.hasOwnProperty(n)||(e[n]=new i.k((e=>{const t=(0,r.CA)();t.srcdoc=`<script>${n}<\\/script>`,t.onload=()=>e(t.contentWindow.render),document.body.appendChild(t)}))),e[n]}}()},5023:(e,t,n)=>{n.d(t,{AU:()=>m,Ic:()=>v,kQ:()=>y,on:()=>h});var i=n(1069),r=n(8969),o=n(6853),s=n(3272);const a="eventHistoryTTL";let d=null;const c=(0,o.H)({monotonic:!0,ttl:()=>d});s.$W.getConfig(a,(e=>{const t=d;e=e?.[a],d="number"==typeof e?1e3*e:null,t!==d&&c.refresh()}));let u=Array.prototype.slice,l=Array.prototype.push,f=Object.values(r.qY);const g=r.cA,p=function(){let e={},t={};function n(e){return f.includes(e)}return t.has=n,t.on=function(t,r,o){if(n(t)){let n=e[t]||{que:[]};o?(n[o]=n[o]||{que:[]},n[o].que.push(r)):n.que.push(r),e[t]=n}else i.vV("Wrong event name : "+t+" Valid event names :"+f)},t.emit=function(t){!function(t,n){i.OG("Emitting event for: "+t);let r=n[0]||{},o=r[g[t]],s=e[t]||{que:[]};var a=Object.keys(s);let d=[];c.add({eventType:t,args:r,id:o,elapsedTime:i.V()}),o&&a.includes(o)&&l.apply(d,s[o].que),l.apply(d,s.que),(d||[]).forEach((function(e){if(e)try{e.apply(null,n)}catch(e){i.vV("Error executing handler:","events.js",e,t)}}))}(t,u.call(arguments,1))},t.off=function(t,n,r){let o=e[t];i.Im(o)||i.Im(o.que)&&i.Im(o[r])||r&&(i.Im(o[r])||i.Im(o[r].que))||(r?(o[r].que||[]).forEach((function(e){let t=o[r].que;e===n&&t.splice(t.indexOf(e),1)})):(o.que||[]).forEach((function(e){let t=o.que;e===n&&t.splice(t.indexOf(e),1)})),e[t]=o)},t.get=function(){return e},t.addEvents=function(e){f=f.concat(e)},t.getEvents=function(){return c.toArray().map((e=>Object.assign({},e)))},t}();i.cD(p.emit.bind(p));const{on:h,off:m,get:b,getEvents:y,emit:v,addEvents:E,has:A}=p},1970:(e,t,n)=>{n.d(t,{w:()=>T});var i=n(9214),r=n(7934),o=n(1069);const s=(0,n(2938).CK)("fpdEnrichment"),a=(0,o.Bj)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.host;if(!s.cookiesAreEnabled())return e;const t=e.split(".");if(2===t.length)return e;let n,i,r=-2;const a=`_rdc${Date.now()}`,d="writeable";do{n=t.slice(r).join(".");let e=new Date((0,o.vE)()+1e4).toUTCString();s.setCookie(a,d,e,"Lax",n,void 0);s.getCookie(a,void 0)===d?(i=!1,s.setCookie(a,"","Thu, 01 Jan 1970 00:00:01 GMT",void 0,n,void 0)):(r+=-1,i=Math.abs(r)<=t.length)}while(i);return n}));var d=n(3172),c=n(3272),u=n(5555);const l=["architecture","bitness","model","platformVersion","fullVersionList"],f=["brands","mobile","platform"],g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t=e&&f.some((t=>void 0!==e[t]))?Object.freeze(h(1,e)):null;return function(){return t}}(),p=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.navigator?.userAgentData;const t={},n=new WeakMap;return function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l;if(!n.has(i)){const e=Array.from(i);e.sort(),n.set(i,e.join("|"))}const r=n.get(i);if(!t.hasOwnProperty(r))try{t[r]=e.getHighEntropyValues(i).then((e=>(0,o.Im)(e)?null:Object.freeze(h(2,e)))).catch((()=>null))}catch(e){t[r]=u.k.resolve(null)}return t[r]}}();function h(e,t){function n(e,t){const n={brand:e};return(0,o.O8)(t)&&!(0,o.xQ)(t)&&(n.version=t.split(".")),n}const i={source:e};return t.platform&&(i.platform=n(t.platform,t.platformVersion)),(t.fullVersionList||t.brands)&&(i.browsers=(t.fullVersionList||t.brands).map((e=>{let{brand:t,version:i}=e;return n(t,i)}))),void 0!==t.mobile&&(i.mobile=t.mobile?1:0),["model","bitness","architecture"].forEach((e=>{const n=t[e];(0,o.O8)(n)&&(i[e]=n)})),i}var m=n(3858),b=n(5139),y=n(3441),v=n(6811),E=n(5569);const A={getRefererInfo:r.EN,findRootDomain:a,getWindowTop:o.mb,getWindowSelf:o.l4,getHighEntropySUA:p,getLowEntropySUA:g},I=(0,m.i8)("FPD"),T=(0,i.A_)("sync",(e=>{const t=[e,C().catch((()=>null)),u.k.resolve("cookieDeprecationLabel"in navigator&&(0,b.io)(v.Ue,(0,y.s)(E.tp,"cdep"))&&navigator.cookieDeprecationLabel.getValue()).catch((()=>null))];return u.k.all(t).then((e=>{let[t,n,i]=e;const r=A.getRefererInfo();if(Object.entries(O).forEach((e=>{let[n,i]=e;const s=i(t,r);s&&Object.keys(s).length>0&&(t[n]=(0,o.D9)({},s,t[n]))})),n&&(0,d.J)(t,"device.sua",Object.assign({},n,t.device.sua)),i){const e={cdep:i};(0,d.J)(t,"device.ext",Object.assign({},e,t.device.ext))}t=I(t);for(let e of m.Dy)if((0,m.O$)(t,e)){t[e]=(0,o.D9)({},k(t,r),t[e]);break}return t}))}));function w(e){try{return e(A.getWindowTop())}catch(t){return e(A.getWindowSelf())}}function C(){const e=c.$W.getConfig("firstPartyData.uaHints");return Array.isArray(e)&&0!==e.length?A.getHighEntropySUA(e):u.k.resolve(A.getLowEntropySUA())}function B(e){return(0,o.SH)(e,Object.keys(e))}const O={site(e,t){if(!m.Dy.filter((e=>"site"!==e)).some(m.O$.bind(null,e)))return B({page:t.page,ref:t.ref})},device:()=>w((e=>{const t=e.screen.width,n=e.screen.height,i=e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth,r=e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight,s={w:t,h:n,dnt:(0,o.l9)()?1:0,ua:e.navigator.userAgent,language:e.navigator.language.split("-").shift(),ext:{vpw:i,vph:r}};return e.navigator?.webdriver&&(0,d.J)(s,"ext.webdriver",!0),s})),regs(){const e={};w((e=>e.navigator.globalPrivacyControl))&&(0,d.J)(e,"ext.gpc","1");const t=c.$W.getConfig("coppa");return"boolean"==typeof t&&(e.coppa=t?1:0),e}};function k(e,t){const n=(0,r.gR)(t.page,{noLeadingWww:!0}),i=w((e=>e.document.querySelector("meta[name=\'keywords\']")))?.content?.replace?.(/\\s/g,"");return B({domain:n,keywords:i,publisher:B({domain:A.findRootDomain(n)})})}},3858:(e,t,n)=>{n.d(t,{Dy:()=>r,O$:()=>s,i8:()=>o});var i=n(1069);const r=["dooh","app","site"];function o(e){return function(t){return r.reduce(((n,r)=>(s(t,r)&&(null!=n?((0,i.JE)(`${e} specifies both \'${n}\' and \'${r}\'; dropping the latter.`),delete t[r]):n=r),n)),null),t}}function s(e,t){return null!=e[t]&&Object.keys(e[t]).length>0}},9214:(e,t,n)=>{n.d(t,{A_:()=>s,Y6:()=>c,Yn:()=>d});var i=n(8128),r=n.n(i),o=n(5555);let s=r()({ready:r().SYNC|r().ASYNC|r().QUEUE});const a=(0,o.v)();s.ready=(()=>{const e=s.ready;return function(){try{return e.apply(s,arguments)}finally{a.resolve()}}})();a.promise;const d=s.get;function c(e,t){return Object.defineProperties(t,Object.fromEntries(["before","after","getHooks","removeAll"].map((t=>[t,{get:()=>e[t]}])))),t}},1371:(e,t,n)=>{n.d(t,{D4:()=>o,G_:()=>r,LM:()=>s,s6:()=>i});const i="native",r="video",o="banner",s="adpod"},2449:(e,t,n)=>{n.d(t,{Bm:()=>E,IX:()=>O,Nh:()=>u,Zj:()=>T,gs:()=>I,l6:()=>m,mT:()=>c,nk:()=>y,vO:()=>A,yl:()=>k});var i=n(1069),r=n(5901),o=n(6881),s=n(8969),a=n(9075),d=n(6031);const c=[],u=Object.keys(s.x5).map((e=>s.x5[e])),l={image:{ortb:{ver:"1.2",assets:[{required:1,id:1,img:{type:3,wmin:100,hmin:100}},{required:1,id:2,title:{len:140}},{required:1,id:3,data:{type:1}},{required:0,id:4,data:{type:2}},{required:0,id:5,img:{type:1,wmin:20,hmin:20}}]},image:{required:!0},title:{required:!0},sponsoredBy:{required:!0},clickUrl:{required:!0},body:{required:!1},icon:{required:!1}}},f=U(s.h0),g=U(s.jO),p={img:1,js:2,1:"img",2:"js"},h={impression:1,"viewable-mrc50":2,"viewable-mrc100":3,"viewable-video50":4};function m(e){return e.native&&"object"==typeof e.native}function b(e){if(e&&e.type&&function(e){if(!e||!(0,r.mK)(Object.keys(l),e))return(0,i.vV)(`${e} nativeParam is not supported`),!1;return!0}(e.type)&&(e=l[e.type]),!e||!e.ortb||v(e.ortb))return e}function y(e){e.forEach((e=>{const t=e.nativeParams||e?.mediaTypes?.native;t&&(e.nativeParams=b(t)),e.nativeParams&&(e.nativeOrtbRequest=e.nativeParams.ortb||function(e){if(!e&&!(0,i.Qd)(e))return void(0,i.vV)("Native assets object is empty or not an object: ",e);const t={ver:"1.2",assets:[]};for(let n in e){if(s._B.includes(n))continue;if(!s.x5.hasOwnProperty(n)){(0,i.vV)(`Unrecognized native asset code: ${n}. Asset will be ignored.`);continue}if("privacyLink"===n){t.privacy=1;continue}const r=e[n];let o=0;r.required&&(0,i.Lm)(r.required)&&(o=Number(r.required));const a={id:t.assets.length,required:o};if(n in s.h0)a.data={type:s.jO[s.h0[n]]},r.len&&(a.data.len=r.len);else if("icon"===n||"image"===n){if(a.img={type:"icon"===n?s.oA.ICON:s.oA.MAIN},r.aspect_ratios)if((0,i.cy)(r.aspect_ratios))if(r.aspect_ratios.length){const{min_width:e,min_height:t}=r.aspect_ratios[0];(0,i.Fq)(e)&&(0,i.Fq)(t)?(a.img.wmin=e,a.img.hmin=t):(0,i.vV)("image.aspect_ratios min_width or min_height are invalid: ",e,t);const n=r.aspect_ratios.filter((e=>e.ratio_width&&e.ratio_height)).map((e=>`${e.ratio_width}:${e.ratio_height}`));n.length>0&&(a.img.ext={aspectratios:n})}else(0,i.vV)("image.aspect_ratios was passed, but it\'s empty:",r.aspect_ratios);else(0,i.vV)("image.aspect_ratios was passed, but it\'s not a an array:",r.aspect_ratios);r.sizes&&(2===r.sizes.length&&(0,i.Fq)(r.sizes[0])&&(0,i.Fq)(r.sizes[1])?(a.img.w=r.sizes[0],a.img.h=r.sizes[1],delete a.img.hmin,delete a.img.wmin):(0,i.vV)("image.sizes was passed, but its value is not an array of integers:",r.sizes))}else"title"===n?a.title={len:r.len||140}:"ext"===n&&(a.ext=r,delete a.required);t.assets.push(a)}return t}(e.nativeParams))}))}function v(e){const t=e.assets;if(!Array.isArray(t)||0===t.length)return(0,i.vV)("assets in mediaTypes.native.ortb is not an array, or it\'s empty. Assets: ",t),!1;const n=t.map((e=>e.id));return t.length!==new Set(n).size||n.some((e=>e!==parseInt(e,10)))?((0,i.vV)("each asset object must have \'id\' property, it must be unique and it must be an integer"),!1):e.hasOwnProperty("eventtrackers")&&!Array.isArray(e.eventtrackers)?((0,i.vV)("ortb.eventtrackers is not an array. Eventtrackers: ",e.eventtrackers),!1):t.every((e=>function(e){if(!(0,i.Qd)(e))return(0,i.vV)("asset must be an object. Provided asset: ",e),!1;if(e.img){if(!(0,i.Et)(e.img.w)&&!(0,i.Et)(e.img.wmin))return(0,i.vV)("for img asset there must be \'w\' or \'wmin\' property"),!1;if(!(0,i.Et)(e.img.h)&&!(0,i.Et)(e.img.hmin))return(0,i.vV)("for img asset there must be \'h\' or \'hmin\' property"),!1}else if(e.title){if(!(0,i.Et)(e.title.len))return(0,i.vV)("for title asset there must be \'len\' property defined"),!1}else if(e.data){if(!(0,i.Et)(e.data.type))return(0,i.vV)("for data asset \'type\' property must be a number"),!1}else if(e.video&&!(Array.isArray(e.video.mimes)&&Array.isArray(e.video.protocols)&&(0,i.Et)(e.video.minduration)&&(0,i.Et)(e.video.maxduration)))return(0,i.vV)("video asset is not properly configured"),!1;return!0}(e)))}function E(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getAdUnit(e);if(!n)return!1;let s=n.nativeOrtbRequest;return function(e,t){if(!e?.link?.url)return(0,i.vV)("native response doesn\'t have \'link\' property. Ortb response: ",e),!1;let n=t.assets.filter((e=>1===e.required)).map((e=>e.id)),o=e.assets.map((e=>e.id));const s=n.every((e=>(0,r.mK)(o,e)));s||(0,i.vV)(`didn\'t receive a bid with all required assets. Required ids: ${n}, but received ids in response: ${o}`);return s}(e.native?.ortb||D(e.native,s),s)}function A(e,t){const n=t.native.ortb||S(t.native);return"click"===e.action?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{fetchURL:n=i.z$}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){const i=(e.assets||[]).filter((e=>e.link)).reduce(((e,t)=>(e[t.id]=t.link,e)),{}),r=e.link?.clicktrackers||[];let o=i[t],s=r;o&&(s=o.clicktrackers||[]),s.forEach((e=>n(e)))}else(e.link?.clicktrackers||[]).forEach((e=>n(e)))}(n,e?.assetId):function(e){let{runMarkup:t=(e=>(0,i.ro)(e)),fetchURL:n=i.z$}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=(e.eventtrackers||[]).filter((e=>e.event===h.impression));let{img:o,js:s}=r.reduce(((e,t)=>(p.hasOwnProperty(t.method)&&e[p[t.method]].push(t.url),e)),{img:[],js:[]});e.imptrackers&&(o=o.concat(e.imptrackers));o.forEach((e=>n(e))),s=s.map((e=>`<script async src="${e}"><\\/script>`)),e.jstracker&&(s=s.concat([e.jstracker]));s.length&&t(s.join("\\n"))}(n),e.action}function I(e,t){const n=t?.nativeOrtbRequest,i=e.native?.ortb;if(n&&i){const t=function(e,t){const n={},i=t?.assets||[];n.clickUrl=e.link?.url,n.privacyLink=e.privacy;for(const t of e?.assets||[]){const e=i.find((e=>t.id===e.id));t.title?n.title=t.title.text:t.img?n[e?.img?.type===s.oA.MAIN?"image":"icon"]={url:t.img.url,width:t.img.w,height:t.img.h}:t.data&&(n[f[g[e?.data?.type]]]=t.data.value)}n.impressionTrackers=[];let r=[];e.imptrackers&&n.impressionTrackers.push(...e.imptrackers);for(const t of e?.eventtrackers||[])t.event===h.impression&&t.method===p.img&&n.impressionTrackers.push(t.url),t.event===h.impression&&t.method===p.js&&r.push(t.url);r=r.map((e=>`<script async src="${e}"><\\/script>`)),e?.jstracker&&r.push(e.jstracker);r.length&&(n.javascriptTrackers=r.join("\\n"));return n}(i,n);Object.assign(e.native,t)}["rendererUrl","adTemplate"].forEach((n=>{const i=t?.nativeParams?.[n];i&&(e.native[n]=R(i))}))}function T(e){let{index:t=o.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={};const i=t.getAdUnit(e),r=null==i?.nativeParams?.ortb&&!1!==i?.nativeParams?.sendTargetingKeys,a=function(e){const t={};e?.nativeParams?.ext&&Object.keys(e.nativeParams.ext).forEach((e=>{t[e]=`hb_native_${e}`}));return{...s.x5,...t}}(i),d={...e.native,...e.native.ext};return delete d.ext,Object.keys(d).forEach((t=>{const o=a[t];let s=R(e.native[t])||R(e?.native?.ext?.[t]);if("adTemplate"===t||!o||!s)return;let d=i?.nativeParams?.[t]?.sendId;if("boolean"!=typeof d&&(d=i?.nativeParams?.ext?.[t]?.sendId),d){s=`${o}:${e.adId}`}let c=i?.nativeParams?.[t]?.sendTargetingKeys;"boolean"!=typeof c&&(c=i?.nativeParams?.ext?.[t]?.sendTargetingKeys);("boolean"==typeof c?c:r)&&(n[o]=s)})),n}function w(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];return Object.entries(e).filter((e=>{let[i,r]=e;return r&&(!1===n&&"ext"===i||null==t||t.includes(i))})).forEach((e=>{let[r,o]=e;!1===n&&"ext"===r?i.push(...w(o,t,!0)):(n||s.x5.hasOwnProperty(r))&&i.push({key:r,value:R(o)})})),i}function C(e,t,n){let{index:r=o.n.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const c={message:"assetResponse",adId:e.adId};let u=(0,a.vd)(t).native;return u?(c.native=Object.assign({},u),c.renderer=(0,d.k)(t),null!=n&&(u.assets=u.assets.filter((e=>{let{key:t}=e;return n.includes(t)})))):u=function(e,t,n){const r={...(0,i.SH)(e.native,["rendererUrl","adTemplate"]),assets:w(e.native,n),nativeKeys:s.x5};return e.native.ortb?r.ortb=e.native.ortb:t.mediaTypes?.native?.ortb&&(r.ortb=D(e.native,t.nativeOrtbRequest)),r}(t,r.getAdUnit(t),n),Object.assign(c,u)}const B=Object.fromEntries(Object.entries(s.x5).map((e=>{let[t,n]=e;return[n,t]})));function O(e,t){const n=e.assets.map((e=>B[e]));return C(e,t,n)}function k(e,t){return C(e,t,null)}function R(e){return e?.url||e}function S(e){const t={link:{},eventtrackers:[]};return Object.entries(e).forEach((e=>{let[n,i]=e;switch(n){case"clickUrl":t.link.url=i;break;case"clickTrackers":t.link.clicktrackers=Array.isArray(i)?i:[i];break;case"impressionTrackers":(Array.isArray(i)?i:[i]).forEach((e=>{t.eventtrackers.push({event:h.impression,method:p.img,url:e})}));break;case"javascriptTrackers":t.jstracker=Array.isArray(i)?i.join(""):i;break;case"privacyLink":t.privacy=i}})),t}function D(e,t){const n={...S(e),assets:[]};function r(e,r){let o=t.assets.find(e);null!=o&&(o=(0,i.Go)(o),r(o),n.assets.push(o))}return Object.keys(e).filter((t=>!!e[t])).forEach((t=>{const n=R(e[t]);switch(t){case"title":r((e=>null!=e.title),(e=>{e.title={text:n}}));break;case"image":case"icon":const e="image"===t?s.oA.MAIN:s.oA.ICON;r((t=>null!=t.img&&t.img.type===e),(e=>{e.img={url:n}}));break;default:t in s.h0&&r((e=>null!=e.data&&e.data.type===s.jO[s.h0[t]]),(e=>{e.data={value:n}}))}})),n}function U(e){var t={};for(var n in e)t[e[n]]=n;return t}},1e3:(e,t,n)=>{n.d(t,{Cf:()=>a,S3:()=>r,Tb:()=>o,WR:()=>s,pS:()=>l,qN:()=>d,yB:()=>f,zt:()=>i});const i=["request","imp","bidResponse","response"],[r,o,s,a]=i,[d,c]=["default","pbs"],u=new Set(i);const{registerOrtbProcessor:l,getProcessors:f}=function(){const e={};return{registerOrtbProcessor(t){let{type:n,name:r,fn:o,priority:s=0,dialects:a=[d]}=t;if(!u.has(n))throw new Error(`ORTB processor type must be one of: ${i.join(", ")}`);a.forEach((t=>{e.hasOwnProperty(t)||(e[t]={}),e[t].hasOwnProperty(n)||(e[t][n]={}),e[t][n][r]={priority:s,fn:o}}))},getProcessors:t=>e[t]||{}}}()},5901:(e,t,n)=>{function i(e,t,n){return e&&e.includes(t,n)||!1}function r(){return Array.from.apply(Array,arguments)}function o(e,t,n){return e&&e.find(t,n)}n.d(t,{A6:()=>r,I6:()=>o,mK:()=>i})},8261:(e,t,n)=>{var i=n(7873),r=n(1069),o=n(433),s=n(3172),a=n(2449),d=n(8969),c=n(5901),u=n(9075),l=n(6031);const{REQUEST:f,RESPONSE:g,NATIVE:p,EVENT:h}=d.nl,m={[f]:function(e,t,n){(0,u.bw)({renderFn(t){e(Object.assign({message:g,renderer:(0,l.k)(n)},t))},resizeFn:y(t.adId,n),options:t.options,adId:t.adId,bidResponse:n})},[h]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad \'${t.adId}\' for x-origin event request`);if(n.status!==d.tl.RENDERED)return void(0,r.JE)(`Received x-origin event request without corresponding render request for ad \'${n.adId}\'`);return(0,u.Uc)(t,n)}};function b(){window.addEventListener("message",(function(e){!function(e){var t=e.message?"message":"data",n={};try{n=JSON.parse(e[t])}catch(e){return}if(n&&n.adId&&n.message&&m.hasOwnProperty(n.message))(0,u.$A)(n.adId,n.message===d.nl.REQUEST).then((t=>{var i,o;m[n.message]((i=n.adId,o=function(e){return null==e.origin&&0===e.ports.length?function(){const e="Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";throw(0,r.vV)(e),new Error(e)}:e.ports.length>0?function(t){e.ports[0].postMessage(JSON.stringify(t))}:function(t){e.source.postMessage(JSON.stringify(t),e.origin)}}(e),function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return o(Object.assign({},e,{adId:i}),...n)}),n,t)}))}(e)}),!1)}function y(e,t){return function(n,i){!function(e){let{adId:t,adUnitCode:n,width:i,height:o}=e;function s(e){return e?e+"px":"100%"}function a(e){let i=d(t,n),r=document.getElementById(i);return r&&r.querySelector(e)}function d(e,t){return(0,r.II)()?u(e):(0,r.t1)()?l(t):t}function u(e){const t=(0,c.I6)(window.googletag.pubads().getSlots(),(t=>(0,c.I6)(t.getTargetingKeys(),(n=>(0,c.mK)(t.getTargeting(n),e)))));return t?t.getSlotElementId():null}function l(e){let t=window.apntag.getTag(e);return t&&t.targetId}["div","iframe"].forEach((e=>{let t=a(e+\':not([style*="display: none"])\');if(t){let e=t.style;e.width=s(i),e.height=s(o)}else(0,r.vV)(`Unable to locate matching page element for adUnitCode ${n}. Can\'t resize it to ad\'s dimensions. Please review setup.`)}))}({...t,width:n,height:i,adId:e})}}Object.assign(m,{[p]:function(e,t,n){if(null==n)return void(0,r.vV)(`Cannot find ad for x-origin event request: \'${t.adId}\'`);switch(t.action){case"assetRequest":(0,u.Hh)(n,(()=>e((0,a.IX)(t,n))));break;case"allAssetRequest":(0,u.Hh)(n,(()=>e((0,a.yl)(t,n))));break;default:(0,u.vW)(t,n,{resizeFn:y(t.adId,n)}),(0,u.Pk)(n)}}});var v=n(8230),E=n(3272),A=n(6881),I=n(7779),T=n(9214),w=n(3597),C=n(1580),B=n(5555),O=n(5569);const k="__pbjs_debugging__";function R(){return(0,i.m)().installedModules.includes("debugging")}function S(e){return new B.k((t=>{(0,C.R)(e,O.tp,"debugging",t)}))}function D(){let{alreadyInstalled:e=R,script:t=S}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null;return function(){return null==n&&(n=new B.k(((n,o)=>{setTimeout((()=>{if(e())n();else{const e="https://cdn.jsdelivr.net/npm/prebid.js@9.23.0/dist/debugging-standalone.js";(0,r.OG)(`Debugging module not installed, loading it from "${e}"...`),(0,i.m)()._installDebugging=!0,t(e).then((()=>{(0,i.m)()._installDebugging({DEBUG_KEY:k,hook:T.A_,config:E.$W,createBid:w.O,logger:(0,r.h0)("DEBUG:")})})).then(n,o)}}))}))),n}}const U=function(){let{load:e=D(),hook:t=(0,T.Yn)("requestBids")}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null,i=!1;function r(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return(n||B.k.resolve()).then((()=>e.apply(this,i)))}function o(){t.getHooks({hook:r}).remove(),i=!1}return{enable:function(){i||(n=e(),t.before(r,99),i=!0)},disable:o,reset:function(){n=null,o()}}}();U.reset;E.$W.getConfig("debugging",(function(e){let{debugging:t}=e;t?.enabled?U.enable():U.disable()}));var _=n(2938),$=n(8046),j=n(5023),q=n(6894),x=n(1970),N=n(6916),P=n(2713),W=n(3895);const V=new Map([["format",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"object"==typeof e))],["w",r.Fq],["h",r.Fq],["btype",r.Uu],["battr",r.Uu],["pos",r.Fq],["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["topframe",e=>[1,0].includes(e)],["expdir",r.Uu],["api",r.Uu],["id",r.O8],["vcm",e=>[1,0].includes(e)]]);var M=n(1371);const G=(0,i.m)(),{triggerUserSyncs:F}=v.zt,{ADD_AD_UNITS:H,REQUEST_BIDS:L,SET_TARGETING:z}=d.qY,J={bidWon:function(e){if(!A.n.getBidsRequested().map((e=>e.bids.map((e=>e.adUnitCode)))).reduce(r.Bq).filter(r.hj).includes(e))return void(0,r.vV)(\'The "\'+e+\'" placement is not defined.\');return!0}};function K(e,t){let n=[];return(0,r.cy)(e)&&(t?e.length===t:e.length>0)&&(e.every((e=>(0,r.Uu)(e,2)))?n=e:(0,r.Uu)(e,2)&&n.push(e)),n}function Q(e,t){const n=(0,o.A)(e,`ortb2Imp.${t}`),i=(0,o.A)(e,`mediaTypes.${t}`);if(!n&&!i)return;const a={[M.G_]:W.Zy,[M.D4]:V}[t];a&&[...a].forEach((n=>{let[i,a]=n;const d=(0,o.A)(e,`mediaTypes.${t}.${i}`),c=(0,o.A)(e,`ortb2Imp.${t}.${i}`);null==d&&null==c||(null==d?(0,s.J)(e,`mediaTypes.${t}.${i}`,c):null==c?(0,s.J)(e,`ortb2Imp.${t}.${i}`,d):((0,r.JE)(`adUnit ${e.code}: specifies conflicting ortb2Imp.${t}.${i} and mediaTypes.${t}.${i}, the latter will be ignored`,e),(0,s.J)(e,`mediaTypes.${t}.${i}`,c)))}))}function Y(e){const t=(0,r.Go)(e),n=t.mediaTypes.banner,i=K(n.sizes);return i.length>0?(n.sizes=i,t.sizes=i):((0,r.vV)("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."),delete t.mediaTypes.banner),Q(t,"banner"),t}function X(e){const t=(0,r.Go)(e),n=t.mediaTypes.video;if(n.playerSize){let e="number"==typeof n.playerSize[0]?2:1;const i=K(n.playerSize,e);i.length>0?(2===e&&(0,r.fH)("Transforming video.playerSize from [640,480] to [[640,480]] so it\'s in the proper format."),n.playerSize=i,t.sizes=i):((0,r.vV)("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."),delete t.mediaTypes.video.playerSize)}return(0,W.aP)(t),Q(t,"video"),t}function Z(e){function t(t){return(0,r.vV)(`Error in adUnit "${e.code}": ${t}. Removing native request from ad unit`,e),delete i.mediaTypes.native,i}function n(e){for(const t of["sendTargetingKeys","types"])if(o.hasOwnProperty(t)){const n=e(t);if(n)return n}}const i=(0,r.Go)(e),o=i.mediaTypes.native;if(o.ortb){if(o.ortb.assets?.some((e=>!(0,r.Et)(e.id)||e.id<0||e.id%1!=0)))return t("native asset ID must be a nonnegative integer");if(n((e=>t(`ORTB native requests cannot specify "${e}"`))))return i;const e=Object.keys(d.x5).filter((e=>d.x5[e].includes("hb_native_"))),s=Object.keys(o).filter((t=>e.includes(t)));s.length>0&&((0,r.vV)(`when using native OpenRTB format, you cannot use legacy native properties. Deleting ${s} keys from request.`),s.forEach((e=>delete i.mediaTypes.native[e])))}else n((e=>`mediaTypes.native.${e} is deprecated, consider using native ORTB instead`));return o.image&&o.image.sizes&&!Array.isArray(o.image.sizes)&&((0,r.vV)("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."),delete i.mediaTypes.native.image.sizes),o.image&&o.image.aspect_ratios&&!Array.isArray(o.image.aspect_ratios)&&((0,r.vV)("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."),delete i.mediaTypes.native.image.aspect_ratios),o.icon&&o.icon.sizes&&!Array.isArray(o.icon.sizes)&&((0,r.vV)("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."),delete i.mediaTypes.native.icon.sizes),i}function ee(e,t){let n=e?.mediaTypes?.[t]?.pos;if(!(0,r.Et)(n)||isNaN(n)||!isFinite(n)){let n=`Value of property \'pos\' on ad unit ${e.code} should be of type: Number`;(0,r.JE)(n),delete e.mediaTypes[t].pos}return e}function te(e){const t=t=>`adUnit.code \'${e.code}\' ${t}`,n=e.mediaTypes,i=e.bids;return null==i||(0,r.cy)(i)?null==i&&null==e.ortb2Imp?((0,r.vV)(t("has no \'adUnit.bids\' and no \'adUnit.ortb2Imp\'. Removing adUnit from auction")),null):n&&0!==Object.keys(n).length?(null==e.ortb2Imp||null!=i&&0!==i.length||(e.bids=[{bidder:null}],(0,r.OG)(t("defines \'adUnit.ortb2Imp\' with no \'adUnit.bids\'; it will be seen only by S2S adapters"))),e):((0,r.vV)(t("does not define a \'mediaTypes\' object. This is a required field for the auction, so this adUnit has been removed.")),null):((0,r.vV)(t("defines \'adUnit.bids\' that is not an array. Removing adUnit from auction")),null)}!function(){let e=null;try{e=window.sessionStorage}catch(e){}if(null!==e){let t=U,n=null;try{n=e.getItem(k)}catch(e){}null!==n&&t.enable()}}(),G.bidderSettings=G.bidderSettings||{},G.libLoaded=!0,G.version="v9.23.0",(0,r.fH)("Prebid.js v9.23.0 loaded"),G.installedModules=G.installedModules||[],G.adUnits=G.adUnits||[],G.triggerUserSyncs=F;const ne={validateAdUnit:te,validateBannerMediaType:Y,validateSizes:K};Object.assign(ne,{validateNativeMediaType:Z}),Object.assign(ne,{validateVideoMediaType:X});const ie=(0,T.A_)("sync",(function(e){const t=[];return e.forEach((e=>{if(null==(e=te(e)))return;const n=e.mediaTypes;let i,r,o;n.banner&&(i=Y(e),n.banner.hasOwnProperty("pos")&&(i=ee(i,"banner"))),n.video&&(r=X(i||e),n.video.hasOwnProperty("pos")&&(r=ee(r,"video"))),n.native&&(o=Z(r||(i||e)));const s=Object.assign({},i,r,o);t.push(s)})),t}),"checkAdUnitSetup");function re(e){const t=A.n[e]().filter((e=>A.n.getAdUnitCodes().includes(e.adUnitCode))),n=A.n.getLastAuctionId();return t.map((e=>e.adUnitCode)).filter(r.hj).map((e=>t.filter((t=>t.auctionId===n&&t.adUnitCode===e)))).filter((e=>e&&e[0]&&e[0].adUnitCode)).map((e=>({[e[0].adUnitCode]:{bids:e}}))).reduce(((e,t)=>Object.assign(e,t)),{})}G.getAdserverTargetingForAdUnitCodeStr=function(e){if((0,r.fH)("Invoking pbjs.getAdserverTargetingForAdUnitCodeStr",arguments),e){var t=G.getAdserverTargetingForAdUnitCode(e);return(0,r.$D)(t)}(0,r.OG)("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},G.getHighestUnusedBidResponseForAdUnitCode=function(e){if(e){const t=A.n.getAllBidsForAdUnitCode(e).filter(I.Yl);return t.length?t.reduce(P.Vk):{}}(0,r.OG)("Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode")},G.getAdserverTargetingForAdUnitCode=function(e){return G.getAdserverTargeting(e)[e]},G.getAdserverTargeting=function(e){return(0,r.fH)("Invoking pbjs.getAdserverTargeting",arguments),I.iS.getAllTargeting(e)},G.getConsentMetadata=function(){return(0,r.fH)("Invoking pbjs.getConsentMetadata"),N.SL.getConsentMeta()},G.getNoBids=function(){return(0,r.fH)("Invoking pbjs.getNoBids",arguments),re("getNoBids")},G.getNoBidsForAdUnitCode=function(e){return{bids:A.n.getNoBids().filter((t=>t.adUnitCode===e))}},G.getBidResponses=function(){return(0,r.fH)("Invoking pbjs.getBidResponses",arguments),re("getBidsReceived")},G.getBidResponsesForAdUnitCode=function(e){return{bids:A.n.getBidsReceived().filter((t=>t.adUnitCode===e))}},G.setTargetingForGPTAsync=function(e,t){(0,r.fH)("Invoking pbjs.setTargetingForGPTAsync",arguments),(0,r.II)()?I.iS.setTargetingForGPT(e,t):(0,r.vV)("window.googletag is not defined on the page")},G.setTargetingForAst=function(e){(0,r.fH)("Invoking pbjs.setTargetingForAn",arguments),I.iS.isApntagDefined()?(I.iS.setTargetingForAst(e),j.Ic(z,I.iS.getAllTargeting())):(0,r.vV)("window.apntag is not defined on the page")},G.renderAd=(0,T.A_)("async",(function(e,t,n){(0,r.fH)("Invoking pbjs.renderAd",arguments),(0,r.OG)("Calling renderAd with adId :"+t),(0,u.BS)(e,t,n)})),G.removeAdUnit=function(e){if((0,r.fH)("Invoking pbjs.removeAdUnit",arguments),!e)return void(G.adUnits=[]);let t;t=(0,r.cy)(e)?e:[e],t.forEach((e=>{for(let t=G.adUnits.length-1;t>=0;t--)G.adUnits[t].code===e&&G.adUnits.splice(t,1)}))},G.requestBids=function(){const e=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2:d,metrics:u,defer:l}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};j.Ic(L);const f=t||E.$W.getConfig("bidderTimeout");(0,r.fH)("Invoking pbjs.requestBids",arguments),null==i||Array.isArray(i)||(i=[i]),i&&i.length?n=n.filter((e=>(0,c.mK)(i,e.code))):i=n&&n.map((e=>e.code)),i=i.filter(r.hj);const g={global:(0,r.D9)({},E.$W.getAnyConfig("ortb2")||{},d||{}),bidder:Object.fromEntries(Object.entries(E.$W.getBidderConfig()).map((e=>{let[t,n]=e;return[t,(0,r.Go)(n.ortb2)]})).filter((e=>{let[t,n]=e;return null!=n})))};return(0,x.w)(B.k.resolve(g.global)).then((t=>(g.global=t,oe({bidsBackHandler:e,timeout:f,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2Fragments:g,metrics:u,defer:l}))))}),"requestBids");return(0,T.Y6)(e,(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.adUnits||G.adUnits;return t.adUnits=(0,r.cy)(n)?n.slice():[n],t.metrics=(0,q.K7)(),t.metrics.checkpoint("requestBids"),t.defer=(0,B.v)({promiseFactory:e=>new Promise(e)}),e.call(this,t),t.defer.promise}))}();const oe=(0,T.A_)("async",(function(){let{bidsBackHandler:e,timeout:t,adUnits:n,ttlBuffer:i,adUnitCodes:o,labels:a,auctionId:d,ortb2Fragments:u,metrics:l,defer:f}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const g=(0,$.pX)(E.$W.getConfig("s2sConfig")||[]);function p(t,n,i){if("function"==typeof e)try{e(t,n,i)}catch(e){(0,r.vV)("Error executing bidsBackHandler",null,e)}f.resolve({bids:t,timedOut:n,auctionId:i})}!function(e){e.forEach((e=>(0,W.V0)(e)))}(n),n=(0,q.BO)(l).measureTime("requestBids.validate",(()=>ie(n)));const h={};if(n.forEach((e=>{const t=Object.keys(e.mediaTypes||{banner:"banner"}),n=e.bids.map((e=>e.bidder)),o=$.Ay.bidderRegistry,s=n.filter((e=>!g.has(e)));e.adUnitId=(0,r.lk)();const a=e.ortb2Imp?.ext?.tid;a&&(h.hasOwnProperty(e.code)?(0,r.JE)(`Multiple distinct ortb2Imp.ext.tid were provided for twin ad units \'${e.code}\'`):h[e.code]=a),null==i||e.hasOwnProperty("ttlBuffer")||(e.ttlBuffer=i),s.forEach((n=>{const i=o[n],s=i&&i.getSpec&&i.getSpec(),a=s&&s.supportedMediaTypes||["banner"];t.some((e=>(0,c.mK)(a,e)))||((0,r.JE)((0,r.bz)(e,n)),e.bids=e.bids.filter((e=>e.bidder!==n)))}))})),n&&0!==n.length){n.forEach((e=>{const t=e.ortb2Imp?.ext?.tid||h[e.code]||(0,r.lk)();h.hasOwnProperty(e.code)||(h[e.code]=t),e.transactionId=t,(0,s.J)(e,"ortb2Imp.ext.tid",t)}));const e=A.n.createAuction({adUnits:n,adUnitCodes:o,callback:p,cbTimeout:t,labels:a,auctionId:d,ortb2Fragments:u,metrics:l});let i=n.length;i>15&&(0,r.fH)(`Current auction ${e.getAuctionId()} contains ${i} adUnits.`,n),o.forEach((t=>I.iS.setLatestAuctionForAdUnit(t,e.getAuctionId()))),e.callBids()}else(0,r.OG)("No adUnits configured. No bids requested."),p()}),"startAuction");G.requestBids.before((function(e,t){function n(e){for(var t;t=e.shift();)t()}n(_.s0),n(se),e.call(this,t)}),49),G.addAdUnits=function(e){(0,r.fH)("Invoking pbjs.addAdUnits",arguments),G.adUnits.push.apply(G.adUnits,(0,r.cy)(e)?e:[e]),j.Ic(H)},G.onEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.onEvent",arguments),(0,r.fp)(t)?!n||J[e].call(null,n)?j.on(e,t,n):(0,r.vV)(\'The id provided is not valid for event "\'+e+\'" and no handler was set.\'):(0,r.vV)(\'The event handler provided is not a function and was not set on event "\'+e+\'".\')},G.offEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.offEvent",arguments),n&&!J[e].call(null,n)||j.AU(e,t,n)},G.getEvents=function(){return(0,r.fH)("Invoking pbjs.getEvents"),j.kQ()},G.registerBidAdapter=function(e,t){(0,r.fH)("Invoking pbjs.registerBidAdapter",arguments);try{$.Ay.registerBidAdapter(e(),t)}catch(e){(0,r.vV)("Error registering bidder adapter : "+e.message)}},G.registerAnalyticsAdapter=function(e){(0,r.fH)("Invoking pbjs.registerAnalyticsAdapter",arguments);try{$.Ay.registerAnalyticsAdapter(e)}catch(e){(0,r.vV)("Error registering analytics adapter : "+e.message)}},G.createBid=function(e){return(0,r.fH)("Invoking pbjs.createBid",arguments),(0,w.O)(e)};const se=[],ae=(0,T.A_)("async",(function(e){e&&!(0,r.Im)(e)?((0,r.fH)("Invoking pbjs.enableAnalytics for: ",e),$.Ay.enableAnalytics(e)):(0,r.vV)("pbjs.enableAnalytics should be called with option {}")}),"enableAnalyticsCb");function de(e){if("function"==typeof e)try{e.call()}catch(e){(0,r.vV)("Error processing command :",e.message,e.stack)}else(0,r.vV)("Commands written into pbjs.cmd.push must be wrapped in a function")}function ce(e){e.forEach((function(e){if(void 0===e.called)try{e.call(),e.called=!0}catch(e){(0,r.vV)("Error processing command :","prebid.js",e)}}))}G.enableAnalytics=function(e){se.push(ae.bind(this,e))},G.aliasBidder=function(e,t,n){(0,r.fH)("Invoking pbjs.aliasBidder",arguments),e&&t?$.Ay.aliasBidAdapter(e,t,n):(0,r.vV)("bidderCode and alias must be passed as arguments","pbjs.aliasBidder")},G.aliasRegistry=$.Ay.aliasRegistry,E.$W.getConfig("aliasRegistry",(e=>{"private"===e.aliasRegistry&&delete G.aliasRegistry})),G.getAllWinningBids=function(){return A.n.getAllWinningBids()},G.getAllPrebidWinningBids=function(){return A.n.getBidsReceived().filter((e=>e.status===d.tl.BID_TARGETING_SET))},G.getHighestCpmBids=function(e){return I.iS.getWinningBids(e)},G.clearAllAuctions=function(){A.n.clearAllAuctions()},G.markWinningBidAsUsed=function(e){let t,{adId:n,adUnitCode:i,analytics:o=!1}=e;i&&null==n?t=I.iS.getWinningBids(i):n?t=A.n.getBidsReceived().filter((e=>e.adId===n)):(0,r.JE)("Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function."),t.length>0&&(o?(0,u.n6)(t[0]):A.n.addWinningBid(t[0]),(0,u.qn)(t[0]))},G.getConfig=E.$W.getAnyConfig,G.readConfig=E.$W.readAnyConfig,G.mergeConfig=E.$W.mergeConfig,G.mergeBidderConfig=E.$W.mergeBidderConfig,G.setConfig=E.$W.setConfig,G.setBidderConfig=E.$W.setBidderConfig,G.que.push((()=>b())),G.processQueue=function(){G.que.push=G.cmd.push=de,(0,u.XO)(),T.A_.ready(),ce(G.que),ce(G.cmd)},G.triggerBilling=e=>{let{adId:t,adUnitCode:n}=e;A.n.getAllWinningBids().filter((e=>e.adId===t||null==t&&e.adUnitCode===n)).forEach((e=>{$.Ay.triggerBilling(e),(0,u.vB)(e)}))}},7873:(e,t,n)=>{n.d(t,{E:()=>s,m:()=>o});const i=window,r=i.pbjs=i.pbjs||{};function o(){return r}function s(e){r.installedModules.push(e)}r.cmd=r.cmd||[],r.que=r.que||[],i===window&&(i._pbjsGlobals=i._pbjsGlobals||[],i._pbjsGlobals.push("pbjs"))},7934:(e,t,n)=>{n.d(t,{EN:()=>d,gR:()=>s});var i=n(3272),r=n(1069);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;if(!e)return e;if(/\\w+:\\/\\//.exec(e))return e;let n=t.location.protocol;try{n=t.top.location.protocol}catch(e){}return/^\\/\\//.exec(e)?n+e:`${n}//${e}`}function s(e){let{noLeadingWww:t=!1,noPort:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{e=new URL(o(e))}catch(e){return}return e=n?e.hostname:e.host,t&&e.startsWith("www.")&&(e=e.substring(4)),e}function a(e){try{const t=e.querySelector("link[rel=\'canonical\']");if(null!==t)return t.href}catch(e){}return null}const d=function(e){let t,n,i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return r.top!==r?e:function(){const o=a(r.document),s=r.location.href;return t===o&&s===n||(t=o,n=s,i=e()),i}}((c=window,function(){const e=[],t=function(e){try{if(!e.location.ancestorOrigins)return;return e.location.ancestorOrigins}catch(e){}}(c),n=i.$W.getConfig("maxNestedIframes");let d,u,l,f,g=!1,p=0,h=!1,m=!1,b=!1;do{const n=d,i=m;let o,s=!1,f=null;m=!1,d=d?d.parent:c;try{o=d.location.href||null}catch(e){s=!0}if(s)if(i){const e=n.context;try{f=e.sourceUrl,u=f,b=!0,h=!0,d===c.top&&(g=!0),e.canonicalUrl&&(l=e.canonicalUrl)}catch(e){}}else{(0,r.JE)("Trying to access cross domain iframe. Continuing without referrer and location");try{const e=n.document.referrer;e&&(f=e,d===c.top&&(g=!0))}catch(e){}!f&&t&&t[p-1]&&(f=t[p-1],d===c.top&&(b=!0)),f&&!h&&(u=f)}else{if(o&&(f=o,u=f,h=!1,d===c.top)){g=!0;const e=a(d.document);e&&(l=e)}d.context&&d.context.sourceUrl&&(m=!0)}e.push(f),p++}while(d!==c.top&&p<n);e.reverse();try{f=c.top.document.referrer}catch(e){}const y=g||b?u:null,v=i.$W.getConfig("pageUrl")||l||null;let E=i.$W.getConfig("pageUrl")||y||o(v,c);return y&&y.indexOf("?")>-1&&-1===E.indexOf("?")&&(E=`${E}${y.substring(y.indexOf("?"))}`),{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,topmostLocation:u||null,location:y,canonicalUrl:v,page:E,domain:s(E)||null,ref:f||null,legacy:{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,referer:u||null,canonicalUrl:v}}}));var c},2938:(e,t,n)=>{n.d(t,{CK:()=>b,s0:()=>p,vM:()=>m});var i=n(1069),r=n(2693),o=n(5569),s=n(5139),a=n(2604),d=n(6811),c=n(3272),u=n(8046),l=n(3441);const f="html5",g="cookie";let p=[];function h(){let{moduleName:e,moduleType:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{isAllowed:n=s.io}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};function r(i,r){let s=e;const f=c.$W.getCurrentBidder();f&&t===o.tW&&u.Ay.aliasRegistry[f]===e&&(s=f);return i({valid:n(d.Ue,(0,l.s)(t,s,{[a.Zw]:r}))})}function h(e,t,n){if(!n||"function"!=typeof n)return r(e,t);p.push((function(){let i=r(e,t);n(i)}))}function m(e){const t=e.charAt(0).toUpperCase()+e.substring(1),n=()=>window[e],r=function(t){return h((function(t){if(t&&t.valid)try{return!!n()}catch(t){(0,i.vV)(`${e} api disabled`)}return!1}),f,t)};return{[`has${t}`]:r,[`${e}IsEnabled`]:e=>h((function(e){if(e&&e.valid)try{return n().setItem("prebid.cookieTest","1"),"1"===n().getItem("prebid.cookieTest")}catch(e){}finally{try{n().removeItem("prebid.cookieTest")}catch(e){}}return!1}),f,e),[`setDataIn${t}`]:(e,t,i)=>h((function(i){i&&i.valid&&r()&&n().setItem(e,t)}),f,i),[`getDataFrom${t}`]:(e,t)=>h((function(t){return t&&t.valid&&r()?n().getItem(e):null}),f,t),[`removeDataFrom${t}`]:(e,t)=>h((function(t){t&&t.valid&&r()&&n().removeItem(e)}),f,t)}}return{setCookie:function(e,t,n,i,r,o){return h((function(o){if(o&&o.valid){const o=r&&""!==r?` ;domain=${encodeURIComponent(r)}`:"",s=n&&""!==n?` ;expires=${n}`:"",a=null!=i&&"none"==i.toLowerCase()?"; Secure":"";document.cookie=`${e}=${encodeURIComponent(t)}${s}; path=/${o}${i?`; SameSite=${i}`:""}${a}`}}),g,o)},getCookie:function(e,t){return h((function(t){if(t&&t.valid){let t=window.document.cookie.match("(^|;)\\\\s*"+e+"\\\\s*=\\\\s*([^;]*)\\\\s*(;|$)");return t?decodeURIComponent(t[2]):null}return null}),g,t)},cookiesAreEnabled:function(e){return h((function(e){return!(!e||!e.valid)&&(0,i.GE)()}),g,e)},...m("localStorage"),...m("sessionStorage"),findSimilarCookies:function(e,t){return h((function(t){if(t&&t.valid){const t=[];if((0,i.N9)()){const n=document.cookie.split(";");for(;n.length;){const i=n.pop();let r=i.indexOf("=");r=r<0?i.length:r;decodeURIComponent(i.slice(0,r).replace(/^\\s+/,"")).indexOf(e)>=0&&t.push(decodeURIComponent(i.slice(r+1)))}}return t}}),g,t)}}}function m(){let{moduleType:e,moduleName:t,bidderCode:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(){throw new Error("Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName")}return n?((e&&e!==o.tW||t)&&i(),e=o.tW,t=n):t&&e||i(),h({moduleType:e,moduleName:t})}function b(e){return h({moduleName:e,moduleType:o.tp})}(0,s.qB)(d.Ue,"deviceAccess config",(function(){if(!(0,i.N9)())return{allow:!1}})),(0,s.qB)(d.Ue,"bidderSettings.*.storageAllowed",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.u;if(e[a.Dk]!==o.tW)return;let n=t.get(e[a.q7],"storageAllowed");if(n&&!0!==n){const t=e[a.Zw];n=Array.isArray(n)?n.some((e=>e===t)):n===t}else n=!!n;return n?void 0:{allow:n}}))},7779:(e,t,n)=>{n.d(t,{Yl:()=>T,iS:()=>O,uW:()=>I});var i=n(6881),r=n(7863),o=n(2693),s=n(3272),a=n(8969),d=n(5023),c=n(9214),u=n(1371),l=n(2449),f=n(5901),g=n(1069),p=n(433),h=n(2713),m=[];const b=20,y="targetingControls.allowTargetingKeys",v="targetingControls.addTargetingKeys",E=`Only one of "${y}" or "${v}" can be set`,A=Object.keys(a.xS).map((e=>a.xS[e]));let I={isActualBid:e=>e.getStatusCode()===a.XQ.GOOD,isBidNotExpired:e=>e.responseTimestamp+1e3*(0,r.cT)(e)>(0,g.vE)(),isUnusedBid:e=>e&&(e.status&&!(0,f.mK)([a.tl.RENDERED],e.status)||!e.status)};function T(e){return!Object.values(I).some((t=>!t(e)))}const w=(0,c.A_)("sync",(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;if(!i){const i=[],o=s.$W.getConfig("sendBidsControl.dealPrioritization");let a=(0,g.$z)(e,"adUnitCode");return Object.keys(a).forEach((e=>{let s=[],d=(0,g.$z)(a[e],"bidderCode");Object.keys(d).forEach((e=>{s.push(d[e].reduce(t))})),n?(s=o?s.sort(C(!0)):s.sort(((e,t)=>t.cpm-e.cpm)),i.push(...s.slice(0,n))):(s=s.sort(r),i.push(...s))})),i}return e}));function C(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,n){return void 0!==t.adserverTargeting.hb_deal&&void 0===n.adserverTargeting.hb_deal?-1:void 0===t.adserverTargeting.hb_deal&&void 0!==n.adserverTargeting.hb_deal?1:e?n.cpm-t.cpm:n.adserverTargeting.hb_pb-t.adserverTargeting.hb_pb}}function B(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>window.googletag.pubads().getSlots())().reduce(((e,n)=>{const i=(0,g.fp)(t)&&t(n);return Object.keys(e).filter((0,g.fp)(i)?i:(0,g.iC)(n)).forEach((t=>e[t].push(n))),e}),Object.fromEntries(e.map((e=>[e,[]]))))}const O=function(e){let t={},n={};function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=A.concat(l.Nh),r=s.$W.getConfig("targetingControls.allowSendAllBidsTargetingKeys"),o=r?r.map((e=>a.xS[e])):i;return e.reduce(((e,r)=>{if(t||n&&r.dealId){const t=function(e,t){return t.reduce(((t,n)=>(e.adserverTargeting[n]&&t.push({[`${n}_${e.bidderCode}`.substring(0,20)]:[e.adserverTargeting[n]]}),t)),[])}(r,i.filter((e=>void 0!==r.adserverTargeting[e]&&(n||-1!==o.indexOf(e)))));t&&e.push({[r.adUnitCode]:t})}return e}),[])}function r(t){return"string"==typeof t?[t]:(0,g.cy)(t)?t:e.getAdUnitCodes()||[]}function I(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h.Bq,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=e.getBidsReceived().reduce(((e,t)=>{const i=s.$W.getConfig("useBidCache"),r=s.$W.getConfig("bidCacheFilterFunction"),o=n[t.adUnitCode]===t.auctionId,a=!(i&&!o&&"function"==typeof r)||!!r(t);return(i||o)&&a&&(0,p.A)(t,"video.context")!==u.LM&&T(t)&&(t.latestTargetedAuctionId=n[t.adUnitCode],e.push(t)),e}),[]);return w(r,t,void 0,void 0,void 0,i)}function O(){return e.getStandardBidderAdServerTargeting().map((e=>e.key)).concat(A).filter(g.hj)}return t.setLatestAuctionForAdUnit=function(e,t){n[e]=t},t.resetPresetTargeting=function(e,t){if((0,g.II)()){const n=r(e);Object.values(B(n,t)).forEach((e=>{e.forEach((e=>{!function(e){m.forEach((t=>{e.getTargeting(t)&&e.clearTargeting(t)}))}(e)}))}))}},t.resetPresetTargetingAST=function(e){r(e).forEach((function(e){const t=window.apntag.getTag(e);if(t&&t.keywords){const n=Object.keys(t.keywords),i={};n.forEach((e=>{(0,f.mK)(m,e.toLowerCase())||(i[e]=t.keywords[e])})),window.apntag.modifyTag(e,{keywords:i})}}))},t.getAllTargeting=function(t,n,d){let c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h.Vk,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;d||=I(c,u);const A=r(t),T=s.$W.getConfig("enableSendAllBids"),B=s.$W.getConfig("sendBidsControl.bidLimit"),k=T&&(n||B)||0,{customKeysByUnit:R,filteredBids:S}=function(e,t){const n=[],i={},r=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return t.forEach((t=>{const s=(0,f.mK)(e,t.adUnitCode),a=!0===o.u.get(t.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,d=r&&t.dealId;s&&(d||a)&&(n.push(t),Object.keys(t.adserverTargeting).filter(function(){let e=O();e=e.concat(l.Nh);return function(t){return-1===e.indexOf(t)}}()).forEach((e=>{const n=e.substring(0,b),r=i[t.adUnitCode]||{},o=[t.adserverTargeting[e]];r[n]?r[n]=r[n].concat(o).filter(g.hj):r[n]=o,i[t.adUnitCode]=r})))})),{filteredBids:n,customKeysByUnit:i}}(A,d);let D=function(t,n){const r=function(e){let t=[],n=e.reduce(((e,n)=>((0,f.mK)(t,n.adUnitCode)||(e.push(n),t.push(n.adUnitCode)),e)),[]),i=O();return n=n.map((e=>({[e.adUnitCode]:Object.keys(e.adserverTargeting).filter((t=>void 0===e.sendStandardTargeting||e.sendStandardTargeting||-1===i.indexOf(t))).reduce(((t,n)=>{const i=[e.adserverTargeting[n]],r={[n.substring(0,b)]:i};if(n===a.xS.DEAL){const o=`${n}_${e.bidderCode}`.substring(0,b),s={[o]:i};return[...t,r,s]}return[...t,r]}),[])}))),n}(t).concat(function(e,t){return e.reduce(((e,n)=>{const i=Object.assign({},n),r=t[i.adUnitCode],o=[];return r&&Object.keys(r).forEach((e=>{e&&r[e]&&o.push({[e]:r[e]})})),e.push({[i.adUnitCode]:o}),e}),[])}(t,n)).concat(function(e){const t=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return i(e,s.$W.getConfig("enableSendAllBids"),t)}(t)).concat(function(){function t(e){return(0,p.A)(e,a.iD.ADSERVER_TARGETING)}function n(e){const n=t(e);return Object.keys(n).map((function(e){return(0,g.O8)(n[e])&&(n[e]=n[e].split(",").map((e=>e.trim()))),(0,g.cy)(n[e])||(n[e]=[n[e]]),{[e]:n[e]}}))}return e.getAdUnits().filter((e=>t(e))).reduce(((e,t)=>{const i=n(t);return i&&e.push({[t.code]:i}),e}),[])}());return r.forEach((e=>{!function(e){Object.keys(e).forEach((t=>{e[t].forEach((e=>{const t=Object.keys(e);-1===m.indexOf(t[0])&&(m=t.concat(m))}))}))}(e)})),r}(w(S,c,k,void 0,u),R);const U=Object.keys(Object.assign({},a.Zh,a.x5));let _=s.$W.getConfig(y);const $=s.$W.getConfig(v);if(null!=$&&null!=_)throw new Error(E);_=null!=$?U.concat($):_||U,Array.isArray(_)&&_.length>0&&(D=function(e,t){const n=Object.assign({},a.xS,a.x5),i=Object.keys(n),r={};(0,g.fH)(`allowTargetingKeys - allowed keys [ ${t.map((e=>n[e])).join(", ")} ]`),e.map((e=>{const o=Object.keys(e)[0],s=e[o].filter((e=>{const o=Object.keys(e)[0],s=0===i.filter((e=>0===o.indexOf(n[e]))).length||(0,f.I6)(t,(e=>{const t=n[e];return 0===o.indexOf(t)}));return r[o]=!s,s}));e[o]=s}));const o=Object.keys(r).filter((e=>r[e]));return(0,g.fH)(`allowTargetingKeys - removed keys [ ${o.join(", ")} ]`),e.filter((e=>e[Object.keys(e)[0]].length>0))}(D,_)),D=function(e){let t=e.map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].map((e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].join(",")}))).reduce(((e,t)=>Object.assign(t,e)),{})})));return t=t.reduce((function(e,t){var n=Object.keys(t)[0];return e[n]=Object.assign({},e[n],t[n]),e}),{}),t}(D);const j=s.$W.getConfig("targetingControls.auctionKeyMaxChars");return j&&((0,g.fH)(`Detected \'targetingControls.auctionKeyMaxChars\' was active for this auction; set with a limit of ${j} characters. Running checks on auction keys...`),D=function(e,t){let n=(0,g.Go)(e),i=Object.keys(n).map((e=>({adUnitCode:e,adserverTargeting:n[e]}))).sort(C());return i.reduce((function(e,i,r,o){let s=(a=i.adserverTargeting,Object.keys(a).reduce((function(e,t){return e+`${t}%3d${encodeURIComponent(a[t])}%26`}),""));var a;r+1===o.length&&(s=s.slice(0,-3));let d=i.adUnitCode,c=s.length;return c<=t?(t-=c,(0,g.fH)(`AdUnit \'${d}\' auction keys comprised of ${c} characters. Deducted from running threshold; new limit is ${t}`,n[d]),e[d]=n[d]):(0,g.JE)(`The following keys for adUnitCode \'${d}\' exceeded the current limit of the \'auctionKeyMaxChars\' setting.\\nThe key-set size was ${c}, the current allotted amount was ${t}.\\n`,n[d]),r+1===o.length&&0===Object.keys(e).length&&(0,g.vV)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."),e}),{})}(D,j)),A.forEach((e=>{D[e]||(D[e]={})})),D},s.$W.getConfig("targetingControls",(function(e){null!=(0,p.A)(e,y)&&null!=(0,p.A)(e,v)&&(0,g.vV)(E)})),t.setTargetingForGPT=(0,c.A_)("sync",(function(n,i){let r=t.getAllTargeting(n),o=Object.fromEntries(m.map((e=>[e,null])));Object.entries(B(Object.keys(r),i)).forEach((e=>{let[t,n]=e;n.forEach((e=>{Object.keys(r[t]).forEach((e=>{let n=r[t][e];"string"==typeof n&&-1!==n.indexOf(",")&&(n=n.split(",")),r[t][e]=n})),(0,g.OG)(`Attempting to set targeting-map for slot: ${e.getSlotElementId()} with targeting-map:`,r[t]),e.updateTargetingFromMap(Object.assign({},o,r[t]))}))})),Object.keys(r).forEach((t=>{Object.keys(r[t]).forEach((n=>{"hb_adid"===n&&e.setStatusForBids(r[t][n],a.tl.BID_TARGETING_SET)}))})),t.targetingDone(r),d.Ic(a.qY.SET_TARGETING,r)}),"setTargetingForGPT"),t.targetingDone=(0,c.A_)("sync",(function(e){return e}),"targetingDone"),t.getWinningBids=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.Vk,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:g.Q0;const a=[],d=t||I(n,i),c=r(e);return d.reduce(((e,t)=>{const n=t.adUnitCode,i=!0===o.u.get(n,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,r=s.$W.getConfig("targetingControls.alwaysIncludeDeals")&&t.dealId;return(0,f.mK)(c,n)&&!(0,f.mK)(a,n)&&(r||i)&&(e.push(t),a.push(n)),e}),[])},t.setTargetingForAst=function(e){let n=t.getAllTargeting(e);try{t.resetPresetTargetingAST(e)}catch(e){(0,g.vV)("unable to reset targeting for AST"+e)}Object.keys(n).forEach((e=>Object.keys(n[e]).forEach((t=>{if((0,g.OG)(`Attempting to set targeting for targetId: ${e} key: ${t} value: ${n[e][t]}`),(0,g.O8)(n[e][t])||(0,g.cy)(n[e][t])){let i={},r=/pt[0-9]/;t.search(r)<0?i[t.toUpperCase()]=n[e][t]:i[t]=n[e][t],window.apntag.setKeywords(e,i,{overrideKeyValue:!0})}}))))},t.isApntagDefined=function(){if(window.apntag&&(0,g.fp)(window.apntag.setKeywords))return!0},t}(i.n)},8230:(e,t,n)=>{n.d(t,{zt:()=>g});var i=n(1069),r=n(3272),o=n(5901),s=n(2938),a=n(5139),d=n(6811),c=n(2604),u=n(5569),l=n(3441);r.$W.setDefaults({userSync:(0,i.Go)({syncEnabled:!0,filterSettings:{image:{bidders:"*",filter:"include"}},syncsPerBidder:5,syncDelay:3e3,auctionDelay:500})});const f=(0,s.CK)("usersync");const g=function(e){let t={},n={image:[],iframe:[]},s=new Set,a={},f={image:!0,iframe:!1},g=e.config;function p(){if(g.syncEnabled&&e.browserSupportsCookies){try{!function(){if(!f.iframe)return;h(n.iframe,(e=>{let[t,r]=e;(0,i.OG)(`Invoking iframe user sync for bidder: ${t}`),(0,i.SG)(r),function(e,t){e.image=e.image.filter((e=>e[0]!==t))}(n,t)}))}(),function(){if(!f.image)return;h(n.image,(e=>{let[t,n]=e;(0,i.OG)(`Invoking image pixel user sync for bidder: ${t}`),(0,i.z$)(n)}))}()}catch(e){return(0,i.vV)("Error firing user syncs",e)}n={image:[],iframe:[]}}}function h(e,t){(0,i.k4)(e).forEach(t)}function m(e,t){let n=g.filterSettings;if(function(e,t){if(e.all&&e[t])return(0,i.JE)(`Detected presence of the "filterSettings.all" and "filterSettings.${t}" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.`),!1;let n=e.all?e.all:e[t],r=e.all?"all":t;if(!n)return!1;let o=n.filter,s=n.bidders;if(o&&"include"!==o&&"exclude"!==o)return(0,i.JE)(`UserSync "filterSettings.${r}.filter" setting \'${o}\' is not a valid option; use either \'include\' or \'exclude\'.`),!1;if("*"!==s&&!(Array.isArray(s)&&s.length>0&&s.every((e=>(0,i.O8)(e)&&"*"!==e))))return(0,i.JE)(`Detected an invalid setup in userSync "filterSettings.${r}.bidders"; use either \'*\' (to represent all bidders) or an array of bidders.`),!1;return!0}(n,e)){f[e]=!0;let i=n.all?n.all:n[e],r="*"===i.bidders?[t]:i.bidders;const s={include:(e,t)=>!(0,o.mK)(e,t),exclude:(e,t)=>(0,o.mK)(e,t)};return s[i.filter||"include"](r,t)}return!f[e]}return r.$W.getConfig("userSync",(e=>{if(e.userSync){let t=e.userSync.filterSettings;(0,i.Qd)(t)&&(t.image||t.all||(e.userSync.filterSettings.image={bidders:"*",filter:"include"}))}g=Object.assign(g,e.userSync)})),e.regRule(d.Ml,"userSync config",(e=>{if(!g.syncEnabled)return{allow:!1,reason:"syncs are disabled"};if(e[c.Dk]===u.tW){const n=e[c.bt],i=e[c.iK];if(!t.canBidderRegisterSync(n,i))return{allow:!1,reason:`${n} syncs are not enabled for ${i}`}}})),t.registerSync=(t,r,o)=>s.has(r)?(0,i.OG)(`already fired syncs for "${r}", ignoring registerSync call`):g.syncEnabled&&(0,i.cy)(n[t])?r?0!==g.syncsPerBidder&&Number(a[r])>=g.syncsPerBidder?(0,i.JE)(`Number of user syncs exceeded for "${r}"`):void(e.isAllowed(d.Ml,(0,l.s)(u.tW,r,{[c.bt]:t,[c.e3]:o}))&&(n[t].push([r,o]),a=function(e,t){return e[t]?e[t]+=1:e[t]=1,e}(a,r))):(0,i.JE)("Bidder is required for registering sync"):(0,i.JE)(`User sync type "${t}" not supported`),t.bidderDone=s.add.bind(s),t.syncUsers=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e)return setTimeout(p,Number(e));p()},t.triggerUserSyncs=()=>{g.enableOverride&&t.syncUsers()},t.canBidderRegisterSync=(e,t)=>!g.filterSettings||!m(e,t),t}(Object.defineProperties({config:r.$W.getConfig("userSync"),isAllowed:a.io,regRule:a.qB},{browserSupportsCookies:{get:function(){return!(0,i.Vt)()&&f.cookiesAreEnabled()}}}))},1069:(e,t,n)=>{n.d(t,{$D:()=>D,$l:()=>ze,$z:()=>Se,Bg:()=>Ke,Bj:()=>Je,Bk:()=>ge,Bq:()=>he,CA:()=>J,D9:()=>He,Dl:()=>Me,El:()=>Qe,Et:()=>ee,Ez:()=>K,Fq:()=>Ne,GE:()=>ke,Go:()=>Ae,II:()=>be,Im:()=>ie,JE:()=>M,Lm:()=>ne,N9:()=>Oe,O8:()=>X,OG:()=>W,PB:()=>Le,Q0:()=>ve,Qd:()=>te,SB:()=>_e,SG:()=>le,SH:()=>De,Tz:()=>fe,U6:()=>Re,Up:()=>Pe,Uu:()=>We,V:()=>Be,Vt:()=>Te,ZA:()=>me,_s:()=>ae,al:()=>Ie,bL:()=>S,bu:()=>oe,bz:()=>xe,c$:()=>Ge,cD:()=>I,cf:()=>j,cy:()=>Z,fH:()=>V,fp:()=>Y,gM:()=>we,gR:()=>se,h0:()=>F,hj:()=>pe,hw:()=>z,iC:()=>qe,k4:()=>Ee,kK:()=>_,l4:()=>N,l9:()=>$e,lk:()=>k,mM:()=>w,mb:()=>x,ro:()=>ue,s0:()=>O,sC:()=>je,t1:()=>ye,u5:()=>R,vE:()=>Ce,vV:()=>G,wD:()=>Ue,xQ:()=>re,y$:()=>U,z$:()=>ce});var i=n(3272),r=n(5751),o=n(5901),s=n(8969),a=n(5555),d=n(7873),c="String",u="Function",l="Number",f="Object",g="Boolean",p=Object.prototype.toString;let h,m=Boolean(window.console),b=Boolean(m&&window.console.log),y=Boolean(m&&window.console.info),v=Boolean(m&&window.console.warn),E=Boolean(m&&window.console.error);const A=(0,d.m)();function I(e){h=e}function T(){null!=h&&h(...arguments)}const w={checkCookieSupport:ke,createTrackPixelIframeHtml:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!e)return"";t&&(e=encodeURI(e));n&&(n=`sandbox="${n}"`);return`<iframe ${n} id="${O()}"\\n frameborder="0"\\n allowtransparency="true"\\n marginheight="0" marginwidth="0"\\n width="0" hspace="0" vspace="0" height="0"\\n style="height:0px;width:0px;display:none;"\\n scrolling="no"\\n src="${e}">\\n </iframe>`},getWindowSelf:N,getWindowTop:x,canAccessWindowTop:function(){try{if(w.getWindowTop().location.href)return!0}catch(e){return!1}},getWindowLocation:P,insertUserSyncIframe:le,insertElement:ae,isFn:Y,triggerPixel:ce,logError:G,logWarn:M,logMessage:W,logInfo:V,parseQS:Ve,formatQS:function(e){return Object.keys(e).map((t=>Array.isArray(e[t])?e[t].map((e=>`${t}[]=${e}`)).join("&"):`${t}=${e[t]}`)).join("&")},deepEqual:Fe};var C,B=(C=0,function(){return++C});function O(){return B()+Math.random().toString(16).substr(2)}function k(e){return e?(e^(window&&window.crypto&&window.crypto.getRandomValues?crypto.getRandomValues(new Uint8Array(1))[0]%16:16*Math.random())>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,k)}function R(e,t){return t?.[e]||""}function S(e){let t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+"="+encodeURIComponent(e[n])+"&");return t=t.replace(/&$/,""),t}function D(e){return e&&Object.getOwnPropertyNames(e).length>0?Object.keys(e).map((t=>`${t}=${encodeURIComponent(e[t])}`)).join("&"):""}function U(e){return"string"==typeof e?e.split(/\\s*,\\s*/).map((e=>e.match(/^(\\d+)x(\\d+)$/i))).filter((e=>e)).map((e=>{let[t,n,i]=e;return[parseInt(n,10),parseInt(i,10)]})):Array.isArray(e)?q(e)?[e]:e.filter(q):[]}function _(e){return U(e).map($)}function $(e){return e[0]+"x"+e[1]}function j(e){return{w:e[0],h:e[1]}}function q(e){return Z(e)&&2===e.length&&!isNaN(e[0])&&!isNaN(e[1])}function x(){return window.top}function N(){return window.self}function P(){return window.location}function W(){L()&&b&&console.log.apply(console,H(arguments,"MESSAGE:"))}function V(){L()&&y&&console.info.apply(console,H(arguments,"INFO:"))}function M(){L()&&v&&console.warn.apply(console,H(arguments,"WARNING:")),T(s.qY.AUCTION_DEBUG,{type:"WARNING",arguments})}function G(){L()&&E&&console.error.apply(console,H(arguments,"ERROR:")),T(s.qY.AUCTION_DEBUG,{type:"ERROR",arguments})}function F(e){function t(t){return function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];t(e,...i)}}return{logError:t(G),logWarn:t(M),logMessage:t(W),logInfo:t(V)}}function H(e,t){e=[].slice.call(e);let n=i.$W.getCurrentBidder();return t&&e.unshift(t),n&&e.unshift(r("#aaa")),e.unshift(r("#3b88c3")),e.unshift("%cPrebid"+(n?`%c${n}`:"")),e;function r(e){return`display: inline-block; color: #fff; background: ${e}; padding: 1px 4px; border-radius: 3px;`}}function L(){return!!i.$W.getConfig("debug")}const z=(()=>{const e={border:"0px",hspace:"0",vspace:"0",marginWidth:"0",marginHeight:"0",scrolling:"no",frameBorder:"0",allowtransparency:"true"};return function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t.createElement("iframe");return Object.assign(r,Object.assign({},e,n)),Object.assign(r.style,i),r}})();function J(){return z(document,{id:O(),width:0,height:0,src:"about:blank"},{display:"none",height:"0px",width:"0px",border:"0px"})}function K(e){return Ve(P().search)[e]||""}function Q(e,t){return p.call(e)==="[object "+t+"]"}function Y(e){return Q(e,u)}function X(e){return Q(e,c)}const Z=Array.isArray.bind(Array);function ee(e){return Q(e,l)}function te(e){return Q(e,f)}function ne(e){return Q(e,g)}function ie(e){return!e||(Z(e)||X(e)?!(e.length>0):Object.keys(e).length<=0)}function re(e){return X(e)&&(!e||0===e.length)}function oe(e,t){if(Y(e?.forEach))return e.forEach(t,this);Object.entries(e||{}).forEach((e=>{let[n,i]=e;return t.call(this,i,n)}))}function se(e,t){return Y(e?.includes)&&e.includes(t)}function ae(e,t,n,i){let r;t=t||document,r=n?t.getElementsByTagName(n):t.getElementsByTagName("head");try{if(r=r.length?r:t.getElementsByTagName("body"),r.length){r=r[0];let t=i?null:r.firstChild;return r.insertBefore(e,t)}}catch(e){}}function de(e,t){let n=null;return new a.k((i=>{const r=function(){e.removeEventListener("load",r),e.removeEventListener("error",r),null!=n&&window.clearTimeout(n),i()};e.addEventListener("load",r),e.addEventListener("error",r),null!=t&&(n=window.setTimeout(r,t))}))}function ce(e,t,n){const i=new Image;t&&w.isFn(t)&&de(i,n).then(t),i.src=e}function ue(e){if(!e)return;const t=J();var n;w.insertElement(t,document,"body"),(n=t.contentWindow.document).open(),n.write(e),n.close()}function le(e,t,n){let i=w.createTrackPixelIframeHtml(e,!1,"allow-scripts allow-same-origin"),r=document.createElement("div");r.innerHTML=i;let o=r.firstChild;t&&w.isFn(t)&&de(o,n).then(t),w.insertElement(o,document,"html",!0)}function fe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:encodeURI;if(!e)return"";let n=\'<div style="position:absolute;left:0px;top:0px;visibility:hidden;">\';return n+=\'<img src="\'+t(e)+\'"></div>\',n}function ge(e){return Array.from(e.matchAll(/\\$({[^}]+})/g)).map((e=>e[1])).reduce(((e,t)=>e.replace("$"+encodeURIComponent(t),"$"+t)),encodeURI(e))}function pe(e,t,n){return n.indexOf(e)===t}function he(e,t){return e.concat(t)}function me(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.adUnits).map((e=>e.bids.map((e=>e.bidder)).reduce(he,[]))).reduce(he,[]).filter((e=>void 0!==e)).filter(pe)}function be(){if(window.googletag&&Y(window.googletag.pubads)&&Y(window.googletag.pubads().getSlots))return!0}function ye(){if(window.apntag&&Y(window.apntag.getTag))return!0}const ve=(e,t)=>t.cpm-e.cpm;function Ee(e){let t=e.length;for(;t>0;){let n=Math.floor(Math.random()*t);t--;let i=e[t];e[t]=e[n],e[n]=i}return e}function Ae(e){return(0,r.Q)(e)||{}}function Ie(){try{return w.getWindowSelf()!==w.getWindowTop()}catch(e){return!0}}function Te(){return/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)}function we(e,t){if(e)return Object.entries(t).reduce(((e,t)=>{let[n,i]=t;return e.replace(new RegExp("\\\\$\\\\{"+n+"\\\\}","g"),i||"")}),e)}function Ce(){return(new Date).getTime()}function Be(){return window.performance&&window.performance.now&&window.performance.now()||0}function Oe(){return!1!==i.$W.getConfig("deviceAccess")}function ke(){if(window.navigator.cookieEnabled||document.cookie.length)return!0}function Re(e,t){if(t<1)throw new Error(`numRequiredCalls must be a positive number. Got ${t}`);let n=0;return function(){n++,n===t&&e.apply(this,arguments)}}function Se(e,t){return e.reduce((function(e,n){return(e[n[t]]=e[n[t]]||[]).push(n),e}),{})}function De(e,t){return t.filter((t=>e[t])).reduce(((t,n)=>Object.assign(t,{[n]:e[n]})),{})}function Ue(e){const t=["banner","native","video"],n=["instream","outstream","adpod"];return!!Object.keys(e).every((e=>(0,o.mK)(t,e)))&&(!e.video||!e.video.context||(0,o.mK)(n,e.video.context))}function _e(e,t,n){return e.filter((e=>e.code===t)).flatMap((e=>e.bids)).filter((e=>e.bidder===n)).map((e=>e.params||{}))}function $e(){return"1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack}const je=(e,t)=>e.getAdUnitPath()===t||e.getSlotElementId()===t;function qe(e){return t=>je(e,t)}function xe(e,t){const n=Object.keys(e.mediaTypes||{banner:"banner"}).join(", ");return`\\n ${e.code} is a ${n} ad unit\\n containing bidders that don\'t support ${n}: ${t}.\\n This bidder won\'t fetch demand.\\n `}const Ne=Number.isInteger.bind(Number);function Pe(e,t){return"object"!=typeof e?{}:t.reduce(((n,i,r)=>{if("function"==typeof i)return n;let o=i,s=i.match(/^(.+?)\\sas\\s(.+?)$/i);s&&(i=s[1],o=s[2]);let a=e[i];return"function"==typeof t[r+1]&&(a=t[r+1](a,n)),void 0!==a&&(n[o]=a),n}),{})}function We(e,t){return Z(e)&&(!t||e.length===t)&&e.every((e=>Ne(e)))}function Ve(e){return e?e.replace(/^\\?/,"").split("&").reduce(((e,t)=>{let[n,i]=t.split("=");return/\\[\\]$/.test(n)?(n=n.replace("[]",""),e[n]=e[n]||[],e[n].push(i)):e[n]=i||"",e}),{}):{}}function Me(e,t){let n=document.createElement("a");t&&"noDecodeWholeURL"in t&&t.noDecodeWholeURL?n.href=e:n.href=decodeURIComponent(e);let i=t&&"decodeSearchAsString"in t&&t.decodeSearchAsString;return{href:n.href,protocol:(n.protocol||"").replace(/:$/,""),hostname:n.hostname,port:+n.port,pathname:n.pathname.replace(/^(?!\\/)/,"/"),search:i?n.search:w.parseQS(n.search||""),hash:(n.hash||"").replace(/^#/,""),host:n.host||window.location.host}}function Ge(e){return(e.protocol||"http")+"://"+(e.host||e.hostname+(e.port?`:${e.port}`:""))+(e.pathname||"")+(e.search?`?${w.formatQS(e.search||"")}`:"")+(e.hash?`#${e.hash}`:"")}function Fe(e,t){let{checkTypes:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t||n&&e.constructor!==t.constructor)return!1;{const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let r of i){if(!t.hasOwnProperty(r))return!1;if(!Fe(e[r],t[r],{checkTypes:n}))return!1}return!0}}function He(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(!n.length)return e;const r=n.shift();if(te(e)&&te(r))for(const t in r)te(r[t])?(e[t]||Object.assign(e,{[t]:{}}),He(e[t],r[t])):Z(r[t])?e[t]?Z(e[t])&&r[t].forEach((n=>{let i=1;for(let r=0;r<e[t].length;r++)if(Fe(e[t][r],n)){i=0;break}i&&e[t].push(n)})):Object.assign(e,{[t]:[...r[t]]}):Object.assign(e,{[t]:r[t]});return He(e,...n)}function Le(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=function(e,t){if(Y(Math.imul))return Math.imul(e,t);var n=(4194303&e)*(t|=0);return 4290772992&e&&(n+=(4290772992&e)*t|0),0|n},i=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),i=n(i^t,2654435761),r=n(r^t,1597334677);return i=n(i^i>>>16,2246822507)^n(r^r>>>13,3266489909),r=n(r^r>>>16,2246822507)^n(i^i>>>13,3266489909),(4294967296*(2097151&r)+(i>>>0)).toString()}function ze(e){try{return JSON.parse(e)}catch(e){}}function Je(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e};const n=new Map,i=function(){const i=t.apply(this,arguments);return n.has(i)||n.set(i,e.apply(this,arguments)),n.get(i)};return i.clear=n.clear.bind(n),i}function Ke(e,t){Object.entries(t).forEach((t=>{let[n,i]=t;return e.setAttribute(n,i)}))}function Qe(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e,i=0,r=e.length&&e.length-1;const o=n(t);for(;r-i>1;){const t=i+Math.round((r-i)/2);o>n(e[t])?i=t:r=t}for(;e.length>i&&o>n(e[i]);)i++;return i}},2621:(e,t,n)=>{function i(e){return!e?.gdprApplies||!0===e?.vendorData?.purpose?.consents?.[1]}n.d(t,{C:()=>i})},6894:(e,t,n)=>{n.d(t,{Ak:()=>m,BO:()=>g,K7:()=>p,NL:()=>b});var i=n(3272);const r="performanceMetrics",o=window.performance&&window.performance.now?()=>window.performance.now():()=>Date.now(),s=new WeakMap;function a(){let{now:e=o,mkNode:t=u,mkTimer:n=c,mkRenamer:i=(e=>e),nodes:r=s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){return function o(s){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>({forEach(t){t(e)}});a=i(a);const d=(c="timestamps",function(e){return s.dfWalk({visit(t,n){const i=n[c];if(i.hasOwnProperty(e))return i[e]}})});var c;function u(e,t){const n=a(e);s.dfWalk({follow:(e,t)=>t.propagate&&(!e||!e.stopPropagation),visit(e,i){n.forEach((n=>{null==e?i.metrics[n]=t:(i.groups.hasOwnProperty(n)||(i.groups[n]=[]),i.groups[n].push(t))}))}})}function l(t){return n(e,(e=>u(t,e)))}function f(){let e={};return s.dfWalk({visit(t,n){e=Object.assign({},!t||t.includeGroups?n.groups:null,n.metrics,e)}}),e}const g={startTiming:l,measureTime:function(e,t){return l(e).stopAfter(t)()},measureHookTime:function(e,t,n){const i=l(e);return n(function(e){const t=i.stopBefore(e);return t.bail=e.bail&&i.stopBefore(e.bail),t.stopTiming=i,t.untimed=e,t}(t))},checkpoint:function(t){s.timestamps[t]=e()},timeSince:function(t,n){const i=d(t),r=null!=i?e()-i:null;return null!=n&&u(n,r),r},timeBetween:function(e,t,n){const i=d(e),r=d(t),o=null!=i&&null!=r?r-i:null;return null!=n&&u(n,o),o},setMetric:u,getMetrics:f,fork:function(){let{propagate:e=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(t([[s,{propagate:e,stopPropagation:n,includeGroups:i}]]),a)},join:function(e){let{propagate:t=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.get(e);null!=o&&o.addParent(s,{propagate:t,stopPropagation:n,includeGroups:i})},newMetrics:function(){return o(s.newSibling(),a)},renameWith:function(e){return o(s,e)},toJSON:()=>f()};return r.set(g,s),g}(t([]))}}function d(e,t,n){return function(){t&&t();try{return e.apply(this,arguments)}finally{n&&n()}}}function c(e,t){const n=e();let i=!1;function r(){i||(t(e()-n),i=!0)}return r.stopBefore=e=>d(e,r),r.stopAfter=e=>d(e,null,r),r}function u(e){return{metrics:{},timestamps:{},groups:{},addParent(t,n){e.push([t,n])},newSibling:()=>u(e.slice()),dfWalk(){let t,{visit:n,follow:i=(()=>!0),visited:r=new Set,inEdge:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!r.has(this)){if(r.add(this),t=n(o,this),null!=t)return t;for(const[s,a]of e)if(i(o,a)&&(t=s.dfWalk({visit:n,follow:i,visited:r,inEdge:a}),null!=t))return t}}}}const l=(()=>{const e=function(){},t=()=>({}),n={forEach:e},i=()=>null;i.stopBefore=e=>e,i.stopAfter=e=>e;const r=Object.defineProperties({dfWalk:e,newSibling:()=>r,addParent:e},Object.fromEntries(["metrics","timestamps","groups"].map((e=>[e,{get:t}]))));return a({now:()=>0,mkNode:()=>r,mkRenamer:()=>()=>n,mkTimer:()=>i,nodes:{get:e,set:e}})()})();let f=!0;function g(e){return f&&e||l}i.$W.getConfig(r,(e=>{f=!!e[r]}));const p=(()=>{const e=a();return function(){return f?e():l}})();function h(e,t){return function(n,i){return function(r){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];const d=this;return g(t.apply(d,s)).measureHookTime(e+n,r,(function(e){return i.call(d,e,...s)}))}}}const m=h("requestBids.",(e=>e.metrics)),b=h("addBidResponse.",((e,t)=>t.metrics))},5555:(e,t,n)=>{n.d(t,{k:()=>o,v:()=>s});const i=0,r=1;class o{#d;#c;static timeout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new o((t=>{0===e?t():setTimeout(t,e)}))}constructor(e){if("function"!=typeof e)throw new Error("resolver not a function");const t=[],n=[];let[o,s]=[i,r].map((e=>function(r){if(e===i&&"function"==typeof r?.then)r.then(o,s);else if(!t.length)for(t.push(e,r);n.length;)n.shift()()}));try{e(o,s)}catch(e){s(e)}this.#d=t,this.#c=n}then(e,t){const n=this.#d;return new this.constructor(((r,o)=>{const s=()=>{let s=n[1],[a,d]=n[0]===i?[e,r]:[t,o];if("function"==typeof a){try{s=a(s)}catch(e){return void o(e)}d=r}d(s)};n.length?s():this.#c.push(s)}))}catch(e){return this.then(null,e)}finally(e){let t;return this.then((n=>(t=n,e())),(n=>(t=this.constructor.reject(n),e()))).then((()=>t))}static#u(e,t,n){let i=e.length;function r(){t.apply(this,arguments),--i<=0&&n&&n()}0===e.length&&n?n():e.forEach(((e,t)=>this.resolve(e).then((e=>r(!0,e,t)),(e=>r(!1,e,t)))))}static race(e){return new this(((t,n)=>{this.#u(e,((e,i)=>e?t(i):n(i)))}))}static all(e){return new this(((t,n)=>{let i=[];this.#u(e,((e,t,r)=>e?i[r]=t:n(t)),(()=>t(i)))}))}static allSettled(e){return new this((t=>{let n=[];this.#u(e,((e,t,i)=>n[i]=e?{status:"fulfilled",value:t}:{status:"rejected",reason:t}),(()=>t(n)))}))}static resolve(e){return new this((t=>t(e)))}static reject(e){return new this(((t,n)=>n(e)))}}function s(){let e,t,{promiseFactory:n=(e=>new o(e))}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(e){return t=>e(t)}return{promise:n(((n,i)=>{e=n,t=i})),resolve:i(e),reject:i(t)}}},2713:(e,t,n)=>{function i(e,t){return e===t?0:e<t?-1:1}function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e=>e;return(t,n)=>i(e(t),e(n))}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>-e(t,n)||0}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(const i of t){const t=i(e,n);if(0!==t)return t}return 0}}function a(){return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>e(n,t)<0?n:t}(o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:i))}n.d(t,{Bq:()=>l,Vk:()=>u});const d=r((e=>e.cpm)),c=r((e=>e.responseTimestamp)),u=a(s(d,o(r((e=>e.timeToRespond))))),l=a(s(d,o(c)));a(s(d,c))},6853:(e,t,n)=>{n.d(t,{H:()=>u});var i=n(5555),r=n(1069);let o=null,s=0,a=[];function d(){document.hidden?o=Date.now():(s+=Date.now()-(o??0),o=null,a.forEach((e=>{let{callback:t,startTime:n,setTimerId:i}=e;return i(c(t,s-n)())})),a=[])}function c(e,t){const n=s;let i=setTimeout((()=>{s===n&&null==o?e():null!=o?a.push({callback:e,startTime:n,setTimerId(e){i=e}}):i=c(e,s-n)()}),t);return()=>i}function u(){let{startTime:e=r.vE,ttl:t=(()=>null),monotonic:n=!1,slack:o=5e3}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=new Map,a=[],d=[],u=n?e=>d.push(e):e=>d.splice((0,r.El)(d,e,(e=>e.expiry)),0,e);let l,f;function g(){if(f&&clearTimeout(f),d.length>0){const e=(0,r.vE)();l=Math.max(e,d[0].expiry+o),f=c((()=>{const e=(0,r.vE)();let t=0;for(const n of d){if(n.expiry>e)break;a.forEach((e=>{try{e(n.item)}catch(e){(0,r.vV)(e)}})),s.delete(n.item),t++}d.splice(0,t),f=null,g()}),l-e)}else f=null}function p(n){const r={},s=h;let a;const[d,c]=Object.entries({start:e,delta:t}).map((e=>{let t,[d,c]=e;return function(){const e=t={};i.k.resolve(c(n)).then((n=>{e===t&&(r[d]=n,s===h&&null!=r.start&&null!=r.delta&&(a=r.start+r.delta,u(p),(null==f||l>a+o)&&g()))}))}})),p={item:n,refresh:c,get expiry(){return a}};return d(),c(),p}let h={};return{[Symbol.iterator]:()=>s.keys(),add(e){!s.has(e)&&s.set(e,p(e))},clear(){d.length=0,g(),s.clear(),h={}},toArray:()=>Array.from(s.keys()),refresh(){d.length=0,g();for(const e of s.values())e.refresh()},onExpiry:e=>(a.push(e),()=>{const t=a.indexOf(e);t>=0&&a.splice(t,1)})}}document.addEventListener("visibilitychange",d)},3895:(e,t,n)=>{n.d(t,{H6:()=>a,V0:()=>u,Zy:()=>c,aP:()=>l,mn:()=>d,vk:()=>f});var i=n(1069),r=n(3272),o=n(9214),s=n(6881);const a="outstream",d="instream",c=new Map([["mimes",e=>Array.isArray(e)&&e.length>0&&e.every((e=>"string"==typeof e))],["minduration",i.Fq],["maxduration",i.Fq],["startdelay",i.Fq],["maxseq",i.Fq],["poddur",i.Fq],["protocols",i.Uu],["w",i.Fq],["h",i.Fq],["podid",i.O8],["podseq",i.Fq],["rqddurs",i.Uu],["placement",i.Fq],["plcmt",i.Fq],["linearity",i.Fq],["skip",e=>[1,0].includes(e)],["skipmin",i.Fq],["skipafter",i.Fq],["sequence",i.Fq],["slotinpod",i.Fq],["mincpmpersec",i.Et],["battr",i.Uu],["maxextended",i.Fq],["minbitrate",i.Fq],["maxbitrate",i.Fq],["boxingallowed",i.Fq],["playbackmethod",i.Uu],["playbackend",i.Fq],["delivery",i.Uu],["pos",i.Fq],["api",i.Uu],["companiontype",i.Uu],["poddedupe",i.Uu]]);function u(e){const t=e?.mediaTypes?.video;null!=t&&null==t.plcmt&&(t.context===a||[2,3,4].includes(t.placement)?t.plcmt=4:t.context!==a&&[2,6].includes(t.playbackmethod)&&(t.plcmt=2))}function l(e,t){const n=e?.mediaTypes?.video;(0,i.Qd)(n)?null!=n&&Object.entries(n).forEach((r=>{let[o,s]=r;if(!c.has(o))return;c.get(o)(s)||("function"==typeof t?t(o,s,e):(delete n[o],(0,i.JE)(`Invalid prop in adUnit "${e.code}": Invalid value for mediaTypes.video.${o} ORTB property. The property has been removed.`)))})):(0,i.JE)("validateOrtbVideoFields: videoParams must be an object.")}function f(e){let{index:t=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=t.getMediaTypes(e)?.video,i=n&&n?.context,r=n&&n?.useCacheKey,o=t.getAdUnit(e);return g(e,o,n,i,r)}const g=(0,o.A_)("sync",(function(e,t,n,o,s){return n&&(s||o!==a)?r.$W.getConfig("cache.url")||!e.vastXml||e.vastUrl?!(!e.vastUrl&&!e.vastXml):((0,i.vV)(\'\\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: "..."} });\\n \'),!1):!(o===a&&!s)||!!(e.renderer||t&&t.renderer||n.renderer)}),"checkVideoBidSetup")}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[85],{4595:(s,d,e)=>{e.d(d,{G:()=>n});const n=\'(()=>{"use strict";window.render=function({ad:d,adUrl:e,width:i,height:r},{mkFrame:n},o){if(!d&&!e)throw{reason:"noAd",message:"Missing ad markup or URL"};{const s=o.document,t={width:i,height:r};e&&!d?t.src=e:t.srcdoc=d,s.body.appendChild(n(s,t))}}})();\'}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[117],{7620:(e,t,r)=>{r.d(t,{A:()=>m});const n=new WeakMap;var i=r(1069),s=r(1371);var o=r(3895);const a={1:s.D4,2:s.G_,4:s.s6};var d=r(1e3),p=r(3858);const c={[d.S3]:{fpd:{priority:99,fn(e,t){(0,i.D9)(e,t.ortb2)}},onlyOneClient:{priority:-99,fn:(0,p.i8)("ORTB request")},props:{fn(e,t){Object.assign(e,{id:e.id||(0,i.lk)(),test:e.test||0});const r=parseInt(t.timeout,10);isNaN(r)||(e.tmax=r)}}},[d.Tb]:{fpd:{priority:99,fn(e,t){(0,i.D9)(e,t.ortb2Imp)}},id:{fn(e,t){e.id=t.bidId}},banner:{fn:function(e,t,r){if(r.mediaType&&r.mediaType!==s.D4)return;const n=t?.mediaTypes?.banner;if(n){const t={topframe:!0===(0,i.al)()?0:1};n.sizes&&(t.format=(0,i.y$)(n.sizes).map(i.cf)),n.hasOwnProperty("pos")&&(t.pos=n.pos),e.banner=(0,i.D9)(t,e.banner)}}},pbadslot:{fn(e){const t=e.ext?.data?.pbadslot;t&&"string"==typeof t||delete e.ext?.data?.pbadslot}},secure:{fn(e,t){e.secure=e.secure??1}}},[d.WR]:{mediaType:{priority:99,fn:function(e,t,r){if(e.mediaType)return;const n=r.mediaType;if(!n&&!a.hasOwnProperty(t.mtype))throw new Error("Cannot determine mediaType for response");e.mediaType=n||a[t.mtype]}},banner:{fn:function(){let{createPixel:e=(e=>(0,i.Tz)(decodeURIComponent(e),i.Bk))}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t,r){t.mediaType===s.D4&&(r.adm&&r.nurl?(t.ad=r.adm,t.ad+=e(r.nurl)):r.adm?t.ad=r.adm:r.nurl&&(t.adUrl=r.nurl))}}()},props:{fn(e,t,r){Object.entries({requestId:r.bidRequest?.bidId,seatBidId:t.id,cpm:t.price,currency:r.ortbResponse.cur||r.currency,width:t.w,height:t.h,dealId:t.dealid,creative_id:t.crid,creativeId:t.crid,burl:t.burl,ttl:t.exp||r.ttl,netRevenue:r.netRevenue}).filter((e=>{let[t,r]=e;return void 0!==r})).forEach((t=>{let[r,n]=t;return e[r]=n})),e.meta||(e.meta={}),t.adomain&&(e.meta.advertiserDomains=t.adomain),t.ext?.dsa&&(e.meta.dsa=t.ext.dsa),t.cat&&(e.meta.primaryCatId=t.cat[0],e.meta.secondaryCatIds=t.cat.slice(1)),t.attr&&(e.meta.attr=t.attr)}}}};function u(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];const n=t.shift(),i=t.length>1?u(...t):t[0];return Object.fromEntries(d.zt.map((e=>[e,Object.assign({},n[e],i[e])])))}function m(){let{context:e={},processors:t=f,overrides:r={},imp:s,request:o,bidResponse:a,response:p}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c=new WeakMap;function u(e,i,s,o){let a;return function(){return null==a&&(a=function(){let a=s.bind(this,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!n.has(e)){const t=Object.entries(e);t.sort(((e,t)=>(e=e[1].priority||0)===(t=t[1].priority||0)?0:e>t?-1:1)),n.set(e,t.map((e=>{let[t,r]=e;return[t,r.fn]})))}const r=n.get(e).filter((e=>{let[r]=e;return!t.hasOwnProperty(r)||t[r]})).map((function(e){let[r,n]=e;return t.hasOwnProperty(r)?t[r].bind(this,n):n}));return function(){const e=Array.from(arguments);r.forEach((t=>{t.apply(this,e)}))}}(t()[e]||{},r[e]||{}));return i&&(a=i.bind(this,a)),function(){try{return a.apply(this,arguments)}catch(e){o.call(this,e,...arguments)}}}()),a.apply(this,arguments)}}const m=u(d.Tb,s,(function(e,t,r){const n={};return e(n,t,r),n}),(function(e,t,r){(0,i.vV)("Error while converting bidRequest to ORTB imp; request skipped.",{error:e,bidRequest:t,context:r})})),l=u(d.S3,o,(function(e,t,r,n){const i={imp:t};return e(i,r,n),i}),(function(e,t,r,n){throw(0,i.vV)("Error while converting to ORTB request",{error:e,imps:t,bidderRequest:r,context:n}),e})),b=u(d.WR,a,(function(e,t,r){const n={};return e(n,t,r),n}),(function(e,t,r){(0,i.vV)("Error while converting ORTB seatbid.bid to bidResponse; bid skipped.",{error:e,bid:t,context:r})})),y=u(d.Cf,p,(function(e,t,r,n){const i={bids:t};return e(i,r,n),i}),(function(e,t,r,n){throw(0,i.vV)("Error while converting from ORTB response",{error:e,bidResponses:t,ortbResponse:r,context:n}),e}));return{toORTB(t){let{bidderRequest:r,bidRequests:n,context:s={}}=t;n=n||r.bids;const o={req:Object.assign({bidRequests:n},e,s),imp:{}};o.req.impContext=o.imp;const a=n.map((t=>{const n=Object.assign({bidderRequest:r,reqContext:o.req},e,s),a=m(t,n);if(null!=a){if(a.hasOwnProperty("id"))return Object.assign(n,{bidRequest:t,imp:a}),o.imp[a.id]=n,a;(0,i.vV)("Converted ORTB imp does not specify an id, ignoring bid request",t,a)}})).filter(Boolean),d=l(a,r,o.req);return o.req.bidderRequest=r,null!=d&&c.set(d,o),d},fromORTB(e){let{request:t,response:r}=e;const n=c.get(t);if(null==n)throw new Error("ortbRequest passed to `fromORTB` must be the same object returned by `toORTB`");function s(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.assign(e,{ortbRequest:t},r)}const o=Object.fromEntries((t.imp||[]).map((e=>[e.id,e]))),a=(r.seatbid||[]).flatMap((e=>(e.bid||[]).map((t=>{if(o.hasOwnProperty(t.impid)&&n.imp.hasOwnProperty(t.impid))return b(t,s(n.imp[t.impid],{imp:o[t.impid],seatbid:e,ortbResponse:r}));(0,i.vV)("ORTB response seatbid[].bid[].impid does not match any imp in request; ignoring bid",t)})))).filter(Boolean);return y(a,r,s(n.req))}}}c[d.Tb].native={fn:function(e,t,r){if(r.mediaType&&r.mediaType!==s.s6)return;let n=t.nativeOrtbRequest;n&&(n=Object.assign({},r.nativeRequest,n),n.assets?.length?e.native=(0,i.D9)({},{request:JSON.stringify(n),ver:n.ver},e.native):(0,i.JE)("mediaTypes.native is set, but no assets were specified. Native request skipped.",t))}},c[d.WR].native={fn:function(e,t){if(e.mediaType===s.s6){let r;if(r="string"==typeof t.adm?JSON.parse(t.adm):t.adm,!(0,i.Qd)(r)||!Array.isArray(r.assets))throw new Error("ORTB native response contained no assets");e.native={ortb:r}}}},c[d.Tb].video={fn:function(e,t,r){if(r.mediaType&&r.mediaType!==s.G_)return;const n=t?.mediaTypes?.video;if(!(0,i.Im)(n)){const t=Object.fromEntries(Object.entries(n).filter((e=>{let[t]=e;return o.Zy.has(t)})));if(n.playerSize){const e=(0,i.y$)(n.playerSize).map(i.cf);e.length>1&&(0,i.JE)("video request specifies more than one playerSize; all but the first will be ignored"),Object.assign(t,e[0])}e.video=(0,i.D9)(t,e.video)}}},c[d.WR].video={fn:function(e,t,r){e.mediaType===s.G_&&(r?.imp?.video?.w&&r?.imp?.video?.h&&([e.playerWidth,e.playerHeight]=[r.imp.video.w,r.imp.video.h]),t.adm&&(e.vastXml=t.adm),t.nurl&&(e.vastUrl=t.nurl))}};const f=(0,i.Bj)((()=>u(c,(0,d.yB)(d.qN))))}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[889],{4406:(e,t,n)=>{n.d(t,{FE:()=>i});var r=n(433),s=n(3172),o=n(1069);const u=Object.freeze([...["device.sua","source.schain","regs.gdpr","regs.us_privacy","regs.gpp","regs.gpp_sid","user.consent","user.eids"].map((e=>function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e,t)=>`${e}.ext.${t}`;const[n,o]=function(e){const t=e.split(".");return[t.slice(0,t.length-1).join("."),t[t.length-1]]}(e);return t=t(n,o),e=>{const u=(0,r.A)(e,n);if(null!=u?.[o])return(0,s.J)(e,t,u[o]),()=>delete u[o]}}(e))),...["app","content","site","user"].map((function(e){return t=>{const n=t[e]?.kwarray;if(null!=n){let r=(t[e].keywords||"").split(",");return Array.isArray(n)&&r.push(...n),t[e].keywords=r.join(","),()=>delete t[e].kwarray}}}))]);function i(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u;return function(n){return t.forEach((t=>{try{const r=t(n);"function"==typeof r&&e&&r()}catch(e){(0,o.vV)("Error translating request to ORTB 2.5",e)}})),n}}i()}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[957],{6400:(s,e,t)=>{function n(){const s=[];return{submit(e,t,n){const u=[t,setTimeout((()=>{s.splice(s.indexOf(u),1),n()}),e)];s.push(u)},resume(){for(;s.length;){const[e,t]=s.shift();clearTimeout(t),e()}}}}t.d(e,{L:()=>n})}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[5],{1252:(t,n,e)=>{e.d(n,{p:()=>l});var o=e(5901),u=e(1069);function s(t){let n;return(0,u.II)()&&(n=(0,o.I6)(window.googletag.pubads().getSlots(),function(t){return n=>(0,u.sC)(n,t)}(t))),n}function l(t){const n=s(t);return n?{gptSlot:n.getAdUnitPath(),divId:n.getSlotElementId()}:{}}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[498],{11:(r,e,a)=>{a.d(e,{Z:()=>y});var i=a(1069);const y={mimes:r=>Array.isArray(r)&&r.length>0&&r.every((r=>"string"==typeof r)),minduration:r=>(0,i.Fq)(r),maxduration:r=>(0,i.Fq)(r),protocols:r=>Array.isArray(r)&&r.every((r=>r>=1&&r<=10)),w:r=>(0,i.Fq)(r),h:r=>(0,i.Fq)(r),startdelay:r=>(0,i.Fq)(r),linearity:r=>-1!==[1,2].indexOf(r),skip:r=>-1!==[0,1].indexOf(r),skipmin:r=>(0,i.Fq)(r),skipafter:r=>(0,i.Fq)(r),sequence:r=>(0,i.Fq)(r),battr:r=>Array.isArray(r)&&r.every((r=>r>=1&&r<=17)),maxextended:r=>(0,i.Fq)(r),minbitrate:r=>(0,i.Fq)(r),maxbitrate:r=>(0,i.Fq)(r),boxingallowed:r=>-1!==[0,1].indexOf(r),playbackmethod:r=>Array.isArray(r)&&r.every((r=>r>=1&&r<=6)),playbackend:r=>-1!==[1,2,3].indexOf(r),api:r=>Array.isArray(r)&&r.every((r=>r>=1&&r<=6))}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[829],{1493:(e,t,i)=>{var a=i(7873),r=i(3172),n=i(1069),o=i(9115),s=i(1371),d=i(2938),p=i(7934),l=i(2621),c=i(5789),u=i(3895),m=i(8044),v=i(7620),g=i(4406);const y="criteo",f="https://grid-bidder.criteo.com/openrtb_2_5/pbjs/auction/request",b=(0,d.vM)({bidderCode:y}),h="Criteo: ",T=(0,g.FE)(),I="https://static.criteo.net/js/ld/publishertag.renderer.js",k="cto_optout",x="cto_bundle",S=(0,v.A)({context:{netRevenue:!0,ttl:60},imp:function(e,t,i){let a=e(t,i);const n=t.params;a.tagid=t.adUnitCode,(0,r.J)(a,"ext",{...t.params.ext,...a.ext,rwdd:a.rwdd,floors:U(t),bidder:{publishersubid:n?.publisherSubId,zoneid:n?.zoneId,uid:n?.uid}}),delete a.rwdd,!i.fledgeEnabled&&a.ext.igs?.ae&&delete a.ext.igs.ae;if(w(t)){const e=t.params.video;void 0!==e&&(0,r.J)(a,"video",{...a.video,skip:a.video.skip||e.skip||0,placement:a.video.placement||e.placement,minduration:a.video.minduration||e.minduration,playbackmethod:a.video.playbackmethod||e.playbackmethod,startdelay:a.video.startdelay||e.startdelay||0}),(0,r.J)(a,"video.ext",{context:t.mediaTypes.video.context,playersizes:E(t?.mediaTypes?.video?.playerSize,R),plcmt:t.mediaTypes.video.plcmt,poddur:t.mediaTypes.video.adPodDurationSec,rqddurs:t.mediaTypes.video.durationRangeSec})}if(a.native&&void 0!==a.native.request){let e=JSON.parse(a.native.request);e.assets&&(1!==e.assets.length||Object.keys(e.assets[0]).length)||delete e.assets,(0,r.J)(a,"native.request_native",e),delete a.native.request}return a},request:function(e,t,i,a){let n=e(t,i,a);void 0!==a.publisherId&&(void 0!==n.app?(0,r.J)(n,"app.publisher.id",a.publisherId):(0,r.J)(n,"site.publisher.id",a.publisherId));i&&i.gdprConsent&&(0,r.J)(n,"regs.ext.gdprversion",i.gdprConsent.apiVersion);return n=T(n),n},bidResponse:function(e,t,i){i.mediaType=t?.ext?.mediatype,i.mediaType===s.s6&&void 0!==t.adm_native&&(t.adm=t.adm_native,delete t.adm_native);let a=e(t,i);const{bidRequest:n}=i;a.currency=t?.ext?.cur,void 0!==t?.ext?.meta&&(0,r.J)(a,"meta",{...a.meta,...t.ext.meta});void 0!==t?.ext?.paf?.content_id&&(0,r.J)(a,"meta.paf.content_id",t.ext.paf.content_id);a.mediaType===s.G_&&(a.vastUrl=t.ext?.displayurl,n?.mediaTypes?.video?.context===u.H6&&(a.renderer=function(e){if(void 0===e.ext?.videoPlayerConfig||void 0===e.ext?.videoPlayerType)return;const t={documentResolver:(e,t,i)=>i??t},i=(t,i)=>{let a={slotid:e.id,vastUrl:e.ext?.displayurl,vastXml:e.adm,documentContext:i},r=e.ext.videoPlayerConfig;window.CriteoOutStream[e.ext.videoPlayerType].play(a,r)},a=c.A4.install({url:I,config:t});return a.setRender(i),a}(t)));return a},response:function(e,t,i,a){let n=e(t,i,a);const o=i?.ext?.paf?.transmission;return n.bids.forEach((e=>{void 0!==o&&void 0!==e?.meta?.paf?.content_id?(0,r.J)(e,"meta.paf.transmission",o):delete e.meta.paf})),n}});const P={code:y,gvlid:91,supportedMediaTypes:[s.D4,s.G_,s.s6],getUserSyncs:function(e,t,i,a){let r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},{gppString:o="",applicableSections:s=[]}=r;const d=(0,p.EN)(),c="criteoPrebidAdapter";if(e.iframeEnabled&&(0,l.C)(i)){const e=[];if(e.push(`origin=${c}`),e.push(`topUrl=${d.domain}`),i&&(i.gdprApplies&&e.push("gdpr="+(1==i.gdprApplies?1:0)),i.consentString&&e.push(`gdpr_consent=${i.consentString}`)),a&&e.push(`us_privacy=${a}`),e.push(`gpp=${o}`),Array.isArray(s))for(const t of s)e.push(`gpp_sid=${t}`);const t=Math.random().toString(),r={bundle:C(x),cw:b.cookiesAreEnabled(),lsw:b.localStorageIsEnabled(),optoutCookie:C(k),origin:c,requestId:t,tld:d.domain,topUrl:d.domain,version:"9.23.0".replace(/\\./g,"_")};window.addEventListener("message",(function e(i){if(!i.data||"https://gum.criteo.com"!=i.origin)return;if(i.data.requestId!==t)return;this.removeEventListener("message",e),i.stopImmediatePropagation();const a=i.data;a.optout?(_(x),q(k,!0,43200,d.domain)):(a.bundle&&q(x,a.bundle,9360,d.domain),a.callbacks&&a.callbacks.forEach(n.z$))}),!0);const p=JSON.stringify(r).replace(/"/g,"%22");return[{type:"iframe",url:`https://gum.criteo.com/syncframe?${e.join("&")}#${p}`}]}if(e.pixelEnabled&&(0,l.C)(i)){const e=[];if(e.push("profile=207"),i&&(!0===i.gdprApplies&&e.push("gdprapplies=true"),i.consentString&&e.push(`gdpr=${i.consentString}`)),a&&e.push(`ccpa=${a}`),e.push(`gpp=${o}`),Array.isArray(s))for(const t of s)e.push(`gpp_sid=${t}`);return[{type:"image",url:`https://ssp-sync.criteo.com/user-sync/redirect?${e.join("&")}`}]}return[]},isBidRequestValid:e=>!(!e||!e.params||!e.params.zoneId&&!e.params.networkId)&&!(w(e)&&!function(e){let t=!0;return["mimes","playerSize","maxduration","protocols","api","skip","placement","playbackmethod"].forEach((function(i){"placement"===i?void 0===e?.mediaTypes?.video?.[i]&&void 0===e?.params?.video?.[i]&&void 0===e?.mediaTypes?.video?.plcmt&&void 0===e?.params?.video?.plcmt&&(t=!1,(0,n.vV)("Criteo Bid Adapter: mediaTypes.video."+i+" or mediaTypes.video.plcmt is required")):void 0===e?.mediaTypes?.video?.[i]&&void 0===e?.params?.video?.[i]&&(t=!1,(0,n.vV)("Criteo Bid Adapter: mediaTypes.video."+i+" is required"))})),t}(e)),buildRequests:(e,t)=>{e.forEach((e=>{(function(e){return void 0!==e?.mediaTypes?.native})(e)&&(function(e){return!(e.nativeParams&&(e.nativeParams.image&&(!0!==e.nativeParams.image.sendId||!0===e.nativeParams.image.sendTargetingKeys)||e.nativeParams.icon&&(!0!==e.nativeParams.icon.sendId||!0===e.nativeParams.icon.sendTargetingKeys)||e.nativeParams.clickUrl&&(!0!==e.nativeParams.clickUrl.sendId||!0===e.nativeParams.clickUrl.sendTargetingKeys)||e.nativeParams.displayUrl&&(!0!==e.nativeParams.displayUrl.sendId||!0===e.nativeParams.displayUrl.sendTargetingKeys)||e.nativeParams.privacyLink&&(!0!==e.nativeParams.privacyLink.sendId||!0===e.nativeParams.privacyLink.sendTargetingKeys)||e.nativeParams.privacyIcon&&(!0!==e.nativeParams.privacyIcon.sendId||!0===e.nativeParams.privacyIcon.sendTargetingKeys)))}(e)||(0,n.JE)(h+"all native assets containing URL should be sent as placeholders with sendId(icon, image, clickUrl, displayUrl, privacyLink, privacyIcon)"),null==e?.nativeOrtbRequest?.assets&&((0,n.JE)(h+"native asset requirements are missing"),(0,r.J)(e,"nativeOrtbRequest.assets",[{}])))}));const i=function(e,t){const i=(0,n.Dl)(t?.refererInfo?.topmostLocation).search;return{url:t?.refererInfo?.page||"",debug:"1"===i.pbt_debug,noLog:"1"===i.pbt_nolog,fledgeEnabled:t.paapi?.enabled,amp:e.some((e=>"amp"===e.params.integrationMode)),networkId:e.find((e=>e.params?.networkId))?.params.networkId,publisherId:e.find((e=>e.params?.pubid))?.params.pubid}}(e,t),a=function(e){let t=f;t+="?profileId=207",t+="&av="+String(37),t+="&wv="+encodeURIComponent("9.23.0"),t+="&cb="+String(Math.floor(99999999999*Math.random())),b.localStorageIsEnabled()?t+="&lsavail=1":t+="&lsavail=0";e.amp&&(t+="&im=1");e.debug&&(t+="&debug=1");e.noLog&&(t+="&nolog=1");const i=C(x);i&&(t+=`&bundle=${i}`);C(k)&&(t+="&optout=1");e.networkId&&(t+="&networkId="+e.networkId);return t}(i),o=S.toORTB({bidderRequest:t,bidRequests:e,context:i});if(o)return{method:"POST",url:a,data:o,bidRequests:e}},interpretResponse:(e,t)=>{if(void 0===e?.body)return[];const i=S.fromORTB({response:e.body,request:t.data}).bids||[],a=e.body?.ext?.igi?.filter((e=>(0,n.cy)(e?.igs))).flatMap((e=>e.igs));return a?.length?{bids:i,paapi:a}:i},onDataDeletionRequest:e=>{const t=C(x);t&&(_(x),(0,m.RD)("https://privacy.criteo.com/api/privacy/datadeletionrequest",null,JSON.stringify({publisherUserId:t}),{contentType:"application/json",method:"POST"}))}};function C(e){const t=b.getCookie(e),i=b.getDataFromLocalStorage(e);return t||i||void 0}function q(e,t,i,a){const r=new Date;r.setTime(r.getTime()+60*i*60*1e3);const n=`expires=${r.toUTCString()}`,o=a.split(".");for(let i=0;i<o.length;++i){const a=o.slice(o.length-i-1,o.length).join(".");try{b.setCookie(e,t,n,null,"."+a);const i=b.getCookie(e);if(i&&i===t)break}catch(e){}}b.setDataInLocalStorage(e,t)}function _(e){b.setCookie(e,"",0),b.removeDataFromLocalStorage(e)}function E(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return null==e?[]:Array.isArray(e[0])?e.map((e=>t(e))):[t(e)]}function R(e){return e[0]+"x"+e[1]}function w(e){return void 0!==e?.mediaTypes?.video}function U(e){try{const t={},i=function(e){if(e.getFloor)return e.getFloor;if(e.params.bidFloor&&e.params.bidFloorCur)try{const t=parseFloat(e.params.bidFloor);return()=>({currency:e.params.bidFloorCur,floor:t})}catch{}}(e);if(i){if(e.mediaTypes?.banner){t.banner={};E(e?.mediaTypes?.banner?.sizes).forEach((a=>t.banner[R(a).toString()]=i.call(e,{size:a,mediaType:s.D4})))}if(e.mediaTypes?.video){t.video={};E(e?.mediaTypes?.video?.playerSize).forEach((a=>t.video[R(a).toString()]=i.call(e,{size:a,mediaType:s.G_})))}return e.mediaTypes?.native&&(t.native={},t.native["*"]=i.call(e,{size:"*",mediaType:s.s6})),t}}catch(e){(0,n.vV)("Could not parse floors from Prebid: "+e)}}(0,o.a$)(P),(0,a.E)("criteoBidAdapter")}},e=>{e.O(0,[802,117,889,85],(()=>{return t=1493,e(e.s=t);var t}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[466],{9236:(e,r,n)=>{var t=n(7873),o=n(1069),c=n(3172),i=n(8969),s=n(8044),u=n(3272),a=n(9214),f=n(5555),l=n(1e3),d=n(6894),y=n(5023),v=n(1970),p=n(6400);const h=4;let C,g=[],b={},$=!1,R=!0,m="USD";var O=!1,S={};let E,N={},T=(0,f.v)();const U=(0,p.L)();let w=0;function D(e){if(C="https://cdn.jsdelivr.net/gh/prebid/currency-file@1/latest.json?date=$$TODAY$$",null!==e.rates&&"object"==typeof e.rates&&(S.conversions=e.rates,$=!0,R=!1),null!==e.defaultRates&&"object"==typeof e.defaultRates&&(E=e.defaultRates,S.conversions=E,$=!0),"string"==typeof e.adServerCurrency){w=e.auctionDelay,(0,o.fH)("enabling currency support",arguments),m=e.adServerCurrency,e.conversionRateFile&&((0,o.fH)("currency using override conversionRateFile:",e.conversionRateFile),C=e.conversionRateFile);const r=C.indexOf("$$TODAY$$");if(-1!==r){const e=new Date;let n=`${e.getMonth()+1}`,t=`${e.getDate()}`;n.length<2&&(n=`0${n}`),t.length<2&&(t=`0${t}`);const o=`${e.getFullYear()}${n}${t}`;C=`${C.substring(0,r)}${o}${C.substring(r+9,C.length)}`}b={},O||(O=!0,(0,t.m)().convertCurrency=(e,r,n)=>parseFloat(e)*J(r,n),(0,a.Yn)("addBidResponse").before(A,100),(0,a.Yn)("responsesReady").before(k),v.w.before(_),(0,a.Yn)("requestBids").before(q,50),(0,y.on)(i.qY.AUCTION_TIMEOUT,F),(0,y.on)(i.qY.AUCTION_INIT,I),I())}else w=0,(0,o.fH)("disabling currency support"),O&&((0,a.Yn)("addBidResponse").getHooks({hook:A}).remove(),(0,a.Yn)("responsesReady").getHooks({hook:k}).remove(),v.w.getHooks({hook:_}).remove(),(0,a.Yn)("requestBids").getHooks({hook:q}).remove(),(0,y.AU)(i.qY.AUCTION_TIMEOUT,F),(0,y.AU)(i.qY.AUCTION_INIT,I),delete(0,t.m)().convertCurrency,m="USD",b={},O=!1,$=!1,R=!0,S={},N={},T=(0,f.v)());"object"==typeof e.bidderCurrencyDefault&&(N=e.bidderCurrencyDefault)}function Y(e){E?((0,o.JE)(e),(0,o.JE)("Currency failed loading rates, falling back to currency.defaultRates")):(0,o.vV)(e)}function I(){R?(R=!1,$=!1,(0,s.RD)(C,{success:function(e){try{S=JSON.parse(e),(0,o.fH)("currencyRates set to "+JSON.stringify(S)),b={},$=!0,H(),U.resume()}catch(r){Y("Failed to parse currencyRates response: "+e)}},error:function(){Y(...arguments),$=!0,H(),U.resume(),R=!0}})):H()}function k(e,r){e(r.then((()=>T.promise)))}u.$W.getConfig("currency",(e=>D(e.currency)));const A=(0,d.NL)("currency",(function(e,r,n,t){if(!n)return e.call(this,r,n,t);let c=n.bidderCode||n.bidder;if(N[c]){let e=N[c];n.currency&&e!==n.currency?(0,o.JE)(`Currency default \'${c}: ${e}\' ignored. adapter specified \'${n.currency}\'`):n.currency=e}if(n.currency||((0,o.JE)(\'Currency not specified on bid. Defaulted to "USD"\'),n.currency="USD"),n.getCpmInNewCurrency=function(e){return(parseFloat(this.cpm)*J(this.currency,e)).toFixed(3)},n.currency===m)return e.call(this,r,n,t);g.push([e,this,r,n,t]),O&&!$||H()}));function F(e){let{auctionId:r}=e;g=g.filter((e=>{let[n,t,o,c,s]=e;if(c.auctionId!==r)return!0;s(i.Tf.CANNOT_CONVERT_CURRENCY)}))}function H(){for(;g.length>0;){const[e,r,n,t,c]=g.shift();if(void 0!==t&&"currency"in t&&"cpm"in t){let e=t.currency;try{let r=J(e);1!==r&&(t.cpm=(parseFloat(t.cpm)*r).toFixed(4),t.currency=m)}catch(e){(0,o.JE)("getCurrencyConversion threw error: ",e),c(i.Tf.CANNOT_CONVERT_CURRENCY);continue}}e.call(r,n,t,c)}T.resolve()}function J(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;var n,t=null;let c=`${e}->${r}`;if(c in b)t=b[c],(0,o.OG)("Using conversionCache value "+t+" for "+c);else if(!1===O){if("USD"!==e)throw new Error("Prebid currency support has not been enabled and fromCurrency is not USD");t=1}else if(e===r)t=1;else if(e in S.conversions){if(!(r in(n=S.conversions[e])))throw new Error("Specified adServerCurrency in config \'"+r+"\' not found in the currency rates file");t=n[r],(0,o.fH)("getCurrencyConversion using direct "+e+" to "+r+" conversionRate "+t)}else if(r in S.conversions){if(!(e in(n=S.conversions[r])))throw new Error("Specified fromCurrency \'"+e+"\' not found in the currency rates file");t=j(1/n[e],h),(0,o.fH)("getCurrencyConversion using reciprocal "+e+" to "+r+" conversionRate "+t)}else{var i=Object.keys(S.conversions)[0];if(!(e in S.conversions[i]))throw new Error("Specified fromCurrency \'"+e+"\' not found in the currency rates file");var s=1/S.conversions[i][e];if(!(r in S.conversions[i]))throw new Error("Specified adServerCurrency in config \'"+r+"\' not found in the currency rates file");t=j(s*S.conversions[i][r],h),(0,o.fH)("getCurrencyConversion using intermediate "+e+" thru "+i+" to "+r+" conversionRate "+t)}return c in b||((0,o.OG)("Adding conversionCache value "+t+" for "+c),b[c]=t),t}function j(e,r){var n=1;for(let e=0;e<r;e++)n+="0";return Math.round(e*n)/n}function _(e,r){return e(r.then((e=>((0,c.J)(e,"ext.prebid.adServerCurrency",m),e))))}(0,l.pS)({type:l.S3,name:"currency",fn:function(e,r,n){O&&(e.cur=e.cur||[n.currency||m])}});const q=(0,d.Ak)("currency",(function(e,r){const n=(t=this,()=>e.call(t,r));var t;!$&&w>0?U.submit(w,n,(()=>{(0,o.JE)(`currency: Fetch attempt did not return in time for auction ${r.auctionId}`),n()})):n()}));(0,t.E)("currency")}},e=>{e.O(0,[802,957,85],(()=>{return r=9236,e(e.s=r);var r}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[170],{7764:(e,t,i)=>{var n=i(7873),r=i(433),a=i(1069),o=i(3172),d=i(1371),s=i(3272),p=i(2938),l=i(5901),c=i(9115),u=i(3895),m=i(5789),f=i(1252);const g="ix",b=[d.D4,d.G_,d.s6],x=50,h=[144,144],y={JPY:1},v={PBJS:"p",IX:"x"},I={SITE:["id","name","domain","cat","sectioncat","pagecat","page","ref","search","mobile","privacypolicy","publisher","content","keywords","ext"],USER:["id","buyeruid","yob","gender","keywords","customdata","geo","data","ext"]},A={"liveramp.com":"idl","netid.de":"NETID","neustar.biz":"fabrickId","zeotap.com":"zeotapIdPlus","uidapi.com":"UID2","adserver.org":"TDID"},w=["lipbid","criteoId","merkleId","parrableId","connectid","tapadId","quantcastId","pubProvidedId","pairId"],C=["mimes","minduration","maxduration"],O=["mimes","minduration","maxduration","protocols","protocol","startdelay","placement","linearity","skip","skipmin","skipafter","sequence","battr","maxextended","minbitrate","maxbitrate","boxingallowed","playbackmethod","playbackend","delivery","pos","companionad","api","companiontype","ext","playerSize","w","h","plcmt"],U=`${g}_features`,E=(0,p.vM)({bidderCode:g}),S={REQUESTED_FEATURE_TOGGLES:["pbjs_enable_multiformat","pbjs_allow_all_eids"],featureToggles:{},isFeatureEnabled:function(e){return(0,r.A)(this.featureToggles,`features.${e}.activated`,!1)},getFeatureToggles:function(){if(E.localStorageIsEnabled()){const e=(0,a.$l)(E.getDataFromLocalStorage(U));(0,r.A)(e,"expiry")&&e.expiry>=(new Date).getTime()?this.featureToggles=e:this.clearFeatureToggles()}},setFeatureToggles:function(e){const t=e.body,i=new Date,n=(0,r.A)(t,"ext.features");n&&(this.featureToggles={expiry:i.setHours(i.getHours()+1),features:n},E.localStorageIsEnabled()&&E.setDataInLocalStorage(U,JSON.stringify(this.featureToggles)))},clearFeatureToggles:function(){this.featureToggles={},E.localStorageIsEnabled()&&E.removeDataFromLocalStorage(U)}};let T=0,D="",P="",J=!1;const _=2;function k(e){const t=F(e,d.G_),i=(0,r.A)(e,"mediaTypes.video"),n=(0,r.A)(e,"params.video");if($(i,n).length)return{};t.video=n?(0,a.Go)(e.params.video):{};let s=(0,r.A)(e,"ortb2Imp.ext.tid");s&&(0,o.J)(t,"ext.tid",s),function(e,t){if((0,r.A)(t,"mediaTypes.video.context")===u.H6){let i=(0,r.A)(t,"mediaTypes.video.renderer");if(i||(i=(0,r.A)(t,"renderer")),(0,r.A)(t,"schain",!1))e.displaymanager="pbjs_wrapper";else if(i&&"object"==typeof i){if(void 0!==i.url){let t="";try{t=new URL(i.url).hostname}catch{return}t.includes("js-sec.indexww")?e.displaymanager="ix":e.displaymanager=i.url}}else e.displaymanager="ix"}}(t,e),W(t,e);for(const e in i)-1===O.indexOf(e)||t.video.hasOwnProperty(e)||(t.video[e]=i[e]);if(t.video.minduration>t.video.maxduration)return(0,a.vV)(`IX Bid Adapter: video minduration [${t.video.minduration}] cannot be greater than video maxduration [${t.video.maxduration}]`),{};const p=n&&n.context||i&&i.context;if(function(e){e.video.hasOwnProperty("plcmt")&&(!(0,a.Fq)(e.video.plcmt)||e.video.plcmt<1||e.video.plcmt>4)&&((0,a.JE)(`IX Bid Adapter: video.plcmt [${e.video.plcmt}] must be an integer between 1-4 inclusive`),delete e.video.plcmt)}(t),p&&!t.video.hasOwnProperty("placement")&&(p===u.mn?t.video.placement=1:p===u.H6?(0,r.A)(n,"playerConfig.floatOnScroll")?t.video.placement=5:(t.video.placement=3,J=!0):(0,a.JE)(`IX Bid Adapter: Video context \'${p}\' is not supported`)),!t.video.w||!t.video.h){const i=X((0,r.A)(t,"video.playerSize"))||X((0,r.A)(e,"params.size"));if(!i)return(0,a.JE)("IX Bid Adapter: Video size is missing in [mediaTypes.video]"),{};t.video.w=i[0],t.video.h=i[1]}return j(e,t,d.G_),t}function F(e,t){const i={};if(i.id=e.bidId,re()&&(0,r.A)(e,"params.externalId")&&(0,o.J)(i,"ext.externalID",e.params.externalId),(0,r.A)(e,`params.${t}.siteId`)&&!isNaN(Number(e.params[t].siteId)))switch(t){case d.D4:(0,o.J)(i,"ext.siteID",e.params.banner.siteId.toString());break;case d.G_:(0,o.J)(i,"ext.siteID",e.params.video.siteId.toString());break;case d.s6:(0,o.J)(i,"ext.siteID",e.params.native.siteId.toString())}else e.params.siteId&&(0,o.J)(i,"ext.siteID",e.params.siteId.toString());return!e.params.hasOwnProperty("id")||"string"!=typeof e.params.id&&"number"!=typeof e.params.id||(0,o.J)(i,"ext.sid",String(e.params.id)),i}function j(e,t,i){let n=null,r=null;if(e.params.bidFloor&&e.params.bidFloorCur&&(n={floor:e.params.bidFloor,currency:e.params.bidFloorCur}),(0,a.fp)(e.getFloor)){let n="*",o="*";if(i&&(0,a.gR)(b,i)){const{w:e,h:r}=t[i];n=i,o=[e,r]}try{r=e.getFloor({mediaType:n,size:o})}catch(e){(0,a.JE)("priceFloors module call getFloor failed, error : ",e)}}let s=!1;r?(t.bidfloor=r.floor,t.bidfloorcur=r.currency,(0,o.J)(t,"ext.fl",v.PBJS),s=!0):n&&(t.bidfloor=n.floor,t.bidfloorcur=n.currency,(0,o.J)(t,"ext.fl",v.IX),s=!0),s&&(i==d.D4?((0,o.J)(t,"banner.ext.bidfloor",t.bidfloor),(0,o.J)(t,"banner.ext.fl",t.ext.fl)):i==d.G_?((0,o.J)(t,"video.ext.bidfloor",t.bidfloor),(0,o.J)(t,"video.ext.fl",t.ext.fl)):((0,o.J)(t,"native.ext.bidfloor",t.bidfloor),(0,o.J)(t,"native.ext.fl",t.ext.fl)))}function B(e,t,i){const n={},o=!(!(0,r.A)(e,"exp")||!(0,a.Fq)(e.exp)),s=(0,r.A)(e,"dealid")||(0,r.A)(e,"ext.dealid");y.hasOwnProperty(t)?n.cpm=e.price/y[t]:n.cpm=e.price/100,n.requestId=e.impid,s&&(n.dealId=s),n.netRevenue=true,n.currency=t,n.creativeId=e.hasOwnProperty("crid")?e.crid:"-",e.mtype!=_||(!e.ext||e.ext.vasturl)&&e.ext?e.ext&&e.ext.vasturl&&(n.vastUrl=e.ext.vasturl):n.vastXml=e.adm;let p=null;if("string"==typeof e.adm&&"{"===e.adm[0]&&"}"===e.adm[e.adm.length-1])try{p=JSON.parse(e.adm)}catch(e){(0,a.JE)("adm looks like JSON but failed to parse: ",e)}return e.ext&&e.ext.vasturl||e.mtype==_?(n.width=i.video.w,n.height=i.video.h,n.mediaType=d.G_,n.mediaTypes=i.mediaTypes,n.ttl=o?e.exp:3600):p&&p.native?(n.native={ortb:p.native},n.width=e.w?e.w:1,n.height=e.h?e.h:1,n.mediaType=d.s6,n.ttl=o?e.exp:3600):(n.ad=e.adm,n.width=e.w,n.height=e.h,n.mediaType=d.D4,n.ttl=o?e.exp:300),n.meta={},n.meta.networkId=(0,r.A)(e,"ext.dspid"),n.meta.brandId=(0,r.A)(e,"ext.advbrandid"),n.meta.brandName=(0,r.A)(e,"ext.advbrand"),e.adomain&&e.adomain.length>0&&(n.meta.advertiserDomains=e.adomain),e.ext?.dsa&&(n.meta.dsa=e.ext.dsa),n}function z(e){return Array.isArray(e)&&2===e.length&&(0,a.Fq)(e[0])&&(0,a.Fq)(e[1])}function R(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(z(e))return e[0]===t[0]&&e[1]===t[1];for(let i=0;i<e.length;i++)if(e[i][0]===t[0]&&e[i][1]===t[1])return!0;return!1}function $(e,t){const i=[];e||(0,a.JE)("IX Bid Adapter: mediaTypes.video is the preferred location for video params in ad unit");for(let n of C){const r=e&&e.hasOwnProperty(n),a=t&&t.hasOwnProperty(n);r||a||i.push(`IX Bid Adapter: ${n} is not included in either the adunit or params level`)}const n=e&&e.hasOwnProperty("protocol"),r=e&&e.hasOwnProperty("protocols"),o=t&&t.hasOwnProperty("protocol"),d=t&&t.hasOwnProperty("protocols");return n||r||o||d||i.push("IX Bid Adapter: protocol/protcols is not included in either the adunit or params level"),i}function X(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return z(e)?e:!!z(e[0])&&e[0]}function q(e,t,i){if(!e)return;return{...(0,l.I6)(i,(t=>t.bidId===e)),...(0,l.I6)(t,(t=>t.id===e))}}function G(e,t,i,n){let d="https://htlb.casalemedia.com/openrtb/pbjs",p=function(e){let t=[],i={};if((0,a.cy)(e))for(const n of e){const e=A.hasOwnProperty(n.source);if((0,r.A)(n,"uids.0")&&(i[n.source]=!0,e&&""!==A[n.source]&&(n.uids[0].ext={rtiPartner:A[n.source]}),t.push(n),t.length>=x))break}return{toSend:t,seenSources:i}}((0,r.A)(e,"0.userIdAsEids")),l=p.toSend;window.headertag&&"function"==typeof window.headertag.getIdentityInfo&&function(e,t){let i=window.headertag.getIdentityInfo();if(i&&"object"==typeof i)for(const n in i){if(e.length>=x)return;if(i.hasOwnProperty(n)){let r=i[n];!r.responsePending&&r.data&&"object"==typeof r.data&&Object.keys(r.data).length&&!t.seenSources[r.data.source]&&e.push(r.data)}}}(l,p);const c=[];let u=function(e){const t={};return t.id=e[0].bidderRequestId.toString(),t.site={},t.ext={},t.ext.source="prebid",t.ext.ixdiag={},t.ext.ixdiag.ls=E.localStorageIsEnabled(),t.imp=[],t.at=1,t}(e);u=function(e,t){t.length>0&&(e.ext.features={},t.forEach((t=>{e.ext.features[t]={activated:S.isFeatureEnabled(t)}})));return e}(u,S.REQUESTED_FEATURE_TOGGLES);let m=function(e,t){var i=e.map((e=>e.adUnitCode)).filter(((e,t,i)=>i.indexOf(e)===t));let n=(0,r.A)(e,"0.userIdAsEids",[]),a={mfu:0,bu:0,iu:0,nu:0,ou:0,allu:0,ren:!1,version:"9.23.0",userIds:M(e[0]),url:window.location.href.split("?")[0],vpd:J,ae:t,eidLength:n.length};for(let t of i){let i=e.filter((e=>e.adUnitCode===t))[0];(0,r.A)(i,"mediaTypes")&&(Object.keys(i.mediaTypes).length>1&&a.mfu++,(0,r.A)(i,"mediaTypes.native")&&a.nu++,(0,r.A)(i,"mediaTypes.banner")&&a.bu++,"outstream"===(0,r.A)(i,"mediaTypes.video.context")&&(a.ou++,ne(i)&&(a.ren=!0)),"instream"===(0,r.A)(i,"mediaTypes.video.context")&&a.iu++,a.allu++)}return a}(e,(0,r.A)(t,"paapi.enabled"));for(let e in m)u.ext.ixdiag[e]=m[e];u=function(e,t,i,n,a){const o=(0,r.A)(t,"timeout");o&&(e.ext.ixdiag.tmax=o);s.$W.getConfig("userSync")&&(e.ext.ixdiag.syncsPerBidder=s.$W.getConfig("userSync").syncsPerBidder);e.ext.ixdiag.imps=Object.keys(i).length,e.source={tid:t?.ortb2?.source?.tid},n[0].schain&&(e.source.ext={},e.source.ext.schain=n[0].schain);a.length>0&&(e.user={},e.user.eids=a);document.referrer&&""!==document.referrer&&(e.site.ref=document.referrer);return e}(u,t,i,e,l),u=function(e,t){if(t){t.gdprConsent&&(D=t.gdprConsent,D.hasOwnProperty("gdprApplies")&&(e.regs={ext:{gdpr:D.gdprApplies?1:0}}),D.hasOwnProperty("consentString")&&(e.user=e.user||{},e.user.ext={consent:D.consentString||""},D.hasOwnProperty("addtlConsent")&&D.addtlConsent&&(e.user.ext.consented_providers_settings={addtl_consent:D.addtlConsent}))),t.uspConsent&&((0,o.J)(e,"regs.ext.us_privacy",t.uspConsent),P=t.uspConsent);const i=(0,r.A)(t,"refererInfo.page");i&&(e.site.page=i),t.gppConsent&&((0,o.J)(e,"regs.gpp",t.gppConsent.gppString),(0,o.J)(e,"regs.gpp_sid",t.gppConsent.applicableSections))}s.$W.getConfig("coppa")&&(0,o.J)(e,"regs.coppa",1);return e}(u,t);let f={};e[0].params.siteId&&(T=e[0].params.siteId,f.s=T);const g=Object.keys(i);let b=!1;for(let n=0;n<g.length&&!(c.length>=4);n++){u=L(i,g,u,n);const o=(0,r.A)(t,"ortb2")||{},p={...o.site||o.context};p.page=N(t);const l={...o.user};(0,a.Im)(o)||b||(u=V(t,u,o,p,l),u.site=(0,a.D9)({},u.site,p),u.user=(0,a.D9)({},u.user,l),b=!0),u=H(i,u,g,n,f,d);const m=n===g.length-1;if(u=le(u),u=de(u),u=se(u),m){let t=`${d}?`;0!==T&&(t+=`s=${T}`),re()&&(t+=0!==T?"&":"",t+=`p=${s.$W.getConfig("exchangeId")}`),c.push({method:"POST",url:t,data:(0,a.Go)(u),option:{contentType:"text/plain"},validBidRequests:e}),u.imp=[],b=!1}}return c}function L(e,t,i,n){const s=e[t[n]],{missingImps:p=[],ixImps:l=[]}=s,c={ixImps:l,missingBannerImpressions:p},u=Object.keys(c).map((e=>c[e])).filter((e=>Array.isArray(e))).reduce(((e,t)=>e.concat(...t)),[]),m=e[t[n]].gpid,f=e[t[n]].dfp_ad_unit_code,g=e[t[n]].tid,b=e[t[n]].sid,x=e[t[n]].ae,h=e[t[n]].paapi,y=u.filter((e=>d.D4 in e)),v=u.filter((e=>!(d.D4 in e)));if(y.length>0){const d=y.reduce(((e,t)=>(e[t.adunitCode]||(e[t.adunitCode]=[]),e[t.adunitCode].push(t),e)),{});for(const s in d){const p=d[s],{id:l,banner:{topframe:c}}=p[0];let u=(0,r.A)(p[0],"ext.externalID");const y={id:l,banner:{topframe:c,format:p.map((e=>{let{banner:{w:t,h:i},ext:n}=e;return{w:t,h:i,ext:n}}))}};for(let e=0;e<y.banner.format.length;e++)null!=y.banner.format[e].ext&&(null!=y.banner.format[e].ext.sid&&delete y.banner.format[e].ext.sid,null!=y.banner.format[e].ext.externalID&&delete y.banner.format[e].ext.externalID),"bidfloor"in p[e]&&(y.banner.format[e].ext.bidfloor=p[e].bidfloor),"{}"===JSON.stringify(y.banner.format[e].ext)&&delete y.banner.format[e].ext;const v=e[t[n]].pos;(0,a.Fq)(v)&&(y.banner.pos=v),(f||m||g||b||x||u||h)&&(y.ext={},y.ext.dfp_ad_unit_code=f,y.ext.gpid=m,y.ext.tid=g,y.ext.sid=b,y.ext.externalID=u,1==x&&(y.ext.ae=1,y.ext.paapi=h)),"bidfloor"in p[0]&&(y.bidfloor=p[0].bidfloor),"bidfloorcur"in p[0]&&(y.bidfloorcur=p[0].bidfloorcur);const I=e[t[n]].adUnitFPD;I&&(0,o.J)(y,"ext.data",I),i.imp.push(y)}}return v.length>0&&v.forEach((e=>{if(m&&(0,o.J)(e,"ext.gpid",m),i.imp.length>0){let t=!1;i.imp.forEach(((n,a)=>{e.id===n.id&&d.G_ in e?(n.video=e.video,n.video.ext=Object.assign({},e.video.ext,e.ext),(0,r.A)(n,"video.ext.bidfloor",!1)&&(0,r.A)(n,"bidfloor",!1)&&n.video.ext.bidfloor<n.bidfloor&&(n.bidfloor=n.video.ext.bidfloor),!(0,r.A)(n,"ext.siteID",!1)&&(0,r.A)(e,"video.ext.siteID")&&((0,o.J)(n,"ext.siteID",e.video.ext.siteID),(0,o.J)(i,"ext.ixdiag.usid",!0)),t=!0):e.id===n.id&&d.s6 in e&&(n.native=e.native,n.native.ext=Object.assign({},e.native.ext,e.ext),(0,r.A)(n,"native.ext.bidfloor",!1)&&(0,r.A)(n,"bidfloor",!1)&&n.native.ext.bidfloor<n.bidfloor&&(n.bidfloor=n.native.ext.bidfloor),!(0,r.A)(n,"ext.siteID",!1)&&(0,r.A)(e,"native.ext.siteID",!1)&&((0,o.J)(n,"ext.siteID",e.native.ext.siteID),(0,o.J)(i,"ext.ixdiag.usid",!0)),t=!0)})),t||i.imp.push(e)}else i.imp.push(e)})),i}function N(e){const t=e&&e.bidderCode||"ix",i=s.$W.getConfig(t);let n="";if(n=(0,r.A)(e,"ortb2.site.page")?e.ortb2.site.page:(0,r.A)(e,"refererInfo.page"),i&&"object"==typeof i.firstPartyData){return function(e,t,i){let n;try{n=new URL(t)}catch(i){(0,a.JE)(`IX Bid Adapter: Invalid URL set in ortb2.site.page: ${t}. Using referer URL instead.`),n=new URL((0,r.A)(e,"refererInfo.page"))}const o=new URLSearchParams(n.search);for(const[e,t]of Object.entries(i))o.has(e)||o.append(e,t);return n.search=o.toString(),n.toString()}(e,n,i.firstPartyData)}return n}function V(e,t,i,n,r){if(t.ext.ixdiag.fpd=!0,Object.keys(n).forEach((e=>{-1===I.SITE.indexOf(e)&&delete n[e]})),Object.keys(r).forEach((e=>{-1===I.USER.indexOf(e)&&delete r[e]})),i.device){const e={...i.device.sua};(0,a.Im)(e)||(0,o.J)(t,"device.sua",e)}if(i.hasOwnProperty("regs")&&!e.gppConsent&&(i.regs.hasOwnProperty("gpp")&&"string"==typeof i.regs.gpp&&(0,o.J)(t,"regs.gpp",i.regs.gpp),i.regs.hasOwnProperty("gpp_sid")&&Array.isArray(i.regs.gpp_sid)&&(0,o.J)(t,"regs.gpp_sid",i.regs.gpp_sid),i.regs.ext?.dsa)){const e=i.regs.ext.dsa,n={};if(["dsarequired","pubrender","datatopub"].forEach((t=>{(0,a.Et)(e[t])&&(n[t]=e[t])})),(0,a.cy)(e.transparency)){const t=[];e.transparency.forEach((e=>{(0,a.Qd)(e)&&(0,a.O8)(e.domain)&&""!=e.domain&&(0,a.cy)(e.dsaparams)&&e.dsaparams.every((e=>(0,a.Et)(e)))&&t.push(e)})),t.length>0&&(n.transparency=t)}(0,a.Im)(n)||(0,o.J)(t,"regs.ext.dsa",n)}return t}function W(e,t){const i=(0,r.A)(t,"ortb2Imp.ext.data");i&&(0,o.J)(e,"ext.data",i)}function H(e,t,i,n,r,a){const o=e[i[n]].pbadslot,d=e[i[n]].tagId,s=e[i[n]].adUnitCode,p=e[i[n]].divId;return(o||d||s||p)&&(t.ext.ixdiag.pbadslot=o,t.ext.ixdiag.tagid=d,t.ext.ixdiag.adunitcode=s,t.ext.ixdiag.divId=p),t}function M(e){const t=e.userId||{};return w.filter((e=>t[e]))}function Q(e,t){if(t)for(let i=0;i<e.length;i++){const n=e[i];if(t[0]===n[0]&&t[1]===n[1]){e.splice(i,1);break}}}function Y(e,t){const i=function(e){const t=F(e,d.s6),i=e.nativeOrtbRequest;i.eventtrackers=[{event:1,methods:[1,2]}],i.privacy=1,t.native={request:JSON.stringify(i),ver:"1.2"};let n=(0,r.A)(e,"ortb2Imp.ext.tid");return n&&(0,o.J)(t,"ext.tid",n),W(t,e),j(e,t,d.s6),t}(e);if(0!=Object.keys(i).length){t[e.adUnitCode]={},t[e.adUnitCode].ixImps=[],t[e.adUnitCode].ixImps.push(i),t[e.adUnitCode].gpid=(0,r.A)(e,"ortb2Imp.ext.gpid"),t[e.adUnitCode].dfp_ad_unit_code=(0,r.A)(e,"ortb2Imp.ext.data.adserver.adslot"),t[e.adUnitCode].pbadslot=(0,r.A)(e,"ortb2Imp.ext.data.pbadslot"),t[e.adUnitCode].tagId=(0,r.A)(e,"params.tagId");const n=e.adUnitCode,a=document.getElementById(n)?n:(0,f.p)(n).divId;t[e.adUnitCode].adUnitCode=n,t[e.adUnitCode].divId=a}}function Z(e,t){const i=k(e);if(0!=Object.keys(i).length){t[e.adUnitCode]={},t[e.adUnitCode].ixImps=[],t[e.adUnitCode].ixImps.push(i),t[e.adUnitCode].gpid=(0,r.A)(e,"ortb2Imp.ext.gpid"),t[e.adUnitCode].dfp_ad_unit_code=(0,r.A)(e,"ortb2Imp.ext.data.adserver.adslot"),t[e.adUnitCode].pbadslot=(0,r.A)(e,"ortb2Imp.ext.data.pbadslot"),t[e.adUnitCode].tagId=(0,r.A)(e,"params.tagId");const n=e.adUnitCode,a=document.getElementById(n)?n:(0,f.p)(n).divId;t[e.adUnitCode].adUnitCode=n,t[e.adUnitCode].divId=a}}function K(e,t,i,n){let o=function(e){const t=F(e,d.D4);t.banner={},t.adunitCode=e.adUnitCode;const i=(0,r.A)(e,"params.size");return i&&(t.banner.w=i[0],t.banner.h=i[1]),t.banner.topframe=(0,a.al)()?0:1,j(e,t,d.D4),t}(e);const s=R((0,r.A)(e,"mediaTypes.banner.sizes"),(0,r.A)(e,"params.size"));i.hasOwnProperty(e.adUnitCode)||(i[e.adUnitCode]={}),i[e.adUnitCode].gpid=(0,r.A)(e,"ortb2Imp.ext.gpid"),i[e.adUnitCode].dfp_ad_unit_code=(0,r.A)(e,"ortb2Imp.ext.data.adserver.adslot"),i[e.adUnitCode].tid=(0,r.A)(e,"ortb2Imp.ext.tid"),i[e.adUnitCode].pbadslot=(0,r.A)(e,"ortb2Imp.ext.data.pbadslot"),i[e.adUnitCode].tagId=(0,r.A)(e,"params.tagId"),i[e.adUnitCode].pos=(0,r.A)(e,"mediaTypes.banner.pos");if((0,r.A)(n,"paapi.enabled")){const t=(0,r.A)(e,"ortb2Imp.ext.ae"),n=(0,r.A)(e,"ortb2Imp.ext.paapi");n&&(i[e.adUnitCode].paapi=n),t&&((0,a.Fq)(t)?i[e.adUnitCode].ae=t:(0,a.JE)("error setting auction environment flag - must be an integer"))}const p=(0,r.A)(e,"ortb2Imp.ext.data");p&&(i[e.adUnitCode].adUnitFPD=p);const l=(0,r.A)(e,"params.id");!l||"string"!=typeof l&&"number"!=typeof l||(i[e.adUnitCode].sid=String(l));const c=e.adUnitCode,u=document.getElementById(c)?c:(0,f.p)(c).divId;i[e.adUnitCode].adUnitCode=c,i[e.adUnitCode].divId=u,s&&(i[e.adUnitCode].hasOwnProperty("ixImps")||(i[e.adUnitCode].ixImps=[]),i[e.adUnitCode].ixImps.push(o)),function(e,t,i){if(t.hasOwnProperty(e.adUnitCode)){let i=[];t[e.adUnitCode].hasOwnProperty("missingSizes")&&(i=t[e.adUnitCode].missingSizes),Q(i,e.params.size),t[e.adUnitCode].missingSizes=i}else if((0,r.A)(e,"mediaTypes.banner.sizes")){let n=(0,a.Go)(e.mediaTypes.banner.sizes);Q(n,e.params.size);let r={missingSizes:n,impression:i};t[e.adUnitCode]=r}}(e,t,o)}function ee(e,t,i){const n=(0,a.Go)(t);return n.banner.w=i[0],n.banner.h=i[1],j(e,n,d.D4),n}function te(e){e.renderer.push((function(){const t=e.adUnitCode,i=document.getElementById(t)?t:(0,f.p)(t).divId;i?window.createIXPlayer(i,e):(0,a.JE)(`IX Bid Adapter: adUnitCode: ${i} not found on page.`)}))}function ie(e,t){const i=m.A4.install({id:e,url:t,loaded:!1});try{i.setRender(te)}catch(e){return(0,a.JE)("Prebid Error calling setRender on renderer",e),null}return t?i:((0,a.JE)("Outstream renderer URL not found"),null)}function ne(e){if("outstream"!==(0,r.A)(e,"mediaTypes.video.context"))return!1;let t=(0,r.A)(e,"mediaTypes.video.renderer");t||(t=(0,r.A)(e,"renderer"));return!!("object"!=typeof t||!t.url||!t.render)||t.backupOnly}function re(){let e=s.$W.getConfig("exchangeId");return!("number"!=typeof e||!isFinite(e))||!("string"!=typeof e||""===e.trim()||!isFinite(Number(e)))}const ae={code:g,gvlid:10,supportedMediaTypes:b,isBidRequestValid:function(e){const t=(0,r.A)(e,"params.video"),i=(0,r.A)(e,"params.size"),n=(0,r.A)(e,"mediaTypes.banner.sizes"),o=(0,r.A)(e,"mediaTypes.video"),d=(0,r.A)(e,"mediaTypes.video.playerSize"),s=e.params.hasOwnProperty("bidFloor"),p=e.params.hasOwnProperty("bidFloorCur");if(e.hasOwnProperty("mediaType")&&!(0,a.gR)(b,e.mediaType))return(0,a.JE)("IX Bid Adapter: media type is not supported."),!1;if((0,r.A)(e,"mediaTypes.banner")&&!n)return!1;if(i){const t=X(i);if(!t)return(0,a.vV)("IX Bid Adapter: size has invalid format."),!1;if(!R(e.sizes,t)&&!R(d,t)&&!R(n,t))return(0,a.vV)("IX Bid Adapter: bid size is not included in ad unit sizes or player size."),!1}if(!re()&&null==e.params.siteId)return(0,a.vV)("IX Bid Adapter: Invalid configuration - either siteId or exchangeId must be configured."),!1;if(void 0!==e.params.siteId){if("string"!=typeof e.params.siteId&&"number"!=typeof e.params.siteId)return(0,a.vV)("IX Bid Adapter: siteId must be string or number type."),!1;if("string"!=typeof e.params.siteId&&isNaN(Number(e.params.siteId)))return(0,a.vV)("IX Bid Adapter: siteId must valid value"),!1}if((s||p)&&!(s&&p&&(l=e.params.bidFloor,c=e.params.bidFloorCur,Boolean("number"==typeof l&&"string"==typeof c&&c.match(/^[A-Z]{3}$/)))))return(0,a.vV)("IX Bid Adapter: bidFloor / bidFloorCur parameter has invalid format."),!1;var l,c;if(o&&t){const i=k(e).video,n=$(o,t);if((0,r.A)(e,"mediaTypes.video.context")===u.H6&&ne(e)&&i){const e=[(0,r.A)(i,"w"),(0,r.A)(i,"h")];if(!(e[0]>=h[0]&&e[1]>=h[1]))return(0,a.vV)(`IX Bid Adapter: ${e} is an invalid size for IX outstream renderer`),!1}if(n.length)return n.forEach((e=>{(0,a.vV)(e)})),!1}return function(e){return void 0===(0,r.A)(e,"mediaTypes.native")||e.nativeOrtbRequest&&Array.isArray(e.nativeOrtbRequest.assets)&&e.nativeOrtbRequest.assets.length>0}(e)},resetSiteID:function(){T=0},buildRequests:function(e,t){const i=[],n={},o={},s={},p={};S.getFeatureToggles(),e.forEach((e=>{const i=Object.keys((0,r.A)(e,"mediaTypes",{}));for(const r in i)switch(i[r]){case d.D4:K(e,p,n,t);break;case d.G_:Z(e,o);break;case d.s6:Y(e,s);break;default:(0,a.JE)(`IX Bid Adapter: ad unit mediaTypes ${r} is not supported`)}}));for(let t in p)if(p.hasOwnProperty(t)){let i=p[t].missingSizes;n.hasOwnProperty(t)||(n[t]={}),n[t].hasOwnProperty("missingImps")||(n[t].missingImps=[],n[t].missingCount=0);let r=p[t].impression;for(let a=0;a<i.length;a++){let o=ee(e[0],r,i[a]);n[t].missingImps.push(o),n[t].missingCount++}}let l=[];return Object.keys(n).length>0&&l.push(n),Object.keys(o).length>0&&l.push(o),Object.keys(s).length>0&&l.push(s),S.isFeatureEnabled("pbjs_enable_multiformat")?i.push(...G(e,t,function(e){const t={};return e.forEach((e=>{Object.keys(e).forEach((i=>{Object.keys(t).includes(i)?t[i].hasOwnProperty("ixImps")&&e[i].hasOwnProperty("ixImps")?t[i].ixImps=[...t[i].ixImps,...e[i].ixImps]:t[i].hasOwnProperty("missingImps")&&e[i].hasOwnProperty("missingImps")?t[i].missingImps=[...t[i].missingImps,...e[i].missingImps]:e[i].hasOwnProperty("ixImps")?t[i].ixImps=e[i].ixImps:e[i].hasOwnProperty("missingImps")&&(t[i].missingImps=e[i].missingImps):t[i]=e[i]}))})),t}(l))):(Object.keys(n).length>0&&i.push(...G(e,t,n)),Object.keys(o).length>0&&i.push(...G(e,t,o)),Object.keys(s).length>0&&i.push(...G(e,t,s))),i},interpretResponse:function(e,t){const i=[];let n=null,o=(0,r.A)(e,"body.ext.protectedAudienceAuctionConfigs")||[];if(S.setFeatureToggles(e),!e.hasOwnProperty("body"))return i;const s=e.body,p=s.seatbid||[];for(let e=0;e<p.length;e++){if(!p[e].hasOwnProperty("bid"))continue;const o=p[e].bid,l=t.data;for(let e=0;e<o.length;e++){const a=q(o[e].impid,l.imp,t.validBidRequests);if(n=B(o[e],s.cur,a),n.mediaType===d.G_&&ne(a)){const t=(0,r.A)(s,"ext.videoplayerurl");if(n.renderer=ie(o[e].bidId,t),!n.renderer)continue}i.push(n)}if((0,r.A)(l,"ext.ixdiag.err")&&E.localStorageIsEnabled())try{E.removeDataFromLocalStorage("ixdiag")}catch(e){(0,a.vV)("ix can not clear ixdiag from localStorage.")}}if(!(Array.isArray(o)&&o.length>0))return i;o=o.filter((e=>!!function(e){return"object"==typeof e&&null!==e}(e)||((0,a.JE)("Malformed auction config detected:",e),!1)));try{return{bids:i,paapi:o}}catch(e){return(0,a.JE)("Error attaching AuctionConfigs",e),i}},getUserSyncs:function(e,t){const i=[];let n=null;if(t.length>0&&(n=(0,r.A)(t[0],"body.ext.publishersyncsperbidderoverride")),void 0!==n&&0==n)return[];if(e.iframeEnabled)i.push({type:"iframe",url:"https://js-sec.indexww.com/um/ixmatch.html"});else{let e=null;s.$W.getConfig("userSync")&&(e=s.$W.getConfig("userSync").syncsPerBidder),0===e&&(e=n),e=n&&(0===e||e)?n>e?e:n:1;for(let t=0;t<e;t++)i.push({type:"image",url:oe(e,t)})}return i}};function oe(e,t){let i="",n="0";return D&&D.hasOwnProperty("gdprApplies")&&(n=D.gdprApplies?"1":"0"),D&&D.hasOwnProperty("consentString")&&(i=D.consentString||""),"https://dsum.casalemedia.com/pbusermatch?origin=prebid"+(0!==T?"&site_id="+T.toString():"")+"&p="+e.toString()+"&i="+t.toString()+"&gdpr="+n+"&gdpr_consent="+i+"&us_privacy="+(P||"")}function de(e){return e.imp.forEach(((t,i)=>{const n=t.ext;if(null==n)return e;pe(t)<2||Object.keys(n).forEach((r=>{if(d.D4 in t){const a=t.banner.ext;if(void 0!==a&&void 0!==a[r]&&a[r]==n[r]&&delete e.imp[i].banner.ext[r],void 0!==t.banner.format)for(let a=0;a<t.banner.format.length;a++)null!=t.banner.format[a].ext&&null!=t.banner.format[a].ext[r]&&t.banner.format[a].ext[r]==n[r]&&delete e.imp[i].banner.format[a].ext[r]}if(d.G_ in t){const a=t.video.ext;void 0!==a&&void 0!==a[r]&&a[r]==n[r]&&delete e.imp[i].video.ext[r]}if(d.s6 in t){const a=t.native.ext;void 0!==a&&void 0!==a[r]&&a[r]==n[r]&&delete e.imp[i].native.ext[r]}}))})),e}function se(e){return e.imp.forEach(((t,i)=>{if(null==t.ext)return e;if(!(pe(t)<2)){if(d.D4 in t){const n=t.banner.ext;if(void 0!==n&&void 0!==n.siteID&&delete e.imp[i].banner.ext.siteID,void 0!==t.banner.format)for(let n=0;n<t.banner.format.length;n++)void 0!==t.banner.format[n].ext&&void 0!==t.banner.format[n].ext.siteID&&((0,o.J)(e.imp[i],"ext.siteID",t.banner.format[n].ext.siteID),(0,o.J)(e,"ext.ixdiag.usid",!0),delete e.imp[i].banner.format[n].ext.siteID)}if(d.G_ in t){const n=t.video.ext;void 0!==n&&void 0!==n.siteID&&delete e.imp[i].video.ext.siteID}if(d.s6 in t){const n=t.native.ext;void 0!==n&&void 0!==n.siteID&&delete e.imp[i].native.ext.siteID}}})),e}function pe(e){let t=0;return void 0!==e.banner&&(t+=1),void 0!==e.video&&(t+=1),void 0!==e.native&&(t+=1),t}function le(e){return null==e.device&&(e.device={}),e.device.h=window.screen.height,e.device.w=window.screen.width,e}(0,c.a$)(ae),(0,n.E)("ixBidAdapter")}},e=>{e.O(0,[5,802,85],(()=>{return t=7764,e(e.s=t);var t}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[723],{2605:(e,t,r)=>{var i=r(7873),s=r(1069),n=r(433),a=r(3172),o=r(9115),p=r(1371);const d={...r(11).Z,placement:e=>(0,s.Fq)(e)&&e>=1&&e<=5,plcmt:e=>(0,s.Fq)(e)&&e>=1&&e<=4,delivery:e=>Array.isArray(e)&&e.every((e=>e>=1&&e<=3)),pos:e=>(0,s.Fq)(e)&&e>=1&&e<=7},c={context:e=>e!==p.LM,mimes:d.mimes,maxduration:d.maxduration,protocols:d.protocols},u={code:"sovrn",supportedMediaTypes:[p.D4,p.G_],gvlid:13,isBidRequestValid:function(e){const t=e?.mediaTypes?.video;return!(!e.params.tagid||isNaN(parseFloat(e.params.tagid))||!isFinite(e.params.tagid)||t&&!Object.keys(c).every((e=>c[e](t[e]))))},buildRequests:function(e,t){try{let r,i,o,p,c=[];(0,s.bu)(e,(function(e){!o&&e.userIdAsEids&&(o=e.userIdAsEids,o.forEach((function(e){e.uids&&e.uids[0]&&"criteo.com"===e.source&&(p=e.uids[0].id)}))),e.schain&&(i=i||e.schain),r=r||(0,s.u5)("iv",e.params);const a={adunitcode:e.adUnitCode,id:e.bidId,tagid:String((0,s.u5)("tagid",e.params)),bidfloor:l(e)};if((0,n.A)(e,"mediaTypes.banner")){let t=(0,n.A)(e,"mediaTypes.banner.sizes")||e.sizes;t=(0,s.cy)(t)&&(0,s.cy)(t[0])?t:[t],t=t.filter((e=>(0,s.cy)(e)));const r=t.map((e=>({w:parseInt(e[0],10),h:parseInt(e[1],10)})));a.banner={format:r,w:1,h:1}}(0,n.A)(e,"mediaTypes.video")&&(a.video=function(e){const t={},r=(0,n.A)(e,"sizes"),i=(0,n.A)(e,"mediaTypes.video",{}),a=(0,n.A)(e,"params.video",{}),o={};if(r){const e=Array.isArray(r[0])?r[0]:r;o.w=e[0],o.h=e[1]}else if(Array.isArray(i.playerSize)){const e=Array.isArray(i.playerSize[0])?i.playerSize[0]:i.playerSize;o.w=e[0],o.h=e[1]}const p={...o,...i,...a};return Object.keys(d).forEach((e=>{p.hasOwnProperty(e)&&(d[e](p[e])?t[e]=p[e]:(0,s.JE)(`The OpenRTB video param ${e} has been skipped due to misformating. Please refer to OpenRTB 2.5 spec.`))})),t}(e)),a.ext=(0,s.u5)("ext",e.ortb2Imp)||void 0;const u=(0,s.u5)("segments",e.params);u&&(a.ext=a.ext||{},a.ext.deals=u.split(",").map((e=>e.trim())));const m=e?.ortb2Imp?.ext?.ae;t.paapi?.enabled&&(0,s.Fq)(m)?(a.ext=a.ext||{},a.ext.ae=m):a.ext?.ae&&delete a.ext.ae,c.push(a)}));const u=t.ortb2||{},m=u.site||{};m.page=t.refererInfo.page,m.domain=t.refererInfo.domain;const g=(0,n.A)(t,"timeout"),y={id:(0,s.s0)(),imp:c,site:m,user:u.user||{},tmax:g};i&&(y.source={ext:{schain:i}});const b=(0,n.A)(t,"ortb2.source.tid");b&&(0,a.J)(y,"source.tid",b);(0,n.A)(t,"ortb2.regs.coppa")&&(0,a.J)(y,"regs.coppa",1),t.gdprConsent&&((0,a.J)(y,"regs.ext.gdpr",+t.gdprConsent.gdprApplies),(0,a.J)(y,"user.ext.consent",t.gdprConsent.consentString)),t.uspConsent&&(0,a.J)(y,"regs.ext.us_privacy",t.uspConsent),t.gppConsent&&((0,a.J)(y,"regs.gpp",t.gppConsent.gppString),(0,a.J)(y,"regs.gpp_sid",t.gppConsent.applicableSections)),t?.ortb2?.device&&(y.device=y.device||{},(0,s.D9)(y.device,t.ortb2.device)),o&&((0,a.J)(y,"user.ext.eids",o),p&&(0,a.J)(y,"user.ext.prebid_criteoid",p));let f="https://ap.lijit.com/rtb/bid?src=prebid_prebid_9.23.0";return r&&(f+=`&iv=${r}`),{method:"POST",url:f,data:JSON.stringify(y),options:{contentType:"text/plain"}}}catch(e){(0,s.vV)("Could not build bidrequest, error deatils:",e)}},interpretResponse:function(e){let{body:{id:t,seatbid:r,ext:i}}=e;if(!t||!r||!Array.isArray(r))return[];try{let e=r.filter((e=>e)).map((e=>e.bid.map((e=>{const t={requestId:e.impid,cpm:parseFloat(e.price),width:parseInt(e.w),height:parseInt(e.h),creativeId:e.crid||e.id,dealId:e.dealid||null,currency:"USD",netRevenue:!0,mediaType:e.nurl?p.D4:p.G_,ttl:e.ext?.ttl||90,meta:{advertiserDomains:e&&e.adomain?e.adomain:[]}};return e.nurl?t.ad=decodeURIComponent(`${e.adm}<img src="${e.nurl}">`):t.vastXml=decodeURIComponent(e.adm),t})))).flat(),t=null;if((0,s.cy)(i?.igbid)){const e=i.seller,r=i.decisionLogicUrl,n=i.sellerTimeout;i.igbid.filter((e=>{return t=e,!(0,s.xQ)(t.impid)&&(0,s.cy)(t.igbuyer)&&t.igbuyer.length;var t})).forEach((i=>{const a={};i.igbuyer.filter((e=>{return t=e,!(0,s.xQ)(t.igdomain);var t})).forEach((e=>{a[e.igdomain]=e.buyerdata}));const o=[...Object.keys(a)];o.length&&(t=t||{},t[i.impid]={seller:e,decisionLogicUrl:r,sellerTimeout:n,interestGroupBuyers:o,perBuyerSignals:a})}))}return t?(t=Object.entries(t).map((e=>{let[t,r]=e;return{bidId:t,config:Object.assign({auctionSignals:{}},r)}})),{bids:e,paapi:t}):e}catch(e){return(0,s.vV)("Could not interpret bidresponse, error details:",e),e}},getUserSyncs:function(e,t,r,i,s){try{const a=[];if(t&&0!==t.length){if(e.iframeEnabled){const e=t.filter((e=>(0,n.A)(e,"body.ext.iid"))).map((e=>e.body.ext.iid)),o=[];r&&r.gdprApplies&&"string"==typeof r.consentString&&o.push(["gdpr_consent",r.consentString]),i&&o.push(["us_privacy",i]),s&&(o.push(["gpp",s.gppString]),o.push(["gpp_sid",s.applicableSections])),e[0]&&(o.push(["informer",e[0]]),a.push({type:"iframe",url:"https://ce.lijit.com/beacon?"+o.map((e=>e.join("="))).join("&")}))}e.pixelEnabled&&t.filter((e=>(0,n.A)(e,"body.ext.sync.pixels"))).reduce(((e,t)=>e.concat(t.body.ext.sync.pixels)),[]).map((e=>e.url)).forEach((e=>a.push({type:"image",url:e})))}return a}catch(e){return[]}}};function l(e){const t=e.getFloor&&"function"==typeof e.getFloor?e.getFloor({currency:"USD",mediaType:e.mediaTypes&&e.mediaTypes.banner?"banner":"video",size:"*"}):{},r=parseFloat(t?.floor);if(!isNaN(r))return r;const i=parseFloat((0,s.u5)("bidfloor",e.params));return isNaN(i)?void 0:i}(0,o.a$)(u),(0,i.E)("sovrnBidAdapter")}},e=>{e.O(0,[498,802,85],(()=>{return t=2605,e(e.s=t);var t}));e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[103],{7967:(t,e,n)=>{var d=n(7873),a=n(9115);const i="testbidder",s={code:i,isBidRequestValid:function(t){return!!t.params},buildRequests:function(t,e){return t.map((t=>({method:"GET",url:"",data:{mock:!0,bidId:t.bidId,testRequestId:t.params.requestId??null,testCPM:t.params.cpm??null,testWidth:t.params.width??null,testHeight:t.params.height??null,testAd:t.params.ad??null,testTTL:t.params.ttl??null,currency:t.params.currency??"USD"},bidRequestId:t.bidId})))},interpretResponse:function(t,e){const n=e.data.testWidth||300,d=e.data.testHeight||250,a=e.data.testRequestId||e.bidRequestId,s=`<!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset="utf-8">\\n <style>\\n body { margin: 0; padding: 0; }\\n .creative-container {\\n position: relative;\\n width: ${n}px;\\n height: ${d}px;\\n background: #f0f0f0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n }\\n </style>\\n </head>\\n <body>\\n <div id="creative-${a}" class="creative-container">\\n <div style="text-align: center;">\\n <p>Test Ad</p>\\n <p>${e.data.testAd}</p>\\n <p>${n}x${d}</p>\\n </div>\\n <script>\\n (function() {\\n var size = { width: ${n}, height: ${d} };\\n window.parent.postMessage(JSON.stringify({\\n message: \'Prebid Creative Loaded\',\\n adId: \'${a}\',\\n size: size\\n }), \'*\');\\n })();\\n <\\/script>\\n </div>\\n </body>\\n </html>`;return[{requestId:e.data.testRequestId||e.bidRequestId,cpm:parseFloat(e.data.testCPM)||1,currency:e.data.currency,width:n,height:d,mediaType:"banner",ad:s,ttl:e.data.testTTL||300,creativeId:"test-creative-id",netRevenue:!0,bidderCode:i}]},onTimeout:function(t){},onBidWon:function(t){}};(0,a.a$)(s),(0,d.E)("testbidderBidAdapter")}},t=>{t.O(0,[802,85],(()=>{return e=7967,t(t.s=e);var e}));t.O()}]);\n})(),pbjs.processQueue();\n\n//# sourceURL=webpack:///../builds/80918AC8127BA/0.0.103/prebid.js?')},"../node_modules/css-loader/dist/cjs.js!./css/sticky.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "../node_modules/css-loader/dist/runtime/noSourceMaps.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "../node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.ad-anchor {\n box-sizing: border-box;\n z-index: 9999;\n background-color: #f0f0f0;\n border: 1px dotted #ccc;\n place-items: center;\n padding: 5px;\n transition: all 0.3s ease;\n display: flex;\n align-items: flex-start;\n justify-content: space-between; /* space between .ad-slot and .ad-action-buttons */\n}\n\n.ad-slot {\n flex-grow: 1; /* take up remaining space in center */\n flex-shrink: 1;\n color: #888; /* text color */\n text-align: center; /* center-align content inside div */\n display: flex;\n align-items: center; /* vertically center align all children */\n justify-content: center; /* horizontally center align all children */\n overflow: hidden;\n}\n\n.ad-action-buttons {\n display: flex; /* use flexbox for the buttons */\n gap: 5px; /* add 5px horizontal gap between buttons */\n flex-shrink: 0;\n}\n\n.ad-action-btn {\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n color: #888;\n background: #f0f0f0;\n border: 1px solid #ccc;\n font-size: 20px;\n font-weight: normal;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n line-height: 18px;\n text-align: center;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n\n/* top sticky ad */\n.ad-TP {\n position: sticky;\n top: 0;\n left: 0;\n width: calc(100vw - 25px);\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n}\n\n/* bottom sticky ad */\n.ad-BM {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%; /* "fixed" position width goes by view port */\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n/* \n max-width: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-left: calc(-50vw + 50%); */\n}\n\n/* right rail sticky ad */\n.ad-RG {\n position: fixed;\n top: 50%;\n right: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* left rail sticky ad */\n.ad-LF {\n position: fixed;\n top: 50%;\n left: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* minimized states */\n.horizontal-minimized {\n height: 30px;\n min-height: 30px;\n overflow: hidden;\n}\n\n.vertical-minimized {\n width: 55px;\n min-width: 55px;\n overflow: hidden;\n}\n\n/* hidden state */\n.hidden {\n display: none;\n}\n\n`, ""]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///./css/sticky.css?../node_modules/css-loader/dist/cjs.js')},"../node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = "";\n var needLayer = typeof item[5] !== "undefined";\n if (item[4]) {\n content += "@supports (".concat(item[4], ") {");\n }\n if (item[2]) {\n content += "@media ".concat(item[2], " {");\n }\n if (needLayer) {\n content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += "}";\n }\n if (item[2]) {\n content += "}";\n }\n if (item[4]) {\n content += "}";\n }\n return content;\n }).join("");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === "string") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== "undefined") {\n if (typeof item[5] === "undefined") {\n item[5] = layer;\n } else {\n item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = "".concat(supports);\n } else {\n item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack:///../node_modules/css-loader/dist/runtime/api.js?')},"../node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack:///../node_modules/css-loader/dist/runtime/noSourceMaps.js?")},"./css/sticky.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../node_modules/style-loader/dist/runtime/styleDomAPI.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../node_modules/style-loader/dist/runtime/insertBySelector.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../node_modules/style-loader/dist/runtime/insertStyleElement.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../node_modules/style-loader/dist/runtime/styleTagTransform.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!./sticky.css */ "../node_modules/css-loader/dist/cjs.js!./css/sticky.css");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);\n\n\n//# sourceURL=webpack:///./css/sticky.css?')},"../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":module=>{"use strict";eval('\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = "".concat(id, " ").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?')},"../node_modules/style-loader/dist/runtime/insertBySelector.js":module=>{"use strict";eval('\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === "undefined") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error("Couldn\'t find a style target. This probably means that the value for the \'insert\' parameter is invalid.");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/insertBySelector.js?')},"../node_modules/style-loader/dist/runtime/insertStyleElement.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement("style");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/insertStyleElement.js?')},"../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n if (nonce) {\n styleElement.setAttribute("nonce", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?')},"../node_modules/style-loader/dist/runtime/styleDomAPI.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = "";\n if (obj.supports) {\n css += "@supports (".concat(obj.supports, ") {");\n }\n if (obj.media) {\n css += "@media ".concat(obj.media, " {");\n }\n var needLayer = typeof obj.layer !== "undefined";\n if (needLayer) {\n css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");\n }\n css += obj.css;\n if (needLayer) {\n css += "}";\n }\n if (obj.media) {\n css += "}";\n }\n if (obj.supports) {\n css += "}";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== "undefined") {\n css += "\\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === "undefined") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/styleDomAPI.js?')},"../node_modules/style-loader/dist/runtime/styleTagTransform.js":module=>{"use strict";eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack:///../node_modules/style-loader/dist/runtime/styleTagTransform.js?")},"./src/abTests.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTestAdSlots: () => (/* binding */ getTestAdSlots)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./wrapperTag */ \"./src/wrapperTag.ts\");\n// wflow/app/wrapper/src/abTests.ts\n\n\n\nconst MAX_HASH_32 = Number(2 ** 32 - 1); // max possible value for xxHash32\n/**\n *\n * @param audienceId can be either userId or sessionId\n * @param testId can be either testId or experimentId\n * @returns number between [0, 1]\n */\nasync function getProjection(audienceId, testId) {\n const { h32 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const data = `${audienceId}:${testId}`;\n // compute hash\n const xxHash32 = h32(data, 0); // seed 0 explicitly\n // normalize to [0, 1]\n const projection = parseFloat((Number(xxHash32) / Number(MAX_HASH_32)).toFixed(2));\n if (projection < 0 || projection > 1) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`projection '${projection}' not between 0 and 1`, true);\n }\n return projection;\n}\nasync function getTreatment(test, projection) {\n let treatment = null;\n try {\n const url = `${_wrapperTag__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.t /*testsAPIEndpoint*/}/allocations?testId=${test.i /*testId*/}`;\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n switch (response.status) {\n case 200:\n let allocations = await response.json();\n let cumAlloc = 0;\n test.tm /*treatments*/.forEach(tr => {\n tr.a /*allocation*/ = allocations.find(alloc => alloc.i === tr.i /*id*/)?.a; // adds values to wrapperConfig.layouts[].tests[].treatment[]\n cumAlloc += tr.a /*allocation*/ ?? 0;\n if ((treatment === null) && (projection <= cumAlloc)) {\n treatment = tr;\n }\n });\n break;\n case 204:\n default:\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`http error! ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('error fetching tests data in getTreatment():', false, error);\n }\n return treatment;\n}\n// export async function getTestAdSlots(layout: Layout): Promise<AdSlot[]> {\n// const adSlotOverridesMap: Map<string, AdSlotOverrides> = new Map();\n// const testPromises = layout.ts/*tests*/?.map(async test => {\n// // TODO: support multiple randomization method, userId vs. sessionId\n// const projection: number = await getProjection(getUserId(), test.i/*testId*/);\n// const treatment: Treatment | null = await getTreatment(test, projection);\n// if (treatment === null) {\n// consoleDebug(`unable to find treatment for testId '${test.i/*testId*/}' and projection: ${projection}, proceeding without tests ...`);\n// return;\n// }\n// consoleDebug(`test details testId: '${test.i/*testId*/}', projection: ${projection}, treatmentId: '${treatment.i/*id*/}'`);\n// // multiple tests can include same ad unit, but not override same attribute (1 level deep)\n// treatment.as/*adSlots*/.forEach((auo: AdSlotOverrides) => {\n// const tauo: AdSlotOverrides | undefined = adSlotOverridesMap.get(auo.g/*gam ad unit code*/);\n// adSlotOverridesMap.set(auo.g, {\n// g: auo.g, /* gam ad unit code */\n// o: (tauo?.o && auo.o) /* auctionTimeout */\n// ? (() => { throw new Error(`auctionTimeout defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.o ?? auo.o),\n// n: (tauo?.n && auo.n) /* insert */\n// ? (() => { throw new Error(`insert defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.n ?? auo.n),\n// m: (tauo?.m && auo.m) /* media */\n// ? (() => { throw new Error(`media defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.m ?? auo.m),\n// tg: (tauo?.tg && auo.tg) /* tagIds */\n// ? (() => { throw new Error(`tagIds defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.tg ?? auo.tg),\n// r: (tauo?.r && auo.r) /* refresh */\n// ? (() => { throw new Error(`refresh defined in multiple tests for ad unit '${auo.g}'`) })()\n// : (tauo?.r ?? auo.r),\n// l: (tauo?.l && auo.l) /* load */\n// ? (() => { throw new Error(`load defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.l ?? auo.l),\n// kv: (tauo?.kv && auo.kv) /* targetingKeyValues */\n// ? (() => { throw new Error(`targetingKeyValues defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.kv ?? auo.kv),\n// f: (tauo?.f && auo.f) /* price floor */\n// ? (() => { throw new Error(`floor defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.f ?? auo.f)\n// } as AdSlot);\n// });\n// }) ?? null;\n// if (testPromises) {\n// await Promise.all(testPromises);\n// }\n// const testAdSlots: AdSlot[] = [];\n// adSlotOverridesMap.forEach((auo: AdSlotOverrides) => {\n// const iau: AdSlot | undefined = layout.as /* ad slots */\n// .find(au => au.g === auo.g); /* gam ad unit code */\n// testAdSlots.push({\n// g: auo.g, /* gam ad unit code */\n// o: auo.o ?? iau?.o as number, /* auctionTimeout */\n// n: (auo.n || iau?.n) /* insert */\n// ? auo.n ?? iau?.n as Insert\n// : (() => { throw new Error(`insert not defined for test ad unit '${auo.g}'`) })(),\n// m: (auo.m || iau?.m) /* media */\n// ? auo.m ?? iau?.m as Media\n// : (() => { throw new Error(`media not defined for test ad unit '${auo.g}'`) })(),\n// tg: (auo.tg || iau?.tg) /* tagIds */\n// ? auo.tg ?? iau?.tg as TagId[]\n// : (() => { throw new Error(`tagIds not defined for test ad unit '${auo.g}'`) })(),\n// r: auo.r ?? iau?.r as Refresh, /* refresh */\n// l: (auo.l || iau?.l) /* load */\n// ? auo.l ?? iau?.l as Load\n// : (() => { throw new Error(`load not defined for test ad unit '${auo.g}'`) })(),\n// kv: auo.kv ?? iau?.kv as KeyValue, /* targetingKeyValues */\n// f: auo.f ?? iau?.f as number /* price floor */\n// } as AdSlot);\n// });\n// return testAdSlots;\n// }\nasync function getTestAdSlots(layout) {\n const adSlotOverridesMap = new Map();\n const testPromises = layout.ts?.map(async (test) => {\n const projection = await getProjection((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserId)(), test.i);\n const treatment = await getTreatment(test, projection);\n if (treatment === null) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`unable to find treatment for testId '${test.i}' and projection: ${projection}, proceeding without tests ...`);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`test details testId: '${test.i}', projection: ${projection}, treatmentId: '${treatment.i}'`);\n treatment.as.forEach((currentTreatmentOverride) => {\n const gamUnitCode = currentTreatmentOverride.g;\n const previouslyAccumulatedOverrides = adSlotOverridesMap.get(gamUnitCode);\n const effectiveOverridesForSlot = { g: gamUnitCode };\n const processProperty = (propName) => {\n const existingVal = previouslyAccumulatedOverrides?.[propName];\n const newValFromCurrentTreatment = currentTreatmentOverride[propName];\n if (newValFromCurrentTreatment !== undefined) {\n if (existingVal !== undefined) { // Property was already defined by a previous test's treatment\n const fieldName = String(propName) === 'o' ? 'auctionTimeout' : String(propName);\n // For 'o' (auctionTimeout), throw if it's defined again, regardless of value, to match test.\n if (String(propName) === 'o') {\n throw new Error(`${fieldName} defined in multiple tests for ad unit '${gamUnitCode}'`);\n }\n // For other properties, throw only if values are different.\n if (JSON.stringify(existingVal) !== JSON.stringify(newValFromCurrentTreatment)) {\n throw new Error(`${fieldName} defined differently in multiple tests for ad unit '${gamUnitCode}'`);\n }\n }\n effectiveOverridesForSlot[propName] = newValFromCurrentTreatment;\n }\n else if (existingVal !== undefined) {\n effectiveOverridesForSlot[propName] = existingVal;\n }\n };\n processProperty('o');\n processProperty('n');\n processProperty('m');\n processProperty('tg');\n processProperty('r');\n processProperty('l');\n processProperty('kv');\n processProperty('f');\n if (Object.keys(effectiveOverridesForSlot).length > 1) {\n adSlotOverridesMap.set(gamUnitCode, effectiveOverridesForSlot);\n }\n else {\n if (!previouslyAccumulatedOverrides || Object.keys(previouslyAccumulatedOverrides).length <= 1) {\n adSlotOverridesMap.delete(gamUnitCode);\n }\n }\n });\n }) ?? null;\n if (testPromises) {\n await Promise.all(testPromises);\n }\n const testAdSlots = [];\n adSlotOverridesMap.forEach((accumulatedOverrides) => {\n const initialAdSlot = layout.as.find(au => au.g === accumulatedOverrides.g);\n if (!initialAdSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Original ad slot not found for override: ${accumulatedOverrides.g}`);\n return;\n }\n const mergedSlot = { ...initialAdSlot, ...accumulatedOverrides };\n if (!mergedSlot.n)\n throw new Error(`insert not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.m)\n throw new Error(`media not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.tg)\n throw new Error(`tagIds not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.l)\n throw new Error(`load not defined for test ad unit '${mergedSlot.g}'`);\n testAdSlots.push(mergedSlot);\n });\n return testAdSlots;\n}\n\n\n//# sourceURL=webpack:///./src/abTests.ts?")},"./src/auctionConductor.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adSlotAuctionMap: () => (/* binding */ adSlotAuctionMap),\n/* harmony export */ setRegisterSlotWorker: () => (/* binding */ setRegisterSlotWorker),\n/* harmony export */ setServeAdWorker: () => (/* binding */ setServeAdWorker)\n/* harmony export */ });\n/* harmony import */ var _refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./refreshEventHandlers */ "./src/refreshEventHandlers.ts");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wrapperTag */ "./src/wrapperTag.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n// wflow/app/wrapper/src/auctionConductor.ts\n\n\n\n/**\n *\n * auction is event based and conducted in 3 steps\n * 1) register ad slot after parent div element is added - setRegisterSlotWorker()\n * 2) start auction\n * 3)\n *\n */\n// maps adUnit.code::adUnit.div to { adSlot, auctionId }\nconst adSlotAuctionMap = new Map();\n// register handler: to register ad slot after div has loaded in body\nfunction setRegisterSlotWorker(slot) {\n const slot_div_id = slot.getSlotElementId();\n var element = document.getElementById(slot_div_id);\n if (element) { // element already exists\n registerSlot();\n return;\n }\n var observer = null;\n if (document.body) { // page has already loaded\n mutationListener();\n }\n else {\n document.addEventListener(\'DOMContentLoaded\', () => {\n element = document.getElementById(slot_div_id);\n if (element) { // element already exists\n registerSlot();\n return;\n }\n mutationListener();\n });\n }\n // set up MutationObserver for future additions\n function mutationListener() {\n observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n // check if element exists in DOM now\n const element = document.getElementById(slot_div_id);\n if (element) {\n registerSlot();\n return;\n }\n }\n });\n // start observing document for changes\n observer.observe(document.body, {\n childList: true, // listen for direct children added/removed\n subtree: true // listen for changes in the entire subtree\n });\n }\n function registerSlot() {\n googletag.cmd.push(() => {\n googletag.display(slot_div_id); // called to register slot, disableInitialLoad() should still apply\n // fetch ads for "lazy" load ad units only\n if (slot.getTargeting(\'load\').includes(_types_enums__WEBPACK_IMPORTED_MODULE_2__.Load.Lazy)) {\n setFetchAdWorker(slot);\n }\n else {\n // register refresh handlers for "eager" load ad units\n // setRefreshWorker(slot.getAdUnitPath());\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(slot.getSlotElementId());\n }\n });\n if (observer) {\n observer.disconnect(); // stop observing, after slot is registered\n }\n }\n}\n// meant to be called for "lazy" load ad slots only\nfunction setFetchAdWorker(slot) {\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "1000px", // margin to grow or shrink intersection frame of root, default 100px (10% of most popular viewport 1080px)\n threshold: 0.0 // % element visible\n };\n const slot_div_id = slot.getSlotElementId();\n const element = document.getElementById(slot_div_id);\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n pbjs.que.push(() => {\n pbjs.requestBids({\n // adslot element (div) id used as unique prebid adunit code\n adUnitCodes: [slot.getSlotElementId()],\n timeout: _wrapperTag__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.o /*auctionTimeout*/ // TODO: use adUnit level timeout when set\n });\n });\n observer.disconnect(); // stop observing after ad is fetched\n // register refresh handlers for "lazy" load ad slots\n // setRefreshWorker(slot.getAdUnitPath());\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(slot.getSlotElementId());\n }\n });\n }, options);\n if (element) {\n observer.observe(element);\n }\n}\nfunction setServeAdWorker() {\n pbjs.onEvent(\'auctionEnd\', (auction) => {\n googletag.cmd.push(() => {\n const renderAdSlotCodes = auction.adUnitCodes;\n const renderSlots = googletag.pubads()\n .getSlots()\n // filter adslot element (div) id used as unique prebid adunit code\n .filter(slot => renderAdSlotCodes.includes(slot.getSlotElementId()));\n if (renderSlots.length > 0) {\n pbjs.que.push(() => {\n pbjs.setTargetingForGPTAsync(renderAdSlotCodes);\n googletag.pubads().refresh(renderSlots);\n });\n }\n });\n });\n // TODO should this part be moved to a different function?\n pbjs.onEvent(\'bidWon\', (bid) => {\n const slot = googletag.pubads()\n .getSlots()\n // find by adslot element (div) id used as unique prebid adunit code\n .find(slot => slot.getSlotElementId() === bid.adUnitCode)\n ?? null;\n // TODO: add prefix to targeting keys to make it obvious that this is specific to our wrapper\n if (slot) {\n googletag.cmd.push(() => {\n slot.setTargeting(\'hb_bidder_code\', bid.bidderCode);\n slot.setTargeting(\'hb_cpm\', bid.cpm);\n slot.setTargeting(\'hb_cpm_currency\', bid.currency);\n });\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/auctionConductor.ts?')},"./src/audiences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUserBrowser: () => (/* binding */ getUserBrowser),\n/* harmony export */ getUserCountry: () => (/* binding */ getUserCountry),\n/* harmony export */ getUserDevice: () => (/* binding */ getUserDevice),\n/* harmony export */ matchAudience: () => (/* binding */ matchAudience)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n// wflow/app/wrapper/src/audiences.ts\n\nfunction getUserBrowser() {\n const ua = navigator.userAgent.toLowerCase();\n // check edge first, its ua string often includes \"chrome\"\n // modern edge uses \"edg/\", older edge used \"edge/\"\n if (ua.indexOf('edg/') > -1 || ua.indexOf('edge/') > -1 || ua.indexOf('edge') > -1) { // a bit more robust for edge\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Edge;\n }\n else if (ua.indexOf('chrome') > -1 && ua.indexOf('safari') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Chrome;\n }\n else if (ua.indexOf('safari') > -1) { // safari only (no \"chrome\" or \"edg\")\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Safari;\n }\n else if (ua.indexOf('firefox') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Firefox;\n }\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Unknown;\n}\nfunction getUserDevice() {\n const viewPortCheck = window.matchMedia(\"(max-width: 760px), (max-width: 1024px) and (orientation: landscape)\").matches;\n const userAgentCheck = /Android|iPhone|iPad/i.test(navigator.userAgent);\n return (viewPortCheck || userAgentCheck) ? _types_enums__WEBPACK_IMPORTED_MODULE_0__.Device.Mobile : _types_enums__WEBPACK_IMPORTED_MODULE_0__.Device.Desktop;\n}\nfunction getUserCountry() {\n const localeString = Intl.DateTimeFormat().resolvedOptions().locale;\n let localeCountryCode;\n if (localeString) {\n const parts = localeString.split('-');\n if (parts.length > 1) {\n localeCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n const langString = navigator.language;\n let langCountryCode;\n if (langString) {\n const parts = langString.split('-');\n if (parts.length > 1) {\n langCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n // return uppercase country code if found\n if (localeCountryCode)\n return localeCountryCode.toUpperCase();\n if (langCountryCode)\n return langCountryCode.toUpperCase();\n return null;\n}\nfunction matchAudience(layout) {\n for (const inc of layout.t /*targetAudience*/?.ic /*includes*/ ?? []) {\n if (inc.bw /*browser*/ && !inc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (inc.dv /*device*/ && !inc.dv /*device*/.includes(getUserDevice()))\n return null;\n if (inc.cy /*country*/ && !inc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n for (const exc of layout.t /*targetAudience*/?.ex /*excludes*/ ?? []) {\n if (exc.bw /*browser*/ && exc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (exc.dv /*device*/ && exc.dv /*device*/.includes(getUserDevice()))\n return null;\n if (exc.cy /*country*/ && exc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n return layout;\n}\n\n\n//# sourceURL=webpack:///./src/audiences.ts?")},"./src/dynamicSlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deleteDynamicAdSlot: () => (/* binding */ deleteDynamicAdSlot),\n/* harmony export */ insertDynamicAdSlot: () => (/* binding */ insertDynamicAdSlot),\n/* harmony export */ setDynamicSlotHandler: () => (/* binding */ setDynamicSlotHandler)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionConductor */ \"./src/auctionConductor.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./wrapperTag */ \"./src/wrapperTag.ts\");\n// wflow/app/wrapper/src/dynamicSlot.ts\n\n\n\n\nconst dynamicAdSlots = {};\nfunction setDynamicSlotHandler() {\n // setup event listener for new elements to have been added or getting close to view, and invoke insertDynamicAdSlot() when applicable\n // invoke deleteDynamicSlot() when dynamic ad slot far from view port\n}\nfunction insertDynamicAdSlot(refId, reference) {\n // filter layouts applicable to current page\n const layouts = _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n const allAdSlots = _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/));\n if (allAdSlots.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no ad slots defined for pagepath '${window.location.pathname}', ad cannot be served by insertDynamicAdSlot()`);\n return;\n }\n const refElement = document.getElementById(refId);\n if (refElement === null) {\n throw new Error('could not find element for refId in insertDynamicSlot(): ' + refId);\n }\n const slotDiv = document.createElement('div');\n slotDiv.id = `ad-slot-${reference}-${refId}`;\n slotDiv.className = 'ad-anchor';\n slotDiv.innerHTML = 'Advertisement';\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Before:\n refElement?.before(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.After:\n refElement?.after(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.ElementReference.Inside:\n break;\n default:\n throw new Error('invalid reference parameter to insertDynamicSlot() ' + reference);\n }\n const parentElement = refElement.parentElement;\n const adSlot = Object.values(allAdSlots)\n .find(({ n /*insert*/ }) => n.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.DynamicElement &&\n n.d /*divId*/ === parentElement?.id);\n if (adSlot === undefined) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no ad slot defined for element id '${parentElement?.id}', ad cannot be served by insertDynamicAdSlot()`);\n return;\n }\n dynamicAdSlots[slotDiv.id] = { adUnit: null, gptSlot: null };\n pbjs.que.push(() => {\n // add all ad units to prebid auction\n const pbjsAdUnit = {\n code: slotDiv.id, /*adSlot.g/*gam ad unit code/ + `/${slotDiv.id}`,*/\n div: slotDiv.id,\n mediaTypes: {\n banner: {\n sizes: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getMediaSizes)(adSlot.m /*media*/)\n }\n },\n bids: adSlot.tg /*tagIds*/.map(tagId => ({\n bidder: tagId.b /*bidder*/,\n params: tagId.pm /*params*/\n }))\n };\n pbjs.addAdUnits(pbjsAdUnit);\n dynamicAdSlots[slotDiv.id].adUnit = pbjsAdUnit;\n // start prebid auction\n pbjs.requestBids({\n adUnitCodes: [pbjsAdUnit.code],\n timeout: adSlot.o /*auctionTimeout*/ ?? _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n googletag.cmd.push(() => {\n const sizes = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getMediaSizes)(adSlot.m /*media*/);\n const gptSlot = googletag\n .defineSlot(adSlot.g /*gam ad unit code*/ + `/${slotDiv.id}`, sizes, slotDiv.id)\n ?.addService(googletag.pubads());\n if (gptSlot) {\n // slot level targeting (google publisher tag)\n Object.entries(adSlot.kv /*targetingKeyValues*/ || {}).forEach(([key, value]) => {\n gptSlot.setTargeting(key, value);\n });\n if (adSlot.f /*price floor*/) {\n gptSlot.setTargeting('hb_floor', adSlot.f /*price floor*/.toString());\n }\n gptSlot.setTargeting('load', adSlot.l /*load*/);\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setRegisterSlotWorker)(gptSlot);\n dynamicAdSlots[slotDiv.id].gptSlot = gptSlot;\n }\n });\n}\nfunction deleteDynamicAdSlot(divId) {\n // googletag.destroySlots([gptSlot])\n // pbjs.removeAdSlot(adUnitCode)\n // remove any refresh handlers\n}\n\n\n//# sourceURL=webpack:///./src/dynamicSlot.ts?")},"./src/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ initAdserver: () => (/* binding */ initAdserver),\n/* harmony export */ processAdSlots: () => (/* binding */ processAdSlots)\n/* harmony export */ });\n/* harmony import */ var _logEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logEventHandlers */ "./src/logEventHandlers.ts");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionConductor */ "./src/auctionConductor.ts");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ "./src/logger.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _abTests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./abTests */ "./src/abTests.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./wrapperTag */ "./src/wrapperTag.ts");\n// wflow/app/wrapper/src/index.ts\nconst WRAPPER_VERSION = \'0.1\';\n\n\n\n\n\n\n\n\n\n// const wrapperConfig: WrapperConfig = require(WRAPP_CONFIG_FILE_PATH);\nfunction initAdserver() {\n if (!window.googletag.pubads) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(\'googletag (google publisher tag) did not load properly ...\');\n return;\n }\n if (pbjs.initAdserverSet)\n return;\n pbjs.initAdserverSet = true;\n googletag.cmd.push(() => {\n if (pbjs.setTargetingForGPTAsync) {\n pbjs.setTargetingForGPTAsync();\n googletag.pubads().refresh();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(\'Prebid did not load properly: setTargetingForGPTAsync is undefined\');\n googletag.pubads().refresh(); // fallback to direct gpt refresh\n //TODO log error\n }\n });\n}\n;\nfunction processAdSlots(adSlots) {\n pbjs.que.push(() => {\n // add all ad units to prebid auction\n var pbjsAdUnits = adSlots\n .map(adSlot => ({\n code: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSlotDivId)(adSlot), // adslot element (div) id used as unique prebid adunit code\n div: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSlotDivId)(adSlot),\n mediaTypes: {\n banner: {\n sizes: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getMediaSizes)(adSlot.m /*media*/)\n }\n },\n bids: adSlot.tg /*tagIds*/.map(tagId => ({\n bidder: tagId.b /*bidder*/,\n params: tagId.pm /*params*/\n }))\n }));\n pbjs.addAdUnits(pbjsAdUnits);\n // start prebid auction for "eager" load ad slots\n var eagerAdUnitCodes = adSlots\n .filter(slot => slot.l /*load*/ === _types_enums__WEBPACK_IMPORTED_MODULE_6__.Load.Eager) // filter "eager" load ad unit codes\n .map(slot => (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSlotDivId)(slot)); // return prebid adunit codes (adslot div ids)\n pbjs.requestBids({\n adUnitCodes: eagerAdUnitCodes,\n timeout: _wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n googletag.cmd.push(() => {\n adSlots\n .filter(({ l /*load*/ }) => [_types_enums__WEBPACK_IMPORTED_MODULE_6__.Load.Eager, _types_enums__WEBPACK_IMPORTED_MODULE_6__.Load.Lazy].includes(l /*load*/))\n .forEach((adSlot) => {\n var sizes = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getMediaSizes)(adSlot.m /*media*/);\n const gptSlot = googletag\n .defineSlot(adSlot.g /*gamAdUnitCode*/, sizes, (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSlotDivId)(adSlot))\n ?.addService(googletag.pubads());\n if (gptSlot) {\n // slot level targeting (google publisher tag)\n Object.entries(adSlot.kv /*targetingKeyValues*/ || {}).forEach(([key, value]) => {\n gptSlot.setTargeting(key, value);\n });\n if (adSlot.f /*price floor*/) {\n gptSlot.setTargeting(\'hb_floor\', adSlot.f /*price floor*/.toString());\n }\n gptSlot.setTargeting(\'load\', adSlot.l /*load*/);\n if (adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_6__.Anchor.Window) {\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_4__.setInsertSlotWorker)(adSlot); // add ad slot element to body before registering slot\n }\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setRegisterSlotWorker)(gptSlot);\n }\n });\n googletag.pubads().enableSingleRequest(); // all ad slots should be defined and added to service before\n googletag.enableServices();\n });\n}\nasync function main() {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleDebug)("app info" +\n "\\n name: " + "app-p80918ac8127ba.js" +\n "\\n version: " + "0.0.103" +\n "\\n build date: " + "2025-07-17T01:30:55.443Z");\n window.wrapperConfig = _wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig;\n // check config domain covers publisher domain\n const secondLevelDomain = window.location.hostname.split(\'.\').slice(-2).join(\'.\');\n const thirdLevelDomain = window.location.hostname.split(\'.\').slice(-3).join(\'.\');\n const sldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_3__.generateHash)(secondLevelDomain, 13);\n const tldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_3__.generateHash)(thirdLevelDomain, 13);\n if (![sldHash, tldHash].includes(_wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.d /*domain*/)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(`inventory defined for different domain with ID \'${_wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.d /*domain*/}\', no ads will be served`);\n return;\n }\n //TODO: check wrapper version compatibility with config version\n // in case pbjs does not load, ensure googletag.pubads().refresh() is called\n setTimeout(() => {\n initAdserver();\n }, _wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.f /*failsafeTimeout*/);\n pbjs.que.push(() => {\n pbjs.initAdserverSet = true; // execute first once pbjs setup is complete\n pbjs.setConfig({\n currency: {\n adServerCurrency: _wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.c /*currencyCode*/ || \'USD\',\n // prebid.org maintained currency file, updated daily\n conversionUrl: \'https://cdn.example.com/currency/latest.json\',\n // fallback rates if needed\n // rates: wrapperConfig.cr/*currencyRates*/ || {}\n },\n priceGranularity: {\n buckets: _wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.pb /*priceBuckets*/.map((bucket) => ({\n min: Number(bucket.f /*floor*/),\n max: Number(bucket.c /*ceiling*/),\n increment: Number(bucket.s /*step*/),\n }))\n },\n });\n // register event handlers and workers early\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.initLogger)();\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setDocumentEventLogHandlers)();\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setAuctionEventLogHandlers)();\n // ensure gpt api is ready before registering log handlers for gpt events\n googletag.cmd.push(() => {\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setGPTEventLogHandlers)();\n });\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setServeAdWorker)();\n });\n googletag.cmd.push(() => {\n googletag.pubads().disableInitialLoad();\n });\n // filter layouts applicable to current page\n const layouts = (_wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.ly /*layout*/\n ?.filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_3__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/))\n ?.filter((ly) => (0,_audiences__WEBPACK_IMPORTED_MODULE_7__.matchAudience)(ly) !== null)) ?? [];\n // exclude ad slots that are overriden in any tests\n const layoutFilteredAdSlots = layouts\n .flatMap(ly => {\n const testAdSlotCodes = new Set(ly.ts /*tests*/?.flatMap(test => test.tm /*treatments*/.flatMap(treatment => treatment.as /*adSlots*/.map(adUnit => adUnit.g /*gamAdUnitCode*/) // TODO: move from gam ad unit code to ad slot div id??\n )) || []);\n return ly.as /*adSlots*/.filter(adUnit => !testAdSlotCodes.has(adUnit.g /*gamAdUnitCode*/));\n });\n [\n ...layoutFilteredAdSlots,\n ..._wrapperTag__WEBPACK_IMPORTED_MODULE_8__.wrapperConfig.as /*adSlots*/, // config ad slots override layout ad slots\n ].forEach((adSlot) => {\n const key = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getSlotDivId)(adSlot);\n const current = _auctionConductor__WEBPACK_IMPORTED_MODULE_1__.adSlotAuctionMap.get(key) || {};\n _auctionConductor__WEBPACK_IMPORTED_MODULE_1__.adSlotAuctionMap.set(key, {\n ...current,\n adSlot: adSlot\n });\n });\n if (_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.adSlotAuctionMap.size === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\', ads will not be served`);\n return;\n }\n processAdSlots(Array.from(_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.adSlotAuctionMap.values())\n .map(entry => entry.adSlot)\n .filter((slot) => !!slot)); // filter out undefined ad slots\n googletag.cmd.push(() => {\n // page-level targeting (google publisher tag)\n const allPageLevelTargeting = Object.values(layouts)\n .map(layout => layout.kv /*pageTargetingKeyValues*/ || {})\n .reduce((acc, kv) => ({ ...acc, ...kv }), {}); // merge all kv objects\n Object.entries(allPageLevelTargeting).forEach(([key, value]) => {\n googletag.pubads().setTargeting(key, value);\n });\n });\n // retrieve test ad units meant for user\n const testAdSlots = (await Promise.all(layouts\n .filter((layout) => layout.ts /*tests*/)\n .map((layout) => (0,_abTests__WEBPACK_IMPORTED_MODULE_5__.getTestAdSlots)(layout))))\n .flat();\n if (testAdSlots.length > 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleDebug)(\'test ad slots found will be served\', testAdSlots);\n processAdSlots(testAdSlots);\n }\n}\n// queue to execute ad server tasks in order\nwindow.googletag = window.googletag || { cmd: [] };\n// queue to execute auction tasks in order\nwindow.pbjs = window.pbjs || { que: [] };\n// window.__gpp = {\n// getSection: function(sectionId, callback) {\n// callback({\n// gppString: \'DBABMA~CPXxRfAPXxRfABABQBENB-CgAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA\',\n// applicableSections: [\'tcfeu\', \'usca\'], // GDPR and US Privacy\n// });\n// },\n// };\nmain();\n// anchor to view_port (sticky ads) -- always loaded eager\n// anchor to static_content (standard ads) -- loaded eager or lazy\n// anchor to dynamic_content; --\x3e div id regex or class name -- loaded lazy\n// ad slots can be insertion can be on page content, sticky, and dynamic\n// ads can be loaded -- eager or lazy\n//TODOs\n//for eager slots auction can end before winner has been declared from bid responses\n//auction end includes array of bid responses\n\n\n//# sourceURL=webpack:///./src/index.ts?')},"./src/logEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setAuctionEventLogHandlers: () => (/* binding */ setAuctionEventLogHandlers),\n/* harmony export */ setDocumentEventLogHandlers: () => (/* binding */ setDocumentEventLogHandlers),\n/* harmony export */ setGPTEventLogHandlers: () => (/* binding */ setGPTEventLogHandlers)\n/* harmony export */ });\n/* harmony import */ var _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logObjectBuilder */ \"./src/logObjectBuilder.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ \"./src/logger.ts\");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionConductor */ \"./src/auctionConductor.ts\");\n// wflow/app/wrapper/src/logEventHandlers.ts\n\n\n\n\nfunction setAuctionEventLogHandlers() {\n pbjs.onEvent('auctionInit', (auction) => {\n //TODO add debug condition for log\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionInit', auction);\n // update auction map with latest auction ids\n if (auction?.adUnits && Array.isArray(auction.adUnits)) {\n auction.adUnits.forEach((adUnit) => {\n const key = adUnit.div;\n const currentMap = _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key) ?? {};\n _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.set(key, {\n ...currentMap,\n pbAuctionId: auction.auctionId,\n pbAdUnitId: adUnit.adUnitId,\n pbTransactionId: adUnit.transactionId\n });\n });\n }\n const auctionInit = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionInitObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/auction/init', auctionInit);\n });\n pbjs.onEvent('bidResponse', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidResponse', bid);\n const bidResponse = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidResponseObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/bid/response', bidResponse);\n });\n pbjs.onEvent('bidWon', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidWon', bid);\n const bidWon = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidWonObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/bid/won', bidWon);\n });\n pbjs.onEvent('bidRejected', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidRejected', bid);\n const bidRejected = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidRejectedObject(bid, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/bid/reject', bidRejected);\n });\n pbjs.onEvent('bidTimeout', (bids) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidTimeout', bids);\n const bidTimeout = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidTimeoutObjects(bids);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/bid/timeouts', bidTimeout);\n });\n pbjs.onEvent('auctionEnd', (auction) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionEnd', auction);\n const auctionEnd = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionEndObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/auction/end', auctionEnd);\n });\n pbjs.onEvent('adRenderSucceeded', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderSucceeded', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'SUCCESS', serveTimestamp: Date.now() /*utc timestamp*/, failReason: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/ad/serve', adServe);\n });\n pbjs.onEvent('adRenderFailed', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderFailed', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'FAIL', failReason: data.reason, serveTimestamp: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/ad/serve', adServe);\n });\n}\nfunction setDocumentEventLogHandlers() {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', logPageView);\n }\n else {\n // DOMContentLoaded already fired, call function immediately\n logPageView();\n }\n function logPageView() {\n const pageView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.pageViewObject();\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pageView', pageView);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/page/view', pageView);\n }\n}\nfunction setGPTEventLogHandlers() {\n googletag.pubads().addEventListener('slotRequested', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotRequested', event);\n // save auction ids to served when slot is requested\n const slotId = event.slot.getSlotElementId();\n const current = _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(slotId);\n if (current?.pbAuctionId) {\n _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.set(slotId, {\n ...current,\n pbServedAuctionId: current.pbAuctionId,\n pbServedAdUnitId: current.pbAdUnitId,\n pbServedTransactionId: current.pbTransactionId\n });\n }\n });\n googletag.pubads().addEventListener('slotResponseReceived', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotResponseReceived', event);\n });\n googletag.pubads().addEventListener('slotRenderEnded', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.SlotRenderEndedEvent', event);\n if (event.isEmpty) { // no impression\n const adUnfilled = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adUnfilledObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/ad/unfilled', adUnfilled);\n }\n else { //impression\n // TODO: look into slot renders with sizes 1x1\n // if (event.size && (event.size[0] === 1 && event.size[1] === 1)) {\n // ignore pixel renders\n // }\n // else {\n const adImpression = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adImpressionObject(event, Date.now()); /* UTC timestamp */\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/ad/impression', adImpression);\n // }\n }\n });\n googletag.pubads().addEventListener(\"impressionViewable\", (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.ImpressionViewableEvent', event, event.slot.getResponseInformation());\n const slotId = event.slot.getSlotElementId();\n const slotDiv = document.getElementById(slotId);\n const iframe = slotDiv?.querySelector('iframe') ?? null;\n const size = iframe?.width + 'x' + iframe?.height;\n if (size === '1x1') {\n // ignore pixel renders\n }\n else {\n const adView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adViewableObject(event.slot, Date.now() /*utc timestamp*/);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)('/ad/viewable', adView);\n }\n });\n}\n\n\n//# sourceURL=webpack:///./src/logEventHandlers.ts?")},"./src/logObjectBuilder.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adImpressionObject: () => (/* binding */ adImpressionObject),\n/* harmony export */ adServeObject: () => (/* binding */ adServeObject),\n/* harmony export */ adUnfilledObject: () => (/* binding */ adUnfilledObject),\n/* harmony export */ adViewableObject: () => (/* binding */ adViewableObject),\n/* harmony export */ auctionEndObject: () => (/* binding */ auctionEndObject),\n/* harmony export */ auctionInitObject: () => (/* binding */ auctionInitObject),\n/* harmony export */ bidRejectedObject: () => (/* binding */ bidRejectedObject),\n/* harmony export */ bidResponseObject: () => (/* binding */ bidResponseObject),\n/* harmony export */ bidTimeoutObjects: () => (/* binding */ bidTimeoutObjects),\n/* harmony export */ bidWonObject: () => (/* binding */ bidWonObject),\n/* harmony export */ pageViewObject: () => (/* binding */ pageViewObject)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audiences */ \"./src/audiences.ts\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionConductor */ \"./src/auctionConductor.ts\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./wrapperTag */ \"./src/wrapperTag.ts\");\n// wflow/app/wrapper/src/logObjectBuilder.ts\n\n\n\n\n\n\nconst page_view_id = (0,uuid__WEBPACK_IMPORTED_MODULE_5__[\"default\"])();\nfunction pageViewObject(location = window.location) {\n // TODO: return timezone when locale unavailable\n const pageView = {\n page_view_id: page_view_id,\n app_ver: \"0.0.103\",\n view_start_time: Date.now(),\n domain: location.hostname,\n page_path: location.pathname,\n session_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSessionId)(),\n user_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserId)(),\n device: {\n user_agent: navigator.userAgent,\n language: navigator.language,\n mobile: (0,_audiences__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)() === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Device.Mobile,\n view_port: {\n width: window.innerWidth,\n height: window.innerHeight\n },\n geo_location: (0,_audiences__WEBPACK_IMPORTED_MODULE_1__.getUserCountry)()\n }\n };\n return pageView;\n}\nfunction auctionInitObject(auction) {\n const auctionInit = {\n page_view_id: page_view_id,\n pb_auction_id: auction.auctionId,\n auction_start_time: auction.timestamp, /* UTC timestamp */\n auction_end_time: null, /* UTC timestamp */\n ad_slots: []\n };\n auction.adUnits.forEach((adUnit) => {\n const bidderCodes = adUnit.bids.map((bid) => bid.bidder);\n const key = adUnit.div;\n const currentMap = _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key) ?? {};\n const adSlot = currentMap.adSlot ?? null;\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`[auctionInitObject] no ad slot match for divId='${adUnit.div}'`, adUnit, _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap);\n }\n const layoutIds = _wrapperTag__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.ly /*layouts*/\n .filter((layout) => layout.as /*adSlots*/.some((slot) => slot.i /*id*/ === adSlot?.i /*id*/))\n .map((layout) => layout.i /*id*/);\n auctionInit.ad_slots.push({\n pb_adunit_id: adUnit.adUnitId ?? null,\n pb_transaction_id: adUnit.transactionId ?? null,\n adslot_id: adSlot?.i /*id*/ ?? null,\n layout_ids: layoutIds,\n adunit_code: adSlot?.g /*gamAdUnitCode*/ ?? null,\n div_id: adUnit.div,\n price_floor: adSlot?.f /*priceFloor*/ ?? null,\n price_floor_currency: adSlot?.c /*priceFloorCurrency*/ ?? null,\n deal_id: null,\n pb_bidder_codes: bidderCodes\n });\n });\n return auctionInit;\n}\nfunction bidResponseObject(bid) {\n const bidResponse = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null, // TODO handle scenario if bidder responds with 0\n cpm_currency: bid.currency,\n size: bid.size,\n deal_id: bid.dealId ? bid.dealId : null,\n time_to_respond: bid.timeToRespond\n };\n return bidResponse;\n}\nfunction bidWonObject(bid) {\n const bidWon = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm,\n cpm_currency: bid.currency,\n size: bid.size,\n response_timestamp: bid.responseTimestamp /* UTC timestamp */\n };\n return bidWon;\n}\nfunction bidTimeoutObjects(bids) {\n const bidTimeouts = new Array();\n bids.forEach(bid => {\n bidTimeouts.push({\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidder,\n timeout: 0 //TODO bid.timeout not populated, need to figure out why\n });\n });\n return bidTimeouts;\n}\nfunction bidRejectedObject(bid, adRejectTimestamp) {\n const bidRejected = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null,\n cpm_currency: bid.currency,\n size: bid.width + 'x' + bid.height,\n deal_id: bid.dealId,\n reject_reason: bid.rejectionReason ? bid.rejectionReason : '',\n reject_timestamp: adRejectTimestamp, /* UTC timestamp */\n };\n return bidRejected;\n}\nfunction adServeObject(bid, ad) {\n const adServe = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n ad_id: bid.adId,\n bid_cpm: bid.cpm,\n bid_cpm_currency: bid.currency,\n size: bid.size,\n status: ad.serveStatus,\n fail_reason: ad.failReason,\n ad_serve_timestamp: ad.serveTimestamp, /* UTC timestamp */\n };\n return adServe;\n}\nfunction auctionEndObject(auction) {\n if (!auction.auctionId || !auction.auctionEnd || !auction.auctionStatus) {\n throw new Error('invalid parameter auction in auctionEndObject()');\n }\n const auctionEnd = {\n pb_auction_id: auction.auctionId,\n auction_end_time: auction.auctionEnd, /* UTC timestamp */\n end_state: auction.auctionStatus\n };\n return auctionEnd;\n}\nfunction adImpressionObject(event, adImpressionTimestamp) {\n // const size: [number, number] = event.size;\n const size = event?.size ? `${event.size[0]}x${event.size[1]}` : '';\n const key = event.slot.getSlotElementId();\n const adImpression = {\n pb_auction_id: _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key)?.pbServedTransactionId ?? null,\n advertiser_id: event.advertiserId,\n campaign_id: event.campaignId,\n creative_id: event.creativeId,\n line_item_id: event.lineItemId,\n hb_bidder_code: event.slot.getTargeting('hb_bidder_code')?.[0] ?? null,\n hb_cpm: event.slot.getTargeting('hb_cpm')?.[0] || null,\n hb_cpm_currency: event.slot.getTargeting('hb_cpm_currency')?.[0] ?? null,\n size: size,\n ad_impression_timestamp: adImpressionTimestamp /* UTC timestamp */\n };\n return adImpression;\n}\nfunction adUnfilledObject(slot, adUnfilledTimestamp) {\n const key = slot.getSlotElementId();\n const currentMap = _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key) ?? {};\n const adUnfilled = {\n pb_auction_id: currentMap.pbServedAuctionId ?? null,\n pb_transaction_id: currentMap.pbServedTransactionId ?? null,\n ad_unfilled_timestamp: adUnfilledTimestamp /* UTC timestamp */\n };\n return adUnfilled;\n}\nfunction adViewableObject(slot, adViewableTimestamp) {\n const key = slot.getSlotElementId();\n const adViewable = {\n pb_auction_id: _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: _auctionConductor__WEBPACK_IMPORTED_MODULE_3__.adSlotAuctionMap.get(key)?.pbServedTransactionId ?? null,\n ad_viewable_timestamp: adViewableTimestamp /* UTC timestamp */\n };\n return adViewable;\n}\n\n\n//# sourceURL=webpack:///./src/logObjectBuilder.ts?")},"./src/logger.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FlushTrigger: () => (/* binding */ FlushTrigger),\n/* harmony export */ LogMode: () => (/* binding */ LogMode),\n/* harmony export */ flushQue: () => (/* binding */ flushQue),\n/* harmony export */ initLogger: () => (/* binding */ initLogger),\n/* harmony export */ logEvent: () => (/* binding */ logEvent)\n/* harmony export */ });\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wrapperTag */ "./src/wrapperTag.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n// wflow/app/wrapper/src/logger.ts\n\n\nvar LogMode;\n(function (LogMode) {\n LogMode["Sync"] = "SY";\n LogMode["Async"] = "AS";\n})(LogMode || (LogMode = {}));\nvar FlushTrigger;\n(function (FlushTrigger) {\n FlushTrigger["Event"] = "EV";\n FlushTrigger["Time"] = "TM";\n})(FlushTrigger || (FlushTrigger = {}));\nconst loggerAPIEndpoint = `https://${_wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.e}${_wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.p /*apiPath*/}`;\n// module state\nlet eventQue = [];\nlet timeoutId = null;\nlet logMode = LogMode.Async;\nfunction initLogger() {\n // follow config log mode\n const setLogMode = () => {\n logMode = _wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.m /*mode*/;\n if (logMode === LogMode.Sync) {\n flushQue(); // flush events before page load\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Page loaded, log mode \'${logMode}\' now follows config`);\n };\n if (document.readyState === \'complete\') {\n setLogMode();\n }\n else {\n window.addEventListener(\'load\', setLogMode);\n }\n // set unload flush to prevent data loss\n window.addEventListener(\'beforeunload\', flushQue);\n window.addEventListener(\'pagehide\', flushQue);\n}\nfunction flushQue() {\n if (eventQue.length === 0) {\n return;\n }\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n const events = [...eventQue];\n eventQue = [];\n const batchData = events.map(event => ({\n endpoint: event.path,\n payload: event.payload,\n timestamp: event.timestamp\n }));\n postLogData(\'/batch\', batchData);\n}\nfunction postLogData(path, payload) {\n const strPayload = JSON.stringify(payload);\n fetch(`${loggerAPIEndpoint}${path}`, {\n method: \'POST\',\n body: strPayload,\n headers: {\n \'Content-Type\': \'text/plain\'\n },\n keepalive: strPayload.length < 60000 // safety margin for 64KB limit\n })\n .then(response => {\n if (response.status !== 200) {\n throw new Error(`HTTP error! ${response.status} ${response.statusText}`);\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Logged event(s) to ${loggerAPIEndpoint}${path}`, payload);\n })\n .catch(error => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Failed to log event(s) to ${loggerAPIEndpoint}${path}`, false, payload, error);\n });\n}\nfunction logEvent(path, payload) {\n if (logMode === LogMode.Sync) {\n // synchronous logging\n postLogData(path, payload);\n return;\n }\n // asynchronous logging\n eventQue.push({\n path,\n payload,\n timestamp: Date.now()\n });\n // setup flush for asynchronous logging\n switch (_wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.t /*flushTrigger*/) {\n case FlushTrigger.Event:\n if (eventQue.length >= _wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/) {\n flushQue();\n }\n break;\n case FlushTrigger.Time:\n if (timeoutId === null) {\n timeoutId = window.setTimeout(() => {\n flushQue();\n }, _wrapperTag__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/);\n }\n break;\n }\n}\n\n\n//# sourceURL=webpack:///./src/logger.ts?')},"./src/refreshEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRefreshWorker: () => (/* binding */ setRefreshWorker)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _wrapperTag__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./wrapperTag */ "./src/wrapperTag.ts");\n// wflow/app/wrapper/src/refreshEventHandlers.ts\n\n\n\n\nconst DEFAULT_REFRESH_INTERVAL = 30; // in seconds\nfunction setRefreshWorker(adUnitCode) {\n // filter layouts applicable to current page\n const layouts = _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/)) ?? [];\n const allAdSlots = _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/));\n if (allAdSlots.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\', ads will not be refreshed`);\n return;\n }\n const refreshAdSlot = allAdSlots.find(\n // ({ g/*gam ad unit code*/ }) => g/*gam ad unit code*/ === adUnitPath\n slot => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(slot) === adUnitCode);\n if (refreshAdSlot) {\n const slotDivId = (refreshAdSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Anchor.Window) ?\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_1__.stickySlotId)(refreshAdSlot.n /*insert*/.r /*reference*/) :\n refreshAdSlot.n /*insert*/.d /*divId*/;\n const element = document.getElementById(slotDivId);\n const refreshType = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.enumFromString)(_types_enums__WEBPACK_IMPORTED_MODULE_2__.RefreshTrigger, refreshAdSlot?.r /*refresh*/?.t /*trigger*/ ?? \'\');\n if (element && refreshType) {\n switch (refreshType) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.RefreshTrigger.InView:\n refreshInView(element, refreshAdSlot);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.RefreshTrigger.AfterInterval:\n refreshAfterInterval(element, refreshAdSlot);\n break;\n default:\n break;\n }\n }\n }\n}\n/**\n *\n * refresh in view, only after interval\n * max refresh applies (if specified)\n *\n **/\nfunction refreshInView(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*count of times*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n var isElementVisible = false; // track element visibility\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isElementVisible = entry.intersectionRatio > 0; // update visibility status\n });\n }, options);\n observer.observe(element);\n // refresh loop\n const intervalId = setInterval(() => {\n if (isElementVisible && refreshCount < maxRefreshes) {\n refreshCount++;\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }\n if (refreshCount >= maxRefreshes) {\n clearInterval(intervalId); // stop interval when max refreshes reached\n observer.disconnect(); // disconnect observer\n }\n }, timeout); // delay between checks\n}\n/**\n *\n * refresh after interval, only if ad was viewable\n * max refresh applies (if specified)\n *\n **/\nfunction refreshAfterInterval(element, adSlot) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*countOfTimes*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio > 0) {\n if (refreshCount < maxRefreshes) {\n refreshCount++;\n setTimeout(() => {\n pbjs.que.push(() => {\n pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _wrapperTag__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }, timeout);\n }\n if (refreshCount >= maxRefreshes) {\n observer.disconnect(); // stop observing after max refreshes\n }\n }\n });\n }, options);\n observer.observe(element);\n}\n\n\n//# sourceURL=webpack:///./src/refreshEventHandlers.ts?')},"./src/stickySlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ StickyAction: () => (/* binding */ StickyAction),\n/* harmony export */ anchorAction: () => (/* binding */ anchorAction),\n/* harmony export */ anchorId: () => (/* binding */ anchorId),\n/* harmony export */ buttonId: () => (/* binding */ buttonId),\n/* harmony export */ setInsertSlotWorker: () => (/* binding */ setInsertSlotWorker),\n/* harmony export */ stickySlotId: () => (/* binding */ stickySlotId)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n// wflow/app/wrapper/src/stickySlot.ts\n\nvar StickyAction;\n(function (StickyAction) {\n StickyAction[\"Minimize\"] = \"minimize\";\n StickyAction[\"Restore\"] = \"restore\";\n StickyAction[\"Dismiss\"] = \"dismiss\";\n})(StickyAction || (StickyAction = {}));\nfunction setInsertSlotWorker(adUnit) {\n // TODO add all sticky slots at one time\n if (document.body) { // page has already loaded\n addStickySlot(adUnit.n /*insert*/);\n }\n else {\n document.addEventListener('DOMContentLoaded', () => {\n addStickySlot(adUnit.n /*insert*/);\n });\n }\n}\nconst stickySlotId = (ref) => `ad-${ref}-slot`;\nconst anchorId = (ref) => `ad-${ref}-anchor`;\nconst buttonId = (ref, action) => `ad-${ref}-${action}`;\nfunction addStickySlot(insert) {\n const anchorElementId = anchorId(insert.r /*reference*/);\n const slotId = stickySlotId(insert.r /*reference*/);\n const anchorClass = `ad-anchor ad-${insert.r /*reference*/}`;\n // TODO allow anchorId to be added only once\n const anchor = document.createElement('div');\n anchor.id = anchorElementId;\n anchor.className = anchorClass;\n const actionButtonsDiv = document.createElement('div');\n actionButtonsDiv.className = 'ad-action-buttons';\n const btnRes = document.createElement('div');\n btnRes.id = buttonId(insert.r /*reference*/, StickyAction.Restore);\n btnRes.innerHTML = '+';\n btnRes.className = 'ad-action-btn';\n btnRes.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Restore);\n btnRes.title = 'Restore Ad';\n btnRes.style.display = 'none';\n actionButtonsDiv.appendChild(btnRes);\n if (insert.z /*minimize*/) {\n const btnMin = document.createElement('div');\n btnMin.id = buttonId(insert.r /*reference*/, StickyAction.Minimize);\n btnMin.innerHTML = '-';\n btnMin.className = 'ad-action-btn';\n btnMin.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Minimize);\n btnMin.title = 'Minimize Ad';\n actionButtonsDiv.appendChild(btnMin);\n }\n if (insert.s /*dismiss*/) {\n const btnDis = document.createElement('div');\n btnDis.id = buttonId(insert.r /*reference*/, StickyAction.Dismiss);\n btnDis.innerHTML = 'x';\n btnDis.className = 'ad-action-btn';\n btnDis.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Dismiss);\n btnDis.title = 'Dismiss Ad';\n actionButtonsDiv.appendChild(btnDis);\n }\n anchor.appendChild(Object.assign(document.createElement('div'), {\n id: slotId,\n className: 'ad-slot',\n innerHTML: 'Advertisement'\n }));\n anchor.appendChild(actionButtonsDiv);\n switch (insert.r /*reference*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n document.body.prepend(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n document.body.append(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n document.body.append(anchor);\n break;\n default:\n //TODO log invalid parameter\n break;\n }\n}\n/**\n * handle ad actions (hide, minimize, restore)\n * @param {string} reference - anchor reference (WindowReference)\n * @param {string} action - action to take (StickyAction)\n */\nfunction anchorAction(reference, action) {\n const adAnchor = document.getElementById(anchorId(reference));\n const restoreBtn = document.getElementById(buttonId(reference, StickyAction.Restore));\n const minimizeBtn = document.getElementById(buttonId(reference, StickyAction.Minimize));\n const dismissBtn = document.getElementById(buttonId(reference, StickyAction.Dismiss));\n var minimizeClassName = '';\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n minimizeClassName = 'horizontal-minimized';\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n minimizeClassName = 'vertical-minimized';\n break;\n default:\n throw new Error(`invalid reference parameter '${reference}' to anchorAction()`);\n }\n switch (action) {\n case StickyAction.Restore:\n adAnchor?.classList.remove(minimizeClassName); // restore\n restoreBtn?.style && (restoreBtn.style.display = 'none'); // hide restore button \n minimizeBtn?.style && (minimizeBtn.style.display = 'block'); // show minimize button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n break;\n case StickyAction.Minimize:\n adAnchor?.classList.add(minimizeClassName); // minimize\n minimizeBtn?.style && (minimizeBtn.style.display = 'none'); // hide minimize button\n restoreBtn?.style && (restoreBtn.style.display = 'block'); // show restore button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n //TODO how to handle refresh?\n break;\n case StickyAction.Dismiss:\n adAnchor?.classList.add('hidden'); // dismiss\n //TODO delete google slot and pbjs ad unit, should we remove element?\n break;\n default:\n throw new Error(`invalid action parameter '${action}' to anchorAction()`);\n }\n}\n//TODO minimized ad slot maximized on refresh\n//TODO should not have unfilled -- house ad or immediate refresh, after which automatically minimized\n\n\n//# sourceURL=webpack:///./src/stickySlot.ts?")},"./src/types/enums.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Browser: () => (/* binding */ Browser),\n/* harmony export */ Device: () => (/* binding */ Device),\n/* harmony export */ ElementReference: () => (/* binding */ ElementReference),\n/* harmony export */ Load: () => (/* binding */ Load),\n/* harmony export */ MediaFormat: () => (/* binding */ MediaFormat),\n/* harmony export */ PagePathPattern: () => (/* binding */ PagePathPattern),\n/* harmony export */ RefreshTrigger: () => (/* binding */ RefreshTrigger),\n/* harmony export */ WindowReference: () => (/* binding */ WindowReference)\n/* harmony export */ });\n// wflow/app/wrapper/src/enums.ts\nvar WindowReference;\n(function (WindowReference) {\n WindowReference["Top"] = "TP";\n WindowReference["Bottom"] = "BM";\n WindowReference["Left"] = "LF";\n WindowReference["Right"] = "RG";\n})(WindowReference || (WindowReference = {}));\nvar ElementReference;\n(function (ElementReference) {\n ElementReference["Before"] = "BF";\n ElementReference["After"] = "AT";\n ElementReference["Inside"] = "IN";\n})(ElementReference || (ElementReference = {}));\nvar Anchor;\n(function (Anchor) {\n Anchor["Window"] = "WN";\n Anchor["StaticElement"] = "ST";\n Anchor["DynamicElement"] = "DY";\n})(Anchor || (Anchor = {}));\nvar Load;\n(function (Load) {\n /**\n * Eager Loading:\n * Ads are loaded as soon as the page loads, regardless of whether they are visible to the user.\n * Use Case: Pages with high-priority ad slots above the fold where immediate visibility is crucial.\n */\n Load["Eager"] = "EG";\n /**\n * Deferred Loading:\n * Ads are loaded after the entire page has finished loading or after a specific delay.\n * Use Case: Ensures critical content is loaded first to improve perceived performance.\n */\n Load["Deferred"] = "DF";\n /**\n * Lazy Loading:\n * Ads are loaded only when they are about to come into the viewport (or are close to it).\n * Use Case: Improves performance and reduces resource usage by deferring ad requests for offscreen ads.\n */\n Load["Lazy"] = "LZ";\n /**\n * Dynamic Loading:\n * Ads are loaded for slots created dynamically after the initial page load, such as in infinite scroll scenarios.\n * Use Case: Pages with content that expands dynamically, where new ad slots are introduced as the user scrolls.\n */\n Load["Dynamic"] = "YM";\n /**\n * On-Demand Loading:\n * Ads are loaded based on specific user actions, such as clicking a button or interacting with a part of the page.\n * Use Case: When ads need to be shown only after user engagement (e.g., inside a collapsible menu).\n */\n Load["OnDemand"] = "ON";\n})(Load || (Load = {}));\nvar MediaFormat;\n(function (MediaFormat) {\n MediaFormat["Banner"] = "BN";\n})(MediaFormat || (MediaFormat = {}));\nvar RefreshTrigger;\n(function (RefreshTrigger) {\n RefreshTrigger["InView"] = "IV";\n RefreshTrigger["AfterInterval"] = "AV";\n})(RefreshTrigger || (RefreshTrigger = {}));\nvar Device;\n(function (Device) {\n Device["Mobile"] = "MB";\n Device["Desktop"] = "DK";\n Device["Tablet"] = "TB";\n})(Device || (Device = {}));\nvar Browser;\n(function (Browser) {\n Browser["Chrome"] = "CR";\n Browser["Safari"] = "SF";\n Browser["Edge"] = "EG";\n Browser["Firefox"] = "FX";\n Browser["Unknown"] = "UN";\n})(Browser || (Browser = {}));\nvar PagePathPattern;\n(function (PagePathPattern) {\n PagePathPattern["Prefix"] = "PR";\n PagePathPattern["Contains"] = "CT";\n PagePathPattern["Suffix"] = "SF";\n PagePathPattern["Exact"] = "EX";\n PagePathPattern["Regex"] = "RG";\n})(PagePathPattern || (PagePathPattern = {}));\n\n\n//# sourceURL=webpack:///./src/types/enums.ts?')},"./src/utils.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ consoleDebug: () => (/* binding */ consoleDebug),\n/* harmony export */ consoleError: () => (/* binding */ consoleError),\n/* harmony export */ enumFromString: () => (/* binding */ enumFromString),\n/* harmony export */ generateHash: () => (/* binding */ generateHash),\n/* harmony export */ getMediaSizes: () => (/* binding */ getMediaSizes),\n/* harmony export */ getPrimaryDomain: () => (/* binding */ getPrimaryDomain),\n/* harmony export */ getSessionId: () => (/* binding */ getSessionId),\n/* harmony export */ getSlotDivId: () => (/* binding */ getSlotDivId),\n/* harmony export */ getUserId: () => (/* binding */ getUserId),\n/* harmony export */ matchPagePath: () => (/* binding */ matchPagePath)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./audiences */ \"./src/audiences.ts\");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stickySlot */ \"./src/stickySlot.ts\");\n// wflow/app/wrapper/src/utils.ts\n\n\n\n\nconst SESSION_LENGTH_MS = 10 * 60 * 1000; // 10 minutes, in milliseconds\nfunction getSessionId() {\n var sessionId = localStorage.getItem('sessionId');\n var sessionIdLastRead = localStorage.getItem('sessionIdLastRead');\n const currentTime = Date.now(); /* UTC timestamp */\n if ((!sessionId) || (!sessionIdLastRead) ||\n ((currentTime - parseInt(sessionIdLastRead)) > SESSION_LENGTH_MS)) {\n sessionId = Math.random().toString(36).substring(2, 15)\n .padEnd(13, Math.random().toString(36).substring(2, 15));\n localStorage.setItem('sessionId', sessionId);\n }\n localStorage.setItem('sessionIdLastRead', currentTime.toString());\n return sessionId;\n}\nfunction getUserId() {\n var userId = localStorage.getItem('userId');\n if (!userId) {\n const userId = Math.random().toString(36).substring(2, 15)\n .padEnd(13, Math.random().toString(36).substring(2, 15));\n localStorage.setItem('userId', userId);\n return userId;\n }\n return userId;\n}\nfunction consoleDebug(message, ...args) {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.log('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n}\nfunction consoleError(message, escalate = false, ...args) {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.error('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n if (escalate) {\n throw Error(message);\n }\n}\nfunction enumFromString(enumType, value) {\n return Object.values(enumType).includes(value) ? value : undefined;\n}\nconst getPrimaryDomain = (hostname) => hostname.split('.').slice(-2).join('.');\nasync function generateHash(data, length) {\n const { h64 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const hash64Value = h64(data, BigInt(0));\n const hexHash = hash64Value.toString(16).padStart(16, '0').toUpperCase();\n return hexHash.slice(0, length);\n}\nfunction matchPagePath(currentPath, pagePaths) {\n return pagePaths.some(({ t /*pattern*/, p /*path*/ }) => {\n switch (t /*pattern*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Prefix:\n return currentPath.startsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Contains:\n return currentPath.includes(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Suffix:\n return currentPath.endsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Exact:\n return currentPath === p /*path*/;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Regex:\n try {\n const regex = new RegExp(p /*path*/);\n return regex.test(currentPath);\n }\n catch {\n console.error(`Invalid regex pattern: ${p /*path*/}`);\n return false;\n }\n default:\n return false;\n }\n });\n}\nfunction getMediaSizes(media) {\n if (Array.isArray(media.sz.a) && media.sz.a.length) {\n return media.sz.a;\n }\n switch ((0,_audiences__WEBPACK_IMPORTED_MODULE_2__.getUserDevice)()) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop:\n return Array.isArray(media.sz.d) ? media.sz.d : [];\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile:\n return Array.isArray(media.sz.m) ? media.sz.m : [];\n default:\n return [];\n }\n}\nconst getSlotDivId = (adSlot) => {\n return adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window\n ? (0,_stickySlot__WEBPACK_IMPORTED_MODULE_3__.stickySlotId)(adSlot.n /*insert*/.r /*reference*/)\n : adSlot.n /*insert*/.d /*divId*/;\n};\n\n\n//# sourceURL=webpack:///./src/utils.ts?")},"./src/wrapperTag.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ wrapperConfig: () => (/* binding */ wrapperConfig)\n/* harmony export */ });\n/* harmony import */ var _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dynamicSlot */ "./src/dynamicSlot.ts");\n// wflow/app/wrapper/src/wrapperTag.ts\n\nconst wrapperConfig = __webpack_require__(/*! ../builds/80918AC8127BA/0.0.103/config-d80918ac8127ba-v0-0-103.json */ "../builds/80918AC8127BA/0.0.103/config-d80918ac8127ba-v0-0-103.json");\nwindow.wrapperTag = {\n insertAdSlot: (refDivId, position) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertDynamicAdSlot(refDivId, position),\n deleteAdSlot: (divId) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.deleteDynamicAdSlot(divId)\n};\n\n\n//# sourceURL=webpack:///./src/wrapperTag.ts?')},"../node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ randomUUID });\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/native.js?")},"../node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/regex.js?')},"../node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/rng.js?")},"../node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/stringify.js?")},"../node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "../node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "../node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "../node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n if (rnds.length < 16) {\n throw new Error(\'Random bytes length must be >= 16\');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/v4.js?')},"../node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "../node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n\n//# sourceURL=webpack:///../node_modules/uuid/dist/esm-browser/validate.js?')},"../node_modules/xxhash-wasm/esm/xxhash-wasm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ e)\n/* harmony export */ });\nconst t=new Uint8Array([0,97,115,109,1,0,0,0,1,48,8,96,3,127,127,127,1,127,96,3,127,127,127,0,96,2,127,127,0,96,1,127,1,127,96,3,127,127,126,1,126,96,3,126,127,127,1,126,96,2,127,126,0,96,1,127,1,126,3,11,10,0,0,2,1,3,4,5,6,1,7,5,3,1,0,1,7,85,9,3,109,101,109,2,0,5,120,120,104,51,50,0,0,6,105,110,105,116,51,50,0,2,8,117,112,100,97,116,101,51,50,0,3,8,100,105,103,101,115,116,51,50,0,4,5,120,120,104,54,52,0,5,6,105,110,105,116,54,52,0,7,8,117,112,100,97,116,101,54,52,0,8,8,100,105,103,101,115,116,54,52,0,9,10,251,22,10,242,1,1,4,127,32,0,32,1,106,33,3,32,1,65,16,79,4,127,32,3,65,16,107,33,6,32,2,65,168,136,141,161,2,106,33,3,32,2,65,137,235,208,208,7,107,33,4,32,2,65,207,140,162,142,6,106,33,5,3,64,32,3,32,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,4,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,4,32,2,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,5,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,6,32,0,65,4,106,34,0,79,13,0,11,32,2,65,12,119,32,5,65,18,119,106,32,4,65,7,119,106,32,3,65,1,119,106,5,32,2,65,177,207,217,178,1,106,11,32,1,106,32,0,32,1,65,15,113,16,1,11,146,1,0,32,1,32,2,106,33,2,3,64,32,1,65,4,106,32,2,75,69,4,64,32,0,32,1,40,2,0,65,189,220,202,149,124,108,106,65,17,119,65,175,214,211,190,2,108,33,0,32,1,65,4,106,33,1,12,1,11,11,3,64,32,1,32,2,79,69,4,64,32,0,32,1,45,0,0,65,177,207,217,178,1,108,106,65,11,119,65,177,243,221,241,121,108,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,65,15,118,115,65,247,148,175,175,120,108,34,0,65,13,118,32,0,115,65,189,220,202,149,124,108,34,0,65,16,118,32,0,115,11,63,0,32,0,65,8,106,32,1,65,168,136,141,161,2,106,54,2,0,32,0,65,12,106,32,1,65,137,235,208,208,7,107,54,2,0,32,0,65,16,106,32,1,54,2,0,32,0,65,20,106,32,1,65,207,140,162,142,6,106,54,2,0,11,195,4,1,6,127,32,1,32,2,106,33,6,32,0,65,24,106,33,4,32,0,65,40,106,40,2,0,33,3,32,0,32,0,40,2,0,32,2,106,54,2,0,32,0,65,4,106,34,5,32,5,40,2,0,32,2,65,16,79,32,0,40,2,0,65,16,79,114,114,54,2,0,32,2,32,3,106,65,16,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,40,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,16,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,40,2,0,32,4,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,12,106,34,3,32,3,40,2,0,32,4,65,4,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,16,106,34,3,32,3,40,2,0,32,4,65,8,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,20,106,34,3,32,3,40,2,0,32,4,65,12,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,40,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,32,6,65,16,107,77,4,64,32,6,65,16,107,33,8,32,0,65,8,106,40,2,0,33,2,32,0,65,12,106,40,2,0,33,3,32,0,65,16,106,40,2,0,33,5,32,0,65,20,106,40,2,0,33,7,3,64,32,2,32,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,3,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,5,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,7,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,7,32,8,32,1,65,4,106,34,1,79,13,0,11,32,0,65,8,106,32,2,54,2,0,32,0,65,12,106,32,3,54,2,0,32,0,65,16,106,32,5,54,2,0,32,0,65,20,106,32,7,54,2,0,11,32,1,32,6,73,4,64,32,4,32,1,32,6,32,1,107,34,1,252,10,0,0,32,0,65,40,106,32,1,54,2,0,11,11,97,1,1,127,32,0,65,16,106,40,2,0,33,1,32,0,65,4,106,40,2,0,4,127,32,1,65,12,119,32,0,65,20,106,40,2,0,65,18,119,106,32,0,65,12,106,40,2,0,65,7,119,106,32,0,65,8,106,40,2,0,65,1,119,106,5,32,1,65,177,207,217,178,1,106,11,32,0,40,2,0,106,32,0,65,24,106,32,0,65,40,106,40,2,0,16,1,11,255,3,2,3,126,1,127,32,0,32,1,106,33,6,32,1,65,32,79,4,126,32,6,65,32,107,33,6,32,2,66,214,235,130,238,234,253,137,245,224,0,124,33,3,32,2,66,177,169,172,193,173,184,212,166,61,125,33,4,32,2,66,249,234,208,208,231,201,161,228,225,0,124,33,5,3,64,32,3,32,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,3,32,4,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,4,32,2,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,2,32,5,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,5,32,6,32,0,65,8,106,34,0,79,13,0,11,32,2,66,12,137,32,5,66,18,137,124,32,4,66,7,137,124,32,3,66,1,137,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,2,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,2,66,197,207,217,178,241,229,186,234,39,124,11,32,1,173,124,32,0,32,1,65,31,113,16,6,11,134,2,0,32,1,32,2,106,33,2,3,64,32,2,32,1,65,8,106,79,4,64,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,32,0,133,66,27,137,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,33,0,32,1,65,8,106,33,1,12,1,11,11,32,1,65,4,106,32,2,77,4,64,32,0,32,1,53,2,0,66,135,149,175,175,152,182,222,155,158,127,126,133,66,23,137,66,207,214,211,190,210,199,171,217,66,126,66,249,243,221,241,153,246,153,171,22,124,33,0,32,1,65,4,106,33,1,11,3,64,32,1,32,2,73,4,64,32,0,32,1,49,0,0,66,197,207,217,178,241,229,186,234,39,126,133,66,11,137,66,135,149,175,175,152,182,222,155,158,127,126,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,66,33,136,133,66,207,214,211,190,210,199,171,217,66,126,34,0,32,0,66,29,136,133,66,249,243,221,241,153,246,153,171,22,126,34,0,32,0,66,32,136,133,11,77,0,32,0,65,8,106,32,1,66,214,235,130,238,234,253,137,245,224,0,124,55,3,0,32,0,65,16,106,32,1,66,177,169,172,193,173,184,212,166,61,125,55,3,0,32,0,65,24,106,32,1,55,3,0,32,0,65,32,106,32,1,66,249,234,208,208,231,201,161,228,225,0,124,55,3,0,11,244,4,2,3,127,4,126,32,1,32,2,106,33,5,32,0,65,40,106,33,4,32,0,65,200,0,106,40,2,0,33,3,32,0,32,0,41,3,0,32,2,173,124,55,3,0,32,2,32,3,106,65,32,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,200,0,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,32,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,41,3,0,32,4,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,16,106,34,3,32,3,41,3,0,32,4,65,8,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,24,106,34,3,32,3,41,3,0,32,4,65,16,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,32,106,34,3,32,3,41,3,0,32,4,65,24,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,200,0,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,65,32,106,32,5,77,4,64,32,5,65,32,107,33,2,32,0,65,8,106,41,3,0,33,6,32,0,65,16,106,41,3,0,33,7,32,0,65,24,106,41,3,0,33,8,32,0,65,32,106,41,3,0,33,9,3,64,32,6,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,6,32,7,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,7,32,8,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,8,32,9,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,9,32,2,32,1,65,8,106,34,1,79,13,0,11,32,0,65,8,106,32,6,55,3,0,32,0,65,16,106,32,7,55,3,0,32,0,65,24,106,32,8,55,3,0,32,0,65,32,106,32,9,55,3,0,11,32,1,32,5,73,4,64,32,4,32,1,32,5,32,1,107,34,1,252,10,0,0,32,0,65,200,0,106,32,1,54,2,0,11,11,188,2,1,5,126,32,0,65,24,106,41,3,0,33,1,32,0,41,3,0,34,2,66,32,90,4,126,32,0,65,8,106,41,3,0,34,3,66,1,137,32,0,65,16,106,41,3,0,34,4,66,7,137,124,32,1,66,12,137,32,0,65,32,106,41,3,0,34,5,66,18,137,124,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,1,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,1,66,197,207,217,178,241,229,186,234,39,124,11,32,2,124,32,0,65,40,106,32,2,66,31,131,167,16,6,11]);async function e(){return function(t){const{exports:{mem:e,xxh32:n,xxh64:r,init32:i,update32:a,digest32:o,init64:s,update64:u,digest64:c}}=t;let h=new Uint8Array(e.buffer);function g(t,n){if(e.buffer.byteLength<t+n){const r=Math.ceil((t+n-e.buffer.byteLength)/65536);e.grow(r),h=new Uint8Array(e.buffer)}}function f(t,e,n,r,i,a){g(t);const o=new Uint8Array(t);return h.set(o),n(0,e),o.set(h.subarray(0,t)),{update(e){let n;return h.set(o),"string"==typeof e?(g(3*e.length,t),n=w.encodeInto(e,h.subarray(t)).written):(g(e.byteLength,t),h.set(e,t),n=e.byteLength),r(0,t,n),o.set(h.subarray(0,t)),this},digest:()=>(h.set(o),a(i(0)))}}function y(t){return t>>>0}const b=2n**64n-1n;function d(t){return t&b}const w=new TextEncoder,l=0,p=0n;function x(t,e=l){return g(3*t.length,0),y(n(0,w.encodeInto(t,h).written,e))}function L(t,e=p){return g(3*t.length,0),d(r(0,w.encodeInto(t,h).written,e))}return{h32:x,h32ToString:(t,e=l)=>x(t,e).toString(16).padStart(8,"0"),h32Raw:(t,e=l)=>(g(t.byteLength,0),h.set(t),y(n(0,t.byteLength,e))),create32:(t=l)=>f(48,t,i,a,o,y),h64:L,h64ToString:(t,e=p)=>L(t,e).toString(16).padStart(16,"0"),h64Raw:(t,e=p)=>(g(t.byteLength,0),h.set(t),d(r(0,t.byteLength,e))),create64:(t=p)=>f(88,t,s,u,c,d)}}((await WebAssembly.instantiate(t)).instance)}\n//# sourceMappingURL=xxhash-wasm.js.map\n\n\n//# sourceURL=webpack:///../node_modules/xxhash-wasm/esm/xxhash-wasm.js?')},"../builds/80918AC8127BA/0.0.103/config-d80918ac8127ba-v0-0-103.json":module=>{"use strict";eval('module.exports = /*#__PURE__*/JSON.parse(\'{"c":"USD","d":"80918AC8127BA","e":"app.animaadtech.localhost","f":5000,"l":{"m":"SY","p":"/api/logger/v1","t":"EV","v":10},"o":3000,"p":"hb","t":"/api/experiment/v1","v":"","as":[{"f":0,"g":"/23068547170/ca-pub-5635953502767638/23069871933/23077839999","i":"EHXAN1RME8L56","l":"EG","m":{"b":false,"f":"BN","sz":{"a":[[728,90]]}},"n":{"a":"WN","r":"TP","s":false,"z":false},"o":null,"r":{"c":50,"i":20,"t":"IV"},"kv":{},"tg":[{"b":"criteo","pm":{"networkId":123}},{"b":"sovrn","pm":{"tagid":"456"}},{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-728-90.png\\\' alt=\\\'Test Ad 728x90\\\' width=\\\'728\\\' height=\\\'90\\\'>","cpm":"0.1","width":"728","height":"90","placementId":"123456"}}]},{"f":0,"g":"/23068547170/ca-pub-5635953502767638/test_ad_unit_with_/","i":"10FM4U79WMNE0","l":"EG","m":{"b":false,"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"ST","d":"sidebar-ad-1","r":"IN"},"o":null,"r":{"c":50,"i":15,"t":"IV"},"kv":{},"tg":[{"b":"criteo","pm":{"networkId":123}},{"b":"sovrn","pm":{"tagid":"123"}},{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.05","width":"300","height":"250","placementId":"1234567"}}]}],"ly":[],"pb":[{"c":"3.00","f":"0.50","s":"0.50"}]}\');\n\n//# sourceURL=webpack:///../builds/80918AC8127BA/0.0.103/config-d80918ac8127ba-v0-0-103.json?')}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nc=void 0,__webpack_require__("./src/index.ts"),__webpack_require__("./src/wrapperTag.ts"),__webpack_require__("../builds/80918AC8127BA/0.0.103/prebid.js");var __webpack_exports__=__webpack_require__("./css/sticky.css")})();
1
+ /*! app name: app-p80918ac8127ba.js | version: 0.1.4 | build date: 2025-09-23T17:27:18.672Z */(()=>{var __webpack_modules__={"../builds/80918AC8127BA/0.1.4/prebid.js":()=>{eval('/* prebid.js v9.23.0\nUpdated: 2025-09-23\nModules: currency, testbidderBidAdapter */\nif(window.pbjs&&window.pbjs.libLoaded)try{window.pbjs.getConfig("debug")&&console.warn("Attempted to load a copy of Prebid.js that clashes with the existing \'pbjs\' instance. Load aborted.")}catch(e){}else (function(){\n(()=>{var r,t={128:r=>{\n/*\n* @license MIT\n* Fun Hooks v0.9.10\n* (c) @snapwich\n*/\nf.SYNC=1,f.ASYNC=2,f.QUEUE=4;var t="fun-hooks";var e=Object.freeze({useProxy:!0,ready:0}),n=new WeakMap,o="2,1,0"===[1].reduce(function(r,t,e){return[r,t,e]},2).toString()?Array.prototype.reduce:function(r,t){var e,n=Object(this),o=n.length>>>0,i=0;if(t)e=t;else{for(;i<o&&!(i in n);)i++;e=n[i++]}for(;i<o;)i in n&&(e=r(e,n[i],i,n)),i++;return e};function i(r,t){return Array.prototype.slice.call(r,t)}var u=Object.assign||function(r){return o.call(i(arguments,1),function(r,t){return t&&Object.keys(t).forEach(function(e){r[e]=t[e]}),r},r)};function f(r){var c,a={},l=[];function p(r,t){return"function"==typeof r?h.call(null,"sync",r,t):"string"==typeof r&&"function"==typeof t?h.apply(null,arguments):"object"==typeof r?y.apply(null,arguments):void 0}function y(r,t,e){var n=!0;void 0===t&&(t=Object.getOwnPropertyNames(r),n=!1);var o={},i=["constructor"];do{(t=t.filter(function(t){return!("function"!=typeof r[t]||-1!==i.indexOf(t)||t.match(/^_/))})).forEach(function(t){var n=t.split(":"),i=n[0],u=n[1]||"sync";if(!o[i]){var f=r[i];o[i]=r[i]=h(u,f,e?[e,i]:void 0)}}),r=Object.getPrototypeOf(r)}while(n&&r);return o}function s(r){var e=Array.isArray(r)?r:r.split(".");return o.call(e,function(n,o,i){var u=n[o],f=!1;return u||(i===e.length-1?(c||l.push(function(){f||console.warn(t+": referenced \'"+r+"\' but it was never created")}),n[o]=v(function(r){n[o]=r,f=!0})):n[o]={})},a)}function v(r){var t=[],e=[],o=function(){},i={before:function(r,e){return c.call(this,t,"before",r,e)},after:function(r,t){return c.call(this,e,"after",r,t)},getHooks:function(r){var n=t.concat(e);"object"==typeof r&&(n=n.filter(function(t){return Object.keys(r).every(function(e){return t[e]===r[e]})}));try{u(n,{remove:function(){return n.forEach(function(r){r.remove()}),this}})}catch(r){console.error("error adding `remove` to array, did you modify Array.prototype?")}return n},removeAll:function(){return this.getHooks().remove()}},f={install:function(n,i,u){this.type=n,o=u,u(t,e),r&&r(i)}};return n.set(i.after,f),i;function c(r,n,i,u){var f={hook:i,type:n,priority:u||10,remove:function(){var n=r.indexOf(f);-1!==n&&(r.splice(n,1),o(t,e))}};return r.push(f),r.sort(function(r,t){return t.priority-r.priority}),o(t,e),this}}function h(e,o,a){var p=o.after&&n.get(o.after);if(p){if(p.type!==e)throw t+": recreated hookable with different type";return o}var y,h,b=a?s(a):v(),d={get:function(r,t){return b[t]||Reflect.get.apply(Reflect,arguments)}};return c||l.push(g),r.useProxy&&"function"==typeof Proxy&&Proxy.revocable?h=new Proxy(o,d):(h=function(){return d.apply?d.apply(o,this,i(arguments)):o.apply(this,arguments)},u(h,b)),n.get(h.after).install(e,h,function(r,t){var n,o=[];r.length||t.length?(r.forEach(u),n=o.push(void 0)-1,t.forEach(u),y=function(r,t,u){var f,c=0,a="async"===e&&"function"==typeof u[u.length-1]&&u.pop();function l(r){"sync"===e?f=r:a&&a.apply(null,arguments)}function p(r){if(o[c]){var n=i(arguments);return p.bail=l,n.unshift(p),o[c++].apply(t,n)}"sync"===e?f=r:a&&a.apply(null,arguments)}return o[n]=function(){var n=i(arguments,1);"async"===e&&a&&(delete p.bail,n.push(p));var o=r.apply(t,n);"sync"===e&&p(o)},p.apply(null,u),f}):y=void 0;function u(r){o.push(r.hook)}g()}),h;function g(){!c&&("sync"!==e||r.ready&f.SYNC)&&("async"!==e||r.ready&f.ASYNC)?"sync"!==e&&r.ready&f.QUEUE?d.apply=function(){var r=arguments;l.push(function(){h.apply(r[1],r[2])})}:d.apply=function(){throw t+": hooked function not ready"}:d.apply=y}}return(r=u({},e,r)).ready?p.ready=function(){c=!0,function(r){for(var t;t=r.shift();)t()}(l)}:c=!0,p.get=s,p}r.exports=f},172:(r,t,e)=>{function n(r,t,e){t.split&&(t=t.split("."));for(var n,o,i=0,u=t.length,f=r;i<u&&"__proto__"!=(o=""+t[i++])&&"constructor"!==o&&"prototype"!==o;)f=f[o]=i===u?e:typeof(n=f[o])==typeof t?n:0*t[i]!=0||~(""+t[i]).indexOf(".")?{}:[]}e.d(t,{J:()=>n})},433:(r,t,e)=>{function n(r,t,e,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)r=r?r[t[n]]:o;return r===o?e:r}e.d(t,{A:()=>n})},705:(r,t,e)=>{function n(r){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},n(r)}function o(r){var t=function(r,t){if("object"!=n(r)||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var o=e.call(r,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(r)}(r,"string");return"symbol"==n(t)?t:t+""}function i(r,t,e){return(t=o(t))in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}e.d(t,{A:()=>i})},751:(r,t,e)=>{function n(r){var t,e,o;if(Array.isArray(r)){for(e=Array(t=r.length);t--;)e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}if("[object Object]"===Object.prototype.toString.call(r)){for(t in e={},r)"__proto__"===t?Object.defineProperty(e,t,{value:n(r[t]),configurable:!0,enumerable:!0,writable:!0}):e[t]=(o=r[t])&&"object"==typeof o?n(o):o;return e}return r}e.d(t,{Q:()=>n})}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.m=t,r=[],n.O=(t,e,o,i)=>{if(!e){var u=1/0;for(l=0;l<r.length;l++){e=r[l][0],o=r[l][1],i=r[l][2];for(var f=!0,c=0;c<e.length;c++)(!1&i||u>=i)&&Object.keys(n.O).every(r=>n.O[r](e[c]))?e.splice(c--,1):(f=!1,i<u&&(u=i));if(f){r.splice(l--,1);var a=o();void 0!==a&&(t=a)}}return t}i=i||0;for(var l=r.length;l>0&&r[l-1][2]>i;l--)r[l]=r[l-1];r[l]=[e,o,i]},n.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return n.d(t,{a:t}),t},n.d=(r,t)=>{for(var e in t)n.o(t,e)&&!n.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:t[e]})},n.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t),(()=>{var r={673:0};n.O.j=t=>0===r[t];var t=(t,e)=>{var o,i,u=e[0],f=e[1],c=e[2],a=0;if(u.some(t=>0!==r[t])){for(o in f)n.o(f,o)&&(n.m[o]=f[o]);if(c)var l=c(n)}for(t&&t(e);a<u.length;a++)i=u[a],n.o(r,i)&&r[i]&&r[i][0](),r[i]=0;return n.O(l)},e=self.pbjsChunk=self.pbjsChunk||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))})();var o=n.O(void 0,[802,85],()=>n(261));o=n.O(o)})();\n(self.pbjsChunk=self.pbjsChunk||[]).push([[802],{0:(e,t,n)=>{n.d(t,{S3:()=>r,pS:()=>u});const i=["request","imp","bidResponse","response"],[r,o,s,a]=i,[c,d]=["default","pbs"],l=new Set(i);const{registerOrtbProcessor:u,getProcessors:f}=function(){const e={};return{registerOrtbProcessor(t){let{type:n,name:r,fn:o,priority:s=0,dialects:a=[c]}=t;if(!l.has(n))throw new Error("ORTB processor type must be one of: ".concat(i.join(", ")));a.forEach(t=>{e.hasOwnProperty(t)||(e[t]={}),e[t].hasOwnProperty(n)||(e[t][n]={}),e[t][n][r]={priority:s,fn:o}})},getProcessors:t=>e[t]||{}}}()},23:(e,t,n)=>{n.d(t,{AU:()=>m,Ic:()=>y,kQ:()=>v,on:()=>h});var i=n(69),r=n(969),o=n(853),s=n(272);const a="eventHistoryTTL";let c=null;const d=(0,o.H)({monotonic:!0,ttl:()=>c});s.$W.getConfig(a,e=>{var t;const n=c;e=null===(t=e)||void 0===t?void 0:t[a],c="number"==typeof e?1e3*e:null,n!==c&&d.refresh()});let l=Array.prototype.slice,u=Array.prototype.push,f=Object.values(r.qY);const g=r.cA,p=function(){let e={},t={};function n(e){return f.includes(e)}return t.has=n,t.on=function(t,r,o){if(n(t)){let n=e[t]||{que:[]};o?(n[o]=n[o]||{que:[]},n[o].que.push(r)):n.que.push(r),e[t]=n}else i.vV("Wrong event name : "+t+" Valid event names :"+f)},t.emit=function(t){!function(t,n){i.OG("Emitting event for: "+t);let r=n[0]||{},o=r[g[t]],s=e[t]||{que:[]};var a=Object.keys(s);let c=[];d.add({eventType:t,args:r,id:o,elapsedTime:i.V()}),o&&a.includes(o)&&u.apply(c,s[o].que),u.apply(c,s.que),(c||[]).forEach(function(e){if(e)try{e.apply(null,n)}catch(e){i.vV("Error executing handler:","events.js",e,t)}})}(t,l.call(arguments,1))},t.off=function(t,n,r){let o=e[t];i.Im(o)||i.Im(o.que)&&i.Im(o[r])||r&&(i.Im(o[r])||i.Im(o[r].que))||(r?(o[r].que||[]).forEach(function(e){let t=o[r].que;e===n&&t.splice(t.indexOf(e),1)}):(o.que||[]).forEach(function(e){let t=o.que;e===n&&t.splice(t.indexOf(e),1)}),e[t]=o)},t.get=function(){return e},t.addEvents=function(e){f=f.concat(e)},t.getEvents=function(){return d.toArray().map(e=>Object.assign({},e))},t}();i.cD(p.emit.bind(p));const{on:h,off:m,get:b,getEvents:v,emit:y,addEvents:E,has:A}=p},31:(e,t,n)=>{n.d(t,{H:()=>a,k:()=>s});var i=n(555),r=n(69),o=n(595);const s=(0,n(214).A_)("sync",function(e){return o.G}),a=function(){const e={};return function(t){const n=s(t);return e.hasOwnProperty(n)||(e[n]=new i.k(e=>{const t=(0,r.CA)();t.srcdoc="<script>".concat(n,"<\\/script>"),t.onload=()=>e(t.contentWindow.render),document.body.appendChild(t)})),e[n]}}()},44:(e,t,n)=>{n.d(t,{RD:()=>f,g4:()=>u});var i=n(272),r=n(69);const o={fetch:window.fetch.bind(window),makeRequest:(e,t)=>new Request(e,t),timeout(e,t){const n=new AbortController;let i=setTimeout(()=>{n.abort(),(0,r.vV)("Request timeout after ".concat(e,"ms"),t),i=null},e);return{signal:n.signal,done(){i&&clearTimeout(i)}}}},s="GET",a="POST",c="Content-Type";function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t,n)=>{var r,s;let a;null==e||null!=(null===(r=n)||void 0===r?void 0:r.signal)||i.$W.getConfig("disableAjaxTimeout")||(a=o.timeout(e,t),n=Object.assign({signal:a.signal},n));let c=o.fetch(t,n);return null!=(null===(s=a)||void 0===s?void 0:s.done)&&(c=c.finally(a.done)),c};return null==t&&null==n||(r=(e=>function(i,r){const o=new URL(null==(null==i?void 0:i.url)?i:i.url,document.location).origin;let s=e(i,r);return t&&t(o),n&&(s=s.finally(()=>n(o))),s})(r)),r}function l(e,t){let{status:n,statusText:i="",headers:o,url:s}=e,a=0;function d(e){if(0===a)try{var n;a=(new DOMParser).parseFromString(t,null==o||null===(n=o.get(c))||void 0===n||null===(n=n.split(";"))||void 0===n?void 0:n[0])}catch(t){a=null,e&&e(t)}return a}return{readyState:XMLHttpRequest.DONE,status:n,statusText:i,responseText:t,response:t,responseType:"",responseURL:s,get responseXML(){return d(r.vV)},getResponseHeader:e=>null!=o&&o.has(e)?o.get(e):null,toJSON(){return Object.assign({responseXML:d()},this)},timedOut:!1}}function u(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3,{request:t,done:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=d(e,{request:t,done:n});return function(e,t,n){!function(e,t){const{success:n,error:i}="object"==typeof t&&null!=t?t:{success:"function"==typeof t?t:()=>null,error:(e,t)=>(0,r.vV)("Network error",e,t)};e.then(e=>e.text().then(t=>[e,t])).then(e=>{let[t,r]=e;const o=l(t,r);t.ok||304===t.status?n(r,o):i(t.statusText,o)},e=>i("",Object.assign(l({status:0},""),{reason:e,timedOut:"AbortError"===(null==e?void 0:e.name)})))}(i(function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n.method||(t?a:s);if(i===s&&t){const i=(0,r.Dl)(e,n);Object.assign(i.search,t),e=(0,r.c$)(i)}const d=new Headers(n.customHeaders);d.set(c,n.contentType||"text/plain");const l={method:i,headers:d};return i!==s&&t&&(l.body=t),n.withCredentials&&(l.credentials="include"),isSecureContext&&["browsingTopics","adAuctionHeaders"].forEach(e=>{n[e]&&(l[e]=!0)}),n.keepalive&&(l.keepalive=!0),o.makeRequest(e,l)}(e,n,arguments.length>3&&void 0!==arguments[3]?arguments[3]:{})),t)}}const f=u();d()},46:(e,t,n)=>{n.d(t,{Ay:()=>re,pX:()=>Z});var i=n(705),r=n(69),o=n(449),s=n(115),a=n(44),c=n(272),d=n(214),l=n(901);let u={};function f(e,t,n){let i=function(e,t){let n=u[e]=u[e]||{bidders:{}};return t?n.bidders[t]=n.bidders[t]||{}:n}(e,n);return i[t]=(i[t]||0)+1,i[t]}function g(e){return f(e,"auctionsCounter")}function p(e){var t;return(null===(t=u)||void 0===t||null===(t=t[e])||void 0===t?void 0:t.requestsCounter)||0}function h(e,t){var n;return(null===(n=u)||void 0===n||null===(n=n[e])||void 0===n||null===(n=n.bidders)||void 0===n||null===(n=n[t])||void 0===n?void 0:n.requestsCounter)||0}function m(e,t){var n;return(null===(n=u)||void 0===n||null===(n=n[e])||void 0===n||null===(n=n.bidders)||void 0===n||null===(n=n[t])||void 0===n?void 0:n.winsCounter)||0}function b(e){var t;return(null===(t=u)||void 0===t||null===(t=t[e])||void 0===t?void 0:t.auctionsCounter)||0}var v=n(934),y=n(916),E=n(23),A=n(969),w=n(894),I=n(881),T=n(569),O=n(139),C=n(811),B=n(604),k=n(433);const S=["data","ext.data","yob","gender","keywords","kwarray","id","buyeruid","customdata"].map(e=>"user.".concat(e)).concat("device.ext.cdep"),R=["user.eids","user.ext.eids"],j=["user.geo.lat","user.geo.lon","device.geo.lat","device.geo.lon"],D=["device.ip"],U=["device.ipv6"];function _(e){return Object.assign({get(){},run(e,t,n,i,r){const o=n&&n[i];if(function(e){return null!=e&&("object"!=typeof e||Object.keys(e).length>0)}(o)&&r()){const e=this.get(o);void 0===e?delete n[i]:n[i]=e}}},e)}function q(e){return e.forEach(e=>{e.paths=e.paths.map(e=>{const t=e.split("."),n=t.pop();return[t.length>0?t.join("."):null,n]})}),function(t,n){const i=[];for(var r=arguments.length,o=new Array(r>2?r-2:0),s=2;s<r;s++)o[s-2]=arguments[s];const a=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return function(t){return e.hasOwnProperty(t.name)||(e[t.name]=!!t.applies(...n)),e[t.name]}}(t,...o);return e.forEach(e=>{if(!1!==t[e.name])for(const[r,o]of e.paths){const s=null==r?n:(0,k.A)(n,r);if(i.push(e.run(n,r,s,o,a.bind(null,e))),!1===t[e.name])return}}),i.filter(e=>null!=e)}}function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.io;return function(n){return!t(e,n)}}function N(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O.io;return[{name:C.DL,paths:S,applies:x(C.DL,e)},{name:C.hq,paths:R,applies:x(C.hq,e)},{name:C.hE,paths:j,applies:x(C.hE,e),get:e=>Math.round(100*(e+Number.EPSILON))/100},{name:C.hE,paths:D,applies:x(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(".").map(Number);if(4!=t.length)return null;let n=[];for(let e=0;e<4;e++){let t=Math.max(0,Math.min(8,24-8*e));n.push(255<<8-t&255)}return t.map((e,t)=>e&n[t]).join(".")}(e)},{name:C.hE,paths:U,applies:x(C.hE,e),get:e=>function(e){if(!e)return null;let t=e.split(":").map(e=>parseInt(e,16));for(t=t.map(e=>isNaN(e)?0:e);t.length<8;)t.push(0);if(8!=t.length)return null;let n=[];for(let e=0;e<8;e++){let t=Math.max(0,Math.min(16,64-16*e));n.push(65535<<16-t&65535)}return t.map((e,t)=>e&n[t]).map(e=>e.toString(16)).join(":")}(e)},{name:C.VJ,paths:["source.tid"],applies:x(C.VJ,e)}].map(_)}const P=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O.io;const t=q(N(e)),n=q(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O.io;return[{name:C.hq,paths:["userId","userIdAsEids"],applies:x(C.hq,e)},{name:C.VJ,paths:["ortb2Imp.ext.tid"],applies:x(C.VJ,e)}].map(_)}(e));return function(e){const i={};return{ortb2:n=>(t(i,n,e),n),bidRequest:t=>(n(i,t,e),t)}}}();function W(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,O.qB)(C.VJ,"enableTIDs config",()=>{if(!c.$W.getConfig("enableTIDs"))return{allow:!1,reason:"TIDs are disabled"}});const M="pbsBidAdapter",G={CLIENT:"client",SERVER:"server"},F={isAllowed:O.io,redact:P};let H={},L=H.bidderRegistry={},$=H.aliasRegistry={},z=[];c.$W.getConfig("s2sConfig",e=>{e&&e.s2sConfig&&(z=(0,r.cy)(e.s2sConfig)?e.s2sConfig:[e.s2sConfig])});var J={};const K=(0,B.ZI)(e=>H.resolveAlias(e));const Q=(0,d.A_)("sync",function(e){let{bidderCode:t,auctionId:n,bidderRequestId:i,adUnits:o,src:s,metrics:a}=e;return o.reduce((e,o)=>{const c=o.bids.filter(e=>e.bidder===t);return null==t&&0===c.length&&null!=o.s2sBid&&c.push({bidder:null}),e.push(c.reduce((e,c)=>{var d,l;const u=null==(c=Object.assign({},c,{ortb2Imp:(0,r.D9)({},o.ortb2Imp,c.ortb2Imp)},(0,r.SH)(o,["nativeParams","nativeOrtbRequest","mediaType","renderer"]))).mediaTypes?o.mediaTypes:c.mediaTypes;return(0,r.wD)(u)?c=Object.assign({},c,{mediaTypes:u}):(0,r.vV)("mediaTypes is not correctly configured for adunit ".concat(o.code)),"client"===s&&function(e,t){f(e,"requestsCounter",t)}(o.code,t),e.push(Object.assign({},c,{adUnitCode:o.code,transactionId:o.transactionId,adUnitId:o.adUnitId,sizes:(null==u||null===(d=u.banner)||void 0===d?void 0:d.sizes)||(null==u||null===(l=u.video)||void 0===l?void 0:l.playerSize)||[],bidId:c.bid_id||(0,r.s0)(),bidderRequestId:i,auctionId:n,src:s,metrics:a,auctionsCount:b(o.code),bidRequestsCount:p(o.code),bidderRequestsCount:h(o.code,c.bidder),bidderWinsCount:m(o.code,c.bidder),deferBilling:!!o.deferBilling})),e},[])),e},[]).reduce(r.Bq,[]).filter(e=>""!==e)},"getBids");const Y=(0,d.A_)("sync",function(e,t){let{getS2SBidders:n=Z}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return e;{const i=n(t);return e.filter(e=>i.has(e.bidder))}},"filterBidsForAdUnit");const X=(0,d.A_)("sync",(e,t)=>e,"setupAdUnitMediaTypes");function Z(e){(0,r.cy)(e)||(e=[e]);const t=new Set([null]);return e.filter(e=>e&&e.enabled).flatMap(e=>e.bidders).forEach(e=>t.add(e)),t}const ee=(0,d.A_)("sync",function(e,t){let{getS2SBidders:n=Z}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i=n(t);return(0,r.ZA)(e).reduce((e,t)=>(e[i.has(t)?G.SERVER:G.CLIENT].push(t),e),{[G.CLIENT]:[],[G.SERVER]:[]})},"partitionBidders");function te(e,t){const n=L[e],i=(null==n?void 0:n.getSpec)&&n.getSpec();if(i&&i[t]&&"function"==typeof i[t])return[i,i[t]]}function ne(e,t,n,i){try{(0,r.fH)("Invoking ".concat(e,".").concat(t));for(var o=arguments.length,s=new Array(o>4?o-4:0),a=4;a<o;a++)s[a-4]=arguments[a];c.$W.runWithBidder(e,i.bind(n,...s))}catch(n){(0,r.JE)("Error calling ".concat(t," of ").concat(e))}}function ie(e,t,n){if((null==n?void 0:n.source)!==A.RW.SRC){const i=te(e,t);null!=i&&ne(e,t,...i,n)}}H.makeBidRequests=(0,d.A_)("sync",function(e,t,n,i,s){let a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},d=arguments.length>6?arguments[6]:void 0;d=(0,w.BO)(d),E.Ic(A.qY.BEFORE_REQUEST_BIDS,e),(0,o.nk)(e),e.map(e=>e.code).filter(r.hj).forEach(g),e.forEach(e=>{(0,r.Qd)(e.mediaTypes)||(e.mediaTypes={}),e.bids=e.bids.filter(e=>!e.bidder||F.isAllowed(C.uc,K(T.tW,e.bidder))),f(e.code,"requestsCounter")}),e=X(e,s);let{[G.CLIENT]:u,[G.SERVER]:p}=ee(e,z);c.$W.getConfig("bidderSequence")===c.Ov&&(u=(0,r.k4)(u));const h=(0,v.EN)();let m=[];const b=a.global||{},I=a.bidder||{};function O(e,t){const i=F.redact(null!=t?t:K(T.tW,e.bidderCode)),o=Object.freeze(i.ortb2((0,r.D9)({source:{tid:n}},b,I[e.bidderCode])));return e.ortb2=o,e.bids=e.bids.map(e=>(e.ortb2=o,i.bidRequest(e))),e}z.forEach(i=>{const o=function(e){return K(T.tp,M,{[B.XG]:e.configName})}(i);if(i&&i.enabled&&F.isAllowed(C.uc,o)){let{adUnits:s,hasModuleBids:a}=function(e,t){let n=(0,r.Go)(e),i=!1;return n.forEach(e=>{const n=e.bids.filter(e=>{var n;return e.module===M&&(null===(n=e.params)||void 0===n?void 0:n.configName)===t.configName});1===n.length?(e.s2sBid=n[0],i=!0,e.ortb2Imp=(0,r.D9)({},e.s2sBid.ortb2Imp,e.ortb2Imp)):n.length>1&&(0,r.JE)(\'Multiple "module" bids for the same s2s configuration; all will be ignored\',n),e.bids=Y(e.bids,t).map(e=>(e.bid_id=(0,r.s0)(),e))}),n=n.filter(e=>0!==e.bids.length||null!=e.s2sBid),{adUnits:n,hasModuleBids:i}}(e,i),c=(0,r.lk)();(0===p.length&&a?[null]:p).forEach(e=>{const a=(0,r.s0)(),l=d.fork(),u=O({bidderCode:e,auctionId:n,bidderRequestId:a,uniquePbsTid:c,bids:Q({bidderCode:e,auctionId:n,bidderRequestId:a,adUnits:(0,r.Go)(s),src:A.RW.SRC,metrics:l}),auctionStart:t,timeout:i.timeout,src:A.RW.SRC,refererInfo:h,metrics:l},o);0!==u.bids.length&&m.push(u)}),s.forEach(e=>{let t=e.bids.filter(e=>(0,l.I6)(m,t=>(0,l.I6)(t.bids,t=>t.bidId===e.bid_id)));e.bids=t}),m.forEach(e=>{void 0===e.adUnitsS2SCopy&&(e.adUnitsS2SCopy=s.filter(e=>e.bids.length>0||null!=e.s2sBid))})}});let k=function(e){let t=(0,r.Go)(e);return t.forEach(e=>{e.bids=Y(e.bids,null)}),t=t.filter(e=>0!==e.bids.length),t}(e);return u.forEach(e=>{const o=(0,r.s0)(),a=d.fork(),c=O({bidderCode:e,auctionId:n,bidderRequestId:o,bids:Q({bidderCode:e,auctionId:n,bidderRequestId:o,adUnits:(0,r.Go)(k),labels:s,src:"client",metrics:a}),auctionStart:t,timeout:i,refererInfo:h,metrics:a}),l=L[e];l||(0,r.vV)("Trying to make a request for bidder that does not exist: ".concat(e)),l&&c.bids&&0!==c.bids.length&&m.push(c)}),m.forEach(e=>{y.mW.getConsentData()&&(e.gdprConsent=y.mW.getConsentData()),y.t6.getConsentData()&&(e.uspConsent=y.t6.getConsentData()),y.ad.getConsentData()&&(e.gppConsent=y.ad.getConsentData())}),m},"makeBidRequests"),H.callBids=function(e,t,n,i,o,s,d){let l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{};if(!t.length)return void(0,r.JE)("callBids executed with no bidRequests. Were they filtered by labels or sizing?");let[u,f]=t.reduce((e,t)=>(e[Number(void 0!==t.src&&t.src===A.RW.SRC)].push(t),e),[[],[]]);var g=[];f.forEach(e=>{for(var t=-1,n=0;n<g.length;++n)if(e.uniquePbsTid===g[n].uniquePbsTid){t=n;break}t<=-1&&g.push(e)});let p=0;z.forEach(e=>{if(e&&g[p]&&Z(e).has(g[p].bidderCode)){const t=(0,a.g4)(s,o?{request:o.request.bind(null,"s2s"),done:o.done}:void 0);let c=e.bidders;const u=L[e.adapter];let h=g[p].uniquePbsTid,m=g[p].adUnitsS2SCopy,b=f.filter(e=>e.uniquePbsTid===h);if(u){let o={ad_units:m,s2sConfig:e,ortb2Fragments:l,requestBidsTimeout:s};if(o.ad_units.length){let e=b.map(e=>(e.start=(0,r.vE)(),function(t){t||d(e.bidderRequestId),i.apply(e,arguments)}));const s=(0,r.ZA)(o.ad_units).filter(e=>c.includes(e));(0,r.OG)("CALLING S2S HEADER BIDDERS ==== ".concat(s.length>0?s.join(", "):\'No bidder specified, using "ortb2Imp" definition(s) only\')),b.forEach(e=>{E.Ic(A.qY.BID_REQUESTED,V(V({},e),{},{tid:e.auctionId}))}),u.callBids(o,f,n,t=>e.forEach(e=>e(t)),t)}}else(0,r.vV)("missing "+e.adapter);p++}}),u.forEach(e=>{e.start=(0,r.vE)();const t=L[e.bidderCode];c.$W.runWithBidder(e.bidderCode,()=>{(0,r.OG)("CALLING BIDDER"),E.Ic(A.qY.BID_REQUESTED,e)});let l=(0,a.g4)(s,o?{request:o.request.bind(null,e.bidderCode),done:o.done}:void 0);const u=i.bind(e);try{c.$W.runWithBidder(e.bidderCode,t.callBids.bind(t,e,n,u,l,()=>d(e.bidderRequestId),c.$W.callbackWithBidder(e.bidderCode)))}catch(t){(0,r.vV)("".concat(e.bidderCode," Bid Adapter emitted an uncaught error when parsing their bidRequest"),{e:t,bidRequest:e}),u()}})},H.videoAdapters=[],H.registerBidAdapter=function(e,t){let{supportedMediaTypes:n=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var i;e&&t?"function"==typeof e.callBids?(L[t]=e,y.o2.register(T.tW,t,null===(i=e.getSpec)||void 0===i?void 0:i.call(e).gvlid),(0,l.mK)(n,"video")&&H.videoAdapters.push(t),(0,l.mK)(n,"native")&&o.mT.push(t)):(0,r.vV)("Bidder adaptor error for bidder code: "+t+"bidder must implement a callBids() function"):(0,r.vV)("bidAdapter or bidderCode not specified")},H.aliasBidAdapter=function(e,t,n){if(void 0===L[t]){let i=L[e];if(void 0===i){const n=[];z.forEach(i=>{if(i.bidders&&i.bidders.length){const r=i&&i.bidders;i&&(0,l.mK)(r,t)?$[t]=e:n.push(e)}}),n.forEach(e=>{(0,r.vV)(\'bidderCode "\'+e+\'" is not an existing bidder.\',"adapterManager.aliasBidAdapter")})}else try{let a,c=function(e){let t=[];return(0,l.mK)(H.videoAdapters,e)&&t.push("video"),(0,l.mK)(o.mT,e)&&t.push("native"),t}(e);if(i.constructor.prototype!=Object.prototype)a=new i.constructor,a.setBidderCode(t);else{const{useBaseGvlid:o=!1}=n||{};let c=i.getSpec();const d=o?c.gvlid:null==n?void 0:n.gvlid;null==d&&null!=c.gvlid&&(0,r.JE)("Alias \'".concat(t,"\' will NOT re-use the GVL ID of the original adapter (\'").concat(c.code,"\', gvlid: ").concat(c.gvlid,"). Functionality that requires TCF consent may not work as expected."));let l=n&&n.skipPbsAliasing;a=(0,s.xb)(Object.assign({},c,{code:t,gvlid:d,skipPbsAliasing:l})),$[t]=e}H.registerBidAdapter(a,t,{supportedMediaTypes:c})}catch(t){(0,r.vV)(e+" bidder does not currently support aliasing.","adapterManager.aliasBidAdapter")}}else(0,r.OG)(\'alias name "\'+t+\'" has been already specified.\')},H.resolveAlias=function(e){let t,n=e;for(;$[n]&&(!t||!t.has(n));)n=$[n],(t=t||new Set).add(n);return n},H.registerAnalyticsAdapter=function(e){let{adapter:t,code:n,gvlid:i}=e;t&&n?"function"==typeof t.enableAnalytics?(t.code=n,J[n]={adapter:t,gvlid:i},y.o2.register(T.Tn,n,i)):(0,r.vV)(\'Prebid Error: Analytics adaptor error for analytics "\'.concat(n,\'"\\n analytics adapter must implement an enableAnalytics() function\')):(0,r.vV)("Prebid Error: analyticsAdapter or analyticsCode not specified")},H.enableAnalytics=function(e){(0,r.cy)(e)||(e=[e]),e.forEach(e=>{const t=J[e.provider];t&&t.adapter?F.isAllowed(C.mo,K(T.Tn,e.provider,{[B.TQ]:e}))&&t.adapter.enableAnalytics(e):(0,r.vV)("Prebid Error: no analytics adapter found in registry for \'".concat(e.provider,"\'."))})},H.getBidAdapter=function(e){return L[e]},H.getAnalyticsAdapter=function(e){return J[e]},H.callTimedOutBidders=function(e,t,n){t=t.map(t=>(t.params=(0,r.SB)(e,t.adUnitCode,t.bidder),t.timeout=n,t)),t=(0,r.$z)(t,"bidder"),Object.keys(t).forEach(e=>{ie(e,"onTimeout",t[e])})},H.callBidWonBidder=function(e,t,n){var i,o;t.params=(0,r.SB)(n,t.adUnitCode,t.bidder),i=t.adUnitCode,o=t.bidder,f(i,"winsCounter",o),ie(e,"onBidWon",t)},H.triggerBilling=(()=>{const e=new WeakSet;return t=>{e.has(t)||(e.add(t),t.source===A.RW.SRC&&t.burl&&r.mM.triggerPixel(t.burl),ie(t.bidder,"onBidBillable",t))}})(),H.callSetTargetingBidder=function(e,t){ie(e,"onSetTargeting",t)},H.callBidViewableBidder=function(e,t){ie(e,"onBidViewable",t)},H.callBidderError=function(e,t,n){ie(e,"onBidderError",{error:t,bidderRequest:n})},H.callAdRenderSucceededBidder=function(e,t){ie(e,"onAdRenderSucceeded",t)},H.callDataDeletionRequest=(0,d.A_)("sync",function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];const i="onDataDeletionRequest";Object.keys(L).filter(e=>!$.hasOwnProperty(e)).forEach(e=>{const n=te(e,i);if(null!=n){const r=I.n.getBidsRequested().filter(t=>function(e){const t=new Set;for(;$.hasOwnProperty(e)&&!t.has(e);)t.add(e),e=$[e];return e}(t.bidderCode)===e);ne(e,i,...n,r,...t)}}),Object.entries(J).forEach(e=>{var n;let[o,s]=e;const a=null==s||null===(n=s.adapter)||void 0===n?void 0:n[i];if("function"==typeof a)try{a.apply(s.adapter,t)}catch(e){(0,r.vV)("error calling ".concat(i," of ").concat(o),e)}})});const re=H},69:(e,t,n)=>{n.d(t,{$D:()=>R,$z:()=>Ie,Bg:()=>Me,Bj:()=>Ve,Bq:()=>ce,CA:()=>L,D9:()=>Pe,Dl:()=>qe,El:()=>Ge,Et:()=>Y,Ez:()=>$,Fq:()=>je,GE:()=>Ae,Go:()=>pe,II:()=>le,Im:()=>ee,JE:()=>W,Lm:()=>Z,N9:()=>Ee,O8:()=>K,OG:()=>N,PB:()=>We,Q0:()=>fe,Qd:()=>X,SB:()=>Ce,SG:()=>se,SH:()=>Te,U6:()=>we,Up:()=>De,Uu:()=>Ue,V:()=>ye,Vt:()=>me,ZA:()=>de,_s:()=>ne,al:()=>he,bL:()=>S,bz:()=>Re,c$:()=>xe,cD:()=>w,cy:()=>Q,fH:()=>P,fp:()=>J,gM:()=>be,h0:()=>M,hj:()=>ae,hw:()=>H,iC:()=>Se,k4:()=>ge,kK:()=>j,l4:()=>q,l9:()=>Be,lk:()=>k,mM:()=>T,mb:()=>_,ro:()=>oe,s0:()=>B,t1:()=>ue,vE:()=>ve,vV:()=>V,wD:()=>Oe,xQ:()=>te,z$:()=>re});var i=n(272),r=n(751),o=n(901),s=n(969),a=n(555),c=n(873),d="String",l="Function",u="Number",f="Object",g="Boolean",p=Object.prototype.toString;let h,m=Boolean(window.console),b=Boolean(m&&window.console.log),v=Boolean(m&&window.console.info),y=Boolean(m&&window.console.warn),E=Boolean(m&&window.console.error);const A=(0,c.m)();function w(e){h=e}function I(){null!=h&&h(...arguments)}const T={checkCookieSupport:Ae,createTrackPixelIframeHtml:function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(!e)return"";t&&(e=encodeURI(e));n&&(n=\'sandbox="\'.concat(n,\'"\'));return"<iframe ".concat(n,\' id="\').concat(B(),\'"\\n frameborder="0"\\n allowtransparency="true"\\n marginheight="0" marginwidth="0"\\n width="0" hspace="0" vspace="0" height="0"\\n style="height:0px;width:0px;display:none;"\\n scrolling="no"\\n src="\').concat(e,\'">\\n </iframe>\')},getWindowSelf:q,getWindowTop:_,canAccessWindowTop:function(){try{if(T.getWindowTop().location.href)return!0}catch(e){return!1}},getWindowLocation:x,insertUserSyncIframe:se,insertElement:ne,isFn:J,triggerPixel:re,logError:V,logWarn:W,logMessage:N,logInfo:P,parseQS:_e,formatQS:function(e){return Object.keys(e).map(t=>Array.isArray(e[t])?e[t].map(e=>"".concat(t,"[]=").concat(e)).join("&"):"".concat(t,"=").concat(e[t])).join("&")},deepEqual:Ne};var O,C=(O=0,function(){return++O});function B(){return C()+Math.random().toString(16).substr(2)}function k(e){return e?(e^(window&&window.crypto&&window.crypto.getRandomValues?crypto.getRandomValues(new Uint8Array(1))[0]%16:16*Math.random())>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,k)}function S(e){let t="";for(var n in e)e.hasOwnProperty(n)&&(t+=n+"="+encodeURIComponent(e[n])+"&");return t=t.replace(/&$/,""),t}function R(e){return e&&Object.getOwnPropertyNames(e).length>0?Object.keys(e).map(t=>"".concat(t,"=").concat(encodeURIComponent(e[t]))).join("&"):""}function j(e){return(t=e,"string"==typeof t?t.split(/\\s*,\\s*/).map(e=>e.match(/^(\\d+)x(\\d+)$/i)).filter(e=>e).map(e=>{let[t,n,i]=e;return[parseInt(n,10),parseInt(i,10)]}):Array.isArray(t)?U(t)?[t]:t.filter(U):[]).map(D);var t}function D(e){return e[0]+"x"+e[1]}function U(e){return Q(e)&&2===e.length&&!isNaN(e[0])&&!isNaN(e[1])}function _(){return window.top}function q(){return window.self}function x(){return window.location}function N(){F()&&b&&console.log.apply(console,G(arguments,"MESSAGE:"))}function P(){F()&&v&&console.info.apply(console,G(arguments,"INFO:"))}function W(){F()&&y&&console.warn.apply(console,G(arguments,"WARNING:")),I(s.qY.AUCTION_DEBUG,{type:"WARNING",arguments})}function V(){F()&&E&&console.error.apply(console,G(arguments,"ERROR:")),I(s.qY.AUCTION_DEBUG,{type:"ERROR",arguments})}function M(e){function t(t){return function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];t(e,...i)}}return{logError:t(V),logWarn:t(W),logMessage:t(N),logInfo:t(P)}}function G(e,t){e=[].slice.call(e);let n=i.$W.getCurrentBidder();return t&&e.unshift(t),n&&e.unshift(r("#aaa")),e.unshift(r("#3b88c3")),e.unshift("%cPrebid"+(n?"%c".concat(n):"")),e;function r(e){return"display: inline-block; color: #fff; background: ".concat(e,"; padding: 1px 4px; border-radius: 3px;")}}function F(){return!!i.$W.getConfig("debug")}const H=(()=>{const e={border:"0px",hspace:"0",vspace:"0",marginWidth:"0",marginHeight:"0",scrolling:"no",frameBorder:"0",allowtransparency:"true"};return function(t,n){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=t.createElement("iframe");return Object.assign(r,Object.assign({},e,n)),Object.assign(r.style,i),r}})();function L(){return H(document,{id:B(),width:0,height:0,src:"about:blank"},{display:"none",height:"0px",width:"0px",border:"0px"})}function $(e){return _e(x().search)[e]||""}function z(e,t){return p.call(e)==="[object "+t+"]"}function J(e){return z(e,l)}function K(e){return z(e,d)}const Q=Array.isArray.bind(Array);function Y(e){return z(e,u)}function X(e){return z(e,f)}function Z(e){return z(e,g)}function ee(e){return!e||(Q(e)||K(e)?!(e.length>0):Object.keys(e).length<=0)}function te(e){return K(e)&&(!e||0===e.length)}function ne(e,t,n,i){let r;t=t||document,r=n?t.getElementsByTagName(n):t.getElementsByTagName("head");try{if(r=r.length?r:t.getElementsByTagName("body"),r.length){r=r[0];let t=i?null:r.firstChild;return r.insertBefore(e,t)}}catch(e){}}function ie(e,t){let n=null;return new a.k(i=>{const r=function(){e.removeEventListener("load",r),e.removeEventListener("error",r),null!=n&&window.clearTimeout(n),i()};e.addEventListener("load",r),e.addEventListener("error",r),null!=t&&(n=window.setTimeout(r,t))})}function re(e,t,n){const i=new Image;t&&T.isFn(t)&&ie(i,n).then(t),i.src=e}function oe(e){if(!e)return;const t=L();var n;T.insertElement(t,document,"body"),(n=t.contentWindow.document).open(),n.write(e),n.close()}function se(e,t,n){let i=T.createTrackPixelIframeHtml(e,!1,"allow-scripts allow-same-origin"),r=document.createElement("div");r.innerHTML=i;let o=r.firstChild;t&&T.isFn(t)&&ie(o,n).then(t),T.insertElement(o,document,"html",!0)}function ae(e,t,n){return n.indexOf(e)===t}function ce(e,t){return e.concat(t)}function de(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.adUnits).map(e=>e.bids.map(e=>e.bidder).reduce(ce,[])).reduce(ce,[]).filter(e=>void 0!==e).filter(ae)}function le(){if(window.googletag&&J(window.googletag.pubads)&&J(window.googletag.pubads().getSlots))return!0}function ue(){if(window.apntag&&J(window.apntag.getTag))return!0}const fe=(e,t)=>t.cpm-e.cpm;function ge(e){let t=e.length;for(;t>0;){let n=Math.floor(Math.random()*t);t--;let i=e[t];e[t]=e[n],e[n]=i}return e}function pe(e){return(0,r.Q)(e)||{}}function he(){try{return T.getWindowSelf()!==T.getWindowTop()}catch(e){return!0}}function me(){return/^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent)}function be(e,t){if(e)return Object.entries(t).reduce((e,t)=>{let[n,i]=t;return e.replace(new RegExp("\\\\$\\\\{"+n+"\\\\}","g"),i||"")},e)}function ve(){return(new Date).getTime()}function ye(){return window.performance&&window.performance.now&&window.performance.now()||0}function Ee(){return!1!==i.$W.getConfig("deviceAccess")}function Ae(){if(window.navigator.cookieEnabled||document.cookie.length)return!0}function we(e,t){if(t<1)throw new Error("numRequiredCalls must be a positive number. Got ".concat(t));let n=0;return function(){n++,n===t&&e.apply(this,arguments)}}function Ie(e,t){return e.reduce(function(e,n){return(e[n[t]]=e[n[t]]||[]).push(n),e},{})}function Te(e,t){return t.filter(t=>e[t]).reduce((t,n)=>Object.assign(t,{[n]:e[n]}),{})}function Oe(e){const t=["banner","native","video"],n=["instream","outstream","adpod"];return!!Object.keys(e).every(e=>(0,o.mK)(t,e))&&(!e.video||!e.video.context||(0,o.mK)(n,e.video.context))}function Ce(e,t,n){return e.filter(e=>e.code===t).flatMap(e=>e.bids).filter(e=>e.bidder===n).map(e=>e.params||{})}function Be(){return"1"===navigator.doNotTrack||"1"===window.doNotTrack||"1"===navigator.msDoNotTrack||"yes"===navigator.doNotTrack}const ke=(e,t)=>e.getAdUnitPath()===t||e.getSlotElementId()===t;function Se(e){return t=>ke(e,t)}function Re(e,t){const n=Object.keys(e.mediaTypes||{banner:"banner"}).join(", ");return"\\n ".concat(e.code," is a ").concat(n," ad unit\\n containing bidders that don\'t support ").concat(n,": ").concat(t,".\\n This bidder won\'t fetch demand.\\n ")}const je=Number.isInteger.bind(Number);function De(e,t){return"object"!=typeof e?{}:t.reduce((n,i,r)=>{if("function"==typeof i)return n;let o=i,s=i.match(/^(.+?)\\sas\\s(.+?)$/i);s&&(i=s[1],o=s[2]);let a=e[i];return"function"==typeof t[r+1]&&(a=t[r+1](a,n)),void 0!==a&&(n[o]=a),n},{})}function Ue(e,t){return Q(e)&&(!t||e.length===t)&&e.every(e=>je(e))}function _e(e){return e?e.replace(/^\\?/,"").split("&").reduce((e,t)=>{let[n,i]=t.split("=");return/\\[\\]$/.test(n)?(n=n.replace("[]",""),e[n]=e[n]||[],e[n].push(i)):e[n]=i||"",e},{}):{}}function qe(e,t){let n=document.createElement("a");t&&"noDecodeWholeURL"in t&&t.noDecodeWholeURL?n.href=e:n.href=decodeURIComponent(e);let i=t&&"decodeSearchAsString"in t&&t.decodeSearchAsString;return{href:n.href,protocol:(n.protocol||"").replace(/:$/,""),hostname:n.hostname,port:+n.port,pathname:n.pathname.replace(/^(?!\\/)/,"/"),search:i?n.search:T.parseQS(n.search||""),hash:(n.hash||"").replace(/^#/,""),host:n.host||window.location.host}}function xe(e){return(e.protocol||"http")+"://"+(e.host||e.hostname+(e.port?":".concat(e.port):""))+(e.pathname||"")+(e.search?"?".concat(T.formatQS(e.search||"")):"")+(e.hash?"#".concat(e.hash):"")}function Ne(e,t){let{checkTypes:n=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t||n&&e.constructor!==t.constructor)return!1;{const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let r of i){if(!t.hasOwnProperty(r))return!1;if(!Ne(e[r],t[r],{checkTypes:n}))return!1}return!0}}function Pe(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(!n.length)return e;const r=n.shift();if(X(e)&&X(r))for(const t in r)X(r[t])?(e[t]||Object.assign(e,{[t]:{}}),Pe(e[t],r[t])):Q(r[t])?e[t]?Q(e[t])&&r[t].forEach(n=>{let i=1;for(let r=0;r<e[t].length;r++)if(Ne(e[t][r],n)){i=0;break}i&&e[t].push(n)}):Object.assign(e,{[t]:[...r[t]]}):Object.assign(e,{[t]:r[t]});return Pe(e,...n)}function We(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=function(e,t){if(J(Math.imul))return Math.imul(e,t);var n=(4194303&e)*(t|=0);return 4290772992&e&&(n+=(4290772992&e)*t|0),0|n},i=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),i=n(i^t,2654435761),r=n(r^t,1597334677);return i=n(i^i>>>16,2246822507)^n(r^r>>>13,3266489909),r=n(r^r>>>16,2246822507)^n(i^i>>>13,3266489909),(4294967296*(2097151&r)+(i>>>0)).toString()}function Ve(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e};const n=new Map,i=function(){const i=t.apply(this,arguments);return n.has(i)||n.set(i,e.apply(this,arguments)),n.get(i)};return i.clear=n.clear.bind(n),i}function Me(e,t){Object.entries(t).forEach(t=>{let[n,i]=t;return e.setAttribute(n,i)})}function Ge(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e=>e,i=0,r=e.length&&e.length-1;const o=n(t);for(;r-i>1;){const t=i+Math.round((r-i)/2);o>n(e[t])?i=t:r=t}for(;e.length>i&&o>n(e[i]);)i++;return i}},75:(e,t,n)=>{n.d(t,{$A:()=>I,BS:()=>W,Hh:()=>x,Pk:()=>N,Uc:()=>B,XO:()=>V,bw:()=>D,n6:()=>T,qn:()=>U,vB:()=>P,vW:()=>k,vd:()=>R});var i=n(69),r=n(23),o=n(969),s=n(272),a=n(789),c=n(371),d=n(881),l=n(31),u=n(214),f=n(449),g=n(555),p=n(46),h=n(894),m=n(779);const{AD_RENDER_FAILED:b,AD_RENDER_SUCCEEDED:v,STALE_RENDER:y,BID_WON:E,EXPIRED_RENDER:A}=o.qY,{EXCEPTION:w}=o.as,I=(0,u.A_)("sync",function(e){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:g.k.resolve()).then(t=>null!=t?t:d.n.findBidByAdId(e)).catch(()=>{})}),T=(0,u.A_)("sync",function(e){r.Ic(E,e),d.n.addWinningBid(e)});function O(e){let{reason:t,message:n,bid:o,id:s}=e;const a={reason:t,message:n};o&&(a.bid=o,a.adId=o.adId),s&&(a.adId=s),(0,i.vV)("Error rendering ad (id: ".concat(s,"): ").concat(n)),r.Ic(b,a)}function C(e){let{doc:t,bid:n,id:i}=e;const o={doc:t};n&&(o.bid=n),i&&(o.adId=i),p.Ay.callAdRenderSucceededBidder(n.adapterCode||n.bidder,n),r.Ic(v,o)}function B(e,t){switch(e.event){case o.qY.AD_RENDER_FAILED:O({bid:t,id:t.adId,reason:e.info.reason,message:e.info.message});break;case o.qY.AD_RENDER_SUCCEEDED:C({doc:null,bid:t,id:t.adId});break;default:(0,i.vV)("Received event request for unsupported event: \'".concat(e.event,"\' (adId: \'").concat(t.adId,"\')"))}}function k(e,t,n){let{resizeFn:i,fireTrackers:r=f.vO}=n;if("resizeNativeHeight"===e.action)i(e.width,e.height);else r(e,t)}const S={[o.nl.EVENT]:B};S[o.nl.NATIVE]=k;const R=(0,u.A_)("sync",function(e,t){const{ad:n,adUrl:r,cpm:o,originalCpm:s,width:a,height:c}=e,d={AUCTION_PRICE:s||o,CLICKTHROUGH:(null==t?void 0:t.clickUrl)||""};return{ad:(0,i.gM)(n,d),adUrl:(0,i.gM)(r,d),width:a,height:c}}),j=(0,u.A_)("sync",function(e){let{renderFn:t,resizeFn:n,bidResponse:r,options:s,doc:a,isMainDocument:d=a===document&&!(0,i.al)()}=e;const l=r.mediaType===c.G_;if(d||l)return void O({reason:o.as.PREVENT_WRITING_ON_MAIN_DOCUMENT,message:l?"Cannot render video ad without a renderer":"renderAd was prevented from writing to the main document.",bid:r,id:r.adId});const u=R(r,s);t(Object.assign({adId:r.adId},u));const{width:f,height:g}=u;null!=(null!=f?f:g)&&n(f,g)});function D(e){let{renderFn:t,resizeFn:n,adId:a,options:c,bidResponse:d,doc:l}=e;x(d,()=>{if(null!=d){var e,u;if(d.status===o.tl.RENDERED)if((0,i.JE)("Ad id ".concat(a," has been rendered before")),r.Ic(y,d),null!==(e=s.$W.getConfig("auctionOptions"))&&void 0!==e&&e.suppressStaleRender)return;if(!m.uW.isBidNotExpired(d))if((0,i.JE)("Ad id ".concat(a," has been expired")),r.Ic(A,d),null!==(u=s.$W.getConfig("auctionOptions"))&&void 0!==u&&u.suppressExpiredRender)return;try{j({renderFn:t,resizeFn:n,bidResponse:d,options:c,doc:l})}catch(e){O({reason:o.as.EXCEPTION,message:e.message,id:a,bid:d})}}else O({reason:o.as.CANNOT_FIND_AD,message:"Cannot find ad \'".concat(a,"\'"),id:a})})}function U(e){const t=(0,h.BO)(e.metrics);t.checkpoint("bidRender"),t.timeBetween("bidWon","bidRender","render.deferred"),t.timeBetween("auctionEnd","bidRender","render.pending"),t.timeBetween("requestBids","bidRender","render.e2e"),e.status=o.tl.RENDERED}j.before(function(e,t){const{bidResponse:n,doc:i}=t;(0,a.J7)(n.renderer)?((0,a.Pg)(n.renderer,n,i),C({doc:i,bid:n,id:n.adId}),e.bail()):e(t)},100);const _=new WeakMap,q=new WeakSet;function x(e,t){null!=e?(_.set(e,t),e.deferRendering||P(e),N(e)):t()}function N(e){q.has(e)||(q.add(e),T(e))}function P(e){const t=_.get(e);t&&(t(),U(e),_.delete(e))}function W(e,t,n){let r;function s(e,n){O(Object.assign({id:t,bid:r},{reason:e,message:n}))}function a(t,n){e.defaultView&&e.defaultView.frameElement&&(t&&(e.defaultView.frameElement.width=t),n&&(e.defaultView.frameElement.height=n))}const c=(d={resizeFn:a},function(e,t,n){S.hasOwnProperty(e)&&S[e](t,n,d)});var d;function u(t){t.ad?(e.write(t.ad),e.close(),C({doc:e,bid:r,id:r.adId})):(0,l.H)(r).then(n=>n(t,{sendMessage:(e,t)=>c(e,t,r),mkFrame:i.hw},e.defaultView)).then(()=>C({doc:e,bid:r,id:r.adId}),e=>{s((null==e?void 0:e.reason)||o.as.EXCEPTION,null==e?void 0:e.message),(null==e?void 0:e.stack)&&(0,i.vV)(e)});const n=document.createComment("Creative ".concat(r.creativeId," served by ").concat(r.bidder," Prebid.js Header Bidding"));(0,i._s)(n,e,"html")}try{t&&e?I(t).then(i=>{r=i,D({renderFn:u,resizeFn:a,adId:t,options:{clickUrl:null==n?void 0:n.clickThrough},bidResponse:i,doc:e})}):s(o.as.MISSING_DOC_OR_ADID,"missing ".concat(t?"doc":"adId"))}catch(e){s(w,e.message)}}function V(){if(!window.frames[o.IY])if(document.body){const e=(0,i.CA)();e.name=o.IY,document.body.appendChild(e)}else window.requestAnimationFrame(V)}},115:(e,t,n)=>{function i(e){var t=e;return{callBids:function(){},setBidderCode:function(e){t=e},getBidderCode:function(){return t}}}n.d(t,{xb:()=>C,a$:()=>T});var r=n(46),o=n(272),s=n(597),a=n(230),c=n(449),d=n(895),l=n(969),u=n(23),f=n(901),g=n(69),p=n(214),h=n(881),m=n(693),b=n(894),v=n(139),y=n(441),E=n(569),A=n(811);const w=["cpm","ttl","creativeId","netRevenue","currency"],I=["auctionId","transactionId"];function T(e){const t=Array.isArray(e.supportedMediaTypes)?{supportedMediaTypes:e.supportedMediaTypes}:void 0;function n(e){const n=C(e);r.Ay.registerBidAdapter(n,e.code,t)}n(e),Array.isArray(e.aliases)&&e.aliases.forEach(t=>{let i,o,s=t;(0,g.Qd)(t)&&(s=t.code,i=t.gvlid,o=t.skipPbsAliasing),r.Ay.aliasRegistry[s]=e.code,n(Object.assign({},e,{code:s,gvlid:i,skipPbsAliasing:o}))})}const O=(0,g.Bj)(e=>{let{bidderCode:t}=e;if((0,v.io)(A.VJ,(0,y.s)(E.tW,t)))return{bidRequest:e=>e,bidderRequest:e=>e};function n(e,t,n){return I.includes(t)?null:Reflect.get(e,t,n)}function i(e,t){const n=new Proxy(e,t);return Object.entries(e).filter(e=>{let[t,n]=e;return"function"==typeof n}).forEach(t=>{let[i,r]=t;return n[i]=r.bind(e)}),n}const r=(0,g.Bj)(e=>i(e,{get:n}),e=>e.bidId);return{bidRequest:r,bidderRequest:e=>i(e,{get:(t,i,o)=>"bids"===i?e.bids.map(r):n(t,i,o)})}});function C(e){return Object.assign(new i(e.code),{getSpec:function(){return Object.freeze(Object.assign({},e))},registerSyncs:t,callBids:function(n,i,a,p,v,y){if(!Array.isArray(n.bids))return;const E=O(n),A={};function T(e,t){const n=(0,b.BO)(t.metrics);n.checkpoint("addBidResponse"),A[e]=!0,n.measureTime("addBidResponse.validate",()=>function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};function i(){let e=Object.keys(t);return w.every(n=>(0,f.mK)(e,n)&&!(0,f.mK)([void 0,null],t[n]))}function r(e){return"Invalid bid from ".concat(t.bidderCode,". Ignoring bid: ").concat(e)}if(!e)return(0,g.JE)("No adUnitCode was supplied to addBidResponse."),!1;if(!t)return(0,g.JE)("Some adapter tried to add an undefined bid for ".concat(e,".")),!1;if(!i())return(0,g.vV)(r("Bidder ".concat(t.bidderCode," is missing required params. Check http://prebid.org/dev-docs/bidder-adapter-1.html for list of params."))),!1;if("native"===t.mediaType&&!(0,c.Bm)(t,{index:n}))return(0,g.vV)(r("Native bid missing some required properties.")),!1;if("video"===t.mediaType&&!(0,d.vk)(t,{index:n}))return(0,g.vV)(r("Video bid does not have required vastUrl or renderer property")),!1;if("banner"===t.mediaType&&!function(e,t){let{index:n=h.n.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((t.width||0===parseInt(t.width,10))&&(t.height||0===parseInt(t.height,10)))return t.width=parseInt(t.width,10),t.height=parseInt(t.height,10),!0;const i=n.getBidRequest(t),r=n.getMediaTypes(t),o=i&&i.sizes||r&&r.banner&&r.banner.sizes,s=(0,g.kK)(o);if(1===s.length){const[e,n]=s[0].split("x");return t.width=parseInt(e,10),t.height=parseInt(n,10),!0}return!1}(e,t,{index:n}))return(0,g.vV)(r("Banner bids require a width and height")),!1;return!0}(e,t))?i(e,t):i.reject(e,t,l.Tf.INVALID)}const C=[];function B(){a(),o.$W.runWithBidder(e.code,()=>{u.Ic(l.qY.BIDDER_DONE,n),t(C,n.gdprConsent,n.uspConsent,n.gppConsent)})}const S=j(n).measureTime("validate",()=>n.bids.filter(t=>function(t){if(!e.isBidRequestValid(t))return(0,g.JE)("Invalid bid sent to bidder ".concat(e.code,": ").concat(JSON.stringify(t))),!1;return!0}(E.bidRequest(t))));if(0===S.length)return void B();const D={};S.forEach(e=>{D[e.bidId]=e,e.adUnitCode||(e.adUnitCode=e.placementCode)}),k(e,S,n,p,y,{onRequest:e=>u.Ic(l.qY.BEFORE_BIDDER_HTTP,n,e),onResponse:t=>{v(e.code),C.push(t)},onPaapi:e=>{const t=D[e.bidId];t?R(t,e):(0,g.JE)("Received fledge auction configuration for an unknown bidId",e)},onError:(t,i)=>{i.timedOut||v(e.code),r.Ay.callBidderError(e.code,i,n),u.Ic(l.qY.BIDDER_ERROR,{error:i,bidderRequest:n}),(0,g.vV)("Server call for ".concat(e.code," failed: ").concat(t," ").concat(i.status,". Continuing without bids."))},onBid:t=>{const n=D[t.requestId];if(n){var r;if(t.adapterCode=n.bidder,function(e,t){let n=m.u.get(t,"allowAlternateBidderCodes")||!1,i=m.u.get(t,"allowedAlternateBidderCodes");if(e&&t&&t!==e&&(i=(0,g.cy)(i)?i.map(e=>e.trim().toLowerCase()).filter(e=>!!e).filter(g.hj):i,!n||(0,g.cy)(i)&&"*"!==i[0]&&!i.includes(e)))return!0;return!1}(t.bidderCode,n.bidder))return(0,g.JE)("".concat(t.bidderCode," is not a registered partner or known bidder of ").concat(n.bidder,", hence continuing without bid. If you wish to support this bidder, please mark allowAlternateBidderCodes as true in bidderSettings.")),void i.reject(n.adUnitCode,t,l.Tf.BIDDER_DISALLOWED);t.originalCpm=t.cpm,t.originalCurrency=t.currency,t.meta=t.meta||Object.assign({},t[n.bidder]),t.deferBilling=n.deferBilling,t.deferRendering=t.deferBilling&&(null!==(r=t.deferRendering)&&void 0!==r?r:"function"!=typeof e.onBidBillable);const o=Object.assign((0,s.O)(l.XQ.GOOD,n),t,(0,g.Up)(n,I));T(n.adUnitCode,o)}else(0,g.JE)("Bidder ".concat(e.code," made bid for unknown request ID: ").concat(t.requestId,". Ignoring.")),i.reject(null,t,l.Tf.INVALID_REQUEST_ID)},onCompletion:B})}});function t(t,n,i,r){S(e,t,n,i,r)}}const B=["bids","paapi"],k=(0,p.A_)("sync",function(e,t,n,i,r,o){let{onRequest:s,onResponse:a,onPaapi:c,onError:d,onBid:l,onCompletion:u}=o;const f=j(n);u=f.startTiming("total").stopBefore(u);const p=O(n);let h=f.measureTime("buildRequests",()=>e.buildRequests(t.map(p.bidRequest),p.bidderRequest(n)));if(!h||0===h.length)return void u();Array.isArray(h)||(h=[h]);const b=(0,g.U6)(u,h.length);h.forEach(t=>{const n=f.fork();function o(e){null!=e&&(e.metrics=n.fork().renameWith()),l(e)}const u=r(function(i,r){h();try{i=JSON.parse(i)}catch(e){}i={body:i,headers:{get:r.getResponseHeader.bind(r)}},a(i);try{i=n.measureTime("interpretResponse",()=>e.interpretResponse(i,t))}catch(t){return(0,g.vV)("Bidder ".concat(e.code," failed to interpret the server\'s response. Continuing without bids"),null,t),void b()}let s,d;i&&!Object.keys(i).some(e=>!B.includes(e))?(s=i.bids,d=i.paapi):s=i,(0,g.cy)(d)&&d.forEach(c),s&&((0,g.cy)(s)?s.forEach(o):o(s)),b()}),p=r(function(e,t){h(),d(e,t),b()});s(t);const h=n.startTiming("net");function w(n){var i;const r=t.options;return Object.assign(n,r,{browsingTopics:!(null!=r&&r.hasOwnProperty("browsingTopics")&&!r.browsingTopics)&&((null===(i=m.u.get(e.code,"topicsHeader"))||void 0===i||i)&&(0,v.io)(A.DL,(0,y.s)(E.tW,e.code)))})}switch(t.method){case"GET":i("".concat(t.url).concat(function(e){if(e)return"?".concat("object"==typeof e?(0,g.bL)(e):e);return""}(t.data)),{success:u,error:p},void 0,w({method:"GET",withCredentials:!0}));break;case"POST":i(t.url,{success:u,error:p},"string"==typeof t.data?t.data:JSON.stringify(t.data),w({method:"POST",contentType:"text/plain",withCredentials:!0}));break;default:(0,g.JE)("Skipping invalid request from ".concat(e.code,". Request type ").concat(t.type," must be GET or POST")),b()}})},"processBidderRequests"),S=(0,p.A_)("async",function(e,t,n,i,s){const c=o.$W.getConfig("userSync.aliasSyncEnabled");if(e.getUserSyncs&&(c||!r.Ay.aliasRegistry[e.code])){let r=o.$W.getConfig("userSync.filterSettings"),c=e.getUserSyncs({iframeEnabled:!(!r||!r.iframe&&!r.all),pixelEnabled:!(!r||!r.image&&!r.all)},t,n,i,s);c&&(Array.isArray(c)||(c=[c]),c.forEach(t=>{a.zt.registerSync(t.type,e.code,t.url)}),a.zt.bidderDone(e.code))}},"registerSyncs"),R=(0,p.A_)("sync",(e,t)=>{},"addPaapiConfig");function j(e){return(0,b.BO)(e.metrics).renameWith(t=>["adapter.client.".concat(t),"adapters.client.".concat(e.bidderCode,".").concat(t)])}},139:(e,t,n)=>{n.d(t,{io:()=>s,qB:()=>o});var i=n(69),r=n(604);const[o,s]=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(0,i.h0)("Activity control:");const t={};function n(e){return t[e]=t[e]||[]}function o(t,n,i,o){let s;try{s=i(o)}catch(i){e.logError("Exception in rule ".concat(n," for \'").concat(t,"\'"),i),s={allow:!1,reason:i}}return s&&Object.assign({activity:t,name:n,component:o[r.Ii]},s)}const s={};function a(t){let{activity:n,name:i,allow:r,reason:o,component:a}=t;const c="".concat(i," ").concat(r?"allowed":"denied"," \'").concat(n,"\' for \'").concat(a,"\'").concat(o?":":""),d=s.hasOwnProperty(c);if(d&&clearTimeout(s[c]),s[c]=setTimeout(()=>delete s[c],1e3),!d){const t=[c];o&&t.push(o),(r?e.logInfo:e.logWarn).apply(e,t)}}return[function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;const o=n(e),s=o.findIndex(e=>{let[t]=e;return r<t}),a=[r,t,i];return o.splice(s<0?o.length:s,0,a),function(){const e=o.indexOf(a);e>=0&&o.splice(e,1)}},function(e,t){let i,r;for(const[s,c,d]of n(e)){if(i!==s&&r)break;i=s;const n=o(e,c,d,t);if(n){if(!n.allow)return a(n),!1;r=n}}return r&&a(r),!0}]}()},214:(e,t,n)=>{n.d(t,{A_:()=>s,Y6:()=>d,Yn:()=>c});var i=n(128),r=n.n(i),o=n(555);let s=r()({ready:r().SYNC|r().ASYNC|r().QUEUE});const a=(0,o.v)();s.ready=(()=>{const e=s.ready;return function(){try{return e.apply(s,arguments)}finally{a.resolve()}}})();a.promise;const c=s.get;function d(e,t){return Object.defineProperties(t,Object.fromEntries(["before","after","getHooks","removeAll"].map(t=>[t,{get:()=>e[t]}]))),t}},230:(e,t,n)=>{n.d(t,{zt:()=>g});var i=n(69),r=n(272),o=n(901),s=n(938),a=n(139),c=n(811),d=n(604),l=n(569),u=n(441);r.$W.setDefaults({userSync:(0,i.Go)({syncEnabled:!0,filterSettings:{image:{bidders:"*",filter:"include"}},syncsPerBidder:5,syncDelay:3e3,auctionDelay:500})});const f=(0,s.CK)("usersync");const g=function(e){let t={},n={image:[],iframe:[]},s=new Set,a={},f={image:!0,iframe:!1},g=e.config;function p(){if(g.syncEnabled&&e.browserSupportsCookies){try{!function(){if(!f.iframe)return;h(n.iframe,e=>{let[t,r]=e;(0,i.OG)("Invoking iframe user sync for bidder: ".concat(t)),(0,i.SG)(r),function(e,t){e.image=e.image.filter(e=>e[0]!==t)}(n,t)})}(),function(){if(!f.image)return;h(n.image,e=>{let[t,n]=e;(0,i.OG)("Invoking image pixel user sync for bidder: ".concat(t)),(0,i.z$)(n)})}()}catch(e){return(0,i.vV)("Error firing user syncs",e)}n={image:[],iframe:[]}}}function h(e,t){(0,i.k4)(e).forEach(t)}function m(e,t){let n=g.filterSettings;if(function(e,t){if(e.all&&e[t])return(0,i.JE)(\'Detected presence of the "filterSettings.all" and "filterSettings.\'.concat(t,\'" in userSync config. You cannot mix "all" with "iframe/image" configs; they are mutually exclusive.\')),!1;let n=e.all?e.all:e[t],r=e.all?"all":t;if(!n)return!1;let o=n.filter,s=n.bidders;if(o&&"include"!==o&&"exclude"!==o)return(0,i.JE)(\'UserSync "filterSettings.\'.concat(r,".filter\\" setting \'").concat(o,"\' is not a valid option; use either \'include\' or \'exclude\'.")),!1;if("*"!==s&&!(Array.isArray(s)&&s.length>0&&s.every(e=>(0,i.O8)(e)&&"*"!==e)))return(0,i.JE)(\'Detected an invalid setup in userSync "filterSettings.\'.concat(r,".bidders\\"; use either \'*\' (to represent all bidders) or an array of bidders.")),!1;return!0}(n,e)){f[e]=!0;let i=n.all?n.all:n[e],r="*"===i.bidders?[t]:i.bidders;const s={include:(e,t)=>!(0,o.mK)(e,t),exclude:(e,t)=>(0,o.mK)(e,t)};return s[i.filter||"include"](r,t)}return!f[e]}return r.$W.getConfig("userSync",e=>{if(e.userSync){let t=e.userSync.filterSettings;(0,i.Qd)(t)&&(t.image||t.all||(e.userSync.filterSettings.image={bidders:"*",filter:"include"}))}g=Object.assign(g,e.userSync)}),e.regRule(c.Ml,"userSync config",e=>{if(!g.syncEnabled)return{allow:!1,reason:"syncs are disabled"};if(e[d.Dk]===l.tW){const n=e[d.bt],i=e[d.iK];if(!t.canBidderRegisterSync(n,i))return{allow:!1,reason:"".concat(n," syncs are not enabled for ").concat(i)}}}),t.registerSync=(t,r,o)=>s.has(r)?(0,i.OG)(\'already fired syncs for "\'.concat(r,\'", ignoring registerSync call\')):g.syncEnabled&&(0,i.cy)(n[t])?r?0!==g.syncsPerBidder&&Number(a[r])>=g.syncsPerBidder?(0,i.JE)(\'Number of user syncs exceeded for "\'.concat(r,\'"\')):void(e.isAllowed(c.Ml,(0,u.s)(l.tW,r,{[d.bt]:t,[d.e3]:o}))&&(n[t].push([r,o]),a=function(e,t){return e[t]?e[t]+=1:e[t]=1,e}(a,r))):(0,i.JE)("Bidder is required for registering sync"):(0,i.JE)(\'User sync type "\'.concat(t,\'" not supported\')),t.bidderDone=s.add.bind(s),t.syncUsers=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e)return setTimeout(p,Number(e));p()},t.triggerUserSyncs=()=>{g.enableOverride&&t.syncUsers()},t.canBidderRegisterSync=(e,t)=>!g.filterSettings||!m(e,t),t}(Object.defineProperties({config:r.$W.getConfig("userSync"),isAllowed:a.io,regRule:a.qB},{browserSupportsCookies:{get:function(){return!(0,i.Vt)()&&f.cookiesAreEnabled()}}}))},261:(e,t,n)=>{var i=n(873),r=n(69),o=n(433),s=n(172),a=n(705),c=n(449),d=n(969),l=n(901),u=n(75),f=n(31);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach(function(t){(0,a.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const{REQUEST:h,RESPONSE:m,NATIVE:b,EVENT:v}=d.nl,y={[h]:function(e,t,n){(0,u.bw)({renderFn(t){e(Object.assign({message:m,renderer:(0,f.k)(n)},t))},resizeFn:A(t.adId,n),options:t.options,adId:t.adId,bidResponse:n})},[v]:function(e,t,n){if(null==n)return void(0,r.vV)("Cannot find ad \'".concat(t.adId,"\' for x-origin event request"));if(n.status!==d.tl.RENDERED)return void(0,r.JE)("Received x-origin event request without corresponding render request for ad \'".concat(n.adId,"\'"));return(0,u.Uc)(t,n)}};function E(){window.addEventListener("message",function(e){!function(e){var t=e.message?"message":"data",n={};try{n=JSON.parse(e[t])}catch(e){return}if(n&&n.adId&&n.message&&y.hasOwnProperty(n.message))(0,u.$A)(n.adId,n.message===d.nl.REQUEST).then(t=>{var i,o;y[n.message]((i=n.adId,o=function(e){return null==e.origin&&0===e.ports.length?function(){const e="Cannot post message to a frame with null origin. Please update creatives to use MessageChannel, see https://github.com/prebid/Prebid.js/issues/7870";throw(0,r.vV)(e),new Error(e)}:e.ports.length>0?function(t){e.ports[0].postMessage(JSON.stringify(t))}:function(t){e.source.postMessage(JSON.stringify(t),e.origin)}}(e),function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return o(Object.assign({},e,{adId:i}),...n)}),n,t)})}(e)},!1)}function A(e,t){return function(n,i){!function(e){let{adId:t,adUnitCode:n,width:i,height:o}=e;function s(e){return e?e+"px":"100%"}function a(e){let i=c(t,n),r=document.getElementById(i);return r&&r.querySelector(e)}function c(e,t){return(0,r.II)()?d(e):(0,r.t1)()?u(t):t}function d(e){const t=(0,l.I6)(window.googletag.pubads().getSlots(),t=>(0,l.I6)(t.getTargetingKeys(),n=>(0,l.mK)(t.getTargeting(n),e)));return t?t.getSlotElementId():null}function u(e){let t=window.apntag.getTag(e);return t&&t.targetId}["div","iframe"].forEach(e=>{let t=a(e+\':not([style*="display: none"])\');if(t){let e=t.style;e.width=s(i),e.height=s(o)}else(0,r.vV)("Unable to locate matching page element for adUnitCode ".concat(n,". Can\'t resize it to ad\'s dimensions. Please review setup."))})}(p(p({},t),{},{width:n,height:i,adId:e}))}}Object.assign(y,{[b]:function(e,t,n){if(null==n)return void(0,r.vV)("Cannot find ad for x-origin event request: \'".concat(t.adId,"\'"));switch(t.action){case"assetRequest":(0,u.Hh)(n,()=>e((0,c.IX)(t,n)));break;case"allAssetRequest":(0,u.Hh)(n,()=>e((0,c.yl)(t,n)));break;default:(0,u.vW)(t,n,{resizeFn:A(t.adId,n)}),(0,u.Pk)(n)}}});var w=n(230),I=n(272),T=n(881),O=n(779),C=n(214),B=n(597),k=n(580),S=n(555),R=n(569);const j="__pbjs_debugging__";function D(){return(0,i.m)().installedModules.includes("debugging")}function U(e){return new S.k(t=>{(0,k.R)(e,R.tp,"debugging",t)})}function _(){let{alreadyInstalled:e=D,script:t=U}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null;return function(){return null==n&&(n=new S.k((n,o)=>{setTimeout(()=>{if(e())n();else{const e="https://cdn.jsdelivr.net/npm/prebid.js@9.23.0/dist/debugging-standalone.js";(0,r.OG)(\'Debugging module not installed, loading it from "\'.concat(e,\'"...\')),(0,i.m)()._installDebugging=!0,t(e).then(()=>{(0,i.m)()._installDebugging({DEBUG_KEY:j,hook:C.A_,config:I.$W,createBid:B.O,logger:(0,r.h0)("DEBUG:")})}).then(n,o)}})})),n}}const q=function(){let{load:e=_(),hook:t=(0,C.Yn)("requestBids")}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=null,i=!1;function r(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return(n||S.k.resolve()).then(()=>e.apply(this,i))}function o(){t.getHooks({hook:r}).remove(),i=!1}return{enable:function(){i||(n=e(),t.before(r,99),i=!0)},disable:o,reset:function(){n=null,o()}}}();q.reset;I.$W.getConfig("debugging",function(e){let{debugging:t}=e;null!=t&&t.enabled?q.enable():q.disable()});var x=n(938),N=n(46),P=n(23),W=n(894),V=n(991),M=n(916),G=n(713),F=n(895);const H=new Map([["format",e=>Array.isArray(e)&&e.length>0&&e.every(e=>"object"==typeof e)],["w",r.Fq],["h",r.Fq],["btype",r.Uu],["battr",r.Uu],["pos",r.Fq],["mimes",e=>Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)],["topframe",e=>[1,0].includes(e)],["expdir",r.Uu],["api",r.Uu],["id",r.O8],["vcm",e=>[1,0].includes(e)]]);var L=n(371);const $=(0,i.m)(),{triggerUserSyncs:z}=w.zt,{ADD_AD_UNITS:J,REQUEST_BIDS:K,SET_TARGETING:Q}=d.qY,Y={bidWon:function(e){if(!T.n.getBidsRequested().map(e=>e.bids.map(e=>e.adUnitCode)).reduce(r.Bq).filter(r.hj).includes(e))return void(0,r.vV)(\'The "\'+e+\'" placement is not defined.\');return!0}};function X(e,t){let n=[];return(0,r.cy)(e)&&(t?e.length===t:e.length>0)&&(e.every(e=>(0,r.Uu)(e,2))?n=e:(0,r.Uu)(e,2)&&n.push(e)),n}function Z(e,t){const n=(0,o.A)(e,"ortb2Imp.".concat(t)),i=(0,o.A)(e,"mediaTypes.".concat(t));if(!n&&!i)return;const a={[L.G_]:F.Zy,[L.D4]:H}[t];a&&[...a].forEach(n=>{let[i,a]=n;const c=(0,o.A)(e,"mediaTypes.".concat(t,".").concat(i)),d=(0,o.A)(e,"ortb2Imp.".concat(t,".").concat(i));null==c&&null==d||(null==c?(0,s.J)(e,"mediaTypes.".concat(t,".").concat(i),d):null==d?(0,s.J)(e,"ortb2Imp.".concat(t,".").concat(i),c):((0,r.JE)("adUnit ".concat(e.code,": specifies conflicting ortb2Imp.").concat(t,".").concat(i," and mediaTypes.").concat(t,".").concat(i,", the latter will be ignored"),e),(0,s.J)(e,"mediaTypes.".concat(t,".").concat(i),d)))})}function ee(e){const t=(0,r.Go)(e),n=t.mediaTypes.banner,i=X(n.sizes);return i.length>0?(n.sizes=i,t.sizes=i):((0,r.vV)("Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request."),delete t.mediaTypes.banner),Z(t,"banner"),t}function te(e){const t=(0,r.Go)(e),n=t.mediaTypes.video;if(n.playerSize){let e="number"==typeof n.playerSize[0]?2:1;const i=X(n.playerSize,e);i.length>0?(2===e&&(0,r.fH)("Transforming video.playerSize from [640,480] to [[640,480]] so it\'s in the proper format."),n.playerSize=i,t.sizes=i):((0,r.vV)("Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request."),delete t.mediaTypes.video.playerSize)}return(0,F.aP)(t),Z(t,"video"),t}function ne(e){function t(t){return(0,r.vV)(\'Error in adUnit "\'.concat(e.code,\'": \').concat(t,". Removing native request from ad unit"),e),delete i.mediaTypes.native,i}function n(e){for(const t of["sendTargetingKeys","types"])if(o.hasOwnProperty(t)){const n=e(t);if(n)return n}}const i=(0,r.Go)(e),o=i.mediaTypes.native;if(o.ortb){var s;if(null!==(s=o.ortb.assets)&&void 0!==s&&s.some(e=>!(0,r.Et)(e.id)||e.id<0||e.id%1!=0))return t("native asset ID must be a nonnegative integer");if(n(e=>t(\'ORTB native requests cannot specify "\'.concat(e,\'"\'))))return i;const e=Object.keys(d.x5).filter(e=>d.x5[e].includes("hb_native_")),a=Object.keys(o).filter(t=>e.includes(t));a.length>0&&((0,r.vV)("when using native OpenRTB format, you cannot use legacy native properties. Deleting ".concat(a," keys from request.")),a.forEach(e=>delete i.mediaTypes.native[e]))}else n(e=>"mediaTypes.native.".concat(e," is deprecated, consider using native ORTB instead"));return o.image&&o.image.sizes&&!Array.isArray(o.image.sizes)&&((0,r.vV)("Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request."),delete i.mediaTypes.native.image.sizes),o.image&&o.image.aspect_ratios&&!Array.isArray(o.image.aspect_ratios)&&((0,r.vV)("Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request."),delete i.mediaTypes.native.image.aspect_ratios),o.icon&&o.icon.sizes&&!Array.isArray(o.icon.sizes)&&((0,r.vV)("Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request."),delete i.mediaTypes.native.icon.sizes),i}function ie(e,t){var n;let i=null==e||null===(n=e.mediaTypes)||void 0===n||null===(n=n[t])||void 0===n?void 0:n.pos;if(!(0,r.Et)(i)||isNaN(i)||!isFinite(i)){let n="Value of property \'pos\' on ad unit ".concat(e.code," should be of type: Number");(0,r.JE)(n),delete e.mediaTypes[t].pos}return e}function re(e){const t=t=>"adUnit.code \'".concat(e.code,"\' ").concat(t),n=e.mediaTypes,i=e.bids;return null==i||(0,r.cy)(i)?null==i&&null==e.ortb2Imp?((0,r.vV)(t("has no \'adUnit.bids\' and no \'adUnit.ortb2Imp\'. Removing adUnit from auction")),null):n&&0!==Object.keys(n).length?(null==e.ortb2Imp||null!=i&&0!==i.length||(e.bids=[{bidder:null}],(0,r.OG)(t("defines \'adUnit.ortb2Imp\' with no \'adUnit.bids\'; it will be seen only by S2S adapters"))),e):((0,r.vV)(t("does not define a \'mediaTypes\' object. This is a required field for the auction, so this adUnit has been removed.")),null):((0,r.vV)(t("defines \'adUnit.bids\' that is not an array. Removing adUnit from auction")),null)}!function(){let e=null;try{e=window.sessionStorage}catch(e){}if(null!==e){let t=q,n=null;try{n=e.getItem(j)}catch(e){}null!==n&&t.enable()}}(),$.bidderSettings=$.bidderSettings||{},$.libLoaded=!0,$.version="v9.23.0",(0,r.fH)("Prebid.js v9.23.0 loaded"),$.installedModules=$.installedModules||[],$.adUnits=$.adUnits||[],$.triggerUserSyncs=z;const oe={validateAdUnit:re,validateBannerMediaType:ee,validateSizes:X};Object.assign(oe,{validateNativeMediaType:ne}),Object.assign(oe,{validateVideoMediaType:te});const se=(0,C.A_)("sync",function(e){const t=[];return e.forEach(e=>{if(null==(e=re(e)))return;const n=e.mediaTypes;let i,r,o;n.banner&&(i=ee(e),n.banner.hasOwnProperty("pos")&&(i=ie(i,"banner"))),n.video&&(r=te(i||e),n.video.hasOwnProperty("pos")&&(r=ie(r,"video"))),n.native&&(o=ne(r||(i||e)));const s=Object.assign({},i,r,o);t.push(s)}),t},"checkAdUnitSetup");function ae(e){const t=T.n[e]().filter(e=>T.n.getAdUnitCodes().includes(e.adUnitCode)),n=T.n.getLastAuctionId();return t.map(e=>e.adUnitCode).filter(r.hj).map(e=>t.filter(t=>t.auctionId===n&&t.adUnitCode===e)).filter(e=>e&&e[0]&&e[0].adUnitCode).map(e=>({[e[0].adUnitCode]:{bids:e}})).reduce((e,t)=>Object.assign(e,t),{})}$.getAdserverTargetingForAdUnitCodeStr=function(e){if((0,r.fH)("Invoking pbjs.getAdserverTargetingForAdUnitCodeStr",arguments),e){var t=$.getAdserverTargetingForAdUnitCode(e);return(0,r.$D)(t)}(0,r.OG)("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},$.getHighestUnusedBidResponseForAdUnitCode=function(e){if(e){const t=T.n.getAllBidsForAdUnitCode(e).filter(O.Yl);return t.length?t.reduce(G.Vk):{}}(0,r.OG)("Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode")},$.getAdserverTargetingForAdUnitCode=function(e){return $.getAdserverTargeting(e)[e]},$.getAdserverTargeting=function(e){return(0,r.fH)("Invoking pbjs.getAdserverTargeting",arguments),O.iS.getAllTargeting(e)},$.getConsentMetadata=function(){return(0,r.fH)("Invoking pbjs.getConsentMetadata"),M.SL.getConsentMeta()},$.getNoBids=function(){return(0,r.fH)("Invoking pbjs.getNoBids",arguments),ae("getNoBids")},$.getNoBidsForAdUnitCode=function(e){return{bids:T.n.getNoBids().filter(t=>t.adUnitCode===e)}},$.getBidResponses=function(){return(0,r.fH)("Invoking pbjs.getBidResponses",arguments),ae("getBidsReceived")},$.getBidResponsesForAdUnitCode=function(e){return{bids:T.n.getBidsReceived().filter(t=>t.adUnitCode===e)}},$.setTargetingForGPTAsync=function(e,t){(0,r.fH)("Invoking pbjs.setTargetingForGPTAsync",arguments),(0,r.II)()?O.iS.setTargetingForGPT(e,t):(0,r.vV)("window.googletag is not defined on the page")},$.setTargetingForAst=function(e){(0,r.fH)("Invoking pbjs.setTargetingForAn",arguments),O.iS.isApntagDefined()?(O.iS.setTargetingForAst(e),P.Ic(Q,O.iS.getAllTargeting())):(0,r.vV)("window.apntag is not defined on the page")},$.renderAd=(0,C.A_)("async",function(e,t,n){(0,r.fH)("Invoking pbjs.renderAd",arguments),(0,r.OG)("Calling renderAd with adId :"+t),(0,u.BS)(e,t,n)}),$.removeAdUnit=function(e){if((0,r.fH)("Invoking pbjs.removeAdUnit",arguments),!e)return void($.adUnits=[]);let t;t=(0,r.cy)(e)?e:[e],t.forEach(e=>{for(let t=$.adUnits.length-1;t>=0;t--)$.adUnits[t].code===e&&$.adUnits.splice(t,1)})},$.requestBids=function(){const e=(0,C.A_)("async",function(){let{bidsBackHandler:e,timeout:t,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2:c,metrics:d,defer:u}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};P.Ic(K);const f=t||I.$W.getConfig("bidderTimeout");(0,r.fH)("Invoking pbjs.requestBids",arguments),null==i||Array.isArray(i)||(i=[i]),i&&i.length?n=n.filter(e=>(0,l.mK)(i,e.code)):i=n&&n.map(e=>e.code),i=i.filter(r.hj);const g={global:(0,r.D9)({},I.$W.getAnyConfig("ortb2")||{},c||{}),bidder:Object.fromEntries(Object.entries(I.$W.getBidderConfig()).map(e=>{let[t,n]=e;return[t,(0,r.Go)(n.ortb2)]}).filter(e=>{let[t,n]=e;return null!=n}))};return(0,V.w)(S.k.resolve(g.global)).then(t=>(g.global=t,ce({bidsBackHandler:e,timeout:f,adUnits:n,adUnitCodes:i,labels:o,auctionId:s,ttlBuffer:a,ortb2Fragments:g,metrics:d,defer:u})))},"requestBids");return(0,C.Y6)(e,function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.adUnits||$.adUnits;return t.adUnits=(0,r.cy)(n)?n.slice():[n],t.metrics=(0,W.K7)(),t.metrics.checkpoint("requestBids"),t.defer=(0,S.v)({promiseFactory:e=>new Promise(e)}),e.call(this,t),t.defer.promise})}();const ce=(0,C.A_)("async",function(){let{bidsBackHandler:e,timeout:t,adUnits:n,ttlBuffer:i,adUnitCodes:o,labels:a,auctionId:c,ortb2Fragments:d,metrics:u,defer:f}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const g=(0,N.pX)(I.$W.getConfig("s2sConfig")||[]);function p(t,n,i){if("function"==typeof e)try{e(t,n,i)}catch(e){(0,r.vV)("Error executing bidsBackHandler",null,e)}f.resolve({bids:t,timedOut:n,auctionId:i})}!function(e){e.forEach(e=>(0,F.V0)(e))}(n),n=(0,W.BO)(u).measureTime("requestBids.validate",()=>se(n));const h={};if(n.forEach(e=>{var t;const n=Object.keys(e.mediaTypes||{banner:"banner"}),o=e.bids.map(e=>e.bidder),s=N.Ay.bidderRegistry,a=o.filter(e=>!g.has(e));e.adUnitId=(0,r.lk)();const c=null===(t=e.ortb2Imp)||void 0===t||null===(t=t.ext)||void 0===t?void 0:t.tid;c&&(h.hasOwnProperty(e.code)?(0,r.JE)("Multiple distinct ortb2Imp.ext.tid were provided for twin ad units \'".concat(e.code,"\'")):h[e.code]=c),null==i||e.hasOwnProperty("ttlBuffer")||(e.ttlBuffer=i),a.forEach(t=>{const i=s[t],o=i&&i.getSpec&&i.getSpec(),a=o&&o.supportedMediaTypes||["banner"];n.some(e=>(0,l.mK)(a,e))||((0,r.JE)((0,r.bz)(e,t)),e.bids=e.bids.filter(e=>e.bidder!==t))})}),n&&0!==n.length){n.forEach(e=>{var t;const n=(null===(t=e.ortb2Imp)||void 0===t||null===(t=t.ext)||void 0===t?void 0:t.tid)||h[e.code]||(0,r.lk)();h.hasOwnProperty(e.code)||(h[e.code]=n),e.transactionId=n,(0,s.J)(e,"ortb2Imp.ext.tid",n)});const e=T.n.createAuction({adUnits:n,adUnitCodes:o,callback:p,cbTimeout:t,labels:a,auctionId:c,ortb2Fragments:d,metrics:u});let i=n.length;i>15&&(0,r.fH)("Current auction ".concat(e.getAuctionId()," contains ").concat(i," adUnits."),n),o.forEach(t=>O.iS.setLatestAuctionForAdUnit(t,e.getAuctionId())),e.callBids()}else(0,r.OG)("No adUnits configured. No bids requested."),p()},"startAuction");$.requestBids.before(function(e,t){function n(e){for(var t;t=e.shift();)t()}n(x.s0),n(de),e.call(this,t)},49),$.addAdUnits=function(e){(0,r.fH)("Invoking pbjs.addAdUnits",arguments),$.adUnits.push.apply($.adUnits,(0,r.cy)(e)?e:[e]),P.Ic(J)},$.onEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.onEvent",arguments),(0,r.fp)(t)?!n||Y[e].call(null,n)?P.on(e,t,n):(0,r.vV)(\'The id provided is not valid for event "\'+e+\'" and no handler was set.\'):(0,r.vV)(\'The event handler provided is not a function and was not set on event "\'+e+\'".\')},$.offEvent=function(e,t,n){(0,r.fH)("Invoking pbjs.offEvent",arguments),n&&!Y[e].call(null,n)||P.AU(e,t,n)},$.getEvents=function(){return(0,r.fH)("Invoking pbjs.getEvents"),P.kQ()},$.registerBidAdapter=function(e,t){(0,r.fH)("Invoking pbjs.registerBidAdapter",arguments);try{N.Ay.registerBidAdapter(e(),t)}catch(e){(0,r.vV)("Error registering bidder adapter : "+e.message)}},$.registerAnalyticsAdapter=function(e){(0,r.fH)("Invoking pbjs.registerAnalyticsAdapter",arguments);try{N.Ay.registerAnalyticsAdapter(e)}catch(e){(0,r.vV)("Error registering analytics adapter : "+e.message)}},$.createBid=function(e){return(0,r.fH)("Invoking pbjs.createBid",arguments),(0,B.O)(e)};const de=[],le=(0,C.A_)("async",function(e){e&&!(0,r.Im)(e)?((0,r.fH)("Invoking pbjs.enableAnalytics for: ",e),N.Ay.enableAnalytics(e)):(0,r.vV)("pbjs.enableAnalytics should be called with option {}")},"enableAnalyticsCb");function ue(e){if("function"==typeof e)try{e.call()}catch(e){(0,r.vV)("Error processing command :",e.message,e.stack)}else(0,r.vV)("Commands written into pbjs.cmd.push must be wrapped in a function")}function fe(e){e.forEach(function(e){if(void 0===e.called)try{e.call(),e.called=!0}catch(e){(0,r.vV)("Error processing command :","prebid.js",e)}})}$.enableAnalytics=function(e){de.push(le.bind(this,e))},$.aliasBidder=function(e,t,n){(0,r.fH)("Invoking pbjs.aliasBidder",arguments),e&&t?N.Ay.aliasBidAdapter(e,t,n):(0,r.vV)("bidderCode and alias must be passed as arguments","pbjs.aliasBidder")},$.aliasRegistry=N.Ay.aliasRegistry,I.$W.getConfig("aliasRegistry",e=>{"private"===e.aliasRegistry&&delete $.aliasRegistry}),$.getAllWinningBids=function(){return T.n.getAllWinningBids()},$.getAllPrebidWinningBids=function(){return T.n.getBidsReceived().filter(e=>e.status===d.tl.BID_TARGETING_SET)},$.getHighestCpmBids=function(e){return O.iS.getWinningBids(e)},$.clearAllAuctions=function(){T.n.clearAllAuctions()},$.markWinningBidAsUsed=function(e){let t,{adId:n,adUnitCode:i,analytics:o=!1}=e;i&&null==n?t=O.iS.getWinningBids(i):n?t=T.n.getBidsReceived().filter(e=>e.adId===n):(0,r.JE)("Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function."),t.length>0&&(o?(0,u.n6)(t[0]):T.n.addWinningBid(t[0]),(0,u.qn)(t[0]))},$.getConfig=I.$W.getAnyConfig,$.readConfig=I.$W.readAnyConfig,$.mergeConfig=I.$W.mergeConfig,$.mergeBidderConfig=I.$W.mergeBidderConfig,$.setConfig=I.$W.setConfig,$.setBidderConfig=I.$W.setBidderConfig,$.que.push(()=>E()),$.processQueue=function(){$.que.push=$.cmd.push=ue,(0,u.XO)(),C.A_.ready(),fe($.que),fe($.cmd)},$.triggerBilling=e=>{let{adId:t,adUnitCode:n}=e;T.n.getAllWinningBids().filter(e=>e.adId===t||null==t&&e.adUnitCode===n).forEach(e=>{N.Ay.triggerBilling(e),(0,u.vB)(e)})}},272:(e,t,n)=>{n.d(t,{$W:()=>b,Ov:()=>f});var i=n(705),r=n(833),o=n(901),s=n(69),a=n(433),c=n(969);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const l="TRUE"===(0,s.Ez)(c.M).toUpperCase(),u={},f="random",g={};g[f]=!0,g.fixed=!0;const p=f,h={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"};function m(e){const t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1]?{priceGranularity:h.MEDIUM,customPriceBucket:{},mediaTypePriceGranularity:{},bidderSequence:p,auctionOptions:{}}:{};function n(e){return t[e]}function i(n,i){t.hasOwnProperty(n)||Object.defineProperty(e,n,{enumerable:!0}),t[n]=i}const a={publisherDomain:{set(e){null!=e&&(0,s.JE)("publisherDomain is deprecated and has no effect since v7 - use pageUrl instead"),i("publisherDomain",e)}},priceGranularity:{set(e){d(e)&&("string"==typeof e?i("priceGranularity",c(e)?e:h.MEDIUM):(0,s.Qd)(e)&&(i("customPriceBucket",e),i("priceGranularity",h.CUSTOM),(0,s.OG)("Using custom price granularity")))}},customPriceBucket:{},mediaTypePriceGranularity:{set(e){null!=e&&i("mediaTypePriceGranularity",Object.keys(e).reduce((t,i)=>(d(e[i])?"string"==typeof e?t[i]=c(e[i])?e[i]:n("priceGranularity"):(0,s.Qd)(e)&&(t[i]=e[i],(0,s.OG)("Using custom price granularity for ".concat(i))):(0,s.JE)("Invalid price granularity for media type: ".concat(i)),t),{}))}},bidderSequence:{set(e){g[e]?i("bidderSequence",e):(0,s.JE)("Invalid order: ".concat(e,". Bidder Sequence was not set."))}},auctionOptions:{set(e){(function(e){if(!(0,s.Qd)(e))return(0,s.JE)("Auction Options must be an object"),!1;for(let t of Object.keys(e)){if("secondaryBidders"!==t&&"suppressStaleRender"!==t&&"suppressExpiredRender"!==t)return(0,s.JE)("Auction Options given an incorrect param: ".concat(t)),!1;if("secondaryBidders"===t){if(!(0,s.cy)(e[t]))return(0,s.JE)("Auction Options ".concat(t," must be of type Array")),!1;if(!e[t].every(s.O8))return(0,s.JE)("Auction Options ".concat(t," must be only string")),!1}else if(("suppressStaleRender"===t||"suppressExpiredRender"===t)&&!(0,s.Lm)(e[t]))return(0,s.JE)("Auction Options ".concat(t," must be of type boolean")),!1}return!0})(e)&&i("auctionOptions",e)}}};return Object.defineProperties(e,Object.fromEntries(Object.entries(a).map(e=>{let[r,o]=e;return[r,Object.assign({get:n.bind(null,r),set:i.bind(null,r),enumerable:t.hasOwnProperty(r),configurable:!t.hasOwnProperty(r)},o)]}))),e;function c(e){return(0,o.I6)(Object.keys(h),t=>e===h[t])}function d(e){if(!e)return(0,s.vV)("Prebid Error: no value passed to `setPriceGranularity()`"),!1;if("string"==typeof e)c(e)||(0,s.JE)("Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.");else if((0,s.Qd)(e)&&!(0,r.q)(e))return(0,s.vV)("Invalid custom price value passed to `setPriceGranularity()`"),!1;return!0}}const b=function(){let e,t,n,r=[],c=null;function f(){e={};let i=m({debug:l,bidderTimeout:3e3,enableSendAllBids:true,useBidCache:false,deviceAccess:true,disableAjaxTimeout:false,maxNestedIframes:10,maxBid:5e3,userSync:{topics:u}});t&&A(Object.keys(t).reduce((e,n)=>(t[n]!==i[n]&&(e[n]=i[n]||{}),e),{})),t=i,n={}}function g(){if(c&&n&&(0,s.Qd)(n[c])){let e=n[c];const i=new Set(Object.keys(t).concat(Object.keys(e)));return(0,o.A6)(i).reduce((n,i)=>(void 0===e[i]?n[i]=t[i]:void 0===t[i]?n[i]=e[i]:(0,s.Qd)(e[i])?n[i]=(0,s.D9)({},t[i],e[i]):n[i]=e[i],n),{})}return Object.assign({},t)}const[p,h]=[g,function(){const e=g();return Object.defineProperty(e,"ortb2",{get:function(){throw new Error("invalid access to \'orbt2\' config - use request parameters instead")}}),e}].map(e=>function(){if(arguments.length<=1&&"function"!=typeof(arguments.length<=0?void 0:arguments[0])){const t=arguments.length<=0?void 0:arguments[0];return t?(0,a.A)(e(),t):g()}return E(...arguments)}),[b,v]=[h,p].map(e=>function(){let t=e(...arguments);return t&&"object"==typeof t&&(t=(0,s.Go)(t)),t});function y(n){if(!(0,s.Qd)(n))return void(0,s.vV)("setConfig options must be an object");let i=Object.keys(n),r={};i.forEach(i=>{let o=n[i];(0,s.Qd)(e[i])&&(0,s.Qd)(o)&&(o=Object.assign({},e[i],o));try{r[i]=t[i]=o}catch(e){(0,s.JE)("Cannot set config for property ".concat(i," : "),e)}}),A(r)}function E(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t;if("string"!=typeof e&&(i=e,e="*",n=t||{}),"function"!=typeof i)return void(0,s.vV)("listener must be a function");const o={topic:e,callback:i};return r.push(o),n.init&&i("*"===e?h():{[e]:h(e)}),function(){r.splice(r.indexOf(o),1)}}function A(e){const t=Object.keys(e);r.filter(e=>(0,o.mK)(t,e.topic)).forEach(t=>{t.callback({[t.topic]:e[t.topic]})}),r.filter(e=>"*"===e.topic).forEach(t=>t.callback(e))}function w(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{!function(e){if(!(0,s.Qd)(e))throw"setBidderConfig bidder options must be an object";if(!Array.isArray(e.bidders)||!e.bidders.length)throw"setBidderConfig bidder options must contain a bidders list with at least 1 bidder";if(!(0,s.Qd)(e.config))throw"setBidderConfig bidder options must contain a config object"}(e),e.bidders.forEach(i=>{n[i]||(n[i]=m({},!1)),Object.keys(e.config).forEach(r=>{let o=e.config[r];const a=n[i][r];if((0,s.Qd)(o)&&(null==a||(0,s.Qd)(a))){const e=t?s.D9:Object.assign;n[i][r]=e({},a||{},o)}else n[i][r]=o})})}catch(e){(0,s.vV)(e)}}function I(e,t){c=e;try{return t()}finally{T()}}function T(){c=null}return f(),{getCurrentBidder:function(){return c},resetBidder:T,getConfig:h,getAnyConfig:p,readConfig:b,readAnyConfig:v,setConfig:y,mergeConfig:function(e){if(!(0,s.Qd)(e))return void(0,s.vV)("mergeConfig input must be an object");const t=(0,s.D9)(g(),e);return y(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},t)),t},setDefaults:function(n){(0,s.Qd)(e)?(Object.assign(e,n),Object.assign(t,n)):(0,s.vV)("defaults must be an object")},resetConfig:f,runWithBidder:I,callbackWithBidder:function(e){return function(t){return function(){if("function"==typeof t){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return I(e,t.bind(this,...i))}(0,s.JE)("config.callbackWithBidder callback is not a function")}}},setBidderConfig:w,getBidderConfig:function(){return n},mergeBidderConfig:function(e){return w(e,!0)}}}()},371:(e,t,n)=>{n.d(t,{D4:()=>r,G_:()=>i,LM:()=>o});const i="video",r="banner",o="adpod"},441:(e,t,n)=>{n.d(t,{s:()=>r});var i=n(46);const r=(0,n(604).ZI)(e=>i.Ay.resolveAlias(e))},449:(e,t,n)=>{n.d(t,{Bm:()=>I,IX:()=>R,Nh:()=>g,Zj:()=>C,gs:()=>O,l6:()=>y,mT:()=>f,nk:()=>A,vO:()=>T,yl:()=>j});var i=n(705),r=n(69),o=n(901),s=n(881),a=n(969),c=n(75),d=n(31);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const f=[],g=Object.keys(a.x5).map(e=>a.x5[e]),p={image:{ortb:{ver:"1.2",assets:[{required:1,id:1,img:{type:3,wmin:100,hmin:100}},{required:1,id:2,title:{len:140}},{required:1,id:3,data:{type:1}},{required:0,id:4,data:{type:2}},{required:0,id:5,img:{type:1,wmin:20,hmin:20}}]},image:{required:!0},title:{required:!0},sponsoredBy:{required:!0},clickUrl:{required:!0},body:{required:!1},icon:{required:!1}}},h=q(a.h0),m=q(a.jO),b={img:1,js:2,1:"img",2:"js"},v={impression:1,"viewable-mrc50":2,"viewable-mrc100":3,"viewable-video50":4};function y(e){return e.native&&"object"==typeof e.native}function E(e){if(e&&e.type&&function(e){if(!e||!(0,o.mK)(Object.keys(p),e))return(0,r.vV)("".concat(e," nativeParam is not supported")),!1;return!0}(e.type)&&(e=p[e.type]),!e||!e.ortb||w(e.ortb))return e}function A(e){e.forEach(e=>{var t;const n=e.nativeParams||(null==e||null===(t=e.mediaTypes)||void 0===t?void 0:t.native);n&&(e.nativeParams=E(n)),e.nativeParams&&(e.nativeOrtbRequest=e.nativeParams.ortb||function(e){if(!e&&!(0,r.Qd)(e))return void(0,r.vV)("Native assets object is empty or not an object: ",e);const t={ver:"1.2",assets:[]};for(let n in e){if(a._B.includes(n))continue;if(!a.x5.hasOwnProperty(n)){(0,r.vV)("Unrecognized native asset code: ".concat(n,". Asset will be ignored."));continue}if("privacyLink"===n){t.privacy=1;continue}const i=e[n];let o=0;i.required&&(0,r.Lm)(i.required)&&(o=Number(i.required));const s={id:t.assets.length,required:o};if(n in a.h0)s.data={type:a.jO[a.h0[n]]},i.len&&(s.data.len=i.len);else if("icon"===n||"image"===n){if(s.img={type:"icon"===n?a.oA.ICON:a.oA.MAIN},i.aspect_ratios)if((0,r.cy)(i.aspect_ratios))if(i.aspect_ratios.length){const{min_width:e,min_height:t}=i.aspect_ratios[0];(0,r.Fq)(e)&&(0,r.Fq)(t)?(s.img.wmin=e,s.img.hmin=t):(0,r.vV)("image.aspect_ratios min_width or min_height are invalid: ",e,t);const n=i.aspect_ratios.filter(e=>e.ratio_width&&e.ratio_height).map(e=>"".concat(e.ratio_width,":").concat(e.ratio_height));n.length>0&&(s.img.ext={aspectratios:n})}else(0,r.vV)("image.aspect_ratios was passed, but it\'s empty:",i.aspect_ratios);else(0,r.vV)("image.aspect_ratios was passed, but it\'s not a an array:",i.aspect_ratios);i.sizes&&(2===i.sizes.length&&(0,r.Fq)(i.sizes[0])&&(0,r.Fq)(i.sizes[1])?(s.img.w=i.sizes[0],s.img.h=i.sizes[1],delete s.img.hmin,delete s.img.wmin):(0,r.vV)("image.sizes was passed, but its value is not an array of integers:",i.sizes))}else"title"===n?s.title={len:i.len||140}:"ext"===n&&(s.ext=i,delete s.required);t.assets.push(s)}return t}(e.nativeParams))})}function w(e){const t=e.assets;if(!Array.isArray(t)||0===t.length)return(0,r.vV)("assets in mediaTypes.native.ortb is not an array, or it\'s empty. Assets: ",t),!1;const n=t.map(e=>e.id);return t.length!==new Set(n).size||n.some(e=>e!==parseInt(e,10))?((0,r.vV)("each asset object must have \'id\' property, it must be unique and it must be an integer"),!1):e.hasOwnProperty("eventtrackers")&&!Array.isArray(e.eventtrackers)?((0,r.vV)("ortb.eventtrackers is not an array. Eventtrackers: ",e.eventtrackers),!1):t.every(e=>function(e){if(!(0,r.Qd)(e))return(0,r.vV)("asset must be an object. Provided asset: ",e),!1;if(e.img){if(!(0,r.Et)(e.img.w)&&!(0,r.Et)(e.img.wmin))return(0,r.vV)("for img asset there must be \'w\' or \'wmin\' property"),!1;if(!(0,r.Et)(e.img.h)&&!(0,r.Et)(e.img.hmin))return(0,r.vV)("for img asset there must be \'h\' or \'hmin\' property"),!1}else if(e.title){if(!(0,r.Et)(e.title.len))return(0,r.vV)("for title asset there must be \'len\' property defined"),!1}else if(e.data){if(!(0,r.Et)(e.data.type))return(0,r.vV)("for data asset \'type\' property must be a number"),!1}else if(e.video&&!(Array.isArray(e.video.mimes)&&Array.isArray(e.video.protocols)&&(0,r.Et)(e.video.minduration)&&(0,r.Et)(e.video.maxduration)))return(0,r.vV)("video asset is not properly configured"),!1;return!0}(e))}function I(e){var t;let{index:n=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=n.getAdUnit(e);if(!i)return!1;let a=i.nativeOrtbRequest;return function(e,t){var n;if(null==e||null===(n=e.link)||void 0===n||!n.url)return(0,r.vV)("native response doesn\'t have \'link\' property. Ortb response: ",e),!1;let i=t.assets.filter(e=>1===e.required).map(e=>e.id),s=e.assets.map(e=>e.id);const a=i.every(e=>(0,o.mK)(s,e));a||(0,r.vV)("didn\'t receive a bid with all required assets. Required ids: ".concat(i,", but received ids in response: ").concat(s));return a}((null===(t=e.native)||void 0===t?void 0:t.ortb)||_(e.native,a),a)}function T(e,t){const n=t.native.ortb||U(t.native);return"click"===e.action?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,{fetchURL:n=r.z$}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i;const r=(e.assets||[]).filter(e=>e.link).reduce((e,t)=>(e[t.id]=t.link,e),{}),o=(null===(i=e.link)||void 0===i?void 0:i.clicktrackers)||[];let s=r[t],a=o;s&&(a=s.clicktrackers||[]),a.forEach(e=>n(e))}else{var o;((null===(o=e.link)||void 0===o?void 0:o.clicktrackers)||[]).forEach(e=>n(e))}}(n,null==e?void 0:e.assetId):function(e){let{runMarkup:t=e=>(0,r.ro)(e),fetchURL:n=r.z$}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=(e.eventtrackers||[]).filter(e=>e.event===v.impression);let{img:o,js:s}=i.reduce((e,t)=>(b.hasOwnProperty(t.method)&&e[b[t.method]].push(t.url),e),{img:[],js:[]});e.imptrackers&&(o=o.concat(e.imptrackers));o.forEach(e=>n(e)),s=s.map(e=>\'<script async src="\'.concat(e,\'"><\\/script>\')),e.jstracker&&(s=s.concat([e.jstracker]));s.length&&t(s.join("\\n"))}(n),e.action}function O(e,t){var n;const i=null==t?void 0:t.nativeOrtbRequest,r=null===(n=e.native)||void 0===n?void 0:n.ortb;if(i&&r){const t=function(e,t){var n;const i={},r=(null==t?void 0:t.assets)||[];i.clickUrl=null===(n=e.link)||void 0===n?void 0:n.url,i.privacyLink=e.privacy;for(const t of(null==e?void 0:e.assets)||[]){const e=r.find(e=>t.id===e.id);if(t.title)i.title=t.title.text;else if(t.img){var o;i[(null==e||null===(o=e.img)||void 0===o?void 0:o.type)===a.oA.MAIN?"image":"icon"]={url:t.img.url,width:t.img.w,height:t.img.h}}else if(t.data){var s;i[h[m[null==e||null===(s=e.data)||void 0===s?void 0:s.type]]]=t.data.value}}i.impressionTrackers=[];let c=[];e.imptrackers&&i.impressionTrackers.push(...e.imptrackers);for(const t of(null==e?void 0:e.eventtrackers)||[])t.event===v.impression&&t.method===b.img&&i.impressionTrackers.push(t.url),t.event===v.impression&&t.method===b.js&&c.push(t.url);c=c.map(e=>\'<script async src="\'.concat(e,\'"><\\/script>\')),null!=e&&e.jstracker&&c.push(e.jstracker);c.length&&(i.javascriptTrackers=c.join("\\n"));return i}(r,i);Object.assign(e.native,t)}["rendererUrl","adTemplate"].forEach(n=>{var i;const r=null==t||null===(i=t.nativeParams)||void 0===i?void 0:i[n];r&&(e.native[n]=D(r))})}function C(e){var t,n;let{index:i=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};const o=i.getAdUnit(e),c=null==(null==o||null===(t=o.nativeParams)||void 0===t?void 0:t.ortb)&&!1!==(null==o||null===(n=o.nativeParams)||void 0===n?void 0:n.sendTargetingKeys),d=function(e){var t;const n={};null!=e&&null!==(t=e.nativeParams)&&void 0!==t&&t.ext&&Object.keys(e.nativeParams.ext).forEach(e=>{n[e]="hb_native_".concat(e)});return u(u({},a.x5),n)}(o),l=u(u({},e.native),e.native.ext);return delete l.ext,Object.keys(l).forEach(t=>{var n,i,s;const a=d[t];let l=D(e.native[t])||D(null==e||null===(n=e.native)||void 0===n||null===(n=n.ext)||void 0===n?void 0:n[t]);if("adTemplate"===t||!a||!l)return;let u=null==o||null===(i=o.nativeParams)||void 0===i||null===(i=i[t])||void 0===i?void 0:i.sendId;var f;"boolean"!=typeof u&&(u=null==o||null===(f=o.nativeParams)||void 0===f||null===(f=f.ext)||void 0===f||null===(f=f[t])||void 0===f?void 0:f.sendId);if(u){l="".concat(a,":").concat(e.adId)}let g=null==o||null===(s=o.nativeParams)||void 0===s||null===(s=s[t])||void 0===s?void 0:s.sendTargetingKeys;var p;"boolean"!=typeof g&&(g=null==o||null===(p=o.nativeParams)||void 0===p||null===(p=p.ext)||void 0===p||null===(p=p[t])||void 0===p?void 0:p.sendTargetingKeys);("boolean"==typeof g?g:c)&&(r[a]=l)}),r}function B(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];return Object.entries(e).filter(e=>{let[i,r]=e;return r&&(!1===n&&"ext"===i||null==t||t.includes(i))}).forEach(e=>{let[r,o]=e;!1===n&&"ext"===r?i.push(...B(o,t,!0)):(n||a.x5.hasOwnProperty(r))&&i.push({key:r,value:D(o)})}),i}function k(e,t,n){let{index:i=s.n.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const o={message:"assetResponse",adId:e.adId};let l=(0,c.vd)(t).native;return l?(o.native=Object.assign({},l),o.renderer=(0,d.k)(t),null!=n&&(l.assets=l.assets.filter(e=>{let{key:t}=e;return n.includes(t)}))):l=function(e,t,n){var i;const o=u(u({},(0,r.SH)(e.native,["rendererUrl","adTemplate"])),{},{assets:B(e.native,n),nativeKeys:a.x5});return e.native.ortb?o.ortb=e.native.ortb:null!==(i=t.mediaTypes)&&void 0!==i&&null!==(i=i.native)&&void 0!==i&&i.ortb&&(o.ortb=_(e.native,t.nativeOrtbRequest)),o}(t,i.getAdUnit(t),n),Object.assign(o,l)}const S=Object.fromEntries(Object.entries(a.x5).map(e=>{let[t,n]=e;return[n,t]}));function R(e,t){const n=e.assets.map(e=>S[e]);return k(e,t,n)}function j(e,t){return k(e,t,null)}function D(e){return(null==e?void 0:e.url)||e}function U(e){const t={link:{},eventtrackers:[]};return Object.entries(e).forEach(e=>{let[n,i]=e;switch(n){case"clickUrl":t.link.url=i;break;case"clickTrackers":t.link.clicktrackers=Array.isArray(i)?i:[i];break;case"impressionTrackers":(Array.isArray(i)?i:[i]).forEach(e=>{t.eventtrackers.push({event:v.impression,method:b.img,url:e})});break;case"javascriptTrackers":t.jstracker=Array.isArray(i)?i.join(""):i;break;case"privacyLink":t.privacy=i}}),t}function _(e,t){const n=u(u({},U(e)),{},{assets:[]});function i(e,i){let o=t.assets.find(e);null!=o&&(o=(0,r.Go)(o),i(o),n.assets.push(o))}return Object.keys(e).filter(t=>!!e[t]).forEach(t=>{const n=D(e[t]);switch(t){case"title":i(e=>null!=e.title,e=>{e.title={text:n}});break;case"image":case"icon":const e="image"===t?a.oA.MAIN:a.oA.ICON;i(t=>null!=t.img&&t.img.type===e,e=>{e.img={url:n}});break;default:t in a.h0&&i(e=>null!=e.data&&e.data.type===a.jO[a.h0[t]],e=>{e.data={value:n}})}}),n}function q(e){var t={};for(var n in e)t[e[n]]=n;return t}},555:(e,t,n)=>{function i(e,t,n){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.set(e,n)}function r(e,t){return e.get(s(e,t))}function o(e,t,n){return e.set(s(e,t),n),n}function s(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}n.d(t,{k:()=>u,v:()=>g});const a=0,c=1;var d=new WeakMap,l=new WeakMap;class u{static timeout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new u(t=>{0===e?t():setTimeout(t,e)})}constructor(e){if(i(this,d,void 0),i(this,l,void 0),"function"!=typeof e)throw new Error("resolver not a function");const t=[],n=[];let[r,s]=[a,c].map(e=>function(i){if(e===a&&"function"==typeof(null==i?void 0:i.then))i.then(r,s);else if(!t.length)for(t.push(e,i);n.length;)n.shift()()});try{e(r,s)}catch(e){s(e)}o(d,this,t),o(l,this,n)}then(e,t){const n=r(d,this);return new this.constructor((i,o)=>{const s=()=>{let r=n[1],[s,c]=n[0]===a?[e,i]:[t,o];if("function"==typeof s){try{r=s(r)}catch(e){return void o(e)}c=i}c(r)};n.length?s():r(l,this).push(s)})}catch(e){return this.then(null,e)}finally(e){let t;return this.then(n=>(t=n,e()),n=>(t=this.constructor.reject(n),e())).then(()=>t)}static race(e){return new this((t,n)=>{s(u,this,f).call(this,e,(e,i)=>e?t(i):n(i))})}static all(e){return new this((t,n)=>{let i=[];s(u,this,f).call(this,e,(e,t,r)=>e?i[r]=t:n(t),()=>t(i))})}static allSettled(e){return new this(t=>{let n=[];s(u,this,f).call(this,e,(e,t,i)=>n[i]=e?{status:"fulfilled",value:t}:{status:"rejected",reason:t},()=>t(n))})}static resolve(e){return new this(t=>t(e))}static reject(e){return new this((t,n)=>n(e))}}function f(e,t,n){let i=e.length;function r(){t.apply(this,arguments),--i<=0&&n&&n()}0===e.length&&n?n():e.forEach((e,t)=>this.resolve(e).then(e=>r(!0,e,t),e=>r(!1,e,t)))}function g(){let e,t,{promiseFactory:n=e=>new u(e)}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};function i(e){return t=>e(t)}return{promise:n((n,i)=>{e=n,t=i}),resolve:i(e),reject:i(t)}}},569:(e,t,n)=>{n.d(t,{Tn:()=>o,tW:()=>r,tp:()=>i});const i="prebid",r="bidder",o="analytics"},580:(e,t,n)=>{n.d(t,{R:()=>l});var i=n(811),r=n(441),o=n(139),s=n(901),a=n(69);const c=new WeakMap,d=["debugging","outstream","improvedigital","showheroes-bs","aaxBlockmeter","adagio","adloox","akamaidap","arcspan","airgrid","browsi","brandmetrics","clean.io","humansecurity","confiant","contxtful","hadron","mediafilter","medianet","azerionedge","a1Media","geoedge","qortex","dynamicAdBoost","51Degrees","symitridap","wurfl","justtag","tncId","ftrackId","id5"];function l(e,t,n,l,u,f){if(!(0,o.io)(i.pY,(0,r.s)(t,n)))return;if(!n||!e)return void(0,a.vV)("cannot load external script without url and moduleCode");if(!(0,s.mK)(d,n))return void(0,a.vV)("".concat(n," not whitelisted for loading external JavaScript"));u||(u=document);const g=m(u,e);if(g)return l&&"function"==typeof l&&(g.loaded?l():g.callbacks.push(l)),g.tag;const p=c.get(u)||{},h={loaded:!1,tag:null,callbacks:[]};return p[e]=h,c.set(u,p),l&&"function"==typeof l&&h.callbacks.push(l),(0,a.JE)("module ".concat(n," is loading external JavaScript")),function(t,n,i,r){i||(i=document);var o=i.createElement("script");o.type="text/javascript",o.async=!0;const s=m(i,e);s&&(s.tag=o);o.readyState?o.onreadystatechange=function(){"loaded"!==o.readyState&&"complete"!==o.readyState||(o.onreadystatechange=null,n())}:o.onload=function(){n()};o.src=t,r&&(0,a.Bg)(o,r);return(0,a._s)(o,i),o}(e,function(){h.loaded=!0;try{for(let e=0;e<h.callbacks.length;e++)h.callbacks[e]()}catch(e){(0,a.vV)("Error executing callback","adloader.js:loadExternalScript",e)}},u,f);function m(e,t){const n=c.get(e);return n&&n[t]?n[t]:null}}},597:(e,t,n)=>{n.d(t,{O:()=>o});var i=n(69);function r(e){let{src:t="client",bidder:n="",bidId:r,transactionId:o,adUnitId:s,auctionId:a}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var c=t,d=e||0;Object.assign(this,{bidderCode:n,width:0,height:0,statusMessage:function(){switch(d){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}(),adId:(0,i.s0)(),requestId:r,transactionId:o,adUnitId:s,auctionId:a,mediaType:"banner",source:c}),this.getStatusCode=function(){return d},this.getSize=function(){return this.width+"x"+this.height},this.getIdentifiers=function(){return{src:this.source,bidder:this.bidderCode,bidId:this.requestId,transactionId:this.transactionId,adUnitId:this.adUnitId,auctionId:this.auctionId}}}function o(e,t){return new r(e,t)}},604:(e,t,n)=>{n.d(t,{Dk:()=>s,Ii:()=>o,TQ:()=>g,XG:()=>l,ZI:()=>p,Zw:()=>d,bt:()=>u,e3:()=>f,iK:()=>a,q7:()=>c});var i=n(569),r=n(214);const o="component",s=o+"Type",a=o+"Name",c="adapterCode",d="storageType",l="configName",u="syncType",f="syncUrl",g="_config";function p(e){return function(t,n,r){const d={[s]:t,[a]:n,[o]:"".concat(t,".").concat(n)};return t===i.tW&&(d[c]=e(n)),h(Object.assign(d,r))}}const h=(0,r.A_)("sync",e=>e)},693:(e,t,n)=>{n.d(t,{u:()=>u});var i=n(433),r=n(69),o=n(873),s=n(969);function a(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function c(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}var d=new WeakSet;function l(e){return null==e?this.defaultScope:e}const u=new class{constructor(e,t){a(this,d),this.getSettings=e,this.defaultScope=t}get(e,t){let n=this.getOwn(e,t);return void 0===n&&(n=this.getOwn(null,t)),n}getOwn(e,t){return e=c(d,this,l).call(this,e),(0,i.A)(this.getSettings(),"".concat(e,".").concat(t))}getScopes(){return Object.keys(this.getSettings()).filter(e=>e!==this.defaultScope)}settingsFor(e){return(0,r.D9)({},this.ownSettingsFor(null),this.ownSettingsFor(e))}ownSettingsFor(e){return e=c(d,this,l).call(this,e),this.getSettings()[e]||{}}}(()=>(0,o.m)().bidderSettings||{},s.iD.BD_SETTING_STANDARD)},713:(e,t,n)=>{function i(e,t){return e===t?0:e<t?-1:1}function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e=>e;return(t,n)=>i(e(t),e(n))}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>-e(t,n)||0}function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e,n){for(const i of t){const t=i(e,n);if(0!==t)return t}return 0}}function a(){return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i;return(t,n)=>e(n,t)<0?n:t}(o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:i))}n.d(t,{Bq:()=>u,Vk:()=>l});const c=r(e=>e.cpm),d=r(e=>e.responseTimestamp),l=a(s(c,o(r(e=>e.timeToRespond)))),u=a(s(c,o(d)));a(s(c,d))},779:(e,t,n)=>{n.d(t,{Yl:()=>I,iS:()=>B,uW:()=>w});var i=n(881),r=n(863),o=n(693),s=n(272),a=n(969),c=n(23),d=n(214),l=n(371),u=n(449),f=n(901),g=n(69),p=n(433),h=n(713),m=[];const b=20,v="targetingControls.allowTargetingKeys",y="targetingControls.addTargetingKeys",E=\'Only one of "\'.concat(v,\'" or "\').concat(y,\'" can be set\'),A=Object.keys(a.xS).map(e=>a.xS[e]);let w={isActualBid:e=>e.getStatusCode()===a.XQ.GOOD,isBidNotExpired:e=>e.responseTimestamp+1e3*(0,r.cT)(e)>(0,g.vE)(),isUnusedBid:e=>e&&(e.status&&!(0,f.mK)([a.tl.RENDERED],e.status)||!e.status)};function I(e){return!Object.values(w).some(t=>!t(e))}const T=(0,d.A_)("sync",function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;if(!i){const i=[],o=s.$W.getConfig("sendBidsControl.dealPrioritization");let a=(0,g.$z)(e,"adUnitCode");return Object.keys(a).forEach(e=>{let s=[],c=(0,g.$z)(a[e],"bidderCode");Object.keys(c).forEach(e=>{s.push(c[e].reduce(t))}),n?(s=o?s.sort(O(!0)):s.sort((e,t)=>t.cpm-e.cpm),i.push(...s.slice(0,n))):(s=s.sort(r),i.push(...s))}),i}return e});function O(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t,n){return void 0!==t.adserverTargeting.hb_deal&&void 0===n.adserverTargeting.hb_deal?-1:void 0===t.adserverTargeting.hb_deal&&void 0!==n.adserverTargeting.hb_deal?1:e?n.cpm-t.cpm:n.adserverTargeting.hb_pb-t.adserverTargeting.hb_pb}}function C(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>window.googletag.pubads().getSlots())().reduce((e,n)=>{const i=(0,g.fp)(t)&&t(n);return Object.keys(e).filter((0,g.fp)(i)?i:(0,g.iC)(n)).forEach(t=>e[t].push(n)),e},Object.fromEntries(e.map(e=>[e,[]])))}const B=function(e){let t={},n={};function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const i=A.concat(u.Nh),r=s.$W.getConfig("targetingControls.allowSendAllBidsTargetingKeys"),o=r?r.map(e=>a.xS[e]):i;return e.reduce((e,r)=>{if(t||n&&r.dealId){const t=function(e,t){return t.reduce((t,n)=>(e.adserverTargeting[n]&&t.push({["".concat(n,"_").concat(e.bidderCode).substring(0,20)]:[e.adserverTargeting[n]]}),t),[])}(r,i.filter(e=>void 0!==r.adserverTargeting[e]&&(n||-1!==o.indexOf(e))));t&&e.push({[r.adUnitCode]:t})}return e},[])}function r(t){return"string"==typeof t?[t]:(0,g.cy)(t)?t:e.getAdUnitCodes()||[]}function w(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h.Bq,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,r=e.getBidsReceived().reduce((e,t)=>{const i=s.$W.getConfig("useBidCache"),r=s.$W.getConfig("bidCacheFilterFunction"),o=n[t.adUnitCode]===t.auctionId,a=!(i&&!o&&"function"==typeof r)||!!r(t);return(i||o)&&a&&(0,p.A)(t,"video.context")!==l.LM&&I(t)&&(t.latestTargetedAuctionId=n[t.adUnitCode],e.push(t)),e},[]);return T(r,t,void 0,void 0,void 0,i)}function B(){return e.getStandardBidderAdServerTargeting().map(e=>e.key).concat(A).filter(g.hj)}return t.setLatestAuctionForAdUnit=function(e,t){n[e]=t},t.resetPresetTargeting=function(e,t){if((0,g.II)()){const n=r(e);Object.values(C(n,t)).forEach(e=>{e.forEach(e=>{!function(e){m.forEach(t=>{e.getTargeting(t)&&e.clearTargeting(t)})}(e)})})}},t.resetPresetTargetingAST=function(e){r(e).forEach(function(e){const t=window.apntag.getTag(e);if(t&&t.keywords){const n=Object.keys(t.keywords),i={};n.forEach(e=>{(0,f.mK)(m,e.toLowerCase())||(i[e]=t.keywords[e])}),window.apntag.modifyTag(e,{keywords:i})}})},t.getAllTargeting=function(t,n,c){let d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:h.Vk,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.Q0;c||(c=w(d,l));const A=r(t),I=s.$W.getConfig("enableSendAllBids"),C=s.$W.getConfig("sendBidsControl.bidLimit"),k=I&&(n||C)||0,{customKeysByUnit:S,filteredBids:R}=function(e,t){const n=[],i={},r=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return t.forEach(t=>{const s=(0,f.mK)(e,t.adUnitCode),a=!0===o.u.get(t.bidderCode,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,c=r&&t.dealId;s&&(c||a)&&(n.push(t),Object.keys(t.adserverTargeting).filter(function(){let e=B();e=e.concat(u.Nh);return function(t){return-1===e.indexOf(t)}}()).forEach(e=>{const n=e.substring(0,b),r=i[t.adUnitCode]||{},o=[t.adserverTargeting[e]];r[n]?r[n]=r[n].concat(o).filter(g.hj):r[n]=o,i[t.adUnitCode]=r}))}),{filteredBids:n,customKeysByUnit:i}}(A,c);let j=function(t,n){const r=function(e){let t=[],n=e.reduce((e,n)=>((0,f.mK)(t,n.adUnitCode)||(e.push(n),t.push(n.adUnitCode)),e),[]),i=B();return n=n.map(e=>({[e.adUnitCode]:Object.keys(e.adserverTargeting).filter(t=>void 0===e.sendStandardTargeting||e.sendStandardTargeting||-1===i.indexOf(t)).reduce((t,n)=>{const i=[e.adserverTargeting[n]],r={[n.substring(0,b)]:i};if(n===a.xS.DEAL){const o="".concat(n,"_").concat(e.bidderCode).substring(0,b),s={[o]:i};return[...t,r,s]}return[...t,r]},[])})),n}(t).concat(function(e,t){return e.reduce((e,n)=>{const i=Object.assign({},n),r=t[i.adUnitCode],o=[];return r&&Object.keys(r).forEach(e=>{e&&r[e]&&o.push({[e]:r[e]})}),e.push({[i.adUnitCode]:o}),e},[])}(t,n)).concat(function(e){const t=s.$W.getConfig("targetingControls.alwaysIncludeDeals");return i(e,s.$W.getConfig("enableSendAllBids"),t)}(t)).concat(function(){function t(e){return(0,p.A)(e,a.iD.ADSERVER_TARGETING)}function n(e){const n=t(e);return Object.keys(n).map(function(e){return(0,g.O8)(n[e])&&(n[e]=n[e].split(",").map(e=>e.trim())),(0,g.cy)(n[e])||(n[e]=[n[e]]),{[e]:n[e]}})}return e.getAdUnits().filter(e=>t(e)).reduce((e,t)=>{const i=n(t);return i&&e.push({[t.code]:i}),e},[])}());return r.forEach(e=>{!function(e){Object.keys(e).forEach(t=>{e[t].forEach(e=>{const t=Object.keys(e);-1===m.indexOf(t[0])&&(m=t.concat(m))})})}(e)}),r}(T(R,d,k,void 0,l),S);const D=Object.keys(Object.assign({},a.Zh,a.x5));let U=s.$W.getConfig(v);const _=s.$W.getConfig(y);if(null!=_&&null!=U)throw new Error(E);U=null!=_?D.concat(_):U||D,Array.isArray(U)&&U.length>0&&(j=function(e,t){const n=Object.assign({},a.xS,a.x5),i=Object.keys(n),r={};(0,g.fH)("allowTargetingKeys - allowed keys [ ".concat(t.map(e=>n[e]).join(", ")," ]")),e.map(e=>{const o=Object.keys(e)[0],s=e[o].filter(e=>{const o=Object.keys(e)[0],s=0===i.filter(e=>0===o.indexOf(n[e])).length||(0,f.I6)(t,e=>{const t=n[e];return 0===o.indexOf(t)});return r[o]=!s,s});e[o]=s});const o=Object.keys(r).filter(e=>r[e]);return(0,g.fH)("allowTargetingKeys - removed keys [ ".concat(o.join(", ")," ]")),e.filter(e=>e[Object.keys(e)[0]].length>0)}(j,U)),j=function(e){let t=e.map(e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].map(e=>({[Object.keys(e)[0]]:e[Object.keys(e)[0]].join(",")})).reduce((e,t)=>Object.assign(t,e),{})}));return t=t.reduce(function(e,t){var n=Object.keys(t)[0];return e[n]=Object.assign({},e[n],t[n]),e},{}),t}(j);const q=s.$W.getConfig("targetingControls.auctionKeyMaxChars");return q&&((0,g.fH)("Detected \'targetingControls.auctionKeyMaxChars\' was active for this auction; set with a limit of ".concat(q," characters. Running checks on auction keys...")),j=function(e,t){let n=(0,g.Go)(e),i=Object.keys(n).map(e=>({adUnitCode:e,adserverTargeting:n[e]})).sort(O());return i.reduce(function(e,i,r,o){let s=(a=i.adserverTargeting,Object.keys(a).reduce(function(e,t){return e+"".concat(t,"%3d").concat(encodeURIComponent(a[t]),"%26")},""));var a;r+1===o.length&&(s=s.slice(0,-3));let c=i.adUnitCode,d=s.length;return d<=t?(t-=d,(0,g.fH)("AdUnit \'".concat(c,"\' auction keys comprised of ").concat(d," characters. Deducted from running threshold; new limit is ").concat(t),n[c]),e[c]=n[c]):(0,g.JE)("The following keys for adUnitCode \'".concat(c,"\' exceeded the current limit of the \'auctionKeyMaxChars\' setting.\\nThe key-set size was ").concat(d,", the current allotted amount was ").concat(t,".\\n"),n[c]),r+1===o.length&&0===Object.keys(e).length&&(0,g.vV)("No auction targeting keys were permitted due to the setting in setConfig(targetingControls.auctionKeyMaxChars). Please review setup and consider adjusting."),e},{})}(j,q)),A.forEach(e=>{j[e]||(j[e]={})}),j},s.$W.getConfig("targetingControls",function(e){null!=(0,p.A)(e,v)&&null!=(0,p.A)(e,y)&&(0,g.vV)(E)}),t.setTargetingForGPT=(0,d.A_)("sync",function(n,i){let r=t.getAllTargeting(n),o=Object.fromEntries(m.map(e=>[e,null]));Object.entries(C(Object.keys(r),i)).forEach(e=>{let[t,n]=e;n.forEach(e=>{Object.keys(r[t]).forEach(e=>{let n=r[t][e];"string"==typeof n&&-1!==n.indexOf(",")&&(n=n.split(",")),r[t][e]=n}),(0,g.OG)("Attempting to set targeting-map for slot: ".concat(e.getSlotElementId()," with targeting-map:"),r[t]),e.updateTargetingFromMap(Object.assign({},o,r[t]))})}),Object.keys(r).forEach(t=>{Object.keys(r[t]).forEach(n=>{"hb_adid"===n&&e.setStatusForBids(r[t][n],a.tl.BID_TARGETING_SET)})}),t.targetingDone(r),c.Ic(a.qY.SET_TARGETING,r)},"setTargetingForGPT"),t.targetingDone=(0,d.A_)("sync",function(e){return e},"targetingDone"),t.getWinningBids=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.Vk,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:g.Q0;const a=[],c=t||w(n,i),d=r(e);return c.reduce((e,t)=>{const n=t.adUnitCode,i=!0===o.u.get(n,"allowZeroCpmBids")?t.cpm>=0:t.cpm>0,r=s.$W.getConfig("targetingControls.alwaysIncludeDeals")&&t.dealId;return(0,f.mK)(d,n)&&!(0,f.mK)(a,n)&&(r||i)&&(e.push(t),a.push(n)),e},[])},t.setTargetingForAst=function(e){let n=t.getAllTargeting(e);try{t.resetPresetTargetingAST(e)}catch(e){(0,g.vV)("unable to reset targeting for AST"+e)}Object.keys(n).forEach(e=>Object.keys(n[e]).forEach(t=>{if((0,g.OG)("Attempting to set targeting for targetId: ".concat(e," key: ").concat(t," value: ").concat(n[e][t])),(0,g.O8)(n[e][t])||(0,g.cy)(n[e][t])){let i={},r=/pt[0-9]/;t.search(r)<0?i[t.toUpperCase()]=n[e][t]:i[t]=n[e][t],window.apntag.setKeywords(e,i,{overrideKeyValue:!0})}}))},t.isApntagDefined=function(){if(window.apntag&&(0,g.fp)(window.apntag.setKeywords))return!0},t}(i.n)},789:(e,t,n)=>{n.d(t,{A4:()=>l,J7:()=>u,Pg:()=>f});var i=n(580),r=n(69),o=n(901),s=n(873),a=n(569);const c=(0,s.m)(),d="outstream";function l(e){const{url:t,config:n,id:s,callback:l,loaded:u,adUnitCode:f,renderNow:g}=e;this.url=t,this.config=n,this.handlers={},this.id=s,this.renderNow=g,this.loaded=u,this.cmd=[],this.push=e=>{"function"==typeof e?this.loaded?e.call():this.cmd.push(e):(0,r.vV)("Commands given to Renderer.push must be wrapped in a function")},this.callback=l||(()=>{this.loaded=!0,this.process()}),this.render=function(){const e=arguments,n=()=>{this._render?this._render.apply(this,e):(0,r.JE)("No render function was provided, please use .setRender on the renderer")};!function(e){var t;const n=c.adUnits,i=(0,o.I6)(n,t=>t.code===e);if(!i)return!1;const r=null==i?void 0:i.renderer,s=!!(r&&r.url&&r.render),a=null==i||null===(t=i.mediaTypes)||void 0===t||null===(t=t.video)||void 0===t?void 0:t.renderer,d=!!(a&&a.url&&a.render);return!!(s&&!0!==r.backupOnly||d&&!0!==a.backupOnly)}(f)?g?n():(this.cmd.unshift(n),(0,i.R)(t,a.tp,d,this.callback,this.documentContext)):((0,r.JE)("External Js not loaded by Renderer since renderer url and callback is already defined on adUnit ".concat(f)),n())}.bind(this)}function u(e){return!(!e||!e.url&&!e.renderNow)}function f(e,t,n){let i=null;e.config&&e.config.documentResolver&&(i=e.config.documentResolver(t,document,n)),i||(i=document),e.documentContext=i,e.render(t,e.documentContext)}l.install=function(e){let{url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a}=e;return new l({url:t,config:n,id:i,callback:r,loaded:o,adUnitCode:s,renderNow:a})},l.prototype.getConfig=function(){return this.config},l.prototype.setRender=function(e){this._render=e},l.prototype.setEventHandlers=function(e){this.handlers=e},l.prototype.handleVideoEvent=function(e){let{id:t,eventName:n}=e;"function"==typeof this.handlers[n]&&this.handlers[n](),(0,r.OG)("Prebid Renderer event for id ".concat(t," type ").concat(n))},l.prototype.process=function(){for(;this.cmd.length>0;)try{this.cmd.shift().call()}catch(e){(0,r.vV)("Error processing Renderer command: ",e)}}},811:(e,t,n)=>{n.d(t,{DL:()=>c,Ml:()=>r,Ue:()=>i,VJ:()=>l,hE:()=>d,hq:()=>a,mo:()=>s,pY:()=>u,uc:()=>o});const i="accessDevice",r="syncUser",o="fetchBids",s="reportAnalytics",a="transmitEids",c="transmitUfpd",d="transmitPreciseGeo",l="transmitTid",u="loadExternalScript"},833:(e,t,n)=>{n.d(t,{j:()=>f,q:()=>p});var i=n(901),r=n(69),o=n(272);const s=2,a={buckets:[{max:5,increment:.5}]},c={buckets:[{max:20,increment:.1}]},d={buckets:[{max:20,increment:.01}]},l={buckets:[{max:3,increment:.01},{max:8,increment:.05},{max:20,increment:.5}]},u={buckets:[{max:5,increment:.05},{max:10,increment:.1},{max:20,increment:.5}]};function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=parseFloat(e);return isNaN(i)&&(i=""),{low:""===i?"":g(e,a,n),med:""===i?"":g(e,c,n),high:""===i?"":g(e,d,n),auto:""===i?"":g(e,u,n),dense:""===i?"":g(e,l,n),custom:""===i?"":g(e,t,n)}}function g(e,t,n){let a="";if(!p(t))return a;const c=t.buckets.reduce((e,t)=>e.max>t.max?e:t,{max:0});let d=0,l=(0,i.I6)(t.buckets,t=>{if(e>c.max*n){let e=t.precision;void 0===e&&(e=s),a=(t.max*n).toFixed(e)}else{if(e<=t.max*n&&e>=d*n)return t.min=d,t;d=t.max}});return l&&(a=function(e,t,n){const i=void 0!==t.precision?t.precision:s,a=t.increment*n,c=t.min*n;let d=Math.floor,l=o.$W.getConfig("cpmRoundingFunction");"function"==typeof l&&(d=l);let u,f,g=Math.pow(10,i+2),p=(e*g-c*g)/(a*g);try{u=d(p)*a+c}catch(e){f=!0}(f||"number"!=typeof u)&&((0,r.JE)("Invalid rounding function passed in config"),u=Math.floor(p)*a+c);return u=Number(u.toFixed(10)),u.toFixed(i)}(e,l,n)),a}function p(e){if((0,r.Im)(e)||!e.buckets||!Array.isArray(e.buckets))return!1;let t=!0;return e.buckets.forEach(e=>{e.max&&e.increment||(t=!1)}),t}},853:(e,t,n)=>{n.d(t,{H:()=>l});var i=n(555),r=n(69);let o=null,s=0,a=[];function c(){document.hidden?o=Date.now():(s+=Date.now()-(null!=o?o:0),o=null,a.forEach(e=>{let{callback:t,startTime:n,setTimerId:i}=e;return i(d(t,s-n)())}),a=[])}function d(e,t){const n=s;let i=setTimeout(()=>{s===n&&null==o?e():null!=o?a.push({callback:e,startTime:n,setTimerId(e){i=e}}):i=d(e,s-n)()},t);return()=>i}function l(){let{startTime:e=r.vE,ttl:t=()=>null,monotonic:n=!1,slack:o=5e3}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const s=new Map,a=[],c=[],l=n?e=>c.push(e):e=>c.splice((0,r.El)(c,e,e=>e.expiry),0,e);let u,f;function g(){if(f&&clearTimeout(f),c.length>0){const e=(0,r.vE)();u=Math.max(e,c[0].expiry+o),f=d(()=>{const e=(0,r.vE)();let t=0;for(const n of c){if(n.expiry>e)break;a.forEach(e=>{try{e(n.item)}catch(e){(0,r.vV)(e)}}),s.delete(n.item),t++}c.splice(0,t),f=null,g()},u-e)}else f=null}function p(n){const r={},s=h;let a;const[c,d]=Object.entries({start:e,delta:t}).map(e=>{let t,[c,d]=e;return function(){const e=t={};i.k.resolve(d(n)).then(n=>{e===t&&(r[c]=n,s===h&&null!=r.start&&null!=r.delta&&(a=r.start+r.delta,l(p),(null==f||u>a+o)&&g()))})}}),p={item:n,refresh:d,get expiry(){return a}};return c(),d(),p}let h={};return{[Symbol.iterator]:()=>s.keys(),add(e){!s.has(e)&&s.set(e,p(e))},clear(){c.length=0,g(),s.clear(),h={}},toArray:()=>Array.from(s.keys()),refresh(){c.length=0,g();for(const e of s.values())e.refresh()},onExpiry:e=>(a.push(e),()=>{const t=a.indexOf(e);t>=0&&a.splice(t,1)})}}document.addEventListener("visibilitychange",c)},863:(e,t,n)=>{n.d(t,{S9:()=>l,cT:()=>d,lc:()=>u});var i=n(272),r=n(69);const o="minBidCacheTTL";let s=1,a=null;const c=[];function d(e){return e.ttl-(e.hasOwnProperty("ttlBuffer")?e.ttlBuffer:s)}function l(){return a}function u(e){c.push(e)}i.$W.getConfig("ttlBuffer",e=>{"number"==typeof e.ttlBuffer?s=e.ttlBuffer:(0,r.vV)("Invalid value for ttlBuffer",e.ttlBuffer)}),i.$W.getConfig(o,e=>{const t=a;a=null==e?void 0:e[o],a="number"==typeof a?a:null,t!==a&&c.forEach(e=>e(a))})},873:(e,t,n)=>{n.d(t,{E:()=>s,m:()=>o});const i=window,r=i.pbjs=i.pbjs||{};function o(){return r}function s(e){r.installedModules.push(e)}r.cmd=r.cmd||[],r.que=r.que||[],i===window&&(i._pbjsGlobals=i._pbjsGlobals||[],i._pbjsGlobals.push("pbjs"))},881:(e,t,n)=>{n.d(t,{n:()=>Z});var i=n(69),r=n(833),o=n(449),s=n(44),a=n(272);function c(e){let{index:t=Z.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=e.vastXml?e.vastXml:function(e,t){let n=(t=t&&(Array.isArray(t)?t:[t]))?t.map(e=>"<Impression><![CDATA[".concat(e,"]]></Impression>")).join(""):"";return\'<VAST version="3.0">\\n <Ad>\\n <Wrapper>\\n <AdSystem>prebid.org wrapper</AdSystem>\\n <VASTAdTagURI><![CDATA[\'.concat(e,"]]></VASTAdTagURI>\\n ").concat(n,"\\n <Creatives></Creatives>\\n </Wrapper>\\n </Ad>\\n </VAST>")}(e.vastUrl,e.vastImpUrl),i=t.getAuction(e);let r={type:"xml",value:n,ttlseconds:Number(e.ttl)+15};return a.$W.getConfig("cache.vasttrack")&&(r.bidder=e.bidder,r.bidid=e.requestId,r.aid=e.auctionId),null!=i&&(r.timestamp=i.getAuctionStart()),"string"==typeof e.customCacheKey&&""!==e.customCacheKey&&(r.key=e.customCacheKey),r}const d={store:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.g4;const i={puts:e.map(c)};n(a.$W.getConfig("cache.timeout"))(a.$W.getConfig("cache.url"),function(e){return{success:function(t){let n;try{n=JSON.parse(t).responses}catch(t){return void e(t,[])}n?e(null,n):e(new Error("The cache server didn\'t respond with a responses property."),[])},error:function(t,n){e(new Error("Error storing video ad in the cache: ".concat(t,": ").concat(JSON.stringify(n))),[])}}}(t),JSON.stringify(i),{contentType:"text/plain",withCredentials:!0})}};function l(e){const t=e.map(e=>e.bidResponse);d.store(t,function(n,r){var o;n?(o=n,(0,i.vV)("Failed to save to the video cache: ".concat(o,". Video bids will be discarded:"),t)):e.length!==r.length?(0,i.vV)("expected ".concat(e.length," cache IDs, got ").concat(r.length," instead")):r.forEach((t,n)=>{const{auctionInstance:r,bidResponse:o,afterBidAdded:s}=e[n];var c;""===t.uuid?(0,i.JE)("Supplied video cache key was already in use by Prebid Cache; caching attempt was rejected. Video bid must be discarded."):(o.videoCacheKey=t.uuid,o.vastUrl||(o.vastUrl=(c=o.videoCacheKey,"".concat(a.$W.getConfig("cache.url"),"?uuid=").concat(c))),V(r,o),s())})})}let u,f;a.$W.getConfig("cache",e=>{u="number"==typeof e.cache.batchSize&&e.cache.batchSize>0?e.cache.batchSize:1,f="number"==typeof e.cache.batchTimeout&&e.cache.batchTimeout>0?e.cache.batchTimeout:0});const g=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:setTimeout,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:l,n=[[]],i=!1;const r=e=>e();return function(o,s,a){const c=f>0?e:r;n[n.length-1].length>=u&&n.push([]),n[n.length-1].push({auctionInstance:o,bidResponse:s,afterBidAdded:a}),i||(i=!0,c(()=>{n.forEach(t),n=[[]],i=!1},f))}}();var p=n(789),h=n(230),m=n(214),b=n(901),v=n(895),y=n(371),E=n(693),A=n(23),w=n(46),I=n(969),T=n(555),O=n(894);var C=n(873),B=n(853),k=n(863);const{syncUsers:S}=h.zt,R="completed";A.on(I.qY.BID_ADJUSTMENT,function(e){!function(e){let t=function(e,t,n){var r;let{index:o=Z.index,bs:s=E.u}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n=n||o.getBidRequest(t);const a=null==t?void 0:t.adapterCode,c=(null==t?void 0:t.bidderCode)||(null===(r=n)||void 0===r?void 0:r.bidder),d=s.get(null==t?void 0:t.adapterCode,"adjustAlternateBids"),l=s.getOwn(c,"bidCpmAdjustment")||s.get(d?a:c,"bidCpmAdjustment");if(l&&"function"==typeof l)try{return l(e,Object.assign({},t),n)}catch(e){(0,i.vV)("Error during bid adjustment",e)}return e}(e.cpm,e);t>=0&&(e.cpm=t)}(e)});const j={},D={},U=[],_=(0,C.m)();function q(e){let{adUnits:t,adUnitCodes:n,callback:s,cbTimeout:c,labels:d,auctionId:l,ortb2Fragments:u,metrics:f}=e;f=(0,O.BO)(f);const g=t,h=d,m=n,E=l||(0,i.lk)(),C=c,q=new Set,F=(0,T.v)(),H=(0,T.v)();let L,$,z,J,K=[],Q=s,X=[],ee=(0,B.H)({startTime:e=>e.responseTimestamp,ttl:e=>null==(0,k.S9)()?null:1e3*Math.max((0,k.S9)(),e.ttl)}),te=[],ne=[],ie=[];function re(){return{auctionId:E,timestamp:L,auctionEnd:$,auctionStatus:J,adUnits:g,adUnitCodes:m,labels:h,bidderRequests:X,noBids:te,bidsReceived:ee.toArray(),bidsRejected:K,winningBids:ne,timeout:C,metrics:f,seatNonBids:ie}}function oe(e){if(e?A.Ic(I.qY.AUCTION_TIMEOUT,re()):clearTimeout(z),void 0===$){let n=[];e&&((0,i.OG)("Auction ".concat(E," timedOut")),n=X.filter(e=>!q.has(e.bidderRequestId)).flatMap(e=>e.bids),n.length&&A.Ic(I.qY.BID_TIMEOUT,n)),J=R,$=Date.now(),f.checkpoint("auctionEnd"),f.timeBetween("requestBids","auctionEnd","requestBids.total"),f.timeBetween("callBids","auctionEnd","requestBids.callBids"),F.resolve(),A.Ic(I.qY.AUCTION_END,re()),W(g,function(){try{if(null!=Q){const t=ee.toArray().filter(e=>m.includes(e.adUnitCode)).reduce(Y,{});Q.apply(_,[t,e,E]),Q=null}}catch(e){(0,i.vV)("Error executing bidsBackHandler",null,e)}finally{n.length&&w.Ay.callTimedOutBidders(t,n,C);let e=a.$W.getConfig("userSync")||{};e.enableOverride||S(e.syncDelay)}})}}function se(){a.$W.resetBidder(),(0,i.fH)("Bids Received for Auction with id: ".concat(E),ee.toArray()),J=R,oe(!1)}function ae(e){q.add(e)}function ce(e){e.forEach(e=>{var t;t=e,X=X.concat(t)});let t={},n={bidRequests:e,run:()=>{z=setTimeout(()=>oe(!0),C),J="inProgress",A.Ic(I.qY.AUCTION_INIT,re());let n=function(e,t){let{index:n=Z.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=0,c=!1,d=new Set,l={};function u(){s--,c&&0===s&&e()}function f(e,t,n){return l[t.requestId]=!0,function(e,t){let{index:n=Z.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=n.getBidderRequest(e),o=n.getAdUnit(e),s=r&&r.start||e.requestTimestamp;Object.assign(e,{responseTimestamp:e.responseTimestamp||(0,i.vE)(),requestTimestamp:e.requestTimestamp||s,cpm:parseFloat(e.cpm)||0,bidder:e.bidder||e.bidderCode,adUnitCode:t}),null!=(null==o?void 0:o.ttlBuffer)&&(e.ttlBuffer=o.ttlBuffer);e.timeToRespond=e.responseTimestamp-e.requestTimestamp}(t,e),s++,n(u)}function g(e,s){f(e,s,e=>{let c=function(e){var t;let{index:n=Z.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};A.Ic(I.qY.BID_ADJUSTMENT,e);const i=(null===(t=n.getBidRequest(e))||void 0===t?void 0:t.renderer)||n.getAdUnit(e).renderer,o=e.mediaType,s=n.getMediaTypes(e),c=s&&s[o];var d=c&&c.renderer,l=null;!d||!d.render||!0===d.backupOnly&&e.renderer?!i||!i.render||!0===i.backupOnly&&e.renderer||(l=i):l=d;l&&(e.renderer=p.A4.install({url:l.url,config:l.options,renderNow:null==l.url}),e.renderer.setRender(l.render));const u=G(e.mediaType,s,a.$W.getConfig("mediaTypePriceGranularity")),f=(0,r.j)(e.cpm,"object"==typeof u?u:a.$W.getConfig("customPriceBucket"),a.$W.getConfig("currency.granularityMultiplier"));return e.pbLg=f.low,e.pbMg=f.med,e.pbHg=f.high,e.pbAg=f.auto,e.pbDg=f.dense,e.pbCg=f.custom,e}(s);A.Ic(I.qY.BID_ACCEPTED,c),c.mediaType===y.G_?function(e,t,n){var r;let{index:o=Z.index}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=!0;const c=null===(r=o.getMediaTypes({requestId:t.originalRequestId||t.requestId,adUnitId:t.adUnitId}))||void 0===r?void 0:r.video,d=c&&(null==c?void 0:c.context),l=c&&(null==c?void 0:c.useCacheKey);a.$W.getConfig("cache.url")&&(l||d!==v.H6)&&(!t.videoCacheKey||a.$W.getConfig("cache.ignoreBidderCacheKey")?(s=!1,M(e,t,n,c)):t.vastUrl||((0,i.vV)("videoCacheKey specified but not required vastUrl for video bid"),s=!1));s&&(V(e,t),n())}(t,c,e):((0,o.l6)(c)&&(0,o.gs)(c,n.getAdUnit(c)),V(t,c),e())})}function h(e,n,r){return f(e,n,e=>{n.rejectionReason=r,(0,i.JE)("Bid from ".concat(n.bidder||"unknown bidder"," was rejected: ").concat(r),n),A.Ic(I.qY.BID_REJECTED,n),t.addBidRejected(n),e()})}function m(){let n=this,r=t.getBidRequests();const o=a.$W.getConfig("auctionOptions");if(d.add(n),o&&!(0,i.Im)(o)){const e=o.secondaryBidders;e&&!r.every(t=>(0,b.mK)(e,t.bidderCode))&&(r=r.filter(t=>!(0,b.mK)(e,t.bidderCode)))}c=r.every(e=>d.has(e)),n.bids.forEach(e=>{l[e.bidId]||(t.addNoBid(e),A.Ic(I.qY.NO_BID,e))}),c&&0===s&&e()}return{addBidResponse:function(){function e(e,t){x.call({dispatch:g},e,t,(()=>{let n=!1;return i=>{n||(h(e,t,i),n=!0)}})())}return e.reject=h,e}(),adapterDone:function(){N(T.k.resolve()).finally(()=>m.call(this))}}}(se,this);w.Ay.callBids(g,e,n.addBidResponse,n.adapterDone,{request(e,n){c(j,n),c(t,e),D[e]||(D[e]={SRA:!0,origin:n}),t[e]>1&&(D[e].SRA=!1)},done(e){j[e]--,U[0]&&s(U[0])&&U.shift()}},C,ae,u),H.resolve()}};function s(e){let t=!0,n=a.$W.getConfig("maxRequestsPerOrigin")||4;return e.bidRequests.some(e=>{let i=1,r=void 0!==e.src&&e.src===I.RW.SRC?"s2s":e.bidderCode;return D[r]&&(!1===D[r].SRA&&(i=Math.min(e.bids.length,n)),j[D[r].origin]+i>n&&(t=!1)),!t}),t&&e.run(),t}function c(e,t){void 0===e[t]?e[t]=1:e[t]++}s(n)||((0,i.JE)("queueing auction due to limited endpoint capacity"),U.push(n))}return(0,k.lc)(()=>ee.refresh()),A.on(I.qY.SEAT_NON_BID,e=>{var t;e.auctionId===E&&(t=e.seatnonbid,ie=ie.concat(t))}),{addBidReceived:function(e){ee.add(e)},addBidRejected:function(e){K=K.concat(e)},addNoBid:function(e){te=te.concat(e)},callBids:function(){J="started",L=Date.now();let e=f.measureTime("requestBids.makeRequests",()=>w.Ay.makeBidRequests(g,L,E,C,h,u,f));(0,i.fH)("Bids Requested for Auction with id: ".concat(E),e),f.checkpoint("callBids"),e.length<1?((0,i.JE)("No valid bid requests returned for auction"),se()):P.call({dispatch:ce,context:this},e)},addWinningBid:function(e){ne=ne.concat(e),w.Ay.callBidWonBidder(e.adapterCode||e.bidder,e,t),e.deferBilling||w.Ay.triggerBilling(e)},setBidTargeting:function(e){w.Ay.callSetTargetingBidder(e.adapterCode||e.bidder,e)},getWinningBids:()=>ne,getAuctionStart:()=>L,getAuctionEnd:()=>$,getTimeout:()=>C,getAuctionId:()=>E,getAuctionStatus:()=>J,getAdUnits:()=>g,getAdUnitCodes:()=>m,getBidRequests:()=>X,getBidsReceived:()=>ee.toArray(),getNoBids:()=>te,getNonBids:()=>ie,getFPD:()=>u,getMetrics:()=>f,end:F.promise,requestsDone:H.promise}}const x=(0,m.A_)("sync",function(e,t,n){!function(e){const t=a.$W.getConfig("maxBid");return!t||!e.cpm||t>=Number(e.cpm)}(t)?n(I.Tf.PRICE_TOO_HIGH):this.dispatch.call(null,e,t)},"addBidResponse"),N=(0,m.A_)("sync",e=>e,"responsesReady"),P=(0,m.A_)("sync",function(e){this.dispatch.call(this.context,e)},"addBidderRequests"),W=(0,m.A_)("async",function(e,t){t&&t()},"bidsBackCallback");function V(e,t){!function(e){let t;const n=!0===E.u.get(e.bidderCode,"allowZeroCpmBids")?e.cpm>=0:e.cpm>0;e.bidderCode&&(n||e.dealId)&&(t=function(e,t){let{index:n=Z.index}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!t)return{};const i=n.getBidRequest(t);var r={};const s=K(t.mediaType,e);Q(r,s,t,i),e&&E.u.getOwn(e,I.iD.ADSERVER_TARGETING)&&(Q(r,E.u.ownSettingsFor(e),t,i),t.sendStandardTargeting=E.u.get(e,"sendStandardTargeting"));t.native&&(r=Object.assign({},r,(0,o.Zj)(t)));return r}(e.bidderCode,e));e.adserverTargeting=Object.assign(e.adserverTargeting||{},t)}(t),(0,O.BO)(t.metrics).timeSince("addBidResponse","addBidResponse.total"),e.addBidReceived(t),A.Ic(I.qY.BID_RESPONSE,t)}const M=(0,m.A_)("async",function(e,t,n,i){g(e,t,n)},"callPrebidCache");function G(e,t,n){if(e&&n){if(e===y.G_){var i,r;const e=null!==(i=null==t||null===(r=t[y.G_])||void 0===r?void 0:r.context)&&void 0!==i?i:"instream";if(n["".concat(y.G_,"-").concat(e)])return n["".concat(y.G_,"-").concat(e)]}return n[e]}}const F=e=>t=>{const n=e||function(e){let{index:t=Z.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=G(e.mediaType,t.getMediaTypes(e),a.$W.getConfig("mediaTypePriceGranularity"));return"string"==typeof e.mediaType&&n?"string"==typeof n?n:"custom":a.$W.getConfig("priceGranularity")}(t);return n===I.UE.AUTO?t.pbAg:n===I.UE.DENSE?t.pbDg:n===I.UE.LOW?t.pbLg:n===I.UE.MEDIUM?t.pbMg:n===I.UE.HIGH?t.pbHg:n===I.UE.CUSTOM?t.pbCg:void 0},H=()=>e=>e.creativeId?e.creativeId:"",L=()=>e=>e.meta&&e.meta.advertiserDomains&&e.meta.advertiserDomains.length>0?[e.meta.advertiserDomains].flat()[0]:"",$=()=>e=>{var t,n;return e.meta&&(e.meta.networkId||e.meta.networkName)?(null==e||null===(t=e.meta)||void 0===t?void 0:t.networkName)||(null==e||null===(n=e.meta)||void 0===n?void 0:n.networkId):""},z=()=>e=>e.meta&&e.meta.primaryCatId?e.meta.primaryCatId:"";function J(e,t){return{key:e,val:"function"==typeof t?function(e,n){return t(e,n)}:function(e){return e[t]}}}function K(e,t){const n=Object.assign({},E.u.settingsFor(null));if(n[I.iD.ADSERVER_TARGETING]||(n[I.iD.ADSERVER_TARGETING]=[J(I.xS.BIDDER,"bidderCode"),J(I.xS.AD_ID,"adId"),J(I.xS.PRICE_BUCKET,F()),J(I.xS.SIZE,"size"),J(I.xS.DEAL,"dealId"),J(I.xS.SOURCE,"source"),J(I.xS.FORMAT,"mediaType"),J(I.xS.ADOMAIN,L()),J(I.xS.ACAT,z()),J(I.xS.DSP,$()),J(I.xS.CRID,H())]),"video"===e){const e=n[I.iD.ADSERVER_TARGETING].slice();if(n[I.iD.ADSERVER_TARGETING]=e,[I.xS.UUID,I.xS.CACHE_ID].forEach(t=>{void 0===(0,b.I6)(e,e=>e.key===t)&&e.push(J(t,"videoCacheKey"))}),a.$W.getConfig("cache.url")&&(!t||!1!==E.u.get(t,"sendStandardTargeting"))){const t=(0,i.Dl)(a.$W.getConfig("cache.url"));void 0===(0,b.I6)(e,e=>e.key===I.xS.CACHE_HOST)&&e.push(J(I.xS.CACHE_HOST,function(e){var n;return(null==e||null===(n=e.adserverTargeting)||void 0===n?void 0:n[I.xS.CACHE_HOST])||t.hostname}))}}return n}function Q(e,t,n,r){var o=t[I.iD.ADSERVER_TARGETING];return n.size=n.getSize(),(o||[]).forEach(function(o){var s=o.key,a=o.val;if(e[s]&&(0,i.JE)("The key: "+s+" is being overwritten"),(0,i.fp)(a))try{a=a(n,r)}catch(e){(0,i.vV)("bidmanager","ERROR",e)}(void 0===t.suppressEmptyKeys||!0!==t.suppressEmptyKeys)&&s!==I.xS.DEAL&&s!==I.xS.ACAT&&s!==I.xS.DSP&&s!==I.xS.CRID||!(0,i.xQ)(a)&&null!=a?e[s]=a:(0,i.fH)("suppressing empty key \'"+s+"\' from adserver targeting")}),e}function Y(e,t){return e[t.adUnitCode]||(e[t.adUnitCode]={bids:[]}),e[t.adUnitCode].bids.push(t),e}function X(e){Object.assign(this,{getAuction(t){let{auctionId:n}=t;if(null!=n)return e().find(e=>e.getAuctionId()===n)},getAdUnit(t){let{adUnitId:n}=t;if(null!=n)return e().flatMap(e=>e.getAdUnits()).find(e=>e.adUnitId===n)},getMediaTypes(e){let{adUnitId:t,requestId:n}=e;if(null!=n){const e=this.getBidRequest({requestId:n});if(null!=e&&(null==t||e.adUnitId===t))return e.mediaTypes}else if(null!=t){const e=this.getAdUnit({adUnitId:t});if(null!=e)return e.mediaTypes}},getBidderRequest(t){let{requestId:n,bidderRequestId:i}=t;if(null!=n||null!=i){let t=e().flatMap(e=>e.getBidRequests());return null!=i&&(t=t.filter(e=>e.bidderRequestId===i)),null==n?t[0]:t.find(e=>e.bids&&null!=e.bids.find(e=>e.bidId===n))}},getBidRequest(t){let{requestId:n}=t;if(null!=n)return e().flatMap(e=>e.getBidRequests()).flatMap(e=>e.bids).find(e=>e&&e.bidId===n)},getOrtb2(e){var t,n;return(null===(t=this.getBidderRequest(e))||void 0===t?void 0:t.ortb2)||(null===(n=this.getAuction(e))||void 0===n||null===(n=n.getFPD())||void 0===n||null===(n=n.global)||void 0===n?void 0:n.ortb2)}})}const Z=function(){const e=(0,B.H)({startTime:e=>e.end.then(()=>e.getAuctionEnd()),ttl:e=>null==(0,k.S9)()?null:e.end.then(()=>1e3*Math.max((0,k.S9)(),...e.getBidsReceived().map(e=>e.ttl)))});(0,k.lc)(()=>e.refresh());const t={onExpiry:e.onExpiry};function n(t){for(const n of e)if(n.getAuctionId()===t)return n}function r(){return e.toArray().flatMap(e=>e.getBidsReceived())}return t.addWinningBid=function(e){const t=(0,O.BO)(e.metrics);t.checkpoint("bidWon"),t.timeBetween("auctionEnd","bidWon","adserver.pending"),t.timeBetween("requestBids","bidWon","adserver.e2e");const r=n(e.auctionId);r?r.addWinningBid(e):(0,i.JE)("Auction not found when adding winning bid")},Object.entries({getAllWinningBids:{name:"getWinningBids"},getBidsRequested:{name:"getBidRequests"},getNoBids:{},getAdUnits:{},getBidsReceived:{pre:e=>e.getAuctionStatus()===R},getAdUnitCodes:{post:i.hj}}).forEach(n=>{let[i,{name:r=i,pre:o,post:s}]=n;const a=null==o?e=>e[r]():e=>o(e)?e[r]():[],c=null==s?e=>e:e=>e.filter(s);t[i]=()=>c(e.toArray().flatMap(a))}),t.getAllBidsForAdUnitCode=function(e){return r().filter(t=>t&&t.adUnitCode===e)},t.createAuction=function(t){const n=q(t);return function(t){e.add(t)}(n),n},t.findBidByAdId=function(e){return r().find(t=>t.adId===e)},t.getStandardBidderAdServerTargeting=function(){return K()[I.iD.ADSERVER_TARGETING]},t.setStatusForBids=function(e,i){let r=t.findBidByAdId(e);if(r&&(r.status=i),r&&i===I.tl.BID_TARGETING_SET){const e=n(r.auctionId);e&&e.setBidTargeting(r)}},t.getLastAuctionId=function(){const t=e.toArray();return t.length&&t[t.length-1].getAuctionId()},t.clearAllAuctions=function(){e.clear()},t.index=new X(()=>e.toArray()),t}()},894:(e,t,n)=>{n.d(t,{Ak:()=>m,BO:()=>g,K7:()=>p,NL:()=>b});var i=n(272);const r="performanceMetrics",o=window.performance&&window.performance.now?()=>window.performance.now():()=>Date.now(),s=new WeakMap;function a(){let{now:e=o,mkNode:t=l,mkTimer:n=d,mkRenamer:i=e=>e,nodes:r=s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){return function o(s){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>({forEach(t){t(e)}});a=i(a);const c=(d="timestamps",function(e){return s.dfWalk({visit(t,n){const i=n[d];if(i.hasOwnProperty(e))return i[e]}})});var d;function l(e,t){const n=a(e);s.dfWalk({follow:(e,t)=>t.propagate&&(!e||!e.stopPropagation),visit(e,i){n.forEach(n=>{null==e?i.metrics[n]=t:(i.groups.hasOwnProperty(n)||(i.groups[n]=[]),i.groups[n].push(t))})}})}function u(t){return n(e,e=>l(t,e))}function f(){let e={};return s.dfWalk({visit(t,n){e=Object.assign({},!t||t.includeGroups?n.groups:null,n.metrics,e)}}),e}const g={startTiming:u,measureTime:function(e,t){return u(e).stopAfter(t)()},measureHookTime:function(e,t,n){const i=u(e);return n(function(e){const t=i.stopBefore(e);return t.bail=e.bail&&i.stopBefore(e.bail),t.stopTiming=i,t.untimed=e,t}(t))},checkpoint:function(t){s.timestamps[t]=e()},timeSince:function(t,n){const i=c(t),r=null!=i?e()-i:null;return null!=n&&l(n,r),r},timeBetween:function(e,t,n){const i=c(e),r=c(t),o=null!=i&&null!=r?r-i:null;return null!=n&&l(n,o),o},setMetric:l,getMetrics:f,fork:function(){let{propagate:e=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o(t([[s,{propagate:e,stopPropagation:n,includeGroups:i}]]),a)},join:function(e){let{propagate:t=!0,stopPropagation:n=!1,includeGroups:i=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.get(e);null!=o&&o.addParent(s,{propagate:t,stopPropagation:n,includeGroups:i})},newMetrics:function(){return o(s.newSibling(),a)},renameWith:function(e){return o(s,e)},toJSON:()=>f()};return r.set(g,s),g}(t([]))}}function c(e,t,n){return function(){t&&t();try{return e.apply(this,arguments)}finally{n&&n()}}}function d(e,t){const n=e();let i=!1;function r(){i||(t(e()-n),i=!0)}return r.stopBefore=e=>c(e,r),r.stopAfter=e=>c(e,null,r),r}function l(e){return{metrics:{},timestamps:{},groups:{},addParent(t,n){e.push([t,n])},newSibling:()=>l(e.slice()),dfWalk(){let t,{visit:n,follow:i=()=>!0,visited:r=new Set,inEdge:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!r.has(this)){if(r.add(this),t=n(o,this),null!=t)return t;for(const[s,a]of e)if(i(o,a)&&(t=s.dfWalk({visit:n,follow:i,visited:r,inEdge:a}),null!=t))return t}}}}const u=(()=>{const e=function(){},t=()=>({}),n={forEach:e},i=()=>null;i.stopBefore=e=>e,i.stopAfter=e=>e;const r=Object.defineProperties({dfWalk:e,newSibling:()=>r,addParent:e},Object.fromEntries(["metrics","timestamps","groups"].map(e=>[e,{get:t}])));return a({now:()=>0,mkNode:()=>r,mkRenamer:()=>()=>n,mkTimer:()=>i,nodes:{get:e,set:e}})()})();let f=!0;function g(e){return f&&e||u}i.$W.getConfig(r,e=>{f=!!e[r]});const p=(()=>{const e=a();return function(){return f?e():u}})();function h(e,t){return function(n,i){return function(r){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];const c=this;return g(t.apply(c,s)).measureHookTime(e+n,r,function(e){return i.call(c,e,...s)})}}}const m=h("requestBids.",e=>e.metrics),b=h("addBidResponse.",(e,t)=>t.metrics)},895:(e,t,n)=>{n.d(t,{H6:()=>a,V0:()=>d,Zy:()=>c,aP:()=>l,vk:()=>u});var i=n(69),r=n(272),o=n(214),s=n(881);const a="outstream",c=new Map([["mimes",e=>Array.isArray(e)&&e.length>0&&e.every(e=>"string"==typeof e)],["minduration",i.Fq],["maxduration",i.Fq],["startdelay",i.Fq],["maxseq",i.Fq],["poddur",i.Fq],["protocols",i.Uu],["w",i.Fq],["h",i.Fq],["podid",i.O8],["podseq",i.Fq],["rqddurs",i.Uu],["placement",i.Fq],["plcmt",i.Fq],["linearity",i.Fq],["skip",e=>[1,0].includes(e)],["skipmin",i.Fq],["skipafter",i.Fq],["sequence",i.Fq],["slotinpod",i.Fq],["mincpmpersec",i.Et],["battr",i.Uu],["maxextended",i.Fq],["minbitrate",i.Fq],["maxbitrate",i.Fq],["boxingallowed",i.Fq],["playbackmethod",i.Uu],["playbackend",i.Fq],["delivery",i.Uu],["pos",i.Fq],["api",i.Uu],["companiontype",i.Uu],["poddedupe",i.Uu]]);function d(e){var t;const n=null==e||null===(t=e.mediaTypes)||void 0===t?void 0:t.video;null!=n&&null==n.plcmt&&(n.context===a||[2,3,4].includes(n.placement)?n.plcmt=4:n.context!==a&&[2,6].includes(n.playbackmethod)&&(n.plcmt=2))}function l(e,t){var n;const r=null==e||null===(n=e.mediaTypes)||void 0===n?void 0:n.video;(0,i.Qd)(r)?null!=r&&Object.entries(r).forEach(n=>{let[o,s]=n;if(!c.has(o))return;c.get(o)(s)||("function"==typeof t?t(o,s,e):(delete r[o],(0,i.JE)(\'Invalid prop in adUnit "\'.concat(e.code,\'": Invalid value for mediaTypes.video.\').concat(o," ORTB property. The property has been removed."))))}):(0,i.JE)("validateOrtbVideoFields: videoParams must be an object.")}function u(e){var t;let{index:n=s.n.index}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=null===(t=n.getMediaTypes(e))||void 0===t?void 0:t.video,r=i&&(null==i?void 0:i.context),o=i&&(null==i?void 0:i.useCacheKey),a=n.getAdUnit(e);return f(e,a,i,r,o)}const f=(0,o.A_)("sync",function(e,t,n,o,s){return n&&(s||o!==a)?r.$W.getConfig("cache.url")||!e.vastXml||e.vastUrl?!(!e.vastUrl&&!e.vastXml):((0,i.vV)(\'\\n This bid contains only vastXml and will not work when a prebid cache url is not specified.\\n Try enabling prebid cache with pbjs.setConfig({ cache: {url: "..."} });\\n \'),!1):!(o===a&&!s)||!!(e.renderer||t&&t.renderer||n.renderer)},"checkVideoBidSetup")},901:(e,t,n)=>{function i(e,t,n){return e&&e.includes(t,n)||!1}function r(){return Array.from.apply(Array,arguments)}function o(e,t,n){return e&&e.find(t,n)}n.d(t,{A6:()=>r,I6:()=>o,mK:()=>i})},916:(e,t,n)=>{n.d(t,{SL:()=>B,ad:()=>I,mW:()=>A,o2:()=>O,t6:()=>w});var i=n(705),r=n(69),o=n(555),s=n(272);function a(e,t,n){c(e,t),t.set(e,n)}function c(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function d(e,t){return e.get(u(e,t))}function l(e,t,n){return e.set(u(e,t),n),n}function u(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}Object.freeze({});var f=new WeakMap,g=new WeakMap,p=new WeakMap,h=new WeakMap,m=new WeakMap,b=new WeakMap,v=new WeakSet;class y{constructor(){var e,t;c(e=this,t=v),t.add(e),a(this,f,void 0),a(this,g,void 0),a(this,p,void 0),a(this,h,void 0),a(this,m,!0),a(this,b,void 0),(0,i.A)(this,"generatedTime",void 0),(0,i.A)(this,"hashFields",void 0),this.reset()}reset(){l(p,this,(0,o.v)()),l(f,this,!1),l(g,this,null),l(h,this,!1),this.generatedTime=null}enable(){l(f,this,!0)}get enabled(){return d(f,this)}get ready(){return d(h,this)}get promise(){return d(h,this)?o.k.resolve(d(g,this)):(d(f,this)||u(v,this,E).call(this,null),d(p,this).promise)}setConsentData(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,r.vE)();this.generatedTime=t,l(m,this,!0),u(v,this,E).call(this,e)}getConsentData(){return d(g,this)}get hash(){return d(m,this)&&(l(b,this,(0,r.PB)(JSON.stringify(d(g,this)&&this.hashFields?this.hashFields.map(e=>d(g,this)[e]):d(g,this)))),l(m,this,!1)),d(b,this)}}function E(e){l(h,this,!0),l(g,this,e),d(p,this).resolve(e)}const A=new class extends y{constructor(){super(...arguments),(0,i.A)(this,"hashFields",["gdprApplies","consentString"])}getConsentMeta(){const e=this.getConsentData();if(e&&e.vendorData&&this.generatedTime)return{gdprApplies:e.gdprApplies,consentStringSize:(0,r.O8)(e.vendorData.tcString)?e.vendorData.tcString.length:0,generatedAt:this.generatedTime,apiVersion:e.apiVersion}}},w=new class extends y{getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},I=new class extends y{constructor(){super(...arguments),(0,i.A)(this,"hashFields",["applicableSections","gppString"])}getConsentMeta(){if(this.getConsentData()&&this.generatedTime)return{generatedAt:this.generatedTime}}},T=(()=>{function e(){return!!s.$W.getConfig("coppa")}return{getCoppa:e,getConsentData:e,getConsentMeta:e,reset(){},get promise(){return o.k.resolve(e())},get hash(){return e()?"1":"0"}}})(),O=function(){const e={},t={},n={};return{register(i,r,o){o&&((e[r]=e[r]||{})[i]=o,t.hasOwnProperty(r)?t[r]!==o&&(t[r]=n):t[r]=o)},get(i){const r={modules:e[i]||{}};return t.hasOwnProperty(i)&&t[i]!==n&&(r.gvlid=t[i]),r}}}(),C={gdpr:A,usp:w,gpp:I,coppa:T};const B=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:C;return e=Object.entries(e),Object.assign({get promise(){return o.k.all(e.map(e=>{let[t,n]=e;return n.promise.then(e=>[t,e])})).then(e=>Object.fromEntries(e))},get hash(){return(0,r.PB)(e.map(e=>{let[t,n]=e;return n.hash}).join(":"))}},Object.fromEntries(["getConsentData","getConsentMeta","reset"].map(t=>{return[t,(n=t,function(){return Object.fromEntries(e.map(e=>{let[t,i]=e;return[t,i[n]()]}))})];var n})))}()},934:(e,t,n)=>{n.d(t,{EN:()=>c,gR:()=>s});var i=n(272),r=n(69);function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;if(!e)return e;if(/\\w+:\\/\\//.exec(e))return e;let n=t.location.protocol;try{n=t.top.location.protocol}catch(e){}return/^\\/\\//.exec(e)?n+e:"".concat(n,"//").concat(e)}function s(e){let{noLeadingWww:t=!1,noPort:n=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};try{e=new URL(o(e))}catch(e){return}return e=n?e.hostname:e.host,t&&e.startsWith("www.")&&(e=e.substring(4)),e}function a(e){try{const t=e.querySelector("link[rel=\'canonical\']");if(null!==t)return t.href}catch(e){}return null}const c=function(e){let t,n,i,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return r.top!==r?e:function(){const o=a(r.document),s=r.location.href;return t===o&&s===n||(t=o,n=s,i=e()),i}}((d=window,function(){const e=[],t=function(e){try{if(!e.location.ancestorOrigins)return;return e.location.ancestorOrigins}catch(e){}}(d),n=i.$W.getConfig("maxNestedIframes");let c,l,u,f,g=!1,p=0,h=!1,m=!1,b=!1;do{const n=c,i=m;let o,s=!1,f=null;m=!1,c=c?c.parent:d;try{o=c.location.href||null}catch(e){s=!0}if(s)if(i){const e=n.context;try{f=e.sourceUrl,l=f,b=!0,h=!0,c===d.top&&(g=!0),e.canonicalUrl&&(u=e.canonicalUrl)}catch(e){}}else{(0,r.JE)("Trying to access cross domain iframe. Continuing without referrer and location");try{const e=n.document.referrer;e&&(f=e,c===d.top&&(g=!0))}catch(e){}!f&&t&&t[p-1]&&(f=t[p-1],c===d.top&&(b=!0)),f&&!h&&(l=f)}else{if(o&&(f=o,l=f,h=!1,c===d.top)){g=!0;const e=a(c.document);e&&(u=e)}c.context&&c.context.sourceUrl&&(m=!0)}e.push(f),p++}while(c!==d.top&&p<n);e.reverse();try{f=d.top.document.referrer}catch(e){}const v=g||b?l:null,y=i.$W.getConfig("pageUrl")||u||null;let E=i.$W.getConfig("pageUrl")||v||o(y,d);return v&&v.indexOf("?")>-1&&-1===E.indexOf("?")&&(E="".concat(E).concat(v.substring(v.indexOf("?")))),{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,topmostLocation:l||null,location:v,canonicalUrl:y,page:E,domain:s(E)||null,ref:f||null,legacy:{reachedTop:g,isAmp:h,numIframes:p-1,stack:e,referer:l||null,canonicalUrl:y}}}));var d},938:(e,t,n)=>{n.d(t,{CK:()=>y,s0:()=>b});var i=n(705),r=n(69),o=n(693),s=n(569),a=n(139),c=n(604),d=n(811),l=n(272),u=n(46),f=n(441);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const h="html5",m="cookie";let b=[];function v(){let{moduleName:e,moduleType:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{isAllowed:n=a.io}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};function i(i,r){let o=e;const a=l.$W.getCurrentBidder();a&&t===s.tW&&u.Ay.aliasRegistry[a]===e&&(o=a);return i({valid:n(d.Ue,(0,f.s)(t,o,{[c.Zw]:r}))})}function o(e,t,n){if(!n||"function"!=typeof n)return i(e,t);b.push(function(){let r=i(e,t);n(r)})}function g(e){const t=e.charAt(0).toUpperCase()+e.substring(1),n=()=>window[e],i=function(t){return o(function(t){if(t&&t.valid)try{return!!n()}catch(t){(0,r.vV)("".concat(e," api disabled"))}return!1},h,t)};return{["has".concat(t)]:i,["".concat(e,"IsEnabled")]:e=>o(function(e){if(e&&e.valid)try{return n().setItem("prebid.cookieTest","1"),"1"===n().getItem("prebid.cookieTest")}catch(e){}finally{try{n().removeItem("prebid.cookieTest")}catch(e){}}return!1},h,e),["setDataIn".concat(t)]:(e,t,r)=>o(function(r){r&&r.valid&&i()&&n().setItem(e,t)},h,r),["getDataFrom".concat(t)]:(e,t)=>o(function(t){return t&&t.valid&&i()?n().getItem(e):null},h,t),["removeDataFrom".concat(t)]:(e,t)=>o(function(t){t&&t.valid&&i()&&n().removeItem(e)},h,t)}}return p(p(p({setCookie:function(e,t,n,i,r,s){return o(function(o){if(o&&o.valid){const o=r&&""!==r?" ;domain=".concat(encodeURIComponent(r)):"",s=n&&""!==n?" ;expires=".concat(n):"",a=null!=i&&"none"==i.toLowerCase()?"; Secure":"";document.cookie="".concat(e,"=").concat(encodeURIComponent(t)).concat(s,"; path=/").concat(o).concat(i?"; SameSite=".concat(i):"").concat(a)}},m,s)},getCookie:function(e,t){return o(function(t){if(t&&t.valid){let t=window.document.cookie.match("(^|;)\\\\s*"+e+"\\\\s*=\\\\s*([^;]*)\\\\s*(;|$)");return t?decodeURIComponent(t[2]):null}return null},m,t)},cookiesAreEnabled:function(e){return o(function(e){return!(!e||!e.valid)&&(0,r.GE)()},m,e)}},g("localStorage")),g("sessionStorage")),{},{findSimilarCookies:function(e,t){return o(function(t){if(t&&t.valid){const t=[];if((0,r.N9)()){const n=document.cookie.split(";");for(;n.length;){const i=n.pop();let r=i.indexOf("=");r=r<0?i.length:r;decodeURIComponent(i.slice(0,r).replace(/^\\s+/,"")).indexOf(e)>=0&&t.push(decodeURIComponent(i.slice(r+1)))}}return t}},m,t)}})}function y(e){return v({moduleName:e,moduleType:s.tp})}(0,a.qB)(d.Ue,"deviceAccess config",function(){if(!(0,r.N9)())return{allow:!1}}),(0,a.qB)(d.Ue,"bidderSettings.*.storageAllowed",function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.u;if(e[c.Dk]!==s.tW)return;let n=t.get(e[c.q7],"storageAllowed");if(n&&!0!==n){const t=e[c.Zw];n=Array.isArray(n)?n.some(e=>e===t):n===t}else n=!!n;return n?void 0:{allow:n}})},969:(e,t,n)=>{n.d(t,{IY:()=>A,M:()=>r,RW:()=>g,Tf:()=>h,UE:()=>d,XQ:()=>o,Zh:()=>u,_B:()=>y,as:()=>a,cA:()=>c,h0:()=>m,iD:()=>i,jO:()=>b,nl:()=>E,oA:()=>v,qY:()=>s,tl:()=>p,x5:()=>f,xS:()=>l});const i={PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},r="pbjs_debug",o={GOOD:1},s={AUCTION_INIT:"auctionInit",AUCTION_TIMEOUT:"auctionTimeout",AUCTION_END:"auctionEnd",BID_ADJUSTMENT:"bidAdjustment",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_REJECTED:"bidRejected",NO_BID:"noBid",SEAT_NON_BID:"seatNonBid",BID_WON:"bidWon",BIDDER_DONE:"bidderDone",BIDDER_ERROR:"bidderError",SET_TARGETING:"setTargeting",BEFORE_REQUEST_BIDS:"beforeRequestBids",BEFORE_BIDDER_HTTP:"beforeBidderHttp",REQUEST_BIDS:"requestBids",ADD_AD_UNITS:"addAdUnits",AD_RENDER_FAILED:"adRenderFailed",AD_RENDER_SUCCEEDED:"adRenderSucceeded",TCF2_ENFORCEMENT:"tcf2Enforcement",AUCTION_DEBUG:"auctionDebug",BID_VIEWABLE:"bidViewable",STALE_RENDER:"staleRender",EXPIRED_RENDER:"expiredRender",BILLABLE_EVENT:"billableEvent",BID_ACCEPTED:"bidAccepted",RUN_PAAPI_AUCTION:"paapiRunAuction",PBS_ANALYTICS:"pbsAnalytics",PAAPI_BID:"paapiBid",PAAPI_NO_BID:"paapiNoBid",PAAPI_ERROR:"paapiError"},a={PREVENT_WRITING_ON_MAIN_DOCUMENT:"preventWritingOnMainDocument",NO_AD:"noAd",EXCEPTION:"exception",CANNOT_FIND_AD:"cannotFindAd",MISSING_DOC_OR_ADID:"missingDocOrAdid"},c={bidWon:"adUnitCode"},d={LOW:"low",MEDIUM:"medium",HIGH:"high",AUTO:"auto",DENSE:"dense",CUSTOM:"custom"},l={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",SOURCE:"hb_source",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_ID:"hb_cache_id",CACHE_HOST:"hb_cache_host",ADOMAIN:"hb_adomain",ACAT:"hb_acat",CRID:"hb_crid",DSP:"hb_dsp"},u={BIDDER:"hb_bidder",AD_ID:"hb_adid",PRICE_BUCKET:"hb_pb",SIZE:"hb_size",DEAL:"hb_deal",FORMAT:"hb_format",UUID:"hb_uuid",CACHE_HOST:"hb_cache_host"},f={title:"hb_native_title",body:"hb_native_body",body2:"hb_native_body2",privacyLink:"hb_native_privacy",privacyIcon:"hb_native_privicon",sponsoredBy:"hb_native_brand",image:"hb_native_image",icon:"hb_native_icon",clickUrl:"hb_native_linkurl",displayUrl:"hb_native_displayurl",cta:"hb_native_cta",rating:"hb_native_rating",address:"hb_native_address",downloads:"hb_native_downloads",likes:"hb_native_likes",phone:"hb_native_phone",price:"hb_native_price",salePrice:"hb_native_saleprice",rendererUrl:"hb_renderer_url",adTemplate:"hb_adTemplate"},g={SRC:"s2s",DEFAULT_ENDPOINT:"https://prebid.adnxs.com/pbs/v1/openrtb2/auction",SYNCED_BIDDERS_KEY:"pbjsSyncs"},p={BID_TARGETING_SET:"targetingSet",RENDERED:"rendered",BID_REJECTED:"bidRejected"},h={INVALID:"Bid has missing or invalid properties",INVALID_REQUEST_ID:"Invalid request ID",BIDDER_DISALLOWED:"Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes",FLOOR_NOT_MET:"Bid does not meet price floor",CANNOT_CONVERT_CURRENCY:"Unable to convert currency",DSA_REQUIRED:"Bid does not provide required DSA transparency info",DSA_MISMATCH:"Bid indicates inappropriate DSA rendering method",PRICE_TOO_HIGH:"Bid price exceeds maximum value"},m={body:"desc",body2:"desc2",sponsoredBy:"sponsored",cta:"ctatext",rating:"rating",address:"address",downloads:"downloads",likes:"likes",phone:"phone",price:"price",salePrice:"saleprice",displayUrl:"displayurl"},b={sponsored:1,desc:2,rating:3,likes:4,downloads:5,price:6,saleprice:7,phone:8,address:9,desc2:10,displayurl:11,ctatext:12},v={ICON:1,MAIN:3},y=["privacyIcon","clickUrl","sendTargetingKeys","adTemplate","rendererUrl","type"],E={REQUEST:"Prebid Request",RESPONSE:"Prebid Response",NATIVE:"Prebid Native",EVENT:"Prebid Event"},A="__pb_locator__"},991:(e,t,n)=>{n.d(t,{w:()=>O});var i=n(214),r=n(934),o=n(69);const s=(0,n(938).CK)("fpdEnrichment"),a=(0,o.Bj)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.host;if(!s.cookiesAreEnabled())return e;const t=e.split(".");if(2===t.length)return e;let n,i,r=-2;const a="_rdc".concat(Date.now()),c="writeable";do{n=t.slice(r).join(".");let e=new Date((0,o.vE)()+1e4).toUTCString();s.setCookie(a,c,e,"Lax",n,void 0);s.getCookie(a,void 0)===c?(i=!1,s.setCookie(a,"","Thu, 01 Jan 1970 00:00:01 GMT",void 0,n,void 0)):(r+=-1,i=Math.abs(r)<=t.length)}while(i);return n});var c=n(172),d=n(272),l=n(555);const u=["architecture","bitness","model","platformVersion","fullVersionList"],f=["brands","mobile","platform"],g=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null===(e=window.navigator)||void 0===e?void 0:e.userAgentData;const n=t&&f.some(e=>void 0!==t[e])?Object.freeze(h(1,t)):null;return function(){return n}}(),p=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null===(e=window.navigator)||void 0===e?void 0:e.userAgentData;const n={},i=new WeakMap;return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;if(!i.has(e)){const t=Array.from(e);t.sort(),i.set(e,t.join("|"))}const r=i.get(e);if(!n.hasOwnProperty(r))try{n[r]=t.getHighEntropyValues(e).then(e=>(0,o.Im)(e)?null:Object.freeze(h(2,e))).catch(()=>null)}catch(e){n[r]=l.k.resolve(null)}return n[r]}}();function h(e,t){function n(e,t){const n={brand:e};return(0,o.O8)(t)&&!(0,o.xQ)(t)&&(n.version=t.split(".")),n}const i={source:e};return t.platform&&(i.platform=n(t.platform,t.platformVersion)),(t.fullVersionList||t.brands)&&(i.browsers=(t.fullVersionList||t.brands).map(e=>{let{brand:t,version:i}=e;return n(t,i)})),void 0!==t.mobile&&(i.mobile=t.mobile?1:0),["model","bitness","architecture"].forEach(e=>{const n=t[e];(0,o.O8)(n)&&(i[e]=n)}),i}const m=["dooh","app","site"];function b(e,t){return null!=e[t]&&Object.keys(e[t]).length>0}var v=n(139),y=n(441),E=n(811),A=n(569);const w={getRefererInfo:r.EN,findRootDomain:a,getWindowTop:o.mb,getWindowSelf:o.l4,getHighEntropySUA:p,getLowEntropySUA:g},I=(T="FPD",function(e){return m.reduce((t,n)=>(b(e,n)&&(null!=t?((0,o.JE)("".concat(T," specifies both \'").concat(t,"\' and \'").concat(n,"\'; dropping the latter.")),delete e[n]):t=n),t),null),e});var T;const O=(0,i.A_)("sync",e=>{const t=[e,B().catch(()=>null),l.k.resolve("cookieDeprecationLabel"in navigator&&(0,v.io)(E.Ue,(0,y.s)(A.tp,"cdep"))&&navigator.cookieDeprecationLabel.getValue()).catch(()=>null)];return l.k.all(t).then(e=>{let[t,n,i]=e;const r=w.getRefererInfo();if(Object.entries(S).forEach(e=>{let[n,i]=e;const s=i(t,r);s&&Object.keys(s).length>0&&(t[n]=(0,o.D9)({},s,t[n]))}),n&&(0,c.J)(t,"device.sua",Object.assign({},n,t.device.sua)),i){const e={cdep:i};(0,c.J)(t,"device.ext",Object.assign({},e,t.device.ext))}t=I(t);for(let e of m)if(b(t,e)){t[e]=(0,o.D9)({},R(t,r),t[e]);break}return t})});function C(e){try{return e(w.getWindowTop())}catch(t){return e(w.getWindowSelf())}}function B(){const e=d.$W.getConfig("firstPartyData.uaHints");return Array.isArray(e)&&0!==e.length?w.getHighEntropySUA(e):l.k.resolve(w.getLowEntropySUA())}function k(e){return(0,o.SH)(e,Object.keys(e))}const S={site(e,t){if(!m.filter(e=>"site"!==e).some(b.bind(null,e)))return k({page:t.page,ref:t.ref})},device:()=>C(e=>{var t;const n=e.screen.width,i=e.screen.height,r=e.innerWidth||e.document.documentElement.clientWidth||e.document.body.clientWidth,s=e.innerHeight||e.document.documentElement.clientHeight||e.document.body.clientHeight,a={w:n,h:i,dnt:(0,o.l9)()?1:0,ua:e.navigator.userAgent,language:e.navigator.language.split("-").shift(),ext:{vpw:r,vph:s}};return null!==(t=e.navigator)&&void 0!==t&&t.webdriver&&(0,c.J)(a,"ext.webdriver",!0),a}),regs(){const e={};C(e=>e.navigator.globalPrivacyControl)&&(0,c.J)(e,"ext.gpc","1");const t=d.$W.getConfig("coppa");return"boolean"==typeof t&&(e.coppa=t?1:0),e}};function R(e,t){var n,i;const o=(0,r.gR)(t.page,{noLeadingWww:!0});return k({domain:o,keywords:null===(n=C(e=>e.document.querySelector("meta[name=\'keywords\']")))||void 0===n||null===(n=n.content)||void 0===n||null===(i=n.replace)||void 0===i?void 0:i.call(n,/\\s/g,""),publisher:k({domain:w.findRootDomain(o)})})}}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[85],{595:(s,d,e)=>{e.d(d,{G:()=>n});const n=\'(()=>{"use strict";window.render=function({ad:d,adUrl:e,width:i,height:r},{mkFrame:n},o){if(!d&&!e)throw{reason:"noAd",message:"Missing ad markup or URL"};{const s=o.document,t={width:i,height:r};e&&!d?t.src=e:t.srcdoc=d,s.body.appendChild(n(s,t))}}})();\'}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[957],{400:(s,e,t)=>{function n(){const s=[];return{submit(e,t,n){const u=[t,setTimeout(()=>{s.splice(s.indexOf(u),1),n()},e)];s.push(u)},resume(){for(;s.length;){const[e,t]=s.shift();clearTimeout(t),e()}}}}t.d(e,{L:()=>n})}}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[466],{236:(e,n,r)=>{var c=r(873),t=r(69),o=r(172),i=r(969),s=r(44),u=r(272),a=r(214),f=r(555),l=r(0),d=r(894),y=r(23),v=r(991),p=r(400);let h,C=[],g={},b=!1,R=!0,m="USD";var O=!1,S={};let E,N={},T=(0,f.v)();const U=(0,p.L)();let w=0;function D(e){if(h="https://cdn.jsdelivr.net/gh/prebid/currency-file@1/latest.json?date=$$TODAY$$",null!==e.rates&&"object"==typeof e.rates&&(S.conversions=e.rates,b=!0,R=!1),null!==e.defaultRates&&"object"==typeof e.defaultRates&&(E=e.defaultRates,S.conversions=E,b=!0),"string"==typeof e.adServerCurrency){w=e.auctionDelay,(0,t.fH)("enabling currency support",arguments),m=e.adServerCurrency,e.conversionRateFile&&((0,t.fH)("currency using override conversionRateFile:",e.conversionRateFile),h=e.conversionRateFile);const n=h.indexOf("$$TODAY$$");if(-1!==n){const e=new Date;let r="".concat(e.getMonth()+1),c="".concat(e.getDate());r.length<2&&(r="0".concat(r)),c.length<2&&(c="0".concat(c));const t="".concat(e.getFullYear()).concat(r).concat(c);h="".concat(h.substring(0,n)).concat(t).concat(h.substring(n+9,h.length))}g={},O||(O=!0,(0,c.m)().convertCurrency=(e,n,r)=>parseFloat(e)*J(n,r),(0,a.Yn)("addBidResponse").before(A,100),(0,a.Yn)("responsesReady").before(k),v.w.before(j),(0,a.Yn)("requestBids").before(_,50),(0,y.on)(i.qY.AUCTION_TIMEOUT,F),(0,y.on)(i.qY.AUCTION_INIT,I),I())}else w=0,(0,t.fH)("disabling currency support"),O&&((0,a.Yn)("addBidResponse").getHooks({hook:A}).remove(),(0,a.Yn)("responsesReady").getHooks({hook:k}).remove(),v.w.getHooks({hook:j}).remove(),(0,a.Yn)("requestBids").getHooks({hook:_}).remove(),(0,y.AU)(i.qY.AUCTION_TIMEOUT,F),(0,y.AU)(i.qY.AUCTION_INIT,I),delete(0,c.m)().convertCurrency,m="USD",g={},O=!1,b=!1,R=!0,S={},N={},T=(0,f.v)());"object"==typeof e.bidderCurrencyDefault&&(N=e.bidderCurrencyDefault)}function Y(e){E?((0,t.JE)(e),(0,t.JE)("Currency failed loading rates, falling back to currency.defaultRates")):(0,t.vV)(e)}function I(){R?(R=!1,b=!1,(0,s.RD)(h,{success:function(e){try{S=JSON.parse(e),(0,t.fH)("currencyRates set to "+JSON.stringify(S)),g={},b=!0,H(),U.resume()}catch(n){Y("Failed to parse currencyRates response: "+e)}},error:function(){Y(...arguments),b=!0,H(),U.resume(),R=!0}})):H()}function k(e,n){e(n.then(()=>T.promise))}u.$W.getConfig("currency",e=>D(e.currency));const A=(0,d.NL)("currency",function(e,n,r,c){if(!r)return e.call(this,n,r,c);let o=r.bidderCode||r.bidder;if(N[o]){let e=N[o];r.currency&&e!==r.currency?(0,t.JE)("Currency default \'".concat(o,": ").concat(e,"\' ignored. adapter specified \'").concat(r.currency,"\'")):r.currency=e}if(r.currency||((0,t.JE)(\'Currency not specified on bid. Defaulted to "USD"\'),r.currency="USD"),r.getCpmInNewCurrency=function(e){return(parseFloat(this.cpm)*J(this.currency,e)).toFixed(3)},r.currency===m)return e.call(this,n,r,c);C.push([e,this,n,r,c]),O&&!b||H()});function F(e){let{auctionId:n}=e;C=C.filter(e=>{let[r,c,t,o,s]=e;if(o.auctionId!==n)return!0;s(i.Tf.CANNOT_CONVERT_CURRENCY)})}function H(){for(;C.length>0;){const[e,n,r,c,o]=C.shift();if(void 0!==c&&"currency"in c&&"cpm"in c){let e=c.currency;try{let n=J(e);1!==n&&(c.cpm=(parseFloat(c.cpm)*n).toFixed(4),c.currency=m)}catch(e){(0,t.JE)("getCurrencyConversion threw error: ",e),o(i.Tf.CANNOT_CONVERT_CURRENCY);continue}}e.call(n,r,c,o)}T.resolve()}function J(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m;var r,c=null;let o="".concat(e,"->").concat(n);if(o in g)c=g[o],(0,t.OG)("Using conversionCache value "+c+" for "+o);else if(!1===O){if("USD"!==e)throw new Error("Prebid currency support has not been enabled and fromCurrency is not USD");c=1}else if(e===n)c=1;else if(e in S.conversions){if(!(n in(r=S.conversions[e])))throw new Error("Specified adServerCurrency in config \'"+n+"\' not found in the currency rates file");c=r[n],(0,t.fH)("getCurrencyConversion using direct "+e+" to "+n+" conversionRate "+c)}else if(n in S.conversions){if(!(e in(r=S.conversions[n])))throw new Error("Specified fromCurrency \'"+e+"\' not found in the currency rates file");c=$(1/r[e],4),(0,t.fH)("getCurrencyConversion using reciprocal "+e+" to "+n+" conversionRate "+c)}else{var i=Object.keys(S.conversions)[0];if(!(e in S.conversions[i]))throw new Error("Specified fromCurrency \'"+e+"\' not found in the currency rates file");var s=1/S.conversions[i][e];if(!(n in S.conversions[i]))throw new Error("Specified adServerCurrency in config \'"+n+"\' not found in the currency rates file");c=$(s*S.conversions[i][n],4),(0,t.fH)("getCurrencyConversion using intermediate "+e+" thru "+i+" to "+n+" conversionRate "+c)}return o in g||((0,t.OG)("Adding conversionCache value "+c+" for "+o),g[o]=c),c}function $(e,n){var r=1;for(let e=0;e<n;e++)r+="0";return Math.round(e*r)/r}function j(e,n){return e(n.then(e=>((0,o.J)(e,"ext.prebid.adServerCurrency",m),e)))}(0,l.pS)({type:l.S3,name:"currency",fn:function(e,n,r){O&&(e.cur=e.cur||[r.currency||m])}});const _=(0,d.Ak)("currency",function(e,n){const r=(c=this,()=>e.call(c,n));var c;!b&&w>0?U.submit(w,r,()=>{(0,t.JE)("".concat("currency",": Fetch attempt did not return in time for auction ").concat(n.auctionId)),r()}):r()});(0,c.E)("currency")}},e=>{e.O(0,[802,957,85],()=>{return n=236,e(e.s=n);var n});e.O()}]);\n(self.pbjsChunk=self.pbjsChunk||[]).push([[103],{967:(t,e,n)=>{var d=n(873),a=n(115);const i="testbidder",s={code:i,isBidRequestValid:function(t){return!!t.params},buildRequests:function(t,e){return t.map(t=>{var e,n,d,a,i,s,r;return{method:"GET",url:"",data:{mock:!0,bidId:t.bidId,testRequestId:null!==(e=t.params.requestId)&&void 0!==e?e:null,testCPM:null!==(n=t.params.cpm)&&void 0!==n?n:null,testWidth:null!==(d=t.params.width)&&void 0!==d?d:null,testHeight:null!==(a=t.params.height)&&void 0!==a?a:null,testAd:null!==(i=t.params.ad)&&void 0!==i?i:null,testTTL:null!==(s=t.params.ttl)&&void 0!==s?s:null,currency:null!==(r=t.params.currency)&&void 0!==r?r:"USD"},bidRequestId:t.bidId}})},interpretResponse:function(t,e){const n=e.data.testWidth||300,d=e.data.testHeight||250,a=e.data.testRequestId||e.bidRequestId,s=\'<!DOCTYPE html>\\n <html>\\n <head>\\n <meta charset="utf-8">\\n <style>\\n body { margin: 0; padding: 0; }\\n .creative-container {\\n position: relative;\\n width: \'.concat(n,"px;\\n height: ").concat(d,\'px;\\n background: #f0f0f0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n }\\n </style>\\n </head>\\n <body>\\n <div id="creative-\').concat(a,\'" class="creative-container">\\n <div style="text-align: center;">\\n <p>Test Ad</p>\\n <p>\').concat(e.data.testAd,"</p>\\n <p>").concat(n,"x").concat(d,"</p>\\n </div>\\n <script>\\n (function() {\\n var size = { width: ").concat(n,", height: ").concat(d," };\\n window.parent.postMessage(JSON.stringify({\\n message: \'Prebid Creative Loaded\',\\n adId: \'").concat(a,"\',\\n size: size\\n }), \'*\');\\n })();\\n <\\/script>\\n </div>\\n </body>\\n </html>");return[{requestId:e.data.testRequestId||e.bidRequestId,cpm:parseFloat(e.data.testCPM)||1,currency:e.data.currency,width:n,height:d,mediaType:"banner",ad:s,ttl:e.data.testTTL||300,creativeId:"test-creative-id",netRevenue:!0,bidderCode:i}]},onTimeout:function(t){},onBidWon:function(t){}};(0,a.a$)(s),(0,d.E)("testbidderBidAdapter")}},t=>{t.O(0,[802,85],()=>{return e=967,t(t.s=e);var e});t.O()}]);\n})(),pbjs.processQueue();\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.1.4/prebid.js?')},"../node_modules/css-loader/dist/cjs.js!./css/sticky.css":(module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "../node_modules/css-loader/dist/runtime/noSourceMaps.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "../node_modules/css-loader/dist/runtime/api.js");\n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.ad-anchor {\n box-sizing: border-box;\n z-index: 9999;\n background-color: #f0f0f0;\n border: 1px dotted #ccc;\n place-items: center;\n padding: 5px;\n transition: all 0.3s ease;\n display: flex;\n align-items: flex-start;\n justify-content: space-between; /* space between .ad-slot and .ad-action-buttons */\n}\n\n.ad-slot {\n flex-grow: 1; /* take up remaining space in center */\n flex-shrink: 1;\n color: #888; /* text color */\n text-align: center; /* center-align content inside div */\n display: flex;\n align-items: center; /* vertically center align all children */\n justify-content: center; /* horizontally center align all children */\n overflow: hidden;\n}\n\n.ad-action-buttons {\n display: flex; /* use flexbox for the buttons */\n gap: 5px; /* add 5px horizontal gap between buttons */\n flex-shrink: 0;\n}\n\n.ad-action-btn {\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n color: #888;\n background: #f0f0f0;\n border: 1px solid #ccc;\n font-size: 20px;\n font-weight: normal;\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n line-height: 18px;\n text-align: center;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n\n/* top sticky ad */\n.ad-TP {\n position: sticky;\n top: 0;\n left: 0;\n width: calc(100vw - 25px);\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n}\n\n/* bottom sticky ad */\n.ad-BM {\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%; /* "fixed" position width goes by view port */\n height: auto;\n min-height: 10vh; /* minimum height 10% of viewport */\n max-height: 30vh; /* maximum height 30% of viewport */\n/* \n max-width: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-left: calc(-50vw + 50%); */\n}\n\n/* right rail sticky ad */\n.ad-RG {\n position: fixed;\n top: 50%;\n right: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* left rail sticky ad */\n.ad-LF {\n position: fixed;\n top: 50%;\n left: 0;\n width: 300px;\n height: 600px;\n transform: translateY(-50%);\n}\n\n/* minimized states */\n.horizontal-minimized {\n height: 30px;\n min-height: 30px;\n overflow: hidden;\n}\n\n.vertical-minimized {\n width: 55px;\n min-width: 55px;\n overflow: hidden;\n}\n\n/* hidden state */\n.hidden {\n display: none;\n}\n\n`, ""]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?../node_modules/css-loader/dist/cjs.js')},"../node_modules/css-loader/dist/runtime/api.js":module=>{"use strict";eval('\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = "";\n var needLayer = typeof item[5] !== "undefined";\n if (item[4]) {\n content += "@supports (".concat(item[4], ") {");\n }\n if (item[2]) {\n content += "@media ".concat(item[2], " {");\n }\n if (needLayer) {\n content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += "}";\n }\n if (item[2]) {\n content += "}";\n }\n if (item[4]) {\n content += "}";\n }\n return content;\n }).join("");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === "string") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== "undefined") {\n if (typeof item[5] === "undefined") {\n item[5] = layer;\n } else {\n item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = "".concat(supports);\n } else {\n item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/api.js?')},"../node_modules/css-loader/dist/runtime/noSourceMaps.js":module=>{"use strict";eval("\n\nmodule.exports = function (i) {\n return i[1];\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/css-loader/dist/runtime/noSourceMaps.js?")},"./css/sticky.css":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../node_modules/style-loader/dist/runtime/styleDomAPI.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../node_modules/style-loader/dist/runtime/insertBySelector.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../node_modules/style-loader/dist/runtime/insertStyleElement.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../node_modules/style-loader/dist/runtime/styleTagTransform.js");\n/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../node_modules/css-loader/dist/cjs.js!./sticky.css */ "../node_modules/css-loader/dist/cjs.js!./css/sticky.css");\n\n \n \n \n \n \n \n \n \n \n\nvar options = {};\n\noptions.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");\noptions.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);\n\n\n\n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_sticky_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./css/sticky.css?')},"../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":module=>{"use strict";eval('\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = "".concat(id, " ").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?')},"../node_modules/style-loader/dist/runtime/insertBySelector.js":module=>{"use strict";eval('\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === "undefined") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error("Couldn\'t find a style target. This probably means that the value for the \'insert\' parameter is invalid.");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertBySelector.js?')},"../node_modules/style-loader/dist/runtime/insertStyleElement.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement("style");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/insertStyleElement.js?')},"../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":(module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = true ? __webpack_require__.nc : 0;\n if (nonce) {\n styleElement.setAttribute("nonce", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?')},"../node_modules/style-loader/dist/runtime/styleDomAPI.js":module=>{"use strict";eval('\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = "";\n if (obj.supports) {\n css += "@supports (".concat(obj.supports, ") {");\n }\n if (obj.media) {\n css += "@media ".concat(obj.media, " {");\n }\n var needLayer = typeof obj.layer !== "undefined";\n if (needLayer) {\n css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");\n }\n css += obj.css;\n if (needLayer) {\n css += "}";\n }\n if (obj.media) {\n css += "}";\n }\n if (obj.supports) {\n css += "}";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== "undefined") {\n css += "\\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === "undefined") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleDomAPI.js?')},"../node_modules/style-loader/dist/runtime/styleTagTransform.js":module=>{"use strict";eval("\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/style-loader/dist/runtime/styleTagTransform.js?")},"./src/abTests.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getTestAdSlots: () => (/* binding */ getTestAdSlots)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n// file: wrapper/src/abTests.ts\n\n\n\nconst MAX_HASH_32 = Number(2 ** 32 - 1); // max possible value for xxHash32\n/**\n * Deep merge utility function for merging ad slot overrides\n * Handles nested objects properly, unlike shallow spread operator\n */\nfunction deepMerge(target, source) {\n if (source === null || source === undefined) {\n return target;\n }\n if (typeof source !== 'object' || Array.isArray(source)) {\n return source;\n }\n const result = { ...target };\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (typeof source[key] === 'object' && source[key] !== null && !Array.isArray(source[key]) &&\n typeof target[key] === 'object' && target[key] !== null && !Array.isArray(target[key])) {\n result[key] = deepMerge(target[key], source[key]);\n }\n else {\n result[key] = source[key];\n }\n }\n }\n return result;\n}\n/**\n *\n * @param audienceId can be either userId or sessionId\n * @param testId can be either testId or experimentId\n * @returns number between [0, 1]\n */\nasync function getProjection(audienceId, testId) {\n const { h32 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const data = `${audienceId}:${testId}`;\n // compute hash\n const xxHash32 = h32(data, 0); // seed 0 explicitly\n // normalize to [0, 1]\n const projection = parseFloat((Number(xxHash32) / Number(MAX_HASH_32)).toFixed(2));\n if (projection < 0 || projection > 1) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`projection '${projection}' not between 0 and 1`, true);\n }\n return projection;\n}\nasync function getTreatment(test, projection) {\n let treatment = null;\n try {\n const url = `${_constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.t /*testsAPIEndpoint*/}/allocations?testId=${test.i /*testId*/}`;\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n switch (response.status) {\n case 200:\n let allocations = await response.json();\n // Handle malformed API responses\n if (!Array.isArray(allocations)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Invalid API response: expected array, got ${typeof allocations}`);\n break;\n }\n if (allocations.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Empty allocations array returned from API for testId '${test.i}'`);\n break;\n }\n let cumAlloc = 0;\n test.tm /*treatments*/.forEach(tr => {\n tr.a /*allocation*/ = allocations.find(alloc => alloc.i === tr.i /*id*/)?.a; // adds values to wrapperConfig.layouts[].tests[].treatment[]\n cumAlloc += tr.a /*allocation*/ ?? 0;\n if ((treatment === null) && (projection <= cumAlloc)) {\n treatment = tr;\n }\n });\n break;\n case 204:\n default:\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`http error! ${response.status} ${response.statusText}`);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('error fetching tests data in getTreatment():', false, error);\n }\n return treatment;\n}\n// export async function getTestAdSlots(layout: Layout): Promise<AdSlot[]> {\n// const adSlotOverridesMap: Map<string, AdSlotOverrides> = new Map();\n// const testPromises = layout.ts/*tests*/?.map(async test => {\n// // TODO: support multiple randomization method, userId vs. sessionId\n// const projection: number = await getProjection(getUserId(), test.i/*testId*/);\n// const treatment: Treatment | null = await getTreatment(test, projection);\n// if (treatment === null) {\n// consoleDebug(`unable to find treatment for testId '${test.i/*testId*/}' and projection: ${projection}, proceeding without tests ...`);\n// return;\n// }\n// consoleDebug(`test details testId: '${test.i/*testId*/}', projection: ${projection}, treatmentId: '${treatment.i/*id*/}'`);\n// // multiple tests can include same ad unit, but not override same attribute (1 level deep)\n// treatment.as/*adSlots*/.forEach((auo: AdSlotOverrides) => {\n// const tauo: AdSlotOverrides | undefined = adSlotOverridesMap.get(auo.g/*gam ad unit code*/);\n// adSlotOverridesMap.set(auo.g, {\n// g: auo.g, /* gam ad unit code */\n// o: (tauo?.o && auo.o) /* auctionTimeout */\n// ? (() => { throw new Error(`auctionTimeout defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.o ?? auo.o),\n// n: (tauo?.n && auo.n) /* insert */\n// ? (() => { throw new Error(`insert defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.n ?? auo.n),\n// m: (tauo?.m && auo.m) /* media */\n// ? (() => { throw new Error(`media defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.m ?? auo.m),\n// tg: (tauo?.tg && auo.tg) /* tagIds */\n// ? (() => { throw new Error(`tagIds defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.tg ?? auo.tg),\n// r: (tauo?.r && auo.r) /* refresh */\n// ? (() => { throw new Error(`refresh defined in multiple tests for ad unit '${auo.g}'`) })()\n// : (tauo?.r ?? auo.r),\n// l: (tauo?.l && auo.l) /* load */\n// ? (() => { throw new Error(`load defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.l ?? auo.l),\n// kv: (tauo?.kv && auo.kv) /* targetingKeyValues */\n// ? (() => { throw new Error(`targetingKeyValues defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.kv ?? auo.kv),\n// f: (tauo?.f && auo.f) /* price floor */\n// ? (() => { throw new Error(`floor defined in multiple tests for ad unit '${auo.g}'`) })() \n// : (tauo?.f ?? auo.f)\n// } as AdSlot);\n// });\n// }) ?? null;\n// if (testPromises) {\n// await Promise.all(testPromises);\n// }\n// const testAdSlots: AdSlot[] = [];\n// adSlotOverridesMap.forEach((auo: AdSlotOverrides) => {\n// const iau: AdSlot | undefined = layout.as /* ad slots */\n// .find(au => au.g === auo.g); /* gam ad unit code */\n// testAdSlots.push({\n// g: auo.g, /* gam ad unit code */\n// o: auo.o ?? iau?.o as number, /* auctionTimeout */\n// n: (auo.n || iau?.n) /* insert */\n// ? auo.n ?? iau?.n as Insert\n// : (() => { throw new Error(`insert not defined for test ad unit '${auo.g}'`) })(),\n// m: (auo.m || iau?.m) /* media */\n// ? auo.m ?? iau?.m as Media\n// : (() => { throw new Error(`media not defined for test ad unit '${auo.g}'`) })(),\n// tg: (auo.tg || iau?.tg) /* tagIds */\n// ? auo.tg ?? iau?.tg as TagId[]\n// : (() => { throw new Error(`tagIds not defined for test ad unit '${auo.g}'`) })(),\n// r: auo.r ?? iau?.r as Refresh, /* refresh */\n// l: (auo.l || iau?.l) /* load */\n// ? auo.l ?? iau?.l as Load\n// : (() => { throw new Error(`load not defined for test ad unit '${auo.g}'`) })(),\n// kv: auo.kv ?? iau?.kv as KeyValue, /* targetingKeyValues */\n// f: auo.f ?? iau?.f as number /* price floor */\n// } as AdSlot);\n// });\n// return testAdSlots;\n// }\nasync function getTestAdSlots(layout) {\n const adSlotOverridesMap = new Map();\n const testPromises = layout.ts?.map(async (test) => {\n const projection = await getProjection((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserId)(), test.i);\n const treatment = await getTreatment(test, projection);\n if (treatment === null) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`unable to find treatment for testId '${test.i}' and projection: ${projection}, proceeding without tests ...`);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`test details testId: '${test.i}', projection: ${projection}, treatmentId: '${treatment.i}'`);\n treatment.as.forEach((currentTreatmentOverride) => {\n const gamUnitCode = currentTreatmentOverride.g;\n const previouslyAccumulatedOverrides = adSlotOverridesMap.get(gamUnitCode);\n const effectiveOverridesForSlot = { g: gamUnitCode };\n const processProperty = (propName) => {\n const existingVal = previouslyAccumulatedOverrides?.[propName];\n const newValFromCurrentTreatment = currentTreatmentOverride[propName];\n if (newValFromCurrentTreatment !== undefined) {\n if (existingVal !== undefined) { // Property was already defined by a previous test's treatment\n const fieldName = String(propName) === 'o' ? 'auctionTimeout' : String(propName);\n // For 'o' (auctionTimeout), throw if it's defined again, regardless of value, to match test.\n if (String(propName) === 'o') {\n throw new Error(`${fieldName} defined in multiple tests for ad unit '${gamUnitCode}'`);\n }\n // For other properties, throw only if values are different.\n if (JSON.stringify(existingVal) !== JSON.stringify(newValFromCurrentTreatment)) {\n throw new Error(`${fieldName} defined differently in multiple tests for ad unit '${gamUnitCode}'`);\n }\n }\n effectiveOverridesForSlot[propName] = newValFromCurrentTreatment;\n }\n else if (existingVal !== undefined) {\n effectiveOverridesForSlot[propName] = existingVal;\n }\n };\n processProperty('o');\n processProperty('n');\n processProperty('m');\n processProperty('tg');\n processProperty('r');\n processProperty('l');\n processProperty('kv');\n processProperty('f');\n if (Object.keys(effectiveOverridesForSlot).length > 1) {\n adSlotOverridesMap.set(gamUnitCode, effectiveOverridesForSlot);\n }\n else {\n if (!previouslyAccumulatedOverrides || Object.keys(previouslyAccumulatedOverrides).length <= 1) {\n adSlotOverridesMap.delete(gamUnitCode);\n }\n }\n });\n }) ?? null;\n if (testPromises) {\n await Promise.all(testPromises);\n }\n const testAdSlots = [];\n adSlotOverridesMap.forEach((accumulatedOverrides) => {\n const initialAdSlot = layout.as.find(au => au.g === accumulatedOverrides.g);\n if (!initialAdSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Original ad slot not found for override: ${accumulatedOverrides.g}`);\n return;\n }\n const mergedSlot = deepMerge(initialAdSlot, accumulatedOverrides);\n if (!mergedSlot.n)\n throw new Error(`insert not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.m)\n throw new Error(`media not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.tg)\n throw new Error(`tagIds not defined for test ad unit '${mergedSlot.g}'`);\n if (!mergedSlot.l)\n throw new Error(`load not defined for test ad unit '${mergedSlot.g}'`);\n testAdSlots.push(mergedSlot);\n });\n return testAdSlots;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/abTests.ts?")},"./src/auctionConductor.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRegisterSlotWorker: () => (/* binding */ setRegisterSlotWorker),\n/* harmony export */ setServeAdWorker: () => (/* binding */ setServeAdWorker)\n/* harmony export */ });\n/* harmony import */ var _refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./refreshEventHandlers */ "./src/refreshEventHandlers.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/auctionConductor.ts\n\n\n\n\n\n/**\n *\n * auction is event based and conducted in 3 steps\n * 1) register ad slot after parent div element is added - setRegisterSlotWorker()\n * 2) start auction\n * 3)\n *\n */\n// register handler: to register ad slot after div has loaded in body\nfunction setRegisterSlotWorker(slot, window = globalThis.window) {\n const slot_div_id = slot?.getSlotElementId();\n if (!slot_div_id) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.consoleError)(\'setRegisterSlotWorker: Undefined slot element id, cannot register slot.\', false, slot);\n return;\n }\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element already exists\n registerSlot(element);\n return;\n }\n if (window.document.body) { // page has already loaded\n setupMutationObserver(slot_div_id);\n }\n else {\n window.document.addEventListener(\'DOMContentLoaded\', () => {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n registerSlot(element);\n }\n else { // for future additions\n setupMutationObserver(slot_div_id);\n }\n });\n }\n // set up MutationObserver for future additions\n function setupMutationObserver(slot_div_id) {\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n const element = window.document.getElementById(slot_div_id);\n if (element) { // element exists in dom now\n observer.disconnect();\n registerSlot(element);\n return;\n }\n }\n });\n // start observing document for changes\n observer.observe(window.document.body, {\n childList: true, // listen for direct children added/removed\n subtree: true // listen for changes in the entire subtree\n });\n }\n function registerSlot(element) {\n googletag.cmd.push(() => {\n googletag.display(element.id); // called to register slot, disableInitialLoad() should still apply\n // fetch ads for "lazy" load ad units only\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (entry?.adSlot?.l /*load*/ === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Load.Lazy) {\n setFetchAdWorker(element);\n }\n else {\n // register refresh handlers for "eager" load ad units\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }\n}\n// meant to be called for "lazy" load ad slots only\nfunction setFetchAdWorker(element) {\n // check if intersection observer already exists for element\n const existingEntry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.getAuctionEntry)(element.id);\n if (existingEntry?.intersectionObserver) {\n return;\n }\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "1000px", // margin to grow or shrink intersection frame of root, default 100px (10% of most popular viewport 1080px)\n threshold: 0.0 // % element visible\n };\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if ((entry.intersectionRatio > 0) && !(0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.isAuctionInProgress)(element.id)) {\n // disconnect observer, set auction in progress\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearIntersectionObserver)(element.id);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setAuctionInProgress)(element.id, _types_enums__WEBPACK_IMPORTED_MODULE_2__.ServeType.Initial);\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.requestBids({\n // adslot element (div) id used as unique prebid adunit code\n adUnitCodes: [element.id],\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.o /*auctionTimeout*/ // TODO: use adUnit level timeout when set\n });\n });\n // register refresh handlers for "lazy" load ad slots\n (0,_refreshEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setRefreshWorker)(element.id);\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.setIntersectionObserver)(element.id, observer);\n observer.observe(element);\n}\nfunction setServeAdWorker() {\n const pbjs = window.pbjs;\n pbjs.onEvent(\'auctionEnd\', (auction) => {\n // clear auction in progress flags for completed auction slots\n const renderAdSlotCodes = auction.adUnitCodes;\n renderAdSlotCodes.forEach(adUnitCode => {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_4__.clearAuctionInProgress)(adUnitCode);\n });\n googletag.cmd.push(() => {\n const renderSlots = googletag.pubads()\n .getSlots()\n // filter adslot element (div) id used as unique prebid adunit code\n .filter(slot => renderAdSlotCodes.includes(slot.getSlotElementId()));\n if (renderSlots.length > 0) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.setTargetingForGPTAsync(renderAdSlotCodes);\n googletag.pubads().refresh(renderSlots);\n });\n }\n });\n });\n // TODO: should this part be moved to a different function?\n pbjs.onEvent(\'bidWon\', (bid) => {\n const slot = googletag.pubads()\n .getSlots()\n // find by adslot element (div) id used as unique prebid adunit code\n .find(slot => slot.getSlotElementId() === bid.adUnitCode)\n ?? null;\n // TODO: add prefix to targeting keys to make it obvious that this is specific to our wrapper\n if (slot) {\n googletag.cmd.push(() => {\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_bidder_code`, bid.bidderCode);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm`, bid.cpm);\n slot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig.p /*targetKeyPrefix*/}_cpm_currency`, bid.currency);\n });\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionConductor.ts?')},"./src/auctionState.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clearAllIntersectionObservers: () => (/* binding */ clearAllIntersectionObservers),\n/* harmony export */ clearAuctionInProgress: () => (/* binding */ clearAuctionInProgress),\n/* harmony export */ clearIntersectionObserver: () => (/* binding */ clearIntersectionObserver),\n/* harmony export */ deleteAuctionEntry: () => (/* binding */ deleteAuctionEntry),\n/* harmony export */ getAllAdSlots: () => (/* binding */ getAllAdSlots),\n/* harmony export */ getAllAuctionEntries: () => (/* binding */ getAllAuctionEntries),\n/* harmony export */ getAuctionEntry: () => (/* binding */ getAuctionEntry),\n/* harmony export */ isAuctionInProgress: () => (/* binding */ isAuctionInProgress),\n/* harmony export */ setAuctionEntry: () => (/* binding */ setAuctionEntry),\n/* harmony export */ setAuctionInProgress: () => (/* binding */ setAuctionInProgress),\n/* harmony export */ setIntersectionObserver: () => (/* binding */ setIntersectionObserver),\n/* harmony export */ updateAuctionEntry: () => (/* binding */ updateAuctionEntry)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/auctionState.ts\n\n// persistent state management for ad slots across entire lifecycle\n// tracks auction progression, to maintain data integrity during refresh cycles\n// maps adUnit.code (div id) to slot state (auction ids, winning bid data, configuration)\nconst adSlotAuctionMap = new Map();\nfunction getAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.get(adUnitCode);\n}\nfunction getAllAuctionEntries() {\n return Array.from(adSlotAuctionMap.values());\n}\nfunction getAllAdSlots() {\n return getAllAuctionEntries()\n .map(entry => entry.adSlot)\n .filter((slot) => !!slot);\n}\nfunction setAuctionEntry(adUnitCode, entry) {\n adSlotAuctionMap.set(adUnitCode, entry);\n}\nfunction updateAuctionEntry(adUnitCode, updates) {\n const currentEntry = adSlotAuctionMap.get(adUnitCode) || {};\n adSlotAuctionMap.set(adUnitCode, {\n ...currentEntry,\n ...updates\n });\n}\nfunction deleteAuctionEntry(adUnitCode) {\n return adSlotAuctionMap.delete(adUnitCode);\n}\nfunction isAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.isAuctionInProgress) {\n const caller = new Error().stack?.split('\\n')[2]?.trim().split(' ')[1] || 'unknown';\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`${caller}: Auction already in progress for slot, skipping`, adUnitCode);\n return true;\n }\n return false;\n}\nfunction setAuctionInProgress(adUnitCode, serveType, adSlot) {\n const entry = adSlotAuctionMap.get(adUnitCode) || { adSlot: adSlot };\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: true,\n serveType: serveType\n });\n}\nfunction clearAuctionInProgress(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry) {\n updateAuctionEntry(adUnitCode, {\n isAuctionInProgress: false\n });\n }\n}\nfunction setIntersectionObserver(adUnitCode, observer) {\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: observer\n });\n}\nfunction clearIntersectionObserver(adUnitCode) {\n const entry = adSlotAuctionMap.get(adUnitCode);\n if (entry?.intersectionObserver) {\n entry.intersectionObserver.disconnect();\n updateAuctionEntry(adUnitCode, {\n intersectionObserver: undefined\n });\n }\n}\nfunction clearAllIntersectionObservers() {\n adSlotAuctionMap.forEach((entry, adUnitCode) => {\n if (entry.intersectionObserver) {\n clearIntersectionObserver(adUnitCode);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/auctionState.ts?")},"./src/audiences.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getUserBrowser: () => (/* binding */ getUserBrowser),\n/* harmony export */ getUserCountry: () => (/* binding */ getUserCountry),\n/* harmony export */ matchAudience: () => (/* binding */ matchAudience)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/audiences.ts\n\n\nfunction getUserBrowser() {\n const userAgent = navigator?.userAgent;\n if (!userAgent) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Other;\n }\n const ua = userAgent.toLowerCase();\n // check edge first, its ua string often includes \"chrome\"\n // modern edge uses \"edg/\", older edge used \"edge/\"\n if (ua.indexOf('edg/') > -1 || ua.indexOf('edge/') > -1 || ua.indexOf('edge') > -1) { // a bit more robust for edge\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Edge;\n }\n else if (ua.indexOf('chrome') > -1 && ua.indexOf('safari') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Chrome;\n }\n else if (ua.indexOf('safari') > -1) { // safari only (no \"chrome\" or \"edg\")\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Safari;\n }\n else if (ua.indexOf('firefox') > -1) {\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Firefox;\n }\n return _types_enums__WEBPACK_IMPORTED_MODULE_0__.Browser.Other;\n}\nfunction getUserCountry() {\n let localeString;\n try {\n localeString = Intl.DateTimeFormat().resolvedOptions().locale;\n }\n catch (error) {\n localeString = undefined;\n }\n let localeCountryCode;\n if (localeString) {\n const parts = localeString.split('-');\n if (parts.length > 1) {\n localeCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n const langString = navigator?.language;\n let langCountryCode;\n if (langString) {\n const parts = langString.split('-');\n if (parts.length > 1) {\n langCountryCode = parts[parts.length - 1]; // take last part\n }\n }\n // return uppercase country code if found\n if (localeCountryCode)\n return localeCountryCode.toUpperCase();\n if (langCountryCode)\n return langCountryCode.toUpperCase();\n return null;\n}\nfunction matchAudience(layout, window = globalThis.window) {\n for (const inc of layout.t /*targetAudience*/?.ic /*includes*/ ?? []) {\n if (inc.bw /*browser*/ && !inc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (inc.dv /*device*/ && !inc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (inc.cy /*country*/ && !inc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n for (const exc of layout.t /*targetAudience*/?.ex /*excludes*/ ?? []) {\n if (exc.bw /*browser*/ && exc.bw /*browser*/.includes(getUserBrowser()))\n return null;\n if (exc.dv /*device*/ && exc.dv /*device*/.includes((0,_utils__WEBPACK_IMPORTED_MODULE_1__.getUserDevice)(window)))\n return null;\n if (exc.cy /*country*/ && exc.cy /*country*/.includes(getUserCountry() ?? ''))\n return null;\n }\n return layout;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/audiences.ts?")},"./src/bootstrap.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ bootstrapWrapper: () => (/* binding */ bootstrapWrapper),\n/* harmony export */ initAdserver: () => (/* binding */ initAdserver),\n/* harmony export */ processAdSlots: () => (/* binding */ processAdSlots)\n/* harmony export */ });\n/* harmony import */ var _logEventHandlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logEventHandlers */ "./src/logEventHandlers.ts");\n/* harmony import */ var _auctionConductor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionConductor */ "./src/auctionConductor.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./src/logger.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _abTests__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./abTests */ "./src/abTests.ts");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./audiences */ "./src/audiences.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n// file: wrapper/src/bootstrap.ts\n\n\n\n\n\n\n\n\n\n\n\nfunction initAdserver(window = globalThis.window) {\n const googletag = window.googletag;\n const pbjs = window.pbjs;\n if (!googletag.pubads) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'googletag (google publisher tag) did not load properly...\', false, window);\n return;\n }\n if (pbjs.initAdserverSet)\n return;\n pbjs.initAdserverSet = true;\n googletag.cmd.push(() => {\n if (pbjs.setTargetingForGPTAsync) {\n pbjs.setTargetingForGPTAsync();\n googletag.pubads().refresh();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(\'Prebid did not load properly: setTargetingForGPTAsync is undefined\', false, window);\n googletag.pubads().refresh(); // fallback to direct googletag refresh\n //TODO log error\n }\n });\n}\nfunction processAdSlots(adSlots, window = globalThis.window) {\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n // insert dom elements for static slots, before configuring ads\n function processStaticSlots() {\n adSlots.forEach(adSlot => {\n if (adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_9__.Anchor.StaticElement) {\n const slotDiv = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.addSlotElement)(adSlot.n, window);\n if (slotDiv) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(`Inserted static slot ${slotDiv.id} ${adSlot.n /*insert*/.r /*reference*/} element ${adSlot.n /*insert*/.d /*divId*/}`, window);\n }\n }\n });\n }\n ;\n if (window.document.readyState === \'loading\') {\n // dom not ready, wait for it\n window.document.addEventListener(\'DOMContentLoaded\', processStaticSlots, { once: true });\n }\n else {\n // dom already ready (interactive | complete)\n processStaticSlots();\n }\n pbjs.que.push(() => {\n // add all ad units to prebid auction, update auction map\n const pbjsAdUnits = [];\n adSlots.forEach(adSlot => {\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n // create prebid ad unit\n const pbjsAdUnit = {\n code: adUnitCode, // adslot element (div) id used as unique prebid adunit code\n div: adUnitCode,\n mediaTypes: {\n banner: {\n sizes: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getValueByDevice)(adSlot.m /*media*/.sz /*sizes*/, window)\n }\n },\n bids: adSlot.tg /*tagIds*/.map(tagId => ({\n bidder: tagId.b /*bidder*/,\n params: tagId.pm /*params*/\n })),\n ...(adSlot.f && {\n floors: {\n default: adSlot.f /*priceFloor*/,\n currency: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c /*currencyCode*/\n }\n })\n };\n pbjsAdUnits.push(pbjsAdUnit);\n // set pbjs registered status in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(adUnitCode, {\n adSlot: adSlot,\n adUnit: pbjsAdUnit\n });\n });\n // add all units to prebid\n if (pbjsAdUnits.length > 0) {\n pbjs.addAdUnits(pbjsAdUnits);\n }\n // start prebid auction for "eager" load ad slots\n var adUnitCodes = adSlots\n .filter(slot => [_types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Eager, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_9__.Load.OnDemand].includes(slot.l /*load*/)) // filter ad unit codes for immediate auction\n .map(slot => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(slot)); // return prebid adunit codes (adslot div ids)\n // filter out slots with auctions in progress and set flags for valid slots\n const validAdUnitCodes = adUnitCodes.filter(adUnitCode => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.isAuctionInProgress)(adUnitCode)) {\n return false;\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_9__.ServeType.Initial);\n return true;\n });\n if (validAdUnitCodes.length > 0) {\n pbjs.requestBids({\n adUnitCodes: validAdUnitCodes,\n timeout: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.o /*auctionTimeout*/\n });\n }\n });\n googletag.cmd.push(() => {\n adSlots\n .forEach((adSlot) => {\n var sizes = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getValueByDevice)(adSlot.m /*media*/.sz /*sizes*/, window);\n const divId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n const gptSlot = googletag\n .defineSlot(adSlot.g /*gamAdUnitCode*/, sizes, divId)\n ?.addService(googletag.pubads());\n if (gptSlot) {\n // set googletag slot in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(divId, {\n gptSlot: gptSlot\n });\n // slot level targeting (google publisher tag)\n Object.entries(adSlot.kv /*targetKeyValues*/ || {}).forEach(([key, value]) => {\n gptSlot.setTargeting(key, value);\n });\n if (adSlot.f /*price floor*/) {\n gptSlot.setTargeting(`${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.p /*targetKeyPrefix*/}_floor`, adSlot.f /*price floor*/.toString());\n }\n if (adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_9__.Anchor.Window) {\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_8__.setInsertSlotWorker)(adSlot, window); // add ad slot element to body before registering slot\n }\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setRegisterSlotWorker)(gptSlot, window);\n }\n });\n });\n}\nasync function bootstrapWrapper(window = globalThis.window) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)("app info" +\n "\\n name: " + "app-p80918ac8127ba.js" +\n "\\n version: " + "0.1.4" +\n "\\n build date: " + "2025-09-23T17:27:18.559Z", window);\n // check config domain covers publisher domain\n const secondLevelDomain = window.location.hostname.split(\'.\').slice(-2).join(\'.\');\n const thirdLevelDomain = window.location.hostname.split(\'.\').slice(-3).join(\'.\');\n const sldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(secondLevelDomain, 13);\n const tldHash = await (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateHash)(thirdLevelDomain, 13);\n if (![sldHash, tldHash].includes(_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(`inventory defined for different domain with ID \'${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.d /*domain*/}\', no ads will be served`, false, window);\n return;\n }\n //TODO: check wrapper version compatibility with config version\n // in case pbjs does not load, ensure googletag.pubads().refresh() is called\n setTimeout(() => {\n initAdserver(window);\n }, _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.f /*failsafeTimeout*/);\n const pbjs = window.pbjs;\n const googletag = window.googletag;\n pbjs.que.push(() => {\n pbjs.initAdserverSet = true; // execute first once pbjs setup is complete\n // validate required Prebid modules are installed\n const installedModules = pbjs.installedModules || [];\n // check currency module for non-USD currencies\n if (_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c !== \'USD\' && !installedModules.includes(\'currency\')) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)(`CRITICAL: \'currency\' module not included in prebid build, though currency set to \'${_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c}\'.`, false, window);\n }\n // check for priceFloors module if floors are configured\n const hasGlobalFloor = _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pf && ("a" in _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pf || "d" in _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pf || "m" in _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pf);\n const hasSlotFloor = _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.as.some(slot => slot.f !== undefined) ||\n _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.ly.some(layout => layout.as.some(slot => slot.f !== undefined));\n if ((hasGlobalFloor || hasSlotFloor) && !installedModules.includes(\'priceFloors\')) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleError)("WARNING: \'priceFloors\' module not included in prebid build, price floors will not be enforced.", false, window);\n }\n pbjs.setConfig({\n ...(_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c !== \'USD\' ? {\n currency: {\n adServerCurrency: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c /*currencyCode*/ || \'USD\',\n // prebid.org maintained currency file, updated daily\n conversionUrl: \'https://cdn.example.com/currency/latest.json\',\n // fallback rates if needed\n // rates: wrapperConfig.cr/*currencyRates*/ || {}\n }\n } : {}),\n priceGranularity: {\n buckets: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pb /*priceBuckets*/.map((bucket) => ({\n min: Number(bucket.f /*floor*/),\n max: Number(bucket.c /*ceiling*/),\n increment: Number(bucket.s /*step*/),\n }))\n },\n ...((hasGlobalFloor || hasSlotFloor) ? {\n floors: {\n enforcement: {\n enforceJS: true, // enforce floors in prebidjs (reject low bids)\n floorDeals: true, // apply floors to deal bids\n bidAdjustment: true // apply floors after bid adjustments\n },\n ...(hasGlobalFloor ? {\n data: {\n currency: _constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.c /*currencyCode*/,\n skipRate: 0, // never skip floor enforcement (0 = always enforce)\n floorsSchemaVersion: 1, // v1: direct default value\n // v2: requires modelGroups for a/b testing floor strategies\n default: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getValueByDevice)(_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.pf, window)\n }\n } : {})\n }\n } : {})\n });\n // register event handlers and workers early\n (0,_logger__WEBPACK_IMPORTED_MODULE_3__.initLogger)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setDocumentEventLogHandlers)(window);\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setAuctionEventLogHandlers)(window);\n // ensure googletag api is ready before registering log handlers for googletag events\n googletag.cmd.push(() => {\n (0,_logEventHandlers__WEBPACK_IMPORTED_MODULE_0__.setGPTEventLogHandlers)(window);\n });\n (0,_auctionConductor__WEBPACK_IMPORTED_MODULE_1__.setServeAdWorker)();\n });\n googletag.cmd.push(() => {\n googletag.pubads().disableInitialLoad();\n });\n // filter layouts applicable to current page\n const layouts = (_constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.ly /*layout*/\n ?.filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_4__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/))\n ?.filter((ly) => (0,_audiences__WEBPACK_IMPORTED_MODULE_6__.matchAudience)(ly, window) !== null)) ?? [];\n // exclude ad slots that are overriden in any tests\n const layoutFilteredAdSlots = layouts\n .flatMap(ly => {\n const testAdSlotCodes = new Set(ly.ts /*tests*/?.flatMap(test => test.tm /*treatments*/.flatMap(treatment => treatment.as /*adSlots*/.map(adUnit => adUnit.g /*gamAdUnitCode*/) // TODO: move from gam ad unit code to ad slot div id??\n )) || []);\n return ly.as /*adSlots*/.filter(adUnit => !testAdSlotCodes.has(adUnit.g /*gamAdUnitCode*/));\n });\n [\n ...layoutFilteredAdSlots,\n ..._constants_config__WEBPACK_IMPORTED_MODULE_7__.wrapperConfig.as /*adSlots*/, // config ad slots override layout ad slots\n ].forEach((adSlot) => {\n const key = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getSlotDivId)(adSlot);\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.updateAuctionEntry)(key, {\n adSlot: adSlot\n });\n });\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAuctionEntries)().length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\' (no matching layouts or global slots), ads will not be served`, window);\n return;\n }\n processAdSlots((0,_auctionState__WEBPACK_IMPORTED_MODULE_2__.getAllAdSlots)(), window);\n googletag.cmd.push(() => {\n // page-level targeting (google publisher tag)\n const allPageLevelTargeting = Object.values(layouts)\n .map(layout => layout.kv /*pageTargetingKeyValues*/ || {})\n .reduce((acc, kv) => ({ ...acc, ...kv }), {}); // merge all kv objects\n Object.entries(allPageLevelTargeting).forEach(([key, value]) => {\n googletag.pubads().setTargeting(key, value);\n });\n });\n // retrieve test ad units meant for user\n const testAdSlots = (await Promise.all(layouts\n .filter((layout) => layout.ts /*tests*/)\n .map((layout) => (0,_abTests__WEBPACK_IMPORTED_MODULE_5__.getTestAdSlots)(layout))))\n .flat();\n if (testAdSlots.length > 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_4__.consoleDebug)(\'test ad slots found will be served\', testAdSlots, window);\n processAdSlots(testAdSlots, window);\n }\n googletag.cmd.push(() => {\n googletag.pubads().enableSingleRequest(); // all ad slots should be defined and added to service before\n googletag.enableServices();\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/bootstrap.ts?')},"./src/constants/config.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ wrapperConfig: () => (/* binding */ wrapperConfig)\n/* harmony export */ });\n// file: wrapper/src/constants/config.ts\n// webpack compile-time construct (not commonjs runtime call)\n// WRAPP_CONFIG_FILE_PATH replaced by DefinePlugin with actual config file path\n// webpack bundles json config directly into js bundle during build\nconst wrapperConfig = __webpack_require__(/*! ../builds/80918AC8127BA/0.1.4/config-d80918ac8127ba-v0-1-4.json */ "../builds/80918AC8127BA/0.1.4/config-d80918ac8127ba-v0-1-4.json");\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/config.ts?')},"./src/constants/loggerEndpoints.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AD_IMPRESSION_ENDPOINT: () => (/* binding */ AD_IMPRESSION_ENDPOINT),\n/* harmony export */ AD_SERVE_ENDPOINT: () => (/* binding */ AD_SERVE_ENDPOINT),\n/* harmony export */ AD_UNFILLED_ENDPOINT: () => (/* binding */ AD_UNFILLED_ENDPOINT),\n/* harmony export */ AD_VIEWABLE_ENDPOINT: () => (/* binding */ AD_VIEWABLE_ENDPOINT),\n/* harmony export */ AUCTION_END_ENDPOINT: () => (/* binding */ AUCTION_END_ENDPOINT),\n/* harmony export */ AUCTION_INIT_ENDPOINT: () => (/* binding */ AUCTION_INIT_ENDPOINT),\n/* harmony export */ BATCH_ENDPOINT: () => (/* binding */ BATCH_ENDPOINT),\n/* harmony export */ BID_REJECT_ENDPOINT: () => (/* binding */ BID_REJECT_ENDPOINT),\n/* harmony export */ BID_RESPONSE_ENDPOINT: () => (/* binding */ BID_RESPONSE_ENDPOINT),\n/* harmony export */ BID_TIMEOUTS_ENDPOINT: () => (/* binding */ BID_TIMEOUTS_ENDPOINT),\n/* harmony export */ BID_WON_ENDPOINT: () => (/* binding */ BID_WON_ENDPOINT),\n/* harmony export */ LOGGER_API_PATH: () => (/* binding */ LOGGER_API_PATH),\n/* harmony export */ LOGGER_API_V1_PATH: () => (/* binding */ LOGGER_API_V1_PATH),\n/* harmony export */ PAGE_VIEW_ENDPOINT: () => (/* binding */ PAGE_VIEW_ENDPOINT)\n/* harmony export */ });\n// file: wrapper/src/constants/loggerEndpoints.ts\nconst LOGGER_API_PATH = '/api/logger';\nconst LOGGER_API_V1_PATH = `${LOGGER_API_PATH}/v1`;\n// batch events\nconst BATCH_ENDPOINT = '/batch';\n// page events\nconst PAGE_VIEW_ENDPOINT = '/page/view';\n// auction events\nconst AUCTION_INIT_ENDPOINT = '/auction/init';\nconst AUCTION_END_ENDPOINT = '/auction/end';\n// bid events\nconst BID_RESPONSE_ENDPOINT = '/bid/response';\nconst BID_WON_ENDPOINT = '/bid/won';\nconst BID_REJECT_ENDPOINT = '/bid/reject';\nconst BID_TIMEOUTS_ENDPOINT = '/bid/timeout';\n// ad serve events\nconst AD_SERVE_ENDPOINT = '/ad/serve';\nconst AD_IMPRESSION_ENDPOINT = '/ad/impression';\nconst AD_VIEWABLE_ENDPOINT = '/ad/viewable';\nconst AD_UNFILLED_ENDPOINT = '/ad/unfilled';\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/constants/loggerEndpoints.ts?")},"./src/dynamicSlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ deleteDynamicAdSlot: () => (/* binding */ deleteDynamicAdSlot),\n/* harmony export */ insertDynamicAdSlot: () => (/* binding */ insertDynamicAdSlot),\n/* harmony export */ insertStickyAdSlot: () => (/* binding */ insertStickyAdSlot),\n/* harmony export */ setDynamicSlotHandler: () => (/* binding */ setDynamicSlotHandler)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _stickySlot__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./stickySlot */ "./src/stickySlot.ts");\n/* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./bootstrap */ "./src/bootstrap.ts");\n// file: wrapper/src/dynamicSlot.ts\n\n\n\n\n\n\nfunction setDynamicSlotHandler() {\n // setup event listener for new elements to have been added or getting close to view, and invoke insertDynamicAdSlot() when applicable\n // invoke deleteDynamicSlot() when dynamic ad slot far from view port\n}\nfunction insertDynamicAdSlot(divId, reference, window = globalThis.window) {\n // check if slot already exists to prevent duplicates\n const slotElementId = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.slotId)(reference, divId);\n if (window.document.getElementById(slotElementId)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleError)(`Dynamic slot already exists: ${slotElementId}`, true, window);\n // consoleError throws an error per second argument set to escalate error\n }\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching dynamic ad slot (Dynamic or OnDemand load types)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.DynamicElement &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.d /*divId*/ === divId &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleError)(`no dynamic ad slot config defined for element id \'${divId}\' and reference \'${reference}\'`, true, window);\n // consoleError throws an error per second argument set to escalate error\n }\n const adSlotInstance = {\n ...adSlot,\n n: { ...adSlot.n, d: divId }\n };\n const slotDiv = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.addSlotElement)(adSlotInstance.n /*insert*/, window);\n if (slotDiv) {\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlotInstance], window);\n }\n}\nfunction insertStickyAdSlot(reference, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_2__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/));\n // find matching sticky ad slot (Dynamic or OnDemand load types, Window anchor)\n const adSlot = _constants_config__WEBPACK_IMPORTED_MODULE_3__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/))\n .find(slot => slot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_0__.Anchor.Window &&\n [_types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.Dynamic, _types_enums__WEBPACK_IMPORTED_MODULE_0__.Load.OnDemand].includes(slot.l /*load*/) &&\n slot.n /*insert*/.r /*reference*/ === reference);\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`no dynamic sticky ad slot config defined for reference \'${reference}\'`, window);\n return;\n }\n // create sticky slot\n (0,_stickySlot__WEBPACK_IMPORTED_MODULE_4__.addStickySlot)(adSlot.n /*insert*/, window);\n (0,_bootstrap__WEBPACK_IMPORTED_MODULE_5__.processAdSlots)([adSlot], window);\n}\nfunction deleteDynamicAdSlot(divId, window = globalThis.window) {\n // get dynamic slot data\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.getAuctionEntry)(divId);\n // clean up auction map, googletag and prebid\n if (entry) {\n if (entry.gptSlot) {\n const googletag = window.googletag;\n if (googletag) {\n googletag.cmd.push(() => {\n googletag.destroySlots([entry.gptSlot]);\n });\n }\n }\n if (entry.adUnit) {\n const pbjs = window.pbjs;\n pbjs.que.push(() => {\n pbjs.removeAdUnit(entry.adUnit.code);\n });\n }\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_1__.deleteAuctionEntry)(divId);\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No dynamic slot found for divId: ${divId}`, window);\n }\n // TODO: remove any handlers associated with this slot\n // remove element from dom, even if not in auction map\n const element = window.document.getElementById(divId);\n if (element) {\n element.remove();\n }\n else {\n (0,_utils__WEBPACK_IMPORTED_MODULE_2__.consoleDebug)(`No element found for divId: ${divId}`, window);\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/dynamicSlot.ts?')},"./src/index.ts":(__unused_webpack_module,__unused_webpack_exports,__webpack_require__)=>{"use strict";eval("\n// file: wrapper/src/index.ts\nconst WRAPPER_VERSION = '0.1';\n// queue to execute ad server tasks in order\nwindow.googletag = window.googletag || { cmd: [] };\n// queue to execute auction tasks in order\nwindow.pbjs = window.pbjs || { que: [] };\n// window.__gpp = {\n// getSection: function(sectionId, callback) {\n// callback({\n// gppString: 'DBABMA~CPXxRfAPXxRfABABQBENB-CgAAAAAAAAAAAAAAAAAAA.YAAAAAAAAAA',\n// applicableSections: ['tcfeu', 'usca'], // GDPR and US Privacy\n// });\n// },\n// };\nPromise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./bootstrap */ \"./src/bootstrap.ts\")).then(({ bootstrapWrapper }) => {\n bootstrapWrapper().catch(error => {\n console.error('Wrapper bootstrap failed:', error);\n });\n});\n// anchor to view_port (sticky ads) -- always loaded eager\n// anchor to static_content (standard ads) -- loaded eager or lazy\n// anchor to dynamic_content; --\x3e div id regex or class name -- loaded lazy\n// ad slots can be insertion can be on page content, sticky, and dynamic\n// ads can be loaded -- eager or lazy\n//TODOs\n//for eager slots auction can end before winner has been declared from bid responses\n//auction end includes array of bid responses\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/index.ts?")},"./src/logEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setAuctionEventLogHandlers: () => (/* binding */ setAuctionEventLogHandlers),\n/* harmony export */ setDocumentEventLogHandlers: () => (/* binding */ setDocumentEventLogHandlers),\n/* harmony export */ setGPTEventLogHandlers: () => (/* binding */ setGPTEventLogHandlers)\n/* harmony export */ });\n/* harmony import */ var _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logObjectBuilder */ \"./src/logObjectBuilder.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger */ \"./src/logger.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logEventHandlers.ts\n\n\n\n\n\nfunction setAuctionEventLogHandlers(window = globalThis.window) {\n const pbjs = window.pbjs;\n pbjs.onEvent('auctionInit', (auction) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionInit', auction);\n // update auction map with latest auction ids\n if (auction?.adUnits && Array.isArray(auction.adUnits)) {\n auction.adUnits.forEach((adUnit) => {\n const key = adUnit.div; // TODO: use adUnit.adUnitId instead of adUnit.div ?\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(key, {\n pbAuctionId: auction.auctionId,\n pbAdUnitId: adUnit.adUnitId,\n pbTransactionId: adUnit.transactionId\n });\n });\n }\n const auctionInit = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionInitObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_INIT_ENDPOINT, auctionInit, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionInit handler', false, window, error);\n }\n });\n pbjs.onEvent('bidResponse', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidResponse', bid);\n const bidResponse = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidResponseObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_RESPONSE_ENDPOINT, bidResponse, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidResponse handler', false, window, error);\n }\n });\n pbjs.onEvent('bidWon', (bid) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidWon', bid);\n const bidWon = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidWonObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_WON_ENDPOINT, bidWon, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in bidWon handler', false, window, error);\n }\n });\n pbjs.onEvent('bidRejected', (bid) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidRejected', bid);\n const bidRejected = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidRejectedObject(bid, Date.now() /* utc timestamp */);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_REJECT_ENDPOINT, bidRejected, window);\n });\n pbjs.onEvent('bidTimeout', (bids) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.bidTimeout', bids);\n bids.forEach(bid => {\n const bidTimeout = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.bidTimeoutObject(bid);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.BID_TIMEOUTS_ENDPOINT, bidTimeout, window);\n });\n });\n pbjs.onEvent('auctionEnd', (auction) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.auctionEnd', auction);\n const auctionEnd = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.auctionEndObject(auction);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AUCTION_END_ENDPOINT, auctionEnd, window);\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in auctionEnd handler', false, window, error);\n }\n });\n pbjs.onEvent('adRenderSucceeded', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderSucceeded', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'SUCCESS', serveTimestamp: Date.now() /*utc timestamp*/, failReason: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n pbjs.onEvent('adRenderFailed', (data) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pbjs.events.adRenderFailed', data);\n const adServe = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adServeObject(data.bid, { serveStatus: 'FAIL', failReason: data.reason, serveTimestamp: null });\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_SERVE_ENDPOINT, adServe, window);\n });\n}\nfunction setDocumentEventLogHandlers(window = globalThis.window) {\n if (window.document.readyState === 'loading') {\n window.document.addEventListener('DOMContentLoaded', logPageView);\n }\n else {\n // DOMContentLoaded already fired, call function immediately\n logPageView();\n }\n function logPageView() {\n const pageView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.pageViewObject(window);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('pageView', pageView);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.PAGE_VIEW_ENDPOINT, pageView, window);\n }\n}\nfunction setGPTEventLogHandlers(window = globalThis.window) {\n googletag.pubads().addEventListener('slotRequested', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotRequested', event);\n // save auction ids to served when slot is requested\n if (!event.slot || typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in slotRequested event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n const current = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(slotId);\n if (current?.pbAuctionId) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.updateAuctionEntry)(slotId, {\n pbServedAuctionId: current.pbAuctionId,\n pbServedTransactionId: current.pbTransactionId\n });\n }\n });\n googletag.pubads().addEventListener('slotResponseReceived', (event) => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.slotResponseReceived', event);\n });\n googletag.pubads().addEventListener('slotRenderEnded', (event) => {\n try {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.SlotRenderEndedEvent', event);\n // skip event log for slots not managed by wrapper\n const slotId = event.slot.getSlotElementId();\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(slotId);\n if (!entry?.adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('Skipping slotRenderEnded for non-wrapper slot', slotId);\n return;\n }\n if (event.isEmpty) { // no impression\n const adUnfilled = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adUnfilledObject(event.slot, Date.now() /* utc timestamp */);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_UNFILLED_ENDPOINT, adUnfilled, window);\n }\n else { //impression\n // TODO: look into slot renders with sizes 1x1\n // if (event.size && (event.size[0] === 1 && event.size[1] === 1)) {\n // ignore pixel renders\n // }\n // else {\n const adImpression = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adImpressionObject(event, Date.now() /* utc timestamp */);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_IMPRESSION_ENDPOINT, adImpression, window);\n // }\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in slotRenderEnded handler', false, window, error);\n }\n });\n googletag.pubads().addEventListener(\"impressionViewable\", (event) => {\n try {\n if (!event.slot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot in impressionViewable event', false, window, event);\n return;\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('googletag.events.ImpressionViewableEvent', event, event.slot.getResponseInformation ? event.slot.getResponseInformation() : 'no response info');\n if (typeof event.slot.getSlotElementId !== 'function') {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Invalid slot.getSlotElementId in impressionViewable event', false, window, event);\n return;\n }\n const slotId = event.slot.getSlotElementId();\n // skip event log for slots not managed by wrapper\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(slotId);\n if (!entry?.adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)('Skipping impressionViewable for non-wrapper slot', slotId);\n return;\n }\n const slotDiv = window.document.getElementById(slotId);\n const iframe = slotDiv?.querySelector('iframe') ?? null;\n const size = iframe?.width + 'x' + iframe?.height;\n if (size === '1x1') {\n // ignore pixel renders\n }\n else {\n const adView = _logObjectBuilder__WEBPACK_IMPORTED_MODULE_0__.adViewableObject(event.slot, Date.now() /* utc timestamp */);\n (0,_logger__WEBPACK_IMPORTED_MODULE_2__.logEvent)(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_4__.AD_VIEWABLE_ENDPOINT, adView, window);\n }\n }\n catch (error) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)('Error in impressionViewable handler', false, window, error);\n }\n });\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logEventHandlers.ts?")},"./src/logObjectBuilder.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ adImpressionObject: () => (/* binding */ adImpressionObject),\n/* harmony export */ adServeObject: () => (/* binding */ adServeObject),\n/* harmony export */ adUnfilledObject: () => (/* binding */ adUnfilledObject),\n/* harmony export */ adViewableObject: () => (/* binding */ adViewableObject),\n/* harmony export */ auctionEndObject: () => (/* binding */ auctionEndObject),\n/* harmony export */ auctionInitObject: () => (/* binding */ auctionInitObject),\n/* harmony export */ bidRejectedObject: () => (/* binding */ bidRejectedObject),\n/* harmony export */ bidResponseObject: () => (/* binding */ bidResponseObject),\n/* harmony export */ bidTimeoutObject: () => (/* binding */ bidTimeoutObject),\n/* harmony export */ bidWonObject: () => (/* binding */ bidWonObject),\n/* harmony export */ pageViewObject: () => (/* binding */ pageViewObject)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audiences */ \"./src/audiences.ts\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ \"./src/auctionState.ts\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! uuid */ \"../node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n// file: wrapper/src/logObjectBuilder.ts\n\n\n\n\n\n\nconst page_view_id = (0,uuid__WEBPACK_IMPORTED_MODULE_5__[\"default\"])();\nfunction pageViewObject(window = globalThis.window) {\n // TODO: return timezone when locale unavailable\n const pageView = {\n page_view_id: page_view_id,\n app_ver: \"0.1.4\",\n view_start_time: Date.now(),\n domain: window.location.hostname,\n page_path: window.location.pathname,\n session_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSessionId)(),\n user_id: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserId)(),\n device: {\n user_agent: navigator.userAgent,\n language: navigator.language,\n mobile: (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getUserDevice)(window) === _types_enums__WEBPACK_IMPORTED_MODULE_2__.Device.Mobile,\n view_port: {\n width: window.innerWidth,\n height: window.innerHeight\n },\n geo_location: (0,_audiences__WEBPACK_IMPORTED_MODULE_1__.getUserCountry)()\n },\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return pageView;\n}\nfunction auctionInitObject(auction) {\n const auctionInit = {\n page_view_id: page_view_id,\n pb_auction_id: auction.auctionId,\n auction_start_time: auction.timestamp, /* UTC timestamp */\n auction_end_time: null, /* UTC timestamp */\n ad_slots: [],\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n auction.adUnits.forEach((adUnit) => {\n const bidderCodes = adUnit.bids.map((bid) => bid.bidder);\n const key = adUnit.div;\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adSlot = entry.adSlot ?? null;\n if (!adSlot) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`[auctionInitObject] no ad slot match for divId='${adUnit.div}'`, adUnit, (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAllAuctionEntries)());\n }\n const layoutIds = _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.ly /*layouts*/\n .filter((layout) => layout.as /*adSlots*/.some((slot) => slot.i /*id*/ === adSlot?.i /*id*/))\n .map((layout) => layout.i /*id*/);\n auctionInit.ad_slots.push({\n pb_adunit_id: adUnit.adUnitId ?? null,\n pb_transaction_id: adUnit.transactionId ?? null,\n adslot_id: adSlot?.i /*id*/ ?? null,\n layout_ids: layoutIds,\n adunit_code: adSlot?.g /*gamAdUnitCode*/ ?? null,\n div_id: adUnit.div,\n price_floor: adSlot?.f /*priceFloor*/ ?? null,\n deal_id: null,\n pb_bidder_codes: bidderCodes,\n serve_type: entry?.serveType ?? null\n });\n });\n return auctionInit;\n}\nfunction bidResponseObject(bid) {\n const bidResponse = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null, // TODO handle scenario if bidder responds with 0\n cpm_currency: bid.currency,\n size: bid.size,\n deal_id: bid.dealId ?? null,\n time_to_respond: bid.timeToRespond,\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return bidResponse;\n}\nfunction bidWonObject(bid) {\n const bidWon = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm,\n cpm_currency: bid.currency,\n size: bid.size,\n response_timestamp: bid.responseTimestamp, /* UTC timestamp */\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return bidWon;\n}\nfunction bidTimeoutObject(bid) {\n const bidTimeout = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidder,\n timeout: 0, //TODO bid.timeout not populated, need to figure out why\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return bidTimeout;\n}\nfunction bidRejectedObject(bid, adRejectTimestamp) {\n const bidRejected = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n cpm: bid.cpm ? bid.cpm : null,\n cpm_currency: bid.currency,\n size: bid.width + 'x' + bid.height,\n deal_id: bid.dealId ?? '',\n reject_reason: bid.rejectionReason ?? '',\n reject_timestamp: adRejectTimestamp, /* UTC timestamp */\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return bidRejected;\n}\nfunction adServeObject(bid, ad) {\n const adServe = {\n pb_auction_id: bid.auctionId,\n pb_transaction_id: bid.transactionId,\n pb_bidder_code: bid.bidderCode,\n ad_id: bid.adId ?? '',\n bid_cpm: bid.cpm,\n bid_cpm_currency: bid.currency,\n size: bid.size,\n status: ad.serveStatus,\n fail_reason: ad.failReason ?? '',\n ad_serve_timestamp: ad.serveTimestamp ?? 0,\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return adServe;\n}\nfunction auctionEndObject(auction) {\n if (!auction.auctionId || !auction.auctionEnd || !auction.auctionStatus) {\n throw new Error('invalid parameter auction in auctionEndObject()');\n }\n const auctionEnd = {\n pb_auction_id: auction.auctionId,\n auction_end_time: auction.auctionEnd, /* UTC timestamp */\n end_state: auction.auctionStatus,\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return auctionEnd;\n}\nfunction adImpressionObject(event, adImpressionTimestamp) {\n // const size: [number, number] = event.size;\n const size = event?.size ? `${event.size[0]}x${event.size[1]}` : '';\n const key = event.slot.getSlotElementId();\n const adImpression = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n advertiser_id: event.advertiserId,\n campaign_id: event.campaignId,\n creative_id: event.creativeId,\n line_item_id: event.lineItemId,\n size: size,\n ad_impression_timestamp: adImpressionTimestamp, /* UTC timestamp */\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return adImpression;\n}\nfunction adUnfilledObject(slot, adUnfilledTimestamp) {\n const key = slot.getSlotElementId();\n const entry = (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key) ?? {};\n const adUnfilled = {\n pb_auction_id: entry.pbServedAuctionId ?? null,\n pb_transaction_id: entry.pbServedTransactionId ?? null,\n ad_unfilled_timestamp: adUnfilledTimestamp, /* UTC timestamp */\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return adUnfilled;\n}\nfunction adViewableObject(slot, adViewableTimestamp) {\n const key = slot.getSlotElementId();\n const adViewable = {\n pb_auction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedAuctionId ?? null,\n pb_transaction_id: (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.getAuctionEntry)(key)?.pbServedTransactionId ?? null,\n ad_viewable_timestamp: adViewableTimestamp, /* UTC timestamp */\n run_mode: _constants_config__WEBPACK_IMPORTED_MODULE_4__.wrapperConfig.m /*runMode*/\n };\n return adViewable;\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logObjectBuilder.ts?")},"./src/logger.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ flushQue: () => (/* binding */ flushQue),\n/* harmony export */ initLogger: () => (/* binding */ initLogger),\n/* harmony export */ logEvent: () => (/* binding */ logEvent)\n/* harmony export */ });\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants/config */ \"./src/constants/config.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants/loggerEndpoints */ \"./src/constants/loggerEndpoints.ts\");\n// file: wrapper/src/logger.ts\n\n\n\n\nconst loggerAPIEndpoint = `https://${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.e}${_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.p /*apiPath*/}`;\n// module state\nlet eventQue = [];\nlet timeoutId = null;\nlet logMode = _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Async;\nfunction initLogger(window = globalThis.window) {\n // follow config log mode\n const setLogMode = () => {\n logMode = _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.m /*mode*/;\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n flushQue(window); // flush events before page load\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Page loaded, log mode '${logMode}' now follows config`, window);\n };\n if (window.document.readyState === 'complete') {\n setLogMode();\n }\n else {\n window.addEventListener('load', setLogMode);\n }\n // set unload flush to prevent data loss\n window.addEventListener('beforeunload', () => flushQue(window));\n window.addEventListener('pagehide', () => flushQue(window));\n}\nfunction flushQue(window = globalThis.window) {\n if (eventQue.length === 0) {\n return;\n }\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n const events = [...eventQue];\n eventQue = [];\n const batchData = events.map(event => ({\n endpoint: event.path,\n payload: event.payload,\n timestamp: event.timestamp\n }));\n postLogData(_constants_loggerEndpoints__WEBPACK_IMPORTED_MODULE_3__.BATCH_ENDPOINT, batchData, window);\n}\nfunction postLogData(path, payload, window = globalThis.window) {\n const strPayload = JSON.stringify(payload);\n fetch(`${loggerAPIEndpoint}${path}`, {\n method: 'POST',\n body: strPayload,\n headers: {\n 'Content-Type': 'text/plain'\n },\n keepalive: strPayload.length < 60000 // safety margin for 64KB limit\n })\n .then(response => {\n if (response.status !== 200) {\n throw new Error(`HTTP error! ${response.status} ${response.statusText}`);\n }\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Logged event(s) to ${loggerAPIEndpoint}${path}`, payload, window);\n })\n .catch(error => {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleError)(`Failed to log event(s) to ${loggerAPIEndpoint}${path}`, false, window, payload, error);\n });\n}\nfunction logEvent(path, payload, window = globalThis.window) {\n if (logMode === _types_enums__WEBPACK_IMPORTED_MODULE_2__.LogMode.Sync) {\n // synchronous logging\n postLogData(path, payload, window);\n return;\n }\n // asynchronous logging\n eventQue.push({\n path,\n payload,\n timestamp: Date.now()\n });\n // setup flush for asynchronous logging\n switch (_constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.t /*flushTrigger*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Event:\n if (eventQue.length >= _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/) {\n flushQue(window);\n }\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_2__.FlushTrigger.Time:\n if (timeoutId === null) {\n timeoutId = window.setTimeout(() => {\n flushQue(window);\n }, _constants_config__WEBPACK_IMPORTED_MODULE_0__.wrapperConfig.l /*logConfig*/.v /*thresholdValue*/);\n }\n break;\n }\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/logger.ts?")},"./src/refreshEventHandlers.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setRefreshWorker: () => (/* binding */ setRefreshWorker)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ "./src/types/enums.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n/* harmony import */ var _auctionState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./auctionState */ "./src/auctionState.ts");\n// file: wrapper/src/refreshEventHandlers.ts\n\n\n\n\nconst DEFAULT_REFRESH_INTERVAL = 30; // in seconds\nfunction setRefreshWorker(adUnitCode, window = globalThis.window) {\n // filter layouts applicable to current page\n const layouts = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.ly /*layout*/\n .filter((ly) => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.matchPagePath)(window.location.pathname, ly.pp /*pagePaths*/)) ?? [];\n const allAdSlots = _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.as /*adSlots*/\n .concat(layouts.flatMap(ly => ly.as /*adSlots*/));\n if (allAdSlots.length === 0) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_0__.consoleDebug)(`no ad slots defined for pagepath \'${window.location.pathname}\', ads will not be refreshed`, window);\n return;\n }\n const refreshAdSlot = allAdSlots.find(\n // ({ g/*gam ad unit code*/ }) => g/*gam ad unit code*/ === adUnitPath\n slot => (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(slot) === adUnitCode);\n if (refreshAdSlot) {\n const slotDivId = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(refreshAdSlot);\n const element = window.document.getElementById(slotDivId);\n const refreshType = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.enumFromString)(_types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger, refreshAdSlot?.r /*refresh*/?.t /*trigger*/ ?? \'\');\n if (element && refreshType) {\n switch (refreshType) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.InView:\n refreshInView(element, refreshAdSlot, window);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.RefreshTrigger.AfterInterval:\n refreshAfterInterval(element, refreshAdSlot, window);\n break;\n default:\n break;\n }\n }\n }\n}\n/**\n *\n * refresh in view, only after interval\n * max refresh applies (if specified)\n *\n **/\nfunction refreshInView(element, adSlot, window = globalThis.window) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*count of times*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n var isWaitingForView = true; // waiting for ad to be in view to start next refresh\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n var isAdslotVisible = false; // track current visibility\n const scheduleNextRefresh = () => {\n if (refreshCount >= maxRefreshes) {\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect, clear observer\n return;\n }\n // start timer for next refresh\n setTimeout(() => {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n refreshCount++;\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n // if still visible, schedule next refresh immediately\n if (isAdslotVisible) {\n scheduleNextRefresh();\n }\n else {\n // reset to wait mode for next visibility\n isWaitingForView = true;\n }\n }, timeout);\n };\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n isAdslotVisible = entry.intersectionRatio > 0;\n // schedule refresh, if waiting for view and element just became visible\n if (isWaitingForView && isAdslotVisible) {\n isWaitingForView = false;\n scheduleNextRefresh();\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n}\n/**\n *\n * refresh after interval, only if ad was viewable\n * max refresh applies (if specified)\n *\n **/\nfunction refreshAfterInterval(element, adSlot, window = globalThis.window) {\n const maxRefreshes = adSlot.r /*refresh*/?.c /*countOfTimes*/ ?? Number.MAX_SAFE_INTEGER;\n const timeout = (adSlot.r /*refresh*/?.i /*interval*/ ?? DEFAULT_REFRESH_INTERVAL) * 1000; // refresh interval in miliseconds\n const adUnitCode = (0,_utils__WEBPACK_IMPORTED_MODULE_0__.getSlotDivId)(adSlot); // adslot element (div) id used as unique prebid adunit code\n var refreshCount = 0; // initialize refresh counter\n var intervalId = null;\n const options = {\n root: null, // element to intersect with browser viewport\n rootMargin: "0px", // margin to grow or shrink intersection frame of root\n threshold: 0.0 // % element visible\n };\n var hasFirstView = false; // track if element has been viewed at least once\n const observer = new IntersectionObserver((entries, observer) => {\n entries.forEach(entry => {\n if (!hasFirstView && entry.intersectionRatio > 0) {\n hasFirstView = true;\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.clearIntersectionObserver)(adUnitCode); // disconnect observer after first view\n intervalId = setInterval(() => {\n if (refreshCount < maxRefreshes) {\n if ((0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.isAuctionInProgress)(adUnitCode)) {\n return;\n }\n refreshCount++;\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setAuctionInProgress)(adUnitCode, _types_enums__WEBPACK_IMPORTED_MODULE_1__.ServeType.Refresh);\n window.pbjs.que.push(() => {\n window.pbjs.requestBids({\n adUnitCodes: [adUnitCode],\n timeout: adSlot.o /*auctionTimeout*/ ?? _constants_config__WEBPACK_IMPORTED_MODULE_2__.wrapperConfig.o /*auctionTimeout*/\n });\n });\n }\n if (refreshCount >= maxRefreshes && intervalId) {\n clearInterval(intervalId);\n intervalId = null;\n }\n }, timeout);\n }\n });\n }, options);\n // store observer instance in auction map\n (0,_auctionState__WEBPACK_IMPORTED_MODULE_3__.setIntersectionObserver)(adUnitCode, observer);\n observer.observe(element);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/refreshEventHandlers.ts?')},"./src/stickySlot.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BUTTON_SYMBOLS: () => (/* binding */ BUTTON_SYMBOLS),\n/* harmony export */ BUTTON_TITLES: () => (/* binding */ BUTTON_TITLES),\n/* harmony export */ SLOT_CONTENT: () => (/* binding */ SLOT_CONTENT),\n/* harmony export */ STICKY_SLOT_CLASSES: () => (/* binding */ STICKY_SLOT_CLASSES),\n/* harmony export */ StickyAction: () => (/* binding */ StickyAction),\n/* harmony export */ addStickySlot: () => (/* binding */ addStickySlot),\n/* harmony export */ anchorAction: () => (/* binding */ anchorAction),\n/* harmony export */ anchorId: () => (/* binding */ anchorId),\n/* harmony export */ buttonId: () => (/* binding */ buttonId),\n/* harmony export */ setInsertSlotWorker: () => (/* binding */ setInsertSlotWorker)\n/* harmony export */ });\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ \"./src/utils.ts\");\n// file: wrapper/src/stickySlot.ts\n\n\nvar StickyAction;\n(function (StickyAction) {\n StickyAction[\"Minimize\"] = \"minimize\";\n StickyAction[\"Restore\"] = \"restore\";\n StickyAction[\"Dismiss\"] = \"dismiss\";\n})(StickyAction || (StickyAction = {}));\n// css class names used for sticky slots\nconst STICKY_SLOT_CLASSES = {\n ANCHOR: 'ad-anchor',\n SLOT: 'ad-slot',\n ACTION_BUTTONS: 'ad-action-buttons',\n ACTION_BTN: 'ad-action-btn',\n HORIZONTAL_MINIMIZED: 'horizontal-minimized',\n VERTICAL_MINIMIZED: 'vertical-minimized',\n HIDDEN: 'hidden'\n};\n// button symbols\nconst BUTTON_SYMBOLS = {\n RESTORE: '+',\n MINIMIZE: '-',\n DISMISS: 'x'\n};\n// button titles for accessibility\nconst BUTTON_TITLES = {\n RESTORE: 'Restore Ad',\n MINIMIZE: 'Minimize Ad',\n DISMISS: 'Dismiss Ad'\n};\n// slot content\nconst SLOT_CONTENT = {\n DEFAULT: 'Advertisement'\n};\n// track pending DOMContentLoaded handlers\nconst stickySlotDOMHandlers = new Set();\nfunction setInsertSlotWorker(adUnit, window = globalThis.window) {\n // TODO add all sticky slots at one time\n if (window.document.body) { // page has already loaded\n addStickySlot(adUnit.n /*insert*/, window);\n }\n else {\n const handlerId = anchorId(adUnit.n.r /*reference*/);\n if (stickySlotDOMHandlers.has(handlerId)) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`DOMContentLoaded handler already registered for ${handlerId}, skipping duplicate`, window);\n return;\n }\n stickySlotDOMHandlers.add(handlerId);\n window.document.addEventListener('DOMContentLoaded', () => {\n addStickySlot(adUnit.n /*insert*/, window);\n stickySlotDOMHandlers.delete(handlerId);\n }, { once: true });\n }\n}\nconst anchorId = (ref) => `ad-${ref}-anchor`;\nconst buttonId = (ref, action) => `ad-${ref}-${action}`;\nfunction addStickySlot(insert, window = globalThis.window) {\n const anchorElementId = anchorId(insert.r /*reference*/);\n const existingAnchor = window.document.getElementById(anchorElementId);\n if (existingAnchor) {\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.consoleDebug)(`Sticky slot anchor ${anchorElementId} already exists in DOM, skipping creation`, window);\n return;\n }\n const slotId = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.stickySlotId)(insert.r /*reference*/);\n const anchorClass = `${STICKY_SLOT_CLASSES.ANCHOR} ad-${insert.r /*reference*/}`;\n const anchor = window.document.createElement('div');\n anchor.id = anchorElementId;\n anchor.className = anchorClass;\n const actionButtonsDiv = window.document.createElement('div');\n actionButtonsDiv.className = STICKY_SLOT_CLASSES.ACTION_BUTTONS;\n const btnRes = window.document.createElement('div');\n btnRes.id = buttonId(insert.r /*reference*/, StickyAction.Restore);\n btnRes.innerHTML = BUTTON_SYMBOLS.RESTORE;\n btnRes.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnRes.title = BUTTON_TITLES.RESTORE;\n btnRes.style.display = 'none';\n btnRes.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Restore, window);\n actionButtonsDiv.appendChild(btnRes);\n if (insert.z /*minimize*/) {\n const btnMin = window.document.createElement('div');\n btnMin.id = buttonId(insert.r /*reference*/, StickyAction.Minimize);\n btnMin.innerHTML = BUTTON_SYMBOLS.MINIMIZE;\n btnMin.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnMin.title = BUTTON_TITLES.MINIMIZE;\n btnMin.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Minimize, window);\n actionButtonsDiv.appendChild(btnMin);\n }\n if (insert.s /*dismiss*/) {\n const btnDis = window.document.createElement('div');\n btnDis.id = buttonId(insert.r /*reference*/, StickyAction.Dismiss);\n btnDis.innerHTML = BUTTON_SYMBOLS.DISMISS;\n btnDis.className = STICKY_SLOT_CLASSES.ACTION_BTN;\n btnDis.title = BUTTON_TITLES.DISMISS;\n btnDis.onclick = () => anchorAction(insert.r /*reference*/, StickyAction.Dismiss, window);\n actionButtonsDiv.appendChild(btnDis);\n }\n anchor.appendChild(Object.assign(window.document.createElement('div'), {\n id: slotId,\n className: STICKY_SLOT_CLASSES.SLOT,\n innerHTML: SLOT_CONTENT.DEFAULT\n }));\n anchor.appendChild(actionButtonsDiv);\n switch (insert.r /*reference*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n window.document.body.prepend(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n window.document.body.append(anchor);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n window.document.body.append(anchor);\n break;\n }\n}\n/**\n * handle ad actions (hide, minimize, restore)\n * @param {string} reference - anchor reference (WindowReference)\n * @param {string} action - action to take (StickyAction)\n */\nfunction anchorAction(reference, action, window = globalThis.window) {\n const adAnchor = window.document.getElementById(anchorId(reference));\n const restoreBtn = window.document.getElementById(buttonId(reference, StickyAction.Restore));\n const minimizeBtn = window.document.getElementById(buttonId(reference, StickyAction.Minimize));\n const dismissBtn = window.document.getElementById(buttonId(reference, StickyAction.Dismiss));\n var minimizeClassName = '';\n switch (reference) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Top:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Bottom:\n minimizeClassName = STICKY_SLOT_CLASSES.HORIZONTAL_MINIMIZED;\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Left:\n case _types_enums__WEBPACK_IMPORTED_MODULE_0__.WindowReference.Right:\n minimizeClassName = STICKY_SLOT_CLASSES.VERTICAL_MINIMIZED;\n break;\n default:\n throw new Error(`invalid reference parameter '${reference}' to anchorAction()`);\n }\n switch (action) {\n case StickyAction.Restore:\n adAnchor?.classList.remove(minimizeClassName); // restore\n restoreBtn?.style && (restoreBtn.style.display = 'none'); // hide restore button \n minimizeBtn?.style && (minimizeBtn.style.display = 'block'); // show minimize button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n break;\n case StickyAction.Minimize:\n adAnchor?.classList.add(minimizeClassName); // minimize\n minimizeBtn?.style && (minimizeBtn.style.display = 'none'); // hide minimize button\n restoreBtn?.style && (restoreBtn.style.display = 'block'); // show restore button\n dismissBtn?.style && (dismissBtn.style.display = 'block'); // show dismiss button\n //TODO how to handle refresh?\n break;\n case StickyAction.Dismiss:\n adAnchor?.classList.add(STICKY_SLOT_CLASSES.HIDDEN); // dismiss\n //TODO delete google slot and pbjs ad unit, should we remove element?\n break;\n default:\n throw new Error(`invalid action parameter '${action}' to anchorAction()`);\n }\n}\n//TODO minimized ad slot maximized on refresh\n//TODO should not have unfilled -- house ad or immediate refresh, after which automatically minimized\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/stickySlot.ts?")},"./src/types/enums.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Anchor: () => (/* binding */ Anchor),\n/* harmony export */ Browser: () => (/* binding */ Browser),\n/* harmony export */ Device: () => (/* binding */ Device),\n/* harmony export */ ElementReference: () => (/* binding */ ElementReference),\n/* harmony export */ FlushTrigger: () => (/* binding */ FlushTrigger),\n/* harmony export */ Load: () => (/* binding */ Load),\n/* harmony export */ LogMode: () => (/* binding */ LogMode),\n/* harmony export */ MediaFormat: () => (/* binding */ MediaFormat),\n/* harmony export */ PagePathPattern: () => (/* binding */ PagePathPattern),\n/* harmony export */ RefreshTrigger: () => (/* binding */ RefreshTrigger),\n/* harmony export */ RunMode: () => (/* binding */ RunMode),\n/* harmony export */ ServeType: () => (/* binding */ ServeType),\n/* harmony export */ WindowReference: () => (/* binding */ WindowReference)\n/* harmony export */ });\n// file: wrapper/src/types/enums.ts\nvar RunMode;\n(function (RunMode) {\n RunMode["TEST"] = "TS";\n RunMode["NON_MONETARY"] = "NM";\n RunMode["MONETIZED"] = "MZ";\n})(RunMode || (RunMode = {}));\nvar WindowReference;\n(function (WindowReference) {\n WindowReference["Top"] = "TP";\n WindowReference["Bottom"] = "BM";\n WindowReference["Left"] = "LF";\n WindowReference["Right"] = "RG";\n})(WindowReference || (WindowReference = {}));\nvar ElementReference;\n(function (ElementReference) {\n ElementReference["Before"] = "BF";\n ElementReference["After"] = "AT";\n ElementReference["Inside"] = "IN";\n})(ElementReference || (ElementReference = {}));\nvar Anchor;\n(function (Anchor) {\n Anchor["Window"] = "WN";\n Anchor["StaticElement"] = "ST";\n Anchor["DynamicElement"] = "DY";\n})(Anchor || (Anchor = {}));\nvar Load;\n(function (Load) {\n /**\n * Eager Loading:\n * Ads are loaded as soon as the page loads, regardless of whether they are visible to the user.\n * Use Case: Pages with high-priority ad slots above the fold where immediate visibility is crucial.\n */\n Load["Eager"] = "EG";\n /**\n * Deferred Loading:\n * Ads are loaded after the entire page has finished loading or after a specific delay.\n * Use Case: Ensures critical content is loaded first to improve perceived performance.\n */\n Load["Deferred"] = "DF";\n /**\n * Lazy Loading:\n * Ads are loaded only when they are about to come into the viewport (or are close to it).\n * Use Case: Improves performance and reduces resource usage by deferring ad requests for offscreen ads.\n */\n Load["Lazy"] = "LZ";\n /**\n * Dynamic Loading:\n * Ads are loaded for slots created dynamically after the initial page load, such as in infinite scroll scenarios.\n * Use Case: Pages with content that expands dynamically, where new ad slots are introduced as the user scrolls.\n */\n Load["Dynamic"] = "YM";\n /**\n * On-Demand Loading:\n * Ads are loaded based on specific user actions, such as clicking a button or interacting with a part of the page.\n * Use Case: When ads need to be shown only after user engagement (e.g., inside a collapsible menu).\n */\n Load["OnDemand"] = "ON";\n})(Load || (Load = {}));\nvar ServeType;\n(function (ServeType) {\n ServeType["Initial"] = "IN";\n ServeType["Refresh"] = "RF";\n})(ServeType || (ServeType = {}));\nvar MediaFormat;\n(function (MediaFormat) {\n MediaFormat["Banner"] = "BN";\n})(MediaFormat || (MediaFormat = {}));\nvar RefreshTrigger;\n(function (RefreshTrigger) {\n RefreshTrigger["InView"] = "IV";\n RefreshTrigger["AfterInterval"] = "AV";\n})(RefreshTrigger || (RefreshTrigger = {}));\nvar Device;\n(function (Device) {\n Device["Mobile"] = "MB";\n Device["Desktop"] = "DK";\n})(Device || (Device = {}));\nvar Browser;\n(function (Browser) {\n Browser["Chrome"] = "CR";\n Browser["Safari"] = "SF";\n Browser["Edge"] = "EG";\n Browser["Firefox"] = "FX";\n Browser["Other"] = "OR";\n})(Browser || (Browser = {}));\nvar PagePathPattern;\n(function (PagePathPattern) {\n PagePathPattern["Prefix"] = "PR";\n PagePathPattern["Contains"] = "CT";\n PagePathPattern["Suffix"] = "SF";\n PagePathPattern["Exact"] = "EX";\n PagePathPattern["Regex"] = "RG";\n})(PagePathPattern || (PagePathPattern = {}));\nvar LogMode;\n(function (LogMode) {\n LogMode["Sync"] = "SY";\n LogMode["Async"] = "AS";\n})(LogMode || (LogMode = {}));\nvar FlushTrigger;\n(function (FlushTrigger) {\n FlushTrigger["Event"] = "EV";\n FlushTrigger["Time"] = "TM";\n})(FlushTrigger || (FlushTrigger = {}));\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/types/enums.ts?')},"./src/utils.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addSlotElement: () => (/* binding */ addSlotElement),\n/* harmony export */ consoleDebug: () => (/* binding */ consoleDebug),\n/* harmony export */ consoleError: () => (/* binding */ consoleError),\n/* harmony export */ enumFromString: () => (/* binding */ enumFromString),\n/* harmony export */ generateHash: () => (/* binding */ generateHash),\n/* harmony export */ getPrimaryDomain: () => (/* binding */ getPrimaryDomain),\n/* harmony export */ getSessionId: () => (/* binding */ getSessionId),\n/* harmony export */ getSlotDivId: () => (/* binding */ getSlotDivId),\n/* harmony export */ getUserDevice: () => (/* binding */ getUserDevice),\n/* harmony export */ getUserId: () => (/* binding */ getUserId),\n/* harmony export */ getValueByDevice: () => (/* binding */ getValueByDevice),\n/* harmony export */ matchPagePath: () => (/* binding */ matchPagePath),\n/* harmony export */ slotId: () => (/* binding */ slotId),\n/* harmony export */ stickySlotId: () => (/* binding */ stickySlotId)\n/* harmony export */ });\n/* harmony import */ var xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! xxhash-wasm */ \"../node_modules/xxhash-wasm/esm/xxhash-wasm.js\");\n/* harmony import */ var _types_enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/enums */ \"./src/types/enums.ts\");\n// file: wrapper/src/utils.ts\n\n\nconst SESSION_LENGTH_MS = 10 * 60 * 1000; // 10 minutes, in milliseconds\nconst generateId = () => Math.random().toString(36).substring(2, 15)\n .padEnd(13, Math.random().toString(36).substring(2, 15));\nfunction getSessionId() {\n let result;\n try {\n var sessionId = localStorage.getItem('sessionId');\n var sessionIdLastRead = localStorage.getItem('sessionIdLastRead');\n const currentTime = Date.now(); /* UTC timestamp */\n if ((!sessionId) || (!sessionIdLastRead) ||\n ((currentTime - parseInt(sessionIdLastRead)) > SESSION_LENGTH_MS)) {\n sessionId = generateId();\n localStorage.setItem('sessionId', sessionId);\n }\n localStorage.setItem('sessionIdLastRead', currentTime.toString());\n result = sessionId;\n }\n catch (error) {\n // if localStorage fails, generate unique session id and log issue\n consoleError('getSessionId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserId() {\n let result;\n try {\n var userId = localStorage.getItem('userId');\n if (!userId) {\n const newUserId = generateId();\n localStorage.setItem('userId', newUserId);\n result = newUserId;\n }\n else {\n result = userId;\n }\n }\n catch (error) {\n // if localStorage fails, generate unique id and log issue\n consoleError('getUserId: localStorage unavailable:', false, error);\n result = generateId();\n }\n return result;\n}\nfunction getUserDevice(window = globalThis.window) {\n const isMobileViewport = window.matchMedia(\"(max-width: 760px), (max-width: 1024px) and (orientation: landscape)\").matches;\n const isMobileUserAgent = navigator?.userAgent ? /Android|iPhone|iPad/i.test(navigator.userAgent) : false;\n return (isMobileViewport || isMobileUserAgent) ? _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile : _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop;\n}\nconst stickySlotId = (ref) => `ad-${ref}-slot`;\n/**\n * generate id for ad slots based on position and reference element\n */\nconst slotId = (ref, divId) => `ad-slot-${ref}-${divId}`;\n/**\n * add slot element to dom with Insert configuration\n * @param insert The Insert configuration specifying anchor, reference, and divId\n * @param refElementId The ID of the reference element to insert relative to\n * @param window window object (defaults to globalThis.window)\n * @returns created slot element, or null if insertion fails\n */\nfunction addSlotElement(insert, window = globalThis.window) {\n const refElement = window.document.getElementById(insert.d /*divId*/);\n if (!refElement) {\n consoleError(`Reference element not found for slot: ${insert.d /*divId*/}`, true, window);\n // consoleError throws an error per second argument set to escalate error\n }\n // derive className based on anchor type\n const className = insert.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.StaticElement ? 'ad-static' : 'ad-dynamic';\n // create ad slot div\n const slotDiv = window.document.createElement('div');\n slotDiv.id = slotId(insert.r /*reference*/, insert.d /*divId*/);\n slotDiv.className = className;\n slotDiv.innerHTML = 'Advertisement';\n // insert slot div based on reference position\n switch (insert.r /*reference*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.ElementReference.Before:\n refElement.before(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.ElementReference.After:\n refElement.after(slotDiv);\n break;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.ElementReference.Inside:\n refElement.appendChild(slotDiv);\n break;\n // default case not necessary since config validated at build time\n }\n return slotDiv;\n}\nfunction consoleDebug(message, windowOrFirstArg, ...additionalArgs) {\n // check if first argument is Window object\n const isWindowArg = windowOrFirstArg && typeof windowOrFirstArg === 'object' && 'location' in windowOrFirstArg;\n const window = isWindowArg ? windowOrFirstArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrFirstArg !== undefined ? [windowOrFirstArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.log('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n}\nfunction consoleError(message, escalate = false, windowOrSecondArg, ...additionalArgs) {\n // check if third argument is Window object\n const isWindowArg = windowOrSecondArg && typeof windowOrSecondArg === 'object' && 'location' in windowOrSecondArg;\n const window = isWindowArg ? windowOrSecondArg : globalThis.window;\n const args = isWindowArg ? additionalArgs : (windowOrSecondArg !== undefined ? [windowOrSecondArg, ...additionalArgs] : []);\n try {\n const searchString = (window.location && typeof window.location.search === 'string') ? window.location.search : '';\n const urlParams = new URLSearchParams(searchString);\n const pbjs = window.pbjs;\n if ((urlParams.get('pbjs_debug') === 'true') ||\n (pbjs && pbjs.readConfig && pbjs.readConfig('debug') === true)) {\n console.error('%cAAM', 'background: navy; color: white; padding: 2px 5px; border-radius: 3px;', message, ...args);\n }\n }\n catch (error) {\n console.error('Console logging failed:', message);\n }\n if (escalate) {\n throw Error(message);\n }\n}\nconst enumFromString = (enumType, value) => Object.values(enumType).includes(value) ? value : undefined;\nconst getPrimaryDomain = (hostname) => {\n // hostname from web api, should be type safe\n return hostname.split('.').slice(-2).join('.');\n};\nasync function generateHash(data, length) {\n const { h64 } = await (0,xxhash_wasm__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n const hash64Value = h64(data, BigInt(0));\n const hexHash = hash64Value.toString(16).padStart(16, '0').toUpperCase();\n return hexHash.slice(0, length);\n}\nfunction matchPagePath(currentPath, pagePaths) {\n return pagePaths.some((pathObj) => {\n const { t /*pattern*/, p /*path*/ } = pathObj;\n switch (t /*pattern*/) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Prefix:\n return currentPath.startsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Contains:\n return currentPath.includes(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Suffix:\n return currentPath.endsWith(p /*path*/);\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Exact:\n return currentPath === p /*path*/;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.PagePathPattern.Regex:\n try {\n const regex = new RegExp(p /*path*/);\n return regex.test(currentPath);\n }\n catch {\n consoleError(`Invalid regex pattern: ${p /*path*/}`, false);\n return false;\n }\n default:\n return false;\n }\n });\n}\n/**\n * get device-specific or global value based on discriminated union pattern\n * works for any type T where value is either global (a) or device-specific (d/m)\n */\nfunction getValueByDevice(value, window = globalThis.window) {\n // build time validation ensures type (discriminated union) safety\n if ('a' in value) {\n return value.a /*all*/;\n }\n // Otherwise it's device-specific (both d and m must exist per union type)\n const device = getUserDevice(window);\n switch (device) {\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Desktop:\n return value.d /*desktop*/;\n case _types_enums__WEBPACK_IMPORTED_MODULE_1__.Device.Mobile:\n return value.m /*mobile*/;\n default:\n // default to desktop for unknown devices\n consoleDebug('getValueByDevice: Unknown device type, using desktop value', device, value);\n return value.d /*desktop*/;\n }\n}\nconst getSlotDivId = (adSlot) => {\n // build time validation ensures type safety\n return adSlot.n /*insert*/.a /*anchor*/ === _types_enums__WEBPACK_IMPORTED_MODULE_1__.Anchor.Window\n ? stickySlotId(adSlot.n /*insert*/.r /*reference*/)\n : slotId(adSlot.n /*insert*/.r /*reference*/, adSlot.n /*insert*/.d /*divId*/);\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/utils.ts?")},"./src/wrapperTag.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dynamicSlot */ "./src/dynamicSlot.ts");\n/* harmony import */ var _constants_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants/config */ "./src/constants/config.ts");\n// file: wrapper/src/wrapperTag.ts\n\n\nwindow.wrapperTag = {\n // build information\n appVersion: "0.1.4",\n appBuildDate: "2025-09-23T17:27:18.559Z",\n appName: "app-p80918ac8127ba.js",\n // active configuration\n config: _constants_config__WEBPACK_IMPORTED_MODULE_1__.wrapperConfig,\n // dynamic slot management functions\n insertAdSlot: (refDivId, position, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertDynamicAdSlot(refDivId, position, targetWindow || window),\n deleteAdSlot: (divId, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.deleteDynamicAdSlot(divId, targetWindow || window),\n insertStickyAdSlot: (reference, targetWindow) => _dynamicSlot__WEBPACK_IMPORTED_MODULE_0__.insertStickyAdSlot(reference, targetWindow || window),\n};\n\n\n//# sourceURL=webpack://@wrapp/wrapper/./src/wrapperTag.ts?')},"../node_modules/uuid/dist/esm-browser/native.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ randomUUID });\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/native.js?")},"../node_modules/uuid/dist/esm-browser/regex.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/regex.js?')},"../node_modules/uuid/dist/esm-browser/rng.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/rng.js?")},"../node_modules/uuid/dist/esm-browser/stringify.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../node_modules/uuid/dist/esm-browser/validate.js\");\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/stringify.js?")},"../node_modules/uuid/dist/esm-browser/v4.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ "../node_modules/uuid/dist/esm-browser/native.js");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ "../node_modules/uuid/dist/esm-browser/rng.js");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ "../node_modules/uuid/dist/esm-browser/stringify.js");\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__["default"].randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_1__["default"])();\n if (rnds.length < 16) {\n throw new Error(\'Random bytes length must be >= 16\');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/v4.js?')},"../node_modules/uuid/dist/esm-browser/validate.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ "../node_modules/uuid/dist/esm-browser/regex.js");\n\nfunction validate(uuid) {\n return typeof uuid === \'string\' && _regex_js__WEBPACK_IMPORTED_MODULE_0__["default"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/uuid/dist/esm-browser/validate.js?')},"../node_modules/xxhash-wasm/esm/xxhash-wasm.js":(__unused_webpack___webpack_module__,__webpack_exports__,__webpack_require__)=>{"use strict";eval('__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ "default": () => (/* binding */ e)\n/* harmony export */ });\nconst t=new Uint8Array([0,97,115,109,1,0,0,0,1,48,8,96,3,127,127,127,1,127,96,3,127,127,127,0,96,2,127,127,0,96,1,127,1,127,96,3,127,127,126,1,126,96,3,126,127,127,1,126,96,2,127,126,0,96,1,127,1,126,3,11,10,0,0,2,1,3,4,5,6,1,7,5,3,1,0,1,7,85,9,3,109,101,109,2,0,5,120,120,104,51,50,0,0,6,105,110,105,116,51,50,0,2,8,117,112,100,97,116,101,51,50,0,3,8,100,105,103,101,115,116,51,50,0,4,5,120,120,104,54,52,0,5,6,105,110,105,116,54,52,0,7,8,117,112,100,97,116,101,54,52,0,8,8,100,105,103,101,115,116,54,52,0,9,10,251,22,10,242,1,1,4,127,32,0,32,1,106,33,3,32,1,65,16,79,4,127,32,3,65,16,107,33,6,32,2,65,168,136,141,161,2,106,33,3,32,2,65,137,235,208,208,7,107,33,4,32,2,65,207,140,162,142,6,106,33,5,3,64,32,3,32,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,4,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,4,32,2,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,5,32,0,65,4,106,34,0,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,6,32,0,65,4,106,34,0,79,13,0,11,32,2,65,12,119,32,5,65,18,119,106,32,4,65,7,119,106,32,3,65,1,119,106,5,32,2,65,177,207,217,178,1,106,11,32,1,106,32,0,32,1,65,15,113,16,1,11,146,1,0,32,1,32,2,106,33,2,3,64,32,1,65,4,106,32,2,75,69,4,64,32,0,32,1,40,2,0,65,189,220,202,149,124,108,106,65,17,119,65,175,214,211,190,2,108,33,0,32,1,65,4,106,33,1,12,1,11,11,3,64,32,1,32,2,79,69,4,64,32,0,32,1,45,0,0,65,177,207,217,178,1,108,106,65,11,119,65,177,243,221,241,121,108,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,65,15,118,115,65,247,148,175,175,120,108,34,0,65,13,118,32,0,115,65,189,220,202,149,124,108,34,0,65,16,118,32,0,115,11,63,0,32,0,65,8,106,32,1,65,168,136,141,161,2,106,54,2,0,32,0,65,12,106,32,1,65,137,235,208,208,7,107,54,2,0,32,0,65,16,106,32,1,54,2,0,32,0,65,20,106,32,1,65,207,140,162,142,6,106,54,2,0,11,195,4,1,6,127,32,1,32,2,106,33,6,32,0,65,24,106,33,4,32,0,65,40,106,40,2,0,33,3,32,0,32,0,40,2,0,32,2,106,54,2,0,32,0,65,4,106,34,5,32,5,40,2,0,32,2,65,16,79,32,0,40,2,0,65,16,79,114,114,54,2,0,32,2,32,3,106,65,16,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,40,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,16,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,40,2,0,32,4,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,12,106,34,3,32,3,40,2,0,32,4,65,4,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,16,106,34,3,32,3,40,2,0,32,4,65,8,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,20,106,34,3,32,3,40,2,0,32,4,65,12,106,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,54,2,0,32,0,65,40,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,32,6,65,16,107,77,4,64,32,6,65,16,107,33,8,32,0,65,8,106,40,2,0,33,2,32,0,65,12,106,40,2,0,33,3,32,0,65,16,106,40,2,0,33,5,32,0,65,20,106,40,2,0,33,7,3,64,32,2,32,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,2,32,3,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,3,32,5,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,5,32,7,32,1,65,4,106,34,1,40,2,0,65,247,148,175,175,120,108,106,65,13,119,65,177,243,221,241,121,108,33,7,32,8,32,1,65,4,106,34,1,79,13,0,11,32,0,65,8,106,32,2,54,2,0,32,0,65,12,106,32,3,54,2,0,32,0,65,16,106,32,5,54,2,0,32,0,65,20,106,32,7,54,2,0,11,32,1,32,6,73,4,64,32,4,32,1,32,6,32,1,107,34,1,252,10,0,0,32,0,65,40,106,32,1,54,2,0,11,11,97,1,1,127,32,0,65,16,106,40,2,0,33,1,32,0,65,4,106,40,2,0,4,127,32,1,65,12,119,32,0,65,20,106,40,2,0,65,18,119,106,32,0,65,12,106,40,2,0,65,7,119,106,32,0,65,8,106,40,2,0,65,1,119,106,5,32,1,65,177,207,217,178,1,106,11,32,0,40,2,0,106,32,0,65,24,106,32,0,65,40,106,40,2,0,16,1,11,255,3,2,3,126,1,127,32,0,32,1,106,33,6,32,1,65,32,79,4,126,32,6,65,32,107,33,6,32,2,66,214,235,130,238,234,253,137,245,224,0,124,33,3,32,2,66,177,169,172,193,173,184,212,166,61,125,33,4,32,2,66,249,234,208,208,231,201,161,228,225,0,124,33,5,3,64,32,3,32,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,3,32,4,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,4,32,2,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,2,32,5,32,0,65,8,106,34,0,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,5,32,6,32,0,65,8,106,34,0,79,13,0,11,32,2,66,12,137,32,5,66,18,137,124,32,4,66,7,137,124,32,3,66,1,137,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,2,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,2,66,197,207,217,178,241,229,186,234,39,124,11,32,1,173,124,32,0,32,1,65,31,113,16,6,11,134,2,0,32,1,32,2,106,33,2,3,64,32,2,32,1,65,8,106,79,4,64,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,32,0,133,66,27,137,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,33,0,32,1,65,8,106,33,1,12,1,11,11,32,1,65,4,106,32,2,77,4,64,32,0,32,1,53,2,0,66,135,149,175,175,152,182,222,155,158,127,126,133,66,23,137,66,207,214,211,190,210,199,171,217,66,126,66,249,243,221,241,153,246,153,171,22,124,33,0,32,1,65,4,106,33,1,11,3,64,32,1,32,2,73,4,64,32,0,32,1,49,0,0,66,197,207,217,178,241,229,186,234,39,126,133,66,11,137,66,135,149,175,175,152,182,222,155,158,127,126,33,0,32,1,65,1,106,33,1,12,1,11,11,32,0,32,0,66,33,136,133,66,207,214,211,190,210,199,171,217,66,126,34,0,32,0,66,29,136,133,66,249,243,221,241,153,246,153,171,22,126,34,0,32,0,66,32,136,133,11,77,0,32,0,65,8,106,32,1,66,214,235,130,238,234,253,137,245,224,0,124,55,3,0,32,0,65,16,106,32,1,66,177,169,172,193,173,184,212,166,61,125,55,3,0,32,0,65,24,106,32,1,55,3,0,32,0,65,32,106,32,1,66,249,234,208,208,231,201,161,228,225,0,124,55,3,0,11,244,4,2,3,127,4,126,32,1,32,2,106,33,5,32,0,65,40,106,33,4,32,0,65,200,0,106,40,2,0,33,3,32,0,32,0,41,3,0,32,2,173,124,55,3,0,32,2,32,3,106,65,32,73,4,64,32,3,32,4,106,32,1,32,2,252,10,0,0,32,0,65,200,0,106,32,2,32,3,106,54,2,0,15,11,32,3,4,64,32,3,32,4,106,32,1,65,32,32,3,107,34,2,252,10,0,0,32,0,65,8,106,34,3,32,3,41,3,0,32,4,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,16,106,34,3,32,3,41,3,0,32,4,65,8,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,24,106,34,3,32,3,41,3,0,32,4,65,16,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,32,106,34,3,32,3,41,3,0,32,4,65,24,106,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,55,3,0,32,0,65,200,0,106,65,0,54,2,0,32,1,32,2,106,33,1,11,32,1,65,32,106,32,5,77,4,64,32,5,65,32,107,33,2,32,0,65,8,106,41,3,0,33,6,32,0,65,16,106,41,3,0,33,7,32,0,65,24,106,41,3,0,33,8,32,0,65,32,106,41,3,0,33,9,3,64,32,6,32,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,6,32,7,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,7,32,8,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,8,32,9,32,1,65,8,106,34,1,41,3,0,66,207,214,211,190,210,199,171,217,66,126,124,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,33,9,32,2,32,1,65,8,106,34,1,79,13,0,11,32,0,65,8,106,32,6,55,3,0,32,0,65,16,106,32,7,55,3,0,32,0,65,24,106,32,8,55,3,0,32,0,65,32,106,32,9,55,3,0,11,32,1,32,5,73,4,64,32,4,32,1,32,5,32,1,107,34,1,252,10,0,0,32,0,65,200,0,106,32,1,54,2,0,11,11,188,2,1,5,126,32,0,65,24,106,41,3,0,33,1,32,0,41,3,0,34,2,66,32,90,4,126,32,0,65,8,106,41,3,0,34,3,66,1,137,32,0,65,16,106,41,3,0,34,4,66,7,137,124,32,1,66,12,137,32,0,65,32,106,41,3,0,34,5,66,18,137,124,124,32,3,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,4,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,1,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,32,5,66,207,214,211,190,210,199,171,217,66,126,66,31,137,66,135,149,175,175,152,182,222,155,158,127,126,133,66,135,149,175,175,152,182,222,155,158,127,126,66,157,163,181,234,131,177,141,138,250,0,125,5,32,1,66,197,207,217,178,241,229,186,234,39,124,11,32,2,124,32,0,65,40,106,32,2,66,31,131,167,16,6,11]);async function e(){return function(t){const{exports:{mem:e,xxh32:n,xxh64:r,init32:i,update32:a,digest32:o,init64:s,update64:u,digest64:c}}=t;let h=new Uint8Array(e.buffer);function g(t,n){if(e.buffer.byteLength<t+n){const r=Math.ceil((t+n-e.buffer.byteLength)/65536);e.grow(r),h=new Uint8Array(e.buffer)}}function f(t,e,n,r,i,a){g(t);const o=new Uint8Array(t);return h.set(o),n(0,e),o.set(h.subarray(0,t)),{update(e){let n;return h.set(o),"string"==typeof e?(g(3*e.length,t),n=w.encodeInto(e,h.subarray(t)).written):(g(e.byteLength,t),h.set(e,t),n=e.byteLength),r(0,t,n),o.set(h.subarray(0,t)),this},digest:()=>(h.set(o),a(i(0)))}}function y(t){return t>>>0}const b=2n**64n-1n;function d(t){return t&b}const w=new TextEncoder,l=0,p=0n;function x(t,e=l){return g(3*t.length,0),y(n(0,w.encodeInto(t,h).written,e))}function L(t,e=p){return g(3*t.length,0),d(r(0,w.encodeInto(t,h).written,e))}return{h32:x,h32ToString:(t,e=l)=>x(t,e).toString(16).padStart(8,"0"),h32Raw:(t,e=l)=>(g(t.byteLength,0),h.set(t),y(n(0,t.byteLength,e))),create32:(t=l)=>f(48,t,i,a,o,y),h64:L,h64ToString:(t,e=p)=>L(t,e).toString(16).padStart(16,"0"),h64Raw:(t,e=p)=>(g(t.byteLength,0),h.set(t),d(r(0,t.byteLength,e))),create64:(t=p)=>f(88,t,s,u,c,d)}}((await WebAssembly.instantiate(t)).instance)}\n//# sourceMappingURL=xxhash-wasm.js.map\n\n\n//# sourceURL=webpack://@wrapp/wrapper/../node_modules/xxhash-wasm/esm/xxhash-wasm.js?')},"../builds/80918AC8127BA/0.1.4/config-d80918ac8127ba-v0-1-4.json":module=>{"use strict";eval('module.exports = /*#__PURE__*/JSON.parse(\'{"c":"INR","d":"80918AC8127BA","e":"app.animaadtech.localhost","f":3000,"l":{"m":"AS","p":"/api/logger/v1","t":"EV","v":10},"m":"MZ","o":2000,"p":"hb","t":"/api/experiments/v1","v":"","as":[{"g":"/139951767/ca-pub-7625127328873999/test-anima-1","i":"Y1ZQU69CQSX2B","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"TP","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.05","width":"300","height":"250","placement_id":"12345678"}}]},{"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"OEJEO1UBPB20D","l":"EG","m":{"f":"BN","sz":{"a":[[300,600]]}},"n":{"a":"WN","r":"RG","s":false,"z":false},"r":{"c":5,"i":30,"t":"AV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-600.png\\\' alt=\\\'Test Ad 300x600\\\' width=\\\'300\\\' height=\\\'600\\\'>","cpm":"0.10","width":"300","height":"600","placement_id":"123456789"}}]}],"ly":[{"i":"H8SLWM0TOW73T","t":{"ic":[{"bw":["CR","SF","EG","FX","OR"],"dv":["MB","DK"]}]},"as":[{"g":"/139951767/ca-pub-7625127328873999/test-anima-1","i":"Y1ZQU69CQSX2B","l":"EG","m":{"f":"BN","sz":{"a":[[300,250]]}},"n":{"a":"WN","r":"TP","s":false,"z":false},"r":{"c":5,"i":30,"t":"IV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-250.png\\\' alt=\\\'Test Ad 300x250\\\' width=\\\'300\\\' height=\\\'250\\\'>","cpm":"0.05","width":"300","height":"250","placement_id":"12345678"}}]},{"g":"/139951767/ca-pub-7625127328873999/test-anima-2","i":"OEJEO1UBPB20D","l":"EG","m":{"f":"BN","sz":{"a":[[300,600]]}},"n":{"a":"WN","r":"RG","s":false,"z":false},"r":{"c":5,"i":30,"t":"AV"},"tg":[{"b":"testbidder","pm":{"ad":"<img src=\\\'https://storage.googleapis.com/pub-ad-manager-459713/ad-creative/mock-ad-banner-300-600.png\\\' alt=\\\'Test Ad 300x600\\\' width=\\\'300\\\' height=\\\'600\\\'>","cpm":"0.10","width":"300","height":"600","placement_id":"123456789"}}]}],"pp":[{"p":"/dev","t":"PR"}]}],"pb":[{"c":10,"f":1,"s":1}]}\');\n\n//# sourceURL=webpack://@wrapp/wrapper/../builds/80918AC8127BA/0.1.4/config-d80918ac8127ba-v0-1-4.json?')}},__webpack_module_cache__={};function __webpack_require__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](t,t.exports,__webpack_require__),t.exports}__webpack_require__.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=(e,n)=>{for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nc=void 0,__webpack_require__("./src/index.ts"),__webpack_require__("./src/wrapperTag.ts"),__webpack_require__("../builds/80918AC8127BA/0.1.4/prebid.js");var __webpack_exports__=__webpack_require__("./css/sticky.css")})();