@brandbrigade/ott-bb-player 1.0.65 → 1.0.66

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.
package/dist/OTTPlayer.js CHANGED
@@ -1,7 +1,7 @@
1
- (function(he,pe){typeof exports=="object"&&typeof module<"u"?module.exports=pe():typeof define=="function"&&define.amd?define(pe):(he=typeof globalThis<"u"?globalThis:he||self,he.OTTPlayer=pe())})(this,function(){"use strict";const he=t=>Math.abs(t-59.94005994005994)<20?59.94:Math.abs(t-29.97002997002997)<10?29.97:Math.abs(t-14.985014985014985)<8?14.98:0,pe=t=>t>30&&t<70?59.94005994005994:t>15?29.97002997002997:t>7?14.985014985014985:0;class nt{constructor(e){this.frameDurations=[],this.frameDurationsCapacity=e,this.lastTimestamp=null}addFrameDuration(e){return this.frameDurations.push(e),this.frameDurations.length>this.frameDurationsCapacity&&this.frameDurations.shift(),this.calculateAverage()}addTimestamp(e){if(this.lastTimestamp===null)return this.lastTimestamp=e,null;const n=e-this.lastTimestamp;return this.lastTimestamp=e,this.addFrameDuration(n)}calculateAverage(){if(this.frameDurations.length===0)return 0;const n=this.frameDurations.reduce((o,a)=>o+a,0)/this.frameDurations.length,r=this.frameDurations.filter(o=>Math.abs(o-n)<=n*.2);return r.reduce((o,a)=>o+a,0)/r.length||n}getFPS(){const e=this.calculateAverage();if(e===0)return 0;const n=1/e;return pe(n)}getPerciseFPS(){const e=this.calculateAverage();return e===0?0:1/e}}const U=class U{constructor(e,n,r,i,s){this.copy=()=>new U(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const o=":";let a=("0"+this.h).slice(-2)+o+("0"+this.m).slice(-2)+o+("0"+this.s).slice(-2)+o+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const o=this.copy();return o.f=0,o.s=o.s%2===0?o.s:o.s-1,o.field=0,U.toStr(o)},this.toFrames=o=>{let a=60,c=0;Math.floor(o)==60?(a=60,c=0):Math.floor(o)==59?(a=60,c=4):Math.floor(o)==30?(a=30,c=0):Math.floor(o)==29&&(a=30,c=2);let l=this.h,d=this.m,u=this.s,f=this.f,p=this.field;const h=l*60+d,g=(h-Math.floor(h/10))*c;return l*(a*3600)+d*(a*60)+u*a+(f*2+p)-g},this.addSeconds=o=>{let a=this.copy();return a.s+=o,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(o,a)=>{let c=this.toFrames(a);return c+=o,U.fromFrames(c,a)},this.subtractFrames=(o,a)=>this.addFrames(-o,a),this.h=e||0,this.m=n||0,this.s=r||0,this.f=i||0,this.field=s||0}static compare(e,n){return e.h!==n.h?e.h<n.h?-1:1:e.m!==n.m?e.m<n.m?-1:1:e.s!==n.s?e.s<n.s?-1:1:e.f!==n.f?e.f<n.f?-1:1:e.field!==n.field?e.field<n.field?-1:1:0}static generateTimecodeRange(e,n,r){const i=[];let s=e;for(;U.compare(s,n)<=0;)i.push(s),s=s.addSeconds(r);return i}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(e){return this.toFrames(e)*1e3/e}};U.calculateCurrentTimeCode=e=>{var u;if(!e.video||!e.clocker||!e.gameParams)throw new Error("OTTPlayer is not initialized");const n=e.video,r=e.clocker,i=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*i+r.syncPoint.frame;if(a===0||i===0)throw new Error("Current frame is 0 or fps is 0");const c=U.calculateCurrentOffset(a,(u=e.gameParams)==null?void 0:u.offsets);if(c===void 0)throw new Error("Offset is undefined");let l=Math.floor(a-c);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),U.fromFrames(l,i)},U.calculateCurrentOffset=(e,n)=>{for(let r=1;r<n.length;r++)if(e<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},U.fromFrames=(e,n)=>{let r=60,i=0;Math.floor(n)==60?(r=60,i=0):Math.floor(n)==59?(r=60,i=4):Math.floor(n)==30?(r=30,i=0):Math.floor(n)==29&&(r=30,i=2);let s=Math.floor(n*60),o=Math.floor(n*60*10),a=o*6,c=e,l=Math.floor(c/a);c-=l*a;let d=Math.floor(c/o);c-=d*o,c>=r*60&&(c+=i*(Math.floor((c-r*60)/s)+1));let u=Math.floor(c/(r*60));c-=u*(r*60);let f=Math.floor(c/r);c-=f*r;let p=c;u+=d*10;let h=0;return h=p%2,p=Math.floor(p/2),new U(l,u,f,p,h)},U.toStr=e=>{const n="_";let r=("0"+e.h).slice(-2)+n+("0"+e.m).slice(-2)+n+("0"+e.s).slice(-2)+n+("0"+e.f).slice(-2);return e.field&&(r+="_1"),r},U.fromStr=e=>{const r=e.split("_").map(Number);if(r.length==4){const[i,s,o,a]=r;return new U(i,s,o,a,0)}else if(r.length==5){const[i,s,o,a,c]=r;return new U(i,s,o,a,c)}else throw new Error("Invalid timecode format: "+e)},U.fromMetadata=e=>{const n=/^(\d{2}):(\d{2}):(\d{2}):(\d{2})(?:\.(\d))?$/,r=e.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+e.timecode);const[,i,s,o,a,c]=r,l=Number(i),d=Number(s),u=Number(o),f=Number(a),p=c?Number(c):0;return new U(l,d,u,f,p)};let F=U;const er=async t=>{let e;typeof document>"u"?e=new URL(self.location.href):e=new URL(document.location.href);const n=e.searchParams.get("config");if(n){const i=await(await fetch(n)).json();Object.assign(t,i)}},I=(t,e)=>!t.debug||!t.debug.on?!1:t.debug[`log${e}`];class tr{constructor(e){this.last10=[],this.errorsInProgress=[],this.lastFrameTC=null,this.fps=e}setFPS(e){this.fps=e}timecodeRecieved(e){if(!e)return;const n=F.fromStr(e);if(this.last10.push(n),this.last10.length>10&&this.last10.shift(),this.lastFrameTC){const r=this.incrementInterlaced(this.lastFrameTC);F.compare(n,r)!==0&&(console.warn("Timecode sequence is invalid! Detected at:",e),this.errorsInProgress.push({preTCs:[...this.last10],postTCs:[],framesAfter:0,printed:!1}))}for(const r of this.errorsInProgress)r.printed||(r.postTCs.push(n),r.framesAfter++);for(const r of this.errorsInProgress)if(!r.printed&&r.framesAfter>=10){console.error("Full 20-frame sequence around error:");const i=[...r.preTCs,...r.postTCs];console.error(i.map(s=>F.toStr(s))),r.printed=!0}this.lastFrameTC=n}incrementInterlaced(e){const n=e.copy();return n.field===0?(n.field=1,n):(n.field=0,n.f++,n.f>=30&&(n.f=0,n.s++,n.s>=60&&(n.s=0,n.m++,n.m>=60&&(n.m=0,n.h++))),n)}}class nr{constructor(e,n){this.click=async r=>{const i=this.video.getBoundingClientRect(),s=(r.clientX-i.left)/i.width,o=(r.clientY-i.top)/i.height,a={x:s,y:o};this.renderer.postMessage({type:"VIDEO_CLICK",clickData:a})},this.video=e.video,this.logger=e.logger,this.renderer=n,this.renderer.onmessage=r=>{if(r.data.type==="OPEN_URL"){const i=r.data.url;i&&(window.open(i,"_blank"),this.logger.info("didClickAd",{url:i}))}}}}const Pt='(function(){"use strict";const v=(e,t)=>!e.debug||!e.debug.on?!1:e.debug[`log${t}`],T={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},k=console,H={};Object.keys(T).forEach(e=>{H[e]=k[e]});const le="Datadog Browser SDK:",_={debug:H.debug.bind(k,le),log:H.log.bind(k,le),info:H.info.bind(k,le),warn:H.warn.bind(k,le),error:H.error.bind(k,le)},Ve="https://docs.datadoghq.com",Ct=`${Ve}/real_user_monitoring/browser/troubleshooting`,Oe="More details:";function vt(e,t){return(...n)=>{try{return e(...n)}catch(r){_.error(t,r)}}}function Re(e){return e!==0&&Math.random()*100<=e}function Pn(e){return Un(e)&&e>=0&&e<=100}function Un(e){return typeof e=="number"}const de=1e3,z=60*de,At=60*z,Fn=365*(24*At);function fe(){return new Date().getTime()}function N(){return fe()}function Ce(){return performance.now()}function $(){return{relative:Ce(),timeStamp:N()}}function Bn(){return{relative:0,timeStamp:It()}}function Gn(e,t){return t-e}function jn(e,t){return e+t}function Hn(e){return e-It()}let Xe;function It(){return Xe===void 0&&(Xe=performance.timing.navigationStart),Xe}const x=1024,kt=1024*x,zn=/[^\\u0000-\\u007F]/;function Ze(e){return zn.test(e)?window.TextEncoder!==void 0?new TextEncoder().encode(e).length:new Blob([e]).size:e.length}function Jn(e){return{...e}}function xt(e,t){return Object.keys(e).some(n=>e[n]===t)}function pe(e){return Object.keys(e).length===0}function P(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let e=_dd_temp_;return delete Object.prototype._dd_temp_,typeof e!="object"&&(typeof self=="object"?e=self:typeof window=="object"?e=window:e={}),e}function Q(e,t){const n=P();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=e[n.Zone.__symbol__(t)]),r||(r=e[t]),r}let ve,Lt=!1;function Kn(e){ve=e}function Wn(e){Lt=e}function qn(e,t,n){const r=n.value;n.value=function(...o){return(ve?S(r):r).apply(this,o)}}function S(e){return function(){return ge(e,this,arguments)}}function ge(e,t,n){try{return e.apply(t,n)}catch(r){Yn(r)}}function Yn(e){if(Qe(e),ve)try{ve(e)}catch(t){Qe(t)}}function Qe(...e){Lt&&_.error("[MONITOR]",...e)}function he(e,t){return Q(P(),"setTimeout")(S(e),t)}function Dt(e){Q(P(),"clearTimeout")(e)}function et(e,t){return Q(P(),"setInterval")(S(e),t)}function Mt(e){Q(P(),"clearInterval")(e)}class w{constructor(t){this.onFirstSubscribe=t,this.observers=[]}subscribe(t){return this.observers.push(t),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>t!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(t){this.observers.forEach(n=>n(t))}}function Nt(...e){return new w(t=>{const n=e.map(r=>r.subscribe(o=>t.notify(o)));return()=>n.forEach(r=>r.unsubscribe())})}function $t(e,t,n){let r=!1,o,s;return{throttled:(...i)=>{if(r){o=i;return}e(...i),r=!0,s=he(()=>{o&&e(...o),r=!1,o=void 0},t)},cancel:()=>{Dt(s),r=!1,o=void 0}}}function U(){}function F(e){return e?(parseInt(e,10)^Math.random()*16>>parseInt(e,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,F)}const Ae=/([\\w-]+)\\s*=\\s*([^;]+)/g;function Vn(e,t){for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n){if(n[1]===t)return n[2]}else break}}function Xn(e){const t=new Map;for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n)t.set(n[1],n[2]);else break}return t}function Zn(e,t,n=""){const r=e.charCodeAt(t-1),s=r>=55296&&r<=56319?t+1:t;return e.length<=s?e:`${e.slice(0,s)}${n}`}function Qn(){return er()===0}let Ie;function er(){return Ie??(Ie=tr())}function tr(e=window){var t;const n=e.navigator.userAgent;return e.chrome||/HeadlessChrome/.test(n)?0:((t=e.navigator.vendor)===null||t===void 0?void 0:t.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function me(e,t,n=0,r){const o=new Date;o.setTime(o.getTime()+n);const s=`expires=${o.toUTCString()}`,i=r&&r.crossSite?"none":"strict",c=r&&r.domain?`;domain=${r.domain}`:"",a=r&&r.secure?";secure":"",l=r&&r.partitioned?";partitioned":"";document.cookie=`${e}=${t};${s};path=/;samesite=${i}${c}${a}${l}`}function tt(e){return Vn(document.cookie,e)}let nt;function J(e){return nt||(nt=Xn(document.cookie)),nt.get(e)}function Pt(e,t){me(e,"",0,t)}function nr(e){if(document.cookie===void 0||document.cookie===null)return!1;try{const t=`dd_cookie_test_${F()}`,n="test";me(t,n,z,e);const r=tt(t)===n;return Pt(t,e),r}catch(t){return _.error(t),!1}}let rt;function rr(){if(rt===void 0){const e=`dd_site_test_${F()}`,t="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!tt(e);)r=`${n.pop()}.${r}`,me(e,t,de,{domain:r});Pt(e,{domain:r}),rt=r}return rt}const ee="_dd_s";function ke(e){return Object.values(e)}function or(e){return Object.entries(e)}const ot=4*At,Ut=15*z,sr=Fn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},Ft=/^([a-zA-Z]+)=([a-z0-9-]+)$/,st="&";function ir(e){return!!e&&(e.indexOf(st)!==-1||Ft.test(e))}const cr="1";function K(e,t){const n={isExpired:cr};return t.trackAnonymousUser&&(e!=null&&e.anonymousId?n.anonymousId=e==null?void 0:e.anonymousId:n.anonymousId=F()),n}function xe(e){return pe(e)}function Bt(e){return!xe(e)}function Le(e){return e.isExpired!==void 0||!ar(e)}function ar(e){return(e.created===void 0||fe()-Number(e.created)<ot)&&(e.expire===void 0||fe()<Number(e.expire))}function Gt(e){e.expire=String(fe()+Ut)}function it(e){return or(e).map(([t,n])=>t==="anonymousId"?`aid=${n}`:`${t}=${n}`).join(st)}function jt(e){const t={};return ir(e)&&e.split(st).forEach(n=>{const r=Ft.exec(n);if(r!==null){const[,o,s]=r;o==="aid"?t.anonymousId=s:t[o]=s}}),t}const ur="_dd",lr="_dd_r",dr="_dd_l",fr="rum",pr="logs";function gr(e){if(!J(ee)){const n=J(ur),r=J(lr),o=J(dr),s={};n&&(s.id=n),o&&/^[01]$/.test(o)&&(s[pr]=o),r&&/^[012]$/.test(r)&&(s[fr]=r),Bt(s)&&(Gt(s),e.persistSession(s))}}function Ht(e){const t=yr(e);return nr(t)?{type:be.COOKIE,cookieOptions:t}:void 0}function hr(e,t){const n={isLockEnabled:Qn(),persistSession:mr(t),retrieveSession:Sr,expireSession:r=>br(t,r,e)};return gr(n),n}function mr(e){return t=>{me(ee,it(t),Ut,e)}}function br(e,t,n){const r=K(t,n);me(ee,it(r),n.trackAnonymousUser?sr:ot,e)}function Sr(){const e=tt(ee);return jt(e)}function yr(e){const t={};return t.secure=!!e.useSecureSessionCookie||!!e.usePartitionedCrossSiteSessionCookie,t.crossSite=!!e.usePartitionedCrossSiteSessionCookie,t.partitioned=!!e.usePartitionedCrossSiteSessionCookie,e.trackSessionAcrossSubdomains&&(t.domain=rr()),t}const Er="_dd_test_";function zt(){try{const e=F(),t=`${Er}${e}`;localStorage.setItem(t,e);const n=localStorage.getItem(t);return localStorage.removeItem(t),e===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function Tr(e){return{isLockEnabled:!1,persistSession:Jt,retrieveSession:_r,expireSession:t=>wr(t,e)}}function Jt(e){localStorage.setItem(ee,it(e))}function _r(){const e=localStorage.getItem(ee);return jt(e)}function wr(e,t){Jt(K(e,t))}const Or=10,Rr=100,Kt=[];let De;function W(e,t,n=0){var r;const{isLockEnabled:o,persistSession:s,expireSession:i}=t,c=f=>s({...f,lock:l}),a=()=>{const f=t.retrieveSession(),g=f.lock;return f.lock&&delete f.lock,{session:f,lock:g}};if(De||(De=e),e!==De){Kt.push(e);return}if(o&&n>=Rr){Wt(t);return}let l,u=a();if(o){if(u.lock){Me(e,t,n);return}if(l=F(),c(u.session),u=a(),u.lock!==l){Me(e,t,n);return}}let d=e.process(u.session);if(o&&(u=a(),u.lock!==l)){Me(e,t,n);return}if(d&&(Le(d)?i(d):(Gt(d),o?c(d):s(d))),o&&!(d&&Le(d))){if(u=a(),u.lock!==l){Me(e,t,n);return}s(u.session),d=u.session}(r=e.after)===null||r===void 0||r.call(e,d||u.session),Wt(t)}function Me(e,t,n){he(()=>{W(e,t,n+1)},Or)}function Wt(e){De=void 0;const t=Kt.shift();t&&W(t,e)}const qt=de;function Cr(e){switch(e.sessionPersistence){case be.COOKIE:return Ht(e);case be.LOCAL_STORAGE:return zt();case void 0:{let t=Ht(e);return!t&&e.allowFallbackToLocalStorage&&(t=zt()),t}default:_.error(`Invalid session persistence \'${String(e.sessionPersistence)}\'`)}}function vr(e,t,n,r){const o=new w,s=new w,i=new w,c=e.type===be.COOKIE?hr(t,e.cookieOptions):Tr(t),{expireSession:a}=c,l=et(p,qt);let u;E();const{throttled:d,cancel:f}=$t(()=>{W({process:b=>{if(xe(b))return;const ue=y(b);return we(ue),ue},after:b=>{Bt(b)&&!j()&&Mi(b),u=b}},c)},qt);function g(){W({process:b=>j()?y(b):void 0},c)}function p(){W({process:b=>Le(b)?K(b,t):void 0,after:y},c)}function y(b){return Le(b)&&(b=K(b,t)),j()&&(Li(b)?Di():(i.notify({previousState:u,newState:b}),u=b)),b}function E(){W({process:b=>{if(xe(b))return K(b,t)},after:b=>{u=b}},c)}function we(b){if(xe(b))return!1;const{trackingType:ue,isTracked:$i}=r(b[n]);b[n]=ue,delete b.isExpired,$i&&!b.id&&(b.id=F(),b.created=String(fe()))}function j(){return u[n]!==void 0}function Li(b){return u.id!==b.id||u[n]!==b[n]}function Di(){u=K(u,t),s.notify()}function Mi(b){u=b,o.notify()}function Ni(b){W({process:ue=>({...ue,...b}),after:y},c)}return{expandOrRenewSession:d,expandSession:g,getSession:()=>u,renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i,restartSession:E,expire:()=>{f(),a(u),y(K(u,t))},stop:()=>{Mt(l)},updateSessionState:Ni}}const ct={GRANTED:"granted",NOT_GRANTED:"not-granted"};function Ar(e){const t=new w;return{tryToInit(n){e||(e=n)},update(n){e=n,t.notify()},isGranted(){return e===ct.GRANTED},observable:t}}function q(e,t,n){if(typeof e!="object"||e===null)return JSON.stringify(e);const r=te(Object.prototype),o=te(Array.prototype),s=te(Object.getPrototypeOf(e)),i=te(e);try{return JSON.stringify(e,t,n)}catch{return"<error: unable to serialize object>"}finally{r(),o(),s(),i()}}function te(e){const t=e,n=t.toJSON;return n?(delete t.toJSON,()=>{t.toJSON=n}):U}function at(e){return Ir(e,location.href).href}function Ir(e,t){const n=kr();if(n)try{return t!==void 0?new n(e,t):new n(e)}catch(s){throw new Error(`Failed to construct URL: ${String(s)} ${q({url:e,base:t})}`)}if(t===void 0&&!/:/.test(e))throw new Error(`Invalid URL: \'${e}\'`);let r=document;const o=r.createElement("a");if(t!==void 0){r=document.implementation.createHTMLDocument("");const s=r.createElement("base");s.href=t,r.head.appendChild(s),r.body.appendChild(o)}return o.href=e,o}const Yt=URL;let Ne;function kr(){if(Ne===void 0)try{Ne=new Yt("http://test/path").href==="http://test/path"}catch{Ne=!1}return Ne?Yt:void 0}const xr="datad0g.com",Lr="dd0g-gov.com",ne="datadoghq.com",Dr="ddog-gov.com",Mr="pci.browser-intake-datadoghq.com",Nr=["ddsource","ddtags"];function Se(e,t,n){const r=$r(e,t);return{build(o,s){const i=Ur(e,t,n,o,s);return r(i)},urlPrefix:r(""),trackType:t}}function $r(e,t){const n=`/api/v2/${t}`,r=e.proxy;if(typeof r=="string"){const s=at(r);return i=>`${s}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof r=="function")return s=>r({path:n,parameters:s});const o=Pr(t,e);return s=>`https://${o}${n}?${s}`}function Pr(e,t){const{site:n=ne,internalAnalyticsSubdomain:r}=t;if(e==="logs"&&t.usePciIntake&&n===ne)return Mr;if(r&&n===ne)return`${r}.${ne}`;if(n===Lr)return`http-intake.logs.${n}`;const o=n.split("."),s=o.pop();return`browser-intake-${o.join("-")}.${s}`}function Ur({clientToken:e,internalAnalyticsSubdomain:t},n,r,o,{retry:s,encoding:i}){const c=["sdk_version:6.5.0",`api:${o}`].concat(r);s&&c.push(`retry_count:${s.count}`,`retry_after:${s.lastFailureStatus}`);const a=["ddsource=browser",`ddtags=${encodeURIComponent(c.join(","))}`,`dd-api-key=${e}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${F()}`];return i&&a.push(`dd-evp-encoding=${i}`),n==="rum"&&a.push(`batch_time=${N()}`),t&&a.reverse(),a.join("&")}const Fr=200;function Br(e){const{env:t,service:n,version:r,datacenter:o}=e,s=[];return t&&s.push($e("env",t)),n&&s.push($e("service",n)),r&&s.push($e("version",r)),o&&s.push($e("datacenter",o)),s}function $e(e,t){const n=Fr-e.length-1;(t.length>n||Gr(t))&&_.warn(`${e} value doesn\'t meet tag requirements and will be sanitized. ${Oe} ${Ve}/getting_started/tagging/#defining-tags`);const r=t.replace(/,/g,"_");return`${e}:${r}`}function Gr(e){return jr()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(e):!1}function jr(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function Hr(e){const t=e.site||ne,n=Br(e),r=zr(e,n);return{replica:Jr(e,n),site:t,...r}}function zr(e,t){return{logsEndpointBuilder:Se(e,"logs",t),rumEndpointBuilder:Se(e,"rum",t),sessionReplayEndpointBuilder:Se(e,"replay",t)}}function Jr(e,t){if(!e.replica)return;const n={...e,site:ne,clientToken:e.replica.clientToken},r={logsEndpointBuilder:Se(n,"logs",t),rumEndpointBuilder:Se(n,"rum",t)};return{applicationId:e.replica.applicationId,...r}}function Kr(e){return Nr.every(t=>e.includes(t))}function ut(e,t){return e!=null&&typeof e!="string"?(_.error(`${t} must be defined as a string`),!1):!0}function Wr(e){return e&&typeof e=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(e)?(_.error(`Site should be a valid Datadog site. ${Oe} ${Ve}/getting_started/site/.`),!1):!0}function Pe(e,t){return e!==void 0&&!Pn(e)?(_.error(`${t} Sample Rate should be a number between 0 and 100`),!1):!0}function qr(e){var t,n,r,o,s,i;if(!e||!e.clientToken){_.error("Client Token is not configured, we will not send any data.");return}if(!(!Wr(e.site)||!Pe(e.sessionSampleRate,"Session")||!Pe(e.telemetrySampleRate,"Telemetry")||!Pe(e.telemetryConfigurationSampleRate,"Telemetry Configuration")||!Pe(e.telemetryUsageSampleRate,"Telemetry Usage")||!ut(e.version,"Version")||!ut(e.env,"Env")||!ut(e.service,"Service"))){if(e.trackingConsent!==void 0&&!xt(ct,e.trackingConsent)){_.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:e.beforeSend&&vt(e.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:Cr(e),sessionSampleRate:(t=e.sessionSampleRate)!==null&&t!==void 0?t:100,telemetrySampleRate:(n=e.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=e.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(o=e.telemetryUsageSampleRate)!==null&&o!==void 0?o:5,service:e.service||void 0,silentMultipleInit:!!e.silentMultipleInit,allowUntrustedEvents:!!e.allowUntrustedEvents,trackingConsent:(s=e.trackingConsent)!==null&&s!==void 0?s:ct.GRANTED,trackAnonymousUser:(i=e.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!e.storeContextsAcrossPages,batchBytesLimit:16*x,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*de,batchMessagesLimit:50,messageBytesLimit:256*x,...Hr(e)}}}function Yr(e){return{session_sample_rate:e.sessionSampleRate,telemetry_sample_rate:e.telemetrySampleRate,telemetry_configuration_sample_rate:e.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:e.telemetryUsageSampleRate,use_before_send:!!e.beforeSend,use_partitioned_cross_site_session_cookie:e.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:e.useSecureSessionCookie,use_proxy:!!e.proxy,silent_multiple_init:e.silentMultipleInit,track_session_across_subdomains:e.trackSessionAcrossSubdomains,track_anonymous_user:e.trackAnonymousUser,session_persistence:e.sessionPersistence,allow_fallback_to_local_storage:!!e.allowFallbackToLocalStorage,store_contexts_across_pages:!!e.storeContextsAcrossPages,allow_untrusted_events:!!e.allowUntrustedEvents,tracking_consent:e.trackingConsent}}var lt;(function(e){e.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",e.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(lt||(lt={}));const Vt=new Set;function Vr(e){Array.isArray(e)&&Xr(e.filter(t=>xt(lt,t)))}function Xr(e){e.forEach(t=>{Vt.add(t)})}function Zr(){return Vt}const ye="?";function L(e){const t=[];let n=dt(e,"stack");const r=String(e);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`\n`).forEach(o=>{const s=to(o)||ro(o)||so(o)||ao(o);s&&(!s.func&&s.line&&(s.func=ye),t.push(s))}),{message:dt(e,"message"),name:dt(e,"name"),stack:t}}const Xt="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",re="(?::(\\\\d+))",Qr=new RegExp(`^\\\\s*at (.*?) ?\\\\(${Xt}${re}?${re}?\\\\)?\\\\s*$`,"i"),eo=new RegExp(`\\\\((\\\\S*)${re}${re}\\\\)`);function to(e){const t=Qr.exec(e);if(!t)return;const n=t[2]&&t[2].indexOf("native")===0,r=t[2]&&t[2].indexOf("eval")===0,o=eo.exec(t[2]);return r&&o&&(t[2]=o[1],t[3]=o[2],t[4]=o[3]),{args:n?[t[2]]:[],column:t[4]?+t[4]:void 0,func:t[1]||ye,line:t[3]?+t[3]:void 0,url:n?void 0:t[2]}}const no=new RegExp(`^\\\\s*at ?${Xt}${re}?${re}??\\\\s*$`,"i");function ro(e){const t=no.exec(e);if(t)return{args:[],column:t[3]?+t[3]:void 0,func:ye,line:t[2]?+t[2]:void 0,url:t[1]}}const oo=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function so(e){const t=oo.exec(e);if(t)return{args:[],column:t[4]?+t[4]:void 0,func:t[1]||ye,line:+t[3],url:t[2]}}const io=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,co=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function ao(e){const t=io.exec(e);if(!t)return;const n=t[3]&&t[3].indexOf(" > eval")>-1,r=co.exec(t[3]);return n&&r&&(t[3]=r[1],t[4]=r[2],t[5]=void 0),{args:t[2]?t[2].split(","):[],column:t[5]?+t[5]:void 0,func:t[1]||ye,line:t[4]?+t[4]:void 0,url:t[3]}}function dt(e,t){if(typeof e!="object"||!e||!(t in e))return;const n=e[t];return typeof n=="string"?n:void 0}function uo(e,t,n,r){const o=[{url:t,column:r,line:n}],{name:s,message:i}=fo(e);return{name:s,message:i,stack:o}}const lo=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function fo(e){let t,n;return{}.toString.call(e)==="[object String]"&&([,t,n]=lo.exec(e)),{name:t,message:n}}function Ue(e){const n=new Error(e);n.name="HandlingStack";let r;return ge(()=>{const o=L(n);o.stack=o.stack.slice(2),r=Y(o)}),r}function Y(e){let t=Zt(e);return e.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,o=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",s=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";t+=`\n at ${r}${o} @ ${n.url}${s}${i}`}),t}function Zt(e){return`${e.name||"Error"}: ${e.message}`}function V(e,t,n,{computeHandlingStack:r}={}){let o=e[t];if(typeof o!="function")if(t in e&&t.startsWith("on"))o=U;else return{stop:U};let s=!1;const i=function(){if(s)return o.apply(this,arguments);const c=Array.from(arguments);let a;ge(n,null,[{target:this,parameters:c,onPostCall:u=>{a=u},handlingStack:r?Ue("instrumented method"):void 0}]);const l=o.apply(this,c);return a&&ge(a,null,[l]),l};return e[t]=i,{stop:()=>{s=!0,e[t]===i&&(e[t]=o)}}}const po=220*x,go="$",ho=3;function D(e,t=po){const n=te(Object.prototype),r=te(Array.prototype),o=[],s=new WeakMap,i=ft(e,go,void 0,o,s),c=JSON.stringify(i);let a=c?c.length:0;if(a>t){gt(t,"discarded",e);return}for(;o.length>0&&a<t;){const l=o.shift();let u=0;if(Array.isArray(l.source))for(let d=0;d<l.source.length;d++){const f=ft(l.source[d],l.path,d,o,s);if(f!==void 0?a+=JSON.stringify(f).length:a+=4,a+=u,u=1,a>t){gt(t,"truncated",e);break}l.target[d]=f}else for(const d in l.source)if(Object.prototype.hasOwnProperty.call(l.source,d)){const f=ft(l.source[d],l.path,d,o,s);if(f!==void 0&&(a+=JSON.stringify(f).length+u+d.length+ho,u=1),a>t){gt(t,"truncated",e);break}l.target[d]=f}}return n(),r(),i}function ft(e,t,n,r,o){const s=So(e);if(!s||typeof s!="object")return mo(s);const i=pt(s);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const c=e;if(o.has(c))return`[Reference seen at ${o.get(c)}]`;const a=n!==void 0?`${t}.${n}`:t,l=Array.isArray(s)?[]:{};return o.set(c,a),r.push({source:s,target:l,path:a}),l}function mo(e){return typeof e=="bigint"?`[BigInt] ${e.toString()}`:typeof e=="function"?`[Function] ${e.name||"unknown"}`:typeof e=="symbol"?`[Symbol] ${e.description||e.toString()}`:e}function pt(e){try{if(e instanceof Event)return bo(e);if(e instanceof RegExp)return`[RegExp] ${e.toString()}`;const n=Object.prototype.toString.call(e).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function bo(e){return{type:e.type,isTrusted:e.isTrusted,currentTarget:e.currentTarget?pt(e.currentTarget):null,target:e.target?pt(e.target):null}}function So(e){const t=e;if(t&&typeof t.toJSON=="function")try{return t.toJSON()}catch{}return e}function gt(e,t,n){_.warn(`The data provided has been ${t} as it is over the limit of ${e} characters:`,n)}const Qt="No stack, consider using an instance of Error";function en({stackTrace:e,originalError:t,handlingStack:n,componentStack:r,startClocks:o,nonErrorPrefix:s,source:i,handling:c}){const a=B(t),l=yo(e,a,s,t),u=Eo(a,e)?Y(e):Qt,d=a?rn(t,i):void 0,f=e?e.name:void 0,g=tn(t),p=nn(t);return{startClocks:o,source:i,handling:c,handlingStack:n,componentStack:r,originalError:t,type:f,message:l,stack:u,causes:d,fingerprint:g,context:p}}function yo(e,t,n,r){return e!=null&&e.message&&(e!=null&&e.name)?e.message:t?"Empty message":`${n} ${q(D(r))}`}function Eo(e,t){return t===void 0?!1:e?!0:t.stack.length>0&&(t.stack.length>1||t.stack[0].url!==void 0)}function tn(e){return B(e)&&"dd_fingerprint"in e?String(e.dd_fingerprint):void 0}function nn(e){if(e!==null&&typeof e=="object"&&"dd_context"in e)return e.dd_context}function To(e){var t;return(t=/@ (.+)/.exec(e))===null||t===void 0?void 0:t[1]}function B(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}function rn(e,t){let n=e;const r=[];for(;B(n==null?void 0:n.cause)&&r.length<10;){const o=L(n.cause);r.push({message:n.cause.message,source:t,type:o==null?void 0:o.name,stack:Y(o)}),n=n.cause}return r.length?r:void 0}const A={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function _o(e){const t=(o,s)=>{const i=en({stackTrace:o,originalError:s,startClocks:$(),nonErrorPrefix:"Uncaught",source:A.SOURCE,handling:"unhandled"});e.notify(i)},{stop:n}=wo(t),{stop:r}=Oo(t);return{stop:()=>{n(),r()}}}function wo(e){return V(window,"onerror",({parameters:[t,n,r,o,s]})=>{let i;B(s)?i=L(s):i=uo(t,n,r,o),e(i,s??t)})}function Oo(e){return V(window,"onunhandledrejection",({parameters:[t]})=>{const n=t.reason||"Empty reason",r=L(n);e(r,n)})}function Ro(e){const t={version:"6.5.0",onReady(n){n()},...e};return Object.defineProperty(t,"_setDebug",{get(){return Wn},enumerable:!1}),t}function Co(e,t,n){const r=e[t];r&&!r.q&&r.version&&_.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),e[t]=n,r&&r.q&&r.q.forEach(o=>vt(o,"onReady callback threw an error:")())}function on(e,t){t.silentMultipleInit||_.error(`${e} is already initialized.`)}function X(e,t,n,r,o){return ht(e,t,[n],r,o)}function ht(e,t,n,r,{once:o,capture:s,passive:i}={}){const c=S(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!e.allowUntrustedEvents||(o&&d(),r(f))}),a=i?{capture:s,passive:i}:s,l=window.EventTarget&&t instanceof EventTarget?window.EventTarget.prototype:t,u=Q(l,"addEventListener");n.forEach(f=>u.call(t,f,c,a));function d(){const f=Q(l,"removeEventListener");n.forEach(g=>f.call(t,g,c,a))}return{stop:d}}const Fe={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function vo(e,t){const n=[];t.includes(Fe.cspViolation)&&n.push(Io(e));const r=t.filter(o=>o!==Fe.cspViolation);return r.length&&n.push(Ao(r)),Nt(...n)}function Ao(e){return new w(t=>{if(!window.ReportingObserver)return;const n=S((o,s)=>o.forEach(i=>t.notify(ko(i)))),r=new window.ReportingObserver(n,{types:e,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function Io(e){return new w(t=>{const{stop:n}=X(e,document,"securitypolicyviolation",r=>{t.notify(xo(r))});return n})}function ko(e){const{type:t,body:n}=e;return sn({type:n.id,message:`${t}: ${n.message}`,originalError:e,stack:cn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function xo(e){const t=`\'${e.blockedURI}\' blocked by \'${e.effectiveDirective}\' directive`;return sn({type:e.effectiveDirective,message:`${Fe.cspViolation}: ${t}`,originalError:e,csp:{disposition:e.disposition},stack:cn(e.effectiveDirective,e.originalPolicy?`${t} of the policy "${Zn(e.originalPolicy,100,"...")}"`:"no policy",e.sourceFile,e.lineNumber,e.columnNumber)})}function sn(e){return{startClocks:$(),source:A.REPORT,handling:"unhandled",...e}}function cn(e,t,n,r,o){return n?Y({name:e,message:t,stack:[{func:"?",url:n,line:r??void 0,column:o??void 0}]}):void 0}function an(e,t){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:e,payload:t})}function un(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Be(e,t,n=Lo()){if(t===void 0)return e;if(typeof t!="object"||t===null)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const o=t.flags||[t.global?"g":"",t.ignoreCase?"i":"",t.multiline?"m":"",t.sticky?"y":"",t.unicode?"u":""].join("");return new RegExp(t.source,o)}if(n.hasAlreadyBeenSeen(t))return;if(Array.isArray(t)){const o=Array.isArray(e)?e:[];for(let s=0;s<t.length;++s)o[s]=Be(o[s],t[s],n);return o}const r=un(e)==="object"?e:{};for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=Be(r[o],t[o],n));return r}function ln(e){return Be(void 0,e)}function oe(...e){let t;for(const n of e)n!=null&&(t=Be(t,n));return t}function Lo(){if(typeof WeakSet<"u"){const t=new WeakSet;return{hasAlreadyBeenSeen(n){const r=t.has(n);return r||t.add(n),r}}}const e=[];return{hasAlreadyBeenSeen(t){const n=e.indexOf(t)>=0;return n||e.push(t),n}}}function Do(){var e;const t=window.navigator;return{status:t.onLine?"connected":"not_connected",interfaces:t.connection&&t.connection.type?[t.connection.type]:void 0,effective_type:(e=t.connection)===null||e===void 0?void 0:e.effectiveType}}function Mo(e){const t=new Set;return e.forEach(n=>t.add(n)),Array.from(t)}function dn(e,t){const n=e.indexOf(t);n>=0&&e.splice(n,1)}const No=500;function fn(){const e=[];return{add:o=>{e.push(o)>No&&e.splice(0,1)},remove:o=>{dn(e,o)},drain:o=>{e.forEach(s=>s(o)),e.length=0}}}const Z={log:"log",configuration:"configuration",usage:"usage"},$o=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Po=[Dr];let pn=fn(),se=e=>{pn.add(()=>se(e))};function Uo(e,t){let n;const r=new w,o=new Set,s=!Po.includes(t.site)&&Re(t.telemetrySampleRate),i={[Z.log]:s,[Z.configuration]:s&&Re(t.telemetryConfigurationSampleRate),[Z.usage]:s&&Re(t.telemetryUsageSampleRate)},c=Fo();se=l=>{const u=q(l);if(i[l.type]&&o.size<t.maxTelemetryEventsPerPage&&!o.has(u)){const d=a(e,l,c);r.notify(d),an("telemetry",d),o.add(u)}},Kn(hn);function a(l,u,d){return oe({type:"telemetry",date:N(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:oe(u,{runtime_env:d,connectivity:Do(),sdk_setup:"npm"}),experimental_features:Array.from(Zr())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:r,enabled:s}}function Fo(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Bo(){pn.drain()}function Go(e){return e.site===xr}function gn(e,t){Qe(T.debug,e,t),se({type:Z.log,message:e,status:"debug",...t})}function hn(e,t){se({type:Z.log,status:"error",...zo(e),...t})}function jo(e){se({type:Z.configuration,configuration:e})}function Ho(e){se({type:Z.usage,usage:e})}function zo(e){if(B(e)){const t=L(e);return{error:{kind:t.name,stack:Y(Jo(t))},message:t.message}}return{error:{stack:Qt},message:`Uncaught ${q(e)}`}}function Jo(e){return e.stack=e.stack.filter(t=>!t.url||$o.some(n=>t.url.startsWith(n))),e}const Ee=1/0,Ko=z;let Te=null;const Ge=new Set;function Wo(){Ge.forEach(e=>e())}function qo({expireDelay:e,maxEntries:t}){let n=[];const r=[];Te||(Te=et(()=>Wo(),Ko));const o=()=>{const g=Ce()-e;for(;n.length>0&&n[n.length-1].endTime<g;){const p=n.pop();p&&r.push(p.startTime)}};Ge.add(o);function s(g,p){const y={value:g,startTime:p,endTime:Ee,remove:()=>{dn(n,y)},close:E=>{y.endTime=E}};return t&&n.length>=t&&n.pop(),n.unshift(y),y}function i(g=Ee,p={returnInactive:!1}){for(const y of n)if(y.startTime<=g){if(p.returnInactive||g<=y.endTime)return y.value;break}}function c(g){const p=n[0];p&&p.endTime===Ee&&p.close(g)}function a(g=Ee,p=0){const y=jn(g,p);return n.filter(E=>E.startTime<=y&&g<=E.endTime).map(E=>E.value)}function l(){return n.map(({startTime:g,endTime:p,value:y})=>({startTime:g,endTime:p===Ee?"Infinity":p,value:y}))}function u(){return r}function d(){n=[]}function f(){Ge.delete(o),Ge.size===0&&Te&&(Mt(Te),Te=null)}return{add:s,find:i,closeActive:c,findAll:a,reset:d,stop:f,getAllEntries:l,getDeletedEntries:u}}const Yo=z,Vo=ot;function Xo(e,t,n,r){const o=new w,s=new w,i=vr(e.sessionStoreStrategyType,e,t,n),c=qo({expireDelay:Vo});i.renewObservable.subscribe(()=>{c.add(a(),Ce()),o.notify()}),i.expireObservable.subscribe(()=>{s.notify(),c.closeActive(Ce())}),i.expandOrRenewSession(),c.add(a(),Bn().relative),r.observable.subscribe(()=>{r.isGranted()?i.expandOrRenewSession():i.expire()}),Zo(e,()=>{r.isGranted()&&i.expandOrRenewSession()}),Qo(e,()=>i.expandSession()),es(e,()=>i.restartSession());function a(){return{id:i.getSession().id,trackingType:i.getSession()[t],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(l,u)=>c.find(l,u),renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function Zo(e,t){ht(e,window,["click","touchstart","keydown","scroll"],t,{capture:!0,passive:!0})}function Qo(e,t){const n=()=>{document.visibilityState==="visible"&&t()};X(e,document,"visibilitychange",n),et(n,Yo)}function es(e,t){X(e,window,"resume",t,{capture:!0})}function mn(e){return e>=500}function ts(e){try{return e.clone()}catch{return}}const ns=80*x,rs=32,bn=3*kt,os=z,Sn=de;function yn(e,t,n,r,o){t.transportStatus===0&&t.queuedPayloads.size()===0&&t.bandwidthMonitor.canHandle(e)?Tn(e,t,n,{onSuccess:()=>_n(0,t,n,r,o),onFailure:()=>{t.queuedPayloads.enqueue(e),En(t,n,r,o)}}):t.queuedPayloads.enqueue(e)}function En(e,t,n,r){e.transportStatus===2&&he(()=>{const o=e.queuedPayloads.first();Tn(o,e,t,{onSuccess:()=>{e.queuedPayloads.dequeue(),e.currentBackoffTime=Sn,_n(1,e,t,n,r)},onFailure:()=>{e.currentBackoffTime=Math.min(os,e.currentBackoffTime*2),En(e,t,n,r)}})},e.currentBackoffTime)}function Tn(e,t,n,{onSuccess:r,onFailure:o}){t.bandwidthMonitor.add(e),n(e,s=>{t.bandwidthMonitor.remove(e),ss(s)?(t.transportStatus=t.bandwidthMonitor.ongoingRequestCount>0?1:2,e.retry={count:e.retry?e.retry.count+1:1,lastFailureStatus:s.status},o()):(t.transportStatus=0,r())})}function _n(e,t,n,r,o){e===0&&t.queuedPayloads.isFull()&&!t.queueFullReported&&(o({message:`Reached max ${r} events size queued for upload: ${bn/kt}MiB`,source:A.AGENT,startClocks:$()}),t.queueFullReported=!0);const s=t.queuedPayloads;for(t.queuedPayloads=wn();s.size()>0;)yn(s.dequeue(),t,n,r,o)}function ss(e){return e.type!=="opaque"&&(e.status===0&&!navigator.onLine||e.status===408||e.status===429||mn(e.status))}function is(){return{transportStatus:0,currentBackoffTime:Sn,bandwidthMonitor:cs(),queuedPayloads:wn(),queueFullReported:!1}}function wn(){const e=[];return{bytesCount:0,enqueue(t){this.isFull()||(e.push(t),this.bytesCount+=t.bytesCount)},first(){return e[0]},dequeue(){const t=e.shift();return t&&(this.bytesCount-=t.bytesCount),t},size(){return e.length},isFull(){return this.bytesCount>=bn}}}function cs(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(e){return this.ongoingRequestCount===0||this.ongoingByteCount+e.bytesCount<=ns&&this.ongoingRequestCount<rs},add(e){this.ongoingRequestCount+=1,this.ongoingByteCount+=e.bytesCount},remove(e){this.ongoingRequestCount-=1,this.ongoingByteCount-=e.bytesCount}}}function as(e,t,n){const r=is(),o=(s,i)=>ds(e,t,s,i);return{send:s=>{yn(s,r,o,e.trackType,n)},sendOnExit:s=>{us(e,t,s)}}}function us(e,t,n){if(!!navigator.sendBeacon&&n.bytesCount<t)try{const s=e.build("beacon",n);if(navigator.sendBeacon(s,n.data))return}catch(s){ls(s)}const o=e.build("xhr",n);mt(o,n.data)}let On=!1;function ls(e){On||(On=!0,hn(e))}function ds(e,t,n,r){if(fs()&&n.bytesCount<t){const s=e.build("fetch",n);fetch(s,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(S(i=>r==null?void 0:r({status:i.status,type:i.type})),S(()=>{const i=e.build("xhr",n);mt(i,n.data,r)}))}else{const s=e.build("xhr",n);mt(s,n.data,r)}}function fs(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function mt(e,t,n){const r=new XMLHttpRequest;r.open("POST",e,!0),t instanceof Blob&&r.setRequestHeader("Content-Type",t.type),X({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(t)}function bt(){const e=ps();if(e)return{getCapabilities(){var t;return JSON.parse(((t=e.getCapabilities)===null||t===void 0?void 0:t.call(e))||"[]")},getPrivacyLevel(){var t;return(t=e.getPrivacyLevel)===null||t===void 0?void 0:t.call(e)},getAllowedWebViewHosts(){return JSON.parse(e.getAllowedWebViewHosts())},send(t,n,r){const o=r?{id:r}:void 0;e.send(JSON.stringify({eventType:t,event:n,view:o}))}}}function je(e){var t;e===void 0&&(e=(t=P().location)===null||t===void 0?void 0:t.hostname);const n=bt();return!!n&&n.getAllowedWebViewHosts().some(r=>e===r||e.endsWith(`.${r}`))}function ps(){return P().DatadogEventBridge}const He={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function gs(e){return new w(t=>{const{stop:n}=ht(e,window,["visibilitychange","freeze"],o=>{o.type==="visibilitychange"&&document.visibilityState==="hidden"?t.notify({reason:He.HIDDEN}):o.type==="freeze"&&t.notify({reason:He.FROZEN})},{capture:!0}),r=X(e,window,"beforeunload",()=>{t.notify({reason:He.UNLOADING})}).stop;return()=>{n(),r()}})}function hs(e){return ke(He).includes(e)}function ms({encoder:e,request:t,flushController:n,messageBytesLimit:r}){let o={};const s=n.flushObservable.subscribe(d=>u(d));function i(d,f,g){n.notifyBeforeAddMessage(f),g!==void 0?(o[g]=d,n.notifyAfterAddMessage()):e.write(e.isEmpty?d:`\n${d}`,p=>{n.notifyAfterAddMessage(p-f)})}function c(d){return d!==void 0&&o[d]!==void 0}function a(d){const f=o[d];delete o[d];const g=e.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(g)}function l(d,f){const g=q(d),p=e.estimateEncodedBytesCount(g);if(p>=r){_.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${Oe} ${Ct}/#technical-limitations`);return}c(f)&&a(f),i(g,p,f)}function u(d){const f=ke(o).join(`\n`);o={};const g=hs(d.reason),p=g?t.sendOnExit:t.send;if(g&&e.isAsync){const y=e.finishSync();y.outputBytesCount&&p(Rn(y));const E=[y.pendingData,f].filter(Boolean).join(`\n`);E&&p({data:E,bytesCount:Ze(E)})}else f&&e.write(e.isEmpty?f:`\n${f}`),e.finish(y=>{p(Rn(y))})}return{flushController:n,add:l,upsert:l,stop:s.unsubscribe}}function Rn(e){let t;return typeof e.output=="string"?t=e.output:t=new Blob([e.output],{type:"text/plain"}),{data:t,bytesCount:e.outputBytesCount,encoding:e.encoding}}function bs({messagesLimit:e,bytesLimit:t,durationLimit:n,pageExitObservable:r,sessionExpireObservable:o}){const s=r.subscribe(p=>u(p.reason)),i=o.subscribe(()=>u("session_expire")),c=new w(()=>()=>{s.unsubscribe(),i.unsubscribe()});let a=0,l=0;function u(p){if(l===0)return;const y=l,E=a;l=0,a=0,g(),c.notify({reason:p,messagesCount:y,bytesCount:E})}let d;function f(){d===void 0&&(d=he(()=>{u("duration_limit")},n))}function g(){Dt(d),d=void 0}return{flushObservable:c,get messagesCount(){return l},notifyBeforeAddMessage(p){a+p>=t&&u("bytes_limit"),l+=1,a+=p,f()},notifyAfterAddMessage(p=0){a+=p,l>=e?u("messages_limit"):a>=t&&u("bytes_limit")},notifyAfterRemoveMessage(p){a-=p,l-=1,l===0&&g()}}}function Cn(e,t,n,r,o,s,i=ms){const c=l(e,t),a=n&&l(e,n);function l(u,{endpoint:d,encoder:f}){return i({encoder:f,request:as(d,u.batchBytesLimit,r),flushController:bs({messagesLimit:u.batchMessagesLimit,bytesLimit:u.batchBytesLimit,durationLimit:u.flushTimeout,pageExitObservable:o,sessionExpireObservable:s}),messageBytesLimit:u.messageBytesLimit})}return{flushObservable:c.flushController.flushObservable,add(u,d=!0){c.add(u),a&&d&&a.add(n.transformMessage?n.transformMessage(u):u)},upsert:(u,d)=>{c.upsert(u,d),a&&a.upsert(n.transformMessage?n.transformMessage(u):u,d)},stop:()=>{c.stop(),a&&a.stop()}}}function ze(){let e="",t=0;return{isAsync:!1,get isEmpty(){return!e},write(n,r){const o=Ze(n);t+=o,e+=n,r&&r(o)},finish(n){n(this.finishSync())},finishSync(){const n={output:e,outputBytesCount:t,rawBytesCount:t,pendingData:""};return e="",t=0,n},estimateEncodedBytesCount(n){return n.length}}}class Ss{constructor(){this.callbacks={}}notify(t,n){const r=this.callbacks[t];r&&r.forEach(o=>o(n))}subscribe(t,n){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(n),{unsubscribe:()=>{this.callbacks[t]=this.callbacks[t].filter(r=>n!==r)}}}}function ys(e,t,n){let r=0,o=!1;return{isLimitReached(){if(r===0&&he(()=>{r=0},z),r+=1,r<=t||o)return o=!1,!1;if(r===t+1){o=!0;try{n({message:`Reached max number of ${e}s by minute: ${t}`,source:A.AGENT,startClocks:$()})}finally{o=!1}}return!0}}}let St;const yt=new WeakMap;function Es(e){return St||(St=Ts(e)),St}function Ts(e){return new w(t=>{const{stop:n}=V(XMLHttpRequest.prototype,"open",_s),{stop:r}=V(XMLHttpRequest.prototype,"send",s=>{ws(s,e,t)},{computeHandlingStack:!0}),{stop:o}=V(XMLHttpRequest.prototype,"abort",Os);return()=>{n(),r(),o()}})}function _s({target:e,parameters:[t,n]}){yt.set(e,{state:"open",method:String(t).toUpperCase(),url:at(String(n))})}function ws({target:e,handlingStack:t},n,r){const o=yt.get(e);if(!o)return;const s=o;s.state="start",s.startClocks=$(),s.isAborted=!1,s.xhr=e,s.handlingStack=t;let i=!1;const{stop:c}=V(e,"onreadystatechange",()=>{e.readyState===XMLHttpRequest.DONE&&a()}),a=()=>{if(l(),c(),i)return;i=!0;const u=o;u.state="complete",u.duration=Gn(s.startClocks.timeStamp,N()),u.status=e.status,r.notify(Jn(u))},{stop:l}=X(n,e,"loadend",a);r.notify(s)}function Os({target:e}){const t=yt.get(e);t&&(t.isAborted=!0)}let Et;function vn(){return Et||(Et=Rs()),Et}function Rs(){return new w(e=>{if(!window.fetch)return;const{stop:t}=V(window,"fetch",n=>Cs(n,e),{computeHandlingStack:!0});return t})}function Cs({parameters:e,onPostCall:t,handlingStack:n},r){const[o,s]=e;let i=s&&s.method;i===void 0&&o instanceof Request&&(i=o.method);const c=i!==void 0?String(i).toUpperCase():"GET",a=o instanceof Request?o.url:at(String(o)),l=$(),u={state:"start",init:s,input:o,method:c,startClocks:l,url:a,handlingStack:n};r.notify(u),e[0]=u.input,e[1]=u.init,t(d=>vs(r,d,u))}function vs(e,t,n){const r=n;function o(s){r.state="resolve",Object.assign(r,s),e.notify(r)}t.then(S(s=>{o({response:s,responseType:s.type,status:s.status,isAborted:!1})}),S(s=>{var i,c;o({status:0,isAborted:((c=(i=r.init)===null||i===void 0?void 0:i.signal)===null||c===void 0?void 0:c.aborted)||s instanceof DOMException&&s.code===DOMException.ABORT_ERR,error:s})}))}let Tt={};function As(e){const t=e.map(n=>(Tt[n]||(Tt[n]=Is(n)),Tt[n]));return Nt(...t)}function Is(e){return new w(t=>{const n=k[e];return k[e]=(...r)=>{n.apply(console,r);const o=Ue("console error");ge(()=>{t.notify(ks(r,e,o))})},()=>{k[e]=n}})}function ks(e,t,n){const r=e.map(s=>xs(s)).join(" ");let o;if(t===T.error){const s=e.find(B);o={stack:s?Y(L(s)):void 0,fingerprint:tn(s),causes:s?rn(s,"console"):void 0,startClocks:$(),message:r,source:A.CONSOLE,handling:"handled",handlingStack:n,context:nn(s)}}return{api:t,message:r,error:o,handlingStack:n}}function xs(e){return typeof e=="string"?D(e):B(e)?Zt(L(e)):q(D(e),void 0,2)}function Ls(e){const t=un(e)==="object";return t||_.error("Unsupported context:",e),t}function _t(e,t,n){const r={...e};for(const[o,{required:s,type:i}]of Object.entries(t))i==="string"&&o in r&&(r[o]=String(r[o])),s&&!(o in e)&&_.warn(`The property ${o} of ${n} is required; context will not be sent to the intake.`);return r}function Je(e="",{customerDataTracker:t,propertiesConfig:n={}}={}){let r={};const o=new w,s={getContext:()=>ln(r),setContext:i=>{Ls(i)?(r=D(_t(i,n,e)),t==null||t.updateCustomerData(r)):s.clearContext(),o.notify()},setContextProperty:(i,c)=>{r=D(_t({...r,[i]:c},n,e)),t==null||t.updateCustomerData(r),o.notify()},removeContextProperty:i=>{delete r[i],t==null||t.updateCustomerData(r),_t(r,n,e),o.notify()},clearContext:()=>{r={},t==null||t.resetCustomerData(),o.notify()},changeObservable:o};return s}const Ds="_dd_c",Ms=[];function wt(e,t,n,r){const o=Ns(n,r);Ms.push(X(e,window,"storage",({key:l})=>{o===l&&i()})),t.changeObservable.subscribe(c);const s=oe(a(),t.getContext());pe(s)||t.setContext(s);function i(){t.setContext(a())}function c(){localStorage.setItem(o,JSON.stringify(t.getContext()))}function a(){const l=localStorage.getItem(o);return l?JSON.parse(l):{}}}function Ns(e,t){return`${Ds}_${e}_${t}`}const $s=3*x,Ps=16*x,Us=200;function Fs(e=2){const t=new Map;let n=!1;function r(o=0){if(n||e===0)return;const s=e===2?$s:Ps;let i=o;t.forEach(c=>{i+=c.getBytesCount()}),i>s&&(Bs(s),n=!0)}return{createDetachedTracker:()=>{const o=An(()=>r(o.getBytesCount()));return o},getOrCreateTracker:o=>(t.has(o)||t.set(o,An(r)),t.get(o)),setCompressionStatus:o=>{e===0&&(e=o,r())},getCompressionStatus:()=>e,stop:()=>{t.forEach(o=>o.stop()),t.clear()}}}function An(e){let t=0;const{throttled:n,cancel:r}=$t(s=>{t=Ze(q(s)),e()},Us),o=()=>{r(),t=0};return{updateCustomerData:s=>{pe(s)?o():n(s)},resetCustomerData:o,getBytesCount:()=>t,stop:()=>{r()}}}function Bs(e){_.warn(`Customer data exceeds the recommended ${e/x}KiB threshold. ${Oe} ${Ct}/#customer-data-exceeds-the-recommended-threshold-warning`)}function Gs(e,t,n){const r=e.getReader(),o=[];let s=0;i();function i(){r.read().then(S(a=>{if(a.done){c();return}o.push(a.value),s+=a.value.length,s>n.bytesLimit?c():i()}),S(a=>t(a)))}function c(){r.cancel().catch(U);let a,l;{let u;if(o.length===1)u=o[0];else{u=new Uint8Array(s);let d=0;o.forEach(f=>{u.set(f,d),d+=f.length})}a=u.slice(0,n.bytesLimit),l=u.length>n.bytesLimit}t(void 0,a,l)}}const js="datadog-synthetics-public-id",Hs="datadog-synthetics-result-id",zs="datadog-synthetics-injects-rum";function In(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||J(zs))}function Js(){const e=window._DATADOG_SYNTHETICS_PUBLIC_ID||J(js);return typeof e=="string"?e:void 0}function Ks(){const e=window._DATADOG_SYNTHETICS_RESULT_ID||J(Hs);return typeof e=="string"?e:void 0}function Ke(e,t,n){const r=n.getHandler(),o=Array.isArray(r)?r:[r];return kn[e]>=kn[n.getLevel()]&&o.includes(t)}const m={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},kn={[m.ok]:0,[m.debug]:1,[m.info]:2,[m.notice]:4,[m.warn]:5,[m.error]:6,[m.critical]:7,[m.alert]:8,[m.emerg]:9};function We(e,{includeMessage:t=!1}={}){return{stack:e.stack,kind:e.type,message:t?e.message:void 0,causes:e.causes,fingerprint:e.fingerprint,handling:e.handling}}var Ws=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var c=e.length-1;c>=0;c--)(i=e[c])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};const _e={console:"console",http:"http",silent:"silent"},qs=Object.keys(m);let I=class{constructor(t,n,r,o=_e.http,s=m.debug,i={}){this.handleLogStrategy=t,this.handlerType=o,this.level=s,this.contextManager=Je("logger",{customerDataTracker:n}),this.contextManager.setContext(i),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(t,n,r=m.info,o,s){const i=D(n);let c;if(o!=null){const a=en({stackTrace:B(o)?L(o):void 0,originalError:o,nonErrorPrefix:"Provided",source:A.LOGGER,handling:"handled",startClocks:$()});c=oe({error:We(a,{includeMessage:!0})},i)}else c=i;this.handleLogStrategy({message:D(t),context:c,status:r},this,s)}log(t,n,r=m.info,o){let s;Ke(r,_e.http,this)&&(s=Ue("log")),this.logImplementation(t,n,r,o,s)}setContext(t){this.contextManager.setContext(t)}getContext(){return this.contextManager.getContext()}setContextProperty(t,n){this.contextManager.setContextProperty(t,n)}removeContextProperty(t){this.contextManager.removeContextProperty(t)}clearContext(){this.contextManager.clearContext()}setHandler(t){this.handlerType=t}getHandler(){return this.handlerType}setLevel(t){this.level=t}getLevel(){return this.level}};Ws([qn],I.prototype,"logImplementation",null),I.prototype.ok=M(m.ok),I.prototype.debug=M(m.debug),I.prototype.info=M(m.info),I.prototype.notice=M(m.notice),I.prototype.warn=M(m.warn),I.prototype.error=M(m.error),I.prototype.critical=M(m.critical),I.prototype.alert=M(m.alert),I.prototype.emerg=M(m.emerg);function M(e){return function(t,n,r){let o;Ke(e,_e.http,this)&&(o=Ue("log")),this.logImplementation(t,n,e,r,o)}}function Ys(e,t,n){return{view:{referrer:document.referrer,url:window.location.href},context:e.getContext(),user:t.getContext(),account:n.getContext()}}const Vs=32*x;function Xs(e){e.usePciIntake===!0&&e.site&&e.site!=="datadoghq.com"&&_.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const t=qr(e),n=xn(e.forwardConsoleLogs,ke(T),"Forward Console Logs"),r=xn(e.forwardReports,ke(Fe),"Forward Reports");if(!(!t||!n||!r))return e.forwardErrorsToLogs&&!n.includes(T.error)&&n.push(T.error),{forwardErrorsToLogs:e.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:Vs,...t}}function xn(e,t,n){if(e===void 0)return[];if(!(e==="all"||Array.isArray(e)&&e.every(r=>t.includes(r)))){_.error(`${n} should be "all" or an array with allowed values "${t.join(\'", "\')}"`);return}return e==="all"?t:Mo(e)}function Zs(e){const t=Yr(e);return{forward_errors_to_logs:e.forwardErrorsToLogs,forward_console_logs:e.forwardConsoleLogs,forward_reports:e.forwardReports,use_pci_intake:e.usePciIntake,...t}}function Qs(e,t,n){const r=fn();let o,s;const i=t.observable.subscribe(c);function c(){if(!s||!o||!t.isGranted())return;i.unsubscribe();const a=n(o,s);r.drain(a)}return{init(a){if(!a){_.error("Missing configuration");return}if(Vr(a.enableExperimentalFeatures),je()&&(a=ei(a)),o=a,s){on("DD_LOGS",a);return}const l=Xs(a);l&&(s=l,vn().subscribe(U),t.tryToInit(l.trackingConsent),c())},get initConfiguration(){return o},getInternalContext:U,handleLog(a,l,u,d=e(),f=N()){r.add(g=>g.handleLog(a,l,u,d,f))}}}function ei(e){return{...e,clientToken:"empty"}}const Ot="logs";function ti(e){const t=Fs(),n=Je("global context",{customerDataTracker:t.getOrCreateTracker(2)}),r=Je("user",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),o=Je("account",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),s=Ar();function i(){return Ys(n,r,o)}let c=Qs(i,s,(u,d)=>{u.storeContextsAcrossPages&&(wt(d,n,Ot,2),wt(d,r,Ot,1),wt(d,o,Ot,4));const f=e(u,d,i,s);return c=ni(u,f),f});const a={},l=new I((...u)=>c.handleLog(...u),t.createDetachedTracker());return Ro({logger:l,init:S(u=>c.init(u)),setTrackingConsent:S(u=>{s.update(u),Ho({feature:"set-tracking-consent",tracking_consent:u})}),getGlobalContext:S(()=>n.getContext()),setGlobalContext:S(u=>n.setContext(u)),setGlobalContextProperty:S((u,d)=>n.setContextProperty(u,d)),removeGlobalContextProperty:S(u=>n.removeContextProperty(u)),clearGlobalContext:S(()=>n.clearContext()),createLogger:S((u,d={})=>(a[u]=new I((...f)=>c.handleLog(...f),t.createDetachedTracker(),D(u),d.handler,d.level,D(d.context)),a[u])),getLogger:S(u=>a[u]),getInitConfiguration:S(()=>ln(c.initConfiguration)),getInternalContext:S(u=>c.getInternalContext(u)),setUser:S(r.setContext),getUser:S(r.getContext),setUserProperty:S(r.setContextProperty),removeUserProperty:S(r.removeContextProperty),clearUser:S(r.clearContext),setAccount:S(o.setContext),getAccount:S(o.getContext),setAccountProperty:S(o.setContextProperty),removeAccountProperty:S(o.removeContextProperty),clearAccount:S(o.clearContext)})}function ni(e,t){return{init:n=>{on("DD_LOGS",n)},initConfiguration:e,...t}}const ri="logs";function oi(e,t){const n=Xo(e,ri,r=>ii(e,r),t);return{findTrackedSession:(r,o={returnInactive:!1})=>{const s=n.findSession(r,o);return s&&s.trackingType==="1"?{id:s.id,anonymousId:s.anonymousId}:void 0},expireObservable:n.expireObservable}}function si(e){const n=Ln(e)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new w}}function Ln(e){return Re(e.sessionSampleRate)?"1":"0"}function ii(e,t){const n=ci(t)?t:Ln(e);return{trackingType:n,isTracked:n==="1"}}function ci(e){return e==="0"||e==="1"}let Dn=!1;function qe(e){const t=window;if(In()){const r=n(t.DD_RUM_SYNTHETICS);return!r&&!Dn&&(Dn=!0,gn("Logs sent before RUM is injected by the synthetics worker",{testId:Js(),resultId:Ks()})),r}return n(t.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(e)}}function ai(e,t,n,r,o){const s=qs.concat(["custom"]),i={};s.forEach(c=>{i[c]=ys(c,t.eventRateLimiterThreshold,o)}),n.subscribe(0,({rawLogsEvent:c,messageContext:a=void 0,savedCommonContext:l=void 0,domainContext:u})=>{var d,f;const g=Hn(c.date),p=e.findTrackedSession(g);if(!e.findTrackedSession(g,{returnInactive:!0}))return;const E=l||r();let we;!pe(E.account)&&E.account.id&&(we=E.account),p&&p.anonymousId&&!E.user.anonymous_id&&(E.user.anonymous_id=p.anonymousId);const j=oe({service:t.service,session_id:p?p.id:void 0,session:p?{id:p.id}:void 0,usr:pe(E.user)?void 0:E.user,account:we,view:E.view},E.context,qe(g),c,a);((d=t.beforeSend)===null||d===void 0?void 0:d.call(t,j,u))===!1||j.origin!==A.AGENT&&((f=i[j.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,j)})}const ui={[T.log]:m.info,[T.debug]:m.debug,[T.info]:m.info,[T.warn]:m.warn,[T.error]:m.error};function li(e,t){const n=As(e.forwardConsoleLogs).subscribe(r=>{var o;const s={rawLogsEvent:{date:N(),message:r.message,origin:A.CONSOLE,error:r.error&&We(r.error),status:ui[r.api]},messageContext:(o=r.error)===null||o===void 0?void 0:o.context,domainContext:{handlingStack:r.handlingStack}};t.notify(0,s)});return{stop:()=>{n.unsubscribe()}}}function di(e,t){const n=vo(e,e.forwardReports).subscribe(r=>{let o=r.message,s;const i=r.originalError.type==="deprecation"?m.warn:m.error;i===m.error?s=We(r):r.stack&&(o+=` Found in ${To(r.stack)}`),t.notify(0,{rawLogsEvent:{date:N(),message:o,origin:A.REPORT,error:s,status:i}})});return{stop:()=>{n.unsubscribe()}}}function fi(e,t){if(!e.forwardErrorsToLogs)return{stop:U};const n=Es(e).subscribe(s=>{s.state==="complete"&&o("xhr",s)}),r=vn().subscribe(s=>{s.state==="resolve"&&o("fetch",s)});function o(s,i){!Kr(i.url)&&(mi(i)||mn(i.status))&&("xhr"in i?pi(i.xhr,e,c):i.response?hi(i.response,e,c):i.error&&gi(i.error,e,c));function c(a){const l={isAborted:i.isAborted,handlingStack:i.handlingStack};t.notify(0,{rawLogsEvent:{message:`${bi(s)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:a||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:m.error,origin:A.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function pi(e,t,n){typeof e.response=="string"?n(Rt(e.response,t)):n(e.response)}function gi(e,t,n){n(Rt(Y(L(e)),t))}function hi(e,t,n){const r=ts(e);!r||!r.body?n():window.TextDecoder?Si(r.body,t.requestErrorResponseLengthLimit,(o,s)=>{n(o?`Unable to retrieve response: ${o}`:s)}):r.text().then(S(o=>n(Rt(o,t))),S(o=>n(`Unable to retrieve response: ${o}`)))}function mi(e){return e.status===0&&e.responseType!=="opaque"}function Rt(e,t){return e.length>t.requestErrorResponseLengthLimit?`${e.substring(0,t.requestErrorResponseLengthLimit)}...`:e}function bi(e){return e==="xhr"?"XHR":"Fetch"}function Si(e,t,n){Gs(e,(r,o,s)=>{if(r)n(r);else{let i=new TextDecoder().decode(o);s&&(i+="..."),n(void 0,i)}},{bytesLimit:t,collectStreamBody:!0})}function yi(e,t){if(!e.forwardErrorsToLogs)return{stop:U};const n=new w,{stop:r}=_o(n),o=n.subscribe(s=>{t.notify(0,{rawLogsEvent:{message:s.message,date:s.startClocks.timeStamp,error:We(s),origin:A.SOURCE,status:m.error},messageContext:s.context})});return{stop:()=>{r(),o.unsubscribe()}}}const Ei=Ss;function Ti(e){function t(n,r,o,s,i){const c=oe(r.getContext(),n.context);if(Ke(n.status,_e.console,r)&&wi(n,c),Ke(n.status,_e.http,r)){const a={rawLogsEvent:{date:i||N(),message:n.message,status:n.status,origin:A.LOGGER},messageContext:c,savedCommonContext:s};o&&(a.domainContext={handlingStack:o}),e.notify(0,a)}}return{handleLog:t}}const _i={[m.ok]:T.debug,[m.debug]:T.debug,[m.info]:T.info,[m.notice]:T.info,[m.warn]:T.warn,[m.error]:T.error,[m.critical]:T.error,[m.alert]:T.error,[m.emerg]:T.error};function wi({status:e,message:t},n){H[_i[e]].call(k,t,n)}function Oi(e,t,n,r,o){const s=Cn(e,{endpoint:e.logsEndpointBuilder,encoder:ze()},e.replica&&{endpoint:e.replica.logsEndpointBuilder,encoder:ze()},n,r,o.expireObservable);return t.subscribe(1,i=>{s.add(i)}),s}function Ri(e){const t=bt();e.subscribe(1,n=>{t.send("log",n)})}function Ci(e){return{get:t=>{const n=e.findTrackedSession(t);if(n)return{session_id:n.id}}}}function vi(e){return t=>{e.notify(0,{rawLogsEvent:{message:t.message,date:t.startClocks.timeStamp,origin:A.AGENT,status:m.error}}),gn("Error reported to customer",{"error.message":t.message})}}function Ai(e,t,n,r,o){const s=Uo("browser-logs-sdk",t);s.setContextProvider(()=>{var c,a,l,u,d,f;return{application:{id:(c=qe())===null||c===void 0?void 0:c.application_id},session:{id:(a=o.findTrackedSession())===null||a===void 0?void 0:a.id},view:{id:(u=(l=qe())===null||l===void 0?void 0:l.view)===null||u===void 0?void 0:u.id},action:{id:(f=(d=qe())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(je()){const c=bt(),a=s.observable.subscribe(l=>c.send("internal_telemetry",l));i.push(()=>a.unsubscribe())}else{const c=Cn(t,{endpoint:t.rumEndpointBuilder,encoder:ze()},t.replica&&{endpoint:t.replica.rumEndpointBuilder,encoder:ze()},n,r,o.expireObservable);i.push(()=>c.stop());const a=s.observable.subscribe(l=>c.add(l,Go(t)));i.push(()=>a.unsubscribe())}return Bo(),jo(Zs(e)),{telemetry:s,stop:()=>{i.forEach(c=>c())}}}function Ii(e,t,n,r){const o=new Ei,s=[];o.subscribe(1,f=>an("logs",f));const i=vi(o),c=gs(t),a=t.sessionStoreStrategyType&&!je()&&!In()?oi(t,r):si(t),{stop:l}=Ai(e,t,i,c,a);s.push(()=>l()),fi(t,o),yi(t,o),li(t,o),di(t,o);const{handleLog:u}=Ti(o);if(ai(a,t,o,n,i),je())Ri(o);else{const{stop:f}=Oi(t,o,i,c,a);s.push(()=>f())}const d=Ci(a);return{handleLog:u,getInternalContext:d.get,stop:()=>{s.forEach(f=>f())}}}const ie=ti(Ii);Co(P(),"DD_LOGS",ie);const O=class O{constructor(t,n,r,o,s){this.copy=()=>new O(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let c=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return c+="."+(this.field?"1":"2"),c},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,O.toStr(i)},this.toFrames=i=>{let c=60,a=0;Math.floor(i)==60?(c=60,a=0):Math.floor(i)==59?(c=60,a=4):Math.floor(i)==30?(c=30,a=0):Math.floor(i)==29&&(c=30,a=2);let l=this.h,u=this.m,d=this.s,f=this.f,g=this.field;const p=l*60+u,E=(p-Math.floor(p/10))*a;return l*(c*3600)+u*(c*60)+d*c+(f*2+g)-E},this.addSeconds=i=>{let c=this.copy();return c.s+=i,c.s>=60&&(c.s=0,c.m++,c.m>=60&&(c.m=0,c.h++)),c},this.addFrames=(i,c)=>{let a=this.toFrames(c);return a+=i,O.fromFrames(a,c)},this.subtractFrames=(i,c)=>this.addFrames(-i,c),this.h=t||0,this.m=n||0,this.s=r||0,this.f=o||0,this.field=s||0}static compare(t,n){return t.h!==n.h?t.h<n.h?-1:1:t.m!==n.m?t.m<n.m?-1:1:t.s!==n.s?t.s<n.s?-1:1:t.f!==n.f?t.f<n.f?-1:1:t.field!==n.field?t.field<n.field?-1:1:0}static generateTimecodeRange(t,n,r){const o=[];let s=t;for(;O.compare(s,n)<=0;)o.push(s),s=s.addSeconds(r);return o}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(t){return this.toFrames(t)*1e3/t}};O.calculateCurrentTimeCode=t=>{var d;if(!t.video||!t.clocker||!t.gameParams)throw new Error("OTTPlayer is not initialized");const n=t.video,r=t.clocker,o=r.videoFPScalculator.getFPS(),c=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*o+r.syncPoint.frame;if(c===0||o===0)throw new Error("Current frame is 0 or fps is 0");const a=O.calculateCurrentOffset(c,(d=t.gameParams)==null?void 0:d.offsets);if(a===void 0)throw new Error("Offset is undefined");let l=Math.floor(c-a);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),O.fromFrames(l,o)},O.calculateCurrentOffset=(t,n)=>{for(let r=1;r<n.length;r++)if(t<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},O.fromFrames=(t,n)=>{let r=60,o=0;Math.floor(n)==60?(r=60,o=0):Math.floor(n)==59?(r=60,o=4):Math.floor(n)==30?(r=30,o=0):Math.floor(n)==29&&(r=30,o=2);let s=Math.floor(n*60),i=Math.floor(n*60*10),c=i*6,a=t,l=Math.floor(a/c);a-=l*c;let u=Math.floor(a/i);a-=u*i,a>=r*60&&(a+=o*(Math.floor((a-r*60)/s)+1));let d=Math.floor(a/(r*60));a-=d*(r*60);let f=Math.floor(a/r);a-=f*r;let g=a;d+=u*10;let p=0;return p=g%2,g=Math.floor(g/2),new O(l,d,f,g,p)},O.toStr=t=>{const n="_";let r=("0"+t.h).slice(-2)+n+("0"+t.m).slice(-2)+n+("0"+t.s).slice(-2)+n+("0"+t.f).slice(-2);return t.field&&(r+="_1"),r},O.fromStr=t=>{const r=t.split("_").map(Number);if(r.length==4){const[o,s,i,c]=r;return new O(o,s,i,c,0)}else if(r.length==5){const[o,s,i,c,a]=r;return new O(o,s,i,c,a)}else throw new Error("Invalid timecode format: "+t)},O.fromMetadata=t=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,r=t.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+t.timecode);const[,o,s,i,c,a]=r,l=Number(o),u=Number(s),d=Number(i),f=Number(c),g=a?Number(a):0;return new O(l,u,d,f,g)};let G=O;const h=class h{constructor(t){this.isLoggingOn=t.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&ie.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),h.tracking.mac=r,h.tracking.dev=`${t.platform}_${t.browserName}`,h.beatHandle||(console.log("[Logger] Starting tracking beat"),h.beatHandle=window.setInterval(h.flushTracking,15e3))}static setMessagePort(t){this.messagePort=t}static getMessagePort(){return this.messagePort}setLoggingOn(t){this.isLoggingOn=t}setAttributes(t){h.processAttributes(t);for(const n in t)ie.logger.setContextProperty(n,t[n])}info(t,n){t==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),t==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),t==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),t==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&h.processAttributes(n),this.isLoggingOn&&(ie.logger.info(t,n),console.log("[Logger] Sending info: ",t))}error(t,n){n&&h.processAttributes(n),this.isLoggingOn&&(ie.logger.error(t,n),h.tracking.err_time=Date.now().toFixed(0),h.tracking.err_desc=t+(n?` - ${JSON.stringify(n)}`:""),console.log("[Logger] Sending error: ",t))}warn(t,n){n&&h.processAttributes(n),this.isLoggingOn&&(ie.logger.warn(t,n),console.log("[Logger] Sending warn: ",t))}handleMessageFromWorker(t){t.actionType==="INFO"?this.info(t.message,t.attributes):t.actionType==="ERROR"?this.error(t.message,t.attributes):t.actionType==="WARN"?this.warn(t.message,t.attributes):t.actionType==="SET_ATTRIBUTES"&&t.attributes&&this.setAttributes(t.attributes)}static setAttributes(t){h.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:t})}static info(t,n){h.messagePort.postMessage({type:"LOG",actionType:"INFO",message:t,attributes:n})}static error(t,n){h.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:t,attributes:n})}static warn(t,n){h.messagePort.postMessage({type:"LOG",actionType:"WARN",message:t,attributes:n})}static processAttributes(t){if(t.player_version&&(h.tracking.sdk=t.player_version),t.media_id&&(h.tracking.gid=t.media_id),t.game_id&&(h.tracking.buc=t.game_id),t.bb_session_id&&(h.tracking.sid=t.bb_session_id,console.log("[Logger] Setting bb_session_id:",h.tracking.sid)),t.last_timecode){const r=G.fromStr(t.last_timecode);h.tracking.tc=r.print(),h.lastTimecodeMillis=r.totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))}t.last_offset&&(h.tracking.off=t.last_offset),t.last_loading_zip&&(h.tracking.zip=t.last_loading_zip+".zip",h.lastZipMillis=G.fromStr(t.last_loading_zip).totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))),t.last_rendered_frame&&(h.tracking.aug_time=Date.now().toFixed(0)),t.asset&&(h.tracking.asset=t.asset)}static objectToQuery(t){return Object.entries(t).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(t,n){const r=new CustomEvent(t,{detail:n});this.eventTarget.dispatchEvent(r)}};h.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},h.lastTimecodeMillis=0,h.lastZipMillis=0,h.flushTracking=()=>{const t=Date.now().toFixed(0);h.tracking.now=t;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${h.objectToQuery(h.tracking)}`;console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),h.tracking.err_desc="",h.tracking.err_time=""};let R=h;class Mn{constructor(t,n,r){this.jobsQueue=[],this.processedTimecodes=[],this.downloaderStopped=!1,this.firstDownload=!0,this.updateStreamData=o=>{this.streamData=o,this.initiateJobs(this.options.DOWNLOADER_ZIP_START_OFFSET,this.options.DOWNLOADER_ZIP_END_OFFSET,this.options.DOWNLOADER_ZIP_LENGTH_SECONDS),this.clearOldJobs(1)},this.initiateJobs=(o,s,i)=>{if(!this.streamData){R.error("[Downloader] Stream data is not available"),this.options&&v(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}const c=G.fromStr(this.streamData.timeCode),a=c.addSeconds(o),l=c.addSeconds(s),u=G.generateTimecodeRange(a,l,i);for(const d of u){const f=d.toZipTimeCodeString();this.processedTimecodes.includes(f)||(this.processedTimecodes.push(f),this.addJob(f))}},this.clearOldJobs=o=>{if(!this.streamData){R.error("[Downloader] Stream data is not available"),this.options&&v(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}const i=G.fromStr(this.streamData.timeCode).totalSeconds()-o;this.processedTimecodes=this.processedTimecodes.filter(c=>G.fromStr(c).totalSeconds()>i)},this.clearAllJobs=()=>{this.jobsQueue=[],this.currentJob=void 0,this.processedTimecodes=[]},this.addJob=o=>{if(this.jobsQueue.some(s=>s===o)){this.options&&v(this.options,"Downloader")&&console.log(`[Downloader] Job already exists for timeCode=${o}`);return}this.jobsQueue.push(o),this.startNextJob()},this.startNextJob=()=>{!this.currentJob&&this.jobsQueue.length>0&&(this.currentJob=this.jobsQueue.shift(),this.options&&v(this.options,"Downloader")&&console.log(`[Downloader] Starting job timeCode=${this.currentJob}`),this.downloadZip(this.currentJob))},this.jobDone=()=>{this.currentJob=void 0,this.startNextJob()},this.downloadZip=async o=>{if(!this.streamData){R.error("[Downloader] Stream data is not available"),this.options&&v(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}this.firstDownload&&(this.firstDownload=!1,R.info("didStartAugmentationDownload",{timestamp:o}));const{fps:s,cloudFrontURL:i,bucketName:c}=this.streamData;try{this.options&&v(this.options,"Downloader")&&console.log(`[Downloader] Fetching zip for timeCode=${o}`);const{arrayBuffer:a,ottActions:l}=await this.fetchMetadata(i,c,s,o);if(this.downloaderStopped)return;if(this.postArrayBufferToDecoder(o,a),R.setAttributes({last_loading_zip:o}),!this.ottActions||this.ottActions.toggle.web!==l.toggle.web||l.toggle[this.streamData.customerId]!==void 0&&(this.ottActions.toggle[this.streamData.customerId]===void 0||this.ottActions.toggle[this.streamData.customerId]!==l.toggle[this.streamData.customerId])||l.toggle[this.streamData.customerId]===void 0&&this.ottActions.toggle[this.streamData.customerId]!==void 0){const d=l.toggle[this.streamData.customerId]!==void 0?l.toggle[this.streamData.customerId]&&l.toggle.web:l.toggle.web;this.ottActions&&R.info("didToggleGlobalAugmentationDrawing",{isEnabled:d}),this.ottActions=l,this.postOTTActionsToRenderer(l)}}catch(a){R.error("[Downloader] Error fetching zip",a),this.options&&v(this.options,"Errors")&&console.error("[Downloader] Error fetching zip:",a)}this.jobDone()},this.fetchMetadata=async(o,s,i,c)=>{const l=`${`${o}/${s}`}/manifests/59.94/${c}.zip`;this.options&&v(this.options,"Fetcher")&&console.log(`[Fetcher] Fetching metadata from ${l}`);const u=performance.now(),d=await fetch(l),f=await d.arrayBuffer(),p=(performance.now()-u)/1e3,y=d.headers.get("x-tgi-ott-actions");let E;if(y?E=JSON.parse(y):E={toggle:{ios:!0,android:!0,web:!0}},!d.ok)throw new Error(`HTTP error! Status: ${d.status}`);return p>1&&R.warn("didFetchZip",{downloadTaskURL:l,downloadTime:p}),{arrayBuffer:f,ottActions:E}},this.stop=()=>{this.downloaderStopped=!0,this.clearAllJobs()},this.postArrayBufferToDecoder=t,this.postOTTActionsToRenderer=n,this.options=r}}let ce=null,ae=null,Ye,C;self.onmessage=async e=>{const{data:t}=e;if(t.type==="SET_LOGGER_PORT"&&R.setMessagePort(t.port),t.type==="SET_RENDERER_PORT"&&(ce=t.port,ce.onmessage=ki),t.type==="SET_DECODER_PORT"&&(ae=t.port,ae.onmessage=xi),t.type==="SET_OPTIONS"&&(C=t.options,R.setMessagePort(self),Ye=new Mn(Nn,$n,C)),t.type==="VIDEO_SEEKED"){if(!C)return;Ye.stop(),Ye=new Mn(Nn,$n,C)}};async function ki(e){const{data:t}=e;self.postMessage(t),t.type==="DOWNLOADER_INPUT"&&Ye.updateStreamData(t.streamData)}function Nn(e,t){if(!ae)return;C&&v(C,"Downloader")&&console.log(`[DownloaderWorker] Posting an ArrayBuffer to Decoder, timeCode=${e}`);const n={type:"DECODER_INPUT",timeCode:e,arrayBuffer:t};ae==null||ae.postMessage(n,{transfer:[t]})}function $n(e){if(!ce)return;C&&v(C,"Downloader")&&console.log(`[DownloaderWorker] Posting OTTActions to Renderer, toggle=${e.toggle}`);const t={type:"OTT_ACTIONS",ottActions:e};ce==null||ce.postMessage(t)}function xi(e){C&&v(C,"Downloader")&&console.log("[DownloaderWorker] Received message from Decoder:",e.data)}self.onunhandledrejection=e=>{R.error("[DownloaderWorker] Unhandled rejection",{error:e.reason}),C&&(v(C,"Errors")&&console.error("[DownloaderWorker] Unhandled rejection:",e.reason),e.preventDefault())},self.onerror=e=>{R.error("[DownloaderWorker] Unhandled error",{error:e}),C&&(v(C,"Errors")&&console.error("[DownloaderWorker] Unhandled error:",e),e instanceof Event&&e.preventDefault())}})();\n',Mt=typeof self<"u"&&self.Blob&&new Blob([Pt],{type:"text/javascript;charset=utf-8"});function rr(t){let e;try{if(e=Mt&&(self.URL||self.webkitURL).createObjectURL(Mt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Pt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const Bt='(function(){"use strict";const R=(a,n)=>!a.debug||!a.debug.on?!1:a.debug[`log${n}`];function Zt(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var mt={},Qt;function fn(){return Qt||(Qt=1,function(a){var n=function(){var e=new Date,t=4,r=3,l=2,h=1,m=t,y={setLogLevel:function(b){b==this.debug?m=h:b==this.info?m=l:b==this.warn?m=r:(b==this.error,m=t)},debug:function(b,U){console.debug===void 0&&(console.debug=console.log),h>=m&&console.debug("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},log:function(b,U){this.debug(b.msg)},info:function(b,U){l>=m&&console.info("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},warn:function(b,U){r>=m&&console.warn("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},error:function(b,U){t>=m&&console.error("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)}};return y}();n.getDurationString=function(e,t){var r;function l(w,T){for(var C=""+w,I=C.split(".");I[0].length<T;)I[0]="0"+I[0];return I.join(".")}e<0?(r=!0,e=-e):r=!1;var h=t||1,m=e/h,y=Math.floor(m/3600);m-=y*3600;var b=Math.floor(m/60);m-=b*60;var U=m*1e3;return m=Math.floor(m),U-=m*1e3,U=Math.floor(U),(r?"-":"")+y+":"+l(b,2)+":"+l(m,2)+"."+l(U,3)},n.printRanges=function(e){var t=e.length;if(t>0){for(var r="",l=0;l<t;l++)l>0&&(r+=","),r+="["+n.getDurationString(e.start(l))+","+n.getDurationString(e.end(l))+"]";return r}else return"(empty)"},a.Log=n;var o=function(e){if(e instanceof ArrayBuffer)this.buffer=e,this.dataview=new DataView(e);else throw"Needs an array buffer";this.position=0};o.prototype.getPosition=function(){return this.position},o.prototype.getEndPosition=function(){return this.buffer.byteLength},o.prototype.getLength=function(){return this.buffer.byteLength},o.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},o.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},o.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:t?r=this.dataview.getInt8(this.position):r=this.dataview.getUint8(this.position);break;case 2:t?r=this.dataview.getInt16(this.position):r=this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r|=this.dataview.getUint8(this.position+1)<<8,r|=this.dataview.getUint8(this.position+2);break;case 4:t?r=this.dataview.getInt32(this.position):r=this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}else throw"Not enough bytes in buffer"},o.prototype.readUint8=function(){return this.readAnyInt(1,!1)},o.prototype.readUint16=function(){return this.readAnyInt(2,!1)},o.prototype.readUint24=function(){return this.readAnyInt(3,!1)},o.prototype.readUint32=function(){return this.readAnyInt(4,!1)},o.prototype.readUint64=function(){return this.readAnyInt(8,!1)},o.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;r<e;r++)t+=String.fromCharCode(this.readUint8());return t}else throw"Not enough bytes in buffer"},o.prototype.readCString=function(){for(var e=[];;){var t=this.readUint8();if(t!==0)e.push(t);else break}return String.fromCharCode.apply(null,e)},o.prototype.readInt8=function(){return this.readAnyInt(1,!0)},o.prototype.readInt16=function(){return this.readAnyInt(2,!0)},o.prototype.readInt32=function(){return this.readAnyInt(4,!0)},o.prototype.readInt64=function(){return this.readAnyInt(8,!1)},o.prototype.readUint8Array=function(e){for(var t=new Uint8Array(e),r=0;r<e;r++)t[r]=this.readUint8();return t},o.prototype.readInt16Array=function(e){for(var t=new Int16Array(e),r=0;r<e;r++)t[r]=this.readInt16();return t},o.prototype.readUint16Array=function(e){for(var t=new Int16Array(e),r=0;r<e;r++)t[r]=this.readUint16();return t},o.prototype.readUint32Array=function(e){for(var t=new Uint32Array(e),r=0;r<e;r++)t[r]=this.readUint32();return t},o.prototype.readInt32Array=function(e){for(var t=new Int32Array(e),r=0;r<e;r++)t[r]=this.readInt32();return t},a.MP4BoxStream=o;var d=function(e,t,r){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:typeof e=="object"?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=r??d.LITTLE_ENDIAN};d.prototype={},d.prototype.getPosition=function(){return this.position},d.prototype._realloc=function(e){if(this._dynamicSize){var t=this._byteOffset+this.position+e,r=this._buffer.byteLength;if(t<=r){t>this._byteLength&&(this._byteLength=t);return}for(r<1&&(r=1);t>r;)r*=2;var l=new ArrayBuffer(r),h=new Uint8Array(this._buffer),m=new Uint8Array(l,0,h.length);m.set(h),this.buffer=l,this._byteLength=t}},d.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),r=new Uint8Array(this._buffer,0,t.length);t.set(r),this.buffer=e}},d.BIG_ENDIAN=!1,d.LITTLE_ENDIAN=!0,d.prototype._byteLength=0,Object.defineProperty(d.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(d.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),d.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},d.prototype.isEof=function(){return this.position>=this._byteLength},d.prototype.mapUint8Array=function(e){this._realloc(e*1);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},d.prototype.readInt32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Int32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt16Array=function(e,t){e=e??this.byteLength-this.position/2;var r=new Int16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt8Array=function(e){e=e??this.byteLength-this.position;var t=new Int8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readUint32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Uint32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readUint16Array=function(e,t){e=e??this.byteLength-this.position/2;var r=new Uint16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readUint8Array=function(e){e=e??this.byteLength-this.position;var t=new Uint8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readFloat64Array=function(e,t){e=e??this.byteLength-this.position/8;var r=new Float64Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readFloat32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Float32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,e??this.endianness);return this.position+=2,t},d.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},d.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,e??this.endianness);return this.position+=2,t},d.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},d.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,e??this.endianness);return this.position+=8,t},d.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,d.memcpy=function(e,t,r,l,h){var m=new Uint8Array(e,t,h),y=new Uint8Array(r,l,h);m.set(y)},d.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},d.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},d.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=0;r<e.byteLength;r+=e.BYTES_PER_ELEMENT)for(var l=r+e.BYTES_PER_ELEMENT-1,h=r;l>h;l--,h++){var m=t[h];t[h]=t[l],t[l]=m}return e},d.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],r=0;r<e.length;r++)t[r]=e[r];return String.fromCharCode.apply(null,t)},d.prototype.readString=function(e,t){return t==null||t=="ASCII"?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(e??this.byteLength-this.position)]):new TextDecoder(t).decode(this.mapUint8Array(e))},d.prototype.readCString=function(e){var t=this.byteLength-this.position,r=new Uint8Array(this._buffer,this._byteOffset+this.position),l=t;e!=null&&(l=Math.min(e,t));for(var h=0;h<l&&r[h]!==0;h++);var m=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(h)]);return e!=null?this.position+=l-h:h!=t&&(this.position+=1),m};var f=Math.pow(2,32);d.prototype.readInt64=function(){return this.readInt32()*f+this.readUint32()},d.prototype.readUint64=function(){return this.readUint32()*f+this.readUint32()},d.prototype.readInt64=function(){return this.readUint32()*f+this.readUint32()},d.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},a.DataStream=d,d.prototype.save=function(e){var t=new Blob([this.buffer]);if(window.URL&&URL.createObjectURL){var r=window.URL.createObjectURL(t),l=document.createElement("a");document.body.appendChild(l),l.setAttribute("href",r),l.setAttribute("download",e),l.setAttribute("target","_self"),l.click(),window.URL.revokeObjectURL(r)}else throw"DataStream.save: Can\'t create object URL."},d.prototype._dynamicSize=!0,Object.defineProperty(d.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(e){e||this._trimAlloc(),this._dynamicSize=e}}),d.prototype.shift=function(e){var t=new ArrayBuffer(this._byteLength-e),r=new Uint8Array(t),l=new Uint8Array(this._buffer,e,r.length);r.set(l),this.buffer=t,this.position-=e},d.prototype.writeInt32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeInt32(e[r],t)},d.prototype.writeInt16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeInt16(e[r],t)},d.prototype.writeInt8Array=function(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(var t=0;t<e.length;t++)this.writeInt8(e[t])},d.prototype.writeUint32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeUint32(e[r],t)},d.prototype.writeUint16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeUint16(e[r],t)},d.prototype.writeUint8Array=function(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(var t=0;t<e.length;t++)this.writeUint8(e[t])},d.prototype.writeFloat64Array=function(e,t){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeFloat64(e[r],t)},d.prototype.writeFloat32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeFloat32(e[r],t)},d.prototype.writeInt32=function(e,t){this._realloc(4),this._dataView.setInt32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeInt16=function(e,t){this._realloc(2),this._dataView.setInt16(this.position,e,t??this.endianness),this.position+=2},d.prototype.writeInt8=function(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1},d.prototype.writeUint32=function(e,t){this._realloc(4),this._dataView.setUint32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeUint16=function(e,t){this._realloc(2),this._dataView.setUint16(this.position,e,t??this.endianness),this.position+=2},d.prototype.writeUint8=function(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1},d.prototype.writeFloat32=function(e,t){this._realloc(4),this._dataView.setFloat32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeFloat64=function(e,t){this._realloc(8),this._dataView.setFloat64(this.position,e,t??this.endianness),this.position+=8},d.prototype.writeUCS2String=function(e,t,r){r==null&&(r=e.length);for(var l=0;l<e.length&&l<r;l++)this.writeUint16(e.charCodeAt(l),t);for(;l<r;l++)this.writeUint16(0)},d.prototype.writeString=function(e,t,r){var l=0;if(t==null||t=="ASCII")if(r!=null){var h=Math.min(e.length,r);for(l=0;l<h;l++)this.writeUint8(e.charCodeAt(l));for(;l<r;l++)this.writeUint8(0)}else for(l=0;l<e.length;l++)this.writeUint8(e.charCodeAt(l));else this.writeUint8Array(new TextEncoder(t).encode(e.substring(0,r)))},d.prototype.writeCString=function(e,t){var r=0;if(t!=null){var l=Math.min(e.length,t);for(r=0;r<l;r++)this.writeUint8(e.charCodeAt(r));for(;r<t;r++)this.writeUint8(0)}else{for(r=0;r<e.length;r++)this.writeUint8(e.charCodeAt(r));this.writeUint8(0)}},d.prototype.writeStruct=function(e,t){for(var r=0;r<e.length;r+=2){var l=e[r+1];this.writeType(l,t[e[r]],t)}},d.prototype.writeType=function(e,t,r){var l;if(typeof e=="function")return e(this,t);if(typeof e=="object"&&!(e instanceof Array))return e.set(this,t,r);var h=null,m="ASCII",y=this.position;switch(typeof e=="string"&&/:/.test(e)&&(l=e.split(":"),e=l[0],h=parseInt(l[1])),typeof e=="string"&&/,/.test(e)&&(l=e.split(","),e=l[0],m=parseInt(l[1])),e){case"uint8":this.writeUint8(t);break;case"int8":this.writeInt8(t);break;case"uint16":this.writeUint16(t,this.endianness);break;case"int16":this.writeInt16(t,this.endianness);break;case"uint32":this.writeUint32(t,this.endianness);break;case"int32":this.writeInt32(t,this.endianness);break;case"float32":this.writeFloat32(t,this.endianness);break;case"float64":this.writeFloat64(t,this.endianness);break;case"uint16be":this.writeUint16(t,d.BIG_ENDIAN);break;case"int16be":this.writeInt16(t,d.BIG_ENDIAN);break;case"uint32be":this.writeUint32(t,d.BIG_ENDIAN);break;case"int32be":this.writeInt32(t,d.BIG_ENDIAN);break;case"float32be":this.writeFloat32(t,d.BIG_ENDIAN);break;case"float64be":this.writeFloat64(t,d.BIG_ENDIAN);break;case"uint16le":this.writeUint16(t,d.LITTLE_ENDIAN);break;case"int16le":this.writeInt16(t,d.LITTLE_ENDIAN);break;case"uint32le":this.writeUint32(t,d.LITTLE_ENDIAN);break;case"int32le":this.writeInt32(t,d.LITTLE_ENDIAN);break;case"float32le":this.writeFloat32(t,d.LITTLE_ENDIAN);break;case"float64le":this.writeFloat64(t,d.LITTLE_ENDIAN);break;case"cstring":this.writeCString(t,h);break;case"string":this.writeString(t,m,h);break;case"u16string":this.writeUCS2String(t,this.endianness,h);break;case"u16stringle":this.writeUCS2String(t,d.LITTLE_ENDIAN,h);break;case"u16stringbe":this.writeUCS2String(t,d.BIG_ENDIAN,h);break;default:if(e.length==3){for(var b=e[1],U=0;U<t.length;U++)this.writeType(b,t[U]);break}else{this.writeStruct(e,t);break}}h!=null&&(this.position=y,this._realloc(h),this.position=y+h)},d.prototype.writeUint64=function(e){var t=Math.floor(e/f);this.writeUint32(t),this.writeUint32(e&4294967295)},d.prototype.writeUint24=function(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)},d.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},d.prototype.mapInt32Array=function(e,t){this._realloc(e*4);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r},d.prototype.mapInt16Array=function(e,t){this._realloc(e*2);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*2,r},d.prototype.mapInt8Array=function(e){this._realloc(e*1);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},d.prototype.mapUint32Array=function(e,t){this._realloc(e*4);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r},d.prototype.mapUint16Array=function(e,t){this._realloc(e*2);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*2,r},d.prototype.mapFloat64Array=function(e,t){this._realloc(e*8);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*8,r},d.prototype.mapFloat32Array=function(e,t){this._realloc(e*4);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r};var c=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};c.prototype=new d(new ArrayBuffer,0,d.BIG_ENDIAN),c.prototype.initialized=function(){var e;return this.bufferIndex>-1?!0:this.buffers.length>0?(e=this.buffers[0],e.fileStart===0?(this.buffer=e,this.bufferIndex=0,n.debug("MultiBufferStream","Stream ready for parsing"),!0):(n.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)):(n.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(e,t){n.debug("ArrayBuffer","Trying to create a new buffer of size: "+(e.byteLength+t.byteLength));var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(t),e.byteLength),r.buffer},c.prototype.reduceBuffer=function(e,t,r){var l;return l=new Uint8Array(r),l.set(new Uint8Array(e,t,r)),l.buffer.fileStart=e.fileStart+t,l.buffer.usedBytes=0,l.buffer},c.prototype.insertBuffer=function(e){for(var t=!0,r=0;r<this.buffers.length;r++){var l=this.buffers[r];if(e.fileStart<=l.fileStart){if(e.fileStart===l.fileStart)if(e.byteLength>l.byteLength){this.buffers.splice(r,1),r--;continue}else n.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring");else e.fileStart+e.byteLength<=l.fileStart||(e=this.reduceBuffer(e,0,l.fileStart-e.fileStart)),n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),r===0&&(this.buffer=e);t=!1;break}else if(e.fileStart<l.fileStart+l.byteLength){var h=l.fileStart+l.byteLength-e.fileStart,m=e.byteLength-h;if(m>0)e=this.reduceBuffer(e,h,m);else{t=!1;break}}}t&&(n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.push(e),r===0&&(this.buffer=e))},c.prototype.logBufferLevel=function(e){var t,r,l,h,m=[],y,b="";for(l=0,h=0,t=0;t<this.buffers.length;t++)r=this.buffers[t],t===0?(y={},m.push(y),y.start=r.fileStart,y.end=r.fileStart+r.byteLength,b+="["+y.start+"-"):y.end===r.fileStart?y.end=r.fileStart+r.byteLength:(y={},y.start=r.fileStart,b+=m[m.length-1].end-1+"], ["+y.start+"-",y.end=r.fileStart+r.byteLength,m.push(y)),l+=r.usedBytes,h+=r.byteLength;m.length>0&&(b+=y.end-1+"]");var U=e?n.info:n.debug;this.buffers.length===0?U("MultiBufferStream","No more buffer in memory"):U("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+l+"/"+h+" bytes), continuous ranges: "+b)},c.prototype.cleanBuffers=function(){var e,t;for(e=0;e<this.buffers.length;e++)t=this.buffers[e],t.usedBytes===t.byteLength&&(n.debug("MultiBufferStream","Removing buffer #"+e),this.buffers.splice(e,1),e--)},c.prototype.mergeNextBuffer=function(){var e;if(this.bufferIndex+1<this.buffers.length)if(e=this.buffers[this.bufferIndex+1],e.fileStart===this.buffer.fileStart+this.buffer.byteLength){var t=this.buffer.byteLength,r=this.buffer.usedBytes,l=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,e),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=r,this.buffer.fileStart=l,n.debug("ISOFile","Concatenating buffer for box parsing (length: "+t+"->"+this.buffer.byteLength+")"),!0}else return!1;else return!1},c.prototype.findPosition=function(e,t,r){var l,h=null,m=-1;for(e===!0?l=0:l=this.bufferIndex;l<this.buffers.length&&(h=this.buffers[l],h.fileStart<=t);){m=l,r&&(h.fileStart+h.byteLength<=t?h.usedBytes=h.byteLength:h.usedBytes=t-h.fileStart,this.logBufferLevel());l++}return m!==-1?(h=this.buffers[m],h.fileStart+h.byteLength>=t?(n.debug("MultiBufferStream","Found position in existing buffer #"+m),m):-1):-1},c.prototype.findEndContiguousBuf=function(e){var t,r,l,h=e!==void 0?e:this.bufferIndex;if(r=this.buffers[h],this.buffers.length>h+1)for(t=h+1;t<this.buffers.length&&(l=this.buffers[t],l.fileStart===r.fileStart+r.byteLength);t++)r=l;return r.fileStart+r.byteLength},c.prototype.getEndFilePositionAfter=function(e){var t=this.findPosition(!0,e,!1);return t!==-1?this.findEndContiguousBuf(t):e},c.prototype.addUsedBytes=function(e){this.buffer.usedBytes+=e,this.logBufferLevel()},c.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},c.prototype.seek=function(e,t,r){var l;return l=this.findPosition(t,e,r),l!==-1?(this.buffer=this.buffers[l],this.bufferIndex=l,this.position=e-this.buffer.fileStart,n.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(n.debug("MultiBufferStream","Position "+e+" not found in buffered data"),!1)},c.prototype.getPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.position},c.prototype.getLength=function(){return this.byteLength},c.prototype.getEndPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.byteLength},a.MultiBufferStream=c;var u=function(){var e=3,t=4,r=5,l=6,h=[];h[e]="ES_Descriptor",h[t]="DecoderConfigDescriptor",h[r]="DecoderSpecificInfo",h[l]="SLConfigDescriptor",this.getDescriptorName=function(b){return h[b]};var m=this,y={};return this.parseOneDescriptor=function(b){var U=0,w,T,C;for(w=b.readUint8(),C=b.readUint8();C&128;)U=(U<<7)+(C&127),C=b.readUint8();return U=(U<<7)+(C&127),n.debug("MPEG4DescriptorParser","Found "+(h[w]||"Descriptor "+w)+", size "+U+" at position "+b.getPosition()),h[w]?T=new y[h[w]](U):T=new y.Descriptor(U),T.parse(b),T},y.Descriptor=function(b,U){this.tag=b,this.size=U,this.descs=[]},y.Descriptor.prototype.parse=function(b){this.data=b.readUint8Array(this.size)},y.Descriptor.prototype.findDescriptor=function(b){for(var U=0;U<this.descs.length;U++)if(this.descs[U].tag==b)return this.descs[U];return null},y.Descriptor.prototype.parseRemainingDescriptors=function(b){for(var U=b.position;b.position<U+this.size;){var w=m.parseOneDescriptor(b);this.descs.push(w)}},y.ES_Descriptor=function(b){y.Descriptor.call(this,e,b)},y.ES_Descriptor.prototype=new y.Descriptor,y.ES_Descriptor.prototype.parse=function(b){if(this.ES_ID=b.readUint16(),this.flags=b.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=b.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){var U=b.readUint8();this.URL=b.readString(U),this.size-=U+1}else this.URL="";this.flags&32?(this.OCR_ES_ID=b.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(b)},y.ES_Descriptor.prototype.getOTI=function(b){var U=this.findDescriptor(t);return U?U.oti:0},y.ES_Descriptor.prototype.getAudioConfig=function(b){var U=this.findDescriptor(t);if(!U)return null;var w=U.findDescriptor(r);if(w&&w.data){var T=(w.data[0]&248)>>3;return T===31&&w.data.length>=2&&(T=32+((w.data[0]&7)<<3)+((w.data[1]&224)>>5)),T}else return null},y.DecoderConfigDescriptor=function(b){y.Descriptor.call(this,t,b)},y.DecoderConfigDescriptor.prototype=new y.Descriptor,y.DecoderConfigDescriptor.prototype.parse=function(b){this.oti=b.readUint8(),this.streamType=b.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=b.readUint24(),this.maxBitrate=b.readUint32(),this.avgBitrate=b.readUint32(),this.size-=13,this.parseRemainingDescriptors(b)},y.DecoderSpecificInfo=function(b){y.Descriptor.call(this,r,b)},y.DecoderSpecificInfo.prototype=new y.Descriptor,y.SLConfigDescriptor=function(b){y.Descriptor.call(this,l,b)},y.SLConfigDescriptor.prototype=new y.Descriptor,this};a.MPEG4DescriptorParser=u;var s={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){s.FullBox.prototype=new s.Box,s.ContainerBox.prototype=new s.Box,s.SampleEntry.prototype=new s.Box,s.TrackGroupTypeBox.prototype=new s.FullBox,s.BASIC_BOXES.forEach(function(e){s.createBoxCtor(e)}),s.FULL_BOXES.forEach(function(e){s.createFullBoxCtor(e)}),s.CONTAINER_BOXES.forEach(function(e){s.createContainerBoxCtor(e[0],null,e[1])})},Box:function(e,t,r){this.type=e,this.size=t,this.uuid=r},FullBox:function(e,t,r){s.Box.call(this,e,t,r),this.flags=0,this.version=0},ContainerBox:function(e,t,r){s.Box.call(this,e,t,r),this.boxes=[]},SampleEntry:function(e,t,r,l){s.ContainerBox.call(this,e,t),this.hdr_size=r,this.start=l},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){s.FullBox.call(this,e,t)},createBoxCtor:function(e,t){s.boxCodes.push(e),s[e+"Box"]=function(r){s.Box.call(this,e,r)},s[e+"Box"].prototype=new s.Box,t&&(s[e+"Box"].prototype.parse=t)},createFullBoxCtor:function(e,t){s[e+"Box"]=function(r){s.FullBox.call(this,e,r)},s[e+"Box"].prototype=new s.FullBox,s[e+"Box"].prototype.parse=function(r){this.parseFullHeader(r),t&&t.call(this,r)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,r=0;r<t;r++)this[e[r]+"s"]=[]}},createContainerBoxCtor:function(e,t,r){s[e+"Box"]=function(l){s.ContainerBox.call(this,e,l),s.addSubBoxArrays.call(this,r)},s[e+"Box"].prototype=new s.ContainerBox,t&&(s[e+"Box"].prototype.parse=t)},createMediaSampleEntryCtor:function(e,t,r){s.sampleEntryCodes[e]=[],s[e+"SampleEntry"]=function(l,h){s.SampleEntry.call(this,l,h),s.addSubBoxArrays.call(this,r)},s[e+"SampleEntry"].prototype=new s.SampleEntry,t&&(s[e+"SampleEntry"].prototype.parse=t)},createSampleEntryCtor:function(e,t,r,l){s.sampleEntryCodes[e].push(t),s[t+"SampleEntry"]=function(h){s[e+"SampleEntry"].call(this,t,h),s.addSubBoxArrays.call(this,l)},s[t+"SampleEntry"].prototype=new s[e+"SampleEntry"],r&&(s[t+"SampleEntry"].prototype.parse=r)},createEncryptedSampleEntryCtor:function(e,t,r){s.createSampleEntryCtor.call(this,e,t,r,["sinf"])},createSampleGroupCtor:function(e,t){s[e+"SampleGroupEntry"]=function(r){s.SampleGroupEntry.call(this,e,r)},s[e+"SampleGroupEntry"].prototype=new s.SampleGroupEntry,t&&(s[e+"SampleGroupEntry"].prototype.parse=t)},createTrackGroupCtor:function(e,t){s[e+"TrackGroupTypeBox"]=function(r){s.TrackGroupTypeBox.call(this,e,r)},s[e+"TrackGroupTypeBox"].prototype=new s.TrackGroupTypeBox,t&&(s[e+"TrackGroupTypeBox"].prototype.parse=t)},createUUIDBox:function(e,t,r,l){s.UUIDs.push(e),s.UUIDBoxes[e]=function(h){t?s.FullBox.call(this,"uuid",h,e):r?s.ContainerBox.call(this,"uuid",h,e):s.Box.call(this,"uuid",h,e)},s.UUIDBoxes[e].prototype=t?new s.FullBox:r?new s.ContainerBox:new s.Box,l&&(t?s.UUIDBoxes[e].prototype.parse=function(h){this.parseFullHeader(h),l&&l.call(this,h)}:s.UUIDBoxes[e].prototype.parse=l)}};s.initialize(),s.TKHD_FLAG_ENABLED=1,s.TKHD_FLAG_IN_MOVIE=2,s.TKHD_FLAG_IN_PREVIEW=4,s.TFHD_FLAG_BASE_DATA_OFFSET=1,s.TFHD_FLAG_SAMPLE_DESC=2,s.TFHD_FLAG_SAMPLE_DUR=8,s.TFHD_FLAG_SAMPLE_SIZE=16,s.TFHD_FLAG_SAMPLE_FLAGS=32,s.TFHD_FLAG_DUR_EMPTY=65536,s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,s.TRUN_FLAGS_DATA_OFFSET=1,s.TRUN_FLAGS_FIRST_FLAG=4,s.TRUN_FLAGS_DURATION=256,s.TRUN_FLAGS_SIZE=512,s.TRUN_FLAGS_FLAGS=1024,s.TRUN_FLAGS_CTS_OFFSET=2048,s.Box.prototype.add=function(e){return this.addBox(new s[e+"Box"])},s.Box.prototype.addBox=function(e){return this.boxes.push(e),this[e.type+"s"]?this[e.type+"s"].push(e):this[e.type]=e,e},s.Box.prototype.set=function(e,t){return this[e]=t,this},s.Box.prototype.addEntry=function(e,t){var r=t||"entries";return this[r]||(this[r]=[]),this[r].push(e),this},a.BoxParser=s,s.parseUUID=function(e){return s.parseHex16(e)},s.parseHex16=function(e){for(var t="",r=0;r<16;r++){var l=e.readUint8().toString(16);t+=l.length===1?"0"+l:l}return t},s.parseOneBox=function(e,t,r){var l,h=e.getPosition(),m=0,y,b;if(e.getEndPosition()-h<8)return n.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:s.ERR_NOT_ENOUGH_DATA};if(r&&r<8)return n.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:s.ERR_NOT_ENOUGH_DATA};var U=e.readUint32(),w=e.readString(4),T=w;if(n.debug("BoxParser","Found box of type \'"+w+"\' and size "+U+" at position "+h),m=8,w=="uuid"){if(e.getEndPosition()-e.getPosition()<16||r-m<16)return e.seek(h),n.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:s.ERR_NOT_ENOUGH_DATA};b=s.parseUUID(e),m+=16,T=b}if(U==1){if(e.getEndPosition()-e.getPosition()<8||r&&r-m<8)return e.seek(h),n.warn("BoxParser",\'Not enough data in stream to parse the extended size of the "\'+w+\'" box\'),{code:s.ERR_NOT_ENOUGH_DATA};U=e.readUint64(),m+=8}else if(U===0){if(r)U=r;else if(w!=="mdat")return n.error("BoxParser","Unlimited box size not supported for type: \'"+w+"\'"),l=new s.Box(w,U),{code:s.OK,box:l,size:l.size}}return U!==0&&U<m?(n.error("BoxParser","Box of type "+w+" has an invalid size "+U+" (too small to be a box)"),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):U!==0&&r&&U>r?(n.error("BoxParser","Box of type \'"+w+"\' has a size "+U+" greater than its container size "+r),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):U!==0&&h+U>e.getEndPosition()?(e.seek(h),n.info("BoxParser","Not enough data in stream to parse the entire \'"+w+"\' box"),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):t?{code:s.OK,type:w,size:U,hdr_size:m,start:h}:(s[w+"Box"]?l=new s[w+"Box"](U):w!=="uuid"?(n.warn("BoxParser","Unknown box type: \'"+w+"\'"),l=new s.Box(w,U),l.has_unparsed_data=!0):s.UUIDBoxes[b]?l=new s.UUIDBoxes[b](U):(n.warn("BoxParser","Unknown uuid type: \'"+b+"\'"),l=new s.Box(w,U),l.uuid=b,l.has_unparsed_data=!0),l.hdr_size=m,l.start=h,l.write===s.Box.prototype.write&&l.type!=="mdat"&&(n.info("BoxParser","\'"+T+"\' box writing not yet implemented, keeping unparsed data in memory for later write"),l.parseDataAndRewind(e)),l.parse(e),y=e.getPosition()-(l.start+l.size),y<0?(n.warn("BoxParser","Parsing of box \'"+T+"\' did not read the entire indicated box data size (missing "+-y+" bytes), seeking forward"),e.seek(l.start+l.size)):y>0&&(n.error("BoxParser","Parsing of box \'"+T+"\' read "+y+" more bytes than the indicated box data size, seeking backwards"),l.size!==0&&e.seek(l.start+l.size)),{code:s.OK,box:l,size:l.size})},s.Box.prototype.parse=function(e){this.type!="mdat"?this.data=e.readUint8Array(this.size-this.hdr_size):this.size===0?e.seek(e.getEndPosition()):e.seek(this.start+this.size)},s.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},s.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},s.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},s.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},s.ContainerBox.prototype.parse=function(e){for(var t,r;e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)if(r=t.box,this.boxes.push(r),this.subBoxNames&&this.subBoxNames.indexOf(r.type)!=-1)this[this.subBoxNames[this.subBoxNames.indexOf(r.type)]+"s"].push(r);else{var l=r.type!=="uuid"?r.type:r.uuid;this[l]?n.warn("Box of type "+l+" already stored in field of this type"):this[l]=r}else return},s.Box.prototype.parseLanguage=function(e){this.language=e.readUint16();var t=[];t[0]=this.language>>10&31,t[1]=this.language>>5&31,t[2]=this.language&31,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},s.SAMPLE_ENTRY_TYPE_VISUAL="Visual",s.SAMPLE_ENTRY_TYPE_AUDIO="Audio",s.SAMPLE_ENTRY_TYPE_HINT="Hint",s.SAMPLE_ENTRY_TYPE_METADATA="Metadata",s.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",s.SAMPLE_ENTRY_TYPE_SYSTEM="System",s.SAMPLE_ENTRY_TYPE_TEXT="Text",s.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},s.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},s.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},s.SampleEntry.prototype.parseFooter=function(e){s.ContainerBox.prototype.parse.call(this,e)},s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_HINT),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SYSTEM),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_TEXT),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"fLaC"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_TEXT,"enct"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"encm"),s.createBoxCtor("a1lx",function(e){var t=e.readUint8()&1,r=((t&1)+1)*16;this.layer_size=[];for(var l=0;l<3;l++)r==16?this.layer_size[l]=e.readUint16():this.layer_size[l]=e.readUint32()}),s.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),s.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),s.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1){n.error("av1C marker problem");return}if(this.version=t&127,this.version!==1){n.error("av1C version "+this.version+" not supported");return}if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=t&31,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=t&3,t=e.readUint8(),this.reserved_1=t>>5&7,this.reserved_1!==0){n.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=t>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=t&15;else if(this.reserved_2=t&15,this.reserved_2!==0){n.error("av1C reserved_2 parsing problem");return}var r=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(r)}),s.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=e.readUint8()&3,this.nb_SPS_nalus=e.readUint8()&31,r=this.size-this.hdr_size-6,this.SPS=[],t=0;t<this.nb_SPS_nalus;t++)this.SPS[t]={},this.SPS[t].length=e.readUint16(),this.SPS[t].nalu=e.readUint8Array(this.SPS[t].length),r-=2+this.SPS[t].length;for(this.nb_PPS_nalus=e.readUint8(),r--,this.PPS=[],t=0;t<this.nb_PPS_nalus;t++)this.PPS[t]={},this.PPS[t].length=e.readUint16(),this.PPS[t].nalu=e.readUint8Array(this.PPS[t].length),r-=2+this.PPS[t].length;r>0&&(this.ext=e.readUint8Array(r))}),s.createBoxCtor("btrt",function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()}),s.createFullBoxCtor("ccst",function(e){var t=e.readUint8();this.all_ref_pics_intra=(t&128)==128,this.intra_pred_used=(t&64)==64,this.max_ref_per_pic=(t&63)>>2,e.readUint24()}),s.createBoxCtor("cdef",function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t<this.channel_count;t++)this.channel_indexes.push(e.readUint16()),this.channel_types.push(e.readUint16()),this.channel_associations.push(e.readUint16())}),s.createBoxCtor("clap",function(e){this.cleanApertureWidthN=e.readUint32(),this.cleanApertureWidthD=e.readUint32(),this.cleanApertureHeightN=e.readUint32(),this.cleanApertureHeightD=e.readUint32(),this.horizOffN=e.readUint32(),this.horizOffD=e.readUint32(),this.vertOffN=e.readUint32(),this.vertOffD=e.readUint32()}),s.createBoxCtor("clli",function(e){this.max_content_light_level=e.readUint16(),this.max_pic_average_light_level=e.readUint16()}),s.createFullBoxCtor("cmex",function(e){this.flags&1&&(this.pos_x=e.readInt32()),this.flags&2&&(this.pos_y=e.readInt32()),this.flags&4&&(this.pos_z=e.readInt32()),this.flags&8&&(this.version==0?this.flags&16?(this.quat_x=e.readInt32(),this.quat_y=e.readInt32(),this.quat_z=e.readInt32()):(this.quat_x=e.readInt16(),this.quat_y=e.readInt16(),this.quat_z=e.readInt16()):this.version==1),this.flags&32&&(this.id=e.readUint32())}),s.createFullBoxCtor("cmin",function(e){this.focal_length_x=e.readInt32(),this.principal_point_x=e.readInt32(),this.principal_point_y=e.readInt32(),this.flags&1&&(this.focal_length_y=e.readInt32(),this.skew_factor=e.readInt32())}),s.createBoxCtor("cmpd",function(e){for(this.component_count=e.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var t=e.readUint16();this.component_types.push(t),t>=32768&&this.component_type_urls.push(e.readCString())}}),s.createFullBoxCtor("co64",function(e){var t,r;if(t=e.readUint32(),this.chunk_offsets=[],this.version===0)for(r=0;r<t;r++)this.chunk_offsets.push(e.readUint64())}),s.createFullBoxCtor("CoLL",function(e){this.maxCLL=e.readUint16(),this.maxFALL=e.readUint16()}),s.createBoxCtor("colr",function(e){if(this.colour_type=e.readString(4),this.colour_type==="nclx"){this.colour_primaries=e.readUint16(),this.transfer_characteristics=e.readUint16(),this.matrix_coefficients=e.readUint16();var t=e.readUint8();this.full_range_flag=t>>7}else this.colour_type==="rICC"?this.ICC_profile=e.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=e.readUint8Array(this.size-4))}),s.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),s.createFullBoxCtor("cslg",function(e){this.version===0&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),s.createFullBoxCtor("ctts",function(e){var t,r;if(t=e.readUint32(),this.sample_counts=[],this.sample_offsets=[],this.version===0)for(r=0;r<t;r++){this.sample_counts.push(e.readUint32());var l=e.readInt32();l<0&&n.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(l)}else if(this.version==1)for(r=0;r<t;r++)this.sample_counts.push(e.readUint32()),this.sample_offsets.push(e.readInt32())}),s.createBoxCtor("dac3",function(e){var t=e.readUint8(),r=e.readUint8(),l=e.readUint8();this.fscod=t>>6,this.bsid=t>>1&31,this.bsmod=(t&1)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=r&3|l>>5&7}),s.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=t&7,this.ind_subs=[];for(var r=0;r<this.num_ind_sub+1;r++){var l={};this.ind_subs.push(l);var h=e.readUint8(),m=e.readUint8(),y=e.readUint8();l.fscod=h>>6,l.bsid=h>>1&31,l.bsmod=(h&1)<<4|m>>4&15,l.acmod=m>>1&7,l.lfeon=m&1,l.num_dep_sub=y>>1&15,l.num_dep_sub>0&&(l.chan_loc=(y&1)<<8|e.readUint8())}}),s.createFullBoxCtor("dfLa",function(e){var t=127,r=128,l=[],h=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{var m=e.readUint8(),y=Math.min(m&t,h.length-1);if(y?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),l.push(h[y]),m&r)break}while(!0);this.numMetadataBlocks=l.length+" ("+l.join(", ")+")"}),s.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),s.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),s.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),s.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t<this.OutputChannelCount;t++)this.ChannelMapping[t]=e.readUint8()}}),s.createFullBoxCtor("dref",function(e){var t,r;this.entries=[];for(var l=e.readUint32(),h=0;h<l;h++)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)r=t.box,this.entries.push(r);else return}),s.createBoxCtor("drep",function(e){this.bytessent=e.readUint64()}),s.createFullBoxCtor("elng",function(e){this.extended_language=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("elst",function(e){this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.entries.push(l),this.version===1?(l.segment_duration=e.readUint64(),l.media_time=e.readInt64()):(l.segment_duration=e.readUint32(),l.media_time=e.readInt32()),l.media_rate_integer=e.readInt16(),l.media_rate_fraction=e.readInt16()}}),s.createFullBoxCtor("emsg",function(e){this.version==1?(this.timescale=e.readUint32(),this.presentation_time=e.readUint64(),this.event_duration=e.readUint32(),this.id=e.readUint32(),this.scheme_id_uri=e.readCString(),this.value=e.readCString()):(this.scheme_id_uri=e.readCString(),this.value=e.readCString(),this.timescale=e.readUint32(),this.presentation_time_delta=e.readUint32(),this.event_duration=e.readUint32(),this.id=e.readUint32());var t=this.size-this.hdr_size-(4*4+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version==1&&(t-=4),this.message_data=e.readUint8Array(t)}),s.createEntityToGroupCtor=function(e,t){s[e+"Box"]=function(r){s.FullBox.call(this,e,r)},s[e+"Box"].prototype=new s.FullBox,s[e+"Box"].prototype.parse=function(r){if(this.parseFullHeader(r),t)t.call(this,r);else for(this.group_id=r.readUint32(),this.num_entities_in_group=r.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var l=r.readUint32();this.entity_ids.push(l)}}},s.createEntityToGroupCtor("aebr"),s.createEntityToGroupCtor("afbr"),s.createEntityToGroupCtor("albc"),s.createEntityToGroupCtor("altr"),s.createEntityToGroupCtor("brst"),s.createEntityToGroupCtor("dobr"),s.createEntityToGroupCtor("eqiv"),s.createEntityToGroupCtor("favc"),s.createEntityToGroupCtor("fobr"),s.createEntityToGroupCtor("iaug"),s.createEntityToGroupCtor("pano"),s.createEntityToGroupCtor("slid"),s.createEntityToGroupCtor("ster"),s.createEntityToGroupCtor("tsyn"),s.createEntityToGroupCtor("wbbr"),s.createEntityToGroupCtor("prgr"),s.createEntityToGroupCtor("pymd",function(e){this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[];for(var t=0;t<this.num_entities_in_group;t++){var r=e.readUint32();this.entity_ids.push(r)}for(this.tile_size_x=e.readUint16(),this.tile_size_y=e.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[],t=0;t<this.num_entities_in_group;t++)this.layer_binning[t]=e.readUint16(),this.tiles_in_layer_row_minus1[t]=e.readUint16(),this.tiles_in_layer_column_minus1[t]=e.readUint16()}),s.createFullBoxCtor("esds",function(e){var t=e.readUint8Array(this.size-this.hdr_size);if(typeof u<"u"){var r=new u;this.esd=r.parseOneDescriptor(new d(t.buffer,0,d.BIG_ENDIAN))}}),s.createBoxCtor("fiel",function(e){this.fieldCount=e.readUint8(),this.fieldOrdering=e.readUint8()}),s.createBoxCtor("frma",function(e){this.data_format=e.readString(4)}),s.createBoxCtor("ftyp",function(e){var t=this.size-this.hdr_size;this.major_brand=e.readString(4),this.minor_version=e.readUint32(),t-=8,this.compatible_brands=[];for(var r=0;t>=4;)this.compatible_brands[r]=e.readString(4),t-=4,r++}),s.createFullBoxCtor("hdlr",function(e){this.version===0&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]==="\\0"&&(this.name=this.name.slice(0,-1)))}),s.createBoxCtor("hvcC",function(e){var t,r,l,h;this.configurationVersion=e.readUint8(),h=e.readUint8(),this.general_profile_space=h>>6,this.general_tier_flag=(h&32)>>5,this.general_profile_idc=h&31,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,this.chroma_format_idc=e.readUint8()&3,this.bit_depth_luma_minus8=e.readUint8()&7,this.bit_depth_chroma_minus8=e.readUint8()&7,this.avgFrameRate=e.readUint16(),h=e.readUint8(),this.constantFrameRate=h>>6,this.numTemporalLayers=(h&13)>>3,this.temporalIdNested=(h&4)>>2,this.lengthSizeMinusOne=h&3,this.nalu_arrays=[];var m=e.readUint8();for(t=0;t<m;t++){var y=[];this.nalu_arrays.push(y),h=e.readUint8(),y.completeness=(h&128)>>7,y.nalu_type=h&63;var b=e.readUint16();for(r=0;r<b;r++){var U={};y.push(U),l=e.readUint16(),U.data=e.readUint8Array(l)}}}),s.createFullBoxCtor("iinf",function(e){var t;this.version===0?this.entry_count=e.readUint16():this.entry_count=e.readUint32(),this.item_infos=[];for(var r=0;r<this.entry_count;r++)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)t.box.type!=="infe"&&n.error("BoxParser","Expected \'infe\' box, got "+t.box.type),this.item_infos[r]=t.box;else return}),s.createFullBoxCtor("iloc",function(e){var t;t=e.readUint8(),this.offset_size=t>>4&15,this.length_size=t&15,t=e.readUint8(),this.base_offset_size=t>>4&15,this.version===1||this.version===2?this.index_size=t&15:this.index_size=0,this.items=[];var r=0;if(this.version<2)r=e.readUint16();else if(this.version===2)r=e.readUint32();else throw"version of iloc box not supported";for(var l=0;l<r;l++){var h={};if(this.items.push(h),this.version<2)h.item_ID=e.readUint16();else if(this.version===2)h.item_ID=e.readUint32();else throw"version of iloc box not supported";switch(this.version===1||this.version===2?h.construction_method=e.readUint16()&15:h.construction_method=0,h.data_reference_index=e.readUint16(),this.base_offset_size){case 0:h.base_offset=0;break;case 4:h.base_offset=e.readUint32();break;case 8:h.base_offset=e.readUint64();break;default:throw"Error reading base offset size"}var m=e.readUint16();h.extents=[];for(var y=0;y<m;y++){var b={};if(h.extents.push(b),this.version===1||this.version===2)switch(this.index_size){case 0:b.extent_index=0;break;case 4:b.extent_index=e.readUint32();break;case 8:b.extent_index=e.readUint64();break;default:throw"Error reading extent index"}switch(this.offset_size){case 0:b.extent_offset=0;break;case 4:b.extent_offset=e.readUint32();break;case 8:b.extent_offset=e.readUint64();break;default:throw"Error reading extent index"}switch(this.length_size){case 0:b.extent_length=0;break;case 4:b.extent_length=e.readUint32();break;case 8:b.extent_length=e.readUint64();break;default:throw"Error reading extent index"}}}}),s.createBoxCtor("imir",function(e){var t=e.readUint8();this.reserved=t>>7,this.axis=t&1}),s.createFullBoxCtor("infe",function(e){if((this.version===0||this.version===1)&&(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),this.version===1){this.extension_type=e.readString(4),n.warn("BoxParser","Cannot parse extension type"),e.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=e.readUint16():this.version===3&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),this.item_type==="mime"?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):this.item_type==="uri "&&(this.item_uri_type=e.readCString()))}),s.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t<entry_count;t++){var l={};this.associations.push(l),this.version<1?l.id=e.readUint16():l.id=e.readUint32();var h=e.readUint8();for(l.props=[],r=0;r<h;r++){var m=e.readUint8(),y={};l.props.push(y),y.essential=(m&128)>>7===1,this.flags&1?y.property_index=(m&127)<<8|e.readUint8():y.property_index=m&127}}}),s.createFullBoxCtor("iref",function(e){var t,r;for(this.references=[];e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),t.code===s.OK)this.version===0?r=new s.SingleItemTypeReferenceBox(t.type,t.size,t.hdr_size,t.start):r=new s.SingleItemTypeReferenceBoxLarge(t.type,t.size,t.hdr_size,t.start),r.write===s.Box.prototype.write&&r.type!=="mdat"&&(n.warn("BoxParser",r.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),this.references.push(r);else return}),s.createBoxCtor("irot",function(e){this.angle=e.readUint8()&3}),s.createFullBoxCtor("ispe",function(e){this.image_width=e.readUint32(),this.image_height=e.readUint32()}),s.createFullBoxCtor("kind",function(e){this.schemeURI=e.readCString(),this.value=e.readCString()}),s.createFullBoxCtor("leva",function(e){var t=e.readUint8();this.levels=[];for(var r=0;r<t;r++){var l={};this.levels[r]=l,l.track_ID=e.readUint32();var h=e.readUint8();switch(l.padding_flag=h>>7,l.assignment_type=h&127,l.assignment_type){case 0:l.grouping_type=e.readString(4);break;case 1:l.grouping_type=e.readString(4),l.grouping_type_parameter=e.readUint32();break;case 2:break;case 3:break;case 4:l.sub_track_id=e.readUint32();break;default:n.warn("BoxParser","Unknown leva assignement type")}}}),s.createBoxCtor("lhvC",function(e){var t,r,l;this.configurationVersion=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,l=e.readUint8(),this.numTemporalLayers=(l&13)>>3,this.temporalIdNested=(l&4)>>2,this.lengthSizeMinusOne=l&3,this.nalu_arrays=[];var h=e.readUint8();for(t=0;t<h;t++){var m=[];this.nalu_arrays.push(m),l=e.readUint8(),m.completeness=(l&128)>>7,m.nalu_type=l&63;var y=e.readUint16();for(r=0;r<y;r++){var b={};m.push(b);var U=e.readUint16();b.data=e.readUint8Array(U)}}}),s.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),s.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()});function p(e,t){this.x=e,this.y=t}p.prototype.toString=function(){return"("+this.x+","+this.y+")"},s.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]=new p(e.readUint16(),e.readUint16()),this.display_primaries[1]=new p(e.readUint16(),e.readUint16()),this.display_primaries[2]=new p(e.readUint16(),e.readUint16()),this.white_point=new p(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),s.createFullBoxCtor("mdhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),s.createFullBoxCtor("mehd",function(e){this.flags&1&&(n.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),this.version==1?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),s.createFullBoxCtor("meta",function(e){this.boxes=[],s.ContainerBox.prototype.parse.call(this,e)}),s.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),s.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),s.createFullBoxCtor("mskC",function(e){this.bits_per_pixel=e.readUint8()}),s.createFullBoxCtor("mvhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),s.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),s.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),s.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r<Math.floor((t+1)/2);r++)this.padbits=e.readUint8()}),s.createBoxCtor("pasp",function(e){this.hSpacing=e.readUint32(),this.vSpacing=e.readUint32()}),s.createBoxCtor("payl",function(e){this.text=e.readString(this.size-this.hdr_size)}),s.createBoxCtor("payt",function(e){this.payloadID=e.readUint32();var t=e.readUint8();this.rtpmap_string=e.readString(t)}),s.createFullBoxCtor("pdin",function(e){var t=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var r=0;r<t;r++)this.rate[r]=e.readUint32(),this.initial_delay[r]=e.readUint32()}),s.createFullBoxCtor("pitm",function(e){this.version===0?this.item_id=e.readUint16():this.item_id=e.readUint32()}),s.createFullBoxCtor("pixi",function(e){var t;for(this.num_channels=e.readUint8(),this.bits_per_channels=[],t=0;t<this.num_channels;t++)this.bits_per_channels[t]=e.readUint8()}),s.createBoxCtor("pmax",function(e){this.bytes=e.readUint32()}),s.createFullBoxCtor("prdi",function(e){if(this.step_count=e.readUint16(),this.item_count=[],this.flags&2)for(var t=0;t<this.step_count;t++)this.item_count[t]=e.readUint16()}),s.createFullBoxCtor("prft",function(e){this.ref_track_id=e.readUint32(),this.ntp_timestamp=e.readUint64(),this.version===0?this.media_time=e.readUint32():this.media_time=e.readUint64()}),s.createFullBoxCtor("pssh",function(e){if(this.system_id=s.parseHex16(e),this.version>0){var t=e.readUint32();this.kid=[];for(var r=0;r<t;r++)this.kid[r]=s.parseHex16(e)}var l=e.readUint32();l>0&&(this.data=e.readUint8Array(l))}),s.createFullBoxCtor("clef",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createFullBoxCtor("enof",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createFullBoxCtor("prof",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),s.createBoxCtor("rtp ",function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)}),s.createFullBoxCtor("saio",function(e){this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var r=0;r<t;r++)this.version===0?this.offset[r]=e.readUint32():this.offset[r]=e.readUint64()}),s.createFullBoxCtor("saiz",function(e){if(this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32()),this.default_sample_info_size=e.readUint8(),this.sample_count=e.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(var t=0;t<this.sample_count;t++)this.sample_info_size[t]=e.readUint8()}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"mett",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"metx",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"sbtt",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"stpp",function(e){this.parseHeader(e),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.auxiliary_mime_types=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"stxt",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"tx3g",function(e){this.parseHeader(e),this.displayFlags=e.readUint32(),this.horizontal_justification=e.readInt8(),this.vertical_justification=e.readInt8(),this.bg_color_rgba=e.readUint8Array(4),this.box_record=e.readInt16Array(4),this.style_record=e.readUint8Array(12),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"wvtt",function(e){this.parseHeader(e),this.parseFooter(e)}),s.createSampleGroupCtor("alst",function(e){var t,r=e.readUint16();for(this.first_output_sample=e.readUint16(),this.sample_offset=[],t=0;t<r;t++)this.sample_offset[t]=e.readUint32();var l=this.description_length-4-4*r;for(this.num_output_samples=[],this.num_total_samples=[],t=0;t<l/4;t++)this.num_output_samples[t]=e.readUint16(),this.num_total_samples[t]=e.readUint16()}),s.createSampleGroupCtor("avll",function(e){this.layerNumber=e.readUint8(),this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()}),s.createSampleGroupCtor("avss",function(e){this.subSequenceIdentifier=e.readUint16(),this.layerNumber=e.readUint8();var t=e.readUint8();this.durationFlag=t>>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),l=0;l<r;l++){var h={};this.dependency.push(h),h.subSeqDirectionFlag=e.readUint8(),h.layerNumber=e.readUint8(),h.subSequenceIdentifier=e.readUint16()}}),s.createSampleGroupCtor("dtrt",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("mvif",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("prol",function(e){this.roll_distance=e.readInt16()}),s.createSampleGroupCtor("rap ",function(e){var t=e.readUint8();this.num_leading_samples_known=t>>7,this.num_leading_samples=t&127}),s.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)n.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t<this.operation_point_count;t++)this.available_bitrate[t]=e.readUint32(),this.target_rate_share[t]=e.readUint16()}this.maximum_bitrate=e.readUint32(),this.minimum_bitrate=e.readUint32(),this.discard_priority=e.readUint8()}}),s.createSampleGroupCtor("roll",function(e){this.roll_distance=e.readInt16()}),s.SampleGroupEntry.prototype.parse=function(e){n.warn("BoxParser","Unknown Sample Group type: "+this.grouping_type),this.data=e.readUint8Array(this.description_length)},s.createSampleGroupCtor("scif",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("scnm",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("seig",function(e){this.reserved=e.readUint8();var t=e.readUint8();this.crypt_byte_block=t>>4,this.skip_byte_block=t&15,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=s.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),s.createSampleGroupCtor("stsa",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("sync",function(e){var t=e.readUint8();this.NAL_unit_type=t&63}),s.createSampleGroupCtor("tele",function(e){var t=e.readUint8();this.level_independently_decodable=t>>7}),s.createSampleGroupCtor("tsas",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("tscl",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("vipr",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),this.version===1?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.entries.push(l),l.sample_count=e.readInt32(),l.group_description_index=e.readInt32()}});function g(e,t){this.bad_pixel_row=e,this.bad_pixel_column=t}g.prototype.toString=function(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"},s.createFullBoxCtor("sbpm",function(e){var t;for(this.component_count=e.readUint16(),this.component_index=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16());var r=e.readUint8();for(this.correction_applied=(r&128)==128,this.num_bad_rows=e.readUint32(),this.num_bad_cols=e.readUint32(),this.num_bad_pixels=e.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[],t=0;t<this.num_bad_rows;t++)this.bad_rows.push(e.readUint32());for(t=0;t<this.num_bad_cols;t++)this.bad_columns.push(e.readUint32());for(t=0;t<this.num_bad_pixels;t++){var l=e.readUint32(),h=e.readUint32();this.bad_pixels.push(new g(l,h))}}),s.createFullBoxCtor("schm",function(e){this.scheme_type=e.readString(4),this.scheme_version=e.readUint32(),this.flags&1&&(this.scheme_uri=e.readString(this.size-this.hdr_size-8))}),s.createBoxCtor("sdp ",function(e){this.sdptext=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("sdtp",function(e){var t,r=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var l=0;l<r;l++)t=e.readUint8(),this.is_leading[l]=t>>6,this.sample_depends_on[l]=t>>4&3,this.sample_is_depended_on[l]=t>>2&3,this.sample_has_redundancy[l]=t&3}),s.createFullBoxCtor("senc"),s.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),n.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l;s[this.grouping_type+"SampleGroupEntry"]?l=new s[this.grouping_type+"SampleGroupEntry"](this.grouping_type):l=new s.SampleGroupEntry(this.grouping_type),this.entries.push(l),this.version===1?this.default_length===0?l.description_length=e.readUint32():l.description_length=this.default_length:l.description_length=this.default_length,l.write===s.SampleGroupEntry.prototype.write&&(n.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),l.data=e.readUint8Array(l.description_length),e.position-=l.description_length),l.parse(e)}}),s.createFullBoxCtor("sidx",function(e){this.reference_ID=e.readUint32(),this.timescale=e.readUint32(),this.version===0?(this.earliest_presentation_time=e.readUint32(),this.first_offset=e.readUint32()):(this.earliest_presentation_time=e.readUint64(),this.first_offset=e.readUint64()),e.readUint16(),this.references=[];for(var t=e.readUint16(),r=0;r<t;r++){var l={};this.references.push(l);var h=e.readUint32();l.reference_type=h>>31&1,l.referenced_size=h&2147483647,l.subsegment_duration=e.readUint32(),h=e.readUint32(),l.starts_with_SAP=h>>31&1,l.SAP_type=h>>28&7,l.SAP_delta_time=h&268435455}}),s.SingleItemTypeReferenceBox=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.SingleItemTypeReferenceBox.prototype=new s.Box,s.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r<t;r++)this.references[r]={},this.references[r].to_item_ID=e.readUint16()},s.SingleItemTypeReferenceBoxLarge=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.SingleItemTypeReferenceBoxLarge.prototype=new s.Box,s.SingleItemTypeReferenceBoxLarge.prototype.parse=function(e){this.from_item_ID=e.readUint32();var t=e.readUint16();this.references=[];for(var r=0;r<t;r++)this.references[r]={},this.references[r].to_item_ID=e.readUint32()},s.createFullBoxCtor("SmDm",function(e){this.primaryRChromaticity_x=e.readUint16(),this.primaryRChromaticity_y=e.readUint16(),this.primaryGChromaticity_x=e.readUint16(),this.primaryGChromaticity_y=e.readUint16(),this.primaryBChromaticity_x=e.readUint16(),this.primaryBChromaticity_y=e.readUint16(),this.whitePointChromaticity_x=e.readUint16(),this.whitePointChromaticity_y=e.readUint16(),this.luminanceMax=e.readUint32(),this.luminanceMin=e.readUint32()}),s.createFullBoxCtor("smhd",function(e){this.balance=e.readUint16(),e.readUint16()}),s.createFullBoxCtor("ssix",function(e){this.subsegments=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.subsegments.push(l),l.ranges=[];for(var h=e.readUint32(),m=0;m<h;m++){var y={};l.ranges.push(y),y.level=e.readUint8(),y.range_size=e.readUint24()}}}),s.createFullBoxCtor("stco",function(e){var t;if(t=e.readUint32(),this.chunk_offsets=[],this.version===0)for(var r=0;r<t;r++)this.chunk_offsets.push(e.readUint32())}),s.createFullBoxCtor("stdp",function(e){var t=(this.size-this.hdr_size)/2;this.priority=[];for(var r=0;r<t;r++)this.priority[r]=e.readUint16()}),s.createFullBoxCtor("sthd"),s.createFullBoxCtor("stri",function(e){this.switch_group=e.readUint16(),this.alternate_group=e.readUint16(),this.sub_track_id=e.readUint32();var t=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var r=0;r<t;r++)this.attribute_list[r]=e.readUint32()}),s.createFullBoxCtor("stsc",function(e){var t,r;if(t=e.readUint32(),this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(r=0;r<t;r++)this.first_chunk.push(e.readUint32()),this.samples_per_chunk.push(e.readUint32()),this.sample_description_index.push(e.readUint32())}),s.createFullBoxCtor("stsd",function(e){var t,r,l,h;for(this.entries=[],l=e.readUint32(),t=1;t<=l;t++)if(r=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),r.code===s.OK)s[r.type+"SampleEntry"]?(h=new s[r.type+"SampleEntry"](r.size),h.hdr_size=r.hdr_size,h.start=r.start):(n.warn("BoxParser","Unknown sample entry type: "+r.type),h=new s.SampleEntry(r.type,r.size,r.hdr_size,r.start)),h.write===s.SampleEntry.prototype.write&&(n.info("BoxParser","SampleEntry "+h.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),h.parseDataAndRewind(e)),h.parse(e),this.entries.push(h);else return}),s.createFullBoxCtor("stsg",function(e){this.grouping_type=e.readUint32();var t=e.readUint16();this.group_description_index=[];for(var r=0;r<t;r++)this.group_description_index[r]=e.readUint32()}),s.createFullBoxCtor("stsh",function(e){var t,r;if(t=e.readUint32(),this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(r=0;r<t;r++)this.shadowed_sample_numbers.push(e.readUint32()),this.sync_sample_numbers.push(e.readUint32())}),s.createFullBoxCtor("stss",function(e){var t,r;if(r=e.readUint32(),this.version===0)for(this.sample_numbers=[],t=0;t<r;t++)this.sample_numbers.push(e.readUint32())}),s.createFullBoxCtor("stsz",function(e){var t;if(this.sample_sizes=[],this.version===0)for(this.sample_size=e.readUint32(),this.sample_count=e.readUint32(),t=0;t<this.sample_count;t++)this.sample_size===0?this.sample_sizes.push(e.readUint32()):this.sample_sizes[t]=this.sample_size}),s.createFullBoxCtor("stts",function(e){var t,r,l;if(t=e.readUint32(),this.sample_counts=[],this.sample_deltas=[],this.version===0)for(r=0;r<t;r++)this.sample_counts.push(e.readUint32()),l=e.readInt32(),l<0&&(n.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),l=1),this.sample_deltas.push(l)}),s.createFullBoxCtor("stvi",function(e){var t=e.readUint32();this.single_view_allowed=t&3,this.stereo_scheme=e.readUint32();var r=e.readUint32();this.stereo_indication_type=e.readString(r);var l,h;for(this.boxes=[];e.getPosition()<this.start+this.size;)if(l=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),l.code===s.OK)h=l.box,this.boxes.push(h),this[h.type]=h;else return}),s.createBoxCtor("styp",function(e){s.ftypBox.prototype.parse.call(this,e)}),s.createFullBoxCtor("stz2",function(e){var t,r;if(this.sample_sizes=[],this.version===0)if(this.reserved=e.readUint24(),this.field_size=e.readUint8(),r=e.readUint32(),this.field_size===4)for(t=0;t<r;t+=2){var l=e.readUint8();this.sample_sizes[t]=l>>4&15,this.sample_sizes[t+1]=l&15}else if(this.field_size===8)for(t=0;t<r;t++)this.sample_sizes[t]=e.readUint8();else if(this.field_size===16)for(t=0;t<r;t++)this.sample_sizes[t]=e.readUint16();else n.error("BoxParser","Error in length field in stz2 box")}),s.createFullBoxCtor("subs",function(e){var t,r,l,h;for(l=e.readUint32(),this.entries=[],t=0;t<l;t++){var m={};if(this.entries[t]=m,m.sample_delta=e.readUint32(),m.subsamples=[],h=e.readUint16(),h>0)for(r=0;r<h;r++){var y={};m.subsamples.push(y),this.version==1?y.size=e.readUint32():y.size=e.readUint16(),y.priority=e.readUint8(),y.discardable=e.readUint8(),y.codec_specific_parameters=e.readUint32()}}}),s.createFullBoxCtor("tenc",function(e){if(e.readUint8(),this.version===0)e.readUint8();else{var t=e.readUint8();this.default_crypt_byte_block=t>>4&15,this.default_skip_byte_block=t&15}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=s.parseHex16(e),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),s.createFullBoxCtor("tfdt",function(e){this.version==1?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),s.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0}),s.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=t&3,this.entries=[];for(var r=e.readUint32(),l=0;l<r;l++)this.version===1?(this.time=e.readUint64(),this.moof_offset=e.readUint64()):(this.time=e.readUint32(),this.moof_offset=e.readUint32()),this.traf_number=e["readUint"+8*(this.length_size_of_traf_num+1)](),this.trun_number=e["readUint"+8*(this.length_size_of_trun_num+1)](),this.sample_number=e["readUint"+8*(this.length_size_of_sample_num+1)]()}),s.createFullBoxCtor("tkhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint32()),e.readUint32Array(2),this.layer=e.readInt16(),this.alternate_group=e.readInt16(),this.volume=e.readInt16()>>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),s.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),s.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),s.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),s.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),s.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),s.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},s.createTrackGroupCtor("msrc"),s.TrackReferenceTypeBox=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.TrackReferenceTypeBox.prototype=new s.Box,s.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},s.trefBox.prototype.parse=function(e){for(var t,r;e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),t.code===s.OK)r=new s.TrackReferenceTypeBox(t.type,t.size,t.hdr_size,t.start),r.write===s.Box.prototype.write&&r.type!=="mdat"&&(n.info("BoxParser","TrackReference "+r.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),this.boxes.push(r);else return},s.createFullBoxCtor("trep",function(e){for(this.track_ID=e.readUint32(),this.boxes=[];e.getPosition()<this.start+this.size;)if(ret=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),ret.code===s.OK)box=ret.box,this.boxes.push(box);else return}),s.createFullBoxCtor("trex",function(e){this.track_id=e.readUint32(),this.default_sample_description_index=e.readUint32(),this.default_sample_duration=e.readUint32(),this.default_sample_size=e.readUint32(),this.default_sample_flags=e.readUint32()}),s.createBoxCtor("trpy",function(e){this.bytessent=e.readUint64()}),s.createFullBoxCtor("trun",function(e){var t=0;if(this.sample_count=e.readUint32(),t+=4,this.size-this.hdr_size>t&&this.flags&s.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&s.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r<this.sample_count;r++)this.flags&s.TRUN_FLAGS_DURATION&&(this.sample_duration[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_SIZE&&(this.sample_size[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_FLAGS&&(this.sample_flags[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?this.sample_composition_time_offset[r]=e.readUint32():this.sample_composition_time_offset[r]=e.readInt32())}),s.createFullBoxCtor("tsel",function(e){this.switch_group=e.readUint32();var t=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var r=0;r<t;r++)this.attribute_list[r]=e.readUint32()}),s.createFullBoxCtor("txtC",function(e){this.config=e.readCString()}),s.createBoxCtor("tyco",function(e){var t=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var r=0;r<t;r++)this.compatible_brands[r]=e.readString(4)}),s.createFullBoxCtor("udes",function(e){this.lang=e.readCString(),this.name=e.readCString(),this.description=e.readCString(),this.tags=e.readCString()}),s.createFullBoxCtor("uncC",function(e){var t;if(this.profile=e.readUint32(),this.version!=1){if(this.version==0){for(this.component_count=e.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16()),this.component_bit_depth_minus_one.push(e.readUint8()),this.component_format.push(e.readUint8()),this.component_align_size.push(e.readUint8());this.sampling_type=e.readUint8(),this.interleave_type=e.readUint8(),this.block_size=e.readUint8();var r=e.readUint8();this.component_little_endian=r>>7&1,this.block_pad_lsb=r>>6&1,this.block_little_endian=r>>5&1,this.block_reversed=r>>4&1,this.pad_unknown=r>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}}}),s.createFullBoxCtor("url ",function(e){this.flags!==1&&(this.location=e.readCString())}),s.createFullBoxCtor("urn ",function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())}),s.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/\'/g,"&#039;")}),s.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=s.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))}),s.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),s.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=s.parseHex16(e)}),s.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t<this.fragment_count;t++){var r={},l=0,h=0;this.version===1?(l=e.readUint64(),h=e.readUint64()):(l=e.readUint32(),h=e.readUint32()),r.absolute_time=l,r.absolute_duration=h,this.entries.push(r)}}),s.createUUIDBox("6d1d9b0542d544e680e2141daff757b2",!0,!1,function(e){this.version===1?(this.absolute_time=e.readUint64(),this.duration=e.readUint64()):(this.absolute_time=e.readUint32(),this.duration=e.readUint32())}),s.createFullBoxCtor("vmhd",function(e){this.graphicsmode=e.readUint16(),this.opcolor=e.readUint16Array(3)}),s.createFullBoxCtor("vpcC",function(e){var t;this.version===1?(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=t&1,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=t&15,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=t&1,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))}),s.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("vvcC",function(e){var t,r,l={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(A){this.held_bits=A.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(A){this.held_bits=A.readUint16(),this.num_held_bits=16},extract_bits:function(A){var D=this.held_bits>>this.num_held_bits-A&(1<<A)-1;return this.num_held_bits-=A,D}};if(l.stream_read_1_bytes(e),l.extract_bits(5),this.lengthSizeMinusOne=l.extract_bits(2),this.ptl_present_flag=l.extract_bits(1),this.ptl_present_flag){l.stream_read_2_bytes(e),this.ols_idx=l.extract_bits(9),this.num_sublayers=l.extract_bits(3),this.constant_frame_rate=l.extract_bits(2),this.chroma_format_idc=l.extract_bits(2),l.stream_read_1_bytes(e),this.bit_depth_minus8=l.extract_bits(3),l.extract_bits(5);{if(l.stream_read_2_bytes(e),l.extract_bits(2),this.num_bytes_constraint_info=l.extract_bits(6),this.general_profile_idc=l.extract_bits(7),this.general_tier_flag=l.extract_bits(1),this.general_level_idc=e.readUint8(),l.stream_read_1_bytes(e),this.ptl_frame_only_constraint_flag=l.extract_bits(1),this.ptl_multilayer_enabled_flag=l.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(t=0;t<this.num_bytes_constraint_info-1;t++){var h=l.extract_bits(6);l.stream_read_1_bytes(e);var m=l.extract_bits(2);this.general_constraint_info[t]=h<<2|m}this.general_constraint_info[this.num_bytes_constraint_info-1]=l.extract_bits(6)}else l.extract_bits(6);if(this.num_sublayers>1){for(l.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,r=this.num_sublayers-2;r>=0;--r){var y=l.extract_bits(1);this.ptl_sublayer_present_mask|=y<<r}for(r=this.num_sublayers;r<=8&&this.num_sublayers>1;++r)l.extract_bits(1);for(this.sublayer_level_idc=[],r=this.num_sublayers-2;r>=0;--r)this.ptl_sublayer_present_mask&1<<r&&(this.sublayer_level_idc[r]=e.readUint8())}if(this.ptl_num_sub_profiles=e.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(t=0;t<this.ptl_num_sub_profiles;t++)this.general_sub_profile_idc.push(e.readUint32())}this.max_picture_width=e.readUint16(),this.max_picture_height=e.readUint16(),this.avg_frame_rate=e.readUint16()}var b=12,U=13;this.nalu_arrays=[];var w=e.readUint8();for(t=0;t<w;t++){var T=[];this.nalu_arrays.push(T),l.stream_read_1_bytes(e),T.completeness=l.extract_bits(1),l.extract_bits(2),T.nalu_type=l.extract_bits(5);var C=1;for(T.nalu_type!=U&&T.nalu_type!=b&&(C=e.readUint16()),r=0;r<C;r++){var I=e.readUint16();T.push({data:e.readUint8Array(I),length:I})}}}),s.createFullBoxCtor("vvnC",function(e){var t=strm.readUint8();this.lengthSizeMinusOne=t&3}),s.SampleEntry.prototype.isVideo=function(){return!1},s.SampleEntry.prototype.isAudio=function(){return!1},s.SampleEntry.prototype.isSubtitle=function(){return!1},s.SampleEntry.prototype.isMetadata=function(){return!1},s.SampleEntry.prototype.isHint=function(){return!1},s.SampleEntry.prototype.getCodec=function(){return this.type.replace(".","")},s.SampleEntry.prototype.getWidth=function(){return""},s.SampleEntry.prototype.getHeight=function(){return""},s.SampleEntry.prototype.getChannelCount=function(){return""},s.SampleEntry.prototype.getSampleRate=function(){return""},s.SampleEntry.prototype.getSampleSize=function(){return""},s.VisualSampleEntry.prototype.isVideo=function(){return!0},s.VisualSampleEntry.prototype.getWidth=function(){return this.width},s.VisualSampleEntry.prototype.getHeight=function(){return this.height},s.AudioSampleEntry.prototype.isAudio=function(){return!0},s.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},s.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},s.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},s.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},s.MetadataSampleEntry.prototype.isMetadata=function(){return!0},s.decimalToHex=function(e,t){var r=Number(e).toString(16);for(t=typeof t>"u"||t===null?t=2:t;r.length<t;)r="0"+r;return r},s.avc1SampleEntry.prototype.getCodec=s.avc2SampleEntry.prototype.getCodec=s.avc3SampleEntry.prototype.getCodec=s.avc4SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);return this.avcC?e+"."+s.decimalToHex(this.avcC.AVCProfileIndication)+s.decimalToHex(this.avcC.profile_compatibility)+s.decimalToHex(this.avcC.AVCLevelIndication):e},s.hev1SampleEntry.prototype.getCodec=s.hvc1SampleEntry.prototype.getCodec=function(){var e,t=s.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C";break}t+=this.hvcC.general_profile_idc,t+=".";var r=this.hvcC.general_profile_compatibility,l=0;for(e=0;e<32&&(l|=r&1,e!=31);e++)l<<=1,r>>=1;t+=s.decimalToHex(l,0),t+=".",this.hvcC.general_tier_flag===0?t+="L":t+="H",t+=this.hvcC.general_level_idc;var h=!1,m="";for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||h)&&(m="."+s.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+m,h=!0);t+=m}return t},s.vvc1SampleEntry.prototype.getCodec=s.vvi1SampleEntry.prototype.getCodec=function(){var e,t=s.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;var r="";if(this.vvcC.general_constraint_info){var l=[],h=0;h|=this.vvcC.ptl_frame_only_constraint<<7,h|=this.vvcC.ptl_multilayer_enabled<<6;var m;for(e=0;e<this.vvcC.general_constraint_info.length;++e)h|=this.vvcC.general_constraint_info[e]>>2&63,l.push(h),h&&(m=e),h=this.vvcC.general_constraint_info[e]>>2&3;if(m===void 0)r=".CA";else{r=".C";var y="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",b=0,U=0;for(e=0;e<=m;++e)for(b=b<<8|l[e],U+=8;U>=5;){var w=b>>U-5&31;r+=y[w],U-=5,b&=(1<<U)-1}U&&(b<<=5-U,r+=y[b&31])}}t+=r}return t},s.mp4aSampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),r=this.esds.esd.getAudioConfig();return e+"."+s.decimalToHex(t)+(r?"."+r:"")}else return e},s.stxtSampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},s.vp08SampleEntry.prototype.getCodec=s.vp09SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;t==0&&(t="00");var r=this.vpcC.bitDepth;return r==8&&(r="08"),e+".0"+this.vpcC.profile+"."+t+"."+r},s.av01SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this),t=this.av1C.seq_level_idx_0;t<10&&(t="0"+t);var r;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?r=this.av1C.twelve_bit===1?"12":"10":this.av1C.seq_profile<=2&&(r=this.av1C.high_bitdepth===1?"10":"08"),e+"."+this.av1C.seq_profile+"."+t+(this.av1C.seq_tier_0?"H":"M")+"."+r},s.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>f&&(this.size+=8),this.type==="uuid"&&(this.size+=16),n.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>f?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),this.type==="uuid"&&e.writeUint8Array(this.uuid),this.size>f&&e.writeUint64(this.size)},s.FullBox.prototype.writeHeader=function(e){this.size+=4,s.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},s.Box.prototype.write=function(e){this.type==="mdat"?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},s.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&(this.boxes[t].write(e),this.size+=this.boxes[t].size);n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.TrackReferenceTypeBox.prototype.write=function(e){this.size=this.track_ids.length*4,this.writeHeader(e),e.writeUint32Array(this.track_ids)},s.avcCBox.prototype.write=function(e){var t;for(this.size=7,t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;for(this.ext&&(this.size+=this.ext.length),this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.AVCProfileIndication),e.writeUint8(this.profile_compatibility),e.writeUint8(this.AVCLevelIndication),e.writeUint8(this.lengthSizeMinusOne+252),e.writeUint8(this.SPS.length+224),t=0;t<this.SPS.length;t++)e.writeUint16(this.SPS[t].length),e.writeUint8Array(this.SPS[t].nalu);for(e.writeUint8(this.PPS.length),t=0;t<this.PPS.length;t++)e.writeUint16(this.PPS[t].length),e.writeUint8Array(this.PPS[t].nalu);this.ext&&e.writeUint8Array(this.ext)},s.co64Box.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),t=0;t<this.chunk_offsets.length;t++)e.writeUint64(this.chunk_offsets[t])},s.cslgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(e),e.writeInt32(this.compositionToDTSShift),e.writeInt32(this.leastDecodeToDisplayDelta),e.writeInt32(this.greatestDecodeToDisplayDelta),e.writeInt32(this.compositionStartTime),e.writeInt32(this.compositionEndTime)},s.cttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),this.version===1?e.writeInt32(this.sample_offsets[t]):e.writeUint32(this.sample_offsets[t])},s.drefBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.elngBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(e),e.writeString(this.extended_language)},s.elstBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var r=this.entries[t];e.writeUint32(r.segment_duration),e.writeInt32(r.media_time),e.writeInt16(r.media_rate_integer),e.writeInt16(r.media_rate_fraction)}},s.emsgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*4+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(e),e.writeCString(this.scheme_id_uri),e.writeCString(this.value),e.writeUint32(this.timescale),e.writeUint32(this.presentation_time_delta),e.writeUint32(this.event_duration),e.writeUint32(this.id),e.writeUint8Array(this.message_data)},s.ftypBox.prototype.write=function(e){this.size=8+4*this.compatible_brands.length,this.writeHeader(e),e.writeString(this.major_brand,null,4),e.writeUint32(this.minor_version);for(var t=0;t<this.compatible_brands.length;t++)e.writeString(this.compatible_brands[t],null,4)},s.hdlrBox.prototype.write=function(e){this.size=5*4+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(e),e.writeUint32(0),e.writeString(this.handler,null,4),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeCString(this.name)},s.hvcCBox.prototype.write=function(e){var t,r;for(this.size=23,t=0;t<this.nalu_arrays.length;t++)for(this.size+=3,r=0;r<this.nalu_arrays[t].length;r++)this.size+=2+this.nalu_arrays[t][r].data.length;for(this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),e.writeUint32(this.general_profile_compatibility),e.writeUint8Array(this.general_constraint_indicator),e.writeUint8(this.general_level_idc),e.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),e.writeUint8(this.parallelismType+252),e.writeUint8(this.chroma_format_idc+252),e.writeUint8(this.bit_depth_luma_minus8+248),e.writeUint8(this.bit_depth_chroma_minus8+248),e.writeUint16(this.avgFrameRate),e.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),e.writeUint8(this.nalu_arrays.length),t=0;t<this.nalu_arrays.length;t++)for(e.writeUint8((this.nalu_arrays[t].completeness<<7)+this.nalu_arrays[t].nalu_type),e.writeUint16(this.nalu_arrays[t].length),r=0;r<this.nalu_arrays[t].length;r++)e.writeUint16(this.nalu_arrays[t][r].data.length),e.writeUint8Array(this.nalu_arrays[t][r].data)},s.kindBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(e),e.writeCString(this.schemeURI),e.writeCString(this.value)},s.mdhdBox.prototype.write=function(e){this.size=4*4+2*2,this.flags=0,this.version=0,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint16(this.language),e.writeUint16(0)},s.mehdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.fragment_duration)},s.mfhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.sequence_number)},s.mvhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=23*4+2*2,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint32(this.rate),e.writeUint16(this.volume<<8),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32Array(this.matrix),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(this.next_track_id)},s.SampleEntry.prototype.writeHeader=function(e){this.size=8,s.Box.prototype.writeHeader.call(this,e),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint16(this.data_reference_index)},s.SampleEntry.prototype.writeFooter=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e),this.size+=this.boxes[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.SampleEntry.prototype.write=function(e){this.writeHeader(e),e.writeUint8Array(this.data),this.size+=this.data.length,n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.VisualSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=2*7+6*4+32,e.writeUint16(0),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.width),e.writeUint16(this.height),e.writeUint32(this.horizresolution),e.writeUint32(this.vertresolution),e.writeUint32(0),e.writeUint16(this.frame_count),e.writeUint8(Math.min(31,this.compressorname.length)),e.writeString(this.compressorname,null,31),e.writeUint16(this.depth),e.writeInt16(-1),this.writeFooter(e)},s.AudioSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=2*4+3*4,e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.channel_count),e.writeUint16(this.samplesize),e.writeUint16(0),e.writeUint16(0),e.writeUint32(this.samplerate<<16),this.writeFooter(e)},s.stppSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,e.writeCString(this.namespace),e.writeCString(this.schema_location),e.writeCString(this.auxiliary_mime_types),this.writeFooter(e)},s.SampleGroupEntry.prototype.write=function(e){e.writeUint8Array(this.data)},s.sbgpBox.prototype.write=function(e){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(e),e.writeString(this.grouping_type,null,4),e.writeUint32(this.grouping_type_parameter),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var r=this.entries[t];e.writeInt32(r.sample_count),e.writeInt32(r.group_description_index)}},s.sgpdBox.prototype.write=function(e){var t,r;for(this.flags=0,this.size=12,t=0;t<this.entries.length;t++)r=this.entries[t],this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=r.data.length);for(this.writeHeader(e),e.writeString(this.grouping_type,null,4),this.version===1&&e.writeUint32(this.default_length),this.version>=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t<this.entries.length;t++)r=this.entries[t],this.version===1&&this.default_length===0&&e.writeUint32(r.description_length),r.write(e)},s.sidxBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*4+2+2+12*this.references.length,this.writeHeader(e),e.writeUint32(this.reference_ID),e.writeUint32(this.timescale),e.writeUint32(this.earliest_presentation_time),e.writeUint32(this.first_offset),e.writeUint16(0),e.writeUint16(this.references.length);for(var t=0;t<this.references.length;t++){var r=this.references[t];e.writeUint32(r.reference_type<<31|r.referenced_size),e.writeUint32(r.subsegment_duration),e.writeUint32(r.starts_with_SAP<<31|r.SAP_type<<28|r.SAP_delta_time)}},s.smhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=4,this.writeHeader(e),e.writeUint16(this.balance),e.writeUint16(0)},s.stcoBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),e.writeUint32Array(this.chunk_offsets)},s.stscBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(e),e.writeUint32(this.first_chunk.length),t=0;t<this.first_chunk.length;t++)e.writeUint32(this.first_chunk[t]),e.writeUint32(this.samples_per_chunk[t]),e.writeUint32(this.sample_description_index[t])},s.stsdBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(e),e.writeUint32(this.entries.length),this.size+=4,t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.stshBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(e),e.writeUint32(this.shadowed_sample_numbers.length),t=0;t<this.shadowed_sample_numbers.length;t++)e.writeUint32(this.shadowed_sample_numbers[t]),e.writeUint32(this.sync_sample_numbers[t])},s.stssBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(e),e.writeUint32(this.sample_numbers.length),e.writeUint32Array(this.sample_numbers)},s.stszBox.prototype.write=function(e){var t,r=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(t=0;t+1<this.sample_sizes.length;)if(this.sample_sizes[t+1]!==this.sample_sizes[0]){r=!1;break}else t++;else r=!1;this.size=8,r||(this.size+=4*this.sample_sizes.length),this.writeHeader(e),r?e.writeUint32(this.sample_sizes[0]):e.writeUint32(0),e.writeUint32(this.sample_sizes.length),r||e.writeUint32Array(this.sample_sizes)},s.sttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),e.writeUint32(this.sample_deltas[t])},s.tfdtBox.prototype.write=function(e){var t=Math.pow(2,32)-1;this.version=this.baseMediaDecodeTime>t?1:0,this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(e),this.version===1?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},s.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&s.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&s.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&s.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&s.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&s.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},s.tkhdBox.prototype.write=function(e){this.version=0,this.size=4*18+2*4,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},s.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},s.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&s.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&s.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&s.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&s.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&s.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&s.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&s.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t<this.sample_count;t++)this.flags&s.TRUN_FLAGS_DURATION&&e.writeUint32(this.sample_duration[t]),this.flags&s.TRUN_FLAGS_SIZE&&e.writeUint32(this.sample_size[t]),this.flags&s.TRUN_FLAGS_FLAGS&&e.writeUint32(this.sample_flags[t]),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?e.writeUint32(this.sample_composition_time_offset[t]):e.writeInt32(this.sample_composition_time_offset[t]))},s["url Box"].prototype.write=function(e){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(e),this.location&&e.writeCString(this.location)},s["urn Box"].prototype.write=function(e){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(e),e.writeCString(this.name),this.location&&e.writeCString(this.location)},s.vmhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=8,this.writeHeader(e),e.writeUint16(this.graphicsmode),e.writeUint16Array(this.opcolor)},s.cttsBox.prototype.unpack=function(e){var t,r,l;for(l=0,t=0;t<this.sample_counts.length;t++)for(r=0;r<this.sample_counts[t];r++)e[l].pts=e[l].dts+this.sample_offsets[t],l++},s.sttsBox.prototype.unpack=function(e){var t,r,l;for(l=0,t=0;t<this.sample_counts.length;t++)for(r=0;r<this.sample_counts[t];r++)l===0?e[l].dts=0:e[l].dts=e[l-1].dts+this.sample_deltas[t],l++},s.stcoBox.prototype.unpack=function(e){var t;for(t=0;t<this.chunk_offsets.length;t++)e[t].offset=this.chunk_offsets[t]},s.stscBox.prototype.unpack=function(e){var t,r,l,h,m;for(h=0,m=0,t=0;t<this.first_chunk.length;t++)for(r=0;r<(t+1<this.first_chunk.length?this.first_chunk[t+1]:1/0);r++)for(m++,l=0;l<this.samples_per_chunk[t];l++){if(e[h])e[h].description_index=this.sample_description_index[t],e[h].chunk_index=m;else return;h++}},s.stszBox.prototype.unpack=function(e){var t;for(t=0;t<this.sample_sizes.length;t++)e[t].size=this.sample_sizes[t]},s.DIFF_BOXES_PROP_NAMES=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],s.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=["compatible_brands","matrix","opcolor","sample_counts","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"],s.boxEqualFields=function(e,t){if(e&&!t)return!1;var r;for(r in e)if(!(s.DIFF_BOXES_PROP_NAMES.indexOf(r)>-1)){if(e[r]instanceof s.Box||t[r]instanceof s.Box)continue;if(typeof e[r]>"u"||typeof t[r]>"u")continue;if(typeof e[r]=="function"||typeof t[r]=="function")continue;if(e.subBoxNames&&e.subBoxNames.indexOf(r.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(r.slice(0,4))>-1)continue;if(r==="data"||r==="start"||r==="size"||r==="creation_time"||r==="modification_time")continue;if(s.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(r)>-1)continue;if(e[r]!==t[r])return!1}return!0},s.boxEqual=function(e,t){if(!s.boxEqualFields(e,t))return!1;for(var r=0;r<s.DIFF_BOXES_PROP_NAMES.length;r++){var l=s.DIFF_BOXES_PROP_NAMES[r];if(e[l]&&t[l]&&!s.boxEqual(e[l],t[l]))return!1}return!0};var _=function(){};_.prototype.parseSample=function(e){var t,r,l=new o(e.buffer);for(t=[];!l.isEos();)r=s.parseOneBox(l,!1),r.code===s.OK&&r.box.type==="vttc"&&t.push(r.box);return t},_.prototype.getText=function(e,t,r){function l(w,T,C){return C=C||"0",w=w+"",w.length>=T?w:new Array(T-w.length+1).join(C)+w}function h(w){var T=Math.floor(w/3600),C=Math.floor((w-T*3600)/60),I=Math.floor(w-T*3600-C*60),A=Math.floor((w-T*3600-C*60-I)*1e3);return""+l(T,2)+":"+l(C,2)+":"+l(I,2)+"."+l(A,3)}for(var m=this.parseSample(r),y="",b=0;b<m.length;b++){var U=m[b];y+=h(e)+" --> "+h(t)+`\\r\n`,y+=U.payl.text}return y};var v=function(){};v.prototype.parseSample=function(e){var t={},r;t.resources=[];var l=new o(e.data.buffer);if(!e.subsamples||e.subsamples.length===0)t.documentString=l.readString(e.data.length);else if(t.documentString=l.readString(e.subsamples[0].size),e.subsamples.length>1)for(r=1;r<e.subsamples.length;r++)t.resources[r]=l.readUint8Array(e.subsamples[r].size);return typeof DOMParser<"u"&&(t.document=new DOMParser().parseFromString(t.documentString,"application/xml")),t};var x=function(){};x.prototype.parseSample=function(e){var t,r=new o(e.data.buffer);return t=r.readString(e.data.length),t},x.prototype.parseConfig=function(e){var t,r=new o(e.buffer);return r.readUint32(),t=r.readCString(),t},a.VTTin4Parser=_,a.XMLSubtitlein4Parser=v,a.Textin4Parser=x;var S=function(e){this.stream=e||new c,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.items=[],this.entity_groups=[],this.onSidx=null,this.sidxSent=!1};S.prototype.setSegmentOptions=function(e,t,r){var l=this.getTrackById(e);if(l){var h={};this.fragmentedTracks.push(h),h.id=e,h.user=t,h.trak=l,l.nextSample=0,h.segmentStream=null,h.nb_samples=1e3,h.rapAlignement=!0,r&&(r.nbSamples&&(h.nb_samples=r.nbSamples),r.rapAlignement&&(h.rapAlignement=r.rapAlignement))}},S.prototype.unsetSegmentOptions=function(e){for(var t=-1,r=0;r<this.fragmentedTracks.length;r++){var l=this.fragmentedTracks[r];l.id==e&&(t=r)}t>-1&&this.fragmentedTracks.splice(t,1)},S.prototype.setExtractionOptions=function(e,t,r){var l=this.getTrackById(e);if(l){var h={};this.extractedTracks.push(h),h.id=e,h.user=t,h.trak=l,l.nextSample=0,h.nb_samples=1e3,h.samples=[],r&&r.nbSamples&&(h.nb_samples=r.nbSamples)}},S.prototype.unsetExtractionOptions=function(e){for(var t=-1,r=0;r<this.extractedTracks.length;r++){var l=this.extractedTracks[r];l.id==e&&(t=r)}t>-1&&this.extractedTracks.splice(t,1)},S.prototype.parse=function(){var e,t,r=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),e=s.parseOneBox(this.stream,r),e.code===s.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}else return;else{var l;switch(t=e.box,l=t.type!=="uuid"?t.type:t.uuid,this.boxes.push(t),l){case"mdat":this.mdats.push(t);break;case"moof":this.moofs.push(t);break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[l]!==void 0&&n.warn("ISOFile","Duplicate Box of type: "+l+", overriding previous occurrence"),this[l]=t;break}this.updateUsedBytes&&this.updateUsedBytes(t,e)}},S.prototype.checkBuffer=function(e){if(e==null)throw"Buffer must be defined and non empty";if(e.fileStart===void 0)throw"Buffer must have a fileStart property";return e.byteLength===0?(n.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(n.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(n.warn("ISOFile","Not ready to start parsing"),!1))},S.prototype.appendBuffer=function(e,t){var r;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(t),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):this.nextParsePosition?r=this.nextParsePosition:r=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(n.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),r},S.prototype.getInfo=function(){var e,t,r={},l,h,m,y,b=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(r.hasMoov=!0,r.duration=this.moov.mvhd.duration,r.timescale=this.moov.mvhd.timescale,r.isFragmented=this.moov.mvex!=null,r.isFragmented&&this.moov.mvex.mehd&&(r.fragment_duration=this.moov.mvex.mehd.fragment_duration),r.isProgressive=this.isProgressive,r.hasIOD=this.moov.iods!=null,r.brands=[],r.brands.push(this.ftyp.major_brand),r.brands=r.brands.concat(this.ftyp.compatible_brands),r.created=new Date(b+this.moov.mvhd.creation_time*1e3),r.modified=new Date(b+this.moov.mvhd.modification_time*1e3),r.tracks=[],r.audioTracks=[],r.videoTracks=[],r.subtitleTracks=[],r.metadataTracks=[],r.hintTracks=[],r.otherTracks=[],e=0;e<this.moov.traks.length;e++){if(l=this.moov.traks[e],y=l.mdia.minf.stbl.stsd.entries[0],h={},r.tracks.push(h),h.id=l.tkhd.track_id,h.name=l.mdia.hdlr.name,h.references=[],l.tref)for(t=0;t<l.tref.boxes.length;t++)m={},h.references.push(m),m.type=l.tref.boxes[t].type,m.track_ids=l.tref.boxes[t].track_ids;l.edts&&(h.edits=l.edts.elst.entries),h.created=new Date(b+l.tkhd.creation_time*1e3),h.modified=new Date(b+l.tkhd.modification_time*1e3),h.movie_duration=l.tkhd.duration,h.movie_timescale=r.timescale,h.layer=l.tkhd.layer,h.alternate_group=l.tkhd.alternate_group,h.volume=l.tkhd.volume,h.matrix=l.tkhd.matrix,h.track_width=l.tkhd.width/65536,h.track_height=l.tkhd.height/65536,h.timescale=l.mdia.mdhd.timescale,h.cts_shift=l.mdia.minf.stbl.cslg,h.duration=l.mdia.mdhd.duration,h.samples_duration=l.samples_duration,h.codec=y.getCodec(),h.kind=l.udta&&l.udta.kinds.length?l.udta.kinds[0]:{schemeURI:"",value:""},h.language=l.mdia.elng?l.mdia.elng.extended_language:l.mdia.mdhd.languageString,h.nb_samples=l.samples.length,h.size=l.samples_size,h.bitrate=h.size*8*h.timescale/h.samples_duration,y.isAudio()?(h.type="audio",r.audioTracks.push(h),h.audio={},h.audio.sample_rate=y.getSampleRate(),h.audio.channel_count=y.getChannelCount(),h.audio.sample_size=y.getSampleSize()):y.isVideo()?(h.type="video",r.videoTracks.push(h),h.video={},h.video.width=y.getWidth(),h.video.height=y.getHeight()):y.isSubtitle()?(h.type="subtitles",r.subtitleTracks.push(h)):y.isHint()?(h.type="metadata",r.hintTracks.push(h)):y.isMetadata()?(h.type="metadata",r.metadataTracks.push(h)):(h.type="metadata",r.otherTracks.push(h))}else r.hasMoov=!1;if(r.mime="",r.hasMoov&&r.tracks){for(r.videoTracks&&r.videoTracks.length>0?r.mime+=\'video/mp4; codecs="\':r.audioTracks&&r.audioTracks.length>0?r.mime+=\'audio/mp4; codecs="\':r.mime+=\'application/mp4; codecs="\',e=0;e<r.tracks.length;e++)e!==0&&(r.mime+=","),r.mime+=r.tracks[e].codec;r.mime+=\'"; profiles="\',r.mime+=this.ftyp.compatible_brands.join(),r.mime+=\'"\'}return r},S.prototype.setNextSeekPositionFromSample=function(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)},S.prototype.processSamples=function(e){var t,r;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==null)for(t=0;t<this.fragmentedTracks.length;t++){var l=this.fragmentedTracks[t];for(r=l.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){n.debug("ISOFile","Creating media fragment on track #"+l.id+" for sample "+r.nextSample);var h=this.createFragment(l.id,r.nextSample,l.segmentStream);if(h)l.segmentStream=h,r.nextSample++;else break;if((r.nextSample%l.nb_samples===0||e||r.nextSample>=r.samples.length)&&(n.info("ISOFile","Sending fragmented data on track #"+l.id+" for samples ["+Math.max(0,r.nextSample-l.nb_samples)+","+(r.nextSample-1)+"]"),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(l.id,l.user,l.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),l.segmentStream=null,l!==this.fragmentedTracks[t]))break}}if(this.onSamples!==null)for(t=0;t<this.extractedTracks.length;t++){var m=this.extractedTracks[t];for(r=m.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){n.debug("ISOFile","Exporting on track #"+m.id+" sample #"+r.nextSample);var y=this.getSample(r,r.nextSample);if(y)r.nextSample++,m.samples.push(y);else{this.setNextSeekPositionFromSample(r.samples[r.nextSample]);break}if((r.nextSample%m.nb_samples===0||r.nextSample>=r.samples.length)&&(n.debug("ISOFile","Sending samples on track #"+m.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(m.id,m.user,m.samples),m.samples=[],m!==this.extractedTracks[t]))break}}}},S.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},S.prototype.getBoxes=function(e,t){var r=[];return S._sweep.call(this,e,r,t),r},S._sweep=function(e,t,r){this.type&&this.type==e&&t.push(this);for(var l in this.boxes){if(t.length&&r)return;S._sweep.call(this.boxes[l],e,t,r)}},S.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);if(t)return t.samples},S.prototype.getTrackSample=function(e,t){var r=this.getTrackById(e),l=this.getSample(r,t);return l},S.prototype.releaseUsedSamples=function(e,t){var r=0,l=this.getTrackById(e);l.lastValidSample||(l.lastValidSample=0);for(var h=l.lastValidSample;h<t;h++)r+=this.releaseSample(l,h);n.info("ISOFile","Track #"+e+" released samples up to "+t+" (released size: "+r+", remaining: "+this.samplesDataSize+")"),l.lastValidSample=t},S.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},S.prototype.stop=function(){this.sampleProcessingStarted=!1},S.prototype.flush=function(){n.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},S.prototype.seekTrack=function(e,t,r){var l,h,m=1/0,y=0,b=0,U;if(r.samples.length===0)return n.info("ISOFile","No sample in track, cannot seek! Using time "+n.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(l=0;l<r.samples.length;l++){if(h=r.samples[l],l===0)b=0,U=h.timescale;else if(h.cts>e*h.timescale){b=l-1;break}t&&h.is_sync&&(y=l)}for(t&&(b=y),e=r.samples[b].cts,r.nextSample=b;r.samples[b].alreadyRead===r.samples[b].size&&r.samples[b+1];)b++;return m=r.samples[b].offset+r.samples[b].alreadyRead,n.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+n.getDurationString(e,U)+" and offset: "+m),{offset:m,time:e/U}},S.prototype.getTrackDuration=function(e){var t;return e.samples?(t=e.samples[e.samples.length-1],(t.cts+t.duration)/t.timescale):1/0},S.prototype.seek=function(e,t){var r=this.moov,l,h,m,y={offset:1/0,time:1/0};if(this.moov){for(m=0;m<r.traks.length;m++)l=r.traks[m],!(e>this.getTrackDuration(l))&&(h=this.seekTrack(e,t,l),h.offset<y.offset&&(y.offset=h.offset),h.time<y.time&&(y.time=h.time));return n.info("ISOFile","Seeking at time "+n.getDurationString(y.time,1)+" needs a buffer with a fileStart position of "+y.offset),y.offset===1/0?y={offset:this.nextParsePosition,time:0}:y.offset=this.stream.getEndFilePositionAfter(y.offset),n.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+y.offset),y}else throw"Cannot seek: moov not received!"},S.prototype.equal=function(e){for(var t=0;t<this.boxes.length&&t<e.boxes.length;){var r=this.boxes[t],l=e.boxes[t];if(!s.boxEqual(r,l))return!1;t++}return!0},a.ISOFile=S,S.prototype.lastBoxStartPosition=0,S.prototype.parsingMdat=null,S.prototype.nextParsePosition=0,S.prototype.discardMdatData=!1,S.prototype.processIncompleteBox=function(e){var t,r,l;return e.type==="mdat"?(t=new s[e.type+"Box"](e.size),this.parsingMdat=t,this.boxes.push(t),this.mdats.push(t),t.start=e.start,t.hdr_size=e.hdr_size,this.stream.addUsedBytes(t.hdr_size),this.lastBoxStartPosition=t.start+t.size,l=this.stream.seek(t.start+t.size,!1,this.discardMdatData),l?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=t.start+t.size,!1)):(e.type==="moov"&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),r=this.stream.mergeNextBuffer?this.stream.mergeNextBuffer():!1,r?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1))},S.prototype.hasIncompleteMdat=function(){return this.parsingMdat!==null},S.prototype.processIncompleteMdat=function(){var e,t;return e=this.parsingMdat,t=this.stream.seek(e.start+e.size,!1,this.discardMdatData),t?(n.debug("ISOFile","Found \'mdat\' end in buffered data"),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},S.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},S.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},S.prototype.updateUsedBytes=function(e,t){this.stream.addUsedBytes&&(e.type==="mdat"?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))},S.prototype.add=s.Box.prototype.add,S.prototype.addBox=s.Box.prototype.addBox,S.prototype.init=function(e){var t=e||{};this.add("ftyp").set("major_brand",t.brands&&t.brands[0]||"iso4").set("minor_version",0).set("compatible_brands",t.brands||["iso4"]);var r=this.add("moov");return r.add("mvhd").set("timescale",t.timescale||600).set("rate",t.rate||65536).set("creation_time",0).set("modification_time",0).set("duration",t.duration||0).set("volume",t.width?0:256).set("matrix",[65536,0,0,0,65536,0,0,0,1073741824]).set("next_track_id",1),r.add("mvex"),this},S.prototype.addTrack=function(e){this.moov||this.init(e);var t=e||{};t.width=t.width||320,t.height=t.height||320,t.id=t.id||this.moov.mvhd.next_track_id,t.type=t.type||"avc1";var r=this.moov.add("trak");this.moov.mvhd.next_track_id=t.id+1,r.add("tkhd").set("flags",s.TKHD_FLAG_ENABLED|s.TKHD_FLAG_IN_MOVIE|s.TKHD_FLAG_IN_PREVIEW).set("creation_time",0).set("modification_time",0).set("track_id",t.id).set("duration",t.duration||0).set("layer",t.layer||0).set("alternate_group",0).set("volume",1).set("matrix",[0,0,0,0,0,0,0,0,0]).set("width",t.width<<16).set("height",t.height<<16);var l=r.add("mdia");l.add("mdhd").set("creation_time",0).set("modification_time",0).set("timescale",t.timescale||1).set("duration",t.media_duration||0).set("language",t.language||"und"),l.add("hdlr").set("handler",t.hdlr||"vide").set("name",t.name||"Track created with MP4Box.js"),l.add("elng").set("extended_language",t.language||"fr-FR");var h=l.add("minf");if(s[t.type+"SampleEntry"]!==void 0){var m=new s[t.type+"SampleEntry"];m.data_reference_index=1;var y="";for(var b in s.sampleEntryCodes)for(var U=s.sampleEntryCodes[b],w=0;w<U.length;w++)if(U.indexOf(t.type)>-1){y=b;break}switch(y){case"Visual":if(h.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),m.set("width",t.width).set("height",t.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",t.type+" Compressor").set("depth",24),t.avcDecoderConfigRecord){var T=new s.avcCBox;T.parse(new o(t.avcDecoderConfigRecord)),m.addBox(T)}else if(t.hevcDecoderConfigRecord){var C=new s.hvcCBox;C.parse(new o(t.hevcDecoderConfigRecord)),m.addBox(C)}break;case"Audio":h.add("smhd").set("balance",t.balance||0),m.set("channel_count",t.channel_count||2).set("samplesize",t.samplesize||16).set("samplerate",t.samplerate||65536);break;case"Hint":h.add("hmhd");break;case"Subtitle":switch(h.add("sthd"),t.type){case"stpp":m.set("namespace",t.namespace||"nonamespace").set("schema_location",t.schema_location||"").set("auxiliary_mime_types",t.auxiliary_mime_types||"");break}break;case"Metadata":h.add("nmhd");break;case"System":h.add("nmhd");break;default:h.add("nmhd");break}t.description&&m.addBox(t.description),t.description_boxes&&t.description_boxes.forEach(function(A){m.addBox(A)}),h.add("dinf").add("dref").addEntry(new s["url Box"]().set("flags",1));var I=h.add("stbl");return I.add("stsd").addEntry(m),I.add("stts").set("sample_counts",[]).set("sample_deltas",[]),I.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),I.add("stco").set("chunk_offsets",[]),I.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",t.id).set("default_sample_description_index",t.default_sample_description_index||1).set("default_sample_duration",t.default_sample_duration||0).set("default_sample_size",t.default_sample_size||0).set("default_sample_flags",t.default_sample_flags||0),this.buildTrakSampleLists(r),t.id}},s.Box.prototype.computeSize=function(e){var t=e||new d;t.endianness=d.BIG_ENDIAN,this.write(t)},S.prototype.addSample=function(e,t,r){var l=r||{},h={},m=this.getTrackById(e);if(m!==null){h.number=m.samples.length,h.track_id=m.tkhd.track_id,h.timescale=m.mdia.mdhd.timescale,h.description_index=l.sample_description_index?l.sample_description_index-1:0,h.description=m.mdia.minf.stbl.stsd.entries[h.description_index],h.data=t,h.size=t.byteLength,h.alreadyRead=h.size,h.duration=l.duration||1,h.cts=l.cts||0,h.dts=l.dts||0,h.is_sync=l.is_sync||!1,h.is_leading=l.is_leading||0,h.depends_on=l.depends_on||0,h.is_depended_on=l.is_depended_on||0,h.has_redundancy=l.has_redundancy||0,h.degradation_priority=l.degradation_priority||0,h.offset=0,h.subsamples=l.subsamples,m.samples.push(h),m.samples_size+=h.size,m.samples_duration+=h.duration,m.first_dts===void 0&&(m.first_dts=l.dts),this.processSamples();var y=this.createSingleSampleMoof(h);return this.addBox(y),y.computeSize(),y.trafs[0].truns[0].data_offset=y.size+8,this.add("mdat").data=new Uint8Array(t),h}},S.prototype.createSingleSampleMoof=function(e){var t=0;e.is_sync?t=1<<25:t=65536;var r=new s.moofBox;r.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var l=r.add("traf"),h=this.getTrackById(e.track_id);return l.add("tfhd").set("track_id",e.track_id).set("flags",s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),l.add("tfdt").set("baseMediaDecodeTime",e.dts-(h.first_dts||0)),l.add("trun").set("flags",s.TRUN_FLAGS_DATA_OFFSET|s.TRUN_FLAGS_DURATION|s.TRUN_FLAGS_SIZE|s.TRUN_FLAGS_FLAGS|s.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[e.duration]).set("sample_size",[e.size]).set("sample_flags",[t]).set("sample_composition_time_offset",[e.cts-e.dts]),r},S.prototype.lastMoofIndex=0,S.prototype.samplesDataSize=0,S.prototype.resetTables=function(){var e,t,r,l,h,m,y,b;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e<this.moov.traks.length;e++){t=this.moov.traks[e],t.tkhd.duration=0,t.mdia.mdhd.duration=0,r=t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64,r.chunk_offsets=[],l=t.mdia.minf.stbl.stsc,l.first_chunk=[],l.samples_per_chunk=[],l.sample_description_index=[],h=t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2,h.sample_sizes=[],m=t.mdia.minf.stbl.stts,m.sample_counts=[],m.sample_deltas=[],y=t.mdia.minf.stbl.ctts,y&&(y.sample_counts=[],y.sample_offsets=[]),b=t.mdia.minf.stbl.stss;var U=t.mdia.minf.stbl.boxes.indexOf(b);U!=-1&&(t.mdia.minf.stbl.boxes[U]=null)}},S.initSampleGroups=function(e,t,r,l,h){var m,y,b,U;function w(T,C,I){this.grouping_type=T,this.grouping_type_parameter=C,this.sbgp=I,this.last_sample_in_run=-1,this.entry_index=-1}for(t&&(t.sample_groups_info=[]),e.sample_groups_info||(e.sample_groups_info=[]),y=0;y<r.length;y++){for(U=r[y].grouping_type+"/"+r[y].grouping_type_parameter,b=new w(r[y].grouping_type,r[y].grouping_type_parameter,r[y]),t&&(t.sample_groups_info[U]=b),e.sample_groups_info[U]||(e.sample_groups_info[U]=b),m=0;m<l.length;m++)l[m].grouping_type===r[y].grouping_type&&(b.description=l[m],b.description.used=!0);if(h)for(m=0;m<h.length;m++)h[m].grouping_type===r[y].grouping_type&&(b.fragment_description=h[m],b.fragment_description.used=!0,b.is_fragment=!0)}if(t){if(h)for(y=0;y<h.length;y++)!h[y].used&&h[y].version>=2&&(U=h[y].grouping_type+"/0",b=new w(h[y].grouping_type,0),b.is_fragment=!0,t.sample_groups_info[U]||(t.sample_groups_info[U]=b))}else for(y=0;y<l.length;y++)!l[y].used&&l[y].version>=2&&(U=l[y].grouping_type+"/0",b=new w(l[y].grouping_type,0),e.sample_groups_info[U]||(e.sample_groups_info[U]=b))},S.setSampleGroupProperties=function(e,t,r,l){var h,m;t.sample_groups=[];for(h in l)if(t.sample_groups[h]={},t.sample_groups[h].grouping_type=l[h].grouping_type,t.sample_groups[h].grouping_type_parameter=l[h].grouping_type_parameter,r>=l[h].last_sample_in_run&&(l[h].last_sample_in_run<0&&(l[h].last_sample_in_run=0),l[h].entry_index++,l[h].entry_index<=l[h].sbgp.entries.length-1&&(l[h].last_sample_in_run+=l[h].sbgp.entries[l[h].entry_index].sample_count)),l[h].entry_index<=l[h].sbgp.entries.length-1?t.sample_groups[h].group_description_index=l[h].sbgp.entries[l[h].entry_index].group_description_index:t.sample_groups[h].group_description_index=-1,t.sample_groups[h].group_description_index!==0){var y;l[h].fragment_description?y=l[h].fragment_description:y=l[h].description,t.sample_groups[h].group_description_index>0?(t.sample_groups[h].group_description_index>65535?m=(t.sample_groups[h].group_description_index>>16)-1:m=t.sample_groups[h].group_description_index-1,y&&m>=0&&(t.sample_groups[h].description=y.entries[m])):y&&y.version>=2&&y.default_group_description_index>0&&(t.sample_groups[h].description=y.entries[y.default_group_description_index-1])}},S.process_sdtp=function(e,t,r){t&&(e?(t.is_leading=e.is_leading[r],t.depends_on=e.sample_depends_on[r],t.is_depended_on=e.sample_is_depended_on[r],t.has_redundancy=e.sample_has_redundancy[r]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},S.prototype.buildSampleLists=function(){var e,t;for(e=0;e<this.moov.traks.length;e++)t=this.moov.traks[e],this.buildTrakSampleLists(t)},S.prototype.buildTrakSampleLists=function(e){var t,r,l,h,m,y,b,U,w,T,C,I,A,D,P,K,X,V,N,q,Q,xe,j,W;if(e.samples=[],e.samples_duration=0,e.samples_size=0,r=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,l=e.mdia.minf.stbl.stsc,h=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,m=e.mdia.minf.stbl.stts,y=e.mdia.minf.stbl.ctts,b=e.mdia.minf.stbl.stss,U=e.mdia.minf.stbl.stsd,w=e.mdia.minf.stbl.subs,I=e.mdia.minf.stbl.stdp,T=e.mdia.minf.stbl.sbgps,C=e.mdia.minf.stbl.sgpds,V=-1,N=-1,q=-1,Q=-1,xe=0,j=0,W=0,S.initSampleGroups(e,null,T,C),!(typeof h>"u")){for(t=0;t<h.sample_sizes.length;t++){var k={};k.number=t,k.track_id=e.tkhd.track_id,k.timescale=e.mdia.mdhd.timescale,k.alreadyRead=0,e.samples[t]=k,k.size=h.sample_sizes[t],e.samples_size+=k.size,t===0?(D=1,A=0,k.chunk_index=D,k.chunk_run_index=A,X=l.samples_per_chunk[A],K=0,A+1<l.first_chunk.length?P=l.first_chunk[A+1]-1:P=1/0):t<X?(k.chunk_index=D,k.chunk_run_index=A):(D++,k.chunk_index=D,K=0,D<=P||(A++,A+1<l.first_chunk.length?P=l.first_chunk[A+1]-1:P=1/0),k.chunk_run_index=A,X+=l.samples_per_chunk[A]),k.description_index=l.sample_description_index[k.chunk_run_index]-1,k.description=U.entries[k.description_index],k.offset=r.chunk_offsets[k.chunk_index-1]+K,K+=k.size,t>V&&(N++,V<0&&(V=0),V+=m.sample_counts[N]),t>0?(e.samples[t-1].duration=m.sample_deltas[N],e.samples_duration+=e.samples[t-1].duration,k.dts=e.samples[t-1].dts+e.samples[t-1].duration):k.dts=0,y?(t>=q&&(Q++,q<0&&(q=0),q+=y.sample_counts[Q]),k.cts=e.samples[t].dts+y.sample_offsets[Q]):k.cts=k.dts,b?(t==b.sample_numbers[xe]-1?(k.is_sync=!0,xe++):(k.is_sync=!1,k.degradation_priority=0),w&&w.entries[j].sample_delta+W==t+1&&(k.subsamples=w.entries[j].subsamples,W+=w.entries[j].sample_delta,j++)):k.is_sync=!0,S.process_sdtp(e.mdia.minf.stbl.sdtp,k,k.number),I?k.degradation_priority=I.priority[t]:k.degradation_priority=0,w&&w.entries[j].sample_delta+W==t&&(k.subsamples=w.entries[j].subsamples,W+=w.entries[j].sample_delta),(T.length>0||C.length>0)&&S.setSampleGroupProperties(e,k,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},S.prototype.updateSampleLists=function(){var e,t,r,l,h,m,y,b,U,w,T,C,I,A,D;if(this.moov!==void 0){for(;this.lastMoofIndex<this.moofs.length;)if(U=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,U.type=="moof")for(w=U,e=0;e<w.trafs.length;e++){for(T=w.trafs[e],C=this.getTrackById(T.tfhd.track_id),I=this.getTrexById(T.tfhd.track_id),T.tfhd.flags&s.TFHD_FLAG_SAMPLE_DESC?l=T.tfhd.default_sample_description_index:l=I?I.default_sample_description_index:1,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_DUR?h=T.tfhd.default_sample_duration:h=I?I.default_sample_duration:0,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_SIZE?m=T.tfhd.default_sample_size:m=I?I.default_sample_size:0,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_FLAGS?y=T.tfhd.default_sample_flags:y=I?I.default_sample_flags:0,T.sample_number=0,T.sbgps.length>0&&S.initSampleGroups(C,T,T.sbgps,C.mdia.minf.stbl.sgpds,T.sgpds),t=0;t<T.truns.length;t++){var P=T.truns[t];for(r=0;r<P.sample_count;r++){A={},A.moof_number=this.lastMoofIndex,A.number_in_traf=T.sample_number,T.sample_number++,A.number=C.samples.length,T.first_sample_index=C.samples.length,C.samples.push(A),A.track_id=C.tkhd.track_id,A.timescale=C.mdia.mdhd.timescale,A.description_index=l-1,A.description=C.mdia.minf.stbl.stsd.entries[A.description_index],A.size=m,P.flags&s.TRUN_FLAGS_SIZE&&(A.size=P.sample_size[r]),C.samples_size+=A.size,A.duration=h,P.flags&s.TRUN_FLAGS_DURATION&&(A.duration=P.sample_duration[r]),C.samples_duration+=A.duration,C.first_traf_merged||r>0?A.dts=C.samples[C.samples.length-2].dts+C.samples[C.samples.length-2].duration:(T.tfdt?A.dts=T.tfdt.baseMediaDecodeTime:A.dts=0,C.first_traf_merged=!0),A.cts=A.dts,P.flags&s.TRUN_FLAGS_CTS_OFFSET&&(A.cts=A.dts+P.sample_composition_time_offset[r]),D=y,P.flags&s.TRUN_FLAGS_FLAGS?D=P.sample_flags[r]:r===0&&P.flags&s.TRUN_FLAGS_FIRST_FLAG&&(D=P.first_sample_flags),A.is_sync=!(D>>16&1),A.is_leading=D>>26&3,A.depends_on=D>>24&3,A.is_depended_on=D>>22&3,A.has_redundancy=D>>20&3,A.degradation_priority=D&65535;var K=!!(T.tfhd.flags&s.TFHD_FLAG_BASE_DATA_OFFSET),X=!!(T.tfhd.flags&s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),V=!!(P.flags&s.TRUN_FLAGS_DATA_OFFSET),N=0;K?N=T.tfhd.base_data_offset:X||t===0?N=w.start:N=b,t===0&&r===0?V?A.offset=N+P.data_offset:A.offset=N:A.offset=b,b=A.offset+A.size,(T.sbgps.length>0||T.sgpds.length>0||C.mdia.minf.stbl.sbgps.length>0||C.mdia.minf.stbl.sgpds.length>0)&&S.setSampleGroupProperties(C,A,A.number_in_traf,T.sample_groups_info)}}if(T.subs){C.has_fragment_subsamples=!0;var q=T.first_sample_index;for(t=0;t<T.subs.entries.length;t++)q+=T.subs.entries[t].sample_delta,A=C.samples[q-1],A.subsamples=T.subs.entries[t].subsamples}}}},S.prototype.getSample=function(e,t){var r,l=e.samples[t];if(!this.moov)return null;if(!l.data)l.data=new Uint8Array(l.size),l.alreadyRead=0,this.samplesDataSize+=l.size,n.debug("ISOFile","Allocating sample #"+t+" on track #"+e.tkhd.track_id+" of size "+l.size+" (total: "+this.samplesDataSize+")");else if(l.alreadyRead==l.size)return l;for(;;){var h=this.stream.findPosition(!0,l.offset+l.alreadyRead,!1);if(h>-1){r=this.stream.buffers[h];var m=r.byteLength-(l.offset+l.alreadyRead-r.fileStart);if(l.size-l.alreadyRead<=m)return n.debug("ISOFile","Getting sample #"+t+" data (alreadyRead: "+l.alreadyRead+" offset: "+(l.offset+l.alreadyRead-r.fileStart)+" read size: "+(l.size-l.alreadyRead)+" full size: "+l.size+")"),d.memcpy(l.data.buffer,l.alreadyRead,r,l.offset+l.alreadyRead-r.fileStart,l.size-l.alreadyRead),r.usedBytes+=l.size-l.alreadyRead,this.stream.logBufferLevel(),l.alreadyRead=l.size,l;if(m===0)return null;n.debug("ISOFile","Getting sample #"+t+" partial data (alreadyRead: "+l.alreadyRead+" offset: "+(l.offset+l.alreadyRead-r.fileStart)+" read size: "+m+" full size: "+l.size+")"),d.memcpy(l.data.buffer,l.alreadyRead,r,l.offset+l.alreadyRead-r.fileStart,m),l.alreadyRead+=m,r.usedBytes+=m,this.stream.logBufferLevel()}else return null}},S.prototype.releaseSample=function(e,t){var r=e.samples[t];return r.data?(this.samplesDataSize-=r.size,r.data=null,r.alreadyRead=0,r.size):0},S.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},S.prototype.getCodecs=function(){var e,t="";for(e=0;e<this.moov.traks.length;e++){var r=this.moov.traks[e];e>0&&(t+=","),t+=r.mdia.minf.stbl.stsd.entries[0].getCodec()}return t},S.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t<this.moov.mvex.trexs.length;t++){var r=this.moov.mvex.trexs[t];if(r.track_id==e)return r}return null},S.prototype.getTrackById=function(e){if(this.moov===void 0)return null;for(var t=0;t<this.moov.traks.length;t++){var r=this.moov.traks[t];if(r.tkhd.track_id==e)return r}return null},S.prototype.itemsDataSize=0,S.prototype.flattenItemInfo=function(){var e=this.items,t=this.entity_groups,r,l,h,m=this.meta;if(m!=null&&m.hdlr!==void 0&&m.iinf!==void 0){for(r=0;r<m.iinf.item_infos.length;r++)h={},h.id=m.iinf.item_infos[r].item_ID,e[h.id]=h,h.ref_to=[],h.name=m.iinf.item_infos[r].item_name,m.iinf.item_infos[r].protection_index>0&&(h.protection=m.ipro.protections[m.iinf.item_infos[r].protection_index-1]),m.iinf.item_infos[r].item_type?h.type=m.iinf.item_infos[r].item_type:h.type="mime",h.content_type=m.iinf.item_infos[r].content_type,h.content_encoding=m.iinf.item_infos[r].content_encoding;if(m.grpl)for(r=0;r<m.grpl.boxes.length;r++)entity_group={},entity_group.id=m.grpl.boxes[r].group_id,entity_group.entity_ids=m.grpl.boxes[r].entity_ids,entity_group.type=m.grpl.boxes[r].type,t[entity_group.id]=entity_group;if(m.iloc)for(r=0;r<m.iloc.items.length;r++){var y=m.iloc.items[r];switch(h=e[y.item_ID],y.data_reference_index!==0&&(n.warn("Item storage with reference to other files: not supported"),h.source=m.dinf.boxes[y.data_reference_index-1]),y.construction_method){case 0:break;case 1:break;case 2:n.warn("Item storage with construction_method : not supported");break}for(h.extents=[],h.size=0,l=0;l<y.extents.length;l++)h.extents[l]={},h.extents[l].offset=y.extents[l].extent_offset+y.base_offset,y.construction_method==1&&(h.extents[l].offset+=m.idat.start+m.idat.hdr_size),h.extents[l].length=y.extents[l].extent_length,h.extents[l].alreadyRead=0,h.size+=h.extents[l].length}if(m.pitm&&(e[m.pitm.item_id].primary=!0),m.iref)for(r=0;r<m.iref.references.length;r++){var b=m.iref.references[r];for(l=0;l<b.references.length;l++)e[b.from_item_ID].ref_to.push({type:b.type,id:b.references[l]})}if(m.iprp)for(var U=0;U<m.iprp.ipmas.length;U++){var w=m.iprp.ipmas[U];for(r=0;r<w.associations.length;r++){var T=w.associations[r];if(h=e[T.id],h||(h=t[T.id]),h)for(h.properties===void 0&&(h.properties={},h.properties.boxes=[]),l=0;l<T.props.length;l++){var C=T.props[l];if(C.property_index>0&&C.property_index-1<m.iprp.ipco.boxes.length){var I=m.iprp.ipco.boxes[C.property_index-1];h.properties[I.type]=I,h.properties.boxes.push(I)}}}}}},S.prototype.getItem=function(e){var t,r;if(!this.meta)return null;if(r=this.items[e],!r.data&&r.size)r.data=new Uint8Array(r.size),r.alreadyRead=0,this.itemsDataSize+=r.size,n.debug("ISOFile","Allocating item #"+e+" of size "+r.size+" (total: "+this.itemsDataSize+")");else if(r.alreadyRead===r.size)return r;for(var l=0;l<r.extents.length;l++){var h=r.extents[l];if(h.alreadyRead!==h.length){var m=this.stream.findPosition(!0,h.offset+h.alreadyRead,!1);if(m>-1){t=this.stream.buffers[m];var y=t.byteLength-(h.offset+h.alreadyRead-t.fileStart);if(h.length-h.alreadyRead<=y)n.debug("ISOFile","Getting item #"+e+" extent #"+l+" data (alreadyRead: "+h.alreadyRead+" offset: "+(h.offset+h.alreadyRead-t.fileStart)+" read size: "+(h.length-h.alreadyRead)+" full extent size: "+h.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,h.offset+h.alreadyRead-t.fileStart,h.length-h.alreadyRead),t.usedBytes+=h.length-h.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead+=h.length-h.alreadyRead,h.alreadyRead=h.length;else return n.debug("ISOFile","Getting item #"+e+" extent #"+l+" partial data (alreadyRead: "+h.alreadyRead+" offset: "+(h.offset+h.alreadyRead-t.fileStart)+" read size: "+y+" full extent size: "+h.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,h.offset+h.alreadyRead-t.fileStart,y),h.alreadyRead+=y,r.alreadyRead+=y,t.usedBytes+=y,this.stream.logBufferLevel(),null}else return null}}return r.alreadyRead===r.size?r:null},S.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var r=0;r<t.extents.length;r++){var l=t.extents[r];l.alreadyRead=0}return t.size}else return 0},S.prototype.processItems=function(e){for(var t in this.items){var r=this.items[t];this.getItem(r.id),e&&!r.sent&&(e(r),r.sent=!0,r.data=null)}},S.prototype.hasItem=function(e){for(var t in this.items){var r=this.items[t];if(r.name===e)return r.id}return-1},S.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},S.prototype.getPrimaryItem=function(){return!this.meta||!this.meta.pitm?null:this.getItem(this.meta.pitm.item_id)},S.prototype.itemToFragmentedTrackFile=function(e){var t=e||{},r=null;if(t.itemId?r=this.getItem(t.itemId):r=this.getPrimaryItem(),r==null)return null;var l=new S;l.discardMdatData=!1;var h={type:r.type,description_boxes:r.properties.boxes};r.properties.ispe&&(h.width=r.properties.ispe.image_width,h.height=r.properties.ispe.image_height);var m=l.addTrack(h);return m?(l.addSample(m,r.data),l):null},S.prototype.write=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e)},S.prototype.createFragment=function(e,t,r){var l=this.getTrackById(e),h=this.getSample(l,t);if(h==null)return this.setNextSeekPositionFromSample(l.samples[t]),null;var m=r||new d;m.endianness=d.BIG_ENDIAN;var y=this.createSingleSampleMoof(h);y.write(m),y.trafs[0].truns[0].data_offset=y.size+8,n.debug("MP4Box","Adjusting data_offset with new value "+y.trafs[0].truns[0].data_offset),m.adjustUint32(y.trafs[0].truns[0].data_offset_position,y.trafs[0].truns[0].data_offset);var b=new s.mdatBox;return b.data=h.data,b.write(m),m},S.writeInitializationSegment=function(e,t,r,l){var h;n.debug("ISOFile","Generating initialization segment");var m=new d;m.endianness=d.BIG_ENDIAN,e.write(m);var y=t.add("mvex");for(r&&y.add("mehd").set("fragment_duration",r),h=0;h<t.traks.length;h++)y.add("trex").set("track_id",t.traks[h].tkhd.track_id).set("default_sample_description_index",1).set("default_sample_duration",l).set("default_sample_size",0).set("default_sample_flags",65536);return t.write(m),m.buffer},S.prototype.save=function(e){var t=new d;t.endianness=d.BIG_ENDIAN,this.write(t),t.save(e)},S.prototype.getBuffer=function(){var e=new d;return e.endianness=d.BIG_ENDIAN,this.write(e),e.buffer},S.prototype.initializeSegmentation=function(){var e,t,r,l;for(this.onSegment===null&&n.warn("MP4Box","No segmentation callback set!"),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),t=[],e=0;e<this.fragmentedTracks.length;e++){var h=new s.moovBox;h.mvhd=this.moov.mvhd,h.boxes.push(h.mvhd),r=this.getTrackById(this.fragmentedTracks[e].id),h.boxes.push(r),h.traks.push(r),l={},l.id=r.tkhd.track_id,l.user=this.fragmentedTracks[e].user,l.buffer=S.writeInitializationSegment(this.ftyp,h,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[e].samples.length>0?this.moov.traks[e].samples[0].duration:0),t.push(l)}return t},s.Box.prototype.printHeader=function(e){this.size+=8,this.size>f&&(this.size+=8),this.type==="uuid"&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},s.FullBox.prototype.printHeader=function(e){this.size+=4,s.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},s.Box.prototype.print=function(e){this.printHeader(e)},s.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t<this.boxes.length;t++)if(this.boxes[t]){var r=e.indent;e.indent+=" ",this.boxes[t].print(e),e.indent=r}},S.prototype.print=function(e){e.indent="";for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&this.boxes[t].print(e)},s.mvhdBox.prototype.print=function(e){s.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"timescale: "+this.timescale),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"rate: "+this.rate),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},s.tkhdBox.prototype.print=function(e){s.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var E={};E.createFile=function(e,t){var r=e!==void 0?e:!0,l=new S(t);return l.discardMdatData=!r,l},a.createFile=E.createFile}(mt)),mt}var yt=fn(),cn=Zt(yt),vt={exports:{}},ei;function hn(){return ei||(ei=1,function(a){var n={};a.exports=n,n.parse=function(o,d){for(var f=n.bin.readUshort,c=n.bin.readUint,g=0,u={},s=new Uint8Array(o),p=s.length-4;c(s,p)!=101010256;)p--;var g=p;g+=4,g+=4;var _=f(s,g);g+=2,f(s,g),g+=2;var v=c(s,g);g+=4;var x=c(s,g);g+=4,g=x;for(var S=0;S<_;S++){c(s,g),g+=4,g+=4,g+=4,g+=4,c(s,g),g+=4;var v=c(s,g);g+=4;var E=c(s,g);g+=4;var e=f(s,g),t=f(s,g+2),r=f(s,g+4);g+=6,g+=8;var l=c(s,g);g+=4,g+=e+t+r,n._readLocal(s,l,u,v,E,d)}return u},n._readLocal=function(o,d,f,c,u,s){var p=n.bin.readUshort,g=n.bin.readUint;g(o,d),d+=4,p(o,d),d+=2,p(o,d),d+=2;var _=p(o,d);d+=2,g(o,d),d+=4,g(o,d),d+=4,d+=8;var v=p(o,d);d+=2;var x=p(o,d);d+=2;var S=n.bin.readUTF8(o,d,v);if(d+=v,d+=x,s){f[S]={size:u,csize:c};return}var E=new Uint8Array(o.buffer,d);if(_==0)f[S]=new Uint8Array(E.buffer.slice(d,d+c));else if(_==8){var e=new Uint8Array(u);n.inflateRaw(E,e),f[S]=e}else throw"unknown compression method: "+_},n.inflateRaw=function(o,d){return n.F.inflate(o,d)},n.inflate=function(o,d){return o[0],o[1],n.inflateRaw(new Uint8Array(o.buffer,o.byteOffset+2,o.length-6),d)},n.deflate=function(o,d){d==null&&(d={level:6});var f=0,c=new Uint8Array(50+Math.floor(o.length*1.1));c[f]=120,c[f+1]=156,f+=2,f=n.F.deflateRaw(o,c,f,d.level);var u=n.adler(o,0,o.length);return c[f+0]=u>>>24&255,c[f+1]=u>>>16&255,c[f+2]=u>>>8&255,c[f+3]=u>>>0&255,new Uint8Array(c.buffer,0,f+4)},n.deflateRaw=function(o,d){d==null&&(d={level:6});var f=new Uint8Array(50+Math.floor(o.length*1.1)),c=n.F.deflateRaw(o,f,c,d.level);return new Uint8Array(f.buffer,0,c)},n.encode=function(o,d){d==null&&(d=!1);var f=0,c=n.bin.writeUint,u=n.bin.writeUshort,s={};for(var p in o){var g=!n._noNeed(p)&&!d,_=o[p],v=n.crc.crc(_,0,_.length);s[p]={cpr:g,usize:_.length,crc:v,file:g?n.deflateRaw(_):_}}for(var p in s)f+=s[p].file.length+30+46+2*n.bin.sizeUTF8(p);f+=22;var x=new Uint8Array(f),S=0,E=[];for(var p in s){var e=s[p];E.push(S),S=n._writeHeader(x,S,p,e,0)}var t=0,r=S;for(var p in s){var e=s[p];E.push(S),S=n._writeHeader(x,S,p,e,1,E[t++])}var l=S-r;return c(x,S,101010256),S+=4,S+=4,u(x,S,t),S+=2,u(x,S,t),S+=2,c(x,S,l),S+=4,c(x,S,r),S+=4,S+=2,x.buffer},n._noNeed=function(o){var d=o.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(d)!=-1},n._writeHeader=function(o,d,f,c,u,s){var p=n.bin.writeUint,g=n.bin.writeUshort,_=c.file;p(o,d,u==0?67324752:33639248),d+=4,u==1&&(d+=2),g(o,d,20),d+=2,g(o,d,0),d+=2,g(o,d,c.cpr?8:0),d+=2,p(o,d,0),d+=4,p(o,d,c.crc),d+=4,p(o,d,_.length),d+=4,p(o,d,c.usize),d+=4,g(o,d,n.bin.sizeUTF8(f)),d+=2,g(o,d,0),d+=2,u==1&&(d+=2,d+=2,d+=6,p(o,d,s),d+=4);var v=n.bin.writeUTF8(o,d,f);return d+=v,u==0&&(o.set(_,d),d+=_.length),d},n.crc={table:function(){for(var o=new Uint32Array(256),d=0;d<256;d++){for(var f=d,c=0;c<8;c++)f&1?f=3988292384^f>>>1:f=f>>>1;o[d]=f}return o}(),update:function(o,d,f,c){for(var u=0;u<c;u++)o=n.crc.table[(o^d[f+u])&255]^o>>>8;return o},crc:function(o,d,f){return n.crc.update(4294967295,o,d,f)^4294967295}},n.adler=function(o,d,f){for(var c=1,u=0,s=d,p=d+f;s<p;){for(var g=Math.min(s+5552,p);s<g;)c+=o[s++],u+=c;c=c%65521,u=u%65521}return u<<16|c},n.bin={readUshort:function(o,d){return o[d]|o[d+1]<<8},writeUshort:function(o,d,f){o[d]=f&255,o[d+1]=f>>8&255},readUint:function(o,d){return o[d+3]*(256*256*256)+(o[d+2]<<16|o[d+1]<<8|o[d])},writeUint:function(o,d,f){o[d]=f&255,o[d+1]=f>>8&255,o[d+2]=f>>16&255,o[d+3]=f>>24&255},readASCII:function(o,d,f){for(var c="",u=0;u<f;u++)c+=String.fromCharCode(o[d+u]);return c},writeASCII:function(o,d,f){for(var c=0;c<f.length;c++)o[d+c]=f.charCodeAt(c)},pad:function(o){return o.length<2?"0"+o:o},readUTF8:function(o,d,f){for(var c="",u,s=0;s<f;s++)c+="%"+n.bin.pad(o[d+s].toString(16));try{u=decodeURIComponent(c)}catch{return n.bin.readASCII(o,d,f)}return u},writeUTF8:function(o,d,f){for(var c=f.length,u=0,s=0;s<c;s++){var p=f.charCodeAt(s);if(!(p&4294967168))o[d+u]=p,u++;else if(!(p&4294965248))o[d+u]=192|p>>6,o[d+u+1]=128|p>>0&63,u+=2;else if(!(p&4294901760))o[d+u]=224|p>>12,o[d+u+1]=128|p>>6&63,o[d+u+2]=128|p>>0&63,u+=3;else if(!(p&4294967295-(1<<21)+1))o[d+u]=240|p>>18,o[d+u+1]=128|p>>12&63,o[d+u+2]=128|p>>6&63,o[d+u+3]=128|p>>0&63,u+=4;else throw"e"}return u},sizeUTF8:function(o){for(var d=o.length,f=0,c=0;c<d;c++){var u=o.charCodeAt(c);if(!(u&4294967168))f++;else if(!(u&4294965248))f+=2;else if(!(u&4294901760))f+=3;else if(!(u&4294967295-(1<<21)+1))f+=4;else throw"e"}return f}},n.F={},n.F.deflateRaw=function(o,d,f,c){var u=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]],s=u[c],p=n.F.U,g=n.F._goodIndex;n.F._hash;var _=n.F._putsE,v=0,x=f<<3,S=0,E=o.length;if(c==0){for(;v<E;){var e=Math.min(65535,E-v);_(d,x,v+e==E?1:0),x=n.F._copyExact(o,v,e,d,x+8),v+=e}return x>>>3}var t=p.lits,r=p.strt,l=p.prev,h=0,m=0,y=0,b=0,U=0,w=0;for(E>2&&(w=n.F._hash(o,0),r[w]=0),v=0;v<E;v++){if(U=w,v+1<E-2){w=n.F._hash(o,v+1);var T=v+1&32767;l[T]=r[w],r[w]=T}if(S<=v){(h>14e3||m>26697)&&E-v>100&&(S<v&&(t[h]=v-S,h+=2,S=v),x=n.F._writeBlock(v==E-1||S==E?1:0,t,h,b,o,y,v-y,d,x),h=m=b=0,y=v);var C=0;v<E-2&&(C=n.F._bestMatch(o,v,l,U,Math.min(s[2],E-v),s[3]));var e=C>>>16,I=C&65535;if(C!=0){var e=C>>>16,I=C&65535,A=g(e,p.of0);p.lhst[257+A]++;var D=g(I,p.df0);p.dhst[D]++,b+=p.exb[A]+p.dxb[D],t[h]=e<<23|v-S,t[h+1]=I<<16|A<<8|D,h+=2,S=v+e}else p.lhst[o[v]]++;m++}}for((y!=v||o.length==0)&&(S<v&&(t[h]=v-S,h+=2,S=v),x=n.F._writeBlock(1,t,h,b,o,y,v-y,d,x),h=0,m=0,h=m=b=0,y=v);x&7;)x++;return x>>>3},n.F._bestMatch=function(o,d,f,c,u,s){var p=d&32767,g=f[p],_=p-g+32768&32767;if(g==p||c!=n.F._hash(o,d-_))return 0;for(var v=0,x=0,S=Math.min(32767,d);_<=S&&--s!=0&&g!=p;){if(v==0||o[d+v]==o[d+v-_]){var E=n.F._howLong(o,d,_);if(E>v){if(v=E,x=_,v>=u)break;_+2<E&&(E=_+2);for(var e=0,t=0;t<E-2;t++){var r=d-_+t+32768&32767,l=f[r],h=r-l+32768&32767;h>e&&(e=h,g=r)}}}p=g,g=f[p],_+=p-g+32768&32767}return v<<16|x},n.F._howLong=function(o,d,f){if(o[d]!=o[d-f]||o[d+1]!=o[d+1-f]||o[d+2]!=o[d+2-f])return 0;var c=d,u=Math.min(o.length,d+258);for(d+=3;d<u&&o[d]==o[d-f];)d++;return d-c},n.F._hash=function(o,d){return(o[d]<<8|o[d+1])+(o[d+2]<<4)&65535},n.saved=0,n.F._writeBlock=function(o,d,f,c,u,s,p,g,_){var v=n.F.U,x=n.F._putsF,S=n.F._putsE,E,e,t,r,l,h,m,y,b;v.lhst[256]++,E=n.F.getTrees(),e=E[0],t=E[1],r=E[2],l=E[3],h=E[4],m=E[5],y=E[6],b=E[7];var U=(_+3&7?8-(_+3&7):0)+32+(p<<3),w=c+n.F.contSize(v.fltree,v.lhst)+n.F.contSize(v.fdtree,v.dhst),T=c+n.F.contSize(v.ltree,v.lhst)+n.F.contSize(v.dtree,v.dhst);T+=14+3*m+n.F.contSize(v.itree,v.ihst)+(v.ihst[16]*2+v.ihst[17]*3+v.ihst[18]*7);for(var C=0;C<286;C++)v.lhst[C]=0;for(var C=0;C<30;C++)v.dhst[C]=0;for(var C=0;C<19;C++)v.ihst[C]=0;var I=U<w&&U<T?0:w<T?1:2;if(x(g,_,o),x(g,_+1,I),_+=3,I==0){for(;_&7;)_++;_=n.F._copyExact(u,s,p,g,_)}else{var A,D;if(I==1&&(A=v.fltree,D=v.fdtree),I==2){n.F.makeCodes(v.ltree,e),n.F.revCodes(v.ltree,e),n.F.makeCodes(v.dtree,t),n.F.revCodes(v.dtree,t),n.F.makeCodes(v.itree,r),n.F.revCodes(v.itree,r),A=v.ltree,D=v.dtree,S(g,_,l-257),_+=5,S(g,_,h-1),_+=5,S(g,_,m-4),_+=4;for(var P=0;P<m;P++)S(g,_+P*3,v.itree[(v.ordr[P]<<1)+1]);_+=3*m,_=n.F._codeTiny(y,v.itree,g,_),_=n.F._codeTiny(b,v.itree,g,_)}for(var K=s,X=0;X<f;X+=2){for(var V=d[X],N=V>>>23,q=K+(V&(1<<23)-1);K<q;)_=n.F._writeLit(u[K++],A,g,_);if(N!=0){var Q=d[X+1],xe=Q>>16,j=Q>>8&255,W=Q&255;_=n.F._writeLit(257+j,A,g,_),S(g,_,N-v.of0[j]),_+=v.exb[j],_=n.F._writeLit(W,D,g,_),x(g,_,xe-v.df0[W]),_+=v.dxb[W],K+=N}}_=n.F._writeLit(256,A,g,_)}return _},n.F._copyExact=function(o,d,f,c,u){var s=u>>>3;return c[s]=f,c[s+1]=f>>>8,c[s+2]=255-c[s],c[s+3]=255-c[s+1],s+=4,c.set(new Uint8Array(o.buffer,d,f),s),u+(f+4<<3)},n.F.getTrees=function(){for(var o=n.F.U,d=n.F._hufTree(o.lhst,o.ltree,15),f=n.F._hufTree(o.dhst,o.dtree,15),c=[],u=n.F._lenCodes(o.ltree,c),s=[],p=n.F._lenCodes(o.dtree,s),g=0;g<c.length;g+=2)o.ihst[c[g]]++;for(var g=0;g<s.length;g+=2)o.ihst[s[g]]++;for(var _=n.F._hufTree(o.ihst,o.itree,7),v=19;v>4&&o.itree[(o.ordr[v-1]<<1)+1]==0;)v--;return[d,f,_,u,p,v,c,s]},n.F.getSecond=function(o){for(var d=[],f=0;f<o.length;f+=2)d.push(o[f+1]);return d},n.F.nonZero=function(o){for(var d="",f=0;f<o.length;f+=2)o[f+1]!=0&&(d+=(f>>1)+",");return d},n.F.contSize=function(o,d){for(var f=0,c=0;c<d.length;c++)f+=d[c]*o[(c<<1)+1];return f},n.F._codeTiny=function(o,d,f,c){for(var u=0;u<o.length;u+=2){var s=o[u],p=o[u+1];c=n.F._writeLit(s,d,f,c);var g=s==16?2:s==17?3:7;s>15&&(n.F._putsE(f,c,p,g),c+=g)}return c},n.F._lenCodes=function(o,d){for(var f=o.length;f!=2&&o[f-1]==0;)f-=2;for(var c=0;c<f;c+=2){var u=o[c+1],s=c+3<f?o[c+3]:-1,p=c+5<f?o[c+5]:-1,g=c==0?-1:o[c-1];if(u==0&&s==u&&p==u){for(var _=c+5;_+2<f&&o[_+2]==u;)_+=2;var v=Math.min(_+1-c>>>1,138);v<11?d.push(17,v-3):d.push(18,v-11),c+=v*2-2}else if(u==g&&s==u&&p==u){for(var _=c+5;_+2<f&&o[_+2]==u;)_+=2;var v=Math.min(_+1-c>>>1,6);d.push(16,v-3),c+=v*2-2}else d.push(u,0)}return f>>>1},n.F._hufTree=function(o,d,f){var c=[],u=o.length,s=d.length,p=0;for(p=0;p<s;p+=2)d[p]=0,d[p+1]=0;for(p=0;p<u;p++)o[p]!=0&&c.push({lit:p,f:o[p]});var g=c.length,_=c.slice(0);if(g==0)return 0;if(g==1){var v=c[0].lit,_=v==0?1:0;return d[(v<<1)+1]=1,d[(_<<1)+1]=1,1}c.sort(function(l,h){return l.f-h.f});var x=c[0],S=c[1],E=0,e=1,t=2;for(c[0]={lit:-1,f:x.f+S.f,l:x,r:S,d:0};e!=g-1;)E!=e&&(t==g||c[E].f<c[t].f)?x=c[E++]:x=c[t++],E!=e&&(t==g||c[E].f<c[t].f)?S=c[E++]:S=c[t++],c[e++]={lit:-1,f:x.f+S.f,l:x,r:S};var r=n.F.setDepth(c[e-1],0);for(r>f&&(n.F.restrictDepth(_,f,r),r=f),p=0;p<g;p++)d[(_[p].lit<<1)+1]=_[p].d;return r},n.F.setDepth=function(o,d){return o.lit!=-1?(o.d=d,d):Math.max(n.F.setDepth(o.l,d+1),n.F.setDepth(o.r,d+1))},n.F.restrictDepth=function(o,d,f){var c=0,u=1<<f-d,s=0;for(o.sort(function(g,_){return _.d==g.d?g.f-_.f:_.d-g.d}),c=0;c<o.length&&o[c].d>d;c++){var p=o[c].d;o[c].d=d,s+=u-(1<<f-p)}for(s=s>>>f-d;s>0;){var p=o[c].d;p<d?(o[c].d++,s-=1<<d-p-1):c++}for(;c>=0;c--)o[c].d==d&&s<0&&(o[c].d--,s++);s!=0&&console.log("debt left")},n.F._goodIndex=function(o,d){var f=0;return d[f|16]<=o&&(f|=16),d[f|8]<=o&&(f|=8),d[f|4]<=o&&(f|=4),d[f|2]<=o&&(f|=2),d[f|1]<=o&&(f|=1),f},n.F._writeLit=function(o,d,f,c){return n.F._putsF(f,c,d[o<<1]),c+d[(o<<1)+1]},n.F.inflate=function(o,d){var f=Uint8Array;if(o[0]==3&&o[1]==0)return d||new f(0);var c=n.F,u=c._bitsF,s=c._bitsE,p=c._decodeTiny,g=c.makeCodes,_=c.codes2map,v=c._get17,x=c.U,S=d==null;S&&(d=new f(o.length>>>2<<3));for(var E=0,e=0,t=0,r=0,l=0,h=0,m=0,y=0,b=0,U,w;E==0;){if(E=u(o,b,1),e=u(o,b+1,2),b+=3,e==0){b&7&&(b+=8-(b&7));var T=(b>>>3)+4,C=o[T-4]|o[T-3]<<8;S&&(d=n.F._check(d,y+C)),d.set(new f(o.buffer,o.byteOffset+T,C),y),b=T+C<<3,y+=C;continue}if(S&&(d=n.F._check(d,y+(1<<17))),e==1&&(U=x.flmap,w=x.fdmap,h=511,m=31),e==2){t=s(o,b,5)+257,r=s(o,b+5,5)+1,l=s(o,b+10,4)+4,b+=14;for(var I=0;I<38;I+=2)x.itree[I]=0,x.itree[I+1]=0;for(var A=1,I=0;I<l;I++){var D=s(o,b+I*3,3);x.itree[(x.ordr[I]<<1)+1]=D,D>A&&(A=D)}b+=3*l,g(x.itree,A),_(x.itree,A,x.imap),U=x.lmap,w=x.dmap,b=p(x.imap,(1<<A)-1,t+r,o,b,x.ttree);var P=c._copyOut(x.ttree,0,t,x.ltree);h=(1<<P)-1;var K=c._copyOut(x.ttree,t,r,x.dtree);m=(1<<K)-1,g(x.ltree,P),_(x.ltree,P,U),g(x.dtree,K),_(x.dtree,K,w)}for(;;){var X=U[v(o,b)&h];b+=X&15;var V=X>>>4;if(!(V>>>8))d[y++]=V;else{if(V==256)break;var N=y+V-254;if(V>264){var q=x.ldef[V-257];N=y+(q>>>3)+s(o,b,q&7),b+=q&7}var Q=w[v(o,b)&m];b+=Q&15;var xe=Q>>>4,j=x.ddef[xe],W=(j>>>4)+u(o,b,j&15);for(b+=j&15,S&&(d=n.F._check(d,y+(1<<17)));y<N;)d[y]=d[y++-W],d[y]=d[y++-W],d[y]=d[y++-W],d[y]=d[y++-W];y=N}}}return d.length==y?d:d.slice(0,y)},n.F._check=function(o,d){var f=o.length;if(d<=f)return o;var c=new Uint8Array(Math.max(f<<1,d));return c.set(o,0),c},n.F._decodeTiny=function(o,d,f,c,u,s){for(var p=n.F._bitsE,g=n.F._get17,_=0;_<f;){var v=o[g(c,u)&d];u+=v&15;var x=v>>>4;if(x<=15)s[_]=x,_++;else{var S=0,E=0;x==16?(E=3+p(c,u,2),u+=2,S=s[_-1]):x==17?(E=3+p(c,u,3),u+=3):x==18&&(E=11+p(c,u,7),u+=7);for(var e=_+E;_<e;)s[_]=S,_++}}return u},n.F._copyOut=function(o,d,f,c){for(var u=0,s=0,p=c.length>>>1;s<f;){var g=o[s+d];c[s<<1]=0,c[(s<<1)+1]=g,g>u&&(u=g),s++}for(;s<p;)c[s<<1]=0,c[(s<<1)+1]=0,s++;return u},n.F.makeCodes=function(o,d){for(var f=n.F.U,c=o.length,u,s,p,g,_,v=f.bl_count,g=0;g<=d;g++)v[g]=0;for(g=1;g<c;g+=2)v[o[g]]++;var x=f.next_code;for(u=0,v[0]=0,s=1;s<=d;s++)u=u+v[s-1]<<1,x[s]=u;for(p=0;p<c;p+=2)_=o[p+1],_!=0&&(o[p]=x[_],x[_]++)},n.F.codes2map=function(o,d,f){for(var c=o.length,u=n.F.U,s=u.rev15,p=0;p<c;p+=2)if(o[p+1]!=0)for(var g=p>>1,_=o[p+1],v=g<<4|_,x=d-_,S=o[p]<<x,E=S+(1<<x);S!=E;){var e=s[S]>>>15-d;f[e]=v,S++}},n.F.revCodes=function(o,d){for(var f=n.F.U.rev15,c=15-d,u=0;u<o.length;u+=2){var s=o[u]<<d-o[u+1];o[u]=f[s]>>>c}},n.F._putsE=function(o,d,f){f=f<<(d&7);var c=d>>>3;o[c]|=f,o[c+1]|=f>>>8},n.F._putsF=function(o,d,f){f=f<<(d&7);var c=d>>>3;o[c]|=f,o[c+1]|=f>>>8,o[c+2]|=f>>>16},n.F._bitsE=function(o,d,f){return(o[d>>>3]|o[(d>>>3)+1]<<8)>>>(d&7)&(1<<f)-1},n.F._bitsF=function(o,d,f){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16)>>>(d&7)&(1<<f)-1},n.F._get17=function(o,d){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16)>>>(d&7)},n.F._get25=function(o,d){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16|o[(d>>>3)+3]<<24)>>>(d&7)},n.F.U=function(){var o=Uint16Array,d=Uint32Array;return{next_code:new o(16),bl_count:new o(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new o(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new d(32),flmap:new o(512),fltree:[],fdmap:new o(32),fdtree:[],lmap:new o(32768),ltree:[],ttree:[],dmap:new o(32768),dtree:[],imap:new o(512),itree:[],rev15:new o(32768),lhst:new d(286),dhst:new d(30),ihst:new d(19),lits:new d(15e3),strt:new o(65536),prev:new o(32768)}}(),function(){for(var o=n.F.U,d=32768,f=0;f<d;f++){var c=f;c=(c&2863311530)>>>1|(c&1431655765)<<1,c=(c&3435973836)>>>2|(c&858993459)<<2,c=(c&4042322160)>>>4|(c&252645135)<<4,c=(c&4278255360)>>>8|(c&16711935)<<8,o.rev15[f]=(c>>>16|c<<16)>>>17}function u(s,p,g){for(;p--!=0;)s.push(0,g)}for(var f=0;f<32;f++)o.ldef[f]=o.of0[f]<<3|o.exb[f],o.ddef[f]=o.df0[f]<<4|o.dxb[f];u(o.fltree,144,8),u(o.fltree,112,9),u(o.fltree,24,7),u(o.fltree,8,8),n.F.makeCodes(o.fltree,9),n.F.codes2map(o.fltree,9,o.flmap),n.F.revCodes(o.fltree,9),u(o.fdtree,32,5),n.F.makeCodes(o.fdtree,5),n.F.codes2map(o.fdtree,5,o.fdmap),n.F.revCodes(o.fdtree,5),u(o.itree,19,0),u(o.ltree,286,0),u(o.dtree,30,0),u(o.ttree,320,0)}()}(vt)),vt.exports}var un=hn(),pn=Zt(un);const Y=class Y{constructor(n,o,d,f,c){this.copy=()=>new Y(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const u=":";let s=("0"+this.h).slice(-2)+u+("0"+this.m).slice(-2)+u+("0"+this.s).slice(-2)+u+("0"+this.f).slice(-2);return s+="."+(this.field?"1":"2"),s},this.toZipTimeCodeString=()=>{const u=this.copy();return u.f=0,u.s=u.s%2===0?u.s:u.s-1,u.field=0,Y.toStr(u)},this.toFrames=u=>{let s=60,p=0;Math.floor(u)==60?(s=60,p=0):Math.floor(u)==59?(s=60,p=4):Math.floor(u)==30?(s=30,p=0):Math.floor(u)==29&&(s=30,p=2);let g=this.h,_=this.m,v=this.s,x=this.f,S=this.field;const E=g*60+_,t=(E-Math.floor(E/10))*p;return g*(s*3600)+_*(s*60)+v*s+(x*2+S)-t},this.addSeconds=u=>{let s=this.copy();return s.s+=u,s.s>=60&&(s.s=0,s.m++,s.m>=60&&(s.m=0,s.h++)),s},this.addFrames=(u,s)=>{let p=this.toFrames(s);return p+=u,Y.fromFrames(p,s)},this.subtractFrames=(u,s)=>this.addFrames(-u,s),this.h=n||0,this.m=o||0,this.s=d||0,this.f=f||0,this.field=c||0}static compare(n,o){return n.h!==o.h?n.h<o.h?-1:1:n.m!==o.m?n.m<o.m?-1:1:n.s!==o.s?n.s<o.s?-1:1:n.f!==o.f?n.f<o.f?-1:1:n.field!==o.field?n.field<o.field?-1:1:0}static generateTimecodeRange(n,o,d){const f=[];let c=n;for(;Y.compare(c,o)<=0;)f.push(c),c=c.addSeconds(d);return f}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(n){return this.toFrames(n)*1e3/n}};Y.calculateCurrentTimeCode=n=>{var v;if(!n.video||!n.clocker||!n.gameParams)throw new Error("OTTPlayer is not initialized");const o=n.video,d=n.clocker,f=d.videoFPScalculator.getFPS(),s=(o.currentTime-d.syncPoint.playerTime)%(60*60*24)*f+d.syncPoint.frame;if(s===0||f===0)throw new Error("Current frame is 0 or fps is 0");const p=Y.calculateCurrentOffset(s,(v=n.gameParams)==null?void 0:v.offsets);if(p===void 0)throw new Error("Offset is undefined");let g=Math.floor(s-p);return g<0&&(g+=5178816),g>=5178816&&(g-=5178816),Y.fromFrames(g,f)},Y.calculateCurrentOffset=(n,o)=>{for(let d=1;d<o.length;d++)if(n<o[d].frame)return o[d-1].offset;return o[o.length-1].offset},Y.fromFrames=(n,o)=>{let d=60,f=0;Math.floor(o)==60?(d=60,f=0):Math.floor(o)==59?(d=60,f=4):Math.floor(o)==30?(d=30,f=0):Math.floor(o)==29&&(d=30,f=2);let c=Math.floor(o*60),u=Math.floor(o*60*10),s=u*6,p=n,g=Math.floor(p/s);p-=g*s;let _=Math.floor(p/u);p-=_*u,p>=d*60&&(p+=f*(Math.floor((p-d*60)/c)+1));let v=Math.floor(p/(d*60));p-=v*(d*60);let x=Math.floor(p/d);p-=x*d;let S=p;v+=_*10;let E=0;return E=S%2,S=Math.floor(S/2),new Y(g,v,x,S,E)},Y.toStr=n=>{const o="_";let d=("0"+n.h).slice(-2)+o+("0"+n.m).slice(-2)+o+("0"+n.s).slice(-2)+o+("0"+n.f).slice(-2);return n.field&&(d+="_1"),d},Y.fromStr=n=>{const d=n.split("_").map(Number);if(d.length==4){const[f,c,u,s]=d;return new Y(f,c,u,s,0)}else if(d.length==5){const[f,c,u,s,p]=d;return new Y(f,c,u,s,p)}else throw new Error("Invalid timecode format: "+n)},Y.fromMetadata=n=>{const o=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,d=n.timecode.match(o);if(!d)throw new Error("Invalid timecode format: "+n.timecode);const[,f,c,u,s,p]=d,g=Number(f),_=Number(c),v=Number(u),x=Number(s),S=p?Number(p):0;return new Y(g,_,v,x,S)};let $=Y;const z={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},ee=console,ce={};Object.keys(z).forEach(a=>{ce[a]=ee[a]});const Be="Datadog Browser SDK:",O={debug:ce.debug.bind(ee,Be),log:ce.log.bind(ee,Be),info:ce.info.bind(ee,Be),warn:ce.warn.bind(ee,Be),error:ce.error.bind(ee,Be)},St="https://docs.datadoghq.com",ti=`${St}/real_user_monitoring/browser/troubleshooting`,Ve="More details:";function ii(a,n){return(...o)=>{try{return a(...o)}catch(d){O.error(n,d)}}}function $e(a){return a!==0&&Math.random()*100<=a}function _n(a){return gn(a)&&a>=0&&a<=100}function gn(a){return typeof a=="number"}const ke=1e3,he=60*ke,ni=60*he,mn=365*(24*ni);function Le(){return new Date().getTime()}function se(){return Le()}function je(){return performance.now()}function oe(){return{relative:je(),timeStamp:se()}}function yn(){return{relative:0,timeStamp:ri()}}function vn(a,n){return n-a}function Sn(a,n){return a+n}function bn(a){return a-ri()}let bt;function ri(){return bt===void 0&&(bt=performance.timing.navigationStart),bt}const te=1024,si=1024*te,xn=/[^\\u0000-\\u007F]/;function xt(a){return xn.test(a)?window.TextEncoder!==void 0?new TextEncoder().encode(a).length:new Blob([a]).size:a.length}function Un(a){return{...a}}function oi(a,n){return Object.keys(a).some(o=>a[o]===n)}function De(a){return Object.keys(a).length===0}function ae(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let a=_dd_temp_;return delete Object.prototype._dd_temp_,typeof a!="object"&&(typeof self=="object"?a=self:typeof window=="object"?a=window:a={}),a}function Ue(a,n){const o=ae();let d;return o.Zone&&typeof o.Zone.__symbol__=="function"&&(d=a[o.Zone.__symbol__(n)]),d||(d=a[n]),d}let Ke,ai=!1;function En(a){Ke=a}function wn(a){ai=a}function Tn(a,n,o){const d=o.value;o.value=function(...f){return(Ke?L(d):d).apply(this,f)}}function L(a){return function(){return Re(a,this,arguments)}}function Re(a,n,o){try{return a.apply(n,o)}catch(d){Cn(d)}}function Cn(a){if(Ut(a),Ke)try{Ke(a)}catch(n){Ut(n)}}function Ut(...a){ai&&O.error("[MONITOR]",...a)}function Pe(a,n){return Ue(ae(),"setTimeout")(L(a),n)}function di(a){Ue(ae(),"clearTimeout")(a)}function Et(a,n){return Ue(ae(),"setInterval")(L(a),n)}function li(a){Ue(ae(),"clearInterval")(a)}class G{constructor(n){this.onFirstSubscribe=n,this.observers=[]}subscribe(n){return this.observers.push(n),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(o=>n!==o),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(n){this.observers.forEach(o=>o(n))}}function fi(...a){return new G(n=>{const o=a.map(d=>d.subscribe(f=>n.notify(f)));return()=>o.forEach(d=>d.unsubscribe())})}function ci(a,n,o){let d=!1,f,c;return{throttled:(...u)=>{if(d){f=u;return}a(...u),d=!0,c=Pe(()=>{f&&a(...f),d=!1,f=void 0},n)},cancel:()=>{di(c),d=!1,f=void 0}}}function de(){}function le(a){return a?(parseInt(a,10)^Math.random()*16>>parseInt(a,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,le)}const qe=/([\\w-]+)\\s*=\\s*([^;]+)/g;function An(a,n){for(qe.lastIndex=0;;){const o=qe.exec(a);if(o){if(o[1]===n)return o[2]}else break}}function In(a){const n=new Map;for(qe.lastIndex=0;;){const o=qe.exec(a);if(o)n.set(o[1],o[2]);else break}return n}function Fn(a,n,o=""){const d=a.charCodeAt(n-1),c=d>=55296&&d<=56319?n+1:n;return a.length<=c?a:`${a.slice(0,c)}${o}`}function Bn(){return kn()===0}let We;function kn(){return We??(We=Ln())}function Ln(a=window){var n;const o=a.navigator.userAgent;return a.chrome||/HeadlessChrome/.test(o)?0:((n=a.navigator.vendor)===null||n===void 0?void 0:n.indexOf("Apple"))===0||/safari/i.test(o)&&!/chrome|android/i.test(o)?1:2}function ze(a,n,o=0,d){const f=new Date;f.setTime(f.getTime()+o);const c=`expires=${f.toUTCString()}`,u=d&&d.crossSite?"none":"strict",s=d&&d.domain?`;domain=${d.domain}`:"",p=d&&d.secure?";secure":"",g=d&&d.partitioned?";partitioned":"";document.cookie=`${a}=${n};${c};path=/;samesite=${u}${s}${p}${g}`}function wt(a){return An(document.cookie,a)}let Tt;function ue(a){return Tt||(Tt=In(document.cookie)),Tt.get(a)}function hi(a,n){ze(a,"",0,n)}function Dn(a){if(document.cookie===void 0||document.cookie===null)return!1;try{const n=`dd_cookie_test_${le()}`,o="test";ze(n,o,he,a);const d=wt(n)===o;return hi(n,a),d}catch(n){return O.error(n),!1}}let Ct;function Rn(){if(Ct===void 0){const a=`dd_site_test_${le()}`,n="test",o=window.location.hostname.split(".");let d=o.pop();for(;o.length&&!wt(a);)d=`${o.pop()}.${d}`,ze(a,n,ke,{domain:d});hi(a,{domain:d}),Ct=d}return Ct}const Ee="_dd_s";function Je(a){return Object.values(a)}function Pn(a){return Object.entries(a)}const At=4*ni,ui=15*he,zn=mn,Oe={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},pi=/^([a-zA-Z]+)=([a-z0-9-]+)$/,It="&";function On(a){return!!a&&(a.indexOf(It)!==-1||pi.test(a))}const Mn="1";function pe(a,n){const o={isExpired:Mn};return n.trackAnonymousUser&&(a!=null&&a.anonymousId?o.anonymousId=a==null?void 0:a.anonymousId:o.anonymousId=le()),o}function Xe(a){return De(a)}function _i(a){return!Xe(a)}function Ze(a){return a.isExpired!==void 0||!Nn(a)}function Nn(a){return(a.created===void 0||Le()-Number(a.created)<At)&&(a.expire===void 0||Le()<Number(a.expire))}function gi(a){a.expire=String(Le()+ui)}function Ft(a){return Pn(a).map(([n,o])=>n==="anonymousId"?`aid=${o}`:`${n}=${o}`).join(It)}function mi(a){const n={};return On(a)&&a.split(It).forEach(o=>{const d=pi.exec(o);if(d!==null){const[,f,c]=d;f==="aid"?n.anonymousId=c:n[f]=c}}),n}const Gn="_dd",Hn="_dd_r",Yn="_dd_l",Vn="rum",$n="logs";function jn(a){if(!ue(Ee)){const o=ue(Gn),d=ue(Hn),f=ue(Yn),c={};o&&(c.id=o),f&&/^[01]$/.test(f)&&(c[$n]=f),d&&/^[012]$/.test(d)&&(c[Vn]=d),_i(c)&&(gi(c),a.persistSession(c))}}function yi(a){const n=Xn(a);return Dn(n)?{type:Oe.COOKIE,cookieOptions:n}:void 0}function Kn(a,n){const o={isLockEnabled:Bn(),persistSession:qn(n),retrieveSession:Jn,expireSession:d=>Wn(n,d,a)};return jn(o),o}function qn(a){return n=>{ze(Ee,Ft(n),ui,a)}}function Wn(a,n,o){const d=pe(n,o);ze(Ee,Ft(d),o.trackAnonymousUser?zn:At,a)}function Jn(){const a=wt(Ee);return mi(a)}function Xn(a){const n={};return n.secure=!!a.useSecureSessionCookie||!!a.usePartitionedCrossSiteSessionCookie,n.crossSite=!!a.usePartitionedCrossSiteSessionCookie,n.partitioned=!!a.usePartitionedCrossSiteSessionCookie,a.trackSessionAcrossSubdomains&&(n.domain=Rn()),n}const Zn="_dd_test_";function vi(){try{const a=le(),n=`${Zn}${a}`;localStorage.setItem(n,a);const o=localStorage.getItem(n);return localStorage.removeItem(n),a===o?{type:Oe.LOCAL_STORAGE}:void 0}catch{return}}function Qn(a){return{isLockEnabled:!1,persistSession:Si,retrieveSession:er,expireSession:n=>tr(n,a)}}function Si(a){localStorage.setItem(Ee,Ft(a))}function er(){const a=localStorage.getItem(Ee);return mi(a)}function tr(a,n){Si(pe(a,n))}const ir=10,nr=100,bi=[];let Qe;function _e(a,n,o=0){var d;const{isLockEnabled:f,persistSession:c,expireSession:u}=n,s=x=>c({...x,lock:g}),p=()=>{const x=n.retrieveSession(),S=x.lock;return x.lock&&delete x.lock,{session:x,lock:S}};if(Qe||(Qe=a),a!==Qe){bi.push(a);return}if(f&&o>=nr){xi(n);return}let g,_=p();if(f){if(_.lock){et(a,n,o);return}if(g=le(),s(_.session),_=p(),_.lock!==g){et(a,n,o);return}}let v=a.process(_.session);if(f&&(_=p(),_.lock!==g)){et(a,n,o);return}if(v&&(Ze(v)?u(v):(gi(v),f?s(v):c(v))),f&&!(v&&Ze(v))){if(_=p(),_.lock!==g){et(a,n,o);return}c(_.session),v=_.session}(d=a.after)===null||d===void 0||d.call(a,v||_.session),xi(n)}function et(a,n,o){Pe(()=>{_e(a,n,o+1)},ir)}function xi(a){Qe=void 0;const n=bi.shift();n&&_e(n,a)}const Ui=ke;function rr(a){switch(a.sessionPersistence){case Oe.COOKIE:return yi(a);case Oe.LOCAL_STORAGE:return vi();case void 0:{let n=yi(a);return!n&&a.allowFallbackToLocalStorage&&(n=vi()),n}default:O.error(`Invalid session persistence \'${String(a.sessionPersistence)}\'`)}}function sr(a,n,o,d){const f=new G,c=new G,u=new G,s=a.type===Oe.COOKIE?Kn(n,a.cookieOptions):Qn(n),{expireSession:p}=s,g=Et(E,Ui);let _;t();const{throttled:v,cancel:x}=ci(()=>{_e({process:U=>{if(Xe(U))return;const w=e(U);return r(w),w},after:U=>{_i(U)&&!l()&&y(U),_=U}},s)},Ui);function S(){_e({process:U=>l()?e(U):void 0},s)}function E(){_e({process:U=>Ze(U)?pe(U,n):void 0,after:e},s)}function e(U){return Ze(U)&&(U=pe(U,n)),l()&&(h(U)?m():(u.notify({previousState:_,newState:U}),_=U)),U}function t(){_e({process:U=>{if(Xe(U))return pe(U,n)},after:U=>{_=U}},s)}function r(U){if(Xe(U))return!1;const{trackingType:w,isTracked:T}=d(U[o]);U[o]=w,delete U.isExpired,T&&!U.id&&(U.id=le(),U.created=String(Le()))}function l(){return _[o]!==void 0}function h(U){return _.id!==U.id||_[o]!==U[o]}function m(){_=pe(_,n),c.notify()}function y(U){_=U,f.notify()}function b(U){_e({process:w=>({...w,...U}),after:e},s)}return{expandOrRenewSession:v,expandSession:S,getSession:()=>_,renewObservable:f,expireObservable:c,sessionStateUpdateObservable:u,restartSession:t,expire:()=>{x(),p(_),e(pe(_,n))},stop:()=>{li(g)},updateSessionState:b}}const Bt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function or(a){const n=new G;return{tryToInit(o){a||(a=o)},update(o){a=o,n.notify()},isGranted(){return a===Bt.GRANTED},observable:n}}function ge(a,n,o){if(typeof a!="object"||a===null)return JSON.stringify(a);const d=we(Object.prototype),f=we(Array.prototype),c=we(Object.getPrototypeOf(a)),u=we(a);try{return JSON.stringify(a,n,o)}catch{return"<error: unable to serialize object>"}finally{d(),f(),c(),u()}}function we(a){const n=a,o=n.toJSON;return o?(delete n.toJSON,()=>{n.toJSON=o}):de}function kt(a){return ar(a,location.href).href}function ar(a,n){const o=dr();if(o)try{return n!==void 0?new o(a,n):new o(a)}catch(c){throw new Error(`Failed to construct URL: ${String(c)} ${ge({url:a,base:n})}`)}if(n===void 0&&!/:/.test(a))throw new Error(`Invalid URL: \'${a}\'`);let d=document;const f=d.createElement("a");if(n!==void 0){d=document.implementation.createHTMLDocument("");const c=d.createElement("base");c.href=n,d.head.appendChild(c),d.body.appendChild(f)}return f.href=a,f}const Ei=URL;let tt;function dr(){if(tt===void 0)try{tt=new Ei("http://test/path").href==="http://test/path"}catch{tt=!1}return tt?Ei:void 0}const lr="datad0g.com",fr="dd0g-gov.com",Te="datadoghq.com",cr="ddog-gov.com",hr="pci.browser-intake-datadoghq.com",ur=["ddsource","ddtags"];function Me(a,n,o){const d=pr(a,n);return{build(f,c){const u=gr(a,n,o,f,c);return d(u)},urlPrefix:d(""),trackType:n}}function pr(a,n){const o=`/api/v2/${n}`,d=a.proxy;if(typeof d=="string"){const c=kt(d);return u=>`${c}?ddforward=${encodeURIComponent(`${o}?${u}`)}`}if(typeof d=="function")return c=>d({path:o,parameters:c});const f=_r(n,a);return c=>`https://${f}${o}?${c}`}function _r(a,n){const{site:o=Te,internalAnalyticsSubdomain:d}=n;if(a==="logs"&&n.usePciIntake&&o===Te)return hr;if(d&&o===Te)return`${d}.${Te}`;if(o===fr)return`http-intake.logs.${o}`;const f=o.split("."),c=f.pop();return`browser-intake-${f.join("-")}.${c}`}function gr({clientToken:a,internalAnalyticsSubdomain:n},o,d,f,{retry:c,encoding:u}){const s=["sdk_version:6.5.0",`api:${f}`].concat(d);c&&s.push(`retry_count:${c.count}`,`retry_after:${c.lastFailureStatus}`);const p=["ddsource=browser",`ddtags=${encodeURIComponent(s.join(","))}`,`dd-api-key=${a}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${le()}`];return u&&p.push(`dd-evp-encoding=${u}`),o==="rum"&&p.push(`batch_time=${se()}`),n&&p.reverse(),p.join("&")}const mr=200;function yr(a){const{env:n,service:o,version:d,datacenter:f}=a,c=[];return n&&c.push(it("env",n)),o&&c.push(it("service",o)),d&&c.push(it("version",d)),f&&c.push(it("datacenter",f)),c}function it(a,n){const o=mr-a.length-1;(n.length>o||vr(n))&&O.warn(`${a} value doesn\'t meet tag requirements and will be sanitized. ${Ve} ${St}/getting_started/tagging/#defining-tags`);const d=n.replace(/,/g,"_");return`${a}:${d}`}function vr(a){return Sr()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(a):!1}function Sr(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function br(a){const n=a.site||Te,o=yr(a),d=xr(a,o);return{replica:Ur(a,o),site:n,...d}}function xr(a,n){return{logsEndpointBuilder:Me(a,"logs",n),rumEndpointBuilder:Me(a,"rum",n),sessionReplayEndpointBuilder:Me(a,"replay",n)}}function Ur(a,n){if(!a.replica)return;const o={...a,site:Te,clientToken:a.replica.clientToken},d={logsEndpointBuilder:Me(o,"logs",n),rumEndpointBuilder:Me(o,"rum",n)};return{applicationId:a.replica.applicationId,...d}}function Er(a){return ur.every(n=>a.includes(n))}function Lt(a,n){return a!=null&&typeof a!="string"?(O.error(`${n} must be defined as a string`),!1):!0}function wr(a){return a&&typeof a=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(a)?(O.error(`Site should be a valid Datadog site. ${Ve} ${St}/getting_started/site/.`),!1):!0}function nt(a,n){return a!==void 0&&!_n(a)?(O.error(`${n} Sample Rate should be a number between 0 and 100`),!1):!0}function Tr(a){var n,o,d,f,c,u;if(!a||!a.clientToken){O.error("Client Token is not configured, we will not send any data.");return}if(!(!wr(a.site)||!nt(a.sessionSampleRate,"Session")||!nt(a.telemetrySampleRate,"Telemetry")||!nt(a.telemetryConfigurationSampleRate,"Telemetry Configuration")||!nt(a.telemetryUsageSampleRate,"Telemetry Usage")||!Lt(a.version,"Version")||!Lt(a.env,"Env")||!Lt(a.service,"Service"))){if(a.trackingConsent!==void 0&&!oi(Bt,a.trackingConsent)){O.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:a.beforeSend&&ii(a.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:rr(a),sessionSampleRate:(n=a.sessionSampleRate)!==null&&n!==void 0?n:100,telemetrySampleRate:(o=a.telemetrySampleRate)!==null&&o!==void 0?o:20,telemetryConfigurationSampleRate:(d=a.telemetryConfigurationSampleRate)!==null&&d!==void 0?d:5,telemetryUsageSampleRate:(f=a.telemetryUsageSampleRate)!==null&&f!==void 0?f:5,service:a.service||void 0,silentMultipleInit:!!a.silentMultipleInit,allowUntrustedEvents:!!a.allowUntrustedEvents,trackingConsent:(c=a.trackingConsent)!==null&&c!==void 0?c:Bt.GRANTED,trackAnonymousUser:(u=a.trackAnonymousUser)!==null&&u!==void 0?u:!0,storeContextsAcrossPages:!!a.storeContextsAcrossPages,batchBytesLimit:16*te,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*ke,batchMessagesLimit:50,messageBytesLimit:256*te,...br(a)}}}function Cr(a){return{session_sample_rate:a.sessionSampleRate,telemetry_sample_rate:a.telemetrySampleRate,telemetry_configuration_sample_rate:a.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:a.telemetryUsageSampleRate,use_before_send:!!a.beforeSend,use_partitioned_cross_site_session_cookie:a.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:a.useSecureSessionCookie,use_proxy:!!a.proxy,silent_multiple_init:a.silentMultipleInit,track_session_across_subdomains:a.trackSessionAcrossSubdomains,track_anonymous_user:a.trackAnonymousUser,session_persistence:a.sessionPersistence,allow_fallback_to_local_storage:!!a.allowFallbackToLocalStorage,store_contexts_across_pages:!!a.storeContextsAcrossPages,allow_untrusted_events:!!a.allowUntrustedEvents,tracking_consent:a.trackingConsent}}var Dt;(function(a){a.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",a.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(Dt||(Dt={}));const wi=new Set;function Ar(a){Array.isArray(a)&&Ir(a.filter(n=>oi(Dt,n)))}function Ir(a){a.forEach(n=>{wi.add(n)})}function Fr(){return wi}const Ne="?";function ie(a){const n=[];let o=Rt(a,"stack");const d=String(a);return o&&o.startsWith(d)&&(o=o.slice(d.length)),o&&o.split(`\n`).forEach(f=>{const c=Lr(f)||Rr(f)||zr(f)||Nr(f);c&&(!c.func&&c.line&&(c.func=Ne),n.push(c))}),{message:Rt(a,"message"),name:Rt(a,"name"),stack:n}}const Ti="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",Ce="(?::(\\\\d+))",Br=new RegExp(`^\\\\s*at (.*?) ?\\\\(${Ti}${Ce}?${Ce}?\\\\)?\\\\s*$`,"i"),kr=new RegExp(`\\\\((\\\\S*)${Ce}${Ce}\\\\)`);function Lr(a){const n=Br.exec(a);if(!n)return;const o=n[2]&&n[2].indexOf("native")===0,d=n[2]&&n[2].indexOf("eval")===0,f=kr.exec(n[2]);return d&&f&&(n[2]=f[1],n[3]=f[2],n[4]=f[3]),{args:o?[n[2]]:[],column:n[4]?+n[4]:void 0,func:n[1]||Ne,line:n[3]?+n[3]:void 0,url:o?void 0:n[2]}}const Dr=new RegExp(`^\\\\s*at ?${Ti}${Ce}?${Ce}??\\\\s*$`,"i");function Rr(a){const n=Dr.exec(a);if(n)return{args:[],column:n[3]?+n[3]:void 0,func:Ne,line:n[2]?+n[2]:void 0,url:n[1]}}const Pr=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function zr(a){const n=Pr.exec(a);if(n)return{args:[],column:n[4]?+n[4]:void 0,func:n[1]||Ne,line:+n[3],url:n[2]}}const Or=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Mr=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function Nr(a){const n=Or.exec(a);if(!n)return;const o=n[3]&&n[3].indexOf(" > eval")>-1,d=Mr.exec(n[3]);return o&&d&&(n[3]=d[1],n[4]=d[2],n[5]=void 0),{args:n[2]?n[2].split(","):[],column:n[5]?+n[5]:void 0,func:n[1]||Ne,line:n[4]?+n[4]:void 0,url:n[3]}}function Rt(a,n){if(typeof a!="object"||!a||!(n in a))return;const o=a[n];return typeof o=="string"?o:void 0}function Gr(a,n,o,d){const f=[{url:n,column:d,line:o}],{name:c,message:u}=Yr(a);return{name:c,message:u,stack:f}}const Hr=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function Yr(a){let n,o;return{}.toString.call(a)==="[object String]"&&([,n,o]=Hr.exec(a)),{name:n,message:o}}function rt(a){const o=new Error(a);o.name="HandlingStack";let d;return Re(()=>{const f=ie(o);f.stack=f.stack.slice(2),d=me(f)}),d}function me(a){let n=Ci(a);return a.stack.forEach(o=>{const d=o.func==="?"?"<anonymous>":o.func,f=o.args&&o.args.length>0?`(${o.args.join(", ")})`:"",c=o.line?`:${o.line}`:"",u=o.line&&o.column?`:${o.column}`:"";n+=`\n at ${d}${f} @ ${o.url}${c}${u}`}),n}function Ci(a){return`${a.name||"Error"}: ${a.message}`}function ye(a,n,o,{computeHandlingStack:d}={}){let f=a[n];if(typeof f!="function")if(n in a&&n.startsWith("on"))f=de;else return{stop:de};let c=!1;const u=function(){if(c)return f.apply(this,arguments);const s=Array.from(arguments);let p;Re(o,null,[{target:this,parameters:s,onPostCall:_=>{p=_},handlingStack:d?rt("instrumented method"):void 0}]);const g=f.apply(this,s);return p&&Re(p,null,[g]),g};return a[n]=u,{stop:()=>{c=!0,a[n]===u&&(a[n]=f)}}}const Vr=220*te,$r="$",jr=3;function ne(a,n=Vr){const o=we(Object.prototype),d=we(Array.prototype),f=[],c=new WeakMap,u=Pt(a,$r,void 0,f,c),s=JSON.stringify(u);let p=s?s.length:0;if(p>n){Ot(n,"discarded",a);return}for(;f.length>0&&p<n;){const g=f.shift();let _=0;if(Array.isArray(g.source))for(let v=0;v<g.source.length;v++){const x=Pt(g.source[v],g.path,v,f,c);if(x!==void 0?p+=JSON.stringify(x).length:p+=4,p+=_,_=1,p>n){Ot(n,"truncated",a);break}g.target[v]=x}else for(const v in g.source)if(Object.prototype.hasOwnProperty.call(g.source,v)){const x=Pt(g.source[v],g.path,v,f,c);if(x!==void 0&&(p+=JSON.stringify(x).length+_+v.length+jr,_=1),p>n){Ot(n,"truncated",a);break}g.target[v]=x}}return o(),d(),u}function Pt(a,n,o,d,f){const c=Wr(a);if(!c||typeof c!="object")return Kr(c);const u=zt(c);if(u!=="[Object]"&&u!=="[Array]"&&u!=="[Error]")return u;const s=a;if(f.has(s))return`[Reference seen at ${f.get(s)}]`;const p=o!==void 0?`${n}.${o}`:n,g=Array.isArray(c)?[]:{};return f.set(s,p),d.push({source:c,target:g,path:p}),g}function Kr(a){return typeof a=="bigint"?`[BigInt] ${a.toString()}`:typeof a=="function"?`[Function] ${a.name||"unknown"}`:typeof a=="symbol"?`[Symbol] ${a.description||a.toString()}`:a}function zt(a){try{if(a instanceof Event)return qr(a);if(a instanceof RegExp)return`[RegExp] ${a.toString()}`;const o=Object.prototype.toString.call(a).match(/\\[object (.*)\\]/);if(o&&o[1])return`[${o[1]}]`}catch{}return"[Unserializable]"}function qr(a){return{type:a.type,isTrusted:a.isTrusted,currentTarget:a.currentTarget?zt(a.currentTarget):null,target:a.target?zt(a.target):null}}function Wr(a){const n=a;if(n&&typeof n.toJSON=="function")try{return n.toJSON()}catch{}return a}function Ot(a,n,o){O.warn(`The data provided has been ${n} as it is over the limit of ${a} characters:`,o)}const Ai="No stack, consider using an instance of Error";function Ii({stackTrace:a,originalError:n,handlingStack:o,componentStack:d,startClocks:f,nonErrorPrefix:c,source:u,handling:s}){const p=fe(n),g=Jr(a,p,c,n),_=Xr(p,a)?me(a):Ai,v=p?ki(n,u):void 0,x=a?a.name:void 0,S=Fi(n),E=Bi(n);return{startClocks:f,source:u,handling:s,handlingStack:o,componentStack:d,originalError:n,type:x,message:g,stack:_,causes:v,fingerprint:S,context:E}}function Jr(a,n,o,d){return a!=null&&a.message&&(a!=null&&a.name)?a.message:n?"Empty message":`${o} ${ge(ne(d))}`}function Xr(a,n){return n===void 0?!1:a?!0:n.stack.length>0&&(n.stack.length>1||n.stack[0].url!==void 0)}function Fi(a){return fe(a)&&"dd_fingerprint"in a?String(a.dd_fingerprint):void 0}function Bi(a){if(a!==null&&typeof a=="object"&&"dd_context"in a)return a.dd_context}function Zr(a){var n;return(n=/@ (.+)/.exec(a))===null||n===void 0?void 0:n[1]}function fe(a){return a instanceof Error||Object.prototype.toString.call(a)==="[object Error]"}function ki(a,n){let o=a;const d=[];for(;fe(o==null?void 0:o.cause)&&d.length<10;){const f=ie(o.cause);d.push({message:o.cause.message,source:n,type:f==null?void 0:f.name,stack:me(f)}),o=o.cause}return d.length?d:void 0}const J={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Qr(a){const n=(f,c)=>{const u=Ii({stackTrace:f,originalError:c,startClocks:oe(),nonErrorPrefix:"Uncaught",source:J.SOURCE,handling:"unhandled"});a.notify(u)},{stop:o}=es(n),{stop:d}=ts(n);return{stop:()=>{o(),d()}}}function es(a){return ye(window,"onerror",({parameters:[n,o,d,f,c]})=>{let u;fe(c)?u=ie(c):u=Gr(n,o,d,f),a(u,c??n)})}function ts(a){return ye(window,"onunhandledrejection",({parameters:[n]})=>{const o=n.reason||"Empty reason",d=ie(o);a(d,o)})}function is(a){const n={version:"6.5.0",onReady(o){o()},...a};return Object.defineProperty(n,"_setDebug",{get(){return wn},enumerable:!1}),n}function ns(a,n,o){const d=a[n];d&&!d.q&&d.version&&O.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),a[n]=o,d&&d.q&&d.q.forEach(f=>ii(f,"onReady callback threw an error:")())}function Li(a,n){n.silentMultipleInit||O.error(`${a} is already initialized.`)}function ve(a,n,o,d,f){return Mt(a,n,[o],d,f)}function Mt(a,n,o,d,{once:f,capture:c,passive:u}={}){const s=L(x=>{!x.isTrusted&&!x.__ddIsTrusted&&!a.allowUntrustedEvents||(f&&v(),d(x))}),p=u?{capture:c,passive:u}:c,g=window.EventTarget&&n instanceof EventTarget?window.EventTarget.prototype:n,_=Ue(g,"addEventListener");o.forEach(x=>_.call(n,x,s,p));function v(){const x=Ue(g,"removeEventListener");o.forEach(S=>x.call(n,S,s,p))}return{stop:v}}const st={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function rs(a,n){const o=[];n.includes(st.cspViolation)&&o.push(os(a));const d=n.filter(f=>f!==st.cspViolation);return d.length&&o.push(ss(d)),fi(...o)}function ss(a){return new G(n=>{if(!window.ReportingObserver)return;const o=L((f,c)=>f.forEach(u=>n.notify(as(u)))),d=new window.ReportingObserver(o,{types:a,buffered:!0});return d.observe(),()=>{d.disconnect()}})}function os(a){return new G(n=>{const{stop:o}=ve(a,document,"securitypolicyviolation",d=>{n.notify(ds(d))});return o})}function as(a){const{type:n,body:o}=a;return Di({type:o.id,message:`${n}: ${o.message}`,originalError:a,stack:Ri(o.id,o.message,o.sourceFile,o.lineNumber,o.columnNumber)})}function ds(a){const n=`\'${a.blockedURI}\' blocked by \'${a.effectiveDirective}\' directive`;return Di({type:a.effectiveDirective,message:`${st.cspViolation}: ${n}`,originalError:a,csp:{disposition:a.disposition},stack:Ri(a.effectiveDirective,a.originalPolicy?`${n} of the policy "${Fn(a.originalPolicy,100,"...")}"`:"no policy",a.sourceFile,a.lineNumber,a.columnNumber)})}function Di(a){return{startClocks:oe(),source:J.REPORT,handling:"unhandled",...a}}function Ri(a,n,o,d,f){return o?me({name:a,message:n,stack:[{func:"?",url:o,line:d??void 0,column:f??void 0}]}):void 0}function Pi(a,n){const o=window.__ddBrowserSdkExtensionCallback;o&&o({type:a,payload:n})}function zi(a){return a===null?"null":Array.isArray(a)?"array":typeof a}function ot(a,n,o=ls()){if(n===void 0)return a;if(typeof n!="object"||n===null)return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp){const f=n.flags||[n.global?"g":"",n.ignoreCase?"i":"",n.multiline?"m":"",n.sticky?"y":"",n.unicode?"u":""].join("");return new RegExp(n.source,f)}if(o.hasAlreadyBeenSeen(n))return;if(Array.isArray(n)){const f=Array.isArray(a)?a:[];for(let c=0;c<n.length;++c)f[c]=ot(f[c],n[c],o);return f}const d=zi(a)==="object"?a:{};for(const f in n)Object.prototype.hasOwnProperty.call(n,f)&&(d[f]=ot(d[f],n[f],o));return d}function Oi(a){return ot(void 0,a)}function Ae(...a){let n;for(const o of a)o!=null&&(n=ot(n,o));return n}function ls(){if(typeof WeakSet<"u"){const n=new WeakSet;return{hasAlreadyBeenSeen(o){const d=n.has(o);return d||n.add(o),d}}}const a=[];return{hasAlreadyBeenSeen(n){const o=a.indexOf(n)>=0;return o||a.push(n),o}}}function fs(){var a;const n=window.navigator;return{status:n.onLine?"connected":"not_connected",interfaces:n.connection&&n.connection.type?[n.connection.type]:void 0,effective_type:(a=n.connection)===null||a===void 0?void 0:a.effectiveType}}function cs(a){const n=new Set;return a.forEach(o=>n.add(o)),Array.from(n)}function Mi(a,n){const o=a.indexOf(n);o>=0&&a.splice(o,1)}const hs=500;function Ni(){const a=[];return{add:f=>{a.push(f)>hs&&a.splice(0,1)},remove:f=>{Mi(a,f)},drain:f=>{a.forEach(c=>c(f)),a.length=0}}}const Se={log:"log",configuration:"configuration",usage:"usage"},us=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],ps=[cr];let Gi=Ni(),Ie=a=>{Gi.add(()=>Ie(a))};function _s(a,n){let o;const d=new G,f=new Set,c=!ps.includes(n.site)&&$e(n.telemetrySampleRate),u={[Se.log]:c,[Se.configuration]:c&&$e(n.telemetryConfigurationSampleRate),[Se.usage]:c&&$e(n.telemetryUsageSampleRate)},s=gs();Ie=g=>{const _=ge(g);if(u[g.type]&&f.size<n.maxTelemetryEventsPerPage&&!f.has(_)){const v=p(a,g,s);d.notify(v),Pi("telemetry",v),f.add(_)}},En(Yi);function p(g,_,v){return Ae({type:"telemetry",date:se(),service:g,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:Ae(_,{runtime_env:v,connectivity:fs(),sdk_setup:"npm"}),experimental_features:Array.from(Fr())},o!==void 0?o():{})}return{setContextProvider:g=>{o=g},observable:d,enabled:c}}function gs(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function ms(){Gi.drain()}function ys(a){return a.site===lr}function Hi(a,n){Ut(z.debug,a,n),Ie({type:Se.log,message:a,status:"debug",...n})}function Yi(a,n){Ie({type:Se.log,status:"error",...bs(a),...n})}function vs(a){Ie({type:Se.configuration,configuration:a})}function Ss(a){Ie({type:Se.usage,usage:a})}function bs(a){if(fe(a)){const n=ie(a);return{error:{kind:n.name,stack:me(xs(n))},message:n.message}}return{error:{stack:Ai},message:`Uncaught ${ge(a)}`}}function xs(a){return a.stack=a.stack.filter(n=>!n.url||us.some(o=>n.url.startsWith(o))),a}const Ge=1/0,Us=he;let He=null;const at=new Set;function Es(){at.forEach(a=>a())}function ws({expireDelay:a,maxEntries:n}){let o=[];const d=[];He||(He=Et(()=>Es(),Us));const f=()=>{const S=je()-a;for(;o.length>0&&o[o.length-1].endTime<S;){const E=o.pop();E&&d.push(E.startTime)}};at.add(f);function c(S,E){const e={value:S,startTime:E,endTime:Ge,remove:()=>{Mi(o,e)},close:t=>{e.endTime=t}};return n&&o.length>=n&&o.pop(),o.unshift(e),e}function u(S=Ge,E={returnInactive:!1}){for(const e of o)if(e.startTime<=S){if(E.returnInactive||S<=e.endTime)return e.value;break}}function s(S){const E=o[0];E&&E.endTime===Ge&&E.close(S)}function p(S=Ge,E=0){const e=Sn(S,E);return o.filter(t=>t.startTime<=e&&S<=t.endTime).map(t=>t.value)}function g(){return o.map(({startTime:S,endTime:E,value:e})=>({startTime:S,endTime:E===Ge?"Infinity":E,value:e}))}function _(){return d}function v(){o=[]}function x(){at.delete(f),at.size===0&&He&&(li(He),He=null)}return{add:c,find:u,closeActive:s,findAll:p,reset:v,stop:x,getAllEntries:g,getDeletedEntries:_}}const Ts=he,Cs=At;function As(a,n,o,d){const f=new G,c=new G,u=sr(a.sessionStoreStrategyType,a,n,o),s=ws({expireDelay:Cs});u.renewObservable.subscribe(()=>{s.add(p(),je()),f.notify()}),u.expireObservable.subscribe(()=>{c.notify(),s.closeActive(je())}),u.expandOrRenewSession(),s.add(p(),yn().relative),d.observable.subscribe(()=>{d.isGranted()?u.expandOrRenewSession():u.expire()}),Is(a,()=>{d.isGranted()&&u.expandOrRenewSession()}),Fs(a,()=>u.expandSession()),Bs(a,()=>u.restartSession());function p(){return{id:u.getSession().id,trackingType:u.getSession()[n],isReplayForced:!!u.getSession().forcedReplay,anonymousId:u.getSession().anonymousId}}return{findSession:(g,_)=>s.find(g,_),renewObservable:f,expireObservable:c,sessionStateUpdateObservable:u.sessionStateUpdateObservable,expire:u.expire,updateSessionState:u.updateSessionState}}function Is(a,n){Mt(a,window,["click","touchstart","keydown","scroll"],n,{capture:!0,passive:!0})}function Fs(a,n){const o=()=>{document.visibilityState==="visible"&&n()};ve(a,document,"visibilitychange",o),Et(o,Ts)}function Bs(a,n){ve(a,window,"resume",n,{capture:!0})}function Vi(a){return a>=500}function ks(a){try{return a.clone()}catch{return}}const Ls=80*te,Ds=32,$i=3*si,Rs=he,ji=ke;function Ki(a,n,o,d,f){n.transportStatus===0&&n.queuedPayloads.size()===0&&n.bandwidthMonitor.canHandle(a)?Wi(a,n,o,{onSuccess:()=>Ji(0,n,o,d,f),onFailure:()=>{n.queuedPayloads.enqueue(a),qi(n,o,d,f)}}):n.queuedPayloads.enqueue(a)}function qi(a,n,o,d){a.transportStatus===2&&Pe(()=>{const f=a.queuedPayloads.first();Wi(f,a,n,{onSuccess:()=>{a.queuedPayloads.dequeue(),a.currentBackoffTime=ji,Ji(1,a,n,o,d)},onFailure:()=>{a.currentBackoffTime=Math.min(Rs,a.currentBackoffTime*2),qi(a,n,o,d)}})},a.currentBackoffTime)}function Wi(a,n,o,{onSuccess:d,onFailure:f}){n.bandwidthMonitor.add(a),o(a,c=>{n.bandwidthMonitor.remove(a),Ps(c)?(n.transportStatus=n.bandwidthMonitor.ongoingRequestCount>0?1:2,a.retry={count:a.retry?a.retry.count+1:1,lastFailureStatus:c.status},f()):(n.transportStatus=0,d())})}function Ji(a,n,o,d,f){a===0&&n.queuedPayloads.isFull()&&!n.queueFullReported&&(f({message:`Reached max ${d} events size queued for upload: ${$i/si}MiB`,source:J.AGENT,startClocks:oe()}),n.queueFullReported=!0);const c=n.queuedPayloads;for(n.queuedPayloads=Xi();c.size()>0;)Ki(c.dequeue(),n,o,d,f)}function Ps(a){return a.type!=="opaque"&&(a.status===0&&!navigator.onLine||a.status===408||a.status===429||Vi(a.status))}function zs(){return{transportStatus:0,currentBackoffTime:ji,bandwidthMonitor:Os(),queuedPayloads:Xi(),queueFullReported:!1}}function Xi(){const a=[];return{bytesCount:0,enqueue(n){this.isFull()||(a.push(n),this.bytesCount+=n.bytesCount)},first(){return a[0]},dequeue(){const n=a.shift();return n&&(this.bytesCount-=n.bytesCount),n},size(){return a.length},isFull(){return this.bytesCount>=$i}}}function Os(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(a){return this.ongoingRequestCount===0||this.ongoingByteCount+a.bytesCount<=Ls&&this.ongoingRequestCount<Ds},add(a){this.ongoingRequestCount+=1,this.ongoingByteCount+=a.bytesCount},remove(a){this.ongoingRequestCount-=1,this.ongoingByteCount-=a.bytesCount}}}function Ms(a,n,o){const d=zs(),f=(c,u)=>Hs(a,n,c,u);return{send:c=>{Ki(c,d,f,a.trackType,o)},sendOnExit:c=>{Ns(a,n,c)}}}function Ns(a,n,o){if(!!navigator.sendBeacon&&o.bytesCount<n)try{const c=a.build("beacon",o);if(navigator.sendBeacon(c,o.data))return}catch(c){Gs(c)}const f=a.build("xhr",o);Nt(f,o.data)}let Zi=!1;function Gs(a){Zi||(Zi=!0,Yi(a))}function Hs(a,n,o,d){if(Ys()&&o.bytesCount<n){const c=a.build("fetch",o);fetch(c,{method:"POST",body:o.data,keepalive:!0,mode:"cors"}).then(L(u=>d==null?void 0:d({status:u.status,type:u.type})),L(()=>{const u=a.build("xhr",o);Nt(u,o.data,d)}))}else{const c=a.build("xhr",o);Nt(c,o.data,d)}}function Ys(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function Nt(a,n,o){const d=new XMLHttpRequest;d.open("POST",a,!0),n instanceof Blob&&d.setRequestHeader("Content-Type",n.type),ve({allowUntrustedEvents:!0},d,"loadend",()=>{o==null||o({status:d.status})},{once:!0}),d.send(n)}function Gt(){const a=Vs();if(a)return{getCapabilities(){var n;return JSON.parse(((n=a.getCapabilities)===null||n===void 0?void 0:n.call(a))||"[]")},getPrivacyLevel(){var n;return(n=a.getPrivacyLevel)===null||n===void 0?void 0:n.call(a)},getAllowedWebViewHosts(){return JSON.parse(a.getAllowedWebViewHosts())},send(n,o,d){const f=d?{id:d}:void 0;a.send(JSON.stringify({eventType:n,event:o,view:f}))}}}function dt(a){var n;a===void 0&&(a=(n=ae().location)===null||n===void 0?void 0:n.hostname);const o=Gt();return!!o&&o.getAllowedWebViewHosts().some(d=>a===d||a.endsWith(`.${d}`))}function Vs(){return ae().DatadogEventBridge}const lt={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function $s(a){return new G(n=>{const{stop:o}=Mt(a,window,["visibilitychange","freeze"],f=>{f.type==="visibilitychange"&&document.visibilityState==="hidden"?n.notify({reason:lt.HIDDEN}):f.type==="freeze"&&n.notify({reason:lt.FROZEN})},{capture:!0}),d=ve(a,window,"beforeunload",()=>{n.notify({reason:lt.UNLOADING})}).stop;return()=>{o(),d()}})}function js(a){return Je(lt).includes(a)}function Ks({encoder:a,request:n,flushController:o,messageBytesLimit:d}){let f={};const c=o.flushObservable.subscribe(v=>_(v));function u(v,x,S){o.notifyBeforeAddMessage(x),S!==void 0?(f[S]=v,o.notifyAfterAddMessage()):a.write(a.isEmpty?v:`\n${v}`,E=>{o.notifyAfterAddMessage(E-x)})}function s(v){return v!==void 0&&f[v]!==void 0}function p(v){const x=f[v];delete f[v];const S=a.estimateEncodedBytesCount(x);o.notifyAfterRemoveMessage(S)}function g(v,x){const S=ge(v),E=a.estimateEncodedBytesCount(S);if(E>=d){O.warn(`Discarded a message whose size was bigger than the maximum allowed size ${d}KB. ${Ve} ${ti}/#technical-limitations`);return}s(x)&&p(x),u(S,E,x)}function _(v){const x=Je(f).join(`\n`);f={};const S=js(v.reason),E=S?n.sendOnExit:n.send;if(S&&a.isAsync){const e=a.finishSync();e.outputBytesCount&&E(Qi(e));const t=[e.pendingData,x].filter(Boolean).join(`\n`);t&&E({data:t,bytesCount:xt(t)})}else x&&a.write(a.isEmpty?x:`\n${x}`),a.finish(e=>{E(Qi(e))})}return{flushController:o,add:g,upsert:g,stop:c.unsubscribe}}function Qi(a){let n;return typeof a.output=="string"?n=a.output:n=new Blob([a.output],{type:"text/plain"}),{data:n,bytesCount:a.outputBytesCount,encoding:a.encoding}}function qs({messagesLimit:a,bytesLimit:n,durationLimit:o,pageExitObservable:d,sessionExpireObservable:f}){const c=d.subscribe(E=>_(E.reason)),u=f.subscribe(()=>_("session_expire")),s=new G(()=>()=>{c.unsubscribe(),u.unsubscribe()});let p=0,g=0;function _(E){if(g===0)return;const e=g,t=p;g=0,p=0,S(),s.notify({reason:E,messagesCount:e,bytesCount:t})}let v;function x(){v===void 0&&(v=Pe(()=>{_("duration_limit")},o))}function S(){di(v),v=void 0}return{flushObservable:s,get messagesCount(){return g},notifyBeforeAddMessage(E){p+E>=n&&_("bytes_limit"),g+=1,p+=E,x()},notifyAfterAddMessage(E=0){p+=E,g>=a?_("messages_limit"):p>=n&&_("bytes_limit")},notifyAfterRemoveMessage(E){p-=E,g-=1,g===0&&S()}}}function en(a,n,o,d,f,c,u=Ks){const s=g(a,n),p=o&&g(a,o);function g(_,{endpoint:v,encoder:x}){return u({encoder:x,request:Ms(v,_.batchBytesLimit,d),flushController:qs({messagesLimit:_.batchMessagesLimit,bytesLimit:_.batchBytesLimit,durationLimit:_.flushTimeout,pageExitObservable:f,sessionExpireObservable:c}),messageBytesLimit:_.messageBytesLimit})}return{flushObservable:s.flushController.flushObservable,add(_,v=!0){s.add(_),p&&v&&p.add(o.transformMessage?o.transformMessage(_):_)},upsert:(_,v)=>{s.upsert(_,v),p&&p.upsert(o.transformMessage?o.transformMessage(_):_,v)},stop:()=>{s.stop(),p&&p.stop()}}}function ft(){let a="",n=0;return{isAsync:!1,get isEmpty(){return!a},write(o,d){const f=xt(o);n+=f,a+=o,d&&d(f)},finish(o){o(this.finishSync())},finishSync(){const o={output:a,outputBytesCount:n,rawBytesCount:n,pendingData:""};return a="",n=0,o},estimateEncodedBytesCount(o){return o.length}}}class Ws{constructor(){this.callbacks={}}notify(n,o){const d=this.callbacks[n];d&&d.forEach(f=>f(o))}subscribe(n,o){return this.callbacks[n]||(this.callbacks[n]=[]),this.callbacks[n].push(o),{unsubscribe:()=>{this.callbacks[n]=this.callbacks[n].filter(d=>o!==d)}}}}function Js(a,n,o){let d=0,f=!1;return{isLimitReached(){if(d===0&&Pe(()=>{d=0},he),d+=1,d<=n||f)return f=!1,!1;if(d===n+1){f=!0;try{o({message:`Reached max number of ${a}s by minute: ${n}`,source:J.AGENT,startClocks:oe()})}finally{f=!1}}return!0}}}let Ht;const Yt=new WeakMap;function Xs(a){return Ht||(Ht=Zs(a)),Ht}function Zs(a){return new G(n=>{const{stop:o}=ye(XMLHttpRequest.prototype,"open",Qs),{stop:d}=ye(XMLHttpRequest.prototype,"send",c=>{eo(c,a,n)},{computeHandlingStack:!0}),{stop:f}=ye(XMLHttpRequest.prototype,"abort",to);return()=>{o(),d(),f()}})}function Qs({target:a,parameters:[n,o]}){Yt.set(a,{state:"open",method:String(n).toUpperCase(),url:kt(String(o))})}function eo({target:a,handlingStack:n},o,d){const f=Yt.get(a);if(!f)return;const c=f;c.state="start",c.startClocks=oe(),c.isAborted=!1,c.xhr=a,c.handlingStack=n;let u=!1;const{stop:s}=ye(a,"onreadystatechange",()=>{a.readyState===XMLHttpRequest.DONE&&p()}),p=()=>{if(g(),s(),u)return;u=!0;const _=f;_.state="complete",_.duration=vn(c.startClocks.timeStamp,se()),_.status=a.status,d.notify(Un(_))},{stop:g}=ve(o,a,"loadend",p);d.notify(c)}function to({target:a}){const n=Yt.get(a);n&&(n.isAborted=!0)}let Vt;function tn(){return Vt||(Vt=io()),Vt}function io(){return new G(a=>{if(!window.fetch)return;const{stop:n}=ye(window,"fetch",o=>no(o,a),{computeHandlingStack:!0});return n})}function no({parameters:a,onPostCall:n,handlingStack:o},d){const[f,c]=a;let u=c&&c.method;u===void 0&&f instanceof Request&&(u=f.method);const s=u!==void 0?String(u).toUpperCase():"GET",p=f instanceof Request?f.url:kt(String(f)),g=oe(),_={state:"start",init:c,input:f,method:s,startClocks:g,url:p,handlingStack:o};d.notify(_),a[0]=_.input,a[1]=_.init,n(v=>ro(d,v,_))}function ro(a,n,o){const d=o;function f(c){d.state="resolve",Object.assign(d,c),a.notify(d)}n.then(L(c=>{f({response:c,responseType:c.type,status:c.status,isAborted:!1})}),L(c=>{var u,s;f({status:0,isAborted:((s=(u=d.init)===null||u===void 0?void 0:u.signal)===null||s===void 0?void 0:s.aborted)||c instanceof DOMException&&c.code===DOMException.ABORT_ERR,error:c})}))}let $t={};function so(a){const n=a.map(o=>($t[o]||($t[o]=oo(o)),$t[o]));return fi(...n)}function oo(a){return new G(n=>{const o=ee[a];return ee[a]=(...d)=>{o.apply(console,d);const f=rt("console error");Re(()=>{n.notify(ao(d,a,f))})},()=>{ee[a]=o}})}function ao(a,n,o){const d=a.map(c=>lo(c)).join(" ");let f;if(n===z.error){const c=a.find(fe);f={stack:c?me(ie(c)):void 0,fingerprint:Fi(c),causes:c?ki(c,"console"):void 0,startClocks:oe(),message:d,source:J.CONSOLE,handling:"handled",handlingStack:o,context:Bi(c)}}return{api:n,message:d,error:f,handlingStack:o}}function lo(a){return typeof a=="string"?ne(a):fe(a)?Ci(ie(a)):ge(ne(a),void 0,2)}function fo(a){const n=zi(a)==="object";return n||O.error("Unsupported context:",a),n}function jt(a,n,o){const d={...a};for(const[f,{required:c,type:u}]of Object.entries(n))u==="string"&&f in d&&(d[f]=String(d[f])),c&&!(f in a)&&O.warn(`The property ${f} of ${o} is required; context will not be sent to the intake.`);return d}function ct(a="",{customerDataTracker:n,propertiesConfig:o={}}={}){let d={};const f=new G,c={getContext:()=>Oi(d),setContext:u=>{fo(u)?(d=ne(jt(u,o,a)),n==null||n.updateCustomerData(d)):c.clearContext(),f.notify()},setContextProperty:(u,s)=>{d=ne(jt({...d,[u]:s},o,a)),n==null||n.updateCustomerData(d),f.notify()},removeContextProperty:u=>{delete d[u],n==null||n.updateCustomerData(d),jt(d,o,a),f.notify()},clearContext:()=>{d={},n==null||n.resetCustomerData(),f.notify()},changeObservable:f};return c}const co="_dd_c",ho=[];function Kt(a,n,o,d){const f=uo(o,d);ho.push(ve(a,window,"storage",({key:g})=>{f===g&&u()})),n.changeObservable.subscribe(s);const c=Ae(p(),n.getContext());De(c)||n.setContext(c);function u(){n.setContext(p())}function s(){localStorage.setItem(f,JSON.stringify(n.getContext()))}function p(){const g=localStorage.getItem(f);return g?JSON.parse(g):{}}}function uo(a,n){return`${co}_${a}_${n}`}const po=3*te,_o=16*te,go=200;function mo(a=2){const n=new Map;let o=!1;function d(f=0){if(o||a===0)return;const c=a===2?po:_o;let u=f;n.forEach(s=>{u+=s.getBytesCount()}),u>c&&(yo(c),o=!0)}return{createDetachedTracker:()=>{const f=nn(()=>d(f.getBytesCount()));return f},getOrCreateTracker:f=>(n.has(f)||n.set(f,nn(d)),n.get(f)),setCompressionStatus:f=>{a===0&&(a=f,d())},getCompressionStatus:()=>a,stop:()=>{n.forEach(f=>f.stop()),n.clear()}}}function nn(a){let n=0;const{throttled:o,cancel:d}=ci(c=>{n=xt(ge(c)),a()},go),f=()=>{d(),n=0};return{updateCustomerData:c=>{De(c)?f():o(c)},resetCustomerData:f,getBytesCount:()=>n,stop:()=>{d()}}}function yo(a){O.warn(`Customer data exceeds the recommended ${a/te}KiB threshold. ${Ve} ${ti}/#customer-data-exceeds-the-recommended-threshold-warning`)}function vo(a,n,o){const d=a.getReader(),f=[];let c=0;u();function u(){d.read().then(L(p=>{if(p.done){s();return}f.push(p.value),c+=p.value.length,c>o.bytesLimit?s():u()}),L(p=>n(p)))}function s(){d.cancel().catch(de);let p,g;{let _;if(f.length===1)_=f[0];else{_=new Uint8Array(c);let v=0;f.forEach(x=>{_.set(x,v),v+=x.length})}p=_.slice(0,o.bytesLimit),g=_.length>o.bytesLimit}n(void 0,p,g)}}const So="datadog-synthetics-public-id",bo="datadog-synthetics-result-id",xo="datadog-synthetics-injects-rum";function rn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||ue(xo))}function Uo(){const a=window._DATADOG_SYNTHETICS_PUBLIC_ID||ue(So);return typeof a=="string"?a:void 0}function Eo(){const a=window._DATADOG_SYNTHETICS_RESULT_ID||ue(bo);return typeof a=="string"?a:void 0}function ht(a,n,o){const d=o.getHandler(),f=Array.isArray(d)?d:[d];return sn[a]>=sn[o.getLevel()]&&f.includes(n)}const B={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},sn={[B.ok]:0,[B.debug]:1,[B.info]:2,[B.notice]:4,[B.warn]:5,[B.error]:6,[B.critical]:7,[B.alert]:8,[B.emerg]:9};function ut(a,{includeMessage:n=!1}={}){return{stack:a.stack,kind:a.type,message:n?a.message:void 0,causes:a.causes,fingerprint:a.fingerprint,handling:a.handling}}var wo=function(a,n,o,d){var f=arguments.length,c=f<3?n:d===null?d=Object.getOwnPropertyDescriptor(n,o):d,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(a,n,o,d);else for(var s=a.length-1;s>=0;s--)(u=a[s])&&(c=(f<3?u(c):f>3?u(n,o,c):u(n,o))||c);return f>3&&c&&Object.defineProperty(n,o,c),c};const Ye={console:"console",http:"http",silent:"silent"},To=Object.keys(B);let Z=class{constructor(n,o,d,f=Ye.http,c=B.debug,u={}){this.handleLogStrategy=n,this.handlerType=f,this.level=c,this.contextManager=ct("logger",{customerDataTracker:o}),this.contextManager.setContext(u),d&&this.contextManager.setContextProperty("logger",{name:d})}logImplementation(n,o,d=B.info,f,c){const u=ne(o);let s;if(f!=null){const p=Ii({stackTrace:fe(f)?ie(f):void 0,originalError:f,nonErrorPrefix:"Provided",source:J.LOGGER,handling:"handled",startClocks:oe()});s=Ae({error:ut(p,{includeMessage:!0})},u)}else s=u;this.handleLogStrategy({message:ne(n),context:s,status:d},this,c)}log(n,o,d=B.info,f){let c;ht(d,Ye.http,this)&&(c=rt("log")),this.logImplementation(n,o,d,f,c)}setContext(n){this.contextManager.setContext(n)}getContext(){return this.contextManager.getContext()}setContextProperty(n,o){this.contextManager.setContextProperty(n,o)}removeContextProperty(n){this.contextManager.removeContextProperty(n)}clearContext(){this.contextManager.clearContext()}setHandler(n){this.handlerType=n}getHandler(){return this.handlerType}setLevel(n){this.level=n}getLevel(){return this.level}};wo([Tn],Z.prototype,"logImplementation",null),Z.prototype.ok=re(B.ok),Z.prototype.debug=re(B.debug),Z.prototype.info=re(B.info),Z.prototype.notice=re(B.notice),Z.prototype.warn=re(B.warn),Z.prototype.error=re(B.error),Z.prototype.critical=re(B.critical),Z.prototype.alert=re(B.alert),Z.prototype.emerg=re(B.emerg);function re(a){return function(n,o,d){let f;ht(a,Ye.http,this)&&(f=rt("log")),this.logImplementation(n,o,a,d,f)}}function Co(a,n,o){return{view:{referrer:document.referrer,url:window.location.href},context:a.getContext(),user:n.getContext(),account:o.getContext()}}const Ao=32*te;function Io(a){a.usePciIntake===!0&&a.site&&a.site!=="datadoghq.com"&&O.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const n=Tr(a),o=on(a.forwardConsoleLogs,Je(z),"Forward Console Logs"),d=on(a.forwardReports,Je(st),"Forward Reports");if(!(!n||!o||!d))return a.forwardErrorsToLogs&&!o.includes(z.error)&&o.push(z.error),{forwardErrorsToLogs:a.forwardErrorsToLogs!==!1,forwardConsoleLogs:o,forwardReports:d,requestErrorResponseLengthLimit:Ao,...n}}function on(a,n,o){if(a===void 0)return[];if(!(a==="all"||Array.isArray(a)&&a.every(d=>n.includes(d)))){O.error(`${o} should be "all" or an array with allowed values "${n.join(\'", "\')}"`);return}return a==="all"?n:cs(a)}function Fo(a){const n=Cr(a);return{forward_errors_to_logs:a.forwardErrorsToLogs,forward_console_logs:a.forwardConsoleLogs,forward_reports:a.forwardReports,use_pci_intake:a.usePciIntake,...n}}function Bo(a,n,o){const d=Ni();let f,c;const u=n.observable.subscribe(s);function s(){if(!c||!f||!n.isGranted())return;u.unsubscribe();const p=o(f,c);d.drain(p)}return{init(p){if(!p){O.error("Missing configuration");return}if(Ar(p.enableExperimentalFeatures),dt()&&(p=ko(p)),f=p,c){Li("DD_LOGS",p);return}const g=Io(p);g&&(c=g,tn().subscribe(de),n.tryToInit(g.trackingConsent),s())},get initConfiguration(){return f},getInternalContext:de,handleLog(p,g,_,v=a(),x=se()){d.add(S=>S.handleLog(p,g,_,v,x))}}}function ko(a){return{...a,clientToken:"empty"}}const qt="logs";function Lo(a){const n=mo(),o=ct("global context",{customerDataTracker:n.getOrCreateTracker(2)}),d=ct("user",{customerDataTracker:n.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),f=ct("account",{customerDataTracker:n.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),c=or();function u(){return Co(o,d,f)}let s=Bo(u,c,(_,v)=>{_.storeContextsAcrossPages&&(Kt(v,o,qt,2),Kt(v,d,qt,1),Kt(v,f,qt,4));const x=a(_,v,u,c);return s=Do(_,x),x});const p={},g=new Z((..._)=>s.handleLog(..._),n.createDetachedTracker());return is({logger:g,init:L(_=>s.init(_)),setTrackingConsent:L(_=>{c.update(_),Ss({feature:"set-tracking-consent",tracking_consent:_})}),getGlobalContext:L(()=>o.getContext()),setGlobalContext:L(_=>o.setContext(_)),setGlobalContextProperty:L((_,v)=>o.setContextProperty(_,v)),removeGlobalContextProperty:L(_=>o.removeContextProperty(_)),clearGlobalContext:L(()=>o.clearContext()),createLogger:L((_,v={})=>(p[_]=new Z((...x)=>s.handleLog(...x),n.createDetachedTracker(),ne(_),v.handler,v.level,ne(v.context)),p[_])),getLogger:L(_=>p[_]),getInitConfiguration:L(()=>Oi(s.initConfiguration)),getInternalContext:L(_=>s.getInternalContext(_)),setUser:L(d.setContext),getUser:L(d.getContext),setUserProperty:L(d.setContextProperty),removeUserProperty:L(d.removeContextProperty),clearUser:L(d.clearContext),setAccount:L(f.setContext),getAccount:L(f.getContext),setAccountProperty:L(f.setContextProperty),removeAccountProperty:L(f.removeContextProperty),clearAccount:L(f.clearContext)})}function Do(a,n){return{init:o=>{Li("DD_LOGS",o)},initConfiguration:a,...n}}const Ro="logs";function Po(a,n){const o=As(a,Ro,d=>Oo(a,d),n);return{findTrackedSession:(d,f={returnInactive:!1})=>{const c=o.findSession(d,f);return c&&c.trackingType==="1"?{id:c.id,anonymousId:c.anonymousId}:void 0},expireObservable:o.expireObservable}}function zo(a){const o=an(a)==="1"?{}:void 0;return{findTrackedSession:()=>o,expireObservable:new G}}function an(a){return $e(a.sessionSampleRate)?"1":"0"}function Oo(a,n){const o=Mo(n)?n:an(a);return{trackingType:o,isTracked:o==="1"}}function Mo(a){return a==="0"||a==="1"}let dn=!1;function pt(a){const n=window;if(rn()){const d=o(n.DD_RUM_SYNTHETICS);return!d&&!dn&&(dn=!0,Hi("Logs sent before RUM is injected by the synthetics worker",{testId:Uo(),resultId:Eo()})),d}return o(n.DD_RUM);function o(d){if(d&&d.getInternalContext)return d.getInternalContext(a)}}function No(a,n,o,d,f){const c=To.concat(["custom"]),u={};c.forEach(s=>{u[s]=Js(s,n.eventRateLimiterThreshold,f)}),o.subscribe(0,({rawLogsEvent:s,messageContext:p=void 0,savedCommonContext:g=void 0,domainContext:_})=>{var v,x;const S=bn(s.date),E=a.findTrackedSession(S);if(!a.findTrackedSession(S,{returnInactive:!0}))return;const t=g||d();let r;!De(t.account)&&t.account.id&&(r=t.account),E&&E.anonymousId&&!t.user.anonymous_id&&(t.user.anonymous_id=E.anonymousId);const l=Ae({service:n.service,session_id:E?E.id:void 0,session:E?{id:E.id}:void 0,usr:De(t.user)?void 0:t.user,account:r,view:t.view},t.context,pt(S),s,p);((v=n.beforeSend)===null||v===void 0?void 0:v.call(n,l,_))===!1||l.origin!==J.AGENT&&((x=u[l.status])!==null&&x!==void 0?x:u.custom).isLimitReached()||o.notify(1,l)})}const Go={[z.log]:B.info,[z.debug]:B.debug,[z.info]:B.info,[z.warn]:B.warn,[z.error]:B.error};function Ho(a,n){const o=so(a.forwardConsoleLogs).subscribe(d=>{var f;const c={rawLogsEvent:{date:se(),message:d.message,origin:J.CONSOLE,error:d.error&&ut(d.error),status:Go[d.api]},messageContext:(f=d.error)===null||f===void 0?void 0:f.context,domainContext:{handlingStack:d.handlingStack}};n.notify(0,c)});return{stop:()=>{o.unsubscribe()}}}function Yo(a,n){const o=rs(a,a.forwardReports).subscribe(d=>{let f=d.message,c;const u=d.originalError.type==="deprecation"?B.warn:B.error;u===B.error?c=ut(d):d.stack&&(f+=` Found in ${Zr(d.stack)}`),n.notify(0,{rawLogsEvent:{date:se(),message:f,origin:J.REPORT,error:c,status:u}})});return{stop:()=>{o.unsubscribe()}}}function Vo(a,n){if(!a.forwardErrorsToLogs)return{stop:de};const o=Xs(a).subscribe(c=>{c.state==="complete"&&f("xhr",c)}),d=tn().subscribe(c=>{c.state==="resolve"&&f("fetch",c)});function f(c,u){!Er(u.url)&&(qo(u)||Vi(u.status))&&("xhr"in u?$o(u.xhr,a,s):u.response?Ko(u.response,a,s):u.error&&jo(u.error,a,s));function s(p){const g={isAborted:u.isAborted,handlingStack:u.handlingStack};n.notify(0,{rawLogsEvent:{message:`${Wo(c)} error ${u.method} ${u.url}`,date:u.startClocks.timeStamp,error:{stack:p||"Failed to load",handling:void 0},http:{method:u.method,status_code:u.status,url:u.url},status:B.error,origin:J.NETWORK},domainContext:g})}}return{stop:()=>{o.unsubscribe(),d.unsubscribe()}}}function $o(a,n,o){typeof a.response=="string"?o(Wt(a.response,n)):o(a.response)}function jo(a,n,o){o(Wt(me(ie(a)),n))}function Ko(a,n,o){const d=ks(a);!d||!d.body?o():window.TextDecoder?Jo(d.body,n.requestErrorResponseLengthLimit,(f,c)=>{o(f?`Unable to retrieve response: ${f}`:c)}):d.text().then(L(f=>o(Wt(f,n))),L(f=>o(`Unable to retrieve response: ${f}`)))}function qo(a){return a.status===0&&a.responseType!=="opaque"}function Wt(a,n){return a.length>n.requestErrorResponseLengthLimit?`${a.substring(0,n.requestErrorResponseLengthLimit)}...`:a}function Wo(a){return a==="xhr"?"XHR":"Fetch"}function Jo(a,n,o){vo(a,(d,f,c)=>{if(d)o(d);else{let u=new TextDecoder().decode(f);c&&(u+="..."),o(void 0,u)}},{bytesLimit:n,collectStreamBody:!0})}function Xo(a,n){if(!a.forwardErrorsToLogs)return{stop:de};const o=new G,{stop:d}=Qr(o),f=o.subscribe(c=>{n.notify(0,{rawLogsEvent:{message:c.message,date:c.startClocks.timeStamp,error:ut(c),origin:J.SOURCE,status:B.error},messageContext:c.context})});return{stop:()=>{d(),f.unsubscribe()}}}const Zo=Ws;function Qo(a){function n(o,d,f,c,u){const s=Ae(d.getContext(),o.context);if(ht(o.status,Ye.console,d)&&ta(o,s),ht(o.status,Ye.http,d)){const p={rawLogsEvent:{date:u||se(),message:o.message,status:o.status,origin:J.LOGGER},messageContext:s,savedCommonContext:c};f&&(p.domainContext={handlingStack:f}),a.notify(0,p)}}return{handleLog:n}}const ea={[B.ok]:z.debug,[B.debug]:z.debug,[B.info]:z.info,[B.notice]:z.info,[B.warn]:z.warn,[B.error]:z.error,[B.critical]:z.error,[B.alert]:z.error,[B.emerg]:z.error};function ta({status:a,message:n},o){ce[ea[a]].call(ee,n,o)}function ia(a,n,o,d,f){const c=en(a,{endpoint:a.logsEndpointBuilder,encoder:ft()},a.replica&&{endpoint:a.replica.logsEndpointBuilder,encoder:ft()},o,d,f.expireObservable);return n.subscribe(1,u=>{c.add(u)}),c}function na(a){const n=Gt();a.subscribe(1,o=>{n.send("log",o)})}function ra(a){return{get:n=>{const o=a.findTrackedSession(n);if(o)return{session_id:o.id}}}}function sa(a){return n=>{a.notify(0,{rawLogsEvent:{message:n.message,date:n.startClocks.timeStamp,origin:J.AGENT,status:B.error}}),Hi("Error reported to customer",{"error.message":n.message})}}function oa(a,n,o,d,f){const c=_s("browser-logs-sdk",n);c.setContextProvider(()=>{var s,p,g,_,v,x;return{application:{id:(s=pt())===null||s===void 0?void 0:s.application_id},session:{id:(p=f.findTrackedSession())===null||p===void 0?void 0:p.id},view:{id:(_=(g=pt())===null||g===void 0?void 0:g.view)===null||_===void 0?void 0:_.id},action:{id:(x=(v=pt())===null||v===void 0?void 0:v.user_action)===null||x===void 0?void 0:x.id}}});const u=[];if(dt()){const s=Gt(),p=c.observable.subscribe(g=>s.send("internal_telemetry",g));u.push(()=>p.unsubscribe())}else{const s=en(n,{endpoint:n.rumEndpointBuilder,encoder:ft()},n.replica&&{endpoint:n.replica.rumEndpointBuilder,encoder:ft()},o,d,f.expireObservable);u.push(()=>s.stop());const p=c.observable.subscribe(g=>s.add(g,ys(n)));u.push(()=>p.unsubscribe())}return ms(),vs(Fo(a)),{telemetry:c,stop:()=>{u.forEach(s=>s())}}}function aa(a,n,o,d){const f=new Zo,c=[];f.subscribe(1,x=>Pi("logs",x));const u=sa(f),s=$s(n),p=n.sessionStoreStrategyType&&!dt()&&!rn()?Po(n,d):zo(n),{stop:g}=oa(a,n,u,s,p);c.push(()=>g()),Vo(n,f),Xo(n,f),Ho(n,f),Yo(n,f);const{handleLog:_}=Qo(f);if(No(p,n,f,o,u),dt())na(f);else{const{stop:x}=ia(n,f,u,s,p);c.push(()=>x())}const v=ra(p);return{handleLog:_,getInternalContext:v.get,stop:()=>{c.forEach(x=>x())}}}const Fe=Lo(aa);ns(ae(),"DD_LOGS",Fe);const F=class F{constructor(n){this.isLoggingOn=n.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&Fe.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const o="bb_logger_mac_uuid";let d=localStorage.getItem(o);d||(d=crypto.randomUUID(),localStorage.setItem(o,d)),F.tracking.mac=d,F.tracking.dev=`${n.platform}_${n.browserName}`,F.beatHandle||(console.log("[Logger] Starting tracking beat"),F.beatHandle=window.setInterval(F.flushTracking,15e3))}static setMessagePort(n){this.messagePort=n}static getMessagePort(){return this.messagePort}setLoggingOn(n){this.isLoggingOn=n}setAttributes(n){F.processAttributes(n);for(const o in n)Fe.logger.setContextProperty(o,n[o])}info(n,o){n==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(o==null?void 0:o.url)||""}),n==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",o),n==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",o),n==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",o),o&&F.processAttributes(o),this.isLoggingOn&&(Fe.logger.info(n,o),console.log("[Logger] Sending info: ",n))}error(n,o){o&&F.processAttributes(o),this.isLoggingOn&&(Fe.logger.error(n,o),F.tracking.err_time=Date.now().toFixed(0),F.tracking.err_desc=n+(o?` - ${JSON.stringify(o)}`:""),console.log("[Logger] Sending error: ",n))}warn(n,o){o&&F.processAttributes(o),this.isLoggingOn&&(Fe.logger.warn(n,o),console.log("[Logger] Sending warn: ",n))}handleMessageFromWorker(n){n.actionType==="INFO"?this.info(n.message,n.attributes):n.actionType==="ERROR"?this.error(n.message,n.attributes):n.actionType==="WARN"?this.warn(n.message,n.attributes):n.actionType==="SET_ATTRIBUTES"&&n.attributes&&this.setAttributes(n.attributes)}static setAttributes(n){F.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:n})}static info(n,o){F.messagePort.postMessage({type:"LOG",actionType:"INFO",message:n,attributes:o})}static error(n,o){F.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:n,attributes:o})}static warn(n,o){F.messagePort.postMessage({type:"LOG",actionType:"WARN",message:n,attributes:o})}static processAttributes(n){if(n.player_version&&(F.tracking.sdk=n.player_version),n.media_id&&(F.tracking.gid=n.media_id),n.game_id&&(F.tracking.buc=n.game_id),n.bb_session_id&&(F.tracking.sid=n.bb_session_id,console.log("[Logger] Setting bb_session_id:",F.tracking.sid)),n.last_timecode){const d=$.fromStr(n.last_timecode);F.tracking.tc=d.print(),F.lastTimecodeMillis=d.totalMilliseconds(59.94),F.lastTimecodeMillis&&F.lastZipMillis&&(F.tracking.cache=(F.lastZipMillis-F.lastTimecodeMillis).toFixed(0))}n.last_offset&&(F.tracking.off=n.last_offset),n.last_loading_zip&&(F.tracking.zip=n.last_loading_zip+".zip",F.lastZipMillis=$.fromStr(n.last_loading_zip).totalMilliseconds(59.94),F.lastTimecodeMillis&&F.lastZipMillis&&(F.tracking.cache=(F.lastZipMillis-F.lastTimecodeMillis).toFixed(0))),n.last_rendered_frame&&(F.tracking.aug_time=Date.now().toFixed(0)),n.asset&&(F.tracking.asset=n.asset)}static objectToQuery(n){return Object.entries(n).filter(([o,d])=>d!==0&&d!=="").map(([o,d])=>`${encodeURIComponent(o)}=${encodeURIComponent(String(d))}`).join("&")}emit(n,o){const d=new CustomEvent(n,{detail:o});this.eventTarget.dispatchEvent(d)}};F.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},F.lastTimecodeMillis=0,F.lastZipMillis=0,F.flushTracking=()=>{const n=Date.now().toFixed(0);F.tracking.now=n;const d=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${F.objectToQuery(F.tracking)}`;console.log("[Logger] Flushing tracking data:",d),fetch(d,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),F.tracking.err_desc="",F.tracking.err_time=""};let M=F;class Jt{constructor(n,o,d){this.videoDecoder=null,this.reservedVideoDecoder=null,this.videoDecoderNeedsKeyFrame=!1,this.reservedVideoDecoderNeedsKeyFrame=!1,this.currentTimecode="",this.fps=0,this.unchunkedJobs=[],this.jobChunking=null,this.jobsQueue=[],this.chunksQueue=[],this.chunksForDecodingFrames=[],this.processedMetadata=[],this.lastJobEndTimecode=0,this.lastProcessedFrameTimecode=0,this.storedFrames=[],this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.timecodeErrorCount=0,this.decoderStopped=!1,this.chunkCount=0,this.chunkingTimeSum=0,this.avgChunkingTime=0,this.decodingFrameCount=0,this.decodingTimeSum=0,this.avgDecodingTime=0,this.lastPerformanceCheck=performance.now(),this.loggerTimeoutStart=0,this.loggerTimeout=1e4,this.addJob=(f,c)=>{const{alphaMp4:u,metadataList:s}=this.parseZipAndMetadata(c,f);if(!u){this.options&&R(this.options,"Decoder")&&console.log("[Decoder] No alpha.mp4 found, no decoding needed.");return}const p={timeCode:f,alphaMp4:u,metadata:s,chunks:[],totalFrameCount:s.length,framesProcessed:0,framesSentToDecoder:0,useReserveDecoder:s.length<3,chunkingTime:0};this.jobChunking?this.unchunkedJobs.push(p):(this.jobChunking=p,this.chunkJob(p)),this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Added job:",p)},this.clearOldJobsAndChunks=f=>{const u=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps)-f;this.unchunkedJobs=this.unchunkedJobs.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u),this.jobsQueue=this.jobsQueue.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u),this.chunksQueue=this.chunksQueue.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u)},this.clearAllJobsAndChunks=()=>{this.unchunkedJobs=[],this.jobsQueue=[],this.chunksQueue=[]},this.updateCurrentTimecode=(f,c)=>{if(this.options){if(this.fps=59.94,this.currentTimecode){const u=$.fromStr(f).totalMilliseconds(this.fps),s=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps);if(u<s||u>s+this.options.DECODER_LEAD_TIME_MILLIS){this.timecodeErrorCount++;const p=performance.now();u<s&&(p-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=p,M.error("[Decoder] Timecode is going backwards")),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Timecode is going backwards")),u>s+this.options.DECODER_LEAD_TIME_MILLIS&&(p-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=p,M.error("[Decoder] Timecode is too far ahead")),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Timecode is too far ahead")),this.timecodeErrorCount>5&&this.restartDecoder();return}}this.timecodeErrorCount=0,this.currentTimecode=f,this.clearOldJobsAndChunks(2100),this.decodeUpcomingChunks()}},this.setupMP4Box=(f=!1)=>{const c=cn.createFile();return c.onError=u=>{M.error("[Decoder] MP4 parsing error",u),this.options&&R(this.options,"Errors")&&console.error("[Decoder] MP4 parsing error:",u)},c.onReady=u=>{const s=u.tracks.find(p=>p.type==="video");if(s){if(!(f?this.reservedVideoDecoderConfigured:this.videoDecoderConfigured)){this.options&&R(this.options,"Decoder")&&console.error("[Decoder] Starting a new VideoDecoder");let g;f?(this.reservedVideoDecoder=new VideoDecoder({output:this.onFrameDecoded,error:this.onDecoderError}),g=this.reservedVideoDecoder):(this.videoDecoder=new VideoDecoder({output:this.onFrameDecoded,error:this.onDecoderError}),g=this.videoDecoder),g.configure({codec:s.codec,codedWidth:s.video.width,codedHeight:s.video.height,description:this.getDescription(c.getTrackById(s.id)),hardwareAcceleration:"prefer-hardware",optimizeForLatency:!0}),f?(this.reservedVideoDecoderConfigured=!0,this.reservedVideoDecoderNeedsKeyFrame=!0):(this.videoDecoderConfigured=!0,this.videoDecoderNeedsKeyFrame=!0)}c.setExtractionOptions(s.id),c.start()}},c.onSamples=async(u,s,p)=>{const g=[];let _=0,v=0;if(this.options.browserName==="Firefox"){const x=p.map(E=>E.cts).sort((E,e)=>E-e);_=200-x[0],v=x[x.length-1]+_}for(const x of p){const S=this.options.browserName==="Firefox"?x.cts+this.lastJobEndTimecode+_:x.cts,E=new EncodedVideoChunk({type:x.is_sync?"key":"delta",timestamp:S,data:new Uint8Array(x.data)});g.push(E)}this.storeChunks(g),this.options.browserName==="Firefox"&&(this.lastJobEndTimecode+=v)},c},this.chunkJob=async f=>{f.chunkingTime=performance.now(),this.mp4boxfile=this.setupMP4Box(f.useReserveDecoder);const u=await new Blob([f.alphaMp4],{type:"video/mp4"}).arrayBuffer();u.fileStart=0,this.mp4boxfile.appendBuffer(u)},this.storeChunks=f=>{var s;this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Storing chunks:",f);const c=this.jobChunking;if((s=this.options.debug)!=null&&s.trackPerformance&&(c.chunkingTime=performance.now()-c.chunkingTime,this.chunkCount++,this.chunkingTimeSum+=c.chunkingTime,this.avgChunkingTime=this.chunkingTimeSum/this.chunkCount),this.unchunkedJobs.length>0){const p=this.unchunkedJobs.shift();this.jobChunking=p,this.chunkJob(p)}else this.jobChunking=null;const u=c==null?void 0:c.metadata.map((p,g)=>({timeCode:p.timecode,chunk:f[g],metadata:p,job:c,cancelled:!1,decodingTime:0}));c.chunks=u,this.chunksQueue.push(...u),this.jobsQueue.push(c),this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Jobs Queue:",this.jobsQueue),this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Chunks Queue:",this.chunksQueue)},this.onFrameDecoded=f=>{var p;let c=0;if(this.options.browserName==="Firefox"){c=this.lastProcessedFrameTimecode+200;const g=f.timestamp;if(g!==c){if(this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Frame out of order, storing frame:",g),this.storedFrames.push(f),this.storedFrames.sort((_,v)=>_.timestamp-v.timestamp),this.storedFrames[0].timestamp===c){const _=this.storedFrames.shift();_&&this.onFrameDecoded(_)}this.storedFrames.sort((_,v)=>_.timestamp-v.timestamp);return}this.lastProcessedFrameTimecode=g}this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Frame decoded:",f);const u=this.chunksForDecodingFrames.shift();if(!u){M.error("[Decoder] No current chunk for a processed frame"),this.options&&R(this.options,"Errors")&&console.error("[Decoder] No current chunk for a processed frame");return}if(u.cancelled||this.decoderStopped){this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Skipping cancelled chunk:",u.timeCode),f.close();return}const s=u.metadata;if((p=this.options.debug)!=null&&p.trackPerformance){const g=performance.now();u.decodingTime=g-u.decodingTime,this.decodingFrameCount++,this.decodingTimeSum+=u.decodingTime,this.avgDecodingTime=this.decodingTimeSum/this.decodingFrameCount,g-this.lastPerformanceCheck>=this.options.PERFORMANCE_TRACKING_INTERVAL&&(this.trackPerformance(),this.lastPerformanceCheck=g)}if(u.job.framesProcessed++,s.alphaMask=f,this.processedMetadata.push(s),M.setAttributes({last_decoded_frame:s.timecode}),(this.processedMetadata.length>=this.options.DECODER_FRAME_BATCH_SIZE||u.job.framesProcessed>=u.job.totalFrameCount)&&(this.postBatchToRenderer(this.processedMetadata),this.processedMetadata.forEach(g=>g.alphaMask.close()),this.processedMetadata=[]),this.options.browserName==="Firefox"&&this.storedFrames.length>0){const g=(c+200)%24200||400;if(this.storedFrames[0].timestamp===g){const _=this.storedFrames.shift();_&&this.onFrameDecoded(_)}}},this.onDecoderError=f=>{var s,p;M.error("[Decoder] VideoDecoder error",f),this.options&&R(this.options,"Errors")&&console.error("[Decoder] VideoDecoder error:",f),this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.videoDecoderNeedsKeyFrame=!0,this.reservedVideoDecoderNeedsKeyFrame=!0;const c=this.chunksForDecodingFrames.shift();if(!c){M.error("[Decoder] No broken chunk for an error"),this.options&&R(this.options,"Errors")&&console.error("[Decoder] No broken chunk for an error");return}const u=c.job;u&&u.chunks.forEach(g=>g.cancelled=!0),(s=this.reservedVideoDecoder)==null||s.close(),(p=this.videoDecoder)==null||p.close()},this.parseZipAndMetadata=(f,c)=>{const u=pn.parse(f),s=u["alpha.mp4"]||null,p=Object.keys(u).filter(e=>e.endsWith(".json")).sort(this.numericFileComparator).map(e=>{const t=JSON.parse(new TextDecoder().decode(u[e]));return t.timecode=$.toStr($.fromMetadata(t)),t}),g=p.length;let _=120;const[v,x,S]=c.split("_").map(Number);x%10===0&&S===0?_=120:S===0&&(_=116),g!==_&&(M.error("[Decoder] Metadata count mismatch",{expected:_,actual:g,timecode:c}),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Metadata count mismatch:",{expected:_,actual:g,timecode:c}));const E=p.filter(e=>e.placeholders);return{alphaMp4:s,metadataList:E}},this.numericFileComparator=(f,c)=>{const u=/^(\\d{2})_(\\d{2})_(\\d{2})_(\\d{2})(?:\\.(\\d+))?\\.(.+)$/,s=f.match(u),p=c.match(u);if(!s||!p)return 0;const[,g,_,v,x,S="0",E]=s,[,e,t,r,l,h="0",m]=p;return parseInt(g,10)-parseInt(e,10)||parseInt(_,10)-parseInt(t,10)||parseInt(v,10)-parseInt(r,10)||parseInt(x,10)-parseInt(l,10)||parseInt(S,10)-parseInt(h,10)||E.localeCompare(m)},this.getDescription=f=>{for(const c of f.mdia.minf.stbl.stsd.entries){const u=c.avcC||c.hvcC||c.vpcC||c.av1C;if(u){const s=new yt.DataStream(void 0,0,yt.DataStream.BIG_ENDIAN);return u.write(s),new Uint8Array(s.buffer,8)}}return null},this.trackPerformance=()=>{const f=this.getAvgChunkingTime(),c=this.getAvgDecodingTime();fa([{metric:"Chunking time",value:f},{metric:"Decoding time",value:c}])},this.postBatchToRenderer=n,this.restartDecoder=o,this.options=d,this.mp4boxfile=this.setupMP4Box()}decodeUpcomingChunks(){const n=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps),o=n+this.options.DECODER_LEAD_TIME_MILLIS,d=this.chunksQueue.filter(c=>{const u=$.fromStr(c.timeCode).totalMilliseconds(this.fps);return u>=n&&u<=o&&!c.decoded});d.sort((c,u)=>{const s=$.fromStr(c.timeCode).totalMilliseconds(this.fps),p=$.fromStr(u.timeCode).totalMilliseconds(this.fps);return s-p});const f=d.slice(0,this.options.DECODER_FRAME_BATCH_SIZE);for(const c of f){if(c.cancelled){this.options&&R(this.options,"Decoder")&&console.log("[Decoder] Skipping cancelled chunk:",c.timeCode);continue}const u=c.job.useReserveDecoder?this.reservedVideoDecoder:this.videoDecoder;if(!u||u.state==="closed"){M.error("[Decoder] No VideoDecoder available"),this.options&&R(this.options,"Errors")&&console.error("[Decoder] No VideoDecoder available");continue}if((c.job.useReserveDecoder?this.reservedVideoDecoderNeedsKeyFrame:this.videoDecoderNeedsKeyFrame)&&c.chunk.type==="delta"){M.error("[Decoder] Decoder needs a key frame, skipping delta chunk",{chunkTimeCode:c.timeCode}),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Decoder needs a key frame, skipping delta chunk:",c.timeCode),c.decoded=!0;continue}try{this.chunksForDecodingFrames.push(c),c.chunk.type==="key"&&(c.job.useReserveDecoder?this.reservedVideoDecoderNeedsKeyFrame=!1:this.videoDecoderNeedsKeyFrame=!1),c.decodingTime=performance.now(),u.decode(c.chunk)}catch(p){M.error("[Decoder] Error decoding chunk",p),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Error decoding chunk:",p),this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.videoDecoderNeedsKeyFrame=!0,this.reservedVideoDecoderNeedsKeyFrame=!0,c.job.chunks.forEach(_=>_.cancelled=!0),u.close()}finally{if(c.decoded=!0,c.job.framesSentToDecoder++,c.job.framesSentToDecoder>=c.job.totalFrameCount){u.flush(),c.job.useReserveDecoder;continue}}}}getAvgChunkingTime(){var n;if((n=this.options.debug)!=null&&n.trackPerformance){const o=this.avgChunkingTime;return this.chunkCount=0,this.chunkingTimeSum=0,this.avgChunkingTime=0,o}return 0}getAvgDecodingTime(){var n;if((n=this.options.debug)!=null&&n.trackPerformance){const o=this.avgDecodingTime;return this.decodingFrameCount=0,this.decodingTimeSum=0,this.avgDecodingTime=0,o}return 0}stop(){var n,o;this.decoderStopped=!0,this.clearAllJobsAndChunks();try{(n=this.videoDecoder)==null||n.close()}catch(d){M.error("[Decoder] Error closing main VideoDecoder",d),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Error closing main VideoDecoder:",d)}try{(o=this.reservedVideoDecoder)==null||o.close()}catch(d){M.error("[Decoder] Error closing reserved VideoDecoder",d),this.options&&R(this.options,"Errors")&&console.error("[Decoder] Error closing reserved VideoDecoder:",d)}}}let ln=null,_t=null,be,H;self.onmessage=async a=>{const{data:n}=a;if(n.type==="SET_LOGGER_PORT"&&M.setMessagePort(n.port),n.type==="SET_DOWNLOADER_PORT"&&(ln=n.port,ln.onmessage=da),n.type==="SET_RENDERER_PORT"&&(_t=n.port,_t.onmessage=la),n.type==="SET_OPTIONS"&&(H=n.options,M.setMessagePort(self),be=new Jt(Xt,gt,H)),n.type==="VIDEO_SEEKED"){if(!H)return;gt()}};function da(a){const{data:n}=a;if(n.type==="DECODER_INPUT"){const{timeCode:o,arrayBuffer:d}=n;H&&R(H,"Decoder")&&console.log("[DecoderWorker] Received ArrayBuffer from Downloader, timeCode =",o),be.addJob(o,d)}}function la(a){const{data:n}=a;if(n.type==="DECODER_REQUEST"){const{timeCode:o,fps:d}=n;H&&R(H,"Decoder")&&console.log("[DecoderWorker] Received TimeCode request from Renderer, timeCode =",o),be.updateCurrentTimecode(o,d)}}function gt(){H&&(be.stop(),be=new Jt(Xt,gt,H))}function Xt(a){if(!_t)return;H&&R(H,"Decoder")&&console.log(`[DecoderWorker] Posting a batch of ${a.length} frames to Renderer`);const n=a.map(o=>o.alphaMask).filter(o=>o!==void 0);try{const o=new Set(n);_t.postMessage({type:"RENDERER_INPUT",batch:a},[...o]),n.forEach(d=>d.close())}catch(o){M.error("[DecoderWorker] Error posting batch to Renderer",{error:o}),H&&R(H,"Errors")&&console.error("[DecoderWorker] Error posting batch to Renderer:",o),n.forEach(d=>d.close());return}}function fa(a){const n={type:"TRACK_PERFORMANCE",data:a};self.postMessage(n)}self.onunhandledrejection=a=>{M.error("[DecoderWorker] Unhandled rejection",{error:a.reason}),H&&(R(H,"Errors")&&console.error("[DecoderWorker] Unhandled rejection:",a.reason),be.stop(),be=new Jt(Xt,gt,H),a.preventDefault())},self.onerror=a=>{M.error("[DecoderWorker] Unhandled error",{error:a}),H&&(R(H,"Errors")&&console.error("[DecoderWorker] Unhandled error:",a),a instanceof Event&&a.preventDefault())}})();\n',Nt=typeof self<"u"&&self.Blob&&new Blob([Bt],{type:"text/javascript;charset=utf-8"});function sr(t){let e;try{if(e=Nt&&(self.URL||self.webkitURL).createObjectURL(Nt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Bt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const $t='(function(){"use strict";const w=(t,e)=>!t.debug||!t.debug.on?!1:t.debug[`log${e}`],_={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},U=console,H={};Object.keys(_).forEach(t=>{H[t]=U[t]});const he="Datadog Browser SDK:",R={debug:H.debug.bind(U,he),log:H.log.bind(U,he),info:H.info.bind(U,he),warn:H.warn.bind(U,he),error:H.error.bind(U,he)},et="https://docs.datadoghq.com",kt=`${et}/real_user_monitoring/browser/troubleshooting`,we="More details:";function Dt(t,e){return(...n)=>{try{return t(...n)}catch(r){R.error(e,r)}}}function Ce(t){return t!==0&&Math.random()*100<=t}function Vn(t){return Kn(t)&&t>=0&&t<=100}function Kn(t){return typeof t=="number"}const me=1e3,V=60*me,Ut=60*V,Zn=365*(24*Ut);function ge(){return new Date().getTime()}function $(){return ge()}function Oe(){return performance.now()}function G(){return{relative:Oe(),timeStamp:$()}}function Jn(){return{relative:0,timeStamp:Pt()}}function Qn(t,e){return e-t}function er(t,e){return t+e}function tr(t){return t-Pt()}let tt;function Pt(){return tt===void 0&&(tt=performance.timing.navigationStart),tt}const M=1024,Mt=1024*M,nr=/[^\\u0000-\\u007F]/;function nt(t){return nr.test(t)?window.TextEncoder!==void 0?new TextEncoder().encode(t).length:new Blob([t]).size:t.length}function rr(t){return{...t}}function Ft(t,e){return Object.keys(t).some(n=>t[n]===e)}function pe(t){return Object.keys(t).length===0}function j(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let t=_dd_temp_;return delete Object.prototype._dd_temp_,typeof t!="object"&&(typeof self=="object"?t=self:typeof window=="object"?t=window:t={}),t}function se(t,e){const n=j();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=t[n.Zone.__symbol__(e)]),r||(r=t[e]),r}let Le,Nt=!1;function sr(t){Le=t}function or(t){Nt=t}function ir(t,e,n){const r=n.value;n.value=function(...s){return(Le?S(r):r).apply(this,s)}}function S(t){return function(){return Ee(t,this,arguments)}}function Ee(t,e,n){try{return t.apply(e,n)}catch(r){ar(r)}}function ar(t){if(rt(t),Le)try{Le(t)}catch(e){rt(e)}}function rt(...t){Nt&&R.error("[MONITOR]",...t)}function ye(t,e){return se(j(),"setTimeout")(S(t),e)}function Bt(t){se(j(),"clearTimeout")(t)}function st(t,e){return se(j(),"setInterval")(S(t),e)}function $t(t){se(j(),"clearInterval")(t)}class A{constructor(e){this.onFirstSubscribe=e,this.observers=[]}subscribe(e){return this.observers.push(e),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>e!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(e){this.observers.forEach(n=>n(e))}}function Gt(...t){return new A(e=>{const n=t.map(r=>r.subscribe(s=>e.notify(s)));return()=>n.forEach(r=>r.unsubscribe())})}function jt(t,e,n){let r=!1,s,o;return{throttled:(...i)=>{if(r){s=i;return}t(...i),r=!0,o=ye(()=>{s&&t(...s),r=!1,s=void 0},e)},cancel:()=>{Bt(o),r=!1,s=void 0}}}function W(){}function z(t){return t?(parseInt(t,10)^Math.random()*16>>parseInt(t,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,z)}const Ie=/([\\w-]+)\\s*=\\s*([^;]+)/g;function cr(t,e){for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n){if(n[1]===e)return n[2]}else break}}function ur(t){const e=new Map;for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n)e.set(n[1],n[2]);else break}return e}function lr(t,e,n=""){const r=t.charCodeAt(e-1),o=r>=55296&&r<=56319?e+1:e;return t.length<=o?t:`${t.slice(0,o)}${n}`}function dr(){return fr()===0}let ke;function fr(){return ke??(ke=hr())}function hr(t=window){var e;const n=t.navigator.userAgent;return t.chrome||/HeadlessChrome/.test(n)?0:((e=t.navigator.vendor)===null||e===void 0?void 0:e.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function Se(t,e,n=0,r){const s=new Date;s.setTime(s.getTime()+n);const o=`expires=${s.toUTCString()}`,i=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",u=r&&r.secure?";secure":"",c=r&&r.partitioned?";partitioned":"";document.cookie=`${t}=${e};${o};path=/;samesite=${i}${a}${u}${c}`}function ot(t){return cr(document.cookie,t)}let it;function K(t){return it||(it=ur(document.cookie)),it.get(t)}function Wt(t,e){Se(t,"",0,e)}function mr(t){if(document.cookie===void 0||document.cookie===null)return!1;try{const e=`dd_cookie_test_${z()}`,n="test";Se(e,n,V,t);const r=ot(e)===n;return Wt(e,t),r}catch(e){return R.error(e),!1}}let at;function gr(){if(at===void 0){const t=`dd_site_test_${z()}`,e="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!ot(t);)r=`${n.pop()}.${r}`,Se(t,e,me,{domain:r});Wt(t,{domain:r}),at=r}return at}const oe="_dd_s";function De(t){return Object.values(t)}function pr(t){return Object.entries(t)}const ct=4*Ut,zt=15*V,Er=Zn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},Xt=/^([a-zA-Z]+)=([a-z0-9-]+)$/,ut="&";function yr(t){return!!t&&(t.indexOf(ut)!==-1||Xt.test(t))}const Sr="1";function Z(t,e){const n={isExpired:Sr};return e.trackAnonymousUser&&(t!=null&&t.anonymousId?n.anonymousId=t==null?void 0:t.anonymousId:n.anonymousId=z()),n}function Ue(t){return pe(t)}function qt(t){return!Ue(t)}function Pe(t){return t.isExpired!==void 0||!br(t)}function br(t){return(t.created===void 0||ge()-Number(t.created)<ct)&&(t.expire===void 0||ge()<Number(t.expire))}function Yt(t){t.expire=String(ge()+zt)}function lt(t){return pr(t).map(([e,n])=>e==="anonymousId"?`aid=${n}`:`${e}=${n}`).join(ut)}function Ht(t){const e={};return yr(t)&&t.split(ut).forEach(n=>{const r=Xt.exec(n);if(r!==null){const[,s,o]=r;s==="aid"?e.anonymousId=o:e[s]=o}}),e}const Tr="_dd",_r="_dd_r",Rr="_dd_l",Ar="rum",xr="logs";function vr(t){if(!K(oe)){const n=K(Tr),r=K(_r),s=K(Rr),o={};n&&(o.id=n),s&&/^[01]$/.test(s)&&(o[xr]=s),r&&/^[012]$/.test(r)&&(o[Ar]=r),qt(o)&&(Yt(o),t.persistSession(o))}}function Vt(t){const e=Ir(t);return mr(e)?{type:be.COOKIE,cookieOptions:e}:void 0}function wr(t,e){const n={isLockEnabled:dr(),persistSession:Cr(e),retrieveSession:Lr,expireSession:r=>Or(e,r,t)};return vr(n),n}function Cr(t){return e=>{Se(oe,lt(e),zt,t)}}function Or(t,e,n){const r=Z(e,n);Se(oe,lt(r),n.trackAnonymousUser?Er:ct,t)}function Lr(){const t=ot(oe);return Ht(t)}function Ir(t){const e={};return e.secure=!!t.useSecureSessionCookie||!!t.usePartitionedCrossSiteSessionCookie,e.crossSite=!!t.usePartitionedCrossSiteSessionCookie,e.partitioned=!!t.usePartitionedCrossSiteSessionCookie,t.trackSessionAcrossSubdomains&&(e.domain=gr()),e}const kr="_dd_test_";function Kt(){try{const t=z(),e=`${kr}${t}`;localStorage.setItem(e,t);const n=localStorage.getItem(e);return localStorage.removeItem(e),t===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function Dr(t){return{isLockEnabled:!1,persistSession:Zt,retrieveSession:Ur,expireSession:e=>Pr(e,t)}}function Zt(t){localStorage.setItem(oe,lt(t))}function Ur(){const t=localStorage.getItem(oe);return Ht(t)}function Pr(t,e){Zt(Z(t,e))}const Mr=10,Fr=100,Jt=[];let Me;function J(t,e,n=0){var r;const{isLockEnabled:s,persistSession:o,expireSession:i}=e,a=f=>o({...f,lock:c}),u=()=>{const f=e.retrieveSession(),h=f.lock;return f.lock&&delete f.lock,{session:f,lock:h}};if(Me||(Me=t),t!==Me){Jt.push(t);return}if(s&&n>=Fr){Qt(e);return}let c,l=u();if(s){if(l.lock){Fe(t,e,n);return}if(c=z(),a(l.session),l=u(),l.lock!==c){Fe(t,e,n);return}}let d=t.process(l.session);if(s&&(l=u(),l.lock!==c)){Fe(t,e,n);return}if(d&&(Pe(d)?i(d):(Yt(d),s?a(d):o(d))),s&&!(d&&Pe(d))){if(l=u(),l.lock!==c){Fe(t,e,n);return}o(l.session),d=l.session}(r=t.after)===null||r===void 0||r.call(t,d||l.session),Qt(e)}function Fe(t,e,n){ye(()=>{J(t,e,n+1)},Mr)}function Qt(t){Me=void 0;const e=Jt.shift();e&&J(e,t)}const en=me;function Nr(t){switch(t.sessionPersistence){case be.COOKIE:return Vt(t);case be.LOCAL_STORAGE:return Kt();case void 0:{let e=Vt(t);return!e&&t.allowFallbackToLocalStorage&&(e=Kt()),e}default:R.error(`Invalid session persistence \'${String(t.sessionPersistence)}\'`)}}function Br(t,e,n,r){const s=new A,o=new A,i=new A,a=t.type===be.COOKIE?wr(e,t.cookieOptions):Dr(e),{expireSession:u}=a,c=st(m,en);let l;y();const{throttled:d,cancel:f}=jt(()=>{J({process:E=>{if(Ue(E))return;const fe=b(E);return D(fe),fe},after:E=>{qt(E)&&!v()&&It(E),l=E}},a)},en);function h(){J({process:E=>v()?b(E):void 0},a)}function m(){J({process:E=>Pe(E)?Z(E,e):void 0,after:b},a)}function b(E){return Pe(E)&&(E=Z(E,e)),v()&&(Y(E)?ve():(i.notify({previousState:l,newState:E}),l=E)),E}function y(){J({process:E=>{if(Ue(E))return Z(E,e)},after:E=>{l=E}},a)}function D(E){if(Ue(E))return!1;const{trackingType:fe,isTracked:ea}=r(E[n]);E[n]=fe,delete E.isExpired,ea&&!E.id&&(E.id=z(),E.created=String(ge()))}function v(){return l[n]!==void 0}function Y(E){return l.id!==E.id||l[n]!==E[n]}function ve(){l=Z(l,e),o.notify()}function It(E){l=E,s.notify()}function Qi(E){J({process:fe=>({...fe,...E}),after:b},a)}return{expandOrRenewSession:d,expandSession:h,getSession:()=>l,renewObservable:s,expireObservable:o,sessionStateUpdateObservable:i,restartSession:y,expire:()=>{f(),u(l),b(Z(l,e))},stop:()=>{$t(c)},updateSessionState:Qi}}const dt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function $r(t){const e=new A;return{tryToInit(n){t||(t=n)},update(n){t=n,e.notify()},isGranted(){return t===dt.GRANTED},observable:e}}function Q(t,e,n){if(typeof t!="object"||t===null)return JSON.stringify(t);const r=ie(Object.prototype),s=ie(Array.prototype),o=ie(Object.getPrototypeOf(t)),i=ie(t);try{return JSON.stringify(t,e,n)}catch{return"<error: unable to serialize object>"}finally{r(),s(),o(),i()}}function ie(t){const e=t,n=e.toJSON;return n?(delete e.toJSON,()=>{e.toJSON=n}):W}function ft(t){return Gr(t,location.href).href}function Gr(t,e){const n=jr();if(n)try{return e!==void 0?new n(t,e):new n(t)}catch(o){throw new Error(`Failed to construct URL: ${String(o)} ${Q({url:t,base:e})}`)}if(e===void 0&&!/:/.test(t))throw new Error(`Invalid URL: \'${t}\'`);let r=document;const s=r.createElement("a");if(e!==void 0){r=document.implementation.createHTMLDocument("");const o=r.createElement("base");o.href=e,r.head.appendChild(o),r.body.appendChild(s)}return s.href=t,s}const tn=URL;let Ne;function jr(){if(Ne===void 0)try{Ne=new tn("http://test/path").href==="http://test/path"}catch{Ne=!1}return Ne?tn:void 0}const Wr="datad0g.com",zr="dd0g-gov.com",ae="datadoghq.com",Xr="ddog-gov.com",qr="pci.browser-intake-datadoghq.com",Yr=["ddsource","ddtags"];function Te(t,e,n){const r=Hr(t,e);return{build(s,o){const i=Kr(t,e,n,s,o);return r(i)},urlPrefix:r(""),trackType:e}}function Hr(t,e){const n=`/api/v2/${e}`,r=t.proxy;if(typeof r=="string"){const o=ft(r);return i=>`${o}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof r=="function")return o=>r({path:n,parameters:o});const s=Vr(e,t);return o=>`https://${s}${n}?${o}`}function Vr(t,e){const{site:n=ae,internalAnalyticsSubdomain:r}=e;if(t==="logs"&&e.usePciIntake&&n===ae)return qr;if(r&&n===ae)return`${r}.${ae}`;if(n===zr)return`http-intake.logs.${n}`;const s=n.split("."),o=s.pop();return`browser-intake-${s.join("-")}.${o}`}function Kr({clientToken:t,internalAnalyticsSubdomain:e},n,r,s,{retry:o,encoding:i}){const a=["sdk_version:6.5.0",`api:${s}`].concat(r);o&&a.push(`retry_count:${o.count}`,`retry_after:${o.lastFailureStatus}`);const u=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${t}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${z()}`];return i&&u.push(`dd-evp-encoding=${i}`),n==="rum"&&u.push(`batch_time=${$()}`),e&&u.reverse(),u.join("&")}const Zr=200;function Jr(t){const{env:e,service:n,version:r,datacenter:s}=t,o=[];return e&&o.push(Be("env",e)),n&&o.push(Be("service",n)),r&&o.push(Be("version",r)),s&&o.push(Be("datacenter",s)),o}function Be(t,e){const n=Zr-t.length-1;(e.length>n||Qr(e))&&R.warn(`${t} value doesn\'t meet tag requirements and will be sanitized. ${we} ${et}/getting_started/tagging/#defining-tags`);const r=e.replace(/,/g,"_");return`${t}:${r}`}function Qr(t){return es()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(t):!1}function es(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function ts(t){const e=t.site||ae,n=Jr(t),r=ns(t,n);return{replica:rs(t,n),site:e,...r}}function ns(t,e){return{logsEndpointBuilder:Te(t,"logs",e),rumEndpointBuilder:Te(t,"rum",e),sessionReplayEndpointBuilder:Te(t,"replay",e)}}function rs(t,e){if(!t.replica)return;const n={...t,site:ae,clientToken:t.replica.clientToken},r={logsEndpointBuilder:Te(n,"logs",e),rumEndpointBuilder:Te(n,"rum",e)};return{applicationId:t.replica.applicationId,...r}}function ss(t){return Yr.every(e=>t.includes(e))}function ht(t,e){return t!=null&&typeof t!="string"?(R.error(`${e} must be defined as a string`),!1):!0}function os(t){return t&&typeof t=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(t)?(R.error(`Site should be a valid Datadog site. ${we} ${et}/getting_started/site/.`),!1):!0}function $e(t,e){return t!==void 0&&!Vn(t)?(R.error(`${e} Sample Rate should be a number between 0 and 100`),!1):!0}function is(t){var e,n,r,s,o,i;if(!t||!t.clientToken){R.error("Client Token is not configured, we will not send any data.");return}if(!(!os(t.site)||!$e(t.sessionSampleRate,"Session")||!$e(t.telemetrySampleRate,"Telemetry")||!$e(t.telemetryConfigurationSampleRate,"Telemetry Configuration")||!$e(t.telemetryUsageSampleRate,"Telemetry Usage")||!ht(t.version,"Version")||!ht(t.env,"Env")||!ht(t.service,"Service"))){if(t.trackingConsent!==void 0&&!Ft(dt,t.trackingConsent)){R.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:t.beforeSend&&Dt(t.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:Nr(t),sessionSampleRate:(e=t.sessionSampleRate)!==null&&e!==void 0?e:100,telemetrySampleRate:(n=t.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=t.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(s=t.telemetryUsageSampleRate)!==null&&s!==void 0?s:5,service:t.service||void 0,silentMultipleInit:!!t.silentMultipleInit,allowUntrustedEvents:!!t.allowUntrustedEvents,trackingConsent:(o=t.trackingConsent)!==null&&o!==void 0?o:dt.GRANTED,trackAnonymousUser:(i=t.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!t.storeContextsAcrossPages,batchBytesLimit:16*M,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*me,batchMessagesLimit:50,messageBytesLimit:256*M,...ts(t)}}}function as(t){return{session_sample_rate:t.sessionSampleRate,telemetry_sample_rate:t.telemetrySampleRate,telemetry_configuration_sample_rate:t.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:t.telemetryUsageSampleRate,use_before_send:!!t.beforeSend,use_partitioned_cross_site_session_cookie:t.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:t.useSecureSessionCookie,use_proxy:!!t.proxy,silent_multiple_init:t.silentMultipleInit,track_session_across_subdomains:t.trackSessionAcrossSubdomains,track_anonymous_user:t.trackAnonymousUser,session_persistence:t.sessionPersistence,allow_fallback_to_local_storage:!!t.allowFallbackToLocalStorage,store_contexts_across_pages:!!t.storeContextsAcrossPages,allow_untrusted_events:!!t.allowUntrustedEvents,tracking_consent:t.trackingConsent}}var mt;(function(t){t.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",t.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(mt||(mt={}));const nn=new Set;function cs(t){Array.isArray(t)&&us(t.filter(e=>Ft(mt,e)))}function us(t){t.forEach(e=>{nn.add(e)})}function ls(){return nn}const _e="?";function F(t){const e=[];let n=gt(t,"stack");const r=String(t);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`\n`).forEach(s=>{const o=hs(s)||gs(s)||Es(s)||bs(s);o&&(!o.func&&o.line&&(o.func=_e),e.push(o))}),{message:gt(t,"message"),name:gt(t,"name"),stack:e}}const rn="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",ce="(?::(\\\\d+))",ds=new RegExp(`^\\\\s*at (.*?) ?\\\\(${rn}${ce}?${ce}?\\\\)?\\\\s*$`,"i"),fs=new RegExp(`\\\\((\\\\S*)${ce}${ce}\\\\)`);function hs(t){const e=ds.exec(t);if(!e)return;const n=e[2]&&e[2].indexOf("native")===0,r=e[2]&&e[2].indexOf("eval")===0,s=fs.exec(e[2]);return r&&s&&(e[2]=s[1],e[3]=s[2],e[4]=s[3]),{args:n?[e[2]]:[],column:e[4]?+e[4]:void 0,func:e[1]||_e,line:e[3]?+e[3]:void 0,url:n?void 0:e[2]}}const ms=new RegExp(`^\\\\s*at ?${rn}${ce}?${ce}??\\\\s*$`,"i");function gs(t){const e=ms.exec(t);if(e)return{args:[],column:e[3]?+e[3]:void 0,func:_e,line:e[2]?+e[2]:void 0,url:e[1]}}const ps=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Es(t){const e=ps.exec(t);if(e)return{args:[],column:e[4]?+e[4]:void 0,func:e[1]||_e,line:+e[3],url:e[2]}}const ys=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Ss=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function bs(t){const e=ys.exec(t);if(!e)return;const n=e[3]&&e[3].indexOf(" > eval")>-1,r=Ss.exec(e[3]);return n&&r&&(e[3]=r[1],e[4]=r[2],e[5]=void 0),{args:e[2]?e[2].split(","):[],column:e[5]?+e[5]:void 0,func:e[1]||_e,line:e[4]?+e[4]:void 0,url:e[3]}}function gt(t,e){if(typeof t!="object"||!t||!(e in t))return;const n=t[e];return typeof n=="string"?n:void 0}function Ts(t,e,n,r){const s=[{url:e,column:r,line:n}],{name:o,message:i}=Rs(t);return{name:o,message:i,stack:s}}const _s=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function Rs(t){let e,n;return{}.toString.call(t)==="[object String]"&&([,e,n]=_s.exec(t)),{name:e,message:n}}function Ge(t){const n=new Error(t);n.name="HandlingStack";let r;return Ee(()=>{const s=F(n);s.stack=s.stack.slice(2),r=ee(s)}),r}function ee(t){let e=sn(t);return t.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,s=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",o=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";e+=`\n at ${r}${s} @ ${n.url}${o}${i}`}),e}function sn(t){return`${t.name||"Error"}: ${t.message}`}function te(t,e,n,{computeHandlingStack:r}={}){let s=t[e];if(typeof s!="function")if(e in t&&e.startsWith("on"))s=W;else return{stop:W};let o=!1;const i=function(){if(o)return s.apply(this,arguments);const a=Array.from(arguments);let u;Ee(n,null,[{target:this,parameters:a,onPostCall:l=>{u=l},handlingStack:r?Ge("instrumented method"):void 0}]);const c=s.apply(this,a);return u&&Ee(u,null,[c]),c};return t[e]=i,{stop:()=>{o=!0,t[e]===i&&(t[e]=s)}}}const As=220*M,xs="$",vs=3;function N(t,e=As){const n=ie(Object.prototype),r=ie(Array.prototype),s=[],o=new WeakMap,i=pt(t,xs,void 0,s,o),a=JSON.stringify(i);let u=a?a.length:0;if(u>e){yt(e,"discarded",t);return}for(;s.length>0&&u<e;){const c=s.shift();let l=0;if(Array.isArray(c.source))for(let d=0;d<c.source.length;d++){const f=pt(c.source[d],c.path,d,s,o);if(f!==void 0?u+=JSON.stringify(f).length:u+=4,u+=l,l=1,u>e){yt(e,"truncated",t);break}c.target[d]=f}else for(const d in c.source)if(Object.prototype.hasOwnProperty.call(c.source,d)){const f=pt(c.source[d],c.path,d,s,o);if(f!==void 0&&(u+=JSON.stringify(f).length+l+d.length+vs,l=1),u>e){yt(e,"truncated",t);break}c.target[d]=f}}return n(),r(),i}function pt(t,e,n,r,s){const o=Os(t);if(!o||typeof o!="object")return ws(o);const i=Et(o);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const a=t;if(s.has(a))return`[Reference seen at ${s.get(a)}]`;const u=n!==void 0?`${e}.${n}`:e,c=Array.isArray(o)?[]:{};return s.set(a,u),r.push({source:o,target:c,path:u}),c}function ws(t){return typeof t=="bigint"?`[BigInt] ${t.toString()}`:typeof t=="function"?`[Function] ${t.name||"unknown"}`:typeof t=="symbol"?`[Symbol] ${t.description||t.toString()}`:t}function Et(t){try{if(t instanceof Event)return Cs(t);if(t instanceof RegExp)return`[RegExp] ${t.toString()}`;const n=Object.prototype.toString.call(t).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function Cs(t){return{type:t.type,isTrusted:t.isTrusted,currentTarget:t.currentTarget?Et(t.currentTarget):null,target:t.target?Et(t.target):null}}function Os(t){const e=t;if(e&&typeof e.toJSON=="function")try{return e.toJSON()}catch{}return t}function yt(t,e,n){R.warn(`The data provided has been ${e} as it is over the limit of ${t} characters:`,n)}const on="No stack, consider using an instance of Error";function an({stackTrace:t,originalError:e,handlingStack:n,componentStack:r,startClocks:s,nonErrorPrefix:o,source:i,handling:a}){const u=X(e),c=Ls(t,u,o,e),l=Is(u,t)?ee(t):on,d=u?ln(e,i):void 0,f=t?t.name:void 0,h=cn(e),m=un(e);return{startClocks:s,source:i,handling:a,handlingStack:n,componentStack:r,originalError:e,type:f,message:c,stack:l,causes:d,fingerprint:h,context:m}}function Ls(t,e,n,r){return t!=null&&t.message&&(t!=null&&t.name)?t.message:e?"Empty message":`${n} ${Q(N(r))}`}function Is(t,e){return e===void 0?!1:t?!0:e.stack.length>0&&(e.stack.length>1||e.stack[0].url!==void 0)}function cn(t){return X(t)&&"dd_fingerprint"in t?String(t.dd_fingerprint):void 0}function un(t){if(t!==null&&typeof t=="object"&&"dd_context"in t)return t.dd_context}function ks(t){var e;return(e=/@ (.+)/.exec(t))===null||e===void 0?void 0:e[1]}function X(t){return t instanceof Error||Object.prototype.toString.call(t)==="[object Error]"}function ln(t,e){let n=t;const r=[];for(;X(n==null?void 0:n.cause)&&r.length<10;){const s=F(n.cause);r.push({message:n.cause.message,source:e,type:s==null?void 0:s.name,stack:ee(s)}),n=n.cause}return r.length?r:void 0}const I={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Ds(t){const e=(s,o)=>{const i=an({stackTrace:s,originalError:o,startClocks:G(),nonErrorPrefix:"Uncaught",source:I.SOURCE,handling:"unhandled"});t.notify(i)},{stop:n}=Us(e),{stop:r}=Ps(e);return{stop:()=>{n(),r()}}}function Us(t){return te(window,"onerror",({parameters:[e,n,r,s,o]})=>{let i;X(o)?i=F(o):i=Ts(e,n,r,s),t(i,o??e)})}function Ps(t){return te(window,"onunhandledrejection",({parameters:[e]})=>{const n=e.reason||"Empty reason",r=F(n);t(r,n)})}function Ms(t){const e={version:"6.5.0",onReady(n){n()},...t};return Object.defineProperty(e,"_setDebug",{get(){return or},enumerable:!1}),e}function Fs(t,e,n){const r=t[e];r&&!r.q&&r.version&&R.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),t[e]=n,r&&r.q&&r.q.forEach(s=>Dt(s,"onReady callback threw an error:")())}function dn(t,e){e.silentMultipleInit||R.error(`${t} is already initialized.`)}function ne(t,e,n,r,s){return St(t,e,[n],r,s)}function St(t,e,n,r,{once:s,capture:o,passive:i}={}){const a=S(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!t.allowUntrustedEvents||(s&&d(),r(f))}),u=i?{capture:o,passive:i}:o,c=window.EventTarget&&e instanceof EventTarget?window.EventTarget.prototype:e,l=se(c,"addEventListener");n.forEach(f=>l.call(e,f,a,u));function d(){const f=se(c,"removeEventListener");n.forEach(h=>f.call(e,h,a,u))}return{stop:d}}const je={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function Ns(t,e){const n=[];e.includes(je.cspViolation)&&n.push($s(t));const r=e.filter(s=>s!==je.cspViolation);return r.length&&n.push(Bs(r)),Gt(...n)}function Bs(t){return new A(e=>{if(!window.ReportingObserver)return;const n=S((s,o)=>s.forEach(i=>e.notify(Gs(i)))),r=new window.ReportingObserver(n,{types:t,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function $s(t){return new A(e=>{const{stop:n}=ne(t,document,"securitypolicyviolation",r=>{e.notify(js(r))});return n})}function Gs(t){const{type:e,body:n}=t;return fn({type:n.id,message:`${e}: ${n.message}`,originalError:t,stack:hn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function js(t){const e=`\'${t.blockedURI}\' blocked by \'${t.effectiveDirective}\' directive`;return fn({type:t.effectiveDirective,message:`${je.cspViolation}: ${e}`,originalError:t,csp:{disposition:t.disposition},stack:hn(t.effectiveDirective,t.originalPolicy?`${e} of the policy "${lr(t.originalPolicy,100,"...")}"`:"no policy",t.sourceFile,t.lineNumber,t.columnNumber)})}function fn(t){return{startClocks:G(),source:I.REPORT,handling:"unhandled",...t}}function hn(t,e,n,r,s){return n?ee({name:t,message:e,stack:[{func:"?",url:n,line:r??void 0,column:s??void 0}]}):void 0}function mn(t,e){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:t,payload:e})}function gn(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function We(t,e,n=Ws()){if(e===void 0)return t;if(typeof e!="object"||e===null)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const s=e.flags||[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.sticky?"y":"",e.unicode?"u":""].join("");return new RegExp(e.source,s)}if(n.hasAlreadyBeenSeen(e))return;if(Array.isArray(e)){const s=Array.isArray(t)?t:[];for(let o=0;o<e.length;++o)s[o]=We(s[o],e[o],n);return s}const r=gn(t)==="object"?t:{};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=We(r[s],e[s],n));return r}function pn(t){return We(void 0,t)}function ue(...t){let e;for(const n of t)n!=null&&(e=We(e,n));return e}function Ws(){if(typeof WeakSet<"u"){const e=new WeakSet;return{hasAlreadyBeenSeen(n){const r=e.has(n);return r||e.add(n),r}}}const t=[];return{hasAlreadyBeenSeen(e){const n=t.indexOf(e)>=0;return n||t.push(e),n}}}function zs(){var t;const e=window.navigator;return{status:e.onLine?"connected":"not_connected",interfaces:e.connection&&e.connection.type?[e.connection.type]:void 0,effective_type:(t=e.connection)===null||t===void 0?void 0:t.effectiveType}}function Xs(t){const e=new Set;return t.forEach(n=>e.add(n)),Array.from(e)}function En(t,e){const n=t.indexOf(e);n>=0&&t.splice(n,1)}const qs=500;function yn(){const t=[];return{add:s=>{t.push(s)>qs&&t.splice(0,1)},remove:s=>{En(t,s)},drain:s=>{t.forEach(o=>o(s)),t.length=0}}}const re={log:"log",configuration:"configuration",usage:"usage"},Ys=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Hs=[Xr];let Sn=yn(),le=t=>{Sn.add(()=>le(t))};function Vs(t,e){let n;const r=new A,s=new Set,o=!Hs.includes(e.site)&&Ce(e.telemetrySampleRate),i={[re.log]:o,[re.configuration]:o&&Ce(e.telemetryConfigurationSampleRate),[re.usage]:o&&Ce(e.telemetryUsageSampleRate)},a=Ks();le=c=>{const l=Q(c);if(i[c.type]&&s.size<e.maxTelemetryEventsPerPage&&!s.has(l)){const d=u(t,c,a);r.notify(d),mn("telemetry",d),s.add(l)}},sr(Tn);function u(c,l,d){return ue({type:"telemetry",date:$(),service:c,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:ue(l,{runtime_env:d,connectivity:zs(),sdk_setup:"npm"}),experimental_features:Array.from(ls())},n!==void 0?n():{})}return{setContextProvider:c=>{n=c},observable:r,enabled:o}}function Ks(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Zs(){Sn.drain()}function Js(t){return t.site===Wr}function bn(t,e){rt(_.debug,t,e),le({type:re.log,message:t,status:"debug",...e})}function Tn(t,e){le({type:re.log,status:"error",...to(t),...e})}function Qs(t){le({type:re.configuration,configuration:t})}function eo(t){le({type:re.usage,usage:t})}function to(t){if(X(t)){const e=F(t);return{error:{kind:e.name,stack:ee(no(e))},message:e.message}}return{error:{stack:on},message:`Uncaught ${Q(t)}`}}function no(t){return t.stack=t.stack.filter(e=>!e.url||Ys.some(n=>e.url.startsWith(n))),t}const Re=1/0,ro=V;let Ae=null;const ze=new Set;function so(){ze.forEach(t=>t())}function oo({expireDelay:t,maxEntries:e}){let n=[];const r=[];Ae||(Ae=st(()=>so(),ro));const s=()=>{const h=Oe()-t;for(;n.length>0&&n[n.length-1].endTime<h;){const m=n.pop();m&&r.push(m.startTime)}};ze.add(s);function o(h,m){const b={value:h,startTime:m,endTime:Re,remove:()=>{En(n,b)},close:y=>{b.endTime=y}};return e&&n.length>=e&&n.pop(),n.unshift(b),b}function i(h=Re,m={returnInactive:!1}){for(const b of n)if(b.startTime<=h){if(m.returnInactive||h<=b.endTime)return b.value;break}}function a(h){const m=n[0];m&&m.endTime===Re&&m.close(h)}function u(h=Re,m=0){const b=er(h,m);return n.filter(y=>y.startTime<=b&&h<=y.endTime).map(y=>y.value)}function c(){return n.map(({startTime:h,endTime:m,value:b})=>({startTime:h,endTime:m===Re?"Infinity":m,value:b}))}function l(){return r}function d(){n=[]}function f(){ze.delete(s),ze.size===0&&Ae&&($t(Ae),Ae=null)}return{add:o,find:i,closeActive:a,findAll:u,reset:d,stop:f,getAllEntries:c,getDeletedEntries:l}}const io=V,ao=ct;function co(t,e,n,r){const s=new A,o=new A,i=Br(t.sessionStoreStrategyType,t,e,n),a=oo({expireDelay:ao});i.renewObservable.subscribe(()=>{a.add(u(),Oe()),s.notify()}),i.expireObservable.subscribe(()=>{o.notify(),a.closeActive(Oe())}),i.expandOrRenewSession(),a.add(u(),Jn().relative),r.observable.subscribe(()=>{r.isGranted()?i.expandOrRenewSession():i.expire()}),uo(t,()=>{r.isGranted()&&i.expandOrRenewSession()}),lo(t,()=>i.expandSession()),fo(t,()=>i.restartSession());function u(){return{id:i.getSession().id,trackingType:i.getSession()[e],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(c,l)=>a.find(c,l),renewObservable:s,expireObservable:o,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function uo(t,e){St(t,window,["click","touchstart","keydown","scroll"],e,{capture:!0,passive:!0})}function lo(t,e){const n=()=>{document.visibilityState==="visible"&&e()};ne(t,document,"visibilitychange",n),st(n,io)}function fo(t,e){ne(t,window,"resume",e,{capture:!0})}function _n(t){return t>=500}function ho(t){try{return t.clone()}catch{return}}const mo=80*M,go=32,Rn=3*Mt,po=V,An=me;function xn(t,e,n,r,s){e.transportStatus===0&&e.queuedPayloads.size()===0&&e.bandwidthMonitor.canHandle(t)?wn(t,e,n,{onSuccess:()=>Cn(0,e,n,r,s),onFailure:()=>{e.queuedPayloads.enqueue(t),vn(e,n,r,s)}}):e.queuedPayloads.enqueue(t)}function vn(t,e,n,r){t.transportStatus===2&&ye(()=>{const s=t.queuedPayloads.first();wn(s,t,e,{onSuccess:()=>{t.queuedPayloads.dequeue(),t.currentBackoffTime=An,Cn(1,t,e,n,r)},onFailure:()=>{t.currentBackoffTime=Math.min(po,t.currentBackoffTime*2),vn(t,e,n,r)}})},t.currentBackoffTime)}function wn(t,e,n,{onSuccess:r,onFailure:s}){e.bandwidthMonitor.add(t),n(t,o=>{e.bandwidthMonitor.remove(t),Eo(o)?(e.transportStatus=e.bandwidthMonitor.ongoingRequestCount>0?1:2,t.retry={count:t.retry?t.retry.count+1:1,lastFailureStatus:o.status},s()):(e.transportStatus=0,r())})}function Cn(t,e,n,r,s){t===0&&e.queuedPayloads.isFull()&&!e.queueFullReported&&(s({message:`Reached max ${r} events size queued for upload: ${Rn/Mt}MiB`,source:I.AGENT,startClocks:G()}),e.queueFullReported=!0);const o=e.queuedPayloads;for(e.queuedPayloads=On();o.size()>0;)xn(o.dequeue(),e,n,r,s)}function Eo(t){return t.type!=="opaque"&&(t.status===0&&!navigator.onLine||t.status===408||t.status===429||_n(t.status))}function yo(){return{transportStatus:0,currentBackoffTime:An,bandwidthMonitor:So(),queuedPayloads:On(),queueFullReported:!1}}function On(){const t=[];return{bytesCount:0,enqueue(e){this.isFull()||(t.push(e),this.bytesCount+=e.bytesCount)},first(){return t[0]},dequeue(){const e=t.shift();return e&&(this.bytesCount-=e.bytesCount),e},size(){return t.length},isFull(){return this.bytesCount>=Rn}}}function So(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(t){return this.ongoingRequestCount===0||this.ongoingByteCount+t.bytesCount<=mo&&this.ongoingRequestCount<go},add(t){this.ongoingRequestCount+=1,this.ongoingByteCount+=t.bytesCount},remove(t){this.ongoingRequestCount-=1,this.ongoingByteCount-=t.bytesCount}}}function bo(t,e,n){const r=yo(),s=(o,i)=>Ro(t,e,o,i);return{send:o=>{xn(o,r,s,t.trackType,n)},sendOnExit:o=>{To(t,e,o)}}}function To(t,e,n){if(!!navigator.sendBeacon&&n.bytesCount<e)try{const o=t.build("beacon",n);if(navigator.sendBeacon(o,n.data))return}catch(o){_o(o)}const s=t.build("xhr",n);bt(s,n.data)}let Ln=!1;function _o(t){Ln||(Ln=!0,Tn(t))}function Ro(t,e,n,r){if(Ao()&&n.bytesCount<e){const o=t.build("fetch",n);fetch(o,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(S(i=>r==null?void 0:r({status:i.status,type:i.type})),S(()=>{const i=t.build("xhr",n);bt(i,n.data,r)}))}else{const o=t.build("xhr",n);bt(o,n.data,r)}}function Ao(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function bt(t,e,n){const r=new XMLHttpRequest;r.open("POST",t,!0),e instanceof Blob&&r.setRequestHeader("Content-Type",e.type),ne({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(e)}function Tt(){const t=xo();if(t)return{getCapabilities(){var e;return JSON.parse(((e=t.getCapabilities)===null||e===void 0?void 0:e.call(t))||"[]")},getPrivacyLevel(){var e;return(e=t.getPrivacyLevel)===null||e===void 0?void 0:e.call(t)},getAllowedWebViewHosts(){return JSON.parse(t.getAllowedWebViewHosts())},send(e,n,r){const s=r?{id:r}:void 0;t.send(JSON.stringify({eventType:e,event:n,view:s}))}}}function Xe(t){var e;t===void 0&&(t=(e=j().location)===null||e===void 0?void 0:e.hostname);const n=Tt();return!!n&&n.getAllowedWebViewHosts().some(r=>t===r||t.endsWith(`.${r}`))}function xo(){return j().DatadogEventBridge}const qe={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function vo(t){return new A(e=>{const{stop:n}=St(t,window,["visibilitychange","freeze"],s=>{s.type==="visibilitychange"&&document.visibilityState==="hidden"?e.notify({reason:qe.HIDDEN}):s.type==="freeze"&&e.notify({reason:qe.FROZEN})},{capture:!0}),r=ne(t,window,"beforeunload",()=>{e.notify({reason:qe.UNLOADING})}).stop;return()=>{n(),r()}})}function wo(t){return De(qe).includes(t)}function Co({encoder:t,request:e,flushController:n,messageBytesLimit:r}){let s={};const o=n.flushObservable.subscribe(d=>l(d));function i(d,f,h){n.notifyBeforeAddMessage(f),h!==void 0?(s[h]=d,n.notifyAfterAddMessage()):t.write(t.isEmpty?d:`\n${d}`,m=>{n.notifyAfterAddMessage(m-f)})}function a(d){return d!==void 0&&s[d]!==void 0}function u(d){const f=s[d];delete s[d];const h=t.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(h)}function c(d,f){const h=Q(d),m=t.estimateEncodedBytesCount(h);if(m>=r){R.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${we} ${kt}/#technical-limitations`);return}a(f)&&u(f),i(h,m,f)}function l(d){const f=De(s).join(`\n`);s={};const h=wo(d.reason),m=h?e.sendOnExit:e.send;if(h&&t.isAsync){const b=t.finishSync();b.outputBytesCount&&m(In(b));const y=[b.pendingData,f].filter(Boolean).join(`\n`);y&&m({data:y,bytesCount:nt(y)})}else f&&t.write(t.isEmpty?f:`\n${f}`),t.finish(b=>{m(In(b))})}return{flushController:n,add:c,upsert:c,stop:o.unsubscribe}}function In(t){let e;return typeof t.output=="string"?e=t.output:e=new Blob([t.output],{type:"text/plain"}),{data:e,bytesCount:t.outputBytesCount,encoding:t.encoding}}function Oo({messagesLimit:t,bytesLimit:e,durationLimit:n,pageExitObservable:r,sessionExpireObservable:s}){const o=r.subscribe(m=>l(m.reason)),i=s.subscribe(()=>l("session_expire")),a=new A(()=>()=>{o.unsubscribe(),i.unsubscribe()});let u=0,c=0;function l(m){if(c===0)return;const b=c,y=u;c=0,u=0,h(),a.notify({reason:m,messagesCount:b,bytesCount:y})}let d;function f(){d===void 0&&(d=ye(()=>{l("duration_limit")},n))}function h(){Bt(d),d=void 0}return{flushObservable:a,get messagesCount(){return c},notifyBeforeAddMessage(m){u+m>=e&&l("bytes_limit"),c+=1,u+=m,f()},notifyAfterAddMessage(m=0){u+=m,c>=t?l("messages_limit"):u>=e&&l("bytes_limit")},notifyAfterRemoveMessage(m){u-=m,c-=1,c===0&&h()}}}function kn(t,e,n,r,s,o,i=Co){const a=c(t,e),u=n&&c(t,n);function c(l,{endpoint:d,encoder:f}){return i({encoder:f,request:bo(d,l.batchBytesLimit,r),flushController:Oo({messagesLimit:l.batchMessagesLimit,bytesLimit:l.batchBytesLimit,durationLimit:l.flushTimeout,pageExitObservable:s,sessionExpireObservable:o}),messageBytesLimit:l.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(l,d=!0){a.add(l),u&&d&&u.add(n.transformMessage?n.transformMessage(l):l)},upsert:(l,d)=>{a.upsert(l,d),u&&u.upsert(n.transformMessage?n.transformMessage(l):l,d)},stop:()=>{a.stop(),u&&u.stop()}}}function Ye(){let t="",e=0;return{isAsync:!1,get isEmpty(){return!t},write(n,r){const s=nt(n);e+=s,t+=n,r&&r(s)},finish(n){n(this.finishSync())},finishSync(){const n={output:t,outputBytesCount:e,rawBytesCount:e,pendingData:""};return t="",e=0,n},estimateEncodedBytesCount(n){return n.length}}}class Lo{constructor(){this.callbacks={}}notify(e,n){const r=this.callbacks[e];r&&r.forEach(s=>s(n))}subscribe(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),{unsubscribe:()=>{this.callbacks[e]=this.callbacks[e].filter(r=>n!==r)}}}}function Io(t,e,n){let r=0,s=!1;return{isLimitReached(){if(r===0&&ye(()=>{r=0},V),r+=1,r<=e||s)return s=!1,!1;if(r===e+1){s=!0;try{n({message:`Reached max number of ${t}s by minute: ${e}`,source:I.AGENT,startClocks:G()})}finally{s=!1}}return!0}}}let _t;const Rt=new WeakMap;function ko(t){return _t||(_t=Do(t)),_t}function Do(t){return new A(e=>{const{stop:n}=te(XMLHttpRequest.prototype,"open",Uo),{stop:r}=te(XMLHttpRequest.prototype,"send",o=>{Po(o,t,e)},{computeHandlingStack:!0}),{stop:s}=te(XMLHttpRequest.prototype,"abort",Mo);return()=>{n(),r(),s()}})}function Uo({target:t,parameters:[e,n]}){Rt.set(t,{state:"open",method:String(e).toUpperCase(),url:ft(String(n))})}function Po({target:t,handlingStack:e},n,r){const s=Rt.get(t);if(!s)return;const o=s;o.state="start",o.startClocks=G(),o.isAborted=!1,o.xhr=t,o.handlingStack=e;let i=!1;const{stop:a}=te(t,"onreadystatechange",()=>{t.readyState===XMLHttpRequest.DONE&&u()}),u=()=>{if(c(),a(),i)return;i=!0;const l=s;l.state="complete",l.duration=Qn(o.startClocks.timeStamp,$()),l.status=t.status,r.notify(rr(l))},{stop:c}=ne(n,t,"loadend",u);r.notify(o)}function Mo({target:t}){const e=Rt.get(t);e&&(e.isAborted=!0)}let At;function Dn(){return At||(At=Fo()),At}function Fo(){return new A(t=>{if(!window.fetch)return;const{stop:e}=te(window,"fetch",n=>No(n,t),{computeHandlingStack:!0});return e})}function No({parameters:t,onPostCall:e,handlingStack:n},r){const[s,o]=t;let i=o&&o.method;i===void 0&&s instanceof Request&&(i=s.method);const a=i!==void 0?String(i).toUpperCase():"GET",u=s instanceof Request?s.url:ft(String(s)),c=G(),l={state:"start",init:o,input:s,method:a,startClocks:c,url:u,handlingStack:n};r.notify(l),t[0]=l.input,t[1]=l.init,e(d=>Bo(r,d,l))}function Bo(t,e,n){const r=n;function s(o){r.state="resolve",Object.assign(r,o),t.notify(r)}e.then(S(o=>{s({response:o,responseType:o.type,status:o.status,isAborted:!1})}),S(o=>{var i,a;s({status:0,isAborted:((a=(i=r.init)===null||i===void 0?void 0:i.signal)===null||a===void 0?void 0:a.aborted)||o instanceof DOMException&&o.code===DOMException.ABORT_ERR,error:o})}))}let xt={};function $o(t){const e=t.map(n=>(xt[n]||(xt[n]=Go(n)),xt[n]));return Gt(...e)}function Go(t){return new A(e=>{const n=U[t];return U[t]=(...r)=>{n.apply(console,r);const s=Ge("console error");Ee(()=>{e.notify(jo(r,t,s))})},()=>{U[t]=n}})}function jo(t,e,n){const r=t.map(o=>Wo(o)).join(" ");let s;if(e===_.error){const o=t.find(X);s={stack:o?ee(F(o)):void 0,fingerprint:cn(o),causes:o?ln(o,"console"):void 0,startClocks:G(),message:r,source:I.CONSOLE,handling:"handled",handlingStack:n,context:un(o)}}return{api:e,message:r,error:s,handlingStack:n}}function Wo(t){return typeof t=="string"?N(t):X(t)?sn(F(t)):Q(N(t),void 0,2)}function zo(t){const e=gn(t)==="object";return e||R.error("Unsupported context:",t),e}function vt(t,e,n){const r={...t};for(const[s,{required:o,type:i}]of Object.entries(e))i==="string"&&s in r&&(r[s]=String(r[s])),o&&!(s in t)&&R.warn(`The property ${s} of ${n} is required; context will not be sent to the intake.`);return r}function He(t="",{customerDataTracker:e,propertiesConfig:n={}}={}){let r={};const s=new A,o={getContext:()=>pn(r),setContext:i=>{zo(i)?(r=N(vt(i,n,t)),e==null||e.updateCustomerData(r)):o.clearContext(),s.notify()},setContextProperty:(i,a)=>{r=N(vt({...r,[i]:a},n,t)),e==null||e.updateCustomerData(r),s.notify()},removeContextProperty:i=>{delete r[i],e==null||e.updateCustomerData(r),vt(r,n,t),s.notify()},clearContext:()=>{r={},e==null||e.resetCustomerData(),s.notify()},changeObservable:s};return o}const Xo="_dd_c",qo=[];function wt(t,e,n,r){const s=Yo(n,r);qo.push(ne(t,window,"storage",({key:c})=>{s===c&&i()})),e.changeObservable.subscribe(a);const o=ue(u(),e.getContext());pe(o)||e.setContext(o);function i(){e.setContext(u())}function a(){localStorage.setItem(s,JSON.stringify(e.getContext()))}function u(){const c=localStorage.getItem(s);return c?JSON.parse(c):{}}}function Yo(t,e){return`${Xo}_${t}_${e}`}const Ho=3*M,Vo=16*M,Ko=200;function Zo(t=2){const e=new Map;let n=!1;function r(s=0){if(n||t===0)return;const o=t===2?Ho:Vo;let i=s;e.forEach(a=>{i+=a.getBytesCount()}),i>o&&(Jo(o),n=!0)}return{createDetachedTracker:()=>{const s=Un(()=>r(s.getBytesCount()));return s},getOrCreateTracker:s=>(e.has(s)||e.set(s,Un(r)),e.get(s)),setCompressionStatus:s=>{t===0&&(t=s,r())},getCompressionStatus:()=>t,stop:()=>{e.forEach(s=>s.stop()),e.clear()}}}function Un(t){let e=0;const{throttled:n,cancel:r}=jt(o=>{e=nt(Q(o)),t()},Ko),s=()=>{r(),e=0};return{updateCustomerData:o=>{pe(o)?s():n(o)},resetCustomerData:s,getBytesCount:()=>e,stop:()=>{r()}}}function Jo(t){R.warn(`Customer data exceeds the recommended ${t/M}KiB threshold. ${we} ${kt}/#customer-data-exceeds-the-recommended-threshold-warning`)}function Qo(t,e,n){const r=t.getReader(),s=[];let o=0;i();function i(){r.read().then(S(u=>{if(u.done){a();return}s.push(u.value),o+=u.value.length,o>n.bytesLimit?a():i()}),S(u=>e(u)))}function a(){r.cancel().catch(W);let u,c;{let l;if(s.length===1)l=s[0];else{l=new Uint8Array(o);let d=0;s.forEach(f=>{l.set(f,d),d+=f.length})}u=l.slice(0,n.bytesLimit),c=l.length>n.bytesLimit}e(void 0,u,c)}}const ei="datadog-synthetics-public-id",ti="datadog-synthetics-result-id",ni="datadog-synthetics-injects-rum";function Pn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||K(ni))}function ri(){const t=window._DATADOG_SYNTHETICS_PUBLIC_ID||K(ei);return typeof t=="string"?t:void 0}function si(){const t=window._DATADOG_SYNTHETICS_RESULT_ID||K(ti);return typeof t=="string"?t:void 0}function Ve(t,e,n){const r=n.getHandler(),s=Array.isArray(r)?r:[r];return Mn[t]>=Mn[n.getLevel()]&&s.includes(e)}const p={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Mn={[p.ok]:0,[p.debug]:1,[p.info]:2,[p.notice]:4,[p.warn]:5,[p.error]:6,[p.critical]:7,[p.alert]:8,[p.emerg]:9};function Ke(t,{includeMessage:e=!1}={}){return{stack:t.stack,kind:t.type,message:e?t.message:void 0,causes:t.causes,fingerprint:t.fingerprint,handling:t.handling}}var oi=function(t,e,n,r){var s=arguments.length,o=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(o=(s<3?i(o):s>3?i(e,n,o):i(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o};const xe={console:"console",http:"http",silent:"silent"},ii=Object.keys(p);let k=class{constructor(e,n,r,s=xe.http,o=p.debug,i={}){this.handleLogStrategy=e,this.handlerType=s,this.level=o,this.contextManager=He("logger",{customerDataTracker:n}),this.contextManager.setContext(i),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(e,n,r=p.info,s,o){const i=N(n);let a;if(s!=null){const u=an({stackTrace:X(s)?F(s):void 0,originalError:s,nonErrorPrefix:"Provided",source:I.LOGGER,handling:"handled",startClocks:G()});a=ue({error:Ke(u,{includeMessage:!0})},i)}else a=i;this.handleLogStrategy({message:N(e),context:a,status:r},this,o)}log(e,n,r=p.info,s){let o;Ve(r,xe.http,this)&&(o=Ge("log")),this.logImplementation(e,n,r,s,o)}setContext(e){this.contextManager.setContext(e)}getContext(){return this.contextManager.getContext()}setContextProperty(e,n){this.contextManager.setContextProperty(e,n)}removeContextProperty(e){this.contextManager.removeContextProperty(e)}clearContext(){this.contextManager.clearContext()}setHandler(e){this.handlerType=e}getHandler(){return this.handlerType}setLevel(e){this.level=e}getLevel(){return this.level}};oi([ir],k.prototype,"logImplementation",null),k.prototype.ok=B(p.ok),k.prototype.debug=B(p.debug),k.prototype.info=B(p.info),k.prototype.notice=B(p.notice),k.prototype.warn=B(p.warn),k.prototype.error=B(p.error),k.prototype.critical=B(p.critical),k.prototype.alert=B(p.alert),k.prototype.emerg=B(p.emerg);function B(t){return function(e,n,r){let s;Ve(t,xe.http,this)&&(s=Ge("log")),this.logImplementation(e,n,t,r,s)}}function ai(t,e,n){return{view:{referrer:document.referrer,url:window.location.href},context:t.getContext(),user:e.getContext(),account:n.getContext()}}const ci=32*M;function ui(t){t.usePciIntake===!0&&t.site&&t.site!=="datadoghq.com"&&R.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const e=is(t),n=Fn(t.forwardConsoleLogs,De(_),"Forward Console Logs"),r=Fn(t.forwardReports,De(je),"Forward Reports");if(!(!e||!n||!r))return t.forwardErrorsToLogs&&!n.includes(_.error)&&n.push(_.error),{forwardErrorsToLogs:t.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:ci,...e}}function Fn(t,e,n){if(t===void 0)return[];if(!(t==="all"||Array.isArray(t)&&t.every(r=>e.includes(r)))){R.error(`${n} should be "all" or an array with allowed values "${e.join(\'", "\')}"`);return}return t==="all"?e:Xs(t)}function li(t){const e=as(t);return{forward_errors_to_logs:t.forwardErrorsToLogs,forward_console_logs:t.forwardConsoleLogs,forward_reports:t.forwardReports,use_pci_intake:t.usePciIntake,...e}}function di(t,e,n){const r=yn();let s,o;const i=e.observable.subscribe(a);function a(){if(!o||!s||!e.isGranted())return;i.unsubscribe();const u=n(s,o);r.drain(u)}return{init(u){if(!u){R.error("Missing configuration");return}if(cs(u.enableExperimentalFeatures),Xe()&&(u=fi(u)),s=u,o){dn("DD_LOGS",u);return}const c=ui(u);c&&(o=c,Dn().subscribe(W),e.tryToInit(c.trackingConsent),a())},get initConfiguration(){return s},getInternalContext:W,handleLog(u,c,l,d=t(),f=$()){r.add(h=>h.handleLog(u,c,l,d,f))}}}function fi(t){return{...t,clientToken:"empty"}}const Ct="logs";function hi(t){const e=Zo(),n=He("global context",{customerDataTracker:e.getOrCreateTracker(2)}),r=He("user",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),s=He("account",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),o=$r();function i(){return ai(n,r,s)}let a=di(i,o,(l,d)=>{l.storeContextsAcrossPages&&(wt(d,n,Ct,2),wt(d,r,Ct,1),wt(d,s,Ct,4));const f=t(l,d,i,o);return a=mi(l,f),f});const u={},c=new k((...l)=>a.handleLog(...l),e.createDetachedTracker());return Ms({logger:c,init:S(l=>a.init(l)),setTrackingConsent:S(l=>{o.update(l),eo({feature:"set-tracking-consent",tracking_consent:l})}),getGlobalContext:S(()=>n.getContext()),setGlobalContext:S(l=>n.setContext(l)),setGlobalContextProperty:S((l,d)=>n.setContextProperty(l,d)),removeGlobalContextProperty:S(l=>n.removeContextProperty(l)),clearGlobalContext:S(()=>n.clearContext()),createLogger:S((l,d={})=>(u[l]=new k((...f)=>a.handleLog(...f),e.createDetachedTracker(),N(l),d.handler,d.level,N(d.context)),u[l])),getLogger:S(l=>u[l]),getInitConfiguration:S(()=>pn(a.initConfiguration)),getInternalContext:S(l=>a.getInternalContext(l)),setUser:S(r.setContext),getUser:S(r.getContext),setUserProperty:S(r.setContextProperty),removeUserProperty:S(r.removeContextProperty),clearUser:S(r.clearContext),setAccount:S(s.setContext),getAccount:S(s.getContext),setAccountProperty:S(s.setContextProperty),removeAccountProperty:S(s.removeContextProperty),clearAccount:S(s.clearContext)})}function mi(t,e){return{init:n=>{dn("DD_LOGS",n)},initConfiguration:t,...e}}const gi="logs";function pi(t,e){const n=co(t,gi,r=>yi(t,r),e);return{findTrackedSession:(r,s={returnInactive:!1})=>{const o=n.findSession(r,s);return o&&o.trackingType==="1"?{id:o.id,anonymousId:o.anonymousId}:void 0},expireObservable:n.expireObservable}}function Ei(t){const n=Nn(t)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new A}}function Nn(t){return Ce(t.sessionSampleRate)?"1":"0"}function yi(t,e){const n=Si(e)?e:Nn(t);return{trackingType:n,isTracked:n==="1"}}function Si(t){return t==="0"||t==="1"}let Bn=!1;function Ze(t){const e=window;if(Pn()){const r=n(e.DD_RUM_SYNTHETICS);return!r&&!Bn&&(Bn=!0,bn("Logs sent before RUM is injected by the synthetics worker",{testId:ri(),resultId:si()})),r}return n(e.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(t)}}function bi(t,e,n,r,s){const o=ii.concat(["custom"]),i={};o.forEach(a=>{i[a]=Io(a,e.eventRateLimiterThreshold,s)}),n.subscribe(0,({rawLogsEvent:a,messageContext:u=void 0,savedCommonContext:c=void 0,domainContext:l})=>{var d,f;const h=tr(a.date),m=t.findTrackedSession(h);if(!t.findTrackedSession(h,{returnInactive:!0}))return;const y=c||r();let D;!pe(y.account)&&y.account.id&&(D=y.account),m&&m.anonymousId&&!y.user.anonymous_id&&(y.user.anonymous_id=m.anonymousId);const v=ue({service:e.service,session_id:m?m.id:void 0,session:m?{id:m.id}:void 0,usr:pe(y.user)?void 0:y.user,account:D,view:y.view},y.context,Ze(h),a,u);((d=e.beforeSend)===null||d===void 0?void 0:d.call(e,v,l))===!1||v.origin!==I.AGENT&&((f=i[v.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,v)})}const Ti={[_.log]:p.info,[_.debug]:p.debug,[_.info]:p.info,[_.warn]:p.warn,[_.error]:p.error};function _i(t,e){const n=$o(t.forwardConsoleLogs).subscribe(r=>{var s;const o={rawLogsEvent:{date:$(),message:r.message,origin:I.CONSOLE,error:r.error&&Ke(r.error),status:Ti[r.api]},messageContext:(s=r.error)===null||s===void 0?void 0:s.context,domainContext:{handlingStack:r.handlingStack}};e.notify(0,o)});return{stop:()=>{n.unsubscribe()}}}function Ri(t,e){const n=Ns(t,t.forwardReports).subscribe(r=>{let s=r.message,o;const i=r.originalError.type==="deprecation"?p.warn:p.error;i===p.error?o=Ke(r):r.stack&&(s+=` Found in ${ks(r.stack)}`),e.notify(0,{rawLogsEvent:{date:$(),message:s,origin:I.REPORT,error:o,status:i}})});return{stop:()=>{n.unsubscribe()}}}function Ai(t,e){if(!t.forwardErrorsToLogs)return{stop:W};const n=ko(t).subscribe(o=>{o.state==="complete"&&s("xhr",o)}),r=Dn().subscribe(o=>{o.state==="resolve"&&s("fetch",o)});function s(o,i){!ss(i.url)&&(Ci(i)||_n(i.status))&&("xhr"in i?xi(i.xhr,t,a):i.response?wi(i.response,t,a):i.error&&vi(i.error,t,a));function a(u){const c={isAborted:i.isAborted,handlingStack:i.handlingStack};e.notify(0,{rawLogsEvent:{message:`${Oi(o)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:u||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:p.error,origin:I.NETWORK},domainContext:c})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function xi(t,e,n){typeof t.response=="string"?n(Ot(t.response,e)):n(t.response)}function vi(t,e,n){n(Ot(ee(F(t)),e))}function wi(t,e,n){const r=ho(t);!r||!r.body?n():window.TextDecoder?Li(r.body,e.requestErrorResponseLengthLimit,(s,o)=>{n(s?`Unable to retrieve response: ${s}`:o)}):r.text().then(S(s=>n(Ot(s,e))),S(s=>n(`Unable to retrieve response: ${s}`)))}function Ci(t){return t.status===0&&t.responseType!=="opaque"}function Ot(t,e){return t.length>e.requestErrorResponseLengthLimit?`${t.substring(0,e.requestErrorResponseLengthLimit)}...`:t}function Oi(t){return t==="xhr"?"XHR":"Fetch"}function Li(t,e,n){Qo(t,(r,s,o)=>{if(r)n(r);else{let i=new TextDecoder().decode(s);o&&(i+="..."),n(void 0,i)}},{bytesLimit:e,collectStreamBody:!0})}function Ii(t,e){if(!t.forwardErrorsToLogs)return{stop:W};const n=new A,{stop:r}=Ds(n),s=n.subscribe(o=>{e.notify(0,{rawLogsEvent:{message:o.message,date:o.startClocks.timeStamp,error:Ke(o),origin:I.SOURCE,status:p.error},messageContext:o.context})});return{stop:()=>{r(),s.unsubscribe()}}}const ki=Lo;function Di(t){function e(n,r,s,o,i){const a=ue(r.getContext(),n.context);if(Ve(n.status,xe.console,r)&&Pi(n,a),Ve(n.status,xe.http,r)){const u={rawLogsEvent:{date:i||$(),message:n.message,status:n.status,origin:I.LOGGER},messageContext:a,savedCommonContext:o};s&&(u.domainContext={handlingStack:s}),t.notify(0,u)}}return{handleLog:e}}const Ui={[p.ok]:_.debug,[p.debug]:_.debug,[p.info]:_.info,[p.notice]:_.info,[p.warn]:_.warn,[p.error]:_.error,[p.critical]:_.error,[p.alert]:_.error,[p.emerg]:_.error};function Pi({status:t,message:e},n){H[Ui[t]].call(U,e,n)}function Mi(t,e,n,r,s){const o=kn(t,{endpoint:t.logsEndpointBuilder,encoder:Ye()},t.replica&&{endpoint:t.replica.logsEndpointBuilder,encoder:Ye()},n,r,s.expireObservable);return e.subscribe(1,i=>{o.add(i)}),o}function Fi(t){const e=Tt();t.subscribe(1,n=>{e.send("log",n)})}function Ni(t){return{get:e=>{const n=t.findTrackedSession(e);if(n)return{session_id:n.id}}}}function Bi(t){return e=>{t.notify(0,{rawLogsEvent:{message:e.message,date:e.startClocks.timeStamp,origin:I.AGENT,status:p.error}}),bn("Error reported to customer",{"error.message":e.message})}}function $i(t,e,n,r,s){const o=Vs("browser-logs-sdk",e);o.setContextProvider(()=>{var a,u,c,l,d,f;return{application:{id:(a=Ze())===null||a===void 0?void 0:a.application_id},session:{id:(u=s.findTrackedSession())===null||u===void 0?void 0:u.id},view:{id:(l=(c=Ze())===null||c===void 0?void 0:c.view)===null||l===void 0?void 0:l.id},action:{id:(f=(d=Ze())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(Xe()){const a=Tt(),u=o.observable.subscribe(c=>a.send("internal_telemetry",c));i.push(()=>u.unsubscribe())}else{const a=kn(e,{endpoint:e.rumEndpointBuilder,encoder:Ye()},e.replica&&{endpoint:e.replica.rumEndpointBuilder,encoder:Ye()},n,r,s.expireObservable);i.push(()=>a.stop());const u=o.observable.subscribe(c=>a.add(c,Js(e)));i.push(()=>u.unsubscribe())}return Zs(),Qs(li(t)),{telemetry:o,stop:()=>{i.forEach(a=>a())}}}function Gi(t,e,n,r){const s=new ki,o=[];s.subscribe(1,f=>mn("logs",f));const i=Bi(s),a=vo(e),u=e.sessionStoreStrategyType&&!Xe()&&!Pn()?pi(e,r):Ei(e),{stop:c}=$i(t,e,i,a,u);o.push(()=>c()),Ai(e,s),Ii(e,s),_i(e,s),Ri(e,s);const{handleLog:l}=Di(s);if(bi(u,e,s,n,i),Xe())Fi(s);else{const{stop:f}=Mi(e,s,i,a,u);o.push(()=>f())}const d=Ni(u);return{handleLog:l,getInternalContext:d.get,stop:()=>{o.forEach(f=>f())}}}const de=hi(Gi);Fs(j(),"DD_LOGS",de);const x=class x{constructor(e,n,r,s,o){this.copy=()=>new x(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let a=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,x.toStr(i)},this.toFrames=i=>{let a=60,u=0;Math.floor(i)==60?(a=60,u=0):Math.floor(i)==59?(a=60,u=4):Math.floor(i)==30?(a=30,u=0):Math.floor(i)==29&&(a=30,u=2);let c=this.h,l=this.m,d=this.s,f=this.f,h=this.field;const m=c*60+l,y=(m-Math.floor(m/10))*u;return c*(a*3600)+l*(a*60)+d*a+(f*2+h)-y},this.addSeconds=i=>{let a=this.copy();return a.s+=i,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(i,a)=>{let u=this.toFrames(a);return u+=i,x.fromFrames(u,a)},this.subtractFrames=(i,a)=>this.addFrames(-i,a),this.h=e||0,this.m=n||0,this.s=r||0,this.f=s||0,this.field=o||0}static compare(e,n){return e.h!==n.h?e.h<n.h?-1:1:e.m!==n.m?e.m<n.m?-1:1:e.s!==n.s?e.s<n.s?-1:1:e.f!==n.f?e.f<n.f?-1:1:e.field!==n.field?e.field<n.field?-1:1:0}static generateTimecodeRange(e,n,r){const s=[];let o=e;for(;x.compare(o,n)<=0;)s.push(o),o=o.addSeconds(r);return s}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(e){return this.toFrames(e)*1e3/e}};x.calculateCurrentTimeCode=e=>{var d;if(!e.video||!e.clocker||!e.gameParams)throw new Error("OTTPlayer is not initialized");const n=e.video,r=e.clocker,s=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*s+r.syncPoint.frame;if(a===0||s===0)throw new Error("Current frame is 0 or fps is 0");const u=x.calculateCurrentOffset(a,(d=e.gameParams)==null?void 0:d.offsets);if(u===void 0)throw new Error("Offset is undefined");let c=Math.floor(a-u);return c<0&&(c+=5178816),c>=5178816&&(c-=5178816),x.fromFrames(c,s)},x.calculateCurrentOffset=(e,n)=>{for(let r=1;r<n.length;r++)if(e<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},x.fromFrames=(e,n)=>{let r=60,s=0;Math.floor(n)==60?(r=60,s=0):Math.floor(n)==59?(r=60,s=4):Math.floor(n)==30?(r=30,s=0):Math.floor(n)==29&&(r=30,s=2);let o=Math.floor(n*60),i=Math.floor(n*60*10),a=i*6,u=e,c=Math.floor(u/a);u-=c*a;let l=Math.floor(u/i);u-=l*i,u>=r*60&&(u+=s*(Math.floor((u-r*60)/o)+1));let d=Math.floor(u/(r*60));u-=d*(r*60);let f=Math.floor(u/r);u-=f*r;let h=u;d+=l*10;let m=0;return m=h%2,h=Math.floor(h/2),new x(c,d,f,h,m)},x.toStr=e=>{const n="_";let r=("0"+e.h).slice(-2)+n+("0"+e.m).slice(-2)+n+("0"+e.s).slice(-2)+n+("0"+e.f).slice(-2);return e.field&&(r+="_1"),r},x.fromStr=e=>{const r=e.split("_").map(Number);if(r.length==4){const[s,o,i,a]=r;return new x(s,o,i,a,0)}else if(r.length==5){const[s,o,i,a,u]=r;return new x(s,o,i,a,u)}else throw new Error("Invalid timecode format: "+e)},x.fromMetadata=e=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,r=e.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+e.timecode);const[,s,o,i,a,u]=r,c=Number(s),l=Number(o),d=Number(i),f=Number(a),h=u?Number(u):0;return new x(c,l,d,f,h)};let P=x;const g=class g{constructor(e){this.isLoggingOn=e.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&de.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),g.tracking.mac=r,g.tracking.dev=`${e.platform}_${e.browserName}`,g.beatHandle||(console.log("[Logger] Starting tracking beat"),g.beatHandle=window.setInterval(g.flushTracking,15e3))}static setMessagePort(e){this.messagePort=e}static getMessagePort(){return this.messagePort}setLoggingOn(e){this.isLoggingOn=e}setAttributes(e){g.processAttributes(e);for(const n in e)de.logger.setContextProperty(n,e[n])}info(e,n){e==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),e==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),e==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),e==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&g.processAttributes(n),this.isLoggingOn&&(de.logger.info(e,n),console.log("[Logger] Sending info: ",e))}error(e,n){n&&g.processAttributes(n),this.isLoggingOn&&(de.logger.error(e,n),g.tracking.err_time=Date.now().toFixed(0),g.tracking.err_desc=e+(n?` - ${JSON.stringify(n)}`:""),console.log("[Logger] Sending error: ",e))}warn(e,n){n&&g.processAttributes(n),this.isLoggingOn&&(de.logger.warn(e,n),console.log("[Logger] Sending warn: ",e))}handleMessageFromWorker(e){e.actionType==="INFO"?this.info(e.message,e.attributes):e.actionType==="ERROR"?this.error(e.message,e.attributes):e.actionType==="WARN"?this.warn(e.message,e.attributes):e.actionType==="SET_ATTRIBUTES"&&e.attributes&&this.setAttributes(e.attributes)}static setAttributes(e){g.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:e})}static info(e,n){g.messagePort.postMessage({type:"LOG",actionType:"INFO",message:e,attributes:n})}static error(e,n){g.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:e,attributes:n})}static warn(e,n){g.messagePort.postMessage({type:"LOG",actionType:"WARN",message:e,attributes:n})}static processAttributes(e){if(e.player_version&&(g.tracking.sdk=e.player_version),e.media_id&&(g.tracking.gid=e.media_id),e.game_id&&(g.tracking.buc=e.game_id),e.bb_session_id&&(g.tracking.sid=e.bb_session_id,console.log("[Logger] Setting bb_session_id:",g.tracking.sid)),e.last_timecode){const r=P.fromStr(e.last_timecode);g.tracking.tc=r.print(),g.lastTimecodeMillis=r.totalMilliseconds(59.94),g.lastTimecodeMillis&&g.lastZipMillis&&(g.tracking.cache=(g.lastZipMillis-g.lastTimecodeMillis).toFixed(0))}e.last_offset&&(g.tracking.off=e.last_offset),e.last_loading_zip&&(g.tracking.zip=e.last_loading_zip+".zip",g.lastZipMillis=P.fromStr(e.last_loading_zip).totalMilliseconds(59.94),g.lastTimecodeMillis&&g.lastZipMillis&&(g.tracking.cache=(g.lastZipMillis-g.lastTimecodeMillis).toFixed(0))),e.last_rendered_frame&&(g.tracking.aug_time=Date.now().toFixed(0)),e.asset&&(g.tracking.asset=e.asset)}static objectToQuery(e){return Object.entries(e).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(e,n){const r=new CustomEvent(e,{detail:n});this.eventTarget.dispatchEvent(r)}};g.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},g.lastTimecodeMillis=0,g.lastZipMillis=0,g.flushTracking=()=>{const e=Date.now().toFixed(0);g.tracking.now=e;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${g.objectToQuery(g.tracking)}`;console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),g.tracking.err_desc="",g.tracking.err_time=""};let C=g;const ji=`\nprecision highp float;\n\nattribute vec2 a_position; // pixel coords, 6 verts / quad\nattribute vec4 a_uv; // atlas UV (min_u, min_v, max_u, max_v)\nattribute mat3 a_transform; // transformation matrix for this vertex\n\nuniform vec2 u_resolution; // full frame size\n\nvarying vec2 v_maskUV; // for alpha mask\nvarying vec4 v_adUV; // atlas UV bounds\nvarying mat3 v_transform; // pass transform to fragment shader\n\nvoid main () {\n vec2 clipSpace = 2.0 * (a_position / u_resolution) - 1.0;\n gl_Position = vec4(clipSpace * vec2(1.0,-1.0), 0.0, 1.0);\n\n v_adUV = a_uv; // Pass through all 4 UV coordinates\n v_maskUV = a_position / u_resolution;\n v_transform = a_transform;\n}\n`,Wi=`\nprecision highp float;\n\nuniform sampler2D u_atlas; // packed logos\nuniform sampler2D u_alphaMask; // full-frame mask (changes every video frame)\nuniform float u_opacity;\nuniform vec2 u_resolution; // full frame size\n\nvarying vec4 v_adUV; // min_u, min_v, max_u, max_v\nvarying vec2 v_maskUV;\nvarying mat3 v_transform; // transformation matrix for this fragment\n\nconst float Directions = 16.0; // BLUR DIRECTIONS\nconst float QualityAd = 3.0; // BLUR QUALITY\nconst float BlurRadiusAd = 3.0;\n\n// Pi here is 2*pi = 6.283185..., so we can do 16 steps across 2*pi\nconst float Pi = 6.28318530718;\n\nvec4 BlurAd(sampler2D adTexture, vec2 adTexCoord) {\n // Convert our "BlurRadiusAd" to texture coords\n vec2 radius = BlurRadiusAd / u_resolution.xy;\n \n // Start by sampling once at the center\n vec4 resultColor = texture2D(adTexture, adTexCoord);\n int sampleCount = 1;\n\n // Convert float constants into integer loop bounds\n const int directions = int(Directions);\n const int quality = int(QualityAd);\n\n // For each direction around the circle...\n for (int d = 0; d < directions; d++) {\n // angle goes from 0 to 2*pi in increments of 2*pi/directions\n float angle = float(d) * (Pi / float(directions));\n\n // For each blur step outward in that direction\n for (int i = 1; i <= quality; i++) {\n // E.g. if quality=3, i goes 1..3\n float step = float(i) / float(quality);\n\n // offset is step fraction of the full radius, in polar coords\n vec2 offset = step * radius * vec2(cos(angle), sin(angle));\n\n // Accumulate that sample\n resultColor += texture2D(adTexture, adTexCoord + offset);\n sampleCount++;\n }\n }\n\n // Divide by the total sample count to average\n return resultColor / float(sampleCount);\n}\n\nvec2 transformPoint(vec2 point) {\n float x = (v_transform[0][0] * point.x + v_transform[0][1] * point.y + v_transform[0][2]) / \n (v_transform[2][0] * point.x + v_transform[2][1] * point.y + 1.0);\n float y = (v_transform[1][0] * point.x + v_transform[1][1] * point.y + v_transform[1][2]) / \n (v_transform[2][0] * point.x + v_transform[2][1] * point.y + 1.0);\n return vec2(x, y) / u_resolution;\n}\n\nvoid main () {\n // Transform the current position using the transformation matrix\n vec2 transformedUV = transformPoint(vec2(gl_FragCoord.x, u_resolution.y - gl_FragCoord.y));\n \n // If the transformed coordinate is outside [0,1], discard the fragment\n if(transformedUV.x < 0.0 || transformedUV.x > 1.0 || transformedUV.y < 0.0 || transformedUV.y > 1.0) {\n discard;\n }\n\n // Map the transformed coordinate to the atlas region\n vec2 atlasUV = mix(vec2(v_adUV.x, v_adUV.y), // min_u, min_v\n vec2(v_adUV.z, v_adUV.w), // max_u, max_v\n transformedUV); // interpolation factor\n \n float mask = texture2D(u_alphaMask, v_maskUV).r;\n vec4 ad = BlurAd(u_atlas, atlasUV);\n\n float a = ad.a * mask * u_opacity;\n gl_FragColor = vec4(ad.rgb * a, a);\n //gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); // Force black color for testing\n //gl_FragColor = texture2D(u_alphaMask, v_maskUV) * (1. + a * 0.); // Force alpha mask color for testing\n}\n`;function zi(t,e,n){let r=0,s=0;for(const o of Object.values(t)){const i=o.corners,a=Math.abs($n(i));if(!a)continue;const u=Xi(i,e,n),c=u.length>=3?Math.abs($n(u)):0;r+=c,s+=a}return{percentOfAd:s?r/s*100:0,percentOfScreen:r/(e*n)*100}}function $n(t){let e=0;for(let n=0,r=t.length-1;n<t.length;r=n++)e+=t[r].x*t[n].y-t[n].x*t[r].y;return e*.5}function Xi(t,e,n){const r=[{inside:o=>o.x>=0,inter:(o,i)=>({x:0,y:o.y+(i.y-o.y)*(0-o.x)/(i.x-o.x)})},{inside:o=>o.x<=e,inter:(o,i)=>({x:e,y:o.y+(i.y-o.y)*(e-o.x)/(i.x-o.x)})},{inside:o=>o.y>=0,inter:(o,i)=>({x:o.x+(i.x-o.x)*(0-o.y)/(i.y-o.y),y:0})},{inside:o=>o.y<=n,inter:(o,i)=>({x:o.x+(i.x-o.x)*(n-o.y)/(i.y-o.y),y:n})}];let s=t;for(const o of r){const i=s;if(s=[],!i.length)break;let a=i[i.length-1];for(const u of i){const c=o.inside(u),l=o.inside(a);c?(l||s.push(o.inter(a,u)),s.push(u)):l&&s.push(o.inter(a,u)),a=u}}return s}class Gn{constructor(e,n){this.logoToRegion=new Map,this.atlasDirty=!1,this.nextX=0,this.nextY=0,this.rowH=0,this.INITIAL_ATLAS_SIZE=256,this.ATLAS_SIZE=this.INITIAL_ATLAS_SIZE,this.queryInFlight=!1,this.GPUFrameTimeCount=0,this.GPUFrameTimeSum=0,this.avgGPUFrameTime=0,this.CPUFrameTimeCount=0,this.CPUFrameTimeSum=0,this.avgCPUFrameTime=0,this.compileShader=(r,s)=>{const o=this.gl,i=o.createShader(r);return o.shaderSource(i,s),o.compileShader(i),o.getShaderParameter(i,o.COMPILE_STATUS)?i:(console.error(`Error compiling shader: ${o.getShaderInfoLog(i)}`),o.deleteShader(i),null)},this.createTextureFromVideoFrame=r=>{const s=this.gl,o=s.createTexture();return s.bindTexture(s.TEXTURE_2D,o),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,r),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),o},this.deleteTexture=r=>{this.gl.deleteTexture(r)},this.options=n,this.renderer=e,this.gl=e.glContext,this.initTiming()}init(){this.initAtlas(),this.initBuffers(),this.initPrograms()}initPrograms(){const e=this.gl;this.program=this.linkProgram(ji,Wi),this.aPos=e.getAttribLocation(this.program,"a_position"),this.aUv=e.getAttribLocation(this.program,"a_uv"),this.aTransform=e.getAttribLocation(this.program,"a_transform"),this.uRes=e.getUniformLocation(this.program,"u_resolution"),this.uOpacity=e.getUniformLocation(this.program,"u_opacity"),this.uAtlas=e.getUniformLocation(this.program,"u_atlas"),this.uAlphaMask=e.getUniformLocation(this.program,"u_alphaMask"),e.useProgram(this.program)}linkProgram(e,n){const r=this.gl,s=this.compileShader(r.VERTEX_SHADER,e),o=this.compileShader(r.FRAGMENT_SHADER,n),i=r.createProgram();if(r.attachShader(i,s),r.attachShader(i,o),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS)){const a=r.getProgramInfoLog(i);throw console.error("WebGL link error: "+a),new Error("WebGL link error: "+a)}if(!r.getProgramParameter(i,r.LINK_STATUS)){const a=r.getProgramInfoLog(i);throw new Error("WebGL link error: "+a)}return i}drawAugmentation(e,n,r=1){var d;const s=performance.now();this.syncAtlasGL();const{pos:o,uv:i,transforms:a,vertCount:u}=this.buildQuadData(n);if(!u)return;if(!this.program||this.aPos===void 0||this.aUv===void 0||this.aTransform===void 0||!this.uRes||!this.uOpacity||!this.uAtlas||!this.uAlphaMask){w(this.options,"Errors")&&console.error("[Renderer] Program or attributes not initialized");return}const c=this.gl;c.useProgram(this.program),c.uniform2f(this.uRes,c.canvas.width,c.canvas.height),c.viewport(0,0,c.canvas.width,c.canvas.height),c.uniform1f(this.uOpacity,r),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,e),c.uniform1i(this.uAlphaMask,0),c.activeTexture(c.TEXTURE1),c.bindTexture(c.TEXTURE_2D,this.atlasTex),c.uniform1i(this.uAtlas,1),c.bindBuffer(c.ARRAY_BUFFER,this.posBuf),c.bufferData(c.ARRAY_BUFFER,o,c.DYNAMIC_DRAW),c.enableVertexAttribArray(this.aPos),c.vertexAttribPointer(this.aPos,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.uvBuf),c.bufferData(c.ARRAY_BUFFER,i,c.DYNAMIC_DRAW),c.enableVertexAttribArray(this.aUv),c.vertexAttribPointer(this.aUv,4,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.transformBuf),c.bufferData(c.ARRAY_BUFFER,a,c.DYNAMIC_DRAW);const l=9*4;for(let f=0;f<3;f++){const h=this.aTransform+f;c.enableVertexAttribArray(h),c.vertexAttribPointer(h,3,c.FLOAT,!1,l,f*3*4)}if(c.enable(c.BLEND),c.blendFunc(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),this.beginTimer(),c.drawArrays(c.TRIANGLES,0,u),this.endTimer(),this.measureLogoVisibility(n),(d=this.options.debug)!=null&&d.trackPerformance){const h=performance.now()-s;this.CPUFrameTimeCount++,this.CPUFrameTimeSum+=h,this.avgCPUFrameTime=this.CPUFrameTimeSum/this.CPUFrameTimeCount}}initBuffers(){const e=this.gl;this.posBuf=e.createBuffer(),this.uvBuf=e.createBuffer(),this.transformBuf=e.createBuffer(),this.fsPosBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.fsPosBuf),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,1,1,0,0,1,1,0,1]),e.STATIC_DRAW),this.fsUvBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.fsUvBuf),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,1,1,0,0,1,1,0,1]),e.STATIC_DRAW)}buildQuadData(e){const n=[],r=[],s=[];return Object.values(e).forEach(o=>{var c,l;const i=(l=(c=this.renderer.ads)==null?void 0:c.adMap.get(o.name))==null?void 0:l.name;if(!i)return;const a=this.logoToRegion.get(i);if(!a)return;const u=o.corners;n.push(u[0].x,u[0].y,u[1].x,u[1].y,u[2].x,u[2].y,u[0].x,u[0].y,u[2].x,u[2].y,u[3].x,u[3].y);for(let d=0;d<6;d++)r.push(a.u0,a.v0,a.u1,a.v1);for(let d=0;d<6;d++)s.push(...o.tranform)}),{pos:new Float32Array(n),uv:new Float32Array(r),transforms:new Float32Array(s),vertCount:n.length/2}}cleanGL(){this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}initAtlas(){this.atlasCanvas=new OffscreenCanvas(this.INITIAL_ATLAS_SIZE,this.INITIAL_ATLAS_SIZE),this.atlasCanvas.width=this.atlasCanvas.height=this.INITIAL_ATLAS_SIZE,this.atlasCtx=this.atlasCanvas.getContext("2d"),this.atlasTex=this.gl.createTexture(),this.atlasCtx.clearRect(0,0,this.INITIAL_ATLAS_SIZE,this.INITIAL_ATLAS_SIZE),this.syncAtlasGL()}getDims(e){if("width"in e&&"height"in e)return{w:e.width,h:e.height};const n=e;return{w:n.displayWidth??n.codedWidth,h:n.displayHeight??n.codedHeight}}calculateRequiredAtlasSize(e,n){let r=e*n;this.logoToRegion.forEach(o=>{const i=(o.u1-o.u0)*this.ATLAS_SIZE,a=(o.v1-o.v0)*this.ATLAS_SIZE;r+=i*a}),r*=1.2;let s=this.INITIAL_ATLAS_SIZE;for(;s*s<r;)s*=2;return s}resizeAtlas(e,n){const r=this.calculateRequiredAtlasSize(e,n);if(r<=this.ATLAS_SIZE)return;const s=new OffscreenCanvas(r,r),o=s.getContext("2d");o.clearRect(0,0,r,r),o.drawImage(this.atlasCanvas,0,0);const i=this.ATLAS_SIZE/r;this.ATLAS_SIZE=r,this.atlasCanvas=s,this.atlasCtx=o,this.logoToRegion.forEach((a,u)=>{const c={u0:a.u0*i,v0:a.v0*i,u1:a.u1*i,v1:a.v1*i};this.logoToRegion.set(u,c)}),this.syncAtlasGL()}addToAtlas(e,n){if(this.logoToRegion.has(e))return this.logoToRegion.get(e);const{w:r,h:s}=this.getDims(n);this.nextX+r>this.ATLAS_SIZE&&(this.nextX=0,this.nextY+=this.rowH,this.rowH=0),(this.nextY+s>this.ATLAS_SIZE||this.nextX+r>this.ATLAS_SIZE)&&this.resizeAtlas(r,s),this.atlasCtx.drawImage(n,this.nextX,this.nextY,r,s);const o={u0:this.nextX/this.ATLAS_SIZE,v0:this.nextY/this.ATLAS_SIZE,u1:(this.nextX+r)/this.ATLAS_SIZE,v1:(this.nextY+s)/this.ATLAS_SIZE};return this.logoToRegion.set(e,o),this.atlasDirty=!0,this.nextX+=r,this.rowH=Math.max(this.rowH,s),o}syncAtlasGL(){if(!this.atlasDirty)return;const e=this.gl;e.bindTexture(e.TEXTURE_2D,this.atlasTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.atlasCanvas),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.atlasDirty=!1}clearAtlas(){this.logoToRegion.clear(),this.nextX=this.nextY=this.rowH=0,this.atlasCtx.clearRect(0,0,this.ATLAS_SIZE,this.ATLAS_SIZE),this.atlasDirty=!0,this.syncAtlasGL()}generateAdTexture(e,n){C.setAttributes({asset:e}),this.addToAtlas(e,n)}measureLogoVisibility(e){const n=this.gl.canvas.width,r=this.gl.canvas.height,s=this.renderer.shot;if(!s)return;const{percentOfAd:o,percentOfScreen:i}=zi(e,n,r);s.frameCount++,s.sumPercentOfAd+=o,s.sumPercentOfScreen+=i,s.lastProcessingTime=performance.now()}initTiming(){var e;(e=this.options.debug)!=null&&e.trackPerformance&&(this.timerExt=this.gl.getExtension("EXT_disjoint_timer_query"),this.timerExt||console.warn("EXT_disjoint_timer_query not supported"))}beginTimer(){!this.timerExt||this.queryInFlight||(this.query=this.timerExt.createQueryEXT(),this.timerExt.beginQueryEXT(this.timerExt.TIME_ELAPSED_EXT,this.query))}endTimer(){if(!this.timerExt||!this.query)return;this.timerExt.endQueryEXT(this.timerExt.TIME_ELAPSED_EXT),this.queryInFlight=!0;const e=()=>{if(!this.queryInFlight)return;const n=this.timerExt.getQueryObjectEXT(this.query,this.timerExt.QUERY_RESULT_AVAILABLE_EXT),r=this.gl.getParameter(this.timerExt.GPU_DISJOINT_EXT);if(n&&!r){const o=this.timerExt.getQueryObjectEXT(this.query,this.timerExt.QUERY_RESULT_EXT)/1e6;this.GPUFrameTimeSum+=o,this.GPUFrameTimeCount++,this.avgGPUFrameTime=this.GPUFrameTimeSum/this.GPUFrameTimeCount,this.timerExt.deleteQueryEXT(this.query),this.queryInFlight=!1}else requestAnimationFrame(e)};requestAnimationFrame(e)}getAvgGPUFrameTime(){var e;if((e=this.options.debug)!=null&&e.trackPerformance){const n=this.avgGPUFrameTime;return this.GPUFrameTimeCount=0,this.GPUFrameTimeSum=0,this.avgGPUFrameTime=0,n}return 0}getAvgCPUFrameTime(){var e;if((e=this.options.debug)!=null&&e.trackPerformance){const n=this.avgCPUFrameTime;return this.CPUFrameTimeCount=0,this.CPUFrameTimeSum=0,this.avgCPUFrameTime=0,n}return 0}}const jn=["LeftTop","MidTopLeft","MidTopRight","RightTop","LeftBottom","MidBottomLeft","MidBottomRight","RightBottom"];class Wn{constructor(e,n){this.ads=[],this.getAds=async()=>{try{const s=await fetch("https://dwu3k7rrxk5s3.cloudfront.net"+"/profiles/geo/",{method:"GET",redirect:"follow",cache:"no-store"});if(console.log("[ADS] adListResponse: ",s),!s.ok){C.error("[ADS] Failed to fetch ad list"),this.options&&w(this.options,"Errors")&&console.error("[ADS] Failed to fetch ad list");return}const o=await s.json();console.log("[ADS] Current JSON with ads: ",o.rootAdPath);const i=o.rootAdPath;if(!i){C.error("rootAdPath is missing in the response"),this.options&&w(this.options,"Errors")&&console.error("[ADS] rootAdPath is missing in the response");return}if(this.lastJson===JSON.stringify(o))return;this.lastJson=JSON.stringify(o),this.ads=[],console.warn("[ADS] Fetching ad image from: ",i);const a=i,u=a.split("assets/")[1].split("?")[0],l=await(await fetch(a)).blob(),d=await createImageBitmap(l),f={name:a,imageUrl:a,image:d,adUrl:"https://www.BurgerKing.com/"};this.ads.push(f),this.setAd("LeftTop",0),this.setAd("RightBottom",0),this.setAd("MidBottomLeft",0),this.setAd("MidTopRight",0),this.uploadAdTextures()}catch{}finally{setTimeout(this.getAds,1e4)}},this.loadAdvImage=async r=>{const s=`#${r.name}`,o=r.url;if(s.indexOf(".json")>-1)return;const a=await(await fetch(o)).blob();return await createImageBitmap(a)},this.setAd=(r,s)=>{this.adMap.set(r,this.ads[s])},this.uploadAdTextures=()=>{this.webgl.clearAtlas(),this.adMap.forEach((r,s)=>{!r||!r.image||this.webgl.generateAdTexture(r.name,r.image)})},this.getAdURLAtCoord=(r,s,o)=>{let i;return Object.keys(r).forEach(a=>{const u=r[a].corners.map(c=>({x:c.x/s.width,y:c.y/s.height}));if(this.isPointInPlaceholder(u,o)){const c=r[a].name,l=this.adMap.get(c);console.log("ad: ",l),l&&(console.log("ad.url: ",l.adUrl),i=l.adUrl)}}),i},this.isPointInPlaceholder=(r,s)=>{let o=!1;const{x:i,y:a}=s,u=r.length;for(let c=0,l=u-1;c<u;l=c++){const d=r[c].x,f=r[c].y,h=r[l].x,m=r[l].y;f>a!=m>a&&i<(h-d)*(a-f)/(m-f)+d&&(o=!o)}return o},this.placeholderNames=jn,this.webgl=e,this.options=n,this.adMap=new Map,jn.forEach(r=>{this.adMap.set(r,void 0)}),this.getAds()}}class zn{constructor(e,n){this.renderDataMap=new Map,this.isRenderData=!1,this.state="OFF",this.opacity=0,this.lastStateUpdate=0,this.stateUpdateInterval=500,this.lastPerformanceCheck=performance.now(),this.setWebGLEventListeners=()=>{const r=this.glContext.canvas;r.addEventListener("webglcontextlost",s=>{console.warn("Context lost:",s),s.preventDefault()}),r.addEventListener("webglcontextrestored",()=>{console.log("Context restored!"),this.webgl=new Gn(this,this.options),this.ads=new Wn(this.webgl,this.options),this.webgl.init()})},this.addMetadataBatch=r=>{r.forEach(s=>{if(s.alphaMask){this.options&&w(this.options,"Renderer")&&console.log(`[RendererWorker] Creating texture for timeCode=${s.timecode}`);try{const o=this.webgl.createTextureFromVideoFrame(s.alphaMask),i=s.timecode,a={width:s.processingWidth,height:s.processingHeight},u={alphaMask:o,placeholders:s.placeholders,processingSize:a,isLive:s.isLive};this.renderDataMap.set(i,u),C.setAttributes({last_webgl_uploaded_frame:i})}catch{this.options&&w(this.options,"Errors")&&console.error(`[RendererWorker] Error creating texture for timeCode=${s.timecode}`)}finally{s.alphaMask.close()}}})},this.handleRenderDraw=(r,s)=>{var d,f,h,m,b;if(!this.streamData||!((d=this.ads)!=null&&d.ads))return;const o=this.renderDataMap.get(r);if(!!o!==this.isRenderData&&(o?(this.shot&&this.finalizeShot(this.shot,r),this.shot={shotId:crypto.randomUUID(),adURL:((f=this.ads.ads[0])==null?void 0:f.adUrl)||"",sumPercentOfScreen:0,sumPercentOfAd:0,frameCount:0,start:performance.now(),lastProcessingTime:performance.now()},C.info("didStartDrawingAugmentationMedia",{timecode:r,adID:this.shot.shotId,adURL:this.shot.adURL})):this.shot&&this.finalizeShot(this.shot,r),this.isRenderData=!!o),(o?o.isLive:!1)&&!!this.streamData.ottActions&&(this.streamData.ottActions.toggle[this.streamData.customerId]!==void 0?this.streamData.ottActions.toggle[this.streamData.customerId]&&this.streamData.ottActions.toggle.web:this.streamData.ottActions.toggle.web)?(this.state==="OFF"||this.state==="FADE_OUT")&&(this.state="FADE_IN"):(this.state==="ON"||this.state==="FADE_IN")&&(this.state="FADE_OUT"),!o)return;const u=o.alphaMask,c=o.placeholders,l=o.processingSize;if(!(!u||!c||!l)){if((this.glContext.canvas.width!==l.width||this.glContext.canvas.height!==l.height)&&(this.glContext.canvas.width=l.width,this.glContext.canvas.height=l.height),s!=0)if(s>0){const y=P.fromStr(r).addFrames(1,this.streamData.fps),D=(h=this.renderDataMap.get(P.toStr(y)))==null?void 0:h.placeholders;D&&Object.keys(D).forEach(v=>{v in c&&(c[v].tranform=c[v].tranform.map((Y,ve)=>Y*(1-s)+D[v].tranform[ve]*s))})}else{const y=Math.abs(s),D=P.fromStr(r).subtractFrames(1,this.streamData.fps),v=(m=this.renderDataMap.get(P.toStr(D)))==null?void 0:m.placeholders;v&&Object.keys(v).forEach(Y=>{Y in c&&(c[Y].tranform=c[Y].tranform.map((ve,It)=>v[Y].tranform[It]*(1-y)+ve*y))})}if(this.options&&w(this.options,"Renderer")&&console.log(`[Renderer] Render logic: binding texture for ${r}`),this.state==="FADE_IN"?(this.opacity===0&&(this.lastStateUpdate=performance.now(),this.opacity=.001),this.opacity=Math.min(1,this.opacity+(performance.now()-this.lastStateUpdate)/this.stateUpdateInterval),this.lastStateUpdate=performance.now(),this.opacity===1&&(this.state="ON")):this.state==="FADE_OUT"&&(this.opacity===1&&(this.lastStateUpdate=performance.now(),this.opacity=.999),this.opacity=Math.max(0,this.opacity-(performance.now()-this.lastStateUpdate)/this.stateUpdateInterval),this.lastStateUpdate=performance.now(),this.opacity===0&&(this.state="OFF")),C.setAttributes({last_rendered_frame:r,renderer_state:this.state}),this.webgl.drawAugmentation(u,c,this.opacity),this.options&&((b=this.options.debug)!=null&&b.trackPerformance)){const y=performance.now();y-this.lastPerformanceCheck>=this.options.PERFORMANCE_TRACKING_INTERVAL&&(this.trackPerformance(),this.lastPerformanceCheck=y)}}},this.handleRenderClear=()=>{this.opacity=0,this.state="OFF"},this.getAdURLByCoord=r=>{var u,c;if(!this.ads||!this.streamData||!this.streamData.timeCode||!this.renderDataMap)return null;const s=this.streamData.timeCode,o=(u=this.renderDataMap.get(s))==null?void 0:u.placeholders,i=(c=this.renderDataMap.get(s))==null?void 0:c.processingSize;if(!o||!i)return null;console.log("placeholders: ",o);const a=this.ads.getAdURLAtCoord(o,i,r);return console.log("url: ",a),a},this.deleteTexture=r=>{var o;const s=(o=this.renderDataMap.get(r))==null?void 0:o.alphaMask;s&&(this.webgl.deleteTexture(s),this.renderDataMap.delete(r))},this.deleteOldTextures=r=>{if(!this.streamData)return;const s=59.94,o=P.fromStr(r).totalMilliseconds(s);this.renderDataMap.forEach((i,a)=>{P.fromStr(a).totalMilliseconds(s)<o-100&&(this.options&&w(this.options,"Renderer")&&console.log(`[Renderer] Deleting old texture for timeCode=${a}`),this.webgl.deleteTexture(i.alphaMask),this.renderDataMap.delete(a))})},this.deleteAllTextures=()=>{this.renderDataMap.forEach((r,s)=>{this.webgl.deleteTexture(r.alphaMask),this.renderDataMap.delete(s)})},this.cleanGL=()=>{this.webgl.cleanGL()},this.updateStreamData=r=>{var o;const s=(o=this.streamData)==null?void 0:o.ottActions;this.streamData=r,s&&!r.ottActions&&(this.streamData.ottActions=s)},this.finalizeShot=(r,s)=>{r.end=r.lastProcessingTime,r.duration=r.end-r.start,C.info("didEndDrawingAugmentationMedia",{timecode:s,adID:r.shotId,adURL:r.adURL}),r.avaragePercentOfAd=r.sumPercentOfAd/r.frameCount,r.avaragePercentOfScreen=r.sumPercentOfScreen/r.frameCount,C.info("didRegisterShot",{adID:r.shotId,adURL:r.adURL,avaragePercentOfScreen:r.avaragePercentOfScreen.toFixed(2),avaragePercentOfAd:r.avaragePercentOfAd.toFixed(2),frameCount:r.frameCount,duration:r.duration.toFixed(0)}),this.shot=void 0},this.trackPerformance=()=>{const r=this.webgl.getAvgGPUFrameTime(),s=this.webgl.getAvgCPUFrameTime();Hi([{metric:"Rendering GPU time",value:r},{metric:"Rendering CPU time",value:s}],C.getMessagePort())},this.glContext=e,this.webgl=new Gn(this,n),this.options=n,this.ads=new Wn(this.webgl,n),this.webgl.init()}stop(){this.cleanGL(),this.deleteAllTextures()}}let Je=null,Qe=null,Xn=null,Lt=null,q=null,O=null,T,L,qn=0,Yn=0;self.onmessage=t=>{const{data:e}=t;if(e.type==="SET_LOGGER_PORT"&&(Lt=e.port,C.setMessagePort(e.port)),e.type==="INIT_OFFSCREEN"){const n=e.offscreen;if(T=e.options,q=n.getContext("webgl"),T&&w(T,"Renderer")&&console.log("[RendererWorker] Initializing OffscreenCanvas"),!q||q!=null&&q.isContextLost()){C.error("[RendererWorker] Failed to acquire WebGL context"),T&&w(T,"Errors")&&console.error("[RendererWorker] Failed to acquire WebGL context");return}O=new zn(q,T),T&&w(T,"Renderer")&&console.log("[RendererWorker] OffscreenCanvas initialized, gl context acquired")}if(e.type==="SET_DOWNLOADER_PORT"&&(Je=e.port,Je.onmessage=Zi),e.type==="SET_DECODER_PORT"&&(Qe=e.port,Qe.onmessage=Ki),e.type==="SET_ADAPTER_PORT"&&(Xn=e.port,Xn.onmessage=Ji),(e.type==="RENDERER_DRAW"||e.type==="RENDERER_CLEAR")&&Hn(e),e.type==="VIDEO_CLICK"&&O){const n=O.getAdURLByCoord(e.clickData);postMessage({type:"OPEN_URL",url:n})}if(e.type==="VIDEO_SEEKED"){if(!q||!T)return;O==null||O.stop(),O=new zn(q,T)}};function qi(){!Je||!L||Je.postMessage({type:"DOWNLOADER_INPUT",streamData:L})}function Yi(){!Qe||!L||Qe.postMessage({type:"DECODER_REQUEST",timeCode:L.timeCode,fps:L.fps})}function Hi(t,e){if(!Lt&&!e)return;const n=Lt||e,r={type:"TRACK_PERFORMANCE",data:t};n.postMessage(r)}function Hn(t){L=t.streamData,O?(L&&O.updateStreamData(L),O.cleanGL(),t.type==="RENDERER_CLEAR"&&O.handleRenderClear(),t.type==="RENDERER_DRAW"&&L&&(O.handleRenderDraw(L.timeCode,L.frameCorrection),O.deleteOldTextures(L.timeCode)),Vi()):T&&w(T,"Errors")&&console.error("[RendererWorker] WebGL context is not initialized.")}function Vi(){if(!T)return;const t=performance.now();t-qn>T.DOWNLOADER_UPDATE_FREQUENCY&&(qi(),qn=t),t-Yn>T.DECODER_UPDATE_FREQUENCY&&(Yi(),Yn=t)}function Ki(t){const{data:e}=t;if(e.type==="RENDERER_INPUT"){const n=e.batch;T&&w(T,"Renderer")&&console.log(`[RendererWorker] Received a batch of ${n.length} frames`),O&&O.addMetadataBatch(n)}}function Zi(t){if(!L)return;const{data:e}=t;T&&w(T,"Renderer")&&console.log("[RendererWorker] Message from Downloader:",t.data),e.type==="OTT_ACTIONS"&&(L.ottActions=e.ottActions)}function Ji(t){const{data:e}=t;(e.type==="RENDERER_DRAW"||e.type==="RENDERER_CLEAR")&&Hn(e)}self.onunhandledrejection=t=>{C.error("[RendererWorker] Unhandled rejection",{error:t.reason}),T&&(w(T,"Errors")&&console.error("[RendererWorker] Unhandled rejection:",t.reason),t.preventDefault())},self.onerror=t=>{C.error("[RendererWorker] Unhandled error",{error:t}),T&&(w(T,"Errors")&&console.error("[RendererWorker] Unhandled error:",t),t instanceof Event&&t.preventDefault())}})();\n',zt=typeof self<"u"&&self.Blob&&new Blob([$t],{type:"text/javascript;charset=utf-8"});function ir(t){let e;try{if(e=zt&&(self.URL||self.webkitURL).createObjectURL(zt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent($t),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const Gt='(function(){"use strict";const ee=(e,t)=>!e.debug||!e.debug.on?!1:e.debug[`log${t}`],Wn=e=>Math.abs(e-59.94005994005994)<20?59.94:Math.abs(e-29.97002997002997)<10?29.97:Math.abs(e-14.985014985014985)<8?14.98:0,_={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},L=console,W={};Object.keys(_).forEach(e=>{W[e]=L[e]});const fe="Datadog Browser SDK:",w={debug:W.debug.bind(L,fe),log:W.log.bind(L,fe),info:W.info.bind(L,fe),warn:W.warn.bind(L,fe),error:W.error.bind(L,fe)},Xe="https://docs.datadoghq.com",kt=`${Xe}/real_user_monitoring/browser/troubleshooting`,Oe="More details:";function At(e,t){return(...n)=>{try{return e(...n)}catch(r){w.error(t,r)}}}function ve(e){return e!==0&&Math.random()*100<=e}function Hn(e){return zn(e)&&e>=0&&e<=100}function zn(e){return typeof e=="number"}const pe=1e3,H=60*pe,Lt=60*H,Kn=365*(24*Lt);function me(){return new Date().getTime()}function F(){return me()}function Re(){return performance.now()}function $(){return{relative:Re(),timeStamp:F()}}function Vn(){return{relative:0,timeStamp:It()}}function qn(e,t){return t-e}function Yn(e,t){return e+t}function Jn(e){return e-It()}let Ze;function It(){return Ze===void 0&&(Ze=performance.timing.navigationStart),Ze}const I=1024,Mt=1024*I,Xn=/[^\\u0000-\\u007F]/;function Qe(e){return Xn.test(e)?window.TextEncoder!==void 0?new TextEncoder().encode(e).length:new Blob([e]).size:e.length}function Zn(e){return{...e}}function Pt(e,t){return Object.keys(e).some(n=>e[n]===t)}function ge(e){return Object.keys(e).length===0}function U(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let e=_dd_temp_;return delete Object.prototype._dd_temp_,typeof e!="object"&&(typeof self=="object"?e=self:typeof window=="object"?e=window:e={}),e}function te(e,t){const n=U();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=e[n.Zone.__symbol__(t)]),r||(r=e[t]),r}let xe,Nt=!1;function Qn(e){xe=e}function er(e){Nt=e}function tr(e,t,n){const r=n.value;n.value=function(...o){return(xe?b(r):r).apply(this,o)}}function b(e){return function(){return he(e,this,arguments)}}function he(e,t,n){try{return e.apply(t,n)}catch(r){nr(r)}}function nr(e){if(et(e),xe)try{xe(e)}catch(t){et(t)}}function et(...e){Nt&&w.error("[MONITOR]",...e)}function Se(e,t){return te(U(),"setTimeout")(b(e),t)}function Dt(e){te(U(),"clearTimeout")(e)}function tt(e,t){return te(U(),"setInterval")(b(e),t)}function Ft(e){te(U(),"clearInterval")(e)}class C{constructor(t){this.onFirstSubscribe=t,this.observers=[]}subscribe(t){return this.observers.push(t),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>t!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(t){this.observers.forEach(n=>n(t))}}function $t(...e){return new C(t=>{const n=e.map(r=>r.subscribe(o=>t.notify(o)));return()=>n.forEach(r=>r.unsubscribe())})}function Ut(e,t,n){let r=!1,o,s;return{throttled:(...i)=>{if(r){o=i;return}e(...i),r=!0,s=Se(()=>{o&&e(...o),r=!1,o=void 0},t)},cancel:()=>{Dt(s),r=!1,o=void 0}}}function B(){}function G(e){return e?(parseInt(e,10)^Math.random()*16>>parseInt(e,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,G)}const ke=/([\\w-]+)\\s*=\\s*([^;]+)/g;function rr(e,t){for(ke.lastIndex=0;;){const n=ke.exec(e);if(n){if(n[1]===t)return n[2]}else break}}function or(e){const t=new Map;for(ke.lastIndex=0;;){const n=ke.exec(e);if(n)t.set(n[1],n[2]);else break}return t}function sr(e,t,n=""){const r=e.charCodeAt(t-1),s=r>=55296&&r<=56319?t+1:t;return e.length<=s?e:`${e.slice(0,s)}${n}`}function ir(){return ar()===0}let Ae;function ar(){return Ae??(Ae=cr())}function cr(e=window){var t;const n=e.navigator.userAgent;return e.chrome||/HeadlessChrome/.test(n)?0:((t=e.navigator.vendor)===null||t===void 0?void 0:t.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function ye(e,t,n=0,r){const o=new Date;o.setTime(o.getTime()+n);const s=`expires=${o.toUTCString()}`,i=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",c=r&&r.secure?";secure":"",l=r&&r.partitioned?";partitioned":"";document.cookie=`${e}=${t};${s};path=/;samesite=${i}${a}${c}${l}`}function nt(e){return rr(document.cookie,e)}let rt;function z(e){return rt||(rt=or(document.cookie)),rt.get(e)}function Bt(e,t){ye(e,"",0,t)}function ur(e){if(document.cookie===void 0||document.cookie===null)return!1;try{const t=`dd_cookie_test_${G()}`,n="test";ye(t,n,H,e);const r=nt(t)===n;return Bt(t,e),r}catch(t){return w.error(t),!1}}let ot;function lr(){if(ot===void 0){const e=`dd_site_test_${G()}`,t="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!nt(e);)r=`${n.pop()}.${r}`,ye(e,t,pe,{domain:r});Bt(e,{domain:r}),ot=r}return ot}const ne="_dd_s";function Le(e){return Object.values(e)}function dr(e){return Object.entries(e)}const st=4*Lt,Gt=15*H,fr=Kn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},jt=/^([a-zA-Z]+)=([a-z0-9-]+)$/,it="&";function pr(e){return!!e&&(e.indexOf(it)!==-1||jt.test(e))}const mr="1";function K(e,t){const n={isExpired:mr};return t.trackAnonymousUser&&(e!=null&&e.anonymousId?n.anonymousId=e==null?void 0:e.anonymousId:n.anonymousId=G()),n}function Ie(e){return ge(e)}function Wt(e){return!Ie(e)}function Me(e){return e.isExpired!==void 0||!gr(e)}function gr(e){return(e.created===void 0||me()-Number(e.created)<st)&&(e.expire===void 0||me()<Number(e.expire))}function Ht(e){e.expire=String(me()+Gt)}function at(e){return dr(e).map(([t,n])=>t==="anonymousId"?`aid=${n}`:`${t}=${n}`).join(it)}function zt(e){const t={};return pr(e)&&e.split(it).forEach(n=>{const r=jt.exec(n);if(r!==null){const[,o,s]=r;o==="aid"?t.anonymousId=s:t[o]=s}}),t}const hr="_dd",Sr="_dd_r",yr="_dd_l",br="rum",Er="logs";function Tr(e){if(!z(ne)){const n=z(hr),r=z(Sr),o=z(yr),s={};n&&(s.id=n),o&&/^[01]$/.test(o)&&(s[Er]=o),r&&/^[012]$/.test(r)&&(s[br]=r),Wt(s)&&(Ht(s),e.persistSession(s))}}function Kt(e){const t=vr(e);return ur(t)?{type:be.COOKIE,cookieOptions:t}:void 0}function _r(e,t){const n={isLockEnabled:ir(),persistSession:wr(t),retrieveSession:Or,expireSession:r=>Cr(t,r,e)};return Tr(n),n}function wr(e){return t=>{ye(ne,at(t),Gt,e)}}function Cr(e,t,n){const r=K(t,n);ye(ne,at(r),n.trackAnonymousUser?fr:st,e)}function Or(){const e=nt(ne);return zt(e)}function vr(e){const t={};return t.secure=!!e.useSecureSessionCookie||!!e.usePartitionedCrossSiteSessionCookie,t.crossSite=!!e.usePartitionedCrossSiteSessionCookie,t.partitioned=!!e.usePartitionedCrossSiteSessionCookie,e.trackSessionAcrossSubdomains&&(t.domain=lr()),t}const Rr="_dd_test_";function Vt(){try{const e=G(),t=`${Rr}${e}`;localStorage.setItem(t,e);const n=localStorage.getItem(t);return localStorage.removeItem(t),e===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function xr(e){return{isLockEnabled:!1,persistSession:qt,retrieveSession:kr,expireSession:t=>Ar(t,e)}}function qt(e){localStorage.setItem(ne,at(e))}function kr(){const e=localStorage.getItem(ne);return zt(e)}function Ar(e,t){qt(K(e,t))}const Lr=10,Ir=100,Yt=[];let Pe;function V(e,t,n=0){var r;const{isLockEnabled:o,persistSession:s,expireSession:i}=t,a=f=>s({...f,lock:l}),c=()=>{const f=t.retrieveSession(),g=f.lock;return f.lock&&delete f.lock,{session:f,lock:g}};if(Pe||(Pe=e),e!==Pe){Yt.push(e);return}if(o&&n>=Ir){Jt(t);return}let l,u=c();if(o){if(u.lock){Ne(e,t,n);return}if(l=G(),a(u.session),u=c(),u.lock!==l){Ne(e,t,n);return}}let d=e.process(u.session);if(o&&(u=c(),u.lock!==l)){Ne(e,t,n);return}if(d&&(Me(d)?i(d):(Ht(d),o?a(d):s(d))),o&&!(d&&Me(d))){if(u=c(),u.lock!==l){Ne(e,t,n);return}s(u.session),d=u.session}(r=e.after)===null||r===void 0||r.call(e,d||u.session),Jt(t)}function Ne(e,t,n){Se(()=>{V(e,t,n+1)},Lr)}function Jt(e){Pe=void 0;const t=Yt.shift();t&&V(t,e)}const Xt=pe;function Mr(e){switch(e.sessionPersistence){case be.COOKIE:return Kt(e);case be.LOCAL_STORAGE:return Vt();case void 0:{let t=Kt(e);return!t&&e.allowFallbackToLocalStorage&&(t=Vt()),t}default:w.error(`Invalid session persistence \'${String(e.sessionPersistence)}\'`)}}function Pr(e,t,n,r){const o=new C,s=new C,i=new C,a=e.type===be.COOKIE?_r(t,e.cookieOptions):xr(t),{expireSession:c}=a,l=tt(m,Xt);let u;p();const{throttled:d,cancel:f}=Ut(()=>{V({process:y=>{if(Ie(y))return;const de=E(y);return v(de),de},after:y=>{Wt(y)&&!R()&&Gn(y),u=y}},a)},Xt);function g(){V({process:y=>R()?E(y):void 0},a)}function m(){V({process:y=>Me(y)?K(y,t):void 0,after:E},a)}function E(y){return Me(y)&&(y=K(y,t)),R()&&(D(y)?le():(i.notify({previousState:u,newState:y}),u=y)),y}function p(){V({process:y=>{if(Ie(y))return K(y,t)},after:y=>{u=y}},a)}function v(y){if(Ie(y))return!1;const{trackingType:de,isTracked:Wi}=r(y[n]);y[n]=de,delete y.isExpired,Wi&&!y.id&&(y.id=G(),y.created=String(me()))}function R(){return u[n]!==void 0}function D(y){return u.id!==y.id||u[n]!==y[n]}function le(){u=K(u,t),s.notify()}function Gn(y){u=y,o.notify()}function jn(y){V({process:de=>({...de,...y}),after:E},a)}return{expandOrRenewSession:d,expandSession:g,getSession:()=>u,renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i,restartSession:p,expire:()=>{f(),c(u),E(K(u,t))},stop:()=>{Ft(l)},updateSessionState:jn}}const ct={GRANTED:"granted",NOT_GRANTED:"not-granted"};function Nr(e){const t=new C;return{tryToInit(n){e||(e=n)},update(n){e=n,t.notify()},isGranted(){return e===ct.GRANTED},observable:t}}function q(e,t,n){if(typeof e!="object"||e===null)return JSON.stringify(e);const r=re(Object.prototype),o=re(Array.prototype),s=re(Object.getPrototypeOf(e)),i=re(e);try{return JSON.stringify(e,t,n)}catch{return"<error: unable to serialize object>"}finally{r(),o(),s(),i()}}function re(e){const t=e,n=t.toJSON;return n?(delete t.toJSON,()=>{t.toJSON=n}):B}function ut(e){return Dr(e,location.href).href}function Dr(e,t){const n=Fr();if(n)try{return t!==void 0?new n(e,t):new n(e)}catch(s){throw new Error(`Failed to construct URL: ${String(s)} ${q({url:e,base:t})}`)}if(t===void 0&&!/:/.test(e))throw new Error(`Invalid URL: \'${e}\'`);let r=document;const o=r.createElement("a");if(t!==void 0){r=document.implementation.createHTMLDocument("");const s=r.createElement("base");s.href=t,r.head.appendChild(s),r.body.appendChild(o)}return o.href=e,o}const Zt=URL;let De;function Fr(){if(De===void 0)try{De=new Zt("http://test/path").href==="http://test/path"}catch{De=!1}return De?Zt:void 0}const $r="datad0g.com",Ur="dd0g-gov.com",oe="datadoghq.com",Br="ddog-gov.com",Gr="pci.browser-intake-datadoghq.com",jr=["ddsource","ddtags"];function Ee(e,t,n){const r=Wr(e,t);return{build(o,s){const i=zr(e,t,n,o,s);return r(i)},urlPrefix:r(""),trackType:t}}function Wr(e,t){const n=`/api/v2/${t}`,r=e.proxy;if(typeof r=="string"){const s=ut(r);return i=>`${s}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof r=="function")return s=>r({path:n,parameters:s});const o=Hr(t,e);return s=>`https://${o}${n}?${s}`}function Hr(e,t){const{site:n=oe,internalAnalyticsSubdomain:r}=t;if(e==="logs"&&t.usePciIntake&&n===oe)return Gr;if(r&&n===oe)return`${r}.${oe}`;if(n===Ur)return`http-intake.logs.${n}`;const o=n.split("."),s=o.pop();return`browser-intake-${o.join("-")}.${s}`}function zr({clientToken:e,internalAnalyticsSubdomain:t},n,r,o,{retry:s,encoding:i}){const a=["sdk_version:6.5.0",`api:${o}`].concat(r);s&&a.push(`retry_count:${s.count}`,`retry_after:${s.lastFailureStatus}`);const c=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${e}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${G()}`];return i&&c.push(`dd-evp-encoding=${i}`),n==="rum"&&c.push(`batch_time=${F()}`),t&&c.reverse(),c.join("&")}const Kr=200;function Vr(e){const{env:t,service:n,version:r,datacenter:o}=e,s=[];return t&&s.push(Fe("env",t)),n&&s.push(Fe("service",n)),r&&s.push(Fe("version",r)),o&&s.push(Fe("datacenter",o)),s}function Fe(e,t){const n=Kr-e.length-1;(t.length>n||qr(t))&&w.warn(`${e} value doesn\'t meet tag requirements and will be sanitized. ${Oe} ${Xe}/getting_started/tagging/#defining-tags`);const r=t.replace(/,/g,"_");return`${e}:${r}`}function qr(e){return Yr()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(e):!1}function Yr(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function Jr(e){const t=e.site||oe,n=Vr(e),r=Xr(e,n);return{replica:Zr(e,n),site:t,...r}}function Xr(e,t){return{logsEndpointBuilder:Ee(e,"logs",t),rumEndpointBuilder:Ee(e,"rum",t),sessionReplayEndpointBuilder:Ee(e,"replay",t)}}function Zr(e,t){if(!e.replica)return;const n={...e,site:oe,clientToken:e.replica.clientToken},r={logsEndpointBuilder:Ee(n,"logs",t),rumEndpointBuilder:Ee(n,"rum",t)};return{applicationId:e.replica.applicationId,...r}}function Qr(e){return jr.every(t=>e.includes(t))}function lt(e,t){return e!=null&&typeof e!="string"?(w.error(`${t} must be defined as a string`),!1):!0}function eo(e){return e&&typeof e=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(e)?(w.error(`Site should be a valid Datadog site. ${Oe} ${Xe}/getting_started/site/.`),!1):!0}function $e(e,t){return e!==void 0&&!Hn(e)?(w.error(`${t} Sample Rate should be a number between 0 and 100`),!1):!0}function to(e){var t,n,r,o,s,i;if(!e||!e.clientToken){w.error("Client Token is not configured, we will not send any data.");return}if(!(!eo(e.site)||!$e(e.sessionSampleRate,"Session")||!$e(e.telemetrySampleRate,"Telemetry")||!$e(e.telemetryConfigurationSampleRate,"Telemetry Configuration")||!$e(e.telemetryUsageSampleRate,"Telemetry Usage")||!lt(e.version,"Version")||!lt(e.env,"Env")||!lt(e.service,"Service"))){if(e.trackingConsent!==void 0&&!Pt(ct,e.trackingConsent)){w.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:e.beforeSend&&At(e.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:Mr(e),sessionSampleRate:(t=e.sessionSampleRate)!==null&&t!==void 0?t:100,telemetrySampleRate:(n=e.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=e.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(o=e.telemetryUsageSampleRate)!==null&&o!==void 0?o:5,service:e.service||void 0,silentMultipleInit:!!e.silentMultipleInit,allowUntrustedEvents:!!e.allowUntrustedEvents,trackingConsent:(s=e.trackingConsent)!==null&&s!==void 0?s:ct.GRANTED,trackAnonymousUser:(i=e.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!e.storeContextsAcrossPages,batchBytesLimit:16*I,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*pe,batchMessagesLimit:50,messageBytesLimit:256*I,...Jr(e)}}}function no(e){return{session_sample_rate:e.sessionSampleRate,telemetry_sample_rate:e.telemetrySampleRate,telemetry_configuration_sample_rate:e.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:e.telemetryUsageSampleRate,use_before_send:!!e.beforeSend,use_partitioned_cross_site_session_cookie:e.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:e.useSecureSessionCookie,use_proxy:!!e.proxy,silent_multiple_init:e.silentMultipleInit,track_session_across_subdomains:e.trackSessionAcrossSubdomains,track_anonymous_user:e.trackAnonymousUser,session_persistence:e.sessionPersistence,allow_fallback_to_local_storage:!!e.allowFallbackToLocalStorage,store_contexts_across_pages:!!e.storeContextsAcrossPages,allow_untrusted_events:!!e.allowUntrustedEvents,tracking_consent:e.trackingConsent}}var dt;(function(e){e.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",e.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(dt||(dt={}));const Qt=new Set;function ro(e){Array.isArray(e)&&oo(e.filter(t=>Pt(dt,t)))}function oo(e){e.forEach(t=>{Qt.add(t)})}function so(){return Qt}const Te="?";function M(e){const t=[];let n=ft(e,"stack");const r=String(e);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`\n`).forEach(o=>{const s=co(o)||lo(o)||po(o)||ho(o);s&&(!s.func&&s.line&&(s.func=Te),t.push(s))}),{message:ft(e,"message"),name:ft(e,"name"),stack:t}}const en="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",se="(?::(\\\\d+))",io=new RegExp(`^\\\\s*at (.*?) ?\\\\(${en}${se}?${se}?\\\\)?\\\\s*$`,"i"),ao=new RegExp(`\\\\((\\\\S*)${se}${se}\\\\)`);function co(e){const t=io.exec(e);if(!t)return;const n=t[2]&&t[2].indexOf("native")===0,r=t[2]&&t[2].indexOf("eval")===0,o=ao.exec(t[2]);return r&&o&&(t[2]=o[1],t[3]=o[2],t[4]=o[3]),{args:n?[t[2]]:[],column:t[4]?+t[4]:void 0,func:t[1]||Te,line:t[3]?+t[3]:void 0,url:n?void 0:t[2]}}const uo=new RegExp(`^\\\\s*at ?${en}${se}?${se}??\\\\s*$`,"i");function lo(e){const t=uo.exec(e);if(t)return{args:[],column:t[3]?+t[3]:void 0,func:Te,line:t[2]?+t[2]:void 0,url:t[1]}}const fo=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function po(e){const t=fo.exec(e);if(t)return{args:[],column:t[4]?+t[4]:void 0,func:t[1]||Te,line:+t[3],url:t[2]}}const mo=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,go=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function ho(e){const t=mo.exec(e);if(!t)return;const n=t[3]&&t[3].indexOf(" > eval")>-1,r=go.exec(t[3]);return n&&r&&(t[3]=r[1],t[4]=r[2],t[5]=void 0),{args:t[2]?t[2].split(","):[],column:t[5]?+t[5]:void 0,func:t[1]||Te,line:t[4]?+t[4]:void 0,url:t[3]}}function ft(e,t){if(typeof e!="object"||!e||!(t in e))return;const n=e[t];return typeof n=="string"?n:void 0}function So(e,t,n,r){const o=[{url:t,column:r,line:n}],{name:s,message:i}=bo(e);return{name:s,message:i,stack:o}}const yo=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function bo(e){let t,n;return{}.toString.call(e)==="[object String]"&&([,t,n]=yo.exec(e)),{name:t,message:n}}function Ue(e){const n=new Error(e);n.name="HandlingStack";let r;return he(()=>{const o=M(n);o.stack=o.stack.slice(2),r=Y(o)}),r}function Y(e){let t=tn(e);return e.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,o=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",s=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";t+=`\n at ${r}${o} @ ${n.url}${s}${i}`}),t}function tn(e){return`${e.name||"Error"}: ${e.message}`}function J(e,t,n,{computeHandlingStack:r}={}){let o=e[t];if(typeof o!="function")if(t in e&&t.startsWith("on"))o=B;else return{stop:B};let s=!1;const i=function(){if(s)return o.apply(this,arguments);const a=Array.from(arguments);let c;he(n,null,[{target:this,parameters:a,onPostCall:u=>{c=u},handlingStack:r?Ue("instrumented method"):void 0}]);const l=o.apply(this,a);return c&&he(c,null,[l]),l};return e[t]=i,{stop:()=>{s=!0,e[t]===i&&(e[t]=o)}}}const Eo=220*I,To="$",_o=3;function P(e,t=Eo){const n=re(Object.prototype),r=re(Array.prototype),o=[],s=new WeakMap,i=pt(e,To,void 0,o,s),a=JSON.stringify(i);let c=a?a.length:0;if(c>t){gt(t,"discarded",e);return}for(;o.length>0&&c<t;){const l=o.shift();let u=0;if(Array.isArray(l.source))for(let d=0;d<l.source.length;d++){const f=pt(l.source[d],l.path,d,o,s);if(f!==void 0?c+=JSON.stringify(f).length:c+=4,c+=u,u=1,c>t){gt(t,"truncated",e);break}l.target[d]=f}else for(const d in l.source)if(Object.prototype.hasOwnProperty.call(l.source,d)){const f=pt(l.source[d],l.path,d,o,s);if(f!==void 0&&(c+=JSON.stringify(f).length+u+d.length+_o,u=1),c>t){gt(t,"truncated",e);break}l.target[d]=f}}return n(),r(),i}function pt(e,t,n,r,o){const s=Oo(e);if(!s||typeof s!="object")return wo(s);const i=mt(s);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const a=e;if(o.has(a))return`[Reference seen at ${o.get(a)}]`;const c=n!==void 0?`${t}.${n}`:t,l=Array.isArray(s)?[]:{};return o.set(a,c),r.push({source:s,target:l,path:c}),l}function wo(e){return typeof e=="bigint"?`[BigInt] ${e.toString()}`:typeof e=="function"?`[Function] ${e.name||"unknown"}`:typeof e=="symbol"?`[Symbol] ${e.description||e.toString()}`:e}function mt(e){try{if(e instanceof Event)return Co(e);if(e instanceof RegExp)return`[RegExp] ${e.toString()}`;const n=Object.prototype.toString.call(e).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function Co(e){return{type:e.type,isTrusted:e.isTrusted,currentTarget:e.currentTarget?mt(e.currentTarget):null,target:e.target?mt(e.target):null}}function Oo(e){const t=e;if(t&&typeof t.toJSON=="function")try{return t.toJSON()}catch{}return e}function gt(e,t,n){w.warn(`The data provided has been ${t} as it is over the limit of ${e} characters:`,n)}const nn="No stack, consider using an instance of Error";function rn({stackTrace:e,originalError:t,handlingStack:n,componentStack:r,startClocks:o,nonErrorPrefix:s,source:i,handling:a}){const c=j(t),l=vo(e,c,s,t),u=Ro(c,e)?Y(e):nn,d=c?an(t,i):void 0,f=e?e.name:void 0,g=on(t),m=sn(t);return{startClocks:o,source:i,handling:a,handlingStack:n,componentStack:r,originalError:t,type:f,message:l,stack:u,causes:d,fingerprint:g,context:m}}function vo(e,t,n,r){return e!=null&&e.message&&(e!=null&&e.name)?e.message:t?"Empty message":`${n} ${q(P(r))}`}function Ro(e,t){return t===void 0?!1:e?!0:t.stack.length>0&&(t.stack.length>1||t.stack[0].url!==void 0)}function on(e){return j(e)&&"dd_fingerprint"in e?String(e.dd_fingerprint):void 0}function sn(e){if(e!==null&&typeof e=="object"&&"dd_context"in e)return e.dd_context}function xo(e){var t;return(t=/@ (.+)/.exec(e))===null||t===void 0?void 0:t[1]}function j(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}function an(e,t){let n=e;const r=[];for(;j(n==null?void 0:n.cause)&&r.length<10;){const o=M(n.cause);r.push({message:n.cause.message,source:t,type:o==null?void 0:o.name,stack:Y(o)}),n=n.cause}return r.length?r:void 0}const x={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function ko(e){const t=(o,s)=>{const i=rn({stackTrace:o,originalError:s,startClocks:$(),nonErrorPrefix:"Uncaught",source:x.SOURCE,handling:"unhandled"});e.notify(i)},{stop:n}=Ao(t),{stop:r}=Lo(t);return{stop:()=>{n(),r()}}}function Ao(e){return J(window,"onerror",({parameters:[t,n,r,o,s]})=>{let i;j(s)?i=M(s):i=So(t,n,r,o),e(i,s??t)})}function Lo(e){return J(window,"onunhandledrejection",({parameters:[t]})=>{const n=t.reason||"Empty reason",r=M(n);e(r,n)})}function Io(e){const t={version:"6.5.0",onReady(n){n()},...e};return Object.defineProperty(t,"_setDebug",{get(){return er},enumerable:!1}),t}function Mo(e,t,n){const r=e[t];r&&!r.q&&r.version&&w.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),e[t]=n,r&&r.q&&r.q.forEach(o=>At(o,"onReady callback threw an error:")())}function cn(e,t){t.silentMultipleInit||w.error(`${e} is already initialized.`)}function X(e,t,n,r,o){return ht(e,t,[n],r,o)}function ht(e,t,n,r,{once:o,capture:s,passive:i}={}){const a=b(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!e.allowUntrustedEvents||(o&&d(),r(f))}),c=i?{capture:s,passive:i}:s,l=window.EventTarget&&t instanceof EventTarget?window.EventTarget.prototype:t,u=te(l,"addEventListener");n.forEach(f=>u.call(t,f,a,c));function d(){const f=te(l,"removeEventListener");n.forEach(g=>f.call(t,g,a,c))}return{stop:d}}const Be={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function Po(e,t){const n=[];t.includes(Be.cspViolation)&&n.push(Do(e));const r=t.filter(o=>o!==Be.cspViolation);return r.length&&n.push(No(r)),$t(...n)}function No(e){return new C(t=>{if(!window.ReportingObserver)return;const n=b((o,s)=>o.forEach(i=>t.notify(Fo(i)))),r=new window.ReportingObserver(n,{types:e,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function Do(e){return new C(t=>{const{stop:n}=X(e,document,"securitypolicyviolation",r=>{t.notify($o(r))});return n})}function Fo(e){const{type:t,body:n}=e;return un({type:n.id,message:`${t}: ${n.message}`,originalError:e,stack:ln(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function $o(e){const t=`\'${e.blockedURI}\' blocked by \'${e.effectiveDirective}\' directive`;return un({type:e.effectiveDirective,message:`${Be.cspViolation}: ${t}`,originalError:e,csp:{disposition:e.disposition},stack:ln(e.effectiveDirective,e.originalPolicy?`${t} of the policy "${sr(e.originalPolicy,100,"...")}"`:"no policy",e.sourceFile,e.lineNumber,e.columnNumber)})}function un(e){return{startClocks:$(),source:x.REPORT,handling:"unhandled",...e}}function ln(e,t,n,r,o){return n?Y({name:e,message:t,stack:[{func:"?",url:n,line:r??void 0,column:o??void 0}]}):void 0}function dn(e,t){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:e,payload:t})}function fn(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Ge(e,t,n=Uo()){if(t===void 0)return e;if(typeof t!="object"||t===null)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const o=t.flags||[t.global?"g":"",t.ignoreCase?"i":"",t.multiline?"m":"",t.sticky?"y":"",t.unicode?"u":""].join("");return new RegExp(t.source,o)}if(n.hasAlreadyBeenSeen(t))return;if(Array.isArray(t)){const o=Array.isArray(e)?e:[];for(let s=0;s<t.length;++s)o[s]=Ge(o[s],t[s],n);return o}const r=fn(e)==="object"?e:{};for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=Ge(r[o],t[o],n));return r}function pn(e){return Ge(void 0,e)}function ie(...e){let t;for(const n of e)n!=null&&(t=Ge(t,n));return t}function Uo(){if(typeof WeakSet<"u"){const t=new WeakSet;return{hasAlreadyBeenSeen(n){const r=t.has(n);return r||t.add(n),r}}}const e=[];return{hasAlreadyBeenSeen(t){const n=e.indexOf(t)>=0;return n||e.push(t),n}}}function Bo(){var e;const t=window.navigator;return{status:t.onLine?"connected":"not_connected",interfaces:t.connection&&t.connection.type?[t.connection.type]:void 0,effective_type:(e=t.connection)===null||e===void 0?void 0:e.effectiveType}}function Go(e){const t=new Set;return e.forEach(n=>t.add(n)),Array.from(t)}function mn(e,t){const n=e.indexOf(t);n>=0&&e.splice(n,1)}const jo=500;function gn(){const e=[];return{add:o=>{e.push(o)>jo&&e.splice(0,1)},remove:o=>{mn(e,o)},drain:o=>{e.forEach(s=>s(o)),e.length=0}}}const Z={log:"log",configuration:"configuration",usage:"usage"},Wo=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Ho=[Br];let hn=gn(),ae=e=>{hn.add(()=>ae(e))};function zo(e,t){let n;const r=new C,o=new Set,s=!Ho.includes(t.site)&&ve(t.telemetrySampleRate),i={[Z.log]:s,[Z.configuration]:s&&ve(t.telemetryConfigurationSampleRate),[Z.usage]:s&&ve(t.telemetryUsageSampleRate)},a=Ko();ae=l=>{const u=q(l);if(i[l.type]&&o.size<t.maxTelemetryEventsPerPage&&!o.has(u)){const d=c(e,l,a);r.notify(d),dn("telemetry",d),o.add(u)}},Qn(yn);function c(l,u,d){return ie({type:"telemetry",date:F(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:ie(u,{runtime_env:d,connectivity:Bo(),sdk_setup:"npm"}),experimental_features:Array.from(so())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:r,enabled:s}}function Ko(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Vo(){hn.drain()}function qo(e){return e.site===$r}function Sn(e,t){et(_.debug,e,t),ae({type:Z.log,message:e,status:"debug",...t})}function yn(e,t){ae({type:Z.log,status:"error",...Xo(e),...t})}function Yo(e){ae({type:Z.configuration,configuration:e})}function Jo(e){ae({type:Z.usage,usage:e})}function Xo(e){if(j(e)){const t=M(e);return{error:{kind:t.name,stack:Y(Zo(t))},message:t.message}}return{error:{stack:nn},message:`Uncaught ${q(e)}`}}function Zo(e){return e.stack=e.stack.filter(t=>!t.url||Wo.some(n=>t.url.startsWith(n))),e}const _e=1/0,Qo=H;let we=null;const je=new Set;function es(){je.forEach(e=>e())}function ts({expireDelay:e,maxEntries:t}){let n=[];const r=[];we||(we=tt(()=>es(),Qo));const o=()=>{const g=Re()-e;for(;n.length>0&&n[n.length-1].endTime<g;){const m=n.pop();m&&r.push(m.startTime)}};je.add(o);function s(g,m){const E={value:g,startTime:m,endTime:_e,remove:()=>{mn(n,E)},close:p=>{E.endTime=p}};return t&&n.length>=t&&n.pop(),n.unshift(E),E}function i(g=_e,m={returnInactive:!1}){for(const E of n)if(E.startTime<=g){if(m.returnInactive||g<=E.endTime)return E.value;break}}function a(g){const m=n[0];m&&m.endTime===_e&&m.close(g)}function c(g=_e,m=0){const E=Yn(g,m);return n.filter(p=>p.startTime<=E&&g<=p.endTime).map(p=>p.value)}function l(){return n.map(({startTime:g,endTime:m,value:E})=>({startTime:g,endTime:m===_e?"Infinity":m,value:E}))}function u(){return r}function d(){n=[]}function f(){je.delete(o),je.size===0&&we&&(Ft(we),we=null)}return{add:s,find:i,closeActive:a,findAll:c,reset:d,stop:f,getAllEntries:l,getDeletedEntries:u}}const ns=H,rs=st;function os(e,t,n,r){const o=new C,s=new C,i=Pr(e.sessionStoreStrategyType,e,t,n),a=ts({expireDelay:rs});i.renewObservable.subscribe(()=>{a.add(c(),Re()),o.notify()}),i.expireObservable.subscribe(()=>{s.notify(),a.closeActive(Re())}),i.expandOrRenewSession(),a.add(c(),Vn().relative),r.observable.subscribe(()=>{r.isGranted()?i.expandOrRenewSession():i.expire()}),ss(e,()=>{r.isGranted()&&i.expandOrRenewSession()}),is(e,()=>i.expandSession()),as(e,()=>i.restartSession());function c(){return{id:i.getSession().id,trackingType:i.getSession()[t],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(l,u)=>a.find(l,u),renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function ss(e,t){ht(e,window,["click","touchstart","keydown","scroll"],t,{capture:!0,passive:!0})}function is(e,t){const n=()=>{document.visibilityState==="visible"&&t()};X(e,document,"visibilitychange",n),tt(n,ns)}function as(e,t){X(e,window,"resume",t,{capture:!0})}function bn(e){return e>=500}function cs(e){try{return e.clone()}catch{return}}const us=80*I,ls=32,En=3*Mt,ds=H,Tn=pe;function _n(e,t,n,r,o){t.transportStatus===0&&t.queuedPayloads.size()===0&&t.bandwidthMonitor.canHandle(e)?Cn(e,t,n,{onSuccess:()=>On(0,t,n,r,o),onFailure:()=>{t.queuedPayloads.enqueue(e),wn(t,n,r,o)}}):t.queuedPayloads.enqueue(e)}function wn(e,t,n,r){e.transportStatus===2&&Se(()=>{const o=e.queuedPayloads.first();Cn(o,e,t,{onSuccess:()=>{e.queuedPayloads.dequeue(),e.currentBackoffTime=Tn,On(1,e,t,n,r)},onFailure:()=>{e.currentBackoffTime=Math.min(ds,e.currentBackoffTime*2),wn(e,t,n,r)}})},e.currentBackoffTime)}function Cn(e,t,n,{onSuccess:r,onFailure:o}){t.bandwidthMonitor.add(e),n(e,s=>{t.bandwidthMonitor.remove(e),fs(s)?(t.transportStatus=t.bandwidthMonitor.ongoingRequestCount>0?1:2,e.retry={count:e.retry?e.retry.count+1:1,lastFailureStatus:s.status},o()):(t.transportStatus=0,r())})}function On(e,t,n,r,o){e===0&&t.queuedPayloads.isFull()&&!t.queueFullReported&&(o({message:`Reached max ${r} events size queued for upload: ${En/Mt}MiB`,source:x.AGENT,startClocks:$()}),t.queueFullReported=!0);const s=t.queuedPayloads;for(t.queuedPayloads=vn();s.size()>0;)_n(s.dequeue(),t,n,r,o)}function fs(e){return e.type!=="opaque"&&(e.status===0&&!navigator.onLine||e.status===408||e.status===429||bn(e.status))}function ps(){return{transportStatus:0,currentBackoffTime:Tn,bandwidthMonitor:ms(),queuedPayloads:vn(),queueFullReported:!1}}function vn(){const e=[];return{bytesCount:0,enqueue(t){this.isFull()||(e.push(t),this.bytesCount+=t.bytesCount)},first(){return e[0]},dequeue(){const t=e.shift();return t&&(this.bytesCount-=t.bytesCount),t},size(){return e.length},isFull(){return this.bytesCount>=En}}}function ms(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(e){return this.ongoingRequestCount===0||this.ongoingByteCount+e.bytesCount<=us&&this.ongoingRequestCount<ls},add(e){this.ongoingRequestCount+=1,this.ongoingByteCount+=e.bytesCount},remove(e){this.ongoingRequestCount-=1,this.ongoingByteCount-=e.bytesCount}}}function gs(e,t,n){const r=ps(),o=(s,i)=>ys(e,t,s,i);return{send:s=>{_n(s,r,o,e.trackType,n)},sendOnExit:s=>{hs(e,t,s)}}}function hs(e,t,n){if(!!navigator.sendBeacon&&n.bytesCount<t)try{const s=e.build("beacon",n);if(navigator.sendBeacon(s,n.data))return}catch(s){Ss(s)}const o=e.build("xhr",n);St(o,n.data)}let Rn=!1;function Ss(e){Rn||(Rn=!0,yn(e))}function ys(e,t,n,r){if(bs()&&n.bytesCount<t){const s=e.build("fetch",n);fetch(s,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(b(i=>r==null?void 0:r({status:i.status,type:i.type})),b(()=>{const i=e.build("xhr",n);St(i,n.data,r)}))}else{const s=e.build("xhr",n);St(s,n.data,r)}}function bs(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function St(e,t,n){const r=new XMLHttpRequest;r.open("POST",e,!0),t instanceof Blob&&r.setRequestHeader("Content-Type",t.type),X({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(t)}function yt(){const e=Es();if(e)return{getCapabilities(){var t;return JSON.parse(((t=e.getCapabilities)===null||t===void 0?void 0:t.call(e))||"[]")},getPrivacyLevel(){var t;return(t=e.getPrivacyLevel)===null||t===void 0?void 0:t.call(e)},getAllowedWebViewHosts(){return JSON.parse(e.getAllowedWebViewHosts())},send(t,n,r){const o=r?{id:r}:void 0;e.send(JSON.stringify({eventType:t,event:n,view:o}))}}}function We(e){var t;e===void 0&&(e=(t=U().location)===null||t===void 0?void 0:t.hostname);const n=yt();return!!n&&n.getAllowedWebViewHosts().some(r=>e===r||e.endsWith(`.${r}`))}function Es(){return U().DatadogEventBridge}const He={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function Ts(e){return new C(t=>{const{stop:n}=ht(e,window,["visibilitychange","freeze"],o=>{o.type==="visibilitychange"&&document.visibilityState==="hidden"?t.notify({reason:He.HIDDEN}):o.type==="freeze"&&t.notify({reason:He.FROZEN})},{capture:!0}),r=X(e,window,"beforeunload",()=>{t.notify({reason:He.UNLOADING})}).stop;return()=>{n(),r()}})}function _s(e){return Le(He).includes(e)}function ws({encoder:e,request:t,flushController:n,messageBytesLimit:r}){let o={};const s=n.flushObservable.subscribe(d=>u(d));function i(d,f,g){n.notifyBeforeAddMessage(f),g!==void 0?(o[g]=d,n.notifyAfterAddMessage()):e.write(e.isEmpty?d:`\n${d}`,m=>{n.notifyAfterAddMessage(m-f)})}function a(d){return d!==void 0&&o[d]!==void 0}function c(d){const f=o[d];delete o[d];const g=e.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(g)}function l(d,f){const g=q(d),m=e.estimateEncodedBytesCount(g);if(m>=r){w.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${Oe} ${kt}/#technical-limitations`);return}a(f)&&c(f),i(g,m,f)}function u(d){const f=Le(o).join(`\n`);o={};const g=_s(d.reason),m=g?t.sendOnExit:t.send;if(g&&e.isAsync){const E=e.finishSync();E.outputBytesCount&&m(xn(E));const p=[E.pendingData,f].filter(Boolean).join(`\n`);p&&m({data:p,bytesCount:Qe(p)})}else f&&e.write(e.isEmpty?f:`\n${f}`),e.finish(E=>{m(xn(E))})}return{flushController:n,add:l,upsert:l,stop:s.unsubscribe}}function xn(e){let t;return typeof e.output=="string"?t=e.output:t=new Blob([e.output],{type:"text/plain"}),{data:t,bytesCount:e.outputBytesCount,encoding:e.encoding}}function Cs({messagesLimit:e,bytesLimit:t,durationLimit:n,pageExitObservable:r,sessionExpireObservable:o}){const s=r.subscribe(m=>u(m.reason)),i=o.subscribe(()=>u("session_expire")),a=new C(()=>()=>{s.unsubscribe(),i.unsubscribe()});let c=0,l=0;function u(m){if(l===0)return;const E=l,p=c;l=0,c=0,g(),a.notify({reason:m,messagesCount:E,bytesCount:p})}let d;function f(){d===void 0&&(d=Se(()=>{u("duration_limit")},n))}function g(){Dt(d),d=void 0}return{flushObservable:a,get messagesCount(){return l},notifyBeforeAddMessage(m){c+m>=t&&u("bytes_limit"),l+=1,c+=m,f()},notifyAfterAddMessage(m=0){c+=m,l>=e?u("messages_limit"):c>=t&&u("bytes_limit")},notifyAfterRemoveMessage(m){c-=m,l-=1,l===0&&g()}}}function kn(e,t,n,r,o,s,i=ws){const a=l(e,t),c=n&&l(e,n);function l(u,{endpoint:d,encoder:f}){return i({encoder:f,request:gs(d,u.batchBytesLimit,r),flushController:Cs({messagesLimit:u.batchMessagesLimit,bytesLimit:u.batchBytesLimit,durationLimit:u.flushTimeout,pageExitObservable:o,sessionExpireObservable:s}),messageBytesLimit:u.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(u,d=!0){a.add(u),c&&d&&c.add(n.transformMessage?n.transformMessage(u):u)},upsert:(u,d)=>{a.upsert(u,d),c&&c.upsert(n.transformMessage?n.transformMessage(u):u,d)},stop:()=>{a.stop(),c&&c.stop()}}}function ze(){let e="",t=0;return{isAsync:!1,get isEmpty(){return!e},write(n,r){const o=Qe(n);t+=o,e+=n,r&&r(o)},finish(n){n(this.finishSync())},finishSync(){const n={output:e,outputBytesCount:t,rawBytesCount:t,pendingData:""};return e="",t=0,n},estimateEncodedBytesCount(n){return n.length}}}class Os{constructor(){this.callbacks={}}notify(t,n){const r=this.callbacks[t];r&&r.forEach(o=>o(n))}subscribe(t,n){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(n),{unsubscribe:()=>{this.callbacks[t]=this.callbacks[t].filter(r=>n!==r)}}}}function vs(e,t,n){let r=0,o=!1;return{isLimitReached(){if(r===0&&Se(()=>{r=0},H),r+=1,r<=t||o)return o=!1,!1;if(r===t+1){o=!0;try{n({message:`Reached max number of ${e}s by minute: ${t}`,source:x.AGENT,startClocks:$()})}finally{o=!1}}return!0}}}let bt;const Et=new WeakMap;function Rs(e){return bt||(bt=xs(e)),bt}function xs(e){return new C(t=>{const{stop:n}=J(XMLHttpRequest.prototype,"open",ks),{stop:r}=J(XMLHttpRequest.prototype,"send",s=>{As(s,e,t)},{computeHandlingStack:!0}),{stop:o}=J(XMLHttpRequest.prototype,"abort",Ls);return()=>{n(),r(),o()}})}function ks({target:e,parameters:[t,n]}){Et.set(e,{state:"open",method:String(t).toUpperCase(),url:ut(String(n))})}function As({target:e,handlingStack:t},n,r){const o=Et.get(e);if(!o)return;const s=o;s.state="start",s.startClocks=$(),s.isAborted=!1,s.xhr=e,s.handlingStack=t;let i=!1;const{stop:a}=J(e,"onreadystatechange",()=>{e.readyState===XMLHttpRequest.DONE&&c()}),c=()=>{if(l(),a(),i)return;i=!0;const u=o;u.state="complete",u.duration=qn(s.startClocks.timeStamp,F()),u.status=e.status,r.notify(Zn(u))},{stop:l}=X(n,e,"loadend",c);r.notify(s)}function Ls({target:e}){const t=Et.get(e);t&&(t.isAborted=!0)}let Tt;function An(){return Tt||(Tt=Is()),Tt}function Is(){return new C(e=>{if(!window.fetch)return;const{stop:t}=J(window,"fetch",n=>Ms(n,e),{computeHandlingStack:!0});return t})}function Ms({parameters:e,onPostCall:t,handlingStack:n},r){const[o,s]=e;let i=s&&s.method;i===void 0&&o instanceof Request&&(i=o.method);const a=i!==void 0?String(i).toUpperCase():"GET",c=o instanceof Request?o.url:ut(String(o)),l=$(),u={state:"start",init:s,input:o,method:a,startClocks:l,url:c,handlingStack:n};r.notify(u),e[0]=u.input,e[1]=u.init,t(d=>Ps(r,d,u))}function Ps(e,t,n){const r=n;function o(s){r.state="resolve",Object.assign(r,s),e.notify(r)}t.then(b(s=>{o({response:s,responseType:s.type,status:s.status,isAborted:!1})}),b(s=>{var i,a;o({status:0,isAborted:((a=(i=r.init)===null||i===void 0?void 0:i.signal)===null||a===void 0?void 0:a.aborted)||s instanceof DOMException&&s.code===DOMException.ABORT_ERR,error:s})}))}let _t={};function Ns(e){const t=e.map(n=>(_t[n]||(_t[n]=Ds(n)),_t[n]));return $t(...t)}function Ds(e){return new C(t=>{const n=L[e];return L[e]=(...r)=>{n.apply(console,r);const o=Ue("console error");he(()=>{t.notify(Fs(r,e,o))})},()=>{L[e]=n}})}function Fs(e,t,n){const r=e.map(s=>$s(s)).join(" ");let o;if(t===_.error){const s=e.find(j);o={stack:s?Y(M(s)):void 0,fingerprint:on(s),causes:s?an(s,"console"):void 0,startClocks:$(),message:r,source:x.CONSOLE,handling:"handled",handlingStack:n,context:sn(s)}}return{api:t,message:r,error:o,handlingStack:n}}function $s(e){return typeof e=="string"?P(e):j(e)?tn(M(e)):q(P(e),void 0,2)}function Us(e){const t=fn(e)==="object";return t||w.error("Unsupported context:",e),t}function wt(e,t,n){const r={...e};for(const[o,{required:s,type:i}]of Object.entries(t))i==="string"&&o in r&&(r[o]=String(r[o])),s&&!(o in e)&&w.warn(`The property ${o} of ${n} is required; context will not be sent to the intake.`);return r}function Ke(e="",{customerDataTracker:t,propertiesConfig:n={}}={}){let r={};const o=new C,s={getContext:()=>pn(r),setContext:i=>{Us(i)?(r=P(wt(i,n,e)),t==null||t.updateCustomerData(r)):s.clearContext(),o.notify()},setContextProperty:(i,a)=>{r=P(wt({...r,[i]:a},n,e)),t==null||t.updateCustomerData(r),o.notify()},removeContextProperty:i=>{delete r[i],t==null||t.updateCustomerData(r),wt(r,n,e),o.notify()},clearContext:()=>{r={},t==null||t.resetCustomerData(),o.notify()},changeObservable:o};return s}const Bs="_dd_c",Gs=[];function Ct(e,t,n,r){const o=js(n,r);Gs.push(X(e,window,"storage",({key:l})=>{o===l&&i()})),t.changeObservable.subscribe(a);const s=ie(c(),t.getContext());ge(s)||t.setContext(s);function i(){t.setContext(c())}function a(){localStorage.setItem(o,JSON.stringify(t.getContext()))}function c(){const l=localStorage.getItem(o);return l?JSON.parse(l):{}}}function js(e,t){return`${Bs}_${e}_${t}`}const Ws=3*I,Hs=16*I,zs=200;function Ks(e=2){const t=new Map;let n=!1;function r(o=0){if(n||e===0)return;const s=e===2?Ws:Hs;let i=o;t.forEach(a=>{i+=a.getBytesCount()}),i>s&&(Vs(s),n=!0)}return{createDetachedTracker:()=>{const o=Ln(()=>r(o.getBytesCount()));return o},getOrCreateTracker:o=>(t.has(o)||t.set(o,Ln(r)),t.get(o)),setCompressionStatus:o=>{e===0&&(e=o,r())},getCompressionStatus:()=>e,stop:()=>{t.forEach(o=>o.stop()),t.clear()}}}function Ln(e){let t=0;const{throttled:n,cancel:r}=Ut(s=>{t=Qe(q(s)),e()},zs),o=()=>{r(),t=0};return{updateCustomerData:s=>{ge(s)?o():n(s)},resetCustomerData:o,getBytesCount:()=>t,stop:()=>{r()}}}function Vs(e){w.warn(`Customer data exceeds the recommended ${e/I}KiB threshold. ${Oe} ${kt}/#customer-data-exceeds-the-recommended-threshold-warning`)}function qs(e,t,n){const r=e.getReader(),o=[];let s=0;i();function i(){r.read().then(b(c=>{if(c.done){a();return}o.push(c.value),s+=c.value.length,s>n.bytesLimit?a():i()}),b(c=>t(c)))}function a(){r.cancel().catch(B);let c,l;{let u;if(o.length===1)u=o[0];else{u=new Uint8Array(s);let d=0;o.forEach(f=>{u.set(f,d),d+=f.length})}c=u.slice(0,n.bytesLimit),l=u.length>n.bytesLimit}t(void 0,c,l)}}const Ys="datadog-synthetics-public-id",Js="datadog-synthetics-result-id",Xs="datadog-synthetics-injects-rum";function In(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||z(Xs))}function Zs(){const e=window._DATADOG_SYNTHETICS_PUBLIC_ID||z(Ys);return typeof e=="string"?e:void 0}function Qs(){const e=window._DATADOG_SYNTHETICS_RESULT_ID||z(Js);return typeof e=="string"?e:void 0}function Ve(e,t,n){const r=n.getHandler(),o=Array.isArray(r)?r:[r];return Mn[e]>=Mn[n.getLevel()]&&o.includes(t)}const S={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Mn={[S.ok]:0,[S.debug]:1,[S.info]:2,[S.notice]:4,[S.warn]:5,[S.error]:6,[S.critical]:7,[S.alert]:8,[S.emerg]:9};function qe(e,{includeMessage:t=!1}={}){return{stack:e.stack,kind:e.type,message:t?e.message:void 0,causes:e.causes,fingerprint:e.fingerprint,handling:e.handling}}var ei=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};const Ce={console:"console",http:"http",silent:"silent"},ti=Object.keys(S);let A=class{constructor(t,n,r,o=Ce.http,s=S.debug,i={}){this.handleLogStrategy=t,this.handlerType=o,this.level=s,this.contextManager=Ke("logger",{customerDataTracker:n}),this.contextManager.setContext(i),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(t,n,r=S.info,o,s){const i=P(n);let a;if(o!=null){const c=rn({stackTrace:j(o)?M(o):void 0,originalError:o,nonErrorPrefix:"Provided",source:x.LOGGER,handling:"handled",startClocks:$()});a=ie({error:qe(c,{includeMessage:!0})},i)}else a=i;this.handleLogStrategy({message:P(t),context:a,status:r},this,s)}log(t,n,r=S.info,o){let s;Ve(r,Ce.http,this)&&(s=Ue("log")),this.logImplementation(t,n,r,o,s)}setContext(t){this.contextManager.setContext(t)}getContext(){return this.contextManager.getContext()}setContextProperty(t,n){this.contextManager.setContextProperty(t,n)}removeContextProperty(t){this.contextManager.removeContextProperty(t)}clearContext(){this.contextManager.clearContext()}setHandler(t){this.handlerType=t}getHandler(){return this.handlerType}setLevel(t){this.level=t}getLevel(){return this.level}};ei([tr],A.prototype,"logImplementation",null),A.prototype.ok=N(S.ok),A.prototype.debug=N(S.debug),A.prototype.info=N(S.info),A.prototype.notice=N(S.notice),A.prototype.warn=N(S.warn),A.prototype.error=N(S.error),A.prototype.critical=N(S.critical),A.prototype.alert=N(S.alert),A.prototype.emerg=N(S.emerg);function N(e){return function(t,n,r){let o;Ve(e,Ce.http,this)&&(o=Ue("log")),this.logImplementation(t,n,e,r,o)}}function ni(e,t,n){return{view:{referrer:document.referrer,url:window.location.href},context:e.getContext(),user:t.getContext(),account:n.getContext()}}const ri=32*I;function oi(e){e.usePciIntake===!0&&e.site&&e.site!=="datadoghq.com"&&w.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const t=to(e),n=Pn(e.forwardConsoleLogs,Le(_),"Forward Console Logs"),r=Pn(e.forwardReports,Le(Be),"Forward Reports");if(!(!t||!n||!r))return e.forwardErrorsToLogs&&!n.includes(_.error)&&n.push(_.error),{forwardErrorsToLogs:e.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:ri,...t}}function Pn(e,t,n){if(e===void 0)return[];if(!(e==="all"||Array.isArray(e)&&e.every(r=>t.includes(r)))){w.error(`${n} should be "all" or an array with allowed values "${t.join(\'", "\')}"`);return}return e==="all"?t:Go(e)}function si(e){const t=no(e);return{forward_errors_to_logs:e.forwardErrorsToLogs,forward_console_logs:e.forwardConsoleLogs,forward_reports:e.forwardReports,use_pci_intake:e.usePciIntake,...t}}function ii(e,t,n){const r=gn();let o,s;const i=t.observable.subscribe(a);function a(){if(!s||!o||!t.isGranted())return;i.unsubscribe();const c=n(o,s);r.drain(c)}return{init(c){if(!c){w.error("Missing configuration");return}if(ro(c.enableExperimentalFeatures),We()&&(c=ai(c)),o=c,s){cn("DD_LOGS",c);return}const l=oi(c);l&&(s=l,An().subscribe(B),t.tryToInit(l.trackingConsent),a())},get initConfiguration(){return o},getInternalContext:B,handleLog(c,l,u,d=e(),f=F()){r.add(g=>g.handleLog(c,l,u,d,f))}}}function ai(e){return{...e,clientToken:"empty"}}const Ot="logs";function ci(e){const t=Ks(),n=Ke("global context",{customerDataTracker:t.getOrCreateTracker(2)}),r=Ke("user",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),o=Ke("account",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),s=Nr();function i(){return ni(n,r,o)}let a=ii(i,s,(u,d)=>{u.storeContextsAcrossPages&&(Ct(d,n,Ot,2),Ct(d,r,Ot,1),Ct(d,o,Ot,4));const f=e(u,d,i,s);return a=ui(u,f),f});const c={},l=new A((...u)=>a.handleLog(...u),t.createDetachedTracker());return Io({logger:l,init:b(u=>a.init(u)),setTrackingConsent:b(u=>{s.update(u),Jo({feature:"set-tracking-consent",tracking_consent:u})}),getGlobalContext:b(()=>n.getContext()),setGlobalContext:b(u=>n.setContext(u)),setGlobalContextProperty:b((u,d)=>n.setContextProperty(u,d)),removeGlobalContextProperty:b(u=>n.removeContextProperty(u)),clearGlobalContext:b(()=>n.clearContext()),createLogger:b((u,d={})=>(c[u]=new A((...f)=>a.handleLog(...f),t.createDetachedTracker(),P(u),d.handler,d.level,P(d.context)),c[u])),getLogger:b(u=>c[u]),getInitConfiguration:b(()=>pn(a.initConfiguration)),getInternalContext:b(u=>a.getInternalContext(u)),setUser:b(r.setContext),getUser:b(r.getContext),setUserProperty:b(r.setContextProperty),removeUserProperty:b(r.removeContextProperty),clearUser:b(r.clearContext),setAccount:b(o.setContext),getAccount:b(o.getContext),setAccountProperty:b(o.setContextProperty),removeAccountProperty:b(o.removeContextProperty),clearAccount:b(o.clearContext)})}function ui(e,t){return{init:n=>{cn("DD_LOGS",n)},initConfiguration:e,...t}}const li="logs";function di(e,t){const n=os(e,li,r=>pi(e,r),t);return{findTrackedSession:(r,o={returnInactive:!1})=>{const s=n.findSession(r,o);return s&&s.trackingType==="1"?{id:s.id,anonymousId:s.anonymousId}:void 0},expireObservable:n.expireObservable}}function fi(e){const n=Nn(e)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new C}}function Nn(e){return ve(e.sessionSampleRate)?"1":"0"}function pi(e,t){const n=mi(t)?t:Nn(e);return{trackingType:n,isTracked:n==="1"}}function mi(e){return e==="0"||e==="1"}let Dn=!1;function Ye(e){const t=window;if(In()){const r=n(t.DD_RUM_SYNTHETICS);return!r&&!Dn&&(Dn=!0,Sn("Logs sent before RUM is injected by the synthetics worker",{testId:Zs(),resultId:Qs()})),r}return n(t.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(e)}}function gi(e,t,n,r,o){const s=ti.concat(["custom"]),i={};s.forEach(a=>{i[a]=vs(a,t.eventRateLimiterThreshold,o)}),n.subscribe(0,({rawLogsEvent:a,messageContext:c=void 0,savedCommonContext:l=void 0,domainContext:u})=>{var d,f;const g=Jn(a.date),m=e.findTrackedSession(g);if(!e.findTrackedSession(g,{returnInactive:!0}))return;const p=l||r();let v;!ge(p.account)&&p.account.id&&(v=p.account),m&&m.anonymousId&&!p.user.anonymous_id&&(p.user.anonymous_id=m.anonymousId);const R=ie({service:t.service,session_id:m?m.id:void 0,session:m?{id:m.id}:void 0,usr:ge(p.user)?void 0:p.user,account:v,view:p.view},p.context,Ye(g),a,c);((d=t.beforeSend)===null||d===void 0?void 0:d.call(t,R,u))===!1||R.origin!==x.AGENT&&((f=i[R.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,R)})}const hi={[_.log]:S.info,[_.debug]:S.debug,[_.info]:S.info,[_.warn]:S.warn,[_.error]:S.error};function Si(e,t){const n=Ns(e.forwardConsoleLogs).subscribe(r=>{var o;const s={rawLogsEvent:{date:F(),message:r.message,origin:x.CONSOLE,error:r.error&&qe(r.error),status:hi[r.api]},messageContext:(o=r.error)===null||o===void 0?void 0:o.context,domainContext:{handlingStack:r.handlingStack}};t.notify(0,s)});return{stop:()=>{n.unsubscribe()}}}function yi(e,t){const n=Po(e,e.forwardReports).subscribe(r=>{let o=r.message,s;const i=r.originalError.type==="deprecation"?S.warn:S.error;i===S.error?s=qe(r):r.stack&&(o+=` Found in ${xo(r.stack)}`),t.notify(0,{rawLogsEvent:{date:F(),message:o,origin:x.REPORT,error:s,status:i}})});return{stop:()=>{n.unsubscribe()}}}function bi(e,t){if(!e.forwardErrorsToLogs)return{stop:B};const n=Rs(e).subscribe(s=>{s.state==="complete"&&o("xhr",s)}),r=An().subscribe(s=>{s.state==="resolve"&&o("fetch",s)});function o(s,i){!Qr(i.url)&&(wi(i)||bn(i.status))&&("xhr"in i?Ei(i.xhr,e,a):i.response?_i(i.response,e,a):i.error&&Ti(i.error,e,a));function a(c){const l={isAborted:i.isAborted,handlingStack:i.handlingStack};t.notify(0,{rawLogsEvent:{message:`${Ci(s)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:c||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:S.error,origin:x.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function Ei(e,t,n){typeof e.response=="string"?n(vt(e.response,t)):n(e.response)}function Ti(e,t,n){n(vt(Y(M(e)),t))}function _i(e,t,n){const r=cs(e);!r||!r.body?n():window.TextDecoder?Oi(r.body,t.requestErrorResponseLengthLimit,(o,s)=>{n(o?`Unable to retrieve response: ${o}`:s)}):r.text().then(b(o=>n(vt(o,t))),b(o=>n(`Unable to retrieve response: ${o}`)))}function wi(e){return e.status===0&&e.responseType!=="opaque"}function vt(e,t){return e.length>t.requestErrorResponseLengthLimit?`${e.substring(0,t.requestErrorResponseLengthLimit)}...`:e}function Ci(e){return e==="xhr"?"XHR":"Fetch"}function Oi(e,t,n){qs(e,(r,o,s)=>{if(r)n(r);else{let i=new TextDecoder().decode(o);s&&(i+="..."),n(void 0,i)}},{bytesLimit:t,collectStreamBody:!0})}function vi(e,t){if(!e.forwardErrorsToLogs)return{stop:B};const n=new C,{stop:r}=ko(n),o=n.subscribe(s=>{t.notify(0,{rawLogsEvent:{message:s.message,date:s.startClocks.timeStamp,error:qe(s),origin:x.SOURCE,status:S.error},messageContext:s.context})});return{stop:()=>{r(),o.unsubscribe()}}}const Ri=Os;function xi(e){function t(n,r,o,s,i){const a=ie(r.getContext(),n.context);if(Ve(n.status,Ce.console,r)&&Ai(n,a),Ve(n.status,Ce.http,r)){const c={rawLogsEvent:{date:i||F(),message:n.message,status:n.status,origin:x.LOGGER},messageContext:a,savedCommonContext:s};o&&(c.domainContext={handlingStack:o}),e.notify(0,c)}}return{handleLog:t}}const ki={[S.ok]:_.debug,[S.debug]:_.debug,[S.info]:_.info,[S.notice]:_.info,[S.warn]:_.warn,[S.error]:_.error,[S.critical]:_.error,[S.alert]:_.error,[S.emerg]:_.error};function Ai({status:e,message:t},n){W[ki[e]].call(L,t,n)}function Li(e,t,n,r,o){const s=kn(e,{endpoint:e.logsEndpointBuilder,encoder:ze()},e.replica&&{endpoint:e.replica.logsEndpointBuilder,encoder:ze()},n,r,o.expireObservable);return t.subscribe(1,i=>{s.add(i)}),s}function Ii(e){const t=yt();e.subscribe(1,n=>{t.send("log",n)})}function Mi(e){return{get:t=>{const n=e.findTrackedSession(t);if(n)return{session_id:n.id}}}}function Pi(e){return t=>{e.notify(0,{rawLogsEvent:{message:t.message,date:t.startClocks.timeStamp,origin:x.AGENT,status:S.error}}),Sn("Error reported to customer",{"error.message":t.message})}}function Ni(e,t,n,r,o){const s=zo("browser-logs-sdk",t);s.setContextProvider(()=>{var a,c,l,u,d,f;return{application:{id:(a=Ye())===null||a===void 0?void 0:a.application_id},session:{id:(c=o.findTrackedSession())===null||c===void 0?void 0:c.id},view:{id:(u=(l=Ye())===null||l===void 0?void 0:l.view)===null||u===void 0?void 0:u.id},action:{id:(f=(d=Ye())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(We()){const a=yt(),c=s.observable.subscribe(l=>a.send("internal_telemetry",l));i.push(()=>c.unsubscribe())}else{const a=kn(t,{endpoint:t.rumEndpointBuilder,encoder:ze()},t.replica&&{endpoint:t.replica.rumEndpointBuilder,encoder:ze()},n,r,o.expireObservable);i.push(()=>a.stop());const c=s.observable.subscribe(l=>a.add(l,qo(t)));i.push(()=>c.unsubscribe())}return Vo(),Yo(si(e)),{telemetry:s,stop:()=>{i.forEach(a=>a())}}}function Di(e,t,n,r){const o=new Ri,s=[];o.subscribe(1,f=>dn("logs",f));const i=Pi(o),a=Ts(t),c=t.sessionStoreStrategyType&&!We()&&!In()?di(t,r):fi(t),{stop:l}=Ni(e,t,i,a,c);s.push(()=>l()),bi(t,o),vi(t,o),Si(t,o),yi(t,o);const{handleLog:u}=xi(o);if(gi(c,t,o,n,i),We())Ii(o);else{const{stop:f}=Li(t,o,i,a,c);s.push(()=>f())}const d=Mi(c);return{handleLog:u,getInternalContext:d.get,stop:()=>{s.forEach(f=>f())}}}const ce=ci(Di);Mo(U(),"DD_LOGS",ce);const O=class O{constructor(t,n,r,o,s){this.copy=()=>new O(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let a=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,O.toStr(i)},this.toFrames=i=>{let a=60,c=0;Math.floor(i)==60?(a=60,c=0):Math.floor(i)==59?(a=60,c=4):Math.floor(i)==30?(a=30,c=0):Math.floor(i)==29&&(a=30,c=2);let l=this.h,u=this.m,d=this.s,f=this.f,g=this.field;const m=l*60+u,p=(m-Math.floor(m/10))*c;return l*(a*3600)+u*(a*60)+d*a+(f*2+g)-p},this.addSeconds=i=>{let a=this.copy();return a.s+=i,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(i,a)=>{let c=this.toFrames(a);return c+=i,O.fromFrames(c,a)},this.subtractFrames=(i,a)=>this.addFrames(-i,a),this.h=t||0,this.m=n||0,this.s=r||0,this.f=o||0,this.field=s||0}static compare(t,n){return t.h!==n.h?t.h<n.h?-1:1:t.m!==n.m?t.m<n.m?-1:1:t.s!==n.s?t.s<n.s?-1:1:t.f!==n.f?t.f<n.f?-1:1:t.field!==n.field?t.field<n.field?-1:1:0}static generateTimecodeRange(t,n,r){const o=[];let s=t;for(;O.compare(s,n)<=0;)o.push(s),s=s.addSeconds(r);return o}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(t){return this.toFrames(t)*1e3/t}};O.calculateCurrentTimeCode=t=>{var d;if(!t.video||!t.clocker||!t.gameParams)throw new Error("OTTPlayer is not initialized");const n=t.video,r=t.clocker,o=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*o+r.syncPoint.frame;if(a===0||o===0)throw new Error("Current frame is 0 or fps is 0");const c=O.calculateCurrentOffset(a,(d=t.gameParams)==null?void 0:d.offsets);if(c===void 0)throw new Error("Offset is undefined");let l=Math.floor(a-c);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),O.fromFrames(l,o)},O.calculateCurrentOffset=(t,n)=>{for(let r=1;r<n.length;r++)if(t<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},O.fromFrames=(t,n)=>{let r=60,o=0;Math.floor(n)==60?(r=60,o=0):Math.floor(n)==59?(r=60,o=4):Math.floor(n)==30?(r=30,o=0):Math.floor(n)==29&&(r=30,o=2);let s=Math.floor(n*60),i=Math.floor(n*60*10),a=i*6,c=t,l=Math.floor(c/a);c-=l*a;let u=Math.floor(c/i);c-=u*i,c>=r*60&&(c+=o*(Math.floor((c-r*60)/s)+1));let d=Math.floor(c/(r*60));c-=d*(r*60);let f=Math.floor(c/r);c-=f*r;let g=c;d+=u*10;let m=0;return m=g%2,g=Math.floor(g/2),new O(l,d,f,g,m)},O.toStr=t=>{const n="_";let r=("0"+t.h).slice(-2)+n+("0"+t.m).slice(-2)+n+("0"+t.s).slice(-2)+n+("0"+t.f).slice(-2);return t.field&&(r+="_1"),r},O.fromStr=t=>{const r=t.split("_").map(Number);if(r.length==4){const[o,s,i,a]=r;return new O(o,s,i,a,0)}else if(r.length==5){const[o,s,i,a,c]=r;return new O(o,s,i,a,c)}else throw new Error("Invalid timecode format: "+t)},O.fromMetadata=t=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,r=t.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+t.timecode);const[,o,s,i,a,c]=r,l=Number(o),u=Number(s),d=Number(i),f=Number(a),g=c?Number(c):0;return new O(l,u,d,f,g)};let Q=O;const h=class h{constructor(t){this.isLoggingOn=t.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&ce.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),h.tracking.mac=r,h.tracking.dev=`${t.platform}_${t.browserName}`,h.beatHandle||(console.log("[Logger] Starting tracking beat"),h.beatHandle=window.setInterval(h.flushTracking,15e3))}static setMessagePort(t){this.messagePort=t}static getMessagePort(){return this.messagePort}setLoggingOn(t){this.isLoggingOn=t}setAttributes(t){h.processAttributes(t);for(const n in t)ce.logger.setContextProperty(n,t[n])}info(t,n){t==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),t==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),t==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),t==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&h.processAttributes(n),this.isLoggingOn&&(ce.logger.info(t,n),console.log("[Logger] Sending info: ",t))}error(t,n){n&&h.processAttributes(n),this.isLoggingOn&&(ce.logger.error(t,n),h.tracking.err_time=Date.now().toFixed(0),h.tracking.err_desc=t+(n?` - ${JSON.stringify(n)}`:""),console.log("[Logger] Sending error: ",t))}warn(t,n){n&&h.processAttributes(n),this.isLoggingOn&&(ce.logger.warn(t,n),console.log("[Logger] Sending warn: ",t))}handleMessageFromWorker(t){t.actionType==="INFO"?this.info(t.message,t.attributes):t.actionType==="ERROR"?this.error(t.message,t.attributes):t.actionType==="WARN"?this.warn(t.message,t.attributes):t.actionType==="SET_ATTRIBUTES"&&t.attributes&&this.setAttributes(t.attributes)}static setAttributes(t){h.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:t})}static info(t,n){h.messagePort.postMessage({type:"LOG",actionType:"INFO",message:t,attributes:n})}static error(t,n){h.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:t,attributes:n})}static warn(t,n){h.messagePort.postMessage({type:"LOG",actionType:"WARN",message:t,attributes:n})}static processAttributes(t){if(t.player_version&&(h.tracking.sdk=t.player_version),t.media_id&&(h.tracking.gid=t.media_id),t.game_id&&(h.tracking.buc=t.game_id),t.bb_session_id&&(h.tracking.sid=t.bb_session_id,console.log("[Logger] Setting bb_session_id:",h.tracking.sid)),t.last_timecode){const r=Q.fromStr(t.last_timecode);h.tracking.tc=r.print(),h.lastTimecodeMillis=r.totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))}t.last_offset&&(h.tracking.off=t.last_offset),t.last_loading_zip&&(h.tracking.zip=t.last_loading_zip+".zip",h.lastZipMillis=Q.fromStr(t.last_loading_zip).totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))),t.last_rendered_frame&&(h.tracking.aug_time=Date.now().toFixed(0)),t.asset&&(h.tracking.asset=t.asset)}static objectToQuery(t){return Object.entries(t).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(t,n){const r=new CustomEvent(t,{detail:n});this.eventTarget.dispatchEvent(r)}};h.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},h.lastTimecodeMillis=0,h.lastZipMillis=0,h.flushTracking=()=>{const t=Date.now().toFixed(0);h.tracking.now=t;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${h.objectToQuery(h.tracking)}`;console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),h.tracking.err_desc="",h.tracking.err_time=""};let ue=h;const Fn=(()=>{const e=()=>{const p=navigator.userAgent;return/windows/i.test(p)?"Windows":/android/i.test(p)?"Android":/iphone|ipad|ipod/i.test(p)?"iOS":/mac/i.test(p)?"Mac":/ipad/i.test(p)?"iPad":"Something else"},t=()=>e()==="Mac",n=()=>e()==="iPad",r=()=>e()==="iOS",o=()=>{const p=e();return p==="iOS"||p==="Mac"||p==="iPad"},s=()=>e()==="Windows",i=()=>e()==="Android",a=()=>{switch(e()){case"Windows":return"a Windows PC";case"Android":return"an Android phone";case"iOS":return"an iPhone";case"Mac":return"a Mac";case"iPad":return"an iPad";default:return"an Unknown device"}},c=()=>({header:[navigator.platform,navigator.userAgent,navigator.appVersion,navigator.vendor,window.opera],dataos:[{name:"Windows Phone",value:"Windows Phone",version:"OS"},{name:"Windows",value:"Win",version:"NT"},{name:"iPhone",value:"iPhone",version:"OS"},{name:"iPad",value:"iPad",version:"OS"},{name:"Kindle",value:"Silk",version:"Silk"},{name:"Android",value:"Android",version:"Android"},{name:"PlayBook",value:"PlayBook",version:"OS"},{name:"BlackBerry",value:"BlackBerry",version:"/"},{name:"Macintosh",value:"Mac",version:"OS X"},{name:"Linux",value:"Linux",version:"rv"},{name:"Palm",value:"Palm",version:"PalmOS"}],databrowser:[{name:"Chrome",value:"Chrome",version:"Chrome"},{name:"Firefox",value:"Firefox",version:"Firefox"},{name:"Safari",value:"Safari",version:"Version"},{name:"Internet Explorer",value:"MSIE",version:"MSIE"},{name:"Opera",value:"Opera",version:"Opera"},{name:"BlackBerry",value:"CLDC",version:"CLDC"},{name:"Mozilla",value:"Mozilla",version:"Mozilla"}],init(){const R=this.header.join(" ");return this.matchItem(R,this.dataos)},matchItem(R,D){for(let le=0;le<D.length;le+=1)if(new RegExp(D[le].value,"i").test(R))return D[le].name;return"unknown"}}).init(),l=()=>{const p=navigator.userAgent;return p.indexOf("Chrome")>-1&&p.indexOf("Edge")===-1?"Chrome":p.indexOf("Safari")>-1&&p.indexOf("Chrome")===-1?"Safari":p.indexOf("Firefox")>-1?"Firefox":p.indexOf("MSIE")>-1||p.indexOf("Trident")>-1?"Internet Explorer":p.indexOf("Edge")>-1?"Edge":"Unknown"};return{getCurrentPlatform:e,isMac:t,isiPad:n,isiPhone:r,isApple:o,isWindows:s,isAndroid:i,getDeviceDescription:a,getDeviceName:c,getBrowserName:l,isSafariMac:()=>t()&&l()==="Safari",isChromeMac:()=>t()&&l()==="Chrome",isChromeWin:()=>s()&&l()==="Chrome",isFirefoxMac:()=>t()&&l()==="Firefox",isFirefoxWin:()=>s()&&l()==="Firefox"}})();class Fi{constructor(){this.start=0,this.end=0,this.startTimeoutForSeconds=(t,n)=>{this.start=performance.now(),this.end=this.start+t*1e3,this.reason=n,this.timeoutType==="manual"?this.timeoutType="both":this.timeoutType="interval"},this.startTimeoutManual=t=>{this.reason=t,this.timeoutType==="interval"?this.timeoutType="both":this.timeoutType===void 0&&(this.timeoutType="manual")},this.endTimoutManual=()=>{this.timeoutType==="manual"?(this.reason=void 0,this.timeoutType=void 0):this.timeoutType==="both"&&(this.timeoutType="interval")},this.resetTimeout=()=>{this.start=0,this.end=0,this.timeoutType=void 0,this.reason=void 0},this.getTimeoutStatus=()=>this.timeoutType===void 0?{isTimeout:!1}:this.timeoutType==="manual"?{isTimeout:!0,reason:this.reason,type:this.timeoutType}:performance.now()>=this.end?(this.start=0,this.end=0,this.timeoutType==="both"?(this.timeoutType="manual",{isTimeout:!0,reason:this.reason,type:this.timeoutType}):(this.timeoutType=void 0,this.reason=void 0,{isTimeout:!1})):{isTimeout:!0,reason:this.reason,type:this.timeoutType}}}const Rt={lastRendererFrameSent:0,isRAFSeen:!1,isRVFCSeen:!1,RVFCmissed:!1,RVFCframeExpected:0,compensationMode:!1,compensationCounter:0,frameCorrection:0,lastMessageSent:""};let Je=null,k,T,$i=new Fi;self.onmessage=async e=>{const{data:t}=e;t.type==="SET_LOGGER_PORT"&&ue.setMessagePort(t.port),t.type==="SET_RENDERER_PORT"&&(Je=t.port,Je.onmessage=Ui),t.type==="ADAPTER_UPDATE_DATA"&&(T=t.data,$n()),t.type==="SET_OPTIONS"&&(k=t.options,ue.setMessagePort(self))};function Ui(e){k&&ee(k,"Adapter")&&console.log("[AdapterWorker] Message from Renderer:",e.data)}const $n=()=>{!T||T.siData.isVideoPaused||(Fn.isChromeMac()?Bi():Fn.isSafariMac()&&Gi())},Bi=()=>{if(!T||T.siData.isVideoPaused||!T.vfcData.lastFrameMetadata)return;const{siData:e,vfcData:t,afData:n,debugControls:r}=T;if(!e.isRAFSeen){let o=4,s=-11,i=1,a=5;if(r){const p=parseInt(r["Window Start (ms)"],10);isNaN(p)||(o=p);const v=parseInt(r["Window End (ms)"],10);isNaN(v)||(s=v);const R=parseInt(r["Frame Correction"],10);isNaN(R)||(i=R);const D=parseInt(r["Timeout time"],10);isNaN(D)||(a=D)}const c=1e3/t.videoFPS;1e3/n.animationFPS;const l=n.lastTimestamp,u=t.storedMetadata.reduce((p,v)=>Math.abs(v.expectedDisplayTime-l)<Math.abs(p.expectedDisplayTime-l)?v:p),d=u.expectedDisplayTime-o,f=[];for(let p=-10;p<10;p++)f.push(d+p*c);const g=u.expectedDisplayTime-s,m=[];for(let p=-10;p<10;p++)m.push(g+p*c);let E=null;f.forEach((p,v)=>{l>p&&l<m[v]&&(E=v-10)}),E!==null?setTimeout(p=>xt(t.lastCalculatedMediaTimeVideoFrame+p*Math.round(60/t.videoFPS)+i),a,E):xt(Rt.lastRendererFrameSent)}},Gi=()=>{if(!T||T.siData.isVideoPaused||!T.vfcData.lastFrameMetadata)return;const{siData:e,vfcData:t,afData:n}=T;let r=n.lastCalculatedPlayerTimeFraction;const o=n.previousCalculatedPlayerTimeFraction;r<.3&&r>.1&&o<.3&&o>.1&&(r=Math.min(r,o));let s=0;r<.1?s=0:r>.1&&r<.3?s=(r-.1)/(.3-.1):s=1;let i=n.lastCalculatedPlayerTimeVideoFrame;s==1&&(i++,s=0),xt(i,s)},xt=(e,t)=>{if(!T)return;Rt.lastRendererFrameSent=e,T.siData.workingFps;const n=Q.fromFrames(e,6e4/1001);if($i.getTimeoutStatus().isTimeout)Un(n);else{const r=T.vfcData.videoFPS;if(r<=10||r>70){console.error("Video FPS is out of supported range: "+r),Un(n);return}T.afData.animationFPS,ji(n,t)}},ji=(e,t)=>{const n=Q.toStr(e);Rt.lastMessageSent=n,k&&ee(k,"Adapter")&&console.log(`[AdapterWorker] Rendering augmentation for timecode: ${n} , ${e}`),Bn(n,t)},Un=e=>{const t=Q.toStr(e);k&&ee(k,"Adapter")&&console.log("[AdapterWorker] Clearing augmentation"),Bn(t,0,!0)},Bn=(e,t,n)=>{if(!Je||!T)return;const r=e;k&&ee(k,"Adapter")&&console.log(`[AdapterWorker] Sending current time code to the Renderer: ${r}`);const o={timeCode:r,frameCorrection:t||0,fps:Wn(T.siData.workingFps),cloudFrontURL:T.cloudFrontURL,bucketName:T.bucketName,customerId:T.customerId,offsets:T.offsets},i={type:n?"RENDERER_CLEAR":"RENDERER_DRAW",streamData:o};Je.postMessage(i)};self.onunhandledrejection=e=>{ue.error("[AdapterWorker] Unhandled rejection",{error:e.reason}),k&&(ee(k,"Errors")&&console.error("[AdapterWorker] Unhandled rejection:",e.reason),e.preventDefault())},self.onerror=e=>{ue.error("[AdapterWorker] Unhandled error",{error:e}),k&&(ee(k,"Errors")&&console.error("[AdapterWorker] Unhandled error:",e),e instanceof Event&&e.preventDefault())},setInterval($n,2)})();\n',Vt=typeof self<"u"&&self.Blob&&new Blob([Gt],{type:"text/javascript;charset=utf-8"});function or(t){let e;try{if(e=Vt&&(self.URL||self.webkitURL).createObjectURL(Vt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Gt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}class jt{constructor(){this.metrics=new Map,this.containers=[],this.createContainer=()=>{const e=document.createElement("div");e.style.display="flex",e.style.gap="10px",e.style.marginBottom="5px",e.style.fontSize="14px";const n={div:e,metrics:[]};return this.containers.push(n),document.body.appendChild(e),n},this.createMetric=(e,n)=>{const r=document.createElement("span"),i={name:e,value:"",span:r};return n.metrics.push(i),r.textContent=`${e}: ${i.value}`,n.div.appendChild(r),this.metrics.set(e,i),i},this.updateMetric=(e,n)=>{const r=this.metrics.get(e);if(!r){console.error("Metric does not exist");return}typeof n=="boolean"?r.value=n?"true":"false":r.value=n,r.span.textContent=`${e}: ${r.value}`}}delete(){this.containers.forEach(e=>{e.div.remove()})}}class ar{constructor(e){if(this.canPlayListner=()=>this.setupCanvas(),this.clickListner=n=>{this.clicker.click(n)},this.mediaTime=0,this.timecodeChecker=new tr(0),this.logger=e.logger,this.OTTPlayer=e,this.options=e.options,this.debug=this.options.debug?this.options.debug.on:!1,this.options.debug&&this.debug){this.metrics=new jt;const n=this.metrics.createContainer();if(this.metrics.createMetric("Last Downloaded Zip",n),this.metrics.createMetric("Last Decoded Frame",n),this.metrics.createMetric("Last WebGL Uploaded Frame",n),this.metrics.createMetric("Last Rendered Frame",n),this.metrics.createMetric("Renderer State",n),this.options.debug.trackPerformance){const r=this.metrics.createContainer();this.metrics.createMetric("Rendering GPU time",r),this.metrics.createMetric("Rendering CPU time",r),this.metrics.createMetric("Chunking time",r),this.metrics.createMetric("Decoding time",r)}}this.downloaderWorker=new rr,this.decoderWorker=new sr,this.rendererWorker=new ir,this.adapterWorker=new or,window.BB.workerInstances.push(this.downloaderWorker,this.decoderWorker,this.rendererWorker,this.adapterWorker),this.rendererToDownloader=new MessageChannel,this.rendererToMain=new MessageChannel,this.downloaderToDecoder=new MessageChannel,this.decoderToRenderer=new MessageChannel,this.adapterToRenderer=new MessageChannel,this.setupWorkers(),this.canvas=document.createElement("canvas"),this.OTTPlayer.video.readyState>=3?this.setupCanvas():this.OTTPlayer.video.addEventListener("canplay",this.canPlayListner,{once:!0}),this.processedTimecodes=[],this.clicker=new nr(this.OTTPlayer,this.rendererWorker),this.segmentFirstFrameTimecode=new F,this.syncPoint={frame:0,playerTime:0,stringTime:""},this.cacheStarted=!1,this.animationFPScalculator=new nt(20),this.videoFPScalculator=new nt(20),this.startAnimationFrameLoop(),this.startVideoFrameCallbackLoop()}startAnimationFrameLoop(){const e=()=>{this.animationFPScalculator.addTimestamp(performance.now()/1e3),this.OTTPlayer.RUN_PIXEL_TICKERS&&this.OTTPlayer.pixelTickers.forEach(n=>{n.update()}),this.animationFrameLoopId=requestAnimationFrame(e)};this.animationFrameLoopId=requestAnimationFrame(e)}startVideoFrameCallbackLoop(){const e=(n,r)=>{this.mediaTime=r.mediaTime,this.videoFPScalculator.addTimestamp(r.mediaTime),this.videoFrameCallbackLoopId=this.OTTPlayer.video.requestVideoFrameCallback(e)};this.videoFrameCallbackLoopId=this.OTTPlayer.video.requestVideoFrameCallback(e)}setupCanvas(){const e=this.OTTPlayer.video,n=e.parentElement;this.canvas.width=e.videoWidth,this.canvas.height=e.videoHeight,this.canvas.style.zIndex="3000",this.canvas.style.position="absolute",this.canvas.style.top="50%",this.canvas.style.transform="translateY(-50%)",this.canvas.style.left="0",this.canvas.style.width=n.style.width,this.canvas.style.height=n.style.height,this.canvas.style.pointerEvents="none",n.addEventListener("click",this.clickListner),n.style.position="relative",n.appendChild(this.canvas);const r=this.canvas.transferControlToOffscreen(),i={type:"INIT_OFFSCREEN",offscreen:r,options:this.options};this.rendererWorker.postMessage(i,[r]),e.onseeked=()=>{this.onVideoSeeked()},e.onseeking=()=>{this.onVideoSeeked()}}setupWorkers(){this.downloaderWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&e.data.attributes.last_loading_zip&&this.metrics&&this.metrics.updateMetric("Last Downloaded Zip",e.data.attributes.last_loading_zip),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.decoderWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&e.data.attributes.last_decoded_frame&&this.metrics&&this.metrics.updateMetric("Last Decoded Frame",e.data.attributes.last_decoded_frame),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.rendererWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&this.metrics&&(e.data.attributes.last_webgl_uploaded_frame&&this.metrics.updateMetric("Last WebGL Uploaded Frame",e.data.attributes.last_webgl_uploaded_frame),e.data.attributes.last_rendered_frame&&this.metrics.updateMetric("Last Rendered Frame",e.data.attributes.last_rendered_frame),e.data.attributes.renderer_state&&this.metrics.updateMetric("Renderer State",e.data.attributes.renderer_state)),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.adapterWorker.onmessage=e=>{e.data.type==="LOG"?this.logger.handleMessageFromWorker(e.data):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.rendererWorker.postMessage({type:"SET_DOWNLOADER_PORT",port:this.rendererToDownloader.port1},[this.rendererToDownloader.port1]),this.downloaderWorker.postMessage({type:"SET_RENDERER_PORT",port:this.rendererToDownloader.port2},[this.rendererToDownloader.port2]),this.downloaderWorker.postMessage({type:"SET_DECODER_PORT",port:this.downloaderToDecoder.port1},[this.downloaderToDecoder.port1]),this.decoderWorker.postMessage({type:"SET_DOWNLOADER_PORT",port:this.downloaderToDecoder.port2},[this.downloaderToDecoder.port2]),this.decoderWorker.postMessage({type:"SET_RENDERER_PORT",port:this.decoderToRenderer.port1},[this.decoderToRenderer.port1]),this.rendererWorker.postMessage({type:"SET_DECODER_PORT",port:this.decoderToRenderer.port2},[this.decoderToRenderer.port2]),this.adapterWorker.postMessage({type:"SET_RENDERER_PORT",port:this.adapterToRenderer.port1},[this.adapterToRenderer.port1]),this.rendererWorker.postMessage({type:"SET_ADAPTER_PORT",port:this.adapterToRenderer.port2},[this.adapterToRenderer.port2]),this.rendererWorker.postMessage({type:"SET_LOGGER_PORT",port:this.rendererToMain.port1},[this.rendererToMain.port1]),this.rendererToMain.port2.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&this.metrics&&(e.data.attributes.last_webgl_uploaded_frame&&this.metrics.updateMetric("Last WebGL Uploaded Frame",e.data.attributes.last_webgl_uploaded_frame),e.data.attributes.last_rendered_frame&&this.metrics.updateMetric("Last Rendered Frame",e.data.attributes.last_rendered_frame),e.data.attributes.renderer_state&&this.metrics.updateMetric("Renderer State",e.data.attributes.renderer_state)),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.downloaderWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.decoderWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.adapterWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.rendererWorker.postMessage({type:"SET_OPTIONS",options:this.options})}callAdapterWorker(e){this.adapterWorker.postMessage({type:"ADAPTER_UPDATE_DATA",data:e})}callRendererWorker(e,n,r){this.options&&I(this.options,"Clocker")&&console.log(`[Clocker] Sending current time code to the Renderer: ${e}`);const i=r?"RENDERER_CLEAR":"RENDERER_DRAW";if(!e||!this.OTTPlayer.gameParams||!this.OTTPlayer.gameParams.bucketName||!this.OTTPlayer.gameParams.offsets){const a={type:i};this.rendererWorker.postMessage(a);return}const s={timeCode:e,frameCorrection:n||0,fps:he(this.videoFPScalculator.getFPS()),cloudFrontURL:this.OTTPlayer.options.cloudFrontURL,bucketName:this.OTTPlayer.gameParams.bucketName,offsets:this.OTTPlayer.gameParams.offsets,customerId:this.OTTPlayer.gameParams.customerId},o={type:i,streamData:s};this.rendererWorker.postMessage(o),r||this.logger.setAttributes({last_timecode:e})}onVideoSeeked(){this.downloaderWorker.postMessage({type:"VIDEO_SEEKED"}),this.decoderWorker.postMessage({type:"VIDEO_SEEKED"}),this.rendererWorker.postMessage({type:"VIDEO_SEEKED"}),this.OTTPlayer.adapter&&this.OTTPlayer.adapter.onVideoSeeked(),this.logger.info("didSeek")}trackPerformance(e){var n;if((n=this.options.debug)!=null&&n.trackPerformance&&this.metrics)for(let r of e.data)this.metrics.updateMetric(r.metric,r.value.toFixed(2))}delete(){const e=this.OTTPlayer.video,n=e.parentElement;n.removeChild(this.canvas),this.rendererWorker.terminate(),this.downloaderWorker.terminate(),this.decoderWorker.terminate(),this.adapterWorker.terminate(),this.metrics&&this.metrics.delete(),this.animationFrameLoopId&&cancelAnimationFrame(this.animationFrameLoopId),this.videoFrameCallbackLoopId&&e.cancelVideoFrameCallback(this.videoFrameCallbackLoopId),e.removeEventListener("canplay",this.canPlayListner),n.removeEventListener("click",this.clickListner)}}class cr{constructor(){this.controls=new Map,this.containers=[]}createContainer(e){const n=document.createElement("div");n.style.display="flex",n.style.flexWrap="wrap",n.style.gap="10px",n.style.padding="10px",n.style.marginBottom="10px",n.style.border="1px solid #ccc",n.style.fontSize="14px",n.style.backgroundColor="#f9f9f9";const r=document.createElement("button");r.textContent="Apply",r.style.cursor="pointer";const i={div:n,controls:[],button:r};return r.addEventListener("click",()=>{const s={};i.controls.forEach(o=>{o.type==="input"||o.type==="select"?o.appliedValue=o.element.value:o.type==="checkbox"&&(o.appliedValue=String(o.element.checked)),s[o.name]=o.appliedValue}),e&&e(s)}),n.appendChild(r),document.body.appendChild(n),this.containers.push(i),i}createInput(e,n="",r){const i=document.createElement("label");i.style.display="flex",i.style.flexDirection="column",i.style.fontWeight="bold";const s=document.createElement("span");s.textContent=e,s.style.marginBottom="3px";const o=document.createElement("input");o.type="text",o.value=String(n),o.style.minWidth="60px";const a={name:e,type:"input",element:o,container:r,appliedValue:String(n)};this.controls.set(e,a),r.controls.push(a),i.appendChild(s),i.appendChild(o),r.div.insertBefore(i,r.button)}createSelect(e,n,r="",i){const s=document.createElement("label");s.style.display="flex",s.style.flexDirection="column",s.style.fontWeight="bold";const o=document.createElement("span");o.textContent=e,o.style.marginBottom="3px";const a=document.createElement("select");a.style.minWidth="80px",Object.entries(n).forEach(([l,d])=>{const u=document.createElement("option");u.textContent=l,u.value=String(d),a.appendChild(u)}),a.value=String(r);const c={name:e,type:"select",element:a,container:i,appliedValue:String(r)};this.controls.set(e,c),i.controls.push(c),s.appendChild(o),s.appendChild(a),i.div.insertBefore(s,i.button)}createCheckbox(e,n=!1,r){const i=document.createElement("label");i.style.display="flex",i.style.fontWeight="bold";const s=document.createElement("span");s.textContent=e,s.style.marginRight="5px";const o=document.createElement("input");o.type="checkbox",o.checked=n;const a={name:e,type:"checkbox",element:o,container:r,appliedValue:String(n)};this.controls.set(e,a),r.controls.push(a),i.appendChild(s),i.appendChild(o),r.div.insertBefore(i,r.button)}exportData(){const e={};return this.controls.forEach(n=>{e[n.name]=n.appliedValue}),e}getValue(e){const n=this.controls.get(e);return n?n.appliedValue:(console.error(`No control found with name: ${e}`),"")}delete(){this.containers.forEach(e=>{e.div.remove()}),this.containers=[],this.controls.clear()}}const Ue=t=>t.toString().padStart(2,"0"),rt=":",lr=(t,e,n=!1)=>{let r="";return Array.isArray(t)?(r=[Ue(t[0]),Ue(t[1]),Ue(t[2]),Ue(t[3])].join(":"),n==!0?t[4]==1&&e?r+=".2":r+=".1":t[4]==1&&e&&(r+=".1")):(r=("0"+t.h).slice(-2)+rt+("0"+t.m).slice(-2)+rt+("0"+t.s).slice(-2)+rt+("0"+t.f).slice(-2),r+="."+(t.field?"1":"2")),r},dr=(t,e,n)=>{let r=60,i=0;Math.floor(e)==60?(r=60,i=0):Math.floor(e)==59?(r=60,i=4):Math.floor(e)==30?(r=30,i=0):Math.floor(e)==29&&(r=30,i=2);let s=0,a=Math.floor(e*60*10)*6,c=t[0],l=t[1],d=t[2],u=t[3],f=t[4];return s+=c*a,s+=l*(r*60),s+=d*r,s+=u*2+f,s-=i*l,s+=i*Math.floor(l/10),s},P=(()=>{const t=()=>{const g=navigator.userAgent;return/windows/i.test(g)?"Windows":/android/i.test(g)?"Android":/iphone|ipad|ipod/i.test(g)?"iOS":/mac/i.test(g)?"Mac":/ipad/i.test(g)?"iPad":"Something else"},e=()=>t()==="Mac",n=()=>t()==="iPad",r=()=>t()==="iOS",i=()=>{const g=t();return g==="iOS"||g==="Mac"||g==="iPad"},s=()=>t()==="Windows",o=()=>t()==="Android",a=()=>{switch(t()){case"Windows":return"a Windows PC";case"Android":return"an Android phone";case"iOS":return"an iPhone";case"Mac":return"a Mac";case"iPad":return"an iPad";default:return"an Unknown device"}},c=()=>({header:[navigator.platform,navigator.userAgent,navigator.appVersion,navigator.vendor,window.opera],dataos:[{name:"Windows Phone",value:"Windows Phone",version:"OS"},{name:"Windows",value:"Win",version:"NT"},{name:"iPhone",value:"iPhone",version:"OS"},{name:"iPad",value:"iPad",version:"OS"},{name:"Kindle",value:"Silk",version:"Silk"},{name:"Android",value:"Android",version:"Android"},{name:"PlayBook",value:"PlayBook",version:"OS"},{name:"BlackBerry",value:"BlackBerry",version:"/"},{name:"Macintosh",value:"Mac",version:"OS X"},{name:"Linux",value:"Linux",version:"rv"},{name:"Palm",value:"Palm",version:"PalmOS"}],databrowser:[{name:"Chrome",value:"Chrome",version:"Chrome"},{name:"Firefox",value:"Firefox",version:"Firefox"},{name:"Safari",value:"Safari",version:"Version"},{name:"Internet Explorer",value:"MSIE",version:"MSIE"},{name:"Opera",value:"Opera",version:"Opera"},{name:"BlackBerry",value:"CLDC",version:"CLDC"},{name:"Mozilla",value:"Mozilla",version:"Mozilla"}],init(){const v=this.header.join(" ");return this.matchItem(v,this.dataos)},matchItem(v,w){for(let k=0;k<w.length;k+=1)if(new RegExp(w[k].value,"i").test(v))return w[k].name;return"unknown"}}).init(),l=()=>{const g=navigator.userAgent;return g.indexOf("Chrome")>-1&&g.indexOf("Edge")===-1?"Chrome":g.indexOf("Safari")>-1&&g.indexOf("Chrome")===-1?"Safari":g.indexOf("Firefox")>-1?"Firefox":g.indexOf("MSIE")>-1||g.indexOf("Trident")>-1?"Internet Explorer":g.indexOf("Edge")>-1?"Edge":"Unknown"};return{getCurrentPlatform:t,isMac:e,isiPad:n,isiPhone:r,isApple:i,isWindows:s,isAndroid:o,getDeviceDescription:a,getDeviceName:c,getBrowserName:l,isSafariMac:()=>e()&&l()==="Safari",isChromeMac:()=>e()&&l()==="Chrome",isChromeWin:()=>s()&&l()==="Chrome",isFirefoxMac:()=>e()&&l()==="Firefox",isFirefoxWin:()=>s()&&l()==="Firefox"}})();class ur{constructor(){this.start=0,this.end=0,this.startTimeoutForSeconds=(e,n)=>{this.start=performance.now(),this.end=this.start+e*1e3,this.reason=n,this.timeoutType==="manual"?this.timeoutType="both":this.timeoutType="interval"},this.startTimeoutManual=e=>{this.reason=e,this.timeoutType==="interval"?this.timeoutType="both":this.timeoutType===void 0&&(this.timeoutType="manual")},this.endTimoutManual=()=>{this.timeoutType==="manual"?(this.reason=void 0,this.timeoutType=void 0):this.timeoutType==="both"&&(this.timeoutType="interval")},this.resetTimeout=()=>{this.start=0,this.end=0,this.timeoutType=void 0,this.reason=void 0},this.getTimeoutStatus=()=>this.timeoutType===void 0?{isTimeout:!1}:this.timeoutType==="manual"?{isTimeout:!0,reason:this.reason,type:this.timeoutType}:performance.now()>=this.end?(this.start=0,this.end=0,this.timeoutType==="both"?(this.timeoutType="manual",{isTimeout:!0,reason:this.reason,type:this.timeoutType}):(this.timeoutType=void 0,this.reason=void 0,{isTimeout:!1})):{isTimeout:!0,reason:this.reason,type:this.timeoutType}}}class fr{constructor(e){if(this.platformSupported=!0,this.firstFrameTimecodeSet=!1,this.firstFrameTimecode=[0,0,0,0,0],this.firstVideoFrameCallbackFired=!1,this.timeout=new ur,this.loggerTimeoutStart=0,this.loggerTimeout=1e4,this.afData={counter:0,lastTimestamp:0,previousTimestamp:0,lastMetadataNow:0,timeFromLastRVFC:0,animationFPS:0,playerTimeOffset:0,lastPlayerTimeFromSync:0,lastCalculatedPlayerTimeVideoFrame:0,lastCalculatedPlayerTimeFraction:0,previousCalculatedPlayerTimeFraction:2},this.vfcData={counter:0,lastTimestamp:0,previousTimestamp:0,timeFromLastRAF:0,videoFPS:0,lastFrameMetadata:null,lastFrameMetadataNow:0,storedMetadata:[],timePerformanceNowToExpectedDisplayTime:0,timeRVFCnowToExpectedDisplayTime:0,mediaTimeOffset:0,lastMediaTimeFromSync:0,lastCalculatedMediaTimeVideoFrame:0},this.siData={counter:0,lastTimestamp:0,lastOffset:0,timeFromLastRAF:0,timeFromLastRVFC:0,lastSeenRAFCount:0,lastSeenRVFCCount:0,isRAFSeen:!1,isRVFCSeen:!1,isVideoPaused:!0,workingFps:0,refreshRate:0,RVFCmissed:0,RVFCframeExpected:0,expectedRefreshRate:0,avgExpectedRefreshRate:0,newRefreshRateFrames:0,expectedFPS:0,newFPSFrames:0,RVFCpattern:[],isRVFCpatternDetected:!1,patternTracking:[],patternTrackingIndex:-1,patternNextValue:-1,possibilityTracking:[],previousPossibilityValue:-1,lastCallback:null,lastCalculatedFrame:0,lastRendererFrameSent:0,lastMessageSent:"",compensationMode:!1,compensationCounter:0,frameCorrection:0,determineFramesIntervals:[],determineAFIntervals:[],expectedDisplayTimeReminder:0,animationFramesToDisplayTime:0},this.tcTimeStamp=0,this.timecode_offset=0,this.onAnimationFrame=n=>{if(this.video.paused||!this.OTTPlayer.clocker||!this.OTTPlayer.gameParams||!this.syncPoint){window.requestAnimationFrame(this.onAnimationFrame);return}this.afData.counter++,this.afData.previousTimestamp=this.afData.lastTimestamp,this.afData.lastTimestamp=performance.now(),this.afData.lastMetadataNow=n,this.afData.timeFromLastRVFC=this.afData.lastTimestamp-this.vfcData.lastTimestamp,this.afData.animationFPS=this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),this.siData.lastCallback=="RAF"&&this.siData.RVFCmissed++,this.siData.lastCallback="RAF";const r=(this.video.currentTime-this.syncPoint.playerTime)*(6e4/1001);this.afData.lastPlayerTimeFromSync=r;const i=Math.floor(r)+this.syncPoint.frame;this.afData.playerTimeOffset=F.calculateCurrentOffset(i,this.OTTPlayer.gameParams.offsets);let s=i-this.afData.playerTimeOffset;if(s<0&&(s+=5178816),s++,this.afData.lastCalculatedPlayerTimeVideoFrame=s,this.afData.previousCalculatedPlayerTimeFraction=this.afData.lastCalculatedPlayerTimeFraction,this.afData.lastCalculatedPlayerTimeFraction=r-Math.floor(r),this.metrics)try{this.metrics.updateMetric("RAF calls",this.afData.counter),this.metrics.updateMetric("Last player time",this.video.currentTime.toFixed(4)),this.metrics.updateMetric("Last player time frame",this.afData.lastCalculatedPlayerTimeVideoFrame),this.metrics.updateMetric("Last player time fraction",this.afData.lastCalculatedPlayerTimeFraction.toFixed(4)),this.metrics.updateMetric("Last player time double frame",this.afData.lastPlayerTimeFromSync.toFixed(5)),this.metrics.updateMetric("AF metadata now - perf.now()",(this.afData.lastTimestamp-this.afData.lastMetadataNow).toFixed(3)),this.metrics.updateMetric("VF ExpDispTime - AF metadata now",(this.afData.lastTimestamp-this.vfcData.lastFrameMetadata.expectedDisplayTime).toFixed(3)),this.metrics.updateMetric("Last RAF call",this.afData.lastTimestamp.toFixed(2)),this.metrics.updateMetric("RAF - RVFC dif",this.afData.timeFromLastRVFC.toFixed(2))}catch(o){this.options&&I(this.options,"Adapter")&&console.error(o)}window.requestAnimationFrame(this.onAnimationFrame),this.determineFrameUpdate()},this.onVideoFrame=(n,r)=>{if(this.firstVideoFrameCallbackFired||(this.firstVideoFrameCallbackFired=!0,this.logger.info("[Adapter] First video frame callback fired"),console.log("[Adapter] First video frame callback fired")),this.video.paused||!this.OTTPlayer.clocker||!this.OTTPlayer.gameParams||!this.syncPoint){this.video.requestVideoFrameCallback(this.onVideoFrame);return}this.vfcData.counter++,this.vfcData.previousTimestamp=this.vfcData.lastTimestamp,this.vfcData.lastTimestamp=performance.now(),this.vfcData.timeFromLastRAF=this.vfcData.lastTimestamp-this.afData.lastTimestamp,this.siData.RVFCmissed=0,this.vfcData.videoFPS=this.OTTPlayer.clocker.videoFPScalculator.getPerciseFPS(),this.siData.lastCallback="RVFC";const i=(r.mediaTime-this.syncPoint.playerTime)*(6e4/1001);this.vfcData.lastMediaTimeFromSync=i;const s=Math.floor(i+.1)+this.syncPoint.frame;this.vfcData.mediaTimeOffset=F.calculateCurrentOffset(s,this.OTTPlayer.gameParams.offsets);let o=s-this.vfcData.mediaTimeOffset;o<0&&(o+=5178816),o++,this.vfcData.lastCalculatedMediaTimeVideoFrame=o,this.vfcData.lastFrameMetadata=r,this.vfcData.storedMetadata.push(r),this.vfcData.storedMetadata.length>10&&this.vfcData.storedMetadata.shift(),this.vfcData.timePerformanceNowToExpectedDisplayTime=r.expectedDisplayTime-this.vfcData.lastTimestamp,this.vfcData.timeRVFCnowToExpectedDisplayTime=r.expectedDisplayTime-n,this.vfcData.lastFrameMetadataNow=n,this.metrics&&(this.metrics.updateMetric("RVFC calls",this.vfcData.counter),this.metrics.updateMetric("Last metadata media time",r.mediaTime.toFixed(4)),this.metrics.updateMetric("Last metadata media time frame",this.vfcData.lastCalculatedMediaTimeVideoFrame),this.metrics.updateMetric("Time to presentation time",(r.presentationTime-n).toFixed(4)),this.metrics.updateMetric("Metadata presented frames",r.presentedFrames),this.metrics.updateMetric("Metadata processing duration",r.processingDuration),this.metrics.updateMetric("Last media time double frame",this.vfcData.lastMediaTimeFromSync.toFixed(5)),this.metrics.updateMetric("VF metadata now - perf.now()",(this.afData.lastTimestamp-this.afData.lastMetadataNow).toFixed(3)),this.metrics.updateMetric("RVFC to expected display time",this.vfcData.timeRVFCnowToExpectedDisplayTime.toFixed(4)),this.metrics.updateMetric("Performance Now to expected display time",this.vfcData.timePerformanceNowToExpectedDisplayTime.toFixed(4)),this.metrics.updateMetric("Last RVFC call",this.vfcData.lastTimestamp.toFixed(2))),this.video.requestVideoFrameCallback(this.onVideoFrame),this.determineFrameUpdate()},this.determineFrameUpdate=()=>{var n,r,i,s;if(!(!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata))if(this.siData.counter===0&&this.logger.info("didStartAugmentation"),this.siData.counter++,this.siData.isVideoPaused=this.video.paused,this.siData.isRAFSeen=this.siData.lastSeenRAFCount==this.afData.counter,this.siData.isRVFCSeen=this.siData.lastSeenRVFCCount==this.vfcData.counter,this.siData.lastTimestamp=performance.now(),this.siData.timeFromLastRAF=this.siData.lastTimestamp-this.afData.lastTimestamp,this.siData.timeFromLastRVFC=this.siData.lastTimestamp-this.vfcData.lastTimestamp,this.siData.lastSeenRAFCount=this.afData.counter,this.siData.lastSeenRVFCCount=this.vfcData.counter,this.siData.workingFps=this.OTTPlayer.clocker.videoFPScalculator.getFPS(),this.siData.refreshRate=this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),!this.OTTPlayer.options.ADAPTER_RUN_IN_WORKER)this.platformSpecificFrameUpdate();else{const o={siData:this.siData,vfcData:this.vfcData,afData:this.afData,debugControls:(n=this.debugControls)==null?void 0:n.exportData(),cloudFrontURL:this.OTTPlayer.options.cloudFrontURL,bucketName:((r=this.OTTPlayer.gameParams)==null?void 0:r.bucketName)||"",offsets:((i=this.OTTPlayer.gameParams)==null?void 0:i.offsets)||[],customerId:((s=this.OTTPlayer.gameParams)==null?void 0:s.customerId)||""};this.OTTPlayer.clocker.callAdapterWorker(o)}},this.determineFrameUpdateChromeMac=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>3?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS()),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=20,i=1e3;if(!this.siData.isRVFCSeen){const s=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(s<=0&&this.siData.patternTracking.length<=1-s){this.siData.patternTracking=[!0];for(let o=0;o<1-s;o++)this.siData.patternTracking.push(!1)}else s<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+s]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>i&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const s=this.siData.patternTracking;for(let o=1;o*r<=s.length;o++){for(let a=0;a+o*r<=s.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=s.slice(a+l*o,a+(l+1)*o),u=s.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=s.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const s=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-s.length;c>=0;c--){let l=!0;for(let d=0;d<s.length;d++)if(s[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%s.length,l=s[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=s.length*5){o.slice(o.length-s.length*5);let c=0,l=0;for(let d=0;d+s.length<=o.length;d++)o.slice(d,d+s.length).every((f,p)=>f===s[p])?(c++,l=Math.max(l,c),d+=s.length-1):c=0;l<6&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const s=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=s[0],a=s[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let s=0,o=1,a=5;if(this.debugControls){const c=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(c)||(s=c);const l=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(l)||(o=l);const d=parseInt(this.debugControls.getValue("Timeout time"),10);isNaN(d)||(a=d)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),this.siData.RVFCpattern[(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+s)%this.siData.RVFCpattern.length]?setTimeout(()=>this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+o),a):this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateChromeWin=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>3?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS()),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=20,i=1e3;if(!this.siData.isRVFCSeen){const s=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(s<=0&&this.siData.patternTracking.length<=1-s){this.siData.patternTracking=[!0];for(let o=0;o<1-s;o++)this.siData.patternTracking.push(!1)}else s<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+s]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>i&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const s=this.siData.patternTracking;for(let o=1;o*r<=s.length;o++){for(let a=0;a+o*r<=s.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=s.slice(a+l*o,a+(l+1)*o),u=s.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=s.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const s=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-s.length;c>=0;c--){let l=!0;for(let d=0;d<s.length;d++)if(s[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%s.length,l=s[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=s.length*5){o.slice(o.length-s.length*5);let c=0,l=0;for(let d=0;d+s.length<=o.length;d++)o.slice(d,d+s.length).every((f,p)=>f===s[p])?(c++,l=Math.max(l,c),d+=s.length-1):c=0;l<6&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const s=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=s[0],a=s[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let s=0,o=2,a=!1;if(this.debugControls){const d=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(d)||(s=d);const u=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(u)||(o=u),parseInt(this.debugControls.getValue("Timeout time"),10),this.debugControls.getValue("Video Captur Card Mode")==="true"&&(a=!0)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),a&&(s+=1);const c=(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+s)%this.siData.RVFCpattern.length,l=(c+this.siData.RVFCpattern.length-1)%this.siData.RVFCpattern.length;if(this.siData.RVFCpattern[c]){let d=0;a&&this.siData.lastRendererFrameSent==this.vfcData.lastCalculatedMediaTimeVideoFrame&&this.siData.RVFCpattern[l]&&(d=2),this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+d+o)}}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateSifariMac=()=>{if(this.siData.expectedRefreshRate&&this.siData.expectedFPS&&(this.expectedRefreshRateCalculator.addFrameDuration(1/this.siData.refreshRate),this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS(),Math.abs(this.siData.expectedRefreshRate-this.siData.avgExpectedRefreshRate)>3&&this.siData.newRefreshRateFrames++,Math.abs(this.siData.expectedFPS-this.siData.workingFps)>3&&this.siData.newFPSFrames++,(this.siData.newRefreshRateFrames>10||this.siData.newFPSFrames>10)&&(this.siData.newRefreshRateFrames=0,this.siData.expectedRefreshRate=0,this.siData.newFPSFrames=0,this.siData.expectedFPS=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const n=Math.abs(this.siData.refreshRate-this.siData.workingFps)<2?8:20,r=1e3,i=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((h,m)=>m-h),s=2,o=i[0],a=i[1],c=o-a,l=1e3/this.afData.animationFPS,d=Math.round(l/4+.1),u=this.vfcData.timeRVFCnowToExpectedDisplayTime;if(this.siData.isRVFCSeen)this.metrics;else{const h=(-u-d)/l,m=Math.ceil(h),g=(Math.round(h)-h)*l,T=Math.abs(g)<=s,w=g<=0?m-1:m+1,k=Math.abs(-u-d)<=s;if(this.metrics&&(this.metrics.updateMetric("Is Smoothing Needed",T),this.metrics.updateMetric("Is More Than Border",m),this.metrics.updateMetric("Is Smoothed",w)),T&&!k){const R=Math.min(m,w),x=Math.max(m,w);this.metrics&&this.metrics.updateMetric("Pssblty next index",""+R+" "+x),this.siData.possibilityTracking[this.siData.possibilityTracking.length-R]=2,this.siData.possibilityTracking[this.siData.possibilityTracking.length-x]=1}else T&&k&&(this.metrics&&this.metrics.updateMetric("Pssblty next index","min"),this.siData.possibilityTracking[this.siData.possibilityTracking.length-1]=1,this.siData.possibilityTracking.push(2),this.siData.possibilityTracking.push(3));if(-u<d)this.siData.expectedDisplayTimeReminder=-u;else if(c>l&&-u-(c-l)<=d)this.siData.expectedDisplayTimeReminder=-u-(c-l);else{let R=-u-c,x=0,_=this.siData.determineFramesIntervals.length-1;for(let A=this.siData.determineAFIntervals.length-1;A>=0&&(_--,!(this.siData.determineAFIntervals[A]>l&&R-(this.siData.determineAFIntervals[A]-l)<=d||R<=d||this.siData.determineFramesIntervals[_].includes("vf")&&this.siData.workingFps<40));A--)R-=this.siData.determineAFIntervals[A],x+=1;if(this.siData.patternTracking.length<x+1){this.siData.patternTracking=[!0];for(let A=0;A<x;A++)this.siData.patternTracking.push(!1)}else this.siData.patternTracking[this.siData.patternTracking.length-1-x]=!0;this.siData.animationFramesToDisplayTime=x}}if(this.siData.isRAFSeen||(this.siData.expectedDisplayTimeReminder?(this.siData.expectedDisplayTimeReminder-d,this.siData.expectedDisplayTimeReminder+c<=d?(this.siData.patternTracking.push(!0),this.siData.animationFramesToDisplayTime=0):(this.siData.patternTracking[this.siData.patternTracking.length-1]=!0,this.siData.patternTracking.push(!1),this.siData.animationFramesToDisplayTime=1),this.siData.expectedDisplayTimeReminder=0):(this.siData.patternTracking.push(!1),this.siData.animationFramesToDisplayTime+=1),this.siData.possibilityTracking[this.siData.possibilityTracking.length-1]==3?this.siData.possibilityTracking.pop():this.siData.possibilityTracking.push(0)),this.siData.patternTracking.length>r&&this.siData.patternTracking.shift(),this.siData.possibilityTracking.length>r&&this.siData.possibilityTracking.shift(),!this.siData.isRVFCpatternDetected){const h=this.siData.patternTracking;for(let m=1;m*n<=h.length;m++){for(let g=0;g+m*n<=h.length;g++){let T=!0;for(let v=0;v<n-1;v++){const w=h.slice(g+v*m,g+(v+1)*m),k=h.slice(g+(v+1)*m,g+(v+2)*m);if(!w.every((R,x)=>R===k[x])){T=!1;break}}if(T){const v=h.slice(g,g+m),w=v.every(x=>!x),k=v.every(x=>x),R=this.afData.animationFPS-this.vfcData.videoFPS;if(w||k&&R>5)continue;this.siData.RVFCpattern=v,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected){this.siData.expectedRefreshRate=this.siData.refreshRate,this.siData.expectedFPS=this.siData.workingFps;break}}}if(this.siData.RVFCpattern.length>0){const h=this.siData.RVFCpattern,m=this.siData.patternTracking;let g=-1;for(let T=m.length-h.length*5;T>=0;T--){let v=!0;for(let w=0;w<h.length*5;w++)if(h[w%h.length]!==m[T+w]){v=!1;break}if(v){g=T;break}}if(g>=0){const T=(m.length-g)%h.length,v=h[T];this.siData.patternTrackingIndex=T,this.siData.patternNextValue=v?1:0}if(m.length>=h.length*5){m.slice(m.length-h.length*5);let T=0,v=0;for(let w=0;w+h.length<=m.length;w++)m.slice(w,w+h.length).every((R,x)=>R===h[x])?(T++,v=Math.max(v,T),w+=h.length-1):T=0;v<6&&(this.siData.isRVFCpatternDetected=!1)}}const f=[];for(let h=1;h<=3;h++)f.push(this.siData.possibilityTracking[this.siData.possibilityTracking.length-this.siData.RVFCpattern.length*h]);const p=Math.max(...f);if(this.metrics){let h="";if(this.siData.isRAFSeen?h="vf: "+c.toFixed(0):h="af: "+c.toFixed(0),this.siData.determineFramesIntervals.push(h),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),!this.siData.isRAFSeen){const m=this.afData.lastTimestamp-this.afData.previousTimestamp;this.siData.determineAFIntervals.push(m),this.siData.determineAFIntervals.length>10&&this.siData.determineAFIntervals.shift()}this.siData.isRVFCSeen||this.metrics.updateMetric("Last AF to VF time",(this.vfcData.lastTimestamp-this.afData.lastTimestamp).toFixed(0)),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("AF frames intervals",this.siData.determineAFIntervals.map(m=>m.toFixed(0)).join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(m=>m?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.map(m=>m?1:0).slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Pssblty found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pssblty array",this.siData.RVFCpattern.map(m=>m?1:0).join("")),this.metrics.updateMetric("Pssblty tracking",this.siData.possibilityTracking.slice(this.siData.possibilityTracking.length>100?this.siData.possibilityTracking.length-100:0).join("")),this.metrics.updateMetric("Pssblty next value",p),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate.toFixed(5)),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(5)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames),this.metrics.updateMetric("AF To Display Time",this.siData.animationFramesToDisplayTime),this.metrics.updateMetric("Call Renderer Reached",!1)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let h=0,m=0;if(this.debugControls){const T=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(T)||(h=T);const v=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(v)||(m=v),parseInt(this.debugControls.getValue("Timeout time"),10)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset}));const g=(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length+h)%this.siData.RVFCpattern.length;if(this.siData.RVFCpattern[g]||p){const T=Math.ceil(this.siData.animationFramesToDisplayTime/this.siData.RVFCpattern.length)+1,v=this.siData.RVFCpattern.map(De=>De?1:0).join("").repeat(T),w=(this.siData.RVFCpattern.length-this.siData.patternTrackingIndex)%this.siData.RVFCpattern.length,k=v.slice(0,w==0?-this.siData.RVFCpattern.length:-w);let R=0;const x=this.siData.possibilityTracking.length-1-this.siData.animationFramesToDisplayTime;k[k.length-1-this.siData.animationFramesToDisplayTime]=="0"&&this.siData.possibilityTracking[x]==1&&(R=-1);const _=this.siData.animationFramesToDisplayTime+R,A=_<=0?"":k.slice(-_);let Re=A.split("").filter(De=>De==="1").length*Math.round(60/this.siData.workingFps);this.siData.workingFps<40&&(Re+=1),this.siData.compensationMode&&!(p==2||this.siData.previousPossibilityValue==2)&&(this.siData.compensationCounter=1,this.siData.compensationMode=!1),this.siData.compensationCounter==1?this.siData.possibilityTracking.slice(-5).every(De=>De===0)&&(this.siData.compensationCounter-=.1):this.siData.compensationCounter>0&&this.siData.compensationCounter<1&&(this.siData.compensationCounter=Math.max(this.siData.compensationCounter-.1,0)),p==1?this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m-1,this.siData.compensationCounter):p==2&&this.siData.previousPossibilityValue==1?this.callRenderer(this.siData.lastRendererFrameSent+1,this.siData.compensationCounter):this.siData.RVFCpattern[g]&&((p==2||this.siData.previousPossibilityValue==2)&&Math.abs(this.afData.animationFPS-this.siData.workingFps)<5&&this.siData.lastRendererFrameSent==this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m?(this.callRenderer(this.siData.lastRendererFrameSent+1,this.siData.compensationCounter),this.siData.compensationMode=!0):this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m,this.siData.compensationCounter)),this.metrics&&(this.metrics.updateMetric("Call Renderer Reached",!0),this.metrics.updateMetric("Is Smoothing Needed",this.siData.compensationMode),this.metrics.updateMetric("Correction",Re),this.metrics.updateMetric("Compensation Counter",this.siData.compensationCounter),this.metrics.updateMetric("Repeated Pattern",v),this.metrics.updateMetric("Trimmed Pattern",k),this.metrics.updateMetric("Sliced Pattern",A),this.metrics.updateMetric("AF To Display Time Correction",R)),this.siData.previousPossibilityValue=p}else this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateFirefoxMac=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>3?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS()),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=5,i=1e3;if(!this.siData.isRVFCSeen){const s=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(s<=0&&this.siData.patternTracking.length<=1-s){this.siData.patternTracking=[!0];for(let o=0;o<1-s;o++)this.siData.patternTracking.push(!1)}else s<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+s]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>i&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const s=this.siData.patternTracking;for(let o=1;o*r<=s.length;o++){for(let a=0;a+o*r<=s.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=s.slice(a+l*o,a+(l+1)*o),u=s.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=s.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const s=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-s.length;c>=0;c--){let l=!0;for(let d=0;d<s.length;d++)if(s[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%s.length,l=s[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=s.length*5){o.slice(o.length-s.length*5);let c=0,l=0;for(let d=0;d+s.length<=o.length;d++)o.slice(d,d+s.length).every((f,p)=>f===s[p])?(c++,l=Math.max(l,c),d+=s.length-1):c=0;l<5&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const s=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=s[0],a=s[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let s=0,o=1;if(this.debugControls){const a=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(a)||(s=a);const c=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(c)||(o=c),parseInt(this.debugControls.getValue("Timeout time"),10)}if(this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),this.siData.RVFCpattern[(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+s)%this.siData.RVFCpattern.length]){let a=this.vfcData.lastCalculatedMediaTimeVideoFrame+o;a==this.siData.lastRendererFrameSent&&(a+=2),this.callRenderer(a)}else this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.callRenderer=(n,r)=>{if(!this.OTTPlayer.clocker||!this.OTTPlayer)return;this.siData.lastRendererFrameSent=n,this.metrics&&this.metrics.updateMetric("Last sent frame",n);const i=this.OTTPlayer.clocker.videoFPScalculator.getFPS();this.metrics&&this.metrics.updateMetric("FPS",i.toFixed(2));const s=F.fromFrames(n,6e4/1001),o=this.timeout.getTimeoutStatus();this.logger.setAttributes({timeout:o.isTimeout,timeout_reason:o.reason}),o.isTimeout?this.clearAugmentation(o.reason==="MKAdInProgress"?void 0:s):(this.OTTPlayer.clocker.videoFPScalculator.getPerciseFPS(),this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),this.renderAugmentation(s,r))},this.playbackTimeDelta=0,this.wallClockTimeDelta=0,this.dateTimeDelta=0,this.renderAugmentation=(n,r)=>{if(!this.OTTPlayer||!this.OTTPlayer.clocker)throw new Error("OTTPlayer is not initialized");const i=F.toStr(n);this.siData.lastMessageSent=i,this.options&&I(this.options,"Adapter")&&console.log(`Rendering augmentation for timecode: ${i} , ${n}`),this.metrics&&this.metrics.updateMetric("Last sent timecode",i),this.OTTPlayer.clocker.callRendererWorker(i,r)},this.onVideoSeeked=()=>{this.firstFrameTimecode=[0,0,0,0,0],this.firstFrameTimecodeSet=!1},this.clearAugmentation=n=>{if(!this.OTTPlayer||!this.OTTPlayer.clocker)throw new Error("OTTPlayer is not initialized");const r=n?F.toStr(n):void 0;this.options&&I(this.options,"Adapter")&&console.log("Clearing augmentation"),this.OTTPlayer.clocker.callRendererWorker(r,0,!0)},this.logger=e.logger,this.OTTPlayer=e,this.options=e.options,this.options&&I(this.options,"Adapter")&&console.log("Adapter is initialized",this.OTTPlayer),this.video=e.video,this.debug=this.options.debug?this.options.debug.on:!1,this.expectedRefreshRateCalculator=new nt(20),P.isChromeMac())this.platformSpecificFrameUpdate=this.determineFrameUpdateChromeMac;else if(P.isChromeWin())this.platformSpecificFrameUpdate=this.determineFrameUpdateChromeWin;else if(P.isSafariMac())this.platformSpecificFrameUpdate=this.determineFrameUpdateSifariMac;else{P.isFirefoxMac(),this.platformSpecificFrameUpdate=()=>{},this.logger.error("Unsupported platform: "+this.options.platform+" "+this.options.browserName),console.error("Unsupported platform: "+this.options.platform+" "+this.options.browserName),this.platformSupported=!1;return}if(this.debug){this.metrics=new jt;const n=this.metrics.createContainer(),r=this.metrics.createContainer(),i=this.metrics.createContainer(),s=this.metrics.createContainer(),o=this.metrics.createContainer(),a=this.metrics.createContainer(),c=this.metrics.createContainer(),l=this.metrics.createContainer(),d=this.metrics.createContainer(),u=this.metrics.createContainer(),f=this.metrics.createContainer(),p=this.metrics.createContainer(),h=this.metrics.createContainer();this.metrics.createMetric("RAF calls",n),this.metrics.createMetric("RVFC calls",n),this.metrics.createMetric("RVFC missed",n),this.metrics.createMetric("Last sent frame",n),this.metrics.createMetric("Last sent timecode",n),this.metrics.createMetric("Last metadata media time",r),this.metrics.createMetric("Last player time",r),this.metrics.createMetric("RVFC to expected display time",r),this.metrics.createMetric("Performance Now to expected display time",r),this.metrics.createMetric("Last metadata media time frame",i),this.metrics.createMetric("Last player time frame",i),this.metrics.createMetric("Last player time fraction",i),this.metrics.createMetric("Last media time double frame",s),this.metrics.createMetric("Last player time double frame",s),this.metrics.createMetric("Compensation Counter",s),this.metrics.createMetric("AF metadata now - perf.now()",o),this.metrics.createMetric("VF metadata now - perf.now()",o),this.metrics.createMetric("VF ExpDispTime - AF metadata now",o),this.metrics.createMetric("Time to presentation time",a),this.metrics.createMetric("Metadata presented frames",a),this.metrics.createMetric("Metadata processing duration",a),this.metrics.createMetric("FPS",c),this.metrics.createMetric("Refresh rate",c),this.metrics.createMetric("Last RAF call",c),this.metrics.createMetric("Last RVFC call",c),this.metrics.createMetric("RAF - RVFC dif",c),this.metrics.createMetric("Determine frames intervals",l),this.metrics.createMetric("Last AF to VF time",d),this.metrics.createMetric("AF frames intervals",d),this.metrics.createMetric("Expected Refresh Rate",u),this.metrics.createMetric("Avg Expected Refresh Rate",u),this.metrics.createMetric("New Refresh Rate Frames",u),this.metrics.createMetric("AF To Display Time",u),this.metrics.createMetric("AF To Display Time Correction",u),this.metrics.createMetric("Call Renderer Reached",u),this.metrics.createMetric("Is Smoothing Needed",f),this.metrics.createMetric("Is More Than Border",f),this.metrics.createMetric("Is Smoothed",f),this.metrics.createMetric("Correction",f),this.metrics.createMetric("Repeated Pattern",f),this.metrics.createMetric("Trimmed Pattern",f),this.metrics.createMetric("Sliced Pattern",f),this.metrics.createMetric("Pattern found",p),this.metrics.createMetric("Pattern array",p),this.metrics.createMetric("Pattern tracking",p),this.metrics.createMetric("Pattern next index",p),this.metrics.createMetric("Pattern next value",p),this.metrics.createMetric("Pssblty found",h),this.metrics.createMetric("Pssblty array",h),this.metrics.createMetric("Pssblty tracking",h),this.metrics.createMetric("Pssblty next index",h),this.metrics.createMetric("Pssblty next value",h),this.debugControls=new cr;const m=this.debugControls.createContainer(),g=this.debugControls.createContainer();this.debugControls.createInput("Window Start (ms)",4,m),this.debugControls.createInput("Window End (ms)",-11,m),this.debugControls.createSelect("Pattern offset",{"-5":-5,"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4,5:5},"0",m),this.debugControls.createCheckbox("Video Captur Card Mode",!1,m),P.isChromeWin()?this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"2",g):P.isSafariMac()?this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"0",g):this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"1",g),this.debugControls.createSelect("Timeout time",{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20},"5",g)}this.platformSupported&&(this.OTTPlayer.video.readyState>=3?this.setupAdapter():this.OTTPlayer.video.addEventListener("canplay",()=>this.setupAdapter(),{once:!0}))}setupAdapter(){const e=this.video;if(this.debug){const n=typeof wmcsdk<"u"?wmcsdk:wmcPlayer;console.log(n);const r=n.getAvailableVideoQualities(),i={};r.forEach(a=>{i[a.label]=a.id});const s=a=>{n.doSetVideoQuality(a.videoQuality)},o=this.debugControls.createContainer(s);this.debugControls.createSelect("videoQuality",i,r[0].id,o)}this.animationFrameLoopId=window.requestAnimationFrame(this.onAnimationFrame),this.videoFrameCallbackLoopId=e.requestVideoFrameCallback(this.onVideoFrame)}onNewSegmentForMetadata(e){if(!this.firstFrameTimecodeSet){const l=performance.now();l-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=l,this.logger.error("[Adapter] First frame timecode of the recieved segment not set")),console.error("[Adapter] First frame timecode of the recieved segment not set");return}const n=dr(this.firstFrameTimecode,6e4/1001);if(console.log(e),!e.mimeType.includes("video"))return;const r=lr(this.firstFrameTimecode,!0,!0);this.options&&I(this.options,"Adapter")&&console.log("New segment ("+e.url+"): "+r+" ("+n+") playing at "+e.playbackTime);const i=e.playbackTime,s=i-this.playbackTimeDelta;this.playbackTimeDelta=i,console.log("Delta playback: ",s);const o=e.wallClockTime/1e3,a=o-this.wallClockTimeDelta;if(this.wallClockTimeDelta=o,console.log("Delta wallClock: ",a),e.dateTime instanceof Date){const l=e.dateTime.getTime()/1e3,d=l-this.dateTimeDelta;this.dateTimeDelta=l,console.log("Delta dateTime: ",d)}const c={frame:n,playerTime:i,stringTime:r,lastUpdate:performance.now()};this.syncPoint=c,this.metrics,this.options&&I(this.options,"Adapter")&&console.log("url: "+e.url)}onNewMetadata(e){if(e&&e.metadata&&e.metadata.id==0||P.isSafariMac()){if(e.metadata.messageData)e.metadata.messageData=this.processTimedMetadata(e.metadata.messageData,e.metadata.presentationTime);else if(e.metadata.frames&&e.metadata.frames.length&&e.metadata.frames[0].key&&e.metadata.frames[0].key.toLowerCase()==="priv"){const n=e.metadata.frames.filter(r=>r.info&&r.info.toLowerCase().includes("ntc"));if(n.length){const r=`${n[n.length-1].info}\0${String.fromCharCode(...n[n.length-1].data)}`;e.metadata.messageData=this.processTimedMetadata(r,e.metadata.presentationTime)}}if(e.metadata.id==0||P.isSafariMac()&&this.timecode_offset==0){e.metadata.presentationTime*1e3;const n=new Date(this.tcTimeStamp-this.timecode_offset);let r=Math.round(n.getUTCMilliseconds()*30*2/1001)/2;const i=r%1;let s=1;i==.5&&(r=Math.floor(r),s=2),this.firstFrameTimecode=[n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),Math.floor(r),s==1?0:1],this.logger.setAttributes({segment_first_frame_timecode:this.firstFrameTimecode}),this.firstFrameTimecodeSet||this.logger.info(`[Adapter] Segment first frame timecode set: ${this.firstFrameTimecode}`),this.firstFrameTimecodeSet=!0,console.log("First frame timecode: ",this.firstFrameTimecode)}}}onAdEvent(e){this.options&&I(this.options,"Adapter")&&console.log(`Ad event: ${e}`),e==="start"?this.timeout.startTimeoutManual("MKAdInProgress"):e==="end"&&this.timeout.endTimoutManual()}processTimedMetadata(e,n){let r="";if(e&&e.includes("www.mediakind.com/NTC")){const i=e.replace(/.*NTC./,"");let s=0;for(;s+8<=i.length;){const o=i.substring(s,s+4),a=((i.charCodeAt(s+4)*256+i.charCodeAt(s+5))*256+i.charCodeAt(s+6))*256+i.charCodeAt(s+7);if(s+8+a>i.length)break;const c=i.substring(s+8,s+8+a);o=="utc_"&&new Date(parseInt(c)).getTime()/1e3,o=="tc__"&&(this.tcTimeStamp=new Date(parseInt(c)).getTime()),o==="offs"&&(this.timecode_offset=parseInt(c)/90),s+=8+a}}return r}delete(){this.animationFrameLoopId&&cancelAnimationFrame(this.animationFrameLoopId),this.videoFrameCallbackLoopId&&this.video.cancelVideoFrameCallback(this.videoFrameCallbackLoopId),this.intervalLoopId&&clearInterval(this.intervalLoopId),this.metrics&&this.metrics.delete(),this.debugControls&&this.debugControls.delete()}}class Y{constructor(e,n){this.size=1,this.positionElement=()=>{let i=0,s=0;this.corner=="left-top"?(this.element.style.top=`${i}px`,this.element.style.left=`${s}px`):this.corner=="right-top"?(this.element.style.top=`${i}px`,this.element.style.left=`${s+this.video.offsetWidth-this.size}px`):this.corner=="right-bottom"?(this.element.style.top=`${i+this.video.offsetHeight-this.size}px`,this.element.style.left=`${s+this.video.offsetWidth-this.size}px`):this.corner=="left-bottom"&&(this.element.style.top=`${i+this.video.offsetHeight-this.size}px`,this.element.style.left=`${s}px`)},this.video=n,this.container=n.parentElement,this.corner=e;const r=document.createElement("div");r.style.position="absolute",r.style.width=`${this.size}px`,r.style.height=`${this.size}px`,r.style.transition="background-color 0s",r.style.zIndex="100000",this.element=r,this.container.appendChild(r),this.positionElement()}getRandomColor(){const r=Math.floor(Math.random()*11)+0;return`rgb(${r},${r},${r})`}update(){this.element.style.backgroundColor=this.getRandomColor(),this.positionElement()}delete(){this.container.removeChild(this.element)}static createInAllCorners(e){return[new Y("left-top",e),new Y("right-top",e),new Y("right-bottom",e),new Y("left-bottom",e)]}static updateAll(e){e.forEach(n=>n.update())}static deleteAll(e){e.forEach(n=>n.delete())}}const E={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},M=console,K={};Object.keys(E).forEach(t=>{K[t]=M[t]});const me="Datadog Browser SDK:",C={debug:K.debug.bind(M,me),log:K.log.bind(M,me),info:K.info.bind(M,me),warn:K.warn.bind(M,me),error:K.error.bind(M,me)},st="https://docs.datadoghq.com",Ht=`${st}/real_user_monitoring/browser/troubleshooting`,Ae="More details:";function qt(t,e){return(...n)=>{try{return t(...n)}catch(r){C.error(e,r)}}}function Fe(t){return t!==0&&Math.random()*100<=t}function hr(t){return pr(t)&&t>=0&&t<=100}function pr(t){return typeof t=="number"}const ge=1e3,J=60*ge,Wt=60*J,mr=365*(24*Wt);function ye(){return new Date().getTime()}function G(){return ye()}function Oe(){return performance.now()}function V(){return{relative:Oe(),timeStamp:G()}}function gr(){return{relative:0,timeStamp:Yt()}}function yr(t,e){return e-t}function _r(t,e){return t+e}function br(t){return t-Yt()}let it;function Yt(){return it===void 0&&(it=performance.timing.navigationStart),it}const B=1024,Kt=1024*B,vr=/[^\u0000-\u007F]/;function ot(t){return vr.test(t)?window.TextEncoder!==void 0?new TextEncoder().encode(t).length:new Blob([t]).size:t.length}function Sr(t){return{...t}}function Jt(t,e){return Object.keys(t).some(n=>t[n]===e)}function _e(t){return Object.keys(t).length===0}function j(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let t=_dd_temp_;return delete Object.prototype._dd_temp_,typeof t!="object"&&(typeof self=="object"?t=self:typeof window=="object"?t=window:t={}),t}function ie(t,e){const n=j();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=t[n.Zone.__symbol__(e)]),r||(r=t[e]),r}let Le,Zt=!1;function Tr(t){Le=t}function wr(t){Zt=t}function xr(t,e,n){const r=n.value;n.value=function(...i){return(Le?S(r):r).apply(this,i)}}function S(t){return function(){return be(t,this,arguments)}}function be(t,e,n){try{return t.apply(e,n)}catch(r){Er(r)}}function Er(t){if(at(t),Le)try{Le(t)}catch(e){at(e)}}function at(...t){Zt&&C.error("[MONITOR]",...t)}function ve(t,e){return ie(j(),"setTimeout")(S(t),e)}function Xt(t){ie(j(),"clearTimeout")(t)}function ct(t,e){return ie(j(),"setInterval")(S(t),e)}function Qt(t){ie(j(),"clearInterval")(t)}class D{constructor(e){this.onFirstSubscribe=e,this.observers=[]}subscribe(e){return this.observers.push(e),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>e!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(e){this.observers.forEach(n=>n(e))}}function en(...t){return new D(e=>{const n=t.map(r=>r.subscribe(i=>e.notify(i)));return()=>n.forEach(r=>r.unsubscribe())})}function tn(t,e,n){let r=!1,i,s;return{throttled:(...o)=>{if(r){i=o;return}t(...o),r=!0,s=ve(()=>{i&&t(...i),r=!1,i=void 0},e)},cancel:()=>{Xt(s),r=!1,i=void 0}}}function H(){}function q(t){return t?(parseInt(t,10)^Math.random()*16>>parseInt(t,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,q)}const Ie=/([\w-]+)\s*=\s*([^;]+)/g;function Cr(t,e){for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n){if(n[1]===e)return n[2]}else break}}function kr(t){const e=new Map;for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n)e.set(n[1],n[2]);else break}return e}function Rr(t,e,n=""){const r=t.charCodeAt(e-1),s=r>=55296&&r<=56319?e+1:e;return t.length<=s?t:`${t.slice(0,s)}${n}`}function Dr(){return Ur()===0}let Pe;function Ur(){return Pe??(Pe=Ar())}function Ar(t=window){var e;const n=t.navigator.userAgent;return t.chrome||/HeadlessChrome/.test(n)?0:((e=t.navigator.vendor)===null||e===void 0?void 0:e.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function Se(t,e,n=0,r){const i=new Date;i.setTime(i.getTime()+n);const s=`expires=${i.toUTCString()}`,o=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",c=r&&r.secure?";secure":"",l=r&&r.partitioned?";partitioned":"";document.cookie=`${t}=${e};${s};path=/;samesite=${o}${a}${c}${l}`}function lt(t){return Cr(document.cookie,t)}let dt;function Z(t){return dt||(dt=kr(document.cookie)),dt.get(t)}function nn(t,e){Se(t,"",0,e)}function Fr(t){if(document.cookie===void 0||document.cookie===null)return!1;try{const e=`dd_cookie_test_${q()}`,n="test";Se(e,n,J,t);const r=lt(e)===n;return nn(e,t),r}catch(e){return C.error(e),!1}}let ut;function Or(){if(ut===void 0){const t=`dd_site_test_${q()}`,e="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!lt(t);)r=`${n.pop()}.${r}`,Se(t,e,ge,{domain:r});nn(t,{domain:r}),ut=r}return ut}const oe="_dd_s";function Me(t){return Object.values(t)}function Lr(t){return Object.entries(t)}const ft=4*Wt,rn=15*J,Ir=mr,Te={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},sn=/^([a-zA-Z]+)=([a-z0-9-]+)$/,ht="&";function Pr(t){return!!t&&(t.indexOf(ht)!==-1||sn.test(t))}const Mr="1";function X(t,e){const n={isExpired:Mr};return e.trackAnonymousUser&&(t!=null&&t.anonymousId?n.anonymousId=t==null?void 0:t.anonymousId:n.anonymousId=q()),n}function Be(t){return _e(t)}function on(t){return!Be(t)}function Ne(t){return t.isExpired!==void 0||!Br(t)}function Br(t){return(t.created===void 0||ye()-Number(t.created)<ft)&&(t.expire===void 0||ye()<Number(t.expire))}function an(t){t.expire=String(ye()+rn)}function pt(t){return Lr(t).map(([e,n])=>e==="anonymousId"?`aid=${n}`:`${e}=${n}`).join(ht)}function cn(t){const e={};return Pr(t)&&t.split(ht).forEach(n=>{const r=sn.exec(n);if(r!==null){const[,i,s]=r;i==="aid"?e.anonymousId=s:e[i]=s}}),e}const Nr="_dd",$r="_dd_r",zr="_dd_l",Gr="rum",Vr="logs";function jr(t){if(!Z(oe)){const n=Z(Nr),r=Z($r),i=Z(zr),s={};n&&(s.id=n),i&&/^[01]$/.test(i)&&(s[Vr]=i),r&&/^[012]$/.test(r)&&(s[Gr]=r),on(s)&&(an(s),t.persistSession(s))}}function ln(t){const e=Kr(t);return Fr(e)?{type:Te.COOKIE,cookieOptions:e}:void 0}function Hr(t,e){const n={isLockEnabled:Dr(),persistSession:qr(e),retrieveSession:Yr,expireSession:r=>Wr(e,r,t)};return jr(n),n}function qr(t){return e=>{Se(oe,pt(e),rn,t)}}function Wr(t,e,n){const r=X(e,n);Se(oe,pt(r),n.trackAnonymousUser?Ir:ft,t)}function Yr(){const t=lt(oe);return cn(t)}function Kr(t){const e={};return e.secure=!!t.useSecureSessionCookie||!!t.usePartitionedCrossSiteSessionCookie,e.crossSite=!!t.usePartitionedCrossSiteSessionCookie,e.partitioned=!!t.usePartitionedCrossSiteSessionCookie,t.trackSessionAcrossSubdomains&&(e.domain=Or()),e}const Jr="_dd_test_";function dn(){try{const t=q(),e=`${Jr}${t}`;localStorage.setItem(e,t);const n=localStorage.getItem(e);return localStorage.removeItem(e),t===n?{type:Te.LOCAL_STORAGE}:void 0}catch{return}}function Zr(t){return{isLockEnabled:!1,persistSession:un,retrieveSession:Xr,expireSession:e=>Qr(e,t)}}function un(t){localStorage.setItem(oe,pt(t))}function Xr(){const t=localStorage.getItem(oe);return cn(t)}function Qr(t,e){un(X(t,e))}const es=10,ts=100,fn=[];let $e;function Q(t,e,n=0){var r;const{isLockEnabled:i,persistSession:s,expireSession:o}=e,a=f=>s({...f,lock:l}),c=()=>{const f=e.retrieveSession(),p=f.lock;return f.lock&&delete f.lock,{session:f,lock:p}};if($e||($e=t),t!==$e){fn.push(t);return}if(i&&n>=ts){hn(e);return}let l,d=c();if(i){if(d.lock){ze(t,e,n);return}if(l=q(),a(d.session),d=c(),d.lock!==l){ze(t,e,n);return}}let u=t.process(d.session);if(i&&(d=c(),d.lock!==l)){ze(t,e,n);return}if(u&&(Ne(u)?o(u):(an(u),i?a(u):s(u))),i&&!(u&&Ne(u))){if(d=c(),d.lock!==l){ze(t,e,n);return}s(d.session),u=d.session}(r=t.after)===null||r===void 0||r.call(t,u||d.session),hn(e)}function ze(t,e,n){ve(()=>{Q(t,e,n+1)},es)}function hn(t){$e=void 0;const e=fn.shift();e&&Q(e,t)}const pn=ge;function ns(t){switch(t.sessionPersistence){case Te.COOKIE:return ln(t);case Te.LOCAL_STORAGE:return dn();case void 0:{let e=ln(t);return!e&&t.allowFallbackToLocalStorage&&(e=dn()),e}default:C.error(`Invalid session persistence '${String(t.sessionPersistence)}'`)}}function rs(t,e,n,r){const i=new D,s=new D,o=new D,a=t.type===Te.COOKIE?Hr(e,t.cookieOptions):Zr(e),{expireSession:c}=a,l=ct(h,pn);let d;g();const{throttled:u,cancel:f}=tn(()=>{Q({process:_=>{if(Be(_))return;const A=m(_);return T(A),A},after:_=>{on(_)&&!v()&&R(_),d=_}},a)},pn);function p(){Q({process:_=>v()?m(_):void 0},a)}function h(){Q({process:_=>Ne(_)?X(_,e):void 0,after:m},a)}function m(_){return Ne(_)&&(_=X(_,e)),v()&&(w(_)?k():(o.notify({previousState:d,newState:_}),d=_)),_}function g(){Q({process:_=>{if(Be(_))return X(_,e)},after:_=>{d=_}},a)}function T(_){if(Be(_))return!1;const{trackingType:A,isTracked:It}=r(_[n]);_[n]=A,delete _.isExpired,It&&!_.id&&(_.id=q(),_.created=String(ye()))}function v(){return d[n]!==void 0}function w(_){return d.id!==_.id||d[n]!==_[n]}function k(){d=X(d,e),s.notify()}function R(_){d=_,i.notify()}function x(_){Q({process:A=>({...A,..._}),after:m},a)}return{expandOrRenewSession:u,expandSession:p,getSession:()=>d,renewObservable:i,expireObservable:s,sessionStateUpdateObservable:o,restartSession:g,expire:()=>{f(),c(d),m(X(d,e))},stop:()=>{Qt(l)},updateSessionState:x}}const mt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function ss(t){const e=new D;return{tryToInit(n){t||(t=n)},update(n){t=n,e.notify()},isGranted(){return t===mt.GRANTED},observable:e}}function ee(t,e,n){if(typeof t!="object"||t===null)return JSON.stringify(t);const r=ae(Object.prototype),i=ae(Array.prototype),s=ae(Object.getPrototypeOf(t)),o=ae(t);try{return JSON.stringify(t,e,n)}catch{return"<error: unable to serialize object>"}finally{r(),i(),s(),o()}}function ae(t){const e=t,n=e.toJSON;return n?(delete e.toJSON,()=>{e.toJSON=n}):H}function gt(t){return is(t,location.href).href}function is(t,e){const n=os();if(n)try{return e!==void 0?new n(t,e):new n(t)}catch(s){throw new Error(`Failed to construct URL: ${String(s)} ${ee({url:t,base:e})}`)}if(e===void 0&&!/:/.test(t))throw new Error(`Invalid URL: '${t}'`);let r=document;const i=r.createElement("a");if(e!==void 0){r=document.implementation.createHTMLDocument("");const s=r.createElement("base");s.href=e,r.head.appendChild(s),r.body.appendChild(i)}return i.href=t,i}const mn=URL;let Ge;function os(){if(Ge===void 0)try{Ge=new mn("http://test/path").href==="http://test/path"}catch{Ge=!1}return Ge?mn:void 0}const as="datad0g.com",cs="dd0g-gov.com",ce="datadoghq.com",ls="ddog-gov.com",ds="pci.browser-intake-datadoghq.com",us=["ddsource","ddtags"];function we(t,e,n){const r=fs(t,e);return{build(i,s){const o=ps(t,e,n,i,s);return r(o)},urlPrefix:r(""),trackType:e}}function fs(t,e){const n=`/api/v2/${e}`,r=t.proxy;if(typeof r=="string"){const s=gt(r);return o=>`${s}?ddforward=${encodeURIComponent(`${n}?${o}`)}`}if(typeof r=="function")return s=>r({path:n,parameters:s});const i=hs(e,t);return s=>`https://${i}${n}?${s}`}function hs(t,e){const{site:n=ce,internalAnalyticsSubdomain:r}=e;if(t==="logs"&&e.usePciIntake&&n===ce)return ds;if(r&&n===ce)return`${r}.${ce}`;if(n===cs)return`http-intake.logs.${n}`;const i=n.split("."),s=i.pop();return`browser-intake-${i.join("-")}.${s}`}function ps({clientToken:t,internalAnalyticsSubdomain:e},n,r,i,{retry:s,encoding:o}){const a=["sdk_version:6.5.0",`api:${i}`].concat(r);s&&a.push(`retry_count:${s.count}`,`retry_after:${s.lastFailureStatus}`);const c=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${t}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${q()}`];return o&&c.push(`dd-evp-encoding=${o}`),n==="rum"&&c.push(`batch_time=${G()}`),e&&c.reverse(),c.join("&")}const ms=200;function gs(t){const{env:e,service:n,version:r,datacenter:i}=t,s=[];return e&&s.push(Ve("env",e)),n&&s.push(Ve("service",n)),r&&s.push(Ve("version",r)),i&&s.push(Ve("datacenter",i)),s}function Ve(t,e){const n=ms-t.length-1;(e.length>n||ys(e))&&C.warn(`${t} value doesn't meet tag requirements and will be sanitized. ${Ae} ${st}/getting_started/tagging/#defining-tags`);const r=e.replace(/,/g,"_");return`${t}:${r}`}function ys(t){return _s()?new RegExp("[^\\p{Ll}\\p{Lo}0-9_:./-]","u").test(t):!1}function _s(){try{return new RegExp("[\\p{Ll}]","u"),!0}catch{return!1}}function bs(t){const e=t.site||ce,n=gs(t),r=vs(t,n);return{replica:Ss(t,n),site:e,...r}}function vs(t,e){return{logsEndpointBuilder:we(t,"logs",e),rumEndpointBuilder:we(t,"rum",e),sessionReplayEndpointBuilder:we(t,"replay",e)}}function Ss(t,e){if(!t.replica)return;const n={...t,site:ce,clientToken:t.replica.clientToken},r={logsEndpointBuilder:we(n,"logs",e),rumEndpointBuilder:we(n,"rum",e)};return{applicationId:t.replica.applicationId,...r}}function Ts(t){return us.every(e=>t.includes(e))}function yt(t,e){return t!=null&&typeof t!="string"?(C.error(`${e} must be defined as a string`),!1):!0}function ws(t){return t&&typeof t=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(t)?(C.error(`Site should be a valid Datadog site. ${Ae} ${st}/getting_started/site/.`),!1):!0}function je(t,e){return t!==void 0&&!hr(t)?(C.error(`${e} Sample Rate should be a number between 0 and 100`),!1):!0}function xs(t){var e,n,r,i,s,o;if(!t||!t.clientToken){C.error("Client Token is not configured, we will not send any data.");return}if(!(!ws(t.site)||!je(t.sessionSampleRate,"Session")||!je(t.telemetrySampleRate,"Telemetry")||!je(t.telemetryConfigurationSampleRate,"Telemetry Configuration")||!je(t.telemetryUsageSampleRate,"Telemetry Usage")||!yt(t.version,"Version")||!yt(t.env,"Env")||!yt(t.service,"Service"))){if(t.trackingConsent!==void 0&&!Jt(mt,t.trackingConsent)){C.error('Tracking Consent should be either "granted" or "not-granted"');return}return{beforeSend:t.beforeSend&&qt(t.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:ns(t),sessionSampleRate:(e=t.sessionSampleRate)!==null&&e!==void 0?e:100,telemetrySampleRate:(n=t.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=t.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(i=t.telemetryUsageSampleRate)!==null&&i!==void 0?i:5,service:t.service||void 0,silentMultipleInit:!!t.silentMultipleInit,allowUntrustedEvents:!!t.allowUntrustedEvents,trackingConsent:(s=t.trackingConsent)!==null&&s!==void 0?s:mt.GRANTED,trackAnonymousUser:(o=t.trackAnonymousUser)!==null&&o!==void 0?o:!0,storeContextsAcrossPages:!!t.storeContextsAcrossPages,batchBytesLimit:16*B,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*ge,batchMessagesLimit:50,messageBytesLimit:256*B,...bs(t)}}}function Es(t){return{session_sample_rate:t.sessionSampleRate,telemetry_sample_rate:t.telemetrySampleRate,telemetry_configuration_sample_rate:t.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:t.telemetryUsageSampleRate,use_before_send:!!t.beforeSend,use_partitioned_cross_site_session_cookie:t.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:t.useSecureSessionCookie,use_proxy:!!t.proxy,silent_multiple_init:t.silentMultipleInit,track_session_across_subdomains:t.trackSessionAcrossSubdomains,track_anonymous_user:t.trackAnonymousUser,session_persistence:t.sessionPersistence,allow_fallback_to_local_storage:!!t.allowFallbackToLocalStorage,store_contexts_across_pages:!!t.storeContextsAcrossPages,allow_untrusted_events:!!t.allowUntrustedEvents,tracking_consent:t.trackingConsent}}var _t;(function(t){t.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",t.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(_t||(_t={}));const gn=new Set;function Cs(t){Array.isArray(t)&&ks(t.filter(e=>Jt(_t,e)))}function ks(t){t.forEach(e=>{gn.add(e)})}function Rs(){return gn}const xe="?";function N(t){const e=[];let n=bt(t,"stack");const r=String(t);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`
2
- `).forEach(i=>{const s=As(i)||Os(i)||Is(i)||Bs(i);s&&(!s.func&&s.line&&(s.func=xe),e.push(s))}),{message:bt(t,"message"),name:bt(t,"name"),stack:e}}const yn="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\w+\\.|\\/).*?)",le="(?::(\\d+))",Ds=new RegExp(`^\\s*at (.*?) ?\\(${yn}${le}?${le}?\\)?\\s*$`,"i"),Us=new RegExp(`\\((\\S*)${le}${le}\\)`);function As(t){const e=Ds.exec(t);if(!e)return;const n=e[2]&&e[2].indexOf("native")===0,r=e[2]&&e[2].indexOf("eval")===0,i=Us.exec(e[2]);return r&&i&&(e[2]=i[1],e[3]=i[2],e[4]=i[3]),{args:n?[e[2]]:[],column:e[4]?+e[4]:void 0,func:e[1]||xe,line:e[3]?+e[3]:void 0,url:n?void 0:e[2]}}const Fs=new RegExp(`^\\s*at ?${yn}${le}?${le}??\\s*$`,"i");function Os(t){const e=Fs.exec(t);if(e)return{args:[],column:e[3]?+e[3]:void 0,func:xe,line:e[2]?+e[2]:void 0,url:e[1]}}const Ls=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Is(t){const e=Ls.exec(t);if(e)return{args:[],column:e[4]?+e[4]:void 0,func:e[1]||xe,line:+e[3],url:e[2]}}const Ps=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Ms=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Bs(t){const e=Ps.exec(t);if(!e)return;const n=e[3]&&e[3].indexOf(" > eval")>-1,r=Ms.exec(e[3]);return n&&r&&(e[3]=r[1],e[4]=r[2],e[5]=void 0),{args:e[2]?e[2].split(","):[],column:e[5]?+e[5]:void 0,func:e[1]||xe,line:e[4]?+e[4]:void 0,url:e[3]}}function bt(t,e){if(typeof t!="object"||!t||!(e in t))return;const n=t[e];return typeof n=="string"?n:void 0}function Ns(t,e,n,r){const i=[{url:e,column:r,line:n}],{name:s,message:o}=zs(t);return{name:s,message:o,stack:i}}const $s=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\s\S]*)$/;function zs(t){let e,n;return{}.toString.call(t)==="[object String]"&&([,e,n]=$s.exec(t)),{name:e,message:n}}function He(t){const n=new Error(t);n.name="HandlingStack";let r;return be(()=>{const i=N(n);i.stack=i.stack.slice(2),r=te(i)}),r}function te(t){let e=_n(t);return t.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,i=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",s=n.line?`:${n.line}`:"",o=n.line&&n.column?`:${n.column}`:"";e+=`
3
- at ${r}${i} @ ${n.url}${s}${o}`}),e}function _n(t){return`${t.name||"Error"}: ${t.message}`}function ne(t,e,n,{computeHandlingStack:r}={}){let i=t[e];if(typeof i!="function")if(e in t&&e.startsWith("on"))i=H;else return{stop:H};let s=!1;const o=function(){if(s)return i.apply(this,arguments);const a=Array.from(arguments);let c;be(n,null,[{target:this,parameters:a,onPostCall:d=>{c=d},handlingStack:r?He("instrumented method"):void 0}]);const l=i.apply(this,a);return c&&be(c,null,[l]),l};return t[e]=o,{stop:()=>{s=!0,t[e]===o&&(t[e]=i)}}}const Gs=220*B,Vs="$",js=3;function $(t,e=Gs){const n=ae(Object.prototype),r=ae(Array.prototype),i=[],s=new WeakMap,o=vt(t,Vs,void 0,i,s),a=JSON.stringify(o);let c=a?a.length:0;if(c>e){Tt(e,"discarded",t);return}for(;i.length>0&&c<e;){const l=i.shift();let d=0;if(Array.isArray(l.source))for(let u=0;u<l.source.length;u++){const f=vt(l.source[u],l.path,u,i,s);if(f!==void 0?c+=JSON.stringify(f).length:c+=4,c+=d,d=1,c>e){Tt(e,"truncated",t);break}l.target[u]=f}else for(const u in l.source)if(Object.prototype.hasOwnProperty.call(l.source,u)){const f=vt(l.source[u],l.path,u,i,s);if(f!==void 0&&(c+=JSON.stringify(f).length+d+u.length+js,d=1),c>e){Tt(e,"truncated",t);break}l.target[u]=f}}return n(),r(),o}function vt(t,e,n,r,i){const s=Ws(t);if(!s||typeof s!="object")return Hs(s);const o=St(s);if(o!=="[Object]"&&o!=="[Array]"&&o!=="[Error]")return o;const a=t;if(i.has(a))return`[Reference seen at ${i.get(a)}]`;const c=n!==void 0?`${e}.${n}`:e,l=Array.isArray(s)?[]:{};return i.set(a,c),r.push({source:s,target:l,path:c}),l}function Hs(t){return typeof t=="bigint"?`[BigInt] ${t.toString()}`:typeof t=="function"?`[Function] ${t.name||"unknown"}`:typeof t=="symbol"?`[Symbol] ${t.description||t.toString()}`:t}function St(t){try{if(t instanceof Event)return qs(t);if(t instanceof RegExp)return`[RegExp] ${t.toString()}`;const n=Object.prototype.toString.call(t).match(/\[object (.*)\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function qs(t){return{type:t.type,isTrusted:t.isTrusted,currentTarget:t.currentTarget?St(t.currentTarget):null,target:t.target?St(t.target):null}}function Ws(t){const e=t;if(e&&typeof e.toJSON=="function")try{return e.toJSON()}catch{}return t}function Tt(t,e,n){C.warn(`The data provided has been ${e} as it is over the limit of ${t} characters:`,n)}const bn="No stack, consider using an instance of Error";function vn({stackTrace:t,originalError:e,handlingStack:n,componentStack:r,startClocks:i,nonErrorPrefix:s,source:o,handling:a}){const c=W(e),l=Ys(t,c,s,e),d=Ks(c,t)?te(t):bn,u=c?wn(e,o):void 0,f=t?t.name:void 0,p=Sn(e),h=Tn(e);return{startClocks:i,source:o,handling:a,handlingStack:n,componentStack:r,originalError:e,type:f,message:l,stack:d,causes:u,fingerprint:p,context:h}}function Ys(t,e,n,r){return t!=null&&t.message&&(t!=null&&t.name)?t.message:e?"Empty message":`${n} ${ee($(r))}`}function Ks(t,e){return e===void 0?!1:t?!0:e.stack.length>0&&(e.stack.length>1||e.stack[0].url!==void 0)}function Sn(t){return W(t)&&"dd_fingerprint"in t?String(t.dd_fingerprint):void 0}function Tn(t){if(t!==null&&typeof t=="object"&&"dd_context"in t)return t.dd_context}function Js(t){var e;return(e=/@ (.+)/.exec(t))===null||e===void 0?void 0:e[1]}function W(t){return t instanceof Error||Object.prototype.toString.call(t)==="[object Error]"}function wn(t,e){let n=t;const r=[];for(;W(n==null?void 0:n.cause)&&r.length<10;){const i=N(n.cause);r.push({message:n.cause.message,source:e,type:i==null?void 0:i.name,stack:te(i)}),n=n.cause}return r.length?r:void 0}const O={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Zs(t){const e=(i,s)=>{const o=vn({stackTrace:i,originalError:s,startClocks:V(),nonErrorPrefix:"Uncaught",source:O.SOURCE,handling:"unhandled"});t.notify(o)},{stop:n}=Xs(e),{stop:r}=Qs(e);return{stop:()=>{n(),r()}}}function Xs(t){return ne(window,"onerror",({parameters:[e,n,r,i,s]})=>{let o;W(s)?o=N(s):o=Ns(e,n,r,i),t(o,s??e)})}function Qs(t){return ne(window,"onunhandledrejection",({parameters:[e]})=>{const n=e.reason||"Empty reason",r=N(n);t(r,n)})}function ei(t){const e={version:"6.5.0",onReady(n){n()},...t};return Object.defineProperty(e,"_setDebug",{get(){return wr},enumerable:!1}),e}function ti(t,e,n){const r=t[e];r&&!r.q&&r.version&&C.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),t[e]=n,r&&r.q&&r.q.forEach(i=>qt(i,"onReady callback threw an error:")())}function xn(t,e){e.silentMultipleInit||C.error(`${t} is already initialized.`)}function re(t,e,n,r,i){return wt(t,e,[n],r,i)}function wt(t,e,n,r,{once:i,capture:s,passive:o}={}){const a=S(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!t.allowUntrustedEvents||(i&&u(),r(f))}),c=o?{capture:s,passive:o}:s,l=window.EventTarget&&e instanceof EventTarget?window.EventTarget.prototype:e,d=ie(l,"addEventListener");n.forEach(f=>d.call(e,f,a,c));function u(){const f=ie(l,"removeEventListener");n.forEach(p=>f.call(e,p,a,c))}return{stop:u}}const qe={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function ni(t,e){const n=[];e.includes(qe.cspViolation)&&n.push(si(t));const r=e.filter(i=>i!==qe.cspViolation);return r.length&&n.push(ri(r)),en(...n)}function ri(t){return new D(e=>{if(!window.ReportingObserver)return;const n=S((i,s)=>i.forEach(o=>e.notify(ii(o)))),r=new window.ReportingObserver(n,{types:t,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function si(t){return new D(e=>{const{stop:n}=re(t,document,"securitypolicyviolation",r=>{e.notify(oi(r))});return n})}function ii(t){const{type:e,body:n}=t;return En({type:n.id,message:`${e}: ${n.message}`,originalError:t,stack:Cn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function oi(t){const e=`'${t.blockedURI}' blocked by '${t.effectiveDirective}' directive`;return En({type:t.effectiveDirective,message:`${qe.cspViolation}: ${e}`,originalError:t,csp:{disposition:t.disposition},stack:Cn(t.effectiveDirective,t.originalPolicy?`${e} of the policy "${Rr(t.originalPolicy,100,"...")}"`:"no policy",t.sourceFile,t.lineNumber,t.columnNumber)})}function En(t){return{startClocks:V(),source:O.REPORT,handling:"unhandled",...t}}function Cn(t,e,n,r,i){return n?te({name:t,message:e,stack:[{func:"?",url:n,line:r??void 0,column:i??void 0}]}):void 0}function kn(t,e){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:t,payload:e})}function Rn(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function We(t,e,n=ai()){if(e===void 0)return t;if(typeof e!="object"||e===null)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const i=e.flags||[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.sticky?"y":"",e.unicode?"u":""].join("");return new RegExp(e.source,i)}if(n.hasAlreadyBeenSeen(e))return;if(Array.isArray(e)){const i=Array.isArray(t)?t:[];for(let s=0;s<e.length;++s)i[s]=We(i[s],e[s],n);return i}const r=Rn(t)==="object"?t:{};for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=We(r[i],e[i],n));return r}function Dn(t){return We(void 0,t)}function de(...t){let e;for(const n of t)n!=null&&(e=We(e,n));return e}function ai(){if(typeof WeakSet<"u"){const e=new WeakSet;return{hasAlreadyBeenSeen(n){const r=e.has(n);return r||e.add(n),r}}}const t=[];return{hasAlreadyBeenSeen(e){const n=t.indexOf(e)>=0;return n||t.push(e),n}}}function ci(){var t;const e=window.navigator;return{status:e.onLine?"connected":"not_connected",interfaces:e.connection&&e.connection.type?[e.connection.type]:void 0,effective_type:(t=e.connection)===null||t===void 0?void 0:t.effectiveType}}function li(t){const e=new Set;return t.forEach(n=>e.add(n)),Array.from(e)}function Un(t,e){const n=t.indexOf(e);n>=0&&t.splice(n,1)}const di=500;function An(){const t=[];return{add:i=>{t.push(i)>di&&t.splice(0,1)},remove:i=>{Un(t,i)},drain:i=>{t.forEach(s=>s(i)),t.length=0}}}const se={log:"log",configuration:"configuration",usage:"usage"},ui=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],fi=[ls];let Fn=An(),ue=t=>{Fn.add(()=>ue(t))};function hi(t,e){let n;const r=new D,i=new Set,s=!fi.includes(e.site)&&Fe(e.telemetrySampleRate),o={[se.log]:s,[se.configuration]:s&&Fe(e.telemetryConfigurationSampleRate),[se.usage]:s&&Fe(e.telemetryUsageSampleRate)},a=pi();ue=l=>{const d=ee(l);if(o[l.type]&&i.size<e.maxTelemetryEventsPerPage&&!i.has(d)){const u=c(t,l,a);r.notify(u),kn("telemetry",u),i.add(d)}},Tr(Ln);function c(l,d,u){return de({type:"telemetry",date:G(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:de(d,{runtime_env:u,connectivity:ci(),sdk_setup:"npm"}),experimental_features:Array.from(Rs())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:r,enabled:s}}function pi(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function mi(){Fn.drain()}function gi(t){return t.site===as}function On(t,e){at(E.debug,t,e),ue({type:se.log,message:t,status:"debug",...e})}function Ln(t,e){ue({type:se.log,status:"error",...bi(t),...e})}function yi(t){ue({type:se.configuration,configuration:t})}function _i(t){ue({type:se.usage,usage:t})}function bi(t){if(W(t)){const e=N(t);return{error:{kind:e.name,stack:te(vi(e))},message:e.message}}return{error:{stack:bn},message:`Uncaught ${ee(t)}`}}function vi(t){return t.stack=t.stack.filter(e=>!e.url||ui.some(n=>e.url.startsWith(n))),t}const Ee=1/0,Si=J;let Ce=null;const Ye=new Set;function Ti(){Ye.forEach(t=>t())}function wi({expireDelay:t,maxEntries:e}){let n=[];const r=[];Ce||(Ce=ct(()=>Ti(),Si));const i=()=>{const p=Oe()-t;for(;n.length>0&&n[n.length-1].endTime<p;){const h=n.pop();h&&r.push(h.startTime)}};Ye.add(i);function s(p,h){const m={value:p,startTime:h,endTime:Ee,remove:()=>{Un(n,m)},close:g=>{m.endTime=g}};return e&&n.length>=e&&n.pop(),n.unshift(m),m}function o(p=Ee,h={returnInactive:!1}){for(const m of n)if(m.startTime<=p){if(h.returnInactive||p<=m.endTime)return m.value;break}}function a(p){const h=n[0];h&&h.endTime===Ee&&h.close(p)}function c(p=Ee,h=0){const m=_r(p,h);return n.filter(g=>g.startTime<=m&&p<=g.endTime).map(g=>g.value)}function l(){return n.map(({startTime:p,endTime:h,value:m})=>({startTime:p,endTime:h===Ee?"Infinity":h,value:m}))}function d(){return r}function u(){n=[]}function f(){Ye.delete(i),Ye.size===0&&Ce&&(Qt(Ce),Ce=null)}return{add:s,find:o,closeActive:a,findAll:c,reset:u,stop:f,getAllEntries:l,getDeletedEntries:d}}const xi=J,Ei=ft;function Ci(t,e,n,r){const i=new D,s=new D,o=rs(t.sessionStoreStrategyType,t,e,n),a=wi({expireDelay:Ei});o.renewObservable.subscribe(()=>{a.add(c(),Oe()),i.notify()}),o.expireObservable.subscribe(()=>{s.notify(),a.closeActive(Oe())}),o.expandOrRenewSession(),a.add(c(),gr().relative),r.observable.subscribe(()=>{r.isGranted()?o.expandOrRenewSession():o.expire()}),ki(t,()=>{r.isGranted()&&o.expandOrRenewSession()}),Ri(t,()=>o.expandSession()),Di(t,()=>o.restartSession());function c(){return{id:o.getSession().id,trackingType:o.getSession()[e],isReplayForced:!!o.getSession().forcedReplay,anonymousId:o.getSession().anonymousId}}return{findSession:(l,d)=>a.find(l,d),renewObservable:i,expireObservable:s,sessionStateUpdateObservable:o.sessionStateUpdateObservable,expire:o.expire,updateSessionState:o.updateSessionState}}function ki(t,e){wt(t,window,["click","touchstart","keydown","scroll"],e,{capture:!0,passive:!0})}function Ri(t,e){const n=()=>{document.visibilityState==="visible"&&e()};re(t,document,"visibilitychange",n),ct(n,xi)}function Di(t,e){re(t,window,"resume",e,{capture:!0})}function In(t){return t>=500}function Ui(t){try{return t.clone()}catch{return}}const Ai=80*B,Fi=32,Pn=3*Kt,Oi=J,Mn=ge;function Bn(t,e,n,r,i){e.transportStatus===0&&e.queuedPayloads.size()===0&&e.bandwidthMonitor.canHandle(t)?$n(t,e,n,{onSuccess:()=>zn(0,e,n,r,i),onFailure:()=>{e.queuedPayloads.enqueue(t),Nn(e,n,r,i)}}):e.queuedPayloads.enqueue(t)}function Nn(t,e,n,r){t.transportStatus===2&&ve(()=>{const i=t.queuedPayloads.first();$n(i,t,e,{onSuccess:()=>{t.queuedPayloads.dequeue(),t.currentBackoffTime=Mn,zn(1,t,e,n,r)},onFailure:()=>{t.currentBackoffTime=Math.min(Oi,t.currentBackoffTime*2),Nn(t,e,n,r)}})},t.currentBackoffTime)}function $n(t,e,n,{onSuccess:r,onFailure:i}){e.bandwidthMonitor.add(t),n(t,s=>{e.bandwidthMonitor.remove(t),Li(s)?(e.transportStatus=e.bandwidthMonitor.ongoingRequestCount>0?1:2,t.retry={count:t.retry?t.retry.count+1:1,lastFailureStatus:s.status},i()):(e.transportStatus=0,r())})}function zn(t,e,n,r,i){t===0&&e.queuedPayloads.isFull()&&!e.queueFullReported&&(i({message:`Reached max ${r} events size queued for upload: ${Pn/Kt}MiB`,source:O.AGENT,startClocks:V()}),e.queueFullReported=!0);const s=e.queuedPayloads;for(e.queuedPayloads=Gn();s.size()>0;)Bn(s.dequeue(),e,n,r,i)}function Li(t){return t.type!=="opaque"&&(t.status===0&&!navigator.onLine||t.status===408||t.status===429||In(t.status))}function Ii(){return{transportStatus:0,currentBackoffTime:Mn,bandwidthMonitor:Pi(),queuedPayloads:Gn(),queueFullReported:!1}}function Gn(){const t=[];return{bytesCount:0,enqueue(e){this.isFull()||(t.push(e),this.bytesCount+=e.bytesCount)},first(){return t[0]},dequeue(){const e=t.shift();return e&&(this.bytesCount-=e.bytesCount),e},size(){return t.length},isFull(){return this.bytesCount>=Pn}}}function Pi(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(t){return this.ongoingRequestCount===0||this.ongoingByteCount+t.bytesCount<=Ai&&this.ongoingRequestCount<Fi},add(t){this.ongoingRequestCount+=1,this.ongoingByteCount+=t.bytesCount},remove(t){this.ongoingRequestCount-=1,this.ongoingByteCount-=t.bytesCount}}}function Mi(t,e,n){const r=Ii(),i=(s,o)=>$i(t,e,s,o);return{send:s=>{Bn(s,r,i,t.trackType,n)},sendOnExit:s=>{Bi(t,e,s)}}}function Bi(t,e,n){if(!!navigator.sendBeacon&&n.bytesCount<e)try{const s=t.build("beacon",n);if(navigator.sendBeacon(s,n.data))return}catch(s){Ni(s)}const i=t.build("xhr",n);xt(i,n.data)}let Vn=!1;function Ni(t){Vn||(Vn=!0,Ln(t))}function $i(t,e,n,r){if(zi()&&n.bytesCount<e){const s=t.build("fetch",n);fetch(s,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(S(o=>r==null?void 0:r({status:o.status,type:o.type})),S(()=>{const o=t.build("xhr",n);xt(o,n.data,r)}))}else{const s=t.build("xhr",n);xt(s,n.data,r)}}function zi(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function xt(t,e,n){const r=new XMLHttpRequest;r.open("POST",t,!0),e instanceof Blob&&r.setRequestHeader("Content-Type",e.type),re({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(e)}function Et(){const t=Gi();if(t)return{getCapabilities(){var e;return JSON.parse(((e=t.getCapabilities)===null||e===void 0?void 0:e.call(t))||"[]")},getPrivacyLevel(){var e;return(e=t.getPrivacyLevel)===null||e===void 0?void 0:e.call(t)},getAllowedWebViewHosts(){return JSON.parse(t.getAllowedWebViewHosts())},send(e,n,r){const i=r?{id:r}:void 0;t.send(JSON.stringify({eventType:e,event:n,view:i}))}}}function Ke(t){var e;t===void 0&&(t=(e=j().location)===null||e===void 0?void 0:e.hostname);const n=Et();return!!n&&n.getAllowedWebViewHosts().some(r=>t===r||t.endsWith(`.${r}`))}function Gi(){return j().DatadogEventBridge}const Je={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function Vi(t){return new D(e=>{const{stop:n}=wt(t,window,["visibilitychange","freeze"],i=>{i.type==="visibilitychange"&&document.visibilityState==="hidden"?e.notify({reason:Je.HIDDEN}):i.type==="freeze"&&e.notify({reason:Je.FROZEN})},{capture:!0}),r=re(t,window,"beforeunload",()=>{e.notify({reason:Je.UNLOADING})}).stop;return()=>{n(),r()}})}function ji(t){return Me(Je).includes(t)}function Hi({encoder:t,request:e,flushController:n,messageBytesLimit:r}){let i={};const s=n.flushObservable.subscribe(u=>d(u));function o(u,f,p){n.notifyBeforeAddMessage(f),p!==void 0?(i[p]=u,n.notifyAfterAddMessage()):t.write(t.isEmpty?u:`
4
- ${u}`,h=>{n.notifyAfterAddMessage(h-f)})}function a(u){return u!==void 0&&i[u]!==void 0}function c(u){const f=i[u];delete i[u];const p=t.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(p)}function l(u,f){const p=ee(u),h=t.estimateEncodedBytesCount(p);if(h>=r){C.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${Ae} ${Ht}/#technical-limitations`);return}a(f)&&c(f),o(p,h,f)}function d(u){const f=Me(i).join(`
5
- `);i={};const p=ji(u.reason),h=p?e.sendOnExit:e.send;if(p&&t.isAsync){const m=t.finishSync();m.outputBytesCount&&h(jn(m));const g=[m.pendingData,f].filter(Boolean).join(`
1
+ (function(he,pe){typeof exports=="object"&&typeof module<"u"?module.exports=pe():typeof define=="function"&&define.amd?define(pe):(he=typeof globalThis<"u"?globalThis:he||self,he.OTTPlayer=pe())})(this,function(){"use strict";const he=t=>Math.abs(t-59.94005994005994)<20?59.94:Math.abs(t-29.97002997002997)<10?29.97:Math.abs(t-14.985014985014985)<8?14.98:0,pe=t=>t>30&&t<70?59.94005994005994:t>15?29.97002997002997:t>7?14.985014985014985:0;class nt{constructor(e){this.frameDurations=[],this.frameDurationsCapacity=e,this.lastTimestamp=null}addFrameDuration(e){return this.frameDurations.push(e),this.frameDurations.length>this.frameDurationsCapacity&&this.frameDurations.shift(),this.calculateAverage()}addTimestamp(e){if(this.lastTimestamp===null)return this.lastTimestamp=e,null;const n=e-this.lastTimestamp;return this.lastTimestamp=e,this.addFrameDuration(n)}calculateAverage(){if(this.frameDurations.length===0)return 0;const n=this.frameDurations.reduce((o,a)=>o+a,0)/this.frameDurations.length,r=this.frameDurations.filter(o=>Math.abs(o-n)<=n*.2);return r.reduce((o,a)=>o+a,0)/r.length||n}getFPS(){const e=this.calculateAverage();if(e===0)return 0;const n=1/e;return pe(n)}getPerciseFPS(){const e=this.calculateAverage();return e===0?0:1/e}}const A=class A{constructor(e,n,r,s,i){this.copy=()=>new A(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const o=":";let a=("0"+this.h).slice(-2)+o+("0"+this.m).slice(-2)+o+("0"+this.s).slice(-2)+o+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const o=this.copy();return o.f=0,o.s=o.s%2===0?o.s:o.s-1,o.field=0,A.toStr(o)},this.toFrames=o=>{let a=60,c=0;Math.floor(o)==60?(a=60,c=0):Math.floor(o)==59?(a=60,c=4):Math.floor(o)==30?(a=30,c=0):Math.floor(o)==29&&(a=30,c=2);let l=this.h,d=this.m,u=this.s,f=this.f,p=this.field;const h=l*60+d,g=(h-Math.floor(h/10))*c;return l*(a*3600)+d*(a*60)+u*a+(f*2+p)-g},this.addSeconds=o=>{let a=this.copy();return a.s+=o,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(o,a)=>{let c=this.toFrames(a);return c+=o,A.fromFrames(c,a)},this.subtractFrames=(o,a)=>this.addFrames(-o,a),this.h=e||0,this.m=n||0,this.s=r||0,this.f=s||0,this.field=i||0}static compare(e,n){return e.h!==n.h?e.h<n.h?-1:1:e.m!==n.m?e.m<n.m?-1:1:e.s!==n.s?e.s<n.s?-1:1:e.f!==n.f?e.f<n.f?-1:1:e.field!==n.field?e.field<n.field?-1:1:0}static generateTimecodeRange(e,n,r){const s=[];let i=e;for(;A.compare(i,n)<=0;)s.push(i),i=i.addSeconds(r);return s}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(e){return this.toFrames(e)*1e3/e}};A.calculateCurrentTimeCode=e=>{var u;if(!e.video||!e.clocker||!e.gameParams)throw new Error("OTTPlayer is not initialized");const n=e.video,r=e.clocker,s=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*s+r.syncPoint.frame;if(a===0||s===0)throw new Error("Current frame is 0 or fps is 0");const c=A.calculateCurrentOffset(a,(u=e.gameParams)==null?void 0:u.offsets);if(c===void 0)throw new Error("Offset is undefined");let l=Math.floor(a-c);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),A.fromFrames(l,s)},A.calculateCurrentOffset=(e,n)=>{for(let r=1;r<n.length;r++)if(e<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},A.fromFrames=(e,n)=>{let r=60,s=0;Math.floor(n)==60?(r=60,s=0):Math.floor(n)==59?(r=60,s=4):Math.floor(n)==30?(r=30,s=0):Math.floor(n)==29&&(r=30,s=2);let i=Math.floor(n*60),o=Math.floor(n*60*10),a=o*6,c=e,l=Math.floor(c/a);c-=l*a;let d=Math.floor(c/o);c-=d*o,c>=r*60&&(c+=s*(Math.floor((c-r*60)/i)+1));let u=Math.floor(c/(r*60));c-=u*(r*60);let f=Math.floor(c/r);c-=f*r;let p=c;u+=d*10;let h=0;return h=p%2,p=Math.floor(p/2),new A(l,u,f,p,h)},A.toStr=e=>{const n="_";let r=("0"+e.h).slice(-2)+n+("0"+e.m).slice(-2)+n+("0"+e.s).slice(-2)+n+("0"+e.f).slice(-2);return e.field&&(r+="_1"),r},A.fromStr=e=>{const r=e.split("_").map(Number);if(r.length==4){const[s,i,o,a]=r;return new A(s,i,o,a,0)}else if(r.length==5){const[s,i,o,a,c]=r;return new A(s,i,o,a,c)}else throw new Error("Invalid timecode format: "+e)},A.fromMetadata=e=>{const n=/^(\d{2}):(\d{2}):(\d{2}):(\d{2})(?:\.(\d))?$/,r=e.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+e.timecode);const[,s,i,o,a,c]=r,l=Number(s),d=Number(i),u=Number(o),f=Number(a),p=c?Number(c):0;return new A(l,d,u,f,p)};let O=A;const er=async t=>{let e;typeof document>"u"?e=new URL(self.location.href):e=new URL(document.location.href);const n=e.searchParams.get("config");if(n){const s=await(await fetch(n)).json();Object.assign(t,s)}},F=(t,e)=>!t.debug||!t.debug.on?!1:t.debug[`log${e}`];class tr{constructor(e){this.last10=[],this.errorsInProgress=[],this.lastFrameTC=null,this.fps=e}setFPS(e){this.fps=e}timecodeRecieved(e){if(!e)return;const n=O.fromStr(e);if(this.last10.push(n),this.last10.length>10&&this.last10.shift(),this.lastFrameTC){const r=this.incrementInterlaced(this.lastFrameTC);O.compare(n,r)!==0&&(console.warn("Timecode sequence is invalid! Detected at:",e),this.errorsInProgress.push({preTCs:[...this.last10],postTCs:[],framesAfter:0,printed:!1}))}for(const r of this.errorsInProgress)r.printed||(r.postTCs.push(n),r.framesAfter++);for(const r of this.errorsInProgress)if(!r.printed&&r.framesAfter>=10){console.error("Full 20-frame sequence around error:");const s=[...r.preTCs,...r.postTCs];console.error(s.map(i=>O.toStr(i))),r.printed=!0}this.lastFrameTC=n}incrementInterlaced(e){const n=e.copy();return n.field===0?(n.field=1,n):(n.field=0,n.f++,n.f>=30&&(n.f=0,n.s++,n.s>=60&&(n.s=0,n.m++,n.m>=60&&(n.m=0,n.h++))),n)}}class nr{constructor(e,n){this.click=async r=>{const s=this.video.getBoundingClientRect(),i=(r.clientX-s.left)/s.width,o=(r.clientY-s.top)/s.height,a={x:i,y:o};this.renderer.postMessage({type:"VIDEO_CLICK",clickData:a})},this.video=e.video,this.logger=e.logger,this.renderer=n,this.renderer.onmessage=r=>{if(r.data.type==="OPEN_URL"){const s=r.data.url;s&&(window.open(s,"_blank"),this.logger.info("didClickAd",{url:s}))}}}}const Pt='(function(){"use strict";const _=(e,t)=>!e.debug||!e.debug.on?!1:e.debug[`log${t}`],T={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},L=console,H={};Object.keys(T).forEach(e=>{H[e]=L[e]});const le="Datadog Browser SDK:",w={debug:H.debug.bind(L,le),log:H.log.bind(L,le),info:H.info.bind(L,le),warn:H.warn.bind(L,le),error:H.error.bind(L,le)},Ve="https://docs.datadoghq.com",Ct=`${Ve}/real_user_monitoring/browser/troubleshooting`,Oe="More details:";function vt(e,t){return(...n)=>{try{return e(...n)}catch(o){w.error(t,o)}}}function Re(e){return e!==0&&Math.random()*100<=e}function Pn(e){return Un(e)&&e>=0&&e<=100}function Un(e){return typeof e=="number"}const de=1e3,z=60*de,At=60*z,Fn=365*(24*At);function fe(){return new Date().getTime()}function N(){return fe()}function Ce(){return performance.now()}function $(){return{relative:Ce(),timeStamp:N()}}function Bn(){return{relative:0,timeStamp:It()}}function Gn(e,t){return t-e}function jn(e,t){return e+t}function Hn(e){return e-It()}let Xe;function It(){return Xe===void 0&&(Xe=performance.timing.navigationStart),Xe}const k=1024,Lt=1024*k,zn=/[^\\u0000-\\u007F]/;function Ze(e){return zn.test(e)?window.TextEncoder!==void 0?new TextEncoder().encode(e).length:new Blob([e]).size:e.length}function Jn(e){return{...e}}function kt(e,t){return Object.keys(e).some(n=>e[n]===t)}function pe(e){return Object.keys(e).length===0}function P(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let e=_dd_temp_;return delete Object.prototype._dd_temp_,typeof e!="object"&&(typeof self=="object"?e=self:typeof window=="object"?e=window:e={}),e}function Q(e,t){const n=P();let o;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(o=e[n.Zone.__symbol__(t)]),o||(o=e[t]),o}let ve,xt=!1;function Kn(e){ve=e}function Wn(e){xt=e}function qn(e,t,n){const o=n.value;n.value=function(...r){return(ve?S(o):o).apply(this,r)}}function S(e){return function(){return ge(e,this,arguments)}}function ge(e,t,n){try{return e.apply(t,n)}catch(o){Yn(o)}}function Yn(e){if(Qe(e),ve)try{ve(e)}catch(t){Qe(t)}}function Qe(...e){xt&&w.error("[MONITOR]",...e)}function he(e,t){return Q(P(),"setTimeout")(S(e),t)}function Dt(e){Q(P(),"clearTimeout")(e)}function et(e,t){return Q(P(),"setInterval")(S(e),t)}function Mt(e){Q(P(),"clearInterval")(e)}class O{constructor(t){this.onFirstSubscribe=t,this.observers=[]}subscribe(t){return this.observers.push(t),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>t!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(t){this.observers.forEach(n=>n(t))}}function Nt(...e){return new O(t=>{const n=e.map(o=>o.subscribe(r=>t.notify(r)));return()=>n.forEach(o=>o.unsubscribe())})}function $t(e,t,n){let o=!1,r,s;return{throttled:(...i)=>{if(o){r=i;return}e(...i),o=!0,s=he(()=>{r&&e(...r),o=!1,r=void 0},t)},cancel:()=>{Dt(s),o=!1,r=void 0}}}function U(){}function F(e){return e?(parseInt(e,10)^Math.random()*16>>parseInt(e,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,F)}const Ae=/([\\w-]+)\\s*=\\s*([^;]+)/g;function Vn(e,t){for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n){if(n[1]===t)return n[2]}else break}}function Xn(e){const t=new Map;for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n)t.set(n[1],n[2]);else break}return t}function Zn(e,t,n=""){const o=e.charCodeAt(t-1),s=o>=55296&&o<=56319?t+1:t;return e.length<=s?e:`${e.slice(0,s)}${n}`}function Qn(){return eo()===0}let Ie;function eo(){return Ie??(Ie=to())}function to(e=window){var t;const n=e.navigator.userAgent;return e.chrome||/HeadlessChrome/.test(n)?0:((t=e.navigator.vendor)===null||t===void 0?void 0:t.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function me(e,t,n=0,o){const r=new Date;r.setTime(r.getTime()+n);const s=`expires=${r.toUTCString()}`,i=o&&o.crossSite?"none":"strict",c=o&&o.domain?`;domain=${o.domain}`:"",a=o&&o.secure?";secure":"",l=o&&o.partitioned?";partitioned":"";document.cookie=`${e}=${t};${s};path=/;samesite=${i}${c}${a}${l}`}function tt(e){return Vn(document.cookie,e)}let nt;function J(e){return nt||(nt=Xn(document.cookie)),nt.get(e)}function Pt(e,t){me(e,"",0,t)}function no(e){if(document.cookie===void 0||document.cookie===null)return!1;try{const t=`dd_cookie_test_${F()}`,n="test";me(t,n,z,e);const o=tt(t)===n;return Pt(t,e),o}catch(t){return w.error(t),!1}}let ot;function oo(){if(ot===void 0){const e=`dd_site_test_${F()}`,t="test",n=window.location.hostname.split(".");let o=n.pop();for(;n.length&&!tt(e);)o=`${n.pop()}.${o}`,me(e,t,de,{domain:o});Pt(e,{domain:o}),ot=o}return ot}const ee="_dd_s";function Le(e){return Object.values(e)}function ro(e){return Object.entries(e)}const rt=4*At,Ut=15*z,so=Fn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},Ft=/^([a-zA-Z]+)=([a-z0-9-]+)$/,st="&";function io(e){return!!e&&(e.indexOf(st)!==-1||Ft.test(e))}const co="1";function K(e,t){const n={isExpired:co};return t.trackAnonymousUser&&(e!=null&&e.anonymousId?n.anonymousId=e==null?void 0:e.anonymousId:n.anonymousId=F()),n}function ke(e){return pe(e)}function Bt(e){return!ke(e)}function xe(e){return e.isExpired!==void 0||!ao(e)}function ao(e){return(e.created===void 0||fe()-Number(e.created)<rt)&&(e.expire===void 0||fe()<Number(e.expire))}function Gt(e){e.expire=String(fe()+Ut)}function it(e){return ro(e).map(([t,n])=>t==="anonymousId"?`aid=${n}`:`${t}=${n}`).join(st)}function jt(e){const t={};return io(e)&&e.split(st).forEach(n=>{const o=Ft.exec(n);if(o!==null){const[,r,s]=o;r==="aid"?t.anonymousId=s:t[r]=s}}),t}const uo="_dd",lo="_dd_r",fo="_dd_l",po="rum",go="logs";function ho(e){if(!J(ee)){const n=J(uo),o=J(lo),r=J(fo),s={};n&&(s.id=n),r&&/^[01]$/.test(r)&&(s[go]=r),o&&/^[012]$/.test(o)&&(s[po]=o),Bt(s)&&(Gt(s),e.persistSession(s))}}function Ht(e){const t=Eo(e);return no(t)?{type:be.COOKIE,cookieOptions:t}:void 0}function mo(e,t){const n={isLockEnabled:Qn(),persistSession:bo(t),retrieveSession:yo,expireSession:o=>So(t,o,e)};return ho(n),n}function bo(e){return t=>{me(ee,it(t),Ut,e)}}function So(e,t,n){const o=K(t,n);me(ee,it(o),n.trackAnonymousUser?so:rt,e)}function yo(){const e=tt(ee);return jt(e)}function Eo(e){const t={};return t.secure=!!e.useSecureSessionCookie||!!e.usePartitionedCrossSiteSessionCookie,t.crossSite=!!e.usePartitionedCrossSiteSessionCookie,t.partitioned=!!e.usePartitionedCrossSiteSessionCookie,e.trackSessionAcrossSubdomains&&(t.domain=oo()),t}const To="_dd_test_";function zt(){try{const e=F(),t=`${To}${e}`;localStorage.setItem(t,e);const n=localStorage.getItem(t);return localStorage.removeItem(t),e===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function wo(e){return{isLockEnabled:!1,persistSession:Jt,retrieveSession:_o,expireSession:t=>Oo(t,e)}}function Jt(e){localStorage.setItem(ee,it(e))}function _o(){const e=localStorage.getItem(ee);return jt(e)}function Oo(e,t){Jt(K(e,t))}const Ro=10,Co=100,Kt=[];let De;function W(e,t,n=0){var o;const{isLockEnabled:r,persistSession:s,expireSession:i}=t,c=f=>s({...f,lock:l}),a=()=>{const f=t.retrieveSession(),h=f.lock;return f.lock&&delete f.lock,{session:f,lock:h}};if(De||(De=e),e!==De){Kt.push(e);return}if(r&&n>=Co){Wt(t);return}let l,u=a();if(r){if(u.lock){Me(e,t,n);return}if(l=F(),c(u.session),u=a(),u.lock!==l){Me(e,t,n);return}}let d=e.process(u.session);if(r&&(u=a(),u.lock!==l)){Me(e,t,n);return}if(d&&(xe(d)?i(d):(Gt(d),r?c(d):s(d))),r&&!(d&&xe(d))){if(u=a(),u.lock!==l){Me(e,t,n);return}s(u.session),d=u.session}(o=e.after)===null||o===void 0||o.call(e,d||u.session),Wt(t)}function Me(e,t,n){he(()=>{W(e,t,n+1)},Ro)}function Wt(e){De=void 0;const t=Kt.shift();t&&W(t,e)}const qt=de;function vo(e){switch(e.sessionPersistence){case be.COOKIE:return Ht(e);case be.LOCAL_STORAGE:return zt();case void 0:{let t=Ht(e);return!t&&e.allowFallbackToLocalStorage&&(t=zt()),t}default:w.error(`Invalid session persistence \'${String(e.sessionPersistence)}\'`)}}function Ao(e,t,n,o){const r=new O,s=new O,i=new O,c=e.type===be.COOKIE?mo(t,e.cookieOptions):wo(t),{expireSession:a}=c,l=et(g,qt);let u;E();const{throttled:d,cancel:f}=$t(()=>{W({process:b=>{if(ke(b))return;const ue=y(b);return _e(ue),ue},after:b=>{Bt(b)&&!j()&&Mi(b),u=b}},c)},qt);function h(){W({process:b=>j()?y(b):void 0},c)}function g(){W({process:b=>xe(b)?K(b,t):void 0,after:y},c)}function y(b){return xe(b)&&(b=K(b,t)),j()&&(xi(b)?Di():(i.notify({previousState:u,newState:b}),u=b)),b}function E(){W({process:b=>{if(ke(b))return K(b,t)},after:b=>{u=b}},c)}function _e(b){if(ke(b))return!1;const{trackingType:ue,isTracked:$i}=o(b[n]);b[n]=ue,delete b.isExpired,$i&&!b.id&&(b.id=F(),b.created=String(fe()))}function j(){return u[n]!==void 0}function xi(b){return u.id!==b.id||u[n]!==b[n]}function Di(){u=K(u,t),s.notify()}function Mi(b){u=b,r.notify()}function Ni(b){W({process:ue=>({...ue,...b}),after:y},c)}return{expandOrRenewSession:d,expandSession:h,getSession:()=>u,renewObservable:r,expireObservable:s,sessionStateUpdateObservable:i,restartSession:E,expire:()=>{f(),a(u),y(K(u,t))},stop:()=>{Mt(l)},updateSessionState:Ni}}const ct={GRANTED:"granted",NOT_GRANTED:"not-granted"};function Io(e){const t=new O;return{tryToInit(n){e||(e=n)},update(n){e=n,t.notify()},isGranted(){return e===ct.GRANTED},observable:t}}function q(e,t,n){if(typeof e!="object"||e===null)return JSON.stringify(e);const o=te(Object.prototype),r=te(Array.prototype),s=te(Object.getPrototypeOf(e)),i=te(e);try{return JSON.stringify(e,t,n)}catch{return"<error: unable to serialize object>"}finally{o(),r(),s(),i()}}function te(e){const t=e,n=t.toJSON;return n?(delete t.toJSON,()=>{t.toJSON=n}):U}function at(e){return Lo(e,location.href).href}function Lo(e,t){const n=ko();if(n)try{return t!==void 0?new n(e,t):new n(e)}catch(s){throw new Error(`Failed to construct URL: ${String(s)} ${q({url:e,base:t})}`)}if(t===void 0&&!/:/.test(e))throw new Error(`Invalid URL: \'${e}\'`);let o=document;const r=o.createElement("a");if(t!==void 0){o=document.implementation.createHTMLDocument("");const s=o.createElement("base");s.href=t,o.head.appendChild(s),o.body.appendChild(r)}return r.href=e,r}const Yt=URL;let Ne;function ko(){if(Ne===void 0)try{Ne=new Yt("http://test/path").href==="http://test/path"}catch{Ne=!1}return Ne?Yt:void 0}const xo="datad0g.com",Do="dd0g-gov.com",ne="datadoghq.com",Mo="ddog-gov.com",No="pci.browser-intake-datadoghq.com",$o=["ddsource","ddtags"];function Se(e,t,n){const o=Po(e,t);return{build(r,s){const i=Fo(e,t,n,r,s);return o(i)},urlPrefix:o(""),trackType:t}}function Po(e,t){const n=`/api/v2/${t}`,o=e.proxy;if(typeof o=="string"){const s=at(o);return i=>`${s}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof o=="function")return s=>o({path:n,parameters:s});const r=Uo(t,e);return s=>`https://${r}${n}?${s}`}function Uo(e,t){const{site:n=ne,internalAnalyticsSubdomain:o}=t;if(e==="logs"&&t.usePciIntake&&n===ne)return No;if(o&&n===ne)return`${o}.${ne}`;if(n===Do)return`http-intake.logs.${n}`;const r=n.split("."),s=r.pop();return`browser-intake-${r.join("-")}.${s}`}function Fo({clientToken:e,internalAnalyticsSubdomain:t},n,o,r,{retry:s,encoding:i}){const c=["sdk_version:6.5.0",`api:${r}`].concat(o);s&&c.push(`retry_count:${s.count}`,`retry_after:${s.lastFailureStatus}`);const a=["ddsource=browser",`ddtags=${encodeURIComponent(c.join(","))}`,`dd-api-key=${e}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${F()}`];return i&&a.push(`dd-evp-encoding=${i}`),n==="rum"&&a.push(`batch_time=${N()}`),t&&a.reverse(),a.join("&")}const Bo=200;function Go(e){const{env:t,service:n,version:o,datacenter:r}=e,s=[];return t&&s.push($e("env",t)),n&&s.push($e("service",n)),o&&s.push($e("version",o)),r&&s.push($e("datacenter",r)),s}function $e(e,t){const n=Bo-e.length-1;(t.length>n||jo(t))&&w.warn(`${e} value doesn\'t meet tag requirements and will be sanitized. ${Oe} ${Ve}/getting_started/tagging/#defining-tags`);const o=t.replace(/,/g,"_");return`${e}:${o}`}function jo(e){return Ho()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(e):!1}function Ho(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function zo(e){const t=e.site||ne,n=Go(e),o=Jo(e,n);return{replica:Ko(e,n),site:t,...o}}function Jo(e,t){return{logsEndpointBuilder:Se(e,"logs",t),rumEndpointBuilder:Se(e,"rum",t),sessionReplayEndpointBuilder:Se(e,"replay",t)}}function Ko(e,t){if(!e.replica)return;const n={...e,site:ne,clientToken:e.replica.clientToken},o={logsEndpointBuilder:Se(n,"logs",t),rumEndpointBuilder:Se(n,"rum",t)};return{applicationId:e.replica.applicationId,...o}}function Wo(e){return $o.every(t=>e.includes(t))}function ut(e,t){return e!=null&&typeof e!="string"?(w.error(`${t} must be defined as a string`),!1):!0}function qo(e){return e&&typeof e=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(e)?(w.error(`Site should be a valid Datadog site. ${Oe} ${Ve}/getting_started/site/.`),!1):!0}function Pe(e,t){return e!==void 0&&!Pn(e)?(w.error(`${t} Sample Rate should be a number between 0 and 100`),!1):!0}function Yo(e){var t,n,o,r,s,i;if(!e||!e.clientToken){w.error("Client Token is not configured, we will not send any data.");return}if(!(!qo(e.site)||!Pe(e.sessionSampleRate,"Session")||!Pe(e.telemetrySampleRate,"Telemetry")||!Pe(e.telemetryConfigurationSampleRate,"Telemetry Configuration")||!Pe(e.telemetryUsageSampleRate,"Telemetry Usage")||!ut(e.version,"Version")||!ut(e.env,"Env")||!ut(e.service,"Service"))){if(e.trackingConsent!==void 0&&!kt(ct,e.trackingConsent)){w.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:e.beforeSend&&vt(e.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:vo(e),sessionSampleRate:(t=e.sessionSampleRate)!==null&&t!==void 0?t:100,telemetrySampleRate:(n=e.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(o=e.telemetryConfigurationSampleRate)!==null&&o!==void 0?o:5,telemetryUsageSampleRate:(r=e.telemetryUsageSampleRate)!==null&&r!==void 0?r:5,service:e.service||void 0,silentMultipleInit:!!e.silentMultipleInit,allowUntrustedEvents:!!e.allowUntrustedEvents,trackingConsent:(s=e.trackingConsent)!==null&&s!==void 0?s:ct.GRANTED,trackAnonymousUser:(i=e.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!e.storeContextsAcrossPages,batchBytesLimit:16*k,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*de,batchMessagesLimit:50,messageBytesLimit:256*k,...zo(e)}}}function Vo(e){return{session_sample_rate:e.sessionSampleRate,telemetry_sample_rate:e.telemetrySampleRate,telemetry_configuration_sample_rate:e.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:e.telemetryUsageSampleRate,use_before_send:!!e.beforeSend,use_partitioned_cross_site_session_cookie:e.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:e.useSecureSessionCookie,use_proxy:!!e.proxy,silent_multiple_init:e.silentMultipleInit,track_session_across_subdomains:e.trackSessionAcrossSubdomains,track_anonymous_user:e.trackAnonymousUser,session_persistence:e.sessionPersistence,allow_fallback_to_local_storage:!!e.allowFallbackToLocalStorage,store_contexts_across_pages:!!e.storeContextsAcrossPages,allow_untrusted_events:!!e.allowUntrustedEvents,tracking_consent:e.trackingConsent}}var lt;(function(e){e.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",e.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(lt||(lt={}));const Vt=new Set;function Xo(e){Array.isArray(e)&&Zo(e.filter(t=>kt(lt,t)))}function Zo(e){e.forEach(t=>{Vt.add(t)})}function Qo(){return Vt}const ye="?";function x(e){const t=[];let n=dt(e,"stack");const o=String(e);return n&&n.startsWith(o)&&(n=n.slice(o.length)),n&&n.split(`\n`).forEach(r=>{const s=nr(r)||rr(r)||ir(r)||ur(r);s&&(!s.func&&s.line&&(s.func=ye),t.push(s))}),{message:dt(e,"message"),name:dt(e,"name"),stack:t}}const Xt="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",oe="(?::(\\\\d+))",er=new RegExp(`^\\\\s*at (.*?) ?\\\\(${Xt}${oe}?${oe}?\\\\)?\\\\s*$`,"i"),tr=new RegExp(`\\\\((\\\\S*)${oe}${oe}\\\\)`);function nr(e){const t=er.exec(e);if(!t)return;const n=t[2]&&t[2].indexOf("native")===0,o=t[2]&&t[2].indexOf("eval")===0,r=tr.exec(t[2]);return o&&r&&(t[2]=r[1],t[3]=r[2],t[4]=r[3]),{args:n?[t[2]]:[],column:t[4]?+t[4]:void 0,func:t[1]||ye,line:t[3]?+t[3]:void 0,url:n?void 0:t[2]}}const or=new RegExp(`^\\\\s*at ?${Xt}${oe}?${oe}??\\\\s*$`,"i");function rr(e){const t=or.exec(e);if(t)return{args:[],column:t[3]?+t[3]:void 0,func:ye,line:t[2]?+t[2]:void 0,url:t[1]}}const sr=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function ir(e){const t=sr.exec(e);if(t)return{args:[],column:t[4]?+t[4]:void 0,func:t[1]||ye,line:+t[3],url:t[2]}}const cr=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,ar=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function ur(e){const t=cr.exec(e);if(!t)return;const n=t[3]&&t[3].indexOf(" > eval")>-1,o=ar.exec(t[3]);return n&&o&&(t[3]=o[1],t[4]=o[2],t[5]=void 0),{args:t[2]?t[2].split(","):[],column:t[5]?+t[5]:void 0,func:t[1]||ye,line:t[4]?+t[4]:void 0,url:t[3]}}function dt(e,t){if(typeof e!="object"||!e||!(t in e))return;const n=e[t];return typeof n=="string"?n:void 0}function lr(e,t,n,o){const r=[{url:t,column:o,line:n}],{name:s,message:i}=fr(e);return{name:s,message:i,stack:r}}const dr=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function fr(e){let t,n;return{}.toString.call(e)==="[object String]"&&([,t,n]=dr.exec(e)),{name:t,message:n}}function Ue(e){const n=new Error(e);n.name="HandlingStack";let o;return ge(()=>{const r=x(n);r.stack=r.stack.slice(2),o=Y(r)}),o}function Y(e){let t=Zt(e);return e.stack.forEach(n=>{const o=n.func==="?"?"<anonymous>":n.func,r=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",s=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";t+=`\n at ${o}${r} @ ${n.url}${s}${i}`}),t}function Zt(e){return`${e.name||"Error"}: ${e.message}`}function V(e,t,n,{computeHandlingStack:o}={}){let r=e[t];if(typeof r!="function")if(t in e&&t.startsWith("on"))r=U;else return{stop:U};let s=!1;const i=function(){if(s)return r.apply(this,arguments);const c=Array.from(arguments);let a;ge(n,null,[{target:this,parameters:c,onPostCall:u=>{a=u},handlingStack:o?Ue("instrumented method"):void 0}]);const l=r.apply(this,c);return a&&ge(a,null,[l]),l};return e[t]=i,{stop:()=>{s=!0,e[t]===i&&(e[t]=r)}}}const pr=220*k,gr="$",hr=3;function D(e,t=pr){const n=te(Object.prototype),o=te(Array.prototype),r=[],s=new WeakMap,i=ft(e,gr,void 0,r,s),c=JSON.stringify(i);let a=c?c.length:0;if(a>t){gt(t,"discarded",e);return}for(;r.length>0&&a<t;){const l=r.shift();let u=0;if(Array.isArray(l.source))for(let d=0;d<l.source.length;d++){const f=ft(l.source[d],l.path,d,r,s);if(f!==void 0?a+=JSON.stringify(f).length:a+=4,a+=u,u=1,a>t){gt(t,"truncated",e);break}l.target[d]=f}else for(const d in l.source)if(Object.prototype.hasOwnProperty.call(l.source,d)){const f=ft(l.source[d],l.path,d,r,s);if(f!==void 0&&(a+=JSON.stringify(f).length+u+d.length+hr,u=1),a>t){gt(t,"truncated",e);break}l.target[d]=f}}return n(),o(),i}function ft(e,t,n,o,r){const s=Sr(e);if(!s||typeof s!="object")return mr(s);const i=pt(s);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const c=e;if(r.has(c))return`[Reference seen at ${r.get(c)}]`;const a=n!==void 0?`${t}.${n}`:t,l=Array.isArray(s)?[]:{};return r.set(c,a),o.push({source:s,target:l,path:a}),l}function mr(e){return typeof e=="bigint"?`[BigInt] ${e.toString()}`:typeof e=="function"?`[Function] ${e.name||"unknown"}`:typeof e=="symbol"?`[Symbol] ${e.description||e.toString()}`:e}function pt(e){try{if(e instanceof Event)return br(e);if(e instanceof RegExp)return`[RegExp] ${e.toString()}`;const n=Object.prototype.toString.call(e).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function br(e){return{type:e.type,isTrusted:e.isTrusted,currentTarget:e.currentTarget?pt(e.currentTarget):null,target:e.target?pt(e.target):null}}function Sr(e){const t=e;if(t&&typeof t.toJSON=="function")try{return t.toJSON()}catch{}return e}function gt(e,t,n){w.warn(`The data provided has been ${t} as it is over the limit of ${e} characters:`,n)}const Qt="No stack, consider using an instance of Error";function en({stackTrace:e,originalError:t,handlingStack:n,componentStack:o,startClocks:r,nonErrorPrefix:s,source:i,handling:c}){const a=B(t),l=yr(e,a,s,t),u=Er(a,e)?Y(e):Qt,d=a?on(t,i):void 0,f=e?e.name:void 0,h=tn(t),g=nn(t);return{startClocks:r,source:i,handling:c,handlingStack:n,componentStack:o,originalError:t,type:f,message:l,stack:u,causes:d,fingerprint:h,context:g}}function yr(e,t,n,o){return e!=null&&e.message&&(e!=null&&e.name)?e.message:t?"Empty message":`${n} ${q(D(o))}`}function Er(e,t){return t===void 0?!1:e?!0:t.stack.length>0&&(t.stack.length>1||t.stack[0].url!==void 0)}function tn(e){return B(e)&&"dd_fingerprint"in e?String(e.dd_fingerprint):void 0}function nn(e){if(e!==null&&typeof e=="object"&&"dd_context"in e)return e.dd_context}function Tr(e){var t;return(t=/@ (.+)/.exec(e))===null||t===void 0?void 0:t[1]}function B(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}function on(e,t){let n=e;const o=[];for(;B(n==null?void 0:n.cause)&&o.length<10;){const r=x(n.cause);o.push({message:n.cause.message,source:t,type:r==null?void 0:r.name,stack:Y(r)}),n=n.cause}return o.length?o:void 0}const A={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function wr(e){const t=(r,s)=>{const i=en({stackTrace:r,originalError:s,startClocks:$(),nonErrorPrefix:"Uncaught",source:A.SOURCE,handling:"unhandled"});e.notify(i)},{stop:n}=_r(t),{stop:o}=Or(t);return{stop:()=>{n(),o()}}}function _r(e){return V(window,"onerror",({parameters:[t,n,o,r,s]})=>{let i;B(s)?i=x(s):i=lr(t,n,o,r),e(i,s??t)})}function Or(e){return V(window,"onunhandledrejection",({parameters:[t]})=>{const n=t.reason||"Empty reason",o=x(n);e(o,n)})}function Rr(e){const t={version:"6.5.0",onReady(n){n()},...e};return Object.defineProperty(t,"_setDebug",{get(){return Wn},enumerable:!1}),t}function Cr(e,t,n){const o=e[t];o&&!o.q&&o.version&&w.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),e[t]=n,o&&o.q&&o.q.forEach(r=>vt(r,"onReady callback threw an error:")())}function rn(e,t){t.silentMultipleInit||w.error(`${e} is already initialized.`)}function X(e,t,n,o,r){return ht(e,t,[n],o,r)}function ht(e,t,n,o,{once:r,capture:s,passive:i}={}){const c=S(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!e.allowUntrustedEvents||(r&&d(),o(f))}),a=i?{capture:s,passive:i}:s,l=window.EventTarget&&t instanceof EventTarget?window.EventTarget.prototype:t,u=Q(l,"addEventListener");n.forEach(f=>u.call(t,f,c,a));function d(){const f=Q(l,"removeEventListener");n.forEach(h=>f.call(t,h,c,a))}return{stop:d}}const Fe={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function vr(e,t){const n=[];t.includes(Fe.cspViolation)&&n.push(Ir(e));const o=t.filter(r=>r!==Fe.cspViolation);return o.length&&n.push(Ar(o)),Nt(...n)}function Ar(e){return new O(t=>{if(!window.ReportingObserver)return;const n=S((r,s)=>r.forEach(i=>t.notify(Lr(i)))),o=new window.ReportingObserver(n,{types:e,buffered:!0});return o.observe(),()=>{o.disconnect()}})}function Ir(e){return new O(t=>{const{stop:n}=X(e,document,"securitypolicyviolation",o=>{t.notify(kr(o))});return n})}function Lr(e){const{type:t,body:n}=e;return sn({type:n.id,message:`${t}: ${n.message}`,originalError:e,stack:cn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function kr(e){const t=`\'${e.blockedURI}\' blocked by \'${e.effectiveDirective}\' directive`;return sn({type:e.effectiveDirective,message:`${Fe.cspViolation}: ${t}`,originalError:e,csp:{disposition:e.disposition},stack:cn(e.effectiveDirective,e.originalPolicy?`${t} of the policy "${Zn(e.originalPolicy,100,"...")}"`:"no policy",e.sourceFile,e.lineNumber,e.columnNumber)})}function sn(e){return{startClocks:$(),source:A.REPORT,handling:"unhandled",...e}}function cn(e,t,n,o,r){return n?Y({name:e,message:t,stack:[{func:"?",url:n,line:o??void 0,column:r??void 0}]}):void 0}function an(e,t){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:e,payload:t})}function un(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Be(e,t,n=xr()){if(t===void 0)return e;if(typeof t!="object"||t===null)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const r=t.flags||[t.global?"g":"",t.ignoreCase?"i":"",t.multiline?"m":"",t.sticky?"y":"",t.unicode?"u":""].join("");return new RegExp(t.source,r)}if(n.hasAlreadyBeenSeen(t))return;if(Array.isArray(t)){const r=Array.isArray(e)?e:[];for(let s=0;s<t.length;++s)r[s]=Be(r[s],t[s],n);return r}const o=un(e)==="object"?e:{};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(o[r]=Be(o[r],t[r],n));return o}function ln(e){return Be(void 0,e)}function re(...e){let t;for(const n of e)n!=null&&(t=Be(t,n));return t}function xr(){if(typeof WeakSet<"u"){const t=new WeakSet;return{hasAlreadyBeenSeen(n){const o=t.has(n);return o||t.add(n),o}}}const e=[];return{hasAlreadyBeenSeen(t){const n=e.indexOf(t)>=0;return n||e.push(t),n}}}function Dr(){var e;const t=window.navigator;return{status:t.onLine?"connected":"not_connected",interfaces:t.connection&&t.connection.type?[t.connection.type]:void 0,effective_type:(e=t.connection)===null||e===void 0?void 0:e.effectiveType}}function Mr(e){const t=new Set;return e.forEach(n=>t.add(n)),Array.from(t)}function dn(e,t){const n=e.indexOf(t);n>=0&&e.splice(n,1)}const Nr=500;function fn(){const e=[];return{add:r=>{e.push(r)>Nr&&e.splice(0,1)},remove:r=>{dn(e,r)},drain:r=>{e.forEach(s=>s(r)),e.length=0}}}const Z={log:"log",configuration:"configuration",usage:"usage"},$r=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Pr=[Mo];let pn=fn(),se=e=>{pn.add(()=>se(e))};function Ur(e,t){let n;const o=new O,r=new Set,s=!Pr.includes(t.site)&&Re(t.telemetrySampleRate),i={[Z.log]:s,[Z.configuration]:s&&Re(t.telemetryConfigurationSampleRate),[Z.usage]:s&&Re(t.telemetryUsageSampleRate)},c=Fr();se=l=>{const u=q(l);if(i[l.type]&&r.size<t.maxTelemetryEventsPerPage&&!r.has(u)){const d=a(e,l,c);o.notify(d),an("telemetry",d),r.add(u)}},Kn(hn);function a(l,u,d){return re({type:"telemetry",date:N(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:re(u,{runtime_env:d,connectivity:Dr(),sdk_setup:"npm"}),experimental_features:Array.from(Qo())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:o,enabled:s}}function Fr(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Br(){pn.drain()}function Gr(e){return e.site===xo}function gn(e,t){Qe(T.debug,e,t),se({type:Z.log,message:e,status:"debug",...t})}function hn(e,t){se({type:Z.log,status:"error",...zr(e),...t})}function jr(e){se({type:Z.configuration,configuration:e})}function Hr(e){se({type:Z.usage,usage:e})}function zr(e){if(B(e)){const t=x(e);return{error:{kind:t.name,stack:Y(Jr(t))},message:t.message}}return{error:{stack:Qt},message:`Uncaught ${q(e)}`}}function Jr(e){return e.stack=e.stack.filter(t=>!t.url||$r.some(n=>t.url.startsWith(n))),e}const Ee=1/0,Kr=z;let Te=null;const Ge=new Set;function Wr(){Ge.forEach(e=>e())}function qr({expireDelay:e,maxEntries:t}){let n=[];const o=[];Te||(Te=et(()=>Wr(),Kr));const r=()=>{const h=Ce()-e;for(;n.length>0&&n[n.length-1].endTime<h;){const g=n.pop();g&&o.push(g.startTime)}};Ge.add(r);function s(h,g){const y={value:h,startTime:g,endTime:Ee,remove:()=>{dn(n,y)},close:E=>{y.endTime=E}};return t&&n.length>=t&&n.pop(),n.unshift(y),y}function i(h=Ee,g={returnInactive:!1}){for(const y of n)if(y.startTime<=h){if(g.returnInactive||h<=y.endTime)return y.value;break}}function c(h){const g=n[0];g&&g.endTime===Ee&&g.close(h)}function a(h=Ee,g=0){const y=jn(h,g);return n.filter(E=>E.startTime<=y&&h<=E.endTime).map(E=>E.value)}function l(){return n.map(({startTime:h,endTime:g,value:y})=>({startTime:h,endTime:g===Ee?"Infinity":g,value:y}))}function u(){return o}function d(){n=[]}function f(){Ge.delete(r),Ge.size===0&&Te&&(Mt(Te),Te=null)}return{add:s,find:i,closeActive:c,findAll:a,reset:d,stop:f,getAllEntries:l,getDeletedEntries:u}}const Yr=z,Vr=rt;function Xr(e,t,n,o){const r=new O,s=new O,i=Ao(e.sessionStoreStrategyType,e,t,n),c=qr({expireDelay:Vr});i.renewObservable.subscribe(()=>{c.add(a(),Ce()),r.notify()}),i.expireObservable.subscribe(()=>{s.notify(),c.closeActive(Ce())}),i.expandOrRenewSession(),c.add(a(),Bn().relative),o.observable.subscribe(()=>{o.isGranted()?i.expandOrRenewSession():i.expire()}),Zr(e,()=>{o.isGranted()&&i.expandOrRenewSession()}),Qr(e,()=>i.expandSession()),es(e,()=>i.restartSession());function a(){return{id:i.getSession().id,trackingType:i.getSession()[t],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(l,u)=>c.find(l,u),renewObservable:r,expireObservable:s,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function Zr(e,t){ht(e,window,["click","touchstart","keydown","scroll"],t,{capture:!0,passive:!0})}function Qr(e,t){const n=()=>{document.visibilityState==="visible"&&t()};X(e,document,"visibilitychange",n),et(n,Yr)}function es(e,t){X(e,window,"resume",t,{capture:!0})}function mn(e){return e>=500}function ts(e){try{return e.clone()}catch{return}}const ns=80*k,os=32,bn=3*Lt,rs=z,Sn=de;function yn(e,t,n,o,r){t.transportStatus===0&&t.queuedPayloads.size()===0&&t.bandwidthMonitor.canHandle(e)?Tn(e,t,n,{onSuccess:()=>wn(0,t,n,o,r),onFailure:()=>{t.queuedPayloads.enqueue(e),En(t,n,o,r)}}):t.queuedPayloads.enqueue(e)}function En(e,t,n,o){e.transportStatus===2&&he(()=>{const r=e.queuedPayloads.first();Tn(r,e,t,{onSuccess:()=>{e.queuedPayloads.dequeue(),e.currentBackoffTime=Sn,wn(1,e,t,n,o)},onFailure:()=>{e.currentBackoffTime=Math.min(rs,e.currentBackoffTime*2),En(e,t,n,o)}})},e.currentBackoffTime)}function Tn(e,t,n,{onSuccess:o,onFailure:r}){t.bandwidthMonitor.add(e),n(e,s=>{t.bandwidthMonitor.remove(e),ss(s)?(t.transportStatus=t.bandwidthMonitor.ongoingRequestCount>0?1:2,e.retry={count:e.retry?e.retry.count+1:1,lastFailureStatus:s.status},r()):(t.transportStatus=0,o())})}function wn(e,t,n,o,r){e===0&&t.queuedPayloads.isFull()&&!t.queueFullReported&&(r({message:`Reached max ${o} events size queued for upload: ${bn/Lt}MiB`,source:A.AGENT,startClocks:$()}),t.queueFullReported=!0);const s=t.queuedPayloads;for(t.queuedPayloads=_n();s.size()>0;)yn(s.dequeue(),t,n,o,r)}function ss(e){return e.type!=="opaque"&&(e.status===0&&!navigator.onLine||e.status===408||e.status===429||mn(e.status))}function is(){return{transportStatus:0,currentBackoffTime:Sn,bandwidthMonitor:cs(),queuedPayloads:_n(),queueFullReported:!1}}function _n(){const e=[];return{bytesCount:0,enqueue(t){this.isFull()||(e.push(t),this.bytesCount+=t.bytesCount)},first(){return e[0]},dequeue(){const t=e.shift();return t&&(this.bytesCount-=t.bytesCount),t},size(){return e.length},isFull(){return this.bytesCount>=bn}}}function cs(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(e){return this.ongoingRequestCount===0||this.ongoingByteCount+e.bytesCount<=ns&&this.ongoingRequestCount<os},add(e){this.ongoingRequestCount+=1,this.ongoingByteCount+=e.bytesCount},remove(e){this.ongoingRequestCount-=1,this.ongoingByteCount-=e.bytesCount}}}function as(e,t,n){const o=is(),r=(s,i)=>ds(e,t,s,i);return{send:s=>{yn(s,o,r,e.trackType,n)},sendOnExit:s=>{us(e,t,s)}}}function us(e,t,n){if(!!navigator.sendBeacon&&n.bytesCount<t)try{const s=e.build("beacon",n);if(navigator.sendBeacon(s,n.data))return}catch(s){ls(s)}const r=e.build("xhr",n);mt(r,n.data)}let On=!1;function ls(e){On||(On=!0,hn(e))}function ds(e,t,n,o){if(fs()&&n.bytesCount<t){const s=e.build("fetch",n);fetch(s,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(S(i=>o==null?void 0:o({status:i.status,type:i.type})),S(()=>{const i=e.build("xhr",n);mt(i,n.data,o)}))}else{const s=e.build("xhr",n);mt(s,n.data,o)}}function fs(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function mt(e,t,n){const o=new XMLHttpRequest;o.open("POST",e,!0),t instanceof Blob&&o.setRequestHeader("Content-Type",t.type),X({allowUntrustedEvents:!0},o,"loadend",()=>{n==null||n({status:o.status})},{once:!0}),o.send(t)}function bt(){const e=ps();if(e)return{getCapabilities(){var t;return JSON.parse(((t=e.getCapabilities)===null||t===void 0?void 0:t.call(e))||"[]")},getPrivacyLevel(){var t;return(t=e.getPrivacyLevel)===null||t===void 0?void 0:t.call(e)},getAllowedWebViewHosts(){return JSON.parse(e.getAllowedWebViewHosts())},send(t,n,o){const r=o?{id:o}:void 0;e.send(JSON.stringify({eventType:t,event:n,view:r}))}}}function je(e){var t;e===void 0&&(e=(t=P().location)===null||t===void 0?void 0:t.hostname);const n=bt();return!!n&&n.getAllowedWebViewHosts().some(o=>e===o||e.endsWith(`.${o}`))}function ps(){return P().DatadogEventBridge}const He={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function gs(e){return new O(t=>{const{stop:n}=ht(e,window,["visibilitychange","freeze"],r=>{r.type==="visibilitychange"&&document.visibilityState==="hidden"?t.notify({reason:He.HIDDEN}):r.type==="freeze"&&t.notify({reason:He.FROZEN})},{capture:!0}),o=X(e,window,"beforeunload",()=>{t.notify({reason:He.UNLOADING})}).stop;return()=>{n(),o()}})}function hs(e){return Le(He).includes(e)}function ms({encoder:e,request:t,flushController:n,messageBytesLimit:o}){let r={};const s=n.flushObservable.subscribe(d=>u(d));function i(d,f,h){n.notifyBeforeAddMessage(f),h!==void 0?(r[h]=d,n.notifyAfterAddMessage()):e.write(e.isEmpty?d:`\n${d}`,g=>{n.notifyAfterAddMessage(g-f)})}function c(d){return d!==void 0&&r[d]!==void 0}function a(d){const f=r[d];delete r[d];const h=e.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(h)}function l(d,f){const h=q(d),g=e.estimateEncodedBytesCount(h);if(g>=o){w.warn(`Discarded a message whose size was bigger than the maximum allowed size ${o}KB. ${Oe} ${Ct}/#technical-limitations`);return}c(f)&&a(f),i(h,g,f)}function u(d){const f=Le(r).join(`\n`);r={};const h=hs(d.reason),g=h?t.sendOnExit:t.send;if(h&&e.isAsync){const y=e.finishSync();y.outputBytesCount&&g(Rn(y));const E=[y.pendingData,f].filter(Boolean).join(`\n`);E&&g({data:E,bytesCount:Ze(E)})}else f&&e.write(e.isEmpty?f:`\n${f}`),e.finish(y=>{g(Rn(y))})}return{flushController:n,add:l,upsert:l,stop:s.unsubscribe}}function Rn(e){let t;return typeof e.output=="string"?t=e.output:t=new Blob([e.output],{type:"text/plain"}),{data:t,bytesCount:e.outputBytesCount,encoding:e.encoding}}function bs({messagesLimit:e,bytesLimit:t,durationLimit:n,pageExitObservable:o,sessionExpireObservable:r}){const s=o.subscribe(g=>u(g.reason)),i=r.subscribe(()=>u("session_expire")),c=new O(()=>()=>{s.unsubscribe(),i.unsubscribe()});let a=0,l=0;function u(g){if(l===0)return;const y=l,E=a;l=0,a=0,h(),c.notify({reason:g,messagesCount:y,bytesCount:E})}let d;function f(){d===void 0&&(d=he(()=>{u("duration_limit")},n))}function h(){Dt(d),d=void 0}return{flushObservable:c,get messagesCount(){return l},notifyBeforeAddMessage(g){a+g>=t&&u("bytes_limit"),l+=1,a+=g,f()},notifyAfterAddMessage(g=0){a+=g,l>=e?u("messages_limit"):a>=t&&u("bytes_limit")},notifyAfterRemoveMessage(g){a-=g,l-=1,l===0&&h()}}}function Cn(e,t,n,o,r,s,i=ms){const c=l(e,t),a=n&&l(e,n);function l(u,{endpoint:d,encoder:f}){return i({encoder:f,request:as(d,u.batchBytesLimit,o),flushController:bs({messagesLimit:u.batchMessagesLimit,bytesLimit:u.batchBytesLimit,durationLimit:u.flushTimeout,pageExitObservable:r,sessionExpireObservable:s}),messageBytesLimit:u.messageBytesLimit})}return{flushObservable:c.flushController.flushObservable,add(u,d=!0){c.add(u),a&&d&&a.add(n.transformMessage?n.transformMessage(u):u)},upsert:(u,d)=>{c.upsert(u,d),a&&a.upsert(n.transformMessage?n.transformMessage(u):u,d)},stop:()=>{c.stop(),a&&a.stop()}}}function ze(){let e="",t=0;return{isAsync:!1,get isEmpty(){return!e},write(n,o){const r=Ze(n);t+=r,e+=n,o&&o(r)},finish(n){n(this.finishSync())},finishSync(){const n={output:e,outputBytesCount:t,rawBytesCount:t,pendingData:""};return e="",t=0,n},estimateEncodedBytesCount(n){return n.length}}}class Ss{constructor(){this.callbacks={}}notify(t,n){const o=this.callbacks[t];o&&o.forEach(r=>r(n))}subscribe(t,n){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(n),{unsubscribe:()=>{this.callbacks[t]=this.callbacks[t].filter(o=>n!==o)}}}}function ys(e,t,n){let o=0,r=!1;return{isLimitReached(){if(o===0&&he(()=>{o=0},z),o+=1,o<=t||r)return r=!1,!1;if(o===t+1){r=!0;try{n({message:`Reached max number of ${e}s by minute: ${t}`,source:A.AGENT,startClocks:$()})}finally{r=!1}}return!0}}}let St;const yt=new WeakMap;function Es(e){return St||(St=Ts(e)),St}function Ts(e){return new O(t=>{const{stop:n}=V(XMLHttpRequest.prototype,"open",ws),{stop:o}=V(XMLHttpRequest.prototype,"send",s=>{_s(s,e,t)},{computeHandlingStack:!0}),{stop:r}=V(XMLHttpRequest.prototype,"abort",Os);return()=>{n(),o(),r()}})}function ws({target:e,parameters:[t,n]}){yt.set(e,{state:"open",method:String(t).toUpperCase(),url:at(String(n))})}function _s({target:e,handlingStack:t},n,o){const r=yt.get(e);if(!r)return;const s=r;s.state="start",s.startClocks=$(),s.isAborted=!1,s.xhr=e,s.handlingStack=t;let i=!1;const{stop:c}=V(e,"onreadystatechange",()=>{e.readyState===XMLHttpRequest.DONE&&a()}),a=()=>{if(l(),c(),i)return;i=!0;const u=r;u.state="complete",u.duration=Gn(s.startClocks.timeStamp,N()),u.status=e.status,o.notify(Jn(u))},{stop:l}=X(n,e,"loadend",a);o.notify(s)}function Os({target:e}){const t=yt.get(e);t&&(t.isAborted=!0)}let Et;function vn(){return Et||(Et=Rs()),Et}function Rs(){return new O(e=>{if(!window.fetch)return;const{stop:t}=V(window,"fetch",n=>Cs(n,e),{computeHandlingStack:!0});return t})}function Cs({parameters:e,onPostCall:t,handlingStack:n},o){const[r,s]=e;let i=s&&s.method;i===void 0&&r instanceof Request&&(i=r.method);const c=i!==void 0?String(i).toUpperCase():"GET",a=r instanceof Request?r.url:at(String(r)),l=$(),u={state:"start",init:s,input:r,method:c,startClocks:l,url:a,handlingStack:n};o.notify(u),e[0]=u.input,e[1]=u.init,t(d=>vs(o,d,u))}function vs(e,t,n){const o=n;function r(s){o.state="resolve",Object.assign(o,s),e.notify(o)}t.then(S(s=>{r({response:s,responseType:s.type,status:s.status,isAborted:!1})}),S(s=>{var i,c;r({status:0,isAborted:((c=(i=o.init)===null||i===void 0?void 0:i.signal)===null||c===void 0?void 0:c.aborted)||s instanceof DOMException&&s.code===DOMException.ABORT_ERR,error:s})}))}let Tt={};function As(e){const t=e.map(n=>(Tt[n]||(Tt[n]=Is(n)),Tt[n]));return Nt(...t)}function Is(e){return new O(t=>{const n=L[e];return L[e]=(...o)=>{n.apply(console,o);const r=Ue("console error");ge(()=>{t.notify(Ls(o,e,r))})},()=>{L[e]=n}})}function Ls(e,t,n){const o=e.map(s=>ks(s)).join(" ");let r;if(t===T.error){const s=e.find(B);r={stack:s?Y(x(s)):void 0,fingerprint:tn(s),causes:s?on(s,"console"):void 0,startClocks:$(),message:o,source:A.CONSOLE,handling:"handled",handlingStack:n,context:nn(s)}}return{api:t,message:o,error:r,handlingStack:n}}function ks(e){return typeof e=="string"?D(e):B(e)?Zt(x(e)):q(D(e),void 0,2)}function xs(e){const t=un(e)==="object";return t||w.error("Unsupported context:",e),t}function wt(e,t,n){const o={...e};for(const[r,{required:s,type:i}]of Object.entries(t))i==="string"&&r in o&&(o[r]=String(o[r])),s&&!(r in e)&&w.warn(`The property ${r} of ${n} is required; context will not be sent to the intake.`);return o}function Je(e="",{customerDataTracker:t,propertiesConfig:n={}}={}){let o={};const r=new O,s={getContext:()=>ln(o),setContext:i=>{xs(i)?(o=D(wt(i,n,e)),t==null||t.updateCustomerData(o)):s.clearContext(),r.notify()},setContextProperty:(i,c)=>{o=D(wt({...o,[i]:c},n,e)),t==null||t.updateCustomerData(o),r.notify()},removeContextProperty:i=>{delete o[i],t==null||t.updateCustomerData(o),wt(o,n,e),r.notify()},clearContext:()=>{o={},t==null||t.resetCustomerData(),r.notify()},changeObservable:r};return s}const Ds="_dd_c",Ms=[];function _t(e,t,n,o){const r=Ns(n,o);Ms.push(X(e,window,"storage",({key:l})=>{r===l&&i()})),t.changeObservable.subscribe(c);const s=re(a(),t.getContext());pe(s)||t.setContext(s);function i(){t.setContext(a())}function c(){localStorage.setItem(r,JSON.stringify(t.getContext()))}function a(){const l=localStorage.getItem(r);return l?JSON.parse(l):{}}}function Ns(e,t){return`${Ds}_${e}_${t}`}const $s=3*k,Ps=16*k,Us=200;function Fs(e=2){const t=new Map;let n=!1;function o(r=0){if(n||e===0)return;const s=e===2?$s:Ps;let i=r;t.forEach(c=>{i+=c.getBytesCount()}),i>s&&(Bs(s),n=!0)}return{createDetachedTracker:()=>{const r=An(()=>o(r.getBytesCount()));return r},getOrCreateTracker:r=>(t.has(r)||t.set(r,An(o)),t.get(r)),setCompressionStatus:r=>{e===0&&(e=r,o())},getCompressionStatus:()=>e,stop:()=>{t.forEach(r=>r.stop()),t.clear()}}}function An(e){let t=0;const{throttled:n,cancel:o}=$t(s=>{t=Ze(q(s)),e()},Us),r=()=>{o(),t=0};return{updateCustomerData:s=>{pe(s)?r():n(s)},resetCustomerData:r,getBytesCount:()=>t,stop:()=>{o()}}}function Bs(e){w.warn(`Customer data exceeds the recommended ${e/k}KiB threshold. ${Oe} ${Ct}/#customer-data-exceeds-the-recommended-threshold-warning`)}function Gs(e,t,n){const o=e.getReader(),r=[];let s=0;i();function i(){o.read().then(S(a=>{if(a.done){c();return}r.push(a.value),s+=a.value.length,s>n.bytesLimit?c():i()}),S(a=>t(a)))}function c(){o.cancel().catch(U);let a,l;{let u;if(r.length===1)u=r[0];else{u=new Uint8Array(s);let d=0;r.forEach(f=>{u.set(f,d),d+=f.length})}a=u.slice(0,n.bytesLimit),l=u.length>n.bytesLimit}t(void 0,a,l)}}const js="datadog-synthetics-public-id",Hs="datadog-synthetics-result-id",zs="datadog-synthetics-injects-rum";function In(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||J(zs))}function Js(){const e=window._DATADOG_SYNTHETICS_PUBLIC_ID||J(js);return typeof e=="string"?e:void 0}function Ks(){const e=window._DATADOG_SYNTHETICS_RESULT_ID||J(Hs);return typeof e=="string"?e:void 0}function Ke(e,t,n){const o=n.getHandler(),r=Array.isArray(o)?o:[o];return Ln[e]>=Ln[n.getLevel()]&&r.includes(t)}const m={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Ln={[m.ok]:0,[m.debug]:1,[m.info]:2,[m.notice]:4,[m.warn]:5,[m.error]:6,[m.critical]:7,[m.alert]:8,[m.emerg]:9};function We(e,{includeMessage:t=!1}={}){return{stack:e.stack,kind:e.type,message:t?e.message:void 0,causes:e.causes,fingerprint:e.fingerprint,handling:e.handling}}var Ws=function(e,t,n,o){var r=arguments.length,s=r<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,n):o,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,o);else for(var c=e.length-1;c>=0;c--)(i=e[c])&&(s=(r<3?i(s):r>3?i(t,n,s):i(t,n))||s);return r>3&&s&&Object.defineProperty(t,n,s),s};const we={console:"console",http:"http",silent:"silent"},qs=Object.keys(m);let I=class{constructor(t,n,o,r=we.http,s=m.debug,i={}){this.handleLogStrategy=t,this.handlerType=r,this.level=s,this.contextManager=Je("logger",{customerDataTracker:n}),this.contextManager.setContext(i),o&&this.contextManager.setContextProperty("logger",{name:o})}logImplementation(t,n,o=m.info,r,s){const i=D(n);let c;if(r!=null){const a=en({stackTrace:B(r)?x(r):void 0,originalError:r,nonErrorPrefix:"Provided",source:A.LOGGER,handling:"handled",startClocks:$()});c=re({error:We(a,{includeMessage:!0})},i)}else c=i;this.handleLogStrategy({message:D(t),context:c,status:o},this,s)}log(t,n,o=m.info,r){let s;Ke(o,we.http,this)&&(s=Ue("log")),this.logImplementation(t,n,o,r,s)}setContext(t){this.contextManager.setContext(t)}getContext(){return this.contextManager.getContext()}setContextProperty(t,n){this.contextManager.setContextProperty(t,n)}removeContextProperty(t){this.contextManager.removeContextProperty(t)}clearContext(){this.contextManager.clearContext()}setHandler(t){this.handlerType=t}getHandler(){return this.handlerType}setLevel(t){this.level=t}getLevel(){return this.level}};Ws([qn],I.prototype,"logImplementation",null),I.prototype.ok=M(m.ok),I.prototype.debug=M(m.debug),I.prototype.info=M(m.info),I.prototype.notice=M(m.notice),I.prototype.warn=M(m.warn),I.prototype.error=M(m.error),I.prototype.critical=M(m.critical),I.prototype.alert=M(m.alert),I.prototype.emerg=M(m.emerg);function M(e){return function(t,n,o){let r;Ke(e,we.http,this)&&(r=Ue("log")),this.logImplementation(t,n,e,o,r)}}function Ys(e,t,n){return{view:{referrer:document.referrer,url:window.location.href},context:e.getContext(),user:t.getContext(),account:n.getContext()}}const Vs=32*k;function Xs(e){e.usePciIntake===!0&&e.site&&e.site!=="datadoghq.com"&&w.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const t=Yo(e),n=kn(e.forwardConsoleLogs,Le(T),"Forward Console Logs"),o=kn(e.forwardReports,Le(Fe),"Forward Reports");if(!(!t||!n||!o))return e.forwardErrorsToLogs&&!n.includes(T.error)&&n.push(T.error),{forwardErrorsToLogs:e.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:o,requestErrorResponseLengthLimit:Vs,...t}}function kn(e,t,n){if(e===void 0)return[];if(!(e==="all"||Array.isArray(e)&&e.every(o=>t.includes(o)))){w.error(`${n} should be "all" or an array with allowed values "${t.join(\'", "\')}"`);return}return e==="all"?t:Mr(e)}function Zs(e){const t=Vo(e);return{forward_errors_to_logs:e.forwardErrorsToLogs,forward_console_logs:e.forwardConsoleLogs,forward_reports:e.forwardReports,use_pci_intake:e.usePciIntake,...t}}function Qs(e,t,n){const o=fn();let r,s;const i=t.observable.subscribe(c);function c(){if(!s||!r||!t.isGranted())return;i.unsubscribe();const a=n(r,s);o.drain(a)}return{init(a){if(!a){w.error("Missing configuration");return}if(Xo(a.enableExperimentalFeatures),je()&&(a=ei(a)),r=a,s){rn("DD_LOGS",a);return}const l=Xs(a);l&&(s=l,vn().subscribe(U),t.tryToInit(l.trackingConsent),c())},get initConfiguration(){return r},getInternalContext:U,handleLog(a,l,u,d=e(),f=N()){o.add(h=>h.handleLog(a,l,u,d,f))}}}function ei(e){return{...e,clientToken:"empty"}}const Ot="logs";function ti(e){const t=Fs(),n=Je("global context",{customerDataTracker:t.getOrCreateTracker(2)}),o=Je("user",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),r=Je("account",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),s=Io();function i(){return Ys(n,o,r)}let c=Qs(i,s,(u,d)=>{u.storeContextsAcrossPages&&(_t(d,n,Ot,2),_t(d,o,Ot,1),_t(d,r,Ot,4));const f=e(u,d,i,s);return c=ni(u,f),f});const a={},l=new I((...u)=>c.handleLog(...u),t.createDetachedTracker());return Rr({logger:l,init:S(u=>c.init(u)),setTrackingConsent:S(u=>{s.update(u),Hr({feature:"set-tracking-consent",tracking_consent:u})}),getGlobalContext:S(()=>n.getContext()),setGlobalContext:S(u=>n.setContext(u)),setGlobalContextProperty:S((u,d)=>n.setContextProperty(u,d)),removeGlobalContextProperty:S(u=>n.removeContextProperty(u)),clearGlobalContext:S(()=>n.clearContext()),createLogger:S((u,d={})=>(a[u]=new I((...f)=>c.handleLog(...f),t.createDetachedTracker(),D(u),d.handler,d.level,D(d.context)),a[u])),getLogger:S(u=>a[u]),getInitConfiguration:S(()=>ln(c.initConfiguration)),getInternalContext:S(u=>c.getInternalContext(u)),setUser:S(o.setContext),getUser:S(o.getContext),setUserProperty:S(o.setContextProperty),removeUserProperty:S(o.removeContextProperty),clearUser:S(o.clearContext),setAccount:S(r.setContext),getAccount:S(r.getContext),setAccountProperty:S(r.setContextProperty),removeAccountProperty:S(r.removeContextProperty),clearAccount:S(r.clearContext)})}function ni(e,t){return{init:n=>{rn("DD_LOGS",n)},initConfiguration:e,...t}}const oi="logs";function ri(e,t){const n=Xr(e,oi,o=>ii(e,o),t);return{findTrackedSession:(o,r={returnInactive:!1})=>{const s=n.findSession(o,r);return s&&s.trackingType==="1"?{id:s.id,anonymousId:s.anonymousId}:void 0},expireObservable:n.expireObservable}}function si(e){const n=xn(e)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new O}}function xn(e){return Re(e.sessionSampleRate)?"1":"0"}function ii(e,t){const n=ci(t)?t:xn(e);return{trackingType:n,isTracked:n==="1"}}function ci(e){return e==="0"||e==="1"}let Dn=!1;function qe(e){const t=window;if(In()){const o=n(t.DD_RUM_SYNTHETICS);return!o&&!Dn&&(Dn=!0,gn("Logs sent before RUM is injected by the synthetics worker",{testId:Js(),resultId:Ks()})),o}return n(t.DD_RUM);function n(o){if(o&&o.getInternalContext)return o.getInternalContext(e)}}function ai(e,t,n,o,r){const s=qs.concat(["custom"]),i={};s.forEach(c=>{i[c]=ys(c,t.eventRateLimiterThreshold,r)}),n.subscribe(0,({rawLogsEvent:c,messageContext:a=void 0,savedCommonContext:l=void 0,domainContext:u})=>{var d,f;const h=Hn(c.date),g=e.findTrackedSession(h);if(!e.findTrackedSession(h,{returnInactive:!0}))return;const E=l||o();let _e;!pe(E.account)&&E.account.id&&(_e=E.account),g&&g.anonymousId&&!E.user.anonymous_id&&(E.user.anonymous_id=g.anonymousId);const j=re({service:t.service,session_id:g?g.id:void 0,session:g?{id:g.id}:void 0,usr:pe(E.user)?void 0:E.user,account:_e,view:E.view},E.context,qe(h),c,a);((d=t.beforeSend)===null||d===void 0?void 0:d.call(t,j,u))===!1||j.origin!==A.AGENT&&((f=i[j.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,j)})}const ui={[T.log]:m.info,[T.debug]:m.debug,[T.info]:m.info,[T.warn]:m.warn,[T.error]:m.error};function li(e,t){const n=As(e.forwardConsoleLogs).subscribe(o=>{var r;const s={rawLogsEvent:{date:N(),message:o.message,origin:A.CONSOLE,error:o.error&&We(o.error),status:ui[o.api]},messageContext:(r=o.error)===null||r===void 0?void 0:r.context,domainContext:{handlingStack:o.handlingStack}};t.notify(0,s)});return{stop:()=>{n.unsubscribe()}}}function di(e,t){const n=vr(e,e.forwardReports).subscribe(o=>{let r=o.message,s;const i=o.originalError.type==="deprecation"?m.warn:m.error;i===m.error?s=We(o):o.stack&&(r+=` Found in ${Tr(o.stack)}`),t.notify(0,{rawLogsEvent:{date:N(),message:r,origin:A.REPORT,error:s,status:i}})});return{stop:()=>{n.unsubscribe()}}}function fi(e,t){if(!e.forwardErrorsToLogs)return{stop:U};const n=Es(e).subscribe(s=>{s.state==="complete"&&r("xhr",s)}),o=vn().subscribe(s=>{s.state==="resolve"&&r("fetch",s)});function r(s,i){!Wo(i.url)&&(mi(i)||mn(i.status))&&("xhr"in i?pi(i.xhr,e,c):i.response?hi(i.response,e,c):i.error&&gi(i.error,e,c));function c(a){const l={isAborted:i.isAborted,handlingStack:i.handlingStack};t.notify(0,{rawLogsEvent:{message:`${bi(s)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:a||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:m.error,origin:A.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),o.unsubscribe()}}}function pi(e,t,n){typeof e.response=="string"?n(Rt(e.response,t)):n(e.response)}function gi(e,t,n){n(Rt(Y(x(e)),t))}function hi(e,t,n){const o=ts(e);!o||!o.body?n():window.TextDecoder?Si(o.body,t.requestErrorResponseLengthLimit,(r,s)=>{n(r?`Unable to retrieve response: ${r}`:s)}):o.text().then(S(r=>n(Rt(r,t))),S(r=>n(`Unable to retrieve response: ${r}`)))}function mi(e){return e.status===0&&e.responseType!=="opaque"}function Rt(e,t){return e.length>t.requestErrorResponseLengthLimit?`${e.substring(0,t.requestErrorResponseLengthLimit)}...`:e}function bi(e){return e==="xhr"?"XHR":"Fetch"}function Si(e,t,n){Gs(e,(o,r,s)=>{if(o)n(o);else{let i=new TextDecoder().decode(r);s&&(i+="..."),n(void 0,i)}},{bytesLimit:t,collectStreamBody:!0})}function yi(e,t){if(!e.forwardErrorsToLogs)return{stop:U};const n=new O,{stop:o}=wr(n),r=n.subscribe(s=>{t.notify(0,{rawLogsEvent:{message:s.message,date:s.startClocks.timeStamp,error:We(s),origin:A.SOURCE,status:m.error},messageContext:s.context})});return{stop:()=>{o(),r.unsubscribe()}}}const Ei=Ss;function Ti(e){function t(n,o,r,s,i){const c=re(o.getContext(),n.context);if(Ke(n.status,we.console,o)&&_i(n,c),Ke(n.status,we.http,o)){const a={rawLogsEvent:{date:i||N(),message:n.message,status:n.status,origin:A.LOGGER},messageContext:c,savedCommonContext:s};r&&(a.domainContext={handlingStack:r}),e.notify(0,a)}}return{handleLog:t}}const wi={[m.ok]:T.debug,[m.debug]:T.debug,[m.info]:T.info,[m.notice]:T.info,[m.warn]:T.warn,[m.error]:T.error,[m.critical]:T.error,[m.alert]:T.error,[m.emerg]:T.error};function _i({status:e,message:t},n){H[wi[e]].call(L,t,n)}function Oi(e,t,n,o,r){const s=Cn(e,{endpoint:e.logsEndpointBuilder,encoder:ze()},e.replica&&{endpoint:e.replica.logsEndpointBuilder,encoder:ze()},n,o,r.expireObservable);return t.subscribe(1,i=>{s.add(i)}),s}function Ri(e){const t=bt();e.subscribe(1,n=>{t.send("log",n)})}function Ci(e){return{get:t=>{const n=e.findTrackedSession(t);if(n)return{session_id:n.id}}}}function vi(e){return t=>{e.notify(0,{rawLogsEvent:{message:t.message,date:t.startClocks.timeStamp,origin:A.AGENT,status:m.error}}),gn("Error reported to customer",{"error.message":t.message})}}function Ai(e,t,n,o,r){const s=Ur("browser-logs-sdk",t);s.setContextProvider(()=>{var c,a,l,u,d,f;return{application:{id:(c=qe())===null||c===void 0?void 0:c.application_id},session:{id:(a=r.findTrackedSession())===null||a===void 0?void 0:a.id},view:{id:(u=(l=qe())===null||l===void 0?void 0:l.view)===null||u===void 0?void 0:u.id},action:{id:(f=(d=qe())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(je()){const c=bt(),a=s.observable.subscribe(l=>c.send("internal_telemetry",l));i.push(()=>a.unsubscribe())}else{const c=Cn(t,{endpoint:t.rumEndpointBuilder,encoder:ze()},t.replica&&{endpoint:t.replica.rumEndpointBuilder,encoder:ze()},n,o,r.expireObservable);i.push(()=>c.stop());const a=s.observable.subscribe(l=>c.add(l,Gr(t)));i.push(()=>a.unsubscribe())}return Br(),jr(Zs(e)),{telemetry:s,stop:()=>{i.forEach(c=>c())}}}function Ii(e,t,n,o){const r=new Ei,s=[];r.subscribe(1,f=>an("logs",f));const i=vi(r),c=gs(t),a=t.sessionStoreStrategyType&&!je()&&!In()?ri(t,o):si(t),{stop:l}=Ai(e,t,i,c,a);s.push(()=>l()),fi(t,r),yi(t,r),li(t,r),di(t,r);const{handleLog:u}=Ti(r);if(ai(a,t,r,n,i),je())Ri(r);else{const{stop:f}=Oi(t,r,i,c,a);s.push(()=>f())}const d=Ci(a);return{handleLog:u,getInternalContext:d.get,stop:()=>{s.forEach(f=>f())}}}const ie=ti(Ii);Cr(P(),"DD_LOGS",ie);const R=class R{constructor(t,n,o,r,s){this.copy=()=>new R(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let c=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return c+="."+(this.field?"1":"2"),c},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,R.toStr(i)},this.toFrames=i=>{let c=60,a=0;Math.floor(i)==60?(c=60,a=0):Math.floor(i)==59?(c=60,a=4):Math.floor(i)==30?(c=30,a=0):Math.floor(i)==29&&(c=30,a=2);let l=this.h,u=this.m,d=this.s,f=this.f,h=this.field;const g=l*60+u,E=(g-Math.floor(g/10))*a;return l*(c*3600)+u*(c*60)+d*c+(f*2+h)-E},this.addSeconds=i=>{let c=this.copy();return c.s+=i,c.s>=60&&(c.s=0,c.m++,c.m>=60&&(c.m=0,c.h++)),c},this.addFrames=(i,c)=>{let a=this.toFrames(c);return a+=i,R.fromFrames(a,c)},this.subtractFrames=(i,c)=>this.addFrames(-i,c),this.h=t||0,this.m=n||0,this.s=o||0,this.f=r||0,this.field=s||0}static compare(t,n){return t.h!==n.h?t.h<n.h?-1:1:t.m!==n.m?t.m<n.m?-1:1:t.s!==n.s?t.s<n.s?-1:1:t.f!==n.f?t.f<n.f?-1:1:t.field!==n.field?t.field<n.field?-1:1:0}static generateTimecodeRange(t,n,o){const r=[];let s=t;for(;R.compare(s,n)<=0;)r.push(s),s=s.addSeconds(o);return r}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(t){return this.toFrames(t)*1e3/t}};R.calculateCurrentTimeCode=t=>{var d;if(!t.video||!t.clocker||!t.gameParams)throw new Error("OTTPlayer is not initialized");const n=t.video,o=t.clocker,r=o.videoFPScalculator.getFPS(),c=(n.currentTime-o.syncPoint.playerTime)%(60*60*24)*r+o.syncPoint.frame;if(c===0||r===0)throw new Error("Current frame is 0 or fps is 0");const a=R.calculateCurrentOffset(c,(d=t.gameParams)==null?void 0:d.offsets);if(a===void 0)throw new Error("Offset is undefined");let l=Math.floor(c-a);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),R.fromFrames(l,r)},R.calculateCurrentOffset=(t,n)=>{for(let o=1;o<n.length;o++)if(t<n[o].frame)return n[o-1].offset;return n[n.length-1].offset},R.fromFrames=(t,n)=>{let o=60,r=0;Math.floor(n)==60?(o=60,r=0):Math.floor(n)==59?(o=60,r=4):Math.floor(n)==30?(o=30,r=0):Math.floor(n)==29&&(o=30,r=2);let s=Math.floor(n*60),i=Math.floor(n*60*10),c=i*6,a=t,l=Math.floor(a/c);a-=l*c;let u=Math.floor(a/i);a-=u*i,a>=o*60&&(a+=r*(Math.floor((a-o*60)/s)+1));let d=Math.floor(a/(o*60));a-=d*(o*60);let f=Math.floor(a/o);a-=f*o;let h=a;d+=u*10;let g=0;return g=h%2,h=Math.floor(h/2),new R(l,d,f,h,g)},R.toStr=t=>{const n="_";let o=("0"+t.h).slice(-2)+n+("0"+t.m).slice(-2)+n+("0"+t.s).slice(-2)+n+("0"+t.f).slice(-2);return t.field&&(o+="_1"),o},R.fromStr=t=>{const o=t.split("_").map(Number);if(o.length==4){const[r,s,i,c]=o;return new R(r,s,i,c,0)}else if(o.length==5){const[r,s,i,c,a]=o;return new R(r,s,i,c,a)}else throw new Error("Invalid timecode format: "+t)},R.fromMetadata=t=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,o=t.timecode.match(n);if(!o)throw new Error("Invalid timecode format: "+t.timecode);const[,r,s,i,c,a]=o,l=Number(r),u=Number(s),d=Number(i),f=Number(c),h=a?Number(a):0;return new R(l,u,d,f,h)};let G=R;const p=class p{constructor(t){p.options=t,this.isLoggingOn=t.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&ie.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let o=localStorage.getItem(n);o||(o=crypto.randomUUID(),localStorage.setItem(n,o)),p.tracking.mac=o,p.tracking.dev=`${t.platform}_${t.browserName}`,p.beatHandle||(p.options&&_(p.options,"Logger")&&console.log("[Logger] Starting tracking beat"),p.beatHandle=window.setInterval(p.flushTracking,15e3))}static setMessagePort(t){this.messagePort=t}static getMessagePort(){return this.messagePort}setLoggingOn(t){this.isLoggingOn=t}setAttributes(t){p.processAttributes(t);for(const n in t)ie.logger.setContextProperty(n,t[n])}info(t,n){t==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),t==="didToggleGlobalAugmentationDrawing"&&this.emit("mediaSessionDidUpdateGlobalAugmentationState",{isGlobalAugmentationEnabled:(n==null?void 0:n.isEnabled)||!0}),t==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),t==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),t==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&p.processAttributes(n),this.isLoggingOn&&(ie.logger.info(t,n),p.options&&_(p.options,"Logger")&&console.log("[Logger] Sending info: ",t))}error(t,n){n&&p.processAttributes(n),this.isLoggingOn&&(ie.logger.error(t,n),p.tracking.err_time=Date.now().toFixed(0),p.tracking.err_desc=t+(n?` - ${JSON.stringify(n)}`:""),p.options&&_(p.options,"Logger")&&console.log("[Logger] Sending error: ",t))}warn(t,n){n&&p.processAttributes(n),this.isLoggingOn&&(ie.logger.warn(t,n),p.options&&_(p.options,"Logger")&&console.log("[Logger] Sending warn: ",t))}handleMessageFromWorker(t){t.actionType==="INFO"?this.info(t.message,t.attributes):t.actionType==="ERROR"?this.error(t.message,t.attributes):t.actionType==="WARN"?this.warn(t.message,t.attributes):t.actionType==="SET_ATTRIBUTES"&&t.attributes&&this.setAttributes(t.attributes)}static setAttributes(t){p.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:t})}static info(t,n){p.messagePort.postMessage({type:"LOG",actionType:"INFO",message:t,attributes:n})}static error(t,n){p.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:t,attributes:n})}static warn(t,n){p.messagePort.postMessage({type:"LOG",actionType:"WARN",message:t,attributes:n})}static processAttributes(t){if(t.player_version&&(p.tracking.sdk=t.player_version),t.media_id&&(p.tracking.gid=t.media_id),t.game_id&&(p.tracking.buc=t.game_id),t.bb_session_id&&(p.tracking.sid=t.bb_session_id,p.options&&_(p.options,"Logger")&&console.log("[Logger] Setting bb_session_id:",p.tracking.sid)),t.last_timecode){const o=G.fromStr(t.last_timecode);p.tracking.tc=o.print(),p.lastTimecodeMillis=o.totalMilliseconds(59.94),p.lastTimecodeMillis&&p.lastZipMillis&&(p.tracking.cache=(p.lastZipMillis-p.lastTimecodeMillis).toFixed(0))}t.last_offset&&(p.tracking.off=t.last_offset),t.last_loading_zip&&(p.tracking.zip=t.last_loading_zip+".zip",p.lastZipMillis=G.fromStr(t.last_loading_zip).totalMilliseconds(59.94),p.lastTimecodeMillis&&p.lastZipMillis&&(p.tracking.cache=(p.lastZipMillis-p.lastTimecodeMillis).toFixed(0))),t.last_rendered_frame&&(p.tracking.aug_time=Date.now().toFixed(0)),t.asset&&(p.tracking.asset=t.asset)}static objectToQuery(t){return Object.entries(t).filter(([n,o])=>o!==0&&o!=="").map(([n,o])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(o))}`).join("&")}emit(t,n){const o=new CustomEvent(t,{detail:n});this.eventTarget.dispatchEvent(o)}};p.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},p.lastTimecodeMillis=0,p.lastZipMillis=0,p.flushTracking=()=>{const t=Date.now().toFixed(0);p.tracking.now=t;const o=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${p.objectToQuery(p.tracking)}`;p.options&&_(p.options,"Logger")&&console.log("[Logger] Flushing tracking data:",o),fetch(o,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),p.tracking.err_desc="",p.tracking.err_time=""};let C=p;class Mn{constructor(t,n,o){this.jobsQueue=[],this.processedTimecodes=[],this.downloaderStopped=!1,this.firstDownload=!0,this.updateStreamData=r=>{this.streamData=r,this.initiateJobs(this.options.DOWNLOADER_ZIP_START_OFFSET,this.options.DOWNLOADER_ZIP_END_OFFSET,this.options.DOWNLOADER_ZIP_LENGTH_SECONDS),this.clearOldJobs(1)},this.initiateJobs=(r,s,i)=>{if(!this.streamData){C.error("[Downloader] Stream data is not available"),this.options&&_(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}const c=G.fromStr(this.streamData.timeCode),a=c.addSeconds(r),l=c.addSeconds(s),u=G.generateTimecodeRange(a,l,i);for(const d of u){const f=d.toZipTimeCodeString();this.processedTimecodes.includes(f)||(this.processedTimecodes.push(f),this.addJob(f))}},this.clearOldJobs=r=>{if(!this.streamData){C.error("[Downloader] Stream data is not available"),this.options&&_(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}const i=G.fromStr(this.streamData.timeCode).totalSeconds()-r;this.processedTimecodes=this.processedTimecodes.filter(c=>G.fromStr(c).totalSeconds()>i)},this.clearAllJobs=()=>{this.jobsQueue=[],this.currentJob=void 0,this.processedTimecodes=[]},this.addJob=r=>{if(this.jobsQueue.some(s=>s===r)){this.options&&_(this.options,"Downloader")&&console.log(`[Downloader] Job already exists for timeCode=${r}`);return}this.jobsQueue.push(r),this.startNextJob()},this.startNextJob=()=>{!this.currentJob&&this.jobsQueue.length>0&&(this.currentJob=this.jobsQueue.shift(),this.options&&_(this.options,"Downloader")&&console.log(`[Downloader] Starting job timeCode=${this.currentJob}`),this.downloadZip(this.currentJob))},this.jobDone=()=>{this.currentJob=void 0,this.startNextJob()},this.downloadZip=async r=>{if(!this.streamData){C.error("[Downloader] Stream data is not available"),this.options&&_(this.options,"Errors")&&console.error("[Downloader] Stream data is not available");return}this.firstDownload&&(this.firstDownload=!1,C.info("didStartAugmentationDownload",{timestamp:r}));const{fps:s,cloudFrontURL:i,bucketName:c}=this.streamData;try{this.options&&_(this.options,"Downloader")&&console.log(`[Downloader] Fetching zip for timeCode=${r}`);const{arrayBuffer:a,ottActions:l}=await this.fetchMetadata(i,c,s,r);if(this.downloaderStopped)return;if(this.postArrayBufferToDecoder(r,a),C.setAttributes({last_loading_zip:r}),!this.ottActions||this.ottActions.toggle.web!==l.toggle.web||l.toggle[this.streamData.customerId]!==void 0&&(this.ottActions.toggle[this.streamData.customerId]===void 0||this.ottActions.toggle[this.streamData.customerId]!==l.toggle[this.streamData.customerId])||l.toggle[this.streamData.customerId]===void 0&&this.ottActions.toggle[this.streamData.customerId]!==void 0){const d=l.toggle[this.streamData.customerId]!==void 0?l.toggle[this.streamData.customerId]&&l.toggle.web:l.toggle.web;this.ottActions&&C.info("didToggleGlobalAugmentationDrawing",{isEnabled:d}),this.ottActions=l,this.postOTTActionsToRenderer(l)}}catch(a){C.error("[Downloader] Error fetching zip",a),this.options&&_(this.options,"Errors")&&console.error("[Downloader] Error fetching zip:",a)}this.jobDone()},this.fetchMetadata=async(r,s,i,c)=>{const l=`${`${r}/${s}`}/manifests/59.94/${c}.zip`;this.options&&_(this.options,"Fetcher")&&console.log(`[Fetcher] Fetching metadata from ${l}`);const u=performance.now(),d=await fetch(l),f=await d.arrayBuffer(),g=(performance.now()-u)/1e3,y=d.headers.get("x-tgi-ott-actions");let E;if(y?E=JSON.parse(y):E={toggle:{ios:!0,android:!0,web:!0}},!d.ok)throw new Error(`HTTP error! Status: ${d.status}`);return g>1&&C.warn("didFetchZip",{downloadTaskURL:l,downloadTime:g}),{arrayBuffer:f,ottActions:E}},this.stop=()=>{this.downloaderStopped=!0,this.clearAllJobs()},this.postArrayBufferToDecoder=t,this.postOTTActionsToRenderer=n,this.options=o}}let ce=null,ae=null,Ye,v;self.onmessage=async e=>{const{data:t}=e;if(t.type==="SET_LOGGER_PORT"&&C.setMessagePort(t.port),t.type==="SET_RENDERER_PORT"&&(ce=t.port,ce.onmessage=Li),t.type==="SET_DECODER_PORT"&&(ae=t.port,ae.onmessage=ki),t.type==="SET_OPTIONS"&&(v=t.options,C.setMessagePort(self),Ye=new Mn(Nn,$n,v)),t.type==="VIDEO_SEEKED"){if(!v)return;Ye.stop(),Ye=new Mn(Nn,$n,v)}};async function Li(e){const{data:t}=e;self.postMessage(t),t.type==="DOWNLOADER_INPUT"&&Ye.updateStreamData(t.streamData)}function Nn(e,t){if(!ae)return;v&&_(v,"Downloader")&&console.log(`[DownloaderWorker] Posting an ArrayBuffer to Decoder, timeCode=${e}`);const n={type:"DECODER_INPUT",timeCode:e,arrayBuffer:t};ae==null||ae.postMessage(n,{transfer:[t]})}function $n(e){if(!ce)return;v&&_(v,"Downloader")&&console.log(`[DownloaderWorker] Posting OTTActions to Renderer, toggle=${e.toggle}`);const t={type:"OTT_ACTIONS",ottActions:e};ce==null||ce.postMessage(t)}function ki(e){v&&_(v,"Downloader")&&console.log("[DownloaderWorker] Received message from Decoder:",e.data)}self.onunhandledrejection=e=>{C.error("[DownloaderWorker] Unhandled rejection",{error:e.reason}),v&&(_(v,"Errors")&&console.error("[DownloaderWorker] Unhandled rejection:",e.reason),e.preventDefault())},self.onerror=e=>{C.error("[DownloaderWorker] Unhandled error",{error:e}),v&&(_(v,"Errors")&&console.error("[DownloaderWorker] Unhandled error:",e),e instanceof Event&&e.preventDefault())}})();\n',Mt=typeof self<"u"&&self.Blob&&new Blob([Pt],{type:"text/javascript;charset=utf-8"});function rr(t){let e;try{if(e=Mt&&(self.URL||self.webkitURL).createObjectURL(Mt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Pt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const Bt='(function(){"use strict";const L=(a,n)=>!a.debug||!a.debug.on?!1:a.debug[`log${n}`];function Zt(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var mt={},Qt;function fn(){return Qt||(Qt=1,function(a){var n=function(){var e=new Date,t=4,r=3,l=2,h=1,m=t,y={setLogLevel:function(b){b==this.debug?m=h:b==this.info?m=l:b==this.warn?m=r:(b==this.error,m=t)},debug:function(b,U){console.debug===void 0&&(console.debug=console.log),h>=m&&console.debug("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},log:function(b,U){this.debug(b.msg)},info:function(b,U){l>=m&&console.info("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},warn:function(b,U){r>=m&&console.warn("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)},error:function(b,U){t>=m&&console.error("["+n.getDurationString(new Date-e,1e3)+"]","["+b+"]",U)}};return y}();n.getDurationString=function(e,t){var r;function l(w,T){for(var C=""+w,F=C.split(".");F[0].length<T;)F[0]="0"+F[0];return F.join(".")}e<0?(r=!0,e=-e):r=!1;var h=t||1,m=e/h,y=Math.floor(m/3600);m-=y*3600;var b=Math.floor(m/60);m-=b*60;var U=m*1e3;return m=Math.floor(m),U-=m*1e3,U=Math.floor(U),(r?"-":"")+y+":"+l(b,2)+":"+l(m,2)+"."+l(U,3)},n.printRanges=function(e){var t=e.length;if(t>0){for(var r="",l=0;l<t;l++)l>0&&(r+=","),r+="["+n.getDurationString(e.start(l))+","+n.getDurationString(e.end(l))+"]";return r}else return"(empty)"},a.Log=n;var o=function(e){if(e instanceof ArrayBuffer)this.buffer=e,this.dataview=new DataView(e);else throw"Needs an array buffer";this.position=0};o.prototype.getPosition=function(){return this.position},o.prototype.getEndPosition=function(){return this.buffer.byteLength},o.prototype.getLength=function(){return this.buffer.byteLength},o.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},o.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},o.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:t?r=this.dataview.getInt8(this.position):r=this.dataview.getUint8(this.position);break;case 2:t?r=this.dataview.getInt16(this.position):r=this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r|=this.dataview.getUint8(this.position+1)<<8,r|=this.dataview.getUint8(this.position+2);break;case 4:t?r=this.dataview.getInt32(this.position):r=this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}else throw"Not enough bytes in buffer"},o.prototype.readUint8=function(){return this.readAnyInt(1,!1)},o.prototype.readUint16=function(){return this.readAnyInt(2,!1)},o.prototype.readUint24=function(){return this.readAnyInt(3,!1)},o.prototype.readUint32=function(){return this.readAnyInt(4,!1)},o.prototype.readUint64=function(){return this.readAnyInt(8,!1)},o.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;r<e;r++)t+=String.fromCharCode(this.readUint8());return t}else throw"Not enough bytes in buffer"},o.prototype.readCString=function(){for(var e=[];;){var t=this.readUint8();if(t!==0)e.push(t);else break}return String.fromCharCode.apply(null,e)},o.prototype.readInt8=function(){return this.readAnyInt(1,!0)},o.prototype.readInt16=function(){return this.readAnyInt(2,!0)},o.prototype.readInt32=function(){return this.readAnyInt(4,!0)},o.prototype.readInt64=function(){return this.readAnyInt(8,!1)},o.prototype.readUint8Array=function(e){for(var t=new Uint8Array(e),r=0;r<e;r++)t[r]=this.readUint8();return t},o.prototype.readInt16Array=function(e){for(var t=new Int16Array(e),r=0;r<e;r++)t[r]=this.readInt16();return t},o.prototype.readUint16Array=function(e){for(var t=new Int16Array(e),r=0;r<e;r++)t[r]=this.readUint16();return t},o.prototype.readUint32Array=function(e){for(var t=new Uint32Array(e),r=0;r<e;r++)t[r]=this.readUint32();return t},o.prototype.readInt32Array=function(e){for(var t=new Int32Array(e),r=0;r<e;r++)t[r]=this.readInt32();return t},a.MP4BoxStream=o;var d=function(e,t,r){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:typeof e=="object"?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=r??d.LITTLE_ENDIAN};d.prototype={},d.prototype.getPosition=function(){return this.position},d.prototype._realloc=function(e){if(this._dynamicSize){var t=this._byteOffset+this.position+e,r=this._buffer.byteLength;if(t<=r){t>this._byteLength&&(this._byteLength=t);return}for(r<1&&(r=1);t>r;)r*=2;var l=new ArrayBuffer(r),h=new Uint8Array(this._buffer),m=new Uint8Array(l,0,h.length);m.set(h),this.buffer=l,this._byteLength=t}},d.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),r=new Uint8Array(this._buffer,0,t.length);t.set(r),this.buffer=e}},d.BIG_ENDIAN=!1,d.LITTLE_ENDIAN=!0,d.prototype._byteLength=0,Object.defineProperty(d.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(d.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(d.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),d.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},d.prototype.isEof=function(){return this.position>=this._byteLength},d.prototype.mapUint8Array=function(e){this._realloc(e*1);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},d.prototype.readInt32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Int32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt16Array=function(e,t){e=e??this.byteLength-this.position/2;var r=new Int16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt8Array=function(e){e=e??this.byteLength-this.position;var t=new Int8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readUint32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Uint32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readUint16Array=function(e,t){e=e??this.byteLength-this.position/2;var r=new Uint16Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readUint8Array=function(e){e=e??this.byteLength-this.position;var t=new Uint8Array(e);return d.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},d.prototype.readFloat64Array=function(e,t){e=e??this.byteLength-this.position/8;var r=new Float64Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readFloat32Array=function(e,t){e=e??this.byteLength-this.position/4;var r=new Float32Array(e);return d.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),d.arrayToNative(r,t??this.endianness),this.position+=r.byteLength,r},d.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,e??this.endianness);return this.position+=2,t},d.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},d.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,e??this.endianness);return this.position+=2,t},d.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},d.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,e??this.endianness);return this.position+=4,t},d.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,e??this.endianness);return this.position+=8,t},d.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,d.memcpy=function(e,t,r,l,h){var m=new Uint8Array(e,t,h),y=new Uint8Array(r,l,h);m.set(y)},d.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},d.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},d.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=0;r<e.byteLength;r+=e.BYTES_PER_ELEMENT)for(var l=r+e.BYTES_PER_ELEMENT-1,h=r;l>h;l--,h++){var m=t[h];t[h]=t[l],t[l]=m}return e},d.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],r=0;r<e.length;r++)t[r]=e[r];return String.fromCharCode.apply(null,t)},d.prototype.readString=function(e,t){return t==null||t=="ASCII"?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(e??this.byteLength-this.position)]):new TextDecoder(t).decode(this.mapUint8Array(e))},d.prototype.readCString=function(e){var t=this.byteLength-this.position,r=new Uint8Array(this._buffer,this._byteOffset+this.position),l=t;e!=null&&(l=Math.min(e,t));for(var h=0;h<l&&r[h]!==0;h++);var m=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(h)]);return e!=null?this.position+=l-h:h!=t&&(this.position+=1),m};var f=Math.pow(2,32);d.prototype.readInt64=function(){return this.readInt32()*f+this.readUint32()},d.prototype.readUint64=function(){return this.readUint32()*f+this.readUint32()},d.prototype.readInt64=function(){return this.readUint32()*f+this.readUint32()},d.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},a.DataStream=d,d.prototype.save=function(e){var t=new Blob([this.buffer]);if(window.URL&&URL.createObjectURL){var r=window.URL.createObjectURL(t),l=document.createElement("a");document.body.appendChild(l),l.setAttribute("href",r),l.setAttribute("download",e),l.setAttribute("target","_self"),l.click(),window.URL.revokeObjectURL(r)}else throw"DataStream.save: Can\'t create object URL."},d.prototype._dynamicSize=!0,Object.defineProperty(d.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(e){e||this._trimAlloc(),this._dynamicSize=e}}),d.prototype.shift=function(e){var t=new ArrayBuffer(this._byteLength-e),r=new Uint8Array(t),l=new Uint8Array(this._buffer,e,r.length);r.set(l),this.buffer=t,this.position-=e},d.prototype.writeInt32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeInt32(e[r],t)},d.prototype.writeInt16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeInt16(e[r],t)},d.prototype.writeInt8Array=function(e){if(this._realloc(e.length*1),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(var t=0;t<e.length;t++)this.writeInt8(e[t])},d.prototype.writeUint32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeUint32(e[r],t)},d.prototype.writeUint16Array=function(e,t){if(this._realloc(e.length*2),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeUint16(e[r],t)},d.prototype.writeUint8Array=function(e){if(this._realloc(e.length*1),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(var t=0;t<e.length;t++)this.writeUint8(e[t])},d.prototype.writeFloat64Array=function(e,t){if(this._realloc(e.length*8),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeFloat64(e[r],t)},d.prototype.writeFloat32Array=function(e,t){if(this._realloc(e.length*4),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)d.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,t);else for(var r=0;r<e.length;r++)this.writeFloat32(e[r],t)},d.prototype.writeInt32=function(e,t){this._realloc(4),this._dataView.setInt32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeInt16=function(e,t){this._realloc(2),this._dataView.setInt16(this.position,e,t??this.endianness),this.position+=2},d.prototype.writeInt8=function(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1},d.prototype.writeUint32=function(e,t){this._realloc(4),this._dataView.setUint32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeUint16=function(e,t){this._realloc(2),this._dataView.setUint16(this.position,e,t??this.endianness),this.position+=2},d.prototype.writeUint8=function(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1},d.prototype.writeFloat32=function(e,t){this._realloc(4),this._dataView.setFloat32(this.position,e,t??this.endianness),this.position+=4},d.prototype.writeFloat64=function(e,t){this._realloc(8),this._dataView.setFloat64(this.position,e,t??this.endianness),this.position+=8},d.prototype.writeUCS2String=function(e,t,r){r==null&&(r=e.length);for(var l=0;l<e.length&&l<r;l++)this.writeUint16(e.charCodeAt(l),t);for(;l<r;l++)this.writeUint16(0)},d.prototype.writeString=function(e,t,r){var l=0;if(t==null||t=="ASCII")if(r!=null){var h=Math.min(e.length,r);for(l=0;l<h;l++)this.writeUint8(e.charCodeAt(l));for(;l<r;l++)this.writeUint8(0)}else for(l=0;l<e.length;l++)this.writeUint8(e.charCodeAt(l));else this.writeUint8Array(new TextEncoder(t).encode(e.substring(0,r)))},d.prototype.writeCString=function(e,t){var r=0;if(t!=null){var l=Math.min(e.length,t);for(r=0;r<l;r++)this.writeUint8(e.charCodeAt(r));for(;r<t;r++)this.writeUint8(0)}else{for(r=0;r<e.length;r++)this.writeUint8(e.charCodeAt(r));this.writeUint8(0)}},d.prototype.writeStruct=function(e,t){for(var r=0;r<e.length;r+=2){var l=e[r+1];this.writeType(l,t[e[r]],t)}},d.prototype.writeType=function(e,t,r){var l;if(typeof e=="function")return e(this,t);if(typeof e=="object"&&!(e instanceof Array))return e.set(this,t,r);var h=null,m="ASCII",y=this.position;switch(typeof e=="string"&&/:/.test(e)&&(l=e.split(":"),e=l[0],h=parseInt(l[1])),typeof e=="string"&&/,/.test(e)&&(l=e.split(","),e=l[0],m=parseInt(l[1])),e){case"uint8":this.writeUint8(t);break;case"int8":this.writeInt8(t);break;case"uint16":this.writeUint16(t,this.endianness);break;case"int16":this.writeInt16(t,this.endianness);break;case"uint32":this.writeUint32(t,this.endianness);break;case"int32":this.writeInt32(t,this.endianness);break;case"float32":this.writeFloat32(t,this.endianness);break;case"float64":this.writeFloat64(t,this.endianness);break;case"uint16be":this.writeUint16(t,d.BIG_ENDIAN);break;case"int16be":this.writeInt16(t,d.BIG_ENDIAN);break;case"uint32be":this.writeUint32(t,d.BIG_ENDIAN);break;case"int32be":this.writeInt32(t,d.BIG_ENDIAN);break;case"float32be":this.writeFloat32(t,d.BIG_ENDIAN);break;case"float64be":this.writeFloat64(t,d.BIG_ENDIAN);break;case"uint16le":this.writeUint16(t,d.LITTLE_ENDIAN);break;case"int16le":this.writeInt16(t,d.LITTLE_ENDIAN);break;case"uint32le":this.writeUint32(t,d.LITTLE_ENDIAN);break;case"int32le":this.writeInt32(t,d.LITTLE_ENDIAN);break;case"float32le":this.writeFloat32(t,d.LITTLE_ENDIAN);break;case"float64le":this.writeFloat64(t,d.LITTLE_ENDIAN);break;case"cstring":this.writeCString(t,h);break;case"string":this.writeString(t,m,h);break;case"u16string":this.writeUCS2String(t,this.endianness,h);break;case"u16stringle":this.writeUCS2String(t,d.LITTLE_ENDIAN,h);break;case"u16stringbe":this.writeUCS2String(t,d.BIG_ENDIAN,h);break;default:if(e.length==3){for(var b=e[1],U=0;U<t.length;U++)this.writeType(b,t[U]);break}else{this.writeStruct(e,t);break}}h!=null&&(this.position=y,this._realloc(h),this.position=y+h)},d.prototype.writeUint64=function(e){var t=Math.floor(e/f);this.writeUint32(t),this.writeUint32(e&4294967295)},d.prototype.writeUint24=function(e){this.writeUint8((e&16711680)>>16),this.writeUint8((e&65280)>>8),this.writeUint8(e&255)},d.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},d.prototype.mapInt32Array=function(e,t){this._realloc(e*4);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r},d.prototype.mapInt16Array=function(e,t){this._realloc(e*2);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*2,r},d.prototype.mapInt8Array=function(e){this._realloc(e*1);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=e*1,t},d.prototype.mapUint32Array=function(e,t){this._realloc(e*4);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r},d.prototype.mapUint16Array=function(e,t){this._realloc(e*2);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*2,r},d.prototype.mapFloat64Array=function(e,t){this._realloc(e*8);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*8,r},d.prototype.mapFloat32Array=function(e,t){this._realloc(e*4);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return d.arrayToNative(r,t??this.endianness),this.position+=e*4,r};var c=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};c.prototype=new d(new ArrayBuffer,0,d.BIG_ENDIAN),c.prototype.initialized=function(){var e;return this.bufferIndex>-1?!0:this.buffers.length>0?(e=this.buffers[0],e.fileStart===0?(this.buffer=e,this.bufferIndex=0,n.debug("MultiBufferStream","Stream ready for parsing"),!0):(n.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)):(n.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(e,t){n.debug("ArrayBuffer","Trying to create a new buffer of size: "+(e.byteLength+t.byteLength));var r=new Uint8Array(e.byteLength+t.byteLength);return r.set(new Uint8Array(e),0),r.set(new Uint8Array(t),e.byteLength),r.buffer},c.prototype.reduceBuffer=function(e,t,r){var l;return l=new Uint8Array(r),l.set(new Uint8Array(e,t,r)),l.buffer.fileStart=e.fileStart+t,l.buffer.usedBytes=0,l.buffer},c.prototype.insertBuffer=function(e){for(var t=!0,r=0;r<this.buffers.length;r++){var l=this.buffers[r];if(e.fileStart<=l.fileStart){if(e.fileStart===l.fileStart)if(e.byteLength>l.byteLength){this.buffers.splice(r,1),r--;continue}else n.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring");else e.fileStart+e.byteLength<=l.fileStart||(e=this.reduceBuffer(e,0,l.fileStart-e.fileStart)),n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),r===0&&(this.buffer=e);t=!1;break}else if(e.fileStart<l.fileStart+l.byteLength){var h=l.fileStart+l.byteLength-e.fileStart,m=e.byteLength-h;if(m>0)e=this.reduceBuffer(e,h,m);else{t=!1;break}}}t&&(n.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.push(e),r===0&&(this.buffer=e))},c.prototype.logBufferLevel=function(e){var t,r,l,h,m=[],y,b="";for(l=0,h=0,t=0;t<this.buffers.length;t++)r=this.buffers[t],t===0?(y={},m.push(y),y.start=r.fileStart,y.end=r.fileStart+r.byteLength,b+="["+y.start+"-"):y.end===r.fileStart?y.end=r.fileStart+r.byteLength:(y={},y.start=r.fileStart,b+=m[m.length-1].end-1+"], ["+y.start+"-",y.end=r.fileStart+r.byteLength,m.push(y)),l+=r.usedBytes,h+=r.byteLength;m.length>0&&(b+=y.end-1+"]");var U=e?n.info:n.debug;this.buffers.length===0?U("MultiBufferStream","No more buffer in memory"):U("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+l+"/"+h+" bytes), continuous ranges: "+b)},c.prototype.cleanBuffers=function(){var e,t;for(e=0;e<this.buffers.length;e++)t=this.buffers[e],t.usedBytes===t.byteLength&&(n.debug("MultiBufferStream","Removing buffer #"+e),this.buffers.splice(e,1),e--)},c.prototype.mergeNextBuffer=function(){var e;if(this.bufferIndex+1<this.buffers.length)if(e=this.buffers[this.bufferIndex+1],e.fileStart===this.buffer.fileStart+this.buffer.byteLength){var t=this.buffer.byteLength,r=this.buffer.usedBytes,l=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,e),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=r,this.buffer.fileStart=l,n.debug("ISOFile","Concatenating buffer for box parsing (length: "+t+"->"+this.buffer.byteLength+")"),!0}else return!1;else return!1},c.prototype.findPosition=function(e,t,r){var l,h=null,m=-1;for(e===!0?l=0:l=this.bufferIndex;l<this.buffers.length&&(h=this.buffers[l],h.fileStart<=t);){m=l,r&&(h.fileStart+h.byteLength<=t?h.usedBytes=h.byteLength:h.usedBytes=t-h.fileStart,this.logBufferLevel());l++}return m!==-1?(h=this.buffers[m],h.fileStart+h.byteLength>=t?(n.debug("MultiBufferStream","Found position in existing buffer #"+m),m):-1):-1},c.prototype.findEndContiguousBuf=function(e){var t,r,l,h=e!==void 0?e:this.bufferIndex;if(r=this.buffers[h],this.buffers.length>h+1)for(t=h+1;t<this.buffers.length&&(l=this.buffers[t],l.fileStart===r.fileStart+r.byteLength);t++)r=l;return r.fileStart+r.byteLength},c.prototype.getEndFilePositionAfter=function(e){var t=this.findPosition(!0,e,!1);return t!==-1?this.findEndContiguousBuf(t):e},c.prototype.addUsedBytes=function(e){this.buffer.usedBytes+=e,this.logBufferLevel()},c.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},c.prototype.seek=function(e,t,r){var l;return l=this.findPosition(t,e,r),l!==-1?(this.buffer=this.buffers[l],this.bufferIndex=l,this.position=e-this.buffer.fileStart,n.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(n.debug("MultiBufferStream","Position "+e+" not found in buffered data"),!1)},c.prototype.getPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.position},c.prototype.getLength=function(){return this.byteLength},c.prototype.getEndPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.byteLength},a.MultiBufferStream=c;var u=function(){var e=3,t=4,r=5,l=6,h=[];h[e]="ES_Descriptor",h[t]="DecoderConfigDescriptor",h[r]="DecoderSpecificInfo",h[l]="SLConfigDescriptor",this.getDescriptorName=function(b){return h[b]};var m=this,y={};return this.parseOneDescriptor=function(b){var U=0,w,T,C;for(w=b.readUint8(),C=b.readUint8();C&128;)U=(U<<7)+(C&127),C=b.readUint8();return U=(U<<7)+(C&127),n.debug("MPEG4DescriptorParser","Found "+(h[w]||"Descriptor "+w)+", size "+U+" at position "+b.getPosition()),h[w]?T=new y[h[w]](U):T=new y.Descriptor(U),T.parse(b),T},y.Descriptor=function(b,U){this.tag=b,this.size=U,this.descs=[]},y.Descriptor.prototype.parse=function(b){this.data=b.readUint8Array(this.size)},y.Descriptor.prototype.findDescriptor=function(b){for(var U=0;U<this.descs.length;U++)if(this.descs[U].tag==b)return this.descs[U];return null},y.Descriptor.prototype.parseRemainingDescriptors=function(b){for(var U=b.position;b.position<U+this.size;){var w=m.parseOneDescriptor(b);this.descs.push(w)}},y.ES_Descriptor=function(b){y.Descriptor.call(this,e,b)},y.ES_Descriptor.prototype=new y.Descriptor,y.ES_Descriptor.prototype.parse=function(b){if(this.ES_ID=b.readUint16(),this.flags=b.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=b.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){var U=b.readUint8();this.URL=b.readString(U),this.size-=U+1}else this.URL="";this.flags&32?(this.OCR_ES_ID=b.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(b)},y.ES_Descriptor.prototype.getOTI=function(b){var U=this.findDescriptor(t);return U?U.oti:0},y.ES_Descriptor.prototype.getAudioConfig=function(b){var U=this.findDescriptor(t);if(!U)return null;var w=U.findDescriptor(r);if(w&&w.data){var T=(w.data[0]&248)>>3;return T===31&&w.data.length>=2&&(T=32+((w.data[0]&7)<<3)+((w.data[1]&224)>>5)),T}else return null},y.DecoderConfigDescriptor=function(b){y.Descriptor.call(this,t,b)},y.DecoderConfigDescriptor.prototype=new y.Descriptor,y.DecoderConfigDescriptor.prototype.parse=function(b){this.oti=b.readUint8(),this.streamType=b.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=b.readUint24(),this.maxBitrate=b.readUint32(),this.avgBitrate=b.readUint32(),this.size-=13,this.parseRemainingDescriptors(b)},y.DecoderSpecificInfo=function(b){y.Descriptor.call(this,r,b)},y.DecoderSpecificInfo.prototype=new y.Descriptor,y.SLConfigDescriptor=function(b){y.Descriptor.call(this,l,b)},y.SLConfigDescriptor.prototype=new y.Descriptor,this};a.MPEG4DescriptorParser=u;var s={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){s.FullBox.prototype=new s.Box,s.ContainerBox.prototype=new s.Box,s.SampleEntry.prototype=new s.Box,s.TrackGroupTypeBox.prototype=new s.FullBox,s.BASIC_BOXES.forEach(function(e){s.createBoxCtor(e)}),s.FULL_BOXES.forEach(function(e){s.createFullBoxCtor(e)}),s.CONTAINER_BOXES.forEach(function(e){s.createContainerBoxCtor(e[0],null,e[1])})},Box:function(e,t,r){this.type=e,this.size=t,this.uuid=r},FullBox:function(e,t,r){s.Box.call(this,e,t,r),this.flags=0,this.version=0},ContainerBox:function(e,t,r){s.Box.call(this,e,t,r),this.boxes=[]},SampleEntry:function(e,t,r,l){s.ContainerBox.call(this,e,t),this.hdr_size=r,this.start=l},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){s.FullBox.call(this,e,t)},createBoxCtor:function(e,t){s.boxCodes.push(e),s[e+"Box"]=function(r){s.Box.call(this,e,r)},s[e+"Box"].prototype=new s.Box,t&&(s[e+"Box"].prototype.parse=t)},createFullBoxCtor:function(e,t){s[e+"Box"]=function(r){s.FullBox.call(this,e,r)},s[e+"Box"].prototype=new s.FullBox,s[e+"Box"].prototype.parse=function(r){this.parseFullHeader(r),t&&t.call(this,r)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,r=0;r<t;r++)this[e[r]+"s"]=[]}},createContainerBoxCtor:function(e,t,r){s[e+"Box"]=function(l){s.ContainerBox.call(this,e,l),s.addSubBoxArrays.call(this,r)},s[e+"Box"].prototype=new s.ContainerBox,t&&(s[e+"Box"].prototype.parse=t)},createMediaSampleEntryCtor:function(e,t,r){s.sampleEntryCodes[e]=[],s[e+"SampleEntry"]=function(l,h){s.SampleEntry.call(this,l,h),s.addSubBoxArrays.call(this,r)},s[e+"SampleEntry"].prototype=new s.SampleEntry,t&&(s[e+"SampleEntry"].prototype.parse=t)},createSampleEntryCtor:function(e,t,r,l){s.sampleEntryCodes[e].push(t),s[t+"SampleEntry"]=function(h){s[e+"SampleEntry"].call(this,t,h),s.addSubBoxArrays.call(this,l)},s[t+"SampleEntry"].prototype=new s[e+"SampleEntry"],r&&(s[t+"SampleEntry"].prototype.parse=r)},createEncryptedSampleEntryCtor:function(e,t,r){s.createSampleEntryCtor.call(this,e,t,r,["sinf"])},createSampleGroupCtor:function(e,t){s[e+"SampleGroupEntry"]=function(r){s.SampleGroupEntry.call(this,e,r)},s[e+"SampleGroupEntry"].prototype=new s.SampleGroupEntry,t&&(s[e+"SampleGroupEntry"].prototype.parse=t)},createTrackGroupCtor:function(e,t){s[e+"TrackGroupTypeBox"]=function(r){s.TrackGroupTypeBox.call(this,e,r)},s[e+"TrackGroupTypeBox"].prototype=new s.TrackGroupTypeBox,t&&(s[e+"TrackGroupTypeBox"].prototype.parse=t)},createUUIDBox:function(e,t,r,l){s.UUIDs.push(e),s.UUIDBoxes[e]=function(h){t?s.FullBox.call(this,"uuid",h,e):r?s.ContainerBox.call(this,"uuid",h,e):s.Box.call(this,"uuid",h,e)},s.UUIDBoxes[e].prototype=t?new s.FullBox:r?new s.ContainerBox:new s.Box,l&&(t?s.UUIDBoxes[e].prototype.parse=function(h){this.parseFullHeader(h),l&&l.call(this,h)}:s.UUIDBoxes[e].prototype.parse=l)}};s.initialize(),s.TKHD_FLAG_ENABLED=1,s.TKHD_FLAG_IN_MOVIE=2,s.TKHD_FLAG_IN_PREVIEW=4,s.TFHD_FLAG_BASE_DATA_OFFSET=1,s.TFHD_FLAG_SAMPLE_DESC=2,s.TFHD_FLAG_SAMPLE_DUR=8,s.TFHD_FLAG_SAMPLE_SIZE=16,s.TFHD_FLAG_SAMPLE_FLAGS=32,s.TFHD_FLAG_DUR_EMPTY=65536,s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,s.TRUN_FLAGS_DATA_OFFSET=1,s.TRUN_FLAGS_FIRST_FLAG=4,s.TRUN_FLAGS_DURATION=256,s.TRUN_FLAGS_SIZE=512,s.TRUN_FLAGS_FLAGS=1024,s.TRUN_FLAGS_CTS_OFFSET=2048,s.Box.prototype.add=function(e){return this.addBox(new s[e+"Box"])},s.Box.prototype.addBox=function(e){return this.boxes.push(e),this[e.type+"s"]?this[e.type+"s"].push(e):this[e.type]=e,e},s.Box.prototype.set=function(e,t){return this[e]=t,this},s.Box.prototype.addEntry=function(e,t){var r=t||"entries";return this[r]||(this[r]=[]),this[r].push(e),this},a.BoxParser=s,s.parseUUID=function(e){return s.parseHex16(e)},s.parseHex16=function(e){for(var t="",r=0;r<16;r++){var l=e.readUint8().toString(16);t+=l.length===1?"0"+l:l}return t},s.parseOneBox=function(e,t,r){var l,h=e.getPosition(),m=0,y,b;if(e.getEndPosition()-h<8)return n.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:s.ERR_NOT_ENOUGH_DATA};if(r&&r<8)return n.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:s.ERR_NOT_ENOUGH_DATA};var U=e.readUint32(),w=e.readString(4),T=w;if(n.debug("BoxParser","Found box of type \'"+w+"\' and size "+U+" at position "+h),m=8,w=="uuid"){if(e.getEndPosition()-e.getPosition()<16||r-m<16)return e.seek(h),n.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:s.ERR_NOT_ENOUGH_DATA};b=s.parseUUID(e),m+=16,T=b}if(U==1){if(e.getEndPosition()-e.getPosition()<8||r&&r-m<8)return e.seek(h),n.warn("BoxParser",\'Not enough data in stream to parse the extended size of the "\'+w+\'" box\'),{code:s.ERR_NOT_ENOUGH_DATA};U=e.readUint64(),m+=8}else if(U===0){if(r)U=r;else if(w!=="mdat")return n.error("BoxParser","Unlimited box size not supported for type: \'"+w+"\'"),l=new s.Box(w,U),{code:s.OK,box:l,size:l.size}}return U!==0&&U<m?(n.error("BoxParser","Box of type "+w+" has an invalid size "+U+" (too small to be a box)"),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):U!==0&&r&&U>r?(n.error("BoxParser","Box of type \'"+w+"\' has a size "+U+" greater than its container size "+r),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):U!==0&&h+U>e.getEndPosition()?(e.seek(h),n.info("BoxParser","Not enough data in stream to parse the entire \'"+w+"\' box"),{code:s.ERR_NOT_ENOUGH_DATA,type:w,size:U,hdr_size:m,start:h}):t?{code:s.OK,type:w,size:U,hdr_size:m,start:h}:(s[w+"Box"]?l=new s[w+"Box"](U):w!=="uuid"?(n.warn("BoxParser","Unknown box type: \'"+w+"\'"),l=new s.Box(w,U),l.has_unparsed_data=!0):s.UUIDBoxes[b]?l=new s.UUIDBoxes[b](U):(n.warn("BoxParser","Unknown uuid type: \'"+b+"\'"),l=new s.Box(w,U),l.uuid=b,l.has_unparsed_data=!0),l.hdr_size=m,l.start=h,l.write===s.Box.prototype.write&&l.type!=="mdat"&&(n.info("BoxParser","\'"+T+"\' box writing not yet implemented, keeping unparsed data in memory for later write"),l.parseDataAndRewind(e)),l.parse(e),y=e.getPosition()-(l.start+l.size),y<0?(n.warn("BoxParser","Parsing of box \'"+T+"\' did not read the entire indicated box data size (missing "+-y+" bytes), seeking forward"),e.seek(l.start+l.size)):y>0&&(n.error("BoxParser","Parsing of box \'"+T+"\' read "+y+" more bytes than the indicated box data size, seeking backwards"),l.size!==0&&e.seek(l.start+l.size)),{code:s.OK,box:l,size:l.size})},s.Box.prototype.parse=function(e){this.type!="mdat"?this.data=e.readUint8Array(this.size-this.hdr_size):this.size===0?e.seek(e.getEndPosition()):e.seek(this.start+this.size)},s.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},s.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},s.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},s.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},s.ContainerBox.prototype.parse=function(e){for(var t,r;e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)if(r=t.box,this.boxes.push(r),this.subBoxNames&&this.subBoxNames.indexOf(r.type)!=-1)this[this.subBoxNames[this.subBoxNames.indexOf(r.type)]+"s"].push(r);else{var l=r.type!=="uuid"?r.type:r.uuid;this[l]?n.warn("Box of type "+l+" already stored in field of this type"):this[l]=r}else return},s.Box.prototype.parseLanguage=function(e){this.language=e.readUint16();var t=[];t[0]=this.language>>10&31,t[1]=this.language>>5&31,t[2]=this.language&31,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},s.SAMPLE_ENTRY_TYPE_VISUAL="Visual",s.SAMPLE_ENTRY_TYPE_AUDIO="Audio",s.SAMPLE_ENTRY_TYPE_HINT="Hint",s.SAMPLE_ENTRY_TYPE_METADATA="Metadata",s.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",s.SAMPLE_ENTRY_TYPE_SYSTEM="System",s.SAMPLE_ENTRY_TYPE_TEXT="Text",s.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},s.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},s.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},s.SampleEntry.prototype.parseFooter=function(e){s.ContainerBox.prototype.parse.call(this,e)},s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_HINT),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SYSTEM),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_TEXT),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),s.createMediaSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"fLaC"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_TEXT,"enct"),s.createEncryptedSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"encm"),s.createBoxCtor("a1lx",function(e){var t=e.readUint8()&1,r=((t&1)+1)*16;this.layer_size=[];for(var l=0;l<3;l++)r==16?this.layer_size[l]=e.readUint16():this.layer_size[l]=e.readUint32()}),s.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),s.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),s.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1){n.error("av1C marker problem");return}if(this.version=t&127,this.version!==1){n.error("av1C version "+this.version+" not supported");return}if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=t&31,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=t&3,t=e.readUint8(),this.reserved_1=t>>5&7,this.reserved_1!==0){n.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=t>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=t&15;else if(this.reserved_2=t&15,this.reserved_2!==0){n.error("av1C reserved_2 parsing problem");return}var r=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(r)}),s.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=e.readUint8()&3,this.nb_SPS_nalus=e.readUint8()&31,r=this.size-this.hdr_size-6,this.SPS=[],t=0;t<this.nb_SPS_nalus;t++)this.SPS[t]={},this.SPS[t].length=e.readUint16(),this.SPS[t].nalu=e.readUint8Array(this.SPS[t].length),r-=2+this.SPS[t].length;for(this.nb_PPS_nalus=e.readUint8(),r--,this.PPS=[],t=0;t<this.nb_PPS_nalus;t++)this.PPS[t]={},this.PPS[t].length=e.readUint16(),this.PPS[t].nalu=e.readUint8Array(this.PPS[t].length),r-=2+this.PPS[t].length;r>0&&(this.ext=e.readUint8Array(r))}),s.createBoxCtor("btrt",function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()}),s.createFullBoxCtor("ccst",function(e){var t=e.readUint8();this.all_ref_pics_intra=(t&128)==128,this.intra_pred_used=(t&64)==64,this.max_ref_per_pic=(t&63)>>2,e.readUint24()}),s.createBoxCtor("cdef",function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t<this.channel_count;t++)this.channel_indexes.push(e.readUint16()),this.channel_types.push(e.readUint16()),this.channel_associations.push(e.readUint16())}),s.createBoxCtor("clap",function(e){this.cleanApertureWidthN=e.readUint32(),this.cleanApertureWidthD=e.readUint32(),this.cleanApertureHeightN=e.readUint32(),this.cleanApertureHeightD=e.readUint32(),this.horizOffN=e.readUint32(),this.horizOffD=e.readUint32(),this.vertOffN=e.readUint32(),this.vertOffD=e.readUint32()}),s.createBoxCtor("clli",function(e){this.max_content_light_level=e.readUint16(),this.max_pic_average_light_level=e.readUint16()}),s.createFullBoxCtor("cmex",function(e){this.flags&1&&(this.pos_x=e.readInt32()),this.flags&2&&(this.pos_y=e.readInt32()),this.flags&4&&(this.pos_z=e.readInt32()),this.flags&8&&(this.version==0?this.flags&16?(this.quat_x=e.readInt32(),this.quat_y=e.readInt32(),this.quat_z=e.readInt32()):(this.quat_x=e.readInt16(),this.quat_y=e.readInt16(),this.quat_z=e.readInt16()):this.version==1),this.flags&32&&(this.id=e.readUint32())}),s.createFullBoxCtor("cmin",function(e){this.focal_length_x=e.readInt32(),this.principal_point_x=e.readInt32(),this.principal_point_y=e.readInt32(),this.flags&1&&(this.focal_length_y=e.readInt32(),this.skew_factor=e.readInt32())}),s.createBoxCtor("cmpd",function(e){for(this.component_count=e.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var t=e.readUint16();this.component_types.push(t),t>=32768&&this.component_type_urls.push(e.readCString())}}),s.createFullBoxCtor("co64",function(e){var t,r;if(t=e.readUint32(),this.chunk_offsets=[],this.version===0)for(r=0;r<t;r++)this.chunk_offsets.push(e.readUint64())}),s.createFullBoxCtor("CoLL",function(e){this.maxCLL=e.readUint16(),this.maxFALL=e.readUint16()}),s.createBoxCtor("colr",function(e){if(this.colour_type=e.readString(4),this.colour_type==="nclx"){this.colour_primaries=e.readUint16(),this.transfer_characteristics=e.readUint16(),this.matrix_coefficients=e.readUint16();var t=e.readUint8();this.full_range_flag=t>>7}else this.colour_type==="rICC"?this.ICC_profile=e.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=e.readUint8Array(this.size-4))}),s.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),s.createFullBoxCtor("cslg",function(e){this.version===0&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),s.createFullBoxCtor("ctts",function(e){var t,r;if(t=e.readUint32(),this.sample_counts=[],this.sample_offsets=[],this.version===0)for(r=0;r<t;r++){this.sample_counts.push(e.readUint32());var l=e.readInt32();l<0&&n.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(l)}else if(this.version==1)for(r=0;r<t;r++)this.sample_counts.push(e.readUint32()),this.sample_offsets.push(e.readInt32())}),s.createBoxCtor("dac3",function(e){var t=e.readUint8(),r=e.readUint8(),l=e.readUint8();this.fscod=t>>6,this.bsid=t>>1&31,this.bsmod=(t&1)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=r&3|l>>5&7}),s.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=t&7,this.ind_subs=[];for(var r=0;r<this.num_ind_sub+1;r++){var l={};this.ind_subs.push(l);var h=e.readUint8(),m=e.readUint8(),y=e.readUint8();l.fscod=h>>6,l.bsid=h>>1&31,l.bsmod=(h&1)<<4|m>>4&15,l.acmod=m>>1&7,l.lfeon=m&1,l.num_dep_sub=y>>1&15,l.num_dep_sub>0&&(l.chan_loc=(y&1)<<8|e.readUint8())}}),s.createFullBoxCtor("dfLa",function(e){var t=127,r=128,l=[],h=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{var m=e.readUint8(),y=Math.min(m&t,h.length-1);if(y?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),l.push(h[y]),m&r)break}while(!0);this.numMetadataBlocks=l.length+" ("+l.join(", ")+")"}),s.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),s.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),s.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),s.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),this.ChannelMappingFamily!==0){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t<this.OutputChannelCount;t++)this.ChannelMapping[t]=e.readUint8()}}),s.createFullBoxCtor("dref",function(e){var t,r;this.entries=[];for(var l=e.readUint32(),h=0;h<l;h++)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)r=t.box,this.entries.push(r);else return}),s.createBoxCtor("drep",function(e){this.bytessent=e.readUint64()}),s.createFullBoxCtor("elng",function(e){this.extended_language=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("elst",function(e){this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.entries.push(l),this.version===1?(l.segment_duration=e.readUint64(),l.media_time=e.readInt64()):(l.segment_duration=e.readUint32(),l.media_time=e.readInt32()),l.media_rate_integer=e.readInt16(),l.media_rate_fraction=e.readInt16()}}),s.createFullBoxCtor("emsg",function(e){this.version==1?(this.timescale=e.readUint32(),this.presentation_time=e.readUint64(),this.event_duration=e.readUint32(),this.id=e.readUint32(),this.scheme_id_uri=e.readCString(),this.value=e.readCString()):(this.scheme_id_uri=e.readCString(),this.value=e.readCString(),this.timescale=e.readUint32(),this.presentation_time_delta=e.readUint32(),this.event_duration=e.readUint32(),this.id=e.readUint32());var t=this.size-this.hdr_size-(4*4+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version==1&&(t-=4),this.message_data=e.readUint8Array(t)}),s.createEntityToGroupCtor=function(e,t){s[e+"Box"]=function(r){s.FullBox.call(this,e,r)},s[e+"Box"].prototype=new s.FullBox,s[e+"Box"].prototype.parse=function(r){if(this.parseFullHeader(r),t)t.call(this,r);else for(this.group_id=r.readUint32(),this.num_entities_in_group=r.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var l=r.readUint32();this.entity_ids.push(l)}}},s.createEntityToGroupCtor("aebr"),s.createEntityToGroupCtor("afbr"),s.createEntityToGroupCtor("albc"),s.createEntityToGroupCtor("altr"),s.createEntityToGroupCtor("brst"),s.createEntityToGroupCtor("dobr"),s.createEntityToGroupCtor("eqiv"),s.createEntityToGroupCtor("favc"),s.createEntityToGroupCtor("fobr"),s.createEntityToGroupCtor("iaug"),s.createEntityToGroupCtor("pano"),s.createEntityToGroupCtor("slid"),s.createEntityToGroupCtor("ster"),s.createEntityToGroupCtor("tsyn"),s.createEntityToGroupCtor("wbbr"),s.createEntityToGroupCtor("prgr"),s.createEntityToGroupCtor("pymd",function(e){this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[];for(var t=0;t<this.num_entities_in_group;t++){var r=e.readUint32();this.entity_ids.push(r)}for(this.tile_size_x=e.readUint16(),this.tile_size_y=e.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[],t=0;t<this.num_entities_in_group;t++)this.layer_binning[t]=e.readUint16(),this.tiles_in_layer_row_minus1[t]=e.readUint16(),this.tiles_in_layer_column_minus1[t]=e.readUint16()}),s.createFullBoxCtor("esds",function(e){var t=e.readUint8Array(this.size-this.hdr_size);if(typeof u<"u"){var r=new u;this.esd=r.parseOneDescriptor(new d(t.buffer,0,d.BIG_ENDIAN))}}),s.createBoxCtor("fiel",function(e){this.fieldCount=e.readUint8(),this.fieldOrdering=e.readUint8()}),s.createBoxCtor("frma",function(e){this.data_format=e.readString(4)}),s.createBoxCtor("ftyp",function(e){var t=this.size-this.hdr_size;this.major_brand=e.readString(4),this.minor_version=e.readUint32(),t-=8,this.compatible_brands=[];for(var r=0;t>=4;)this.compatible_brands[r]=e.readString(4),t-=4,r++}),s.createFullBoxCtor("hdlr",function(e){this.version===0&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]==="\\0"&&(this.name=this.name.slice(0,-1)))}),s.createBoxCtor("hvcC",function(e){var t,r,l,h;this.configurationVersion=e.readUint8(),h=e.readUint8(),this.general_profile_space=h>>6,this.general_tier_flag=(h&32)>>5,this.general_profile_idc=h&31,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,this.chroma_format_idc=e.readUint8()&3,this.bit_depth_luma_minus8=e.readUint8()&7,this.bit_depth_chroma_minus8=e.readUint8()&7,this.avgFrameRate=e.readUint16(),h=e.readUint8(),this.constantFrameRate=h>>6,this.numTemporalLayers=(h&13)>>3,this.temporalIdNested=(h&4)>>2,this.lengthSizeMinusOne=h&3,this.nalu_arrays=[];var m=e.readUint8();for(t=0;t<m;t++){var y=[];this.nalu_arrays.push(y),h=e.readUint8(),y.completeness=(h&128)>>7,y.nalu_type=h&63;var b=e.readUint16();for(r=0;r<b;r++){var U={};y.push(U),l=e.readUint16(),U.data=e.readUint8Array(l)}}}),s.createFullBoxCtor("iinf",function(e){var t;this.version===0?this.entry_count=e.readUint16():this.entry_count=e.readUint32(),this.item_infos=[];for(var r=0;r<this.entry_count;r++)if(t=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),t.code===s.OK)t.box.type!=="infe"&&n.error("BoxParser","Expected \'infe\' box, got "+t.box.type),this.item_infos[r]=t.box;else return}),s.createFullBoxCtor("iloc",function(e){var t;t=e.readUint8(),this.offset_size=t>>4&15,this.length_size=t&15,t=e.readUint8(),this.base_offset_size=t>>4&15,this.version===1||this.version===2?this.index_size=t&15:this.index_size=0,this.items=[];var r=0;if(this.version<2)r=e.readUint16();else if(this.version===2)r=e.readUint32();else throw"version of iloc box not supported";for(var l=0;l<r;l++){var h={};if(this.items.push(h),this.version<2)h.item_ID=e.readUint16();else if(this.version===2)h.item_ID=e.readUint32();else throw"version of iloc box not supported";switch(this.version===1||this.version===2?h.construction_method=e.readUint16()&15:h.construction_method=0,h.data_reference_index=e.readUint16(),this.base_offset_size){case 0:h.base_offset=0;break;case 4:h.base_offset=e.readUint32();break;case 8:h.base_offset=e.readUint64();break;default:throw"Error reading base offset size"}var m=e.readUint16();h.extents=[];for(var y=0;y<m;y++){var b={};if(h.extents.push(b),this.version===1||this.version===2)switch(this.index_size){case 0:b.extent_index=0;break;case 4:b.extent_index=e.readUint32();break;case 8:b.extent_index=e.readUint64();break;default:throw"Error reading extent index"}switch(this.offset_size){case 0:b.extent_offset=0;break;case 4:b.extent_offset=e.readUint32();break;case 8:b.extent_offset=e.readUint64();break;default:throw"Error reading extent index"}switch(this.length_size){case 0:b.extent_length=0;break;case 4:b.extent_length=e.readUint32();break;case 8:b.extent_length=e.readUint64();break;default:throw"Error reading extent index"}}}}),s.createBoxCtor("imir",function(e){var t=e.readUint8();this.reserved=t>>7,this.axis=t&1}),s.createFullBoxCtor("infe",function(e){if((this.version===0||this.version===1)&&(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),this.version===1){this.extension_type=e.readString(4),n.warn("BoxParser","Cannot parse extension type"),e.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=e.readUint16():this.version===3&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),this.item_type==="mime"?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):this.item_type==="uri "&&(this.item_uri_type=e.readCString()))}),s.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t<entry_count;t++){var l={};this.associations.push(l),this.version<1?l.id=e.readUint16():l.id=e.readUint32();var h=e.readUint8();for(l.props=[],r=0;r<h;r++){var m=e.readUint8(),y={};l.props.push(y),y.essential=(m&128)>>7===1,this.flags&1?y.property_index=(m&127)<<8|e.readUint8():y.property_index=m&127}}}),s.createFullBoxCtor("iref",function(e){var t,r;for(this.references=[];e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),t.code===s.OK)this.version===0?r=new s.SingleItemTypeReferenceBox(t.type,t.size,t.hdr_size,t.start):r=new s.SingleItemTypeReferenceBoxLarge(t.type,t.size,t.hdr_size,t.start),r.write===s.Box.prototype.write&&r.type!=="mdat"&&(n.warn("BoxParser",r.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),this.references.push(r);else return}),s.createBoxCtor("irot",function(e){this.angle=e.readUint8()&3}),s.createFullBoxCtor("ispe",function(e){this.image_width=e.readUint32(),this.image_height=e.readUint32()}),s.createFullBoxCtor("kind",function(e){this.schemeURI=e.readCString(),this.value=e.readCString()}),s.createFullBoxCtor("leva",function(e){var t=e.readUint8();this.levels=[];for(var r=0;r<t;r++){var l={};this.levels[r]=l,l.track_ID=e.readUint32();var h=e.readUint8();switch(l.padding_flag=h>>7,l.assignment_type=h&127,l.assignment_type){case 0:l.grouping_type=e.readString(4);break;case 1:l.grouping_type=e.readString(4),l.grouping_type_parameter=e.readUint32();break;case 2:break;case 3:break;case 4:l.sub_track_id=e.readUint32();break;default:n.warn("BoxParser","Unknown leva assignement type")}}}),s.createBoxCtor("lhvC",function(e){var t,r,l;this.configurationVersion=e.readUint8(),this.min_spatial_segmentation_idc=e.readUint16()&4095,this.parallelismType=e.readUint8()&3,l=e.readUint8(),this.numTemporalLayers=(l&13)>>3,this.temporalIdNested=(l&4)>>2,this.lengthSizeMinusOne=l&3,this.nalu_arrays=[];var h=e.readUint8();for(t=0;t<h;t++){var m=[];this.nalu_arrays.push(m),l=e.readUint8(),m.completeness=(l&128)>>7,m.nalu_type=l&63;var y=e.readUint16();for(r=0;r<y;r++){var b={};m.push(b);var U=e.readUint16();b.data=e.readUint8Array(U)}}}),s.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),s.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()});function p(e,t){this.x=e,this.y=t}p.prototype.toString=function(){return"("+this.x+","+this.y+")"},s.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]=new p(e.readUint16(),e.readUint16()),this.display_primaries[1]=new p(e.readUint16(),e.readUint16()),this.display_primaries[2]=new p(e.readUint16(),e.readUint16()),this.white_point=new p(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),s.createFullBoxCtor("mdhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),s.createFullBoxCtor("mehd",function(e){this.flags&1&&(n.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),this.version==1?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),s.createFullBoxCtor("meta",function(e){this.boxes=[],s.ContainerBox.prototype.parse.call(this,e)}),s.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),s.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),s.createFullBoxCtor("mskC",function(e){this.bits_per_pixel=e.readUint8()}),s.createFullBoxCtor("mvhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),s.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),s.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),s.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r<Math.floor((t+1)/2);r++)this.padbits=e.readUint8()}),s.createBoxCtor("pasp",function(e){this.hSpacing=e.readUint32(),this.vSpacing=e.readUint32()}),s.createBoxCtor("payl",function(e){this.text=e.readString(this.size-this.hdr_size)}),s.createBoxCtor("payt",function(e){this.payloadID=e.readUint32();var t=e.readUint8();this.rtpmap_string=e.readString(t)}),s.createFullBoxCtor("pdin",function(e){var t=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var r=0;r<t;r++)this.rate[r]=e.readUint32(),this.initial_delay[r]=e.readUint32()}),s.createFullBoxCtor("pitm",function(e){this.version===0?this.item_id=e.readUint16():this.item_id=e.readUint32()}),s.createFullBoxCtor("pixi",function(e){var t;for(this.num_channels=e.readUint8(),this.bits_per_channels=[],t=0;t<this.num_channels;t++)this.bits_per_channels[t]=e.readUint8()}),s.createBoxCtor("pmax",function(e){this.bytes=e.readUint32()}),s.createFullBoxCtor("prdi",function(e){if(this.step_count=e.readUint16(),this.item_count=[],this.flags&2)for(var t=0;t<this.step_count;t++)this.item_count[t]=e.readUint16()}),s.createFullBoxCtor("prft",function(e){this.ref_track_id=e.readUint32(),this.ntp_timestamp=e.readUint64(),this.version===0?this.media_time=e.readUint32():this.media_time=e.readUint64()}),s.createFullBoxCtor("pssh",function(e){if(this.system_id=s.parseHex16(e),this.version>0){var t=e.readUint32();this.kid=[];for(var r=0;r<t;r++)this.kid[r]=s.parseHex16(e)}var l=e.readUint32();l>0&&(this.data=e.readUint8Array(l))}),s.createFullBoxCtor("clef",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createFullBoxCtor("enof",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createFullBoxCtor("prof",function(e){this.width=e.readUint32(),this.height=e.readUint32()}),s.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),s.createBoxCtor("rtp ",function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)}),s.createFullBoxCtor("saio",function(e){this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var r=0;r<t;r++)this.version===0?this.offset[r]=e.readUint32():this.offset[r]=e.readUint64()}),s.createFullBoxCtor("saiz",function(e){if(this.flags&1&&(this.aux_info_type=e.readString(4),this.aux_info_type_parameter=e.readUint32()),this.default_sample_info_size=e.readUint8(),this.sample_count=e.readUint32(),this.sample_info_size=[],this.default_sample_info_size===0)for(var t=0;t<this.sample_count;t++)this.sample_info_size[t]=e.readUint8()}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"mett",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"metx",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"sbtt",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"stpp",function(e){this.parseHeader(e),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.auxiliary_mime_types=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"stxt",function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_SUBTITLE,"tx3g",function(e){this.parseHeader(e),this.displayFlags=e.readUint32(),this.horizontal_justification=e.readInt8(),this.vertical_justification=e.readInt8(),this.bg_color_rgba=e.readUint8Array(4),this.box_record=e.readInt16Array(4),this.style_record=e.readUint8Array(12),this.parseFooter(e)}),s.createSampleEntryCtor(s.SAMPLE_ENTRY_TYPE_METADATA,"wvtt",function(e){this.parseHeader(e),this.parseFooter(e)}),s.createSampleGroupCtor("alst",function(e){var t,r=e.readUint16();for(this.first_output_sample=e.readUint16(),this.sample_offset=[],t=0;t<r;t++)this.sample_offset[t]=e.readUint32();var l=this.description_length-4-4*r;for(this.num_output_samples=[],this.num_total_samples=[],t=0;t<l/4;t++)this.num_output_samples[t]=e.readUint16(),this.num_total_samples[t]=e.readUint16()}),s.createSampleGroupCtor("avll",function(e){this.layerNumber=e.readUint8(),this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()}),s.createSampleGroupCtor("avss",function(e){this.subSequenceIdentifier=e.readUint16(),this.layerNumber=e.readUint8();var t=e.readUint8();this.durationFlag=t>>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),l=0;l<r;l++){var h={};this.dependency.push(h),h.subSeqDirectionFlag=e.readUint8(),h.layerNumber=e.readUint8(),h.subSequenceIdentifier=e.readUint16()}}),s.createSampleGroupCtor("dtrt",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("mvif",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("prol",function(e){this.roll_distance=e.readInt16()}),s.createSampleGroupCtor("rap ",function(e){var t=e.readUint8();this.num_leading_samples_known=t>>7,this.num_leading_samples=t&127}),s.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)n.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t<this.operation_point_count;t++)this.available_bitrate[t]=e.readUint32(),this.target_rate_share[t]=e.readUint16()}this.maximum_bitrate=e.readUint32(),this.minimum_bitrate=e.readUint32(),this.discard_priority=e.readUint8()}}),s.createSampleGroupCtor("roll",function(e){this.roll_distance=e.readInt16()}),s.SampleGroupEntry.prototype.parse=function(e){n.warn("BoxParser","Unknown Sample Group type: "+this.grouping_type),this.data=e.readUint8Array(this.description_length)},s.createSampleGroupCtor("scif",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("scnm",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("seig",function(e){this.reserved=e.readUint8();var t=e.readUint8();this.crypt_byte_block=t>>4,this.skip_byte_block=t&15,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=s.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),s.createSampleGroupCtor("stsa",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("sync",function(e){var t=e.readUint8();this.NAL_unit_type=t&63}),s.createSampleGroupCtor("tele",function(e){var t=e.readUint8();this.level_independently_decodable=t>>7}),s.createSampleGroupCtor("tsas",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("tscl",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createSampleGroupCtor("vipr",function(e){n.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),s.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),this.version===1?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.entries.push(l),l.sample_count=e.readInt32(),l.group_description_index=e.readInt32()}});function g(e,t){this.bad_pixel_row=e,this.bad_pixel_column=t}g.prototype.toString=function(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"},s.createFullBoxCtor("sbpm",function(e){var t;for(this.component_count=e.readUint16(),this.component_index=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16());var r=e.readUint8();for(this.correction_applied=(r&128)==128,this.num_bad_rows=e.readUint32(),this.num_bad_cols=e.readUint32(),this.num_bad_pixels=e.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[],t=0;t<this.num_bad_rows;t++)this.bad_rows.push(e.readUint32());for(t=0;t<this.num_bad_cols;t++)this.bad_columns.push(e.readUint32());for(t=0;t<this.num_bad_pixels;t++){var l=e.readUint32(),h=e.readUint32();this.bad_pixels.push(new g(l,h))}}),s.createFullBoxCtor("schm",function(e){this.scheme_type=e.readString(4),this.scheme_version=e.readUint32(),this.flags&1&&(this.scheme_uri=e.readString(this.size-this.hdr_size-8))}),s.createBoxCtor("sdp ",function(e){this.sdptext=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("sdtp",function(e){var t,r=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var l=0;l<r;l++)t=e.readUint8(),this.is_leading[l]=t>>6,this.sample_depends_on[l]=t>>4&3,this.sample_is_depended_on[l]=t>>2&3,this.sample_has_redundancy[l]=t&3}),s.createFullBoxCtor("senc"),s.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),n.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r<t;r++){var l;s[this.grouping_type+"SampleGroupEntry"]?l=new s[this.grouping_type+"SampleGroupEntry"](this.grouping_type):l=new s.SampleGroupEntry(this.grouping_type),this.entries.push(l),this.version===1?this.default_length===0?l.description_length=e.readUint32():l.description_length=this.default_length:l.description_length=this.default_length,l.write===s.SampleGroupEntry.prototype.write&&(n.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),l.data=e.readUint8Array(l.description_length),e.position-=l.description_length),l.parse(e)}}),s.createFullBoxCtor("sidx",function(e){this.reference_ID=e.readUint32(),this.timescale=e.readUint32(),this.version===0?(this.earliest_presentation_time=e.readUint32(),this.first_offset=e.readUint32()):(this.earliest_presentation_time=e.readUint64(),this.first_offset=e.readUint64()),e.readUint16(),this.references=[];for(var t=e.readUint16(),r=0;r<t;r++){var l={};this.references.push(l);var h=e.readUint32();l.reference_type=h>>31&1,l.referenced_size=h&2147483647,l.subsegment_duration=e.readUint32(),h=e.readUint32(),l.starts_with_SAP=h>>31&1,l.SAP_type=h>>28&7,l.SAP_delta_time=h&268435455}}),s.SingleItemTypeReferenceBox=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.SingleItemTypeReferenceBox.prototype=new s.Box,s.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r<t;r++)this.references[r]={},this.references[r].to_item_ID=e.readUint16()},s.SingleItemTypeReferenceBoxLarge=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.SingleItemTypeReferenceBoxLarge.prototype=new s.Box,s.SingleItemTypeReferenceBoxLarge.prototype.parse=function(e){this.from_item_ID=e.readUint32();var t=e.readUint16();this.references=[];for(var r=0;r<t;r++)this.references[r]={},this.references[r].to_item_ID=e.readUint32()},s.createFullBoxCtor("SmDm",function(e){this.primaryRChromaticity_x=e.readUint16(),this.primaryRChromaticity_y=e.readUint16(),this.primaryGChromaticity_x=e.readUint16(),this.primaryGChromaticity_y=e.readUint16(),this.primaryBChromaticity_x=e.readUint16(),this.primaryBChromaticity_y=e.readUint16(),this.whitePointChromaticity_x=e.readUint16(),this.whitePointChromaticity_y=e.readUint16(),this.luminanceMax=e.readUint32(),this.luminanceMin=e.readUint32()}),s.createFullBoxCtor("smhd",function(e){this.balance=e.readUint16(),e.readUint16()}),s.createFullBoxCtor("ssix",function(e){this.subsegments=[];for(var t=e.readUint32(),r=0;r<t;r++){var l={};this.subsegments.push(l),l.ranges=[];for(var h=e.readUint32(),m=0;m<h;m++){var y={};l.ranges.push(y),y.level=e.readUint8(),y.range_size=e.readUint24()}}}),s.createFullBoxCtor("stco",function(e){var t;if(t=e.readUint32(),this.chunk_offsets=[],this.version===0)for(var r=0;r<t;r++)this.chunk_offsets.push(e.readUint32())}),s.createFullBoxCtor("stdp",function(e){var t=(this.size-this.hdr_size)/2;this.priority=[];for(var r=0;r<t;r++)this.priority[r]=e.readUint16()}),s.createFullBoxCtor("sthd"),s.createFullBoxCtor("stri",function(e){this.switch_group=e.readUint16(),this.alternate_group=e.readUint16(),this.sub_track_id=e.readUint32();var t=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var r=0;r<t;r++)this.attribute_list[r]=e.readUint32()}),s.createFullBoxCtor("stsc",function(e){var t,r;if(t=e.readUint32(),this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(r=0;r<t;r++)this.first_chunk.push(e.readUint32()),this.samples_per_chunk.push(e.readUint32()),this.sample_description_index.push(e.readUint32())}),s.createFullBoxCtor("stsd",function(e){var t,r,l,h;for(this.entries=[],l=e.readUint32(),t=1;t<=l;t++)if(r=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),r.code===s.OK)s[r.type+"SampleEntry"]?(h=new s[r.type+"SampleEntry"](r.size),h.hdr_size=r.hdr_size,h.start=r.start):(n.warn("BoxParser","Unknown sample entry type: "+r.type),h=new s.SampleEntry(r.type,r.size,r.hdr_size,r.start)),h.write===s.SampleEntry.prototype.write&&(n.info("BoxParser","SampleEntry "+h.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),h.parseDataAndRewind(e)),h.parse(e),this.entries.push(h);else return}),s.createFullBoxCtor("stsg",function(e){this.grouping_type=e.readUint32();var t=e.readUint16();this.group_description_index=[];for(var r=0;r<t;r++)this.group_description_index[r]=e.readUint32()}),s.createFullBoxCtor("stsh",function(e){var t,r;if(t=e.readUint32(),this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(r=0;r<t;r++)this.shadowed_sample_numbers.push(e.readUint32()),this.sync_sample_numbers.push(e.readUint32())}),s.createFullBoxCtor("stss",function(e){var t,r;if(r=e.readUint32(),this.version===0)for(this.sample_numbers=[],t=0;t<r;t++)this.sample_numbers.push(e.readUint32())}),s.createFullBoxCtor("stsz",function(e){var t;if(this.sample_sizes=[],this.version===0)for(this.sample_size=e.readUint32(),this.sample_count=e.readUint32(),t=0;t<this.sample_count;t++)this.sample_size===0?this.sample_sizes.push(e.readUint32()):this.sample_sizes[t]=this.sample_size}),s.createFullBoxCtor("stts",function(e){var t,r,l;if(t=e.readUint32(),this.sample_counts=[],this.sample_deltas=[],this.version===0)for(r=0;r<t;r++)this.sample_counts.push(e.readUint32()),l=e.readInt32(),l<0&&(n.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),l=1),this.sample_deltas.push(l)}),s.createFullBoxCtor("stvi",function(e){var t=e.readUint32();this.single_view_allowed=t&3,this.stereo_scheme=e.readUint32();var r=e.readUint32();this.stereo_indication_type=e.readString(r);var l,h;for(this.boxes=[];e.getPosition()<this.start+this.size;)if(l=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),l.code===s.OK)h=l.box,this.boxes.push(h),this[h.type]=h;else return}),s.createBoxCtor("styp",function(e){s.ftypBox.prototype.parse.call(this,e)}),s.createFullBoxCtor("stz2",function(e){var t,r;if(this.sample_sizes=[],this.version===0)if(this.reserved=e.readUint24(),this.field_size=e.readUint8(),r=e.readUint32(),this.field_size===4)for(t=0;t<r;t+=2){var l=e.readUint8();this.sample_sizes[t]=l>>4&15,this.sample_sizes[t+1]=l&15}else if(this.field_size===8)for(t=0;t<r;t++)this.sample_sizes[t]=e.readUint8();else if(this.field_size===16)for(t=0;t<r;t++)this.sample_sizes[t]=e.readUint16();else n.error("BoxParser","Error in length field in stz2 box")}),s.createFullBoxCtor("subs",function(e){var t,r,l,h;for(l=e.readUint32(),this.entries=[],t=0;t<l;t++){var m={};if(this.entries[t]=m,m.sample_delta=e.readUint32(),m.subsamples=[],h=e.readUint16(),h>0)for(r=0;r<h;r++){var y={};m.subsamples.push(y),this.version==1?y.size=e.readUint32():y.size=e.readUint16(),y.priority=e.readUint8(),y.discardable=e.readUint8(),y.codec_specific_parameters=e.readUint32()}}}),s.createFullBoxCtor("tenc",function(e){if(e.readUint8(),this.version===0)e.readUint8();else{var t=e.readUint8();this.default_crypt_byte_block=t>>4&15,this.default_skip_byte_block=t&15}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=s.parseHex16(e),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),s.createFullBoxCtor("tfdt",function(e){this.version==1?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),s.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&s.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0}),s.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=t&3,this.entries=[];for(var r=e.readUint32(),l=0;l<r;l++)this.version===1?(this.time=e.readUint64(),this.moof_offset=e.readUint64()):(this.time=e.readUint32(),this.moof_offset=e.readUint32()),this.traf_number=e["readUint"+8*(this.length_size_of_traf_num+1)](),this.trun_number=e["readUint"+8*(this.length_size_of_trun_num+1)](),this.sample_number=e["readUint"+8*(this.length_size_of_sample_num+1)]()}),s.createFullBoxCtor("tkhd",function(e){this.version==1?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint32()),e.readUint32Array(2),this.layer=e.readInt16(),this.alternate_group=e.readInt16(),this.volume=e.readInt16()>>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),s.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),s.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),s.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),s.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),s.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),s.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},s.createTrackGroupCtor("msrc"),s.TrackReferenceTypeBox=function(e,t,r,l){s.Box.call(this,e,t),this.hdr_size=r,this.start=l},s.TrackReferenceTypeBox.prototype=new s.Box,s.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},s.trefBox.prototype.parse=function(e){for(var t,r;e.getPosition()<this.start+this.size;)if(t=s.parseOneBox(e,!0,this.size-(e.getPosition()-this.start)),t.code===s.OK)r=new s.TrackReferenceTypeBox(t.type,t.size,t.hdr_size,t.start),r.write===s.Box.prototype.write&&r.type!=="mdat"&&(n.info("BoxParser","TrackReference "+r.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),this.boxes.push(r);else return},s.createFullBoxCtor("trep",function(e){for(this.track_ID=e.readUint32(),this.boxes=[];e.getPosition()<this.start+this.size;)if(ret=s.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),ret.code===s.OK)box=ret.box,this.boxes.push(box);else return}),s.createFullBoxCtor("trex",function(e){this.track_id=e.readUint32(),this.default_sample_description_index=e.readUint32(),this.default_sample_duration=e.readUint32(),this.default_sample_size=e.readUint32(),this.default_sample_flags=e.readUint32()}),s.createBoxCtor("trpy",function(e){this.bytessent=e.readUint64()}),s.createFullBoxCtor("trun",function(e){var t=0;if(this.sample_count=e.readUint32(),t+=4,this.size-this.hdr_size>t&&this.flags&s.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&s.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r<this.sample_count;r++)this.flags&s.TRUN_FLAGS_DURATION&&(this.sample_duration[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_SIZE&&(this.sample_size[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_FLAGS&&(this.sample_flags[r]=e.readUint32()),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?this.sample_composition_time_offset[r]=e.readUint32():this.sample_composition_time_offset[r]=e.readInt32())}),s.createFullBoxCtor("tsel",function(e){this.switch_group=e.readUint32();var t=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var r=0;r<t;r++)this.attribute_list[r]=e.readUint32()}),s.createFullBoxCtor("txtC",function(e){this.config=e.readCString()}),s.createBoxCtor("tyco",function(e){var t=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var r=0;r<t;r++)this.compatible_brands[r]=e.readString(4)}),s.createFullBoxCtor("udes",function(e){this.lang=e.readCString(),this.name=e.readCString(),this.description=e.readCString(),this.tags=e.readCString()}),s.createFullBoxCtor("uncC",function(e){var t;if(this.profile=e.readUint32(),this.version!=1){if(this.version==0){for(this.component_count=e.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16()),this.component_bit_depth_minus_one.push(e.readUint8()),this.component_format.push(e.readUint8()),this.component_align_size.push(e.readUint8());this.sampling_type=e.readUint8(),this.interleave_type=e.readUint8(),this.block_size=e.readUint8();var r=e.readUint8();this.component_little_endian=r>>7&1,this.block_pad_lsb=r>>6&1,this.block_little_endian=r>>5&1,this.block_reversed=r>>4&1,this.pad_unknown=r>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}}}),s.createFullBoxCtor("url ",function(e){this.flags!==1&&(this.location=e.readCString())}),s.createFullBoxCtor("urn ",function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())}),s.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/\'/g,"&#039;")}),s.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=s.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))}),s.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),s.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=s.parseHex16(e)}),s.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t<this.fragment_count;t++){var r={},l=0,h=0;this.version===1?(l=e.readUint64(),h=e.readUint64()):(l=e.readUint32(),h=e.readUint32()),r.absolute_time=l,r.absolute_duration=h,this.entries.push(r)}}),s.createUUIDBox("6d1d9b0542d544e680e2141daff757b2",!0,!1,function(e){this.version===1?(this.absolute_time=e.readUint64(),this.duration=e.readUint64()):(this.absolute_time=e.readUint32(),this.duration=e.readUint32())}),s.createFullBoxCtor("vmhd",function(e){this.graphicsmode=e.readUint16(),this.opcolor=e.readUint16Array(3)}),s.createFullBoxCtor("vpcC",function(e){var t;this.version===1?(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=t&1,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=t&15,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=t&1,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))}),s.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),s.createFullBoxCtor("vvcC",function(e){var t,r,l={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(A){this.held_bits=A.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(A){this.held_bits=A.readUint16(),this.num_held_bits=16},extract_bits:function(A){var R=this.held_bits>>this.num_held_bits-A&(1<<A)-1;return this.num_held_bits-=A,R}};if(l.stream_read_1_bytes(e),l.extract_bits(5),this.lengthSizeMinusOne=l.extract_bits(2),this.ptl_present_flag=l.extract_bits(1),this.ptl_present_flag){l.stream_read_2_bytes(e),this.ols_idx=l.extract_bits(9),this.num_sublayers=l.extract_bits(3),this.constant_frame_rate=l.extract_bits(2),this.chroma_format_idc=l.extract_bits(2),l.stream_read_1_bytes(e),this.bit_depth_minus8=l.extract_bits(3),l.extract_bits(5);{if(l.stream_read_2_bytes(e),l.extract_bits(2),this.num_bytes_constraint_info=l.extract_bits(6),this.general_profile_idc=l.extract_bits(7),this.general_tier_flag=l.extract_bits(1),this.general_level_idc=e.readUint8(),l.stream_read_1_bytes(e),this.ptl_frame_only_constraint_flag=l.extract_bits(1),this.ptl_multilayer_enabled_flag=l.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(t=0;t<this.num_bytes_constraint_info-1;t++){var h=l.extract_bits(6);l.stream_read_1_bytes(e);var m=l.extract_bits(2);this.general_constraint_info[t]=h<<2|m}this.general_constraint_info[this.num_bytes_constraint_info-1]=l.extract_bits(6)}else l.extract_bits(6);if(this.num_sublayers>1){for(l.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,r=this.num_sublayers-2;r>=0;--r){var y=l.extract_bits(1);this.ptl_sublayer_present_mask|=y<<r}for(r=this.num_sublayers;r<=8&&this.num_sublayers>1;++r)l.extract_bits(1);for(this.sublayer_level_idc=[],r=this.num_sublayers-2;r>=0;--r)this.ptl_sublayer_present_mask&1<<r&&(this.sublayer_level_idc[r]=e.readUint8())}if(this.ptl_num_sub_profiles=e.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(t=0;t<this.ptl_num_sub_profiles;t++)this.general_sub_profile_idc.push(e.readUint32())}this.max_picture_width=e.readUint16(),this.max_picture_height=e.readUint16(),this.avg_frame_rate=e.readUint16()}var b=12,U=13;this.nalu_arrays=[];var w=e.readUint8();for(t=0;t<w;t++){var T=[];this.nalu_arrays.push(T),l.stream_read_1_bytes(e),T.completeness=l.extract_bits(1),l.extract_bits(2),T.nalu_type=l.extract_bits(5);var C=1;for(T.nalu_type!=U&&T.nalu_type!=b&&(C=e.readUint16()),r=0;r<C;r++){var F=e.readUint16();T.push({data:e.readUint8Array(F),length:F})}}}),s.createFullBoxCtor("vvnC",function(e){var t=strm.readUint8();this.lengthSizeMinusOne=t&3}),s.SampleEntry.prototype.isVideo=function(){return!1},s.SampleEntry.prototype.isAudio=function(){return!1},s.SampleEntry.prototype.isSubtitle=function(){return!1},s.SampleEntry.prototype.isMetadata=function(){return!1},s.SampleEntry.prototype.isHint=function(){return!1},s.SampleEntry.prototype.getCodec=function(){return this.type.replace(".","")},s.SampleEntry.prototype.getWidth=function(){return""},s.SampleEntry.prototype.getHeight=function(){return""},s.SampleEntry.prototype.getChannelCount=function(){return""},s.SampleEntry.prototype.getSampleRate=function(){return""},s.SampleEntry.prototype.getSampleSize=function(){return""},s.VisualSampleEntry.prototype.isVideo=function(){return!0},s.VisualSampleEntry.prototype.getWidth=function(){return this.width},s.VisualSampleEntry.prototype.getHeight=function(){return this.height},s.AudioSampleEntry.prototype.isAudio=function(){return!0},s.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},s.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},s.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},s.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},s.MetadataSampleEntry.prototype.isMetadata=function(){return!0},s.decimalToHex=function(e,t){var r=Number(e).toString(16);for(t=typeof t>"u"||t===null?t=2:t;r.length<t;)r="0"+r;return r},s.avc1SampleEntry.prototype.getCodec=s.avc2SampleEntry.prototype.getCodec=s.avc3SampleEntry.prototype.getCodec=s.avc4SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);return this.avcC?e+"."+s.decimalToHex(this.avcC.AVCProfileIndication)+s.decimalToHex(this.avcC.profile_compatibility)+s.decimalToHex(this.avcC.AVCLevelIndication):e},s.hev1SampleEntry.prototype.getCodec=s.hvc1SampleEntry.prototype.getCodec=function(){var e,t=s.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C";break}t+=this.hvcC.general_profile_idc,t+=".";var r=this.hvcC.general_profile_compatibility,l=0;for(e=0;e<32&&(l|=r&1,e!=31);e++)l<<=1,r>>=1;t+=s.decimalToHex(l,0),t+=".",this.hvcC.general_tier_flag===0?t+="L":t+="H",t+=this.hvcC.general_level_idc;var h=!1,m="";for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||h)&&(m="."+s.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+m,h=!0);t+=m}return t},s.vvc1SampleEntry.prototype.getCodec=s.vvi1SampleEntry.prototype.getCodec=function(){var e,t=s.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;var r="";if(this.vvcC.general_constraint_info){var l=[],h=0;h|=this.vvcC.ptl_frame_only_constraint<<7,h|=this.vvcC.ptl_multilayer_enabled<<6;var m;for(e=0;e<this.vvcC.general_constraint_info.length;++e)h|=this.vvcC.general_constraint_info[e]>>2&63,l.push(h),h&&(m=e),h=this.vvcC.general_constraint_info[e]>>2&3;if(m===void 0)r=".CA";else{r=".C";var y="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",b=0,U=0;for(e=0;e<=m;++e)for(b=b<<8|l[e],U+=8;U>=5;){var w=b>>U-5&31;r+=y[w],U-=5,b&=(1<<U)-1}U&&(b<<=5-U,r+=y[b&31])}}t+=r}return t},s.mp4aSampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),r=this.esds.esd.getAudioConfig();return e+"."+s.decimalToHex(t)+(r?"."+r:"")}else return e},s.stxtSampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},s.vp08SampleEntry.prototype.getCodec=s.vp09SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;t==0&&(t="00");var r=this.vpcC.bitDepth;return r==8&&(r="08"),e+".0"+this.vpcC.profile+"."+t+"."+r},s.av01SampleEntry.prototype.getCodec=function(){var e=s.SampleEntry.prototype.getCodec.call(this),t=this.av1C.seq_level_idx_0;t<10&&(t="0"+t);var r;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?r=this.av1C.twelve_bit===1?"12":"10":this.av1C.seq_profile<=2&&(r=this.av1C.high_bitdepth===1?"10":"08"),e+"."+this.av1C.seq_profile+"."+t+(this.av1C.seq_tier_0?"H":"M")+"."+r},s.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>f&&(this.size+=8),this.type==="uuid"&&(this.size+=16),n.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>f?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),this.type==="uuid"&&e.writeUint8Array(this.uuid),this.size>f&&e.writeUint64(this.size)},s.FullBox.prototype.writeHeader=function(e){this.size+=4,s.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},s.Box.prototype.write=function(e){this.type==="mdat"?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},s.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&(this.boxes[t].write(e),this.size+=this.boxes[t].size);n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.TrackReferenceTypeBox.prototype.write=function(e){this.size=this.track_ids.length*4,this.writeHeader(e),e.writeUint32Array(this.track_ids)},s.avcCBox.prototype.write=function(e){var t;for(this.size=7,t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;for(this.ext&&(this.size+=this.ext.length),this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.AVCProfileIndication),e.writeUint8(this.profile_compatibility),e.writeUint8(this.AVCLevelIndication),e.writeUint8(this.lengthSizeMinusOne+252),e.writeUint8(this.SPS.length+224),t=0;t<this.SPS.length;t++)e.writeUint16(this.SPS[t].length),e.writeUint8Array(this.SPS[t].nalu);for(e.writeUint8(this.PPS.length),t=0;t<this.PPS.length;t++)e.writeUint16(this.PPS[t].length),e.writeUint8Array(this.PPS[t].nalu);this.ext&&e.writeUint8Array(this.ext)},s.co64Box.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),t=0;t<this.chunk_offsets.length;t++)e.writeUint64(this.chunk_offsets[t])},s.cslgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(e),e.writeInt32(this.compositionToDTSShift),e.writeInt32(this.leastDecodeToDisplayDelta),e.writeInt32(this.greatestDecodeToDisplayDelta),e.writeInt32(this.compositionStartTime),e.writeInt32(this.compositionEndTime)},s.cttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),this.version===1?e.writeInt32(this.sample_offsets[t]):e.writeUint32(this.sample_offsets[t])},s.drefBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.elngBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(e),e.writeString(this.extended_language)},s.elstBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var r=this.entries[t];e.writeUint32(r.segment_duration),e.writeInt32(r.media_time),e.writeInt16(r.media_rate_integer),e.writeInt16(r.media_rate_fraction)}},s.emsgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*4+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(e),e.writeCString(this.scheme_id_uri),e.writeCString(this.value),e.writeUint32(this.timescale),e.writeUint32(this.presentation_time_delta),e.writeUint32(this.event_duration),e.writeUint32(this.id),e.writeUint8Array(this.message_data)},s.ftypBox.prototype.write=function(e){this.size=8+4*this.compatible_brands.length,this.writeHeader(e),e.writeString(this.major_brand,null,4),e.writeUint32(this.minor_version);for(var t=0;t<this.compatible_brands.length;t++)e.writeString(this.compatible_brands[t],null,4)},s.hdlrBox.prototype.write=function(e){this.size=5*4+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(e),e.writeUint32(0),e.writeString(this.handler,null,4),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeCString(this.name)},s.hvcCBox.prototype.write=function(e){var t,r;for(this.size=23,t=0;t<this.nalu_arrays.length;t++)for(this.size+=3,r=0;r<this.nalu_arrays[t].length;r++)this.size+=2+this.nalu_arrays[t][r].data.length;for(this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),e.writeUint32(this.general_profile_compatibility),e.writeUint8Array(this.general_constraint_indicator),e.writeUint8(this.general_level_idc),e.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),e.writeUint8(this.parallelismType+252),e.writeUint8(this.chroma_format_idc+252),e.writeUint8(this.bit_depth_luma_minus8+248),e.writeUint8(this.bit_depth_chroma_minus8+248),e.writeUint16(this.avgFrameRate),e.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),e.writeUint8(this.nalu_arrays.length),t=0;t<this.nalu_arrays.length;t++)for(e.writeUint8((this.nalu_arrays[t].completeness<<7)+this.nalu_arrays[t].nalu_type),e.writeUint16(this.nalu_arrays[t].length),r=0;r<this.nalu_arrays[t].length;r++)e.writeUint16(this.nalu_arrays[t][r].data.length),e.writeUint8Array(this.nalu_arrays[t][r].data)},s.kindBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(e),e.writeCString(this.schemeURI),e.writeCString(this.value)},s.mdhdBox.prototype.write=function(e){this.size=4*4+2*2,this.flags=0,this.version=0,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint16(this.language),e.writeUint16(0)},s.mehdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.fragment_duration)},s.mfhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.sequence_number)},s.mvhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=23*4+2*2,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint32(this.rate),e.writeUint16(this.volume<<8),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32Array(this.matrix),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(this.next_track_id)},s.SampleEntry.prototype.writeHeader=function(e){this.size=8,s.Box.prototype.writeHeader.call(this,e),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint16(this.data_reference_index)},s.SampleEntry.prototype.writeFooter=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e),this.size+=this.boxes[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.SampleEntry.prototype.write=function(e){this.writeHeader(e),e.writeUint8Array(this.data),this.size+=this.data.length,n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.VisualSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=2*7+6*4+32,e.writeUint16(0),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.width),e.writeUint16(this.height),e.writeUint32(this.horizresolution),e.writeUint32(this.vertresolution),e.writeUint32(0),e.writeUint16(this.frame_count),e.writeUint8(Math.min(31,this.compressorname.length)),e.writeString(this.compressorname,null,31),e.writeUint16(this.depth),e.writeInt16(-1),this.writeFooter(e)},s.AudioSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=2*4+3*4,e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.channel_count),e.writeUint16(this.samplesize),e.writeUint16(0),e.writeUint16(0),e.writeUint32(this.samplerate<<16),this.writeFooter(e)},s.stppSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,e.writeCString(this.namespace),e.writeCString(this.schema_location),e.writeCString(this.auxiliary_mime_types),this.writeFooter(e)},s.SampleGroupEntry.prototype.write=function(e){e.writeUint8Array(this.data)},s.sbgpBox.prototype.write=function(e){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(e),e.writeString(this.grouping_type,null,4),e.writeUint32(this.grouping_type_parameter),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var r=this.entries[t];e.writeInt32(r.sample_count),e.writeInt32(r.group_description_index)}},s.sgpdBox.prototype.write=function(e){var t,r;for(this.flags=0,this.size=12,t=0;t<this.entries.length;t++)r=this.entries[t],this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=r.data.length);for(this.writeHeader(e),e.writeString(this.grouping_type,null,4),this.version===1&&e.writeUint32(this.default_length),this.version>=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t<this.entries.length;t++)r=this.entries[t],this.version===1&&this.default_length===0&&e.writeUint32(r.description_length),r.write(e)},s.sidxBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*4+2+2+12*this.references.length,this.writeHeader(e),e.writeUint32(this.reference_ID),e.writeUint32(this.timescale),e.writeUint32(this.earliest_presentation_time),e.writeUint32(this.first_offset),e.writeUint16(0),e.writeUint16(this.references.length);for(var t=0;t<this.references.length;t++){var r=this.references[t];e.writeUint32(r.reference_type<<31|r.referenced_size),e.writeUint32(r.subsegment_duration),e.writeUint32(r.starts_with_SAP<<31|r.SAP_type<<28|r.SAP_delta_time)}},s.smhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=4,this.writeHeader(e),e.writeUint16(this.balance),e.writeUint16(0)},s.stcoBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),e.writeUint32Array(this.chunk_offsets)},s.stscBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(e),e.writeUint32(this.first_chunk.length),t=0;t<this.first_chunk.length;t++)e.writeUint32(this.first_chunk[t]),e.writeUint32(this.samples_per_chunk[t]),e.writeUint32(this.sample_description_index[t])},s.stsdBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(e),e.writeUint32(this.entries.length),this.size+=4,t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;n.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},s.stshBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(e),e.writeUint32(this.shadowed_sample_numbers.length),t=0;t<this.shadowed_sample_numbers.length;t++)e.writeUint32(this.shadowed_sample_numbers[t]),e.writeUint32(this.sync_sample_numbers[t])},s.stssBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(e),e.writeUint32(this.sample_numbers.length),e.writeUint32Array(this.sample_numbers)},s.stszBox.prototype.write=function(e){var t,r=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(t=0;t+1<this.sample_sizes.length;)if(this.sample_sizes[t+1]!==this.sample_sizes[0]){r=!1;break}else t++;else r=!1;this.size=8,r||(this.size+=4*this.sample_sizes.length),this.writeHeader(e),r?e.writeUint32(this.sample_sizes[0]):e.writeUint32(0),e.writeUint32(this.sample_sizes.length),r||e.writeUint32Array(this.sample_sizes)},s.sttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),e.writeUint32(this.sample_deltas[t])},s.tfdtBox.prototype.write=function(e){var t=Math.pow(2,32)-1;this.version=this.baseMediaDecodeTime>t?1:0,this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(e),this.version===1?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},s.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&s.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&s.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&s.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&s.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&s.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&s.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&s.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},s.tkhdBox.prototype.write=function(e){this.version=0,this.size=4*18+2*4,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},s.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},s.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&s.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&s.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&s.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&s.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&s.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&s.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&s.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t<this.sample_count;t++)this.flags&s.TRUN_FLAGS_DURATION&&e.writeUint32(this.sample_duration[t]),this.flags&s.TRUN_FLAGS_SIZE&&e.writeUint32(this.sample_size[t]),this.flags&s.TRUN_FLAGS_FLAGS&&e.writeUint32(this.sample_flags[t]),this.flags&s.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?e.writeUint32(this.sample_composition_time_offset[t]):e.writeInt32(this.sample_composition_time_offset[t]))},s["url Box"].prototype.write=function(e){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(e),this.location&&e.writeCString(this.location)},s["urn Box"].prototype.write=function(e){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(e),e.writeCString(this.name),this.location&&e.writeCString(this.location)},s.vmhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=8,this.writeHeader(e),e.writeUint16(this.graphicsmode),e.writeUint16Array(this.opcolor)},s.cttsBox.prototype.unpack=function(e){var t,r,l;for(l=0,t=0;t<this.sample_counts.length;t++)for(r=0;r<this.sample_counts[t];r++)e[l].pts=e[l].dts+this.sample_offsets[t],l++},s.sttsBox.prototype.unpack=function(e){var t,r,l;for(l=0,t=0;t<this.sample_counts.length;t++)for(r=0;r<this.sample_counts[t];r++)l===0?e[l].dts=0:e[l].dts=e[l-1].dts+this.sample_deltas[t],l++},s.stcoBox.prototype.unpack=function(e){var t;for(t=0;t<this.chunk_offsets.length;t++)e[t].offset=this.chunk_offsets[t]},s.stscBox.prototype.unpack=function(e){var t,r,l,h,m;for(h=0,m=0,t=0;t<this.first_chunk.length;t++)for(r=0;r<(t+1<this.first_chunk.length?this.first_chunk[t+1]:1/0);r++)for(m++,l=0;l<this.samples_per_chunk[t];l++){if(e[h])e[h].description_index=this.sample_description_index[t],e[h].chunk_index=m;else return;h++}},s.stszBox.prototype.unpack=function(e){var t;for(t=0;t<this.sample_sizes.length;t++)e[t].size=this.sample_sizes[t]},s.DIFF_BOXES_PROP_NAMES=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],s.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=["compatible_brands","matrix","opcolor","sample_counts","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"],s.boxEqualFields=function(e,t){if(e&&!t)return!1;var r;for(r in e)if(!(s.DIFF_BOXES_PROP_NAMES.indexOf(r)>-1)){if(e[r]instanceof s.Box||t[r]instanceof s.Box)continue;if(typeof e[r]>"u"||typeof t[r]>"u")continue;if(typeof e[r]=="function"||typeof t[r]=="function")continue;if(e.subBoxNames&&e.subBoxNames.indexOf(r.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(r.slice(0,4))>-1)continue;if(r==="data"||r==="start"||r==="size"||r==="creation_time"||r==="modification_time")continue;if(s.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(r)>-1)continue;if(e[r]!==t[r])return!1}return!0},s.boxEqual=function(e,t){if(!s.boxEqualFields(e,t))return!1;for(var r=0;r<s.DIFF_BOXES_PROP_NAMES.length;r++){var l=s.DIFF_BOXES_PROP_NAMES[r];if(e[l]&&t[l]&&!s.boxEqual(e[l],t[l]))return!1}return!0};var _=function(){};_.prototype.parseSample=function(e){var t,r,l=new o(e.buffer);for(t=[];!l.isEos();)r=s.parseOneBox(l,!1),r.code===s.OK&&r.box.type==="vttc"&&t.push(r.box);return t},_.prototype.getText=function(e,t,r){function l(w,T,C){return C=C||"0",w=w+"",w.length>=T?w:new Array(T-w.length+1).join(C)+w}function h(w){var T=Math.floor(w/3600),C=Math.floor((w-T*3600)/60),F=Math.floor(w-T*3600-C*60),A=Math.floor((w-T*3600-C*60-F)*1e3);return""+l(T,2)+":"+l(C,2)+":"+l(F,2)+"."+l(A,3)}for(var m=this.parseSample(r),y="",b=0;b<m.length;b++){var U=m[b];y+=h(e)+" --> "+h(t)+`\\r\n`,y+=U.payl.text}return y};var v=function(){};v.prototype.parseSample=function(e){var t={},r;t.resources=[];var l=new o(e.data.buffer);if(!e.subsamples||e.subsamples.length===0)t.documentString=l.readString(e.data.length);else if(t.documentString=l.readString(e.subsamples[0].size),e.subsamples.length>1)for(r=1;r<e.subsamples.length;r++)t.resources[r]=l.readUint8Array(e.subsamples[r].size);return typeof DOMParser<"u"&&(t.document=new DOMParser().parseFromString(t.documentString,"application/xml")),t};var x=function(){};x.prototype.parseSample=function(e){var t,r=new o(e.data.buffer);return t=r.readString(e.data.length),t},x.prototype.parseConfig=function(e){var t,r=new o(e.buffer);return r.readUint32(),t=r.readCString(),t},a.VTTin4Parser=_,a.XMLSubtitlein4Parser=v,a.Textin4Parser=x;var S=function(e){this.stream=e||new c,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.items=[],this.entity_groups=[],this.onSidx=null,this.sidxSent=!1};S.prototype.setSegmentOptions=function(e,t,r){var l=this.getTrackById(e);if(l){var h={};this.fragmentedTracks.push(h),h.id=e,h.user=t,h.trak=l,l.nextSample=0,h.segmentStream=null,h.nb_samples=1e3,h.rapAlignement=!0,r&&(r.nbSamples&&(h.nb_samples=r.nbSamples),r.rapAlignement&&(h.rapAlignement=r.rapAlignement))}},S.prototype.unsetSegmentOptions=function(e){for(var t=-1,r=0;r<this.fragmentedTracks.length;r++){var l=this.fragmentedTracks[r];l.id==e&&(t=r)}t>-1&&this.fragmentedTracks.splice(t,1)},S.prototype.setExtractionOptions=function(e,t,r){var l=this.getTrackById(e);if(l){var h={};this.extractedTracks.push(h),h.id=e,h.user=t,h.trak=l,l.nextSample=0,h.nb_samples=1e3,h.samples=[],r&&r.nbSamples&&(h.nb_samples=r.nbSamples)}},S.prototype.unsetExtractionOptions=function(e){for(var t=-1,r=0;r<this.extractedTracks.length;r++){var l=this.extractedTracks[r];l.id==e&&(t=r)}t>-1&&this.extractedTracks.splice(t,1)},S.prototype.parse=function(){var e,t,r=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),e=s.parseOneBox(this.stream,r),e.code===s.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}else return;else{var l;switch(t=e.box,l=t.type!=="uuid"?t.type:t.uuid,this.boxes.push(t),l){case"mdat":this.mdats.push(t);break;case"moof":this.moofs.push(t);break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[l]!==void 0&&n.warn("ISOFile","Duplicate Box of type: "+l+", overriding previous occurrence"),this[l]=t;break}this.updateUsedBytes&&this.updateUsedBytes(t,e)}},S.prototype.checkBuffer=function(e){if(e==null)throw"Buffer must be defined and non empty";if(e.fileStart===void 0)throw"Buffer must have a fileStart property";return e.byteLength===0?(n.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(n.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),this.stream.initialized()?!0:(n.warn("ISOFile","Not ready to start parsing"),!1))},S.prototype.appendBuffer=function(e,t){var r;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(t),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):this.nextParsePosition?r=this.nextParsePosition:r=0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(n.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),r},S.prototype.getInfo=function(){var e,t,r={},l,h,m,y,b=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(r.hasMoov=!0,r.duration=this.moov.mvhd.duration,r.timescale=this.moov.mvhd.timescale,r.isFragmented=this.moov.mvex!=null,r.isFragmented&&this.moov.mvex.mehd&&(r.fragment_duration=this.moov.mvex.mehd.fragment_duration),r.isProgressive=this.isProgressive,r.hasIOD=this.moov.iods!=null,r.brands=[],r.brands.push(this.ftyp.major_brand),r.brands=r.brands.concat(this.ftyp.compatible_brands),r.created=new Date(b+this.moov.mvhd.creation_time*1e3),r.modified=new Date(b+this.moov.mvhd.modification_time*1e3),r.tracks=[],r.audioTracks=[],r.videoTracks=[],r.subtitleTracks=[],r.metadataTracks=[],r.hintTracks=[],r.otherTracks=[],e=0;e<this.moov.traks.length;e++){if(l=this.moov.traks[e],y=l.mdia.minf.stbl.stsd.entries[0],h={},r.tracks.push(h),h.id=l.tkhd.track_id,h.name=l.mdia.hdlr.name,h.references=[],l.tref)for(t=0;t<l.tref.boxes.length;t++)m={},h.references.push(m),m.type=l.tref.boxes[t].type,m.track_ids=l.tref.boxes[t].track_ids;l.edts&&(h.edits=l.edts.elst.entries),h.created=new Date(b+l.tkhd.creation_time*1e3),h.modified=new Date(b+l.tkhd.modification_time*1e3),h.movie_duration=l.tkhd.duration,h.movie_timescale=r.timescale,h.layer=l.tkhd.layer,h.alternate_group=l.tkhd.alternate_group,h.volume=l.tkhd.volume,h.matrix=l.tkhd.matrix,h.track_width=l.tkhd.width/65536,h.track_height=l.tkhd.height/65536,h.timescale=l.mdia.mdhd.timescale,h.cts_shift=l.mdia.minf.stbl.cslg,h.duration=l.mdia.mdhd.duration,h.samples_duration=l.samples_duration,h.codec=y.getCodec(),h.kind=l.udta&&l.udta.kinds.length?l.udta.kinds[0]:{schemeURI:"",value:""},h.language=l.mdia.elng?l.mdia.elng.extended_language:l.mdia.mdhd.languageString,h.nb_samples=l.samples.length,h.size=l.samples_size,h.bitrate=h.size*8*h.timescale/h.samples_duration,y.isAudio()?(h.type="audio",r.audioTracks.push(h),h.audio={},h.audio.sample_rate=y.getSampleRate(),h.audio.channel_count=y.getChannelCount(),h.audio.sample_size=y.getSampleSize()):y.isVideo()?(h.type="video",r.videoTracks.push(h),h.video={},h.video.width=y.getWidth(),h.video.height=y.getHeight()):y.isSubtitle()?(h.type="subtitles",r.subtitleTracks.push(h)):y.isHint()?(h.type="metadata",r.hintTracks.push(h)):y.isMetadata()?(h.type="metadata",r.metadataTracks.push(h)):(h.type="metadata",r.otherTracks.push(h))}else r.hasMoov=!1;if(r.mime="",r.hasMoov&&r.tracks){for(r.videoTracks&&r.videoTracks.length>0?r.mime+=\'video/mp4; codecs="\':r.audioTracks&&r.audioTracks.length>0?r.mime+=\'audio/mp4; codecs="\':r.mime+=\'application/mp4; codecs="\',e=0;e<r.tracks.length;e++)e!==0&&(r.mime+=","),r.mime+=r.tracks[e].codec;r.mime+=\'"; profiles="\',r.mime+=this.ftyp.compatible_brands.join(),r.mime+=\'"\'}return r},S.prototype.setNextSeekPositionFromSample=function(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)},S.prototype.processSamples=function(e){var t,r;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==null)for(t=0;t<this.fragmentedTracks.length;t++){var l=this.fragmentedTracks[t];for(r=l.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){n.debug("ISOFile","Creating media fragment on track #"+l.id+" for sample "+r.nextSample);var h=this.createFragment(l.id,r.nextSample,l.segmentStream);if(h)l.segmentStream=h,r.nextSample++;else break;if((r.nextSample%l.nb_samples===0||e||r.nextSample>=r.samples.length)&&(n.info("ISOFile","Sending fragmented data on track #"+l.id+" for samples ["+Math.max(0,r.nextSample-l.nb_samples)+","+(r.nextSample-1)+"]"),n.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(l.id,l.user,l.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),l.segmentStream=null,l!==this.fragmentedTracks[t]))break}}if(this.onSamples!==null)for(t=0;t<this.extractedTracks.length;t++){var m=this.extractedTracks[t];for(r=m.trak;r.nextSample<r.samples.length&&this.sampleProcessingStarted;){n.debug("ISOFile","Exporting on track #"+m.id+" sample #"+r.nextSample);var y=this.getSample(r,r.nextSample);if(y)r.nextSample++,m.samples.push(y);else{this.setNextSeekPositionFromSample(r.samples[r.nextSample]);break}if((r.nextSample%m.nb_samples===0||r.nextSample>=r.samples.length)&&(n.debug("ISOFile","Sending samples on track #"+m.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(m.id,m.user,m.samples),m.samples=[],m!==this.extractedTracks[t]))break}}}},S.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},S.prototype.getBoxes=function(e,t){var r=[];return S._sweep.call(this,e,r,t),r},S._sweep=function(e,t,r){this.type&&this.type==e&&t.push(this);for(var l in this.boxes){if(t.length&&r)return;S._sweep.call(this.boxes[l],e,t,r)}},S.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);if(t)return t.samples},S.prototype.getTrackSample=function(e,t){var r=this.getTrackById(e),l=this.getSample(r,t);return l},S.prototype.releaseUsedSamples=function(e,t){var r=0,l=this.getTrackById(e);l.lastValidSample||(l.lastValidSample=0);for(var h=l.lastValidSample;h<t;h++)r+=this.releaseSample(l,h);n.info("ISOFile","Track #"+e+" released samples up to "+t+" (released size: "+r+", remaining: "+this.samplesDataSize+")"),l.lastValidSample=t},S.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},S.prototype.stop=function(){this.sampleProcessingStarted=!1},S.prototype.flush=function(){n.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},S.prototype.seekTrack=function(e,t,r){var l,h,m=1/0,y=0,b=0,U;if(r.samples.length===0)return n.info("ISOFile","No sample in track, cannot seek! Using time "+n.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(l=0;l<r.samples.length;l++){if(h=r.samples[l],l===0)b=0,U=h.timescale;else if(h.cts>e*h.timescale){b=l-1;break}t&&h.is_sync&&(y=l)}for(t&&(b=y),e=r.samples[b].cts,r.nextSample=b;r.samples[b].alreadyRead===r.samples[b].size&&r.samples[b+1];)b++;return m=r.samples[b].offset+r.samples[b].alreadyRead,n.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+n.getDurationString(e,U)+" and offset: "+m),{offset:m,time:e/U}},S.prototype.getTrackDuration=function(e){var t;return e.samples?(t=e.samples[e.samples.length-1],(t.cts+t.duration)/t.timescale):1/0},S.prototype.seek=function(e,t){var r=this.moov,l,h,m,y={offset:1/0,time:1/0};if(this.moov){for(m=0;m<r.traks.length;m++)l=r.traks[m],!(e>this.getTrackDuration(l))&&(h=this.seekTrack(e,t,l),h.offset<y.offset&&(y.offset=h.offset),h.time<y.time&&(y.time=h.time));return n.info("ISOFile","Seeking at time "+n.getDurationString(y.time,1)+" needs a buffer with a fileStart position of "+y.offset),y.offset===1/0?y={offset:this.nextParsePosition,time:0}:y.offset=this.stream.getEndFilePositionAfter(y.offset),n.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+y.offset),y}else throw"Cannot seek: moov not received!"},S.prototype.equal=function(e){for(var t=0;t<this.boxes.length&&t<e.boxes.length;){var r=this.boxes[t],l=e.boxes[t];if(!s.boxEqual(r,l))return!1;t++}return!0},a.ISOFile=S,S.prototype.lastBoxStartPosition=0,S.prototype.parsingMdat=null,S.prototype.nextParsePosition=0,S.prototype.discardMdatData=!1,S.prototype.processIncompleteBox=function(e){var t,r,l;return e.type==="mdat"?(t=new s[e.type+"Box"](e.size),this.parsingMdat=t,this.boxes.push(t),this.mdats.push(t),t.start=e.start,t.hdr_size=e.hdr_size,this.stream.addUsedBytes(t.hdr_size),this.lastBoxStartPosition=t.start+t.size,l=this.stream.seek(t.start+t.size,!1,this.discardMdatData),l?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=t.start+t.size,!1)):(e.type==="moov"&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),r=this.stream.mergeNextBuffer?this.stream.mergeNextBuffer():!1,r?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1))},S.prototype.hasIncompleteMdat=function(){return this.parsingMdat!==null},S.prototype.processIncompleteMdat=function(){var e,t;return e=this.parsingMdat,t=this.stream.seek(e.start+e.size,!1,this.discardMdatData),t?(n.debug("ISOFile","Found \'mdat\' end in buffered data"),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},S.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},S.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},S.prototype.updateUsedBytes=function(e,t){this.stream.addUsedBytes&&(e.type==="mdat"?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))},S.prototype.add=s.Box.prototype.add,S.prototype.addBox=s.Box.prototype.addBox,S.prototype.init=function(e){var t=e||{};this.add("ftyp").set("major_brand",t.brands&&t.brands[0]||"iso4").set("minor_version",0).set("compatible_brands",t.brands||["iso4"]);var r=this.add("moov");return r.add("mvhd").set("timescale",t.timescale||600).set("rate",t.rate||65536).set("creation_time",0).set("modification_time",0).set("duration",t.duration||0).set("volume",t.width?0:256).set("matrix",[65536,0,0,0,65536,0,0,0,1073741824]).set("next_track_id",1),r.add("mvex"),this},S.prototype.addTrack=function(e){this.moov||this.init(e);var t=e||{};t.width=t.width||320,t.height=t.height||320,t.id=t.id||this.moov.mvhd.next_track_id,t.type=t.type||"avc1";var r=this.moov.add("trak");this.moov.mvhd.next_track_id=t.id+1,r.add("tkhd").set("flags",s.TKHD_FLAG_ENABLED|s.TKHD_FLAG_IN_MOVIE|s.TKHD_FLAG_IN_PREVIEW).set("creation_time",0).set("modification_time",0).set("track_id",t.id).set("duration",t.duration||0).set("layer",t.layer||0).set("alternate_group",0).set("volume",1).set("matrix",[0,0,0,0,0,0,0,0,0]).set("width",t.width<<16).set("height",t.height<<16);var l=r.add("mdia");l.add("mdhd").set("creation_time",0).set("modification_time",0).set("timescale",t.timescale||1).set("duration",t.media_duration||0).set("language",t.language||"und"),l.add("hdlr").set("handler",t.hdlr||"vide").set("name",t.name||"Track created with MP4Box.js"),l.add("elng").set("extended_language",t.language||"fr-FR");var h=l.add("minf");if(s[t.type+"SampleEntry"]!==void 0){var m=new s[t.type+"SampleEntry"];m.data_reference_index=1;var y="";for(var b in s.sampleEntryCodes)for(var U=s.sampleEntryCodes[b],w=0;w<U.length;w++)if(U.indexOf(t.type)>-1){y=b;break}switch(y){case"Visual":if(h.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),m.set("width",t.width).set("height",t.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",t.type+" Compressor").set("depth",24),t.avcDecoderConfigRecord){var T=new s.avcCBox;T.parse(new o(t.avcDecoderConfigRecord)),m.addBox(T)}else if(t.hevcDecoderConfigRecord){var C=new s.hvcCBox;C.parse(new o(t.hevcDecoderConfigRecord)),m.addBox(C)}break;case"Audio":h.add("smhd").set("balance",t.balance||0),m.set("channel_count",t.channel_count||2).set("samplesize",t.samplesize||16).set("samplerate",t.samplerate||65536);break;case"Hint":h.add("hmhd");break;case"Subtitle":switch(h.add("sthd"),t.type){case"stpp":m.set("namespace",t.namespace||"nonamespace").set("schema_location",t.schema_location||"").set("auxiliary_mime_types",t.auxiliary_mime_types||"");break}break;case"Metadata":h.add("nmhd");break;case"System":h.add("nmhd");break;default:h.add("nmhd");break}t.description&&m.addBox(t.description),t.description_boxes&&t.description_boxes.forEach(function(A){m.addBox(A)}),h.add("dinf").add("dref").addEntry(new s["url Box"]().set("flags",1));var F=h.add("stbl");return F.add("stsd").addEntry(m),F.add("stts").set("sample_counts",[]).set("sample_deltas",[]),F.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),F.add("stco").set("chunk_offsets",[]),F.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",t.id).set("default_sample_description_index",t.default_sample_description_index||1).set("default_sample_duration",t.default_sample_duration||0).set("default_sample_size",t.default_sample_size||0).set("default_sample_flags",t.default_sample_flags||0),this.buildTrakSampleLists(r),t.id}},s.Box.prototype.computeSize=function(e){var t=e||new d;t.endianness=d.BIG_ENDIAN,this.write(t)},S.prototype.addSample=function(e,t,r){var l=r||{},h={},m=this.getTrackById(e);if(m!==null){h.number=m.samples.length,h.track_id=m.tkhd.track_id,h.timescale=m.mdia.mdhd.timescale,h.description_index=l.sample_description_index?l.sample_description_index-1:0,h.description=m.mdia.minf.stbl.stsd.entries[h.description_index],h.data=t,h.size=t.byteLength,h.alreadyRead=h.size,h.duration=l.duration||1,h.cts=l.cts||0,h.dts=l.dts||0,h.is_sync=l.is_sync||!1,h.is_leading=l.is_leading||0,h.depends_on=l.depends_on||0,h.is_depended_on=l.is_depended_on||0,h.has_redundancy=l.has_redundancy||0,h.degradation_priority=l.degradation_priority||0,h.offset=0,h.subsamples=l.subsamples,m.samples.push(h),m.samples_size+=h.size,m.samples_duration+=h.duration,m.first_dts===void 0&&(m.first_dts=l.dts),this.processSamples();var y=this.createSingleSampleMoof(h);return this.addBox(y),y.computeSize(),y.trafs[0].truns[0].data_offset=y.size+8,this.add("mdat").data=new Uint8Array(t),h}},S.prototype.createSingleSampleMoof=function(e){var t=0;e.is_sync?t=1<<25:t=65536;var r=new s.moofBox;r.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var l=r.add("traf"),h=this.getTrackById(e.track_id);return l.add("tfhd").set("track_id",e.track_id).set("flags",s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),l.add("tfdt").set("baseMediaDecodeTime",e.dts-(h.first_dts||0)),l.add("trun").set("flags",s.TRUN_FLAGS_DATA_OFFSET|s.TRUN_FLAGS_DURATION|s.TRUN_FLAGS_SIZE|s.TRUN_FLAGS_FLAGS|s.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[e.duration]).set("sample_size",[e.size]).set("sample_flags",[t]).set("sample_composition_time_offset",[e.cts-e.dts]),r},S.prototype.lastMoofIndex=0,S.prototype.samplesDataSize=0,S.prototype.resetTables=function(){var e,t,r,l,h,m,y,b;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e<this.moov.traks.length;e++){t=this.moov.traks[e],t.tkhd.duration=0,t.mdia.mdhd.duration=0,r=t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64,r.chunk_offsets=[],l=t.mdia.minf.stbl.stsc,l.first_chunk=[],l.samples_per_chunk=[],l.sample_description_index=[],h=t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2,h.sample_sizes=[],m=t.mdia.minf.stbl.stts,m.sample_counts=[],m.sample_deltas=[],y=t.mdia.minf.stbl.ctts,y&&(y.sample_counts=[],y.sample_offsets=[]),b=t.mdia.minf.stbl.stss;var U=t.mdia.minf.stbl.boxes.indexOf(b);U!=-1&&(t.mdia.minf.stbl.boxes[U]=null)}},S.initSampleGroups=function(e,t,r,l,h){var m,y,b,U;function w(T,C,F){this.grouping_type=T,this.grouping_type_parameter=C,this.sbgp=F,this.last_sample_in_run=-1,this.entry_index=-1}for(t&&(t.sample_groups_info=[]),e.sample_groups_info||(e.sample_groups_info=[]),y=0;y<r.length;y++){for(U=r[y].grouping_type+"/"+r[y].grouping_type_parameter,b=new w(r[y].grouping_type,r[y].grouping_type_parameter,r[y]),t&&(t.sample_groups_info[U]=b),e.sample_groups_info[U]||(e.sample_groups_info[U]=b),m=0;m<l.length;m++)l[m].grouping_type===r[y].grouping_type&&(b.description=l[m],b.description.used=!0);if(h)for(m=0;m<h.length;m++)h[m].grouping_type===r[y].grouping_type&&(b.fragment_description=h[m],b.fragment_description.used=!0,b.is_fragment=!0)}if(t){if(h)for(y=0;y<h.length;y++)!h[y].used&&h[y].version>=2&&(U=h[y].grouping_type+"/0",b=new w(h[y].grouping_type,0),b.is_fragment=!0,t.sample_groups_info[U]||(t.sample_groups_info[U]=b))}else for(y=0;y<l.length;y++)!l[y].used&&l[y].version>=2&&(U=l[y].grouping_type+"/0",b=new w(l[y].grouping_type,0),e.sample_groups_info[U]||(e.sample_groups_info[U]=b))},S.setSampleGroupProperties=function(e,t,r,l){var h,m;t.sample_groups=[];for(h in l)if(t.sample_groups[h]={},t.sample_groups[h].grouping_type=l[h].grouping_type,t.sample_groups[h].grouping_type_parameter=l[h].grouping_type_parameter,r>=l[h].last_sample_in_run&&(l[h].last_sample_in_run<0&&(l[h].last_sample_in_run=0),l[h].entry_index++,l[h].entry_index<=l[h].sbgp.entries.length-1&&(l[h].last_sample_in_run+=l[h].sbgp.entries[l[h].entry_index].sample_count)),l[h].entry_index<=l[h].sbgp.entries.length-1?t.sample_groups[h].group_description_index=l[h].sbgp.entries[l[h].entry_index].group_description_index:t.sample_groups[h].group_description_index=-1,t.sample_groups[h].group_description_index!==0){var y;l[h].fragment_description?y=l[h].fragment_description:y=l[h].description,t.sample_groups[h].group_description_index>0?(t.sample_groups[h].group_description_index>65535?m=(t.sample_groups[h].group_description_index>>16)-1:m=t.sample_groups[h].group_description_index-1,y&&m>=0&&(t.sample_groups[h].description=y.entries[m])):y&&y.version>=2&&y.default_group_description_index>0&&(t.sample_groups[h].description=y.entries[y.default_group_description_index-1])}},S.process_sdtp=function(e,t,r){t&&(e?(t.is_leading=e.is_leading[r],t.depends_on=e.sample_depends_on[r],t.is_depended_on=e.sample_is_depended_on[r],t.has_redundancy=e.sample_has_redundancy[r]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},S.prototype.buildSampleLists=function(){var e,t;for(e=0;e<this.moov.traks.length;e++)t=this.moov.traks[e],this.buildTrakSampleLists(t)},S.prototype.buildTrakSampleLists=function(e){var t,r,l,h,m,y,b,U,w,T,C,F,A,R,P,K,X,V,N,q,Q,xe,j,W;if(e.samples=[],e.samples_duration=0,e.samples_size=0,r=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,l=e.mdia.minf.stbl.stsc,h=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,m=e.mdia.minf.stbl.stts,y=e.mdia.minf.stbl.ctts,b=e.mdia.minf.stbl.stss,U=e.mdia.minf.stbl.stsd,w=e.mdia.minf.stbl.subs,F=e.mdia.minf.stbl.stdp,T=e.mdia.minf.stbl.sbgps,C=e.mdia.minf.stbl.sgpds,V=-1,N=-1,q=-1,Q=-1,xe=0,j=0,W=0,S.initSampleGroups(e,null,T,C),!(typeof h>"u")){for(t=0;t<h.sample_sizes.length;t++){var k={};k.number=t,k.track_id=e.tkhd.track_id,k.timescale=e.mdia.mdhd.timescale,k.alreadyRead=0,e.samples[t]=k,k.size=h.sample_sizes[t],e.samples_size+=k.size,t===0?(R=1,A=0,k.chunk_index=R,k.chunk_run_index=A,X=l.samples_per_chunk[A],K=0,A+1<l.first_chunk.length?P=l.first_chunk[A+1]-1:P=1/0):t<X?(k.chunk_index=R,k.chunk_run_index=A):(R++,k.chunk_index=R,K=0,R<=P||(A++,A+1<l.first_chunk.length?P=l.first_chunk[A+1]-1:P=1/0),k.chunk_run_index=A,X+=l.samples_per_chunk[A]),k.description_index=l.sample_description_index[k.chunk_run_index]-1,k.description=U.entries[k.description_index],k.offset=r.chunk_offsets[k.chunk_index-1]+K,K+=k.size,t>V&&(N++,V<0&&(V=0),V+=m.sample_counts[N]),t>0?(e.samples[t-1].duration=m.sample_deltas[N],e.samples_duration+=e.samples[t-1].duration,k.dts=e.samples[t-1].dts+e.samples[t-1].duration):k.dts=0,y?(t>=q&&(Q++,q<0&&(q=0),q+=y.sample_counts[Q]),k.cts=e.samples[t].dts+y.sample_offsets[Q]):k.cts=k.dts,b?(t==b.sample_numbers[xe]-1?(k.is_sync=!0,xe++):(k.is_sync=!1,k.degradation_priority=0),w&&w.entries[j].sample_delta+W==t+1&&(k.subsamples=w.entries[j].subsamples,W+=w.entries[j].sample_delta,j++)):k.is_sync=!0,S.process_sdtp(e.mdia.minf.stbl.sdtp,k,k.number),F?k.degradation_priority=F.priority[t]:k.degradation_priority=0,w&&w.entries[j].sample_delta+W==t&&(k.subsamples=w.entries[j].subsamples,W+=w.entries[j].sample_delta),(T.length>0||C.length>0)&&S.setSampleGroupProperties(e,k,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},S.prototype.updateSampleLists=function(){var e,t,r,l,h,m,y,b,U,w,T,C,F,A,R;if(this.moov!==void 0){for(;this.lastMoofIndex<this.moofs.length;)if(U=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,U.type=="moof")for(w=U,e=0;e<w.trafs.length;e++){for(T=w.trafs[e],C=this.getTrackById(T.tfhd.track_id),F=this.getTrexById(T.tfhd.track_id),T.tfhd.flags&s.TFHD_FLAG_SAMPLE_DESC?l=T.tfhd.default_sample_description_index:l=F?F.default_sample_description_index:1,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_DUR?h=T.tfhd.default_sample_duration:h=F?F.default_sample_duration:0,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_SIZE?m=T.tfhd.default_sample_size:m=F?F.default_sample_size:0,T.tfhd.flags&s.TFHD_FLAG_SAMPLE_FLAGS?y=T.tfhd.default_sample_flags:y=F?F.default_sample_flags:0,T.sample_number=0,T.sbgps.length>0&&S.initSampleGroups(C,T,T.sbgps,C.mdia.minf.stbl.sgpds,T.sgpds),t=0;t<T.truns.length;t++){var P=T.truns[t];for(r=0;r<P.sample_count;r++){A={},A.moof_number=this.lastMoofIndex,A.number_in_traf=T.sample_number,T.sample_number++,A.number=C.samples.length,T.first_sample_index=C.samples.length,C.samples.push(A),A.track_id=C.tkhd.track_id,A.timescale=C.mdia.mdhd.timescale,A.description_index=l-1,A.description=C.mdia.minf.stbl.stsd.entries[A.description_index],A.size=m,P.flags&s.TRUN_FLAGS_SIZE&&(A.size=P.sample_size[r]),C.samples_size+=A.size,A.duration=h,P.flags&s.TRUN_FLAGS_DURATION&&(A.duration=P.sample_duration[r]),C.samples_duration+=A.duration,C.first_traf_merged||r>0?A.dts=C.samples[C.samples.length-2].dts+C.samples[C.samples.length-2].duration:(T.tfdt?A.dts=T.tfdt.baseMediaDecodeTime:A.dts=0,C.first_traf_merged=!0),A.cts=A.dts,P.flags&s.TRUN_FLAGS_CTS_OFFSET&&(A.cts=A.dts+P.sample_composition_time_offset[r]),R=y,P.flags&s.TRUN_FLAGS_FLAGS?R=P.sample_flags[r]:r===0&&P.flags&s.TRUN_FLAGS_FIRST_FLAG&&(R=P.first_sample_flags),A.is_sync=!(R>>16&1),A.is_leading=R>>26&3,A.depends_on=R>>24&3,A.is_depended_on=R>>22&3,A.has_redundancy=R>>20&3,A.degradation_priority=R&65535;var K=!!(T.tfhd.flags&s.TFHD_FLAG_BASE_DATA_OFFSET),X=!!(T.tfhd.flags&s.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),V=!!(P.flags&s.TRUN_FLAGS_DATA_OFFSET),N=0;K?N=T.tfhd.base_data_offset:X||t===0?N=w.start:N=b,t===0&&r===0?V?A.offset=N+P.data_offset:A.offset=N:A.offset=b,b=A.offset+A.size,(T.sbgps.length>0||T.sgpds.length>0||C.mdia.minf.stbl.sbgps.length>0||C.mdia.minf.stbl.sgpds.length>0)&&S.setSampleGroupProperties(C,A,A.number_in_traf,T.sample_groups_info)}}if(T.subs){C.has_fragment_subsamples=!0;var q=T.first_sample_index;for(t=0;t<T.subs.entries.length;t++)q+=T.subs.entries[t].sample_delta,A=C.samples[q-1],A.subsamples=T.subs.entries[t].subsamples}}}},S.prototype.getSample=function(e,t){var r,l=e.samples[t];if(!this.moov)return null;if(!l.data)l.data=new Uint8Array(l.size),l.alreadyRead=0,this.samplesDataSize+=l.size,n.debug("ISOFile","Allocating sample #"+t+" on track #"+e.tkhd.track_id+" of size "+l.size+" (total: "+this.samplesDataSize+")");else if(l.alreadyRead==l.size)return l;for(;;){var h=this.stream.findPosition(!0,l.offset+l.alreadyRead,!1);if(h>-1){r=this.stream.buffers[h];var m=r.byteLength-(l.offset+l.alreadyRead-r.fileStart);if(l.size-l.alreadyRead<=m)return n.debug("ISOFile","Getting sample #"+t+" data (alreadyRead: "+l.alreadyRead+" offset: "+(l.offset+l.alreadyRead-r.fileStart)+" read size: "+(l.size-l.alreadyRead)+" full size: "+l.size+")"),d.memcpy(l.data.buffer,l.alreadyRead,r,l.offset+l.alreadyRead-r.fileStart,l.size-l.alreadyRead),r.usedBytes+=l.size-l.alreadyRead,this.stream.logBufferLevel(),l.alreadyRead=l.size,l;if(m===0)return null;n.debug("ISOFile","Getting sample #"+t+" partial data (alreadyRead: "+l.alreadyRead+" offset: "+(l.offset+l.alreadyRead-r.fileStart)+" read size: "+m+" full size: "+l.size+")"),d.memcpy(l.data.buffer,l.alreadyRead,r,l.offset+l.alreadyRead-r.fileStart,m),l.alreadyRead+=m,r.usedBytes+=m,this.stream.logBufferLevel()}else return null}},S.prototype.releaseSample=function(e,t){var r=e.samples[t];return r.data?(this.samplesDataSize-=r.size,r.data=null,r.alreadyRead=0,r.size):0},S.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},S.prototype.getCodecs=function(){var e,t="";for(e=0;e<this.moov.traks.length;e++){var r=this.moov.traks[e];e>0&&(t+=","),t+=r.mdia.minf.stbl.stsd.entries[0].getCodec()}return t},S.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t<this.moov.mvex.trexs.length;t++){var r=this.moov.mvex.trexs[t];if(r.track_id==e)return r}return null},S.prototype.getTrackById=function(e){if(this.moov===void 0)return null;for(var t=0;t<this.moov.traks.length;t++){var r=this.moov.traks[t];if(r.tkhd.track_id==e)return r}return null},S.prototype.itemsDataSize=0,S.prototype.flattenItemInfo=function(){var e=this.items,t=this.entity_groups,r,l,h,m=this.meta;if(m!=null&&m.hdlr!==void 0&&m.iinf!==void 0){for(r=0;r<m.iinf.item_infos.length;r++)h={},h.id=m.iinf.item_infos[r].item_ID,e[h.id]=h,h.ref_to=[],h.name=m.iinf.item_infos[r].item_name,m.iinf.item_infos[r].protection_index>0&&(h.protection=m.ipro.protections[m.iinf.item_infos[r].protection_index-1]),m.iinf.item_infos[r].item_type?h.type=m.iinf.item_infos[r].item_type:h.type="mime",h.content_type=m.iinf.item_infos[r].content_type,h.content_encoding=m.iinf.item_infos[r].content_encoding;if(m.grpl)for(r=0;r<m.grpl.boxes.length;r++)entity_group={},entity_group.id=m.grpl.boxes[r].group_id,entity_group.entity_ids=m.grpl.boxes[r].entity_ids,entity_group.type=m.grpl.boxes[r].type,t[entity_group.id]=entity_group;if(m.iloc)for(r=0;r<m.iloc.items.length;r++){var y=m.iloc.items[r];switch(h=e[y.item_ID],y.data_reference_index!==0&&(n.warn("Item storage with reference to other files: not supported"),h.source=m.dinf.boxes[y.data_reference_index-1]),y.construction_method){case 0:break;case 1:break;case 2:n.warn("Item storage with construction_method : not supported");break}for(h.extents=[],h.size=0,l=0;l<y.extents.length;l++)h.extents[l]={},h.extents[l].offset=y.extents[l].extent_offset+y.base_offset,y.construction_method==1&&(h.extents[l].offset+=m.idat.start+m.idat.hdr_size),h.extents[l].length=y.extents[l].extent_length,h.extents[l].alreadyRead=0,h.size+=h.extents[l].length}if(m.pitm&&(e[m.pitm.item_id].primary=!0),m.iref)for(r=0;r<m.iref.references.length;r++){var b=m.iref.references[r];for(l=0;l<b.references.length;l++)e[b.from_item_ID].ref_to.push({type:b.type,id:b.references[l]})}if(m.iprp)for(var U=0;U<m.iprp.ipmas.length;U++){var w=m.iprp.ipmas[U];for(r=0;r<w.associations.length;r++){var T=w.associations[r];if(h=e[T.id],h||(h=t[T.id]),h)for(h.properties===void 0&&(h.properties={},h.properties.boxes=[]),l=0;l<T.props.length;l++){var C=T.props[l];if(C.property_index>0&&C.property_index-1<m.iprp.ipco.boxes.length){var F=m.iprp.ipco.boxes[C.property_index-1];h.properties[F.type]=F,h.properties.boxes.push(F)}}}}}},S.prototype.getItem=function(e){var t,r;if(!this.meta)return null;if(r=this.items[e],!r.data&&r.size)r.data=new Uint8Array(r.size),r.alreadyRead=0,this.itemsDataSize+=r.size,n.debug("ISOFile","Allocating item #"+e+" of size "+r.size+" (total: "+this.itemsDataSize+")");else if(r.alreadyRead===r.size)return r;for(var l=0;l<r.extents.length;l++){var h=r.extents[l];if(h.alreadyRead!==h.length){var m=this.stream.findPosition(!0,h.offset+h.alreadyRead,!1);if(m>-1){t=this.stream.buffers[m];var y=t.byteLength-(h.offset+h.alreadyRead-t.fileStart);if(h.length-h.alreadyRead<=y)n.debug("ISOFile","Getting item #"+e+" extent #"+l+" data (alreadyRead: "+h.alreadyRead+" offset: "+(h.offset+h.alreadyRead-t.fileStart)+" read size: "+(h.length-h.alreadyRead)+" full extent size: "+h.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,h.offset+h.alreadyRead-t.fileStart,h.length-h.alreadyRead),t.usedBytes+=h.length-h.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead+=h.length-h.alreadyRead,h.alreadyRead=h.length;else return n.debug("ISOFile","Getting item #"+e+" extent #"+l+" partial data (alreadyRead: "+h.alreadyRead+" offset: "+(h.offset+h.alreadyRead-t.fileStart)+" read size: "+y+" full extent size: "+h.length+" full item size: "+r.size+")"),d.memcpy(r.data.buffer,r.alreadyRead,t,h.offset+h.alreadyRead-t.fileStart,y),h.alreadyRead+=y,r.alreadyRead+=y,t.usedBytes+=y,this.stream.logBufferLevel(),null}else return null}}return r.alreadyRead===r.size?r:null},S.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var r=0;r<t.extents.length;r++){var l=t.extents[r];l.alreadyRead=0}return t.size}else return 0},S.prototype.processItems=function(e){for(var t in this.items){var r=this.items[t];this.getItem(r.id),e&&!r.sent&&(e(r),r.sent=!0,r.data=null)}},S.prototype.hasItem=function(e){for(var t in this.items){var r=this.items[t];if(r.name===e)return r.id}return-1},S.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},S.prototype.getPrimaryItem=function(){return!this.meta||!this.meta.pitm?null:this.getItem(this.meta.pitm.item_id)},S.prototype.itemToFragmentedTrackFile=function(e){var t=e||{},r=null;if(t.itemId?r=this.getItem(t.itemId):r=this.getPrimaryItem(),r==null)return null;var l=new S;l.discardMdatData=!1;var h={type:r.type,description_boxes:r.properties.boxes};r.properties.ispe&&(h.width=r.properties.ispe.image_width,h.height=r.properties.ispe.image_height);var m=l.addTrack(h);return m?(l.addSample(m,r.data),l):null},S.prototype.write=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e)},S.prototype.createFragment=function(e,t,r){var l=this.getTrackById(e),h=this.getSample(l,t);if(h==null)return this.setNextSeekPositionFromSample(l.samples[t]),null;var m=r||new d;m.endianness=d.BIG_ENDIAN;var y=this.createSingleSampleMoof(h);y.write(m),y.trafs[0].truns[0].data_offset=y.size+8,n.debug("MP4Box","Adjusting data_offset with new value "+y.trafs[0].truns[0].data_offset),m.adjustUint32(y.trafs[0].truns[0].data_offset_position,y.trafs[0].truns[0].data_offset);var b=new s.mdatBox;return b.data=h.data,b.write(m),m},S.writeInitializationSegment=function(e,t,r,l){var h;n.debug("ISOFile","Generating initialization segment");var m=new d;m.endianness=d.BIG_ENDIAN,e.write(m);var y=t.add("mvex");for(r&&y.add("mehd").set("fragment_duration",r),h=0;h<t.traks.length;h++)y.add("trex").set("track_id",t.traks[h].tkhd.track_id).set("default_sample_description_index",1).set("default_sample_duration",l).set("default_sample_size",0).set("default_sample_flags",65536);return t.write(m),m.buffer},S.prototype.save=function(e){var t=new d;t.endianness=d.BIG_ENDIAN,this.write(t),t.save(e)},S.prototype.getBuffer=function(){var e=new d;return e.endianness=d.BIG_ENDIAN,this.write(e),e.buffer},S.prototype.initializeSegmentation=function(){var e,t,r,l;for(this.onSegment===null&&n.warn("MP4Box","No segmentation callback set!"),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),t=[],e=0;e<this.fragmentedTracks.length;e++){var h=new s.moovBox;h.mvhd=this.moov.mvhd,h.boxes.push(h.mvhd),r=this.getTrackById(this.fragmentedTracks[e].id),h.boxes.push(r),h.traks.push(r),l={},l.id=r.tkhd.track_id,l.user=this.fragmentedTracks[e].user,l.buffer=S.writeInitializationSegment(this.ftyp,h,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[e].samples.length>0?this.moov.traks[e].samples[0].duration:0),t.push(l)}return t},s.Box.prototype.printHeader=function(e){this.size+=8,this.size>f&&(this.size+=8),this.type==="uuid"&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},s.FullBox.prototype.printHeader=function(e){this.size+=4,s.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},s.Box.prototype.print=function(e){this.printHeader(e)},s.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t<this.boxes.length;t++)if(this.boxes[t]){var r=e.indent;e.indent+=" ",this.boxes[t].print(e),e.indent=r}},S.prototype.print=function(e){e.indent="";for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&this.boxes[t].print(e)},s.mvhdBox.prototype.print=function(e){s.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"timescale: "+this.timescale),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"rate: "+this.rate),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},s.tkhdBox.prototype.print=function(e){s.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var E={};E.createFile=function(e,t){var r=e!==void 0?e:!0,l=new S(t);return l.discardMdatData=!r,l},a.createFile=E.createFile}(mt)),mt}var yt=fn(),cn=Zt(yt),vt={exports:{}},ei;function hn(){return ei||(ei=1,function(a){var n={};a.exports=n,n.parse=function(o,d){for(var f=n.bin.readUshort,c=n.bin.readUint,g=0,u={},s=new Uint8Array(o),p=s.length-4;c(s,p)!=101010256;)p--;var g=p;g+=4,g+=4;var _=f(s,g);g+=2,f(s,g),g+=2;var v=c(s,g);g+=4;var x=c(s,g);g+=4,g=x;for(var S=0;S<_;S++){c(s,g),g+=4,g+=4,g+=4,g+=4,c(s,g),g+=4;var v=c(s,g);g+=4;var E=c(s,g);g+=4;var e=f(s,g),t=f(s,g+2),r=f(s,g+4);g+=6,g+=8;var l=c(s,g);g+=4,g+=e+t+r,n._readLocal(s,l,u,v,E,d)}return u},n._readLocal=function(o,d,f,c,u,s){var p=n.bin.readUshort,g=n.bin.readUint;g(o,d),d+=4,p(o,d),d+=2,p(o,d),d+=2;var _=p(o,d);d+=2,g(o,d),d+=4,g(o,d),d+=4,d+=8;var v=p(o,d);d+=2;var x=p(o,d);d+=2;var S=n.bin.readUTF8(o,d,v);if(d+=v,d+=x,s){f[S]={size:u,csize:c};return}var E=new Uint8Array(o.buffer,d);if(_==0)f[S]=new Uint8Array(E.buffer.slice(d,d+c));else if(_==8){var e=new Uint8Array(u);n.inflateRaw(E,e),f[S]=e}else throw"unknown compression method: "+_},n.inflateRaw=function(o,d){return n.F.inflate(o,d)},n.inflate=function(o,d){return o[0],o[1],n.inflateRaw(new Uint8Array(o.buffer,o.byteOffset+2,o.length-6),d)},n.deflate=function(o,d){d==null&&(d={level:6});var f=0,c=new Uint8Array(50+Math.floor(o.length*1.1));c[f]=120,c[f+1]=156,f+=2,f=n.F.deflateRaw(o,c,f,d.level);var u=n.adler(o,0,o.length);return c[f+0]=u>>>24&255,c[f+1]=u>>>16&255,c[f+2]=u>>>8&255,c[f+3]=u>>>0&255,new Uint8Array(c.buffer,0,f+4)},n.deflateRaw=function(o,d){d==null&&(d={level:6});var f=new Uint8Array(50+Math.floor(o.length*1.1)),c=n.F.deflateRaw(o,f,c,d.level);return new Uint8Array(f.buffer,0,c)},n.encode=function(o,d){d==null&&(d=!1);var f=0,c=n.bin.writeUint,u=n.bin.writeUshort,s={};for(var p in o){var g=!n._noNeed(p)&&!d,_=o[p],v=n.crc.crc(_,0,_.length);s[p]={cpr:g,usize:_.length,crc:v,file:g?n.deflateRaw(_):_}}for(var p in s)f+=s[p].file.length+30+46+2*n.bin.sizeUTF8(p);f+=22;var x=new Uint8Array(f),S=0,E=[];for(var p in s){var e=s[p];E.push(S),S=n._writeHeader(x,S,p,e,0)}var t=0,r=S;for(var p in s){var e=s[p];E.push(S),S=n._writeHeader(x,S,p,e,1,E[t++])}var l=S-r;return c(x,S,101010256),S+=4,S+=4,u(x,S,t),S+=2,u(x,S,t),S+=2,c(x,S,l),S+=4,c(x,S,r),S+=4,S+=2,x.buffer},n._noNeed=function(o){var d=o.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(d)!=-1},n._writeHeader=function(o,d,f,c,u,s){var p=n.bin.writeUint,g=n.bin.writeUshort,_=c.file;p(o,d,u==0?67324752:33639248),d+=4,u==1&&(d+=2),g(o,d,20),d+=2,g(o,d,0),d+=2,g(o,d,c.cpr?8:0),d+=2,p(o,d,0),d+=4,p(o,d,c.crc),d+=4,p(o,d,_.length),d+=4,p(o,d,c.usize),d+=4,g(o,d,n.bin.sizeUTF8(f)),d+=2,g(o,d,0),d+=2,u==1&&(d+=2,d+=2,d+=6,p(o,d,s),d+=4);var v=n.bin.writeUTF8(o,d,f);return d+=v,u==0&&(o.set(_,d),d+=_.length),d},n.crc={table:function(){for(var o=new Uint32Array(256),d=0;d<256;d++){for(var f=d,c=0;c<8;c++)f&1?f=3988292384^f>>>1:f=f>>>1;o[d]=f}return o}(),update:function(o,d,f,c){for(var u=0;u<c;u++)o=n.crc.table[(o^d[f+u])&255]^o>>>8;return o},crc:function(o,d,f){return n.crc.update(4294967295,o,d,f)^4294967295}},n.adler=function(o,d,f){for(var c=1,u=0,s=d,p=d+f;s<p;){for(var g=Math.min(s+5552,p);s<g;)c+=o[s++],u+=c;c=c%65521,u=u%65521}return u<<16|c},n.bin={readUshort:function(o,d){return o[d]|o[d+1]<<8},writeUshort:function(o,d,f){o[d]=f&255,o[d+1]=f>>8&255},readUint:function(o,d){return o[d+3]*(256*256*256)+(o[d+2]<<16|o[d+1]<<8|o[d])},writeUint:function(o,d,f){o[d]=f&255,o[d+1]=f>>8&255,o[d+2]=f>>16&255,o[d+3]=f>>24&255},readASCII:function(o,d,f){for(var c="",u=0;u<f;u++)c+=String.fromCharCode(o[d+u]);return c},writeASCII:function(o,d,f){for(var c=0;c<f.length;c++)o[d+c]=f.charCodeAt(c)},pad:function(o){return o.length<2?"0"+o:o},readUTF8:function(o,d,f){for(var c="",u,s=0;s<f;s++)c+="%"+n.bin.pad(o[d+s].toString(16));try{u=decodeURIComponent(c)}catch{return n.bin.readASCII(o,d,f)}return u},writeUTF8:function(o,d,f){for(var c=f.length,u=0,s=0;s<c;s++){var p=f.charCodeAt(s);if(!(p&4294967168))o[d+u]=p,u++;else if(!(p&4294965248))o[d+u]=192|p>>6,o[d+u+1]=128|p>>0&63,u+=2;else if(!(p&4294901760))o[d+u]=224|p>>12,o[d+u+1]=128|p>>6&63,o[d+u+2]=128|p>>0&63,u+=3;else if(!(p&4294967295-(1<<21)+1))o[d+u]=240|p>>18,o[d+u+1]=128|p>>12&63,o[d+u+2]=128|p>>6&63,o[d+u+3]=128|p>>0&63,u+=4;else throw"e"}return u},sizeUTF8:function(o){for(var d=o.length,f=0,c=0;c<d;c++){var u=o.charCodeAt(c);if(!(u&4294967168))f++;else if(!(u&4294965248))f+=2;else if(!(u&4294901760))f+=3;else if(!(u&4294967295-(1<<21)+1))f+=4;else throw"e"}return f}},n.F={},n.F.deflateRaw=function(o,d,f,c){var u=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]],s=u[c],p=n.F.U,g=n.F._goodIndex;n.F._hash;var _=n.F._putsE,v=0,x=f<<3,S=0,E=o.length;if(c==0){for(;v<E;){var e=Math.min(65535,E-v);_(d,x,v+e==E?1:0),x=n.F._copyExact(o,v,e,d,x+8),v+=e}return x>>>3}var t=p.lits,r=p.strt,l=p.prev,h=0,m=0,y=0,b=0,U=0,w=0;for(E>2&&(w=n.F._hash(o,0),r[w]=0),v=0;v<E;v++){if(U=w,v+1<E-2){w=n.F._hash(o,v+1);var T=v+1&32767;l[T]=r[w],r[w]=T}if(S<=v){(h>14e3||m>26697)&&E-v>100&&(S<v&&(t[h]=v-S,h+=2,S=v),x=n.F._writeBlock(v==E-1||S==E?1:0,t,h,b,o,y,v-y,d,x),h=m=b=0,y=v);var C=0;v<E-2&&(C=n.F._bestMatch(o,v,l,U,Math.min(s[2],E-v),s[3]));var e=C>>>16,F=C&65535;if(C!=0){var e=C>>>16,F=C&65535,A=g(e,p.of0);p.lhst[257+A]++;var R=g(F,p.df0);p.dhst[R]++,b+=p.exb[A]+p.dxb[R],t[h]=e<<23|v-S,t[h+1]=F<<16|A<<8|R,h+=2,S=v+e}else p.lhst[o[v]]++;m++}}for((y!=v||o.length==0)&&(S<v&&(t[h]=v-S,h+=2,S=v),x=n.F._writeBlock(1,t,h,b,o,y,v-y,d,x),h=0,m=0,h=m=b=0,y=v);x&7;)x++;return x>>>3},n.F._bestMatch=function(o,d,f,c,u,s){var p=d&32767,g=f[p],_=p-g+32768&32767;if(g==p||c!=n.F._hash(o,d-_))return 0;for(var v=0,x=0,S=Math.min(32767,d);_<=S&&--s!=0&&g!=p;){if(v==0||o[d+v]==o[d+v-_]){var E=n.F._howLong(o,d,_);if(E>v){if(v=E,x=_,v>=u)break;_+2<E&&(E=_+2);for(var e=0,t=0;t<E-2;t++){var r=d-_+t+32768&32767,l=f[r],h=r-l+32768&32767;h>e&&(e=h,g=r)}}}p=g,g=f[p],_+=p-g+32768&32767}return v<<16|x},n.F._howLong=function(o,d,f){if(o[d]!=o[d-f]||o[d+1]!=o[d+1-f]||o[d+2]!=o[d+2-f])return 0;var c=d,u=Math.min(o.length,d+258);for(d+=3;d<u&&o[d]==o[d-f];)d++;return d-c},n.F._hash=function(o,d){return(o[d]<<8|o[d+1])+(o[d+2]<<4)&65535},n.saved=0,n.F._writeBlock=function(o,d,f,c,u,s,p,g,_){var v=n.F.U,x=n.F._putsF,S=n.F._putsE,E,e,t,r,l,h,m,y,b;v.lhst[256]++,E=n.F.getTrees(),e=E[0],t=E[1],r=E[2],l=E[3],h=E[4],m=E[5],y=E[6],b=E[7];var U=(_+3&7?8-(_+3&7):0)+32+(p<<3),w=c+n.F.contSize(v.fltree,v.lhst)+n.F.contSize(v.fdtree,v.dhst),T=c+n.F.contSize(v.ltree,v.lhst)+n.F.contSize(v.dtree,v.dhst);T+=14+3*m+n.F.contSize(v.itree,v.ihst)+(v.ihst[16]*2+v.ihst[17]*3+v.ihst[18]*7);for(var C=0;C<286;C++)v.lhst[C]=0;for(var C=0;C<30;C++)v.dhst[C]=0;for(var C=0;C<19;C++)v.ihst[C]=0;var F=U<w&&U<T?0:w<T?1:2;if(x(g,_,o),x(g,_+1,F),_+=3,F==0){for(;_&7;)_++;_=n.F._copyExact(u,s,p,g,_)}else{var A,R;if(F==1&&(A=v.fltree,R=v.fdtree),F==2){n.F.makeCodes(v.ltree,e),n.F.revCodes(v.ltree,e),n.F.makeCodes(v.dtree,t),n.F.revCodes(v.dtree,t),n.F.makeCodes(v.itree,r),n.F.revCodes(v.itree,r),A=v.ltree,R=v.dtree,S(g,_,l-257),_+=5,S(g,_,h-1),_+=5,S(g,_,m-4),_+=4;for(var P=0;P<m;P++)S(g,_+P*3,v.itree[(v.ordr[P]<<1)+1]);_+=3*m,_=n.F._codeTiny(y,v.itree,g,_),_=n.F._codeTiny(b,v.itree,g,_)}for(var K=s,X=0;X<f;X+=2){for(var V=d[X],N=V>>>23,q=K+(V&(1<<23)-1);K<q;)_=n.F._writeLit(u[K++],A,g,_);if(N!=0){var Q=d[X+1],xe=Q>>16,j=Q>>8&255,W=Q&255;_=n.F._writeLit(257+j,A,g,_),S(g,_,N-v.of0[j]),_+=v.exb[j],_=n.F._writeLit(W,R,g,_),x(g,_,xe-v.df0[W]),_+=v.dxb[W],K+=N}}_=n.F._writeLit(256,A,g,_)}return _},n.F._copyExact=function(o,d,f,c,u){var s=u>>>3;return c[s]=f,c[s+1]=f>>>8,c[s+2]=255-c[s],c[s+3]=255-c[s+1],s+=4,c.set(new Uint8Array(o.buffer,d,f),s),u+(f+4<<3)},n.F.getTrees=function(){for(var o=n.F.U,d=n.F._hufTree(o.lhst,o.ltree,15),f=n.F._hufTree(o.dhst,o.dtree,15),c=[],u=n.F._lenCodes(o.ltree,c),s=[],p=n.F._lenCodes(o.dtree,s),g=0;g<c.length;g+=2)o.ihst[c[g]]++;for(var g=0;g<s.length;g+=2)o.ihst[s[g]]++;for(var _=n.F._hufTree(o.ihst,o.itree,7),v=19;v>4&&o.itree[(o.ordr[v-1]<<1)+1]==0;)v--;return[d,f,_,u,p,v,c,s]},n.F.getSecond=function(o){for(var d=[],f=0;f<o.length;f+=2)d.push(o[f+1]);return d},n.F.nonZero=function(o){for(var d="",f=0;f<o.length;f+=2)o[f+1]!=0&&(d+=(f>>1)+",");return d},n.F.contSize=function(o,d){for(var f=0,c=0;c<d.length;c++)f+=d[c]*o[(c<<1)+1];return f},n.F._codeTiny=function(o,d,f,c){for(var u=0;u<o.length;u+=2){var s=o[u],p=o[u+1];c=n.F._writeLit(s,d,f,c);var g=s==16?2:s==17?3:7;s>15&&(n.F._putsE(f,c,p,g),c+=g)}return c},n.F._lenCodes=function(o,d){for(var f=o.length;f!=2&&o[f-1]==0;)f-=2;for(var c=0;c<f;c+=2){var u=o[c+1],s=c+3<f?o[c+3]:-1,p=c+5<f?o[c+5]:-1,g=c==0?-1:o[c-1];if(u==0&&s==u&&p==u){for(var _=c+5;_+2<f&&o[_+2]==u;)_+=2;var v=Math.min(_+1-c>>>1,138);v<11?d.push(17,v-3):d.push(18,v-11),c+=v*2-2}else if(u==g&&s==u&&p==u){for(var _=c+5;_+2<f&&o[_+2]==u;)_+=2;var v=Math.min(_+1-c>>>1,6);d.push(16,v-3),c+=v*2-2}else d.push(u,0)}return f>>>1},n.F._hufTree=function(o,d,f){var c=[],u=o.length,s=d.length,p=0;for(p=0;p<s;p+=2)d[p]=0,d[p+1]=0;for(p=0;p<u;p++)o[p]!=0&&c.push({lit:p,f:o[p]});var g=c.length,_=c.slice(0);if(g==0)return 0;if(g==1){var v=c[0].lit,_=v==0?1:0;return d[(v<<1)+1]=1,d[(_<<1)+1]=1,1}c.sort(function(l,h){return l.f-h.f});var x=c[0],S=c[1],E=0,e=1,t=2;for(c[0]={lit:-1,f:x.f+S.f,l:x,r:S,d:0};e!=g-1;)E!=e&&(t==g||c[E].f<c[t].f)?x=c[E++]:x=c[t++],E!=e&&(t==g||c[E].f<c[t].f)?S=c[E++]:S=c[t++],c[e++]={lit:-1,f:x.f+S.f,l:x,r:S};var r=n.F.setDepth(c[e-1],0);for(r>f&&(n.F.restrictDepth(_,f,r),r=f),p=0;p<g;p++)d[(_[p].lit<<1)+1]=_[p].d;return r},n.F.setDepth=function(o,d){return o.lit!=-1?(o.d=d,d):Math.max(n.F.setDepth(o.l,d+1),n.F.setDepth(o.r,d+1))},n.F.restrictDepth=function(o,d,f){var c=0,u=1<<f-d,s=0;for(o.sort(function(g,_){return _.d==g.d?g.f-_.f:_.d-g.d}),c=0;c<o.length&&o[c].d>d;c++){var p=o[c].d;o[c].d=d,s+=u-(1<<f-p)}for(s=s>>>f-d;s>0;){var p=o[c].d;p<d?(o[c].d++,s-=1<<d-p-1):c++}for(;c>=0;c--)o[c].d==d&&s<0&&(o[c].d--,s++);s!=0&&console.log("debt left")},n.F._goodIndex=function(o,d){var f=0;return d[f|16]<=o&&(f|=16),d[f|8]<=o&&(f|=8),d[f|4]<=o&&(f|=4),d[f|2]<=o&&(f|=2),d[f|1]<=o&&(f|=1),f},n.F._writeLit=function(o,d,f,c){return n.F._putsF(f,c,d[o<<1]),c+d[(o<<1)+1]},n.F.inflate=function(o,d){var f=Uint8Array;if(o[0]==3&&o[1]==0)return d||new f(0);var c=n.F,u=c._bitsF,s=c._bitsE,p=c._decodeTiny,g=c.makeCodes,_=c.codes2map,v=c._get17,x=c.U,S=d==null;S&&(d=new f(o.length>>>2<<3));for(var E=0,e=0,t=0,r=0,l=0,h=0,m=0,y=0,b=0,U,w;E==0;){if(E=u(o,b,1),e=u(o,b+1,2),b+=3,e==0){b&7&&(b+=8-(b&7));var T=(b>>>3)+4,C=o[T-4]|o[T-3]<<8;S&&(d=n.F._check(d,y+C)),d.set(new f(o.buffer,o.byteOffset+T,C),y),b=T+C<<3,y+=C;continue}if(S&&(d=n.F._check(d,y+(1<<17))),e==1&&(U=x.flmap,w=x.fdmap,h=511,m=31),e==2){t=s(o,b,5)+257,r=s(o,b+5,5)+1,l=s(o,b+10,4)+4,b+=14;for(var F=0;F<38;F+=2)x.itree[F]=0,x.itree[F+1]=0;for(var A=1,F=0;F<l;F++){var R=s(o,b+F*3,3);x.itree[(x.ordr[F]<<1)+1]=R,R>A&&(A=R)}b+=3*l,g(x.itree,A),_(x.itree,A,x.imap),U=x.lmap,w=x.dmap,b=p(x.imap,(1<<A)-1,t+r,o,b,x.ttree);var P=c._copyOut(x.ttree,0,t,x.ltree);h=(1<<P)-1;var K=c._copyOut(x.ttree,t,r,x.dtree);m=(1<<K)-1,g(x.ltree,P),_(x.ltree,P,U),g(x.dtree,K),_(x.dtree,K,w)}for(;;){var X=U[v(o,b)&h];b+=X&15;var V=X>>>4;if(!(V>>>8))d[y++]=V;else{if(V==256)break;var N=y+V-254;if(V>264){var q=x.ldef[V-257];N=y+(q>>>3)+s(o,b,q&7),b+=q&7}var Q=w[v(o,b)&m];b+=Q&15;var xe=Q>>>4,j=x.ddef[xe],W=(j>>>4)+u(o,b,j&15);for(b+=j&15,S&&(d=n.F._check(d,y+(1<<17)));y<N;)d[y]=d[y++-W],d[y]=d[y++-W],d[y]=d[y++-W],d[y]=d[y++-W];y=N}}}return d.length==y?d:d.slice(0,y)},n.F._check=function(o,d){var f=o.length;if(d<=f)return o;var c=new Uint8Array(Math.max(f<<1,d));return c.set(o,0),c},n.F._decodeTiny=function(o,d,f,c,u,s){for(var p=n.F._bitsE,g=n.F._get17,_=0;_<f;){var v=o[g(c,u)&d];u+=v&15;var x=v>>>4;if(x<=15)s[_]=x,_++;else{var S=0,E=0;x==16?(E=3+p(c,u,2),u+=2,S=s[_-1]):x==17?(E=3+p(c,u,3),u+=3):x==18&&(E=11+p(c,u,7),u+=7);for(var e=_+E;_<e;)s[_]=S,_++}}return u},n.F._copyOut=function(o,d,f,c){for(var u=0,s=0,p=c.length>>>1;s<f;){var g=o[s+d];c[s<<1]=0,c[(s<<1)+1]=g,g>u&&(u=g),s++}for(;s<p;)c[s<<1]=0,c[(s<<1)+1]=0,s++;return u},n.F.makeCodes=function(o,d){for(var f=n.F.U,c=o.length,u,s,p,g,_,v=f.bl_count,g=0;g<=d;g++)v[g]=0;for(g=1;g<c;g+=2)v[o[g]]++;var x=f.next_code;for(u=0,v[0]=0,s=1;s<=d;s++)u=u+v[s-1]<<1,x[s]=u;for(p=0;p<c;p+=2)_=o[p+1],_!=0&&(o[p]=x[_],x[_]++)},n.F.codes2map=function(o,d,f){for(var c=o.length,u=n.F.U,s=u.rev15,p=0;p<c;p+=2)if(o[p+1]!=0)for(var g=p>>1,_=o[p+1],v=g<<4|_,x=d-_,S=o[p]<<x,E=S+(1<<x);S!=E;){var e=s[S]>>>15-d;f[e]=v,S++}},n.F.revCodes=function(o,d){for(var f=n.F.U.rev15,c=15-d,u=0;u<o.length;u+=2){var s=o[u]<<d-o[u+1];o[u]=f[s]>>>c}},n.F._putsE=function(o,d,f){f=f<<(d&7);var c=d>>>3;o[c]|=f,o[c+1]|=f>>>8},n.F._putsF=function(o,d,f){f=f<<(d&7);var c=d>>>3;o[c]|=f,o[c+1]|=f>>>8,o[c+2]|=f>>>16},n.F._bitsE=function(o,d,f){return(o[d>>>3]|o[(d>>>3)+1]<<8)>>>(d&7)&(1<<f)-1},n.F._bitsF=function(o,d,f){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16)>>>(d&7)&(1<<f)-1},n.F._get17=function(o,d){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16)>>>(d&7)},n.F._get25=function(o,d){return(o[d>>>3]|o[(d>>>3)+1]<<8|o[(d>>>3)+2]<<16|o[(d>>>3)+3]<<24)>>>(d&7)},n.F.U=function(){var o=Uint16Array,d=Uint32Array;return{next_code:new o(16),bl_count:new o(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new o(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new d(32),flmap:new o(512),fltree:[],fdmap:new o(32),fdtree:[],lmap:new o(32768),ltree:[],ttree:[],dmap:new o(32768),dtree:[],imap:new o(512),itree:[],rev15:new o(32768),lhst:new d(286),dhst:new d(30),ihst:new d(19),lits:new d(15e3),strt:new o(65536),prev:new o(32768)}}(),function(){for(var o=n.F.U,d=32768,f=0;f<d;f++){var c=f;c=(c&2863311530)>>>1|(c&1431655765)<<1,c=(c&3435973836)>>>2|(c&858993459)<<2,c=(c&4042322160)>>>4|(c&252645135)<<4,c=(c&4278255360)>>>8|(c&16711935)<<8,o.rev15[f]=(c>>>16|c<<16)>>>17}function u(s,p,g){for(;p--!=0;)s.push(0,g)}for(var f=0;f<32;f++)o.ldef[f]=o.of0[f]<<3|o.exb[f],o.ddef[f]=o.df0[f]<<4|o.dxb[f];u(o.fltree,144,8),u(o.fltree,112,9),u(o.fltree,24,7),u(o.fltree,8,8),n.F.makeCodes(o.fltree,9),n.F.codes2map(o.fltree,9,o.flmap),n.F.revCodes(o.fltree,9),u(o.fdtree,32,5),n.F.makeCodes(o.fdtree,5),n.F.codes2map(o.fdtree,5,o.fdmap),n.F.revCodes(o.fdtree,5),u(o.itree,19,0),u(o.ltree,286,0),u(o.dtree,30,0),u(o.ttree,320,0)}()}(vt)),vt.exports}var un=hn(),pn=Zt(un);const Y=class Y{constructor(n,o,d,f,c){this.copy=()=>new Y(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const u=":";let s=("0"+this.h).slice(-2)+u+("0"+this.m).slice(-2)+u+("0"+this.s).slice(-2)+u+("0"+this.f).slice(-2);return s+="."+(this.field?"1":"2"),s},this.toZipTimeCodeString=()=>{const u=this.copy();return u.f=0,u.s=u.s%2===0?u.s:u.s-1,u.field=0,Y.toStr(u)},this.toFrames=u=>{let s=60,p=0;Math.floor(u)==60?(s=60,p=0):Math.floor(u)==59?(s=60,p=4):Math.floor(u)==30?(s=30,p=0):Math.floor(u)==29&&(s=30,p=2);let g=this.h,_=this.m,v=this.s,x=this.f,S=this.field;const E=g*60+_,t=(E-Math.floor(E/10))*p;return g*(s*3600)+_*(s*60)+v*s+(x*2+S)-t},this.addSeconds=u=>{let s=this.copy();return s.s+=u,s.s>=60&&(s.s=0,s.m++,s.m>=60&&(s.m=0,s.h++)),s},this.addFrames=(u,s)=>{let p=this.toFrames(s);return p+=u,Y.fromFrames(p,s)},this.subtractFrames=(u,s)=>this.addFrames(-u,s),this.h=n||0,this.m=o||0,this.s=d||0,this.f=f||0,this.field=c||0}static compare(n,o){return n.h!==o.h?n.h<o.h?-1:1:n.m!==o.m?n.m<o.m?-1:1:n.s!==o.s?n.s<o.s?-1:1:n.f!==o.f?n.f<o.f?-1:1:n.field!==o.field?n.field<o.field?-1:1:0}static generateTimecodeRange(n,o,d){const f=[];let c=n;for(;Y.compare(c,o)<=0;)f.push(c),c=c.addSeconds(d);return f}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(n){return this.toFrames(n)*1e3/n}};Y.calculateCurrentTimeCode=n=>{var v;if(!n.video||!n.clocker||!n.gameParams)throw new Error("OTTPlayer is not initialized");const o=n.video,d=n.clocker,f=d.videoFPScalculator.getFPS(),s=(o.currentTime-d.syncPoint.playerTime)%(60*60*24)*f+d.syncPoint.frame;if(s===0||f===0)throw new Error("Current frame is 0 or fps is 0");const p=Y.calculateCurrentOffset(s,(v=n.gameParams)==null?void 0:v.offsets);if(p===void 0)throw new Error("Offset is undefined");let g=Math.floor(s-p);return g<0&&(g+=5178816),g>=5178816&&(g-=5178816),Y.fromFrames(g,f)},Y.calculateCurrentOffset=(n,o)=>{for(let d=1;d<o.length;d++)if(n<o[d].frame)return o[d-1].offset;return o[o.length-1].offset},Y.fromFrames=(n,o)=>{let d=60,f=0;Math.floor(o)==60?(d=60,f=0):Math.floor(o)==59?(d=60,f=4):Math.floor(o)==30?(d=30,f=0):Math.floor(o)==29&&(d=30,f=2);let c=Math.floor(o*60),u=Math.floor(o*60*10),s=u*6,p=n,g=Math.floor(p/s);p-=g*s;let _=Math.floor(p/u);p-=_*u,p>=d*60&&(p+=f*(Math.floor((p-d*60)/c)+1));let v=Math.floor(p/(d*60));p-=v*(d*60);let x=Math.floor(p/d);p-=x*d;let S=p;v+=_*10;let E=0;return E=S%2,S=Math.floor(S/2),new Y(g,v,x,S,E)},Y.toStr=n=>{const o="_";let d=("0"+n.h).slice(-2)+o+("0"+n.m).slice(-2)+o+("0"+n.s).slice(-2)+o+("0"+n.f).slice(-2);return n.field&&(d+="_1"),d},Y.fromStr=n=>{const d=n.split("_").map(Number);if(d.length==4){const[f,c,u,s]=d;return new Y(f,c,u,s,0)}else if(d.length==5){const[f,c,u,s,p]=d;return new Y(f,c,u,s,p)}else throw new Error("Invalid timecode format: "+n)},Y.fromMetadata=n=>{const o=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,d=n.timecode.match(o);if(!d)throw new Error("Invalid timecode format: "+n.timecode);const[,f,c,u,s,p]=d,g=Number(f),_=Number(c),v=Number(u),x=Number(s),S=p?Number(p):0;return new Y(g,_,v,x,S)};let $=Y;const z={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},ee=console,ce={};Object.keys(z).forEach(a=>{ce[a]=ee[a]});const Be="Datadog Browser SDK:",O={debug:ce.debug.bind(ee,Be),log:ce.log.bind(ee,Be),info:ce.info.bind(ee,Be),warn:ce.warn.bind(ee,Be),error:ce.error.bind(ee,Be)},St="https://docs.datadoghq.com",ti=`${St}/real_user_monitoring/browser/troubleshooting`,Ve="More details:";function ii(a,n){return(...o)=>{try{return a(...o)}catch(d){O.error(n,d)}}}function $e(a){return a!==0&&Math.random()*100<=a}function _n(a){return gn(a)&&a>=0&&a<=100}function gn(a){return typeof a=="number"}const ke=1e3,he=60*ke,ni=60*he,mn=365*(24*ni);function Le(){return new Date().getTime()}function se(){return Le()}function je(){return performance.now()}function oe(){return{relative:je(),timeStamp:se()}}function yn(){return{relative:0,timeStamp:ri()}}function vn(a,n){return n-a}function Sn(a,n){return a+n}function bn(a){return a-ri()}let bt;function ri(){return bt===void 0&&(bt=performance.timing.navigationStart),bt}const te=1024,si=1024*te,xn=/[^\\u0000-\\u007F]/;function xt(a){return xn.test(a)?window.TextEncoder!==void 0?new TextEncoder().encode(a).length:new Blob([a]).size:a.length}function Un(a){return{...a}}function oi(a,n){return Object.keys(a).some(o=>a[o]===n)}function De(a){return Object.keys(a).length===0}function ae(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let a=_dd_temp_;return delete Object.prototype._dd_temp_,typeof a!="object"&&(typeof self=="object"?a=self:typeof window=="object"?a=window:a={}),a}function Ue(a,n){const o=ae();let d;return o.Zone&&typeof o.Zone.__symbol__=="function"&&(d=a[o.Zone.__symbol__(n)]),d||(d=a[n]),d}let Ke,ai=!1;function En(a){Ke=a}function wn(a){ai=a}function Tn(a,n,o){const d=o.value;o.value=function(...f){return(Ke?D(d):d).apply(this,f)}}function D(a){return function(){return Re(a,this,arguments)}}function Re(a,n,o){try{return a.apply(n,o)}catch(d){Cn(d)}}function Cn(a){if(Ut(a),Ke)try{Ke(a)}catch(n){Ut(n)}}function Ut(...a){ai&&O.error("[MONITOR]",...a)}function Pe(a,n){return Ue(ae(),"setTimeout")(D(a),n)}function di(a){Ue(ae(),"clearTimeout")(a)}function Et(a,n){return Ue(ae(),"setInterval")(D(a),n)}function li(a){Ue(ae(),"clearInterval")(a)}class G{constructor(n){this.onFirstSubscribe=n,this.observers=[]}subscribe(n){return this.observers.push(n),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(o=>n!==o),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(n){this.observers.forEach(o=>o(n))}}function fi(...a){return new G(n=>{const o=a.map(d=>d.subscribe(f=>n.notify(f)));return()=>o.forEach(d=>d.unsubscribe())})}function ci(a,n,o){let d=!1,f,c;return{throttled:(...u)=>{if(d){f=u;return}a(...u),d=!0,c=Pe(()=>{f&&a(...f),d=!1,f=void 0},n)},cancel:()=>{di(c),d=!1,f=void 0}}}function de(){}function le(a){return a?(parseInt(a,10)^Math.random()*16>>parseInt(a,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,le)}const qe=/([\\w-]+)\\s*=\\s*([^;]+)/g;function An(a,n){for(qe.lastIndex=0;;){const o=qe.exec(a);if(o){if(o[1]===n)return o[2]}else break}}function In(a){const n=new Map;for(qe.lastIndex=0;;){const o=qe.exec(a);if(o)n.set(o[1],o[2]);else break}return n}function Fn(a,n,o=""){const d=a.charCodeAt(n-1),c=d>=55296&&d<=56319?n+1:n;return a.length<=c?a:`${a.slice(0,c)}${o}`}function Bn(){return kn()===0}let We;function kn(){return We??(We=Ln())}function Ln(a=window){var n;const o=a.navigator.userAgent;return a.chrome||/HeadlessChrome/.test(o)?0:((n=a.navigator.vendor)===null||n===void 0?void 0:n.indexOf("Apple"))===0||/safari/i.test(o)&&!/chrome|android/i.test(o)?1:2}function ze(a,n,o=0,d){const f=new Date;f.setTime(f.getTime()+o);const c=`expires=${f.toUTCString()}`,u=d&&d.crossSite?"none":"strict",s=d&&d.domain?`;domain=${d.domain}`:"",p=d&&d.secure?";secure":"",g=d&&d.partitioned?";partitioned":"";document.cookie=`${a}=${n};${c};path=/;samesite=${u}${s}${p}${g}`}function wt(a){return An(document.cookie,a)}let Tt;function ue(a){return Tt||(Tt=In(document.cookie)),Tt.get(a)}function hi(a,n){ze(a,"",0,n)}function Dn(a){if(document.cookie===void 0||document.cookie===null)return!1;try{const n=`dd_cookie_test_${le()}`,o="test";ze(n,o,he,a);const d=wt(n)===o;return hi(n,a),d}catch(n){return O.error(n),!1}}let Ct;function Rn(){if(Ct===void 0){const a=`dd_site_test_${le()}`,n="test",o=window.location.hostname.split(".");let d=o.pop();for(;o.length&&!wt(a);)d=`${o.pop()}.${d}`,ze(a,n,ke,{domain:d});hi(a,{domain:d}),Ct=d}return Ct}const Ee="_dd_s";function Je(a){return Object.values(a)}function Pn(a){return Object.entries(a)}const At=4*ni,ui=15*he,zn=mn,Oe={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},pi=/^([a-zA-Z]+)=([a-z0-9-]+)$/,It="&";function On(a){return!!a&&(a.indexOf(It)!==-1||pi.test(a))}const Mn="1";function pe(a,n){const o={isExpired:Mn};return n.trackAnonymousUser&&(a!=null&&a.anonymousId?o.anonymousId=a==null?void 0:a.anonymousId:o.anonymousId=le()),o}function Xe(a){return De(a)}function _i(a){return!Xe(a)}function Ze(a){return a.isExpired!==void 0||!Nn(a)}function Nn(a){return(a.created===void 0||Le()-Number(a.created)<At)&&(a.expire===void 0||Le()<Number(a.expire))}function gi(a){a.expire=String(Le()+ui)}function Ft(a){return Pn(a).map(([n,o])=>n==="anonymousId"?`aid=${o}`:`${n}=${o}`).join(It)}function mi(a){const n={};return On(a)&&a.split(It).forEach(o=>{const d=pi.exec(o);if(d!==null){const[,f,c]=d;f==="aid"?n.anonymousId=c:n[f]=c}}),n}const Gn="_dd",Hn="_dd_r",Yn="_dd_l",Vn="rum",$n="logs";function jn(a){if(!ue(Ee)){const o=ue(Gn),d=ue(Hn),f=ue(Yn),c={};o&&(c.id=o),f&&/^[01]$/.test(f)&&(c[$n]=f),d&&/^[012]$/.test(d)&&(c[Vn]=d),_i(c)&&(gi(c),a.persistSession(c))}}function yi(a){const n=Xn(a);return Dn(n)?{type:Oe.COOKIE,cookieOptions:n}:void 0}function Kn(a,n){const o={isLockEnabled:Bn(),persistSession:qn(n),retrieveSession:Jn,expireSession:d=>Wn(n,d,a)};return jn(o),o}function qn(a){return n=>{ze(Ee,Ft(n),ui,a)}}function Wn(a,n,o){const d=pe(n,o);ze(Ee,Ft(d),o.trackAnonymousUser?zn:At,a)}function Jn(){const a=wt(Ee);return mi(a)}function Xn(a){const n={};return n.secure=!!a.useSecureSessionCookie||!!a.usePartitionedCrossSiteSessionCookie,n.crossSite=!!a.usePartitionedCrossSiteSessionCookie,n.partitioned=!!a.usePartitionedCrossSiteSessionCookie,a.trackSessionAcrossSubdomains&&(n.domain=Rn()),n}const Zn="_dd_test_";function vi(){try{const a=le(),n=`${Zn}${a}`;localStorage.setItem(n,a);const o=localStorage.getItem(n);return localStorage.removeItem(n),a===o?{type:Oe.LOCAL_STORAGE}:void 0}catch{return}}function Qn(a){return{isLockEnabled:!1,persistSession:Si,retrieveSession:er,expireSession:n=>tr(n,a)}}function Si(a){localStorage.setItem(Ee,Ft(a))}function er(){const a=localStorage.getItem(Ee);return mi(a)}function tr(a,n){Si(pe(a,n))}const ir=10,nr=100,bi=[];let Qe;function _e(a,n,o=0){var d;const{isLockEnabled:f,persistSession:c,expireSession:u}=n,s=x=>c({...x,lock:g}),p=()=>{const x=n.retrieveSession(),S=x.lock;return x.lock&&delete x.lock,{session:x,lock:S}};if(Qe||(Qe=a),a!==Qe){bi.push(a);return}if(f&&o>=nr){xi(n);return}let g,_=p();if(f){if(_.lock){et(a,n,o);return}if(g=le(),s(_.session),_=p(),_.lock!==g){et(a,n,o);return}}let v=a.process(_.session);if(f&&(_=p(),_.lock!==g)){et(a,n,o);return}if(v&&(Ze(v)?u(v):(gi(v),f?s(v):c(v))),f&&!(v&&Ze(v))){if(_=p(),_.lock!==g){et(a,n,o);return}c(_.session),v=_.session}(d=a.after)===null||d===void 0||d.call(a,v||_.session),xi(n)}function et(a,n,o){Pe(()=>{_e(a,n,o+1)},ir)}function xi(a){Qe=void 0;const n=bi.shift();n&&_e(n,a)}const Ui=ke;function rr(a){switch(a.sessionPersistence){case Oe.COOKIE:return yi(a);case Oe.LOCAL_STORAGE:return vi();case void 0:{let n=yi(a);return!n&&a.allowFallbackToLocalStorage&&(n=vi()),n}default:O.error(`Invalid session persistence \'${String(a.sessionPersistence)}\'`)}}function sr(a,n,o,d){const f=new G,c=new G,u=new G,s=a.type===Oe.COOKIE?Kn(n,a.cookieOptions):Qn(n),{expireSession:p}=s,g=Et(E,Ui);let _;t();const{throttled:v,cancel:x}=ci(()=>{_e({process:U=>{if(Xe(U))return;const w=e(U);return r(w),w},after:U=>{_i(U)&&!l()&&y(U),_=U}},s)},Ui);function S(){_e({process:U=>l()?e(U):void 0},s)}function E(){_e({process:U=>Ze(U)?pe(U,n):void 0,after:e},s)}function e(U){return Ze(U)&&(U=pe(U,n)),l()&&(h(U)?m():(u.notify({previousState:_,newState:U}),_=U)),U}function t(){_e({process:U=>{if(Xe(U))return pe(U,n)},after:U=>{_=U}},s)}function r(U){if(Xe(U))return!1;const{trackingType:w,isTracked:T}=d(U[o]);U[o]=w,delete U.isExpired,T&&!U.id&&(U.id=le(),U.created=String(Le()))}function l(){return _[o]!==void 0}function h(U){return _.id!==U.id||_[o]!==U[o]}function m(){_=pe(_,n),c.notify()}function y(U){_=U,f.notify()}function b(U){_e({process:w=>({...w,...U}),after:e},s)}return{expandOrRenewSession:v,expandSession:S,getSession:()=>_,renewObservable:f,expireObservable:c,sessionStateUpdateObservable:u,restartSession:t,expire:()=>{x(),p(_),e(pe(_,n))},stop:()=>{li(g)},updateSessionState:b}}const Bt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function or(a){const n=new G;return{tryToInit(o){a||(a=o)},update(o){a=o,n.notify()},isGranted(){return a===Bt.GRANTED},observable:n}}function ge(a,n,o){if(typeof a!="object"||a===null)return JSON.stringify(a);const d=we(Object.prototype),f=we(Array.prototype),c=we(Object.getPrototypeOf(a)),u=we(a);try{return JSON.stringify(a,n,o)}catch{return"<error: unable to serialize object>"}finally{d(),f(),c(),u()}}function we(a){const n=a,o=n.toJSON;return o?(delete n.toJSON,()=>{n.toJSON=o}):de}function kt(a){return ar(a,location.href).href}function ar(a,n){const o=dr();if(o)try{return n!==void 0?new o(a,n):new o(a)}catch(c){throw new Error(`Failed to construct URL: ${String(c)} ${ge({url:a,base:n})}`)}if(n===void 0&&!/:/.test(a))throw new Error(`Invalid URL: \'${a}\'`);let d=document;const f=d.createElement("a");if(n!==void 0){d=document.implementation.createHTMLDocument("");const c=d.createElement("base");c.href=n,d.head.appendChild(c),d.body.appendChild(f)}return f.href=a,f}const Ei=URL;let tt;function dr(){if(tt===void 0)try{tt=new Ei("http://test/path").href==="http://test/path"}catch{tt=!1}return tt?Ei:void 0}const lr="datad0g.com",fr="dd0g-gov.com",Te="datadoghq.com",cr="ddog-gov.com",hr="pci.browser-intake-datadoghq.com",ur=["ddsource","ddtags"];function Me(a,n,o){const d=pr(a,n);return{build(f,c){const u=gr(a,n,o,f,c);return d(u)},urlPrefix:d(""),trackType:n}}function pr(a,n){const o=`/api/v2/${n}`,d=a.proxy;if(typeof d=="string"){const c=kt(d);return u=>`${c}?ddforward=${encodeURIComponent(`${o}?${u}`)}`}if(typeof d=="function")return c=>d({path:o,parameters:c});const f=_r(n,a);return c=>`https://${f}${o}?${c}`}function _r(a,n){const{site:o=Te,internalAnalyticsSubdomain:d}=n;if(a==="logs"&&n.usePciIntake&&o===Te)return hr;if(d&&o===Te)return`${d}.${Te}`;if(o===fr)return`http-intake.logs.${o}`;const f=o.split("."),c=f.pop();return`browser-intake-${f.join("-")}.${c}`}function gr({clientToken:a,internalAnalyticsSubdomain:n},o,d,f,{retry:c,encoding:u}){const s=["sdk_version:6.5.0",`api:${f}`].concat(d);c&&s.push(`retry_count:${c.count}`,`retry_after:${c.lastFailureStatus}`);const p=["ddsource=browser",`ddtags=${encodeURIComponent(s.join(","))}`,`dd-api-key=${a}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${le()}`];return u&&p.push(`dd-evp-encoding=${u}`),o==="rum"&&p.push(`batch_time=${se()}`),n&&p.reverse(),p.join("&")}const mr=200;function yr(a){const{env:n,service:o,version:d,datacenter:f}=a,c=[];return n&&c.push(it("env",n)),o&&c.push(it("service",o)),d&&c.push(it("version",d)),f&&c.push(it("datacenter",f)),c}function it(a,n){const o=mr-a.length-1;(n.length>o||vr(n))&&O.warn(`${a} value doesn\'t meet tag requirements and will be sanitized. ${Ve} ${St}/getting_started/tagging/#defining-tags`);const d=n.replace(/,/g,"_");return`${a}:${d}`}function vr(a){return Sr()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(a):!1}function Sr(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function br(a){const n=a.site||Te,o=yr(a),d=xr(a,o);return{replica:Ur(a,o),site:n,...d}}function xr(a,n){return{logsEndpointBuilder:Me(a,"logs",n),rumEndpointBuilder:Me(a,"rum",n),sessionReplayEndpointBuilder:Me(a,"replay",n)}}function Ur(a,n){if(!a.replica)return;const o={...a,site:Te,clientToken:a.replica.clientToken},d={logsEndpointBuilder:Me(o,"logs",n),rumEndpointBuilder:Me(o,"rum",n)};return{applicationId:a.replica.applicationId,...d}}function Er(a){return ur.every(n=>a.includes(n))}function Lt(a,n){return a!=null&&typeof a!="string"?(O.error(`${n} must be defined as a string`),!1):!0}function wr(a){return a&&typeof a=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(a)?(O.error(`Site should be a valid Datadog site. ${Ve} ${St}/getting_started/site/.`),!1):!0}function nt(a,n){return a!==void 0&&!_n(a)?(O.error(`${n} Sample Rate should be a number between 0 and 100`),!1):!0}function Tr(a){var n,o,d,f,c,u;if(!a||!a.clientToken){O.error("Client Token is not configured, we will not send any data.");return}if(!(!wr(a.site)||!nt(a.sessionSampleRate,"Session")||!nt(a.telemetrySampleRate,"Telemetry")||!nt(a.telemetryConfigurationSampleRate,"Telemetry Configuration")||!nt(a.telemetryUsageSampleRate,"Telemetry Usage")||!Lt(a.version,"Version")||!Lt(a.env,"Env")||!Lt(a.service,"Service"))){if(a.trackingConsent!==void 0&&!oi(Bt,a.trackingConsent)){O.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:a.beforeSend&&ii(a.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:rr(a),sessionSampleRate:(n=a.sessionSampleRate)!==null&&n!==void 0?n:100,telemetrySampleRate:(o=a.telemetrySampleRate)!==null&&o!==void 0?o:20,telemetryConfigurationSampleRate:(d=a.telemetryConfigurationSampleRate)!==null&&d!==void 0?d:5,telemetryUsageSampleRate:(f=a.telemetryUsageSampleRate)!==null&&f!==void 0?f:5,service:a.service||void 0,silentMultipleInit:!!a.silentMultipleInit,allowUntrustedEvents:!!a.allowUntrustedEvents,trackingConsent:(c=a.trackingConsent)!==null&&c!==void 0?c:Bt.GRANTED,trackAnonymousUser:(u=a.trackAnonymousUser)!==null&&u!==void 0?u:!0,storeContextsAcrossPages:!!a.storeContextsAcrossPages,batchBytesLimit:16*te,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*ke,batchMessagesLimit:50,messageBytesLimit:256*te,...br(a)}}}function Cr(a){return{session_sample_rate:a.sessionSampleRate,telemetry_sample_rate:a.telemetrySampleRate,telemetry_configuration_sample_rate:a.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:a.telemetryUsageSampleRate,use_before_send:!!a.beforeSend,use_partitioned_cross_site_session_cookie:a.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:a.useSecureSessionCookie,use_proxy:!!a.proxy,silent_multiple_init:a.silentMultipleInit,track_session_across_subdomains:a.trackSessionAcrossSubdomains,track_anonymous_user:a.trackAnonymousUser,session_persistence:a.sessionPersistence,allow_fallback_to_local_storage:!!a.allowFallbackToLocalStorage,store_contexts_across_pages:!!a.storeContextsAcrossPages,allow_untrusted_events:!!a.allowUntrustedEvents,tracking_consent:a.trackingConsent}}var Dt;(function(a){a.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",a.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(Dt||(Dt={}));const wi=new Set;function Ar(a){Array.isArray(a)&&Ir(a.filter(n=>oi(Dt,n)))}function Ir(a){a.forEach(n=>{wi.add(n)})}function Fr(){return wi}const Ne="?";function ie(a){const n=[];let o=Rt(a,"stack");const d=String(a);return o&&o.startsWith(d)&&(o=o.slice(d.length)),o&&o.split(`\n`).forEach(f=>{const c=Lr(f)||Rr(f)||zr(f)||Nr(f);c&&(!c.func&&c.line&&(c.func=Ne),n.push(c))}),{message:Rt(a,"message"),name:Rt(a,"name"),stack:n}}const Ti="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",Ce="(?::(\\\\d+))",Br=new RegExp(`^\\\\s*at (.*?) ?\\\\(${Ti}${Ce}?${Ce}?\\\\)?\\\\s*$`,"i"),kr=new RegExp(`\\\\((\\\\S*)${Ce}${Ce}\\\\)`);function Lr(a){const n=Br.exec(a);if(!n)return;const o=n[2]&&n[2].indexOf("native")===0,d=n[2]&&n[2].indexOf("eval")===0,f=kr.exec(n[2]);return d&&f&&(n[2]=f[1],n[3]=f[2],n[4]=f[3]),{args:o?[n[2]]:[],column:n[4]?+n[4]:void 0,func:n[1]||Ne,line:n[3]?+n[3]:void 0,url:o?void 0:n[2]}}const Dr=new RegExp(`^\\\\s*at ?${Ti}${Ce}?${Ce}??\\\\s*$`,"i");function Rr(a){const n=Dr.exec(a);if(n)return{args:[],column:n[3]?+n[3]:void 0,func:Ne,line:n[2]?+n[2]:void 0,url:n[1]}}const Pr=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function zr(a){const n=Pr.exec(a);if(n)return{args:[],column:n[4]?+n[4]:void 0,func:n[1]||Ne,line:+n[3],url:n[2]}}const Or=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Mr=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function Nr(a){const n=Or.exec(a);if(!n)return;const o=n[3]&&n[3].indexOf(" > eval")>-1,d=Mr.exec(n[3]);return o&&d&&(n[3]=d[1],n[4]=d[2],n[5]=void 0),{args:n[2]?n[2].split(","):[],column:n[5]?+n[5]:void 0,func:n[1]||Ne,line:n[4]?+n[4]:void 0,url:n[3]}}function Rt(a,n){if(typeof a!="object"||!a||!(n in a))return;const o=a[n];return typeof o=="string"?o:void 0}function Gr(a,n,o,d){const f=[{url:n,column:d,line:o}],{name:c,message:u}=Yr(a);return{name:c,message:u,stack:f}}const Hr=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function Yr(a){let n,o;return{}.toString.call(a)==="[object String]"&&([,n,o]=Hr.exec(a)),{name:n,message:o}}function rt(a){const o=new Error(a);o.name="HandlingStack";let d;return Re(()=>{const f=ie(o);f.stack=f.stack.slice(2),d=me(f)}),d}function me(a){let n=Ci(a);return a.stack.forEach(o=>{const d=o.func==="?"?"<anonymous>":o.func,f=o.args&&o.args.length>0?`(${o.args.join(", ")})`:"",c=o.line?`:${o.line}`:"",u=o.line&&o.column?`:${o.column}`:"";n+=`\n at ${d}${f} @ ${o.url}${c}${u}`}),n}function Ci(a){return`${a.name||"Error"}: ${a.message}`}function ye(a,n,o,{computeHandlingStack:d}={}){let f=a[n];if(typeof f!="function")if(n in a&&n.startsWith("on"))f=de;else return{stop:de};let c=!1;const u=function(){if(c)return f.apply(this,arguments);const s=Array.from(arguments);let p;Re(o,null,[{target:this,parameters:s,onPostCall:_=>{p=_},handlingStack:d?rt("instrumented method"):void 0}]);const g=f.apply(this,s);return p&&Re(p,null,[g]),g};return a[n]=u,{stop:()=>{c=!0,a[n]===u&&(a[n]=f)}}}const Vr=220*te,$r="$",jr=3;function ne(a,n=Vr){const o=we(Object.prototype),d=we(Array.prototype),f=[],c=new WeakMap,u=Pt(a,$r,void 0,f,c),s=JSON.stringify(u);let p=s?s.length:0;if(p>n){Ot(n,"discarded",a);return}for(;f.length>0&&p<n;){const g=f.shift();let _=0;if(Array.isArray(g.source))for(let v=0;v<g.source.length;v++){const x=Pt(g.source[v],g.path,v,f,c);if(x!==void 0?p+=JSON.stringify(x).length:p+=4,p+=_,_=1,p>n){Ot(n,"truncated",a);break}g.target[v]=x}else for(const v in g.source)if(Object.prototype.hasOwnProperty.call(g.source,v)){const x=Pt(g.source[v],g.path,v,f,c);if(x!==void 0&&(p+=JSON.stringify(x).length+_+v.length+jr,_=1),p>n){Ot(n,"truncated",a);break}g.target[v]=x}}return o(),d(),u}function Pt(a,n,o,d,f){const c=Wr(a);if(!c||typeof c!="object")return Kr(c);const u=zt(c);if(u!=="[Object]"&&u!=="[Array]"&&u!=="[Error]")return u;const s=a;if(f.has(s))return`[Reference seen at ${f.get(s)}]`;const p=o!==void 0?`${n}.${o}`:n,g=Array.isArray(c)?[]:{};return f.set(s,p),d.push({source:c,target:g,path:p}),g}function Kr(a){return typeof a=="bigint"?`[BigInt] ${a.toString()}`:typeof a=="function"?`[Function] ${a.name||"unknown"}`:typeof a=="symbol"?`[Symbol] ${a.description||a.toString()}`:a}function zt(a){try{if(a instanceof Event)return qr(a);if(a instanceof RegExp)return`[RegExp] ${a.toString()}`;const o=Object.prototype.toString.call(a).match(/\\[object (.*)\\]/);if(o&&o[1])return`[${o[1]}]`}catch{}return"[Unserializable]"}function qr(a){return{type:a.type,isTrusted:a.isTrusted,currentTarget:a.currentTarget?zt(a.currentTarget):null,target:a.target?zt(a.target):null}}function Wr(a){const n=a;if(n&&typeof n.toJSON=="function")try{return n.toJSON()}catch{}return a}function Ot(a,n,o){O.warn(`The data provided has been ${n} as it is over the limit of ${a} characters:`,o)}const Ai="No stack, consider using an instance of Error";function Ii({stackTrace:a,originalError:n,handlingStack:o,componentStack:d,startClocks:f,nonErrorPrefix:c,source:u,handling:s}){const p=fe(n),g=Jr(a,p,c,n),_=Xr(p,a)?me(a):Ai,v=p?ki(n,u):void 0,x=a?a.name:void 0,S=Fi(n),E=Bi(n);return{startClocks:f,source:u,handling:s,handlingStack:o,componentStack:d,originalError:n,type:x,message:g,stack:_,causes:v,fingerprint:S,context:E}}function Jr(a,n,o,d){return a!=null&&a.message&&(a!=null&&a.name)?a.message:n?"Empty message":`${o} ${ge(ne(d))}`}function Xr(a,n){return n===void 0?!1:a?!0:n.stack.length>0&&(n.stack.length>1||n.stack[0].url!==void 0)}function Fi(a){return fe(a)&&"dd_fingerprint"in a?String(a.dd_fingerprint):void 0}function Bi(a){if(a!==null&&typeof a=="object"&&"dd_context"in a)return a.dd_context}function Zr(a){var n;return(n=/@ (.+)/.exec(a))===null||n===void 0?void 0:n[1]}function fe(a){return a instanceof Error||Object.prototype.toString.call(a)==="[object Error]"}function ki(a,n){let o=a;const d=[];for(;fe(o==null?void 0:o.cause)&&d.length<10;){const f=ie(o.cause);d.push({message:o.cause.message,source:n,type:f==null?void 0:f.name,stack:me(f)}),o=o.cause}return d.length?d:void 0}const J={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Qr(a){const n=(f,c)=>{const u=Ii({stackTrace:f,originalError:c,startClocks:oe(),nonErrorPrefix:"Uncaught",source:J.SOURCE,handling:"unhandled"});a.notify(u)},{stop:o}=es(n),{stop:d}=ts(n);return{stop:()=>{o(),d()}}}function es(a){return ye(window,"onerror",({parameters:[n,o,d,f,c]})=>{let u;fe(c)?u=ie(c):u=Gr(n,o,d,f),a(u,c??n)})}function ts(a){return ye(window,"onunhandledrejection",({parameters:[n]})=>{const o=n.reason||"Empty reason",d=ie(o);a(d,o)})}function is(a){const n={version:"6.5.0",onReady(o){o()},...a};return Object.defineProperty(n,"_setDebug",{get(){return wn},enumerable:!1}),n}function ns(a,n,o){const d=a[n];d&&!d.q&&d.version&&O.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),a[n]=o,d&&d.q&&d.q.forEach(f=>ii(f,"onReady callback threw an error:")())}function Li(a,n){n.silentMultipleInit||O.error(`${a} is already initialized.`)}function ve(a,n,o,d,f){return Mt(a,n,[o],d,f)}function Mt(a,n,o,d,{once:f,capture:c,passive:u}={}){const s=D(x=>{!x.isTrusted&&!x.__ddIsTrusted&&!a.allowUntrustedEvents||(f&&v(),d(x))}),p=u?{capture:c,passive:u}:c,g=window.EventTarget&&n instanceof EventTarget?window.EventTarget.prototype:n,_=Ue(g,"addEventListener");o.forEach(x=>_.call(n,x,s,p));function v(){const x=Ue(g,"removeEventListener");o.forEach(S=>x.call(n,S,s,p))}return{stop:v}}const st={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function rs(a,n){const o=[];n.includes(st.cspViolation)&&o.push(os(a));const d=n.filter(f=>f!==st.cspViolation);return d.length&&o.push(ss(d)),fi(...o)}function ss(a){return new G(n=>{if(!window.ReportingObserver)return;const o=D((f,c)=>f.forEach(u=>n.notify(as(u)))),d=new window.ReportingObserver(o,{types:a,buffered:!0});return d.observe(),()=>{d.disconnect()}})}function os(a){return new G(n=>{const{stop:o}=ve(a,document,"securitypolicyviolation",d=>{n.notify(ds(d))});return o})}function as(a){const{type:n,body:o}=a;return Di({type:o.id,message:`${n}: ${o.message}`,originalError:a,stack:Ri(o.id,o.message,o.sourceFile,o.lineNumber,o.columnNumber)})}function ds(a){const n=`\'${a.blockedURI}\' blocked by \'${a.effectiveDirective}\' directive`;return Di({type:a.effectiveDirective,message:`${st.cspViolation}: ${n}`,originalError:a,csp:{disposition:a.disposition},stack:Ri(a.effectiveDirective,a.originalPolicy?`${n} of the policy "${Fn(a.originalPolicy,100,"...")}"`:"no policy",a.sourceFile,a.lineNumber,a.columnNumber)})}function Di(a){return{startClocks:oe(),source:J.REPORT,handling:"unhandled",...a}}function Ri(a,n,o,d,f){return o?me({name:a,message:n,stack:[{func:"?",url:o,line:d??void 0,column:f??void 0}]}):void 0}function Pi(a,n){const o=window.__ddBrowserSdkExtensionCallback;o&&o({type:a,payload:n})}function zi(a){return a===null?"null":Array.isArray(a)?"array":typeof a}function ot(a,n,o=ls()){if(n===void 0)return a;if(typeof n!="object"||n===null)return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp){const f=n.flags||[n.global?"g":"",n.ignoreCase?"i":"",n.multiline?"m":"",n.sticky?"y":"",n.unicode?"u":""].join("");return new RegExp(n.source,f)}if(o.hasAlreadyBeenSeen(n))return;if(Array.isArray(n)){const f=Array.isArray(a)?a:[];for(let c=0;c<n.length;++c)f[c]=ot(f[c],n[c],o);return f}const d=zi(a)==="object"?a:{};for(const f in n)Object.prototype.hasOwnProperty.call(n,f)&&(d[f]=ot(d[f],n[f],o));return d}function Oi(a){return ot(void 0,a)}function Ae(...a){let n;for(const o of a)o!=null&&(n=ot(n,o));return n}function ls(){if(typeof WeakSet<"u"){const n=new WeakSet;return{hasAlreadyBeenSeen(o){const d=n.has(o);return d||n.add(o),d}}}const a=[];return{hasAlreadyBeenSeen(n){const o=a.indexOf(n)>=0;return o||a.push(n),o}}}function fs(){var a;const n=window.navigator;return{status:n.onLine?"connected":"not_connected",interfaces:n.connection&&n.connection.type?[n.connection.type]:void 0,effective_type:(a=n.connection)===null||a===void 0?void 0:a.effectiveType}}function cs(a){const n=new Set;return a.forEach(o=>n.add(o)),Array.from(n)}function Mi(a,n){const o=a.indexOf(n);o>=0&&a.splice(o,1)}const hs=500;function Ni(){const a=[];return{add:f=>{a.push(f)>hs&&a.splice(0,1)},remove:f=>{Mi(a,f)},drain:f=>{a.forEach(c=>c(f)),a.length=0}}}const Se={log:"log",configuration:"configuration",usage:"usage"},us=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],ps=[cr];let Gi=Ni(),Ie=a=>{Gi.add(()=>Ie(a))};function _s(a,n){let o;const d=new G,f=new Set,c=!ps.includes(n.site)&&$e(n.telemetrySampleRate),u={[Se.log]:c,[Se.configuration]:c&&$e(n.telemetryConfigurationSampleRate),[Se.usage]:c&&$e(n.telemetryUsageSampleRate)},s=gs();Ie=g=>{const _=ge(g);if(u[g.type]&&f.size<n.maxTelemetryEventsPerPage&&!f.has(_)){const v=p(a,g,s);d.notify(v),Pi("telemetry",v),f.add(_)}},En(Yi);function p(g,_,v){return Ae({type:"telemetry",date:se(),service:g,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:Ae(_,{runtime_env:v,connectivity:fs(),sdk_setup:"npm"}),experimental_features:Array.from(Fr())},o!==void 0?o():{})}return{setContextProvider:g=>{o=g},observable:d,enabled:c}}function gs(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function ms(){Gi.drain()}function ys(a){return a.site===lr}function Hi(a,n){Ut(z.debug,a,n),Ie({type:Se.log,message:a,status:"debug",...n})}function Yi(a,n){Ie({type:Se.log,status:"error",...bs(a),...n})}function vs(a){Ie({type:Se.configuration,configuration:a})}function Ss(a){Ie({type:Se.usage,usage:a})}function bs(a){if(fe(a)){const n=ie(a);return{error:{kind:n.name,stack:me(xs(n))},message:n.message}}return{error:{stack:Ai},message:`Uncaught ${ge(a)}`}}function xs(a){return a.stack=a.stack.filter(n=>!n.url||us.some(o=>n.url.startsWith(o))),a}const Ge=1/0,Us=he;let He=null;const at=new Set;function Es(){at.forEach(a=>a())}function ws({expireDelay:a,maxEntries:n}){let o=[];const d=[];He||(He=Et(()=>Es(),Us));const f=()=>{const S=je()-a;for(;o.length>0&&o[o.length-1].endTime<S;){const E=o.pop();E&&d.push(E.startTime)}};at.add(f);function c(S,E){const e={value:S,startTime:E,endTime:Ge,remove:()=>{Mi(o,e)},close:t=>{e.endTime=t}};return n&&o.length>=n&&o.pop(),o.unshift(e),e}function u(S=Ge,E={returnInactive:!1}){for(const e of o)if(e.startTime<=S){if(E.returnInactive||S<=e.endTime)return e.value;break}}function s(S){const E=o[0];E&&E.endTime===Ge&&E.close(S)}function p(S=Ge,E=0){const e=Sn(S,E);return o.filter(t=>t.startTime<=e&&S<=t.endTime).map(t=>t.value)}function g(){return o.map(({startTime:S,endTime:E,value:e})=>({startTime:S,endTime:E===Ge?"Infinity":E,value:e}))}function _(){return d}function v(){o=[]}function x(){at.delete(f),at.size===0&&He&&(li(He),He=null)}return{add:c,find:u,closeActive:s,findAll:p,reset:v,stop:x,getAllEntries:g,getDeletedEntries:_}}const Ts=he,Cs=At;function As(a,n,o,d){const f=new G,c=new G,u=sr(a.sessionStoreStrategyType,a,n,o),s=ws({expireDelay:Cs});u.renewObservable.subscribe(()=>{s.add(p(),je()),f.notify()}),u.expireObservable.subscribe(()=>{c.notify(),s.closeActive(je())}),u.expandOrRenewSession(),s.add(p(),yn().relative),d.observable.subscribe(()=>{d.isGranted()?u.expandOrRenewSession():u.expire()}),Is(a,()=>{d.isGranted()&&u.expandOrRenewSession()}),Fs(a,()=>u.expandSession()),Bs(a,()=>u.restartSession());function p(){return{id:u.getSession().id,trackingType:u.getSession()[n],isReplayForced:!!u.getSession().forcedReplay,anonymousId:u.getSession().anonymousId}}return{findSession:(g,_)=>s.find(g,_),renewObservable:f,expireObservable:c,sessionStateUpdateObservable:u.sessionStateUpdateObservable,expire:u.expire,updateSessionState:u.updateSessionState}}function Is(a,n){Mt(a,window,["click","touchstart","keydown","scroll"],n,{capture:!0,passive:!0})}function Fs(a,n){const o=()=>{document.visibilityState==="visible"&&n()};ve(a,document,"visibilitychange",o),Et(o,Ts)}function Bs(a,n){ve(a,window,"resume",n,{capture:!0})}function Vi(a){return a>=500}function ks(a){try{return a.clone()}catch{return}}const Ls=80*te,Ds=32,$i=3*si,Rs=he,ji=ke;function Ki(a,n,o,d,f){n.transportStatus===0&&n.queuedPayloads.size()===0&&n.bandwidthMonitor.canHandle(a)?Wi(a,n,o,{onSuccess:()=>Ji(0,n,o,d,f),onFailure:()=>{n.queuedPayloads.enqueue(a),qi(n,o,d,f)}}):n.queuedPayloads.enqueue(a)}function qi(a,n,o,d){a.transportStatus===2&&Pe(()=>{const f=a.queuedPayloads.first();Wi(f,a,n,{onSuccess:()=>{a.queuedPayloads.dequeue(),a.currentBackoffTime=ji,Ji(1,a,n,o,d)},onFailure:()=>{a.currentBackoffTime=Math.min(Rs,a.currentBackoffTime*2),qi(a,n,o,d)}})},a.currentBackoffTime)}function Wi(a,n,o,{onSuccess:d,onFailure:f}){n.bandwidthMonitor.add(a),o(a,c=>{n.bandwidthMonitor.remove(a),Ps(c)?(n.transportStatus=n.bandwidthMonitor.ongoingRequestCount>0?1:2,a.retry={count:a.retry?a.retry.count+1:1,lastFailureStatus:c.status},f()):(n.transportStatus=0,d())})}function Ji(a,n,o,d,f){a===0&&n.queuedPayloads.isFull()&&!n.queueFullReported&&(f({message:`Reached max ${d} events size queued for upload: ${$i/si}MiB`,source:J.AGENT,startClocks:oe()}),n.queueFullReported=!0);const c=n.queuedPayloads;for(n.queuedPayloads=Xi();c.size()>0;)Ki(c.dequeue(),n,o,d,f)}function Ps(a){return a.type!=="opaque"&&(a.status===0&&!navigator.onLine||a.status===408||a.status===429||Vi(a.status))}function zs(){return{transportStatus:0,currentBackoffTime:ji,bandwidthMonitor:Os(),queuedPayloads:Xi(),queueFullReported:!1}}function Xi(){const a=[];return{bytesCount:0,enqueue(n){this.isFull()||(a.push(n),this.bytesCount+=n.bytesCount)},first(){return a[0]},dequeue(){const n=a.shift();return n&&(this.bytesCount-=n.bytesCount),n},size(){return a.length},isFull(){return this.bytesCount>=$i}}}function Os(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(a){return this.ongoingRequestCount===0||this.ongoingByteCount+a.bytesCount<=Ls&&this.ongoingRequestCount<Ds},add(a){this.ongoingRequestCount+=1,this.ongoingByteCount+=a.bytesCount},remove(a){this.ongoingRequestCount-=1,this.ongoingByteCount-=a.bytesCount}}}function Ms(a,n,o){const d=zs(),f=(c,u)=>Hs(a,n,c,u);return{send:c=>{Ki(c,d,f,a.trackType,o)},sendOnExit:c=>{Ns(a,n,c)}}}function Ns(a,n,o){if(!!navigator.sendBeacon&&o.bytesCount<n)try{const c=a.build("beacon",o);if(navigator.sendBeacon(c,o.data))return}catch(c){Gs(c)}const f=a.build("xhr",o);Nt(f,o.data)}let Zi=!1;function Gs(a){Zi||(Zi=!0,Yi(a))}function Hs(a,n,o,d){if(Ys()&&o.bytesCount<n){const c=a.build("fetch",o);fetch(c,{method:"POST",body:o.data,keepalive:!0,mode:"cors"}).then(D(u=>d==null?void 0:d({status:u.status,type:u.type})),D(()=>{const u=a.build("xhr",o);Nt(u,o.data,d)}))}else{const c=a.build("xhr",o);Nt(c,o.data,d)}}function Ys(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function Nt(a,n,o){const d=new XMLHttpRequest;d.open("POST",a,!0),n instanceof Blob&&d.setRequestHeader("Content-Type",n.type),ve({allowUntrustedEvents:!0},d,"loadend",()=>{o==null||o({status:d.status})},{once:!0}),d.send(n)}function Gt(){const a=Vs();if(a)return{getCapabilities(){var n;return JSON.parse(((n=a.getCapabilities)===null||n===void 0?void 0:n.call(a))||"[]")},getPrivacyLevel(){var n;return(n=a.getPrivacyLevel)===null||n===void 0?void 0:n.call(a)},getAllowedWebViewHosts(){return JSON.parse(a.getAllowedWebViewHosts())},send(n,o,d){const f=d?{id:d}:void 0;a.send(JSON.stringify({eventType:n,event:o,view:f}))}}}function dt(a){var n;a===void 0&&(a=(n=ae().location)===null||n===void 0?void 0:n.hostname);const o=Gt();return!!o&&o.getAllowedWebViewHosts().some(d=>a===d||a.endsWith(`.${d}`))}function Vs(){return ae().DatadogEventBridge}const lt={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function $s(a){return new G(n=>{const{stop:o}=Mt(a,window,["visibilitychange","freeze"],f=>{f.type==="visibilitychange"&&document.visibilityState==="hidden"?n.notify({reason:lt.HIDDEN}):f.type==="freeze"&&n.notify({reason:lt.FROZEN})},{capture:!0}),d=ve(a,window,"beforeunload",()=>{n.notify({reason:lt.UNLOADING})}).stop;return()=>{o(),d()}})}function js(a){return Je(lt).includes(a)}function Ks({encoder:a,request:n,flushController:o,messageBytesLimit:d}){let f={};const c=o.flushObservable.subscribe(v=>_(v));function u(v,x,S){o.notifyBeforeAddMessage(x),S!==void 0?(f[S]=v,o.notifyAfterAddMessage()):a.write(a.isEmpty?v:`\n${v}`,E=>{o.notifyAfterAddMessage(E-x)})}function s(v){return v!==void 0&&f[v]!==void 0}function p(v){const x=f[v];delete f[v];const S=a.estimateEncodedBytesCount(x);o.notifyAfterRemoveMessage(S)}function g(v,x){const S=ge(v),E=a.estimateEncodedBytesCount(S);if(E>=d){O.warn(`Discarded a message whose size was bigger than the maximum allowed size ${d}KB. ${Ve} ${ti}/#technical-limitations`);return}s(x)&&p(x),u(S,E,x)}function _(v){const x=Je(f).join(`\n`);f={};const S=js(v.reason),E=S?n.sendOnExit:n.send;if(S&&a.isAsync){const e=a.finishSync();e.outputBytesCount&&E(Qi(e));const t=[e.pendingData,x].filter(Boolean).join(`\n`);t&&E({data:t,bytesCount:xt(t)})}else x&&a.write(a.isEmpty?x:`\n${x}`),a.finish(e=>{E(Qi(e))})}return{flushController:o,add:g,upsert:g,stop:c.unsubscribe}}function Qi(a){let n;return typeof a.output=="string"?n=a.output:n=new Blob([a.output],{type:"text/plain"}),{data:n,bytesCount:a.outputBytesCount,encoding:a.encoding}}function qs({messagesLimit:a,bytesLimit:n,durationLimit:o,pageExitObservable:d,sessionExpireObservable:f}){const c=d.subscribe(E=>_(E.reason)),u=f.subscribe(()=>_("session_expire")),s=new G(()=>()=>{c.unsubscribe(),u.unsubscribe()});let p=0,g=0;function _(E){if(g===0)return;const e=g,t=p;g=0,p=0,S(),s.notify({reason:E,messagesCount:e,bytesCount:t})}let v;function x(){v===void 0&&(v=Pe(()=>{_("duration_limit")},o))}function S(){di(v),v=void 0}return{flushObservable:s,get messagesCount(){return g},notifyBeforeAddMessage(E){p+E>=n&&_("bytes_limit"),g+=1,p+=E,x()},notifyAfterAddMessage(E=0){p+=E,g>=a?_("messages_limit"):p>=n&&_("bytes_limit")},notifyAfterRemoveMessage(E){p-=E,g-=1,g===0&&S()}}}function en(a,n,o,d,f,c,u=Ks){const s=g(a,n),p=o&&g(a,o);function g(_,{endpoint:v,encoder:x}){return u({encoder:x,request:Ms(v,_.batchBytesLimit,d),flushController:qs({messagesLimit:_.batchMessagesLimit,bytesLimit:_.batchBytesLimit,durationLimit:_.flushTimeout,pageExitObservable:f,sessionExpireObservable:c}),messageBytesLimit:_.messageBytesLimit})}return{flushObservable:s.flushController.flushObservable,add(_,v=!0){s.add(_),p&&v&&p.add(o.transformMessage?o.transformMessage(_):_)},upsert:(_,v)=>{s.upsert(_,v),p&&p.upsert(o.transformMessage?o.transformMessage(_):_,v)},stop:()=>{s.stop(),p&&p.stop()}}}function ft(){let a="",n=0;return{isAsync:!1,get isEmpty(){return!a},write(o,d){const f=xt(o);n+=f,a+=o,d&&d(f)},finish(o){o(this.finishSync())},finishSync(){const o={output:a,outputBytesCount:n,rawBytesCount:n,pendingData:""};return a="",n=0,o},estimateEncodedBytesCount(o){return o.length}}}class Ws{constructor(){this.callbacks={}}notify(n,o){const d=this.callbacks[n];d&&d.forEach(f=>f(o))}subscribe(n,o){return this.callbacks[n]||(this.callbacks[n]=[]),this.callbacks[n].push(o),{unsubscribe:()=>{this.callbacks[n]=this.callbacks[n].filter(d=>o!==d)}}}}function Js(a,n,o){let d=0,f=!1;return{isLimitReached(){if(d===0&&Pe(()=>{d=0},he),d+=1,d<=n||f)return f=!1,!1;if(d===n+1){f=!0;try{o({message:`Reached max number of ${a}s by minute: ${n}`,source:J.AGENT,startClocks:oe()})}finally{f=!1}}return!0}}}let Ht;const Yt=new WeakMap;function Xs(a){return Ht||(Ht=Zs(a)),Ht}function Zs(a){return new G(n=>{const{stop:o}=ye(XMLHttpRequest.prototype,"open",Qs),{stop:d}=ye(XMLHttpRequest.prototype,"send",c=>{eo(c,a,n)},{computeHandlingStack:!0}),{stop:f}=ye(XMLHttpRequest.prototype,"abort",to);return()=>{o(),d(),f()}})}function Qs({target:a,parameters:[n,o]}){Yt.set(a,{state:"open",method:String(n).toUpperCase(),url:kt(String(o))})}function eo({target:a,handlingStack:n},o,d){const f=Yt.get(a);if(!f)return;const c=f;c.state="start",c.startClocks=oe(),c.isAborted=!1,c.xhr=a,c.handlingStack=n;let u=!1;const{stop:s}=ye(a,"onreadystatechange",()=>{a.readyState===XMLHttpRequest.DONE&&p()}),p=()=>{if(g(),s(),u)return;u=!0;const _=f;_.state="complete",_.duration=vn(c.startClocks.timeStamp,se()),_.status=a.status,d.notify(Un(_))},{stop:g}=ve(o,a,"loadend",p);d.notify(c)}function to({target:a}){const n=Yt.get(a);n&&(n.isAborted=!0)}let Vt;function tn(){return Vt||(Vt=io()),Vt}function io(){return new G(a=>{if(!window.fetch)return;const{stop:n}=ye(window,"fetch",o=>no(o,a),{computeHandlingStack:!0});return n})}function no({parameters:a,onPostCall:n,handlingStack:o},d){const[f,c]=a;let u=c&&c.method;u===void 0&&f instanceof Request&&(u=f.method);const s=u!==void 0?String(u).toUpperCase():"GET",p=f instanceof Request?f.url:kt(String(f)),g=oe(),_={state:"start",init:c,input:f,method:s,startClocks:g,url:p,handlingStack:o};d.notify(_),a[0]=_.input,a[1]=_.init,n(v=>ro(d,v,_))}function ro(a,n,o){const d=o;function f(c){d.state="resolve",Object.assign(d,c),a.notify(d)}n.then(D(c=>{f({response:c,responseType:c.type,status:c.status,isAborted:!1})}),D(c=>{var u,s;f({status:0,isAborted:((s=(u=d.init)===null||u===void 0?void 0:u.signal)===null||s===void 0?void 0:s.aborted)||c instanceof DOMException&&c.code===DOMException.ABORT_ERR,error:c})}))}let $t={};function so(a){const n=a.map(o=>($t[o]||($t[o]=oo(o)),$t[o]));return fi(...n)}function oo(a){return new G(n=>{const o=ee[a];return ee[a]=(...d)=>{o.apply(console,d);const f=rt("console error");Re(()=>{n.notify(ao(d,a,f))})},()=>{ee[a]=o}})}function ao(a,n,o){const d=a.map(c=>lo(c)).join(" ");let f;if(n===z.error){const c=a.find(fe);f={stack:c?me(ie(c)):void 0,fingerprint:Fi(c),causes:c?ki(c,"console"):void 0,startClocks:oe(),message:d,source:J.CONSOLE,handling:"handled",handlingStack:o,context:Bi(c)}}return{api:n,message:d,error:f,handlingStack:o}}function lo(a){return typeof a=="string"?ne(a):fe(a)?Ci(ie(a)):ge(ne(a),void 0,2)}function fo(a){const n=zi(a)==="object";return n||O.error("Unsupported context:",a),n}function jt(a,n,o){const d={...a};for(const[f,{required:c,type:u}]of Object.entries(n))u==="string"&&f in d&&(d[f]=String(d[f])),c&&!(f in a)&&O.warn(`The property ${f} of ${o} is required; context will not be sent to the intake.`);return d}function ct(a="",{customerDataTracker:n,propertiesConfig:o={}}={}){let d={};const f=new G,c={getContext:()=>Oi(d),setContext:u=>{fo(u)?(d=ne(jt(u,o,a)),n==null||n.updateCustomerData(d)):c.clearContext(),f.notify()},setContextProperty:(u,s)=>{d=ne(jt({...d,[u]:s},o,a)),n==null||n.updateCustomerData(d),f.notify()},removeContextProperty:u=>{delete d[u],n==null||n.updateCustomerData(d),jt(d,o,a),f.notify()},clearContext:()=>{d={},n==null||n.resetCustomerData(),f.notify()},changeObservable:f};return c}const co="_dd_c",ho=[];function Kt(a,n,o,d){const f=uo(o,d);ho.push(ve(a,window,"storage",({key:g})=>{f===g&&u()})),n.changeObservable.subscribe(s);const c=Ae(p(),n.getContext());De(c)||n.setContext(c);function u(){n.setContext(p())}function s(){localStorage.setItem(f,JSON.stringify(n.getContext()))}function p(){const g=localStorage.getItem(f);return g?JSON.parse(g):{}}}function uo(a,n){return`${co}_${a}_${n}`}const po=3*te,_o=16*te,go=200;function mo(a=2){const n=new Map;let o=!1;function d(f=0){if(o||a===0)return;const c=a===2?po:_o;let u=f;n.forEach(s=>{u+=s.getBytesCount()}),u>c&&(yo(c),o=!0)}return{createDetachedTracker:()=>{const f=nn(()=>d(f.getBytesCount()));return f},getOrCreateTracker:f=>(n.has(f)||n.set(f,nn(d)),n.get(f)),setCompressionStatus:f=>{a===0&&(a=f,d())},getCompressionStatus:()=>a,stop:()=>{n.forEach(f=>f.stop()),n.clear()}}}function nn(a){let n=0;const{throttled:o,cancel:d}=ci(c=>{n=xt(ge(c)),a()},go),f=()=>{d(),n=0};return{updateCustomerData:c=>{De(c)?f():o(c)},resetCustomerData:f,getBytesCount:()=>n,stop:()=>{d()}}}function yo(a){O.warn(`Customer data exceeds the recommended ${a/te}KiB threshold. ${Ve} ${ti}/#customer-data-exceeds-the-recommended-threshold-warning`)}function vo(a,n,o){const d=a.getReader(),f=[];let c=0;u();function u(){d.read().then(D(p=>{if(p.done){s();return}f.push(p.value),c+=p.value.length,c>o.bytesLimit?s():u()}),D(p=>n(p)))}function s(){d.cancel().catch(de);let p,g;{let _;if(f.length===1)_=f[0];else{_=new Uint8Array(c);let v=0;f.forEach(x=>{_.set(x,v),v+=x.length})}p=_.slice(0,o.bytesLimit),g=_.length>o.bytesLimit}n(void 0,p,g)}}const So="datadog-synthetics-public-id",bo="datadog-synthetics-result-id",xo="datadog-synthetics-injects-rum";function rn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||ue(xo))}function Uo(){const a=window._DATADOG_SYNTHETICS_PUBLIC_ID||ue(So);return typeof a=="string"?a:void 0}function Eo(){const a=window._DATADOG_SYNTHETICS_RESULT_ID||ue(bo);return typeof a=="string"?a:void 0}function ht(a,n,o){const d=o.getHandler(),f=Array.isArray(d)?d:[d];return sn[a]>=sn[o.getLevel()]&&f.includes(n)}const B={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},sn={[B.ok]:0,[B.debug]:1,[B.info]:2,[B.notice]:4,[B.warn]:5,[B.error]:6,[B.critical]:7,[B.alert]:8,[B.emerg]:9};function ut(a,{includeMessage:n=!1}={}){return{stack:a.stack,kind:a.type,message:n?a.message:void 0,causes:a.causes,fingerprint:a.fingerprint,handling:a.handling}}var wo=function(a,n,o,d){var f=arguments.length,c=f<3?n:d===null?d=Object.getOwnPropertyDescriptor(n,o):d,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(a,n,o,d);else for(var s=a.length-1;s>=0;s--)(u=a[s])&&(c=(f<3?u(c):f>3?u(n,o,c):u(n,o))||c);return f>3&&c&&Object.defineProperty(n,o,c),c};const Ye={console:"console",http:"http",silent:"silent"},To=Object.keys(B);let Z=class{constructor(n,o,d,f=Ye.http,c=B.debug,u={}){this.handleLogStrategy=n,this.handlerType=f,this.level=c,this.contextManager=ct("logger",{customerDataTracker:o}),this.contextManager.setContext(u),d&&this.contextManager.setContextProperty("logger",{name:d})}logImplementation(n,o,d=B.info,f,c){const u=ne(o);let s;if(f!=null){const p=Ii({stackTrace:fe(f)?ie(f):void 0,originalError:f,nonErrorPrefix:"Provided",source:J.LOGGER,handling:"handled",startClocks:oe()});s=Ae({error:ut(p,{includeMessage:!0})},u)}else s=u;this.handleLogStrategy({message:ne(n),context:s,status:d},this,c)}log(n,o,d=B.info,f){let c;ht(d,Ye.http,this)&&(c=rt("log")),this.logImplementation(n,o,d,f,c)}setContext(n){this.contextManager.setContext(n)}getContext(){return this.contextManager.getContext()}setContextProperty(n,o){this.contextManager.setContextProperty(n,o)}removeContextProperty(n){this.contextManager.removeContextProperty(n)}clearContext(){this.contextManager.clearContext()}setHandler(n){this.handlerType=n}getHandler(){return this.handlerType}setLevel(n){this.level=n}getLevel(){return this.level}};wo([Tn],Z.prototype,"logImplementation",null),Z.prototype.ok=re(B.ok),Z.prototype.debug=re(B.debug),Z.prototype.info=re(B.info),Z.prototype.notice=re(B.notice),Z.prototype.warn=re(B.warn),Z.prototype.error=re(B.error),Z.prototype.critical=re(B.critical),Z.prototype.alert=re(B.alert),Z.prototype.emerg=re(B.emerg);function re(a){return function(n,o,d){let f;ht(a,Ye.http,this)&&(f=rt("log")),this.logImplementation(n,o,a,d,f)}}function Co(a,n,o){return{view:{referrer:document.referrer,url:window.location.href},context:a.getContext(),user:n.getContext(),account:o.getContext()}}const Ao=32*te;function Io(a){a.usePciIntake===!0&&a.site&&a.site!=="datadoghq.com"&&O.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const n=Tr(a),o=on(a.forwardConsoleLogs,Je(z),"Forward Console Logs"),d=on(a.forwardReports,Je(st),"Forward Reports");if(!(!n||!o||!d))return a.forwardErrorsToLogs&&!o.includes(z.error)&&o.push(z.error),{forwardErrorsToLogs:a.forwardErrorsToLogs!==!1,forwardConsoleLogs:o,forwardReports:d,requestErrorResponseLengthLimit:Ao,...n}}function on(a,n,o){if(a===void 0)return[];if(!(a==="all"||Array.isArray(a)&&a.every(d=>n.includes(d)))){O.error(`${o} should be "all" or an array with allowed values "${n.join(\'", "\')}"`);return}return a==="all"?n:cs(a)}function Fo(a){const n=Cr(a);return{forward_errors_to_logs:a.forwardErrorsToLogs,forward_console_logs:a.forwardConsoleLogs,forward_reports:a.forwardReports,use_pci_intake:a.usePciIntake,...n}}function Bo(a,n,o){const d=Ni();let f,c;const u=n.observable.subscribe(s);function s(){if(!c||!f||!n.isGranted())return;u.unsubscribe();const p=o(f,c);d.drain(p)}return{init(p){if(!p){O.error("Missing configuration");return}if(Ar(p.enableExperimentalFeatures),dt()&&(p=ko(p)),f=p,c){Li("DD_LOGS",p);return}const g=Io(p);g&&(c=g,tn().subscribe(de),n.tryToInit(g.trackingConsent),s())},get initConfiguration(){return f},getInternalContext:de,handleLog(p,g,_,v=a(),x=se()){d.add(S=>S.handleLog(p,g,_,v,x))}}}function ko(a){return{...a,clientToken:"empty"}}const qt="logs";function Lo(a){const n=mo(),o=ct("global context",{customerDataTracker:n.getOrCreateTracker(2)}),d=ct("user",{customerDataTracker:n.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),f=ct("account",{customerDataTracker:n.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),c=or();function u(){return Co(o,d,f)}let s=Bo(u,c,(_,v)=>{_.storeContextsAcrossPages&&(Kt(v,o,qt,2),Kt(v,d,qt,1),Kt(v,f,qt,4));const x=a(_,v,u,c);return s=Do(_,x),x});const p={},g=new Z((..._)=>s.handleLog(..._),n.createDetachedTracker());return is({logger:g,init:D(_=>s.init(_)),setTrackingConsent:D(_=>{c.update(_),Ss({feature:"set-tracking-consent",tracking_consent:_})}),getGlobalContext:D(()=>o.getContext()),setGlobalContext:D(_=>o.setContext(_)),setGlobalContextProperty:D((_,v)=>o.setContextProperty(_,v)),removeGlobalContextProperty:D(_=>o.removeContextProperty(_)),clearGlobalContext:D(()=>o.clearContext()),createLogger:D((_,v={})=>(p[_]=new Z((...x)=>s.handleLog(...x),n.createDetachedTracker(),ne(_),v.handler,v.level,ne(v.context)),p[_])),getLogger:D(_=>p[_]),getInitConfiguration:D(()=>Oi(s.initConfiguration)),getInternalContext:D(_=>s.getInternalContext(_)),setUser:D(d.setContext),getUser:D(d.getContext),setUserProperty:D(d.setContextProperty),removeUserProperty:D(d.removeContextProperty),clearUser:D(d.clearContext),setAccount:D(f.setContext),getAccount:D(f.getContext),setAccountProperty:D(f.setContextProperty),removeAccountProperty:D(f.removeContextProperty),clearAccount:D(f.clearContext)})}function Do(a,n){return{init:o=>{Li("DD_LOGS",o)},initConfiguration:a,...n}}const Ro="logs";function Po(a,n){const o=As(a,Ro,d=>Oo(a,d),n);return{findTrackedSession:(d,f={returnInactive:!1})=>{const c=o.findSession(d,f);return c&&c.trackingType==="1"?{id:c.id,anonymousId:c.anonymousId}:void 0},expireObservable:o.expireObservable}}function zo(a){const o=an(a)==="1"?{}:void 0;return{findTrackedSession:()=>o,expireObservable:new G}}function an(a){return $e(a.sessionSampleRate)?"1":"0"}function Oo(a,n){const o=Mo(n)?n:an(a);return{trackingType:o,isTracked:o==="1"}}function Mo(a){return a==="0"||a==="1"}let dn=!1;function pt(a){const n=window;if(rn()){const d=o(n.DD_RUM_SYNTHETICS);return!d&&!dn&&(dn=!0,Hi("Logs sent before RUM is injected by the synthetics worker",{testId:Uo(),resultId:Eo()})),d}return o(n.DD_RUM);function o(d){if(d&&d.getInternalContext)return d.getInternalContext(a)}}function No(a,n,o,d,f){const c=To.concat(["custom"]),u={};c.forEach(s=>{u[s]=Js(s,n.eventRateLimiterThreshold,f)}),o.subscribe(0,({rawLogsEvent:s,messageContext:p=void 0,savedCommonContext:g=void 0,domainContext:_})=>{var v,x;const S=bn(s.date),E=a.findTrackedSession(S);if(!a.findTrackedSession(S,{returnInactive:!0}))return;const t=g||d();let r;!De(t.account)&&t.account.id&&(r=t.account),E&&E.anonymousId&&!t.user.anonymous_id&&(t.user.anonymous_id=E.anonymousId);const l=Ae({service:n.service,session_id:E?E.id:void 0,session:E?{id:E.id}:void 0,usr:De(t.user)?void 0:t.user,account:r,view:t.view},t.context,pt(S),s,p);((v=n.beforeSend)===null||v===void 0?void 0:v.call(n,l,_))===!1||l.origin!==J.AGENT&&((x=u[l.status])!==null&&x!==void 0?x:u.custom).isLimitReached()||o.notify(1,l)})}const Go={[z.log]:B.info,[z.debug]:B.debug,[z.info]:B.info,[z.warn]:B.warn,[z.error]:B.error};function Ho(a,n){const o=so(a.forwardConsoleLogs).subscribe(d=>{var f;const c={rawLogsEvent:{date:se(),message:d.message,origin:J.CONSOLE,error:d.error&&ut(d.error),status:Go[d.api]},messageContext:(f=d.error)===null||f===void 0?void 0:f.context,domainContext:{handlingStack:d.handlingStack}};n.notify(0,c)});return{stop:()=>{o.unsubscribe()}}}function Yo(a,n){const o=rs(a,a.forwardReports).subscribe(d=>{let f=d.message,c;const u=d.originalError.type==="deprecation"?B.warn:B.error;u===B.error?c=ut(d):d.stack&&(f+=` Found in ${Zr(d.stack)}`),n.notify(0,{rawLogsEvent:{date:se(),message:f,origin:J.REPORT,error:c,status:u}})});return{stop:()=>{o.unsubscribe()}}}function Vo(a,n){if(!a.forwardErrorsToLogs)return{stop:de};const o=Xs(a).subscribe(c=>{c.state==="complete"&&f("xhr",c)}),d=tn().subscribe(c=>{c.state==="resolve"&&f("fetch",c)});function f(c,u){!Er(u.url)&&(qo(u)||Vi(u.status))&&("xhr"in u?$o(u.xhr,a,s):u.response?Ko(u.response,a,s):u.error&&jo(u.error,a,s));function s(p){const g={isAborted:u.isAborted,handlingStack:u.handlingStack};n.notify(0,{rawLogsEvent:{message:`${Wo(c)} error ${u.method} ${u.url}`,date:u.startClocks.timeStamp,error:{stack:p||"Failed to load",handling:void 0},http:{method:u.method,status_code:u.status,url:u.url},status:B.error,origin:J.NETWORK},domainContext:g})}}return{stop:()=>{o.unsubscribe(),d.unsubscribe()}}}function $o(a,n,o){typeof a.response=="string"?o(Wt(a.response,n)):o(a.response)}function jo(a,n,o){o(Wt(me(ie(a)),n))}function Ko(a,n,o){const d=ks(a);!d||!d.body?o():window.TextDecoder?Jo(d.body,n.requestErrorResponseLengthLimit,(f,c)=>{o(f?`Unable to retrieve response: ${f}`:c)}):d.text().then(D(f=>o(Wt(f,n))),D(f=>o(`Unable to retrieve response: ${f}`)))}function qo(a){return a.status===0&&a.responseType!=="opaque"}function Wt(a,n){return a.length>n.requestErrorResponseLengthLimit?`${a.substring(0,n.requestErrorResponseLengthLimit)}...`:a}function Wo(a){return a==="xhr"?"XHR":"Fetch"}function Jo(a,n,o){vo(a,(d,f,c)=>{if(d)o(d);else{let u=new TextDecoder().decode(f);c&&(u+="..."),o(void 0,u)}},{bytesLimit:n,collectStreamBody:!0})}function Xo(a,n){if(!a.forwardErrorsToLogs)return{stop:de};const o=new G,{stop:d}=Qr(o),f=o.subscribe(c=>{n.notify(0,{rawLogsEvent:{message:c.message,date:c.startClocks.timeStamp,error:ut(c),origin:J.SOURCE,status:B.error},messageContext:c.context})});return{stop:()=>{d(),f.unsubscribe()}}}const Zo=Ws;function Qo(a){function n(o,d,f,c,u){const s=Ae(d.getContext(),o.context);if(ht(o.status,Ye.console,d)&&ta(o,s),ht(o.status,Ye.http,d)){const p={rawLogsEvent:{date:u||se(),message:o.message,status:o.status,origin:J.LOGGER},messageContext:s,savedCommonContext:c};f&&(p.domainContext={handlingStack:f}),a.notify(0,p)}}return{handleLog:n}}const ea={[B.ok]:z.debug,[B.debug]:z.debug,[B.info]:z.info,[B.notice]:z.info,[B.warn]:z.warn,[B.error]:z.error,[B.critical]:z.error,[B.alert]:z.error,[B.emerg]:z.error};function ta({status:a,message:n},o){ce[ea[a]].call(ee,n,o)}function ia(a,n,o,d,f){const c=en(a,{endpoint:a.logsEndpointBuilder,encoder:ft()},a.replica&&{endpoint:a.replica.logsEndpointBuilder,encoder:ft()},o,d,f.expireObservable);return n.subscribe(1,u=>{c.add(u)}),c}function na(a){const n=Gt();a.subscribe(1,o=>{n.send("log",o)})}function ra(a){return{get:n=>{const o=a.findTrackedSession(n);if(o)return{session_id:o.id}}}}function sa(a){return n=>{a.notify(0,{rawLogsEvent:{message:n.message,date:n.startClocks.timeStamp,origin:J.AGENT,status:B.error}}),Hi("Error reported to customer",{"error.message":n.message})}}function oa(a,n,o,d,f){const c=_s("browser-logs-sdk",n);c.setContextProvider(()=>{var s,p,g,_,v,x;return{application:{id:(s=pt())===null||s===void 0?void 0:s.application_id},session:{id:(p=f.findTrackedSession())===null||p===void 0?void 0:p.id},view:{id:(_=(g=pt())===null||g===void 0?void 0:g.view)===null||_===void 0?void 0:_.id},action:{id:(x=(v=pt())===null||v===void 0?void 0:v.user_action)===null||x===void 0?void 0:x.id}}});const u=[];if(dt()){const s=Gt(),p=c.observable.subscribe(g=>s.send("internal_telemetry",g));u.push(()=>p.unsubscribe())}else{const s=en(n,{endpoint:n.rumEndpointBuilder,encoder:ft()},n.replica&&{endpoint:n.replica.rumEndpointBuilder,encoder:ft()},o,d,f.expireObservable);u.push(()=>s.stop());const p=c.observable.subscribe(g=>s.add(g,ys(n)));u.push(()=>p.unsubscribe())}return ms(),vs(Fo(a)),{telemetry:c,stop:()=>{u.forEach(s=>s())}}}function aa(a,n,o,d){const f=new Zo,c=[];f.subscribe(1,x=>Pi("logs",x));const u=sa(f),s=$s(n),p=n.sessionStoreStrategyType&&!dt()&&!rn()?Po(n,d):zo(n),{stop:g}=oa(a,n,u,s,p);c.push(()=>g()),Vo(n,f),Xo(n,f),Ho(n,f),Yo(n,f);const{handleLog:_}=Qo(f);if(No(p,n,f,o,u),dt())na(f);else{const{stop:x}=ia(n,f,u,s,p);c.push(()=>x())}const v=ra(p);return{handleLog:_,getInternalContext:v.get,stop:()=>{c.forEach(x=>x())}}}const Fe=Lo(aa);ns(ae(),"DD_LOGS",Fe);const I=class I{constructor(n){I.options=n,this.isLoggingOn=n.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&Fe.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const o="bb_logger_mac_uuid";let d=localStorage.getItem(o);d||(d=crypto.randomUUID(),localStorage.setItem(o,d)),I.tracking.mac=d,I.tracking.dev=`${n.platform}_${n.browserName}`,I.beatHandle||(I.options&&L(I.options,"Logger")&&console.log("[Logger] Starting tracking beat"),I.beatHandle=window.setInterval(I.flushTracking,15e3))}static setMessagePort(n){this.messagePort=n}static getMessagePort(){return this.messagePort}setLoggingOn(n){this.isLoggingOn=n}setAttributes(n){I.processAttributes(n);for(const o in n)Fe.logger.setContextProperty(o,n[o])}info(n,o){n==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(o==null?void 0:o.url)||""}),n==="didToggleGlobalAugmentationDrawing"&&this.emit("mediaSessionDidUpdateGlobalAugmentationState",{isGlobalAugmentationEnabled:(o==null?void 0:o.isEnabled)||!0}),n==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",o),n==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",o),n==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",o),o&&I.processAttributes(o),this.isLoggingOn&&(Fe.logger.info(n,o),I.options&&L(I.options,"Logger")&&console.log("[Logger] Sending info: ",n))}error(n,o){o&&I.processAttributes(o),this.isLoggingOn&&(Fe.logger.error(n,o),I.tracking.err_time=Date.now().toFixed(0),I.tracking.err_desc=n+(o?` - ${JSON.stringify(o)}`:""),I.options&&L(I.options,"Logger")&&console.log("[Logger] Sending error: ",n))}warn(n,o){o&&I.processAttributes(o),this.isLoggingOn&&(Fe.logger.warn(n,o),I.options&&L(I.options,"Logger")&&console.log("[Logger] Sending warn: ",n))}handleMessageFromWorker(n){n.actionType==="INFO"?this.info(n.message,n.attributes):n.actionType==="ERROR"?this.error(n.message,n.attributes):n.actionType==="WARN"?this.warn(n.message,n.attributes):n.actionType==="SET_ATTRIBUTES"&&n.attributes&&this.setAttributes(n.attributes)}static setAttributes(n){I.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:n})}static info(n,o){I.messagePort.postMessage({type:"LOG",actionType:"INFO",message:n,attributes:o})}static error(n,o){I.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:n,attributes:o})}static warn(n,o){I.messagePort.postMessage({type:"LOG",actionType:"WARN",message:n,attributes:o})}static processAttributes(n){if(n.player_version&&(I.tracking.sdk=n.player_version),n.media_id&&(I.tracking.gid=n.media_id),n.game_id&&(I.tracking.buc=n.game_id),n.bb_session_id&&(I.tracking.sid=n.bb_session_id,I.options&&L(I.options,"Logger")&&console.log("[Logger] Setting bb_session_id:",I.tracking.sid)),n.last_timecode){const d=$.fromStr(n.last_timecode);I.tracking.tc=d.print(),I.lastTimecodeMillis=d.totalMilliseconds(59.94),I.lastTimecodeMillis&&I.lastZipMillis&&(I.tracking.cache=(I.lastZipMillis-I.lastTimecodeMillis).toFixed(0))}n.last_offset&&(I.tracking.off=n.last_offset),n.last_loading_zip&&(I.tracking.zip=n.last_loading_zip+".zip",I.lastZipMillis=$.fromStr(n.last_loading_zip).totalMilliseconds(59.94),I.lastTimecodeMillis&&I.lastZipMillis&&(I.tracking.cache=(I.lastZipMillis-I.lastTimecodeMillis).toFixed(0))),n.last_rendered_frame&&(I.tracking.aug_time=Date.now().toFixed(0)),n.asset&&(I.tracking.asset=n.asset)}static objectToQuery(n){return Object.entries(n).filter(([o,d])=>d!==0&&d!=="").map(([o,d])=>`${encodeURIComponent(o)}=${encodeURIComponent(String(d))}`).join("&")}emit(n,o){const d=new CustomEvent(n,{detail:o});this.eventTarget.dispatchEvent(d)}};I.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},I.lastTimecodeMillis=0,I.lastZipMillis=0,I.flushTracking=()=>{const n=Date.now().toFixed(0);I.tracking.now=n;const d=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${I.objectToQuery(I.tracking)}`;I.options&&L(I.options,"Logger")&&console.log("[Logger] Flushing tracking data:",d),fetch(d,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),I.tracking.err_desc="",I.tracking.err_time=""};let M=I;class Jt{constructor(n,o,d){this.videoDecoder=null,this.reservedVideoDecoder=null,this.videoDecoderNeedsKeyFrame=!1,this.reservedVideoDecoderNeedsKeyFrame=!1,this.currentTimecode="",this.fps=0,this.unchunkedJobs=[],this.jobChunking=null,this.jobsQueue=[],this.chunksQueue=[],this.chunksForDecodingFrames=[],this.processedMetadata=[],this.lastJobEndTimecode=0,this.lastProcessedFrameTimecode=0,this.storedFrames=[],this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.timecodeErrorCount=0,this.decoderStopped=!1,this.chunkCount=0,this.chunkingTimeSum=0,this.avgChunkingTime=0,this.decodingFrameCount=0,this.decodingTimeSum=0,this.avgDecodingTime=0,this.lastPerformanceCheck=performance.now(),this.loggerTimeoutStart=0,this.loggerTimeout=1e4,this.addJob=(f,c)=>{const{alphaMp4:u,metadataList:s}=this.parseZipAndMetadata(c,f);if(!u){this.options&&L(this.options,"Decoder")&&console.log("[Decoder] No alpha.mp4 found, no decoding needed.");return}const p={timeCode:f,alphaMp4:u,metadata:s,chunks:[],totalFrameCount:s.length,framesProcessed:0,framesSentToDecoder:0,useReserveDecoder:s.length<3,chunkingTime:0};this.jobChunking?this.unchunkedJobs.push(p):(this.jobChunking=p,this.chunkJob(p)),this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Added job:",p)},this.clearOldJobsAndChunks=f=>{const u=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps)-f;this.unchunkedJobs=this.unchunkedJobs.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u),this.jobsQueue=this.jobsQueue.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u),this.chunksQueue=this.chunksQueue.filter(s=>$.fromStr(s.timeCode).totalMilliseconds(this.fps)>u)},this.clearAllJobsAndChunks=()=>{this.unchunkedJobs=[],this.jobsQueue=[],this.chunksQueue=[]},this.updateCurrentTimecode=(f,c)=>{if(this.options){if(this.fps=59.94,this.currentTimecode){const u=$.fromStr(f).totalMilliseconds(this.fps),s=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps);if(u<s||u>s+this.options.DECODER_LEAD_TIME_MILLIS){this.timecodeErrorCount++;const p=performance.now();u<s&&(p-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=p,M.error("[Decoder] Timecode is going backwards")),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Timecode is going backwards")),u>s+this.options.DECODER_LEAD_TIME_MILLIS&&(p-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=p,M.error("[Decoder] Timecode is too far ahead")),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Timecode is too far ahead")),this.timecodeErrorCount>5&&this.restartDecoder();return}}this.timecodeErrorCount=0,this.currentTimecode=f,this.clearOldJobsAndChunks(2100),this.decodeUpcomingChunks()}},this.setupMP4Box=(f=!1)=>{const c=cn.createFile();return c.onError=u=>{M.error("[Decoder] MP4 parsing error",u),this.options&&L(this.options,"Errors")&&console.error("[Decoder] MP4 parsing error:",u)},c.onReady=u=>{const s=u.tracks.find(p=>p.type==="video");if(s){if(!(f?this.reservedVideoDecoderConfigured:this.videoDecoderConfigured)){this.options&&L(this.options,"Decoder")&&console.error("[Decoder] Starting a new VideoDecoder");let g;f?(this.reservedVideoDecoder=new VideoDecoder({output:this.onFrameDecoded,error:this.onDecoderError}),g=this.reservedVideoDecoder):(this.videoDecoder=new VideoDecoder({output:this.onFrameDecoded,error:this.onDecoderError}),g=this.videoDecoder),g.configure({codec:s.codec,codedWidth:s.video.width,codedHeight:s.video.height,description:this.getDescription(c.getTrackById(s.id)),hardwareAcceleration:"prefer-hardware",optimizeForLatency:!0}),f?(this.reservedVideoDecoderConfigured=!0,this.reservedVideoDecoderNeedsKeyFrame=!0):(this.videoDecoderConfigured=!0,this.videoDecoderNeedsKeyFrame=!0)}c.setExtractionOptions(s.id),c.start()}},c.onSamples=async(u,s,p)=>{const g=[];let _=0,v=0;if(this.options.browserName==="Firefox"){const x=p.map(E=>E.cts).sort((E,e)=>E-e);_=200-x[0],v=x[x.length-1]+_}for(const x of p){const S=this.options.browserName==="Firefox"?x.cts+this.lastJobEndTimecode+_:x.cts,E=new EncodedVideoChunk({type:x.is_sync?"key":"delta",timestamp:S,data:new Uint8Array(x.data)});g.push(E)}this.storeChunks(g),this.options.browserName==="Firefox"&&(this.lastJobEndTimecode+=v)},c},this.chunkJob=async f=>{f.chunkingTime=performance.now(),this.mp4boxfile=this.setupMP4Box(f.useReserveDecoder);const u=await new Blob([f.alphaMp4],{type:"video/mp4"}).arrayBuffer();u.fileStart=0,this.mp4boxfile.appendBuffer(u)},this.storeChunks=f=>{var s;this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Storing chunks:",f);const c=this.jobChunking;if((s=this.options.debug)!=null&&s.trackPerformance&&(c.chunkingTime=performance.now()-c.chunkingTime,this.chunkCount++,this.chunkingTimeSum+=c.chunkingTime,this.avgChunkingTime=this.chunkingTimeSum/this.chunkCount),this.unchunkedJobs.length>0){const p=this.unchunkedJobs.shift();this.jobChunking=p,this.chunkJob(p)}else this.jobChunking=null;const u=c==null?void 0:c.metadata.map((p,g)=>({timeCode:p.timecode,chunk:f[g],metadata:p,job:c,cancelled:!1,decodingTime:0}));c.chunks=u,this.chunksQueue.push(...u),this.jobsQueue.push(c),this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Jobs Queue:",this.jobsQueue),this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Chunks Queue:",this.chunksQueue)},this.onFrameDecoded=f=>{var p;let c=0;if(this.options.browserName==="Firefox"){c=this.lastProcessedFrameTimecode+200;const g=f.timestamp;if(g!==c){if(this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Frame out of order, storing frame:",g),this.storedFrames.push(f),this.storedFrames.sort((_,v)=>_.timestamp-v.timestamp),this.storedFrames[0].timestamp===c){const _=this.storedFrames.shift();_&&this.onFrameDecoded(_)}this.storedFrames.sort((_,v)=>_.timestamp-v.timestamp);return}this.lastProcessedFrameTimecode=g}this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Frame decoded:",f);const u=this.chunksForDecodingFrames.shift();if(!u){M.error("[Decoder] No current chunk for a processed frame"),this.options&&L(this.options,"Errors")&&console.error("[Decoder] No current chunk for a processed frame");return}if(u.cancelled||this.decoderStopped){this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Skipping cancelled chunk:",u.timeCode),f.close();return}const s=u.metadata;if((p=this.options.debug)!=null&&p.trackPerformance){const g=performance.now();u.decodingTime=g-u.decodingTime,this.decodingFrameCount++,this.decodingTimeSum+=u.decodingTime,this.avgDecodingTime=this.decodingTimeSum/this.decodingFrameCount,g-this.lastPerformanceCheck>=this.options.PERFORMANCE_TRACKING_INTERVAL&&(this.trackPerformance(),this.lastPerformanceCheck=g)}if(u.job.framesProcessed++,s.alphaMask=f,this.processedMetadata.push(s),M.setAttributes({last_decoded_frame:s.timecode}),(this.processedMetadata.length>=this.options.DECODER_FRAME_BATCH_SIZE||u.job.framesProcessed>=u.job.totalFrameCount)&&(this.postBatchToRenderer(this.processedMetadata),this.processedMetadata.forEach(g=>g.alphaMask.close()),this.processedMetadata=[]),this.options.browserName==="Firefox"&&this.storedFrames.length>0){const g=(c+200)%24200||400;if(this.storedFrames[0].timestamp===g){const _=this.storedFrames.shift();_&&this.onFrameDecoded(_)}}},this.onDecoderError=f=>{var s,p;M.error("[Decoder] VideoDecoder error",f),this.options&&L(this.options,"Errors")&&console.error("[Decoder] VideoDecoder error:",f),this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.videoDecoderNeedsKeyFrame=!0,this.reservedVideoDecoderNeedsKeyFrame=!0;const c=this.chunksForDecodingFrames.shift();if(!c){M.error("[Decoder] No broken chunk for an error"),this.options&&L(this.options,"Errors")&&console.error("[Decoder] No broken chunk for an error");return}const u=c.job;u&&u.chunks.forEach(g=>g.cancelled=!0),(s=this.reservedVideoDecoder)==null||s.close(),(p=this.videoDecoder)==null||p.close()},this.parseZipAndMetadata=(f,c)=>{const u=pn.parse(f),s=u["alpha.mp4"]||null,p=Object.keys(u).filter(e=>e.endsWith(".json")).sort(this.numericFileComparator).map(e=>{const t=JSON.parse(new TextDecoder().decode(u[e]));return t.timecode=$.toStr($.fromMetadata(t)),t}),g=p.length;let _=120;const[v,x,S]=c.split("_").map(Number);x%10===0&&S===0?_=120:S===0&&(_=116),g!==_&&(M.error("[Decoder] Metadata count mismatch",{expected:_,actual:g,timecode:c}),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Metadata count mismatch:",{expected:_,actual:g,timecode:c}));const E=p.filter(e=>e.placeholders);return{alphaMp4:s,metadataList:E}},this.numericFileComparator=(f,c)=>{const u=/^(\\d{2})_(\\d{2})_(\\d{2})_(\\d{2})(?:\\.(\\d+))?\\.(.+)$/,s=f.match(u),p=c.match(u);if(!s||!p)return 0;const[,g,_,v,x,S="0",E]=s,[,e,t,r,l,h="0",m]=p;return parseInt(g,10)-parseInt(e,10)||parseInt(_,10)-parseInt(t,10)||parseInt(v,10)-parseInt(r,10)||parseInt(x,10)-parseInt(l,10)||parseInt(S,10)-parseInt(h,10)||E.localeCompare(m)},this.getDescription=f=>{for(const c of f.mdia.minf.stbl.stsd.entries){const u=c.avcC||c.hvcC||c.vpcC||c.av1C;if(u){const s=new yt.DataStream(void 0,0,yt.DataStream.BIG_ENDIAN);return u.write(s),new Uint8Array(s.buffer,8)}}return null},this.trackPerformance=()=>{const f=this.getAvgChunkingTime(),c=this.getAvgDecodingTime();fa([{metric:"Chunking time",value:f},{metric:"Decoding time",value:c}])},this.postBatchToRenderer=n,this.restartDecoder=o,this.options=d,this.mp4boxfile=this.setupMP4Box()}decodeUpcomingChunks(){const n=$.fromStr(this.currentTimecode).totalMilliseconds(this.fps),o=n+this.options.DECODER_LEAD_TIME_MILLIS,d=this.chunksQueue.filter(c=>{const u=$.fromStr(c.timeCode).totalMilliseconds(this.fps);return u>=n&&u<=o&&!c.decoded});d.sort((c,u)=>{const s=$.fromStr(c.timeCode).totalMilliseconds(this.fps),p=$.fromStr(u.timeCode).totalMilliseconds(this.fps);return s-p});const f=d.slice(0,this.options.DECODER_FRAME_BATCH_SIZE);for(const c of f){if(c.cancelled){this.options&&L(this.options,"Decoder")&&console.log("[Decoder] Skipping cancelled chunk:",c.timeCode);continue}const u=c.job.useReserveDecoder?this.reservedVideoDecoder:this.videoDecoder;if(!u||u.state==="closed"){M.error("[Decoder] No VideoDecoder available"),this.options&&L(this.options,"Errors")&&console.error("[Decoder] No VideoDecoder available");continue}if((c.job.useReserveDecoder?this.reservedVideoDecoderNeedsKeyFrame:this.videoDecoderNeedsKeyFrame)&&c.chunk.type==="delta"){M.error("[Decoder] Decoder needs a key frame, skipping delta chunk",{chunkTimeCode:c.timeCode}),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Decoder needs a key frame, skipping delta chunk:",c.timeCode),c.decoded=!0;continue}try{this.chunksForDecodingFrames.push(c),c.chunk.type==="key"&&(c.job.useReserveDecoder?this.reservedVideoDecoderNeedsKeyFrame=!1:this.videoDecoderNeedsKeyFrame=!1),c.decodingTime=performance.now(),u.decode(c.chunk)}catch(p){M.error("[Decoder] Error decoding chunk",p),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Error decoding chunk:",p),this.videoDecoderConfigured=!1,this.reservedVideoDecoderConfigured=!1,this.videoDecoderNeedsKeyFrame=!0,this.reservedVideoDecoderNeedsKeyFrame=!0,c.job.chunks.forEach(_=>_.cancelled=!0),u.close()}finally{if(c.decoded=!0,c.job.framesSentToDecoder++,c.job.framesSentToDecoder>=c.job.totalFrameCount){u.flush(),c.job.useReserveDecoder;continue}}}}getAvgChunkingTime(){var n;if((n=this.options.debug)!=null&&n.trackPerformance){const o=this.avgChunkingTime;return this.chunkCount=0,this.chunkingTimeSum=0,this.avgChunkingTime=0,o}return 0}getAvgDecodingTime(){var n;if((n=this.options.debug)!=null&&n.trackPerformance){const o=this.avgDecodingTime;return this.decodingFrameCount=0,this.decodingTimeSum=0,this.avgDecodingTime=0,o}return 0}stop(){var n,o;this.decoderStopped=!0,this.clearAllJobsAndChunks();try{(n=this.videoDecoder)==null||n.close()}catch(d){M.error("[Decoder] Error closing main VideoDecoder",d),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Error closing main VideoDecoder:",d)}try{(o=this.reservedVideoDecoder)==null||o.close()}catch(d){M.error("[Decoder] Error closing reserved VideoDecoder",d),this.options&&L(this.options,"Errors")&&console.error("[Decoder] Error closing reserved VideoDecoder:",d)}}}let ln=null,_t=null,be,H;self.onmessage=async a=>{const{data:n}=a;if(n.type==="SET_LOGGER_PORT"&&M.setMessagePort(n.port),n.type==="SET_DOWNLOADER_PORT"&&(ln=n.port,ln.onmessage=da),n.type==="SET_RENDERER_PORT"&&(_t=n.port,_t.onmessage=la),n.type==="SET_OPTIONS"&&(H=n.options,M.setMessagePort(self),be=new Jt(Xt,gt,H)),n.type==="VIDEO_SEEKED"){if(!H)return;gt()}};function da(a){const{data:n}=a;if(n.type==="DECODER_INPUT"){const{timeCode:o,arrayBuffer:d}=n;H&&L(H,"Decoder")&&console.log("[DecoderWorker] Received ArrayBuffer from Downloader, timeCode =",o),be.addJob(o,d)}}function la(a){const{data:n}=a;if(n.type==="DECODER_REQUEST"){const{timeCode:o,fps:d}=n;H&&L(H,"Decoder")&&console.log("[DecoderWorker] Received TimeCode request from Renderer, timeCode =",o),be.updateCurrentTimecode(o,d)}}function gt(){H&&(be.stop(),be=new Jt(Xt,gt,H))}function Xt(a){if(!_t)return;H&&L(H,"Decoder")&&console.log(`[DecoderWorker] Posting a batch of ${a.length} frames to Renderer`);const n=a.map(o=>o.alphaMask).filter(o=>o!==void 0);try{const o=new Set(n);_t.postMessage({type:"RENDERER_INPUT",batch:a},[...o]),n.forEach(d=>d.close())}catch(o){M.error("[DecoderWorker] Error posting batch to Renderer",{error:o}),H&&L(H,"Errors")&&console.error("[DecoderWorker] Error posting batch to Renderer:",o),n.forEach(d=>d.close());return}}function fa(a){const n={type:"TRACK_PERFORMANCE",data:a};self.postMessage(n)}self.onunhandledrejection=a=>{M.error("[DecoderWorker] Unhandled rejection",{error:a.reason}),H&&(L(H,"Errors")&&console.error("[DecoderWorker] Unhandled rejection:",a.reason),be.stop(),be=new Jt(Xt,gt,H),a.preventDefault())},self.onerror=a=>{M.error("[DecoderWorker] Unhandled error",{error:a}),H&&(L(H,"Errors")&&console.error("[DecoderWorker] Unhandled error:",a),a instanceof Event&&a.preventDefault())}})();\n',Nt=typeof self<"u"&&self.Blob&&new Blob([Bt],{type:"text/javascript;charset=utf-8"});function ir(t){let e;try{if(e=Nt&&(self.URL||self.webkitURL).createObjectURL(Nt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Bt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const $t='(function(){"use strict";const T=(t,e)=>!t.debug||!t.debug.on?!1:t.debug[`log${e}`],A={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},U=console,H={};Object.keys(A).forEach(t=>{H[t]=U[t]});const he="Datadog Browser SDK:",R={debug:H.debug.bind(U,he),log:H.log.bind(U,he),info:H.info.bind(U,he),warn:H.warn.bind(U,he),error:H.error.bind(U,he)},et="https://docs.datadoghq.com",kt=`${et}/real_user_monitoring/browser/troubleshooting`,we="More details:";function Dt(t,e){return(...n)=>{try{return t(...n)}catch(r){R.error(e,r)}}}function Ce(t){return t!==0&&Math.random()*100<=t}function Vn(t){return Kn(t)&&t>=0&&t<=100}function Kn(t){return typeof t=="number"}const me=1e3,V=60*me,Ut=60*V,Zn=365*(24*Ut);function pe(){return new Date().getTime()}function $(){return pe()}function Le(){return performance.now()}function G(){return{relative:Le(),timeStamp:$()}}function Jn(){return{relative:0,timeStamp:Pt()}}function Qn(t,e){return e-t}function er(t,e){return t+e}function tr(t){return t-Pt()}let tt;function Pt(){return tt===void 0&&(tt=performance.timing.navigationStart),tt}const M=1024,Mt=1024*M,nr=/[^\\u0000-\\u007F]/;function nt(t){return nr.test(t)?window.TextEncoder!==void 0?new TextEncoder().encode(t).length:new Blob([t]).size:t.length}function rr(t){return{...t}}function Ft(t,e){return Object.keys(t).some(n=>t[n]===e)}function ge(t){return Object.keys(t).length===0}function j(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let t=_dd_temp_;return delete Object.prototype._dd_temp_,typeof t!="object"&&(typeof self=="object"?t=self:typeof window=="object"?t=window:t={}),t}function se(t,e){const n=j();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=t[n.Zone.__symbol__(e)]),r||(r=t[e]),r}let Oe,Nt=!1;function sr(t){Oe=t}function or(t){Nt=t}function ir(t,e,n){const r=n.value;n.value=function(...s){return(Oe?y(r):r).apply(this,s)}}function y(t){return function(){return Ee(t,this,arguments)}}function Ee(t,e,n){try{return t.apply(e,n)}catch(r){ar(r)}}function ar(t){if(rt(t),Oe)try{Oe(t)}catch(e){rt(e)}}function rt(...t){Nt&&R.error("[MONITOR]",...t)}function Se(t,e){return se(j(),"setTimeout")(y(t),e)}function Bt(t){se(j(),"clearTimeout")(t)}function st(t,e){return se(j(),"setInterval")(y(t),e)}function $t(t){se(j(),"clearInterval")(t)}class x{constructor(e){this.onFirstSubscribe=e,this.observers=[]}subscribe(e){return this.observers.push(e),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>e!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(e){this.observers.forEach(n=>n(e))}}function Gt(...t){return new x(e=>{const n=t.map(r=>r.subscribe(s=>e.notify(s)));return()=>n.forEach(r=>r.unsubscribe())})}function jt(t,e,n){let r=!1,s,o;return{throttled:(...i)=>{if(r){s=i;return}t(...i),r=!0,o=Se(()=>{s&&t(...s),r=!1,s=void 0},e)},cancel:()=>{Bt(o),r=!1,s=void 0}}}function W(){}function z(t){return t?(parseInt(t,10)^Math.random()*16>>parseInt(t,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,z)}const Ie=/([\\w-]+)\\s*=\\s*([^;]+)/g;function cr(t,e){for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n){if(n[1]===e)return n[2]}else break}}function lr(t){const e=new Map;for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n)e.set(n[1],n[2]);else break}return e}function ur(t,e,n=""){const r=t.charCodeAt(e-1),o=r>=55296&&r<=56319?e+1:e;return t.length<=o?t:`${t.slice(0,o)}${n}`}function dr(){return fr()===0}let ke;function fr(){return ke??(ke=hr())}function hr(t=window){var e;const n=t.navigator.userAgent;return t.chrome||/HeadlessChrome/.test(n)?0:((e=t.navigator.vendor)===null||e===void 0?void 0:e.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function ye(t,e,n=0,r){const s=new Date;s.setTime(s.getTime()+n);const o=`expires=${s.toUTCString()}`,i=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",l=r&&r.secure?";secure":"",c=r&&r.partitioned?";partitioned":"";document.cookie=`${t}=${e};${o};path=/;samesite=${i}${a}${l}${c}`}function ot(t){return cr(document.cookie,t)}let it;function K(t){return it||(it=lr(document.cookie)),it.get(t)}function Wt(t,e){ye(t,"",0,e)}function mr(t){if(document.cookie===void 0||document.cookie===null)return!1;try{const e=`dd_cookie_test_${z()}`,n="test";ye(e,n,V,t);const r=ot(e)===n;return Wt(e,t),r}catch(e){return R.error(e),!1}}let at;function pr(){if(at===void 0){const t=`dd_site_test_${z()}`,e="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!ot(t);)r=`${n.pop()}.${r}`,ye(t,e,me,{domain:r});Wt(t,{domain:r}),at=r}return at}const oe="_dd_s";function De(t){return Object.values(t)}function gr(t){return Object.entries(t)}const ct=4*Ut,zt=15*V,Er=Zn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},Xt=/^([a-zA-Z]+)=([a-z0-9-]+)$/,lt="&";function Sr(t){return!!t&&(t.indexOf(lt)!==-1||Xt.test(t))}const yr="1";function Z(t,e){const n={isExpired:yr};return e.trackAnonymousUser&&(t!=null&&t.anonymousId?n.anonymousId=t==null?void 0:t.anonymousId:n.anonymousId=z()),n}function Ue(t){return ge(t)}function qt(t){return!Ue(t)}function Pe(t){return t.isExpired!==void 0||!br(t)}function br(t){return(t.created===void 0||pe()-Number(t.created)<ct)&&(t.expire===void 0||pe()<Number(t.expire))}function Yt(t){t.expire=String(pe()+zt)}function ut(t){return gr(t).map(([e,n])=>e==="anonymousId"?`aid=${n}`:`${e}=${n}`).join(lt)}function Ht(t){const e={};return Sr(t)&&t.split(lt).forEach(n=>{const r=Xt.exec(n);if(r!==null){const[,s,o]=r;s==="aid"?e.anonymousId=o:e[s]=o}}),e}const Tr="_dd",_r="_dd_r",Ar="_dd_l",Rr="rum",xr="logs";function vr(t){if(!K(oe)){const n=K(Tr),r=K(_r),s=K(Ar),o={};n&&(o.id=n),s&&/^[01]$/.test(s)&&(o[xr]=s),r&&/^[012]$/.test(r)&&(o[Rr]=r),qt(o)&&(Yt(o),t.persistSession(o))}}function Vt(t){const e=Ir(t);return mr(e)?{type:be.COOKIE,cookieOptions:e}:void 0}function wr(t,e){const n={isLockEnabled:dr(),persistSession:Cr(e),retrieveSession:Or,expireSession:r=>Lr(e,r,t)};return vr(n),n}function Cr(t){return e=>{ye(oe,ut(e),zt,t)}}function Lr(t,e,n){const r=Z(e,n);ye(oe,ut(r),n.trackAnonymousUser?Er:ct,t)}function Or(){const t=ot(oe);return Ht(t)}function Ir(t){const e={};return e.secure=!!t.useSecureSessionCookie||!!t.usePartitionedCrossSiteSessionCookie,e.crossSite=!!t.usePartitionedCrossSiteSessionCookie,e.partitioned=!!t.usePartitionedCrossSiteSessionCookie,t.trackSessionAcrossSubdomains&&(e.domain=pr()),e}const kr="_dd_test_";function Kt(){try{const t=z(),e=`${kr}${t}`;localStorage.setItem(e,t);const n=localStorage.getItem(e);return localStorage.removeItem(e),t===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function Dr(t){return{isLockEnabled:!1,persistSession:Zt,retrieveSession:Ur,expireSession:e=>Pr(e,t)}}function Zt(t){localStorage.setItem(oe,ut(t))}function Ur(){const t=localStorage.getItem(oe);return Ht(t)}function Pr(t,e){Zt(Z(t,e))}const Mr=10,Fr=100,Jt=[];let Me;function J(t,e,n=0){var r;const{isLockEnabled:s,persistSession:o,expireSession:i}=e,a=f=>o({...f,lock:c}),l=()=>{const f=e.retrieveSession(),m=f.lock;return f.lock&&delete f.lock,{session:f,lock:m}};if(Me||(Me=t),t!==Me){Jt.push(t);return}if(s&&n>=Fr){Qt(e);return}let c,u=l();if(s){if(u.lock){Fe(t,e,n);return}if(c=z(),a(u.session),u=l(),u.lock!==c){Fe(t,e,n);return}}let d=t.process(u.session);if(s&&(u=l(),u.lock!==c)){Fe(t,e,n);return}if(d&&(Pe(d)?i(d):(Yt(d),s?a(d):o(d))),s&&!(d&&Pe(d))){if(u=l(),u.lock!==c){Fe(t,e,n);return}o(u.session),d=u.session}(r=t.after)===null||r===void 0||r.call(t,d||u.session),Qt(e)}function Fe(t,e,n){Se(()=>{J(t,e,n+1)},Mr)}function Qt(t){Me=void 0;const e=Jt.shift();e&&J(e,t)}const en=me;function Nr(t){switch(t.sessionPersistence){case be.COOKIE:return Vt(t);case be.LOCAL_STORAGE:return Kt();case void 0:{let e=Vt(t);return!e&&t.allowFallbackToLocalStorage&&(e=Kt()),e}default:R.error(`Invalid session persistence \'${String(t.sessionPersistence)}\'`)}}function Br(t,e,n,r){const s=new x,o=new x,i=new x,a=t.type===be.COOKIE?wr(e,t.cookieOptions):Dr(e),{expireSession:l}=a,c=st(p,en);let u;S();const{throttled:d,cancel:f}=jt(()=>{J({process:E=>{if(Ue(E))return;const fe=b(E);return D(fe),fe},after:E=>{qt(E)&&!w()&&It(E),u=E}},a)},en);function m(){J({process:E=>w()?b(E):void 0},a)}function p(){J({process:E=>Pe(E)?Z(E,e):void 0,after:b},a)}function b(E){return Pe(E)&&(E=Z(E,e)),w()&&(Y(E)?ve():(i.notify({previousState:u,newState:E}),u=E)),E}function S(){J({process:E=>{if(Ue(E))return Z(E,e)},after:E=>{u=E}},a)}function D(E){if(Ue(E))return!1;const{trackingType:fe,isTracked:ea}=r(E[n]);E[n]=fe,delete E.isExpired,ea&&!E.id&&(E.id=z(),E.created=String(pe()))}function w(){return u[n]!==void 0}function Y(E){return u.id!==E.id||u[n]!==E[n]}function ve(){u=Z(u,e),o.notify()}function It(E){u=E,s.notify()}function Qi(E){J({process:fe=>({...fe,...E}),after:b},a)}return{expandOrRenewSession:d,expandSession:m,getSession:()=>u,renewObservable:s,expireObservable:o,sessionStateUpdateObservable:i,restartSession:S,expire:()=>{f(),l(u),b(Z(u,e))},stop:()=>{$t(c)},updateSessionState:Qi}}const dt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function $r(t){const e=new x;return{tryToInit(n){t||(t=n)},update(n){t=n,e.notify()},isGranted(){return t===dt.GRANTED},observable:e}}function Q(t,e,n){if(typeof t!="object"||t===null)return JSON.stringify(t);const r=ie(Object.prototype),s=ie(Array.prototype),o=ie(Object.getPrototypeOf(t)),i=ie(t);try{return JSON.stringify(t,e,n)}catch{return"<error: unable to serialize object>"}finally{r(),s(),o(),i()}}function ie(t){const e=t,n=e.toJSON;return n?(delete e.toJSON,()=>{e.toJSON=n}):W}function ft(t){return Gr(t,location.href).href}function Gr(t,e){const n=jr();if(n)try{return e!==void 0?new n(t,e):new n(t)}catch(o){throw new Error(`Failed to construct URL: ${String(o)} ${Q({url:t,base:e})}`)}if(e===void 0&&!/:/.test(t))throw new Error(`Invalid URL: \'${t}\'`);let r=document;const s=r.createElement("a");if(e!==void 0){r=document.implementation.createHTMLDocument("");const o=r.createElement("base");o.href=e,r.head.appendChild(o),r.body.appendChild(s)}return s.href=t,s}const tn=URL;let Ne;function jr(){if(Ne===void 0)try{Ne=new tn("http://test/path").href==="http://test/path"}catch{Ne=!1}return Ne?tn:void 0}const Wr="datad0g.com",zr="dd0g-gov.com",ae="datadoghq.com",Xr="ddog-gov.com",qr="pci.browser-intake-datadoghq.com",Yr=["ddsource","ddtags"];function Te(t,e,n){const r=Hr(t,e);return{build(s,o){const i=Kr(t,e,n,s,o);return r(i)},urlPrefix:r(""),trackType:e}}function Hr(t,e){const n=`/api/v2/${e}`,r=t.proxy;if(typeof r=="string"){const o=ft(r);return i=>`${o}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof r=="function")return o=>r({path:n,parameters:o});const s=Vr(e,t);return o=>`https://${s}${n}?${o}`}function Vr(t,e){const{site:n=ae,internalAnalyticsSubdomain:r}=e;if(t==="logs"&&e.usePciIntake&&n===ae)return qr;if(r&&n===ae)return`${r}.${ae}`;if(n===zr)return`http-intake.logs.${n}`;const s=n.split("."),o=s.pop();return`browser-intake-${s.join("-")}.${o}`}function Kr({clientToken:t,internalAnalyticsSubdomain:e},n,r,s,{retry:o,encoding:i}){const a=["sdk_version:6.5.0",`api:${s}`].concat(r);o&&a.push(`retry_count:${o.count}`,`retry_after:${o.lastFailureStatus}`);const l=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${t}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${z()}`];return i&&l.push(`dd-evp-encoding=${i}`),n==="rum"&&l.push(`batch_time=${$()}`),e&&l.reverse(),l.join("&")}const Zr=200;function Jr(t){const{env:e,service:n,version:r,datacenter:s}=t,o=[];return e&&o.push(Be("env",e)),n&&o.push(Be("service",n)),r&&o.push(Be("version",r)),s&&o.push(Be("datacenter",s)),o}function Be(t,e){const n=Zr-t.length-1;(e.length>n||Qr(e))&&R.warn(`${t} value doesn\'t meet tag requirements and will be sanitized. ${we} ${et}/getting_started/tagging/#defining-tags`);const r=e.replace(/,/g,"_");return`${t}:${r}`}function Qr(t){return es()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(t):!1}function es(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function ts(t){const e=t.site||ae,n=Jr(t),r=ns(t,n);return{replica:rs(t,n),site:e,...r}}function ns(t,e){return{logsEndpointBuilder:Te(t,"logs",e),rumEndpointBuilder:Te(t,"rum",e),sessionReplayEndpointBuilder:Te(t,"replay",e)}}function rs(t,e){if(!t.replica)return;const n={...t,site:ae,clientToken:t.replica.clientToken},r={logsEndpointBuilder:Te(n,"logs",e),rumEndpointBuilder:Te(n,"rum",e)};return{applicationId:t.replica.applicationId,...r}}function ss(t){return Yr.every(e=>t.includes(e))}function ht(t,e){return t!=null&&typeof t!="string"?(R.error(`${e} must be defined as a string`),!1):!0}function os(t){return t&&typeof t=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(t)?(R.error(`Site should be a valid Datadog site. ${we} ${et}/getting_started/site/.`),!1):!0}function $e(t,e){return t!==void 0&&!Vn(t)?(R.error(`${e} Sample Rate should be a number between 0 and 100`),!1):!0}function is(t){var e,n,r,s,o,i;if(!t||!t.clientToken){R.error("Client Token is not configured, we will not send any data.");return}if(!(!os(t.site)||!$e(t.sessionSampleRate,"Session")||!$e(t.telemetrySampleRate,"Telemetry")||!$e(t.telemetryConfigurationSampleRate,"Telemetry Configuration")||!$e(t.telemetryUsageSampleRate,"Telemetry Usage")||!ht(t.version,"Version")||!ht(t.env,"Env")||!ht(t.service,"Service"))){if(t.trackingConsent!==void 0&&!Ft(dt,t.trackingConsent)){R.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:t.beforeSend&&Dt(t.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:Nr(t),sessionSampleRate:(e=t.sessionSampleRate)!==null&&e!==void 0?e:100,telemetrySampleRate:(n=t.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=t.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(s=t.telemetryUsageSampleRate)!==null&&s!==void 0?s:5,service:t.service||void 0,silentMultipleInit:!!t.silentMultipleInit,allowUntrustedEvents:!!t.allowUntrustedEvents,trackingConsent:(o=t.trackingConsent)!==null&&o!==void 0?o:dt.GRANTED,trackAnonymousUser:(i=t.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!t.storeContextsAcrossPages,batchBytesLimit:16*M,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*me,batchMessagesLimit:50,messageBytesLimit:256*M,...ts(t)}}}function as(t){return{session_sample_rate:t.sessionSampleRate,telemetry_sample_rate:t.telemetrySampleRate,telemetry_configuration_sample_rate:t.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:t.telemetryUsageSampleRate,use_before_send:!!t.beforeSend,use_partitioned_cross_site_session_cookie:t.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:t.useSecureSessionCookie,use_proxy:!!t.proxy,silent_multiple_init:t.silentMultipleInit,track_session_across_subdomains:t.trackSessionAcrossSubdomains,track_anonymous_user:t.trackAnonymousUser,session_persistence:t.sessionPersistence,allow_fallback_to_local_storage:!!t.allowFallbackToLocalStorage,store_contexts_across_pages:!!t.storeContextsAcrossPages,allow_untrusted_events:!!t.allowUntrustedEvents,tracking_consent:t.trackingConsent}}var mt;(function(t){t.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",t.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(mt||(mt={}));const nn=new Set;function cs(t){Array.isArray(t)&&ls(t.filter(e=>Ft(mt,e)))}function ls(t){t.forEach(e=>{nn.add(e)})}function us(){return nn}const _e="?";function F(t){const e=[];let n=pt(t,"stack");const r=String(t);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`\n`).forEach(s=>{const o=hs(s)||ps(s)||Es(s)||bs(s);o&&(!o.func&&o.line&&(o.func=_e),e.push(o))}),{message:pt(t,"message"),name:pt(t,"name"),stack:e}}const rn="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",ce="(?::(\\\\d+))",ds=new RegExp(`^\\\\s*at (.*?) ?\\\\(${rn}${ce}?${ce}?\\\\)?\\\\s*$`,"i"),fs=new RegExp(`\\\\((\\\\S*)${ce}${ce}\\\\)`);function hs(t){const e=ds.exec(t);if(!e)return;const n=e[2]&&e[2].indexOf("native")===0,r=e[2]&&e[2].indexOf("eval")===0,s=fs.exec(e[2]);return r&&s&&(e[2]=s[1],e[3]=s[2],e[4]=s[3]),{args:n?[e[2]]:[],column:e[4]?+e[4]:void 0,func:e[1]||_e,line:e[3]?+e[3]:void 0,url:n?void 0:e[2]}}const ms=new RegExp(`^\\\\s*at ?${rn}${ce}?${ce}??\\\\s*$`,"i");function ps(t){const e=ms.exec(t);if(e)return{args:[],column:e[3]?+e[3]:void 0,func:_e,line:e[2]?+e[2]:void 0,url:e[1]}}const gs=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function Es(t){const e=gs.exec(t);if(e)return{args:[],column:e[4]?+e[4]:void 0,func:e[1]||_e,line:+e[3],url:e[2]}}const Ss=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,ys=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function bs(t){const e=Ss.exec(t);if(!e)return;const n=e[3]&&e[3].indexOf(" > eval")>-1,r=ys.exec(e[3]);return n&&r&&(e[3]=r[1],e[4]=r[2],e[5]=void 0),{args:e[2]?e[2].split(","):[],column:e[5]?+e[5]:void 0,func:e[1]||_e,line:e[4]?+e[4]:void 0,url:e[3]}}function pt(t,e){if(typeof t!="object"||!t||!(e in t))return;const n=t[e];return typeof n=="string"?n:void 0}function Ts(t,e,n,r){const s=[{url:e,column:r,line:n}],{name:o,message:i}=As(t);return{name:o,message:i,stack:s}}const _s=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function As(t){let e,n;return{}.toString.call(t)==="[object String]"&&([,e,n]=_s.exec(t)),{name:e,message:n}}function Ge(t){const n=new Error(t);n.name="HandlingStack";let r;return Ee(()=>{const s=F(n);s.stack=s.stack.slice(2),r=ee(s)}),r}function ee(t){let e=sn(t);return t.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,s=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",o=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";e+=`\n at ${r}${s} @ ${n.url}${o}${i}`}),e}function sn(t){return`${t.name||"Error"}: ${t.message}`}function te(t,e,n,{computeHandlingStack:r}={}){let s=t[e];if(typeof s!="function")if(e in t&&e.startsWith("on"))s=W;else return{stop:W};let o=!1;const i=function(){if(o)return s.apply(this,arguments);const a=Array.from(arguments);let l;Ee(n,null,[{target:this,parameters:a,onPostCall:u=>{l=u},handlingStack:r?Ge("instrumented method"):void 0}]);const c=s.apply(this,a);return l&&Ee(l,null,[c]),c};return t[e]=i,{stop:()=>{o=!0,t[e]===i&&(t[e]=s)}}}const Rs=220*M,xs="$",vs=3;function N(t,e=Rs){const n=ie(Object.prototype),r=ie(Array.prototype),s=[],o=new WeakMap,i=gt(t,xs,void 0,s,o),a=JSON.stringify(i);let l=a?a.length:0;if(l>e){St(e,"discarded",t);return}for(;s.length>0&&l<e;){const c=s.shift();let u=0;if(Array.isArray(c.source))for(let d=0;d<c.source.length;d++){const f=gt(c.source[d],c.path,d,s,o);if(f!==void 0?l+=JSON.stringify(f).length:l+=4,l+=u,u=1,l>e){St(e,"truncated",t);break}c.target[d]=f}else for(const d in c.source)if(Object.prototype.hasOwnProperty.call(c.source,d)){const f=gt(c.source[d],c.path,d,s,o);if(f!==void 0&&(l+=JSON.stringify(f).length+u+d.length+vs,u=1),l>e){St(e,"truncated",t);break}c.target[d]=f}}return n(),r(),i}function gt(t,e,n,r,s){const o=Ls(t);if(!o||typeof o!="object")return ws(o);const i=Et(o);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const a=t;if(s.has(a))return`[Reference seen at ${s.get(a)}]`;const l=n!==void 0?`${e}.${n}`:e,c=Array.isArray(o)?[]:{};return s.set(a,l),r.push({source:o,target:c,path:l}),c}function ws(t){return typeof t=="bigint"?`[BigInt] ${t.toString()}`:typeof t=="function"?`[Function] ${t.name||"unknown"}`:typeof t=="symbol"?`[Symbol] ${t.description||t.toString()}`:t}function Et(t){try{if(t instanceof Event)return Cs(t);if(t instanceof RegExp)return`[RegExp] ${t.toString()}`;const n=Object.prototype.toString.call(t).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function Cs(t){return{type:t.type,isTrusted:t.isTrusted,currentTarget:t.currentTarget?Et(t.currentTarget):null,target:t.target?Et(t.target):null}}function Ls(t){const e=t;if(e&&typeof e.toJSON=="function")try{return e.toJSON()}catch{}return t}function St(t,e,n){R.warn(`The data provided has been ${e} as it is over the limit of ${t} characters:`,n)}const on="No stack, consider using an instance of Error";function an({stackTrace:t,originalError:e,handlingStack:n,componentStack:r,startClocks:s,nonErrorPrefix:o,source:i,handling:a}){const l=X(e),c=Os(t,l,o,e),u=Is(l,t)?ee(t):on,d=l?un(e,i):void 0,f=t?t.name:void 0,m=cn(e),p=ln(e);return{startClocks:s,source:i,handling:a,handlingStack:n,componentStack:r,originalError:e,type:f,message:c,stack:u,causes:d,fingerprint:m,context:p}}function Os(t,e,n,r){return t!=null&&t.message&&(t!=null&&t.name)?t.message:e?"Empty message":`${n} ${Q(N(r))}`}function Is(t,e){return e===void 0?!1:t?!0:e.stack.length>0&&(e.stack.length>1||e.stack[0].url!==void 0)}function cn(t){return X(t)&&"dd_fingerprint"in t?String(t.dd_fingerprint):void 0}function ln(t){if(t!==null&&typeof t=="object"&&"dd_context"in t)return t.dd_context}function ks(t){var e;return(e=/@ (.+)/.exec(t))===null||e===void 0?void 0:e[1]}function X(t){return t instanceof Error||Object.prototype.toString.call(t)==="[object Error]"}function un(t,e){let n=t;const r=[];for(;X(n==null?void 0:n.cause)&&r.length<10;){const s=F(n.cause);r.push({message:n.cause.message,source:e,type:s==null?void 0:s.name,stack:ee(s)}),n=n.cause}return r.length?r:void 0}const I={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Ds(t){const e=(s,o)=>{const i=an({stackTrace:s,originalError:o,startClocks:G(),nonErrorPrefix:"Uncaught",source:I.SOURCE,handling:"unhandled"});t.notify(i)},{stop:n}=Us(e),{stop:r}=Ps(e);return{stop:()=>{n(),r()}}}function Us(t){return te(window,"onerror",({parameters:[e,n,r,s,o]})=>{let i;X(o)?i=F(o):i=Ts(e,n,r,s),t(i,o??e)})}function Ps(t){return te(window,"onunhandledrejection",({parameters:[e]})=>{const n=e.reason||"Empty reason",r=F(n);t(r,n)})}function Ms(t){const e={version:"6.5.0",onReady(n){n()},...t};return Object.defineProperty(e,"_setDebug",{get(){return or},enumerable:!1}),e}function Fs(t,e,n){const r=t[e];r&&!r.q&&r.version&&R.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),t[e]=n,r&&r.q&&r.q.forEach(s=>Dt(s,"onReady callback threw an error:")())}function dn(t,e){e.silentMultipleInit||R.error(`${t} is already initialized.`)}function ne(t,e,n,r,s){return yt(t,e,[n],r,s)}function yt(t,e,n,r,{once:s,capture:o,passive:i}={}){const a=y(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!t.allowUntrustedEvents||(s&&d(),r(f))}),l=i?{capture:o,passive:i}:o,c=window.EventTarget&&e instanceof EventTarget?window.EventTarget.prototype:e,u=se(c,"addEventListener");n.forEach(f=>u.call(e,f,a,l));function d(){const f=se(c,"removeEventListener");n.forEach(m=>f.call(e,m,a,l))}return{stop:d}}const je={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function Ns(t,e){const n=[];e.includes(je.cspViolation)&&n.push($s(t));const r=e.filter(s=>s!==je.cspViolation);return r.length&&n.push(Bs(r)),Gt(...n)}function Bs(t){return new x(e=>{if(!window.ReportingObserver)return;const n=y((s,o)=>s.forEach(i=>e.notify(Gs(i)))),r=new window.ReportingObserver(n,{types:t,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function $s(t){return new x(e=>{const{stop:n}=ne(t,document,"securitypolicyviolation",r=>{e.notify(js(r))});return n})}function Gs(t){const{type:e,body:n}=t;return fn({type:n.id,message:`${e}: ${n.message}`,originalError:t,stack:hn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function js(t){const e=`\'${t.blockedURI}\' blocked by \'${t.effectiveDirective}\' directive`;return fn({type:t.effectiveDirective,message:`${je.cspViolation}: ${e}`,originalError:t,csp:{disposition:t.disposition},stack:hn(t.effectiveDirective,t.originalPolicy?`${e} of the policy "${ur(t.originalPolicy,100,"...")}"`:"no policy",t.sourceFile,t.lineNumber,t.columnNumber)})}function fn(t){return{startClocks:G(),source:I.REPORT,handling:"unhandled",...t}}function hn(t,e,n,r,s){return n?ee({name:t,message:e,stack:[{func:"?",url:n,line:r??void 0,column:s??void 0}]}):void 0}function mn(t,e){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:t,payload:e})}function pn(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function We(t,e,n=Ws()){if(e===void 0)return t;if(typeof e!="object"||e===null)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const s=e.flags||[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.sticky?"y":"",e.unicode?"u":""].join("");return new RegExp(e.source,s)}if(n.hasAlreadyBeenSeen(e))return;if(Array.isArray(e)){const s=Array.isArray(t)?t:[];for(let o=0;o<e.length;++o)s[o]=We(s[o],e[o],n);return s}const r=pn(t)==="object"?t:{};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=We(r[s],e[s],n));return r}function gn(t){return We(void 0,t)}function le(...t){let e;for(const n of t)n!=null&&(e=We(e,n));return e}function Ws(){if(typeof WeakSet<"u"){const e=new WeakSet;return{hasAlreadyBeenSeen(n){const r=e.has(n);return r||e.add(n),r}}}const t=[];return{hasAlreadyBeenSeen(e){const n=t.indexOf(e)>=0;return n||t.push(e),n}}}function zs(){var t;const e=window.navigator;return{status:e.onLine?"connected":"not_connected",interfaces:e.connection&&e.connection.type?[e.connection.type]:void 0,effective_type:(t=e.connection)===null||t===void 0?void 0:t.effectiveType}}function Xs(t){const e=new Set;return t.forEach(n=>e.add(n)),Array.from(e)}function En(t,e){const n=t.indexOf(e);n>=0&&t.splice(n,1)}const qs=500;function Sn(){const t=[];return{add:s=>{t.push(s)>qs&&t.splice(0,1)},remove:s=>{En(t,s)},drain:s=>{t.forEach(o=>o(s)),t.length=0}}}const re={log:"log",configuration:"configuration",usage:"usage"},Ys=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Hs=[Xr];let yn=Sn(),ue=t=>{yn.add(()=>ue(t))};function Vs(t,e){let n;const r=new x,s=new Set,o=!Hs.includes(e.site)&&Ce(e.telemetrySampleRate),i={[re.log]:o,[re.configuration]:o&&Ce(e.telemetryConfigurationSampleRate),[re.usage]:o&&Ce(e.telemetryUsageSampleRate)},a=Ks();ue=c=>{const u=Q(c);if(i[c.type]&&s.size<e.maxTelemetryEventsPerPage&&!s.has(u)){const d=l(t,c,a);r.notify(d),mn("telemetry",d),s.add(u)}},sr(Tn);function l(c,u,d){return le({type:"telemetry",date:$(),service:c,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:le(u,{runtime_env:d,connectivity:zs(),sdk_setup:"npm"}),experimental_features:Array.from(us())},n!==void 0?n():{})}return{setContextProvider:c=>{n=c},observable:r,enabled:o}}function Ks(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Zs(){yn.drain()}function Js(t){return t.site===Wr}function bn(t,e){rt(A.debug,t,e),ue({type:re.log,message:t,status:"debug",...e})}function Tn(t,e){ue({type:re.log,status:"error",...to(t),...e})}function Qs(t){ue({type:re.configuration,configuration:t})}function eo(t){ue({type:re.usage,usage:t})}function to(t){if(X(t)){const e=F(t);return{error:{kind:e.name,stack:ee(no(e))},message:e.message}}return{error:{stack:on},message:`Uncaught ${Q(t)}`}}function no(t){return t.stack=t.stack.filter(e=>!e.url||Ys.some(n=>e.url.startsWith(n))),t}const Ae=1/0,ro=V;let Re=null;const ze=new Set;function so(){ze.forEach(t=>t())}function oo({expireDelay:t,maxEntries:e}){let n=[];const r=[];Re||(Re=st(()=>so(),ro));const s=()=>{const m=Le()-t;for(;n.length>0&&n[n.length-1].endTime<m;){const p=n.pop();p&&r.push(p.startTime)}};ze.add(s);function o(m,p){const b={value:m,startTime:p,endTime:Ae,remove:()=>{En(n,b)},close:S=>{b.endTime=S}};return e&&n.length>=e&&n.pop(),n.unshift(b),b}function i(m=Ae,p={returnInactive:!1}){for(const b of n)if(b.startTime<=m){if(p.returnInactive||m<=b.endTime)return b.value;break}}function a(m){const p=n[0];p&&p.endTime===Ae&&p.close(m)}function l(m=Ae,p=0){const b=er(m,p);return n.filter(S=>S.startTime<=b&&m<=S.endTime).map(S=>S.value)}function c(){return n.map(({startTime:m,endTime:p,value:b})=>({startTime:m,endTime:p===Ae?"Infinity":p,value:b}))}function u(){return r}function d(){n=[]}function f(){ze.delete(s),ze.size===0&&Re&&($t(Re),Re=null)}return{add:o,find:i,closeActive:a,findAll:l,reset:d,stop:f,getAllEntries:c,getDeletedEntries:u}}const io=V,ao=ct;function co(t,e,n,r){const s=new x,o=new x,i=Br(t.sessionStoreStrategyType,t,e,n),a=oo({expireDelay:ao});i.renewObservable.subscribe(()=>{a.add(l(),Le()),s.notify()}),i.expireObservable.subscribe(()=>{o.notify(),a.closeActive(Le())}),i.expandOrRenewSession(),a.add(l(),Jn().relative),r.observable.subscribe(()=>{r.isGranted()?i.expandOrRenewSession():i.expire()}),lo(t,()=>{r.isGranted()&&i.expandOrRenewSession()}),uo(t,()=>i.expandSession()),fo(t,()=>i.restartSession());function l(){return{id:i.getSession().id,trackingType:i.getSession()[e],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(c,u)=>a.find(c,u),renewObservable:s,expireObservable:o,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function lo(t,e){yt(t,window,["click","touchstart","keydown","scroll"],e,{capture:!0,passive:!0})}function uo(t,e){const n=()=>{document.visibilityState==="visible"&&e()};ne(t,document,"visibilitychange",n),st(n,io)}function fo(t,e){ne(t,window,"resume",e,{capture:!0})}function _n(t){return t>=500}function ho(t){try{return t.clone()}catch{return}}const mo=80*M,po=32,An=3*Mt,go=V,Rn=me;function xn(t,e,n,r,s){e.transportStatus===0&&e.queuedPayloads.size()===0&&e.bandwidthMonitor.canHandle(t)?wn(t,e,n,{onSuccess:()=>Cn(0,e,n,r,s),onFailure:()=>{e.queuedPayloads.enqueue(t),vn(e,n,r,s)}}):e.queuedPayloads.enqueue(t)}function vn(t,e,n,r){t.transportStatus===2&&Se(()=>{const s=t.queuedPayloads.first();wn(s,t,e,{onSuccess:()=>{t.queuedPayloads.dequeue(),t.currentBackoffTime=Rn,Cn(1,t,e,n,r)},onFailure:()=>{t.currentBackoffTime=Math.min(go,t.currentBackoffTime*2),vn(t,e,n,r)}})},t.currentBackoffTime)}function wn(t,e,n,{onSuccess:r,onFailure:s}){e.bandwidthMonitor.add(t),n(t,o=>{e.bandwidthMonitor.remove(t),Eo(o)?(e.transportStatus=e.bandwidthMonitor.ongoingRequestCount>0?1:2,t.retry={count:t.retry?t.retry.count+1:1,lastFailureStatus:o.status},s()):(e.transportStatus=0,r())})}function Cn(t,e,n,r,s){t===0&&e.queuedPayloads.isFull()&&!e.queueFullReported&&(s({message:`Reached max ${r} events size queued for upload: ${An/Mt}MiB`,source:I.AGENT,startClocks:G()}),e.queueFullReported=!0);const o=e.queuedPayloads;for(e.queuedPayloads=Ln();o.size()>0;)xn(o.dequeue(),e,n,r,s)}function Eo(t){return t.type!=="opaque"&&(t.status===0&&!navigator.onLine||t.status===408||t.status===429||_n(t.status))}function So(){return{transportStatus:0,currentBackoffTime:Rn,bandwidthMonitor:yo(),queuedPayloads:Ln(),queueFullReported:!1}}function Ln(){const t=[];return{bytesCount:0,enqueue(e){this.isFull()||(t.push(e),this.bytesCount+=e.bytesCount)},first(){return t[0]},dequeue(){const e=t.shift();return e&&(this.bytesCount-=e.bytesCount),e},size(){return t.length},isFull(){return this.bytesCount>=An}}}function yo(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(t){return this.ongoingRequestCount===0||this.ongoingByteCount+t.bytesCount<=mo&&this.ongoingRequestCount<po},add(t){this.ongoingRequestCount+=1,this.ongoingByteCount+=t.bytesCount},remove(t){this.ongoingRequestCount-=1,this.ongoingByteCount-=t.bytesCount}}}function bo(t,e,n){const r=So(),s=(o,i)=>Ao(t,e,o,i);return{send:o=>{xn(o,r,s,t.trackType,n)},sendOnExit:o=>{To(t,e,o)}}}function To(t,e,n){if(!!navigator.sendBeacon&&n.bytesCount<e)try{const o=t.build("beacon",n);if(navigator.sendBeacon(o,n.data))return}catch(o){_o(o)}const s=t.build("xhr",n);bt(s,n.data)}let On=!1;function _o(t){On||(On=!0,Tn(t))}function Ao(t,e,n,r){if(Ro()&&n.bytesCount<e){const o=t.build("fetch",n);fetch(o,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(y(i=>r==null?void 0:r({status:i.status,type:i.type})),y(()=>{const i=t.build("xhr",n);bt(i,n.data,r)}))}else{const o=t.build("xhr",n);bt(o,n.data,r)}}function Ro(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function bt(t,e,n){const r=new XMLHttpRequest;r.open("POST",t,!0),e instanceof Blob&&r.setRequestHeader("Content-Type",e.type),ne({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(e)}function Tt(){const t=xo();if(t)return{getCapabilities(){var e;return JSON.parse(((e=t.getCapabilities)===null||e===void 0?void 0:e.call(t))||"[]")},getPrivacyLevel(){var e;return(e=t.getPrivacyLevel)===null||e===void 0?void 0:e.call(t)},getAllowedWebViewHosts(){return JSON.parse(t.getAllowedWebViewHosts())},send(e,n,r){const s=r?{id:r}:void 0;t.send(JSON.stringify({eventType:e,event:n,view:s}))}}}function Xe(t){var e;t===void 0&&(t=(e=j().location)===null||e===void 0?void 0:e.hostname);const n=Tt();return!!n&&n.getAllowedWebViewHosts().some(r=>t===r||t.endsWith(`.${r}`))}function xo(){return j().DatadogEventBridge}const qe={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function vo(t){return new x(e=>{const{stop:n}=yt(t,window,["visibilitychange","freeze"],s=>{s.type==="visibilitychange"&&document.visibilityState==="hidden"?e.notify({reason:qe.HIDDEN}):s.type==="freeze"&&e.notify({reason:qe.FROZEN})},{capture:!0}),r=ne(t,window,"beforeunload",()=>{e.notify({reason:qe.UNLOADING})}).stop;return()=>{n(),r()}})}function wo(t){return De(qe).includes(t)}function Co({encoder:t,request:e,flushController:n,messageBytesLimit:r}){let s={};const o=n.flushObservable.subscribe(d=>u(d));function i(d,f,m){n.notifyBeforeAddMessage(f),m!==void 0?(s[m]=d,n.notifyAfterAddMessage()):t.write(t.isEmpty?d:`\n${d}`,p=>{n.notifyAfterAddMessage(p-f)})}function a(d){return d!==void 0&&s[d]!==void 0}function l(d){const f=s[d];delete s[d];const m=t.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(m)}function c(d,f){const m=Q(d),p=t.estimateEncodedBytesCount(m);if(p>=r){R.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${we} ${kt}/#technical-limitations`);return}a(f)&&l(f),i(m,p,f)}function u(d){const f=De(s).join(`\n`);s={};const m=wo(d.reason),p=m?e.sendOnExit:e.send;if(m&&t.isAsync){const b=t.finishSync();b.outputBytesCount&&p(In(b));const S=[b.pendingData,f].filter(Boolean).join(`\n`);S&&p({data:S,bytesCount:nt(S)})}else f&&t.write(t.isEmpty?f:`\n${f}`),t.finish(b=>{p(In(b))})}return{flushController:n,add:c,upsert:c,stop:o.unsubscribe}}function In(t){let e;return typeof t.output=="string"?e=t.output:e=new Blob([t.output],{type:"text/plain"}),{data:e,bytesCount:t.outputBytesCount,encoding:t.encoding}}function Lo({messagesLimit:t,bytesLimit:e,durationLimit:n,pageExitObservable:r,sessionExpireObservable:s}){const o=r.subscribe(p=>u(p.reason)),i=s.subscribe(()=>u("session_expire")),a=new x(()=>()=>{o.unsubscribe(),i.unsubscribe()});let l=0,c=0;function u(p){if(c===0)return;const b=c,S=l;c=0,l=0,m(),a.notify({reason:p,messagesCount:b,bytesCount:S})}let d;function f(){d===void 0&&(d=Se(()=>{u("duration_limit")},n))}function m(){Bt(d),d=void 0}return{flushObservable:a,get messagesCount(){return c},notifyBeforeAddMessage(p){l+p>=e&&u("bytes_limit"),c+=1,l+=p,f()},notifyAfterAddMessage(p=0){l+=p,c>=t?u("messages_limit"):l>=e&&u("bytes_limit")},notifyAfterRemoveMessage(p){l-=p,c-=1,c===0&&m()}}}function kn(t,e,n,r,s,o,i=Co){const a=c(t,e),l=n&&c(t,n);function c(u,{endpoint:d,encoder:f}){return i({encoder:f,request:bo(d,u.batchBytesLimit,r),flushController:Lo({messagesLimit:u.batchMessagesLimit,bytesLimit:u.batchBytesLimit,durationLimit:u.flushTimeout,pageExitObservable:s,sessionExpireObservable:o}),messageBytesLimit:u.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(u,d=!0){a.add(u),l&&d&&l.add(n.transformMessage?n.transformMessage(u):u)},upsert:(u,d)=>{a.upsert(u,d),l&&l.upsert(n.transformMessage?n.transformMessage(u):u,d)},stop:()=>{a.stop(),l&&l.stop()}}}function Ye(){let t="",e=0;return{isAsync:!1,get isEmpty(){return!t},write(n,r){const s=nt(n);e+=s,t+=n,r&&r(s)},finish(n){n(this.finishSync())},finishSync(){const n={output:t,outputBytesCount:e,rawBytesCount:e,pendingData:""};return t="",e=0,n},estimateEncodedBytesCount(n){return n.length}}}class Oo{constructor(){this.callbacks={}}notify(e,n){const r=this.callbacks[e];r&&r.forEach(s=>s(n))}subscribe(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),{unsubscribe:()=>{this.callbacks[e]=this.callbacks[e].filter(r=>n!==r)}}}}function Io(t,e,n){let r=0,s=!1;return{isLimitReached(){if(r===0&&Se(()=>{r=0},V),r+=1,r<=e||s)return s=!1,!1;if(r===e+1){s=!0;try{n({message:`Reached max number of ${t}s by minute: ${e}`,source:I.AGENT,startClocks:G()})}finally{s=!1}}return!0}}}let _t;const At=new WeakMap;function ko(t){return _t||(_t=Do(t)),_t}function Do(t){return new x(e=>{const{stop:n}=te(XMLHttpRequest.prototype,"open",Uo),{stop:r}=te(XMLHttpRequest.prototype,"send",o=>{Po(o,t,e)},{computeHandlingStack:!0}),{stop:s}=te(XMLHttpRequest.prototype,"abort",Mo);return()=>{n(),r(),s()}})}function Uo({target:t,parameters:[e,n]}){At.set(t,{state:"open",method:String(e).toUpperCase(),url:ft(String(n))})}function Po({target:t,handlingStack:e},n,r){const s=At.get(t);if(!s)return;const o=s;o.state="start",o.startClocks=G(),o.isAborted=!1,o.xhr=t,o.handlingStack=e;let i=!1;const{stop:a}=te(t,"onreadystatechange",()=>{t.readyState===XMLHttpRequest.DONE&&l()}),l=()=>{if(c(),a(),i)return;i=!0;const u=s;u.state="complete",u.duration=Qn(o.startClocks.timeStamp,$()),u.status=t.status,r.notify(rr(u))},{stop:c}=ne(n,t,"loadend",l);r.notify(o)}function Mo({target:t}){const e=At.get(t);e&&(e.isAborted=!0)}let Rt;function Dn(){return Rt||(Rt=Fo()),Rt}function Fo(){return new x(t=>{if(!window.fetch)return;const{stop:e}=te(window,"fetch",n=>No(n,t),{computeHandlingStack:!0});return e})}function No({parameters:t,onPostCall:e,handlingStack:n},r){const[s,o]=t;let i=o&&o.method;i===void 0&&s instanceof Request&&(i=s.method);const a=i!==void 0?String(i).toUpperCase():"GET",l=s instanceof Request?s.url:ft(String(s)),c=G(),u={state:"start",init:o,input:s,method:a,startClocks:c,url:l,handlingStack:n};r.notify(u),t[0]=u.input,t[1]=u.init,e(d=>Bo(r,d,u))}function Bo(t,e,n){const r=n;function s(o){r.state="resolve",Object.assign(r,o),t.notify(r)}e.then(y(o=>{s({response:o,responseType:o.type,status:o.status,isAborted:!1})}),y(o=>{var i,a;s({status:0,isAborted:((a=(i=r.init)===null||i===void 0?void 0:i.signal)===null||a===void 0?void 0:a.aborted)||o instanceof DOMException&&o.code===DOMException.ABORT_ERR,error:o})}))}let xt={};function $o(t){const e=t.map(n=>(xt[n]||(xt[n]=Go(n)),xt[n]));return Gt(...e)}function Go(t){return new x(e=>{const n=U[t];return U[t]=(...r)=>{n.apply(console,r);const s=Ge("console error");Ee(()=>{e.notify(jo(r,t,s))})},()=>{U[t]=n}})}function jo(t,e,n){const r=t.map(o=>Wo(o)).join(" ");let s;if(e===A.error){const o=t.find(X);s={stack:o?ee(F(o)):void 0,fingerprint:cn(o),causes:o?un(o,"console"):void 0,startClocks:G(),message:r,source:I.CONSOLE,handling:"handled",handlingStack:n,context:ln(o)}}return{api:e,message:r,error:s,handlingStack:n}}function Wo(t){return typeof t=="string"?N(t):X(t)?sn(F(t)):Q(N(t),void 0,2)}function zo(t){const e=pn(t)==="object";return e||R.error("Unsupported context:",t),e}function vt(t,e,n){const r={...t};for(const[s,{required:o,type:i}]of Object.entries(e))i==="string"&&s in r&&(r[s]=String(r[s])),o&&!(s in t)&&R.warn(`The property ${s} of ${n} is required; context will not be sent to the intake.`);return r}function He(t="",{customerDataTracker:e,propertiesConfig:n={}}={}){let r={};const s=new x,o={getContext:()=>gn(r),setContext:i=>{zo(i)?(r=N(vt(i,n,t)),e==null||e.updateCustomerData(r)):o.clearContext(),s.notify()},setContextProperty:(i,a)=>{r=N(vt({...r,[i]:a},n,t)),e==null||e.updateCustomerData(r),s.notify()},removeContextProperty:i=>{delete r[i],e==null||e.updateCustomerData(r),vt(r,n,t),s.notify()},clearContext:()=>{r={},e==null||e.resetCustomerData(),s.notify()},changeObservable:s};return o}const Xo="_dd_c",qo=[];function wt(t,e,n,r){const s=Yo(n,r);qo.push(ne(t,window,"storage",({key:c})=>{s===c&&i()})),e.changeObservable.subscribe(a);const o=le(l(),e.getContext());ge(o)||e.setContext(o);function i(){e.setContext(l())}function a(){localStorage.setItem(s,JSON.stringify(e.getContext()))}function l(){const c=localStorage.getItem(s);return c?JSON.parse(c):{}}}function Yo(t,e){return`${Xo}_${t}_${e}`}const Ho=3*M,Vo=16*M,Ko=200;function Zo(t=2){const e=new Map;let n=!1;function r(s=0){if(n||t===0)return;const o=t===2?Ho:Vo;let i=s;e.forEach(a=>{i+=a.getBytesCount()}),i>o&&(Jo(o),n=!0)}return{createDetachedTracker:()=>{const s=Un(()=>r(s.getBytesCount()));return s},getOrCreateTracker:s=>(e.has(s)||e.set(s,Un(r)),e.get(s)),setCompressionStatus:s=>{t===0&&(t=s,r())},getCompressionStatus:()=>t,stop:()=>{e.forEach(s=>s.stop()),e.clear()}}}function Un(t){let e=0;const{throttled:n,cancel:r}=jt(o=>{e=nt(Q(o)),t()},Ko),s=()=>{r(),e=0};return{updateCustomerData:o=>{ge(o)?s():n(o)},resetCustomerData:s,getBytesCount:()=>e,stop:()=>{r()}}}function Jo(t){R.warn(`Customer data exceeds the recommended ${t/M}KiB threshold. ${we} ${kt}/#customer-data-exceeds-the-recommended-threshold-warning`)}function Qo(t,e,n){const r=t.getReader(),s=[];let o=0;i();function i(){r.read().then(y(l=>{if(l.done){a();return}s.push(l.value),o+=l.value.length,o>n.bytesLimit?a():i()}),y(l=>e(l)))}function a(){r.cancel().catch(W);let l,c;{let u;if(s.length===1)u=s[0];else{u=new Uint8Array(o);let d=0;s.forEach(f=>{u.set(f,d),d+=f.length})}l=u.slice(0,n.bytesLimit),c=u.length>n.bytesLimit}e(void 0,l,c)}}const ei="datadog-synthetics-public-id",ti="datadog-synthetics-result-id",ni="datadog-synthetics-injects-rum";function Pn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||K(ni))}function ri(){const t=window._DATADOG_SYNTHETICS_PUBLIC_ID||K(ei);return typeof t=="string"?t:void 0}function si(){const t=window._DATADOG_SYNTHETICS_RESULT_ID||K(ti);return typeof t=="string"?t:void 0}function Ve(t,e,n){const r=n.getHandler(),s=Array.isArray(r)?r:[r];return Mn[t]>=Mn[n.getLevel()]&&s.includes(e)}const g={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Mn={[g.ok]:0,[g.debug]:1,[g.info]:2,[g.notice]:4,[g.warn]:5,[g.error]:6,[g.critical]:7,[g.alert]:8,[g.emerg]:9};function Ke(t,{includeMessage:e=!1}={}){return{stack:t.stack,kind:t.type,message:e?t.message:void 0,causes:t.causes,fingerprint:t.fingerprint,handling:t.handling}}var oi=function(t,e,n,r){var s=arguments.length,o=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(o=(s<3?i(o):s>3?i(e,n,o):i(e,n))||o);return s>3&&o&&Object.defineProperty(e,n,o),o};const xe={console:"console",http:"http",silent:"silent"},ii=Object.keys(g);let k=class{constructor(e,n,r,s=xe.http,o=g.debug,i={}){this.handleLogStrategy=e,this.handlerType=s,this.level=o,this.contextManager=He("logger",{customerDataTracker:n}),this.contextManager.setContext(i),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(e,n,r=g.info,s,o){const i=N(n);let a;if(s!=null){const l=an({stackTrace:X(s)?F(s):void 0,originalError:s,nonErrorPrefix:"Provided",source:I.LOGGER,handling:"handled",startClocks:G()});a=le({error:Ke(l,{includeMessage:!0})},i)}else a=i;this.handleLogStrategy({message:N(e),context:a,status:r},this,o)}log(e,n,r=g.info,s){let o;Ve(r,xe.http,this)&&(o=Ge("log")),this.logImplementation(e,n,r,s,o)}setContext(e){this.contextManager.setContext(e)}getContext(){return this.contextManager.getContext()}setContextProperty(e,n){this.contextManager.setContextProperty(e,n)}removeContextProperty(e){this.contextManager.removeContextProperty(e)}clearContext(){this.contextManager.clearContext()}setHandler(e){this.handlerType=e}getHandler(){return this.handlerType}setLevel(e){this.level=e}getLevel(){return this.level}};oi([ir],k.prototype,"logImplementation",null),k.prototype.ok=B(g.ok),k.prototype.debug=B(g.debug),k.prototype.info=B(g.info),k.prototype.notice=B(g.notice),k.prototype.warn=B(g.warn),k.prototype.error=B(g.error),k.prototype.critical=B(g.critical),k.prototype.alert=B(g.alert),k.prototype.emerg=B(g.emerg);function B(t){return function(e,n,r){let s;Ve(t,xe.http,this)&&(s=Ge("log")),this.logImplementation(e,n,t,r,s)}}function ai(t,e,n){return{view:{referrer:document.referrer,url:window.location.href},context:t.getContext(),user:e.getContext(),account:n.getContext()}}const ci=32*M;function li(t){t.usePciIntake===!0&&t.site&&t.site!=="datadoghq.com"&&R.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const e=is(t),n=Fn(t.forwardConsoleLogs,De(A),"Forward Console Logs"),r=Fn(t.forwardReports,De(je),"Forward Reports");if(!(!e||!n||!r))return t.forwardErrorsToLogs&&!n.includes(A.error)&&n.push(A.error),{forwardErrorsToLogs:t.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:ci,...e}}function Fn(t,e,n){if(t===void 0)return[];if(!(t==="all"||Array.isArray(t)&&t.every(r=>e.includes(r)))){R.error(`${n} should be "all" or an array with allowed values "${e.join(\'", "\')}"`);return}return t==="all"?e:Xs(t)}function ui(t){const e=as(t);return{forward_errors_to_logs:t.forwardErrorsToLogs,forward_console_logs:t.forwardConsoleLogs,forward_reports:t.forwardReports,use_pci_intake:t.usePciIntake,...e}}function di(t,e,n){const r=Sn();let s,o;const i=e.observable.subscribe(a);function a(){if(!o||!s||!e.isGranted())return;i.unsubscribe();const l=n(s,o);r.drain(l)}return{init(l){if(!l){R.error("Missing configuration");return}if(cs(l.enableExperimentalFeatures),Xe()&&(l=fi(l)),s=l,o){dn("DD_LOGS",l);return}const c=li(l);c&&(o=c,Dn().subscribe(W),e.tryToInit(c.trackingConsent),a())},get initConfiguration(){return s},getInternalContext:W,handleLog(l,c,u,d=t(),f=$()){r.add(m=>m.handleLog(l,c,u,d,f))}}}function fi(t){return{...t,clientToken:"empty"}}const Ct="logs";function hi(t){const e=Zo(),n=He("global context",{customerDataTracker:e.getOrCreateTracker(2)}),r=He("user",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),s=He("account",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),o=$r();function i(){return ai(n,r,s)}let a=di(i,o,(u,d)=>{u.storeContextsAcrossPages&&(wt(d,n,Ct,2),wt(d,r,Ct,1),wt(d,s,Ct,4));const f=t(u,d,i,o);return a=mi(u,f),f});const l={},c=new k((...u)=>a.handleLog(...u),e.createDetachedTracker());return Ms({logger:c,init:y(u=>a.init(u)),setTrackingConsent:y(u=>{o.update(u),eo({feature:"set-tracking-consent",tracking_consent:u})}),getGlobalContext:y(()=>n.getContext()),setGlobalContext:y(u=>n.setContext(u)),setGlobalContextProperty:y((u,d)=>n.setContextProperty(u,d)),removeGlobalContextProperty:y(u=>n.removeContextProperty(u)),clearGlobalContext:y(()=>n.clearContext()),createLogger:y((u,d={})=>(l[u]=new k((...f)=>a.handleLog(...f),e.createDetachedTracker(),N(u),d.handler,d.level,N(d.context)),l[u])),getLogger:y(u=>l[u]),getInitConfiguration:y(()=>gn(a.initConfiguration)),getInternalContext:y(u=>a.getInternalContext(u)),setUser:y(r.setContext),getUser:y(r.getContext),setUserProperty:y(r.setContextProperty),removeUserProperty:y(r.removeContextProperty),clearUser:y(r.clearContext),setAccount:y(s.setContext),getAccount:y(s.getContext),setAccountProperty:y(s.setContextProperty),removeAccountProperty:y(s.removeContextProperty),clearAccount:y(s.clearContext)})}function mi(t,e){return{init:n=>{dn("DD_LOGS",n)},initConfiguration:t,...e}}const pi="logs";function gi(t,e){const n=co(t,pi,r=>Si(t,r),e);return{findTrackedSession:(r,s={returnInactive:!1})=>{const o=n.findSession(r,s);return o&&o.trackingType==="1"?{id:o.id,anonymousId:o.anonymousId}:void 0},expireObservable:n.expireObservable}}function Ei(t){const n=Nn(t)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new x}}function Nn(t){return Ce(t.sessionSampleRate)?"1":"0"}function Si(t,e){const n=yi(e)?e:Nn(t);return{trackingType:n,isTracked:n==="1"}}function yi(t){return t==="0"||t==="1"}let Bn=!1;function Ze(t){const e=window;if(Pn()){const r=n(e.DD_RUM_SYNTHETICS);return!r&&!Bn&&(Bn=!0,bn("Logs sent before RUM is injected by the synthetics worker",{testId:ri(),resultId:si()})),r}return n(e.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(t)}}function bi(t,e,n,r,s){const o=ii.concat(["custom"]),i={};o.forEach(a=>{i[a]=Io(a,e.eventRateLimiterThreshold,s)}),n.subscribe(0,({rawLogsEvent:a,messageContext:l=void 0,savedCommonContext:c=void 0,domainContext:u})=>{var d,f;const m=tr(a.date),p=t.findTrackedSession(m);if(!t.findTrackedSession(m,{returnInactive:!0}))return;const S=c||r();let D;!ge(S.account)&&S.account.id&&(D=S.account),p&&p.anonymousId&&!S.user.anonymous_id&&(S.user.anonymous_id=p.anonymousId);const w=le({service:e.service,session_id:p?p.id:void 0,session:p?{id:p.id}:void 0,usr:ge(S.user)?void 0:S.user,account:D,view:S.view},S.context,Ze(m),a,l);((d=e.beforeSend)===null||d===void 0?void 0:d.call(e,w,u))===!1||w.origin!==I.AGENT&&((f=i[w.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,w)})}const Ti={[A.log]:g.info,[A.debug]:g.debug,[A.info]:g.info,[A.warn]:g.warn,[A.error]:g.error};function _i(t,e){const n=$o(t.forwardConsoleLogs).subscribe(r=>{var s;const o={rawLogsEvent:{date:$(),message:r.message,origin:I.CONSOLE,error:r.error&&Ke(r.error),status:Ti[r.api]},messageContext:(s=r.error)===null||s===void 0?void 0:s.context,domainContext:{handlingStack:r.handlingStack}};e.notify(0,o)});return{stop:()=>{n.unsubscribe()}}}function Ai(t,e){const n=Ns(t,t.forwardReports).subscribe(r=>{let s=r.message,o;const i=r.originalError.type==="deprecation"?g.warn:g.error;i===g.error?o=Ke(r):r.stack&&(s+=` Found in ${ks(r.stack)}`),e.notify(0,{rawLogsEvent:{date:$(),message:s,origin:I.REPORT,error:o,status:i}})});return{stop:()=>{n.unsubscribe()}}}function Ri(t,e){if(!t.forwardErrorsToLogs)return{stop:W};const n=ko(t).subscribe(o=>{o.state==="complete"&&s("xhr",o)}),r=Dn().subscribe(o=>{o.state==="resolve"&&s("fetch",o)});function s(o,i){!ss(i.url)&&(Ci(i)||_n(i.status))&&("xhr"in i?xi(i.xhr,t,a):i.response?wi(i.response,t,a):i.error&&vi(i.error,t,a));function a(l){const c={isAborted:i.isAborted,handlingStack:i.handlingStack};e.notify(0,{rawLogsEvent:{message:`${Li(o)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:l||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:g.error,origin:I.NETWORK},domainContext:c})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function xi(t,e,n){typeof t.response=="string"?n(Lt(t.response,e)):n(t.response)}function vi(t,e,n){n(Lt(ee(F(t)),e))}function wi(t,e,n){const r=ho(t);!r||!r.body?n():window.TextDecoder?Oi(r.body,e.requestErrorResponseLengthLimit,(s,o)=>{n(s?`Unable to retrieve response: ${s}`:o)}):r.text().then(y(s=>n(Lt(s,e))),y(s=>n(`Unable to retrieve response: ${s}`)))}function Ci(t){return t.status===0&&t.responseType!=="opaque"}function Lt(t,e){return t.length>e.requestErrorResponseLengthLimit?`${t.substring(0,e.requestErrorResponseLengthLimit)}...`:t}function Li(t){return t==="xhr"?"XHR":"Fetch"}function Oi(t,e,n){Qo(t,(r,s,o)=>{if(r)n(r);else{let i=new TextDecoder().decode(s);o&&(i+="..."),n(void 0,i)}},{bytesLimit:e,collectStreamBody:!0})}function Ii(t,e){if(!t.forwardErrorsToLogs)return{stop:W};const n=new x,{stop:r}=Ds(n),s=n.subscribe(o=>{e.notify(0,{rawLogsEvent:{message:o.message,date:o.startClocks.timeStamp,error:Ke(o),origin:I.SOURCE,status:g.error},messageContext:o.context})});return{stop:()=>{r(),s.unsubscribe()}}}const ki=Oo;function Di(t){function e(n,r,s,o,i){const a=le(r.getContext(),n.context);if(Ve(n.status,xe.console,r)&&Pi(n,a),Ve(n.status,xe.http,r)){const l={rawLogsEvent:{date:i||$(),message:n.message,status:n.status,origin:I.LOGGER},messageContext:a,savedCommonContext:o};s&&(l.domainContext={handlingStack:s}),t.notify(0,l)}}return{handleLog:e}}const Ui={[g.ok]:A.debug,[g.debug]:A.debug,[g.info]:A.info,[g.notice]:A.info,[g.warn]:A.warn,[g.error]:A.error,[g.critical]:A.error,[g.alert]:A.error,[g.emerg]:A.error};function Pi({status:t,message:e},n){H[Ui[t]].call(U,e,n)}function Mi(t,e,n,r,s){const o=kn(t,{endpoint:t.logsEndpointBuilder,encoder:Ye()},t.replica&&{endpoint:t.replica.logsEndpointBuilder,encoder:Ye()},n,r,s.expireObservable);return e.subscribe(1,i=>{o.add(i)}),o}function Fi(t){const e=Tt();t.subscribe(1,n=>{e.send("log",n)})}function Ni(t){return{get:e=>{const n=t.findTrackedSession(e);if(n)return{session_id:n.id}}}}function Bi(t){return e=>{t.notify(0,{rawLogsEvent:{message:e.message,date:e.startClocks.timeStamp,origin:I.AGENT,status:g.error}}),bn("Error reported to customer",{"error.message":e.message})}}function $i(t,e,n,r,s){const o=Vs("browser-logs-sdk",e);o.setContextProvider(()=>{var a,l,c,u,d,f;return{application:{id:(a=Ze())===null||a===void 0?void 0:a.application_id},session:{id:(l=s.findTrackedSession())===null||l===void 0?void 0:l.id},view:{id:(u=(c=Ze())===null||c===void 0?void 0:c.view)===null||u===void 0?void 0:u.id},action:{id:(f=(d=Ze())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(Xe()){const a=Tt(),l=o.observable.subscribe(c=>a.send("internal_telemetry",c));i.push(()=>l.unsubscribe())}else{const a=kn(e,{endpoint:e.rumEndpointBuilder,encoder:Ye()},e.replica&&{endpoint:e.replica.rumEndpointBuilder,encoder:Ye()},n,r,s.expireObservable);i.push(()=>a.stop());const l=o.observable.subscribe(c=>a.add(c,Js(e)));i.push(()=>l.unsubscribe())}return Zs(),Qs(ui(t)),{telemetry:o,stop:()=>{i.forEach(a=>a())}}}function Gi(t,e,n,r){const s=new ki,o=[];s.subscribe(1,f=>mn("logs",f));const i=Bi(s),a=vo(e),l=e.sessionStoreStrategyType&&!Xe()&&!Pn()?gi(e,r):Ei(e),{stop:c}=$i(t,e,i,a,l);o.push(()=>c()),Ri(e,s),Ii(e,s),_i(e,s),Ai(e,s);const{handleLog:u}=Di(s);if(bi(l,e,s,n,i),Xe())Fi(s);else{const{stop:f}=Mi(e,s,i,a,l);o.push(()=>f())}const d=Ni(l);return{handleLog:u,getInternalContext:d.get,stop:()=>{o.forEach(f=>f())}}}const de=hi(Gi);Fs(j(),"DD_LOGS",de);const v=class v{constructor(e,n,r,s,o){this.copy=()=>new v(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let a=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,v.toStr(i)},this.toFrames=i=>{let a=60,l=0;Math.floor(i)==60?(a=60,l=0):Math.floor(i)==59?(a=60,l=4):Math.floor(i)==30?(a=30,l=0):Math.floor(i)==29&&(a=30,l=2);let c=this.h,u=this.m,d=this.s,f=this.f,m=this.field;const p=c*60+u,S=(p-Math.floor(p/10))*l;return c*(a*3600)+u*(a*60)+d*a+(f*2+m)-S},this.addSeconds=i=>{let a=this.copy();return a.s+=i,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(i,a)=>{let l=this.toFrames(a);return l+=i,v.fromFrames(l,a)},this.subtractFrames=(i,a)=>this.addFrames(-i,a),this.h=e||0,this.m=n||0,this.s=r||0,this.f=s||0,this.field=o||0}static compare(e,n){return e.h!==n.h?e.h<n.h?-1:1:e.m!==n.m?e.m<n.m?-1:1:e.s!==n.s?e.s<n.s?-1:1:e.f!==n.f?e.f<n.f?-1:1:e.field!==n.field?e.field<n.field?-1:1:0}static generateTimecodeRange(e,n,r){const s=[];let o=e;for(;v.compare(o,n)<=0;)s.push(o),o=o.addSeconds(r);return s}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(e){return this.toFrames(e)*1e3/e}};v.calculateCurrentTimeCode=e=>{var d;if(!e.video||!e.clocker||!e.gameParams)throw new Error("OTTPlayer is not initialized");const n=e.video,r=e.clocker,s=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*s+r.syncPoint.frame;if(a===0||s===0)throw new Error("Current frame is 0 or fps is 0");const l=v.calculateCurrentOffset(a,(d=e.gameParams)==null?void 0:d.offsets);if(l===void 0)throw new Error("Offset is undefined");let c=Math.floor(a-l);return c<0&&(c+=5178816),c>=5178816&&(c-=5178816),v.fromFrames(c,s)},v.calculateCurrentOffset=(e,n)=>{for(let r=1;r<n.length;r++)if(e<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},v.fromFrames=(e,n)=>{let r=60,s=0;Math.floor(n)==60?(r=60,s=0):Math.floor(n)==59?(r=60,s=4):Math.floor(n)==30?(r=30,s=0):Math.floor(n)==29&&(r=30,s=2);let o=Math.floor(n*60),i=Math.floor(n*60*10),a=i*6,l=e,c=Math.floor(l/a);l-=c*a;let u=Math.floor(l/i);l-=u*i,l>=r*60&&(l+=s*(Math.floor((l-r*60)/o)+1));let d=Math.floor(l/(r*60));l-=d*(r*60);let f=Math.floor(l/r);l-=f*r;let m=l;d+=u*10;let p=0;return p=m%2,m=Math.floor(m/2),new v(c,d,f,m,p)},v.toStr=e=>{const n="_";let r=("0"+e.h).slice(-2)+n+("0"+e.m).slice(-2)+n+("0"+e.s).slice(-2)+n+("0"+e.f).slice(-2);return e.field&&(r+="_1"),r},v.fromStr=e=>{const r=e.split("_").map(Number);if(r.length==4){const[s,o,i,a]=r;return new v(s,o,i,a,0)}else if(r.length==5){const[s,o,i,a,l]=r;return new v(s,o,i,a,l)}else throw new Error("Invalid timecode format: "+e)},v.fromMetadata=e=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,r=e.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+e.timecode);const[,s,o,i,a,l]=r,c=Number(s),u=Number(o),d=Number(i),f=Number(a),m=l?Number(l):0;return new v(c,u,d,f,m)};let P=v;const h=class h{constructor(e){h.options=e,this.isLoggingOn=e.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&de.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),h.tracking.mac=r,h.tracking.dev=`${e.platform}_${e.browserName}`,h.beatHandle||(h.options&&T(h.options,"Logger")&&console.log("[Logger] Starting tracking beat"),h.beatHandle=window.setInterval(h.flushTracking,15e3))}static setMessagePort(e){this.messagePort=e}static getMessagePort(){return this.messagePort}setLoggingOn(e){this.isLoggingOn=e}setAttributes(e){h.processAttributes(e);for(const n in e)de.logger.setContextProperty(n,e[n])}info(e,n){e==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),e==="didToggleGlobalAugmentationDrawing"&&this.emit("mediaSessionDidUpdateGlobalAugmentationState",{isGlobalAugmentationEnabled:(n==null?void 0:n.isEnabled)||!0}),e==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),e==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),e==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&h.processAttributes(n),this.isLoggingOn&&(de.logger.info(e,n),h.options&&T(h.options,"Logger")&&console.log("[Logger] Sending info: ",e))}error(e,n){n&&h.processAttributes(n),this.isLoggingOn&&(de.logger.error(e,n),h.tracking.err_time=Date.now().toFixed(0),h.tracking.err_desc=e+(n?` - ${JSON.stringify(n)}`:""),h.options&&T(h.options,"Logger")&&console.log("[Logger] Sending error: ",e))}warn(e,n){n&&h.processAttributes(n),this.isLoggingOn&&(de.logger.warn(e,n),h.options&&T(h.options,"Logger")&&console.log("[Logger] Sending warn: ",e))}handleMessageFromWorker(e){e.actionType==="INFO"?this.info(e.message,e.attributes):e.actionType==="ERROR"?this.error(e.message,e.attributes):e.actionType==="WARN"?this.warn(e.message,e.attributes):e.actionType==="SET_ATTRIBUTES"&&e.attributes&&this.setAttributes(e.attributes)}static setAttributes(e){h.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:e})}static info(e,n){h.messagePort.postMessage({type:"LOG",actionType:"INFO",message:e,attributes:n})}static error(e,n){h.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:e,attributes:n})}static warn(e,n){h.messagePort.postMessage({type:"LOG",actionType:"WARN",message:e,attributes:n})}static processAttributes(e){if(e.player_version&&(h.tracking.sdk=e.player_version),e.media_id&&(h.tracking.gid=e.media_id),e.game_id&&(h.tracking.buc=e.game_id),e.bb_session_id&&(h.tracking.sid=e.bb_session_id,h.options&&T(h.options,"Logger")&&console.log("[Logger] Setting bb_session_id:",h.tracking.sid)),e.last_timecode){const r=P.fromStr(e.last_timecode);h.tracking.tc=r.print(),h.lastTimecodeMillis=r.totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))}e.last_offset&&(h.tracking.off=e.last_offset),e.last_loading_zip&&(h.tracking.zip=e.last_loading_zip+".zip",h.lastZipMillis=P.fromStr(e.last_loading_zip).totalMilliseconds(59.94),h.lastTimecodeMillis&&h.lastZipMillis&&(h.tracking.cache=(h.lastZipMillis-h.lastTimecodeMillis).toFixed(0))),e.last_rendered_frame&&(h.tracking.aug_time=Date.now().toFixed(0)),e.asset&&(h.tracking.asset=e.asset)}static objectToQuery(e){return Object.entries(e).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(e,n){const r=new CustomEvent(e,{detail:n});this.eventTarget.dispatchEvent(r)}};h.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},h.lastTimecodeMillis=0,h.lastZipMillis=0,h.flushTracking=()=>{const e=Date.now().toFixed(0);h.tracking.now=e;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${h.objectToQuery(h.tracking)}`;h.options&&T(h.options,"Logger")&&console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),h.tracking.err_desc="",h.tracking.err_time=""};let C=h;const ji=`\nprecision highp float;\n\nattribute vec2 a_position; // pixel coords, 6 verts / quad\nattribute vec4 a_uv; // atlas UV (min_u, min_v, max_u, max_v)\nattribute mat3 a_transform; // transformation matrix for this vertex\n\nuniform vec2 u_resolution; // full frame size\n\nvarying vec2 v_maskUV; // for alpha mask\nvarying vec4 v_adUV; // atlas UV bounds\nvarying mat3 v_transform; // pass transform to fragment shader\n\nvoid main () {\n vec2 clipSpace = 2.0 * (a_position / u_resolution) - 1.0;\n gl_Position = vec4(clipSpace * vec2(1.0,-1.0), 0.0, 1.0);\n\n v_adUV = a_uv; // Pass through all 4 UV coordinates\n v_maskUV = a_position / u_resolution;\n v_transform = a_transform;\n}\n`,Wi=`\nprecision highp float;\n\nuniform sampler2D u_atlas; // packed logos\nuniform sampler2D u_alphaMask; // full-frame mask (changes every video frame)\nuniform float u_opacity;\nuniform vec2 u_resolution; // full frame size\n\nvarying vec4 v_adUV; // min_u, min_v, max_u, max_v\nvarying vec2 v_maskUV;\nvarying mat3 v_transform; // transformation matrix for this fragment\n\nconst float Directions = 16.0; // BLUR DIRECTIONS\nconst float QualityAd = 3.0; // BLUR QUALITY\nconst float BlurRadiusAd = 3.0;\n\n// Pi here is 2*pi = 6.283185..., so we can do 16 steps across 2*pi\nconst float Pi = 6.28318530718;\n\nvec4 BlurAd(sampler2D adTexture, vec2 adTexCoord) {\n // Convert our "BlurRadiusAd" to texture coords\n vec2 radius = BlurRadiusAd / u_resolution.xy;\n \n // Start by sampling once at the center\n vec4 resultColor = texture2D(adTexture, adTexCoord);\n int sampleCount = 1;\n\n // Convert float constants into integer loop bounds\n const int directions = int(Directions);\n const int quality = int(QualityAd);\n\n // For each direction around the circle...\n for (int d = 0; d < directions; d++) {\n // angle goes from 0 to 2*pi in increments of 2*pi/directions\n float angle = float(d) * (Pi / float(directions));\n\n // For each blur step outward in that direction\n for (int i = 1; i <= quality; i++) {\n // E.g. if quality=3, i goes 1..3\n float step = float(i) / float(quality);\n\n // offset is step fraction of the full radius, in polar coords\n vec2 offset = step * radius * vec2(cos(angle), sin(angle));\n\n // Accumulate that sample\n resultColor += texture2D(adTexture, adTexCoord + offset);\n sampleCount++;\n }\n }\n\n // Divide by the total sample count to average\n return resultColor / float(sampleCount);\n}\n\nvec2 transformPoint(vec2 point) {\n float x = (v_transform[0][0] * point.x + v_transform[0][1] * point.y + v_transform[0][2]) / \n (v_transform[2][0] * point.x + v_transform[2][1] * point.y + 1.0);\n float y = (v_transform[1][0] * point.x + v_transform[1][1] * point.y + v_transform[1][2]) / \n (v_transform[2][0] * point.x + v_transform[2][1] * point.y + 1.0);\n return vec2(x, y) / u_resolution;\n}\n\nvoid main () {\n // Transform the current position using the transformation matrix\n vec2 transformedUV = transformPoint(vec2(gl_FragCoord.x, u_resolution.y - gl_FragCoord.y));\n \n // If the transformed coordinate is outside [0,1], discard the fragment\n if(transformedUV.x < 0.0 || transformedUV.x > 1.0 || transformedUV.y < 0.0 || transformedUV.y > 1.0) {\n discard;\n }\n\n // Map the transformed coordinate to the atlas region\n vec2 atlasUV = mix(vec2(v_adUV.x, v_adUV.y), // min_u, min_v\n vec2(v_adUV.z, v_adUV.w), // max_u, max_v\n transformedUV); // interpolation factor\n \n float mask = texture2D(u_alphaMask, v_maskUV).r;\n vec4 ad = BlurAd(u_atlas, atlasUV);\n\n float a = ad.a * mask * u_opacity;\n gl_FragColor = vec4(ad.rgb * a, a);\n //gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); // Force black color for testing\n //gl_FragColor = texture2D(u_alphaMask, v_maskUV) * (1. + a * 0.); // Force alpha mask color for testing\n}\n`;function zi(t,e,n){let r=0,s=0;for(const o of Object.values(t)){const i=o.corners,a=Math.abs($n(i));if(!a)continue;const l=Xi(i,e,n),c=l.length>=3?Math.abs($n(l)):0;r+=c,s+=a}return{percentOfAd:s?r/s*100:0,percentOfScreen:r/(e*n)*100}}function $n(t){let e=0;for(let n=0,r=t.length-1;n<t.length;r=n++)e+=t[r].x*t[n].y-t[n].x*t[r].y;return e*.5}function Xi(t,e,n){const r=[{inside:o=>o.x>=0,inter:(o,i)=>({x:0,y:o.y+(i.y-o.y)*(0-o.x)/(i.x-o.x)})},{inside:o=>o.x<=e,inter:(o,i)=>({x:e,y:o.y+(i.y-o.y)*(e-o.x)/(i.x-o.x)})},{inside:o=>o.y>=0,inter:(o,i)=>({x:o.x+(i.x-o.x)*(0-o.y)/(i.y-o.y),y:0})},{inside:o=>o.y<=n,inter:(o,i)=>({x:o.x+(i.x-o.x)*(n-o.y)/(i.y-o.y),y:n})}];let s=t;for(const o of r){const i=s;if(s=[],!i.length)break;let a=i[i.length-1];for(const l of i){const c=o.inside(l),u=o.inside(a);c?(u||s.push(o.inter(a,l)),s.push(l)):u&&s.push(o.inter(a,l)),a=l}}return s}class Gn{constructor(e,n){this.logoToRegion=new Map,this.atlasDirty=!1,this.nextX=0,this.nextY=0,this.rowH=0,this.INITIAL_ATLAS_SIZE=256,this.ATLAS_SIZE=this.INITIAL_ATLAS_SIZE,this.queryInFlight=!1,this.GPUFrameTimeCount=0,this.GPUFrameTimeSum=0,this.avgGPUFrameTime=0,this.CPUFrameTimeCount=0,this.CPUFrameTimeSum=0,this.avgCPUFrameTime=0,this.compileShader=(r,s)=>{const o=this.gl,i=o.createShader(r);return o.shaderSource(i,s),o.compileShader(i),o.getShaderParameter(i,o.COMPILE_STATUS)?i:(console.error(`Error compiling shader: ${o.getShaderInfoLog(i)}`),o.deleteShader(i),null)},this.createTextureFromVideoFrame=r=>{const s=this.gl,o=s.createTexture();return s.bindTexture(s.TEXTURE_2D,o),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,r),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),o},this.deleteTexture=r=>{this.gl.deleteTexture(r)},this.options=n,this.renderer=e,this.gl=e.glContext,this.initTiming()}init(){this.initAtlas(),this.initBuffers(),this.initPrograms()}initPrograms(){const e=this.gl;this.program=this.linkProgram(ji,Wi),this.aPos=e.getAttribLocation(this.program,"a_position"),this.aUv=e.getAttribLocation(this.program,"a_uv"),this.aTransform=e.getAttribLocation(this.program,"a_transform"),this.uRes=e.getUniformLocation(this.program,"u_resolution"),this.uOpacity=e.getUniformLocation(this.program,"u_opacity"),this.uAtlas=e.getUniformLocation(this.program,"u_atlas"),this.uAlphaMask=e.getUniformLocation(this.program,"u_alphaMask"),e.useProgram(this.program)}linkProgram(e,n){const r=this.gl,s=this.compileShader(r.VERTEX_SHADER,e),o=this.compileShader(r.FRAGMENT_SHADER,n),i=r.createProgram();if(r.attachShader(i,s),r.attachShader(i,o),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS)){const a=r.getProgramInfoLog(i);throw console.error("WebGL link error: "+a),new Error("WebGL link error: "+a)}if(!r.getProgramParameter(i,r.LINK_STATUS)){const a=r.getProgramInfoLog(i);throw new Error("WebGL link error: "+a)}return i}drawAugmentation(e,n,r=1){var d;const s=performance.now();this.syncAtlasGL();const{pos:o,uv:i,transforms:a,vertCount:l}=this.buildQuadData(n);if(!l)return;if(!this.program||this.aPos===void 0||this.aUv===void 0||this.aTransform===void 0||!this.uRes||!this.uOpacity||!this.uAtlas||!this.uAlphaMask){T(this.options,"Errors")&&console.error("[Renderer] Program or attributes not initialized");return}const c=this.gl;c.useProgram(this.program),c.uniform2f(this.uRes,c.canvas.width,c.canvas.height),c.viewport(0,0,c.canvas.width,c.canvas.height),c.uniform1f(this.uOpacity,r),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,e),c.uniform1i(this.uAlphaMask,0),c.activeTexture(c.TEXTURE1),c.bindTexture(c.TEXTURE_2D,this.atlasTex),c.uniform1i(this.uAtlas,1),c.bindBuffer(c.ARRAY_BUFFER,this.posBuf),c.bufferData(c.ARRAY_BUFFER,o,c.DYNAMIC_DRAW),c.enableVertexAttribArray(this.aPos),c.vertexAttribPointer(this.aPos,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.uvBuf),c.bufferData(c.ARRAY_BUFFER,i,c.DYNAMIC_DRAW),c.enableVertexAttribArray(this.aUv),c.vertexAttribPointer(this.aUv,4,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this.transformBuf),c.bufferData(c.ARRAY_BUFFER,a,c.DYNAMIC_DRAW);const u=9*4;for(let f=0;f<3;f++){const m=this.aTransform+f;c.enableVertexAttribArray(m),c.vertexAttribPointer(m,3,c.FLOAT,!1,u,f*3*4)}if(c.enable(c.BLEND),c.blendFunc(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),this.beginTimer(),c.drawArrays(c.TRIANGLES,0,l),this.endTimer(),this.measureLogoVisibility(n),(d=this.options.debug)!=null&&d.trackPerformance){const m=performance.now()-s;this.CPUFrameTimeCount++,this.CPUFrameTimeSum+=m,this.avgCPUFrameTime=this.CPUFrameTimeSum/this.CPUFrameTimeCount}}initBuffers(){const e=this.gl;this.posBuf=e.createBuffer(),this.uvBuf=e.createBuffer(),this.transformBuf=e.createBuffer(),this.fsPosBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.fsPosBuf),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,1,1,0,0,1,1,0,1]),e.STATIC_DRAW),this.fsUvBuf=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.fsUvBuf),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,1,1,0,0,1,1,0,1]),e.STATIC_DRAW)}buildQuadData(e){const n=[],r=[],s=[];return Object.values(e).forEach(o=>{var c,u;const i=(u=(c=this.renderer.ads)==null?void 0:c.adMap.get(o.name))==null?void 0:u.name;if(!i)return;const a=this.logoToRegion.get(i);if(!a)return;const l=o.corners;n.push(l[0].x,l[0].y,l[1].x,l[1].y,l[2].x,l[2].y,l[0].x,l[0].y,l[2].x,l[2].y,l[3].x,l[3].y);for(let d=0;d<6;d++)r.push(a.u0,a.v0,a.u1,a.v1);for(let d=0;d<6;d++)s.push(...o.tranform)}),{pos:new Float32Array(n),uv:new Float32Array(r),transforms:new Float32Array(s),vertCount:n.length/2}}cleanGL(){this.gl.clearColor(0,0,0,0),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}initAtlas(){this.atlasCanvas=new OffscreenCanvas(this.INITIAL_ATLAS_SIZE,this.INITIAL_ATLAS_SIZE),this.atlasCanvas.width=this.atlasCanvas.height=this.INITIAL_ATLAS_SIZE,this.atlasCtx=this.atlasCanvas.getContext("2d"),this.atlasTex=this.gl.createTexture(),this.atlasCtx.clearRect(0,0,this.INITIAL_ATLAS_SIZE,this.INITIAL_ATLAS_SIZE),this.syncAtlasGL()}getDims(e){if("width"in e&&"height"in e)return{w:e.width,h:e.height};const n=e;return{w:n.displayWidth??n.codedWidth,h:n.displayHeight??n.codedHeight}}calculateRequiredAtlasSize(e,n){let r=e*n;this.logoToRegion.forEach(o=>{const i=(o.u1-o.u0)*this.ATLAS_SIZE,a=(o.v1-o.v0)*this.ATLAS_SIZE;r+=i*a}),r*=1.2;let s=this.INITIAL_ATLAS_SIZE;for(;s*s<r;)s*=2;return s}resizeAtlas(e,n){const r=this.calculateRequiredAtlasSize(e,n);if(r<=this.ATLAS_SIZE)return;const s=new OffscreenCanvas(r,r),o=s.getContext("2d");o.clearRect(0,0,r,r),o.drawImage(this.atlasCanvas,0,0);const i=this.ATLAS_SIZE/r;this.ATLAS_SIZE=r,this.atlasCanvas=s,this.atlasCtx=o,this.logoToRegion.forEach((a,l)=>{const c={u0:a.u0*i,v0:a.v0*i,u1:a.u1*i,v1:a.v1*i};this.logoToRegion.set(l,c)}),this.syncAtlasGL()}addToAtlas(e,n){if(this.logoToRegion.has(e))return this.logoToRegion.get(e);const{w:r,h:s}=this.getDims(n);this.nextX+r>this.ATLAS_SIZE&&(this.nextX=0,this.nextY+=this.rowH,this.rowH=0),(this.nextY+s>this.ATLAS_SIZE||this.nextX+r>this.ATLAS_SIZE)&&this.resizeAtlas(r,s),this.atlasCtx.drawImage(n,this.nextX,this.nextY,r,s);const o={u0:this.nextX/this.ATLAS_SIZE,v0:this.nextY/this.ATLAS_SIZE,u1:(this.nextX+r)/this.ATLAS_SIZE,v1:(this.nextY+s)/this.ATLAS_SIZE};return this.logoToRegion.set(e,o),this.atlasDirty=!0,this.nextX+=r,this.rowH=Math.max(this.rowH,s),o}syncAtlasGL(){if(!this.atlasDirty)return;const e=this.gl;e.bindTexture(e.TEXTURE_2D,this.atlasTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.atlasCanvas),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.atlasDirty=!1}clearAtlas(){this.logoToRegion.clear(),this.nextX=this.nextY=this.rowH=0,this.atlasCtx.clearRect(0,0,this.ATLAS_SIZE,this.ATLAS_SIZE),this.atlasDirty=!0,this.syncAtlasGL()}generateAdTexture(e,n){C.setAttributes({asset:e}),this.addToAtlas(e,n)}measureLogoVisibility(e){const n=this.gl.canvas.width,r=this.gl.canvas.height,s=this.renderer.shot;if(!s)return;const{percentOfAd:o,percentOfScreen:i}=zi(e,n,r);s.frameCount++,s.sumPercentOfAd+=o,s.sumPercentOfScreen+=i,s.lastProcessingTime=performance.now()}initTiming(){var e;(e=this.options.debug)!=null&&e.trackPerformance&&(this.timerExt=this.gl.getExtension("EXT_disjoint_timer_query"),this.timerExt||console.warn("EXT_disjoint_timer_query not supported"))}beginTimer(){!this.timerExt||this.queryInFlight||(this.query=this.timerExt.createQueryEXT(),this.timerExt.beginQueryEXT(this.timerExt.TIME_ELAPSED_EXT,this.query))}endTimer(){if(!this.timerExt||!this.query)return;this.timerExt.endQueryEXT(this.timerExt.TIME_ELAPSED_EXT),this.queryInFlight=!0;const e=()=>{if(!this.queryInFlight)return;const n=this.timerExt.getQueryObjectEXT(this.query,this.timerExt.QUERY_RESULT_AVAILABLE_EXT),r=this.gl.getParameter(this.timerExt.GPU_DISJOINT_EXT);if(n&&!r){const o=this.timerExt.getQueryObjectEXT(this.query,this.timerExt.QUERY_RESULT_EXT)/1e6;this.GPUFrameTimeSum+=o,this.GPUFrameTimeCount++,this.avgGPUFrameTime=this.GPUFrameTimeSum/this.GPUFrameTimeCount,this.timerExt.deleteQueryEXT(this.query),this.queryInFlight=!1}else requestAnimationFrame(e)};requestAnimationFrame(e)}getAvgGPUFrameTime(){var e;if((e=this.options.debug)!=null&&e.trackPerformance){const n=this.avgGPUFrameTime;return this.GPUFrameTimeCount=0,this.GPUFrameTimeSum=0,this.avgGPUFrameTime=0,n}return 0}getAvgCPUFrameTime(){var e;if((e=this.options.debug)!=null&&e.trackPerformance){const n=this.avgCPUFrameTime;return this.CPUFrameTimeCount=0,this.CPUFrameTimeSum=0,this.avgCPUFrameTime=0,n}return 0}}const jn=["LeftTop","MidTopLeft","MidTopRight","RightTop","LeftBottom","MidBottomLeft","MidBottomRight","RightBottom"];class Wn{constructor(e,n){this.ads=[],this.getAds=async()=>{try{const s=await fetch("https://dwu3k7rrxk5s3.cloudfront.net"+"/profiles/geo/",{method:"GET",redirect:"follow",cache:"no-store"});if(this.options&&T(this.options,"Ads")&&console.log("[ADS] adListResponse: ",s),!s.ok){C.error("[ADS] Failed to fetch ad list"),this.options&&T(this.options,"Errors")&&console.error("[ADS] Failed to fetch ad list");return}const o=await s.json();this.options&&T(this.options,"Ads")&&console.log("[ADS] Current JSON with ads: ",o.rootAdPath);const i=o.rootAdPath;if(!i){C.error("rootAdPath is missing in the response"),this.options&&T(this.options,"Errors")&&console.error("[ADS] rootAdPath is missing in the response");return}if(this.lastJson===JSON.stringify(o))return;this.lastJson=JSON.stringify(o),this.ads=[],this.options&&T(this.options,"Ads")&&console.warn("[ADS] Fetching ad image from: ",i);const a=i,l=a.split("assets/")[1].split("?")[0],u=await(await fetch(a)).blob(),d=await createImageBitmap(u),f={name:a,imageUrl:a,image:d,adUrl:"https://www.BurgerKing.com/"};this.ads.push(f),this.setAd("LeftTop",0),this.setAd("RightBottom",0),this.setAd("MidBottomLeft",0),this.setAd("MidTopRight",0),this.uploadAdTextures()}catch{}finally{setTimeout(this.getAds,1e4)}},this.loadAdvImage=async r=>{const s=`#${r.name}`,o=r.url;if(s.indexOf(".json")>-1)return;const a=await(await fetch(o)).blob();return await createImageBitmap(a)},this.setAd=(r,s)=>{this.adMap.set(r,this.ads[s])},this.uploadAdTextures=()=>{this.webgl.clearAtlas(),this.adMap.forEach((r,s)=>{!r||!r.image||this.webgl.generateAdTexture(r.name,r.image)})},this.getAdURLAtCoord=(r,s,o)=>{let i;return Object.keys(r).forEach(a=>{const l=r[a].corners.map(c=>({x:c.x/s.width,y:c.y/s.height}));if(this.isPointInPlaceholder(l,o)){const c=r[a].name,u=this.adMap.get(c);this.options&&T(this.options,"Ads")&&console.log("ad: ",u),u&&(this.options&&T(this.options,"Ads")&&console.log("ad.url: ",u.adUrl),i=u.adUrl)}}),i},this.isPointInPlaceholder=(r,s)=>{let o=!1;const{x:i,y:a}=s,l=r.length;for(let c=0,u=l-1;c<l;u=c++){const d=r[c].x,f=r[c].y,m=r[u].x,p=r[u].y;f>a!=p>a&&i<(m-d)*(a-f)/(p-f)+d&&(o=!o)}return o},this.placeholderNames=jn,this.webgl=e,this.options=n,this.adMap=new Map,jn.forEach(r=>{this.adMap.set(r,void 0)}),this.getAds()}}class zn{constructor(e,n){this.renderDataMap=new Map,this.isRenderData=!1,this.state="OFF",this.opacity=0,this.lastStateUpdate=0,this.stateUpdateInterval=500,this.lastPerformanceCheck=performance.now(),this.setWebGLEventListeners=()=>{const r=this.glContext.canvas;r.addEventListener("webglcontextlost",s=>{console.warn("Context lost:",s),s.preventDefault()}),r.addEventListener("webglcontextrestored",()=>{console.log("Context restored!"),this.webgl=new Gn(this,this.options),this.ads=new Wn(this.webgl,this.options),this.webgl.init()})},this.addMetadataBatch=r=>{r.forEach(s=>{if(s.alphaMask){this.options&&T(this.options,"Renderer")&&console.log(`[RendererWorker] Creating texture for timeCode=${s.timecode}`);try{const o=this.webgl.createTextureFromVideoFrame(s.alphaMask),i=s.timecode,a={width:s.processingWidth,height:s.processingHeight},l={alphaMask:o,placeholders:s.placeholders,processingSize:a,isLive:s.isLive};this.renderDataMap.set(i,l),C.setAttributes({last_webgl_uploaded_frame:i})}catch{this.options&&T(this.options,"Errors")&&console.error(`[RendererWorker] Error creating texture for timeCode=${s.timecode}`)}finally{s.alphaMask.close()}}})},this.handleRenderDraw=(r,s)=>{var d,f,m,p,b;if(!this.streamData||!((d=this.ads)!=null&&d.ads))return;const o=this.renderDataMap.get(r);if(!!o!==this.isRenderData&&(o?(this.shot&&this.finalizeShot(this.shot,r),this.shot={shotId:crypto.randomUUID(),adURL:((f=this.ads.ads[0])==null?void 0:f.adUrl)||"",sumPercentOfScreen:0,sumPercentOfAd:0,frameCount:0,start:performance.now(),lastProcessingTime:performance.now()},C.info("didStartDrawingAugmentationMedia",{timecode:r,adID:this.shot.shotId,adURL:this.shot.adURL})):this.shot&&this.finalizeShot(this.shot,r),this.isRenderData=!!o),(o?o.isLive:!1)&&!!this.streamData.ottActions&&(this.streamData.ottActions.toggle[this.streamData.customerId]!==void 0?this.streamData.ottActions.toggle[this.streamData.customerId]&&this.streamData.ottActions.toggle.web:this.streamData.ottActions.toggle.web)?(this.state==="OFF"||this.state==="FADE_OUT")&&(this.state="FADE_IN"):(this.state==="ON"||this.state==="FADE_IN")&&(this.state="FADE_OUT"),!o)return;const l=o.alphaMask,c=o.placeholders,u=o.processingSize;if(!(!l||!c||!u)){if((this.glContext.canvas.width!==u.width||this.glContext.canvas.height!==u.height)&&(this.glContext.canvas.width=u.width,this.glContext.canvas.height=u.height),s!=0)if(s>0){const S=P.fromStr(r).addFrames(1,this.streamData.fps),D=(m=this.renderDataMap.get(P.toStr(S)))==null?void 0:m.placeholders;D&&Object.keys(D).forEach(w=>{w in c&&(c[w].tranform=c[w].tranform.map((Y,ve)=>Y*(1-s)+D[w].tranform[ve]*s))})}else{const S=Math.abs(s),D=P.fromStr(r).subtractFrames(1,this.streamData.fps),w=(p=this.renderDataMap.get(P.toStr(D)))==null?void 0:p.placeholders;w&&Object.keys(w).forEach(Y=>{Y in c&&(c[Y].tranform=c[Y].tranform.map((ve,It)=>w[Y].tranform[It]*(1-S)+ve*S))})}if(this.options&&T(this.options,"Renderer")&&console.log(`[Renderer] Render logic: binding texture for ${r}`),this.state==="FADE_IN"?(this.opacity===0&&(this.lastStateUpdate=performance.now(),this.opacity=.001),this.opacity=Math.min(1,this.opacity+(performance.now()-this.lastStateUpdate)/this.stateUpdateInterval),this.lastStateUpdate=performance.now(),this.opacity===1&&(this.state="ON")):this.state==="FADE_OUT"&&(this.opacity===1&&(this.lastStateUpdate=performance.now(),this.opacity=.999),this.opacity=Math.max(0,this.opacity-(performance.now()-this.lastStateUpdate)/this.stateUpdateInterval),this.lastStateUpdate=performance.now(),this.opacity===0&&(this.state="OFF")),C.setAttributes({last_rendered_frame:r,renderer_state:this.state}),this.webgl.drawAugmentation(l,c,this.opacity),this.options&&((b=this.options.debug)!=null&&b.trackPerformance)){const S=performance.now();S-this.lastPerformanceCheck>=this.options.PERFORMANCE_TRACKING_INTERVAL&&(this.trackPerformance(),this.lastPerformanceCheck=S)}}},this.handleRenderClear=()=>{this.opacity=0,this.state="OFF"},this.getAdURLByCoord=r=>{var l,c;if(!this.ads||!this.streamData||!this.streamData.timeCode||!this.renderDataMap)return null;const s=this.streamData.timeCode,o=(l=this.renderDataMap.get(s))==null?void 0:l.placeholders,i=(c=this.renderDataMap.get(s))==null?void 0:c.processingSize;if(!o||!i)return null;console.log("placeholders: ",o);const a=this.ads.getAdURLAtCoord(o,i,r);return console.log("url: ",a),a},this.deleteTexture=r=>{var o;const s=(o=this.renderDataMap.get(r))==null?void 0:o.alphaMask;s&&(this.webgl.deleteTexture(s),this.renderDataMap.delete(r))},this.deleteOldTextures=r=>{if(!this.streamData)return;const s=59.94,o=P.fromStr(r).totalMilliseconds(s);this.renderDataMap.forEach((i,a)=>{P.fromStr(a).totalMilliseconds(s)<o-100&&(this.options&&T(this.options,"Renderer")&&console.log(`[Renderer] Deleting old texture for timeCode=${a}`),this.webgl.deleteTexture(i.alphaMask),this.renderDataMap.delete(a))})},this.deleteAllTextures=()=>{this.renderDataMap.forEach((r,s)=>{this.webgl.deleteTexture(r.alphaMask),this.renderDataMap.delete(s)})},this.cleanGL=()=>{this.webgl.cleanGL()},this.updateStreamData=r=>{var o;const s=(o=this.streamData)==null?void 0:o.ottActions;this.streamData=r,s&&!r.ottActions&&(this.streamData.ottActions=s)},this.finalizeShot=(r,s)=>{r.end=r.lastProcessingTime,r.duration=r.end-r.start,C.info("didEndDrawingAugmentationMedia",{timecode:s,adID:r.shotId,adURL:r.adURL}),r.avaragePercentOfAd=r.sumPercentOfAd/r.frameCount,r.avaragePercentOfScreen=r.sumPercentOfScreen/r.frameCount,C.info("didRegisterShot",{adID:r.shotId,adURL:r.adURL,avaragePercentOfScreen:r.avaragePercentOfScreen.toFixed(2),avaragePercentOfAd:r.avaragePercentOfAd.toFixed(2),frameCount:r.frameCount,duration:r.duration.toFixed(0)}),this.shot=void 0},this.trackPerformance=()=>{const r=this.webgl.getAvgGPUFrameTime(),s=this.webgl.getAvgCPUFrameTime();Hi([{metric:"Rendering GPU time",value:r},{metric:"Rendering CPU time",value:s}],C.getMessagePort())},this.glContext=e,this.webgl=new Gn(this,n),this.options=n,this.ads=new Wn(this.webgl,n),this.webgl.init()}stop(){this.cleanGL(),this.deleteAllTextures()}}let Je=null,Qe=null,Xn=null,Ot=null,q=null,L=null,_,O,qn=0,Yn=0;self.onmessage=t=>{const{data:e}=t;if(e.type==="SET_LOGGER_PORT"&&(Ot=e.port,C.setMessagePort(e.port)),e.type==="INIT_OFFSCREEN"){const n=e.offscreen;if(_=e.options,q=n.getContext("webgl"),_&&T(_,"Renderer")&&console.log("[RendererWorker] Initializing OffscreenCanvas"),!q||q!=null&&q.isContextLost()){C.error("[RendererWorker] Failed to acquire WebGL context"),_&&T(_,"Errors")&&console.error("[RendererWorker] Failed to acquire WebGL context");return}L=new zn(q,_),_&&T(_,"Renderer")&&console.log("[RendererWorker] OffscreenCanvas initialized, gl context acquired")}if(e.type==="SET_DOWNLOADER_PORT"&&(Je=e.port,Je.onmessage=Zi),e.type==="SET_DECODER_PORT"&&(Qe=e.port,Qe.onmessage=Ki),e.type==="SET_ADAPTER_PORT"&&(Xn=e.port,Xn.onmessage=Ji),(e.type==="RENDERER_DRAW"||e.type==="RENDERER_CLEAR")&&Hn(e),e.type==="VIDEO_CLICK"&&L){const n=L.getAdURLByCoord(e.clickData);postMessage({type:"OPEN_URL",url:n})}if(e.type==="VIDEO_SEEKED"){if(!q||!_)return;L==null||L.stop(),L=new zn(q,_)}};function qi(){!Je||!O||Je.postMessage({type:"DOWNLOADER_INPUT",streamData:O})}function Yi(){!Qe||!O||Qe.postMessage({type:"DECODER_REQUEST",timeCode:O.timeCode,fps:O.fps})}function Hi(t,e){if(!Ot&&!e)return;const n=Ot||e,r={type:"TRACK_PERFORMANCE",data:t};n.postMessage(r)}function Hn(t){O=t.streamData,L?(O&&L.updateStreamData(O),L.cleanGL(),t.type==="RENDERER_CLEAR"&&L.handleRenderClear(),t.type==="RENDERER_DRAW"&&O&&(L.handleRenderDraw(O.timeCode,O.frameCorrection),L.deleteOldTextures(O.timeCode)),Vi()):_&&T(_,"Errors")&&console.error("[RendererWorker] WebGL context is not initialized.")}function Vi(){if(!_)return;const t=performance.now();t-qn>_.DOWNLOADER_UPDATE_FREQUENCY&&(qi(),qn=t),t-Yn>_.DECODER_UPDATE_FREQUENCY&&(Yi(),Yn=t)}function Ki(t){const{data:e}=t;if(e.type==="RENDERER_INPUT"){const n=e.batch;_&&T(_,"Renderer")&&console.log(`[RendererWorker] Received a batch of ${n.length} frames`),L&&L.addMetadataBatch(n)}}function Zi(t){if(!O)return;const{data:e}=t;_&&T(_,"Renderer")&&console.log("[RendererWorker] Message from Downloader:",t.data),e.type==="OTT_ACTIONS"&&(O.ottActions=e.ottActions)}function Ji(t){const{data:e}=t;(e.type==="RENDERER_DRAW"||e.type==="RENDERER_CLEAR")&&Hn(e)}self.onunhandledrejection=t=>{C.error("[RendererWorker] Unhandled rejection",{error:t.reason}),_&&(T(_,"Errors")&&console.error("[RendererWorker] Unhandled rejection:",t.reason),t.preventDefault())},self.onerror=t=>{C.error("[RendererWorker] Unhandled error",{error:t}),_&&(T(_,"Errors")&&console.error("[RendererWorker] Unhandled error:",t),t instanceof Event&&t.preventDefault())}})();\n',zt=typeof self<"u"&&self.Blob&&new Blob([$t],{type:"text/javascript;charset=utf-8"});function sr(t){let e;try{if(e=zt&&(self.URL||self.webkitURL).createObjectURL(zt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent($t),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const Gt='(function(){"use strict";const k=(e,t)=>!e.debug||!e.debug.on?!1:e.debug[`log${t}`],Wn=e=>Math.abs(e-59.94005994005994)<20?59.94:Math.abs(e-29.97002997002997)<10?29.97:Math.abs(e-14.985014985014985)<8?14.98:0,_={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},I=console,H={};Object.keys(_).forEach(e=>{H[e]=I[e]});const fe="Datadog Browser SDK:",w={debug:H.debug.bind(I,fe),log:H.log.bind(I,fe),info:H.info.bind(I,fe),warn:H.warn.bind(I,fe),error:H.error.bind(I,fe)},Xe="https://docs.datadoghq.com",At=`${Xe}/real_user_monitoring/browser/troubleshooting`,Oe="More details:";function kt(e,t){return(...n)=>{try{return e(...n)}catch(r){w.error(t,r)}}}function ve(e){return e!==0&&Math.random()*100<=e}function Hn(e){return zn(e)&&e>=0&&e<=100}function zn(e){return typeof e=="number"}const pe=1e3,z=60*pe,Lt=60*z,Kn=365*(24*Lt);function me(){return new Date().getTime()}function $(){return me()}function Re(){return performance.now()}function U(){return{relative:Re(),timeStamp:$()}}function Vn(){return{relative:0,timeStamp:It()}}function qn(e,t){return t-e}function Yn(e,t){return e+t}function Jn(e){return e-It()}let Ze;function It(){return Ze===void 0&&(Ze=performance.timing.navigationStart),Ze}const M=1024,Mt=1024*M,Xn=/[^\\u0000-\\u007F]/;function Qe(e){return Xn.test(e)?window.TextEncoder!==void 0?new TextEncoder().encode(e).length:new Blob([e]).size:e.length}function Zn(e){return{...e}}function Pt(e,t){return Object.keys(e).some(n=>e[n]===t)}function ge(e){return Object.keys(e).length===0}function B(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let e=_dd_temp_;return delete Object.prototype._dd_temp_,typeof e!="object"&&(typeof self=="object"?e=self:typeof window=="object"?e=window:e={}),e}function te(e,t){const n=B();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=e[n.Zone.__symbol__(t)]),r||(r=e[t]),r}let xe,Dt=!1;function Qn(e){xe=e}function er(e){Dt=e}function tr(e,t,n){const r=n.value;n.value=function(...o){return(xe?b(r):r).apply(this,o)}}function b(e){return function(){return he(e,this,arguments)}}function he(e,t,n){try{return e.apply(t,n)}catch(r){nr(r)}}function nr(e){if(et(e),xe)try{xe(e)}catch(t){et(t)}}function et(...e){Dt&&w.error("[MONITOR]",...e)}function Se(e,t){return te(B(),"setTimeout")(b(e),t)}function Nt(e){te(B(),"clearTimeout")(e)}function tt(e,t){return te(B(),"setInterval")(b(e),t)}function Ft(e){te(B(),"clearInterval")(e)}class C{constructor(t){this.onFirstSubscribe=t,this.observers=[]}subscribe(t){return this.observers.push(t),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>t!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(t){this.observers.forEach(n=>n(t))}}function $t(...e){return new C(t=>{const n=e.map(r=>r.subscribe(o=>t.notify(o)));return()=>n.forEach(r=>r.unsubscribe())})}function Ut(e,t,n){let r=!1,o,s;return{throttled:(...i)=>{if(r){o=i;return}e(...i),r=!0,s=Se(()=>{o&&e(...o),r=!1,o=void 0},t)},cancel:()=>{Nt(s),r=!1,o=void 0}}}function G(){}function j(e){return e?(parseInt(e,10)^Math.random()*16>>parseInt(e,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,j)}const Ae=/([\\w-]+)\\s*=\\s*([^;]+)/g;function rr(e,t){for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n){if(n[1]===t)return n[2]}else break}}function or(e){const t=new Map;for(Ae.lastIndex=0;;){const n=Ae.exec(e);if(n)t.set(n[1],n[2]);else break}return t}function sr(e,t,n=""){const r=e.charCodeAt(t-1),s=r>=55296&&r<=56319?t+1:t;return e.length<=s?e:`${e.slice(0,s)}${n}`}function ir(){return ar()===0}let ke;function ar(){return ke??(ke=cr())}function cr(e=window){var t;const n=e.navigator.userAgent;return e.chrome||/HeadlessChrome/.test(n)?0:((t=e.navigator.vendor)===null||t===void 0?void 0:t.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function ye(e,t,n=0,r){const o=new Date;o.setTime(o.getTime()+n);const s=`expires=${o.toUTCString()}`,i=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",c=r&&r.secure?";secure":"",l=r&&r.partitioned?";partitioned":"";document.cookie=`${e}=${t};${s};path=/;samesite=${i}${a}${c}${l}`}function nt(e){return rr(document.cookie,e)}let rt;function K(e){return rt||(rt=or(document.cookie)),rt.get(e)}function Bt(e,t){ye(e,"",0,t)}function ur(e){if(document.cookie===void 0||document.cookie===null)return!1;try{const t=`dd_cookie_test_${j()}`,n="test";ye(t,n,z,e);const r=nt(t)===n;return Bt(t,e),r}catch(t){return w.error(t),!1}}let ot;function lr(){if(ot===void 0){const e=`dd_site_test_${j()}`,t="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!nt(e);)r=`${n.pop()}.${r}`,ye(e,t,pe,{domain:r});Bt(e,{domain:r}),ot=r}return ot}const ne="_dd_s";function Le(e){return Object.values(e)}function dr(e){return Object.entries(e)}const st=4*Lt,Gt=15*z,fr=Kn,be={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},jt=/^([a-zA-Z]+)=([a-z0-9-]+)$/,it="&";function pr(e){return!!e&&(e.indexOf(it)!==-1||jt.test(e))}const mr="1";function V(e,t){const n={isExpired:mr};return t.trackAnonymousUser&&(e!=null&&e.anonymousId?n.anonymousId=e==null?void 0:e.anonymousId:n.anonymousId=j()),n}function Ie(e){return ge(e)}function Wt(e){return!Ie(e)}function Me(e){return e.isExpired!==void 0||!gr(e)}function gr(e){return(e.created===void 0||me()-Number(e.created)<st)&&(e.expire===void 0||me()<Number(e.expire))}function Ht(e){e.expire=String(me()+Gt)}function at(e){return dr(e).map(([t,n])=>t==="anonymousId"?`aid=${n}`:`${t}=${n}`).join(it)}function zt(e){const t={};return pr(e)&&e.split(it).forEach(n=>{const r=jt.exec(n);if(r!==null){const[,o,s]=r;o==="aid"?t.anonymousId=s:t[o]=s}}),t}const hr="_dd",Sr="_dd_r",yr="_dd_l",br="rum",Er="logs";function Tr(e){if(!K(ne)){const n=K(hr),r=K(Sr),o=K(yr),s={};n&&(s.id=n),o&&/^[01]$/.test(o)&&(s[Er]=o),r&&/^[012]$/.test(r)&&(s[br]=r),Wt(s)&&(Ht(s),e.persistSession(s))}}function Kt(e){const t=vr(e);return ur(t)?{type:be.COOKIE,cookieOptions:t}:void 0}function _r(e,t){const n={isLockEnabled:ir(),persistSession:wr(t),retrieveSession:Or,expireSession:r=>Cr(t,r,e)};return Tr(n),n}function wr(e){return t=>{ye(ne,at(t),Gt,e)}}function Cr(e,t,n){const r=V(t,n);ye(ne,at(r),n.trackAnonymousUser?fr:st,e)}function Or(){const e=nt(ne);return zt(e)}function vr(e){const t={};return t.secure=!!e.useSecureSessionCookie||!!e.usePartitionedCrossSiteSessionCookie,t.crossSite=!!e.usePartitionedCrossSiteSessionCookie,t.partitioned=!!e.usePartitionedCrossSiteSessionCookie,e.trackSessionAcrossSubdomains&&(t.domain=lr()),t}const Rr="_dd_test_";function Vt(){try{const e=j(),t=`${Rr}${e}`;localStorage.setItem(t,e);const n=localStorage.getItem(t);return localStorage.removeItem(t),e===n?{type:be.LOCAL_STORAGE}:void 0}catch{return}}function xr(e){return{isLockEnabled:!1,persistSession:qt,retrieveSession:Ar,expireSession:t=>kr(t,e)}}function qt(e){localStorage.setItem(ne,at(e))}function Ar(){const e=localStorage.getItem(ne);return zt(e)}function kr(e,t){qt(V(e,t))}const Lr=10,Ir=100,Yt=[];let Pe;function q(e,t,n=0){var r;const{isLockEnabled:o,persistSession:s,expireSession:i}=t,a=f=>s({...f,lock:l}),c=()=>{const f=t.retrieveSession(),h=f.lock;return f.lock&&delete f.lock,{session:f,lock:h}};if(Pe||(Pe=e),e!==Pe){Yt.push(e);return}if(o&&n>=Ir){Jt(t);return}let l,u=c();if(o){if(u.lock){De(e,t,n);return}if(l=j(),a(u.session),u=c(),u.lock!==l){De(e,t,n);return}}let d=e.process(u.session);if(o&&(u=c(),u.lock!==l)){De(e,t,n);return}if(d&&(Me(d)?i(d):(Ht(d),o?a(d):s(d))),o&&!(d&&Me(d))){if(u=c(),u.lock!==l){De(e,t,n);return}s(u.session),d=u.session}(r=e.after)===null||r===void 0||r.call(e,d||u.session),Jt(t)}function De(e,t,n){Se(()=>{q(e,t,n+1)},Lr)}function Jt(e){Pe=void 0;const t=Yt.shift();t&&q(t,e)}const Xt=pe;function Mr(e){switch(e.sessionPersistence){case be.COOKIE:return Kt(e);case be.LOCAL_STORAGE:return Vt();case void 0:{let t=Kt(e);return!t&&e.allowFallbackToLocalStorage&&(t=Vt()),t}default:w.error(`Invalid session persistence \'${String(e.sessionPersistence)}\'`)}}function Pr(e,t,n,r){const o=new C,s=new C,i=new C,a=e.type===be.COOKIE?_r(t,e.cookieOptions):xr(t),{expireSession:c}=a,l=tt(g,Xt);let u;p();const{throttled:d,cancel:f}=Ut(()=>{q({process:y=>{if(Ie(y))return;const de=E(y);return v(de),de},after:y=>{Wt(y)&&!R()&&Gn(y),u=y}},a)},Xt);function h(){q({process:y=>R()?E(y):void 0},a)}function g(){q({process:y=>Me(y)?V(y,t):void 0,after:E},a)}function E(y){return Me(y)&&(y=V(y,t)),R()&&(F(y)?le():(i.notify({previousState:u,newState:y}),u=y)),y}function p(){q({process:y=>{if(Ie(y))return V(y,t)},after:y=>{u=y}},a)}function v(y){if(Ie(y))return!1;const{trackingType:de,isTracked:Wi}=r(y[n]);y[n]=de,delete y.isExpired,Wi&&!y.id&&(y.id=j(),y.created=String(me()))}function R(){return u[n]!==void 0}function F(y){return u.id!==y.id||u[n]!==y[n]}function le(){u=V(u,t),s.notify()}function Gn(y){u=y,o.notify()}function jn(y){q({process:de=>({...de,...y}),after:E},a)}return{expandOrRenewSession:d,expandSession:h,getSession:()=>u,renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i,restartSession:p,expire:()=>{f(),c(u),E(V(u,t))},stop:()=>{Ft(l)},updateSessionState:jn}}const ct={GRANTED:"granted",NOT_GRANTED:"not-granted"};function Dr(e){const t=new C;return{tryToInit(n){e||(e=n)},update(n){e=n,t.notify()},isGranted(){return e===ct.GRANTED},observable:t}}function Y(e,t,n){if(typeof e!="object"||e===null)return JSON.stringify(e);const r=re(Object.prototype),o=re(Array.prototype),s=re(Object.getPrototypeOf(e)),i=re(e);try{return JSON.stringify(e,t,n)}catch{return"<error: unable to serialize object>"}finally{r(),o(),s(),i()}}function re(e){const t=e,n=t.toJSON;return n?(delete t.toJSON,()=>{t.toJSON=n}):G}function ut(e){return Nr(e,location.href).href}function Nr(e,t){const n=Fr();if(n)try{return t!==void 0?new n(e,t):new n(e)}catch(s){throw new Error(`Failed to construct URL: ${String(s)} ${Y({url:e,base:t})}`)}if(t===void 0&&!/:/.test(e))throw new Error(`Invalid URL: \'${e}\'`);let r=document;const o=r.createElement("a");if(t!==void 0){r=document.implementation.createHTMLDocument("");const s=r.createElement("base");s.href=t,r.head.appendChild(s),r.body.appendChild(o)}return o.href=e,o}const Zt=URL;let Ne;function Fr(){if(Ne===void 0)try{Ne=new Zt("http://test/path").href==="http://test/path"}catch{Ne=!1}return Ne?Zt:void 0}const $r="datad0g.com",Ur="dd0g-gov.com",oe="datadoghq.com",Br="ddog-gov.com",Gr="pci.browser-intake-datadoghq.com",jr=["ddsource","ddtags"];function Ee(e,t,n){const r=Wr(e,t);return{build(o,s){const i=zr(e,t,n,o,s);return r(i)},urlPrefix:r(""),trackType:t}}function Wr(e,t){const n=`/api/v2/${t}`,r=e.proxy;if(typeof r=="string"){const s=ut(r);return i=>`${s}?ddforward=${encodeURIComponent(`${n}?${i}`)}`}if(typeof r=="function")return s=>r({path:n,parameters:s});const o=Hr(t,e);return s=>`https://${o}${n}?${s}`}function Hr(e,t){const{site:n=oe,internalAnalyticsSubdomain:r}=t;if(e==="logs"&&t.usePciIntake&&n===oe)return Gr;if(r&&n===oe)return`${r}.${oe}`;if(n===Ur)return`http-intake.logs.${n}`;const o=n.split("."),s=o.pop();return`browser-intake-${o.join("-")}.${s}`}function zr({clientToken:e,internalAnalyticsSubdomain:t},n,r,o,{retry:s,encoding:i}){const a=["sdk_version:6.5.0",`api:${o}`].concat(r);s&&a.push(`retry_count:${s.count}`,`retry_after:${s.lastFailureStatus}`);const c=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${e}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${j()}`];return i&&c.push(`dd-evp-encoding=${i}`),n==="rum"&&c.push(`batch_time=${$()}`),t&&c.reverse(),c.join("&")}const Kr=200;function Vr(e){const{env:t,service:n,version:r,datacenter:o}=e,s=[];return t&&s.push(Fe("env",t)),n&&s.push(Fe("service",n)),r&&s.push(Fe("version",r)),o&&s.push(Fe("datacenter",o)),s}function Fe(e,t){const n=Kr-e.length-1;(t.length>n||qr(t))&&w.warn(`${e} value doesn\'t meet tag requirements and will be sanitized. ${Oe} ${Xe}/getting_started/tagging/#defining-tags`);const r=t.replace(/,/g,"_");return`${e}:${r}`}function qr(e){return Yr()?new RegExp("[^\\\\p{Ll}\\\\p{Lo}0-9_:./-]","u").test(e):!1}function Yr(){try{return new RegExp("[\\\\p{Ll}]","u"),!0}catch{return!1}}function Jr(e){const t=e.site||oe,n=Vr(e),r=Xr(e,n);return{replica:Zr(e,n),site:t,...r}}function Xr(e,t){return{logsEndpointBuilder:Ee(e,"logs",t),rumEndpointBuilder:Ee(e,"rum",t),sessionReplayEndpointBuilder:Ee(e,"replay",t)}}function Zr(e,t){if(!e.replica)return;const n={...e,site:oe,clientToken:e.replica.clientToken},r={logsEndpointBuilder:Ee(n,"logs",t),rumEndpointBuilder:Ee(n,"rum",t)};return{applicationId:e.replica.applicationId,...r}}function Qr(e){return jr.every(t=>e.includes(t))}function lt(e,t){return e!=null&&typeof e!="string"?(w.error(`${t} must be defined as a string`),!1):!0}function eo(e){return e&&typeof e=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(e)?(w.error(`Site should be a valid Datadog site. ${Oe} ${Xe}/getting_started/site/.`),!1):!0}function $e(e,t){return e!==void 0&&!Hn(e)?(w.error(`${t} Sample Rate should be a number between 0 and 100`),!1):!0}function to(e){var t,n,r,o,s,i;if(!e||!e.clientToken){w.error("Client Token is not configured, we will not send any data.");return}if(!(!eo(e.site)||!$e(e.sessionSampleRate,"Session")||!$e(e.telemetrySampleRate,"Telemetry")||!$e(e.telemetryConfigurationSampleRate,"Telemetry Configuration")||!$e(e.telemetryUsageSampleRate,"Telemetry Usage")||!lt(e.version,"Version")||!lt(e.env,"Env")||!lt(e.service,"Service"))){if(e.trackingConsent!==void 0&&!Pt(ct,e.trackingConsent)){w.error(\'Tracking Consent should be either "granted" or "not-granted"\');return}return{beforeSend:e.beforeSend&&kt(e.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:Mr(e),sessionSampleRate:(t=e.sessionSampleRate)!==null&&t!==void 0?t:100,telemetrySampleRate:(n=e.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=e.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(o=e.telemetryUsageSampleRate)!==null&&o!==void 0?o:5,service:e.service||void 0,silentMultipleInit:!!e.silentMultipleInit,allowUntrustedEvents:!!e.allowUntrustedEvents,trackingConsent:(s=e.trackingConsent)!==null&&s!==void 0?s:ct.GRANTED,trackAnonymousUser:(i=e.trackAnonymousUser)!==null&&i!==void 0?i:!0,storeContextsAcrossPages:!!e.storeContextsAcrossPages,batchBytesLimit:16*M,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*pe,batchMessagesLimit:50,messageBytesLimit:256*M,...Jr(e)}}}function no(e){return{session_sample_rate:e.sessionSampleRate,telemetry_sample_rate:e.telemetrySampleRate,telemetry_configuration_sample_rate:e.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:e.telemetryUsageSampleRate,use_before_send:!!e.beforeSend,use_partitioned_cross_site_session_cookie:e.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:e.useSecureSessionCookie,use_proxy:!!e.proxy,silent_multiple_init:e.silentMultipleInit,track_session_across_subdomains:e.trackSessionAcrossSubdomains,track_anonymous_user:e.trackAnonymousUser,session_persistence:e.sessionPersistence,allow_fallback_to_local_storage:!!e.allowFallbackToLocalStorage,store_contexts_across_pages:!!e.storeContextsAcrossPages,allow_untrusted_events:!!e.allowUntrustedEvents,tracking_consent:e.trackingConsent}}var dt;(function(e){e.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",e.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(dt||(dt={}));const Qt=new Set;function ro(e){Array.isArray(e)&&oo(e.filter(t=>Pt(dt,t)))}function oo(e){e.forEach(t=>{Qt.add(t)})}function so(){return Qt}const Te="?";function P(e){const t=[];let n=ft(e,"stack");const r=String(e);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`\n`).forEach(o=>{const s=co(o)||lo(o)||po(o)||ho(o);s&&(!s.func&&s.line&&(s.func=Te),t.push(s))}),{message:ft(e,"message"),name:ft(e,"name"),stack:t}}const en="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\\\w+\\\\.|\\\\/).*?)",se="(?::(\\\\d+))",io=new RegExp(`^\\\\s*at (.*?) ?\\\\(${en}${se}?${se}?\\\\)?\\\\s*$`,"i"),ao=new RegExp(`\\\\((\\\\S*)${se}${se}\\\\)`);function co(e){const t=io.exec(e);if(!t)return;const n=t[2]&&t[2].indexOf("native")===0,r=t[2]&&t[2].indexOf("eval")===0,o=ao.exec(t[2]);return r&&o&&(t[2]=o[1],t[3]=o[2],t[4]=o[3]),{args:n?[t[2]]:[],column:t[4]?+t[4]:void 0,func:t[1]||Te,line:t[3]?+t[3]:void 0,url:n?void 0:t[2]}}const uo=new RegExp(`^\\\\s*at ?${en}${se}?${se}??\\\\s*$`,"i");function lo(e){const t=uo.exec(e);if(t)return{args:[],column:t[3]?+t[3]:void 0,func:Te,line:t[2]?+t[2]:void 0,url:t[1]}}const fo=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function po(e){const t=fo.exec(e);if(t)return{args:[],column:t[4]?+t[4]:void 0,func:t[1]||Te,line:+t[3],url:t[2]}}const mo=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,go=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function ho(e){const t=mo.exec(e);if(!t)return;const n=t[3]&&t[3].indexOf(" > eval")>-1,r=go.exec(t[3]);return n&&r&&(t[3]=r[1],t[4]=r[2],t[5]=void 0),{args:t[2]?t[2].split(","):[],column:t[5]?+t[5]:void 0,func:t[1]||Te,line:t[4]?+t[4]:void 0,url:t[3]}}function ft(e,t){if(typeof e!="object"||!e||!(t in e))return;const n=e[t];return typeof n=="string"?n:void 0}function So(e,t,n,r){const o=[{url:t,column:r,line:n}],{name:s,message:i}=bo(e);return{name:s,message:i,stack:o}}const yo=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;function bo(e){let t,n;return{}.toString.call(e)==="[object String]"&&([,t,n]=yo.exec(e)),{name:t,message:n}}function Ue(e){const n=new Error(e);n.name="HandlingStack";let r;return he(()=>{const o=P(n);o.stack=o.stack.slice(2),r=J(o)}),r}function J(e){let t=tn(e);return e.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,o=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",s=n.line?`:${n.line}`:"",i=n.line&&n.column?`:${n.column}`:"";t+=`\n at ${r}${o} @ ${n.url}${s}${i}`}),t}function tn(e){return`${e.name||"Error"}: ${e.message}`}function X(e,t,n,{computeHandlingStack:r}={}){let o=e[t];if(typeof o!="function")if(t in e&&t.startsWith("on"))o=G;else return{stop:G};let s=!1;const i=function(){if(s)return o.apply(this,arguments);const a=Array.from(arguments);let c;he(n,null,[{target:this,parameters:a,onPostCall:u=>{c=u},handlingStack:r?Ue("instrumented method"):void 0}]);const l=o.apply(this,a);return c&&he(c,null,[l]),l};return e[t]=i,{stop:()=>{s=!0,e[t]===i&&(e[t]=o)}}}const Eo=220*M,To="$",_o=3;function D(e,t=Eo){const n=re(Object.prototype),r=re(Array.prototype),o=[],s=new WeakMap,i=pt(e,To,void 0,o,s),a=JSON.stringify(i);let c=a?a.length:0;if(c>t){gt(t,"discarded",e);return}for(;o.length>0&&c<t;){const l=o.shift();let u=0;if(Array.isArray(l.source))for(let d=0;d<l.source.length;d++){const f=pt(l.source[d],l.path,d,o,s);if(f!==void 0?c+=JSON.stringify(f).length:c+=4,c+=u,u=1,c>t){gt(t,"truncated",e);break}l.target[d]=f}else for(const d in l.source)if(Object.prototype.hasOwnProperty.call(l.source,d)){const f=pt(l.source[d],l.path,d,o,s);if(f!==void 0&&(c+=JSON.stringify(f).length+u+d.length+_o,u=1),c>t){gt(t,"truncated",e);break}l.target[d]=f}}return n(),r(),i}function pt(e,t,n,r,o){const s=Oo(e);if(!s||typeof s!="object")return wo(s);const i=mt(s);if(i!=="[Object]"&&i!=="[Array]"&&i!=="[Error]")return i;const a=e;if(o.has(a))return`[Reference seen at ${o.get(a)}]`;const c=n!==void 0?`${t}.${n}`:t,l=Array.isArray(s)?[]:{};return o.set(a,c),r.push({source:s,target:l,path:c}),l}function wo(e){return typeof e=="bigint"?`[BigInt] ${e.toString()}`:typeof e=="function"?`[Function] ${e.name||"unknown"}`:typeof e=="symbol"?`[Symbol] ${e.description||e.toString()}`:e}function mt(e){try{if(e instanceof Event)return Co(e);if(e instanceof RegExp)return`[RegExp] ${e.toString()}`;const n=Object.prototype.toString.call(e).match(/\\[object (.*)\\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function Co(e){return{type:e.type,isTrusted:e.isTrusted,currentTarget:e.currentTarget?mt(e.currentTarget):null,target:e.target?mt(e.target):null}}function Oo(e){const t=e;if(t&&typeof t.toJSON=="function")try{return t.toJSON()}catch{}return e}function gt(e,t,n){w.warn(`The data provided has been ${t} as it is over the limit of ${e} characters:`,n)}const nn="No stack, consider using an instance of Error";function rn({stackTrace:e,originalError:t,handlingStack:n,componentStack:r,startClocks:o,nonErrorPrefix:s,source:i,handling:a}){const c=W(t),l=vo(e,c,s,t),u=Ro(c,e)?J(e):nn,d=c?an(t,i):void 0,f=e?e.name:void 0,h=on(t),g=sn(t);return{startClocks:o,source:i,handling:a,handlingStack:n,componentStack:r,originalError:t,type:f,message:l,stack:u,causes:d,fingerprint:h,context:g}}function vo(e,t,n,r){return e!=null&&e.message&&(e!=null&&e.name)?e.message:t?"Empty message":`${n} ${Y(D(r))}`}function Ro(e,t){return t===void 0?!1:e?!0:t.stack.length>0&&(t.stack.length>1||t.stack[0].url!==void 0)}function on(e){return W(e)&&"dd_fingerprint"in e?String(e.dd_fingerprint):void 0}function sn(e){if(e!==null&&typeof e=="object"&&"dd_context"in e)return e.dd_context}function xo(e){var t;return(t=/@ (.+)/.exec(e))===null||t===void 0?void 0:t[1]}function W(e){return e instanceof Error||Object.prototype.toString.call(e)==="[object Error]"}function an(e,t){let n=e;const r=[];for(;W(n==null?void 0:n.cause)&&r.length<10;){const o=P(n.cause);r.push({message:n.cause.message,source:t,type:o==null?void 0:o.name,stack:J(o)}),n=n.cause}return r.length?r:void 0}const x={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Ao(e){const t=(o,s)=>{const i=rn({stackTrace:o,originalError:s,startClocks:U(),nonErrorPrefix:"Uncaught",source:x.SOURCE,handling:"unhandled"});e.notify(i)},{stop:n}=ko(t),{stop:r}=Lo(t);return{stop:()=>{n(),r()}}}function ko(e){return X(window,"onerror",({parameters:[t,n,r,o,s]})=>{let i;W(s)?i=P(s):i=So(t,n,r,o),e(i,s??t)})}function Lo(e){return X(window,"onunhandledrejection",({parameters:[t]})=>{const n=t.reason||"Empty reason",r=P(n);e(r,n)})}function Io(e){const t={version:"6.5.0",onReady(n){n()},...e};return Object.defineProperty(t,"_setDebug",{get(){return er},enumerable:!1}),t}function Mo(e,t,n){const r=e[t];r&&!r.q&&r.version&&w.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),e[t]=n,r&&r.q&&r.q.forEach(o=>kt(o,"onReady callback threw an error:")())}function cn(e,t){t.silentMultipleInit||w.error(`${e} is already initialized.`)}function Z(e,t,n,r,o){return ht(e,t,[n],r,o)}function ht(e,t,n,r,{once:o,capture:s,passive:i}={}){const a=b(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!e.allowUntrustedEvents||(o&&d(),r(f))}),c=i?{capture:s,passive:i}:s,l=window.EventTarget&&t instanceof EventTarget?window.EventTarget.prototype:t,u=te(l,"addEventListener");n.forEach(f=>u.call(t,f,a,c));function d(){const f=te(l,"removeEventListener");n.forEach(h=>f.call(t,h,a,c))}return{stop:d}}const Be={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function Po(e,t){const n=[];t.includes(Be.cspViolation)&&n.push(No(e));const r=t.filter(o=>o!==Be.cspViolation);return r.length&&n.push(Do(r)),$t(...n)}function Do(e){return new C(t=>{if(!window.ReportingObserver)return;const n=b((o,s)=>o.forEach(i=>t.notify(Fo(i)))),r=new window.ReportingObserver(n,{types:e,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function No(e){return new C(t=>{const{stop:n}=Z(e,document,"securitypolicyviolation",r=>{t.notify($o(r))});return n})}function Fo(e){const{type:t,body:n}=e;return un({type:n.id,message:`${t}: ${n.message}`,originalError:e,stack:ln(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function $o(e){const t=`\'${e.blockedURI}\' blocked by \'${e.effectiveDirective}\' directive`;return un({type:e.effectiveDirective,message:`${Be.cspViolation}: ${t}`,originalError:e,csp:{disposition:e.disposition},stack:ln(e.effectiveDirective,e.originalPolicy?`${t} of the policy "${sr(e.originalPolicy,100,"...")}"`:"no policy",e.sourceFile,e.lineNumber,e.columnNumber)})}function un(e){return{startClocks:U(),source:x.REPORT,handling:"unhandled",...e}}function ln(e,t,n,r,o){return n?J({name:e,message:t,stack:[{func:"?",url:n,line:r??void 0,column:o??void 0}]}):void 0}function dn(e,t){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:e,payload:t})}function fn(e){return e===null?"null":Array.isArray(e)?"array":typeof e}function Ge(e,t,n=Uo()){if(t===void 0)return e;if(typeof t!="object"||t===null)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp){const o=t.flags||[t.global?"g":"",t.ignoreCase?"i":"",t.multiline?"m":"",t.sticky?"y":"",t.unicode?"u":""].join("");return new RegExp(t.source,o)}if(n.hasAlreadyBeenSeen(t))return;if(Array.isArray(t)){const o=Array.isArray(e)?e:[];for(let s=0;s<t.length;++s)o[s]=Ge(o[s],t[s],n);return o}const r=fn(e)==="object"?e:{};for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=Ge(r[o],t[o],n));return r}function pn(e){return Ge(void 0,e)}function ie(...e){let t;for(const n of e)n!=null&&(t=Ge(t,n));return t}function Uo(){if(typeof WeakSet<"u"){const t=new WeakSet;return{hasAlreadyBeenSeen(n){const r=t.has(n);return r||t.add(n),r}}}const e=[];return{hasAlreadyBeenSeen(t){const n=e.indexOf(t)>=0;return n||e.push(t),n}}}function Bo(){var e;const t=window.navigator;return{status:t.onLine?"connected":"not_connected",interfaces:t.connection&&t.connection.type?[t.connection.type]:void 0,effective_type:(e=t.connection)===null||e===void 0?void 0:e.effectiveType}}function Go(e){const t=new Set;return e.forEach(n=>t.add(n)),Array.from(t)}function mn(e,t){const n=e.indexOf(t);n>=0&&e.splice(n,1)}const jo=500;function gn(){const e=[];return{add:o=>{e.push(o)>jo&&e.splice(0,1)},remove:o=>{mn(e,o)},drain:o=>{e.forEach(s=>s(o)),e.length=0}}}const Q={log:"log",configuration:"configuration",usage:"usage"},Wo=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],Ho=[Br];let hn=gn(),ae=e=>{hn.add(()=>ae(e))};function zo(e,t){let n;const r=new C,o=new Set,s=!Ho.includes(t.site)&&ve(t.telemetrySampleRate),i={[Q.log]:s,[Q.configuration]:s&&ve(t.telemetryConfigurationSampleRate),[Q.usage]:s&&ve(t.telemetryUsageSampleRate)},a=Ko();ae=l=>{const u=Y(l);if(i[l.type]&&o.size<t.maxTelemetryEventsPerPage&&!o.has(u)){const d=c(e,l,a);r.notify(d),dn("telemetry",d),o.add(u)}},Qn(yn);function c(l,u,d){return ie({type:"telemetry",date:$(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:ie(u,{runtime_env:d,connectivity:Bo(),sdk_setup:"npm"}),experimental_features:Array.from(so())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:r,enabled:s}}function Ko(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function Vo(){hn.drain()}function qo(e){return e.site===$r}function Sn(e,t){et(_.debug,e,t),ae({type:Q.log,message:e,status:"debug",...t})}function yn(e,t){ae({type:Q.log,status:"error",...Xo(e),...t})}function Yo(e){ae({type:Q.configuration,configuration:e})}function Jo(e){ae({type:Q.usage,usage:e})}function Xo(e){if(W(e)){const t=P(e);return{error:{kind:t.name,stack:J(Zo(t))},message:t.message}}return{error:{stack:nn},message:`Uncaught ${Y(e)}`}}function Zo(e){return e.stack=e.stack.filter(t=>!t.url||Wo.some(n=>t.url.startsWith(n))),e}const _e=1/0,Qo=z;let we=null;const je=new Set;function es(){je.forEach(e=>e())}function ts({expireDelay:e,maxEntries:t}){let n=[];const r=[];we||(we=tt(()=>es(),Qo));const o=()=>{const h=Re()-e;for(;n.length>0&&n[n.length-1].endTime<h;){const g=n.pop();g&&r.push(g.startTime)}};je.add(o);function s(h,g){const E={value:h,startTime:g,endTime:_e,remove:()=>{mn(n,E)},close:p=>{E.endTime=p}};return t&&n.length>=t&&n.pop(),n.unshift(E),E}function i(h=_e,g={returnInactive:!1}){for(const E of n)if(E.startTime<=h){if(g.returnInactive||h<=E.endTime)return E.value;break}}function a(h){const g=n[0];g&&g.endTime===_e&&g.close(h)}function c(h=_e,g=0){const E=Yn(h,g);return n.filter(p=>p.startTime<=E&&h<=p.endTime).map(p=>p.value)}function l(){return n.map(({startTime:h,endTime:g,value:E})=>({startTime:h,endTime:g===_e?"Infinity":g,value:E}))}function u(){return r}function d(){n=[]}function f(){je.delete(o),je.size===0&&we&&(Ft(we),we=null)}return{add:s,find:i,closeActive:a,findAll:c,reset:d,stop:f,getAllEntries:l,getDeletedEntries:u}}const ns=z,rs=st;function os(e,t,n,r){const o=new C,s=new C,i=Pr(e.sessionStoreStrategyType,e,t,n),a=ts({expireDelay:rs});i.renewObservable.subscribe(()=>{a.add(c(),Re()),o.notify()}),i.expireObservable.subscribe(()=>{s.notify(),a.closeActive(Re())}),i.expandOrRenewSession(),a.add(c(),Vn().relative),r.observable.subscribe(()=>{r.isGranted()?i.expandOrRenewSession():i.expire()}),ss(e,()=>{r.isGranted()&&i.expandOrRenewSession()}),is(e,()=>i.expandSession()),as(e,()=>i.restartSession());function c(){return{id:i.getSession().id,trackingType:i.getSession()[t],isReplayForced:!!i.getSession().forcedReplay,anonymousId:i.getSession().anonymousId}}return{findSession:(l,u)=>a.find(l,u),renewObservable:o,expireObservable:s,sessionStateUpdateObservable:i.sessionStateUpdateObservable,expire:i.expire,updateSessionState:i.updateSessionState}}function ss(e,t){ht(e,window,["click","touchstart","keydown","scroll"],t,{capture:!0,passive:!0})}function is(e,t){const n=()=>{document.visibilityState==="visible"&&t()};Z(e,document,"visibilitychange",n),tt(n,ns)}function as(e,t){Z(e,window,"resume",t,{capture:!0})}function bn(e){return e>=500}function cs(e){try{return e.clone()}catch{return}}const us=80*M,ls=32,En=3*Mt,ds=z,Tn=pe;function _n(e,t,n,r,o){t.transportStatus===0&&t.queuedPayloads.size()===0&&t.bandwidthMonitor.canHandle(e)?Cn(e,t,n,{onSuccess:()=>On(0,t,n,r,o),onFailure:()=>{t.queuedPayloads.enqueue(e),wn(t,n,r,o)}}):t.queuedPayloads.enqueue(e)}function wn(e,t,n,r){e.transportStatus===2&&Se(()=>{const o=e.queuedPayloads.first();Cn(o,e,t,{onSuccess:()=>{e.queuedPayloads.dequeue(),e.currentBackoffTime=Tn,On(1,e,t,n,r)},onFailure:()=>{e.currentBackoffTime=Math.min(ds,e.currentBackoffTime*2),wn(e,t,n,r)}})},e.currentBackoffTime)}function Cn(e,t,n,{onSuccess:r,onFailure:o}){t.bandwidthMonitor.add(e),n(e,s=>{t.bandwidthMonitor.remove(e),fs(s)?(t.transportStatus=t.bandwidthMonitor.ongoingRequestCount>0?1:2,e.retry={count:e.retry?e.retry.count+1:1,lastFailureStatus:s.status},o()):(t.transportStatus=0,r())})}function On(e,t,n,r,o){e===0&&t.queuedPayloads.isFull()&&!t.queueFullReported&&(o({message:`Reached max ${r} events size queued for upload: ${En/Mt}MiB`,source:x.AGENT,startClocks:U()}),t.queueFullReported=!0);const s=t.queuedPayloads;for(t.queuedPayloads=vn();s.size()>0;)_n(s.dequeue(),t,n,r,o)}function fs(e){return e.type!=="opaque"&&(e.status===0&&!navigator.onLine||e.status===408||e.status===429||bn(e.status))}function ps(){return{transportStatus:0,currentBackoffTime:Tn,bandwidthMonitor:ms(),queuedPayloads:vn(),queueFullReported:!1}}function vn(){const e=[];return{bytesCount:0,enqueue(t){this.isFull()||(e.push(t),this.bytesCount+=t.bytesCount)},first(){return e[0]},dequeue(){const t=e.shift();return t&&(this.bytesCount-=t.bytesCount),t},size(){return e.length},isFull(){return this.bytesCount>=En}}}function ms(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(e){return this.ongoingRequestCount===0||this.ongoingByteCount+e.bytesCount<=us&&this.ongoingRequestCount<ls},add(e){this.ongoingRequestCount+=1,this.ongoingByteCount+=e.bytesCount},remove(e){this.ongoingRequestCount-=1,this.ongoingByteCount-=e.bytesCount}}}function gs(e,t,n){const r=ps(),o=(s,i)=>ys(e,t,s,i);return{send:s=>{_n(s,r,o,e.trackType,n)},sendOnExit:s=>{hs(e,t,s)}}}function hs(e,t,n){if(!!navigator.sendBeacon&&n.bytesCount<t)try{const s=e.build("beacon",n);if(navigator.sendBeacon(s,n.data))return}catch(s){Ss(s)}const o=e.build("xhr",n);St(o,n.data)}let Rn=!1;function Ss(e){Rn||(Rn=!0,yn(e))}function ys(e,t,n,r){if(bs()&&n.bytesCount<t){const s=e.build("fetch",n);fetch(s,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(b(i=>r==null?void 0:r({status:i.status,type:i.type})),b(()=>{const i=e.build("xhr",n);St(i,n.data,r)}))}else{const s=e.build("xhr",n);St(s,n.data,r)}}function bs(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function St(e,t,n){const r=new XMLHttpRequest;r.open("POST",e,!0),t instanceof Blob&&r.setRequestHeader("Content-Type",t.type),Z({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(t)}function yt(){const e=Es();if(e)return{getCapabilities(){var t;return JSON.parse(((t=e.getCapabilities)===null||t===void 0?void 0:t.call(e))||"[]")},getPrivacyLevel(){var t;return(t=e.getPrivacyLevel)===null||t===void 0?void 0:t.call(e)},getAllowedWebViewHosts(){return JSON.parse(e.getAllowedWebViewHosts())},send(t,n,r){const o=r?{id:r}:void 0;e.send(JSON.stringify({eventType:t,event:n,view:o}))}}}function We(e){var t;e===void 0&&(e=(t=B().location)===null||t===void 0?void 0:t.hostname);const n=yt();return!!n&&n.getAllowedWebViewHosts().some(r=>e===r||e.endsWith(`.${r}`))}function Es(){return B().DatadogEventBridge}const He={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function Ts(e){return new C(t=>{const{stop:n}=ht(e,window,["visibilitychange","freeze"],o=>{o.type==="visibilitychange"&&document.visibilityState==="hidden"?t.notify({reason:He.HIDDEN}):o.type==="freeze"&&t.notify({reason:He.FROZEN})},{capture:!0}),r=Z(e,window,"beforeunload",()=>{t.notify({reason:He.UNLOADING})}).stop;return()=>{n(),r()}})}function _s(e){return Le(He).includes(e)}function ws({encoder:e,request:t,flushController:n,messageBytesLimit:r}){let o={};const s=n.flushObservable.subscribe(d=>u(d));function i(d,f,h){n.notifyBeforeAddMessage(f),h!==void 0?(o[h]=d,n.notifyAfterAddMessage()):e.write(e.isEmpty?d:`\n${d}`,g=>{n.notifyAfterAddMessage(g-f)})}function a(d){return d!==void 0&&o[d]!==void 0}function c(d){const f=o[d];delete o[d];const h=e.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(h)}function l(d,f){const h=Y(d),g=e.estimateEncodedBytesCount(h);if(g>=r){w.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${Oe} ${At}/#technical-limitations`);return}a(f)&&c(f),i(h,g,f)}function u(d){const f=Le(o).join(`\n`);o={};const h=_s(d.reason),g=h?t.sendOnExit:t.send;if(h&&e.isAsync){const E=e.finishSync();E.outputBytesCount&&g(xn(E));const p=[E.pendingData,f].filter(Boolean).join(`\n`);p&&g({data:p,bytesCount:Qe(p)})}else f&&e.write(e.isEmpty?f:`\n${f}`),e.finish(E=>{g(xn(E))})}return{flushController:n,add:l,upsert:l,stop:s.unsubscribe}}function xn(e){let t;return typeof e.output=="string"?t=e.output:t=new Blob([e.output],{type:"text/plain"}),{data:t,bytesCount:e.outputBytesCount,encoding:e.encoding}}function Cs({messagesLimit:e,bytesLimit:t,durationLimit:n,pageExitObservable:r,sessionExpireObservable:o}){const s=r.subscribe(g=>u(g.reason)),i=o.subscribe(()=>u("session_expire")),a=new C(()=>()=>{s.unsubscribe(),i.unsubscribe()});let c=0,l=0;function u(g){if(l===0)return;const E=l,p=c;l=0,c=0,h(),a.notify({reason:g,messagesCount:E,bytesCount:p})}let d;function f(){d===void 0&&(d=Se(()=>{u("duration_limit")},n))}function h(){Nt(d),d=void 0}return{flushObservable:a,get messagesCount(){return l},notifyBeforeAddMessage(g){c+g>=t&&u("bytes_limit"),l+=1,c+=g,f()},notifyAfterAddMessage(g=0){c+=g,l>=e?u("messages_limit"):c>=t&&u("bytes_limit")},notifyAfterRemoveMessage(g){c-=g,l-=1,l===0&&h()}}}function An(e,t,n,r,o,s,i=ws){const a=l(e,t),c=n&&l(e,n);function l(u,{endpoint:d,encoder:f}){return i({encoder:f,request:gs(d,u.batchBytesLimit,r),flushController:Cs({messagesLimit:u.batchMessagesLimit,bytesLimit:u.batchBytesLimit,durationLimit:u.flushTimeout,pageExitObservable:o,sessionExpireObservable:s}),messageBytesLimit:u.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(u,d=!0){a.add(u),c&&d&&c.add(n.transformMessage?n.transformMessage(u):u)},upsert:(u,d)=>{a.upsert(u,d),c&&c.upsert(n.transformMessage?n.transformMessage(u):u,d)},stop:()=>{a.stop(),c&&c.stop()}}}function ze(){let e="",t=0;return{isAsync:!1,get isEmpty(){return!e},write(n,r){const o=Qe(n);t+=o,e+=n,r&&r(o)},finish(n){n(this.finishSync())},finishSync(){const n={output:e,outputBytesCount:t,rawBytesCount:t,pendingData:""};return e="",t=0,n},estimateEncodedBytesCount(n){return n.length}}}class Os{constructor(){this.callbacks={}}notify(t,n){const r=this.callbacks[t];r&&r.forEach(o=>o(n))}subscribe(t,n){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(n),{unsubscribe:()=>{this.callbacks[t]=this.callbacks[t].filter(r=>n!==r)}}}}function vs(e,t,n){let r=0,o=!1;return{isLimitReached(){if(r===0&&Se(()=>{r=0},z),r+=1,r<=t||o)return o=!1,!1;if(r===t+1){o=!0;try{n({message:`Reached max number of ${e}s by minute: ${t}`,source:x.AGENT,startClocks:U()})}finally{o=!1}}return!0}}}let bt;const Et=new WeakMap;function Rs(e){return bt||(bt=xs(e)),bt}function xs(e){return new C(t=>{const{stop:n}=X(XMLHttpRequest.prototype,"open",As),{stop:r}=X(XMLHttpRequest.prototype,"send",s=>{ks(s,e,t)},{computeHandlingStack:!0}),{stop:o}=X(XMLHttpRequest.prototype,"abort",Ls);return()=>{n(),r(),o()}})}function As({target:e,parameters:[t,n]}){Et.set(e,{state:"open",method:String(t).toUpperCase(),url:ut(String(n))})}function ks({target:e,handlingStack:t},n,r){const o=Et.get(e);if(!o)return;const s=o;s.state="start",s.startClocks=U(),s.isAborted=!1,s.xhr=e,s.handlingStack=t;let i=!1;const{stop:a}=X(e,"onreadystatechange",()=>{e.readyState===XMLHttpRequest.DONE&&c()}),c=()=>{if(l(),a(),i)return;i=!0;const u=o;u.state="complete",u.duration=qn(s.startClocks.timeStamp,$()),u.status=e.status,r.notify(Zn(u))},{stop:l}=Z(n,e,"loadend",c);r.notify(s)}function Ls({target:e}){const t=Et.get(e);t&&(t.isAborted=!0)}let Tt;function kn(){return Tt||(Tt=Is()),Tt}function Is(){return new C(e=>{if(!window.fetch)return;const{stop:t}=X(window,"fetch",n=>Ms(n,e),{computeHandlingStack:!0});return t})}function Ms({parameters:e,onPostCall:t,handlingStack:n},r){const[o,s]=e;let i=s&&s.method;i===void 0&&o instanceof Request&&(i=o.method);const a=i!==void 0?String(i).toUpperCase():"GET",c=o instanceof Request?o.url:ut(String(o)),l=U(),u={state:"start",init:s,input:o,method:a,startClocks:l,url:c,handlingStack:n};r.notify(u),e[0]=u.input,e[1]=u.init,t(d=>Ps(r,d,u))}function Ps(e,t,n){const r=n;function o(s){r.state="resolve",Object.assign(r,s),e.notify(r)}t.then(b(s=>{o({response:s,responseType:s.type,status:s.status,isAborted:!1})}),b(s=>{var i,a;o({status:0,isAborted:((a=(i=r.init)===null||i===void 0?void 0:i.signal)===null||a===void 0?void 0:a.aborted)||s instanceof DOMException&&s.code===DOMException.ABORT_ERR,error:s})}))}let _t={};function Ds(e){const t=e.map(n=>(_t[n]||(_t[n]=Ns(n)),_t[n]));return $t(...t)}function Ns(e){return new C(t=>{const n=I[e];return I[e]=(...r)=>{n.apply(console,r);const o=Ue("console error");he(()=>{t.notify(Fs(r,e,o))})},()=>{I[e]=n}})}function Fs(e,t,n){const r=e.map(s=>$s(s)).join(" ");let o;if(t===_.error){const s=e.find(W);o={stack:s?J(P(s)):void 0,fingerprint:on(s),causes:s?an(s,"console"):void 0,startClocks:U(),message:r,source:x.CONSOLE,handling:"handled",handlingStack:n,context:sn(s)}}return{api:t,message:r,error:o,handlingStack:n}}function $s(e){return typeof e=="string"?D(e):W(e)?tn(P(e)):Y(D(e),void 0,2)}function Us(e){const t=fn(e)==="object";return t||w.error("Unsupported context:",e),t}function wt(e,t,n){const r={...e};for(const[o,{required:s,type:i}]of Object.entries(t))i==="string"&&o in r&&(r[o]=String(r[o])),s&&!(o in e)&&w.warn(`The property ${o} of ${n} is required; context will not be sent to the intake.`);return r}function Ke(e="",{customerDataTracker:t,propertiesConfig:n={}}={}){let r={};const o=new C,s={getContext:()=>pn(r),setContext:i=>{Us(i)?(r=D(wt(i,n,e)),t==null||t.updateCustomerData(r)):s.clearContext(),o.notify()},setContextProperty:(i,a)=>{r=D(wt({...r,[i]:a},n,e)),t==null||t.updateCustomerData(r),o.notify()},removeContextProperty:i=>{delete r[i],t==null||t.updateCustomerData(r),wt(r,n,e),o.notify()},clearContext:()=>{r={},t==null||t.resetCustomerData(),o.notify()},changeObservable:o};return s}const Bs="_dd_c",Gs=[];function Ct(e,t,n,r){const o=js(n,r);Gs.push(Z(e,window,"storage",({key:l})=>{o===l&&i()})),t.changeObservable.subscribe(a);const s=ie(c(),t.getContext());ge(s)||t.setContext(s);function i(){t.setContext(c())}function a(){localStorage.setItem(o,JSON.stringify(t.getContext()))}function c(){const l=localStorage.getItem(o);return l?JSON.parse(l):{}}}function js(e,t){return`${Bs}_${e}_${t}`}const Ws=3*M,Hs=16*M,zs=200;function Ks(e=2){const t=new Map;let n=!1;function r(o=0){if(n||e===0)return;const s=e===2?Ws:Hs;let i=o;t.forEach(a=>{i+=a.getBytesCount()}),i>s&&(Vs(s),n=!0)}return{createDetachedTracker:()=>{const o=Ln(()=>r(o.getBytesCount()));return o},getOrCreateTracker:o=>(t.has(o)||t.set(o,Ln(r)),t.get(o)),setCompressionStatus:o=>{e===0&&(e=o,r())},getCompressionStatus:()=>e,stop:()=>{t.forEach(o=>o.stop()),t.clear()}}}function Ln(e){let t=0;const{throttled:n,cancel:r}=Ut(s=>{t=Qe(Y(s)),e()},zs),o=()=>{r(),t=0};return{updateCustomerData:s=>{ge(s)?o():n(s)},resetCustomerData:o,getBytesCount:()=>t,stop:()=>{r()}}}function Vs(e){w.warn(`Customer data exceeds the recommended ${e/M}KiB threshold. ${Oe} ${At}/#customer-data-exceeds-the-recommended-threshold-warning`)}function qs(e,t,n){const r=e.getReader(),o=[];let s=0;i();function i(){r.read().then(b(c=>{if(c.done){a();return}o.push(c.value),s+=c.value.length,s>n.bytesLimit?a():i()}),b(c=>t(c)))}function a(){r.cancel().catch(G);let c,l;{let u;if(o.length===1)u=o[0];else{u=new Uint8Array(s);let d=0;o.forEach(f=>{u.set(f,d),d+=f.length})}c=u.slice(0,n.bytesLimit),l=u.length>n.bytesLimit}t(void 0,c,l)}}const Ys="datadog-synthetics-public-id",Js="datadog-synthetics-result-id",Xs="datadog-synthetics-injects-rum";function In(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||K(Xs))}function Zs(){const e=window._DATADOG_SYNTHETICS_PUBLIC_ID||K(Ys);return typeof e=="string"?e:void 0}function Qs(){const e=window._DATADOG_SYNTHETICS_RESULT_ID||K(Js);return typeof e=="string"?e:void 0}function Ve(e,t,n){const r=n.getHandler(),o=Array.isArray(r)?r:[r];return Mn[e]>=Mn[n.getLevel()]&&o.includes(t)}const S={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Mn={[S.ok]:0,[S.debug]:1,[S.info]:2,[S.notice]:4,[S.warn]:5,[S.error]:6,[S.critical]:7,[S.alert]:8,[S.emerg]:9};function qe(e,{includeMessage:t=!1}={}){return{stack:e.stack,kind:e.type,message:t?e.message:void 0,causes:e.causes,fingerprint:e.fingerprint,handling:e.handling}}var ei=function(e,t,n,r){var o=arguments.length,s=o<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s};const Ce={console:"console",http:"http",silent:"silent"},ti=Object.keys(S);let L=class{constructor(t,n,r,o=Ce.http,s=S.debug,i={}){this.handleLogStrategy=t,this.handlerType=o,this.level=s,this.contextManager=Ke("logger",{customerDataTracker:n}),this.contextManager.setContext(i),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(t,n,r=S.info,o,s){const i=D(n);let a;if(o!=null){const c=rn({stackTrace:W(o)?P(o):void 0,originalError:o,nonErrorPrefix:"Provided",source:x.LOGGER,handling:"handled",startClocks:U()});a=ie({error:qe(c,{includeMessage:!0})},i)}else a=i;this.handleLogStrategy({message:D(t),context:a,status:r},this,s)}log(t,n,r=S.info,o){let s;Ve(r,Ce.http,this)&&(s=Ue("log")),this.logImplementation(t,n,r,o,s)}setContext(t){this.contextManager.setContext(t)}getContext(){return this.contextManager.getContext()}setContextProperty(t,n){this.contextManager.setContextProperty(t,n)}removeContextProperty(t){this.contextManager.removeContextProperty(t)}clearContext(){this.contextManager.clearContext()}setHandler(t){this.handlerType=t}getHandler(){return this.handlerType}setLevel(t){this.level=t}getLevel(){return this.level}};ei([tr],L.prototype,"logImplementation",null),L.prototype.ok=N(S.ok),L.prototype.debug=N(S.debug),L.prototype.info=N(S.info),L.prototype.notice=N(S.notice),L.prototype.warn=N(S.warn),L.prototype.error=N(S.error),L.prototype.critical=N(S.critical),L.prototype.alert=N(S.alert),L.prototype.emerg=N(S.emerg);function N(e){return function(t,n,r){let o;Ve(e,Ce.http,this)&&(o=Ue("log")),this.logImplementation(t,n,e,r,o)}}function ni(e,t,n){return{view:{referrer:document.referrer,url:window.location.href},context:e.getContext(),user:t.getContext(),account:n.getContext()}}const ri=32*M;function oi(e){e.usePciIntake===!0&&e.site&&e.site!=="datadoghq.com"&&w.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const t=to(e),n=Pn(e.forwardConsoleLogs,Le(_),"Forward Console Logs"),r=Pn(e.forwardReports,Le(Be),"Forward Reports");if(!(!t||!n||!r))return e.forwardErrorsToLogs&&!n.includes(_.error)&&n.push(_.error),{forwardErrorsToLogs:e.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:ri,...t}}function Pn(e,t,n){if(e===void 0)return[];if(!(e==="all"||Array.isArray(e)&&e.every(r=>t.includes(r)))){w.error(`${n} should be "all" or an array with allowed values "${t.join(\'", "\')}"`);return}return e==="all"?t:Go(e)}function si(e){const t=no(e);return{forward_errors_to_logs:e.forwardErrorsToLogs,forward_console_logs:e.forwardConsoleLogs,forward_reports:e.forwardReports,use_pci_intake:e.usePciIntake,...t}}function ii(e,t,n){const r=gn();let o,s;const i=t.observable.subscribe(a);function a(){if(!s||!o||!t.isGranted())return;i.unsubscribe();const c=n(o,s);r.drain(c)}return{init(c){if(!c){w.error("Missing configuration");return}if(ro(c.enableExperimentalFeatures),We()&&(c=ai(c)),o=c,s){cn("DD_LOGS",c);return}const l=oi(c);l&&(s=l,kn().subscribe(G),t.tryToInit(l.trackingConsent),a())},get initConfiguration(){return o},getInternalContext:G,handleLog(c,l,u,d=e(),f=$()){r.add(h=>h.handleLog(c,l,u,d,f))}}}function ai(e){return{...e,clientToken:"empty"}}const Ot="logs";function ci(e){const t=Ks(),n=Ke("global context",{customerDataTracker:t.getOrCreateTracker(2)}),r=Ke("user",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),o=Ke("account",{customerDataTracker:t.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),s=Dr();function i(){return ni(n,r,o)}let a=ii(i,s,(u,d)=>{u.storeContextsAcrossPages&&(Ct(d,n,Ot,2),Ct(d,r,Ot,1),Ct(d,o,Ot,4));const f=e(u,d,i,s);return a=ui(u,f),f});const c={},l=new L((...u)=>a.handleLog(...u),t.createDetachedTracker());return Io({logger:l,init:b(u=>a.init(u)),setTrackingConsent:b(u=>{s.update(u),Jo({feature:"set-tracking-consent",tracking_consent:u})}),getGlobalContext:b(()=>n.getContext()),setGlobalContext:b(u=>n.setContext(u)),setGlobalContextProperty:b((u,d)=>n.setContextProperty(u,d)),removeGlobalContextProperty:b(u=>n.removeContextProperty(u)),clearGlobalContext:b(()=>n.clearContext()),createLogger:b((u,d={})=>(c[u]=new L((...f)=>a.handleLog(...f),t.createDetachedTracker(),D(u),d.handler,d.level,D(d.context)),c[u])),getLogger:b(u=>c[u]),getInitConfiguration:b(()=>pn(a.initConfiguration)),getInternalContext:b(u=>a.getInternalContext(u)),setUser:b(r.setContext),getUser:b(r.getContext),setUserProperty:b(r.setContextProperty),removeUserProperty:b(r.removeContextProperty),clearUser:b(r.clearContext),setAccount:b(o.setContext),getAccount:b(o.getContext),setAccountProperty:b(o.setContextProperty),removeAccountProperty:b(o.removeContextProperty),clearAccount:b(o.clearContext)})}function ui(e,t){return{init:n=>{cn("DD_LOGS",n)},initConfiguration:e,...t}}const li="logs";function di(e,t){const n=os(e,li,r=>pi(e,r),t);return{findTrackedSession:(r,o={returnInactive:!1})=>{const s=n.findSession(r,o);return s&&s.trackingType==="1"?{id:s.id,anonymousId:s.anonymousId}:void 0},expireObservable:n.expireObservable}}function fi(e){const n=Dn(e)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new C}}function Dn(e){return ve(e.sessionSampleRate)?"1":"0"}function pi(e,t){const n=mi(t)?t:Dn(e);return{trackingType:n,isTracked:n==="1"}}function mi(e){return e==="0"||e==="1"}let Nn=!1;function Ye(e){const t=window;if(In()){const r=n(t.DD_RUM_SYNTHETICS);return!r&&!Nn&&(Nn=!0,Sn("Logs sent before RUM is injected by the synthetics worker",{testId:Zs(),resultId:Qs()})),r}return n(t.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(e)}}function gi(e,t,n,r,o){const s=ti.concat(["custom"]),i={};s.forEach(a=>{i[a]=vs(a,t.eventRateLimiterThreshold,o)}),n.subscribe(0,({rawLogsEvent:a,messageContext:c=void 0,savedCommonContext:l=void 0,domainContext:u})=>{var d,f;const h=Jn(a.date),g=e.findTrackedSession(h);if(!e.findTrackedSession(h,{returnInactive:!0}))return;const p=l||r();let v;!ge(p.account)&&p.account.id&&(v=p.account),g&&g.anonymousId&&!p.user.anonymous_id&&(p.user.anonymous_id=g.anonymousId);const R=ie({service:t.service,session_id:g?g.id:void 0,session:g?{id:g.id}:void 0,usr:ge(p.user)?void 0:p.user,account:v,view:p.view},p.context,Ye(h),a,c);((d=t.beforeSend)===null||d===void 0?void 0:d.call(t,R,u))===!1||R.origin!==x.AGENT&&((f=i[R.status])!==null&&f!==void 0?f:i.custom).isLimitReached()||n.notify(1,R)})}const hi={[_.log]:S.info,[_.debug]:S.debug,[_.info]:S.info,[_.warn]:S.warn,[_.error]:S.error};function Si(e,t){const n=Ds(e.forwardConsoleLogs).subscribe(r=>{var o;const s={rawLogsEvent:{date:$(),message:r.message,origin:x.CONSOLE,error:r.error&&qe(r.error),status:hi[r.api]},messageContext:(o=r.error)===null||o===void 0?void 0:o.context,domainContext:{handlingStack:r.handlingStack}};t.notify(0,s)});return{stop:()=>{n.unsubscribe()}}}function yi(e,t){const n=Po(e,e.forwardReports).subscribe(r=>{let o=r.message,s;const i=r.originalError.type==="deprecation"?S.warn:S.error;i===S.error?s=qe(r):r.stack&&(o+=` Found in ${xo(r.stack)}`),t.notify(0,{rawLogsEvent:{date:$(),message:o,origin:x.REPORT,error:s,status:i}})});return{stop:()=>{n.unsubscribe()}}}function bi(e,t){if(!e.forwardErrorsToLogs)return{stop:G};const n=Rs(e).subscribe(s=>{s.state==="complete"&&o("xhr",s)}),r=kn().subscribe(s=>{s.state==="resolve"&&o("fetch",s)});function o(s,i){!Qr(i.url)&&(wi(i)||bn(i.status))&&("xhr"in i?Ei(i.xhr,e,a):i.response?_i(i.response,e,a):i.error&&Ti(i.error,e,a));function a(c){const l={isAborted:i.isAborted,handlingStack:i.handlingStack};t.notify(0,{rawLogsEvent:{message:`${Ci(s)} error ${i.method} ${i.url}`,date:i.startClocks.timeStamp,error:{stack:c||"Failed to load",handling:void 0},http:{method:i.method,status_code:i.status,url:i.url},status:S.error,origin:x.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function Ei(e,t,n){typeof e.response=="string"?n(vt(e.response,t)):n(e.response)}function Ti(e,t,n){n(vt(J(P(e)),t))}function _i(e,t,n){const r=cs(e);!r||!r.body?n():window.TextDecoder?Oi(r.body,t.requestErrorResponseLengthLimit,(o,s)=>{n(o?`Unable to retrieve response: ${o}`:s)}):r.text().then(b(o=>n(vt(o,t))),b(o=>n(`Unable to retrieve response: ${o}`)))}function wi(e){return e.status===0&&e.responseType!=="opaque"}function vt(e,t){return e.length>t.requestErrorResponseLengthLimit?`${e.substring(0,t.requestErrorResponseLengthLimit)}...`:e}function Ci(e){return e==="xhr"?"XHR":"Fetch"}function Oi(e,t,n){qs(e,(r,o,s)=>{if(r)n(r);else{let i=new TextDecoder().decode(o);s&&(i+="..."),n(void 0,i)}},{bytesLimit:t,collectStreamBody:!0})}function vi(e,t){if(!e.forwardErrorsToLogs)return{stop:G};const n=new C,{stop:r}=Ao(n),o=n.subscribe(s=>{t.notify(0,{rawLogsEvent:{message:s.message,date:s.startClocks.timeStamp,error:qe(s),origin:x.SOURCE,status:S.error},messageContext:s.context})});return{stop:()=>{r(),o.unsubscribe()}}}const Ri=Os;function xi(e){function t(n,r,o,s,i){const a=ie(r.getContext(),n.context);if(Ve(n.status,Ce.console,r)&&ki(n,a),Ve(n.status,Ce.http,r)){const c={rawLogsEvent:{date:i||$(),message:n.message,status:n.status,origin:x.LOGGER},messageContext:a,savedCommonContext:s};o&&(c.domainContext={handlingStack:o}),e.notify(0,c)}}return{handleLog:t}}const Ai={[S.ok]:_.debug,[S.debug]:_.debug,[S.info]:_.info,[S.notice]:_.info,[S.warn]:_.warn,[S.error]:_.error,[S.critical]:_.error,[S.alert]:_.error,[S.emerg]:_.error};function ki({status:e,message:t},n){H[Ai[e]].call(I,t,n)}function Li(e,t,n,r,o){const s=An(e,{endpoint:e.logsEndpointBuilder,encoder:ze()},e.replica&&{endpoint:e.replica.logsEndpointBuilder,encoder:ze()},n,r,o.expireObservable);return t.subscribe(1,i=>{s.add(i)}),s}function Ii(e){const t=yt();e.subscribe(1,n=>{t.send("log",n)})}function Mi(e){return{get:t=>{const n=e.findTrackedSession(t);if(n)return{session_id:n.id}}}}function Pi(e){return t=>{e.notify(0,{rawLogsEvent:{message:t.message,date:t.startClocks.timeStamp,origin:x.AGENT,status:S.error}}),Sn("Error reported to customer",{"error.message":t.message})}}function Di(e,t,n,r,o){const s=zo("browser-logs-sdk",t);s.setContextProvider(()=>{var a,c,l,u,d,f;return{application:{id:(a=Ye())===null||a===void 0?void 0:a.application_id},session:{id:(c=o.findTrackedSession())===null||c===void 0?void 0:c.id},view:{id:(u=(l=Ye())===null||l===void 0?void 0:l.view)===null||u===void 0?void 0:u.id},action:{id:(f=(d=Ye())===null||d===void 0?void 0:d.user_action)===null||f===void 0?void 0:f.id}}});const i=[];if(We()){const a=yt(),c=s.observable.subscribe(l=>a.send("internal_telemetry",l));i.push(()=>c.unsubscribe())}else{const a=An(t,{endpoint:t.rumEndpointBuilder,encoder:ze()},t.replica&&{endpoint:t.replica.rumEndpointBuilder,encoder:ze()},n,r,o.expireObservable);i.push(()=>a.stop());const c=s.observable.subscribe(l=>a.add(l,qo(t)));i.push(()=>c.unsubscribe())}return Vo(),Yo(si(e)),{telemetry:s,stop:()=>{i.forEach(a=>a())}}}function Ni(e,t,n,r){const o=new Ri,s=[];o.subscribe(1,f=>dn("logs",f));const i=Pi(o),a=Ts(t),c=t.sessionStoreStrategyType&&!We()&&!In()?di(t,r):fi(t),{stop:l}=Di(e,t,i,a,c);s.push(()=>l()),bi(t,o),vi(t,o),Si(t,o),yi(t,o);const{handleLog:u}=xi(o);if(gi(c,t,o,n,i),We())Ii(o);else{const{stop:f}=Li(t,o,i,a,c);s.push(()=>f())}const d=Mi(c);return{handleLog:u,getInternalContext:d.get,stop:()=>{s.forEach(f=>f())}}}const ce=ci(Ni);Mo(B(),"DD_LOGS",ce);const O=class O{constructor(t,n,r,o,s){this.copy=()=>new O(this.h,this.m,this.s,this.f,this.field),this.print=()=>{const i=":";let a=("0"+this.h).slice(-2)+i+("0"+this.m).slice(-2)+i+("0"+this.s).slice(-2)+i+("0"+this.f).slice(-2);return a+="."+(this.field?"1":"2"),a},this.toZipTimeCodeString=()=>{const i=this.copy();return i.f=0,i.s=i.s%2===0?i.s:i.s-1,i.field=0,O.toStr(i)},this.toFrames=i=>{let a=60,c=0;Math.floor(i)==60?(a=60,c=0):Math.floor(i)==59?(a=60,c=4):Math.floor(i)==30?(a=30,c=0):Math.floor(i)==29&&(a=30,c=2);let l=this.h,u=this.m,d=this.s,f=this.f,h=this.field;const g=l*60+u,p=(g-Math.floor(g/10))*c;return l*(a*3600)+u*(a*60)+d*a+(f*2+h)-p},this.addSeconds=i=>{let a=this.copy();return a.s+=i,a.s>=60&&(a.s=0,a.m++,a.m>=60&&(a.m=0,a.h++)),a},this.addFrames=(i,a)=>{let c=this.toFrames(a);return c+=i,O.fromFrames(c,a)},this.subtractFrames=(i,a)=>this.addFrames(-i,a),this.h=t||0,this.m=n||0,this.s=r||0,this.f=o||0,this.field=s||0}static compare(t,n){return t.h!==n.h?t.h<n.h?-1:1:t.m!==n.m?t.m<n.m?-1:1:t.s!==n.s?t.s<n.s?-1:1:t.f!==n.f?t.f<n.f?-1:1:t.field!==n.field?t.field<n.field?-1:1:0}static generateTimecodeRange(t,n,r){const o=[];let s=t;for(;O.compare(s,n)<=0;)o.push(s),s=s.addSeconds(r);return o}totalSeconds(){return this.h*3600+this.m*60+this.s}totalMilliseconds(t){return this.toFrames(t)*1e3/t}};O.calculateCurrentTimeCode=t=>{var d;if(!t.video||!t.clocker||!t.gameParams)throw new Error("OTTPlayer is not initialized");const n=t.video,r=t.clocker,o=r.videoFPScalculator.getFPS(),a=(n.currentTime-r.syncPoint.playerTime)%(60*60*24)*o+r.syncPoint.frame;if(a===0||o===0)throw new Error("Current frame is 0 or fps is 0");const c=O.calculateCurrentOffset(a,(d=t.gameParams)==null?void 0:d.offsets);if(c===void 0)throw new Error("Offset is undefined");let l=Math.floor(a-c);return l<0&&(l+=5178816),l>=5178816&&(l-=5178816),O.fromFrames(l,o)},O.calculateCurrentOffset=(t,n)=>{for(let r=1;r<n.length;r++)if(t<n[r].frame)return n[r-1].offset;return n[n.length-1].offset},O.fromFrames=(t,n)=>{let r=60,o=0;Math.floor(n)==60?(r=60,o=0):Math.floor(n)==59?(r=60,o=4):Math.floor(n)==30?(r=30,o=0):Math.floor(n)==29&&(r=30,o=2);let s=Math.floor(n*60),i=Math.floor(n*60*10),a=i*6,c=t,l=Math.floor(c/a);c-=l*a;let u=Math.floor(c/i);c-=u*i,c>=r*60&&(c+=o*(Math.floor((c-r*60)/s)+1));let d=Math.floor(c/(r*60));c-=d*(r*60);let f=Math.floor(c/r);c-=f*r;let h=c;d+=u*10;let g=0;return g=h%2,h=Math.floor(h/2),new O(l,d,f,h,g)},O.toStr=t=>{const n="_";let r=("0"+t.h).slice(-2)+n+("0"+t.m).slice(-2)+n+("0"+t.s).slice(-2)+n+("0"+t.f).slice(-2);return t.field&&(r+="_1"),r},O.fromStr=t=>{const r=t.split("_").map(Number);if(r.length==4){const[o,s,i,a]=r;return new O(o,s,i,a,0)}else if(r.length==5){const[o,s,i,a,c]=r;return new O(o,s,i,a,c)}else throw new Error("Invalid timecode format: "+t)},O.fromMetadata=t=>{const n=/^(\\d{2}):(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d))?$/,r=t.timecode.match(n);if(!r)throw new Error("Invalid timecode format: "+t.timecode);const[,o,s,i,a,c]=r,l=Number(o),u=Number(s),d=Number(i),f=Number(a),h=c?Number(c):0;return new O(l,u,d,f,h)};let ee=O;const m=class m{constructor(t){m.options=t,this.isLoggingOn=t.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&ce.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),m.tracking.mac=r,m.tracking.dev=`${t.platform}_${t.browserName}`,m.beatHandle||(m.options&&k(m.options,"Logger")&&console.log("[Logger] Starting tracking beat"),m.beatHandle=window.setInterval(m.flushTracking,15e3))}static setMessagePort(t){this.messagePort=t}static getMessagePort(){return this.messagePort}setLoggingOn(t){this.isLoggingOn=t}setAttributes(t){m.processAttributes(t);for(const n in t)ce.logger.setContextProperty(n,t[n])}info(t,n){t==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),t==="didToggleGlobalAugmentationDrawing"&&this.emit("mediaSessionDidUpdateGlobalAugmentationState",{isGlobalAugmentationEnabled:(n==null?void 0:n.isEnabled)||!0}),t==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),t==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),t==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&m.processAttributes(n),this.isLoggingOn&&(ce.logger.info(t,n),m.options&&k(m.options,"Logger")&&console.log("[Logger] Sending info: ",t))}error(t,n){n&&m.processAttributes(n),this.isLoggingOn&&(ce.logger.error(t,n),m.tracking.err_time=Date.now().toFixed(0),m.tracking.err_desc=t+(n?` - ${JSON.stringify(n)}`:""),m.options&&k(m.options,"Logger")&&console.log("[Logger] Sending error: ",t))}warn(t,n){n&&m.processAttributes(n),this.isLoggingOn&&(ce.logger.warn(t,n),m.options&&k(m.options,"Logger")&&console.log("[Logger] Sending warn: ",t))}handleMessageFromWorker(t){t.actionType==="INFO"?this.info(t.message,t.attributes):t.actionType==="ERROR"?this.error(t.message,t.attributes):t.actionType==="WARN"?this.warn(t.message,t.attributes):t.actionType==="SET_ATTRIBUTES"&&t.attributes&&this.setAttributes(t.attributes)}static setAttributes(t){m.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:t})}static info(t,n){m.messagePort.postMessage({type:"LOG",actionType:"INFO",message:t,attributes:n})}static error(t,n){m.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:t,attributes:n})}static warn(t,n){m.messagePort.postMessage({type:"LOG",actionType:"WARN",message:t,attributes:n})}static processAttributes(t){if(t.player_version&&(m.tracking.sdk=t.player_version),t.media_id&&(m.tracking.gid=t.media_id),t.game_id&&(m.tracking.buc=t.game_id),t.bb_session_id&&(m.tracking.sid=t.bb_session_id,m.options&&k(m.options,"Logger")&&console.log("[Logger] Setting bb_session_id:",m.tracking.sid)),t.last_timecode){const r=ee.fromStr(t.last_timecode);m.tracking.tc=r.print(),m.lastTimecodeMillis=r.totalMilliseconds(59.94),m.lastTimecodeMillis&&m.lastZipMillis&&(m.tracking.cache=(m.lastZipMillis-m.lastTimecodeMillis).toFixed(0))}t.last_offset&&(m.tracking.off=t.last_offset),t.last_loading_zip&&(m.tracking.zip=t.last_loading_zip+".zip",m.lastZipMillis=ee.fromStr(t.last_loading_zip).totalMilliseconds(59.94),m.lastTimecodeMillis&&m.lastZipMillis&&(m.tracking.cache=(m.lastZipMillis-m.lastTimecodeMillis).toFixed(0))),t.last_rendered_frame&&(m.tracking.aug_time=Date.now().toFixed(0)),t.asset&&(m.tracking.asset=t.asset)}static objectToQuery(t){return Object.entries(t).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(t,n){const r=new CustomEvent(t,{detail:n});this.eventTarget.dispatchEvent(r)}};m.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},m.lastTimecodeMillis=0,m.lastZipMillis=0,m.flushTracking=()=>{const t=Date.now().toFixed(0);m.tracking.now=t;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${m.objectToQuery(m.tracking)}`;m.options&&k(m.options,"Logger")&&console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),m.tracking.err_desc="",m.tracking.err_time=""};let ue=m;const Fn=(()=>{const e=()=>{const p=navigator.userAgent;return/windows/i.test(p)?"Windows":/android/i.test(p)?"Android":/iphone|ipad|ipod/i.test(p)?"iOS":/mac/i.test(p)?"Mac":/ipad/i.test(p)?"iPad":"Something else"},t=()=>e()==="Mac",n=()=>e()==="iPad",r=()=>e()==="iOS",o=()=>{const p=e();return p==="iOS"||p==="Mac"||p==="iPad"},s=()=>e()==="Windows",i=()=>e()==="Android",a=()=>{switch(e()){case"Windows":return"a Windows PC";case"Android":return"an Android phone";case"iOS":return"an iPhone";case"Mac":return"a Mac";case"iPad":return"an iPad";default:return"an Unknown device"}},c=()=>({header:[navigator.platform,navigator.userAgent,navigator.appVersion,navigator.vendor,window.opera],dataos:[{name:"Windows Phone",value:"Windows Phone",version:"OS"},{name:"Windows",value:"Win",version:"NT"},{name:"iPhone",value:"iPhone",version:"OS"},{name:"iPad",value:"iPad",version:"OS"},{name:"Kindle",value:"Silk",version:"Silk"},{name:"Android",value:"Android",version:"Android"},{name:"PlayBook",value:"PlayBook",version:"OS"},{name:"BlackBerry",value:"BlackBerry",version:"/"},{name:"Macintosh",value:"Mac",version:"OS X"},{name:"Linux",value:"Linux",version:"rv"},{name:"Palm",value:"Palm",version:"PalmOS"}],databrowser:[{name:"Chrome",value:"Chrome",version:"Chrome"},{name:"Firefox",value:"Firefox",version:"Firefox"},{name:"Safari",value:"Safari",version:"Version"},{name:"Internet Explorer",value:"MSIE",version:"MSIE"},{name:"Opera",value:"Opera",version:"Opera"},{name:"BlackBerry",value:"CLDC",version:"CLDC"},{name:"Mozilla",value:"Mozilla",version:"Mozilla"}],init(){const R=this.header.join(" ");return this.matchItem(R,this.dataos)},matchItem(R,F){for(let le=0;le<F.length;le+=1)if(new RegExp(F[le].value,"i").test(R))return F[le].name;return"unknown"}}).init(),l=()=>{const p=navigator.userAgent;return p.indexOf("Chrome")>-1&&p.indexOf("Edge")===-1?"Chrome":p.indexOf("Safari")>-1&&p.indexOf("Chrome")===-1?"Safari":p.indexOf("Firefox")>-1?"Firefox":p.indexOf("MSIE")>-1||p.indexOf("Trident")>-1?"Internet Explorer":p.indexOf("Edge")>-1?"Edge":"Unknown"};return{getCurrentPlatform:e,isMac:t,isiPad:n,isiPhone:r,isApple:o,isWindows:s,isAndroid:i,getDeviceDescription:a,getDeviceName:c,getBrowserName:l,isSafariMac:()=>t()&&l()==="Safari",isChromeMac:()=>t()&&l()==="Chrome",isChromeWin:()=>s()&&l()==="Chrome",isFirefoxMac:()=>t()&&l()==="Firefox",isFirefoxWin:()=>s()&&l()==="Firefox"}})();class Fi{constructor(){this.start=0,this.end=0,this.startTimeoutForSeconds=(t,n)=>{this.start=performance.now(),this.end=this.start+t*1e3,this.reason=n,this.timeoutType==="manual"?this.timeoutType="both":this.timeoutType="interval"},this.startTimeoutManual=t=>{this.reason=t,this.timeoutType==="interval"?this.timeoutType="both":this.timeoutType===void 0&&(this.timeoutType="manual")},this.endTimoutManual=()=>{this.timeoutType==="manual"?(this.reason=void 0,this.timeoutType=void 0):this.timeoutType==="both"&&(this.timeoutType="interval")},this.resetTimeout=()=>{this.start=0,this.end=0,this.timeoutType=void 0,this.reason=void 0},this.getTimeoutStatus=()=>this.timeoutType===void 0?{isTimeout:!1}:this.timeoutType==="manual"?{isTimeout:!0,reason:this.reason,type:this.timeoutType}:performance.now()>=this.end?(this.start=0,this.end=0,this.timeoutType==="both"?(this.timeoutType="manual",{isTimeout:!0,reason:this.reason,type:this.timeoutType}):(this.timeoutType=void 0,this.reason=void 0,{isTimeout:!1})):{isTimeout:!0,reason:this.reason,type:this.timeoutType}}}const Rt={lastRendererFrameSent:0,isRAFSeen:!1,isRVFCSeen:!1,RVFCmissed:!1,RVFCframeExpected:0,compensationMode:!1,compensationCounter:0,frameCorrection:0,lastMessageSent:""};let Je=null,A,T,$i=new Fi;self.onmessage=async e=>{const{data:t}=e;t.type==="SET_LOGGER_PORT"&&ue.setMessagePort(t.port),t.type==="SET_RENDERER_PORT"&&(Je=t.port,Je.onmessage=Ui),t.type==="ADAPTER_UPDATE_DATA"&&(T=t.data,$n()),t.type==="SET_OPTIONS"&&(A=t.options,ue.setMessagePort(self))};function Ui(e){A&&k(A,"Adapter")&&console.log("[AdapterWorker] Message from Renderer:",e.data)}const $n=()=>{!T||T.siData.isVideoPaused||(Fn.isChromeMac()?Bi():Fn.isSafariMac()&&Gi())},Bi=()=>{if(!T||T.siData.isVideoPaused||!T.vfcData.lastFrameMetadata)return;const{siData:e,vfcData:t,afData:n,debugControls:r}=T;if(!e.isRAFSeen){let o=4,s=-11,i=1,a=5;if(r){const p=parseInt(r["Window Start (ms)"],10);isNaN(p)||(o=p);const v=parseInt(r["Window End (ms)"],10);isNaN(v)||(s=v);const R=parseInt(r["Frame Correction"],10);isNaN(R)||(i=R);const F=parseInt(r["Timeout time"],10);isNaN(F)||(a=F)}const c=1e3/t.videoFPS;1e3/n.animationFPS;const l=n.lastTimestamp,u=t.storedMetadata.reduce((p,v)=>Math.abs(v.expectedDisplayTime-l)<Math.abs(p.expectedDisplayTime-l)?v:p),d=u.expectedDisplayTime-o,f=[];for(let p=-10;p<10;p++)f.push(d+p*c);const h=u.expectedDisplayTime-s,g=[];for(let p=-10;p<10;p++)g.push(h+p*c);let E=null;f.forEach((p,v)=>{l>p&&l<g[v]&&(E=v-10)}),E!==null?setTimeout(p=>xt(t.lastCalculatedMediaTimeVideoFrame+p*Math.round(60/t.videoFPS)+i),a,E):xt(Rt.lastRendererFrameSent)}},Gi=()=>{if(!T||T.siData.isVideoPaused||!T.vfcData.lastFrameMetadata)return;const{siData:e,vfcData:t,afData:n}=T;let r=n.lastCalculatedPlayerTimeFraction;const o=n.previousCalculatedPlayerTimeFraction;r<.3&&r>.1&&o<.3&&o>.1&&(r=Math.min(r,o));let s=0;r<.1?s=0:r>.1&&r<.3?s=(r-.1)/(.3-.1):s=1;let i=n.lastCalculatedPlayerTimeVideoFrame;s==1&&(i++,s=0),xt(i,s)},xt=(e,t)=>{if(!T)return;Rt.lastRendererFrameSent=e,T.siData.workingFps;const n=ee.fromFrames(e,6e4/1001);if($i.getTimeoutStatus().isTimeout)Un(n);else{const r=T.vfcData.videoFPS;if(r<=10||r>70){console.error("Video FPS is out of supported range: "+r),Un(n);return}T.afData.animationFPS,ji(n,t)}},ji=(e,t)=>{const n=ee.toStr(e);Rt.lastMessageSent=n,A&&k(A,"Adapter")&&console.log(`[AdapterWorker] Rendering augmentation for timecode: ${n} , ${e}`),Bn(n,t)},Un=e=>{const t=ee.toStr(e);A&&k(A,"Adapter")&&console.log("[AdapterWorker] Clearing augmentation"),Bn(t,0,!0)},Bn=(e,t,n)=>{if(!Je||!T)return;const r=e;A&&k(A,"Adapter")&&console.log(`[AdapterWorker] Sending current time code to the Renderer: ${r}`);const o={timeCode:r,frameCorrection:t||0,fps:Wn(T.siData.workingFps),cloudFrontURL:T.cloudFrontURL,bucketName:T.bucketName,customerId:T.customerId,offsets:T.offsets},i={type:n?"RENDERER_CLEAR":"RENDERER_DRAW",streamData:o};Je.postMessage(i)};self.onunhandledrejection=e=>{ue.error("[AdapterWorker] Unhandled rejection",{error:e.reason}),A&&(k(A,"Errors")&&console.error("[AdapterWorker] Unhandled rejection:",e.reason),e.preventDefault())},self.onerror=e=>{ue.error("[AdapterWorker] Unhandled error",{error:e}),A&&(k(A,"Errors")&&console.error("[AdapterWorker] Unhandled error:",e),e instanceof Event&&e.preventDefault())},setInterval($n,2)})();\n',Vt=typeof self<"u"&&self.Blob&&new Blob([Gt],{type:"text/javascript;charset=utf-8"});function or(t){let e;try{if(e=Vt&&(self.URL||self.webkitURL).createObjectURL(Vt),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(Gt),{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}class jt{constructor(){this.metrics=new Map,this.containers=[],this.createContainer=()=>{const e=document.createElement("div");e.style.display="flex",e.style.gap="10px",e.style.marginBottom="5px",e.style.fontSize="14px";const n={div:e,metrics:[]};return this.containers.push(n),document.body.appendChild(e),n},this.createMetric=(e,n)=>{const r=document.createElement("span"),s={name:e,value:"",span:r};return n.metrics.push(s),r.textContent=`${e}: ${s.value}`,n.div.appendChild(r),this.metrics.set(e,s),s},this.updateMetric=(e,n)=>{const r=this.metrics.get(e);if(!r){console.error("Metric does not exist");return}typeof n=="boolean"?r.value=n?"true":"false":r.value=n,r.span.textContent=`${e}: ${r.value}`}}delete(){this.containers.forEach(e=>{e.div.remove()})}}class ar{constructor(e){if(this.canPlayListner=()=>this.setupCanvas(),this.clickListner=n=>{this.clicker.click(n)},this.mediaTime=0,this.timecodeChecker=new tr(0),this.logger=e.logger,this.OTTPlayer=e,this.options=e.options,this.debug=this.options.debug?this.options.debug.on:!1,this.options.debug&&this.debug){this.metrics=new jt;const n=this.metrics.createContainer();if(this.metrics.createMetric("Last Downloaded Zip",n),this.metrics.createMetric("Last Decoded Frame",n),this.metrics.createMetric("Last WebGL Uploaded Frame",n),this.metrics.createMetric("Last Rendered Frame",n),this.metrics.createMetric("Renderer State",n),this.options.debug.trackPerformance){const r=this.metrics.createContainer();this.metrics.createMetric("Rendering GPU time",r),this.metrics.createMetric("Rendering CPU time",r),this.metrics.createMetric("Chunking time",r),this.metrics.createMetric("Decoding time",r)}}this.downloaderWorker=new rr,this.decoderWorker=new ir,this.rendererWorker=new sr,this.adapterWorker=new or,window.BB.workerInstances.push(this.downloaderWorker,this.decoderWorker,this.rendererWorker,this.adapterWorker),this.rendererToDownloader=new MessageChannel,this.rendererToMain=new MessageChannel,this.downloaderToDecoder=new MessageChannel,this.decoderToRenderer=new MessageChannel,this.adapterToRenderer=new MessageChannel,this.setupWorkers(),this.canvas=document.createElement("canvas"),this.OTTPlayer.video.readyState>=3?this.setupCanvas():this.OTTPlayer.video.addEventListener("canplay",this.canPlayListner,{once:!0}),this.processedTimecodes=[],this.clicker=new nr(this.OTTPlayer,this.rendererWorker),this.segmentFirstFrameTimecode=new O,this.syncPoint={frame:0,playerTime:0,stringTime:""},this.cacheStarted=!1,this.animationFPScalculator=new nt(20),this.videoFPScalculator=new nt(20),this.startAnimationFrameLoop(),this.startVideoFrameCallbackLoop()}startAnimationFrameLoop(){const e=()=>{this.animationFPScalculator.addTimestamp(performance.now()/1e3),this.OTTPlayer.RUN_PIXEL_TICKERS&&this.OTTPlayer.pixelTickers.forEach(n=>{n.update()}),this.animationFrameLoopId=requestAnimationFrame(e)};this.animationFrameLoopId=requestAnimationFrame(e)}startVideoFrameCallbackLoop(){const e=(n,r)=>{this.mediaTime=r.mediaTime,this.videoFPScalculator.addTimestamp(r.mediaTime),this.videoFrameCallbackLoopId=this.OTTPlayer.video.requestVideoFrameCallback(e)};this.videoFrameCallbackLoopId=this.OTTPlayer.video.requestVideoFrameCallback(e)}setupCanvas(){const e=this.OTTPlayer.video,n=e.parentElement;this.canvas.width=e.videoWidth,this.canvas.height=e.videoHeight,this.canvas.style.zIndex="3000",this.canvas.style.position="absolute",this.canvas.style.top="50%",this.canvas.style.transform="translateY(-50%)",this.canvas.style.left="0",this.canvas.style.width=n.style.width,this.canvas.style.height=n.style.height,this.canvas.style.pointerEvents="none",n.addEventListener("click",this.clickListner),n.style.position="relative",n.appendChild(this.canvas);const r=this.canvas.transferControlToOffscreen(),s={type:"INIT_OFFSCREEN",offscreen:r,options:this.options};this.rendererWorker.postMessage(s,[r]),e.onseeked=()=>{this.onVideoSeeked()},e.onseeking=()=>{this.onVideoSeeked()}}setupWorkers(){this.downloaderWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&e.data.attributes.last_loading_zip&&this.metrics&&this.metrics.updateMetric("Last Downloaded Zip",e.data.attributes.last_loading_zip),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.decoderWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&e.data.attributes.last_decoded_frame&&this.metrics&&this.metrics.updateMetric("Last Decoded Frame",e.data.attributes.last_decoded_frame),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.rendererWorker.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&this.metrics&&(e.data.attributes.last_webgl_uploaded_frame&&this.metrics.updateMetric("Last WebGL Uploaded Frame",e.data.attributes.last_webgl_uploaded_frame),e.data.attributes.last_rendered_frame&&this.metrics.updateMetric("Last Rendered Frame",e.data.attributes.last_rendered_frame),e.data.attributes.renderer_state&&this.metrics.updateMetric("Renderer State",e.data.attributes.renderer_state)),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.adapterWorker.onmessage=e=>{e.data.type==="LOG"?this.logger.handleMessageFromWorker(e.data):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.rendererWorker.postMessage({type:"SET_DOWNLOADER_PORT",port:this.rendererToDownloader.port1},[this.rendererToDownloader.port1]),this.downloaderWorker.postMessage({type:"SET_RENDERER_PORT",port:this.rendererToDownloader.port2},[this.rendererToDownloader.port2]),this.downloaderWorker.postMessage({type:"SET_DECODER_PORT",port:this.downloaderToDecoder.port1},[this.downloaderToDecoder.port1]),this.decoderWorker.postMessage({type:"SET_DOWNLOADER_PORT",port:this.downloaderToDecoder.port2},[this.downloaderToDecoder.port2]),this.decoderWorker.postMessage({type:"SET_RENDERER_PORT",port:this.decoderToRenderer.port1},[this.decoderToRenderer.port1]),this.rendererWorker.postMessage({type:"SET_DECODER_PORT",port:this.decoderToRenderer.port2},[this.decoderToRenderer.port2]),this.adapterWorker.postMessage({type:"SET_RENDERER_PORT",port:this.adapterToRenderer.port1},[this.adapterToRenderer.port1]),this.rendererWorker.postMessage({type:"SET_ADAPTER_PORT",port:this.adapterToRenderer.port2},[this.adapterToRenderer.port2]),this.rendererWorker.postMessage({type:"SET_LOGGER_PORT",port:this.rendererToMain.port1},[this.rendererToMain.port1]),this.rendererToMain.port2.onmessage=e=>{e.data.type==="LOG"?(e.data.actionType==="SET_ATTRIBUTES"&&this.metrics&&(e.data.attributes.last_webgl_uploaded_frame&&this.metrics.updateMetric("Last WebGL Uploaded Frame",e.data.attributes.last_webgl_uploaded_frame),e.data.attributes.last_rendered_frame&&this.metrics.updateMetric("Last Rendered Frame",e.data.attributes.last_rendered_frame),e.data.attributes.renderer_state&&this.metrics.updateMetric("Renderer State",e.data.attributes.renderer_state)),this.logger.handleMessageFromWorker(e.data)):e.data.type==="TRACK_PERFORMANCE"&&this.trackPerformance(e.data)},this.downloaderWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.decoderWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.adapterWorker.postMessage({type:"SET_OPTIONS",options:this.options}),this.rendererWorker.postMessage({type:"SET_OPTIONS",options:this.options})}callAdapterWorker(e){this.adapterWorker.postMessage({type:"ADAPTER_UPDATE_DATA",data:e})}callRendererWorker(e,n,r){this.options&&F(this.options,"Clocker")&&console.log(`[Clocker] Sending current time code to the Renderer: ${e}`);const s=r?"RENDERER_CLEAR":"RENDERER_DRAW";if(!e||!this.OTTPlayer.gameParams||!this.OTTPlayer.gameParams.bucketName||!this.OTTPlayer.gameParams.offsets){const a={type:s};this.rendererWorker.postMessage(a);return}const i={timeCode:e,frameCorrection:n||0,fps:he(this.videoFPScalculator.getFPS()),cloudFrontURL:this.OTTPlayer.options.cloudFrontURL,bucketName:this.OTTPlayer.gameParams.bucketName,offsets:this.OTTPlayer.gameParams.offsets,customerId:this.OTTPlayer.gameParams.customerId},o={type:s,streamData:i};this.rendererWorker.postMessage(o),r||this.logger.setAttributes({last_timecode:e})}onVideoSeeked(){this.downloaderWorker.postMessage({type:"VIDEO_SEEKED"}),this.decoderWorker.postMessage({type:"VIDEO_SEEKED"}),this.rendererWorker.postMessage({type:"VIDEO_SEEKED"}),this.OTTPlayer.adapter&&this.OTTPlayer.adapter.onVideoSeeked(),this.logger.info("didSeek")}trackPerformance(e){var n;if((n=this.options.debug)!=null&&n.trackPerformance&&this.metrics)for(let r of e.data)this.metrics.updateMetric(r.metric,r.value.toFixed(2))}delete(){const e=this.OTTPlayer.video,n=e.parentElement;n.removeChild(this.canvas),this.rendererWorker.terminate(),this.downloaderWorker.terminate(),this.decoderWorker.terminate(),this.adapterWorker.terminate(),this.metrics&&this.metrics.delete(),this.animationFrameLoopId&&cancelAnimationFrame(this.animationFrameLoopId),this.videoFrameCallbackLoopId&&e.cancelVideoFrameCallback(this.videoFrameCallbackLoopId),e.removeEventListener("canplay",this.canPlayListner),n.removeEventListener("click",this.clickListner)}}class cr{constructor(){this.controls=new Map,this.containers=[]}createContainer(e){const n=document.createElement("div");n.style.display="flex",n.style.flexWrap="wrap",n.style.gap="10px",n.style.padding="10px",n.style.marginBottom="10px",n.style.border="1px solid #ccc",n.style.fontSize="14px",n.style.backgroundColor="#f9f9f9";const r=document.createElement("button");r.textContent="Apply",r.style.cursor="pointer";const s={div:n,controls:[],button:r};return r.addEventListener("click",()=>{const i={};s.controls.forEach(o=>{o.type==="input"||o.type==="select"?o.appliedValue=o.element.value:o.type==="checkbox"&&(o.appliedValue=String(o.element.checked)),i[o.name]=o.appliedValue}),e&&e(i)}),n.appendChild(r),document.body.appendChild(n),this.containers.push(s),s}createInput(e,n="",r){const s=document.createElement("label");s.style.display="flex",s.style.flexDirection="column",s.style.fontWeight="bold";const i=document.createElement("span");i.textContent=e,i.style.marginBottom="3px";const o=document.createElement("input");o.type="text",o.value=String(n),o.style.minWidth="60px";const a={name:e,type:"input",element:o,container:r,appliedValue:String(n)};this.controls.set(e,a),r.controls.push(a),s.appendChild(i),s.appendChild(o),r.div.insertBefore(s,r.button)}createSelect(e,n,r="",s){const i=document.createElement("label");i.style.display="flex",i.style.flexDirection="column",i.style.fontWeight="bold";const o=document.createElement("span");o.textContent=e,o.style.marginBottom="3px";const a=document.createElement("select");a.style.minWidth="80px",Object.entries(n).forEach(([l,d])=>{const u=document.createElement("option");u.textContent=l,u.value=String(d),a.appendChild(u)}),a.value=String(r);const c={name:e,type:"select",element:a,container:s,appliedValue:String(r)};this.controls.set(e,c),s.controls.push(c),i.appendChild(o),i.appendChild(a),s.div.insertBefore(i,s.button)}createCheckbox(e,n=!1,r){const s=document.createElement("label");s.style.display="flex",s.style.fontWeight="bold";const i=document.createElement("span");i.textContent=e,i.style.marginRight="5px";const o=document.createElement("input");o.type="checkbox",o.checked=n;const a={name:e,type:"checkbox",element:o,container:r,appliedValue:String(n)};this.controls.set(e,a),r.controls.push(a),s.appendChild(i),s.appendChild(o),r.div.insertBefore(s,r.button)}exportData(){const e={};return this.controls.forEach(n=>{e[n.name]=n.appliedValue}),e}getValue(e){const n=this.controls.get(e);return n?n.appliedValue:(console.error(`No control found with name: ${e}`),"")}delete(){this.containers.forEach(e=>{e.div.remove()}),this.containers=[],this.controls.clear()}}const Ae=t=>t.toString().padStart(2,"0"),rt=":",lr=(t,e,n=!1)=>{let r="";return Array.isArray(t)?(r=[Ae(t[0]),Ae(t[1]),Ae(t[2]),Ae(t[3])].join(":"),n==!0?t[4]==1&&e?r+=".2":r+=".1":t[4]==1&&e&&(r+=".1")):(r=("0"+t.h).slice(-2)+rt+("0"+t.m).slice(-2)+rt+("0"+t.s).slice(-2)+rt+("0"+t.f).slice(-2),r+="."+(t.field?"1":"2")),r},dr=(t,e,n)=>{let r=60,s=0;Math.floor(e)==60?(r=60,s=0):Math.floor(e)==59?(r=60,s=4):Math.floor(e)==30?(r=30,s=0):Math.floor(e)==29&&(r=30,s=2);let i=0,a=Math.floor(e*60*10)*6,c=t[0],l=t[1],d=t[2],u=t[3],f=t[4];return i+=c*a,i+=l*(r*60),i+=d*r,i+=u*2+f,i-=s*l,i+=s*Math.floor(l/10),i},P=(()=>{const t=()=>{const g=navigator.userAgent;return/windows/i.test(g)?"Windows":/android/i.test(g)?"Android":/iphone|ipad|ipod/i.test(g)?"iOS":/mac/i.test(g)?"Mac":/ipad/i.test(g)?"iPad":"Something else"},e=()=>t()==="Mac",n=()=>t()==="iPad",r=()=>t()==="iOS",s=()=>{const g=t();return g==="iOS"||g==="Mac"||g==="iPad"},i=()=>t()==="Windows",o=()=>t()==="Android",a=()=>{switch(t()){case"Windows":return"a Windows PC";case"Android":return"an Android phone";case"iOS":return"an iPhone";case"Mac":return"a Mac";case"iPad":return"an iPad";default:return"an Unknown device"}},c=()=>({header:[navigator.platform,navigator.userAgent,navigator.appVersion,navigator.vendor,window.opera],dataos:[{name:"Windows Phone",value:"Windows Phone",version:"OS"},{name:"Windows",value:"Win",version:"NT"},{name:"iPhone",value:"iPhone",version:"OS"},{name:"iPad",value:"iPad",version:"OS"},{name:"Kindle",value:"Silk",version:"Silk"},{name:"Android",value:"Android",version:"Android"},{name:"PlayBook",value:"PlayBook",version:"OS"},{name:"BlackBerry",value:"BlackBerry",version:"/"},{name:"Macintosh",value:"Mac",version:"OS X"},{name:"Linux",value:"Linux",version:"rv"},{name:"Palm",value:"Palm",version:"PalmOS"}],databrowser:[{name:"Chrome",value:"Chrome",version:"Chrome"},{name:"Firefox",value:"Firefox",version:"Firefox"},{name:"Safari",value:"Safari",version:"Version"},{name:"Internet Explorer",value:"MSIE",version:"MSIE"},{name:"Opera",value:"Opera",version:"Opera"},{name:"BlackBerry",value:"CLDC",version:"CLDC"},{name:"Mozilla",value:"Mozilla",version:"Mozilla"}],init(){const v=this.header.join(" ");return this.matchItem(v,this.dataos)},matchItem(v,w){for(let k=0;k<w.length;k+=1)if(new RegExp(w[k].value,"i").test(v))return w[k].name;return"unknown"}}).init(),l=()=>{const g=navigator.userAgent;return g.indexOf("Chrome")>-1&&g.indexOf("Edge")===-1?"Chrome":g.indexOf("Safari")>-1&&g.indexOf("Chrome")===-1?"Safari":g.indexOf("Firefox")>-1?"Firefox":g.indexOf("MSIE")>-1||g.indexOf("Trident")>-1?"Internet Explorer":g.indexOf("Edge")>-1?"Edge":"Unknown"};return{getCurrentPlatform:t,isMac:e,isiPad:n,isiPhone:r,isApple:s,isWindows:i,isAndroid:o,getDeviceDescription:a,getDeviceName:c,getBrowserName:l,isSafariMac:()=>e()&&l()==="Safari",isChromeMac:()=>e()&&l()==="Chrome",isChromeWin:()=>i()&&l()==="Chrome",isFirefoxMac:()=>e()&&l()==="Firefox",isFirefoxWin:()=>i()&&l()==="Firefox"}})();class ur{constructor(){this.start=0,this.end=0,this.startTimeoutForSeconds=(e,n)=>{this.start=performance.now(),this.end=this.start+e*1e3,this.reason=n,this.timeoutType==="manual"?this.timeoutType="both":this.timeoutType="interval"},this.startTimeoutManual=e=>{this.reason=e,this.timeoutType==="interval"?this.timeoutType="both":this.timeoutType===void 0&&(this.timeoutType="manual")},this.endTimoutManual=()=>{this.timeoutType==="manual"?(this.reason=void 0,this.timeoutType=void 0):this.timeoutType==="both"&&(this.timeoutType="interval")},this.resetTimeout=()=>{this.start=0,this.end=0,this.timeoutType=void 0,this.reason=void 0},this.getTimeoutStatus=()=>this.timeoutType===void 0?{isTimeout:!1}:this.timeoutType==="manual"?{isTimeout:!0,reason:this.reason,type:this.timeoutType}:performance.now()>=this.end?(this.start=0,this.end=0,this.timeoutType==="both"?(this.timeoutType="manual",{isTimeout:!0,reason:this.reason,type:this.timeoutType}):(this.timeoutType=void 0,this.reason=void 0,{isTimeout:!1})):{isTimeout:!0,reason:this.reason,type:this.timeoutType}}}class fr{constructor(e){if(this.platformSupported=!0,this.firstFrameTimecodeSet=!1,this.firstFrameTimecode=[0,0,0,0,0],this.firstVideoFrameCallbackFired=!1,this.timeout=new ur,this.loggerTimeoutStart=0,this.loggerTimeout=1e4,this.afData={counter:0,lastTimestamp:0,previousTimestamp:0,lastMetadataNow:0,timeFromLastRVFC:0,animationFPS:0,playerTimeOffset:0,lastPlayerTimeFromSync:0,lastCalculatedPlayerTimeVideoFrame:0,lastCalculatedPlayerTimeFraction:0,previousCalculatedPlayerTimeFraction:2},this.vfcData={counter:0,lastTimestamp:0,previousTimestamp:0,timeFromLastRAF:0,videoFPS:0,lastFrameMetadata:null,lastFrameMetadataNow:0,storedMetadata:[],timePerformanceNowToExpectedDisplayTime:0,timeRVFCnowToExpectedDisplayTime:0,mediaTimeOffset:0,lastMediaTimeFromSync:0,lastCalculatedMediaTimeVideoFrame:0},this.siData={counter:0,lastTimestamp:0,lastOffset:0,timeFromLastRAF:0,timeFromLastRVFC:0,lastSeenRAFCount:0,lastSeenRVFCCount:0,isRAFSeen:!1,isRVFCSeen:!1,isVideoPaused:!0,workingFps:0,refreshRate:0,RVFCmissed:0,RVFCframeExpected:0,expectedRefreshRate:0,avgExpectedRefreshRate:0,newRefreshRateFrames:0,expectedFPS:0,newFPSFrames:0,RVFCpattern:[],isRVFCpatternDetected:!1,patternTracking:[],patternTrackingIndex:-1,patternNextValue:-1,possibilityTracking:[],previousPossibilityValue:-1,lastCallback:null,lastCalculatedFrame:0,lastRendererFrameSent:0,lastMessageSent:"",compensationMode:!1,compensationCounter:0,frameCorrection:0,determineFramesIntervals:[],determineAFIntervals:[],expectedDisplayTimeReminder:0,animationFramesToDisplayTime:0},this.tcTimeStamp=0,this.timecode_offset=0,this.onAnimationFrame=n=>{if(this.video.paused||!this.OTTPlayer.clocker||!this.OTTPlayer.gameParams||!this.syncPoint){window.requestAnimationFrame(this.onAnimationFrame);return}this.afData.counter++,this.afData.previousTimestamp=this.afData.lastTimestamp,this.afData.lastTimestamp=performance.now(),this.afData.lastMetadataNow=n,this.afData.timeFromLastRVFC=this.afData.lastTimestamp-this.vfcData.lastTimestamp,this.afData.animationFPS=this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),this.siData.lastCallback=="RAF"&&this.siData.RVFCmissed++,this.siData.lastCallback="RAF";const r=(this.video.currentTime-this.syncPoint.playerTime)*(6e4/1001);this.afData.lastPlayerTimeFromSync=r;const s=Math.floor(r)+this.syncPoint.frame;this.afData.playerTimeOffset=O.calculateCurrentOffset(s,this.OTTPlayer.gameParams.offsets);let i=s-this.afData.playerTimeOffset;if(i<0&&(i+=5178816),i++,this.afData.lastCalculatedPlayerTimeVideoFrame=i,this.afData.previousCalculatedPlayerTimeFraction=this.afData.lastCalculatedPlayerTimeFraction,this.afData.lastCalculatedPlayerTimeFraction=r-Math.floor(r),this.metrics)try{this.metrics.updateMetric("RAF calls",this.afData.counter),this.metrics.updateMetric("Last player time",this.video.currentTime.toFixed(4)),this.metrics.updateMetric("Last player time frame",this.afData.lastCalculatedPlayerTimeVideoFrame),this.metrics.updateMetric("Last player time fraction",this.afData.lastCalculatedPlayerTimeFraction.toFixed(4)),this.metrics.updateMetric("Last player time double frame",this.afData.lastPlayerTimeFromSync.toFixed(5)),this.metrics.updateMetric("AF metadata now - perf.now()",(this.afData.lastTimestamp-this.afData.lastMetadataNow).toFixed(3)),this.metrics.updateMetric("VF ExpDispTime - AF metadata now",(this.afData.lastTimestamp-this.vfcData.lastFrameMetadata.expectedDisplayTime).toFixed(3)),this.metrics.updateMetric("Last RAF call",this.afData.lastTimestamp.toFixed(2)),this.metrics.updateMetric("RAF - RVFC dif",this.afData.timeFromLastRVFC.toFixed(2))}catch(o){this.options&&F(this.options,"Adapter")&&console.error(o)}window.requestAnimationFrame(this.onAnimationFrame),this.determineFrameUpdate()},this.onVideoFrame=(n,r)=>{if(this.firstVideoFrameCallbackFired||(this.firstVideoFrameCallbackFired=!0,this.logger.info("[Adapter] First video frame callback fired"),console.log("[Adapter] First video frame callback fired")),this.video.paused||!this.OTTPlayer.clocker||!this.OTTPlayer.gameParams||!this.syncPoint){this.video.requestVideoFrameCallback(this.onVideoFrame);return}this.vfcData.counter++,this.vfcData.previousTimestamp=this.vfcData.lastTimestamp,this.vfcData.lastTimestamp=performance.now(),this.vfcData.timeFromLastRAF=this.vfcData.lastTimestamp-this.afData.lastTimestamp,this.siData.RVFCmissed=0,this.vfcData.videoFPS=this.OTTPlayer.clocker.videoFPScalculator.getPerciseFPS(),this.siData.lastCallback="RVFC";const s=(r.mediaTime-this.syncPoint.playerTime)*(6e4/1001);this.vfcData.lastMediaTimeFromSync=s;const i=Math.floor(s+.1)+this.syncPoint.frame;this.vfcData.mediaTimeOffset=O.calculateCurrentOffset(i,this.OTTPlayer.gameParams.offsets);let o=i-this.vfcData.mediaTimeOffset;o<0&&(o+=5178816),o++,this.vfcData.lastCalculatedMediaTimeVideoFrame=o,this.vfcData.lastFrameMetadata=r,this.vfcData.storedMetadata.push(r),this.vfcData.storedMetadata.length>10&&this.vfcData.storedMetadata.shift(),this.vfcData.timePerformanceNowToExpectedDisplayTime=r.expectedDisplayTime-this.vfcData.lastTimestamp,this.vfcData.timeRVFCnowToExpectedDisplayTime=r.expectedDisplayTime-n,this.vfcData.lastFrameMetadataNow=n,this.metrics&&(this.metrics.updateMetric("RVFC calls",this.vfcData.counter),this.metrics.updateMetric("Last metadata media time",r.mediaTime.toFixed(4)),this.metrics.updateMetric("Last metadata media time frame",this.vfcData.lastCalculatedMediaTimeVideoFrame),this.metrics.updateMetric("Time to presentation time",(r.presentationTime-n).toFixed(4)),this.metrics.updateMetric("Metadata presented frames",r.presentedFrames),this.metrics.updateMetric("Metadata processing duration",r.processingDuration),this.metrics.updateMetric("Last media time double frame",this.vfcData.lastMediaTimeFromSync.toFixed(5)),this.metrics.updateMetric("VF metadata now - perf.now()",(this.afData.lastTimestamp-this.afData.lastMetadataNow).toFixed(3)),this.metrics.updateMetric("RVFC to expected display time",this.vfcData.timeRVFCnowToExpectedDisplayTime.toFixed(4)),this.metrics.updateMetric("Performance Now to expected display time",this.vfcData.timePerformanceNowToExpectedDisplayTime.toFixed(4)),this.metrics.updateMetric("Last RVFC call",this.vfcData.lastTimestamp.toFixed(2))),this.video.requestVideoFrameCallback(this.onVideoFrame),this.determineFrameUpdate()},this.determineFrameUpdate=()=>{var n,r,s,i;if(!(!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata))if(this.siData.counter===0&&this.logger.info("didStartAugmentation"),this.siData.counter++,this.siData.isVideoPaused=this.video.paused,this.siData.isRAFSeen=this.siData.lastSeenRAFCount==this.afData.counter,this.siData.isRVFCSeen=this.siData.lastSeenRVFCCount==this.vfcData.counter,this.siData.lastTimestamp=performance.now(),this.siData.timeFromLastRAF=this.siData.lastTimestamp-this.afData.lastTimestamp,this.siData.timeFromLastRVFC=this.siData.lastTimestamp-this.vfcData.lastTimestamp,this.siData.lastSeenRAFCount=this.afData.counter,this.siData.lastSeenRVFCCount=this.vfcData.counter,this.siData.workingFps=this.OTTPlayer.clocker.videoFPScalculator.getFPS(),this.siData.refreshRate=this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),!this.OTTPlayer.options.ADAPTER_RUN_IN_WORKER)this.platformSpecificFrameUpdate();else{const o={siData:this.siData,vfcData:this.vfcData,afData:this.afData,debugControls:(n=this.debugControls)==null?void 0:n.exportData(),cloudFrontURL:this.OTTPlayer.options.cloudFrontURL,bucketName:((r=this.OTTPlayer.gameParams)==null?void 0:r.bucketName)||"",offsets:((s=this.OTTPlayer.gameParams)==null?void 0:s.offsets)||[],customerId:((i=this.OTTPlayer.gameParams)==null?void 0:i.customerId)||""};this.OTTPlayer.clocker.callAdapterWorker(o)}},this.determineFrameUpdateChromeMac=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>4?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS(),this.siData.newRefreshRateFrames=0),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=20,s=1e3;if(!this.siData.isRVFCSeen){const i=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(i<=0&&this.siData.patternTracking.length<=1-i){this.siData.patternTracking=[!0];for(let o=0;o<1-i;o++)this.siData.patternTracking.push(!1)}else i<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+i]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>s&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const i=this.siData.patternTracking;for(let o=1;o*r<=i.length;o++){for(let a=0;a+o*r<=i.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=i.slice(a+l*o,a+(l+1)*o),u=i.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=i.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const i=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-i.length;c>=0;c--){let l=!0;for(let d=0;d<i.length;d++)if(i[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%i.length,l=i[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=i.length*5){o.slice(o.length-i.length*5);let c=0,l=0;for(let d=0;d+i.length<=o.length;d++)o.slice(d,d+i.length).every((f,p)=>f===i[p])?(c++,l=Math.max(l,c),d+=i.length-1):c=0;l<6&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const i=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=i[0],a=i[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let i=0,o=1,a=5;if(this.debugControls){const c=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(c)||(i=c);const l=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(l)||(o=l);const d=parseInt(this.debugControls.getValue("Timeout time"),10);isNaN(d)||(a=d)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),this.siData.RVFCpattern[(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+i)%this.siData.RVFCpattern.length]?setTimeout(()=>this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+o),a):this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateChromeWin=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>3?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS()),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=20,s=1e3;if(!this.siData.isRVFCSeen){const i=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(i<=0&&this.siData.patternTracking.length<=1-i){this.siData.patternTracking=[!0];for(let o=0;o<1-i;o++)this.siData.patternTracking.push(!1)}else i<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+i]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>s&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const i=this.siData.patternTracking;for(let o=1;o*r<=i.length;o++){for(let a=0;a+o*r<=i.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=i.slice(a+l*o,a+(l+1)*o),u=i.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=i.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const i=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-i.length;c>=0;c--){let l=!0;for(let d=0;d<i.length;d++)if(i[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%i.length,l=i[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=i.length*5){o.slice(o.length-i.length*5);let c=0,l=0;for(let d=0;d+i.length<=o.length;d++)o.slice(d,d+i.length).every((f,p)=>f===i[p])?(c++,l=Math.max(l,c),d+=i.length-1):c=0;l<6&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const i=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=i[0],a=i[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let i=0,o=2,a=!1;if(this.debugControls){const d=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(d)||(i=d);const u=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(u)||(o=u),parseInt(this.debugControls.getValue("Timeout time"),10),this.debugControls.getValue("Video Captur Card Mode")==="true"&&(a=!0)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),a&&(i+=1);const c=(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+i)%this.siData.RVFCpattern.length,l=(c+this.siData.RVFCpattern.length-1)%this.siData.RVFCpattern.length;if(this.siData.RVFCpattern[c]){let d=0;a&&this.siData.lastRendererFrameSent==this.vfcData.lastCalculatedMediaTimeVideoFrame&&this.siData.RVFCpattern[l]&&(d=2),this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+d+o)}}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateSifariMac=()=>{if(this.siData.expectedRefreshRate&&this.siData.expectedFPS&&(this.expectedRefreshRateCalculator.addFrameDuration(1/this.siData.refreshRate),this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS(),Math.abs(this.siData.expectedRefreshRate-this.siData.avgExpectedRefreshRate)>3&&this.siData.newRefreshRateFrames++,Math.abs(this.siData.expectedFPS-this.siData.workingFps)>3&&this.siData.newFPSFrames++,(this.siData.newRefreshRateFrames>10||this.siData.newFPSFrames>10)&&(this.siData.newRefreshRateFrames=0,this.siData.expectedRefreshRate=0,this.siData.newFPSFrames=0,this.siData.expectedFPS=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const n=Math.abs(this.siData.refreshRate-this.siData.workingFps)<2?8:20,r=1e3,s=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((h,m)=>m-h),i=2,o=s[0],a=s[1],c=o-a,l=1e3/this.afData.animationFPS,d=Math.round(l/4+.1),u=this.vfcData.timeRVFCnowToExpectedDisplayTime;if(this.siData.isRVFCSeen)this.metrics;else{const h=(-u-d)/l,m=Math.ceil(h),g=(Math.round(h)-h)*l,T=Math.abs(g)<=i,w=g<=0?m-1:m+1,k=Math.abs(-u-d)<=i;if(this.metrics&&(this.metrics.updateMetric("Is Smoothing Needed",T),this.metrics.updateMetric("Is More Than Border",m),this.metrics.updateMetric("Is Smoothed",w)),T&&!k){const R=Math.min(m,w),x=Math.max(m,w);this.metrics&&this.metrics.updateMetric("Pssblty next index",""+R+" "+x),this.siData.possibilityTracking[this.siData.possibilityTracking.length-R]=2,this.siData.possibilityTracking[this.siData.possibilityTracking.length-x]=1}else T&&k&&(this.metrics&&this.metrics.updateMetric("Pssblty next index","min"),this.siData.possibilityTracking[this.siData.possibilityTracking.length-1]=1,this.siData.possibilityTracking.push(2),this.siData.possibilityTracking.push(3));if(-u<d)this.siData.expectedDisplayTimeReminder=-u;else if(c>l&&-u-(c-l)<=d)this.siData.expectedDisplayTimeReminder=-u-(c-l);else{let R=-u-c,x=0,_=this.siData.determineFramesIntervals.length-1;for(let U=this.siData.determineAFIntervals.length-1;U>=0&&(_--,!(this.siData.determineAFIntervals[U]>l&&R-(this.siData.determineAFIntervals[U]-l)<=d||R<=d||this.siData.determineFramesIntervals[_].includes("vf")&&this.siData.workingFps<40));U--)R-=this.siData.determineAFIntervals[U],x+=1;if(this.siData.patternTracking.length<x+1){this.siData.patternTracking=[!0];for(let U=0;U<x;U++)this.siData.patternTracking.push(!1)}else this.siData.patternTracking[this.siData.patternTracking.length-1-x]=!0;this.siData.animationFramesToDisplayTime=x}}if(this.siData.isRAFSeen||(this.siData.expectedDisplayTimeReminder?(this.siData.expectedDisplayTimeReminder-d,this.siData.expectedDisplayTimeReminder+c<=d?(this.siData.patternTracking.push(!0),this.siData.animationFramesToDisplayTime=0):(this.siData.patternTracking[this.siData.patternTracking.length-1]=!0,this.siData.patternTracking.push(!1),this.siData.animationFramesToDisplayTime=1),this.siData.expectedDisplayTimeReminder=0):(this.siData.patternTracking.push(!1),this.siData.animationFramesToDisplayTime+=1),this.siData.possibilityTracking[this.siData.possibilityTracking.length-1]==3?this.siData.possibilityTracking.pop():this.siData.possibilityTracking.push(0)),this.siData.patternTracking.length>r&&this.siData.patternTracking.shift(),this.siData.possibilityTracking.length>r&&this.siData.possibilityTracking.shift(),!this.siData.isRVFCpatternDetected){const h=this.siData.patternTracking;for(let m=1;m*n<=h.length;m++){for(let g=0;g+m*n<=h.length;g++){let T=!0;for(let v=0;v<n-1;v++){const w=h.slice(g+v*m,g+(v+1)*m),k=h.slice(g+(v+1)*m,g+(v+2)*m);if(!w.every((R,x)=>R===k[x])){T=!1;break}}if(T){const v=h.slice(g,g+m),w=v.every(x=>!x),k=v.every(x=>x),R=this.afData.animationFPS-this.vfcData.videoFPS;if(w||k&&R>5)continue;this.siData.RVFCpattern=v,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected){this.siData.expectedRefreshRate=this.siData.refreshRate,this.siData.expectedFPS=this.siData.workingFps;break}}}if(this.siData.RVFCpattern.length>0){const h=this.siData.RVFCpattern,m=this.siData.patternTracking;let g=-1;for(let T=m.length-h.length*5;T>=0;T--){let v=!0;for(let w=0;w<h.length*5;w++)if(h[w%h.length]!==m[T+w]){v=!1;break}if(v){g=T;break}}if(g>=0){const T=(m.length-g)%h.length,v=h[T];this.siData.patternTrackingIndex=T,this.siData.patternNextValue=v?1:0}if(m.length>=h.length*5){m.slice(m.length-h.length*5);let T=0,v=0;for(let w=0;w+h.length<=m.length;w++)m.slice(w,w+h.length).every((R,x)=>R===h[x])?(T++,v=Math.max(v,T),w+=h.length-1):T=0;v<6&&(this.siData.isRVFCpatternDetected=!1)}}const f=[];for(let h=1;h<=3;h++)f.push(this.siData.possibilityTracking[this.siData.possibilityTracking.length-this.siData.RVFCpattern.length*h]);const p=Math.max(...f);if(this.metrics){let h="";if(this.siData.isRAFSeen?h="vf: "+c.toFixed(0):h="af: "+c.toFixed(0),this.siData.determineFramesIntervals.push(h),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),!this.siData.isRAFSeen){const m=this.afData.lastTimestamp-this.afData.previousTimestamp;this.siData.determineAFIntervals.push(m),this.siData.determineAFIntervals.length>10&&this.siData.determineAFIntervals.shift()}this.siData.isRVFCSeen||this.metrics.updateMetric("Last AF to VF time",(this.vfcData.lastTimestamp-this.afData.lastTimestamp).toFixed(0)),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("AF frames intervals",this.siData.determineAFIntervals.map(m=>m.toFixed(0)).join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(m=>m?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.map(m=>m?1:0).slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Pssblty found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pssblty array",this.siData.RVFCpattern.map(m=>m?1:0).join("")),this.metrics.updateMetric("Pssblty tracking",this.siData.possibilityTracking.slice(this.siData.possibilityTracking.length>100?this.siData.possibilityTracking.length-100:0).join("")),this.metrics.updateMetric("Pssblty next value",p),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate.toFixed(5)),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(5)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames),this.metrics.updateMetric("AF To Display Time",this.siData.animationFramesToDisplayTime),this.metrics.updateMetric("Call Renderer Reached",!1)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let h=0,m=0;if(this.debugControls){const T=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(T)||(h=T);const v=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(v)||(m=v),parseInt(this.debugControls.getValue("Timeout time"),10)}this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset}));const g=(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length+h)%this.siData.RVFCpattern.length;if(this.siData.RVFCpattern[g]||p){const T=Math.ceil(this.siData.animationFramesToDisplayTime/this.siData.RVFCpattern.length)+1,v=this.siData.RVFCpattern.map(De=>De?1:0).join("").repeat(T),w=(this.siData.RVFCpattern.length-this.siData.patternTrackingIndex)%this.siData.RVFCpattern.length,k=v.slice(0,w==0?-this.siData.RVFCpattern.length:-w);let R=0;const x=this.siData.possibilityTracking.length-1-this.siData.animationFramesToDisplayTime;k[k.length-1-this.siData.animationFramesToDisplayTime]=="0"&&this.siData.possibilityTracking[x]==1&&(R=-1);const _=this.siData.animationFramesToDisplayTime+R,U=_<=0?"":k.slice(-_);let Re=U.split("").filter(De=>De==="1").length*Math.round(60/this.siData.workingFps);this.siData.workingFps<40&&(Re+=1),this.siData.compensationMode&&!(p==2||this.siData.previousPossibilityValue==2)&&(this.siData.compensationCounter=1,this.siData.compensationMode=!1),this.siData.compensationCounter==1?this.siData.possibilityTracking.slice(-5).every(De=>De===0)&&(this.siData.compensationCounter-=.1):this.siData.compensationCounter>0&&this.siData.compensationCounter<1&&(this.siData.compensationCounter=Math.max(this.siData.compensationCounter-.1,0)),p==1?this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m-1,this.siData.compensationCounter):p==2&&this.siData.previousPossibilityValue==1?this.callRenderer(this.siData.lastRendererFrameSent+1,this.siData.compensationCounter):this.siData.RVFCpattern[g]&&((p==2||this.siData.previousPossibilityValue==2)&&Math.abs(this.afData.animationFPS-this.siData.workingFps)<5&&this.siData.lastRendererFrameSent==this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m?(this.callRenderer(this.siData.lastRendererFrameSent+1,this.siData.compensationCounter),this.siData.compensationMode=!0):this.callRenderer(this.vfcData.lastCalculatedMediaTimeVideoFrame+Re+m,this.siData.compensationCounter)),this.metrics&&(this.metrics.updateMetric("Call Renderer Reached",!0),this.metrics.updateMetric("Is Smoothing Needed",this.siData.compensationMode),this.metrics.updateMetric("Correction",Re),this.metrics.updateMetric("Compensation Counter",this.siData.compensationCounter),this.metrics.updateMetric("Repeated Pattern",v),this.metrics.updateMetric("Trimmed Pattern",k),this.metrics.updateMetric("Sliced Pattern",U),this.metrics.updateMetric("AF To Display Time Correction",R)),this.siData.previousPossibilityValue=p}else this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.determineFrameUpdateFirefoxMac=()=>{const n=Math.round(1e3/this.vfcData.timeRVFCnowToExpectedDisplayTime);if(n>0&&n<500&&(this.expectedRefreshRateCalculator.addFrameDuration(this.vfcData.timeRVFCnowToExpectedDisplayTime/1e3),Math.abs(this.siData.expectedRefreshRate-n)>3?this.siData.newRefreshRateFrames++:(this.siData.expectedRefreshRate=n,this.siData.avgExpectedRefreshRate=this.expectedRefreshRateCalculator.getPerciseFPS()),this.siData.newRefreshRateFrames>10&&(this.siData.newRefreshRateFrames=0,this.siData.RVFCpattern=[],this.siData.patternTracking=[],this.siData.expectedRefreshRate=n,this.siData.isRVFCpatternDetected=!1)),this.video.paused||!this.OTTPlayer.clocker||!this.vfcData.lastFrameMetadata)return;const r=5,s=1e3;if(!this.siData.isRVFCSeen){const i=Math.round(this.vfcData.timeRVFCnowToExpectedDisplayTime/(1e3/this.afData.animationFPS));if(i<=0&&this.siData.patternTracking.length<=1-i){this.siData.patternTracking=[!0];for(let o=0;o<1-i;o++)this.siData.patternTracking.push(!1)}else i<=1&&(this.siData.patternTracking[this.siData.patternTracking.length-2+i]=!0)}if(this.siData.isRAFSeen||this.siData.patternTracking.push(!1),this.siData.patternTracking.length>s&&this.siData.patternTracking.shift(),!this.siData.isRVFCpatternDetected){const i=this.siData.patternTracking;for(let o=1;o*r<=i.length;o++){for(let a=0;a+o*r<=i.length;a++){let c=!0;for(let l=0;l<r-1;l++){const d=i.slice(a+l*o,a+(l+1)*o),u=i.slice(a+(l+1)*o,a+(l+2)*o);if(!d.every((f,p)=>f===u[p])){c=!1;break}}if(c){const l=i.slice(a,a+o),d=l.every(p=>!p),u=l.every(p=>p),f=this.afData.animationFPS-this.vfcData.videoFPS;if(d||u&&f>5)continue;this.siData.RVFCpattern=l,this.siData.isRVFCpatternDetected=!0;break}}if(this.siData.isRVFCpatternDetected)break}}if(this.siData.RVFCpattern.length>0){const i=this.siData.RVFCpattern,o=this.siData.patternTracking;let a=-1;for(let c=o.length-i.length;c>=0;c--){let l=!0;for(let d=0;d<i.length;d++)if(i[d]!==o[c+d]){l=!1;break}if(l){a=c;break}}if(a>=0){const c=(o.length-a)%i.length,l=i[c];this.siData.patternTrackingIndex=c,this.siData.patternNextValue=l?1:0}if(o.length>=i.length*5){o.slice(o.length-i.length*5);let c=0,l=0;for(let d=0;d+i.length<=o.length;d++)o.slice(d,d+i.length).every((f,p)=>f===i[p])?(c++,l=Math.max(l,c),d+=i.length-1):c=0;l<5&&(this.siData.isRVFCpatternDetected=!1)}Math.abs(this.siData.avgExpectedRefreshRate-this.siData.refreshRate)>3&&(this.siData.isRVFCpatternDetected=!1)}if(this.metrics){performance.now();const i=[this.afData.lastTimestamp,this.vfcData.lastTimestamp,this.afData.previousTimestamp,this.vfcData.previousTimestamp].sort((l,d)=>d-l),o=i[0],a=i[1],c=o-a;this.siData.determineFramesIntervals||(this.siData.determineFramesIntervals=[]),this.siData.determineFramesIntervals.push(c.toFixed(2)),this.siData.determineFramesIntervals.length>10&&this.siData.determineFramesIntervals.shift(),this.metrics.updateMetric("Determine frames intervals",this.siData.determineFramesIntervals.join(", ")),this.metrics.updateMetric("RVFC missed",this.siData.RVFCmissed),this.metrics.updateMetric("Pattern found",this.siData.isRVFCpatternDetected),this.metrics.updateMetric("Pattern array",this.siData.RVFCpattern.map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next index",this.siData.patternTrackingIndex),this.metrics.updateMetric("Pattern tracking",this.siData.patternTracking.slice(this.siData.patternTracking.length>100?this.siData.patternTracking.length-100:0).map(l=>l?1:0).join("")),this.metrics.updateMetric("Pattern next value",this.siData.patternNextValue),this.metrics.updateMetric("Refresh rate",this.siData.refreshRate.toFixed(2)),this.metrics.updateMetric("Expected Refresh Rate",this.siData.expectedRefreshRate),this.metrics.updateMetric("Avg Expected Refresh Rate",this.siData.avgExpectedRefreshRate.toFixed(2)),this.metrics.updateMetric("New Refresh Rate Frames",this.siData.newRefreshRateFrames)}if(!this.siData.isRAFSeen&&this.siData.isRVFCpatternDetected){let i=0,o=1;if(this.debugControls){const a=parseInt(this.debugControls.getValue("Pattern offset"),10);isNaN(a)||(i=a);const c=parseInt(this.debugControls.getValue("Frame Correction"),10);isNaN(c)||(o=c),parseInt(this.debugControls.getValue("Timeout time"),10)}if(this.siData.lastOffset!=this.vfcData.mediaTimeOffset&&(this.siData.lastOffset=this.vfcData.mediaTimeOffset,this.logger.info("didChangeOffset",{offset:this.vfcData.mediaTimeOffset}),this.logger.setAttributes({last_offset:this.vfcData.mediaTimeOffset})),this.siData.RVFCpattern[(this.siData.patternTrackingIndex+this.siData.RVFCpattern.length-1+i)%this.siData.RVFCpattern.length]){let a=this.vfcData.lastCalculatedMediaTimeVideoFrame+o;a==this.siData.lastRendererFrameSent&&(a+=2),this.callRenderer(a)}else this.callRenderer(this.siData.lastRendererFrameSent)}else this.siData.isRVFCpatternDetected||this.clearAugmentation()},this.callRenderer=(n,r)=>{if(!this.OTTPlayer.clocker||!this.OTTPlayer)return;this.siData.lastRendererFrameSent=n,this.metrics&&this.metrics.updateMetric("Last sent frame",n);const s=this.OTTPlayer.clocker.videoFPScalculator.getFPS();this.metrics&&this.metrics.updateMetric("FPS",s.toFixed(2));const i=O.fromFrames(n,6e4/1001),o=this.timeout.getTimeoutStatus();this.logger.setAttributes({timeout:o.isTimeout,timeout_reason:o.reason}),o.isTimeout?this.clearAugmentation(o.reason==="MKAdInProgress"?void 0:i):(this.OTTPlayer.clocker.videoFPScalculator.getPerciseFPS(),this.OTTPlayer.clocker.animationFPScalculator.getPerciseFPS(),this.renderAugmentation(i,r))},this.playbackTimeDelta=0,this.wallClockTimeDelta=0,this.dateTimeDelta=0,this.renderAugmentation=(n,r)=>{if(!this.OTTPlayer||!this.OTTPlayer.clocker)throw new Error("OTTPlayer is not initialized");const s=O.toStr(n);this.siData.lastMessageSent=s,this.options&&F(this.options,"Adapter")&&console.log(`Rendering augmentation for timecode: ${s} , ${n}`),this.metrics&&this.metrics.updateMetric("Last sent timecode",s),this.OTTPlayer.clocker.callRendererWorker(s,r)},this.onVideoSeeked=()=>{this.firstFrameTimecode=[0,0,0,0,0],this.firstFrameTimecodeSet=!1},this.clearAugmentation=n=>{if(!this.OTTPlayer||!this.OTTPlayer.clocker)throw new Error("OTTPlayer is not initialized");const r=n?O.toStr(n):void 0;this.options&&F(this.options,"Adapter")&&console.log("Clearing augmentation"),this.OTTPlayer.clocker.callRendererWorker(r,0,!0)},this.logger=e.logger,this.OTTPlayer=e,this.options=e.options,this.options&&F(this.options,"Adapter")&&console.log("Adapter is initialized",this.OTTPlayer),this.video=e.video,this.debug=this.options.debug?this.options.debug.on:!1,this.expectedRefreshRateCalculator=new nt(20),P.isChromeMac())this.platformSpecificFrameUpdate=this.determineFrameUpdateChromeMac;else if(P.isChromeWin())this.platformSpecificFrameUpdate=this.determineFrameUpdateChromeWin;else if(P.isSafariMac())this.platformSpecificFrameUpdate=this.determineFrameUpdateSifariMac;else{P.isFirefoxMac(),this.platformSpecificFrameUpdate=()=>{},this.logger.error("Unsupported platform: "+this.options.platform+" "+this.options.browserName),console.error("Unsupported platform: "+this.options.platform+" "+this.options.browserName),this.platformSupported=!1;return}if(this.debug){this.metrics=new jt;const n=this.metrics.createContainer(),r=this.metrics.createContainer(),s=this.metrics.createContainer(),i=this.metrics.createContainer(),o=this.metrics.createContainer(),a=this.metrics.createContainer(),c=this.metrics.createContainer(),l=this.metrics.createContainer(),d=this.metrics.createContainer(),u=this.metrics.createContainer(),f=this.metrics.createContainer(),p=this.metrics.createContainer(),h=this.metrics.createContainer();this.metrics.createMetric("RAF calls",n),this.metrics.createMetric("RVFC calls",n),this.metrics.createMetric("RVFC missed",n),this.metrics.createMetric("Last sent frame",n),this.metrics.createMetric("Last sent timecode",n),this.metrics.createMetric("Last metadata media time",r),this.metrics.createMetric("Last player time",r),this.metrics.createMetric("RVFC to expected display time",r),this.metrics.createMetric("Performance Now to expected display time",r),this.metrics.createMetric("Last metadata media time frame",s),this.metrics.createMetric("Last player time frame",s),this.metrics.createMetric("Last player time fraction",s),this.metrics.createMetric("Last media time double frame",i),this.metrics.createMetric("Last player time double frame",i),this.metrics.createMetric("Compensation Counter",i),this.metrics.createMetric("AF metadata now - perf.now()",o),this.metrics.createMetric("VF metadata now - perf.now()",o),this.metrics.createMetric("VF ExpDispTime - AF metadata now",o),this.metrics.createMetric("Time to presentation time",a),this.metrics.createMetric("Metadata presented frames",a),this.metrics.createMetric("Metadata processing duration",a),this.metrics.createMetric("FPS",c),this.metrics.createMetric("Refresh rate",c),this.metrics.createMetric("Last RAF call",c),this.metrics.createMetric("Last RVFC call",c),this.metrics.createMetric("RAF - RVFC dif",c),this.metrics.createMetric("Determine frames intervals",l),this.metrics.createMetric("Last AF to VF time",d),this.metrics.createMetric("AF frames intervals",d),this.metrics.createMetric("Expected Refresh Rate",u),this.metrics.createMetric("Avg Expected Refresh Rate",u),this.metrics.createMetric("New Refresh Rate Frames",u),this.metrics.createMetric("AF To Display Time",u),this.metrics.createMetric("AF To Display Time Correction",u),this.metrics.createMetric("Call Renderer Reached",u),this.metrics.createMetric("Is Smoothing Needed",f),this.metrics.createMetric("Is More Than Border",f),this.metrics.createMetric("Is Smoothed",f),this.metrics.createMetric("Correction",f),this.metrics.createMetric("Repeated Pattern",f),this.metrics.createMetric("Trimmed Pattern",f),this.metrics.createMetric("Sliced Pattern",f),this.metrics.createMetric("Pattern found",p),this.metrics.createMetric("Pattern array",p),this.metrics.createMetric("Pattern tracking",p),this.metrics.createMetric("Pattern next index",p),this.metrics.createMetric("Pattern next value",p),this.metrics.createMetric("Pssblty found",h),this.metrics.createMetric("Pssblty array",h),this.metrics.createMetric("Pssblty tracking",h),this.metrics.createMetric("Pssblty next index",h),this.metrics.createMetric("Pssblty next value",h),this.debugControls=new cr;const m=this.debugControls.createContainer(),g=this.debugControls.createContainer();this.debugControls.createInput("Window Start (ms)",4,m),this.debugControls.createInput("Window End (ms)",-11,m),this.debugControls.createSelect("Pattern offset",{"-5":-5,"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4,5:5},"0",m),this.debugControls.createCheckbox("Video Captur Card Mode",!1,m),P.isChromeWin()?this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"2",g):P.isSafariMac()?this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"0",g):this.debugControls.createSelect("Frame Correction",{"-4":-4,"-3":-3,"-2":-2,"-1":-1,0:0,1:1,2:2,3:3,4:4},"1",g),this.debugControls.createSelect("Timeout time",{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20},"5",g)}this.platformSupported&&(this.OTTPlayer.video.readyState>=3?this.setupAdapter():this.OTTPlayer.video.addEventListener("canplay",()=>this.setupAdapter(),{once:!0}))}setupAdapter(){const e=this.video;if(this.debug){const n=typeof wmcsdk<"u"?wmcsdk:wmcPlayer;console.log(n);const r=n.getAvailableVideoQualities(),s={};r.forEach(a=>{s[a.label]=a.id});const i=a=>{n.doSetVideoQuality(a.videoQuality)},o=this.debugControls.createContainer(i);this.debugControls.createSelect("videoQuality",s,r[0].id,o)}this.animationFrameLoopId=window.requestAnimationFrame(this.onAnimationFrame),this.videoFrameCallbackLoopId=e.requestVideoFrameCallback(this.onVideoFrame)}onNewSegmentForMetadata(e){if(!this.firstFrameTimecodeSet){const a=performance.now();a-this.loggerTimeoutStart>this.loggerTimeout&&(this.loggerTimeoutStart=a,this.logger.error("[Adapter] First frame timecode of the recieved segment not set")),console.error("[Adapter] First frame timecode of the recieved segment not set");return}const n=dr(this.firstFrameTimecode,6e4/1001);if(console.log(e),!e.mimeType.includes("video"))return;const r=lr(this.firstFrameTimecode,!0,!0);this.options&&F(this.options,"Adapter")&&console.log("New segment ("+e.url+"): "+r+" ("+n+") playing at "+e.playbackTime);const s=e.playbackTime;s-this.playbackTimeDelta,this.playbackTimeDelta=s;const i=e.wallClockTime/1e3;if(i-this.wallClockTimeDelta,this.wallClockTimeDelta=i,e.dateTime instanceof Date){const a=e.dateTime.getTime()/1e3;a-this.dateTimeDelta,this.dateTimeDelta=a}const o={frame:n,playerTime:s,stringTime:r,lastUpdate:performance.now()};this.syncPoint=o,this.metrics,this.options&&F(this.options,"Adapter")&&console.log("url: "+e.url)}onNewMetadata(e){if(e&&e.metadata&&e.metadata.id==0||P.isSafariMac()){if(e.metadata.messageData)e.metadata.messageData=this.processTimedMetadata(e.metadata.messageData,e.metadata.presentationTime);else if(e.metadata.frames&&e.metadata.frames.length&&e.metadata.frames[0].key&&e.metadata.frames[0].key.toLowerCase()==="priv"){const n=e.metadata.frames.filter(r=>r.info&&r.info.toLowerCase().includes("ntc"));if(n.length){const r=`${n[n.length-1].info}\0${String.fromCharCode(...n[n.length-1].data)}`;e.metadata.messageData=this.processTimedMetadata(r,e.metadata.presentationTime)}}if(e.metadata.id==0||P.isSafariMac()&&this.timecode_offset==0){e.metadata.presentationTime*1e3;const n=new Date(this.tcTimeStamp-this.timecode_offset);let r=Math.round(n.getUTCMilliseconds()*30*2/1001)/2;const s=r%1;let i=1;s==.5&&(r=Math.floor(r),i=2),this.firstFrameTimecode=[n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),Math.floor(r),i==1?0:1],this.logger.setAttributes({segment_first_frame_timecode:this.firstFrameTimecode}),this.firstFrameTimecodeSet||this.logger.info(`[Adapter] Segment first frame timecode set: ${this.firstFrameTimecode}`),this.firstFrameTimecodeSet=!0,console.log("First frame timecode: ",this.firstFrameTimecode)}}}onAdEvent(e){this.options&&F(this.options,"Adapter")&&console.log(`Ad event: ${e}`),e==="start"?this.timeout.startTimeoutManual("MKAdInProgress"):e==="end"&&this.timeout.endTimoutManual()}processTimedMetadata(e,n){let r="";if(e&&e.includes("www.mediakind.com/NTC")){const s=e.replace(/.*NTC./,"");let i=0;for(;i+8<=s.length;){const o=s.substring(i,i+4),a=((s.charCodeAt(i+4)*256+s.charCodeAt(i+5))*256+s.charCodeAt(i+6))*256+s.charCodeAt(i+7);if(i+8+a>s.length)break;const c=s.substring(i+8,i+8+a);o=="utc_"&&new Date(parseInt(c)).getTime()/1e3,o=="tc__"&&(this.tcTimeStamp=new Date(parseInt(c)).getTime()),o==="offs"&&(this.timecode_offset=parseInt(c)/90),i+=8+a}}return r}delete(){this.animationFrameLoopId&&cancelAnimationFrame(this.animationFrameLoopId),this.videoFrameCallbackLoopId&&this.video.cancelVideoFrameCallback(this.videoFrameCallbackLoopId),this.intervalLoopId&&clearInterval(this.intervalLoopId),this.metrics&&this.metrics.delete(),this.debugControls&&this.debugControls.delete()}}class Y{constructor(e,n){this.size=1,this.positionElement=()=>{let s=0,i=0;this.corner=="left-top"?(this.element.style.top=`${s}px`,this.element.style.left=`${i}px`):this.corner=="right-top"?(this.element.style.top=`${s}px`,this.element.style.left=`${i+this.video.offsetWidth-this.size}px`):this.corner=="right-bottom"?(this.element.style.top=`${s+this.video.offsetHeight-this.size}px`,this.element.style.left=`${i+this.video.offsetWidth-this.size}px`):this.corner=="left-bottom"&&(this.element.style.top=`${s+this.video.offsetHeight-this.size}px`,this.element.style.left=`${i}px`)},this.video=n,this.container=n.parentElement,this.corner=e;const r=document.createElement("div");r.style.position="absolute",r.style.width=`${this.size}px`,r.style.height=`${this.size}px`,r.style.transition="background-color 0s",r.style.zIndex="100000",this.element=r,this.container.appendChild(r),this.positionElement()}getRandomColor(){const r=Math.floor(Math.random()*11)+0;return`rgb(${r},${r},${r})`}update(){this.element.style.backgroundColor=this.getRandomColor(),this.positionElement()}delete(){this.container.removeChild(this.element)}static createInAllCorners(e){return[new Y("left-top",e),new Y("right-top",e),new Y("right-bottom",e),new Y("left-bottom",e)]}static updateAll(e){e.forEach(n=>n.update())}static deleteAll(e){e.forEach(n=>n.delete())}}const E={log:"log",debug:"debug",info:"info",warn:"warn",error:"error"},M=console,K={};Object.keys(E).forEach(t=>{K[t]=M[t]});const me="Datadog Browser SDK:",C={debug:K.debug.bind(M,me),log:K.log.bind(M,me),info:K.info.bind(M,me),warn:K.warn.bind(M,me),error:K.error.bind(M,me)},it="https://docs.datadoghq.com",Ht=`${it}/real_user_monitoring/browser/troubleshooting`,Ue="More details:";function qt(t,e){return(...n)=>{try{return t(...n)}catch(r){C.error(e,r)}}}function Fe(t){return t!==0&&Math.random()*100<=t}function hr(t){return pr(t)&&t>=0&&t<=100}function pr(t){return typeof t=="number"}const ge=1e3,J=60*ge,Wt=60*J,mr=365*(24*Wt);function ye(){return new Date().getTime()}function G(){return ye()}function Oe(){return performance.now()}function V(){return{relative:Oe(),timeStamp:G()}}function gr(){return{relative:0,timeStamp:Yt()}}function yr(t,e){return e-t}function _r(t,e){return t+e}function br(t){return t-Yt()}let st;function Yt(){return st===void 0&&(st=performance.timing.navigationStart),st}const B=1024,Kt=1024*B,vr=/[^\u0000-\u007F]/;function ot(t){return vr.test(t)?window.TextEncoder!==void 0?new TextEncoder().encode(t).length:new Blob([t]).size:t.length}function Sr(t){return{...t}}function Jt(t,e){return Object.keys(t).some(n=>t[n]===e)}function _e(t){return Object.keys(t).length===0}function j(){if(typeof globalThis=="object")return globalThis;Object.defineProperty(Object.prototype,"_dd_temp_",{get(){return this},configurable:!0});let t=_dd_temp_;return delete Object.prototype._dd_temp_,typeof t!="object"&&(typeof self=="object"?t=self:typeof window=="object"?t=window:t={}),t}function se(t,e){const n=j();let r;return n.Zone&&typeof n.Zone.__symbol__=="function"&&(r=t[n.Zone.__symbol__(e)]),r||(r=t[e]),r}let Le,Zt=!1;function Tr(t){Le=t}function wr(t){Zt=t}function xr(t,e,n){const r=n.value;n.value=function(...s){return(Le?S(r):r).apply(this,s)}}function S(t){return function(){return be(t,this,arguments)}}function be(t,e,n){try{return t.apply(e,n)}catch(r){Er(r)}}function Er(t){if(at(t),Le)try{Le(t)}catch(e){at(e)}}function at(...t){Zt&&C.error("[MONITOR]",...t)}function ve(t,e){return se(j(),"setTimeout")(S(t),e)}function Xt(t){se(j(),"clearTimeout")(t)}function ct(t,e){return se(j(),"setInterval")(S(t),e)}function Qt(t){se(j(),"clearInterval")(t)}class D{constructor(e){this.onFirstSubscribe=e,this.observers=[]}subscribe(e){return this.observers.push(e),this.observers.length===1&&this.onFirstSubscribe&&(this.onLastUnsubscribe=this.onFirstSubscribe(this)||void 0),{unsubscribe:()=>{this.observers=this.observers.filter(n=>e!==n),!this.observers.length&&this.onLastUnsubscribe&&this.onLastUnsubscribe()}}}notify(e){this.observers.forEach(n=>n(e))}}function en(...t){return new D(e=>{const n=t.map(r=>r.subscribe(s=>e.notify(s)));return()=>n.forEach(r=>r.unsubscribe())})}function tn(t,e,n){let r=!1,s,i;return{throttled:(...o)=>{if(r){s=o;return}t(...o),r=!0,i=ve(()=>{s&&t(...s),r=!1,s=void 0},e)},cancel:()=>{Xt(i),r=!1,s=void 0}}}function H(){}function q(t){return t?(parseInt(t,10)^Math.random()*16>>parseInt(t,10)/4).toString(16):`10000000-1000-4000-8000-${1e11}`.replace(/[018]/g,q)}const Ie=/([\w-]+)\s*=\s*([^;]+)/g;function Cr(t,e){for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n){if(n[1]===e)return n[2]}else break}}function kr(t){const e=new Map;for(Ie.lastIndex=0;;){const n=Ie.exec(t);if(n)e.set(n[1],n[2]);else break}return e}function Rr(t,e,n=""){const r=t.charCodeAt(e-1),i=r>=55296&&r<=56319?e+1:e;return t.length<=i?t:`${t.slice(0,i)}${n}`}function Dr(){return Ar()===0}let Pe;function Ar(){return Pe??(Pe=Ur())}function Ur(t=window){var e;const n=t.navigator.userAgent;return t.chrome||/HeadlessChrome/.test(n)?0:((e=t.navigator.vendor)===null||e===void 0?void 0:e.indexOf("Apple"))===0||/safari/i.test(n)&&!/chrome|android/i.test(n)?1:2}function Se(t,e,n=0,r){const s=new Date;s.setTime(s.getTime()+n);const i=`expires=${s.toUTCString()}`,o=r&&r.crossSite?"none":"strict",a=r&&r.domain?`;domain=${r.domain}`:"",c=r&&r.secure?";secure":"",l=r&&r.partitioned?";partitioned":"";document.cookie=`${t}=${e};${i};path=/;samesite=${o}${a}${c}${l}`}function lt(t){return Cr(document.cookie,t)}let dt;function Z(t){return dt||(dt=kr(document.cookie)),dt.get(t)}function nn(t,e){Se(t,"",0,e)}function Fr(t){if(document.cookie===void 0||document.cookie===null)return!1;try{const e=`dd_cookie_test_${q()}`,n="test";Se(e,n,J,t);const r=lt(e)===n;return nn(e,t),r}catch(e){return C.error(e),!1}}let ut;function Or(){if(ut===void 0){const t=`dd_site_test_${q()}`,e="test",n=window.location.hostname.split(".");let r=n.pop();for(;n.length&&!lt(t);)r=`${n.pop()}.${r}`,Se(t,e,ge,{domain:r});nn(t,{domain:r}),ut=r}return ut}const oe="_dd_s";function Me(t){return Object.values(t)}function Lr(t){return Object.entries(t)}const ft=4*Wt,rn=15*J,Ir=mr,Te={COOKIE:"cookie",LOCAL_STORAGE:"local-storage"},sn=/^([a-zA-Z]+)=([a-z0-9-]+)$/,ht="&";function Pr(t){return!!t&&(t.indexOf(ht)!==-1||sn.test(t))}const Mr="1";function X(t,e){const n={isExpired:Mr};return e.trackAnonymousUser&&(t!=null&&t.anonymousId?n.anonymousId=t==null?void 0:t.anonymousId:n.anonymousId=q()),n}function Be(t){return _e(t)}function on(t){return!Be(t)}function Ne(t){return t.isExpired!==void 0||!Br(t)}function Br(t){return(t.created===void 0||ye()-Number(t.created)<ft)&&(t.expire===void 0||ye()<Number(t.expire))}function an(t){t.expire=String(ye()+rn)}function pt(t){return Lr(t).map(([e,n])=>e==="anonymousId"?`aid=${n}`:`${e}=${n}`).join(ht)}function cn(t){const e={};return Pr(t)&&t.split(ht).forEach(n=>{const r=sn.exec(n);if(r!==null){const[,s,i]=r;s==="aid"?e.anonymousId=i:e[s]=i}}),e}const Nr="_dd",$r="_dd_r",zr="_dd_l",Gr="rum",Vr="logs";function jr(t){if(!Z(oe)){const n=Z(Nr),r=Z($r),s=Z(zr),i={};n&&(i.id=n),s&&/^[01]$/.test(s)&&(i[Vr]=s),r&&/^[012]$/.test(r)&&(i[Gr]=r),on(i)&&(an(i),t.persistSession(i))}}function ln(t){const e=Kr(t);return Fr(e)?{type:Te.COOKIE,cookieOptions:e}:void 0}function Hr(t,e){const n={isLockEnabled:Dr(),persistSession:qr(e),retrieveSession:Yr,expireSession:r=>Wr(e,r,t)};return jr(n),n}function qr(t){return e=>{Se(oe,pt(e),rn,t)}}function Wr(t,e,n){const r=X(e,n);Se(oe,pt(r),n.trackAnonymousUser?Ir:ft,t)}function Yr(){const t=lt(oe);return cn(t)}function Kr(t){const e={};return e.secure=!!t.useSecureSessionCookie||!!t.usePartitionedCrossSiteSessionCookie,e.crossSite=!!t.usePartitionedCrossSiteSessionCookie,e.partitioned=!!t.usePartitionedCrossSiteSessionCookie,t.trackSessionAcrossSubdomains&&(e.domain=Or()),e}const Jr="_dd_test_";function dn(){try{const t=q(),e=`${Jr}${t}`;localStorage.setItem(e,t);const n=localStorage.getItem(e);return localStorage.removeItem(e),t===n?{type:Te.LOCAL_STORAGE}:void 0}catch{return}}function Zr(t){return{isLockEnabled:!1,persistSession:un,retrieveSession:Xr,expireSession:e=>Qr(e,t)}}function un(t){localStorage.setItem(oe,pt(t))}function Xr(){const t=localStorage.getItem(oe);return cn(t)}function Qr(t,e){un(X(t,e))}const ei=10,ti=100,fn=[];let $e;function Q(t,e,n=0){var r;const{isLockEnabled:s,persistSession:i,expireSession:o}=e,a=f=>i({...f,lock:l}),c=()=>{const f=e.retrieveSession(),p=f.lock;return f.lock&&delete f.lock,{session:f,lock:p}};if($e||($e=t),t!==$e){fn.push(t);return}if(s&&n>=ti){hn(e);return}let l,d=c();if(s){if(d.lock){ze(t,e,n);return}if(l=q(),a(d.session),d=c(),d.lock!==l){ze(t,e,n);return}}let u=t.process(d.session);if(s&&(d=c(),d.lock!==l)){ze(t,e,n);return}if(u&&(Ne(u)?o(u):(an(u),s?a(u):i(u))),s&&!(u&&Ne(u))){if(d=c(),d.lock!==l){ze(t,e,n);return}i(d.session),u=d.session}(r=t.after)===null||r===void 0||r.call(t,u||d.session),hn(e)}function ze(t,e,n){ve(()=>{Q(t,e,n+1)},ei)}function hn(t){$e=void 0;const e=fn.shift();e&&Q(e,t)}const pn=ge;function ni(t){switch(t.sessionPersistence){case Te.COOKIE:return ln(t);case Te.LOCAL_STORAGE:return dn();case void 0:{let e=ln(t);return!e&&t.allowFallbackToLocalStorage&&(e=dn()),e}default:C.error(`Invalid session persistence '${String(t.sessionPersistence)}'`)}}function ri(t,e,n,r){const s=new D,i=new D,o=new D,a=t.type===Te.COOKIE?Hr(e,t.cookieOptions):Zr(e),{expireSession:c}=a,l=ct(h,pn);let d;g();const{throttled:u,cancel:f}=tn(()=>{Q({process:_=>{if(Be(_))return;const U=m(_);return T(U),U},after:_=>{on(_)&&!v()&&R(_),d=_}},a)},pn);function p(){Q({process:_=>v()?m(_):void 0},a)}function h(){Q({process:_=>Ne(_)?X(_,e):void 0,after:m},a)}function m(_){return Ne(_)&&(_=X(_,e)),v()&&(w(_)?k():(o.notify({previousState:d,newState:_}),d=_)),_}function g(){Q({process:_=>{if(Be(_))return X(_,e)},after:_=>{d=_}},a)}function T(_){if(Be(_))return!1;const{trackingType:U,isTracked:It}=r(_[n]);_[n]=U,delete _.isExpired,It&&!_.id&&(_.id=q(),_.created=String(ye()))}function v(){return d[n]!==void 0}function w(_){return d.id!==_.id||d[n]!==_[n]}function k(){d=X(d,e),i.notify()}function R(_){d=_,s.notify()}function x(_){Q({process:U=>({...U,..._}),after:m},a)}return{expandOrRenewSession:u,expandSession:p,getSession:()=>d,renewObservable:s,expireObservable:i,sessionStateUpdateObservable:o,restartSession:g,expire:()=>{f(),c(d),m(X(d,e))},stop:()=>{Qt(l)},updateSessionState:x}}const mt={GRANTED:"granted",NOT_GRANTED:"not-granted"};function ii(t){const e=new D;return{tryToInit(n){t||(t=n)},update(n){t=n,e.notify()},isGranted(){return t===mt.GRANTED},observable:e}}function ee(t,e,n){if(typeof t!="object"||t===null)return JSON.stringify(t);const r=ae(Object.prototype),s=ae(Array.prototype),i=ae(Object.getPrototypeOf(t)),o=ae(t);try{return JSON.stringify(t,e,n)}catch{return"<error: unable to serialize object>"}finally{r(),s(),i(),o()}}function ae(t){const e=t,n=e.toJSON;return n?(delete e.toJSON,()=>{e.toJSON=n}):H}function gt(t){return si(t,location.href).href}function si(t,e){const n=oi();if(n)try{return e!==void 0?new n(t,e):new n(t)}catch(i){throw new Error(`Failed to construct URL: ${String(i)} ${ee({url:t,base:e})}`)}if(e===void 0&&!/:/.test(t))throw new Error(`Invalid URL: '${t}'`);let r=document;const s=r.createElement("a");if(e!==void 0){r=document.implementation.createHTMLDocument("");const i=r.createElement("base");i.href=e,r.head.appendChild(i),r.body.appendChild(s)}return s.href=t,s}const mn=URL;let Ge;function oi(){if(Ge===void 0)try{Ge=new mn("http://test/path").href==="http://test/path"}catch{Ge=!1}return Ge?mn:void 0}const ai="datad0g.com",ci="dd0g-gov.com",ce="datadoghq.com",li="ddog-gov.com",di="pci.browser-intake-datadoghq.com",ui=["ddsource","ddtags"];function we(t,e,n){const r=fi(t,e);return{build(s,i){const o=pi(t,e,n,s,i);return r(o)},urlPrefix:r(""),trackType:e}}function fi(t,e){const n=`/api/v2/${e}`,r=t.proxy;if(typeof r=="string"){const i=gt(r);return o=>`${i}?ddforward=${encodeURIComponent(`${n}?${o}`)}`}if(typeof r=="function")return i=>r({path:n,parameters:i});const s=hi(e,t);return i=>`https://${s}${n}?${i}`}function hi(t,e){const{site:n=ce,internalAnalyticsSubdomain:r}=e;if(t==="logs"&&e.usePciIntake&&n===ce)return di;if(r&&n===ce)return`${r}.${ce}`;if(n===ci)return`http-intake.logs.${n}`;const s=n.split("."),i=s.pop();return`browser-intake-${s.join("-")}.${i}`}function pi({clientToken:t,internalAnalyticsSubdomain:e},n,r,s,{retry:i,encoding:o}){const a=["sdk_version:6.5.0",`api:${s}`].concat(r);i&&a.push(`retry_count:${i.count}`,`retry_after:${i.lastFailureStatus}`);const c=["ddsource=browser",`ddtags=${encodeURIComponent(a.join(","))}`,`dd-api-key=${t}`,`dd-evp-origin-version=${encodeURIComponent("6.5.0")}`,"dd-evp-origin=browser",`dd-request-id=${q()}`];return o&&c.push(`dd-evp-encoding=${o}`),n==="rum"&&c.push(`batch_time=${G()}`),e&&c.reverse(),c.join("&")}const mi=200;function gi(t){const{env:e,service:n,version:r,datacenter:s}=t,i=[];return e&&i.push(Ve("env",e)),n&&i.push(Ve("service",n)),r&&i.push(Ve("version",r)),s&&i.push(Ve("datacenter",s)),i}function Ve(t,e){const n=mi-t.length-1;(e.length>n||yi(e))&&C.warn(`${t} value doesn't meet tag requirements and will be sanitized. ${Ue} ${it}/getting_started/tagging/#defining-tags`);const r=e.replace(/,/g,"_");return`${t}:${r}`}function yi(t){return _i()?new RegExp("[^\\p{Ll}\\p{Lo}0-9_:./-]","u").test(t):!1}function _i(){try{return new RegExp("[\\p{Ll}]","u"),!0}catch{return!1}}function bi(t){const e=t.site||ce,n=gi(t),r=vi(t,n);return{replica:Si(t,n),site:e,...r}}function vi(t,e){return{logsEndpointBuilder:we(t,"logs",e),rumEndpointBuilder:we(t,"rum",e),sessionReplayEndpointBuilder:we(t,"replay",e)}}function Si(t,e){if(!t.replica)return;const n={...t,site:ce,clientToken:t.replica.clientToken},r={logsEndpointBuilder:we(n,"logs",e),rumEndpointBuilder:we(n,"rum",e)};return{applicationId:t.replica.applicationId,...r}}function Ti(t){return ui.every(e=>t.includes(e))}function yt(t,e){return t!=null&&typeof t!="string"?(C.error(`${e} must be defined as a string`),!1):!0}function wi(t){return t&&typeof t=="string"&&!/(datadog|ddog|datad0g|dd0g)/.test(t)?(C.error(`Site should be a valid Datadog site. ${Ue} ${it}/getting_started/site/.`),!1):!0}function je(t,e){return t!==void 0&&!hr(t)?(C.error(`${e} Sample Rate should be a number between 0 and 100`),!1):!0}function xi(t){var e,n,r,s,i,o;if(!t||!t.clientToken){C.error("Client Token is not configured, we will not send any data.");return}if(!(!wi(t.site)||!je(t.sessionSampleRate,"Session")||!je(t.telemetrySampleRate,"Telemetry")||!je(t.telemetryConfigurationSampleRate,"Telemetry Configuration")||!je(t.telemetryUsageSampleRate,"Telemetry Usage")||!yt(t.version,"Version")||!yt(t.env,"Env")||!yt(t.service,"Service"))){if(t.trackingConsent!==void 0&&!Jt(mt,t.trackingConsent)){C.error('Tracking Consent should be either "granted" or "not-granted"');return}return{beforeSend:t.beforeSend&&qt(t.beforeSend,"beforeSend threw an error:"),sessionStoreStrategyType:ni(t),sessionSampleRate:(e=t.sessionSampleRate)!==null&&e!==void 0?e:100,telemetrySampleRate:(n=t.telemetrySampleRate)!==null&&n!==void 0?n:20,telemetryConfigurationSampleRate:(r=t.telemetryConfigurationSampleRate)!==null&&r!==void 0?r:5,telemetryUsageSampleRate:(s=t.telemetryUsageSampleRate)!==null&&s!==void 0?s:5,service:t.service||void 0,silentMultipleInit:!!t.silentMultipleInit,allowUntrustedEvents:!!t.allowUntrustedEvents,trackingConsent:(i=t.trackingConsent)!==null&&i!==void 0?i:mt.GRANTED,trackAnonymousUser:(o=t.trackAnonymousUser)!==null&&o!==void 0?o:!0,storeContextsAcrossPages:!!t.storeContextsAcrossPages,batchBytesLimit:16*B,eventRateLimiterThreshold:3e3,maxTelemetryEventsPerPage:15,flushTimeout:30*ge,batchMessagesLimit:50,messageBytesLimit:256*B,...bi(t)}}}function Ei(t){return{session_sample_rate:t.sessionSampleRate,telemetry_sample_rate:t.telemetrySampleRate,telemetry_configuration_sample_rate:t.telemetryConfigurationSampleRate,telemetry_usage_sample_rate:t.telemetryUsageSampleRate,use_before_send:!!t.beforeSend,use_partitioned_cross_site_session_cookie:t.usePartitionedCrossSiteSessionCookie,use_secure_session_cookie:t.useSecureSessionCookie,use_proxy:!!t.proxy,silent_multiple_init:t.silentMultipleInit,track_session_across_subdomains:t.trackSessionAcrossSubdomains,track_anonymous_user:t.trackAnonymousUser,session_persistence:t.sessionPersistence,allow_fallback_to_local_storage:!!t.allowFallbackToLocalStorage,store_contexts_across_pages:!!t.storeContextsAcrossPages,allow_untrusted_events:!!t.allowUntrustedEvents,tracking_consent:t.trackingConsent}}var _t;(function(t){t.WRITABLE_RESOURCE_GRAPHQL="writable_resource_graphql",t.MISSING_URL_CONTEXT_TELEMETRY="missing_url_context_telemetry"})(_t||(_t={}));const gn=new Set;function Ci(t){Array.isArray(t)&&ki(t.filter(e=>Jt(_t,e)))}function ki(t){t.forEach(e=>{gn.add(e)})}function Ri(){return gn}const xe="?";function N(t){const e=[];let n=bt(t,"stack");const r=String(t);return n&&n.startsWith(r)&&(n=n.slice(r.length)),n&&n.split(`
2
+ `).forEach(s=>{const i=Ui(s)||Oi(s)||Ii(s)||Bi(s);i&&(!i.func&&i.line&&(i.func=xe),e.push(i))}),{message:bt(t,"message"),name:bt(t,"name"),stack:e}}const yn="((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\w+\\.|\\/).*?)",le="(?::(\\d+))",Di=new RegExp(`^\\s*at (.*?) ?\\(${yn}${le}?${le}?\\)?\\s*$`,"i"),Ai=new RegExp(`\\((\\S*)${le}${le}\\)`);function Ui(t){const e=Di.exec(t);if(!e)return;const n=e[2]&&e[2].indexOf("native")===0,r=e[2]&&e[2].indexOf("eval")===0,s=Ai.exec(e[2]);return r&&s&&(e[2]=s[1],e[3]=s[2],e[4]=s[3]),{args:n?[e[2]]:[],column:e[4]?+e[4]:void 0,func:e[1]||xe,line:e[3]?+e[3]:void 0,url:n?void 0:e[2]}}const Fi=new RegExp(`^\\s*at ?${yn}${le}?${le}??\\s*$`,"i");function Oi(t){const e=Fi.exec(t);if(e)return{args:[],column:e[3]?+e[3]:void 0,func:xe,line:e[2]?+e[2]:void 0,url:e[1]}}const Li=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function Ii(t){const e=Li.exec(t);if(e)return{args:[],column:e[4]?+e[4]:void 0,func:e[1]||xe,line:+e[3],url:e[2]}}const Pi=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,Mi=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function Bi(t){const e=Pi.exec(t);if(!e)return;const n=e[3]&&e[3].indexOf(" > eval")>-1,r=Mi.exec(e[3]);return n&&r&&(e[3]=r[1],e[4]=r[2],e[5]=void 0),{args:e[2]?e[2].split(","):[],column:e[5]?+e[5]:void 0,func:e[1]||xe,line:e[4]?+e[4]:void 0,url:e[3]}}function bt(t,e){if(typeof t!="object"||!t||!(e in t))return;const n=t[e];return typeof n=="string"?n:void 0}function Ni(t,e,n,r){const s=[{url:e,column:r,line:n}],{name:i,message:o}=zi(t);return{name:i,message:o,stack:s}}const $i=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\s\S]*)$/;function zi(t){let e,n;return{}.toString.call(t)==="[object String]"&&([,e,n]=$i.exec(t)),{name:e,message:n}}function He(t){const n=new Error(t);n.name="HandlingStack";let r;return be(()=>{const s=N(n);s.stack=s.stack.slice(2),r=te(s)}),r}function te(t){let e=_n(t);return t.stack.forEach(n=>{const r=n.func==="?"?"<anonymous>":n.func,s=n.args&&n.args.length>0?`(${n.args.join(", ")})`:"",i=n.line?`:${n.line}`:"",o=n.line&&n.column?`:${n.column}`:"";e+=`
3
+ at ${r}${s} @ ${n.url}${i}${o}`}),e}function _n(t){return`${t.name||"Error"}: ${t.message}`}function ne(t,e,n,{computeHandlingStack:r}={}){let s=t[e];if(typeof s!="function")if(e in t&&e.startsWith("on"))s=H;else return{stop:H};let i=!1;const o=function(){if(i)return s.apply(this,arguments);const a=Array.from(arguments);let c;be(n,null,[{target:this,parameters:a,onPostCall:d=>{c=d},handlingStack:r?He("instrumented method"):void 0}]);const l=s.apply(this,a);return c&&be(c,null,[l]),l};return t[e]=o,{stop:()=>{i=!0,t[e]===o&&(t[e]=s)}}}const Gi=220*B,Vi="$",ji=3;function $(t,e=Gi){const n=ae(Object.prototype),r=ae(Array.prototype),s=[],i=new WeakMap,o=vt(t,Vi,void 0,s,i),a=JSON.stringify(o);let c=a?a.length:0;if(c>e){Tt(e,"discarded",t);return}for(;s.length>0&&c<e;){const l=s.shift();let d=0;if(Array.isArray(l.source))for(let u=0;u<l.source.length;u++){const f=vt(l.source[u],l.path,u,s,i);if(f!==void 0?c+=JSON.stringify(f).length:c+=4,c+=d,d=1,c>e){Tt(e,"truncated",t);break}l.target[u]=f}else for(const u in l.source)if(Object.prototype.hasOwnProperty.call(l.source,u)){const f=vt(l.source[u],l.path,u,s,i);if(f!==void 0&&(c+=JSON.stringify(f).length+d+u.length+ji,d=1),c>e){Tt(e,"truncated",t);break}l.target[u]=f}}return n(),r(),o}function vt(t,e,n,r,s){const i=Wi(t);if(!i||typeof i!="object")return Hi(i);const o=St(i);if(o!=="[Object]"&&o!=="[Array]"&&o!=="[Error]")return o;const a=t;if(s.has(a))return`[Reference seen at ${s.get(a)}]`;const c=n!==void 0?`${e}.${n}`:e,l=Array.isArray(i)?[]:{};return s.set(a,c),r.push({source:i,target:l,path:c}),l}function Hi(t){return typeof t=="bigint"?`[BigInt] ${t.toString()}`:typeof t=="function"?`[Function] ${t.name||"unknown"}`:typeof t=="symbol"?`[Symbol] ${t.description||t.toString()}`:t}function St(t){try{if(t instanceof Event)return qi(t);if(t instanceof RegExp)return`[RegExp] ${t.toString()}`;const n=Object.prototype.toString.call(t).match(/\[object (.*)\]/);if(n&&n[1])return`[${n[1]}]`}catch{}return"[Unserializable]"}function qi(t){return{type:t.type,isTrusted:t.isTrusted,currentTarget:t.currentTarget?St(t.currentTarget):null,target:t.target?St(t.target):null}}function Wi(t){const e=t;if(e&&typeof e.toJSON=="function")try{return e.toJSON()}catch{}return t}function Tt(t,e,n){C.warn(`The data provided has been ${e} as it is over the limit of ${t} characters:`,n)}const bn="No stack, consider using an instance of Error";function vn({stackTrace:t,originalError:e,handlingStack:n,componentStack:r,startClocks:s,nonErrorPrefix:i,source:o,handling:a}){const c=W(e),l=Yi(t,c,i,e),d=Ki(c,t)?te(t):bn,u=c?wn(e,o):void 0,f=t?t.name:void 0,p=Sn(e),h=Tn(e);return{startClocks:s,source:o,handling:a,handlingStack:n,componentStack:r,originalError:e,type:f,message:l,stack:d,causes:u,fingerprint:p,context:h}}function Yi(t,e,n,r){return t!=null&&t.message&&(t!=null&&t.name)?t.message:e?"Empty message":`${n} ${ee($(r))}`}function Ki(t,e){return e===void 0?!1:t?!0:e.stack.length>0&&(e.stack.length>1||e.stack[0].url!==void 0)}function Sn(t){return W(t)&&"dd_fingerprint"in t?String(t.dd_fingerprint):void 0}function Tn(t){if(t!==null&&typeof t=="object"&&"dd_context"in t)return t.dd_context}function Ji(t){var e;return(e=/@ (.+)/.exec(t))===null||e===void 0?void 0:e[1]}function W(t){return t instanceof Error||Object.prototype.toString.call(t)==="[object Error]"}function wn(t,e){let n=t;const r=[];for(;W(n==null?void 0:n.cause)&&r.length<10;){const s=N(n.cause);r.push({message:n.cause.message,source:e,type:s==null?void 0:s.name,stack:te(s)}),n=n.cause}return r.length?r:void 0}const L={AGENT:"agent",CONSOLE:"console",CUSTOM:"custom",LOGGER:"logger",NETWORK:"network",SOURCE:"source",REPORT:"report"};function Zi(t){const e=(s,i)=>{const o=vn({stackTrace:s,originalError:i,startClocks:V(),nonErrorPrefix:"Uncaught",source:L.SOURCE,handling:"unhandled"});t.notify(o)},{stop:n}=Xi(e),{stop:r}=Qi(e);return{stop:()=>{n(),r()}}}function Xi(t){return ne(window,"onerror",({parameters:[e,n,r,s,i]})=>{let o;W(i)?o=N(i):o=Ni(e,n,r,s),t(o,i??e)})}function Qi(t){return ne(window,"onunhandledrejection",({parameters:[e]})=>{const n=e.reason||"Empty reason",r=N(n);t(r,n)})}function es(t){const e={version:"6.5.0",onReady(n){n()},...t};return Object.defineProperty(e,"_setDebug",{get(){return wr},enumerable:!1}),e}function ts(t,e,n){const r=t[e];r&&!r.q&&r.version&&C.warn("SDK is loaded more than once. This is unsupported and might have unexpected behavior."),t[e]=n,r&&r.q&&r.q.forEach(s=>qt(s,"onReady callback threw an error:")())}function xn(t,e){e.silentMultipleInit||C.error(`${t} is already initialized.`)}function re(t,e,n,r,s){return wt(t,e,[n],r,s)}function wt(t,e,n,r,{once:s,capture:i,passive:o}={}){const a=S(f=>{!f.isTrusted&&!f.__ddIsTrusted&&!t.allowUntrustedEvents||(s&&u(),r(f))}),c=o?{capture:i,passive:o}:i,l=window.EventTarget&&e instanceof EventTarget?window.EventTarget.prototype:e,d=se(l,"addEventListener");n.forEach(f=>d.call(e,f,a,c));function u(){const f=se(l,"removeEventListener");n.forEach(p=>f.call(e,p,a,c))}return{stop:u}}const qe={intervention:"intervention",deprecation:"deprecation",cspViolation:"csp_violation"};function ns(t,e){const n=[];e.includes(qe.cspViolation)&&n.push(is(t));const r=e.filter(s=>s!==qe.cspViolation);return r.length&&n.push(rs(r)),en(...n)}function rs(t){return new D(e=>{if(!window.ReportingObserver)return;const n=S((s,i)=>s.forEach(o=>e.notify(ss(o)))),r=new window.ReportingObserver(n,{types:t,buffered:!0});return r.observe(),()=>{r.disconnect()}})}function is(t){return new D(e=>{const{stop:n}=re(t,document,"securitypolicyviolation",r=>{e.notify(os(r))});return n})}function ss(t){const{type:e,body:n}=t;return En({type:n.id,message:`${e}: ${n.message}`,originalError:t,stack:Cn(n.id,n.message,n.sourceFile,n.lineNumber,n.columnNumber)})}function os(t){const e=`'${t.blockedURI}' blocked by '${t.effectiveDirective}' directive`;return En({type:t.effectiveDirective,message:`${qe.cspViolation}: ${e}`,originalError:t,csp:{disposition:t.disposition},stack:Cn(t.effectiveDirective,t.originalPolicy?`${e} of the policy "${Rr(t.originalPolicy,100,"...")}"`:"no policy",t.sourceFile,t.lineNumber,t.columnNumber)})}function En(t){return{startClocks:V(),source:L.REPORT,handling:"unhandled",...t}}function Cn(t,e,n,r,s){return n?te({name:t,message:e,stack:[{func:"?",url:n,line:r??void 0,column:s??void 0}]}):void 0}function kn(t,e){const n=window.__ddBrowserSdkExtensionCallback;n&&n({type:t,payload:e})}function Rn(t){return t===null?"null":Array.isArray(t)?"array":typeof t}function We(t,e,n=as()){if(e===void 0)return t;if(typeof e!="object"||e===null)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const s=e.flags||[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.sticky?"y":"",e.unicode?"u":""].join("");return new RegExp(e.source,s)}if(n.hasAlreadyBeenSeen(e))return;if(Array.isArray(e)){const s=Array.isArray(t)?t:[];for(let i=0;i<e.length;++i)s[i]=We(s[i],e[i],n);return s}const r=Rn(t)==="object"?t:{};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=We(r[s],e[s],n));return r}function Dn(t){return We(void 0,t)}function de(...t){let e;for(const n of t)n!=null&&(e=We(e,n));return e}function as(){if(typeof WeakSet<"u"){const e=new WeakSet;return{hasAlreadyBeenSeen(n){const r=e.has(n);return r||e.add(n),r}}}const t=[];return{hasAlreadyBeenSeen(e){const n=t.indexOf(e)>=0;return n||t.push(e),n}}}function cs(){var t;const e=window.navigator;return{status:e.onLine?"connected":"not_connected",interfaces:e.connection&&e.connection.type?[e.connection.type]:void 0,effective_type:(t=e.connection)===null||t===void 0?void 0:t.effectiveType}}function ls(t){const e=new Set;return t.forEach(n=>e.add(n)),Array.from(e)}function An(t,e){const n=t.indexOf(e);n>=0&&t.splice(n,1)}const ds=500;function Un(){const t=[];return{add:s=>{t.push(s)>ds&&t.splice(0,1)},remove:s=>{An(t,s)},drain:s=>{t.forEach(i=>i(s)),t.length=0}}}const ie={log:"log",configuration:"configuration",usage:"usage"},us=["https://www.datadoghq-browser-agent.com","https://www.datad0g-browser-agent.com","https://d3uc069fcn7uxw.cloudfront.net","https://d20xtzwzcl0ceb.cloudfront.net","http://localhost","<anonymous>"],fs=[li];let Fn=Un(),ue=t=>{Fn.add(()=>ue(t))};function hs(t,e){let n;const r=new D,s=new Set,i=!fs.includes(e.site)&&Fe(e.telemetrySampleRate),o={[ie.log]:i,[ie.configuration]:i&&Fe(e.telemetryConfigurationSampleRate),[ie.usage]:i&&Fe(e.telemetryUsageSampleRate)},a=ps();ue=l=>{const d=ee(l);if(o[l.type]&&s.size<e.maxTelemetryEventsPerPage&&!s.has(d)){const u=c(t,l,a);r.notify(u),kn("telemetry",u),s.add(d)}},Tr(Ln);function c(l,d,u){return de({type:"telemetry",date:G(),service:l,version:"6.5.0",source:"browser",_dd:{format_version:2},telemetry:de(d,{runtime_env:u,connectivity:cs(),sdk_setup:"npm"}),experimental_features:Array.from(Ri())},n!==void 0?n():{})}return{setContextProvider:l=>{n=l},observable:r,enabled:i}}function ps(){return{is_local_file:window.location.protocol==="file:",is_worker:"WorkerGlobalScope"in self}}function ms(){Fn.drain()}function gs(t){return t.site===ai}function On(t,e){at(E.debug,t,e),ue({type:ie.log,message:t,status:"debug",...e})}function Ln(t,e){ue({type:ie.log,status:"error",...bs(t),...e})}function ys(t){ue({type:ie.configuration,configuration:t})}function _s(t){ue({type:ie.usage,usage:t})}function bs(t){if(W(t)){const e=N(t);return{error:{kind:e.name,stack:te(vs(e))},message:e.message}}return{error:{stack:bn},message:`Uncaught ${ee(t)}`}}function vs(t){return t.stack=t.stack.filter(e=>!e.url||us.some(n=>e.url.startsWith(n))),t}const Ee=1/0,Ss=J;let Ce=null;const Ye=new Set;function Ts(){Ye.forEach(t=>t())}function ws({expireDelay:t,maxEntries:e}){let n=[];const r=[];Ce||(Ce=ct(()=>Ts(),Ss));const s=()=>{const p=Oe()-t;for(;n.length>0&&n[n.length-1].endTime<p;){const h=n.pop();h&&r.push(h.startTime)}};Ye.add(s);function i(p,h){const m={value:p,startTime:h,endTime:Ee,remove:()=>{An(n,m)},close:g=>{m.endTime=g}};return e&&n.length>=e&&n.pop(),n.unshift(m),m}function o(p=Ee,h={returnInactive:!1}){for(const m of n)if(m.startTime<=p){if(h.returnInactive||p<=m.endTime)return m.value;break}}function a(p){const h=n[0];h&&h.endTime===Ee&&h.close(p)}function c(p=Ee,h=0){const m=_r(p,h);return n.filter(g=>g.startTime<=m&&p<=g.endTime).map(g=>g.value)}function l(){return n.map(({startTime:p,endTime:h,value:m})=>({startTime:p,endTime:h===Ee?"Infinity":h,value:m}))}function d(){return r}function u(){n=[]}function f(){Ye.delete(s),Ye.size===0&&Ce&&(Qt(Ce),Ce=null)}return{add:i,find:o,closeActive:a,findAll:c,reset:u,stop:f,getAllEntries:l,getDeletedEntries:d}}const xs=J,Es=ft;function Cs(t,e,n,r){const s=new D,i=new D,o=ri(t.sessionStoreStrategyType,t,e,n),a=ws({expireDelay:Es});o.renewObservable.subscribe(()=>{a.add(c(),Oe()),s.notify()}),o.expireObservable.subscribe(()=>{i.notify(),a.closeActive(Oe())}),o.expandOrRenewSession(),a.add(c(),gr().relative),r.observable.subscribe(()=>{r.isGranted()?o.expandOrRenewSession():o.expire()}),ks(t,()=>{r.isGranted()&&o.expandOrRenewSession()}),Rs(t,()=>o.expandSession()),Ds(t,()=>o.restartSession());function c(){return{id:o.getSession().id,trackingType:o.getSession()[e],isReplayForced:!!o.getSession().forcedReplay,anonymousId:o.getSession().anonymousId}}return{findSession:(l,d)=>a.find(l,d),renewObservable:s,expireObservable:i,sessionStateUpdateObservable:o.sessionStateUpdateObservable,expire:o.expire,updateSessionState:o.updateSessionState}}function ks(t,e){wt(t,window,["click","touchstart","keydown","scroll"],e,{capture:!0,passive:!0})}function Rs(t,e){const n=()=>{document.visibilityState==="visible"&&e()};re(t,document,"visibilitychange",n),ct(n,xs)}function Ds(t,e){re(t,window,"resume",e,{capture:!0})}function In(t){return t>=500}function As(t){try{return t.clone()}catch{return}}const Us=80*B,Fs=32,Pn=3*Kt,Os=J,Mn=ge;function Bn(t,e,n,r,s){e.transportStatus===0&&e.queuedPayloads.size()===0&&e.bandwidthMonitor.canHandle(t)?$n(t,e,n,{onSuccess:()=>zn(0,e,n,r,s),onFailure:()=>{e.queuedPayloads.enqueue(t),Nn(e,n,r,s)}}):e.queuedPayloads.enqueue(t)}function Nn(t,e,n,r){t.transportStatus===2&&ve(()=>{const s=t.queuedPayloads.first();$n(s,t,e,{onSuccess:()=>{t.queuedPayloads.dequeue(),t.currentBackoffTime=Mn,zn(1,t,e,n,r)},onFailure:()=>{t.currentBackoffTime=Math.min(Os,t.currentBackoffTime*2),Nn(t,e,n,r)}})},t.currentBackoffTime)}function $n(t,e,n,{onSuccess:r,onFailure:s}){e.bandwidthMonitor.add(t),n(t,i=>{e.bandwidthMonitor.remove(t),Ls(i)?(e.transportStatus=e.bandwidthMonitor.ongoingRequestCount>0?1:2,t.retry={count:t.retry?t.retry.count+1:1,lastFailureStatus:i.status},s()):(e.transportStatus=0,r())})}function zn(t,e,n,r,s){t===0&&e.queuedPayloads.isFull()&&!e.queueFullReported&&(s({message:`Reached max ${r} events size queued for upload: ${Pn/Kt}MiB`,source:L.AGENT,startClocks:V()}),e.queueFullReported=!0);const i=e.queuedPayloads;for(e.queuedPayloads=Gn();i.size()>0;)Bn(i.dequeue(),e,n,r,s)}function Ls(t){return t.type!=="opaque"&&(t.status===0&&!navigator.onLine||t.status===408||t.status===429||In(t.status))}function Is(){return{transportStatus:0,currentBackoffTime:Mn,bandwidthMonitor:Ps(),queuedPayloads:Gn(),queueFullReported:!1}}function Gn(){const t=[];return{bytesCount:0,enqueue(e){this.isFull()||(t.push(e),this.bytesCount+=e.bytesCount)},first(){return t[0]},dequeue(){const e=t.shift();return e&&(this.bytesCount-=e.bytesCount),e},size(){return t.length},isFull(){return this.bytesCount>=Pn}}}function Ps(){return{ongoingRequestCount:0,ongoingByteCount:0,canHandle(t){return this.ongoingRequestCount===0||this.ongoingByteCount+t.bytesCount<=Us&&this.ongoingRequestCount<Fs},add(t){this.ongoingRequestCount+=1,this.ongoingByteCount+=t.bytesCount},remove(t){this.ongoingRequestCount-=1,this.ongoingByteCount-=t.bytesCount}}}function Ms(t,e,n){const r=Is(),s=(i,o)=>$s(t,e,i,o);return{send:i=>{Bn(i,r,s,t.trackType,n)},sendOnExit:i=>{Bs(t,e,i)}}}function Bs(t,e,n){if(!!navigator.sendBeacon&&n.bytesCount<e)try{const i=t.build("beacon",n);if(navigator.sendBeacon(i,n.data))return}catch(i){Ns(i)}const s=t.build("xhr",n);xt(s,n.data)}let Vn=!1;function Ns(t){Vn||(Vn=!0,Ln(t))}function $s(t,e,n,r){if(zs()&&n.bytesCount<e){const i=t.build("fetch",n);fetch(i,{method:"POST",body:n.data,keepalive:!0,mode:"cors"}).then(S(o=>r==null?void 0:r({status:o.status,type:o.type})),S(()=>{const o=t.build("xhr",n);xt(o,n.data,r)}))}else{const i=t.build("xhr",n);xt(i,n.data,r)}}function zs(){try{return window.Request&&"keepalive"in new Request("http://a")}catch{return!1}}function xt(t,e,n){const r=new XMLHttpRequest;r.open("POST",t,!0),e instanceof Blob&&r.setRequestHeader("Content-Type",e.type),re({allowUntrustedEvents:!0},r,"loadend",()=>{n==null||n({status:r.status})},{once:!0}),r.send(e)}function Et(){const t=Gs();if(t)return{getCapabilities(){var e;return JSON.parse(((e=t.getCapabilities)===null||e===void 0?void 0:e.call(t))||"[]")},getPrivacyLevel(){var e;return(e=t.getPrivacyLevel)===null||e===void 0?void 0:e.call(t)},getAllowedWebViewHosts(){return JSON.parse(t.getAllowedWebViewHosts())},send(e,n,r){const s=r?{id:r}:void 0;t.send(JSON.stringify({eventType:e,event:n,view:s}))}}}function Ke(t){var e;t===void 0&&(t=(e=j().location)===null||e===void 0?void 0:e.hostname);const n=Et();return!!n&&n.getAllowedWebViewHosts().some(r=>t===r||t.endsWith(`.${r}`))}function Gs(){return j().DatadogEventBridge}const Je={HIDDEN:"visibility_hidden",UNLOADING:"before_unload",PAGEHIDE:"page_hide",FROZEN:"page_frozen"};function Vs(t){return new D(e=>{const{stop:n}=wt(t,window,["visibilitychange","freeze"],s=>{s.type==="visibilitychange"&&document.visibilityState==="hidden"?e.notify({reason:Je.HIDDEN}):s.type==="freeze"&&e.notify({reason:Je.FROZEN})},{capture:!0}),r=re(t,window,"beforeunload",()=>{e.notify({reason:Je.UNLOADING})}).stop;return()=>{n(),r()}})}function js(t){return Me(Je).includes(t)}function Hs({encoder:t,request:e,flushController:n,messageBytesLimit:r}){let s={};const i=n.flushObservable.subscribe(u=>d(u));function o(u,f,p){n.notifyBeforeAddMessage(f),p!==void 0?(s[p]=u,n.notifyAfterAddMessage()):t.write(t.isEmpty?u:`
4
+ ${u}`,h=>{n.notifyAfterAddMessage(h-f)})}function a(u){return u!==void 0&&s[u]!==void 0}function c(u){const f=s[u];delete s[u];const p=t.estimateEncodedBytesCount(f);n.notifyAfterRemoveMessage(p)}function l(u,f){const p=ee(u),h=t.estimateEncodedBytesCount(p);if(h>=r){C.warn(`Discarded a message whose size was bigger than the maximum allowed size ${r}KB. ${Ue} ${Ht}/#technical-limitations`);return}a(f)&&c(f),o(p,h,f)}function d(u){const f=Me(s).join(`
5
+ `);s={};const p=js(u.reason),h=p?e.sendOnExit:e.send;if(p&&t.isAsync){const m=t.finishSync();m.outputBytesCount&&h(jn(m));const g=[m.pendingData,f].filter(Boolean).join(`
6
6
  `);g&&h({data:g,bytesCount:ot(g)})}else f&&t.write(t.isEmpty?f:`
7
- ${f}`),t.finish(m=>{h(jn(m))})}return{flushController:n,add:l,upsert:l,stop:s.unsubscribe}}function jn(t){let e;return typeof t.output=="string"?e=t.output:e=new Blob([t.output],{type:"text/plain"}),{data:e,bytesCount:t.outputBytesCount,encoding:t.encoding}}function qi({messagesLimit:t,bytesLimit:e,durationLimit:n,pageExitObservable:r,sessionExpireObservable:i}){const s=r.subscribe(h=>d(h.reason)),o=i.subscribe(()=>d("session_expire")),a=new D(()=>()=>{s.unsubscribe(),o.unsubscribe()});let c=0,l=0;function d(h){if(l===0)return;const m=l,g=c;l=0,c=0,p(),a.notify({reason:h,messagesCount:m,bytesCount:g})}let u;function f(){u===void 0&&(u=ve(()=>{d("duration_limit")},n))}function p(){Xt(u),u=void 0}return{flushObservable:a,get messagesCount(){return l},notifyBeforeAddMessage(h){c+h>=e&&d("bytes_limit"),l+=1,c+=h,f()},notifyAfterAddMessage(h=0){c+=h,l>=t?d("messages_limit"):c>=e&&d("bytes_limit")},notifyAfterRemoveMessage(h){c-=h,l-=1,l===0&&p()}}}function Hn(t,e,n,r,i,s,o=Hi){const a=l(t,e),c=n&&l(t,n);function l(d,{endpoint:u,encoder:f}){return o({encoder:f,request:Mi(u,d.batchBytesLimit,r),flushController:qi({messagesLimit:d.batchMessagesLimit,bytesLimit:d.batchBytesLimit,durationLimit:d.flushTimeout,pageExitObservable:i,sessionExpireObservable:s}),messageBytesLimit:d.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(d,u=!0){a.add(d),c&&u&&c.add(n.transformMessage?n.transformMessage(d):d)},upsert:(d,u)=>{a.upsert(d,u),c&&c.upsert(n.transformMessage?n.transformMessage(d):d,u)},stop:()=>{a.stop(),c&&c.stop()}}}function Ze(){let t="",e=0;return{isAsync:!1,get isEmpty(){return!t},write(n,r){const i=ot(n);e+=i,t+=n,r&&r(i)},finish(n){n(this.finishSync())},finishSync(){const n={output:t,outputBytesCount:e,rawBytesCount:e,pendingData:""};return t="",e=0,n},estimateEncodedBytesCount(n){return n.length}}}class Wi{constructor(){this.callbacks={}}notify(e,n){const r=this.callbacks[e];r&&r.forEach(i=>i(n))}subscribe(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),{unsubscribe:()=>{this.callbacks[e]=this.callbacks[e].filter(r=>n!==r)}}}}function Yi(t,e,n){let r=0,i=!1;return{isLimitReached(){if(r===0&&ve(()=>{r=0},J),r+=1,r<=e||i)return i=!1,!1;if(r===e+1){i=!0;try{n({message:`Reached max number of ${t}s by minute: ${e}`,source:O.AGENT,startClocks:V()})}finally{i=!1}}return!0}}}let Ct;const kt=new WeakMap;function Ki(t){return Ct||(Ct=Ji(t)),Ct}function Ji(t){return new D(e=>{const{stop:n}=ne(XMLHttpRequest.prototype,"open",Zi),{stop:r}=ne(XMLHttpRequest.prototype,"send",s=>{Xi(s,t,e)},{computeHandlingStack:!0}),{stop:i}=ne(XMLHttpRequest.prototype,"abort",Qi);return()=>{n(),r(),i()}})}function Zi({target:t,parameters:[e,n]}){kt.set(t,{state:"open",method:String(e).toUpperCase(),url:gt(String(n))})}function Xi({target:t,handlingStack:e},n,r){const i=kt.get(t);if(!i)return;const s=i;s.state="start",s.startClocks=V(),s.isAborted=!1,s.xhr=t,s.handlingStack=e;let o=!1;const{stop:a}=ne(t,"onreadystatechange",()=>{t.readyState===XMLHttpRequest.DONE&&c()}),c=()=>{if(l(),a(),o)return;o=!0;const d=i;d.state="complete",d.duration=yr(s.startClocks.timeStamp,G()),d.status=t.status,r.notify(Sr(d))},{stop:l}=re(n,t,"loadend",c);r.notify(s)}function Qi({target:t}){const e=kt.get(t);e&&(e.isAborted=!0)}let Rt;function qn(){return Rt||(Rt=eo()),Rt}function eo(){return new D(t=>{if(!window.fetch)return;const{stop:e}=ne(window,"fetch",n=>to(n,t),{computeHandlingStack:!0});return e})}function to({parameters:t,onPostCall:e,handlingStack:n},r){const[i,s]=t;let o=s&&s.method;o===void 0&&i instanceof Request&&(o=i.method);const a=o!==void 0?String(o).toUpperCase():"GET",c=i instanceof Request?i.url:gt(String(i)),l=V(),d={state:"start",init:s,input:i,method:a,startClocks:l,url:c,handlingStack:n};r.notify(d),t[0]=d.input,t[1]=d.init,e(u=>no(r,u,d))}function no(t,e,n){const r=n;function i(s){r.state="resolve",Object.assign(r,s),t.notify(r)}e.then(S(s=>{i({response:s,responseType:s.type,status:s.status,isAborted:!1})}),S(s=>{var o,a;i({status:0,isAborted:((a=(o=r.init)===null||o===void 0?void 0:o.signal)===null||a===void 0?void 0:a.aborted)||s instanceof DOMException&&s.code===DOMException.ABORT_ERR,error:s})}))}let Dt={};function ro(t){const e=t.map(n=>(Dt[n]||(Dt[n]=so(n)),Dt[n]));return en(...e)}function so(t){return new D(e=>{const n=M[t];return M[t]=(...r)=>{n.apply(console,r);const i=He("console error");be(()=>{e.notify(io(r,t,i))})},()=>{M[t]=n}})}function io(t,e,n){const r=t.map(s=>oo(s)).join(" ");let i;if(e===E.error){const s=t.find(W);i={stack:s?te(N(s)):void 0,fingerprint:Sn(s),causes:s?wn(s,"console"):void 0,startClocks:V(),message:r,source:O.CONSOLE,handling:"handled",handlingStack:n,context:Tn(s)}}return{api:e,message:r,error:i,handlingStack:n}}function oo(t){return typeof t=="string"?$(t):W(t)?_n(N(t)):ee($(t),void 0,2)}function ao(t){const e=Rn(t)==="object";return e||C.error("Unsupported context:",t),e}function Ut(t,e,n){const r={...t};for(const[i,{required:s,type:o}]of Object.entries(e))o==="string"&&i in r&&(r[i]=String(r[i])),s&&!(i in t)&&C.warn(`The property ${i} of ${n} is required; context will not be sent to the intake.`);return r}function Xe(t="",{customerDataTracker:e,propertiesConfig:n={}}={}){let r={};const i=new D,s={getContext:()=>Dn(r),setContext:o=>{ao(o)?(r=$(Ut(o,n,t)),e==null||e.updateCustomerData(r)):s.clearContext(),i.notify()},setContextProperty:(o,a)=>{r=$(Ut({...r,[o]:a},n,t)),e==null||e.updateCustomerData(r),i.notify()},removeContextProperty:o=>{delete r[o],e==null||e.updateCustomerData(r),Ut(r,n,t),i.notify()},clearContext:()=>{r={},e==null||e.resetCustomerData(),i.notify()},changeObservable:i};return s}const co="_dd_c",lo=[];function At(t,e,n,r){const i=uo(n,r);lo.push(re(t,window,"storage",({key:l})=>{i===l&&o()})),e.changeObservable.subscribe(a);const s=de(c(),e.getContext());_e(s)||e.setContext(s);function o(){e.setContext(c())}function a(){localStorage.setItem(i,JSON.stringify(e.getContext()))}function c(){const l=localStorage.getItem(i);return l?JSON.parse(l):{}}}function uo(t,e){return`${co}_${t}_${e}`}const fo=3*B,ho=16*B,po=200;function mo(t=2){const e=new Map;let n=!1;function r(i=0){if(n||t===0)return;const s=t===2?fo:ho;let o=i;e.forEach(a=>{o+=a.getBytesCount()}),o>s&&(go(s),n=!0)}return{createDetachedTracker:()=>{const i=Wn(()=>r(i.getBytesCount()));return i},getOrCreateTracker:i=>(e.has(i)||e.set(i,Wn(r)),e.get(i)),setCompressionStatus:i=>{t===0&&(t=i,r())},getCompressionStatus:()=>t,stop:()=>{e.forEach(i=>i.stop()),e.clear()}}}function Wn(t){let e=0;const{throttled:n,cancel:r}=tn(s=>{e=ot(ee(s)),t()},po),i=()=>{r(),e=0};return{updateCustomerData:s=>{_e(s)?i():n(s)},resetCustomerData:i,getBytesCount:()=>e,stop:()=>{r()}}}function go(t){C.warn(`Customer data exceeds the recommended ${t/B}KiB threshold. ${Ae} ${Ht}/#customer-data-exceeds-the-recommended-threshold-warning`)}function yo(t,e,n){const r=t.getReader(),i=[];let s=0;o();function o(){r.read().then(S(c=>{if(c.done){a();return}i.push(c.value),s+=c.value.length,s>n.bytesLimit?a():o()}),S(c=>e(c)))}function a(){r.cancel().catch(H);let c,l;{let d;if(i.length===1)d=i[0];else{d=new Uint8Array(s);let u=0;i.forEach(f=>{d.set(f,u),u+=f.length})}c=d.slice(0,n.bytesLimit),l=d.length>n.bytesLimit}e(void 0,c,l)}}const _o="datadog-synthetics-public-id",bo="datadog-synthetics-result-id",vo="datadog-synthetics-injects-rum";function Yn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||Z(vo))}function So(){const t=window._DATADOG_SYNTHETICS_PUBLIC_ID||Z(_o);return typeof t=="string"?t:void 0}function To(){const t=window._DATADOG_SYNTHETICS_RESULT_ID||Z(bo);return typeof t=="string"?t:void 0}function Qe(t,e,n){const r=n.getHandler(),i=Array.isArray(r)?r:[r];return Kn[t]>=Kn[n.getLevel()]&&i.includes(e)}const b={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Kn={[b.ok]:0,[b.debug]:1,[b.info]:2,[b.notice]:4,[b.warn]:5,[b.error]:6,[b.critical]:7,[b.alert]:8,[b.emerg]:9};function et(t,{includeMessage:e=!1}={}){return{stack:t.stack,kind:t.type,message:e?t.message:void 0,causes:t.causes,fingerprint:t.fingerprint,handling:t.handling}}var wo=function(t,e,n,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};const ke={console:"console",http:"http",silent:"silent"},xo=Object.keys(b);let L=class{constructor(e,n,r,i=ke.http,s=b.debug,o={}){this.handleLogStrategy=e,this.handlerType=i,this.level=s,this.contextManager=Xe("logger",{customerDataTracker:n}),this.contextManager.setContext(o),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(e,n,r=b.info,i,s){const o=$(n);let a;if(i!=null){const c=vn({stackTrace:W(i)?N(i):void 0,originalError:i,nonErrorPrefix:"Provided",source:O.LOGGER,handling:"handled",startClocks:V()});a=de({error:et(c,{includeMessage:!0})},o)}else a=o;this.handleLogStrategy({message:$(e),context:a,status:r},this,s)}log(e,n,r=b.info,i){let s;Qe(r,ke.http,this)&&(s=He("log")),this.logImplementation(e,n,r,i,s)}setContext(e){this.contextManager.setContext(e)}getContext(){return this.contextManager.getContext()}setContextProperty(e,n){this.contextManager.setContextProperty(e,n)}removeContextProperty(e){this.contextManager.removeContextProperty(e)}clearContext(){this.contextManager.clearContext()}setHandler(e){this.handlerType=e}getHandler(){return this.handlerType}setLevel(e){this.level=e}getLevel(){return this.level}};wo([xr],L.prototype,"logImplementation",null),L.prototype.ok=z(b.ok),L.prototype.debug=z(b.debug),L.prototype.info=z(b.info),L.prototype.notice=z(b.notice),L.prototype.warn=z(b.warn),L.prototype.error=z(b.error),L.prototype.critical=z(b.critical),L.prototype.alert=z(b.alert),L.prototype.emerg=z(b.emerg);function z(t){return function(e,n,r){let i;Qe(t,ke.http,this)&&(i=He("log")),this.logImplementation(e,n,t,r,i)}}function Eo(t,e,n){return{view:{referrer:document.referrer,url:window.location.href},context:t.getContext(),user:e.getContext(),account:n.getContext()}}const Co=32*B;function ko(t){t.usePciIntake===!0&&t.site&&t.site!=="datadoghq.com"&&C.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const e=xs(t),n=Jn(t.forwardConsoleLogs,Me(E),"Forward Console Logs"),r=Jn(t.forwardReports,Me(qe),"Forward Reports");if(!(!e||!n||!r))return t.forwardErrorsToLogs&&!n.includes(E.error)&&n.push(E.error),{forwardErrorsToLogs:t.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:Co,...e}}function Jn(t,e,n){if(t===void 0)return[];if(!(t==="all"||Array.isArray(t)&&t.every(r=>e.includes(r)))){C.error(`${n} should be "all" or an array with allowed values "${e.join('", "')}"`);return}return t==="all"?e:li(t)}function Ro(t){const e=Es(t);return{forward_errors_to_logs:t.forwardErrorsToLogs,forward_console_logs:t.forwardConsoleLogs,forward_reports:t.forwardReports,use_pci_intake:t.usePciIntake,...e}}function Do(t,e,n){const r=An();let i,s;const o=e.observable.subscribe(a);function a(){if(!s||!i||!e.isGranted())return;o.unsubscribe();const c=n(i,s);r.drain(c)}return{init(c){if(!c){C.error("Missing configuration");return}if(Cs(c.enableExperimentalFeatures),Ke()&&(c=Uo(c)),i=c,s){xn("DD_LOGS",c);return}const l=ko(c);l&&(s=l,qn().subscribe(H),e.tryToInit(l.trackingConsent),a())},get initConfiguration(){return i},getInternalContext:H,handleLog(c,l,d,u=t(),f=G()){r.add(p=>p.handleLog(c,l,d,u,f))}}}function Uo(t){return{...t,clientToken:"empty"}}const Ft="logs";function Ao(t){const e=mo(),n=Xe("global context",{customerDataTracker:e.getOrCreateTracker(2)}),r=Xe("user",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),i=Xe("account",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),s=ss();function o(){return Eo(n,r,i)}let a=Do(o,s,(d,u)=>{d.storeContextsAcrossPages&&(At(u,n,Ft,2),At(u,r,Ft,1),At(u,i,Ft,4));const f=t(d,u,o,s);return a=Fo(d,f),f});const c={},l=new L((...d)=>a.handleLog(...d),e.createDetachedTracker());return ei({logger:l,init:S(d=>a.init(d)),setTrackingConsent:S(d=>{s.update(d),_i({feature:"set-tracking-consent",tracking_consent:d})}),getGlobalContext:S(()=>n.getContext()),setGlobalContext:S(d=>n.setContext(d)),setGlobalContextProperty:S((d,u)=>n.setContextProperty(d,u)),removeGlobalContextProperty:S(d=>n.removeContextProperty(d)),clearGlobalContext:S(()=>n.clearContext()),createLogger:S((d,u={})=>(c[d]=new L((...f)=>a.handleLog(...f),e.createDetachedTracker(),$(d),u.handler,u.level,$(u.context)),c[d])),getLogger:S(d=>c[d]),getInitConfiguration:S(()=>Dn(a.initConfiguration)),getInternalContext:S(d=>a.getInternalContext(d)),setUser:S(r.setContext),getUser:S(r.getContext),setUserProperty:S(r.setContextProperty),removeUserProperty:S(r.removeContextProperty),clearUser:S(r.clearContext),setAccount:S(i.setContext),getAccount:S(i.getContext),setAccountProperty:S(i.setContextProperty),removeAccountProperty:S(i.removeContextProperty),clearAccount:S(i.clearContext)})}function Fo(t,e){return{init:n=>{xn("DD_LOGS",n)},initConfiguration:t,...e}}const Oo="logs";function Lo(t,e){const n=Ci(t,Oo,r=>Po(t,r),e);return{findTrackedSession:(r,i={returnInactive:!1})=>{const s=n.findSession(r,i);return s&&s.trackingType==="1"?{id:s.id,anonymousId:s.anonymousId}:void 0},expireObservable:n.expireObservable}}function Io(t){const n=Zn(t)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new D}}function Zn(t){return Fe(t.sessionSampleRate)?"1":"0"}function Po(t,e){const n=Mo(e)?e:Zn(t);return{trackingType:n,isTracked:n==="1"}}function Mo(t){return t==="0"||t==="1"}let Xn=!1;function tt(t){const e=window;if(Yn()){const r=n(e.DD_RUM_SYNTHETICS);return!r&&!Xn&&(Xn=!0,On("Logs sent before RUM is injected by the synthetics worker",{testId:So(),resultId:To()})),r}return n(e.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(t)}}function Bo(t,e,n,r,i){const s=xo.concat(["custom"]),o={};s.forEach(a=>{o[a]=Yi(a,e.eventRateLimiterThreshold,i)}),n.subscribe(0,({rawLogsEvent:a,messageContext:c=void 0,savedCommonContext:l=void 0,domainContext:d})=>{var u,f;const p=br(a.date),h=t.findTrackedSession(p);if(!t.findTrackedSession(p,{returnInactive:!0}))return;const g=l||r();let T;!_e(g.account)&&g.account.id&&(T=g.account),h&&h.anonymousId&&!g.user.anonymous_id&&(g.user.anonymous_id=h.anonymousId);const v=de({service:e.service,session_id:h?h.id:void 0,session:h?{id:h.id}:void 0,usr:_e(g.user)?void 0:g.user,account:T,view:g.view},g.context,tt(p),a,c);((u=e.beforeSend)===null||u===void 0?void 0:u.call(e,v,d))===!1||v.origin!==O.AGENT&&((f=o[v.status])!==null&&f!==void 0?f:o.custom).isLimitReached()||n.notify(1,v)})}const No={[E.log]:b.info,[E.debug]:b.debug,[E.info]:b.info,[E.warn]:b.warn,[E.error]:b.error};function $o(t,e){const n=ro(t.forwardConsoleLogs).subscribe(r=>{var i;const s={rawLogsEvent:{date:G(),message:r.message,origin:O.CONSOLE,error:r.error&&et(r.error),status:No[r.api]},messageContext:(i=r.error)===null||i===void 0?void 0:i.context,domainContext:{handlingStack:r.handlingStack}};e.notify(0,s)});return{stop:()=>{n.unsubscribe()}}}function zo(t,e){const n=ni(t,t.forwardReports).subscribe(r=>{let i=r.message,s;const o=r.originalError.type==="deprecation"?b.warn:b.error;o===b.error?s=et(r):r.stack&&(i+=` Found in ${Js(r.stack)}`),e.notify(0,{rawLogsEvent:{date:G(),message:i,origin:O.REPORT,error:s,status:o}})});return{stop:()=>{n.unsubscribe()}}}function Go(t,e){if(!t.forwardErrorsToLogs)return{stop:H};const n=Ki(t).subscribe(s=>{s.state==="complete"&&i("xhr",s)}),r=qn().subscribe(s=>{s.state==="resolve"&&i("fetch",s)});function i(s,o){!Ts(o.url)&&(qo(o)||In(o.status))&&("xhr"in o?Vo(o.xhr,t,a):o.response?Ho(o.response,t,a):o.error&&jo(o.error,t,a));function a(c){const l={isAborted:o.isAborted,handlingStack:o.handlingStack};e.notify(0,{rawLogsEvent:{message:`${Wo(s)} error ${o.method} ${o.url}`,date:o.startClocks.timeStamp,error:{stack:c||"Failed to load",handling:void 0},http:{method:o.method,status_code:o.status,url:o.url},status:b.error,origin:O.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function Vo(t,e,n){typeof t.response=="string"?n(Ot(t.response,e)):n(t.response)}function jo(t,e,n){n(Ot(te(N(t)),e))}function Ho(t,e,n){const r=Ui(t);!r||!r.body?n():window.TextDecoder?Yo(r.body,e.requestErrorResponseLengthLimit,(i,s)=>{n(i?`Unable to retrieve response: ${i}`:s)}):r.text().then(S(i=>n(Ot(i,e))),S(i=>n(`Unable to retrieve response: ${i}`)))}function qo(t){return t.status===0&&t.responseType!=="opaque"}function Ot(t,e){return t.length>e.requestErrorResponseLengthLimit?`${t.substring(0,e.requestErrorResponseLengthLimit)}...`:t}function Wo(t){return t==="xhr"?"XHR":"Fetch"}function Yo(t,e,n){yo(t,(r,i,s)=>{if(r)n(r);else{let o=new TextDecoder().decode(i);s&&(o+="..."),n(void 0,o)}},{bytesLimit:e,collectStreamBody:!0})}function Ko(t,e){if(!t.forwardErrorsToLogs)return{stop:H};const n=new D,{stop:r}=Zs(n),i=n.subscribe(s=>{e.notify(0,{rawLogsEvent:{message:s.message,date:s.startClocks.timeStamp,error:et(s),origin:O.SOURCE,status:b.error},messageContext:s.context})});return{stop:()=>{r(),i.unsubscribe()}}}const Jo=Wi;function Zo(t){function e(n,r,i,s,o){const a=de(r.getContext(),n.context);if(Qe(n.status,ke.console,r)&&Qo(n,a),Qe(n.status,ke.http,r)){const c={rawLogsEvent:{date:o||G(),message:n.message,status:n.status,origin:O.LOGGER},messageContext:a,savedCommonContext:s};i&&(c.domainContext={handlingStack:i}),t.notify(0,c)}}return{handleLog:e}}const Xo={[b.ok]:E.debug,[b.debug]:E.debug,[b.info]:E.info,[b.notice]:E.info,[b.warn]:E.warn,[b.error]:E.error,[b.critical]:E.error,[b.alert]:E.error,[b.emerg]:E.error};function Qo({status:t,message:e},n){K[Xo[t]].call(M,e,n)}function ea(t,e,n,r,i){const s=Hn(t,{endpoint:t.logsEndpointBuilder,encoder:Ze()},t.replica&&{endpoint:t.replica.logsEndpointBuilder,encoder:Ze()},n,r,i.expireObservable);return e.subscribe(1,o=>{s.add(o)}),s}function ta(t){const e=Et();t.subscribe(1,n=>{e.send("log",n)})}function na(t){return{get:e=>{const n=t.findTrackedSession(e);if(n)return{session_id:n.id}}}}function ra(t){return e=>{t.notify(0,{rawLogsEvent:{message:e.message,date:e.startClocks.timeStamp,origin:O.AGENT,status:b.error}}),On("Error reported to customer",{"error.message":e.message})}}function sa(t,e,n,r,i){const s=hi("browser-logs-sdk",e);s.setContextProvider(()=>{var a,c,l,d,u,f;return{application:{id:(a=tt())===null||a===void 0?void 0:a.application_id},session:{id:(c=i.findTrackedSession())===null||c===void 0?void 0:c.id},view:{id:(d=(l=tt())===null||l===void 0?void 0:l.view)===null||d===void 0?void 0:d.id},action:{id:(f=(u=tt())===null||u===void 0?void 0:u.user_action)===null||f===void 0?void 0:f.id}}});const o=[];if(Ke()){const a=Et(),c=s.observable.subscribe(l=>a.send("internal_telemetry",l));o.push(()=>c.unsubscribe())}else{const a=Hn(e,{endpoint:e.rumEndpointBuilder,encoder:Ze()},e.replica&&{endpoint:e.replica.rumEndpointBuilder,encoder:Ze()},n,r,i.expireObservable);o.push(()=>a.stop());const c=s.observable.subscribe(l=>a.add(l,gi(e)));o.push(()=>c.unsubscribe())}return mi(),yi(Ro(t)),{telemetry:s,stop:()=>{o.forEach(a=>a())}}}function ia(t,e,n,r){const i=new Jo,s=[];i.subscribe(1,f=>kn("logs",f));const o=ra(i),a=Vi(e),c=e.sessionStoreStrategyType&&!Ke()&&!Yn()?Lo(e,r):Io(e),{stop:l}=sa(t,e,o,a,c);s.push(()=>l()),Go(e,i),Ko(e,i),$o(e,i),zo(e,i);const{handleLog:d}=Zo(i);if(Bo(c,e,i,n,o),Ke())ta(i);else{const{stop:f}=ea(e,i,o,a,c);s.push(()=>f())}const u=na(c);return{handleLog:d,getInternalContext:u.get,stop:()=>{s.forEach(f=>f())}}}const fe=Ao(ia);ti(j(),"DD_LOGS",fe);const y=class y{constructor(e){this.isLoggingOn=e.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&fe.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),y.tracking.mac=r,y.tracking.dev=`${e.platform}_${e.browserName}`,y.beatHandle||(console.log("[Logger] Starting tracking beat"),y.beatHandle=window.setInterval(y.flushTracking,15e3))}static setMessagePort(e){this.messagePort=e}static getMessagePort(){return this.messagePort}setLoggingOn(e){this.isLoggingOn=e}setAttributes(e){y.processAttributes(e);for(const n in e)fe.logger.setContextProperty(n,e[n])}info(e,n){e==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),e==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),e==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),e==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.info(e,n),console.log("[Logger] Sending info: ",e))}error(e,n){n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.error(e,n),y.tracking.err_time=Date.now().toFixed(0),y.tracking.err_desc=e+(n?` - ${JSON.stringify(n)}`:""),console.log("[Logger] Sending error: ",e))}warn(e,n){n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.warn(e,n),console.log("[Logger] Sending warn: ",e))}handleMessageFromWorker(e){e.actionType==="INFO"?this.info(e.message,e.attributes):e.actionType==="ERROR"?this.error(e.message,e.attributes):e.actionType==="WARN"?this.warn(e.message,e.attributes):e.actionType==="SET_ATTRIBUTES"&&e.attributes&&this.setAttributes(e.attributes)}static setAttributes(e){y.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:e})}static info(e,n){y.messagePort.postMessage({type:"LOG",actionType:"INFO",message:e,attributes:n})}static error(e,n){y.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:e,attributes:n})}static warn(e,n){y.messagePort.postMessage({type:"LOG",actionType:"WARN",message:e,attributes:n})}static processAttributes(e){if(e.player_version&&(y.tracking.sdk=e.player_version),e.media_id&&(y.tracking.gid=e.media_id),e.game_id&&(y.tracking.buc=e.game_id),e.bb_session_id&&(y.tracking.sid=e.bb_session_id,console.log("[Logger] Setting bb_session_id:",y.tracking.sid)),e.last_timecode){const r=F.fromStr(e.last_timecode);y.tracking.tc=r.print(),y.lastTimecodeMillis=r.totalMilliseconds(59.94),y.lastTimecodeMillis&&y.lastZipMillis&&(y.tracking.cache=(y.lastZipMillis-y.lastTimecodeMillis).toFixed(0))}e.last_offset&&(y.tracking.off=e.last_offset),e.last_loading_zip&&(y.tracking.zip=e.last_loading_zip+".zip",y.lastZipMillis=F.fromStr(e.last_loading_zip).totalMilliseconds(59.94),y.lastTimecodeMillis&&y.lastZipMillis&&(y.tracking.cache=(y.lastZipMillis-y.lastTimecodeMillis).toFixed(0))),e.last_rendered_frame&&(y.tracking.aug_time=Date.now().toFixed(0)),e.asset&&(y.tracking.asset=e.asset)}static objectToQuery(e){return Object.entries(e).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(e,n){const r=new CustomEvent(e,{detail:n});this.eventTarget.dispatchEvent(r)}};y.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},y.lastTimecodeMillis=0,y.lastZipMillis=0,y.flushTracking=()=>{const e=Date.now().toFixed(0);y.tracking.now=e;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${y.objectToQuery(y.tracking)}`;console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),y.tracking.err_desc="",y.tracking.err_time=""};let Lt=y;class Qn{constructor(e,n,r){this.RUN_PIXEL_TICKERS=!0,this.pixelTickers=[],this.fetchGameParams=async()=>{try{I(this.options,"OTTPlayer")&&console.log("[OTTPlayer] GameId: ",this.options.gameId);let s;const o=`${this.options.cloudFrontURL}/${this.options.gameId}.json`;if(I(this.options,"OTTPlayer")&&console.log(`Fetching GameParams from ${o}`),s=await fetch(o),!s.ok)throw new Error(`Unable to fetch game params for ${this.options.gameId}. HTTP error. Status: ${s.status}`);const a=await s.json();if(a.hasOwnProperty("bucketName")&&a.hasOwnProperty("offsets"))s=a;else throw new Error(`Game params for ${this.options.gameId} not found in JSON`);if(this.logger.setAttributes({game_id:s.bucketName,customer_name:s.customerName,customer_id:s.customerId}),this.gameParams){const c=JSON.stringify(this.gameParams),l=JSON.stringify(s);c!==l&&this.logger.info("didChangeGameParams",{oldParams:this.gameParams,newParams:s})}else this.logger.info("didFetchGameInfo",this.gameParams);this.gameParams=s}catch(s){this.logger.error("[OTTPlayer] Error fetching game params",{error:s}),I(this.options,"Errors")&&console.error("[OTTPlayer] Error fetching game params:",s)}setTimeout(()=>this.fetchGameParams(),1e4)};const i="OTTPlayer_v1.0.64";console.log(i),this.video=e,this.options={...r,cloudFrontURL:"https://d1ze2lfw5ong7.cloudfront.net",platform:P.getCurrentPlatform(),browserName:P.getBrowserName(),augmentation:{channelName:"nba"},LOG_TO_DATADOG:!0,ADAPTER_RUN_IN_WORKER:!1,DOWNLOADER_UPDATE_FREQUENCY:1e3,DOWNLOADER_ZIP_START_OFFSET:2,DOWNLOADER_ZIP_END_OFFSET:4,DOWNLOADER_ZIP_LENGTH_SECONDS:2,DECODER_UPDATE_FREQUENCY:30,DECODER_FRAME_BATCH_SIZE:3,DECODER_LEAD_TIME_MILLIS:180,PERFORMANCE_TRACKING_INTERVAL:1e3},this.options.browserName==="Firefox"&&(this.options.DECODER_LEAD_TIME_MILLIS=300),this.logger=new Lt(this.options),this.logger.setAttributes({player_version:i,bb_session_id:crypto.randomUUID()}),this.logger.info("didGetConfiguration",{...r,fps:n}),er(this.options).then(()=>{this.logger.setAttributes({media_id:r.gameId}),window.BB.playerInstances.length>0&&window.BB.playerInstances.forEach(s=>{s.delete()}),window.BB.workerInstances.length>0&&window.BB.workerInstances.forEach(s=>{s.terminate()}),this.clocker=new ar(this),this.adapter=new fr(this),this.RUN_PIXEL_TICKERS&&(this.pixelTickers=Y.createInAllCorners(this.video)),this.fetchGameParams(),window.BB.playerInstances.push(this)})}onNewMetadata(e){this.adapter&&this.adapter.onNewMetadata(e)}onNewSegment(e){this.adapter&&this.adapter.onNewSegmentForMetadata(e)}onAdEvent(e){this.adapter&&this.adapter.onAdEvent(e)}toggle(e){this.options.enabled=e}setFps(e){this.fps=e}setMediaInfo(e){e.fps&&this.setFps(e.fps),e.bitrate&&(this.bitrate=e.bitrate)}on(e,n){const r=i=>n(i);this.logger.eventTarget.addEventListener(e,r)}delete(){var n;(n=this.clocker)==null||n.delete(),this.clocker=void 0,this.adapter&&(this.adapter.delete(),this.adapter=void 0),Y.deleteAll(this.pixelTickers),this.pixelTickers=[];const e=window.BB.playerInstances.indexOf(this);e>=0&&window.BB.playerInstances.splice(e,1)}}return window.BB={OTTPlayer:Qn,playerInstances:[],workerInstances:[]},Qn});
7
+ ${f}`),t.finish(m=>{h(jn(m))})}return{flushController:n,add:l,upsert:l,stop:i.unsubscribe}}function jn(t){let e;return typeof t.output=="string"?e=t.output:e=new Blob([t.output],{type:"text/plain"}),{data:e,bytesCount:t.outputBytesCount,encoding:t.encoding}}function qs({messagesLimit:t,bytesLimit:e,durationLimit:n,pageExitObservable:r,sessionExpireObservable:s}){const i=r.subscribe(h=>d(h.reason)),o=s.subscribe(()=>d("session_expire")),a=new D(()=>()=>{i.unsubscribe(),o.unsubscribe()});let c=0,l=0;function d(h){if(l===0)return;const m=l,g=c;l=0,c=0,p(),a.notify({reason:h,messagesCount:m,bytesCount:g})}let u;function f(){u===void 0&&(u=ve(()=>{d("duration_limit")},n))}function p(){Xt(u),u=void 0}return{flushObservable:a,get messagesCount(){return l},notifyBeforeAddMessage(h){c+h>=e&&d("bytes_limit"),l+=1,c+=h,f()},notifyAfterAddMessage(h=0){c+=h,l>=t?d("messages_limit"):c>=e&&d("bytes_limit")},notifyAfterRemoveMessage(h){c-=h,l-=1,l===0&&p()}}}function Hn(t,e,n,r,s,i,o=Hs){const a=l(t,e),c=n&&l(t,n);function l(d,{endpoint:u,encoder:f}){return o({encoder:f,request:Ms(u,d.batchBytesLimit,r),flushController:qs({messagesLimit:d.batchMessagesLimit,bytesLimit:d.batchBytesLimit,durationLimit:d.flushTimeout,pageExitObservable:s,sessionExpireObservable:i}),messageBytesLimit:d.messageBytesLimit})}return{flushObservable:a.flushController.flushObservable,add(d,u=!0){a.add(d),c&&u&&c.add(n.transformMessage?n.transformMessage(d):d)},upsert:(d,u)=>{a.upsert(d,u),c&&c.upsert(n.transformMessage?n.transformMessage(d):d,u)},stop:()=>{a.stop(),c&&c.stop()}}}function Ze(){let t="",e=0;return{isAsync:!1,get isEmpty(){return!t},write(n,r){const s=ot(n);e+=s,t+=n,r&&r(s)},finish(n){n(this.finishSync())},finishSync(){const n={output:t,outputBytesCount:e,rawBytesCount:e,pendingData:""};return t="",e=0,n},estimateEncodedBytesCount(n){return n.length}}}class Ws{constructor(){this.callbacks={}}notify(e,n){const r=this.callbacks[e];r&&r.forEach(s=>s(n))}subscribe(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),{unsubscribe:()=>{this.callbacks[e]=this.callbacks[e].filter(r=>n!==r)}}}}function Ys(t,e,n){let r=0,s=!1;return{isLimitReached(){if(r===0&&ve(()=>{r=0},J),r+=1,r<=e||s)return s=!1,!1;if(r===e+1){s=!0;try{n({message:`Reached max number of ${t}s by minute: ${e}`,source:L.AGENT,startClocks:V()})}finally{s=!1}}return!0}}}let Ct;const kt=new WeakMap;function Ks(t){return Ct||(Ct=Js(t)),Ct}function Js(t){return new D(e=>{const{stop:n}=ne(XMLHttpRequest.prototype,"open",Zs),{stop:r}=ne(XMLHttpRequest.prototype,"send",i=>{Xs(i,t,e)},{computeHandlingStack:!0}),{stop:s}=ne(XMLHttpRequest.prototype,"abort",Qs);return()=>{n(),r(),s()}})}function Zs({target:t,parameters:[e,n]}){kt.set(t,{state:"open",method:String(e).toUpperCase(),url:gt(String(n))})}function Xs({target:t,handlingStack:e},n,r){const s=kt.get(t);if(!s)return;const i=s;i.state="start",i.startClocks=V(),i.isAborted=!1,i.xhr=t,i.handlingStack=e;let o=!1;const{stop:a}=ne(t,"onreadystatechange",()=>{t.readyState===XMLHttpRequest.DONE&&c()}),c=()=>{if(l(),a(),o)return;o=!0;const d=s;d.state="complete",d.duration=yr(i.startClocks.timeStamp,G()),d.status=t.status,r.notify(Sr(d))},{stop:l}=re(n,t,"loadend",c);r.notify(i)}function Qs({target:t}){const e=kt.get(t);e&&(e.isAborted=!0)}let Rt;function qn(){return Rt||(Rt=eo()),Rt}function eo(){return new D(t=>{if(!window.fetch)return;const{stop:e}=ne(window,"fetch",n=>to(n,t),{computeHandlingStack:!0});return e})}function to({parameters:t,onPostCall:e,handlingStack:n},r){const[s,i]=t;let o=i&&i.method;o===void 0&&s instanceof Request&&(o=s.method);const a=o!==void 0?String(o).toUpperCase():"GET",c=s instanceof Request?s.url:gt(String(s)),l=V(),d={state:"start",init:i,input:s,method:a,startClocks:l,url:c,handlingStack:n};r.notify(d),t[0]=d.input,t[1]=d.init,e(u=>no(r,u,d))}function no(t,e,n){const r=n;function s(i){r.state="resolve",Object.assign(r,i),t.notify(r)}e.then(S(i=>{s({response:i,responseType:i.type,status:i.status,isAborted:!1})}),S(i=>{var o,a;s({status:0,isAborted:((a=(o=r.init)===null||o===void 0?void 0:o.signal)===null||a===void 0?void 0:a.aborted)||i instanceof DOMException&&i.code===DOMException.ABORT_ERR,error:i})}))}let Dt={};function ro(t){const e=t.map(n=>(Dt[n]||(Dt[n]=io(n)),Dt[n]));return en(...e)}function io(t){return new D(e=>{const n=M[t];return M[t]=(...r)=>{n.apply(console,r);const s=He("console error");be(()=>{e.notify(so(r,t,s))})},()=>{M[t]=n}})}function so(t,e,n){const r=t.map(i=>oo(i)).join(" ");let s;if(e===E.error){const i=t.find(W);s={stack:i?te(N(i)):void 0,fingerprint:Sn(i),causes:i?wn(i,"console"):void 0,startClocks:V(),message:r,source:L.CONSOLE,handling:"handled",handlingStack:n,context:Tn(i)}}return{api:e,message:r,error:s,handlingStack:n}}function oo(t){return typeof t=="string"?$(t):W(t)?_n(N(t)):ee($(t),void 0,2)}function ao(t){const e=Rn(t)==="object";return e||C.error("Unsupported context:",t),e}function At(t,e,n){const r={...t};for(const[s,{required:i,type:o}]of Object.entries(e))o==="string"&&s in r&&(r[s]=String(r[s])),i&&!(s in t)&&C.warn(`The property ${s} of ${n} is required; context will not be sent to the intake.`);return r}function Xe(t="",{customerDataTracker:e,propertiesConfig:n={}}={}){let r={};const s=new D,i={getContext:()=>Dn(r),setContext:o=>{ao(o)?(r=$(At(o,n,t)),e==null||e.updateCustomerData(r)):i.clearContext(),s.notify()},setContextProperty:(o,a)=>{r=$(At({...r,[o]:a},n,t)),e==null||e.updateCustomerData(r),s.notify()},removeContextProperty:o=>{delete r[o],e==null||e.updateCustomerData(r),At(r,n,t),s.notify()},clearContext:()=>{r={},e==null||e.resetCustomerData(),s.notify()},changeObservable:s};return i}const co="_dd_c",lo=[];function Ut(t,e,n,r){const s=uo(n,r);lo.push(re(t,window,"storage",({key:l})=>{s===l&&o()})),e.changeObservable.subscribe(a);const i=de(c(),e.getContext());_e(i)||e.setContext(i);function o(){e.setContext(c())}function a(){localStorage.setItem(s,JSON.stringify(e.getContext()))}function c(){const l=localStorage.getItem(s);return l?JSON.parse(l):{}}}function uo(t,e){return`${co}_${t}_${e}`}const fo=3*B,ho=16*B,po=200;function mo(t=2){const e=new Map;let n=!1;function r(s=0){if(n||t===0)return;const i=t===2?fo:ho;let o=s;e.forEach(a=>{o+=a.getBytesCount()}),o>i&&(go(i),n=!0)}return{createDetachedTracker:()=>{const s=Wn(()=>r(s.getBytesCount()));return s},getOrCreateTracker:s=>(e.has(s)||e.set(s,Wn(r)),e.get(s)),setCompressionStatus:s=>{t===0&&(t=s,r())},getCompressionStatus:()=>t,stop:()=>{e.forEach(s=>s.stop()),e.clear()}}}function Wn(t){let e=0;const{throttled:n,cancel:r}=tn(i=>{e=ot(ee(i)),t()},po),s=()=>{r(),e=0};return{updateCustomerData:i=>{_e(i)?s():n(i)},resetCustomerData:s,getBytesCount:()=>e,stop:()=>{r()}}}function go(t){C.warn(`Customer data exceeds the recommended ${t/B}KiB threshold. ${Ue} ${Ht}/#customer-data-exceeds-the-recommended-threshold-warning`)}function yo(t,e,n){const r=t.getReader(),s=[];let i=0;o();function o(){r.read().then(S(c=>{if(c.done){a();return}s.push(c.value),i+=c.value.length,i>n.bytesLimit?a():o()}),S(c=>e(c)))}function a(){r.cancel().catch(H);let c,l;{let d;if(s.length===1)d=s[0];else{d=new Uint8Array(i);let u=0;s.forEach(f=>{d.set(f,u),u+=f.length})}c=d.slice(0,n.bytesLimit),l=d.length>n.bytesLimit}e(void 0,c,l)}}const _o="datadog-synthetics-public-id",bo="datadog-synthetics-result-id",vo="datadog-synthetics-injects-rum";function Yn(){return!!(window._DATADOG_SYNTHETICS_INJECTS_RUM||Z(vo))}function So(){const t=window._DATADOG_SYNTHETICS_PUBLIC_ID||Z(_o);return typeof t=="string"?t:void 0}function To(){const t=window._DATADOG_SYNTHETICS_RESULT_ID||Z(bo);return typeof t=="string"?t:void 0}function Qe(t,e,n){const r=n.getHandler(),s=Array.isArray(r)?r:[r];return Kn[t]>=Kn[n.getLevel()]&&s.includes(e)}const b={ok:"ok",debug:"debug",info:"info",notice:"notice",warn:"warn",error:"error",critical:"critical",alert:"alert",emerg:"emerg"},Kn={[b.ok]:0,[b.debug]:1,[b.info]:2,[b.notice]:4,[b.warn]:5,[b.error]:6,[b.critical]:7,[b.alert]:8,[b.emerg]:9};function et(t,{includeMessage:e=!1}={}){return{stack:t.stack,kind:t.type,message:e?t.message:void 0,causes:t.causes,fingerprint:t.fingerprint,handling:t.handling}}var wo=function(t,e,n,r){var s=arguments.length,i=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(i=(s<3?o(i):s>3?o(e,n,i):o(e,n))||i);return s>3&&i&&Object.defineProperty(e,n,i),i};const ke={console:"console",http:"http",silent:"silent"},xo=Object.keys(b);let I=class{constructor(e,n,r,s=ke.http,i=b.debug,o={}){this.handleLogStrategy=e,this.handlerType=s,this.level=i,this.contextManager=Xe("logger",{customerDataTracker:n}),this.contextManager.setContext(o),r&&this.contextManager.setContextProperty("logger",{name:r})}logImplementation(e,n,r=b.info,s,i){const o=$(n);let a;if(s!=null){const c=vn({stackTrace:W(s)?N(s):void 0,originalError:s,nonErrorPrefix:"Provided",source:L.LOGGER,handling:"handled",startClocks:V()});a=de({error:et(c,{includeMessage:!0})},o)}else a=o;this.handleLogStrategy({message:$(e),context:a,status:r},this,i)}log(e,n,r=b.info,s){let i;Qe(r,ke.http,this)&&(i=He("log")),this.logImplementation(e,n,r,s,i)}setContext(e){this.contextManager.setContext(e)}getContext(){return this.contextManager.getContext()}setContextProperty(e,n){this.contextManager.setContextProperty(e,n)}removeContextProperty(e){this.contextManager.removeContextProperty(e)}clearContext(){this.contextManager.clearContext()}setHandler(e){this.handlerType=e}getHandler(){return this.handlerType}setLevel(e){this.level=e}getLevel(){return this.level}};wo([xr],I.prototype,"logImplementation",null),I.prototype.ok=z(b.ok),I.prototype.debug=z(b.debug),I.prototype.info=z(b.info),I.prototype.notice=z(b.notice),I.prototype.warn=z(b.warn),I.prototype.error=z(b.error),I.prototype.critical=z(b.critical),I.prototype.alert=z(b.alert),I.prototype.emerg=z(b.emerg);function z(t){return function(e,n,r){let s;Qe(t,ke.http,this)&&(s=He("log")),this.logImplementation(e,n,t,r,s)}}function Eo(t,e,n){return{view:{referrer:document.referrer,url:window.location.href},context:t.getContext(),user:e.getContext(),account:n.getContext()}}const Co=32*B;function ko(t){t.usePciIntake===!0&&t.site&&t.site!=="datadoghq.com"&&C.warn("PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.");const e=xi(t),n=Jn(t.forwardConsoleLogs,Me(E),"Forward Console Logs"),r=Jn(t.forwardReports,Me(qe),"Forward Reports");if(!(!e||!n||!r))return t.forwardErrorsToLogs&&!n.includes(E.error)&&n.push(E.error),{forwardErrorsToLogs:t.forwardErrorsToLogs!==!1,forwardConsoleLogs:n,forwardReports:r,requestErrorResponseLengthLimit:Co,...e}}function Jn(t,e,n){if(t===void 0)return[];if(!(t==="all"||Array.isArray(t)&&t.every(r=>e.includes(r)))){C.error(`${n} should be "all" or an array with allowed values "${e.join('", "')}"`);return}return t==="all"?e:ls(t)}function Ro(t){const e=Ei(t);return{forward_errors_to_logs:t.forwardErrorsToLogs,forward_console_logs:t.forwardConsoleLogs,forward_reports:t.forwardReports,use_pci_intake:t.usePciIntake,...e}}function Do(t,e,n){const r=Un();let s,i;const o=e.observable.subscribe(a);function a(){if(!i||!s||!e.isGranted())return;o.unsubscribe();const c=n(s,i);r.drain(c)}return{init(c){if(!c){C.error("Missing configuration");return}if(Ci(c.enableExperimentalFeatures),Ke()&&(c=Ao(c)),s=c,i){xn("DD_LOGS",c);return}const l=ko(c);l&&(i=l,qn().subscribe(H),e.tryToInit(l.trackingConsent),a())},get initConfiguration(){return s},getInternalContext:H,handleLog(c,l,d,u=t(),f=G()){r.add(p=>p.handleLog(c,l,d,u,f))}}}function Ao(t){return{...t,clientToken:"empty"}}const Ft="logs";function Uo(t){const e=mo(),n=Xe("global context",{customerDataTracker:e.getOrCreateTracker(2)}),r=Xe("user",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string"},name:{type:"string"},email:{type:"string"}}}),s=Xe("account",{customerDataTracker:e.getOrCreateTracker(1),propertiesConfig:{id:{type:"string",required:!0},name:{type:"string"}}}),i=ii();function o(){return Eo(n,r,s)}let a=Do(o,i,(d,u)=>{d.storeContextsAcrossPages&&(Ut(u,n,Ft,2),Ut(u,r,Ft,1),Ut(u,s,Ft,4));const f=t(d,u,o,i);return a=Fo(d,f),f});const c={},l=new I((...d)=>a.handleLog(...d),e.createDetachedTracker());return es({logger:l,init:S(d=>a.init(d)),setTrackingConsent:S(d=>{i.update(d),_s({feature:"set-tracking-consent",tracking_consent:d})}),getGlobalContext:S(()=>n.getContext()),setGlobalContext:S(d=>n.setContext(d)),setGlobalContextProperty:S((d,u)=>n.setContextProperty(d,u)),removeGlobalContextProperty:S(d=>n.removeContextProperty(d)),clearGlobalContext:S(()=>n.clearContext()),createLogger:S((d,u={})=>(c[d]=new I((...f)=>a.handleLog(...f),e.createDetachedTracker(),$(d),u.handler,u.level,$(u.context)),c[d])),getLogger:S(d=>c[d]),getInitConfiguration:S(()=>Dn(a.initConfiguration)),getInternalContext:S(d=>a.getInternalContext(d)),setUser:S(r.setContext),getUser:S(r.getContext),setUserProperty:S(r.setContextProperty),removeUserProperty:S(r.removeContextProperty),clearUser:S(r.clearContext),setAccount:S(s.setContext),getAccount:S(s.getContext),setAccountProperty:S(s.setContextProperty),removeAccountProperty:S(s.removeContextProperty),clearAccount:S(s.clearContext)})}function Fo(t,e){return{init:n=>{xn("DD_LOGS",n)},initConfiguration:t,...e}}const Oo="logs";function Lo(t,e){const n=Cs(t,Oo,r=>Po(t,r),e);return{findTrackedSession:(r,s={returnInactive:!1})=>{const i=n.findSession(r,s);return i&&i.trackingType==="1"?{id:i.id,anonymousId:i.anonymousId}:void 0},expireObservable:n.expireObservable}}function Io(t){const n=Zn(t)==="1"?{}:void 0;return{findTrackedSession:()=>n,expireObservable:new D}}function Zn(t){return Fe(t.sessionSampleRate)?"1":"0"}function Po(t,e){const n=Mo(e)?e:Zn(t);return{trackingType:n,isTracked:n==="1"}}function Mo(t){return t==="0"||t==="1"}let Xn=!1;function tt(t){const e=window;if(Yn()){const r=n(e.DD_RUM_SYNTHETICS);return!r&&!Xn&&(Xn=!0,On("Logs sent before RUM is injected by the synthetics worker",{testId:So(),resultId:To()})),r}return n(e.DD_RUM);function n(r){if(r&&r.getInternalContext)return r.getInternalContext(t)}}function Bo(t,e,n,r,s){const i=xo.concat(["custom"]),o={};i.forEach(a=>{o[a]=Ys(a,e.eventRateLimiterThreshold,s)}),n.subscribe(0,({rawLogsEvent:a,messageContext:c=void 0,savedCommonContext:l=void 0,domainContext:d})=>{var u,f;const p=br(a.date),h=t.findTrackedSession(p);if(!t.findTrackedSession(p,{returnInactive:!0}))return;const g=l||r();let T;!_e(g.account)&&g.account.id&&(T=g.account),h&&h.anonymousId&&!g.user.anonymous_id&&(g.user.anonymous_id=h.anonymousId);const v=de({service:e.service,session_id:h?h.id:void 0,session:h?{id:h.id}:void 0,usr:_e(g.user)?void 0:g.user,account:T,view:g.view},g.context,tt(p),a,c);((u=e.beforeSend)===null||u===void 0?void 0:u.call(e,v,d))===!1||v.origin!==L.AGENT&&((f=o[v.status])!==null&&f!==void 0?f:o.custom).isLimitReached()||n.notify(1,v)})}const No={[E.log]:b.info,[E.debug]:b.debug,[E.info]:b.info,[E.warn]:b.warn,[E.error]:b.error};function $o(t,e){const n=ro(t.forwardConsoleLogs).subscribe(r=>{var s;const i={rawLogsEvent:{date:G(),message:r.message,origin:L.CONSOLE,error:r.error&&et(r.error),status:No[r.api]},messageContext:(s=r.error)===null||s===void 0?void 0:s.context,domainContext:{handlingStack:r.handlingStack}};e.notify(0,i)});return{stop:()=>{n.unsubscribe()}}}function zo(t,e){const n=ns(t,t.forwardReports).subscribe(r=>{let s=r.message,i;const o=r.originalError.type==="deprecation"?b.warn:b.error;o===b.error?i=et(r):r.stack&&(s+=` Found in ${Ji(r.stack)}`),e.notify(0,{rawLogsEvent:{date:G(),message:s,origin:L.REPORT,error:i,status:o}})});return{stop:()=>{n.unsubscribe()}}}function Go(t,e){if(!t.forwardErrorsToLogs)return{stop:H};const n=Ks(t).subscribe(i=>{i.state==="complete"&&s("xhr",i)}),r=qn().subscribe(i=>{i.state==="resolve"&&s("fetch",i)});function s(i,o){!Ti(o.url)&&(qo(o)||In(o.status))&&("xhr"in o?Vo(o.xhr,t,a):o.response?Ho(o.response,t,a):o.error&&jo(o.error,t,a));function a(c){const l={isAborted:o.isAborted,handlingStack:o.handlingStack};e.notify(0,{rawLogsEvent:{message:`${Wo(i)} error ${o.method} ${o.url}`,date:o.startClocks.timeStamp,error:{stack:c||"Failed to load",handling:void 0},http:{method:o.method,status_code:o.status,url:o.url},status:b.error,origin:L.NETWORK},domainContext:l})}}return{stop:()=>{n.unsubscribe(),r.unsubscribe()}}}function Vo(t,e,n){typeof t.response=="string"?n(Ot(t.response,e)):n(t.response)}function jo(t,e,n){n(Ot(te(N(t)),e))}function Ho(t,e,n){const r=As(t);!r||!r.body?n():window.TextDecoder?Yo(r.body,e.requestErrorResponseLengthLimit,(s,i)=>{n(s?`Unable to retrieve response: ${s}`:i)}):r.text().then(S(s=>n(Ot(s,e))),S(s=>n(`Unable to retrieve response: ${s}`)))}function qo(t){return t.status===0&&t.responseType!=="opaque"}function Ot(t,e){return t.length>e.requestErrorResponseLengthLimit?`${t.substring(0,e.requestErrorResponseLengthLimit)}...`:t}function Wo(t){return t==="xhr"?"XHR":"Fetch"}function Yo(t,e,n){yo(t,(r,s,i)=>{if(r)n(r);else{let o=new TextDecoder().decode(s);i&&(o+="..."),n(void 0,o)}},{bytesLimit:e,collectStreamBody:!0})}function Ko(t,e){if(!t.forwardErrorsToLogs)return{stop:H};const n=new D,{stop:r}=Zi(n),s=n.subscribe(i=>{e.notify(0,{rawLogsEvent:{message:i.message,date:i.startClocks.timeStamp,error:et(i),origin:L.SOURCE,status:b.error},messageContext:i.context})});return{stop:()=>{r(),s.unsubscribe()}}}const Jo=Ws;function Zo(t){function e(n,r,s,i,o){const a=de(r.getContext(),n.context);if(Qe(n.status,ke.console,r)&&Qo(n,a),Qe(n.status,ke.http,r)){const c={rawLogsEvent:{date:o||G(),message:n.message,status:n.status,origin:L.LOGGER},messageContext:a,savedCommonContext:i};s&&(c.domainContext={handlingStack:s}),t.notify(0,c)}}return{handleLog:e}}const Xo={[b.ok]:E.debug,[b.debug]:E.debug,[b.info]:E.info,[b.notice]:E.info,[b.warn]:E.warn,[b.error]:E.error,[b.critical]:E.error,[b.alert]:E.error,[b.emerg]:E.error};function Qo({status:t,message:e},n){K[Xo[t]].call(M,e,n)}function ea(t,e,n,r,s){const i=Hn(t,{endpoint:t.logsEndpointBuilder,encoder:Ze()},t.replica&&{endpoint:t.replica.logsEndpointBuilder,encoder:Ze()},n,r,s.expireObservable);return e.subscribe(1,o=>{i.add(o)}),i}function ta(t){const e=Et();t.subscribe(1,n=>{e.send("log",n)})}function na(t){return{get:e=>{const n=t.findTrackedSession(e);if(n)return{session_id:n.id}}}}function ra(t){return e=>{t.notify(0,{rawLogsEvent:{message:e.message,date:e.startClocks.timeStamp,origin:L.AGENT,status:b.error}}),On("Error reported to customer",{"error.message":e.message})}}function ia(t,e,n,r,s){const i=hs("browser-logs-sdk",e);i.setContextProvider(()=>{var a,c,l,d,u,f;return{application:{id:(a=tt())===null||a===void 0?void 0:a.application_id},session:{id:(c=s.findTrackedSession())===null||c===void 0?void 0:c.id},view:{id:(d=(l=tt())===null||l===void 0?void 0:l.view)===null||d===void 0?void 0:d.id},action:{id:(f=(u=tt())===null||u===void 0?void 0:u.user_action)===null||f===void 0?void 0:f.id}}});const o=[];if(Ke()){const a=Et(),c=i.observable.subscribe(l=>a.send("internal_telemetry",l));o.push(()=>c.unsubscribe())}else{const a=Hn(e,{endpoint:e.rumEndpointBuilder,encoder:Ze()},e.replica&&{endpoint:e.replica.rumEndpointBuilder,encoder:Ze()},n,r,s.expireObservable);o.push(()=>a.stop());const c=i.observable.subscribe(l=>a.add(l,gs(e)));o.push(()=>c.unsubscribe())}return ms(),ys(Ro(t)),{telemetry:i,stop:()=>{o.forEach(a=>a())}}}function sa(t,e,n,r){const s=new Jo,i=[];s.subscribe(1,f=>kn("logs",f));const o=ra(s),a=Vs(e),c=e.sessionStoreStrategyType&&!Ke()&&!Yn()?Lo(e,r):Io(e),{stop:l}=ia(t,e,o,a,c);i.push(()=>l()),Go(e,s),Ko(e,s),$o(e,s),zo(e,s);const{handleLog:d}=Zo(s);if(Bo(c,e,s,n,o),Ke())ta(s);else{const{stop:f}=ea(e,s,o,a,c);i.push(()=>f())}const u=na(c);return{handleLog:d,getInternalContext:u.get,stop:()=>{i.forEach(f=>f())}}}const fe=Uo(sa);ts(j(),"DD_LOGS",fe);const y=class y{constructor(e){y.options=e,this.isLoggingOn=e.LOG_TO_DATADOG,this.eventTarget=new EventTarget,this.isLoggingOn&&fe.init({clientToken:"pub86577b481b35700b8fcfe3b4993f007a",service:"BBMediaKitDemoWeb",site:"us3.datadoghq.com",forwardErrorsToLogs:!1,sessionSampleRate:100});const n="bb_logger_mac_uuid";let r=localStorage.getItem(n);r||(r=crypto.randomUUID(),localStorage.setItem(n,r)),y.tracking.mac=r,y.tracking.dev=`${e.platform}_${e.browserName}`,y.beatHandle||(y.options&&F(y.options,"Logger")&&console.log("[Logger] Starting tracking beat"),y.beatHandle=window.setInterval(y.flushTracking,15e3))}static setMessagePort(e){this.messagePort=e}static getMessagePort(){return this.messagePort}setLoggingOn(e){this.isLoggingOn=e}setAttributes(e){y.processAttributes(e);for(const n in e)fe.logger.setContextProperty(n,e[n])}info(e,n){e==="didClickAd"&&this.emit("mediaSessionDidRegisterClick",{url:(n==null?void 0:n.url)||""}),e==="didToggleGlobalAugmentationDrawing"&&this.emit("mediaSessionDidUpdateGlobalAugmentationState",{isGlobalAugmentationEnabled:(n==null?void 0:n.isEnabled)||!0}),e==="didStartDrawingAugmentationMedia"&&this.emit("mediaSessionDidBeginShotRendering",n),e==="didEndDrawingAugmentationMedia"&&this.emit("mediaSessionDidEndShotRendering",n),e==="didRegisterShot"&&this.emit("mediaSessionDidRegisterShot",n),n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.info(e,n),y.options&&F(y.options,"Logger")&&console.log("[Logger] Sending info: ",e))}error(e,n){n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.error(e,n),y.tracking.err_time=Date.now().toFixed(0),y.tracking.err_desc=e+(n?` - ${JSON.stringify(n)}`:""),y.options&&F(y.options,"Logger")&&console.log("[Logger] Sending error: ",e))}warn(e,n){n&&y.processAttributes(n),this.isLoggingOn&&(fe.logger.warn(e,n),y.options&&F(y.options,"Logger")&&console.log("[Logger] Sending warn: ",e))}handleMessageFromWorker(e){e.actionType==="INFO"?this.info(e.message,e.attributes):e.actionType==="ERROR"?this.error(e.message,e.attributes):e.actionType==="WARN"?this.warn(e.message,e.attributes):e.actionType==="SET_ATTRIBUTES"&&e.attributes&&this.setAttributes(e.attributes)}static setAttributes(e){y.messagePort.postMessage({type:"LOG",actionType:"SET_ATTRIBUTES",attributes:e})}static info(e,n){y.messagePort.postMessage({type:"LOG",actionType:"INFO",message:e,attributes:n})}static error(e,n){y.messagePort.postMessage({type:"LOG",actionType:"ERROR",message:e,attributes:n})}static warn(e,n){y.messagePort.postMessage({type:"LOG",actionType:"WARN",message:e,attributes:n})}static processAttributes(e){if(e.player_version&&(y.tracking.sdk=e.player_version),e.media_id&&(y.tracking.gid=e.media_id),e.game_id&&(y.tracking.buc=e.game_id),e.bb_session_id&&(y.tracking.sid=e.bb_session_id,y.options&&F(y.options,"Logger")&&console.log("[Logger] Setting bb_session_id:",y.tracking.sid)),e.last_timecode){const r=O.fromStr(e.last_timecode);y.tracking.tc=r.print(),y.lastTimecodeMillis=r.totalMilliseconds(59.94),y.lastTimecodeMillis&&y.lastZipMillis&&(y.tracking.cache=(y.lastZipMillis-y.lastTimecodeMillis).toFixed(0))}e.last_offset&&(y.tracking.off=e.last_offset),e.last_loading_zip&&(y.tracking.zip=e.last_loading_zip+".zip",y.lastZipMillis=O.fromStr(e.last_loading_zip).totalMilliseconds(59.94),y.lastTimecodeMillis&&y.lastZipMillis&&(y.tracking.cache=(y.lastZipMillis-y.lastTimecodeMillis).toFixed(0))),e.last_rendered_frame&&(y.tracking.aug_time=Date.now().toFixed(0)),e.asset&&(y.tracking.asset=e.asset)}static objectToQuery(e){return Object.entries(e).filter(([n,r])=>r!==0&&r!=="").map(([n,r])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(r))}`).join("&")}emit(e,n){const r=new CustomEvent(e,{detail:n});this.eventTarget.dispatchEvent(r)}};y.tracking={start:Date.now().toFixed(0),dev:"",sdk:"",mac:"",gid:"",sid:"",off:"",zip:"",aug_time:"",err_time:"",err_desc:"",tc:"",asset:"",cache:"",buc:""},y.lastTimecodeMillis=0,y.lastZipMillis=0,y.flushTracking=()=>{const e=Date.now().toFixed(0);y.tracking.now=e;const r=`https://dwu3k7rrxk5s3.cloudfront.net/metrics/1.gif?${y.objectToQuery(y.tracking)}`;y.options&&F(y.options,"Logger")&&console.log("[Logger] Flushing tracking data:",r),fetch(r,{method:"GET",mode:"no-cors",keepalive:!0}).catch(()=>{}),y.tracking.err_desc="",y.tracking.err_time=""};let Lt=y;class Qn{constructor(e,n,r){this.RUN_PIXEL_TICKERS=!0,this.pixelTickers=[],this.fetchGameParams=async()=>{try{F(this.options,"OTTPlayer")&&console.log("[OTTPlayer] GameId: ",this.options.gameId);let i;const o=`${this.options.cloudFrontURL}/${this.options.gameId}.json`;if(F(this.options,"OTTPlayer")&&console.log(`Fetching GameParams from ${o}`),i=await fetch(o),!i.ok)throw new Error(`Unable to fetch game params for ${this.options.gameId}. HTTP error. Status: ${i.status}`);const a=await i.json();if(a.hasOwnProperty("bucketName")&&a.hasOwnProperty("offsets"))i=a;else throw new Error(`Game params for ${this.options.gameId} not found in JSON`);if(this.logger.setAttributes({game_id:i.bucketName,customer_name:i.customerName,customer_id:i.customerId}),this.gameParams){const c=JSON.stringify(this.gameParams),l=JSON.stringify(i);c!==l&&this.logger.info("didChangeGameParams",{oldParams:this.gameParams,newParams:i})}else this.logger.info("didFetchGameInfo",this.gameParams);this.gameParams=i}catch(i){this.logger.error("[OTTPlayer] Error fetching game params",{error:i}),F(this.options,"Errors")&&console.error("[OTTPlayer] Error fetching game params:",i)}setTimeout(()=>this.fetchGameParams(),1e4)};const s="OTTPlayer_v1.0.65";console.log(`%c${s}`,"font-size: 16px; font-weight: bold; color: blue;"),this.video=e,this.options={...r,cloudFrontURL:"https://d1ze2lfw5ong7.cloudfront.net",platform:P.getCurrentPlatform(),browserName:P.getBrowserName(),augmentation:{channelName:"nba"},LOG_TO_DATADOG:!0,ADAPTER_RUN_IN_WORKER:!1,DOWNLOADER_UPDATE_FREQUENCY:1e3,DOWNLOADER_ZIP_START_OFFSET:2,DOWNLOADER_ZIP_END_OFFSET:4,DOWNLOADER_ZIP_LENGTH_SECONDS:2,DECODER_UPDATE_FREQUENCY:30,DECODER_FRAME_BATCH_SIZE:3,DECODER_LEAD_TIME_MILLIS:180,PERFORMANCE_TRACKING_INTERVAL:1e3},this.options.browserName==="Firefox"&&(this.options.DECODER_LEAD_TIME_MILLIS=300),this.logger=new Lt(this.options),this.logger.setAttributes({player_version:s,bb_session_id:crypto.randomUUID()}),this.logger.info("didGetConfiguration",{...r,fps:n}),er(this.options).then(()=>{this.logger.setAttributes({media_id:r.gameId}),window.BB.playerInstances.length>0&&window.BB.playerInstances.forEach(i=>{i.delete()}),window.BB.workerInstances.length>0&&window.BB.workerInstances.forEach(i=>{i.terminate()}),this.clocker=new ar(this),this.adapter=new fr(this),this.RUN_PIXEL_TICKERS&&(this.pixelTickers=Y.createInAllCorners(this.video)),this.fetchGameParams(),window.BB.playerInstances.push(this)})}onNewMetadata(e){this.adapter&&this.adapter.onNewMetadata(e)}onNewSegment(e){this.adapter&&this.adapter.onNewSegmentForMetadata(e)}onAdEvent(e){this.adapter&&this.adapter.onAdEvent(e)}toggle(e){this.options.enabled=e}setFps(e){this.fps=e}setMediaInfo(e){e.fps&&this.setFps(e.fps),e.bitrate&&(this.bitrate=e.bitrate)}on(e,n){const r=s=>n(s);this.logger.eventTarget.addEventListener(e,r)}delete(){var n;(n=this.clocker)==null||n.delete(),this.clocker=void 0,this.adapter&&(this.adapter.delete(),this.adapter=void 0),Y.deleteAll(this.pixelTickers),this.pixelTickers=[];const e=window.BB.playerInstances.indexOf(this);e>=0&&window.BB.playerInstances.splice(e,1)}}return window.BB={OTTPlayer:Qn,playerInstances:[],workerInstances:[]},Qn});